about summary refs log tree commit diff
path: root/pkgs/development/python-modules
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/python-modules')
-rw-r--r--pkgs/development/python-modules/3to2/default.nix9
-rw-r--r--pkgs/development/python-modules/a2wsgi/default.nix21
-rw-r--r--pkgs/development/python-modules/aadict/default.nix31
-rw-r--r--pkgs/development/python-modules/aafigure/default.nix7
-rw-r--r--pkgs/development/python-modules/aardwolf/default.nix53
-rw-r--r--pkgs/development/python-modules/abjad/default.nix27
-rw-r--r--pkgs/development/python-modules/about-time/default.nix13
-rw-r--r--pkgs/development/python-modules/absl-py/default.nix23
-rw-r--r--pkgs/development/python-modules/accelerate/default.nix145
-rw-r--r--pkgs/development/python-modules/accessible-pygments/default.nix33
-rw-r--r--pkgs/development/python-modules/accupy/default.nix61
-rw-r--r--pkgs/development/python-modules/acme-tiny/default.nix22
-rw-r--r--pkgs/development/python-modules/acme/default.nix40
-rw-r--r--pkgs/development/python-modules/acoustics/default.nix33
-rw-r--r--pkgs/development/python-modules/acquire/default.nix47
-rw-r--r--pkgs/development/python-modules/actdiag/default.nix33
-rw-r--r--pkgs/development/python-modules/acunetix/default.nix17
-rw-r--r--pkgs/development/python-modules/adafruit-io/default.nix29
-rw-r--r--pkgs/development/python-modules/adafruit-platformdetect/default.nix25
-rw-r--r--pkgs/development/python-modules/adafruit-pureio/default.nix19
-rw-r--r--pkgs/development/python-modules/adal/default.nix28
-rw-r--r--pkgs/development/python-modules/adax-local/default.nix19
-rw-r--r--pkgs/development/python-modules/adax/default.nix17
-rw-r--r--pkgs/development/python-modules/adb-enhanced/default.nix23
-rw-r--r--pkgs/development/python-modules/adb-homeassistant/default.nix25
-rw-r--r--pkgs/development/python-modules/adb-shell/default.nix37
-rw-r--r--pkgs/development/python-modules/adblock/default.nix62
-rw-r--r--pkgs/development/python-modules/add-trailing-comma/default.nix27
-rw-r--r--pkgs/development/python-modules/addict/default.nix9
-rw-r--r--pkgs/development/python-modules/adext/default.nix39
-rw-r--r--pkgs/development/python-modules/adguardhome/default.nix29
-rw-r--r--pkgs/development/python-modules/adjusttext/default.nix23
-rw-r--r--pkgs/development/python-modules/advantage-air/default.nix19
-rw-r--r--pkgs/development/python-modules/advocate/default.nix23
-rw-r--r--pkgs/development/python-modules/aemet-opendata/default.nix35
-rw-r--r--pkgs/development/python-modules/aenum/default.nix55
-rw-r--r--pkgs/development/python-modules/aeppl/default.nix42
-rw-r--r--pkgs/development/python-modules/aesara/default.nix71
-rw-r--r--pkgs/development/python-modules/aesedb/default.nix29
-rw-r--r--pkgs/development/python-modules/aetcd/default.nix27
-rw-r--r--pkgs/development/python-modules/afdko/default.nix108
-rw-r--r--pkgs/development/python-modules/affine/default.nix22
-rw-r--r--pkgs/development/python-modules/afsapi/default.nix31
-rw-r--r--pkgs/development/python-modules/agate-dbf/default.nix41
-rw-r--r--pkgs/development/python-modules/agate-excel/default.nix27
-rw-r--r--pkgs/development/python-modules/agate-sql/default.nix32
-rw-r--r--pkgs/development/python-modules/agate/default.nix43
-rw-r--r--pkgs/development/python-modules/agent-py/default.nix17
-rw-r--r--pkgs/development/python-modules/aggdraw/default.nix27
-rw-r--r--pkgs/development/python-modules/ago/default.nix25
-rw-r--r--pkgs/development/python-modules/aigpy/default.nix30
-rw-r--r--pkgs/development/python-modules/ailment/default.nix6
-rw-r--r--pkgs/development/python-modules/aio-geojson-client/default.nix33
-rw-r--r--pkgs/development/python-modules/aio-geojson-generic-client/default.nix31
-rw-r--r--pkgs/development/python-modules/aio-geojson-geonetnz-quakes/default.nix31
-rw-r--r--pkgs/development/python-modules/aio-geojson-geonetnz-volcano/default.nix35
-rw-r--r--pkgs/development/python-modules/aio-geojson-nsw-rfs-incidents/default.nix31
-rw-r--r--pkgs/development/python-modules/aio-geojson-usgs-earthquakes/default.nix35
-rw-r--r--pkgs/development/python-modules/aio-georss-client/default.nix37
-rw-r--r--pkgs/development/python-modules/aio-georss-gdacs/default.nix29
-rw-r--r--pkgs/development/python-modules/aioairq/default.nix42
-rw-r--r--pkgs/development/python-modules/aioairzone-cloud/default.nix4
-rw-r--r--pkgs/development/python-modules/aioairzone/default.nix30
-rw-r--r--pkgs/development/python-modules/aioaladdinconnect/default.nix41
-rw-r--r--pkgs/development/python-modules/aioambient/default.nix41
-rw-r--r--pkgs/development/python-modules/aioamqp/default.nix28
-rw-r--r--pkgs/development/python-modules/aioapcaccess/default.nix21
-rw-r--r--pkgs/development/python-modules/aioapns/default.nix27
-rw-r--r--pkgs/development/python-modules/aioaseko/default.nix23
-rw-r--r--pkgs/development/python-modules/aioautomower/default.nix48
-rw-r--r--pkgs/development/python-modules/aioazuredevops/default.nix61
-rw-r--r--pkgs/development/python-modules/aiobafi6/default.nix27
-rw-r--r--pkgs/development/python-modules/aiobiketrax/default.nix54
-rw-r--r--pkgs/development/python-modules/aioblescan/default.nix19
-rw-r--r--pkgs/development/python-modules/aioboto3/default.nix53
-rw-r--r--pkgs/development/python-modules/aiobotocore/default.nix83
-rw-r--r--pkgs/development/python-modules/aiobroadlink/default.nix19
-rw-r--r--pkgs/development/python-modules/aiocache/default.nix87
-rw-r--r--pkgs/development/python-modules/aiocoap/default.nix107
-rw-r--r--pkgs/development/python-modules/aiocomelit/default.nix27
-rw-r--r--pkgs/development/python-modules/aioconsole/default.nix27
-rw-r--r--pkgs/development/python-modules/aiocontextvars/default.nix25
-rw-r--r--pkgs/development/python-modules/aiocron/default.nix21
-rw-r--r--pkgs/development/python-modules/aiocurrencylayer/default.nix31
-rw-r--r--pkgs/development/python-modules/aiodhcpwatcher/default.nix34
-rw-r--r--pkgs/development/python-modules/aiodocker/default.nix13
-rw-r--r--pkgs/development/python-modules/aioecowitt/default.nix27
-rw-r--r--pkgs/development/python-modules/aioelectricitymaps/default.nix33
-rw-r--r--pkgs/development/python-modules/aioemonitor/default.nix21
-rw-r--r--pkgs/development/python-modules/aioesphomeapi/default.nix70
-rw-r--r--pkgs/development/python-modules/aioextensions/default.nix15
-rw-r--r--pkgs/development/python-modules/aiofile/default.nix25
-rw-r--r--pkgs/development/python-modules/aiofiles/default.nix25
-rw-r--r--pkgs/development/python-modules/aioflo/default.nix35
-rw-r--r--pkgs/development/python-modules/aioftp/default.nix39
-rw-r--r--pkgs/development/python-modules/aiogithubapi/default.nix37
-rw-r--r--pkgs/development/python-modules/aiogram/default.nix10
-rw-r--r--pkgs/development/python-modules/aioguardian/default.nix41
-rw-r--r--pkgs/development/python-modules/aiohappyeyeballs/default.nix42
-rw-r--r--pkgs/development/python-modules/aioharmony/default.nix15
-rw-r--r--pkgs/development/python-modules/aiohomekit/default.nix45
-rw-r--r--pkgs/development/python-modules/aiohttp-apispec/default.nix29
-rw-r--r--pkgs/development/python-modules/aiohttp-basicauth/default.nix19
-rw-r--r--pkgs/development/python-modules/aiohttp-client-cache/default.nix23
-rw-r--r--pkgs/development/python-modules/aiohttp-cors/default.nix12
-rw-r--r--pkgs/development/python-modules/aiohttp-fast-url-dispatcher/default.nix31
-rw-r--r--pkgs/development/python-modules/aiohttp-fast-zlib/default.nix48
-rw-r--r--pkgs/development/python-modules/aiohttp-isal/default.nix51
-rw-r--r--pkgs/development/python-modules/aiohttp-jinja2/default.nix36
-rw-r--r--pkgs/development/python-modules/aiohttp-oauthlib/default.nix19
-rw-r--r--pkgs/development/python-modules/aiohttp-openmetrics/default.nix24
-rw-r--r--pkgs/development/python-modules/aiohttp-remotes/default.nix33
-rw-r--r--pkgs/development/python-modules/aiohttp-retry/default.nix27
-rw-r--r--pkgs/development/python-modules/aiohttp-session/default.nix54
-rw-r--r--pkgs/development/python-modules/aiohttp-socks/default.nix33
-rw-r--r--pkgs/development/python-modules/aiohttp-swagger/default.nix26
-rw-r--r--pkgs/development/python-modules/aiohttp-wsgi/default.nix21
-rw-r--r--pkgs/development/python-modules/aiohttp-zlib-ng/default.nix29
-rw-r--r--pkgs/development/python-modules/aiohttp/default.nix128
-rw-r--r--pkgs/development/python-modules/aiohue/default.nix27
-rw-r--r--pkgs/development/python-modules/aiohwenergy/default.nix21
-rw-r--r--pkgs/development/python-modules/aioimaplib/default.nix56
-rw-r--r--pkgs/development/python-modules/aioinflux/default.nix24
-rw-r--r--pkgs/development/python-modules/aioitertools/default.nix38
-rw-r--r--pkgs/development/python-modules/aiojobs/default.nix37
-rw-r--r--pkgs/development/python-modules/aiokafka/default.nix63
-rw-r--r--pkgs/development/python-modules/aiokef/default.nix19
-rw-r--r--pkgs/development/python-modules/aiolifx-connection/default.nix19
-rw-r--r--pkgs/development/python-modules/aiolifx-effects/default.nix19
-rw-r--r--pkgs/development/python-modules/aiolifx-themes/default.nix4
-rw-r--r--pkgs/development/python-modules/aiolifx/default.nix4
-rw-r--r--pkgs/development/python-modules/aiolimiter/default.nix31
-rw-r--r--pkgs/development/python-modules/aiolip/default.nix15
-rw-r--r--pkgs/development/python-modules/aiolivisi/default.nix21
-rw-r--r--pkgs/development/python-modules/aiolookin/default.nix27
-rw-r--r--pkgs/development/python-modules/aiomcache/default.nix42
-rw-r--r--pkgs/development/python-modules/aiomealie/default.nix61
-rw-r--r--pkgs/development/python-modules/aiomisc-pytest/default.nix42
-rw-r--r--pkgs/development/python-modules/aiomisc/default.nix4
-rw-r--r--pkgs/development/python-modules/aiomodernforms/default.nix19
-rw-r--r--pkgs/development/python-modules/aiomqtt/default.nix36
-rw-r--r--pkgs/development/python-modules/aiomusiccast/default.nix23
-rw-r--r--pkgs/development/python-modules/aiomysensors/default.nix4
-rw-r--r--pkgs/development/python-modules/aiomysql/default.nix31
-rw-r--r--pkgs/development/python-modules/aionanoleaf/default.nix19
-rw-r--r--pkgs/development/python-modules/aionotion/default.nix47
-rw-r--r--pkgs/development/python-modules/aiooncue/default.nix19
-rw-r--r--pkgs/development/python-modules/aioopenexchangerates/default.nix6
-rw-r--r--pkgs/development/python-modules/aioopenssl/default.nix19
-rw-r--r--pkgs/development/python-modules/aiooss2/default.nix2
-rw-r--r--pkgs/development/python-modules/aiooui/default.nix23
-rw-r--r--pkgs/development/python-modules/aiopg/default.nix17
-rw-r--r--pkgs/development/python-modules/aiopinboard/default.nix36
-rw-r--r--pkgs/development/python-modules/aioprocessing/default.nix19
-rw-r--r--pkgs/development/python-modules/aioprometheus/default.nix43
-rw-r--r--pkgs/development/python-modules/aiopulse/default.nix25
-rw-r--r--pkgs/development/python-modules/aiopurpleair/default.nix33
-rw-r--r--pkgs/development/python-modules/aiopvpc/default.nix37
-rw-r--r--pkgs/development/python-modules/aiopyarr/default.nix25
-rw-r--r--pkgs/development/python-modules/aiopylgtv/default.nix15
-rw-r--r--pkgs/development/python-modules/aioqsw/default.nix25
-rw-r--r--pkgs/development/python-modules/aioquic/default.nix55
-rw-r--r--pkgs/development/python-modules/aioraven/default.nix35
-rw-r--r--pkgs/development/python-modules/aiorecollect/default.nix34
-rw-r--r--pkgs/development/python-modules/aioredis/default.nix19
-rw-r--r--pkgs/development/python-modules/aioresponses/default.nix41
-rw-r--r--pkgs/development/python-modules/aioridwell/default.nix41
-rw-r--r--pkgs/development/python-modules/aiormq/default.nix37
-rw-r--r--pkgs/development/python-modules/aiorpcx/default.nix11
-rw-r--r--pkgs/development/python-modules/aiortm/default.nix4
-rw-r--r--pkgs/development/python-modules/aiortsp/default.nix37
-rw-r--r--pkgs/development/python-modules/aioruckus/default.nix25
-rw-r--r--pkgs/development/python-modules/aiorun/default.nix38
-rw-r--r--pkgs/development/python-modules/aioruuvigateway/default.nix29
-rw-r--r--pkgs/development/python-modules/aiorwlock/default.nix13
-rw-r--r--pkgs/development/python-modules/aiosasl/default.nix26
-rw-r--r--pkgs/development/python-modules/aiosenz/default.nix25
-rw-r--r--pkgs/development/python-modules/aioserial/default.nix15
-rw-r--r--pkgs/development/python-modules/aioshelly/default.nix37
-rw-r--r--pkgs/development/python-modules/aioshutil/default.nix45
-rw-r--r--pkgs/development/python-modules/aiosignal/default.nix23
-rw-r--r--pkgs/development/python-modules/aioskybell/default.nix33
-rw-r--r--pkgs/development/python-modules/aioslimproto/default.nix25
-rw-r--r--pkgs/development/python-modules/aiosmb/default.nix35
-rw-r--r--pkgs/development/python-modules/aiosmtpd/default.nix37
-rw-r--r--pkgs/development/python-modules/aiosmtplib/default.nix29
-rw-r--r--pkgs/development/python-modules/aiosomecomfort/default.nix23
-rw-r--r--pkgs/development/python-modules/aiosql/default.nix35
-rw-r--r--pkgs/development/python-modules/aiosqlite/default.nix35
-rw-r--r--pkgs/development/python-modules/aiosteamist/default.nix23
-rw-r--r--pkgs/development/python-modules/aiostream/default.nix38
-rw-r--r--pkgs/development/python-modules/aioswitcher/default.nix63
-rw-r--r--pkgs/development/python-modules/aiosyncthing/default.nix25
-rw-r--r--pkgs/development/python-modules/aiotankerkoenig/default.nix35
-rw-r--r--pkgs/development/python-modules/aiotractive/default.nix23
-rw-r--r--pkgs/development/python-modules/aiounifi/default.nix4
-rw-r--r--pkgs/development/python-modules/aiounittest/default.nix25
-rw-r--r--pkgs/development/python-modules/aiovlc/default.nix25
-rw-r--r--pkgs/development/python-modules/aiowaqi/default.nix43
-rw-r--r--pkgs/development/python-modules/aiowatttime/default.nix33
-rw-r--r--pkgs/development/python-modules/aiowebostv/default.nix25
-rw-r--r--pkgs/development/python-modules/aioweenect/default.nix32
-rw-r--r--pkgs/development/python-modules/aiowithings/default.nix35
-rw-r--r--pkgs/development/python-modules/aioxmpp/default.nix69
-rw-r--r--pkgs/development/python-modules/aioymaps/default.nix15
-rw-r--r--pkgs/development/python-modules/aiozoneinfo/default.nix49
-rw-r--r--pkgs/development/python-modules/airium/default.nix17
-rw-r--r--pkgs/development/python-modules/airly/default.nix17
-rw-r--r--pkgs/development/python-modules/airthings-ble/default.nix6
-rw-r--r--pkgs/development/python-modules/airthings-cloud/default.nix17
-rw-r--r--pkgs/development/python-modules/airtouch4pyapi/default.nix15
-rw-r--r--pkgs/development/python-modules/airtouch5py/default.nix2
-rw-r--r--pkgs/development/python-modules/ajpy/default.nix6
-rw-r--r--pkgs/development/python-modules/alabaster/default.nix13
-rw-r--r--pkgs/development/python-modules/aladdin-connect/default.nix19
-rw-r--r--pkgs/development/python-modules/alarmdecoder/default.nix21
-rw-r--r--pkgs/development/python-modules/albumentations/default.nix56
-rw-r--r--pkgs/development/python-modules/ale-py/default.nix100
-rw-r--r--pkgs/development/python-modules/ale-py/patch-sha-check-in-setup.patch17
-rw-r--r--pkgs/development/python-modules/alectryon/default.nix14
-rw-r--r--pkgs/development/python-modules/alembic/default.nix69
-rw-r--r--pkgs/development/python-modules/alexapy/default.nix43
-rw-r--r--pkgs/development/python-modules/algebraic-data-types/default.nix19
-rw-r--r--pkgs/development/python-modules/alive-progress/default.nix29
-rw-r--r--pkgs/development/python-modules/aliyun-python-sdk-cdn/default.nix19
-rw-r--r--pkgs/development/python-modules/aliyun-python-sdk-config/default.nix23
-rw-r--r--pkgs/development/python-modules/aliyun-python-sdk-core/default.nix2
-rw-r--r--pkgs/development/python-modules/aliyun-python-sdk-dbfs/default.nix19
-rw-r--r--pkgs/development/python-modules/aliyun-python-sdk-iot/default.nix19
-rw-r--r--pkgs/development/python-modules/aliyun-python-sdk-kms/default.nix28
-rw-r--r--pkgs/development/python-modules/aliyun-python-sdk-sts/default.nix19
-rw-r--r--pkgs/development/python-modules/allpairspy/default.nix23
-rw-r--r--pkgs/development/python-modules/allure-behave/default.nix21
-rw-r--r--pkgs/development/python-modules/allure-pytest/default.nix31
-rw-r--r--pkgs/development/python-modules/allure-python-commons-test/default.nix33
-rw-r--r--pkgs/development/python-modules/allure-python-commons/default.nix37
-rw-r--r--pkgs/development/python-modules/alpha-vantage/default.nix43
-rw-r--r--pkgs/development/python-modules/altair/default.nix59
-rw-r--r--pkgs/development/python-modules/altgraph/default.nix9
-rw-r--r--pkgs/development/python-modules/amaranth-boards/default.nix39
-rw-r--r--pkgs/development/python-modules/amaranth-soc/default.nix30
-rw-r--r--pkgs/development/python-modules/amaranth/default.nix57
-rw-r--r--pkgs/development/python-modules/amarna/default.nix23
-rw-r--r--pkgs/development/python-modules/amazon-ion/default.nix31
-rw-r--r--pkgs/development/python-modules/amazon-kclpy/default.nix45
-rw-r--r--pkgs/development/python-modules/ambee/default.nix25
-rw-r--r--pkgs/development/python-modules/amberelectric/default.nix27
-rw-r--r--pkgs/development/python-modules/ambiclimate/default.nix35
-rw-r--r--pkgs/development/python-modules/amcrest/default.nix49
-rw-r--r--pkgs/development/python-modules/amiibo-py/default.nix13
-rw-r--r--pkgs/development/python-modules/amply/default.nix15
-rw-r--r--pkgs/development/python-modules/amqp/default.nix25
-rw-r--r--pkgs/development/python-modules/amqplib/default.nix7
-rw-r--r--pkgs/development/python-modules/amqtt/default.nix45
-rw-r--r--pkgs/development/python-modules/anchor-kr/default.nix5
-rw-r--r--pkgs/development/python-modules/ancp-bids/default.nix29
-rw-r--r--pkgs/development/python-modules/androguard/default.nix97
-rw-r--r--pkgs/development/python-modules/android-backup/default.nix17
-rw-r--r--pkgs/development/python-modules/androidtv/default.nix33
-rw-r--r--pkgs/development/python-modules/androidtvremote2/default.nix35
-rw-r--r--pkgs/development/python-modules/anel-pwrctrl-homeassistant/default.nix6
-rw-r--r--pkgs/development/python-modules/angr/default.nix6
-rw-r--r--pkgs/development/python-modules/angrcli/default.nix31
-rw-r--r--pkgs/development/python-modules/aniso8601/default.nix23
-rw-r--r--pkgs/development/python-modules/anitopy/default.nix5
-rw-r--r--pkgs/development/python-modules/annexremote/default.nix23
-rw-r--r--pkgs/development/python-modules/annotated-types/default.nix31
-rw-r--r--pkgs/development/python-modules/annoy/default.nix29
-rw-r--r--pkgs/development/python-modules/anonip/default.nix23
-rw-r--r--pkgs/development/python-modules/anova-wifi/default.nix6
-rw-r--r--pkgs/development/python-modules/ansi/default.nix19
-rw-r--r--pkgs/development/python-modules/ansi2html/default.nix23
-rw-r--r--pkgs/development/python-modules/ansi2image/default.nix27
-rw-r--r--pkgs/development/python-modules/ansible-builder/default.nix17
-rw-r--r--pkgs/development/python-modules/ansible-compat/default.nix52
-rw-r--r--pkgs/development/python-modules/ansible-kernel/default.nix78
-rw-r--r--pkgs/development/python-modules/ansible-navigator/default.nix21
-rw-r--r--pkgs/development/python-modules/ansible-pylibssh/default.nix4
-rw-r--r--pkgs/development/python-modules/ansible-runner/default.nix96
-rw-r--r--pkgs/development/python-modules/ansible-vault-rw/default.nix36
-rw-r--r--pkgs/development/python-modules/ansible/core.nix114
-rw-r--r--pkgs/development/python-modules/ansible/default.nix107
-rw-r--r--pkgs/development/python-modules/ansicolor/default.nix2
-rw-r--r--pkgs/development/python-modules/ansicolors/default.nix7
-rw-r--r--pkgs/development/python-modules/ansiconv/default.nix10
-rw-r--r--pkgs/development/python-modules/ansimarkup/default.nix13
-rw-r--r--pkgs/development/python-modules/ansiwrap/default.nix40
-rw-r--r--pkgs/development/python-modules/anthemav/default.nix21
-rw-r--r--pkgs/development/python-modules/anthropic/default.nix4
-rw-r--r--pkgs/development/python-modules/antlr4-python3-runtime/default.nix15
-rw-r--r--pkgs/development/python-modules/anyascii/default.nix15
-rw-r--r--pkgs/development/python-modules/anybadge/default.nix23
-rw-r--r--pkgs/development/python-modules/anyconfig/default.nix19
-rw-r--r--pkgs/development/python-modules/anyio/default.nix92
-rw-r--r--pkgs/development/python-modules/anyqt/default.nix18
-rw-r--r--pkgs/development/python-modules/anysqlite/default.nix27
-rw-r--r--pkgs/development/python-modules/anytree/default.nix39
-rw-r--r--pkgs/development/python-modules/anywidget/default.nix34
-rw-r--r--pkgs/development/python-modules/aocd-example-parser/default.nix15
-rw-r--r--pkgs/development/python-modules/aocd/default.nix53
-rw-r--r--pkgs/development/python-modules/apache-beam/default.nix103
-rw-r--r--pkgs/development/python-modules/apcaccess/default.nix17
-rw-r--r--pkgs/development/python-modules/apipkg/default.nix31
-rw-r--r--pkgs/development/python-modules/apischema/default.nix23
-rw-r--r--pkgs/development/python-modules/apispec-webframeworks/default.nix37
-rw-r--r--pkgs/development/python-modules/apispec/default.nix49
-rw-r--r--pkgs/development/python-modules/apkinspector/default.nix4
-rw-r--r--pkgs/development/python-modules/apkit/default.nix11
-rw-r--r--pkgs/development/python-modules/aplpy/default.nix45
-rw-r--r--pkgs/development/python-modules/app-model/default.nix41
-rw-r--r--pkgs/development/python-modules/appdirs/default.nix9
-rw-r--r--pkgs/development/python-modules/apple-weatherkit/default.nix25
-rw-r--r--pkgs/development/python-modules/applicationinsights/default.nix9
-rw-r--r--pkgs/development/python-modules/appnope/default.nix13
-rw-r--r--pkgs/development/python-modules/apprise/default.nix62
-rw-r--r--pkgs/development/python-modules/approval-utilities/default.nix17
-rw-r--r--pkgs/development/python-modules/approvaltests/default.nix45
-rw-r--r--pkgs/development/python-modules/appthreat-vulnerability-db/default.nix12
-rw-r--r--pkgs/development/python-modules/apptools/default.nix31
-rw-r--r--pkgs/development/python-modules/apricot-select/default.nix55
-rw-r--r--pkgs/development/python-modules/aprslib/default.nix15
-rw-r--r--pkgs/development/python-modules/apscheduler/default.nix68
-rw-r--r--pkgs/development/python-modules/apsw/default.nix7
-rw-r--r--pkgs/development/python-modules/apycula/default.nix4
-rw-r--r--pkgs/development/python-modules/aqipy-atmotech/default.nix19
-rw-r--r--pkgs/development/python-modules/aqualogic/default.nix19
-rw-r--r--pkgs/development/python-modules/arabic-reshaper/default.nix25
-rw-r--r--pkgs/development/python-modules/aranet4/default.nix4
-rw-r--r--pkgs/development/python-modules/arc4/default.nix19
-rw-r--r--pkgs/development/python-modules/arcam-fmj/default.nix35
-rw-r--r--pkgs/development/python-modules/archinfo/default.nix4
-rw-r--r--pkgs/development/python-modules/archspec/default.nix40
-rw-r--r--pkgs/development/python-modules/area/default.nix8
-rw-r--r--pkgs/development/python-modules/arelle/default.nix64
-rw-r--r--pkgs/development/python-modules/aresponses/default.nix26
-rw-r--r--pkgs/development/python-modules/argcomplete/default.nix21
-rw-r--r--pkgs/development/python-modules/argh/default.nix22
-rw-r--r--pkgs/development/python-modules/argilla/default.nix276
-rw-r--r--pkgs/development/python-modules/argon2-cffi-bindings/default.nix17
-rw-r--r--pkgs/development/python-modules/argon2-cffi/default.nix34
-rw-r--r--pkgs/development/python-modules/argos-translate-files/default.nix11
-rw-r--r--pkgs/development/python-modules/argostranslate/default.nix25
-rw-r--r--pkgs/development/python-modules/argparse-addons/default.nix11
-rw-r--r--pkgs/development/python-modules/argparse-dataclass/default.nix25
-rw-r--r--pkgs/development/python-modules/argparse-manpage/default.nix37
-rw-r--r--pkgs/development/python-modules/args/default.nix6
-rw-r--r--pkgs/development/python-modules/aria2p/default.nix50
-rw-r--r--pkgs/development/python-modules/ariadne/default.nix49
-rw-r--r--pkgs/development/python-modules/arnparse/default.nix19
-rw-r--r--pkgs/development/python-modules/arpeggio/default.nix9
-rw-r--r--pkgs/development/python-modules/arpy/default.nix15
-rw-r--r--pkgs/development/python-modules/array-record/default.nix57
-rw-r--r--pkgs/development/python-modules/arrayqueues/default.nix12
-rw-r--r--pkgs/development/python-modules/arris-tg2492lg/default.nix29
-rw-r--r--pkgs/development/python-modules/arrow/default.nix31
-rw-r--r--pkgs/development/python-modules/arsenic/default.nix2
-rw-r--r--pkgs/development/python-modules/art/default.nix13
-rw-r--r--pkgs/development/python-modules/arviz/default.nix67
-rw-r--r--pkgs/development/python-modules/arxiv2bib/default.nix21
-rw-r--r--pkgs/development/python-modules/asana/default.nix44
-rw-r--r--pkgs/development/python-modules/ascii-magic/default.nix23
-rw-r--r--pkgs/development/python-modules/asciimatics/default.nix29
-rw-r--r--pkgs/development/python-modules/asciitree/default.nix24
-rw-r--r--pkgs/development/python-modules/asdf-astropy/default.nix70
-rw-r--r--pkgs/development/python-modules/asdf-coordinates-schemas/default.nix48
-rw-r--r--pkgs/development/python-modules/asdf-standard/default.nix25
-rw-r--r--pkgs/development/python-modules/asdf-transform-schemas/default.nix29
-rw-r--r--pkgs/development/python-modules/asdf-wcs-schemas/default.nix56
-rw-r--r--pkgs/development/python-modules/asdf/default.nix99
-rw-r--r--pkgs/development/python-modules/ase/default.nix73
-rw-r--r--pkgs/development/python-modules/asf-search/default.nix6
-rw-r--r--pkgs/development/python-modules/asgi-csrf/default.nix21
-rw-r--r--pkgs/development/python-modules/asgi-lifespan/default.nix23
-rw-r--r--pkgs/development/python-modules/asgi-logger/default.nix23
-rw-r--r--pkgs/development/python-modules/asgineer/default.nix14
-rw-r--r--pkgs/development/python-modules/asgiref/default.nix25
-rw-r--r--pkgs/development/python-modules/asks/default.nix25
-rw-r--r--pkgs/development/python-modules/asmog/default.nix13
-rw-r--r--pkgs/development/python-modules/asn1/default.nix29
-rw-r--r--pkgs/development/python-modules/asn1ate/default.nix9
-rw-r--r--pkgs/development/python-modules/asn1crypto/default.nix47
-rw-r--r--pkgs/development/python-modules/asn1tools/default.nix39
-rw-r--r--pkgs/development/python-modules/aspectlib/default.nix33
-rw-r--r--pkgs/development/python-modules/aspell-python/default.nix38
-rw-r--r--pkgs/development/python-modules/aspy-refactor-imports/default.nix25
-rw-r--r--pkgs/development/python-modules/aspy-yaml/default.nix9
-rw-r--r--pkgs/development/python-modules/assay/default.nix7
-rw-r--r--pkgs/development/python-modules/assertpy/default.nix17
-rw-r--r--pkgs/development/python-modules/asterisk-mbox/default.nix23
-rw-r--r--pkgs/development/python-modules/asteroid-filterbanks/default.nix31
-rw-r--r--pkgs/development/python-modules/asteval/default.nix4
-rw-r--r--pkgs/development/python-modules/astor/default.nix13
-rw-r--r--pkgs/development/python-modules/astral/default.nix31
-rw-r--r--pkgs/development/python-modules/astroid/default.nix33
-rw-r--r--pkgs/development/python-modules/astropy-extension-helpers/default.nix37
-rw-r--r--pkgs/development/python-modules/astropy-healpix/default.nix32
-rw-r--r--pkgs/development/python-modules/astropy-helpers/default.nix13
-rw-r--r--pkgs/development/python-modules/astropy-iers-data/default.nix19
-rw-r--r--pkgs/development/python-modules/astropy/default.nix67
-rw-r--r--pkgs/development/python-modules/astroquery/default.nix52
-rw-r--r--pkgs/development/python-modules/asttokens/default.nix23
-rw-r--r--pkgs/development/python-modules/astunparse/default.nix20
-rw-r--r--pkgs/development/python-modules/asyauth/default.nix21
-rw-r--r--pkgs/development/python-modules/async-dns/default.nix17
-rw-r--r--pkgs/development/python-modules/async-generator/default.nix26
-rw-r--r--pkgs/development/python-modules/async-interrupt/default.nix23
-rw-r--r--pkgs/development/python-modules/async-lru/default.nix19
-rw-r--r--pkgs/development/python-modules/async-modbus/default.nix29
-rw-r--r--pkgs/development/python-modules/async-stagger/default.nix19
-rw-r--r--pkgs/development/python-modules/async-timeout/default.nix15
-rw-r--r--pkgs/development/python-modules/async-tkinter-loop/default.nix27
-rw-r--r--pkgs/development/python-modules/async-upnp-client/default.nix53
-rw-r--r--pkgs/development/python-modules/asyncclick/default.nix36
-rw-r--r--pkgs/development/python-modules/asynccmd/default.nix11
-rw-r--r--pkgs/development/python-modules/asyncinotify/default.nix29
-rw-r--r--pkgs/development/python-modules/asyncio-dgram/default.nix37
-rw-r--r--pkgs/development/python-modules/asyncio-mqtt/default.nix33
-rw-r--r--pkgs/development/python-modules/asyncio-rlock/default.nix9
-rw-r--r--pkgs/development/python-modules/asyncio-throttle/default.nix13
-rw-r--r--pkgs/development/python-modules/asyncmy/default.nix19
-rw-r--r--pkgs/development/python-modules/asyncpg/default.nix27
-rw-r--r--pkgs/development/python-modules/asyncserial/default.nix13
-rw-r--r--pkgs/development/python-modules/asyncsleepiq/default.nix25
-rw-r--r--pkgs/development/python-modules/asyncssh/default.nix78
-rw-r--r--pkgs/development/python-modules/asynctest/default.nix9
-rw-r--r--pkgs/development/python-modules/asyncua/default.nix43
-rw-r--r--pkgs/development/python-modules/asyncwhois/default.nix47
-rw-r--r--pkgs/development/python-modules/asysocks/default.nix19
-rw-r--r--pkgs/development/python-modules/atc-ble/default.nix31
-rw-r--r--pkgs/development/python-modules/atenpdu/default.nix23
-rw-r--r--pkgs/development/python-modules/atlassian-python-api/default.nix41
-rw-r--r--pkgs/development/python-modules/atom/default.nix33
-rw-r--r--pkgs/development/python-modules/atomiclong/default.nix25
-rw-r--r--pkgs/development/python-modules/atomicwrites-homeassistant/default.nix17
-rw-r--r--pkgs/development/python-modules/atomicwrites/default.nix7
-rw-r--r--pkgs/development/python-modules/atomman/default.nix63
-rw-r--r--pkgs/development/python-modules/atpublic/default.nix29
-rw-r--r--pkgs/development/python-modules/atsim-potentials/default.nix55
-rw-r--r--pkgs/development/python-modules/attacut/default.nix73
-rw-r--r--pkgs/development/python-modules/attrdict/default.nix2
-rw-r--r--pkgs/development/python-modules/attrs/default.nix21
-rw-r--r--pkgs/development/python-modules/attrs/tests.nix9
-rw-r--r--pkgs/development/python-modules/aubio/default.nix56
-rw-r--r--pkgs/development/python-modules/audible/default.nix31
-rw-r--r--pkgs/development/python-modules/audio-metadata/default.nix2
-rw-r--r--pkgs/development/python-modules/audioread/default.nix13
-rw-r--r--pkgs/development/python-modules/audiotools/default.nix20
-rw-r--r--pkgs/development/python-modules/auditok/default.nix31
-rw-r--r--pkgs/development/python-modules/auditwheel/default.nix59
-rw-r--r--pkgs/development/python-modules/augeas/default.nix64
-rw-r--r--pkgs/development/python-modules/augmax/default.nix32
-rw-r--r--pkgs/development/python-modules/auroranoaa/default.nix11
-rw-r--r--pkgs/development/python-modules/aurorapy/default.nix27
-rw-r--r--pkgs/development/python-modules/autarco/default.nix37
-rw-r--r--pkgs/development/python-modules/auth0-python/default.nix43
-rw-r--r--pkgs/development/python-modules/authcaptureproxy/default.nix46
-rw-r--r--pkgs/development/python-modules/authheaders/default.nix33
-rw-r--r--pkgs/development/python-modules/authlib/default.nix39
-rw-r--r--pkgs/development/python-modules/authres/default.nix7
-rw-r--r--pkgs/development/python-modules/autobahn/default.nix164
-rw-r--r--pkgs/development/python-modules/autocommand/default.nix25
-rw-r--r--pkgs/development/python-modules/autofaiss/default.nix31
-rw-r--r--pkgs/development/python-modules/autoflake/default.nix34
-rw-r--r--pkgs/development/python-modules/autograd-gamma/default.nix9
-rw-r--r--pkgs/development/python-modules/autograd/default.nix17
-rw-r--r--pkgs/development/python-modules/autoit-ripper/default.nix25
-rw-r--r--pkgs/development/python-modules/autologging/default.nix6
-rw-r--r--pkgs/development/python-modules/automat/default.nix98
-rw-r--r--pkgs/development/python-modules/automate-home/default.nix57
-rw-r--r--pkgs/development/python-modules/automx2/default.nix31
-rw-r--r--pkgs/development/python-modules/autopage/default.nix13
-rw-r--r--pkgs/development/python-modules/autopep8/default.nix32
-rw-r--r--pkgs/development/python-modules/autoslot/default.nix25
-rw-r--r--pkgs/development/python-modules/autotrash/default.nix33
-rw-r--r--pkgs/development/python-modules/av/default.nix139
-rw-r--r--pkgs/development/python-modules/avea/default.nix13
-rw-r--r--pkgs/development/python-modules/avidtools/default.nix27
-rw-r--r--pkgs/development/python-modules/avion/default.nix17
-rw-r--r--pkgs/development/python-modules/avro-python3/default.nix23
-rw-r--r--pkgs/development/python-modules/avro/default.nix31
-rw-r--r--pkgs/development/python-modules/avro3k/default.nix11
-rw-r--r--pkgs/development/python-modules/avwx-engine/default.nix84
-rw-r--r--pkgs/development/python-modules/aw-client/default.nix39
-rw-r--r--pkgs/development/python-modules/aw-core/default.nix43
-rw-r--r--pkgs/development/python-modules/awacs/default.nix21
-rw-r--r--pkgs/development/python-modules/awesome-slugify/default.nix14
-rw-r--r--pkgs/development/python-modules/awesomeversion/default.nix23
-rw-r--r--pkgs/development/python-modules/awkward-cpp/default.nix39
-rw-r--r--pkgs/development/python-modules/awkward/default.nix114
-rw-r--r--pkgs/development/python-modules/aws-adfs/default.nix48
-rw-r--r--pkgs/development/python-modules/aws-encryption-sdk/default.nix41
-rw-r--r--pkgs/development/python-modules/aws-lambda-builders/default.nix39
-rw-r--r--pkgs/development/python-modules/aws-sam-translator/default.nix37
-rw-r--r--pkgs/development/python-modules/aws-secretsmanager-caching/default.nix33
-rw-r--r--pkgs/development/python-modules/aws-xray-sdk/default.nix57
-rw-r--r--pkgs/development/python-modules/awscrt/default.nix41
-rw-r--r--pkgs/development/python-modules/awsiotpythonsdk/default.nix19
-rw-r--r--pkgs/development/python-modules/awsipranges/default.nix23
-rw-r--r--pkgs/development/python-modules/awslambdaric/default.nix49
-rw-r--r--pkgs/development/python-modules/awswrangler/default.nix16
-rw-r--r--pkgs/development/python-modules/ax/default.nix50
-rw-r--r--pkgs/development/python-modules/axisregistry/default.nix21
-rw-r--r--pkgs/development/python-modules/azure-applicationinsights/default.nix11
-rw-r--r--pkgs/development/python-modules/azure-batch/default.nix23
-rw-r--r--pkgs/development/python-modules/azure-common/default.nix26
-rw-r--r--pkgs/development/python-modules/azure-containerregistry/default.nix17
-rw-r--r--pkgs/development/python-modules/azure-core/default.nix63
-rw-r--r--pkgs/development/python-modules/azure-cosmos/default.nix4
-rw-r--r--pkgs/development/python-modules/azure-cosmosdb-nspkg/default.nix13
-rw-r--r--pkgs/development/python-modules/azure-cosmosdb-table/default.nix23
-rw-r--r--pkgs/development/python-modules/azure-data-tables/default.nix21
-rw-r--r--pkgs/development/python-modules/azure-datalake-store/default.nix17
-rw-r--r--pkgs/development/python-modules/azure-eventgrid/default.nix31
-rw-r--r--pkgs/development/python-modules/azure-eventhub/default.nix23
-rw-r--r--pkgs/development/python-modules/azure-functions-devops-build/default.nix17
-rw-r--r--pkgs/development/python-modules/azure-graphrbac/default.nix13
-rw-r--r--pkgs/development/python-modules/azure-identity/default.nix25
-rw-r--r--pkgs/development/python-modules/azure-keyvault-administration/default.nix29
-rw-r--r--pkgs/development/python-modules/azure-keyvault-certificates/default.nix31
-rw-r--r--pkgs/development/python-modules/azure-keyvault-nspkg/default.nix19
-rw-r--r--pkgs/development/python-modules/azure-keyvault-secrets/default.nix25
-rw-r--r--pkgs/development/python-modules/azure-keyvault/default.nix15
-rw-r--r--pkgs/development/python-modules/azure-loganalytics/default.nix16
-rw-r--r--pkgs/development/python-modules/azure-mgmt-advisor/default.nix23
-rw-r--r--pkgs/development/python-modules/azure-mgmt-appcontainers/default.nix25
-rw-r--r--pkgs/development/python-modules/azure-mgmt-applicationinsights/default.nix28
-rw-r--r--pkgs/development/python-modules/azure-mgmt-authorization/default.nix23
-rw-r--r--pkgs/development/python-modules/azure-mgmt-batch/default.nix25
-rw-r--r--pkgs/development/python-modules/azure-mgmt-batchai/default.nix17
-rw-r--r--pkgs/development/python-modules/azure-mgmt-billing/default.nix17
-rw-r--r--pkgs/development/python-modules/azure-mgmt-cdn/default.nix22
-rw-r--r--pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix15
-rw-r--r--pkgs/development/python-modules/azure-mgmt-commerce/default.nix20
-rw-r--r--pkgs/development/python-modules/azure-mgmt-common/default.nix24
-rw-r--r--pkgs/development/python-modules/azure-mgmt-consumption/default.nix15
-rw-r--r--pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix23
-rw-r--r--pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix15
-rw-r--r--pkgs/development/python-modules/azure-mgmt-containerservice/default.nix33
-rw-r--r--pkgs/development/python-modules/azure-mgmt-core/default.nix16
-rw-r--r--pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix23
-rw-r--r--pkgs/development/python-modules/azure-mgmt-datafactory/default.nix29
-rw-r--r--pkgs/development/python-modules/azure-mgmt-datalake-analytics/default.nix13
-rw-r--r--pkgs/development/python-modules/azure-mgmt-datalake-nspkg/default.nix13
-rw-r--r--pkgs/development/python-modules/azure-mgmt-datalake-store/default.nix20
-rw-r--r--pkgs/development/python-modules/azure-mgmt-datamigration/default.nix28
-rw-r--r--pkgs/development/python-modules/azure-mgmt-devspaces/default.nix13
-rw-r--r--pkgs/development/python-modules/azure-mgmt-devtestlabs/default.nix28
-rw-r--r--pkgs/development/python-modules/azure-mgmt-dns/default.nix20
-rw-r--r--pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix21
-rw-r--r--pkgs/development/python-modules/azure-mgmt-eventhub/default.nix17
-rw-r--r--pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix23
-rw-r--r--pkgs/development/python-modules/azure-mgmt-imagebuilder/default.nix21
-rw-r--r--pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix23
-rw-r--r--pkgs/development/python-modules/azure-mgmt-iothub/default.nix25
-rw-r--r--pkgs/development/python-modules/azure-mgmt-iothubprovisioningservices/default.nix22
-rw-r--r--pkgs/development/python-modules/azure-mgmt-keyvault/default.nix24
-rw-r--r--pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix15
-rw-r--r--pkgs/development/python-modules/azure-mgmt-logic/default.nix21
-rw-r--r--pkgs/development/python-modules/azure-mgmt-machinelearningcompute/default.nix15
-rw-r--r--pkgs/development/python-modules/azure-mgmt-managementgroups/default.nix23
-rw-r--r--pkgs/development/python-modules/azure-mgmt-managementpartner/default.nix15
-rw-r--r--pkgs/development/python-modules/azure-mgmt-maps/default.nix31
-rw-r--r--pkgs/development/python-modules/azure-mgmt-marketplaceordering/default.nix23
-rw-r--r--pkgs/development/python-modules/azure-mgmt-media/default.nix21
-rw-r--r--pkgs/development/python-modules/azure-mgmt-monitor/default.nix25
-rw-r--r--pkgs/development/python-modules/azure-mgmt-msi/default.nix15
-rw-r--r--pkgs/development/python-modules/azure-mgmt-netapp/default.nix26
-rw-r--r--pkgs/development/python-modules/azure-mgmt-network/default.nix39
-rw-r--r--pkgs/development/python-modules/azure-mgmt-notificationhubs/default.nix17
-rw-r--r--pkgs/development/python-modules/azure-mgmt-nspkg/default.nix14
-rw-r--r--pkgs/development/python-modules/azure-mgmt-policyinsights/default.nix23
-rw-r--r--pkgs/development/python-modules/azure-mgmt-powerbiembedded/default.nix15
-rw-r--r--pkgs/development/python-modules/azure-mgmt-privatedns/default.nix23
-rw-r--r--pkgs/development/python-modules/azure-mgmt-rdbms/default.nix23
-rw-r--r--pkgs/development/python-modules/azure-mgmt-recoveryservices/default.nix29
-rw-r--r--pkgs/development/python-modules/azure-mgmt-redhatopenshift/default.nix25
-rw-r--r--pkgs/development/python-modules/azure-mgmt-redis/default.nix25
-rw-r--r--pkgs/development/python-modules/azure-mgmt-relay/default.nix15
-rw-r--r--pkgs/development/python-modules/azure-mgmt-reservations/default.nix17
-rw-r--r--pkgs/development/python-modules/azure-mgmt-resource/default.nix29
-rw-r--r--pkgs/development/python-modules/azure-mgmt-scheduler/default.nix15
-rw-r--r--pkgs/development/python-modules/azure-mgmt-search/default.nix25
-rw-r--r--pkgs/development/python-modules/azure-mgmt-security/default.nix29
-rw-r--r--pkgs/development/python-modules/azure-mgmt-servicebus/default.nix17
-rw-r--r--pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix25
-rw-r--r--pkgs/development/python-modules/azure-mgmt-servicefabricmanagedclusters/default.nix15
-rw-r--r--pkgs/development/python-modules/azure-mgmt-servicelinker/default.nix13
-rw-r--r--pkgs/development/python-modules/azure-mgmt-signalr/default.nix17
-rw-r--r--pkgs/development/python-modules/azure-mgmt-sql/default.nix23
-rw-r--r--pkgs/development/python-modules/azure-mgmt-storage/default.nix43
-rw-r--r--pkgs/development/python-modules/azure-mgmt-subscription/default.nix23
-rw-r--r--pkgs/development/python-modules/azure-mgmt-trafficmanager/default.nix23
-rw-r--r--pkgs/development/python-modules/azure-mgmt-web/default.nix19
-rw-r--r--pkgs/development/python-modules/azure-monitor-ingestion/default.nix25
-rw-r--r--pkgs/development/python-modules/azure-multiapi-storage/default.nix2
-rw-r--r--pkgs/development/python-modules/azure-nspkg/default.nix12
-rw-r--r--pkgs/development/python-modules/azure-servicebus/default.nix29
-rw-r--r--pkgs/development/python-modules/azure-servicefabric/default.nix11
-rw-r--r--pkgs/development/python-modules/azure-servicemanagement-legacy/default.nix16
-rw-r--r--pkgs/development/python-modules/azure-storage-blob/default.nix26
-rw-r--r--pkgs/development/python-modules/azure-storage-common/default.nix19
-rw-r--r--pkgs/development/python-modules/azure-storage-file-share/default.nix38
-rw-r--r--pkgs/development/python-modules/azure-storage-file/default.nix15
-rw-r--r--pkgs/development/python-modules/azure-storage-nspkg/default.nix13
-rw-r--r--pkgs/development/python-modules/azure-storage-queue/default.nix35
-rw-r--r--pkgs/development/python-modules/azure-synapse-artifacts/default.nix25
-rw-r--r--pkgs/development/python-modules/b2sdk/default.nix8
-rw-r--r--pkgs/development/python-modules/babel/default.nix62
-rw-r--r--pkgs/development/python-modules/babelfish/default.nix23
-rw-r--r--pkgs/development/python-modules/babelfont/default.nix46
-rw-r--r--pkgs/development/python-modules/babelgladeextractor/default.nix15
-rw-r--r--pkgs/development/python-modules/backcall/default.nix10
-rw-r--r--pkgs/development/python-modules/backoff/default.nix23
-rw-r--r--pkgs/development/python-modules/backports-cached-property/default.nix25
-rw-r--r--pkgs/development/python-modules/backports-datetime-fromisoformat/default.nix27
-rw-r--r--pkgs/development/python-modules/backports-entry-points-selectable/default.nix21
-rw-r--r--pkgs/development/python-modules/backports-shutil-get-terminal-size/default.nix62
-rw-r--r--pkgs/development/python-modules/backports-shutil-which/default.nix7
-rw-r--r--pkgs/development/python-modules/backports-strenum/default.nix25
-rw-r--r--pkgs/development/python-modules/backports-tarfile/default.nix65
-rw-r--r--pkgs/development/python-modules/backports-zoneinfo/default.nix29
-rw-r--r--pkgs/development/python-modules/bacpypes/default.nix27
-rw-r--r--pkgs/development/python-modules/bagit/default.nix20
-rw-r--r--pkgs/development/python-modules/bambi/default.nix37
-rw-r--r--pkgs/development/python-modules/banal/default.nix11
-rw-r--r--pkgs/development/python-modules/bandcamp-api/default.nix17
-rw-r--r--pkgs/development/python-modules/bandit/default.nix31
-rw-r--r--pkgs/development/python-modules/bangla/default.nix7
-rw-r--r--pkgs/development/python-modules/bap/default.nix15
-rw-r--r--pkgs/development/python-modules/barectf/default.nix31
-rw-r--r--pkgs/development/python-modules/baron/default.nix9
-rw-r--r--pkgs/development/python-modules/base2048/default.nix45
-rw-r--r--pkgs/development/python-modules/base36/default.nix9
-rw-r--r--pkgs/development/python-modules/base58/default.nix13
-rw-r--r--pkgs/development/python-modules/base58check/default.nix19
-rw-r--r--pkgs/development/python-modules/base64io/default.nix21
-rw-r--r--pkgs/development/python-modules/baseline/default.nix8
-rw-r--r--pkgs/development/python-modules/baselines/default.nix35
-rw-r--r--pkgs/development/python-modules/basemap-data/default.nix33
-rw-r--r--pkgs/development/python-modules/basemap/default.nix36
-rw-r--r--pkgs/development/python-modules/bases/default.nix23
-rw-r--r--pkgs/development/python-modules/bash-kernel/default.nix42
-rw-r--r--pkgs/development/python-modules/bash-kernel/test.ipynb26
-rw-r--r--pkgs/development/python-modules/bashlex/default.nix15
-rw-r--r--pkgs/development/python-modules/basiciw/default.nix15
-rw-r--r--pkgs/development/python-modules/batchgenerators/default.nix29
-rw-r--r--pkgs/development/python-modules/batchspawner/default.nix27
-rw-r--r--pkgs/development/python-modules/baycomp/default.nix19
-rw-r--r--pkgs/development/python-modules/bayesian-optimization/default.nix19
-rw-r--r--pkgs/development/python-modules/bayespy/default.nix46
-rw-r--r--pkgs/development/python-modules/bbox/default.nix31
-rw-r--r--pkgs/development/python-modules/bc-detect-secrets/default.nix50
-rw-r--r--pkgs/development/python-modules/bc-jsonpath-ng/default.nix23
-rw-r--r--pkgs/development/python-modules/bc-python-hcl2/default.nix23
-rw-r--r--pkgs/development/python-modules/bcdoc/default.nix13
-rw-r--r--pkgs/development/python-modules/bcf/default.nix27
-rw-r--r--pkgs/development/python-modules/bcg/default.nix23
-rw-r--r--pkgs/development/python-modules/bch/default.nix15
-rw-r--r--pkgs/development/python-modules/bcrypt/3.nix35
-rw-r--r--pkgs/development/python-modules/bcrypt/default.nix57
-rw-r--r--pkgs/development/python-modules/bdffont/default.nix44
-rw-r--r--pkgs/development/python-modules/beaker/default.nix69
-rw-r--r--pkgs/development/python-modules/beancount-black/default.nix33
-rw-r--r--pkgs/development/python-modules/beancount-docverif/default.nix37
-rw-r--r--pkgs/development/python-modules/beancount-parser/default.nix35
-rw-r--r--pkgs/development/python-modules/beancount/default.nix43
-rw-r--r--pkgs/development/python-modules/beanhub-cli/default.nix75
-rw-r--r--pkgs/development/python-modules/beanhub-extract/default.nix40
-rw-r--r--pkgs/development/python-modules/beanhub-forms/default.nix52
-rw-r--r--pkgs/development/python-modules/beanhub-import/default.nix54
-rw-r--r--pkgs/development/python-modules/beanstalkc/default.nix8
-rw-r--r--pkgs/development/python-modules/beartype/default.nix23
-rw-r--r--pkgs/development/python-modules/beautiful-date/default.nix23
-rw-r--r--pkgs/development/python-modules/beautifulsoup4/default.nix60
-rw-r--r--pkgs/development/python-modules/beautifultable/default.nix29
-rw-r--r--pkgs/development/python-modules/beautysh/default.nix33
-rw-r--r--pkgs/development/python-modules/bech32/default.nix11
-rw-r--r--pkgs/development/python-modules/before-after/default.nix8
-rw-r--r--pkgs/development/python-modules/behave/default.nix43
-rw-r--r--pkgs/development/python-modules/bellows/default.nix55
-rw-r--r--pkgs/development/python-modules/bencode-py/default.nix14
-rw-r--r--pkgs/development/python-modules/bencoder/default.nix11
-rw-r--r--pkgs/development/python-modules/beniget/default.nix13
-rw-r--r--pkgs/development/python-modules/bentoml/default.nix233
-rw-r--r--pkgs/development/python-modules/berkeleydb/default.nix38
-rw-r--r--pkgs/development/python-modules/bespon/default.nix12
-rw-r--r--pkgs/development/python-modules/betacode/default.nix10
-rw-r--r--pkgs/development/python-modules/betamax-matchers/default.nix16
-rw-r--r--pkgs/development/python-modules/betamax-serializers/default.nix16
-rw-r--r--pkgs/development/python-modules/betamax/default.nix9
-rw-r--r--pkgs/development/python-modules/betterproto/default.nix1
-rw-r--r--pkgs/development/python-modules/beziers/default.nix25
-rw-r--r--pkgs/development/python-modules/bibtexparser/default.nix30
-rw-r--r--pkgs/development/python-modules/bidict/default.nix28
-rw-r--r--pkgs/development/python-modules/bids-validator/default.nix28
-rw-r--r--pkgs/development/python-modules/biliass/default.nix35
-rw-r--r--pkgs/development/python-modules/bilibili-api-python/default.nix76
-rw-r--r--pkgs/development/python-modules/billiard/default.nix19
-rw-r--r--pkgs/development/python-modules/bimmer-connected/default.nix51
-rw-r--r--pkgs/development/python-modules/binance-connector/default.nix60
-rw-r--r--pkgs/development/python-modules/binary/default.nix23
-rw-r--r--pkgs/development/python-modules/binary2strings/default.nix27
-rw-r--r--pkgs/development/python-modules/binaryornot/default.nix8
-rw-r--r--pkgs/development/python-modules/bincopy/default.nix24
-rw-r--r--pkgs/development/python-modules/bindep/default.nix7
-rw-r--r--pkgs/development/python-modules/binho-host-adapter/default.nix9
-rw-r--r--pkgs/development/python-modules/binwalk/default.nix75
-rw-r--r--pkgs/development/python-modules/biom-format/default.nix61
-rw-r--r--pkgs/development/python-modules/biopandas/default.nix59
-rw-r--r--pkgs/development/python-modules/biopython/close_parser_on_time.patch18
-rw-r--r--pkgs/development/python-modules/biopython/default.nix27
-rw-r--r--pkgs/development/python-modules/bip-utils/default.nix46
-rw-r--r--pkgs/development/python-modules/bip32/default.nix35
-rw-r--r--pkgs/development/python-modules/biplist/default.nix13
-rw-r--r--pkgs/development/python-modules/birch/default.nix26
-rw-r--r--pkgs/development/python-modules/bitarray/default.nix15
-rw-r--r--pkgs/development/python-modules/bitbox02/default.nix38
-rw-r--r--pkgs/development/python-modules/bitcoin-utils-fork-minimal/default.nix17
-rw-r--r--pkgs/development/python-modules/bitcoinlib/default.nix14
-rw-r--r--pkgs/development/python-modules/bitcoinrpc/default.nix25
-rw-r--r--pkgs/development/python-modules/bite-parser/default.nix19
-rw-r--r--pkgs/development/python-modules/bitlist/default.nix37
-rw-r--r--pkgs/development/python-modules/bitmath/default.nix15
-rw-r--r--pkgs/development/python-modules/bitsandbytes/default.nix86
-rw-r--r--pkgs/development/python-modules/bitstring/default.nix39
-rw-r--r--pkgs/development/python-modules/bitstruct/default.nix13
-rw-r--r--pkgs/development/python-modules/bitvavo-aio/default.nix15
-rw-r--r--pkgs/development/python-modules/bizkaibus/default.nix15
-rw-r--r--pkgs/development/python-modules/bjoern/default.nix10
-rw-r--r--pkgs/development/python-modules/bkcharts/default.nix17
-rw-r--r--pkgs/development/python-modules/black-macchiato/default.nix21
-rw-r--r--pkgs/development/python-modules/black/default.nix135
-rw-r--r--pkgs/development/python-modules/blackjax/default.nix63
-rw-r--r--pkgs/development/python-modules/bleach-allowlist/default.nix13
-rw-r--r--pkgs/development/python-modules/bleach/default.nix41
-rw-r--r--pkgs/development/python-modules/bleak-esphome/default.nix33
-rw-r--r--pkgs/development/python-modules/bleak/default.nix35
-rw-r--r--pkgs/development/python-modules/blebox-uniapi/default.nix35
-rw-r--r--pkgs/development/python-modules/bless/default.nix31
-rw-r--r--pkgs/development/python-modules/blessed/default.nix24
-rw-r--r--pkgs/development/python-modules/blessings/default.nix14
-rw-r--r--pkgs/development/python-modules/blinker/default.nix29
-rw-r--r--pkgs/development/python-modules/blinkpy/default.nix33
-rw-r--r--pkgs/development/python-modules/blinkstick/default.nix12
-rw-r--r--pkgs/development/python-modules/blis/default.nix29
-rw-r--r--pkgs/development/python-modules/blobfile/default.nix21
-rw-r--r--pkgs/development/python-modules/block-io/default.nix23
-rw-r--r--pkgs/development/python-modules/blockchain/default.nix13
-rw-r--r--pkgs/development/python-modules/blockdiag/default.nix41
-rw-r--r--pkgs/development/python-modules/blockfrost-python/default.nix13
-rw-r--r--pkgs/development/python-modules/blocksat-cli/default.nix43
-rw-r--r--pkgs/development/python-modules/bloodhound-py/default.nix25
-rw-r--r--pkgs/development/python-modules/bloodyad/default.nix47
-rw-r--r--pkgs/development/python-modules/blosc2/default.nix49
-rw-r--r--pkgs/development/python-modules/bluecurrent-api/default.nix25
-rw-r--r--pkgs/development/python-modules/bluemaestro-ble/default.nix31
-rw-r--r--pkgs/development/python-modules/bluepy-devices/default.nix11
-rw-r--r--pkgs/development/python-modules/bluepy/default.nix11
-rw-r--r--pkgs/development/python-modules/bluetooth-adapters/default.nix51
-rw-r--r--pkgs/development/python-modules/bluetooth-auto-recovery/default.nix4
-rw-r--r--pkgs/development/python-modules/bluetooth-data-tools/default.nix31
-rw-r--r--pkgs/development/python-modules/bluetooth-sensor-state-data/default.nix54
-rw-r--r--pkgs/development/python-modules/blurhash-python/default.nix23
-rw-r--r--pkgs/development/python-modules/blurhash/default.nix13
-rw-r--r--pkgs/development/python-modules/bme280spi/default.nix15
-rw-r--r--pkgs/development/python-modules/bme680/default.nix43
-rw-r--r--pkgs/development/python-modules/bnnumerizer/default.nix7
-rw-r--r--pkgs/development/python-modules/bnunicodenormalizer/default.nix13
-rw-r--r--pkgs/development/python-modules/boa-api/default.nix13
-rw-r--r--pkgs/development/python-modules/boiboite-opener-framework/default.nix32
-rw-r--r--pkgs/development/python-modules/boilerpy3/default.nix10
-rw-r--r--pkgs/development/python-modules/bokeh/default.nix87
-rw-r--r--pkgs/development/python-modules/boltons/default.nix19
-rw-r--r--pkgs/development/python-modules/boltztrap2/default.nix42
-rw-r--r--pkgs/development/python-modules/bond-api/default.nix25
-rw-r--r--pkgs/development/python-modules/bond-async/default.nix23
-rw-r--r--pkgs/development/python-modules/bonsai/default.nix31
-rw-r--r--pkgs/development/python-modules/boolean-py/default.nix19
-rw-r--r--pkgs/development/python-modules/booleanoperations/default.nix14
-rw-r--r--pkgs/development/python-modules/boost-histogram/default.nix31
-rw-r--r--pkgs/development/python-modules/bootstrap/build/default.nix68
-rw-r--r--pkgs/development/python-modules/bootstrap/flit-core/default.nix16
-rw-r--r--pkgs/development/python-modules/bootstrap/installer/default.nix18
-rw-r--r--pkgs/development/python-modules/bootstrap/packaging/default.nix11
-rw-r--r--pkgs/development/python-modules/borb/default.nix64
-rw-r--r--pkgs/development/python-modules/bork/default.nix42
-rw-r--r--pkgs/development/python-modules/boschshcpy/default.nix27
-rw-r--r--pkgs/development/python-modules/boto/default.nix29
-rw-r--r--pkgs/development/python-modules/boto3-stubs/default.nix4
-rw-r--r--pkgs/development/python-modules/boto3/default.nix39
-rw-r--r--pkgs/development/python-modules/botocore-stubs/default.nix27
-rw-r--r--pkgs/development/python-modules/botocore/default.nix43
-rw-r--r--pkgs/development/python-modules/botorch/default.nix41
-rw-r--r--pkgs/development/python-modules/bottle/default.nix51
-rw-r--r--pkgs/development/python-modules/bottleneck/default.nix42
-rw-r--r--pkgs/development/python-modules/bottombar/default.nix17
-rw-r--r--pkgs/development/python-modules/boxx/default.nix39
-rw-r--r--pkgs/development/python-modules/bpemb/default.nix31
-rw-r--r--pkgs/development/python-modules/bpycv/default.nix57
-rw-r--r--pkgs/development/python-modules/bpython/default.nix50
-rw-r--r--pkgs/development/python-modules/bqplot/default.nix25
-rw-r--r--pkgs/development/python-modules/bqscales/default.nix23
-rw-r--r--pkgs/development/python-modules/braceexpand/default.nix11
-rw-r--r--pkgs/development/python-modules/bracex/default.nix17
-rw-r--r--pkgs/development/python-modules/braintree/default.nix23
-rw-r--r--pkgs/development/python-modules/branca/default.nix33
-rw-r--r--pkgs/development/python-modules/bravado-core/default.nix56
-rw-r--r--pkgs/development/python-modules/bravia-tv/default.nix11
-rw-r--r--pkgs/development/python-modules/breathe/default.nix31
-rw-r--r--pkgs/development/python-modules/breezy/default.nix97
-rw-r--r--pkgs/development/python-modules/brelpy/default.nix21
-rw-r--r--pkgs/development/python-modules/brian2/default.nix42
-rw-r--r--pkgs/development/python-modules/bring-api/default.nix4
-rw-r--r--pkgs/development/python-modules/broadbean/default.nix28
-rw-r--r--pkgs/development/python-modules/brother-ql/default.nix36
-rw-r--r--pkgs/development/python-modules/brother/default.nix37
-rw-r--r--pkgs/development/python-modules/brotli-asgi/default.nix27
-rw-r--r--pkgs/development/python-modules/brotli/default.nix17
-rw-r--r--pkgs/development/python-modules/brotlicffi/default.nix25
-rw-r--r--pkgs/development/python-modules/brotlipy/default.nix28
-rw-r--r--pkgs/development/python-modules/brottsplatskartan/default.nix13
-rw-r--r--pkgs/development/python-modules/browser-cookie3/default.nix23
-rw-r--r--pkgs/development/python-modules/brunt/default.nix19
-rw-r--r--pkgs/development/python-modules/bsddb3/default.nix34
-rw-r--r--pkgs/development/python-modules/bsdiff4/default.nix13
-rw-r--r--pkgs/development/python-modules/bson/default.nix11
-rw-r--r--pkgs/development/python-modules/bt-proximity/default.nix13
-rw-r--r--pkgs/development/python-modules/btchip-python/default.nix23
-rw-r--r--pkgs/development/python-modules/btest/default.nix11
-rw-r--r--pkgs/development/python-modules/bthome-ble/default.nix53
-rw-r--r--pkgs/development/python-modules/btrees/default.nix23
-rw-r--r--pkgs/development/python-modules/btrfs/default.nix16
-rw-r--r--pkgs/development/python-modules/btrfsutil/default.nix12
-rw-r--r--pkgs/development/python-modules/btsmarthub-devicelist/default.nix10
-rw-r--r--pkgs/development/python-modules/btsocket/default.nix25
-rw-r--r--pkgs/development/python-modules/bubop/default.nix23
-rw-r--r--pkgs/development/python-modules/bucketstore/default.nix23
-rw-r--r--pkgs/development/python-modules/bugsnag/default.nix27
-rw-r--r--pkgs/development/python-modules/bugwarrior/default.nix46
-rw-r--r--pkgs/development/python-modules/bugz/default.nix8
-rw-r--r--pkgs/development/python-modules/bugzilla/default.nix16
-rw-r--r--pkgs/development/python-modules/buienradar/default.nix34
-rw-r--r--pkgs/development/python-modules/build/default.nix75
-rw-r--r--pkgs/development/python-modules/buildcatrust/default.nix19
-rw-r--r--pkgs/development/python-modules/buildout/default.nix15
-rw-r--r--pkgs/development/python-modules/bumps/default.nix13
-rw-r--r--pkgs/development/python-modules/bunch/default.nix13
-rw-r--r--pkgs/development/python-modules/bundlewrap-keepass/default.nix22
-rw-r--r--pkgs/development/python-modules/bundlewrap-pass/default.nix22
-rw-r--r--pkgs/development/python-modules/bundlewrap-teamvault/default.nix27
-rw-r--r--pkgs/development/python-modules/bundlewrap/default.nix45
-rw-r--r--pkgs/development/python-modules/busypie/default.nix23
-rw-r--r--pkgs/development/python-modules/bwapy/default.nix22
-rw-r--r--pkgs/development/python-modules/bx-py-utils/default.nix43
-rw-r--r--pkgs/development/python-modules/bx-python/default.nix31
-rw-r--r--pkgs/development/python-modules/bytecode/default.nix21
-rw-r--r--pkgs/development/python-modules/bytewax/default.nix72
-rw-r--r--pkgs/development/python-modules/bz2file/default.nix7
-rw-r--r--pkgs/development/python-modules/cachecontrol/default.nix41
-rw-r--r--pkgs/development/python-modules/cached-ipaddress/default.nix27
-rw-r--r--pkgs/development/python-modules/cached-property/default.nix21
-rw-r--r--pkgs/development/python-modules/cachelib/default.nix13
-rw-r--r--pkgs/development/python-modules/cachetools/default.nix29
-rw-r--r--pkgs/development/python-modules/cachey/default.nix27
-rw-r--r--pkgs/development/python-modules/cachier/default.nix33
-rw-r--r--pkgs/development/python-modules/cachy/default.nix11
-rw-r--r--pkgs/development/python-modules/cadquery/default.nix100
-rw-r--r--pkgs/development/python-modules/caio/default.nix35
-rw-r--r--pkgs/development/python-modules/cairocffi/default.nix55
-rw-r--r--pkgs/development/python-modules/cairocffi/dlopen-paths.patch31
-rw-r--r--pkgs/development/python-modules/cairosvg/default.nix33
-rw-r--r--pkgs/development/python-modules/caldav/default.nix42
-rw-r--r--pkgs/development/python-modules/callee/default.nix13
-rw-r--r--pkgs/development/python-modules/calmjs-parse/default.nix17
-rw-r--r--pkgs/development/python-modules/calmjs-types/default.nix9
-rw-r--r--pkgs/development/python-modules/calmjs/default.nix17
-rw-r--r--pkgs/development/python-modules/calver/default.nix15
-rw-r--r--pkgs/development/python-modules/calysto-scheme/default.nix19
-rw-r--r--pkgs/development/python-modules/calysto/default.nix17
-rw-r--r--pkgs/development/python-modules/camelot/default.nix37
-rw-r--r--pkgs/development/python-modules/can/default.nix90
-rw-r--r--pkgs/development/python-modules/canals/default.nix35
-rw-r--r--pkgs/development/python-modules/canmatrix/default.nix87
-rw-r--r--pkgs/development/python-modules/canonicaljson/default.nix33
-rw-r--r--pkgs/development/python-modules/canopen/default.nix33
-rw-r--r--pkgs/development/python-modules/cantools/default.nix39
-rw-r--r--pkgs/development/python-modules/capstone/4.nix23
-rw-r--r--pkgs/development/python-modules/capstone/default.nix23
-rw-r--r--pkgs/development/python-modules/captcha/default.nix15
-rw-r--r--pkgs/development/python-modules/capturer/default.nix9
-rw-r--r--pkgs/development/python-modules/carbon/default.nix25
-rw-r--r--pkgs/development/python-modules/cart/default.nix29
-rw-r--r--pkgs/development/python-modules/cartopy/default.nix64
-rw-r--r--pkgs/development/python-modules/casa-formats-io/default.nix47
-rw-r--r--pkgs/development/python-modules/casbin/default.nix35
-rw-r--r--pkgs/development/python-modules/case/default.nix21
-rw-r--r--pkgs/development/python-modules/cashaddress/default.nix25
-rw-r--r--pkgs/development/python-modules/cashews/default.nix70
-rw-r--r--pkgs/development/python-modules/cassandra-driver/default.nix99
-rw-r--r--pkgs/development/python-modules/castepxbin/default.nix27
-rw-r--r--pkgs/development/python-modules/casttube/default.nix7
-rw-r--r--pkgs/development/python-modules/catalogue/default.nix31
-rw-r--r--pkgs/development/python-modules/catboost/default.nix34
-rw-r--r--pkgs/development/python-modules/catkin-pkg/default.nix2
-rw-r--r--pkgs/development/python-modules/catppuccin/default.nix32
-rw-r--r--pkgs/development/python-modules/cattrs/default.nix58
-rw-r--r--pkgs/development/python-modules/cbor/default.nix6
-rw-r--r--pkgs/development/python-modules/cbor2/default.nix35
-rw-r--r--pkgs/development/python-modules/cccolutils/default.nix31
-rw-r--r--pkgs/development/python-modules/celery-redbeat/default.nix25
-rw-r--r--pkgs/development/python-modules/celery-singleton/default.nix23
-rw-r--r--pkgs/development/python-modules/celery-types/default.nix22
-rw-r--r--pkgs/development/python-modules/celery/default.nix144
-rw-r--r--pkgs/development/python-modules/cement/default.nix13
-rw-r--r--pkgs/development/python-modules/cemm/default.nix31
-rw-r--r--pkgs/development/python-modules/censys/default.nix37
-rw-r--r--pkgs/development/python-modules/cepa/default.nix48
-rw-r--r--pkgs/development/python-modules/cerberus/default.nix23
-rw-r--r--pkgs/development/python-modules/cert-chain-resolver/default.nix25
-rw-r--r--pkgs/development/python-modules/certauth/default.nix29
-rw-r--r--pkgs/development/python-modules/certbot-dns-cloudflare/default.nix17
-rw-r--r--pkgs/development/python-modules/certbot-dns-google/default.nix19
-rw-r--r--pkgs/development/python-modules/certbot-dns-inwx/default.nix16
-rw-r--r--pkgs/development/python-modules/certbot-dns-ovh/default.nix17
-rw-r--r--pkgs/development/python-modules/certbot-dns-rfc2136/default.nix17
-rw-r--r--pkgs/development/python-modules/certbot-dns-route53/default.nix17
-rw-r--r--pkgs/development/python-modules/certbot/default.nix75
-rw-r--r--pkgs/development/python-modules/certifi/default.nix27
-rw-r--r--pkgs/development/python-modules/certipy-ad/default.nix43
-rw-r--r--pkgs/development/python-modules/certipy/default.nix12
-rw-r--r--pkgs/development/python-modules/certomancer/default.nix92
-rw-r--r--pkgs/development/python-modules/certvalidator/default.nix15
-rw-r--r--pkgs/development/python-modules/cexprtk/default.nix9
-rw-r--r--pkgs/development/python-modules/cf-xarray/default.nix49
-rw-r--r--pkgs/development/python-modules/cffconvert/default.nix35
-rw-r--r--pkgs/development/python-modules/cffi/default.nix155
-rw-r--r--pkgs/development/python-modules/cffsubr/default.nix27
-rw-r--r--pkgs/development/python-modules/cfgv/default.nix19
-rw-r--r--pkgs/development/python-modules/cfn-flip/default.nix30
-rw-r--r--pkgs/development/python-modules/cfn-lint/default.nix45
-rw-r--r--pkgs/development/python-modules/cfscrape/default.nix11
-rw-r--r--pkgs/development/python-modules/cftime/default.nix31
-rw-r--r--pkgs/development/python-modules/cgen/default.nix15
-rw-r--r--pkgs/development/python-modules/cgroup-utils/default.nix13
-rw-r--r--pkgs/development/python-modules/chacha20poly1305-reuseable/default.nix43
-rw-r--r--pkgs/development/python-modules/chacha20poly1305/default.nix15
-rw-r--r--pkgs/development/python-modules/chai/default.nix14
-rw-r--r--pkgs/development/python-modules/chainer/default.nix43
-rw-r--r--pkgs/development/python-modules/chainmap/default.nix6
-rw-r--r--pkgs/development/python-modules/chainstream/default.nix10
-rw-r--r--pkgs/development/python-modules/chalice/default.nix49
-rw-r--r--pkgs/development/python-modules/chameleon/default.nix36
-rw-r--r--pkgs/development/python-modules/changefinder/default.nix40
-rw-r--r--pkgs/development/python-modules/channels-redis/default.nix31
-rw-r--r--pkgs/development/python-modules/channels/default.nix31
-rw-r--r--pkgs/development/python-modules/character-encoding-utils/default.nix37
-rw-r--r--pkgs/development/python-modules/characteristic/default.nix7
-rw-r--r--pkgs/development/python-modules/chardet/default.nix19
-rw-r--r--pkgs/development/python-modules/charset-normalizer/default.nix27
-rw-r--r--pkgs/development/python-modules/chart-studio/default.nix37
-rw-r--r--pkgs/development/python-modules/chat-downloader/default.nix21
-rw-r--r--pkgs/development/python-modules/check-manifest/default.nix33
-rw-r--r--pkgs/development/python-modules/checkdmarc/default.nix48
-rw-r--r--pkgs/development/python-modules/checksumdir/default.nix15
-rw-r--r--pkgs/development/python-modules/cheetah3/default.nix15
-rw-r--r--pkgs/development/python-modules/cheroot/default.nix65
-rw-r--r--pkgs/development/python-modules/cherrypy-cors/default.nix23
-rw-r--r--pkgs/development/python-modules/cherrypy/default.nix143
-rw-r--r--pkgs/development/python-modules/chess/default.nix17
-rw-r--r--pkgs/development/python-modules/chevron/default.nix11
-rw-r--r--pkgs/development/python-modules/chex/default.nix39
-rw-r--r--pkgs/development/python-modules/chirpstack-api/default.nix17
-rw-r--r--pkgs/development/python-modules/chispa/default.nix21
-rw-r--r--pkgs/development/python-modules/chroma-hnswlib/default.nix27
-rw-r--r--pkgs/development/python-modules/chromadb/default.nix26
-rw-r--r--pkgs/development/python-modules/chromaprint/default.nix16
-rw-r--r--pkgs/development/python-modules/ci-info/default.nix16
-rw-r--r--pkgs/development/python-modules/ci-py/default.nix19
-rw-r--r--pkgs/development/python-modules/cinemagoer/default.nix13
-rw-r--r--pkgs/development/python-modules/circuit-webhook/default.nix13
-rw-r--r--pkgs/development/python-modules/circuitbreaker/default.nix19
-rw-r--r--pkgs/development/python-modules/circus/default.nix79
-rw-r--r--pkgs/development/python-modules/cirq-aqt/default.nix13
-rw-r--r--pkgs/development/python-modules/cirq-core/default.nix108
-rw-r--r--pkgs/development/python-modules/cirq-ft/default.nix26
-rw-r--r--pkgs/development/python-modules/cirq-google/default.nix18
-rw-r--r--pkgs/development/python-modules/cirq-ionq/default.nix13
-rw-r--r--pkgs/development/python-modules/cirq-pasqal/default.nix13
-rw-r--r--pkgs/development/python-modules/cirq-rigetti/default.nix58
-rw-r--r--pkgs/development/python-modules/cirq-web/default.nix15
-rw-r--r--pkgs/development/python-modules/cirq/default.nix26
-rw-r--r--pkgs/development/python-modules/ciscoconfparse/default.nix41
-rw-r--r--pkgs/development/python-modules/ciscomobilityexpress/default.nix15
-rw-r--r--pkgs/development/python-modules/ciso8601/default.nix21
-rw-r--r--pkgs/development/python-modules/citeproc-py/default.nix22
-rw-r--r--pkgs/development/python-modules/cjkwrap/default.nix8
-rw-r--r--pkgs/development/python-modules/ckcc-protocol/default.nix21
-rw-r--r--pkgs/development/python-modules/clarabel/default.nix29
-rw-r--r--pkgs/development/python-modules/clarifai-grpc/default.nix4
-rw-r--r--pkgs/development/python-modules/clarifai/default.nix6
-rw-r--r--pkgs/development/python-modules/claripy/default.nix6
-rw-r--r--pkgs/development/python-modules/class-doc/default.nix31
-rw-r--r--pkgs/development/python-modules/classify-imports/default.nix19
-rw-r--r--pkgs/development/python-modules/cld2-cffi/default.nix26
-rw-r--r--pkgs/development/python-modules/cle/default.nix10
-rw-r--r--pkgs/development/python-modules/clean-fid/default.nix27
-rw-r--r--pkgs/development/python-modules/cleanlab/default.nix82
-rw-r--r--pkgs/development/python-modules/cleo/default.nix23
-rw-r--r--pkgs/development/python-modules/clevercsv/default.nix39
-rw-r--r--pkgs/development/python-modules/clf/default.nix16
-rw-r--r--pkgs/development/python-modules/cli-helpers/default.nix25
-rw-r--r--pkgs/development/python-modules/cli-ui/default.nix45
-rw-r--r--pkgs/development/python-modules/cliche/default.nix11
-rw-r--r--pkgs/development/python-modules/click-aliases/default.nix25
-rw-r--r--pkgs/development/python-modules/click-command-tree/default.nix23
-rw-r--r--pkgs/development/python-modules/click-completion/default.nix23
-rw-r--r--pkgs/development/python-modules/click-configfile/default.nix23
-rw-r--r--pkgs/development/python-modules/click-datetime/default.nix10
-rw-r--r--pkgs/development/python-modules/click-default-group/default.nix31
-rw-r--r--pkgs/development/python-modules/click-didyoumean/default.nix2
-rw-r--r--pkgs/development/python-modules/click-help-colors/default.nix25
-rw-r--r--pkgs/development/python-modules/click-log/default.nix7
-rw-r--r--pkgs/development/python-modules/click-odoo-contrib/default.nix23
-rw-r--r--pkgs/development/python-modules/click-odoo/default.nix21
-rw-r--r--pkgs/development/python-modules/click-option-group/default.nix25
-rw-r--r--pkgs/development/python-modules/click-plugins/default.nix18
-rw-r--r--pkgs/development/python-modules/click-repl/default.nix31
-rw-r--r--pkgs/development/python-modules/click-shell/default.nix23
-rw-r--r--pkgs/development/python-modules/click-spinner/default.nix36
-rw-r--r--pkgs/development/python-modules/click-threading/default.nix15
-rw-r--r--pkgs/development/python-modules/click/default.nix39
-rw-r--r--pkgs/development/python-modules/clickclick/default.nix29
-rw-r--r--pkgs/development/python-modules/clickgen/default.nix35
-rw-r--r--pkgs/development/python-modules/clickhouse-cityhash/default.nix17
-rw-r--r--pkgs/development/python-modules/clickhouse-cli/default.nix27
-rw-r--r--pkgs/development/python-modules/clickhouse-connect/default.nix48
-rw-r--r--pkgs/development/python-modules/clickhouse-driver/default.nix31
-rw-r--r--pkgs/development/python-modules/cliff/default.nix35
-rw-r--r--pkgs/development/python-modules/cliff/tests.nix11
-rw-r--r--pkgs/development/python-modules/clifford/default.nix29
-rw-r--r--pkgs/development/python-modules/cligj/default.nix18
-rw-r--r--pkgs/development/python-modules/clikit/default.nix61
-rw-r--r--pkgs/development/python-modules/clint/default.nix35
-rw-r--r--pkgs/development/python-modules/clintermission/default.nix19
-rw-r--r--pkgs/development/python-modules/clip-anytorch/default.nix35
-rw-r--r--pkgs/development/python-modules/clip/default.nix17
-rw-r--r--pkgs/development/python-modules/clize/default.nix39
-rw-r--r--pkgs/development/python-modules/clldutils/default.nix41
-rw-r--r--pkgs/development/python-modules/cloudevents/default.nix29
-rw-r--r--pkgs/development/python-modules/cloudflare/default.nix33
-rw-r--r--pkgs/development/python-modules/cloudpathlib/default.nix59
-rw-r--r--pkgs/development/python-modules/cloudpickle/default.nix31
-rw-r--r--pkgs/development/python-modules/cloudscraper/default.nix19
-rw-r--r--pkgs/development/python-modules/cloudsmith-api/default.nix21
-rw-r--r--pkgs/development/python-modules/cloudsplaining/default.nix39
-rw-r--r--pkgs/development/python-modules/cloup/default.nix37
-rw-r--r--pkgs/development/python-modules/clr-loader/default.nix34
-rw-r--r--pkgs/development/python-modules/clr-loader/deps.nix39
-rw-r--r--pkgs/development/python-modules/clustershell/default.nix29
-rw-r--r--pkgs/development/python-modules/cma/default.nix21
-rw-r--r--pkgs/development/python-modules/cmaes/default.nix29
-rw-r--r--pkgs/development/python-modules/cmake/default.nix17
-rw-r--r--pkgs/development/python-modules/cmarkgfm/default.nix29
-rw-r--r--pkgs/development/python-modules/cmd2-ext-test/default.nix31
-rw-r--r--pkgs/development/python-modules/cmd2/default.nix81
-rw-r--r--pkgs/development/python-modules/cmdline/default.nix7
-rw-r--r--pkgs/development/python-modules/cmdstanpy/default.nix66
-rw-r--r--pkgs/development/python-modules/cmigemo/default.nix12
-rw-r--r--pkgs/development/python-modules/cmsis-pack-manager/default.nix56
-rw-r--r--pkgs/development/python-modules/cmsis-svd/default.nix7
-rw-r--r--pkgs/development/python-modules/cnvkit/default.nix50
-rw-r--r--pkgs/development/python-modules/co2signal/default.nix11
-rw-r--r--pkgs/development/python-modules/coapthon3/default.nix10
-rw-r--r--pkgs/development/python-modules/cobs/default.nix9
-rw-r--r--pkgs/development/python-modules/cock/default.nix15
-rw-r--r--pkgs/development/python-modules/coconut/default.nix47
-rw-r--r--pkgs/development/python-modules/cocotb-bus/default.nix7
-rw-r--r--pkgs/development/python-modules/cocotb/default.nix72
-rw-r--r--pkgs/development/python-modules/codecov/default.nix17
-rw-r--r--pkgs/development/python-modules/codepy/default.nix21
-rw-r--r--pkgs/development/python-modules/coffea/default.nix100
-rw-r--r--pkgs/development/python-modules/cogapp/default.nix15
-rw-r--r--pkgs/development/python-modules/cohere/default.nix39
-rw-r--r--pkgs/development/python-modules/coincurve/default.nix77
-rw-r--r--pkgs/development/python-modules/coinmetrics-api-client/default.nix43
-rw-r--r--pkgs/development/python-modules/colander/default.nix27
-rw-r--r--pkgs/development/python-modules/colanderalchemy/default.nix16
-rw-r--r--pkgs/development/python-modules/collections-extended/default.nix25
-rw-r--r--pkgs/development/python-modules/collidoscope/default.nix29
-rw-r--r--pkgs/development/python-modules/color-operations/default.nix58
-rw-r--r--pkgs/development/python-modules/colorama/default.nix8
-rw-r--r--pkgs/development/python-modules/colorcet/default.nix27
-rw-r--r--pkgs/development/python-modules/colorclass/default.nix6
-rw-r--r--pkgs/development/python-modules/colored-traceback/default.nix9
-rw-r--r--pkgs/development/python-modules/colored/default.nix27
-rw-r--r--pkgs/development/python-modules/coloredlogs/default.nix25
-rw-r--r--pkgs/development/python-modules/colorful/default.nix19
-rw-r--r--pkgs/development/python-modules/colorlog/default.nix23
-rw-r--r--pkgs/development/python-modules/colorlover/default.nix7
-rw-r--r--pkgs/development/python-modules/colormath/default.nix31
-rw-r--r--pkgs/development/python-modules/colorspacious/default.nix12
-rw-r--r--pkgs/development/python-modules/colorthief/default.nix13
-rw-r--r--pkgs/development/python-modules/colorzero/default.nix24
-rw-r--r--pkgs/development/python-modules/colour/default.nix17
-rw-r--r--pkgs/development/python-modules/colout/default.nix23
-rw-r--r--pkgs/development/python-modules/cometblue-lite/default.nix17
-rw-r--r--pkgs/development/python-modules/comicon/default.nix32
-rw-r--r--pkgs/development/python-modules/comm/default.nix26
-rw-r--r--pkgs/development/python-modules/command-runner/default.nix34
-rw-r--r--pkgs/development/python-modules/commandlines/default.nix14
-rw-r--r--pkgs/development/python-modules/commandparse/default.nix13
-rw-r--r--pkgs/development/python-modules/commentjson/default.nix14
-rw-r--r--pkgs/development/python-modules/commoncode/default.nix84
-rw-r--r--pkgs/development/python-modules/commonmark/default.nix11
-rw-r--r--pkgs/development/python-modules/compiledb/default.nix31
-rw-r--r--pkgs/development/python-modules/complycube/default.nix21
-rw-r--r--pkgs/development/python-modules/compreffor/default.nix31
-rw-r--r--pkgs/development/python-modules/compressai/default.nix37
-rw-r--r--pkgs/development/python-modules/compressed-rtf/default.nix29
-rw-r--r--pkgs/development/python-modules/concurrent-log-handler/default.nix23
-rw-r--r--pkgs/development/python-modules/conda-libmamba-solver/default.nix4
-rw-r--r--pkgs/development/python-modules/conda-package-handling/default.nix6
-rw-r--r--pkgs/development/python-modules/conda-package-streaming/default.nix8
-rw-r--r--pkgs/development/python-modules/conda/default.nix8
-rw-r--r--pkgs/development/python-modules/confection/default.nix29
-rw-r--r--pkgs/development/python-modules/configargparse/default.nix25
-rw-r--r--pkgs/development/python-modules/configclass/default.nix13
-rw-r--r--pkgs/development/python-modules/confight/default.nix19
-rw-r--r--pkgs/development/python-modules/configobj/default.nix31
-rw-r--r--pkgs/development/python-modules/configparser/default.nix21
-rw-r--r--pkgs/development/python-modules/configshell/default.nix17
-rw-r--r--pkgs/development/python-modules/configupdater/default.nix20
-rw-r--r--pkgs/development/python-modules/confluent-kafka/default.nix49
-rw-r--r--pkgs/development/python-modules/confuse/default.nix31
-rw-r--r--pkgs/development/python-modules/connect-box/default.nix37
-rw-r--r--pkgs/development/python-modules/connection-pool/default.nix9
-rw-r--r--pkgs/development/python-modules/connexion/default.nix76
-rw-r--r--pkgs/development/python-modules/connio/default.nix19
-rw-r--r--pkgs/development/python-modules/cons/default.nix23
-rw-r--r--pkgs/development/python-modules/consonance/default.nix33
-rw-r--r--pkgs/development/python-modules/constantly/default.nix33
-rw-r--r--pkgs/development/python-modules/construct-classes/default.nix33
-rw-r--r--pkgs/development/python-modules/construct/default.nix41
-rw-r--r--pkgs/development/python-modules/consul/default.nix16
-rw-r--r--pkgs/development/python-modules/container-inspector/default.nix37
-rw-r--r--pkgs/development/python-modules/contexter/default.nix9
-rw-r--r--pkgs/development/python-modules/contextlib2/default.nix19
-rw-r--r--pkgs/development/python-modules/contexttimer/default.nix20
-rw-r--r--pkgs/development/python-modules/contourpy/default.nix129
-rw-r--r--pkgs/development/python-modules/controku/default.nix55
-rw-r--r--pkgs/development/python-modules/convertdate/default.nix23
-rw-r--r--pkgs/development/python-modules/conway-polynomials/default.nix18
-rw-r--r--pkgs/development/python-modules/cookiecutter/default.nix35
-rw-r--r--pkgs/development/python-modules/cookies/default.nix15
-rw-r--r--pkgs/development/python-modules/coordinates/default.nix30
-rw-r--r--pkgs/development/python-modules/coqpit/default.nix23
-rw-r--r--pkgs/development/python-modules/coredis/default.nix29
-rw-r--r--pkgs/development/python-modules/cornice/default.nix45
-rw-r--r--pkgs/development/python-modules/correctionlib/default.nix71
-rw-r--r--pkgs/development/python-modules/corsair-scan/default.nix27
-rw-r--r--pkgs/development/python-modules/cose/default.nix23
-rw-r--r--pkgs/development/python-modules/cot/default.nix39
-rw-r--r--pkgs/development/python-modules/courlan/default.nix56
-rw-r--r--pkgs/development/python-modules/cov-core/default.nix18
-rw-r--r--pkgs/development/python-modules/coverage/default.nix21
-rw-r--r--pkgs/development/python-modules/coveralls/default.nix86
-rw-r--r--pkgs/development/python-modules/cppe/default.nix43
-rw-r--r--pkgs/development/python-modules/cppheaderparser/default.nix9
-rw-r--r--pkgs/development/python-modules/cppy/default.nix17
-rw-r--r--pkgs/development/python-modules/cpufeature/default.nix34
-rw-r--r--pkgs/development/python-modules/cpyparsing/default.nix29
-rw-r--r--pkgs/development/python-modules/craft-application-1/default.nix42
-rw-r--r--pkgs/development/python-modules/craft-application/default.nix30
-rw-r--r--pkgs/development/python-modules/craft-archives/default.nix36
-rw-r--r--pkgs/development/python-modules/craft-cli/default.nix31
-rw-r--r--pkgs/development/python-modules/craft-grammar/default.nix36
-rw-r--r--pkgs/development/python-modules/craft-parts/default.nix96
-rw-r--r--pkgs/development/python-modules/craft-providers/default.nix51
-rw-r--r--pkgs/development/python-modules/craft-store/default.nix6
-rw-r--r--pkgs/development/python-modules/cram/default.nix11
-rw-r--r--pkgs/development/python-modules/cramjam/default.nix39
-rw-r--r--pkgs/development/python-modules/crashtest/default.nix7
-rw-r--r--pkgs/development/python-modules/crate/default.nix31
-rw-r--r--pkgs/development/python-modules/crayons/default.nix7
-rw-r--r--pkgs/development/python-modules/crc16/default.nix25
-rw-r--r--pkgs/development/python-modules/crc32c/default.nix17
-rw-r--r--pkgs/development/python-modules/crccheck/default.nix18
-rw-r--r--pkgs/development/python-modules/crcmod/default.nix6
-rw-r--r--pkgs/development/python-modules/credstash/default.nix2
-rw-r--r--pkgs/development/python-modules/criticality-score/default.nix15
-rw-r--r--pkgs/development/python-modules/cron-descriptor/default.nix17
-rw-r--r--pkgs/development/python-modules/croniter/default.nix31
-rw-r--r--pkgs/development/python-modules/cronsim/default.nix19
-rw-r--r--pkgs/development/python-modules/crontab/default.nix25
-rw-r--r--pkgs/development/python-modules/crossandra/default.nix39
-rw-r--r--pkgs/development/python-modules/crossplane/default.nix19
-rw-r--r--pkgs/development/python-modules/crownstone-cloud/default.nix57
-rw-r--r--pkgs/development/python-modules/crownstone-core/default.nix25
-rw-r--r--pkgs/development/python-modules/crownstone-sse/default.nix37
-rw-r--r--pkgs/development/python-modules/crownstone-uart/default.nix17
-rw-r--r--pkgs/development/python-modules/cryptacular/default.nix27
-rw-r--r--pkgs/development/python-modules/cryptg/default.nix25
-rw-r--r--pkgs/development/python-modules/cryptodatahub/default.nix46
-rw-r--r--pkgs/development/python-modules/cryptography/default.nix86
-rw-r--r--pkgs/development/python-modules/cryptography/vectors.nix24
-rw-r--r--pkgs/development/python-modules/cryptolyzer/default.nix45
-rw-r--r--pkgs/development/python-modules/cryptoparser/default.nix44
-rw-r--r--pkgs/development/python-modules/crysp/default.nix23
-rw-r--r--pkgs/development/python-modules/crytic-compile/default.nix28
-rw-r--r--pkgs/development/python-modules/cson/default.nix11
-rw-r--r--pkgs/development/python-modules/csrmesh/default.nix11
-rw-r--r--pkgs/development/python-modules/css-html-js-minify/default.nix13
-rw-r--r--pkgs/development/python-modules/css-inline/Cargo.lock100
-rw-r--r--pkgs/development/python-modules/css-inline/default.nix55
-rw-r--r--pkgs/development/python-modules/css-parser/default.nix13
-rw-r--r--pkgs/development/python-modules/cssbeautifier/default.nix25
-rw-r--r--pkgs/development/python-modules/csscompressor/default.nix10
-rw-r--r--pkgs/development/python-modules/cssmin/default.nix8
-rw-r--r--pkgs/development/python-modules/cssselect/default.nix23
-rw-r--r--pkgs/development/python-modules/cssselect2/default.nix28
-rw-r--r--pkgs/development/python-modules/cssutils/default.nix40
-rw-r--r--pkgs/development/python-modules/cstruct/default.nix17
-rw-r--r--pkgs/development/python-modules/csv2md/default.nix28
-rw-r--r--pkgs/development/python-modules/csvw/default.nix51
-rw-r--r--pkgs/development/python-modules/ctap-keyring-device/default.nix23
-rw-r--r--pkgs/development/python-modules/ctranslate2/default.nix35
-rw-r--r--pkgs/development/python-modules/cu2qu/default.nix35
-rw-r--r--pkgs/development/python-modules/cucumber-tag-expressions/default.nix23
-rw-r--r--pkgs/development/python-modules/cufflinks/default.nix53
-rw-r--r--pkgs/development/python-modules/cupy/default.nix35
-rw-r--r--pkgs/development/python-modules/curio/default.nix42
-rw-r--r--pkgs/development/python-modules/curl-cffi/default.nix42
-rw-r--r--pkgs/development/python-modules/curl-cffi/use-system-libs.patch23
-rw-r--r--pkgs/development/python-modules/curlify/default.nix11
-rw-r--r--pkgs/development/python-modules/curtsies/default.nix31
-rw-r--r--pkgs/development/python-modules/curve25519-donna/default.nix6
-rw-r--r--pkgs/development/python-modules/curvefitgui/default.nix47
-rw-r--r--pkgs/development/python-modules/customtkinter/default.nix53
-rw-r--r--pkgs/development/python-modules/cvelib/default.nix49
-rw-r--r--pkgs/development/python-modules/cvss/default.nix23
-rw-r--r--pkgs/development/python-modules/cvxopt/default.nix85
-rw-r--r--pkgs/development/python-modules/cvxpy/default.nix84
-rw-r--r--pkgs/development/python-modules/cwcwidth/default.nix14
-rw-r--r--pkgs/development/python-modules/cwl-upgrader/default.nix29
-rw-r--r--pkgs/development/python-modules/cwlformat/default.nix27
-rw-r--r--pkgs/development/python-modules/cx-freeze/default.nix27
-rw-r--r--pkgs/development/python-modules/cx-oracle/default.nix7
-rw-r--r--pkgs/development/python-modules/cxxfilt/default.nix29
-rw-r--r--pkgs/development/python-modules/cycler/default.nix21
-rw-r--r--pkgs/development/python-modules/cyclonedx-python-lib/default.nix66
-rw-r--r--pkgs/development/python-modules/cyclopts/default.nix64
-rw-r--r--pkgs/development/python-modules/cymem/default.nix23
-rw-r--r--pkgs/development/python-modules/cypari2/default.nix34
-rw-r--r--pkgs/development/python-modules/cypherpunkpay/default.nix57
-rw-r--r--pkgs/development/python-modules/cysignals/default.nix41
-rw-r--r--pkgs/development/python-modules/cython-test-exception-raiser/default.nix22
-rw-r--r--pkgs/development/python-modules/cython/0.nix54
-rw-r--r--pkgs/development/python-modules/cython/default.nix59
-rw-r--r--pkgs/development/python-modules/cytoolz/default.nix21
-rw-r--r--pkgs/development/python-modules/dacite/default.nix23
-rw-r--r--pkgs/development/python-modules/daemonize/default.nix8
-rw-r--r--pkgs/development/python-modules/daemonocle/default.nix21
-rw-r--r--pkgs/development/python-modules/daff/default.nix11
-rw-r--r--pkgs/development/python-modules/dahlia/default.nix31
-rw-r--r--pkgs/development/python-modules/daiquiri/default.nix23
-rw-r--r--pkgs/development/python-modules/dalle-mini/default.nix29
-rw-r--r--pkgs/development/python-modules/daphne/default.nix59
-rw-r--r--pkgs/development/python-modules/daqp/default.nix31
-rw-r--r--pkgs/development/python-modules/darkdetect/default.nix25
-rw-r--r--pkgs/development/python-modules/dasbus/default.nix15
-rw-r--r--pkgs/development/python-modules/dash-bootstrap-components/default.nix41
-rw-r--r--pkgs/development/python-modules/dash-core-components/default.nix9
-rw-r--r--pkgs/development/python-modules/dash-html-components/default.nix7
-rw-r--r--pkgs/development/python-modules/dash-renderer/default.nix7
-rw-r--r--pkgs/development/python-modules/dash-table/default.nix9
-rw-r--r--pkgs/development/python-modules/dash/default.nix82
-rw-r--r--pkgs/development/python-modules/dashing/default.nix15
-rw-r--r--pkgs/development/python-modules/dask-awkward/default.nix65
-rw-r--r--pkgs/development/python-modules/dask-expr/default.nix18
-rw-r--r--pkgs/development/python-modules/dask-gateway-server/default.nix47
-rw-r--r--pkgs/development/python-modules/dask-gateway/default.nix17
-rw-r--r--pkgs/development/python-modules/dask-glm/default.nix37
-rw-r--r--pkgs/development/python-modules/dask-histogram/default.nix25
-rw-r--r--pkgs/development/python-modules/dask-image/default.nix62
-rw-r--r--pkgs/development/python-modules/dask-jobqueue/default.nix31
-rw-r--r--pkgs/development/python-modules/dask-ml/default.nix70
-rw-r--r--pkgs/development/python-modules/dask-mpi/default.nix21
-rw-r--r--pkgs/development/python-modules/dask-yarn/default.nix60
-rw-r--r--pkgs/development/python-modules/dask/default.nix369
-rw-r--r--pkgs/development/python-modules/databases/default.nix73
-rw-r--r--pkgs/development/python-modules/databricks-cli/default.nix35
-rw-r--r--pkgs/development/python-modules/databricks-connect/default.nix27
-rw-r--r--pkgs/development/python-modules/databricks-sql-connector/default.nix49
-rw-r--r--pkgs/development/python-modules/dataclass-factory/default.nix19
-rw-r--r--pkgs/development/python-modules/dataclass-wizard/default.nix62
-rw-r--r--pkgs/development/python-modules/dataclasses-json/default.nix31
-rw-r--r--pkgs/development/python-modules/dataclasses-serialization/default.nix21
-rw-r--r--pkgs/development/python-modules/datadiff/default.nix13
-rw-r--r--pkgs/development/python-modules/datadog/default.nix43
-rw-r--r--pkgs/development/python-modules/datafusion/default.nix55
-rw-r--r--pkgs/development/python-modules/datamodeldict/default.nix19
-rw-r--r--pkgs/development/python-modules/datapoint/default.nix27
-rw-r--r--pkgs/development/python-modules/dataprep-ml/default.nix43
-rw-r--r--pkgs/development/python-modules/dataproperty/default.nix29
-rw-r--r--pkgs/development/python-modules/dataset/default.nix19
-rw-r--r--pkgs/development/python-modules/datasets/default.nix50
-rw-r--r--pkgs/development/python-modules/datasette-publish-fly/default.nix25
-rw-r--r--pkgs/development/python-modules/datasette-template-sql/default.nix21
-rw-r--r--pkgs/development/python-modules/datasette/default.nix63
-rw-r--r--pkgs/development/python-modules/datashader/default.nix61
-rw-r--r--pkgs/development/python-modules/datashape/default.nix66
-rw-r--r--pkgs/development/python-modules/datatable/default.nix40
-rw-r--r--pkgs/development/python-modules/datauri/default.nix39
-rw-r--r--pkgs/development/python-modules/datefinder/default.nix19
-rw-r--r--pkgs/development/python-modules/dateparser/default.nix48
-rw-r--r--pkgs/development/python-modules/datetime/default.nix17
-rw-r--r--pkgs/development/python-modules/dateutils/default.nix10
-rw-r--r--pkgs/development/python-modules/datrie/default.nix17
-rw-r--r--pkgs/development/python-modules/dawg-python/default.nix7
-rw-r--r--pkgs/development/python-modules/dazl/default.nix48
-rw-r--r--pkgs/development/python-modules/db-dtypes/default.nix33
-rw-r--r--pkgs/development/python-modules/dbf/default.nix21
-rw-r--r--pkgs/development/python-modules/dbfread/default.nix32
-rw-r--r--pkgs/development/python-modules/dbglib/default.nix19
-rw-r--r--pkgs/development/python-modules/dbt-bigquery/default.nix47
-rw-r--r--pkgs/development/python-modules/dbt-core/default.nix72
-rw-r--r--pkgs/development/python-modules/dbt-core/with-adapters.nix28
-rw-r--r--pkgs/development/python-modules/dbt-extractor/default.nix30
-rw-r--r--pkgs/development/python-modules/dbt-postgres/default.nix23
-rw-r--r--pkgs/development/python-modules/dbt-redshift/default.nix47
-rw-r--r--pkgs/development/python-modules/dbt-semantic-interfaces/default.nix49
-rw-r--r--pkgs/development/python-modules/dbt-snowflake/default.nix37
-rw-r--r--pkgs/development/python-modules/dbus-client-gen/default.nix9
-rw-r--r--pkgs/development/python-modules/dbus-deviation/default.nix19
-rw-r--r--pkgs/development/python-modules/dbus-fast/default.nix38
-rw-r--r--pkgs/development/python-modules/dbus-next/default.nix26
-rw-r--r--pkgs/development/python-modules/dbus-python-client-gen/default.nix21
-rw-r--r--pkgs/development/python-modules/dbus-python/default.nix203
-rw-r--r--pkgs/development/python-modules/dbus-signature-pyparsing/default.nix17
-rw-r--r--pkgs/development/python-modules/dbutils/default.nix31
-rw-r--r--pkgs/development/python-modules/dcmstack/default.nix36
-rw-r--r--pkgs/development/python-modules/dctorch/default.nix23
-rw-r--r--pkgs/development/python-modules/ddt/default.nix33
-rw-r--r--pkgs/development/python-modules/deal-solver/default.nix21
-rw-r--r--pkgs/development/python-modules/deal/default.nix41
-rw-r--r--pkgs/development/python-modules/deap/default.nix25
-rw-r--r--pkgs/development/python-modules/debian-inspector/default.nix37
-rw-r--r--pkgs/development/python-modules/debian/default.nix19
-rw-r--r--pkgs/development/python-modules/debianbts/default.nix25
-rw-r--r--pkgs/development/python-modules/debtcollector/default.nix17
-rw-r--r--pkgs/development/python-modules/debtcollector/tests.nix7
-rw-r--r--pkgs/development/python-modules/debts/default.nix17
-rw-r--r--pkgs/development/python-modules/debuglater/default.nix31
-rw-r--r--pkgs/development/python-modules/debugpy/default.nix175
-rw-r--r--pkgs/development/python-modules/decli/default.nix25
-rw-r--r--pkgs/development/python-modules/decopatch/default.nix25
-rw-r--r--pkgs/development/python-modules/decorator/default.nix21
-rw-r--r--pkgs/development/python-modules/deebot-client/default.nix4
-rw-r--r--pkgs/development/python-modules/deemix/default.nix25
-rw-r--r--pkgs/development/python-modules/deep-chainmap/default.nix9
-rw-r--r--pkgs/development/python-modules/deep-translator/default.nix23
-rw-r--r--pkgs/development/python-modules/deepdiff/default.nix40
-rw-r--r--pkgs/development/python-modules/deepdish/default.nix19
-rw-r--r--pkgs/development/python-modules/deepl/default.nix23
-rw-r--r--pkgs/development/python-modules/deepmerge/default.nix27
-rw-r--r--pkgs/development/python-modules/deeptoolsintervals/default.nix18
-rw-r--r--pkgs/development/python-modules/deepwave/default.nix26
-rw-r--r--pkgs/development/python-modules/deezer-py/default.nix13
-rw-r--r--pkgs/development/python-modules/deezer-python/default.nix45
-rw-r--r--pkgs/development/python-modules/defang/default.nix25
-rw-r--r--pkgs/development/python-modules/defcon/default.nix35
-rw-r--r--pkgs/development/python-modules/deform/default.nix20
-rw-r--r--pkgs/development/python-modules/defusedcsv/default.nix21
-rw-r--r--pkgs/development/python-modules/defusedxml/default.nix30
-rw-r--r--pkgs/development/python-modules/dehinter/default.nix20
-rw-r--r--pkgs/development/python-modules/deid/default.nix23
-rw-r--r--pkgs/development/python-modules/dek/default.nix31
-rw-r--r--pkgs/development/python-modules/delegator-py/default.nix9
-rw-r--r--pkgs/development/python-modules/delorean/default.nix21
-rw-r--r--pkgs/development/python-modules/deltachat/default.nix33
-rw-r--r--pkgs/development/python-modules/deltachat2/default.nix42
-rw-r--r--pkgs/development/python-modules/deltachat2/paths.patch13
-rw-r--r--pkgs/development/python-modules/deluge-client/default.nix19
-rw-r--r--pkgs/development/python-modules/demes/default.nix33
-rw-r--r--pkgs/development/python-modules/demesdraw/default.nix35
-rw-r--r--pkgs/development/python-modules/demetriek/default.nix44
-rw-r--r--pkgs/development/python-modules/demjson3/default.nix15
-rw-r--r--pkgs/development/python-modules/demoji/default.nix31
-rw-r--r--pkgs/development/python-modules/dendropy/default.nix19
-rw-r--r--pkgs/development/python-modules/denonavr/default.nix47
-rw-r--r--pkgs/development/python-modules/dep-logic/default.nix31
-rw-r--r--pkgs/development/python-modules/dependency-injector/default.nix83
-rw-r--r--pkgs/development/python-modules/deploykit/default.nix32
-rw-r--r--pkgs/development/python-modules/deprecat/default.nix31
-rw-r--r--pkgs/development/python-modules/deprecated/default.nix30
-rw-r--r--pkgs/development/python-modules/deprecation/default.nix15
-rw-r--r--pkgs/development/python-modules/derpconf/default.nix19
-rw-r--r--pkgs/development/python-modules/desktop-entry-lib/default.nix13
-rw-r--r--pkgs/development/python-modules/desktop-notifier/default.nix44
-rw-r--r--pkgs/development/python-modules/detect-secrets/default.nix39
-rw-r--r--pkgs/development/python-modules/detectron2/default.nix153
-rw-r--r--pkgs/development/python-modules/devgoldyutils/default.nix30
-rw-r--r--pkgs/development/python-modules/devialet/default.nix25
-rw-r--r--pkgs/development/python-modules/devito/default.nix151
-rw-r--r--pkgs/development/python-modules/devolo-home-control-api/default.nix25
-rw-r--r--pkgs/development/python-modules/devolo-plc-api/default.nix37
-rw-r--r--pkgs/development/python-modules/devpi-common/default.nix39
-rw-r--r--pkgs/development/python-modules/devtools/default.nix29
-rw-r--r--pkgs/development/python-modules/dfdiskcache/default.nix17
-rw-r--r--pkgs/development/python-modules/diagrams/default.nix36
-rw-r--r--pkgs/development/python-modules/diceware/default.nix25
-rw-r--r--pkgs/development/python-modules/dicom-numpy/default.nix23
-rw-r--r--pkgs/development/python-modules/dicom2nifti/default.nix47
-rw-r--r--pkgs/development/python-modules/dicomweb-client/default.nix27
-rw-r--r--pkgs/development/python-modules/dict2xml/default.nix19
-rw-r--r--pkgs/development/python-modules/dictdiffer/default.nix25
-rw-r--r--pkgs/development/python-modules/dictionaries/default.nix7
-rw-r--r--pkgs/development/python-modules/dicttoxml/default.nix7
-rw-r--r--pkgs/development/python-modules/dicttoxml2/default.nix15
-rw-r--r--pkgs/development/python-modules/diff-cover/default.nix43
-rw-r--r--pkgs/development/python-modules/diff-match-patch/default.nix19
-rw-r--r--pkgs/development/python-modules/diffimg/default.nix37
-rw-r--r--pkgs/development/python-modules/diffsync/default.nix25
-rw-r--r--pkgs/development/python-modules/diffusers/default.nix174
-rw-r--r--pkgs/development/python-modules/digi-xbee/default.nix14
-rw-r--r--pkgs/development/python-modules/dill/default.nix25
-rw-r--r--pkgs/development/python-modules/dinghy/default.nix48
-rw-r--r--pkgs/development/python-modules/dingz/default.nix19
-rw-r--r--pkgs/development/python-modules/diofant/default.nix35
-rw-r--r--pkgs/development/python-modules/dipy/default.nix23
-rw-r--r--pkgs/development/python-modules/directv/default.nix17
-rw-r--r--pkgs/development/python-modules/dirigera/default.nix4
-rw-r--r--pkgs/development/python-modules/dirty-equals/default.nix34
-rw-r--r--pkgs/development/python-modules/dirtyjson/default.nix30
-rw-r--r--pkgs/development/python-modules/discid/default.nix16
-rw-r--r--pkgs/development/python-modules/discogs-client/default.nix25
-rw-r--r--pkgs/development/python-modules/discordpy/default.nix51
-rw-r--r--pkgs/development/python-modules/discovery30303/default.nix27
-rw-r--r--pkgs/development/python-modules/diskcache/default.nix21
-rw-r--r--pkgs/development/python-modules/dissect-archive/default.nix45
-rw-r--r--pkgs/development/python-modules/dissect-btrfs/default.nix35
-rw-r--r--pkgs/development/python-modules/dissect-cim/default.nix39
-rw-r--r--pkgs/development/python-modules/dissect-clfs/default.nix35
-rw-r--r--pkgs/development/python-modules/dissect-cobaltstrike/default.nix43
-rw-r--r--pkgs/development/python-modules/dissect-cstruct/default.nix29
-rw-r--r--pkgs/development/python-modules/dissect-esedb/default.nix31
-rw-r--r--pkgs/development/python-modules/dissect-etl/default.nix35
-rw-r--r--pkgs/development/python-modules/dissect-eventlog/default.nix33
-rw-r--r--pkgs/development/python-modules/dissect-evidence/default.nix35
-rw-r--r--pkgs/development/python-modules/dissect-executable/default.nix29
-rw-r--r--pkgs/development/python-modules/dissect-extfs/default.nix33
-rw-r--r--pkgs/development/python-modules/dissect-fat/default.nix29
-rw-r--r--pkgs/development/python-modules/dissect-ffs/default.nix39
-rw-r--r--pkgs/development/python-modules/dissect-hypervisor/default.nix41
-rw-r--r--pkgs/development/python-modules/dissect-jffs/default.nix25
-rw-r--r--pkgs/development/python-modules/dissect-ntfs/default.nix33
-rw-r--r--pkgs/development/python-modules/dissect-ole/default.nix33
-rw-r--r--pkgs/development/python-modules/dissect-regf/default.nix33
-rw-r--r--pkgs/development/python-modules/dissect-shellitem/default.nix39
-rw-r--r--pkgs/development/python-modules/dissect-sql/default.nix39
-rw-r--r--pkgs/development/python-modules/dissect-squashfs/default.nix37
-rw-r--r--pkgs/development/python-modules/dissect-target/default.nix167
-rw-r--r--pkgs/development/python-modules/dissect-thumbcache/default.nix35
-rw-r--r--pkgs/development/python-modules/dissect-util/default.nix27
-rw-r--r--pkgs/development/python-modules/dissect-vmfs/default.nix33
-rw-r--r--pkgs/development/python-modules/dissect-volume/default.nix33
-rw-r--r--pkgs/development/python-modules/dissect-xfs/default.nix39
-rw-r--r--pkgs/development/python-modules/dissect/default.nix82
-rw-r--r--pkgs/development/python-modules/dissononce/default.nix16
-rw-r--r--pkgs/development/python-modules/distlib/default.nix15
-rw-r--r--pkgs/development/python-modules/distorm3/default.nix27
-rw-r--r--pkgs/development/python-modules/distrax/default.nix27
-rw-r--r--pkgs/development/python-modules/distributed/default.nix73
-rw-r--r--pkgs/development/python-modules/distro/default.nix15
-rw-r--r--pkgs/development/python-modules/distutils-cfg/default.nix38
-rw-r--r--pkgs/development/python-modules/distutils-extra/default.nix11
-rw-r--r--pkgs/development/python-modules/dj-database-url/default.nix34
-rw-r--r--pkgs/development/python-modules/dj-email-url/default.nix11
-rw-r--r--pkgs/development/python-modules/dj-rest-auth/default.nix67
-rw-r--r--pkgs/development/python-modules/dj-search-url/default.nix8
-rw-r--r--pkgs/development/python-modules/dj-static/default.nix23
-rw-r--r--pkgs/development/python-modules/django-admin-datta/default.nix19
-rw-r--r--pkgs/development/python-modules/django-admin-sortable2/default.nix26
-rw-r--r--pkgs/development/python-modules/django-allauth-2fa/default.nix28
-rw-r--r--pkgs/development/python-modules/django-allauth/default.nix72
-rw-r--r--pkgs/development/python-modules/django-annoying/default.nix19
-rw-r--r--pkgs/development/python-modules/django-anymail/default.nix37
-rw-r--r--pkgs/development/python-modules/django-appconf/default.nix21
-rw-r--r--pkgs/development/python-modules/django-auditlog/default.nix37
-rw-r--r--pkgs/development/python-modules/django-auth-ldap/default.nix35
-rw-r--r--pkgs/development/python-modules/django-autocomplete-light/default.nix37
-rw-r--r--pkgs/development/python-modules/django-bootstrap3/default.nix33
-rw-r--r--pkgs/development/python-modules/django-bootstrap4/default.nix37
-rw-r--r--pkgs/development/python-modules/django-bootstrap5/default.nix33
-rw-r--r--pkgs/development/python-modules/django-cachalot/default.nix23
-rw-r--r--pkgs/development/python-modules/django-cache-url/default.nix9
-rw-r--r--pkgs/development/python-modules/django-cacheops/default.nix41
-rw-r--r--pkgs/development/python-modules/django-celery-beat/default.nix39
-rw-r--r--pkgs/development/python-modules/django-celery-email/default.nix20
-rw-r--r--pkgs/development/python-modules/django-celery-results/default.nix15
-rw-r--r--pkgs/development/python-modules/django-ckeditor/default.nix31
-rw-r--r--pkgs/development/python-modules/django-classy-tags/default.nix19
-rw-r--r--pkgs/development/python-modules/django-cleanup/default.nix15
-rw-r--r--pkgs/development/python-modules/django-colorful/default.nix10
-rw-r--r--pkgs/development/python-modules/django-compression-middleware/default.nix13
-rw-r--r--pkgs/development/python-modules/django-compressor/default.nix47
-rw-r--r--pkgs/development/python-modules/django-configurations/default.nix41
-rw-r--r--pkgs/development/python-modules/django-context-decorator/default.nix21
-rw-r--r--pkgs/development/python-modules/django-contrib-comments/default.nix12
-rw-r--r--pkgs/development/python-modules/django-cors-headers/default.nix17
-rw-r--r--pkgs/development/python-modules/django-countries/default.nix39
-rw-r--r--pkgs/development/python-modules/django-crispy-bootstrap4/default.nix17
-rw-r--r--pkgs/development/python-modules/django-crispy-bootstrap5/default.nix17
-rw-r--r--pkgs/development/python-modules/django-crispy-forms/default.nix21
-rw-r--r--pkgs/development/python-modules/django-crontab/default.nix19
-rw-r--r--pkgs/development/python-modules/django-cryptography/default.nix26
-rw-r--r--pkgs/development/python-modules/django-csp/default.nix31
-rw-r--r--pkgs/development/python-modules/django-currentuser/default.nix17
-rw-r--r--pkgs/development/python-modules/django-debug-toolbar/default.nix37
-rw-r--r--pkgs/development/python-modules/django-dynamic-preferences/default.nix37
-rw-r--r--pkgs/development/python-modules/django-encrypted-model-fields/default.nix22
-rw-r--r--pkgs/development/python-modules/django-environ/default.nix17
-rw-r--r--pkgs/development/python-modules/django-extensions/default.nix69
-rw-r--r--pkgs/development/python-modules/django-filter/default.nix21
-rw-r--r--pkgs/development/python-modules/django-formset-js-improved/default.nix25
-rw-r--r--pkgs/development/python-modules/django-formtools/default.nix34
-rw-r--r--pkgs/development/python-modules/django-google-analytics-app/default.nix27
-rw-r--r--pkgs/development/python-modules/django-graphiql-debug-toolbar/default.nix27
-rw-r--r--pkgs/development/python-modules/django-gravatar2/default.nix6
-rw-r--r--pkgs/development/python-modules/django-guardian/default.nix22
-rw-r--r--pkgs/development/python-modules/django-haystack/default.nix65
-rw-r--r--pkgs/development/python-modules/django-hcaptcha/default.nix13
-rw-r--r--pkgs/development/python-modules/django-health-check/default.nix34
-rw-r--r--pkgs/development/python-modules/django-hierarkey/default.nix45
-rw-r--r--pkgs/development/python-modules/django-hijack/default.nix45
-rw-r--r--pkgs/development/python-modules/django-i18nfield/default.nix21
-rw-r--r--pkgs/development/python-modules/django-import-export/default.nix57
-rw-r--r--pkgs/development/python-modules/django-ipware/default.nix17
-rw-r--r--pkgs/development/python-modules/django-jinja2/default.nix15
-rw-r--r--pkgs/development/python-modules/django-jquery-js/default.nix17
-rw-r--r--pkgs/development/python-modules/django-js-asset/default.nix25
-rw-r--r--pkgs/development/python-modules/django-js-reverse/default.nix28
-rw-r--r--pkgs/development/python-modules/django-leaflet/default.nix27
-rw-r--r--pkgs/development/python-modules/django-libsass/default.nix29
-rw-r--r--pkgs/development/python-modules/django-localflavor/default.nix29
-rw-r--r--pkgs/development/python-modules/django-logentry-admin/default.nix15
-rw-r--r--pkgs/development/python-modules/django-login-required-middleware/default.nix31
-rw-r--r--pkgs/development/python-modules/django-mailman3/default.nix43
-rw-r--r--pkgs/development/python-modules/django-maintenance-mode/default.nix25
-rw-r--r--pkgs/development/python-modules/django-markdownx/default.nix25
-rw-r--r--pkgs/development/python-modules/django-markup/default.nix43
-rw-r--r--pkgs/development/python-modules/django-mdeditor/default.nix9
-rw-r--r--pkgs/development/python-modules/django-model-utils/default.nix25
-rw-r--r--pkgs/development/python-modules/django-modelcluster/default.nix36
-rw-r--r--pkgs/development/python-modules/django-modeltranslation/default.nix29
-rw-r--r--pkgs/development/python-modules/django-mptt/default.nix17
-rw-r--r--pkgs/development/python-modules/django-multiselectfield/default.nix9
-rw-r--r--pkgs/development/python-modules/django-mysql/default.nix37
-rw-r--r--pkgs/development/python-modules/django-ninja/default.nix28
-rw-r--r--pkgs/development/python-modules/django-nose/default.nix29
-rw-r--r--pkgs/development/python-modules/django-oauth-toolkit/default.nix39
-rw-r--r--pkgs/development/python-modules/django-otp/default.nix35
-rw-r--r--pkgs/development/python-modules/django-paintstore/default.nix6
-rw-r--r--pkgs/development/python-modules/django-parler/default.nix21
-rw-r--r--pkgs/development/python-modules/django-pattern-library/default.nix38
-rw-r--r--pkgs/development/python-modules/django-payments/default.nix51
-rw-r--r--pkgs/development/python-modules/django-pglocks/default.nix15
-rw-r--r--pkgs/development/python-modules/django-phonenumber-field/default.nix35
-rw-r--r--pkgs/development/python-modules/django-picklefield/default.nix12
-rw-r--r--pkgs/development/python-modules/django-polymorphic/default.nix9
-rw-r--r--pkgs/development/python-modules/django-postgresql-netfields/default.nix31
-rw-r--r--pkgs/development/python-modules/django-prometheus/default.nix27
-rw-r--r--pkgs/development/python-modules/django-pwa/default.nix29
-rw-r--r--pkgs/development/python-modules/django-q/default.nix49
-rw-r--r--pkgs/development/python-modules/django-ranged-response/default.nix9
-rw-r--r--pkgs/development/python-modules/django-raster/default.nix30
-rw-r--r--pkgs/development/python-modules/django-ratelimit/default.nix56
-rw-r--r--pkgs/development/python-modules/django-redis/default.nix49
-rw-r--r--pkgs/development/python-modules/django-rest-auth/default.nix19
-rw-r--r--pkgs/development/python-modules/django-rest-polymorphic/default.nix23
-rw-r--r--pkgs/development/python-modules/django-rest-registration/default.nix21
-rw-r--r--pkgs/development/python-modules/django-reversion/default.nix29
-rw-r--r--pkgs/development/python-modules/django-rosetta/default.nix20
-rw-r--r--pkgs/development/python-modules/django-rq/default.nix21
-rw-r--r--pkgs/development/python-modules/django-scheduler/default.nix29
-rw-r--r--pkgs/development/python-modules/django-scim2/default.nix41
-rw-r--r--pkgs/development/python-modules/django-scopes/default.nix17
-rw-r--r--pkgs/development/python-modules/django-sekizai/default.nix17
-rw-r--r--pkgs/development/python-modules/django-sesame/default.nix26
-rw-r--r--pkgs/development/python-modules/django-shortuuidfield/default.nix17
-rw-r--r--pkgs/development/python-modules/django-silk/default.nix58
-rw-r--r--pkgs/development/python-modules/django-simple-captcha/default.nix30
-rw-r--r--pkgs/development/python-modules/django-simple-history/default.nix36
-rw-r--r--pkgs/development/python-modules/django-sites/default.nix21
-rw-r--r--pkgs/development/python-modules/django-soft-delete/default.nix31
-rw-r--r--pkgs/development/python-modules/django-sr/default.nix21
-rw-r--r--pkgs/development/python-modules/django-statici18n/default.nix43
-rw-r--r--pkgs/development/python-modules/django-storages/default.nix73
-rw-r--r--pkgs/development/python-modules/django-stubs-ext/default.nix36
-rw-r--r--pkgs/development/python-modules/django-stubs/default.nix50
-rw-r--r--pkgs/development/python-modules/django-tables2/default.nix49
-rw-r--r--pkgs/development/python-modules/django-tagging/default.nix8
-rw-r--r--pkgs/development/python-modules/django-taggit/default.nix27
-rw-r--r--pkgs/development/python-modules/django-timezone-field/default.nix31
-rw-r--r--pkgs/development/python-modules/django-treebeard/default.nix23
-rw-r--r--pkgs/development/python-modules/django-two-factor-auth/default.nix51
-rw-r--r--pkgs/development/python-modules/django-types/default.nix21
-rw-r--r--pkgs/development/python-modules/django-versatileimagefield/default.nix19
-rw-r--r--pkgs/development/python-modules/django-vite/default.nix19
-rw-r--r--pkgs/development/python-modules/django-webpush/default.nix25
-rw-r--r--pkgs/development/python-modules/django-widget-tweaks/default.nix23
-rw-r--r--pkgs/development/python-modules/django/3.nix47
-rw-r--r--pkgs/development/python-modules/django/4.nix171
-rw-r--r--pkgs/development/python-modules/django/5.nix173
-rw-r--r--pkgs/development/python-modules/djangoql/default.nix10
-rw-r--r--pkgs/development/python-modules/djangorestframework-camel-case/default.nix19
-rw-r--r--pkgs/development/python-modules/djangorestframework-dataclasses/default.nix21
-rw-r--r--pkgs/development/python-modules/djangorestframework-guardian/default.nix13
-rw-r--r--pkgs/development/python-modules/djangorestframework-guardian2/default.nix11
-rw-r--r--pkgs/development/python-modules/djangorestframework-recursive/default.nix15
-rw-r--r--pkgs/development/python-modules/djangorestframework-simplejwt/default.nix37
-rw-r--r--pkgs/development/python-modules/djangorestframework-stubs/default.nix58
-rw-r--r--pkgs/development/python-modules/djangorestframework/default.nix56
-rw-r--r--pkgs/development/python-modules/djmail/default.nix17
-rw-r--r--pkgs/development/python-modules/dkimpy/default.nix22
-rw-r--r--pkgs/development/python-modules/dlib/build-cores.patch8
-rw-r--r--pkgs/development/python-modules/dlib/default.nix30
-rw-r--r--pkgs/development/python-modules/dlinfo/default.nix21
-rw-r--r--pkgs/development/python-modules/dllogger/default.nix15
-rw-r--r--pkgs/development/python-modules/dlms-cosem/default.nix39
-rw-r--r--pkgs/development/python-modules/dlx/default.nix9
-rw-r--r--pkgs/development/python-modules/dm-control/default.nix95
-rw-r--r--pkgs/development/python-modules/dm-env/default.nix23
-rw-r--r--pkgs/development/python-modules/dm-haiku/default.nix199
-rw-r--r--pkgs/development/python-modules/dm-sonnet/default.nix37
-rw-r--r--pkgs/development/python-modules/dm-tree/default.nix34
-rw-r--r--pkgs/development/python-modules/dmenu/default.nix9
-rw-r--r--pkgs/development/python-modules/dnachisel/default.nix33
-rw-r--r--pkgs/development/python-modules/dnf-plugins-core/default.nix46
-rw-r--r--pkgs/development/python-modules/dnf4/default.nix41
-rw-r--r--pkgs/development/python-modules/dnf4/wrapper.nix31
-rw-r--r--pkgs/development/python-modules/dnfile/default.nix33
-rw-r--r--pkgs/development/python-modules/dns-lexicon/default.nix81
-rw-r--r--pkgs/development/python-modules/dnslib/default.nix15
-rw-r--r--pkgs/development/python-modules/dnspython/default.nix71
-rw-r--r--pkgs/development/python-modules/doc8/default.nix41
-rw-r--r--pkgs/development/python-modules/docformatter/default.nix35
-rw-r--r--pkgs/development/python-modules/docker-py/default.nix29
-rw-r--r--pkgs/development/python-modules/docker-pycreds/default.nix9
-rw-r--r--pkgs/development/python-modules/docker/default.nix78
-rw-r--r--pkgs/development/python-modules/dockerfile-parse/default.nix19
-rw-r--r--pkgs/development/python-modules/dockerpty/default.nix7
-rw-r--r--pkgs/development/python-modules/dockerspawner/default.nix25
-rw-r--r--pkgs/development/python-modules/docloud/default.nix13
-rw-r--r--pkgs/development/python-modules/docopt-ng/default.nix13
-rw-r--r--pkgs/development/python-modules/docopt/default.nix6
-rw-r--r--pkgs/development/python-modules/docplex/default.nix25
-rw-r--r--pkgs/development/python-modules/docrep/default.nix11
-rw-r--r--pkgs/development/python-modules/docstr-coverage/default.nix32
-rw-r--r--pkgs/development/python-modules/docstring-parser/default.nix25
-rw-r--r--pkgs/development/python-modules/docstring-to-markdown/default.nix19
-rw-r--r--pkgs/development/python-modules/doctest-ignore-unicode/default.nix20
-rw-r--r--pkgs/development/python-modules/docutils/default.nix107
-rw-r--r--pkgs/development/python-modules/docx2python/default.nix23
-rw-r--r--pkgs/development/python-modules/docx2txt/default.nix13
-rw-r--r--pkgs/development/python-modules/dodgy/default.nix19
-rw-r--r--pkgs/development/python-modules/dogpile-cache/default.nix31
-rw-r--r--pkgs/development/python-modules/dogtag-pki/default.nix28
-rw-r--r--pkgs/development/python-modules/dogtail/default.nix53
-rw-r--r--pkgs/development/python-modules/doit-py/default.nix19
-rw-r--r--pkgs/development/python-modules/doit/default.nix126
-rw-r--r--pkgs/development/python-modules/dokuwiki/default.nix13
-rw-r--r--pkgs/development/python-modules/domeneshop/default.nix23
-rw-r--r--pkgs/development/python-modules/dominate/default.nix25
-rw-r--r--pkgs/development/python-modules/doorbirdpy/default.nix21
-rw-r--r--pkgs/development/python-modules/dopy/default.nix14
-rw-r--r--pkgs/development/python-modules/dot2tex/default.nix29
-rw-r--r--pkgs/development/python-modules/dotmap/default.nix23
-rw-r--r--pkgs/development/python-modules/dotty-dict/default.nix9
-rw-r--r--pkgs/development/python-modules/dotwiz/default.nix25
-rw-r--r--pkgs/development/python-modules/downloader-cli/default.nix19
-rw-r--r--pkgs/development/python-modules/dparse/default.nix37
-rw-r--r--pkgs/development/python-modules/dparse2/default.nix25
-rw-r--r--pkgs/development/python-modules/dpath/default.nix31
-rw-r--r--pkgs/development/python-modules/dpcontracts/default.nix9
-rw-r--r--pkgs/development/python-modules/dpkt/default.nix7
-rw-r--r--pkgs/development/python-modules/dploot/default.nix6
-rw-r--r--pkgs/development/python-modules/draftjs-exporter/default.nix20
-rw-r--r--pkgs/development/python-modules/dragonfly/default.nix45
-rw-r--r--pkgs/development/python-modules/dramatiq/default.nix112
-rw-r--r--pkgs/development/python-modules/drawille/default.nix11
-rw-r--r--pkgs/development/python-modules/drawilleplot/default.nix15
-rw-r--r--pkgs/development/python-modules/drawsvg/default.nix4
-rw-r--r--pkgs/development/python-modules/dremel3dpy/default.nix31
-rw-r--r--pkgs/development/python-modules/drf-jwt/default.nix14
-rw-r--r--pkgs/development/python-modules/drf-nested-routers/default.nix27
-rw-r--r--pkgs/development/python-modules/drf-spectacular-sidecar/default.nix13
-rw-r--r--pkgs/development/python-modules/drf-spectacular/default.nix74
-rw-r--r--pkgs/development/python-modules/drf-ujson2/default.nix31
-rw-r--r--pkgs/development/python-modules/drf-writable-nested/default.nix15
-rw-r--r--pkgs/development/python-modules/drf-yasg/default.nix29
-rw-r--r--pkgs/development/python-modules/drivelib/default.nix15
-rw-r--r--pkgs/development/python-modules/drms/default.nix35
-rw-r--r--pkgs/development/python-modules/dronecan/default.nix19
-rw-r--r--pkgs/development/python-modules/dropbox/default.nix61
-rw-r--r--pkgs/development/python-modules/ds-store/default.nix31
-rw-r--r--pkgs/development/python-modules/ds4drv/default.nix25
-rw-r--r--pkgs/development/python-modules/dscribe/default.nix47
-rw-r--r--pkgs/development/python-modules/dsinternals/default.nix27
-rw-r--r--pkgs/development/python-modules/dsl2html/default.nix13
-rw-r--r--pkgs/development/python-modules/dsmr-parser/default.nix39
-rw-r--r--pkgs/development/python-modules/dtlssocket/default.nix17
-rw-r--r--pkgs/development/python-modules/dtschema/default.nix42
-rw-r--r--pkgs/development/python-modules/dtw-python/default.nix31
-rw-r--r--pkgs/development/python-modules/duckdb-engine/default.nix48
-rw-r--r--pkgs/development/python-modules/duckdb/default.nix70
-rw-r--r--pkgs/development/python-modules/duckduckgo-search/default.nix66
-rw-r--r--pkgs/development/python-modules/duct-py/default.nix15
-rw-r--r--pkgs/development/python-modules/duden/default.nix30
-rw-r--r--pkgs/development/python-modules/duecredit/default.nix51
-rw-r--r--pkgs/development/python-modules/duet/default.nix13
-rw-r--r--pkgs/development/python-modules/dufte/default.nix31
-rw-r--r--pkgs/development/python-modules/dugong/default.nix22
-rw-r--r--pkgs/development/python-modules/dulwich/default.nix116
-rw-r--r--pkgs/development/python-modules/dunamai/default.nix39
-rw-r--r--pkgs/development/python-modules/dungeon-eos/default.nix8
-rw-r--r--pkgs/development/python-modules/duo-client/default.nix33
-rw-r--r--pkgs/development/python-modules/durus/default.nix7
-rw-r--r--pkgs/development/python-modules/dvc-azure/default.nix23
-rw-r--r--pkgs/development/python-modules/dvc-data/default.nix33
-rw-r--r--pkgs/development/python-modules/dvc-gdrive/default.nix21
-rw-r--r--pkgs/development/python-modules/dvc-gs/default.nix19
-rw-r--r--pkgs/development/python-modules/dvc-hdfs/default.nix21
-rw-r--r--pkgs/development/python-modules/dvc-http/default.nix28
-rw-r--r--pkgs/development/python-modules/dvc-objects/default.nix39
-rw-r--r--pkgs/development/python-modules/dvc-s3/default.nix35
-rw-r--r--pkgs/development/python-modules/dvc-ssh/default.nix17
-rw-r--r--pkgs/development/python-modules/dvc-studio-client/default.nix27
-rw-r--r--pkgs/development/python-modules/dvc-task/default.nix35
-rw-r--r--pkgs/development/python-modules/dvc/default.nix6
-rw-r--r--pkgs/development/python-modules/dvclive/default.nix105
-rw-r--r--pkgs/development/python-modules/dwdwfsapi/default.nix24
-rw-r--r--pkgs/development/python-modules/dyn/default.nix32
-rw-r--r--pkgs/development/python-modules/dynalite-devices/default.nix29
-rw-r--r--pkgs/development/python-modules/dynalite-panel/default.nix16
-rw-r--r--pkgs/development/python-modules/dynd/default.nix20
-rw-r--r--pkgs/development/python-modules/e3-core/default.nix95
-rw-r--r--pkgs/development/python-modules/e3-testsuite/default.nix21
-rw-r--r--pkgs/development/python-modules/eagle100/default.nix19
-rw-r--r--pkgs/development/python-modules/easy-thumbnails/default.nix23
-rw-r--r--pkgs/development/python-modules/easydict/default.nix11
-rw-r--r--pkgs/development/python-modules/easyenergy/default.nix31
-rw-r--r--pkgs/development/python-modules/easygui/default.nix11
-rw-r--r--pkgs/development/python-modules/easyocr/default.nix43
-rw-r--r--pkgs/development/python-modules/easyprocess/default.nix6
-rw-r--r--pkgs/development/python-modules/easywatch/default.nix10
-rw-r--r--pkgs/development/python-modules/ebaysdk/default.nix11
-rw-r--r--pkgs/development/python-modules/ebcdic/default.nix25
-rw-r--r--pkgs/development/python-modules/ebooklib/default.nix11
-rw-r--r--pkgs/development/python-modules/ecdsa/default.nix12
-rw-r--r--pkgs/development/python-modules/echo/default.nix37
-rw-r--r--pkgs/development/python-modules/ecoaliface/default.nix13
-rw-r--r--pkgs/development/python-modules/ecos/default.nix44
-rw-r--r--pkgs/development/python-modules/ecpy/default.nix8
-rw-r--r--pkgs/development/python-modules/ecs-logging/default.nix21
-rw-r--r--pkgs/development/python-modules/ed25519-blake2b/default.nix24
-rw-r--r--pkgs/development/python-modules/ed25519/default.nix5
-rw-r--r--pkgs/development/python-modules/edalize/default.nix35
-rw-r--r--pkgs/development/python-modules/editables/default.nix28
-rw-r--r--pkgs/development/python-modules/editdistance-s/default.nix11
-rw-r--r--pkgs/development/python-modules/editdistance/default.nix27
-rw-r--r--pkgs/development/python-modules/editdistpy/default.nix48
-rw-r--r--pkgs/development/python-modules/editor/default.nix25
-rw-r--r--pkgs/development/python-modules/editorconfig/default.nix19
-rw-r--r--pkgs/development/python-modules/edk2-pytool-library/default.nix41
-rw-r--r--pkgs/development/python-modules/edlib/default.nix15
-rw-r--r--pkgs/development/python-modules/eduvpn-common/default.nix18
-rw-r--r--pkgs/development/python-modules/eduvpn-common/use-nix-lib.patch23
-rw-r--r--pkgs/development/python-modules/edward/default.nix22
-rw-r--r--pkgs/development/python-modules/effdet/default.nix21
-rw-r--r--pkgs/development/python-modules/effect/default.nix29
-rw-r--r--pkgs/development/python-modules/eggdeps/default.nix19
-rw-r--r--pkgs/development/python-modules/eigenpy/default.nix15
-rw-r--r--pkgs/development/python-modules/einops/default.nix38
-rw-r--r--pkgs/development/python-modules/eiswarnung/default.nix31
-rw-r--r--pkgs/development/python-modules/elastic-apm/default.nix6
-rw-r--r--pkgs/development/python-modules/elastic-transport/default.nix49
-rw-r--r--pkgs/development/python-modules/elasticsearch-dsl/default.nix23
-rw-r--r--pkgs/development/python-modules/elasticsearch/default.nix39
-rw-r--r--pkgs/development/python-modules/elasticsearch8/default.nix43
-rw-r--r--pkgs/development/python-modules/elegy/default.nix57
-rw-r--r--pkgs/development/python-modules/elevate/default.nix18
-rw-r--r--pkgs/development/python-modules/elgato/default.nix33
-rw-r--r--pkgs/development/python-modules/eliot/default.nix31
-rw-r--r--pkgs/development/python-modules/eliqonline/default.nix19
-rw-r--r--pkgs/development/python-modules/elkm1-lib/default.nix1
-rw-r--r--pkgs/development/python-modules/elmax-api/default.nix19
-rw-r--r--pkgs/development/python-modules/elmax/default.nix21
-rw-r--r--pkgs/development/python-modules/email-validator/default.nix27
-rw-r--r--pkgs/development/python-modules/emailthreads/default.nix10
-rw-r--r--pkgs/development/python-modules/embedding-reader/default.nix26
-rw-r--r--pkgs/development/python-modules/emborg/default.nix49
-rw-r--r--pkgs/development/python-modules/embrace/default.nix25
-rw-r--r--pkgs/development/python-modules/emcee/default.nix35
-rw-r--r--pkgs/development/python-modules/emoji/default.nix35
-rw-r--r--pkgs/development/python-modules/empty-files/default.nix13
-rw-r--r--pkgs/development/python-modules/empy/default.nix8
-rw-r--r--pkgs/development/python-modules/emulated-roku/default.nix19
-rw-r--r--pkgs/development/python-modules/emv/default.nix61
-rw-r--r--pkgs/development/python-modules/enaml/default.nix29
-rw-r--r--pkgs/development/python-modules/enamlx/default.nix15
-rw-r--r--pkgs/development/python-modules/encodec/default.nix17
-rw-r--r--pkgs/development/python-modules/energyflip-client/default.nix23
-rw-r--r--pkgs/development/python-modules/energyflow/default.nix25
-rw-r--r--pkgs/development/python-modules/energyzero/default.nix31
-rw-r--r--pkgs/development/python-modules/enlighten/default.nix51
-rw-r--r--pkgs/development/python-modules/enocean/default.nix19
-rw-r--r--pkgs/development/python-modules/enochecker-core/default.nix14
-rw-r--r--pkgs/development/python-modules/enrich/default.nix15
-rw-r--r--pkgs/development/python-modules/enterpriseattack/default.nix23
-rw-r--r--pkgs/development/python-modules/entrance/default.nix49
-rw-r--r--pkgs/development/python-modules/entry-points-txt/default.nix25
-rw-r--r--pkgs/development/python-modules/entrypoint2/default.nix19
-rw-r--r--pkgs/development/python-modules/entrypoints/default.nix23
-rw-r--r--pkgs/development/python-modules/enturclient/default.nix23
-rw-r--r--pkgs/development/python-modules/enum-compat/default.nix7
-rw-r--r--pkgs/development/python-modules/enum34/default.nix43
-rw-r--r--pkgs/development/python-modules/env-canada/default.nix45
-rw-r--r--pkgs/development/python-modules/environmental-override/default.nix7
-rw-r--r--pkgs/development/python-modules/environs/default.nix31
-rw-r--r--pkgs/development/python-modules/envisage/default.nix26
-rw-r--r--pkgs/development/python-modules/envoy-reader/default.nix30
-rw-r--r--pkgs/development/python-modules/envoy-utils/default.nix15
-rw-r--r--pkgs/development/python-modules/envs/default.nix29
-rw-r--r--pkgs/development/python-modules/enzyme/default.nix6
-rw-r--r--pkgs/development/python-modules/epc/default.nix10
-rw-r--r--pkgs/development/python-modules/ephem/default.nix15
-rw-r--r--pkgs/development/python-modules/ephemeral-port-reserve/default.nix19
-rw-r--r--pkgs/development/python-modules/epion/default.nix25
-rw-r--r--pkgs/development/python-modules/epitran/default.nix1
-rw-r--r--pkgs/development/python-modules/epson-projector/default.nix13
-rw-r--r--pkgs/development/python-modules/equinox/default.nix50
-rw-r--r--pkgs/development/python-modules/eradicate/default.nix23
-rw-r--r--pkgs/development/python-modules/es-client/default.nix6
-rw-r--r--pkgs/development/python-modules/escapism/default.nix7
-rw-r--r--pkgs/development/python-modules/esig/default.nix35
-rw-r--r--pkgs/development/python-modules/espeak-phonemizer/default.nix17
-rw-r--r--pkgs/development/python-modules/esper/default.nix33
-rw-r--r--pkgs/development/python-modules/esphome-dashboard-api/default.nix21
-rw-r--r--pkgs/development/python-modules/esprima/default.nix23
-rw-r--r--pkgs/development/python-modules/essentials-openapi/default.nix22
-rw-r--r--pkgs/development/python-modules/essentials/default.nix13
-rw-r--r--pkgs/development/python-modules/et-xmlfile/default.nix19
-rw-r--r--pkgs/development/python-modules/etcd/default.nix21
-rw-r--r--pkgs/development/python-modules/etcd3/default.nix29
-rw-r--r--pkgs/development/python-modules/ete3/default.nix31
-rw-r--r--pkgs/development/python-modules/etebase/default.nix34
-rw-r--r--pkgs/development/python-modules/etelemetry/default.nix19
-rw-r--r--pkgs/development/python-modules/eternalegypt/default.nix17
-rw-r--r--pkgs/development/python-modules/etesync/default.nix36
-rw-r--r--pkgs/development/python-modules/eth-abi/default.nix21
-rw-r--r--pkgs/development/python-modules/eth-account/default.nix27
-rw-r--r--pkgs/development/python-modules/eth-hash/default.nix45
-rw-r--r--pkgs/development/python-modules/eth-keyfile/default.nix25
-rw-r--r--pkgs/development/python-modules/eth-keys/default.nix53
-rw-r--r--pkgs/development/python-modules/eth-rlp/default.nix27
-rw-r--r--pkgs/development/python-modules/eth-typing/default.nix25
-rw-r--r--pkgs/development/python-modules/eth-utils/default.nix36
-rw-r--r--pkgs/development/python-modules/etils/default.nix96
-rw-r--r--pkgs/development/python-modules/etuples/default.nix23
-rw-r--r--pkgs/development/python-modules/euclid3/default.nix18
-rw-r--r--pkgs/development/python-modules/eufylife-ble-client/default.nix25
-rw-r--r--pkgs/development/python-modules/eval-type-backport/default.nix19
-rw-r--r--pkgs/development/python-modules/evaluate/default.nix62
-rw-r--r--pkgs/development/python-modules/evdev/default.nix29
-rw-r--r--pkgs/development/python-modules/eve/default.nix25
-rw-r--r--pkgs/development/python-modules/eventkit/default.nix16
-rw-r--r--pkgs/development/python-modules/eventlet/default.nix41
-rw-r--r--pkgs/development/python-modules/events/default.nix23
-rw-r--r--pkgs/development/python-modules/evernote/default.nix20
-rw-r--r--pkgs/development/python-modules/evohome-async/default.nix25
-rw-r--r--pkgs/development/python-modules/evtx/default.nix35
-rw-r--r--pkgs/development/python-modules/ewmh/default.nix9
-rw-r--r--pkgs/development/python-modules/exceptiongroup/default.nix37
-rw-r--r--pkgs/development/python-modules/exchangelib/default.nix4
-rw-r--r--pkgs/development/python-modules/exdown/default.nix25
-rw-r--r--pkgs/development/python-modules/execnb/default.nix37
-rw-r--r--pkgs/development/python-modules/execnet/default.nix53
-rw-r--r--pkgs/development/python-modules/executing/default.nix44
-rw-r--r--pkgs/development/python-modules/executor/default.nix27
-rw-r--r--pkgs/development/python-modules/exif/default.nix23
-rw-r--r--pkgs/development/python-modules/exifread/default.nix12
-rw-r--r--pkgs/development/python-modules/exitcode/default.nix19
-rw-r--r--pkgs/development/python-modules/expandvars/default.nix30
-rw-r--r--pkgs/development/python-modules/expects/default.nix7
-rw-r--r--pkgs/development/python-modules/expecttest/default.nix18
-rw-r--r--pkgs/development/python-modules/experiment-utilities/default.nix41
-rw-r--r--pkgs/development/python-modules/expiring-dict/default.nix17
-rw-r--r--pkgs/development/python-modules/expiringdict/default.nix21
-rw-r--r--pkgs/development/python-modules/explorerscript/default.nix35
-rw-r--r--pkgs/development/python-modules/exrex/default.nix19
-rw-r--r--pkgs/development/python-modules/extension-helpers/default.nix57
-rw-r--r--pkgs/development/python-modules/extract-msg/default.nix2
-rw-r--r--pkgs/development/python-modules/extractcode/7z.nix26
-rw-r--r--pkgs/development/python-modules/extractcode/default.nix33
-rw-r--r--pkgs/development/python-modules/extractcode/libarchive.nix40
-rw-r--r--pkgs/development/python-modules/extras/default.nix7
-rw-r--r--pkgs/development/python-modules/extruct/default.nix40
-rw-r--r--pkgs/development/python-modules/eyed3/default.nix27
-rw-r--r--pkgs/development/python-modules/ezdxf/default.nix19
-rw-r--r--pkgs/development/python-modules/ezyrb/default.nix33
-rw-r--r--pkgs/development/python-modules/f5-icontrol-rest/default.nix15
-rw-r--r--pkgs/development/python-modules/f5-sdk/default.nix11
-rw-r--r--pkgs/development/python-modules/f90nml/default.nix8
-rw-r--r--pkgs/development/python-modules/faadelays/default.nix25
-rw-r--r--pkgs/development/python-modules/fabric/default.nix36
-rw-r--r--pkgs/development/python-modules/fabulous/default.nix19
-rw-r--r--pkgs/development/python-modules/face-recognition/default.nix29
-rw-r--r--pkgs/development/python-modules/face-recognition/models.nix17
-rw-r--r--pkgs/development/python-modules/face/default.nix27
-rw-r--r--pkgs/development/python-modules/facebook-sdk/default.nix13
-rw-r--r--pkgs/development/python-modules/facedancer/default.nix14
-rw-r--r--pkgs/development/python-modules/facenet-pytorch/default.nix18
-rw-r--r--pkgs/development/python-modules/factory-boy/default.nix37
-rw-r--r--pkgs/development/python-modules/fairscale/default.nix41
-rw-r--r--pkgs/development/python-modules/fairseq/default.nix65
-rw-r--r--pkgs/development/python-modules/fake-useragent/default.nix39
-rw-r--r--pkgs/development/python-modules/faker/default.nix35
-rw-r--r--pkgs/development/python-modules/fakeredis/default.nix68
-rw-r--r--pkgs/development/python-modules/falcon/default.nix84
-rw-r--r--pkgs/development/python-modules/faraday-agent-parameters-types/default.nix33
-rw-r--r--pkgs/development/python-modules/faraday-plugins/default.nix59
-rw-r--r--pkgs/development/python-modules/farama-notifications/default.nix11
-rw-r--r--pkgs/development/python-modules/farm-haystack/default.nix222
-rw-r--r--pkgs/development/python-modules/fast-histogram/default.nix25
-rw-r--r--pkgs/development/python-modules/fastai/default.nix35
-rw-r--r--pkgs/development/python-modules/fastapi-cli/default.nix58
-rw-r--r--pkgs/development/python-modules/fastapi-mail/default.nix45
-rw-r--r--pkgs/development/python-modules/fastapi-sso/default.nix4
-rw-r--r--pkgs/development/python-modules/fastapi/default.nix124
-rw-r--r--pkgs/development/python-modules/fastavro/default.nix41
-rw-r--r--pkgs/development/python-modules/fastbencode/default.nix33
-rw-r--r--pkgs/development/python-modules/fastcache/default.nix7
-rw-r--r--pkgs/development/python-modules/fastcore/default.nix32
-rw-r--r--pkgs/development/python-modules/fastdiff/default.nix29
-rw-r--r--pkgs/development/python-modules/fastdownload/default.nix18
-rw-r--r--pkgs/development/python-modules/fastdtw/default.nix28
-rw-r--r--pkgs/development/python-modules/fastecdsa/default.nix25
-rw-r--r--pkgs/development/python-modules/fastembed/default.nix74
-rw-r--r--pkgs/development/python-modules/fasteners/default.nix31
-rw-r--r--pkgs/development/python-modules/fastentrypoints/default.nix6
-rw-r--r--pkgs/development/python-modules/faster-fifo/default.nix31
-rw-r--r--pkgs/development/python-modules/faster-whisper/default.nix49
-rw-r--r--pkgs/development/python-modules/fastimport/default.nix11
-rw-r--r--pkgs/development/python-modules/fastjsonschema/default.nix43
-rw-r--r--pkgs/development/python-modules/fastnumbers/default.nix37
-rw-r--r--pkgs/development/python-modules/fastparquet/default.nix79
-rw-r--r--pkgs/development/python-modules/fastpbkdf2/default.nix22
-rw-r--r--pkgs/development/python-modules/fastprogress/default.nix12
-rw-r--r--pkgs/development/python-modules/fastrlock/default.nix25
-rw-r--r--pkgs/development/python-modules/fasttext-predict/default.nix15
-rw-r--r--pkgs/development/python-modules/fasttext/default.nix8
-rw-r--r--pkgs/development/python-modules/faust-cchardet/default.nix34
-rw-r--r--pkgs/development/python-modules/favicon/default.nix22
-rw-r--r--pkgs/development/python-modules/fb-re2/default.nix11
-rw-r--r--pkgs/development/python-modules/fe25519/default.nix29
-rw-r--r--pkgs/development/python-modules/feedfinder2/default.nix21
-rw-r--r--pkgs/development/python-modules/feedgen/default.nix20
-rw-r--r--pkgs/development/python-modules/feedgenerator/default.nix25
-rw-r--r--pkgs/development/python-modules/feedparser/default.nix27
-rw-r--r--pkgs/development/python-modules/fenics/default.nix93
-rw-r--r--pkgs/development/python-modules/ffcv/default.nix32
-rw-r--r--pkgs/development/python-modules/ffmpeg-progress-yield/default.nix30
-rw-r--r--pkgs/development/python-modules/ffmpeg-python/default.nix33
-rw-r--r--pkgs/development/python-modules/ffmpy/default.nix29
-rw-r--r--pkgs/development/python-modules/fhir-py/default.nix27
-rw-r--r--pkgs/development/python-modules/fiblary3-fork/default.nix31
-rw-r--r--pkgs/development/python-modules/fido2/default.nix50
-rw-r--r--pkgs/development/python-modules/fields/default.nix6
-rw-r--r--pkgs/development/python-modules/file-read-backwards/default.nix29
-rw-r--r--pkgs/development/python-modules/filebrowser-safe/default.nix18
-rw-r--r--pkgs/development/python-modules/filebytes/default.nix8
-rw-r--r--pkgs/development/python-modules/filecheck/default.nix23
-rw-r--r--pkgs/development/python-modules/filedate/default.nix59
-rw-r--r--pkgs/development/python-modules/filedepot/default.nix37
-rw-r--r--pkgs/development/python-modules/filelock/default.nix23
-rw-r--r--pkgs/development/python-modules/filetype/default.nix19
-rw-r--r--pkgs/development/python-modules/filterpy/default.nix21
-rw-r--r--pkgs/development/python-modules/finalfusion/default.nix25
-rw-r--r--pkgs/development/python-modules/find-libpython/default.nix23
-rw-r--r--pkgs/development/python-modules/findimports/default.nix30
-rw-r--r--pkgs/development/python-modules/findpython/default.nix39
-rw-r--r--pkgs/development/python-modules/fingerprints/default.nix33
-rw-r--r--pkgs/development/python-modules/finitude/default.nix25
-rw-r--r--pkgs/development/python-modules/fints/default.nix37
-rw-r--r--pkgs/development/python-modules/finvizfinance/default.nix32
-rw-r--r--pkgs/development/python-modules/fiona/default.nix47
-rw-r--r--pkgs/development/python-modules/fipy/default.nix59
-rw-r--r--pkgs/development/python-modules/fire/default.nix46
-rw-r--r--pkgs/development/python-modules/firebase-messaging/default.nix51
-rw-r--r--pkgs/development/python-modules/fireflyalgorithm/default.nix33
-rw-r--r--pkgs/development/python-modules/firetv/default.nix19
-rw-r--r--pkgs/development/python-modules/first/default.nix15
-rw-r--r--pkgs/development/python-modules/fitbit/default.nix25
-rw-r--r--pkgs/development/python-modules/fivem-api/default.nix25
-rw-r--r--pkgs/development/python-modules/fixerio/default.nix19
-rw-r--r--pkgs/development/python-modules/fixtures/default.nix25
-rw-r--r--pkgs/development/python-modules/fjaraskupan/default.nix29
-rw-r--r--pkgs/development/python-modules/flake8-blind-except/default.nix21
-rw-r--r--pkgs/development/python-modules/flake8-bugbear/default.nix19
-rw-r--r--pkgs/development/python-modules/flake8-debugger/default.nix23
-rw-r--r--pkgs/development/python-modules/flake8-docstrings/default.nix17
-rw-r--r--pkgs/development/python-modules/flake8-future-import/default.nix42
-rw-r--r--pkgs/development/python-modules/flake8-import-order/default.nix30
-rw-r--r--pkgs/development/python-modules/flake8-length/default.nix35
-rw-r--r--pkgs/development/python-modules/flake8-polyfill/default.nix25
-rw-r--r--pkgs/development/python-modules/flake8/default.nix33
-rw-r--r--pkgs/development/python-modules/flaky/default.nix18
-rw-r--r--pkgs/development/python-modules/flametree/default.nix17
-rw-r--r--pkgs/development/python-modules/flammkuchen/default.nix23
-rw-r--r--pkgs/development/python-modules/flasgger/default.nix35
-rw-r--r--pkgs/development/python-modules/flashtext/default.nix7
-rw-r--r--pkgs/development/python-modules/flask-admin/default.nix51
-rw-r--r--pkgs/development/python-modules/flask-api/default.nix39
-rw-r--r--pkgs/development/python-modules/flask-appbuilder/default.nix59
-rw-r--r--pkgs/development/python-modules/flask-assets/default.nix21
-rw-r--r--pkgs/development/python-modules/flask-babel/default.nix38
-rw-r--r--pkgs/development/python-modules/flask-babelex/default.nix23
-rw-r--r--pkgs/development/python-modules/flask-bcrypt/default.nix17
-rw-r--r--pkgs/development/python-modules/flask-bootstrap/default.nix17
-rw-r--r--pkgs/development/python-modules/flask-caching/default.nix55
-rw-r--r--pkgs/development/python-modules/flask-common/default.nix24
-rw-r--r--pkgs/development/python-modules/flask-compress/default.nix35
-rw-r--r--pkgs/development/python-modules/flask-cors/default.nix29
-rw-r--r--pkgs/development/python-modules/flask-dramatiq/default.nix43
-rw-r--r--pkgs/development/python-modules/flask-elastic/default.nix14
-rw-r--r--pkgs/development/python-modules/flask-expects-json/default.nix25
-rw-r--r--pkgs/development/python-modules/flask-gravatar/default.nix35
-rw-r--r--pkgs/development/python-modules/flask-httpauth/default.nix33
-rw-r--r--pkgs/development/python-modules/flask-jwt-extended/default.nix32
-rw-r--r--pkgs/development/python-modules/flask-limiter/default.nix47
-rw-r--r--pkgs/development/python-modules/flask-login/default.nix56
-rw-r--r--pkgs/development/python-modules/flask-mail/default.nix46
-rw-r--r--pkgs/development/python-modules/flask-mailman/default.nix31
-rw-r--r--pkgs/development/python-modules/flask-marshmallow/default.nix33
-rw-r--r--pkgs/development/python-modules/flask-migrate/default.nix29
-rw-r--r--pkgs/development/python-modules/flask-mongoengine/default.nix39
-rw-r--r--pkgs/development/python-modules/flask-mysqldb/default.nix29
-rw-r--r--pkgs/development/python-modules/flask-openid/default.nix25
-rw-r--r--pkgs/development/python-modules/flask-paranoid/default.nix19
-rw-r--r--pkgs/development/python-modules/flask-principal/default.nix36
-rw-r--r--pkgs/development/python-modules/flask-pymongo/default.nix23
-rw-r--r--pkgs/development/python-modules/flask-restful/default.nix39
-rw-r--r--pkgs/development/python-modules/flask-restx/default.nix67
-rw-r--r--pkgs/development/python-modules/flask-reverse-proxy-fix/default.nix11
-rw-r--r--pkgs/development/python-modules/flask-script/default.nix8
-rw-r--r--pkgs/development/python-modules/flask-seasurf/default.nix13
-rw-r--r--pkgs/development/python-modules/flask-security-too/default.nix131
-rw-r--r--pkgs/development/python-modules/flask-session-captcha/default.nix2
-rw-r--r--pkgs/development/python-modules/flask-session/default.nix74
-rw-r--r--pkgs/development/python-modules/flask-silk/default.nix13
-rw-r--r--pkgs/development/python-modules/flask-sock/default.nix29
-rw-r--r--pkgs/development/python-modules/flask-socketio/default.nix31
-rw-r--r--pkgs/development/python-modules/flask-sockets/default.nix17
-rw-r--r--pkgs/development/python-modules/flask-sqlalchemy/default.nix32
-rw-r--r--pkgs/development/python-modules/flask-sslify/default.nix9
-rw-r--r--pkgs/development/python-modules/flask-swagger-ui/default.nix13
-rw-r--r--pkgs/development/python-modules/flask-swagger/default.nix9
-rw-r--r--pkgs/development/python-modules/flask-talisman/default.nix25
-rw-r--r--pkgs/development/python-modules/flask-testing/default.nix25
-rw-r--r--pkgs/development/python-modules/flask-themes2/default.nix27
-rw-r--r--pkgs/development/python-modules/flask-versioned/default.nix7
-rw-r--r--pkgs/development/python-modules/flask-wtf/default.nix37
-rw-r--r--pkgs/development/python-modules/flask/default.nix87
-rw-r--r--pkgs/development/python-modules/flatbuffers/default.nix7
-rw-r--r--pkgs/development/python-modules/flatdict/default.nix11
-rw-r--r--pkgs/development/python-modules/flatten-dict/default.nix31
-rw-r--r--pkgs/development/python-modules/flax/default.nix67
-rw-r--r--pkgs/development/python-modules/fleep/default.nix15
-rw-r--r--pkgs/development/python-modules/flet-core/default.nix28
-rw-r--r--pkgs/development/python-modules/flet-runtime/default.nix27
-rw-r--r--pkgs/development/python-modules/flet/default.nix50
-rw-r--r--pkgs/development/python-modules/flexcache/default.nix55
-rw-r--r--pkgs/development/python-modules/flexmock/default.nix25
-rw-r--r--pkgs/development/python-modules/flexparser/default.nix55
-rw-r--r--pkgs/development/python-modules/flickrapi/default.nix27
-rw-r--r--pkgs/development/python-modules/flipr-api/default.nix29
-rw-r--r--pkgs/development/python-modules/flit-core/default.nix7
-rw-r--r--pkgs/development/python-modules/flit-scm/default.nix30
-rw-r--r--pkgs/development/python-modules/flit/default.nix33
-rw-r--r--pkgs/development/python-modules/floret/default.nix25
-rw-r--r--pkgs/development/python-modules/flow-record/default.nix53
-rw-r--r--pkgs/development/python-modules/flower/default.nix27
-rw-r--r--pkgs/development/python-modules/flowlogs-reader/default.nix27
-rw-r--r--pkgs/development/python-modules/fluent-logger/default.nix37
-rw-r--r--pkgs/development/python-modules/flufl/bounce.nix38
-rw-r--r--pkgs/development/python-modules/flufl/i18n.nix23
-rw-r--r--pkgs/development/python-modules/flufl/lock.nix33
-rw-r--r--pkgs/development/python-modules/flux-led/default.nix27
-rw-r--r--pkgs/development/python-modules/flyingsquid/default.nix13
-rw-r--r--pkgs/development/python-modules/fn/default.nix15
-rw-r--r--pkgs/development/python-modules/fnv-hash-fast/default.nix33
-rw-r--r--pkgs/development/python-modules/fnvhash/default.nix9
-rw-r--r--pkgs/development/python-modules/folium/default.nix45
-rw-r--r--pkgs/development/python-modules/font-v/default.nix16
-rw-r--r--pkgs/development/python-modules/fontawesomefree/default.nix16
-rw-r--r--pkgs/development/python-modules/fontbakery/default.nix95
-rw-r--r--pkgs/development/python-modules/fontbakery/tests.nix9
-rw-r--r--pkgs/development/python-modules/fontfeatures/default.nix26
-rw-r--r--pkgs/development/python-modules/fontmake/default.nix23
-rw-r--r--pkgs/development/python-modules/fontmath/default.nix29
-rw-r--r--pkgs/development/python-modules/fontparts/default.nix54
-rw-r--r--pkgs/development/python-modules/fontpens/default.nix39
-rw-r--r--pkgs/development/python-modules/fonttools/default.nix131
-rw-r--r--pkgs/development/python-modules/foobot-async/default.nix28
-rw-r--r--pkgs/development/python-modules/foolscap/default.nix41
-rw-r--r--pkgs/development/python-modules/forbiddenfruit/default.nix38
-rw-r--r--pkgs/development/python-modules/fordpass/default.nix15
-rw-r--r--pkgs/development/python-modules/forecast-solar/default.nix31
-rw-r--r--pkgs/development/python-modules/formbox/default.nix17
-rw-r--r--pkgs/development/python-modules/formencode/default.nix19
-rw-r--r--pkgs/development/python-modules/formulae/default.nix26
-rw-r--r--pkgs/development/python-modules/formulaic/default.nix45
-rw-r--r--pkgs/development/python-modules/fortiosapi/default.nix25
-rw-r--r--pkgs/development/python-modules/fountains/default.nix23
-rw-r--r--pkgs/development/python-modules/foxdot/default.nix16
-rw-r--r--pkgs/development/python-modules/fpdf/default.nix6
-rw-r--r--pkgs/development/python-modules/fpdf2/default.nix32
-rw-r--r--pkgs/development/python-modules/fpylll/default.nix50
-rw-r--r--pkgs/development/python-modules/fpyutils/default.nix33
-rw-r--r--pkgs/development/python-modules/fqdn/default.nix19
-rw-r--r--pkgs/development/python-modules/freebox-api/default.nix31
-rw-r--r--pkgs/development/python-modules/freetype-py/default.nix23
-rw-r--r--pkgs/development/python-modules/freezegun/default.nix41
-rw-r--r--pkgs/development/python-modules/frelatage/default.nix29
-rw-r--r--pkgs/development/python-modules/freud/default.nix90
-rw-r--r--pkgs/development/python-modules/frida-python/default.nix16
-rw-r--r--pkgs/development/python-modules/frigidaire/default.nix33
-rw-r--r--pkgs/development/python-modules/frilouz/default.nix11
-rw-r--r--pkgs/development/python-modules/fritzconnection/default.nix36
-rw-r--r--pkgs/development/python-modules/frozendict/default.nix31
-rw-r--r--pkgs/development/python-modules/frozenlist/default.nix29
-rw-r--r--pkgs/development/python-modules/frozenlist2/default.nix15
-rw-r--r--pkgs/development/python-modules/fs-s3fs/default.nix15
-rw-r--r--pkgs/development/python-modules/fs/default.nix83
-rw-r--r--pkgs/development/python-modules/fschat/default.nix71
-rw-r--r--pkgs/development/python-modules/fsspec-xrootd/default.nix33
-rw-r--r--pkgs/development/python-modules/fsspec/default.nix172
-rw-r--r--pkgs/development/python-modules/fst-pso/default.nix17
-rw-r--r--pkgs/development/python-modules/ftfy/default.nix34
-rw-r--r--pkgs/development/python-modules/ftputil/default.nix19
-rw-r--r--pkgs/development/python-modules/fugashi/default.nix37
-rw-r--r--pkgs/development/python-modules/func-timeout/default.nix13
-rw-r--r--pkgs/development/python-modules/funcparserlib/default.nix25
-rw-r--r--pkgs/development/python-modules/funcsigs/default.nix8
-rw-r--r--pkgs/development/python-modules/functiontrace/default.nix13
-rw-r--r--pkgs/development/python-modules/functools32/default.nix22
-rw-r--r--pkgs/development/python-modules/funcy/default.nix10
-rw-r--r--pkgs/development/python-modules/funsor/default.nix43
-rw-r--r--pkgs/development/python-modules/furl/default.nix21
-rw-r--r--pkgs/development/python-modules/furo/default.nix33
-rw-r--r--pkgs/development/python-modules/fuse-python/default.nix9
-rw-r--r--pkgs/development/python-modules/fusepy/default.nix12
-rw-r--r--pkgs/development/python-modules/future-fstrings/default.nix9
-rw-r--r--pkgs/development/python-modules/future-typing/default.nix11
-rw-r--r--pkgs/development/python-modules/future/default.nix15
-rw-r--r--pkgs/development/python-modules/fuzzyfinder/default.nix13
-rw-r--r--pkgs/development/python-modules/fuzzytm/default.nix34
-rw-r--r--pkgs/development/python-modules/fuzzywuzzy/default.nix16
-rw-r--r--pkgs/development/python-modules/fvcore/default.nix43
-rw-r--r--pkgs/development/python-modules/fvs/default.nix15
-rw-r--r--pkgs/development/python-modules/fx2/default.nix22
-rw-r--r--pkgs/development/python-modules/fyta-cli/default.nix4
-rw-r--r--pkgs/development/python-modules/g2pkk/default.nix16
-rw-r--r--pkgs/development/python-modules/galois/default.nix32
-rw-r--r--pkgs/development/python-modules/gamble/default.nix34
-rw-r--r--pkgs/development/python-modules/gaphas/default.nix31
-rw-r--r--pkgs/development/python-modules/gardena-bluetooth/default.nix39
-rw-r--r--pkgs/development/python-modules/garminconnect-aio/default.nix19
-rw-r--r--pkgs/development/python-modules/garminconnect/default.nix4
-rw-r--r--pkgs/development/python-modules/garth/default.nix37
-rw-r--r--pkgs/development/python-modules/gassist-text/default.nix35
-rw-r--r--pkgs/development/python-modules/gast/default.nix22
-rw-r--r--pkgs/development/python-modules/gatt/default.nix11
-rw-r--r--pkgs/development/python-modules/gattlib/default.nix37
-rw-r--r--pkgs/development/python-modules/gawd/default.nix23
-rw-r--r--pkgs/development/python-modules/gb-io/default.nix21
-rw-r--r--pkgs/development/python-modules/gbinder-python/default.nix17
-rw-r--r--pkgs/development/python-modules/gbulb/default.nix21
-rw-r--r--pkgs/development/python-modules/gcal-sync/default.nix37
-rw-r--r--pkgs/development/python-modules/gcodepy/default.nix17
-rw-r--r--pkgs/development/python-modules/gcovr/default.nix25
-rw-r--r--pkgs/development/python-modules/gcs-oauth2-boto-plugin/default.nix40
-rw-r--r--pkgs/development/python-modules/gcsa/default.nix30
-rw-r--r--pkgs/development/python-modules/gcsfs/default.nix45
-rw-r--r--pkgs/development/python-modules/gdata/default.nix8
-rw-r--r--pkgs/development/python-modules/gdb-pt-dump/default.nix9
-rw-r--r--pkgs/development/python-modules/gdown/default.nix37
-rw-r--r--pkgs/development/python-modules/ge25519/default.nix31
-rw-r--r--pkgs/development/python-modules/geeknote/default.nix39
-rw-r--r--pkgs/development/python-modules/gehomesdk/default.nix43
-rw-r--r--pkgs/development/python-modules/gekitchen/default.nix33
-rw-r--r--pkgs/development/python-modules/gekko/default.nix4
-rw-r--r--pkgs/development/python-modules/gemfileparser/default.nix39
-rw-r--r--pkgs/development/python-modules/gemfileparser2/default.nix30
-rw-r--r--pkgs/development/python-modules/genanki/default.nix23
-rw-r--r--pkgs/development/python-modules/generic/default.nix23
-rw-r--r--pkgs/development/python-modules/genie-partner-sdk/default.nix38
-rw-r--r--pkgs/development/python-modules/geniushub-client/default.nix25
-rw-r--r--pkgs/development/python-modules/genome-collector/default.nix13
-rw-r--r--pkgs/development/python-modules/genpy/default.nix11
-rw-r--r--pkgs/development/python-modules/genshi/default.nix18
-rw-r--r--pkgs/development/python-modules/gensim/default.nix46
-rw-r--r--pkgs/development/python-modules/gentools/default.nix31
-rw-r--r--pkgs/development/python-modules/genzshcomp/default.nix10
-rw-r--r--pkgs/development/python-modules/geoalchemy2/default.nix31
-rw-r--r--pkgs/development/python-modules/geocachingapi/default.nix25
-rw-r--r--pkgs/development/python-modules/geocoder/default.nix29
-rw-r--r--pkgs/development/python-modules/geodatasets/default.nix54
-rw-r--r--pkgs/development/python-modules/geographiclib/default.nix15
-rw-r--r--pkgs/development/python-modules/geoip/default.nix19
-rw-r--r--pkgs/development/python-modules/geoip2/default.nix45
-rw-r--r--pkgs/development/python-modules/geojson-client/default.nix27
-rw-r--r--pkgs/development/python-modules/geojson/default.nix25
-rw-r--r--pkgs/development/python-modules/geomet/default.nix28
-rw-r--r--pkgs/development/python-modules/geometric/default.nix32
-rw-r--r--pkgs/development/python-modules/geopandas/default.nix52
-rw-r--r--pkgs/development/python-modules/geopy/default.nix27
-rw-r--r--pkgs/development/python-modules/georss-client/default.nix33
-rw-r--r--pkgs/development/python-modules/georss-generic-client/default.nix21
-rw-r--r--pkgs/development/python-modules/georss-ign-sismologia-client/default.nix29
-rw-r--r--pkgs/development/python-modules/georss-ingv-centro-nazionale-terremoti-client/default.nix31
-rw-r--r--pkgs/development/python-modules/georss-nrcan-earthquakes-client/default.nix25
-rw-r--r--pkgs/development/python-modules/georss-qld-bushfire-alert-client/default.nix31
-rw-r--r--pkgs/development/python-modules/georss-tfs-incidents-client/default.nix25
-rw-r--r--pkgs/development/python-modules/georss-wa-dfes-client/default.nix27
-rw-r--r--pkgs/development/python-modules/gerbonara/default.nix23
-rw-r--r--pkgs/development/python-modules/get-video-properties/default.nix10
-rw-r--r--pkgs/development/python-modules/getjump/default.nix25
-rw-r--r--pkgs/development/python-modules/getkey/default.nix11
-rw-r--r--pkgs/development/python-modules/getmac/default.nix21
-rw-r--r--pkgs/development/python-modules/gevent-socketio/default.nix33
-rw-r--r--pkgs/development/python-modules/gevent-websocket/default.nix17
-rw-r--r--pkgs/development/python-modules/gevent/default.nix56
-rw-r--r--pkgs/development/python-modules/geventhttpclient/default.nix41
-rw-r--r--pkgs/development/python-modules/gfal2-python/default.nix28
-rw-r--r--pkgs/development/python-modules/gfal2-util/default.nix146
-rw-r--r--pkgs/development/python-modules/gfal2-util/fetchgfal2.nix73
-rw-r--r--pkgs/development/python-modules/gflags/default.nix10
-rw-r--r--pkgs/development/python-modules/gflanguages/default.nix35
-rw-r--r--pkgs/development/python-modules/gfsubsets/default.nix25
-rw-r--r--pkgs/development/python-modules/gguf/default.nix34
-rw-r--r--pkgs/development/python-modules/ghapi/default.nix19
-rw-r--r--pkgs/development/python-modules/ghdiff/default.nix19
-rw-r--r--pkgs/development/python-modules/ghp-import/default.nix19
-rw-r--r--pkgs/development/python-modules/ghrepo-stats/default.nix19
-rw-r--r--pkgs/development/python-modules/gibberish-detector/default.nix15
-rw-r--r--pkgs/development/python-modules/gidgethub/default.nix36
-rw-r--r--pkgs/development/python-modules/gin-config/default.nix21
-rw-r--r--pkgs/development/python-modules/gios/default.nix33
-rw-r--r--pkgs/development/python-modules/gipc/default.nix54
-rw-r--r--pkgs/development/python-modules/gistyc/default.nix19
-rw-r--r--pkgs/development/python-modules/git-annex-adapter/default.nix37
-rw-r--r--pkgs/development/python-modules/git-filter-repo/default.nix33
-rw-r--r--pkgs/development/python-modules/git-find-repos/default.nix28
-rw-r--r--pkgs/development/python-modules/git-revise/default.nix21
-rw-r--r--pkgs/development/python-modules/git-sweep/default.nix21
-rw-r--r--pkgs/development/python-modules/git-url-parse/default.nix23
-rw-r--r--pkgs/development/python-modules/git-versioner/default.nix18
-rw-r--r--pkgs/development/python-modules/gitdb/default.nix33
-rw-r--r--pkgs/development/python-modules/github-to-sqlite/default.nix23
-rw-r--r--pkgs/development/python-modules/github-webhook/default.nix16
-rw-r--r--pkgs/development/python-modules/github3-py/default.nix36
-rw-r--r--pkgs/development/python-modules/githubkit/default.nix7
-rw-r--r--pkgs/development/python-modules/gitignore-parser/default.nix27
-rw-r--r--pkgs/development/python-modules/gitlike-commands/default.nix19
-rw-r--r--pkgs/development/python-modules/gitpython/default.nix27
-rw-r--r--pkgs/development/python-modules/glad/default.nix6
-rw-r--r--pkgs/development/python-modules/glad2/default.nix13
-rw-r--r--pkgs/development/python-modules/glances-api/default.nix4
-rw-r--r--pkgs/development/python-modules/glcontext/default.nix20
-rw-r--r--pkgs/development/python-modules/glean-parser/default.nix47
-rw-r--r--pkgs/development/python-modules/glean-sdk/default.nix45
-rw-r--r--pkgs/development/python-modules/glfw/default.nix19
-rw-r--r--pkgs/development/python-modules/glob2/default.nix11
-rw-r--r--pkgs/development/python-modules/globre/default.nix29
-rw-r--r--pkgs/development/python-modules/globus-sdk/default.nix59
-rw-r--r--pkgs/development/python-modules/glom/default.nix41
-rw-r--r--pkgs/development/python-modules/glueviz/default.nix71
-rw-r--r--pkgs/development/python-modules/glymur/default.nix72
-rw-r--r--pkgs/development/python-modules/glymur/set-lib-paths.patch16
-rw-r--r--pkgs/development/python-modules/glyphsets/default.nix52
-rw-r--r--pkgs/development/python-modules/glyphslib/default.nix33
-rw-r--r--pkgs/development/python-modules/glyphtools/default.nix15
-rw-r--r--pkgs/development/python-modules/gmpy/default.nix31
-rw-r--r--pkgs/development/python-modules/gmpy2/default.nix84
-rw-r--r--pkgs/development/python-modules/gntp/default.nix11
-rw-r--r--pkgs/development/python-modules/gnureadline/default.nix18
-rw-r--r--pkgs/development/python-modules/goalzero/default.nix19
-rw-r--r--pkgs/development/python-modules/gocardless-pro/default.nix24
-rw-r--r--pkgs/development/python-modules/goobook/default.nix25
-rw-r--r--pkgs/development/python-modules/goocalendar/default.nix31
-rw-r--r--pkgs/development/python-modules/goodwe/default.nix4
-rw-r--r--pkgs/development/python-modules/google-ai-generativelanguage/default.nix4
-rw-r--r--pkgs/development/python-modules/google-api-core/default.nix53
-rw-r--r--pkgs/development/python-modules/google-api-python-client/default.nix6
-rw-r--r--pkgs/development/python-modules/google-auth-httplib2/default.nix21
-rw-r--r--pkgs/development/python-modules/google-auth-oauthlib/default.nix49
-rw-r--r--pkgs/development/python-modules/google-auth/default.nix95
-rw-r--r--pkgs/development/python-modules/google-cloud-access-context-manager/default.nix23
-rw-r--r--pkgs/development/python-modules/google-cloud-appengine-logging/default.nix29
-rw-r--r--pkgs/development/python-modules/google-cloud-artifact-registry/default.nix31
-rw-r--r--pkgs/development/python-modules/google-cloud-audit-log/default.nix22
-rw-r--r--pkgs/development/python-modules/google-cloud-automl/default.nix47
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery-logging/default.nix29
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix41
-rw-r--r--pkgs/development/python-modules/google-cloud-bigquery/default.nix8
-rw-r--r--pkgs/development/python-modules/google-cloud-bigtable/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-compute/default.nix33
-rw-r--r--pkgs/development/python-modules/google-cloud-container/default.nix33
-rw-r--r--pkgs/development/python-modules/google-cloud-core/default.nix27
-rw-r--r--pkgs/development/python-modules/google-cloud-datacatalog/default.nix35
-rw-r--r--pkgs/development/python-modules/google-cloud-dataproc/default.nix31
-rw-r--r--pkgs/development/python-modules/google-cloud-datastore/default.nix31
-rw-r--r--pkgs/development/python-modules/google-cloud-dlp/default.nix33
-rw-r--r--pkgs/development/python-modules/google-cloud-dns/default.nix21
-rw-r--r--pkgs/development/python-modules/google-cloud-error-reporting/default.nix31
-rw-r--r--pkgs/development/python-modules/google-cloud-firestore/default.nix35
-rw-r--r--pkgs/development/python-modules/google-cloud-iam-logging/default.nix29
-rw-r--r--pkgs/development/python-modules/google-cloud-iam/default.nix23
-rw-r--r--pkgs/development/python-modules/google-cloud-iot/default.nix25
-rw-r--r--pkgs/development/python-modules/google-cloud-kms/default.nix33
-rw-r--r--pkgs/development/python-modules/google-cloud-language/default.nix25
-rw-r--r--pkgs/development/python-modules/google-cloud-logging/default.nix45
-rw-r--r--pkgs/development/python-modules/google-cloud-netapp/default.nix33
-rw-r--r--pkgs/development/python-modules/google-cloud-org-policy/default.nix29
-rw-r--r--pkgs/development/python-modules/google-cloud-os-config/default.nix29
-rw-r--r--pkgs/development/python-modules/google-cloud-pubsub/default.nix4
-rw-r--r--pkgs/development/python-modules/google-cloud-redis/default.nix25
-rw-r--r--pkgs/development/python-modules/google-cloud-resource-manager/default.nix29
-rw-r--r--pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix25
-rw-r--r--pkgs/development/python-modules/google-cloud-shell/default.nix29
-rw-r--r--pkgs/development/python-modules/google-cloud-speech/default.nix27
-rw-r--r--pkgs/development/python-modules/google-cloud-storage/default.nix49
-rw-r--r--pkgs/development/python-modules/google-cloud-tasks/default.nix29
-rw-r--r--pkgs/development/python-modules/google-cloud-testutils/default.nix21
-rw-r--r--pkgs/development/python-modules/google-cloud-texttospeech/default.nix27
-rw-r--r--pkgs/development/python-modules/google-cloud-trace/default.nix29
-rw-r--r--pkgs/development/python-modules/google-cloud-translate/default.nix31
-rw-r--r--pkgs/development/python-modules/google-cloud-videointelligence/default.nix29
-rw-r--r--pkgs/development/python-modules/google-cloud-vision/default.nix27
-rw-r--r--pkgs/development/python-modules/google-cloud-vpc-access/default.nix29
-rw-r--r--pkgs/development/python-modules/google-cloud-webrisk/default.nix29
-rw-r--r--pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix27
-rw-r--r--pkgs/development/python-modules/google-cloud-workflows/default.nix27
-rw-r--r--pkgs/development/python-modules/google-cloud-workstations/default.nix31
-rw-r--r--pkgs/development/python-modules/google-crc32c/default.nix14
-rw-r--r--pkgs/development/python-modules/google-generativeai/default.nix6
-rw-r--r--pkgs/development/python-modules/google-i18n-address/default.nix31
-rw-r--r--pkgs/development/python-modules/google-nest-sdm/default.nix45
-rw-r--r--pkgs/development/python-modules/google-pasta/default.nix21
-rw-r--r--pkgs/development/python-modules/google-re2/default.nix40
-rw-r--r--pkgs/development/python-modules/google-reauth/default.nix21
-rw-r--r--pkgs/development/python-modules/google-resumable-media/default.nix37
-rw-r--r--pkgs/development/python-modules/google-search-results/default.nix19
-rw-r--r--pkgs/development/python-modules/google/default.nix19
-rw-r--r--pkgs/development/python-modules/googleapis-common-protos/default.nix21
-rw-r--r--pkgs/development/python-modules/googlemaps/default.nix25
-rw-r--r--pkgs/development/python-modules/googletrans/default.nix7
-rw-r--r--pkgs/development/python-modules/gophish/default.nix63
-rw-r--r--pkgs/development/python-modules/gotailwind/default.nix59
-rw-r--r--pkgs/development/python-modules/gotenberg-client/default.nix33
-rw-r--r--pkgs/development/python-modules/govee-led-wez/default.nix31
-rw-r--r--pkgs/development/python-modules/govee-local-api/default.nix10
-rw-r--r--pkgs/development/python-modules/goveelights/default.nix19
-rw-r--r--pkgs/development/python-modules/gpapi/default.nix24
-rw-r--r--pkgs/development/python-modules/gpaw/default.nix77
-rw-r--r--pkgs/development/python-modules/gphoto2/default.nix20
-rw-r--r--pkgs/development/python-modules/gpib-ctypes/default.nix21
-rw-r--r--pkgs/development/python-modules/gpiozero/default.nix37
-rw-r--r--pkgs/development/python-modules/gplaycli/default.nix39
-rw-r--r--pkgs/development/python-modules/gprof2dot/default.nix25
-rw-r--r--pkgs/development/python-modules/gps3/default.nix7
-rw-r--r--pkgs/development/python-modules/gpsoauth/default.nix25
-rw-r--r--pkgs/development/python-modules/gpt-2-simple/default.nix32
-rw-r--r--pkgs/development/python-modules/gptcache/default.nix19
-rw-r--r--pkgs/development/python-modules/gpuctypes/default.nix128
-rw-r--r--pkgs/development/python-modules/gpustat/default.nix33
-rw-r--r--pkgs/development/python-modules/gpxpy/default.nix9
-rw-r--r--pkgs/development/python-modules/gpy/default.nix33
-rw-r--r--pkgs/development/python-modules/gpytorch/default.nix27
-rw-r--r--pkgs/development/python-modules/gql/default.nix75
-rw-r--r--pkgs/development/python-modules/grad-cam/default.nix56
-rw-r--r--pkgs/development/python-modules/gradient-statsd/default.nix27
-rw-r--r--pkgs/development/python-modules/gradient-utils/default.nix31
-rw-r--r--pkgs/development/python-modules/gradient/default.nix45
-rw-r--r--pkgs/development/python-modules/gradio-pdf/default.nix33
-rw-r--r--pkgs/development/python-modules/gradio/client.nix68
-rw-r--r--pkgs/development/python-modules/gradio/default.nix226
-rw-r--r--pkgs/development/python-modules/grafanalib/default.nix32
-rw-r--r--pkgs/development/python-modules/grammalecte/default.nix13
-rw-r--r--pkgs/development/python-modules/grandalf/default.nix27
-rw-r--r--pkgs/development/python-modules/graph-tool/default.nix93
-rw-r--r--pkgs/development/python-modules/grapheme/default.nix13
-rw-r--r--pkgs/development/python-modules/graphene-django/default.nix61
-rw-r--r--pkgs/development/python-modules/graphene/default.nix41
-rw-r--r--pkgs/development/python-modules/graphite-web/default.nix48
-rw-r--r--pkgs/development/python-modules/graphlib-backport/default.nix11
-rw-r--r--pkgs/development/python-modules/graphql-core/default.nix21
-rw-r--r--pkgs/development/python-modules/graphql-relay/default.nix39
-rw-r--r--pkgs/development/python-modules/graphql-server-core/default.nix21
-rw-r--r--pkgs/development/python-modules/graphql-subscription-manager/default.nix17
-rw-r--r--pkgs/development/python-modules/graphqlclient/default.nix13
-rw-r--r--pkgs/development/python-modules/graphtage/default.nix35
-rw-r--r--pkgs/development/python-modules/graphviz/default.nix39
-rw-r--r--pkgs/development/python-modules/grappelli-safe/default.nix21
-rw-r--r--pkgs/development/python-modules/graspologic/default.nix52
-rw-r--r--pkgs/development/python-modules/greatfet/default.nix24
-rw-r--r--pkgs/development/python-modules/greeclimate/default.nix19
-rw-r--r--pkgs/development/python-modules/green/default.nix27
-rw-r--r--pkgs/development/python-modules/greeneye-monitor/default.nix29
-rw-r--r--pkgs/development/python-modules/greenlet/default.nix106
-rw-r--r--pkgs/development/python-modules/greenlet/python-3.13-compat.patch313
-rw-r--r--pkgs/development/python-modules/gremlinpython/default.nix60
-rw-r--r--pkgs/development/python-modules/grequests/default.nix17
-rw-r--r--pkgs/development/python-modules/greynoise/default.nix39
-rw-r--r--pkgs/development/python-modules/gridnet/default.nix29
-rw-r--r--pkgs/development/python-modules/griffe/default.nix4
-rw-r--r--pkgs/development/python-modules/grip/default.nix48
-rw-r--r--pkgs/development/python-modules/groestlcoin-hash/default.nix11
-rw-r--r--pkgs/development/python-modules/growattserver/default.nix25
-rw-r--r--pkgs/development/python-modules/grpc-google-iam-v1/default.nix23
-rw-r--r--pkgs/development/python-modules/grpc-interceptor/default.nix27
-rw-r--r--pkgs/development/python-modules/grpcio-channelz/default.nix30
-rw-r--r--pkgs/development/python-modules/grpcio-gcp/default.nix9
-rw-r--r--pkgs/development/python-modules/grpcio-health-checking/default.nix26
-rw-r--r--pkgs/development/python-modules/grpcio-reflection/default.nix30
-rw-r--r--pkgs/development/python-modules/grpcio-status/default.nix26
-rw-r--r--pkgs/development/python-modules/grpcio-testing/default.nix35
-rw-r--r--pkgs/development/python-modules/grpcio-tools/default.nix27
-rw-r--r--pkgs/development/python-modules/grpcio/default.nix80
-rw-r--r--pkgs/development/python-modules/gruut-ipa/default.nix23
-rw-r--r--pkgs/development/python-modules/gruut/default.nix91
-rw-r--r--pkgs/development/python-modules/gruut/language-pack.nix20
-rw-r--r--pkgs/development/python-modules/gsd/default.nix36
-rw-r--r--pkgs/development/python-modules/gsm0338/default.nix24
-rw-r--r--pkgs/development/python-modules/gspread/default.nix33
-rw-r--r--pkgs/development/python-modules/gssapi/default.nix79
-rw-r--r--pkgs/development/python-modules/gst-python/default.nix36
-rw-r--r--pkgs/development/python-modules/gtfs-realtime-bindings/default.nix19
-rw-r--r--pkgs/development/python-modules/gto/default.nix47
-rw-r--r--pkgs/development/python-modules/gtts-token/default.nix16
-rw-r--r--pkgs/development/python-modules/gtts/default.nix41
-rw-r--r--pkgs/development/python-modules/gudhi/default.nix72
-rw-r--r--pkgs/development/python-modules/guessit/default.nix33
-rw-r--r--pkgs/development/python-modules/guestfs/default.nix13
-rw-r--r--pkgs/development/python-modules/guidance/default.nix53
-rw-r--r--pkgs/development/python-modules/gumath/default.nix31
-rw-r--r--pkgs/development/python-modules/gunicorn/default.nix88
-rw-r--r--pkgs/development/python-modules/guppy3/default.nix17
-rw-r--r--pkgs/development/python-modules/gurobipy/default.nix14
-rw-r--r--pkgs/development/python-modules/guzzle-sphinx-theme/default.nix19
-rw-r--r--pkgs/development/python-modules/gviz-api/default.nix11
-rw-r--r--pkgs/development/python-modules/gvm-tools/default.nix41
-rw-r--r--pkgs/development/python-modules/gwcs/default.nix61
-rw-r--r--pkgs/development/python-modules/gym-notices/default.nix8
-rw-r--r--pkgs/development/python-modules/gym/default.nix19
-rw-r--r--pkgs/development/python-modules/gymnasium/default.nix49
-rw-r--r--pkgs/development/python-modules/gyp/default.nix24
-rw-r--r--pkgs/development/python-modules/h11/default.nix17
-rw-r--r--pkgs/development/python-modules/h2/default.nix19
-rw-r--r--pkgs/development/python-modules/h3/default.nix46
-rw-r--r--pkgs/development/python-modules/h5io/default.nix21
-rw-r--r--pkgs/development/python-modules/h5netcdf/default.nix27
-rw-r--r--pkgs/development/python-modules/h5py/default.nix54
-rw-r--r--pkgs/development/python-modules/h5py/mpi4py-requirement.patch13
-rw-r--r--pkgs/development/python-modules/ha-ffmpeg/default.nix21
-rw-r--r--pkgs/development/python-modules/ha-mqtt-discoverable/default.nix39
-rw-r--r--pkgs/development/python-modules/ha-philipsjs/default.nix40
-rw-r--r--pkgs/development/python-modules/habanero/default.nix33
-rw-r--r--pkgs/development/python-modules/habitipy/default.nix45
-rw-r--r--pkgs/development/python-modules/habluetooth/default.nix51
-rw-r--r--pkgs/development/python-modules/hachoir/default.nix25
-rw-r--r--pkgs/development/python-modules/hacking/default.nix21
-rw-r--r--pkgs/development/python-modules/hahomematic/default.nix48
-rw-r--r--pkgs/development/python-modules/hakuin/default.nix42
-rw-r--r--pkgs/development/python-modules/halo/default.nix30
-rw-r--r--pkgs/development/python-modules/halohome/default.nix19
-rw-r--r--pkgs/development/python-modules/handout/default.nix14
-rw-r--r--pkgs/development/python-modules/hap-python/default.nix38
-rw-r--r--pkgs/development/python-modules/hass-nabucasa/default.nix6
-rw-r--r--pkgs/development/python-modules/hassil/default.nix44
-rw-r--r--pkgs/development/python-modules/hatasmota/default.nix23
-rw-r--r--pkgs/development/python-modules/hatch-fancy-pypi-readme/default.nix40
-rw-r--r--pkgs/development/python-modules/hatch-jupyter-builder/default.nix31
-rw-r--r--pkgs/development/python-modules/hatch-nodejs-version/default.nix25
-rw-r--r--pkgs/development/python-modules/hatch-odoo/default.nix40
-rw-r--r--pkgs/development/python-modules/hatch-regex-commit/default.nix46
-rw-r--r--pkgs/development/python-modules/hatch-requirements-txt/default.nix22
-rw-r--r--pkgs/development/python-modules/hatch-vcs/default.nix32
-rw-r--r--pkgs/development/python-modules/hatchling/default.nix46
-rw-r--r--pkgs/development/python-modules/haversine/default.nix23
-rw-r--r--pkgs/development/python-modules/hawkauthlib/default.nix37
-rw-r--r--pkgs/development/python-modules/hcloud/default.nix29
-rw-r--r--pkgs/development/python-modules/hcs-utils/default.nix24
-rw-r--r--pkgs/development/python-modules/hdate/default.nix54
-rw-r--r--pkgs/development/python-modules/hdbscan/default.nix41
-rw-r--r--pkgs/development/python-modules/hdf5plugin/default.nix18
-rw-r--r--pkgs/development/python-modules/hdfs/default.nix37
-rw-r--r--pkgs/development/python-modules/hdmedians/default.nix18
-rw-r--r--pkgs/development/python-modules/headerparser/default.nix27
-rw-r--r--pkgs/development/python-modules/heapdict/default.nix9
-rw-r--r--pkgs/development/python-modules/heatshrink2/default.nix13
-rw-r--r--pkgs/development/python-modules/heatzypy/default.nix4
-rw-r--r--pkgs/development/python-modules/help2man/default.nix27
-rw-r--r--pkgs/development/python-modules/helpdev/default.nix12
-rw-r--r--pkgs/development/python-modules/helper/default.nix17
-rw-r--r--pkgs/development/python-modules/hepunits/default.nix22
-rw-r--r--pkgs/development/python-modules/here-routing/default.nix27
-rw-r--r--pkgs/development/python-modules/here-transit/default.nix27
-rw-r--r--pkgs/development/python-modules/herepy/default.nix33
-rw-r--r--pkgs/development/python-modules/hetzner/default.nix7
-rw-r--r--pkgs/development/python-modules/heudiconv/default.nix62
-rw-r--r--pkgs/development/python-modules/hexbytes/default.nix23
-rw-r--r--pkgs/development/python-modules/hexdump/default.nix11
-rw-r--r--pkgs/development/python-modules/hfst/default.nix23
-rw-r--r--pkgs/development/python-modules/hg-commitsigs/default.nix9
-rw-r--r--pkgs/development/python-modules/hg-evolve/default.nix18
-rw-r--r--pkgs/development/python-modules/hg-git/default.nix34
-rw-r--r--pkgs/development/python-modules/hickle/default.nix13
-rw-r--r--pkgs/development/python-modules/hid-parser/default.nix17
-rw-r--r--pkgs/development/python-modules/hid/default.nix27
-rw-r--r--pkgs/development/python-modules/hidapi/default.nix49
-rw-r--r--pkgs/development/python-modules/hieroglyph/default.nix9
-rw-r--r--pkgs/development/python-modules/highdicom/default.nix27
-rw-r--r--pkgs/development/python-modules/hijri-converter/default.nix19
-rw-r--r--pkgs/development/python-modules/hikari-lightbulb/default.nix48
-rw-r--r--pkgs/development/python-modules/hikari/default.nix39
-rw-r--r--pkgs/development/python-modules/hikvision/default.nix34
-rw-r--r--pkgs/development/python-modules/hiredis/default.nix24
-rw-r--r--pkgs/development/python-modules/hiro/default.nix13
-rw-r--r--pkgs/development/python-modules/hishel/default.nix4
-rw-r--r--pkgs/development/python-modules/hist/default.nix27
-rw-r--r--pkgs/development/python-modules/histoprint/default.nix23
-rw-r--r--pkgs/development/python-modules/hiyapyco/default.nix21
-rw-r--r--pkgs/development/python-modules/hjson/default.nix37
-rw-r--r--pkgs/development/python-modules/hkavr/default.nix19
-rw-r--r--pkgs/development/python-modules/hkdf/default.nix10
-rw-r--r--pkgs/development/python-modules/hledger-utils/default.nix41
-rw-r--r--pkgs/development/python-modules/hlk-sw16/default.nix7
-rw-r--r--pkgs/development/python-modules/hmmlearn/default.nix29
-rw-r--r--pkgs/development/python-modules/hnswlib/default.nix21
-rw-r--r--pkgs/development/python-modules/hocr-tools/default.nix21
-rw-r--r--pkgs/development/python-modules/hole/default.nix19
-rw-r--r--pkgs/development/python-modules/holidays/default.nix4
-rw-r--r--pkgs/development/python-modules/hologram/default.nix40
-rw-r--r--pkgs/development/python-modules/holoviews/default.nix39
-rw-r--r--pkgs/development/python-modules/home-assistant-bluetooth/default.nix40
-rw-r--r--pkgs/development/python-modules/home-assistant-bluetooth/habluetooth-3.0-compat.patch50
-rw-r--r--pkgs/development/python-modules/home-assistant-chip-clusters/default.nix15
-rw-r--r--pkgs/development/python-modules/home-assistant-chip-core/default.nix102
-rw-r--r--pkgs/development/python-modules/homeconnect/default.nix25
-rw-r--r--pkgs/development/python-modules/homematicip/default.nix113
-rw-r--r--pkgs/development/python-modules/homepluscontrol/default.nix19
-rw-r--r--pkgs/development/python-modules/hoomd-blue/default.nix52
-rw-r--r--pkgs/development/python-modules/hopcroftkarp/default.nix7
-rw-r--r--pkgs/development/python-modules/horizon-eda/default.nix33
-rw-r--r--pkgs/development/python-modules/howdoi/default.nix45
-rw-r--r--pkgs/development/python-modules/hpack/default.nix13
-rw-r--r--pkgs/development/python-modules/hpccm/default.nix45
-rw-r--r--pkgs/development/python-modules/hs-dbus-signature/default.nix13
-rw-r--r--pkgs/development/python-modules/hsaudiotag3k/default.nix12
-rw-r--r--pkgs/development/python-modules/hsh/default.nix32
-rw-r--r--pkgs/development/python-modules/hsluv/default.nix15
-rw-r--r--pkgs/development/python-modules/hstspreload/default.nix4
-rw-r--r--pkgs/development/python-modules/html-sanitizer/default.nix33
-rw-r--r--pkgs/development/python-modules/html-tag-names/default.nix13
-rw-r--r--pkgs/development/python-modules/html-text/default.nix40
-rw-r--r--pkgs/development/python-modules/html-void-elements/default.nix13
-rw-r--r--pkgs/development/python-modules/html2image/default.nix19
-rw-r--r--pkgs/development/python-modules/html2text/default.nix24
-rw-r--r--pkgs/development/python-modules/html5-parser/default.nix37
-rw-r--r--pkgs/development/python-modules/html5lib/default.nix24
-rw-r--r--pkgs/development/python-modules/html5tagger/default.nix17
-rw-r--r--pkgs/development/python-modules/htmllaundry/default.nix31
-rw-r--r--pkgs/development/python-modules/htmllistparse/default.nix28
-rw-r--r--pkgs/development/python-modules/htmlmin/default.nix10
-rw-r--r--pkgs/development/python-modules/htseq/default.nix74
-rw-r--r--pkgs/development/python-modules/httmock/default.nix13
-rw-r--r--pkgs/development/python-modules/http-ece/default.nix18
-rw-r--r--pkgs/development/python-modules/http-message-signatures/default.nix31
-rw-r--r--pkgs/development/python-modules/http-parser/default.nix36
-rw-r--r--pkgs/development/python-modules/http-sfv/default.nix25
-rw-r--r--pkgs/development/python-modules/httpagentparser/default.nix13
-rw-r--r--pkgs/development/python-modules/httpauth/default.nix12
-rw-r--r--pkgs/development/python-modules/httpbin/default.nix51
-rw-r--r--pkgs/development/python-modules/httpcore/default.nix65
-rw-r--r--pkgs/development/python-modules/httpie-ntlm/default.nix16
-rw-r--r--pkgs/development/python-modules/httpie/default.nix115
-rw-r--r--pkgs/development/python-modules/httplib2/default.nix73
-rw-r--r--pkgs/development/python-modules/httpretty/default.nix17
-rw-r--r--pkgs/development/python-modules/httpserver/default.nix10
-rw-r--r--pkgs/development/python-modules/httpsig/default.nix23
-rw-r--r--pkgs/development/python-modules/httptools/default.nix15
-rw-r--r--pkgs/development/python-modules/httpx-auth/default.nix33
-rw-r--r--pkgs/development/python-modules/httpx-ntlm/default.nix17
-rw-r--r--pkgs/development/python-modules/httpx-socks/default.nix59
-rw-r--r--pkgs/development/python-modules/httpx-ws/default.nix68
-rw-r--r--pkgs/development/python-modules/httpx/default.nix87
-rw-r--r--pkgs/development/python-modules/huawei-lte-api/default.nix21
-rw-r--r--pkgs/development/python-modules/huey/default.nix21
-rw-r--r--pkgs/development/python-modules/hug/default.nix32
-rw-r--r--pkgs/development/python-modules/huggingface-hub/default.nix43
-rw-r--r--pkgs/development/python-modules/huisbaasje-client/default.nix21
-rw-r--r--pkgs/development/python-modules/human-readable/default.nix15
-rw-r--r--pkgs/development/python-modules/humanfriendly/default.nix23
-rw-r--r--pkgs/development/python-modules/humanize/default.nix28
-rw-r--r--pkgs/development/python-modules/humblewx/default.nix11
-rw-r--r--pkgs/development/python-modules/hupper/default.nix19
-rw-r--r--pkgs/development/python-modules/hurry-filesize/default.nix20
-rw-r--r--pkgs/development/python-modules/huum/default.nix27
-rw-r--r--pkgs/development/python-modules/hvac/default.nix27
-rw-r--r--pkgs/development/python-modules/hvplot/default.nix27
-rw-r--r--pkgs/development/python-modules/hwdata/default.nix19
-rw-r--r--pkgs/development/python-modules/hwi/default.nix31
-rw-r--r--pkgs/development/python-modules/hy/default.nix67
-rw-r--r--pkgs/development/python-modules/hydra-check/default.nix22
-rw-r--r--pkgs/development/python-modules/hydra-core/default.nix48
-rw-r--r--pkgs/development/python-modules/hydrawiser/default.nix19
-rw-r--r--pkgs/development/python-modules/hydrus-api/default.nix21
-rw-r--r--pkgs/development/python-modules/hypchat/default.nix15
-rw-r--r--pkgs/development/python-modules/hypercorn/default.nix33
-rw-r--r--pkgs/development/python-modules/hyperframe/default.nix7
-rw-r--r--pkgs/development/python-modules/hyperion-py/default.nix31
-rw-r--r--pkgs/development/python-modules/hyperlink/default.nix18
-rw-r--r--pkgs/development/python-modules/hyperopt/default.nix31
-rw-r--r--pkgs/development/python-modules/hyperpyyaml/default.nix17
-rw-r--r--pkgs/development/python-modules/hyperscan/default.nix30
-rw-r--r--pkgs/development/python-modules/hypothesis-auto/default.nix31
-rw-r--r--pkgs/development/python-modules/hypothesis/default.nix89
-rw-r--r--pkgs/development/python-modules/hypothesmith/default.nix41
-rw-r--r--pkgs/development/python-modules/hyppo/default.nix49
-rw-r--r--pkgs/development/python-modules/hyrule/default.nix34
-rw-r--r--pkgs/development/python-modules/i-pi/default.nix21
-rw-r--r--pkgs/development/python-modules/i2c-tools/default.nix7
-rw-r--r--pkgs/development/python-modules/i2csense/default.nix15
-rw-r--r--pkgs/development/python-modules/i3-py/default.nix10
-rw-r--r--pkgs/development/python-modules/i3ipc/default.nix40
-rw-r--r--pkgs/development/python-modules/iammeter/default.nix13
-rw-r--r--pkgs/development/python-modules/iapws/default.nix11
-rw-r--r--pkgs/development/python-modules/iaqualink/default.nix27
-rw-r--r--pkgs/development/python-modules/ibeacon-ble/default.nix33
-rw-r--r--pkgs/development/python-modules/ibis-framework/default.nix221
-rw-r--r--pkgs/development/python-modules/ibis/default.nix15
-rw-r--r--pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix70
-rw-r--r--pkgs/development/python-modules/ibm-watson/default.nix40
-rw-r--r--pkgs/development/python-modules/ical/default.nix41
-rw-r--r--pkgs/development/python-modules/icalendar/default.nix32
-rw-r--r--pkgs/development/python-modules/icalevents/default.nix29
-rw-r--r--pkgs/development/python-modules/icecream/default.nix41
-rw-r--r--pkgs/development/python-modules/iceportal/default.nix31
-rw-r--r--pkgs/development/python-modules/icmplib/default.nix13
-rw-r--r--pkgs/development/python-modules/icnsutil/default.nix15
-rw-r--r--pkgs/development/python-modules/icoextract/default.nix32
-rw-r--r--pkgs/development/python-modules/icontract/default.nix43
-rw-r--r--pkgs/development/python-modules/ics/default.nix47
-rw-r--r--pkgs/development/python-modules/id/default.nix2
-rw-r--r--pkgs/development/python-modules/idasen/default.nix29
-rw-r--r--pkgs/development/python-modules/idna-ssl/default.nix7
-rw-r--r--pkgs/development/python-modules/idna/default.nix19
-rw-r--r--pkgs/development/python-modules/ifaddr/default.nix13
-rw-r--r--pkgs/development/python-modules/ifcopenshell/default.nix49
-rw-r--r--pkgs/development/python-modules/ignite/default.nix42
-rw-r--r--pkgs/development/python-modules/igraph/default.nix42
-rw-r--r--pkgs/development/python-modules/ihm/default.nix29
-rw-r--r--pkgs/development/python-modules/iisignature/default.nix17
-rw-r--r--pkgs/development/python-modules/ijson/default.nix41
-rw-r--r--pkgs/development/python-modules/ilua/default.nix25
-rw-r--r--pkgs/development/python-modules/image-diff/default.nix17
-rw-r--r--pkgs/development/python-modules/image-go-nord/default.nix15
-rw-r--r--pkgs/development/python-modules/imagecodecs-lite/default.nix25
-rw-r--r--pkgs/development/python-modules/imagecorruptions/default.nix13
-rw-r--r--pkgs/development/python-modules/imagededup/default.nix39
-rw-r--r--pkgs/development/python-modules/imagehash/default.nix21
-rw-r--r--pkgs/development/python-modules/imageio-ffmpeg/default.nix56
-rw-r--r--pkgs/development/python-modules/imageio-ffmpeg/ffmpeg-path.patch9
-rw-r--r--pkgs/development/python-modules/imageio/default.nix118
-rw-r--r--pkgs/development/python-modules/imagesize/default.nix8
-rw-r--r--pkgs/development/python-modules/imantics/default.nix17
-rw-r--r--pkgs/development/python-modules/imap-tools/default.nix19
-rw-r--r--pkgs/development/python-modules/imapclient/default.nix16
-rw-r--r--pkgs/development/python-modules/imaplib2/default.nix17
-rw-r--r--pkgs/development/python-modules/imbalanced-learn/default.nix48
-rw-r--r--pkgs/development/python-modules/img2pdf/default.nix72
-rw-r--r--pkgs/development/python-modules/imgcat/default.nix33
-rw-r--r--pkgs/development/python-modules/imgdiff/default.nix17
-rw-r--r--pkgs/development/python-modules/imgsize/default.nix7
-rw-r--r--pkgs/development/python-modules/imgtool/default.nix33
-rw-r--r--pkgs/development/python-modules/imia/default.nix19
-rw-r--r--pkgs/development/python-modules/iminuit/default.nix54
-rw-r--r--pkgs/development/python-modules/immutabledict/default.nix27
-rw-r--r--pkgs/development/python-modules/immutables/default.nix21
-rw-r--r--pkgs/development/python-modules/impacket/default.nix46
-rw-r--r--pkgs/development/python-modules/import-expression/default.nix34
-rw-r--r--pkgs/development/python-modules/importlab/default.nix15
-rw-r--r--pkgs/development/python-modules/importlib-metadata/default.nix39
-rw-r--r--pkgs/development/python-modules/importlib-resources/default.nix52
-rw-r--r--pkgs/development/python-modules/importmagic/default.nix12
-rw-r--r--pkgs/development/python-modules/imread/default.nix35
-rw-r--r--pkgs/development/python-modules/imutils/default.nix11
-rw-r--r--pkgs/development/python-modules/in-n-out/default.nix31
-rw-r--r--pkgs/development/python-modules/in-place/default.nix17
-rw-r--r--pkgs/development/python-modules/incomfort-client/default.nix44
-rw-r--r--pkgs/development/python-modules/incremental/default.nix70
-rw-r--r--pkgs/development/python-modules/indexed-bzip2/default.nix18
-rw-r--r--pkgs/development/python-modules/indexed-gzip/default.nix20
-rw-r--r--pkgs/development/python-modules/indexed-zstd/default.nix24
-rw-r--r--pkgs/development/python-modules/inequality/default.nix45
-rw-r--r--pkgs/development/python-modules/infinity/default.nix13
-rw-r--r--pkgs/development/python-modules/inflect/default.nix23
-rw-r--r--pkgs/development/python-modules/inflection/default.nix24
-rw-r--r--pkgs/development/python-modules/influxdb-client/default.nix47
-rw-r--r--pkgs/development/python-modules/influxdb/default.nix50
-rw-r--r--pkgs/development/python-modules/influxdb3-python/default.nix4
-rw-r--r--pkgs/development/python-modules/inform/default.nix33
-rw-r--r--pkgs/development/python-modules/iniconfig/default.nix21
-rw-r--r--pkgs/development/python-modules/inifile/default.nix14
-rw-r--r--pkgs/development/python-modules/iniparse/default.nix12
-rw-r--r--pkgs/development/python-modules/injector/default.nix19
-rw-r--r--pkgs/development/python-modules/inkbird-ble/default.nix33
-rw-r--r--pkgs/development/python-modules/inkex/default.nix38
-rw-r--r--pkgs/development/python-modules/inline-snapshot/default.nix73
-rw-r--r--pkgs/development/python-modules/inlinestyler/default.nix43
-rw-r--r--pkgs/development/python-modules/inotify-simple/default.nix8
-rw-r--r--pkgs/development/python-modules/inotify/default.nix13
-rw-r--r--pkgs/development/python-modules/inotifyrecursive/default.nix9
-rw-r--r--pkgs/development/python-modules/inquirer/default.nix50
-rw-r--r--pkgs/development/python-modules/inquirerpy/default.nix29
-rw-r--r--pkgs/development/python-modules/inscriptis/default.nix29
-rw-r--r--pkgs/development/python-modules/insegel/default.nix13
-rw-r--r--pkgs/development/python-modules/insightface/default.nix58
-rw-r--r--pkgs/development/python-modules/installer/default.nix19
-rw-r--r--pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix22
-rw-r--r--pkgs/development/python-modules/instructor/default.nix6
-rw-r--r--pkgs/development/python-modules/intake-parquet/default.nix28
-rw-r--r--pkgs/development/python-modules/intake/default.nix114
-rw-r--r--pkgs/development/python-modules/intbitset/default.nix25
-rw-r--r--pkgs/development/python-modules/intelhex/default.nix9
-rw-r--r--pkgs/development/python-modules/intellifire4py/default.nix35
-rw-r--r--pkgs/development/python-modules/intensity-normalization/default.nix40
-rw-r--r--pkgs/development/python-modules/interegular/default.nix13
-rw-r--r--pkgs/development/python-modules/interface-meta/default.nix21
-rw-r--r--pkgs/development/python-modules/internetarchive/default.nix47
-rw-r--r--pkgs/development/python-modules/interruptingcow/default.nix8
-rw-r--r--pkgs/development/python-modules/intervaltree/default.nix14
-rw-r--r--pkgs/development/python-modules/into-dbus-python/default.nix19
-rw-r--r--pkgs/development/python-modules/invisible-watermark/default.nix110
-rw-r--r--pkgs/development/python-modules/invisible-watermark/tests/cli.nix93
-rw-r--r--pkgs/development/python-modules/invisible-watermark/tests/python/default.nix20
-rw-r--r--pkgs/development/python-modules/invocations/default.nix27
-rw-r--r--pkgs/development/python-modules/invoke/default.nix15
-rw-r--r--pkgs/development/python-modules/iocapture/default.nix17
-rw-r--r--pkgs/development/python-modules/iocextract/default.nix27
-rw-r--r--pkgs/development/python-modules/iocsearcher/default.nix47
-rw-r--r--pkgs/development/python-modules/iodata/default.nix22
-rw-r--r--pkgs/development/python-modules/ionhash/default.nix16
-rw-r--r--pkgs/development/python-modules/ionoscloud/default.nix33
-rw-r--r--pkgs/development/python-modules/iopath/default.nix31
-rw-r--r--pkgs/development/python-modules/iotawattpy/default.nix15
-rw-r--r--pkgs/development/python-modules/ipaddr/default.nix6
-rw-r--r--pkgs/development/python-modules/ipadic/default.nix21
-rw-r--r--pkgs/development/python-modules/ipdb/default.nix50
-rw-r--r--pkgs/development/python-modules/ipdbplugin/default.nix27
-rw-r--r--pkgs/development/python-modules/ipfshttpclient/default.nix50
-rw-r--r--pkgs/development/python-modules/iptools/default.nix10
-rw-r--r--pkgs/development/python-modules/ipwhl/default.nix17
-rw-r--r--pkgs/development/python-modules/ipwhois/default.nix41
-rw-r--r--pkgs/development/python-modules/ipy/default.nix7
-rw-r--r--pkgs/development/python-modules/ipycanvas/default.nix29
-rw-r--r--pkgs/development/python-modules/ipydatawidgets/default.nix35
-rw-r--r--pkgs/development/python-modules/ipykernel/default.nix53
-rw-r--r--pkgs/development/python-modules/ipykernel/tests.nix79
-rw-r--r--pkgs/development/python-modules/ipymarkup/default.nix9
-rw-r--r--pkgs/development/python-modules/ipympl/default.nix33
-rw-r--r--pkgs/development/python-modules/ipynbname/default.nix22
-rw-r--r--pkgs/development/python-modules/ipyniivue/default.nix17
-rw-r--r--pkgs/development/python-modules/ipyparallel/default.nix43
-rw-r--r--pkgs/development/python-modules/ipytablewidgets/default.nix35
-rw-r--r--pkgs/development/python-modules/ipython-genutils/default.nix23
-rw-r--r--pkgs/development/python-modules/ipython-sql/default.nix27
-rw-r--r--pkgs/development/python-modules/ipython/default.nix135
-rw-r--r--pkgs/development/python-modules/ipyvue/default.nix25
-rw-r--r--pkgs/development/python-modules/ipyvuetify/default.nix21
-rw-r--r--pkgs/development/python-modules/ipywidgets/default.nix33
-rw-r--r--pkgs/development/python-modules/ipyxact/default.nix18
-rw-r--r--pkgs/development/python-modules/irc/default.nix41
-rw-r--r--pkgs/development/python-modules/ircrobots/default.nix23
-rw-r--r--pkgs/development/python-modules/ircstates/default.nix23
-rw-r--r--pkgs/development/python-modules/irctokens/default.nix15
-rw-r--r--pkgs/development/python-modules/isal/default.nix60
-rw-r--r--pkgs/development/python-modules/isbnlib/default.nix13
-rw-r--r--pkgs/development/python-modules/islpy/default.nix76
-rw-r--r--pkgs/development/python-modules/ismartgate/default.nix33
-rw-r--r--pkgs/development/python-modules/iso-639/default.nix7
-rw-r--r--pkgs/development/python-modules/iso3166/default.nix19
-rw-r--r--pkgs/development/python-modules/iso4217/default.nix33
-rw-r--r--pkgs/development/python-modules/iso8601/default.nix29
-rw-r--r--pkgs/development/python-modules/isodate/default.nix17
-rw-r--r--pkgs/development/python-modules/isoduration/default.nix25
-rw-r--r--pkgs/development/python-modules/isort/default.nix21
-rw-r--r--pkgs/development/python-modules/isosurfaces/default.nix11
-rw-r--r--pkgs/development/python-modules/isounidecode/default.nix6
-rw-r--r--pkgs/development/python-modules/isoweek/default.nix25
-rw-r--r--pkgs/development/python-modules/itanium-demangler/default.nix28
-rw-r--r--pkgs/development/python-modules/item-synchronizer/default.nix17
-rw-r--r--pkgs/development/python-modules/itemadapter/default.nix17
-rw-r--r--pkgs/development/python-modules/itemdb/default.nix9
-rw-r--r--pkgs/development/python-modules/itemloaders/default.nix37
-rw-r--r--pkgs/development/python-modules/iterable-io/default.nix37
-rw-r--r--pkgs/development/python-modules/iteration-utilities/default.nix19
-rw-r--r--pkgs/development/python-modules/iterative-telemetry/default.nix31
-rw-r--r--pkgs/development/python-modules/iterfzf/default.nix62
-rw-r--r--pkgs/development/python-modules/iterm2/default.nix14
-rw-r--r--pkgs/development/python-modules/itsdangerous/default.nix16
-rw-r--r--pkgs/development/python-modules/itunespy/default.nix15
-rw-r--r--pkgs/development/python-modules/iwlib/default.nix14
-rw-r--r--pkgs/development/python-modules/ixia/default.nix30
-rw-r--r--pkgs/development/python-modules/j2cli/default.nix25
-rw-r--r--pkgs/development/python-modules/jaconv/default.nix17
-rw-r--r--pkgs/development/python-modules/jaeger-client/default.nix15
-rw-r--r--pkgs/development/python-modules/jamo/default.nix17
-rw-r--r--pkgs/development/python-modules/janus/default.nix19
-rw-r--r--pkgs/development/python-modules/jaraco-abode/default.nix58
-rw-r--r--pkgs/development/python-modules/jaraco-classes/default.nix16
-rw-r--r--pkgs/development/python-modules/jaraco-collections/default.nix15
-rw-r--r--pkgs/development/python-modules/jaraco-context/default.nix30
-rw-r--r--pkgs/development/python-modules/jaraco-email/default.nix27
-rw-r--r--pkgs/development/python-modules/jaraco-functools/default.nix17
-rw-r--r--pkgs/development/python-modules/jaraco-itertools/default.nix17
-rw-r--r--pkgs/development/python-modules/jaraco-logging/default.nix27
-rw-r--r--pkgs/development/python-modules/jaraco-net/default.nix69
-rw-r--r--pkgs/development/python-modules/jaraco-stream/default.nix7
-rw-r--r--pkgs/development/python-modules/jaraco-test/default.nix35
-rw-r--r--pkgs/development/python-modules/jaraco-text/default.nix57
-rw-r--r--pkgs/development/python-modules/jarowinkler/default.nix25
-rw-r--r--pkgs/development/python-modules/javaobj-py3/default.nix11
-rw-r--r--pkgs/development/python-modules/javaproperties/default.nix31
-rw-r--r--pkgs/development/python-modules/jax-jumpy/default.nix11
-rw-r--r--pkgs/development/python-modules/jax/default.nix136
-rw-r--r--pkgs/development/python-modules/jax/test-cuda.nix32
-rw-r--r--pkgs/development/python-modules/jaxlib/bin.nix169
-rw-r--r--pkgs/development/python-modules/jaxlib/default.nix343
-rw-r--r--pkgs/development/python-modules/jaxopt/default.nix65
-rw-r--r--pkgs/development/python-modules/jaxtyping/default.nix46
-rw-r--r--pkgs/development/python-modules/jaydebeapi/default.nix13
-rw-r--r--pkgs/development/python-modules/jc/default.nix47
-rw-r--r--pkgs/development/python-modules/jdatetime/default.nix23
-rw-r--r--pkgs/development/python-modules/jdcal/default.nix11
-rw-r--r--pkgs/development/python-modules/jedi-language-server/default.nix39
-rw-r--r--pkgs/development/python-modules/jedi/default.nix58
-rw-r--r--pkgs/development/python-modules/jeepney/default.nix29
-rw-r--r--pkgs/development/python-modules/jello/default.nix25
-rw-r--r--pkgs/development/python-modules/jellyfin-apiclient-python/default.nix21
-rw-r--r--pkgs/development/python-modules/jellyfish/default.nix34
-rw-r--r--pkgs/development/python-modules/jenkins-job-builder/default.nix33
-rw-r--r--pkgs/development/python-modules/jenkinsapi/default.nix32
-rw-r--r--pkgs/development/python-modules/jieba/default.nix9
-rw-r--r--pkgs/development/python-modules/jinja2-ansible-filters/default.nix9
-rw-r--r--pkgs/development/python-modules/jinja2-git/default.nix13
-rw-r--r--pkgs/development/python-modules/jinja2-pluralize/default.nix21
-rw-r--r--pkgs/development/python-modules/jinja2-time/default.nix27
-rw-r--r--pkgs/development/python-modules/jinja2/default.nix68
-rw-r--r--pkgs/development/python-modules/jira/default.nix49
-rw-r--r--pkgs/development/python-modules/jishaku/default.nix4
-rw-r--r--pkgs/development/python-modules/jiwer/default.nix39
-rw-r--r--pkgs/development/python-modules/jmespath/default.nix11
-rw-r--r--pkgs/development/python-modules/jmp/default.nix23
-rw-r--r--pkgs/development/python-modules/joblib/default.nix69
-rw-r--r--pkgs/development/python-modules/johnnycanencrypt/default.nix62
-rw-r--r--pkgs/development/python-modules/josepy/default.nix29
-rw-r--r--pkgs/development/python-modules/joserfc/default.nix48
-rw-r--r--pkgs/development/python-modules/jplephem/default.nix8
-rw-r--r--pkgs/development/python-modules/jproperties/default.nix27
-rw-r--r--pkgs/development/python-modules/jpylyzer/default.nix32
-rw-r--r--pkgs/development/python-modules/jpype1/default.nix29
-rw-r--r--pkgs/development/python-modules/jq/default.nix29
-rw-r--r--pkgs/development/python-modules/js2py/default.nix21
-rw-r--r--pkgs/development/python-modules/jsbeautifier/default.nix27
-rw-r--r--pkgs/development/python-modules/jschema-to-python/default.nix17
-rw-r--r--pkgs/development/python-modules/jsmin/default.nix23
-rw-r--r--pkgs/development/python-modules/json-home-client/default.nix17
-rw-r--r--pkgs/development/python-modules/json-logging/default.nix52
-rw-r--r--pkgs/development/python-modules/json-merge-patch/default.nix19
-rw-r--r--pkgs/development/python-modules/json-rpc/default.nix12
-rw-r--r--pkgs/development/python-modules/json-schema-for-humans/default.nix56
-rw-r--r--pkgs/development/python-modules/json-stream-rs-tokenizer/default.nix51
-rw-r--r--pkgs/development/python-modules/json-stream/default.nix41
-rw-r--r--pkgs/development/python-modules/json-tricks/default.nix21
-rw-r--r--pkgs/development/python-modules/json5/default.nix19
-rw-r--r--pkgs/development/python-modules/jsonable/default.nix11
-rw-r--r--pkgs/development/python-modules/jsonargparse/default.nix4
-rw-r--r--pkgs/development/python-modules/jsonconversion/default.nix25
-rw-r--r--pkgs/development/python-modules/jsondate/default.nix7
-rw-r--r--pkgs/development/python-modules/jsondiff/default.nix7
-rw-r--r--pkgs/development/python-modules/jsonfield/default.nix14
-rw-r--r--pkgs/development/python-modules/jsonformatter/default.nix13
-rw-r--r--pkgs/development/python-modules/jsonlines/default.nix25
-rw-r--r--pkgs/development/python-modules/jsonmerge/default.nix13
-rw-r--r--pkgs/development/python-modules/jsonpatch/default.nix29
-rw-r--r--pkgs/development/python-modules/jsonpath-ng/default.nix23
-rw-r--r--pkgs/development/python-modules/jsonpath-rw/default.nix24
-rw-r--r--pkgs/development/python-modules/jsonpath/default.nix25
-rw-r--r--pkgs/development/python-modules/jsonpickle/default.nix32
-rw-r--r--pkgs/development/python-modules/jsonpointer/default.nix12
-rw-r--r--pkgs/development/python-modules/jsonref/default.nix29
-rw-r--r--pkgs/development/python-modules/jsonrpc-async/default.nix27
-rw-r--r--pkgs/development/python-modules/jsonrpc-base/default.nix29
-rw-r--r--pkgs/development/python-modules/jsonrpc-websocket/default.nix31
-rw-r--r--pkgs/development/python-modules/jsonrpclib-pelix/default.nix11
-rw-r--r--pkgs/development/python-modules/jsons/default.nix27
-rw-r--r--pkgs/development/python-modules/jsonschema-path/default.nix27
-rw-r--r--pkgs/development/python-modules/jsonschema-spec/default.nix35
-rw-r--r--pkgs/development/python-modules/jsonschema-specifications/default.nix31
-rw-r--r--pkgs/development/python-modules/jsonschema/default.nix81
-rw-r--r--pkgs/development/python-modules/jsonstreams/default.nix11
-rw-r--r--pkgs/development/python-modules/jstyleson/default.nix15
-rw-r--r--pkgs/development/python-modules/jug/default.nix29
-rw-r--r--pkgs/development/python-modules/julius/default.nix17
-rw-r--r--pkgs/development/python-modules/junit-xml/default.nix11
-rw-r--r--pkgs/development/python-modules/junit2html/default.nix27
-rw-r--r--pkgs/development/python-modules/junitparser/default.nix21
-rw-r--r--pkgs/development/python-modules/jupyter-book/default.nix51
-rw-r--r--pkgs/development/python-modules/jupyter-c-kernel/default.nix11
-rw-r--r--pkgs/development/python-modules/jupyter-cache/default.nix33
-rw-r--r--pkgs/development/python-modules/jupyter-client/default.nix42
-rw-r--r--pkgs/development/python-modules/jupyter-collaboration/default.nix49
-rw-r--r--pkgs/development/python-modules/jupyter-console/default.nix47
-rw-r--r--pkgs/development/python-modules/jupyter-contrib-core/default.nix13
-rw-r--r--pkgs/development/python-modules/jupyter-contrib-nbextensions/default.nix25
-rw-r--r--pkgs/development/python-modules/jupyter-core/default.nix34
-rw-r--r--pkgs/development/python-modules/jupyter-events/default.nix50
-rw-r--r--pkgs/development/python-modules/jupyter-highlight-selected-word/default.nix7
-rw-r--r--pkgs/development/python-modules/jupyter-lsp/default.nix20
-rw-r--r--pkgs/development/python-modules/jupyter-nbextensions-configurator/default.nix52
-rw-r--r--pkgs/development/python-modules/jupyter-packaging/default.nix30
-rw-r--r--pkgs/development/python-modules/jupyter-repo2docker/default.nix41
-rw-r--r--pkgs/development/python-modules/jupyter-server-fileid/default.nix25
-rw-r--r--pkgs/development/python-modules/jupyter-server-mathjax/default.nix21
-rw-r--r--pkgs/development/python-modules/jupyter-server-terminals/default.nix103
-rw-r--r--pkgs/development/python-modules/jupyter-server/default.nix107
-rw-r--r--pkgs/development/python-modules/jupyter-sphinx/default.nix37
-rw-r--r--pkgs/development/python-modules/jupyter-telemetry/default.nix22
-rw-r--r--pkgs/development/python-modules/jupyter-ui-poll/default.nix36
-rw-r--r--pkgs/development/python-modules/jupyter-ydoc/default.nix29
-rw-r--r--pkgs/development/python-modules/jupyter/default.nix29
-rw-r--r--pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix18
-rw-r--r--pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix23
-rw-r--r--pkgs/development/python-modules/jupyterhub-tmpauthenticator/default.nix19
-rw-r--r--pkgs/development/python-modules/jupyterhub/default.nix240
-rw-r--r--pkgs/development/python-modules/jupyterlab-git/default.nix45
-rw-r--r--pkgs/development/python-modules/jupyterlab-lsp/default.nix17
-rw-r--r--pkgs/development/python-modules/jupyterlab-pygments/default.nix17
-rw-r--r--pkgs/development/python-modules/jupyterlab-server/default.nix62
-rw-r--r--pkgs/development/python-modules/jupyterlab-widgets/default.nix15
-rw-r--r--pkgs/development/python-modules/jupyterlab/default.nix53
-rw-r--r--pkgs/development/python-modules/jupytext/default.nix50
-rw-r--r--pkgs/development/python-modules/justbackoff/default.nix19
-rw-r--r--pkgs/development/python-modules/justbases/default.nix11
-rw-r--r--pkgs/development/python-modules/justbytes/default.nix18
-rw-r--r--pkgs/development/python-modules/justext/default.nix23
-rw-r--r--pkgs/development/python-modules/justnimbus/default.nix26
-rw-r--r--pkgs/development/python-modules/jwcrypto/default.nix27
-rw-r--r--pkgs/development/python-modules/jwt/default.nix21
-rw-r--r--pkgs/development/python-modules/jxmlease/default.nix15
-rw-r--r--pkgs/development/python-modules/k-diffusion/default.nix49
-rw-r--r--pkgs/development/python-modules/k5test/default.nix28
-rw-r--r--pkgs/development/python-modules/kaa-base/default.nix14
-rw-r--r--pkgs/development/python-modules/kaa-metadata/default.nix18
-rw-r--r--pkgs/development/python-modules/kafka-python/default.nix15
-rw-r--r--pkgs/development/python-modules/kaggle/default.nix27
-rw-r--r--pkgs/development/python-modules/kaitaistruct/default.nix21
-rw-r--r--pkgs/development/python-modules/kajiki/default.nix23
-rw-r--r--pkgs/development/python-modules/kaldi-active-grammar/default.nix47
-rw-r--r--pkgs/development/python-modules/kaldi-active-grammar/fork.nix25
-rw-r--r--pkgs/development/python-modules/kanidm/default.nix54
-rw-r--r--pkgs/development/python-modules/kaptan/default.nix26
-rw-r--r--pkgs/development/python-modules/karton-asciimagic/default.nix25
-rw-r--r--pkgs/development/python-modules/karton-autoit-ripper/default.nix21
-rw-r--r--pkgs/development/python-modules/karton-classifier/default.nix25
-rw-r--r--pkgs/development/python-modules/karton-config-extractor/default.nix17
-rw-r--r--pkgs/development/python-modules/karton-core/default.nix42
-rw-r--r--pkgs/development/python-modules/karton-dashboard/default.nix27
-rw-r--r--pkgs/development/python-modules/karton-mwdb-reporter/default.nix17
-rw-r--r--pkgs/development/python-modules/karton-yaramatcher/default.nix23
-rw-r--r--pkgs/development/python-modules/kasa-crypt/default.nix35
-rw-r--r--pkgs/development/python-modules/kazoo/default.nix31
-rw-r--r--pkgs/development/python-modules/kbcstorage/default.nix33
-rw-r--r--pkgs/development/python-modules/kconfiglib/default.nix8
-rw-r--r--pkgs/development/python-modules/keba-kecontact/default.nix17
-rw-r--r--pkgs/development/python-modules/keep/default.nix17
-rw-r--r--pkgs/development/python-modules/keepalive/default.nix13
-rw-r--r--pkgs/development/python-modules/keepkey-agent/default.nix26
-rw-r--r--pkgs/development/python-modules/keepkey/default.nix27
-rw-r--r--pkgs/development/python-modules/kegtron-ble/default.nix31
-rw-r--r--pkgs/development/python-modules/keras-applications/default.nix13
-rw-r--r--pkgs/development/python-modules/keras-preprocessing/default.nix21
-rw-r--r--pkgs/development/python-modules/keras/default.nix71
-rw-r--r--pkgs/development/python-modules/kerberos/default.nix13
-rw-r--r--pkgs/development/python-modules/keyboard/default.nix10
-rw-r--r--pkgs/development/python-modules/keyring-pass/default.nix25
-rw-r--r--pkgs/development/python-modules/keyring/default.nix79
-rw-r--r--pkgs/development/python-modules/keyrings-alt/default.nix27
-rw-r--r--pkgs/development/python-modules/keyrings-cryptfile/default.nix25
-rw-r--r--pkgs/development/python-modules/keyrings-google-artifactregistry-auth/default.nix25
-rw-r--r--pkgs/development/python-modules/keyrings-passwordstore/default.nix25
-rw-r--r--pkgs/development/python-modules/keystone-engine/default.nix17
-rw-r--r--pkgs/development/python-modules/keystoneauth1/default.nix53
-rw-r--r--pkgs/development/python-modules/keyutils/default.nix19
-rw-r--r--pkgs/development/python-modules/khanaa/default.nix45
-rw-r--r--pkgs/development/python-modules/kinparse/default.nix19
-rw-r--r--pkgs/development/python-modules/kiss-headers/default.nix11
-rw-r--r--pkgs/development/python-modules/kitchen/default.nix13
-rw-r--r--pkgs/development/python-modules/kivy-garden/default.nix11
-rw-r--r--pkgs/development/python-modules/kivy/default.nix83
-rw-r--r--pkgs/development/python-modules/kiwiki-client/default.nix17
-rw-r--r--pkgs/development/python-modules/kiwisolver/default.nix29
-rw-r--r--pkgs/development/python-modules/klaus/default.nix36
-rw-r--r--pkgs/development/python-modules/klein/default.nix43
-rw-r--r--pkgs/development/python-modules/kmapper/default.nix27
-rw-r--r--pkgs/development/python-modules/kml2geojson/default.nix31
-rw-r--r--pkgs/development/python-modules/knack/default.nix35
-rw-r--r--pkgs/development/python-modules/kneed/default.nix21
-rw-r--r--pkgs/development/python-modules/knx-frontend/default.nix17
-rw-r--r--pkgs/development/python-modules/kombu/default.nix100
-rw-r--r--pkgs/development/python-modules/konnected/default.nix13
-rw-r--r--pkgs/development/python-modules/korean-lunar-calendar/default.nix9
-rw-r--r--pkgs/development/python-modules/kornia-rs/default.nix28
-rw-r--r--pkgs/development/python-modules/kornia/default.nix17
-rw-r--r--pkgs/development/python-modules/kotsu/default.nix28
-rw-r--r--pkgs/development/python-modules/krakenex/default.nix19
-rw-r--r--pkgs/development/python-modules/krfzf-py/default.nix15
-rw-r--r--pkgs/development/python-modules/kserve/default.nix83
-rw-r--r--pkgs/development/python-modules/kubernetes/default.nix64
-rw-r--r--pkgs/development/python-modules/kurbopy/default.nix31
-rw-r--r--pkgs/development/python-modules/l18n/default.nix16
-rw-r--r--pkgs/development/python-modules/labelbox/default.nix69
-rw-r--r--pkgs/development/python-modules/labgrid/default.nix59
-rw-r--r--pkgs/development/python-modules/labmath/default.nix13
-rw-r--r--pkgs/development/python-modules/laces/default.nix21
-rw-r--r--pkgs/development/python-modules/lacuscore/default.nix47
-rw-r--r--pkgs/development/python-modules/lakeside/default.nix19
-rw-r--r--pkgs/development/python-modules/langchain-chroma/default.nix52
-rw-r--r--pkgs/development/python-modules/langchain-community/default.nix61
-rw-r--r--pkgs/development/python-modules/langchain-core/default.nix71
-rw-r--r--pkgs/development/python-modules/langchain-text-splitters/default.nix59
-rw-r--r--pkgs/development/python-modules/langchain/default.nix81
-rw-r--r--pkgs/development/python-modules/langcodes/default.nix36
-rw-r--r--pkgs/development/python-modules/langdetect/default.nix19
-rw-r--r--pkgs/development/python-modules/langfuse/default.nix61
-rw-r--r--pkgs/development/python-modules/langid/default.nix20
-rw-r--r--pkgs/development/python-modules/langsmith/default.nix16
-rw-r--r--pkgs/development/python-modules/language-data/default.nix46
-rw-r--r--pkgs/development/python-modules/language-tags/default.nix13
-rw-r--r--pkgs/development/python-modules/lanms-neo/default.nix15
-rw-r--r--pkgs/development/python-modules/lark/default.nix23
-rw-r--r--pkgs/development/python-modules/laspy/default.nix25
-rw-r--r--pkgs/development/python-modules/laszip/default.nix28
-rw-r--r--pkgs/development/python-modules/latex2mathml/default.nix25
-rw-r--r--pkgs/development/python-modules/latex2pydata/default.nix33
-rw-r--r--pkgs/development/python-modules/latexcodec/default.nix9
-rw-r--r--pkgs/development/python-modules/latexify-py/default.nix31
-rw-r--r--pkgs/development/python-modules/launchpadlib/default.nix31
-rw-r--r--pkgs/development/python-modules/laundrify-aio/default.nix21
-rw-r--r--pkgs/development/python-modules/layoutparser/default.nix72
-rw-r--r--pkgs/development/python-modules/lazr-restfulclient/default.nix47
-rw-r--r--pkgs/development/python-modules/lazr-uri/default.nix13
-rw-r--r--pkgs/development/python-modules/lazr/config.nix31
-rw-r--r--pkgs/development/python-modules/lazr/delegates.nix33
-rw-r--r--pkgs/development/python-modules/lazy-import/default.nix44
-rw-r--r--pkgs/development/python-modules/lazy-imports/default.nix19
-rw-r--r--pkgs/development/python-modules/lazy-loader/default.nix27
-rw-r--r--pkgs/development/python-modules/lazy-object-proxy/default.nix22
-rw-r--r--pkgs/development/python-modules/lazy/default.nix7
-rw-r--r--pkgs/development/python-modules/lc7001/default.nix23
-rw-r--r--pkgs/development/python-modules/lcd-i2c/default.nix21
-rw-r--r--pkgs/development/python-modules/lcgit/default.nix21
-rw-r--r--pkgs/development/python-modules/lcov-cobertura/default.nix13
-rw-r--r--pkgs/development/python-modules/ld2410-ble/default.nix31
-rw-r--r--pkgs/development/python-modules/ldap3/default.nix11
-rw-r--r--pkgs/development/python-modules/ldapdomaindump/default.nix19
-rw-r--r--pkgs/development/python-modules/ldappool/default.nix60
-rw-r--r--pkgs/development/python-modules/ldaptor/default.nix29
-rw-r--r--pkgs/development/python-modules/leather/default.nix15
-rw-r--r--pkgs/development/python-modules/leb128/default.nix13
-rw-r--r--pkgs/development/python-modules/led-ble/default.nix37
-rw-r--r--pkgs/development/python-modules/ledger-agent/default.nix26
-rw-r--r--pkgs/development/python-modules/ledger-bitcoin/default.nix31
-rw-r--r--pkgs/development/python-modules/ledgerblue/default.nix60
-rw-r--r--pkgs/development/python-modules/ledgercomm/default.nix19
-rw-r--r--pkgs/development/python-modules/ledgerwallet/default.nix50
-rw-r--r--pkgs/development/python-modules/leidenalg/default.nix29
-rw-r--r--pkgs/development/python-modules/leveldb/default.nix11
-rw-r--r--pkgs/development/python-modules/lexid/default.nix9
-rw-r--r--pkgs/development/python-modules/lexilang/default.nix27
-rw-r--r--pkgs/development/python-modules/lib4sbom/default.nix60
-rw-r--r--pkgs/development/python-modules/libagent/default.nix42
-rw-r--r--pkgs/development/python-modules/libais/default.nix25
-rw-r--r--pkgs/development/python-modules/libarchive-c/default.nix24
-rw-r--r--pkgs/development/python-modules/libarcus/default.nix20
-rw-r--r--pkgs/development/python-modules/libasyncns/default.nix13
-rw-r--r--pkgs/development/python-modules/libclang/default.nix14
-rw-r--r--pkgs/development/python-modules/libcloud/default.nix19
-rw-r--r--pkgs/development/python-modules/libcst/default.nix61
-rw-r--r--pkgs/development/python-modules/libevdev/default.nix15
-rw-r--r--pkgs/development/python-modules/libgpiod/default.nix7
-rw-r--r--pkgs/development/python-modules/libgpuarray/default.nix80
-rw-r--r--pkgs/development/python-modules/libgravatar/default.nix37
-rw-r--r--pkgs/development/python-modules/libkeepass/default.nix18
-rw-r--r--pkgs/development/python-modules/libknot/default.nix28
-rw-r--r--pkgs/development/python-modules/liblarch/default.nix25
-rw-r--r--pkgs/development/python-modules/liblzfse/default.nix13
-rw-r--r--pkgs/development/python-modules/libmambapy/default.nix8
-rw-r--r--pkgs/development/python-modules/libmr/default.nix14
-rw-r--r--pkgs/development/python-modules/libnacl/default.nix19
-rw-r--r--pkgs/development/python-modules/libpcap/default.nix33
-rw-r--r--pkgs/development/python-modules/libpurecool/default.nix19
-rw-r--r--pkgs/development/python-modules/libpyfoscam/default.nix13
-rw-r--r--pkgs/development/python-modules/libpysal/default.nix86
-rw-r--r--pkgs/development/python-modules/libpyvivotek/default.nix23
-rw-r--r--pkgs/development/python-modules/librespot/default.nix31
-rw-r--r--pkgs/development/python-modules/libretranslate/default.nix65
-rw-r--r--pkgs/development/python-modules/librosa/default.nix126
-rw-r--r--pkgs/development/python-modules/librouteros/default.nix23
-rw-r--r--pkgs/development/python-modules/libsass/default.nix15
-rw-r--r--pkgs/development/python-modules/libsavitar/default.nix16
-rw-r--r--pkgs/development/python-modules/libsixel/default.nix9
-rw-r--r--pkgs/development/python-modules/libsoundtouch/default.nix27
-rw-r--r--pkgs/development/python-modules/libthumbor/default.nix23
-rw-r--r--pkgs/development/python-modules/libtmux/default.nix59
-rw-r--r--pkgs/development/python-modules/libusb1/default.nix22
-rw-r--r--pkgs/development/python-modules/libusbsio/default.nix11
-rw-r--r--pkgs/development/python-modules/libversion/default.nix31
-rw-r--r--pkgs/development/python-modules/libvirt/default.nix27
-rw-r--r--pkgs/development/python-modules/liccheck/default.nix27
-rw-r--r--pkgs/development/python-modules/license-expression/default.nix31
-rw-r--r--pkgs/development/python-modules/life360/default.nix36
-rw-r--r--pkgs/development/python-modules/lifelines/default.nix49
-rw-r--r--pkgs/development/python-modules/lightgbm/default.nix128
-rw-r--r--pkgs/development/python-modules/lightning-utilities/default.nix48
-rw-r--r--pkgs/development/python-modules/lightparam/default.nix14
-rw-r--r--pkgs/development/python-modules/lightwave/default.nix13
-rw-r--r--pkgs/development/python-modules/lightwave2/default.nix19
-rw-r--r--pkgs/development/python-modules/lima/default.nix10
-rw-r--r--pkgs/development/python-modules/lime/default.nix33
-rw-r--r--pkgs/development/python-modules/limiter/default.nix17
-rw-r--r--pkgs/development/python-modules/limitlessled/default.nix6
-rw-r--r--pkgs/development/python-modules/limits/default.nix89
-rw-r--r--pkgs/development/python-modules/limnoria/default.nix41
-rw-r--r--pkgs/development/python-modules/line-profiler/default.nix31
-rw-r--r--pkgs/development/python-modules/linear-garage-door/default.nix25
-rw-r--r--pkgs/development/python-modules/linear-operator/default.nix35
-rw-r--r--pkgs/development/python-modules/linecache2/default.nix11
-rw-r--r--pkgs/development/python-modules/lineedit/default.nix23
-rw-r--r--pkgs/development/python-modules/linetable/default.nix19
-rw-r--r--pkgs/development/python-modules/lingua/default.nix18
-rw-r--r--pkgs/development/python-modules/lingva/default.nix4
-rw-r--r--pkgs/development/python-modules/linien-client/default.nix22
-rw-r--r--pkgs/development/python-modules/linien-common/default.nix30
-rw-r--r--pkgs/development/python-modules/linien-common/tests.nix11
-rw-r--r--pkgs/development/python-modules/linkify-it-py/default.nix31
-rw-r--r--pkgs/development/python-modules/linknlink/default.nix4
-rw-r--r--pkgs/development/python-modules/linode-api/default.nix29
-rw-r--r--pkgs/development/python-modules/linode/default.nix11
-rw-r--r--pkgs/development/python-modules/linuxfd/default.nix8
-rw-r--r--pkgs/development/python-modules/lion-pytorch/default.nix17
-rw-r--r--pkgs/development/python-modules/liquidctl/default.nix54
-rw-r--r--pkgs/development/python-modules/lit/default.nix19
-rw-r--r--pkgs/development/python-modules/litellm/default.nix71
-rw-r--r--pkgs/development/python-modules/litemapy/default.nix15
-rw-r--r--pkgs/development/python-modules/littleutils/default.nix13
-rw-r--r--pkgs/development/python-modules/livelossplot/default.nix42
-rw-r--r--pkgs/development/python-modules/livereload/default.nix24
-rw-r--r--pkgs/development/python-modules/lizard/default.nix20
-rw-r--r--pkgs/development/python-modules/llama-index-agent-openai/default.nix6
-rw-r--r--pkgs/development/python-modules/llama-index-core/default.nix10
-rw-r--r--pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix12
-rw-r--r--pkgs/development/python-modules/llama-index-embeddings-google/default.nix6
-rw-r--r--pkgs/development/python-modules/llama-index-embeddings-huggingface/default.nix27
-rw-r--r--pkgs/development/python-modules/llama-index-embeddings-ollama/default.nix29
-rw-r--r--pkgs/development/python-modules/llama-index-embeddings-openai/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-graph-stores-nebula/default.nix27
-rw-r--r--pkgs/development/python-modules/llama-index-graph-stores-neo4j/default.nix27
-rw-r--r--pkgs/development/python-modules/llama-index-graph-stores-neptune/default.nix23
-rw-r--r--pkgs/development/python-modules/llama-index-legacy/default.nix21
-rw-r--r--pkgs/development/python-modules/llama-index-llms-ollama/default.nix29
-rw-r--r--pkgs/development/python-modules/llama-index-llms-openai-like/default.nix25
-rw-r--r--pkgs/development/python-modules/llama-index-llms-openai/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-multi-modal-llms-openai/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-program-openai/default.nix33
-rw-r--r--pkgs/development/python-modules/llama-index-question-gen-openai/default.nix25
-rw-r--r--pkgs/development/python-modules/llama-index-readers-database/default.nix30
-rw-r--r--pkgs/development/python-modules/llama-index-readers-file/default.nix6
-rw-r--r--pkgs/development/python-modules/llama-index-readers-json/default.nix25
-rw-r--r--pkgs/development/python-modules/llama-index-readers-llama-parse/default.nix25
-rw-r--r--pkgs/development/python-modules/llama-index-readers-s3/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index-readers-twitter/default.nix24
-rw-r--r--pkgs/development/python-modules/llama-index-readers-txtai/default.nix25
-rw-r--r--pkgs/development/python-modules/llama-index-readers-weather/default.nix29
-rw-r--r--pkgs/development/python-modules/llama-index-vector-stores-chroma/default.nix27
-rw-r--r--pkgs/development/python-modules/llama-index-vector-stores-google/default.nix25
-rw-r--r--pkgs/development/python-modules/llama-index-vector-stores-postgres/default.nix6
-rw-r--r--pkgs/development/python-modules/llama-index-vector-stores-qdrant/default.nix4
-rw-r--r--pkgs/development/python-modules/llama-index/default.nix48
-rw-r--r--pkgs/development/python-modules/llama-parse/default.nix29
-rw-r--r--pkgs/development/python-modules/llfuse/default.nix41
-rw-r--r--pkgs/development/python-modules/llm/default.nix87
-rw-r--r--pkgs/development/python-modules/llmx/default.nix73
-rw-r--r--pkgs/development/python-modules/llvmlite/default.nix29
-rw-r--r--pkgs/development/python-modules/lmcloud/default.nix6
-rw-r--r--pkgs/development/python-modules/lmdb/default.nix26
-rw-r--r--pkgs/development/python-modules/lmfit/default.nix20
-rw-r--r--pkgs/development/python-modules/lml/default.nix11
-rw-r--r--pkgs/development/python-modules/lmnotify/default.nix19
-rw-r--r--pkgs/development/python-modules/lmtpd/default.nix22
-rw-r--r--pkgs/development/python-modules/lnkparse3/default.nix32
-rw-r--r--pkgs/development/python-modules/loca/default.nix12
-rw-r--r--pkgs/development/python-modules/localimport/default.nix7
-rw-r--r--pkgs/development/python-modules/localstack-client/default.nix31
-rw-r--r--pkgs/development/python-modules/localstack-ext/default.nix34
-rw-r--r--pkgs/development/python-modules/localstack/default.nix43
-rw-r--r--pkgs/development/python-modules/localzone/default.nix37
-rw-r--r--pkgs/development/python-modules/locationsharinglib/default.nix27
-rw-r--r--pkgs/development/python-modules/locket/default.nix13
-rw-r--r--pkgs/development/python-modules/lockfile/default.nix24
-rw-r--r--pkgs/development/python-modules/log-symbols/default.nix14
-rw-r--r--pkgs/development/python-modules/logbook/default.nix57
-rw-r--r--pkgs/development/python-modules/logfury/default.nix23
-rw-r--r--pkgs/development/python-modules/logging-journald/default.nix19
-rw-r--r--pkgs/development/python-modules/logi-circle/default.nix21
-rw-r--r--pkgs/development/python-modules/logical-unification/default.nix23
-rw-r--r--pkgs/development/python-modules/logilab/constraint.nix24
-rw-r--r--pkgs/development/python-modules/logmatic-python/default.nix25
-rw-r--r--pkgs/development/python-modules/logster/default.nix7
-rw-r--r--pkgs/development/python-modules/loguru-logging-intercept/default.nix30
-rw-r--r--pkgs/development/python-modules/loguru/default.nix56
-rw-r--r--pkgs/development/python-modules/logutils/default.nix38
-rw-r--r--pkgs/development/python-modules/logzero/default.nix7
-rw-r--r--pkgs/development/python-modules/lomond/default.nix51
-rw-r--r--pkgs/development/python-modules/loopy/default.nix63
-rw-r--r--pkgs/development/python-modules/looseversion/default.nix29
-rw-r--r--pkgs/development/python-modules/loqedapi/default.nix21
-rw-r--r--pkgs/development/python-modules/losant-rest/default.nix38
-rw-r--r--pkgs/development/python-modules/lpc-checksum/default.nix17
-rw-r--r--pkgs/development/python-modules/lrcalc-python/default.nix18
-rw-r--r--pkgs/development/python-modules/lru-dict/default.nix25
-rw-r--r--pkgs/development/python-modules/lsassy/default.nix6
-rw-r--r--pkgs/development/python-modules/lsp-tree-sitter/default.nix55
-rw-r--r--pkgs/development/python-modules/lsprotocol/default.nix38
-rw-r--r--pkgs/development/python-modules/ltpycld2/default.nix9
-rw-r--r--pkgs/development/python-modules/lttng/default.nix58
-rw-r--r--pkgs/development/python-modules/luddite/default.nix27
-rw-r--r--pkgs/development/python-modules/luftdaten/default.nix32
-rw-r--r--pkgs/development/python-modules/luhn/default.nix21
-rw-r--r--pkgs/development/python-modules/lunarcalendar/default.nix17
-rw-r--r--pkgs/development/python-modules/lupa/default.nix21
-rw-r--r--pkgs/development/python-modules/lupupy/default.nix25
-rw-r--r--pkgs/development/python-modules/luqum/default.nix33
-rw-r--r--pkgs/development/python-modules/luxor/default.nix23
-rw-r--r--pkgs/development/python-modules/luxtronik/default.nix17
-rw-r--r--pkgs/development/python-modules/lxmf/default.nix29
-rw-r--r--pkgs/development/python-modules/lxml-stubs/default.nix23
-rw-r--r--pkgs/development/python-modules/lxml/default.nix37
-rw-r--r--pkgs/development/python-modules/lyricwikia/default.nix23
-rw-r--r--pkgs/development/python-modules/lz4/default.nix21
-rw-r--r--pkgs/development/python-modules/lzallright/default.nix26
-rw-r--r--pkgs/development/python-modules/lzallright/tests.nix6
-rw-r--r--pkgs/development/python-modules/lzstring/default.nix15
-rw-r--r--pkgs/development/python-modules/m2crypto/default.nix54
-rw-r--r--pkgs/development/python-modules/m2r/default.nix20
-rw-r--r--pkgs/development/python-modules/m3u8/default.nix33
-rw-r--r--pkgs/development/python-modules/mac-alias/default.nix13
-rw-r--r--pkgs/development/python-modules/mac-vendor-lookup/default.nix15
-rw-r--r--pkgs/development/python-modules/macaddress/default.nix23
-rw-r--r--pkgs/development/python-modules/macaroonbakery/default.nix2
-rw-r--r--pkgs/development/python-modules/macfsevents/default.nix16
-rw-r--r--pkgs/development/python-modules/macropy/default.nix24
-rw-r--r--pkgs/development/python-modules/maestral/default.nix150
-rw-r--r--pkgs/development/python-modules/magic-filter/default.nix21
-rw-r--r--pkgs/development/python-modules/magic-wormhole-mailbox-server/default.nix67
-rw-r--r--pkgs/development/python-modules/magic-wormhole-transit-relay/default.nix47
-rw-r--r--pkgs/development/python-modules/magic-wormhole/default.nix83
-rw-r--r--pkgs/development/python-modules/magic/default.nix11
-rw-r--r--pkgs/development/python-modules/magicgui/default.nix38
-rw-r--r--pkgs/development/python-modules/magika/default.nix33
-rw-r--r--pkgs/development/python-modules/mahotas/default.nix35
-rw-r--r--pkgs/development/python-modules/mail-parser/default.nix17
-rw-r--r--pkgs/development/python-modules/mailcap-fix/default.nix10
-rw-r--r--pkgs/development/python-modules/mailchecker/default.nix4
-rw-r--r--pkgs/development/python-modules/mailchimp/default.nix14
-rw-r--r--pkgs/development/python-modules/mailmanclient/default.nix23
-rw-r--r--pkgs/development/python-modules/mailsuite/default.nix33
-rw-r--r--pkgs/development/python-modules/maison/default.nix33
-rw-r--r--pkgs/development/python-modules/makefun/default.nix29
-rw-r--r--pkgs/development/python-modules/mako/default.nix53
-rw-r--r--pkgs/development/python-modules/malduck/default.nix60
-rw-r--r--pkgs/development/python-modules/managesieve/default.nix30
-rw-r--r--pkgs/development/python-modules/mando/default.nix31
-rw-r--r--pkgs/development/python-modules/mandown/default.nix44
-rw-r--r--pkgs/development/python-modules/manga-ocr/default.nix2
-rw-r--r--pkgs/development/python-modules/manhole/default.nix20
-rw-r--r--pkgs/development/python-modules/manifest-ml/default.nix65
-rw-r--r--pkgs/development/python-modules/manifestoo-core/default.nix27
-rw-r--r--pkgs/development/python-modules/manifestoo/default.nix50
-rw-r--r--pkgs/development/python-modules/manim-slides/default.nix119
-rw-r--r--pkgs/development/python-modules/manim/default.nix241
-rw-r--r--pkgs/development/python-modules/manimpango/default.nix45
-rw-r--r--pkgs/development/python-modules/manuel/default.nix20
-rw-r--r--pkgs/development/python-modules/manuf/default.nix30
-rw-r--r--pkgs/development/python-modules/mapbox-earcut/default.nix32
-rw-r--r--pkgs/development/python-modules/mapbox/default.nix40
-rw-r--r--pkgs/development/python-modules/mapclassify/default.nix58
-rw-r--r--pkgs/development/python-modules/mariadb/default.nix12
-rw-r--r--pkgs/development/python-modules/marimo/default.nix72
-rw-r--r--pkgs/development/python-modules/marionette-harness/manifestparser.nix9
-rw-r--r--pkgs/development/python-modules/marisa-trie/default.nix36
-rw-r--r--pkgs/development/python-modules/marisa/default.nix14
-rw-r--r--pkgs/development/python-modules/markdown-include/default.nix23
-rw-r--r--pkgs/development/python-modules/markdown-it-py/default.nix79
-rw-r--r--pkgs/development/python-modules/markdown-macros/default.nix14
-rw-r--r--pkgs/development/python-modules/markdown/default.nix25
-rw-r--r--pkgs/development/python-modules/markdown2/default.nix31
-rw-r--r--pkgs/development/python-modules/markdownify/default.nix29
-rw-r--r--pkgs/development/python-modules/markuppy/default.nix8
-rw-r--r--pkgs/development/python-modules/markups/default.nix43
-rw-r--r--pkgs/development/python-modules/markupsafe/default.nix51
-rw-r--r--pkgs/development/python-modules/marshmallow-dataclass/default.nix27
-rw-r--r--pkgs/development/python-modules/marshmallow-enum/default.nix43
-rw-r--r--pkgs/development/python-modules/marshmallow-oneofschema/default.nix31
-rw-r--r--pkgs/development/python-modules/marshmallow-polyfield/default.nix31
-rw-r--r--pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix29
-rw-r--r--pkgs/development/python-modules/marshmallow/default.nix31
-rw-r--r--pkgs/development/python-modules/mashumaro/default.nix65
-rw-r--r--pkgs/development/python-modules/masky/default.nix23
-rw-r--r--pkgs/development/python-modules/mastodon-py/default.nix41
-rw-r--r--pkgs/development/python-modules/mat2/default.nix100
-rw-r--r--pkgs/development/python-modules/matchpy/default.nix31
-rw-r--r--pkgs/development/python-modules/material-color-utilities/default.nix16
-rw-r--r--pkgs/development/python-modules/mathlibtools/default.nix31
-rw-r--r--pkgs/development/python-modules/mathutils/default.nix33
-rw-r--r--pkgs/development/python-modules/matlink-gpapi/default.nix24
-rw-r--r--pkgs/development/python-modules/matplotlib-inline/default.nix31
-rw-r--r--pkgs/development/python-modules/matplotlib-sixel/default.nix13
-rw-r--r--pkgs/development/python-modules/matplotlib-venn/default.nix40
-rw-r--r--pkgs/development/python-modules/matplotlib/default.nix328
-rw-r--r--pkgs/development/python-modules/matplotx/default.nix28
-rw-r--r--pkgs/development/python-modules/matrix-api-async/default.nix9
-rw-r--r--pkgs/development/python-modules/matrix-client/default.nix15
-rw-r--r--pkgs/development/python-modules/matrix-common/default.nix27
-rw-r--r--pkgs/development/python-modules/matrix-nio/default.nix96
-rw-r--r--pkgs/development/python-modules/mattermostdriver/default.nix20
-rw-r--r--pkgs/development/python-modules/mautrix/default.nix48
-rw-r--r--pkgs/development/python-modules/maxcube-api/default.nix15
-rw-r--r--pkgs/development/python-modules/maxminddb/default.nix31
-rw-r--r--pkgs/development/python-modules/maya/default.nix37
-rw-r--r--pkgs/development/python-modules/mayavi/default.nix52
-rw-r--r--pkgs/development/python-modules/mayim/default.nix53
-rw-r--r--pkgs/development/python-modules/mbddns/default.nix15
-rw-r--r--pkgs/development/python-modules/mbstrdecoder/default.nix33
-rw-r--r--pkgs/development/python-modules/mccabe/default.nix19
-rw-r--r--pkgs/development/python-modules/mcstatus/default.nix27
-rw-r--r--pkgs/development/python-modules/mcuuid/default.nix17
-rw-r--r--pkgs/development/python-modules/md-toc/default.nix33
-rw-r--r--pkgs/development/python-modules/md2gemini/default.nix17
-rw-r--r--pkgs/development/python-modules/mdformat-admon/default.nix25
-rw-r--r--pkgs/development/python-modules/mdformat-beautysh/default.nix33
-rw-r--r--pkgs/development/python-modules/mdformat-footnote/default.nix27
-rw-r--r--pkgs/development/python-modules/mdformat-frontmatter/default.nix34
-rw-r--r--pkgs/development/python-modules/mdformat-gfm/default.nix40
-rw-r--r--pkgs/development/python-modules/mdformat-mkdocs/default.nix37
-rw-r--r--pkgs/development/python-modules/mdformat-nix-alejandra/default.nix33
-rw-r--r--pkgs/development/python-modules/mdformat-simple-breaks/default.nix27
-rw-r--r--pkgs/development/python-modules/mdformat-tables/default.nix40
-rw-r--r--pkgs/development/python-modules/mdformat-toc/default.nix38
-rw-r--r--pkgs/development/python-modules/mdformat/default.nix53
-rw-r--r--pkgs/development/python-modules/mdit-py-plugins/default.nix33
-rw-r--r--pkgs/development/python-modules/mdp/default.nix19
-rw-r--r--pkgs/development/python-modules/mdtraj/default.nix85
-rw-r--r--pkgs/development/python-modules/mdurl/default.nix25
-rw-r--r--pkgs/development/python-modules/mdutils/default.nix9
-rw-r--r--pkgs/development/python-modules/mdx-truly-sane-lists/default.nix14
-rw-r--r--pkgs/development/python-modules/measurement/default.nix27
-rw-r--r--pkgs/development/python-modules/meater-python/default.nix19
-rw-r--r--pkgs/development/python-modules/mecab-python3/default.nix33
-rw-r--r--pkgs/development/python-modules/mechanicalsoup/default.nix32
-rw-r--r--pkgs/development/python-modules/mechanize/default.nix44
-rw-r--r--pkgs/development/python-modules/mediafile/default.nix29
-rw-r--r--pkgs/development/python-modules/mediafire-dl/default.nix17
-rw-r--r--pkgs/development/python-modules/mediapy/default.nix31
-rw-r--r--pkgs/development/python-modules/medpy/default.nix29
-rw-r--r--pkgs/development/python-modules/meeko/default.nix31
-rw-r--r--pkgs/development/python-modules/meep/default.nix114
-rw-r--r--pkgs/development/python-modules/meilisearch/default.nix31
-rw-r--r--pkgs/development/python-modules/meinheld/default.nix11
-rw-r--r--pkgs/development/python-modules/meld3/default.nix10
-rw-r--r--pkgs/development/python-modules/memestra/default.nix28
-rw-r--r--pkgs/development/python-modules/memory-allocator/default.nix18
-rw-r--r--pkgs/development/python-modules/memory-profiler/default.nix9
-rw-r--r--pkgs/development/python-modules/meraki/default.nix21
-rw-r--r--pkgs/development/python-modules/mercadopago/default.nix21
-rw-r--r--pkgs/development/python-modules/mercantile/default.nix16
-rw-r--r--pkgs/development/python-modules/merge3/default.nix23
-rw-r--r--pkgs/development/python-modules/mergedb/default.nix36
-rw-r--r--pkgs/development/python-modules/mergedeep/default.nix10
-rw-r--r--pkgs/development/python-modules/mergedict/default.nix11
-rw-r--r--pkgs/development/python-modules/merkletools/default.nix19
-rw-r--r--pkgs/development/python-modules/mesa/default.nix31
-rw-r--r--pkgs/development/python-modules/meshcat/default.nix21
-rw-r--r--pkgs/development/python-modules/meshio/default.nix29
-rw-r--r--pkgs/development/python-modules/meshtastic/default.nix6
-rw-r--r--pkgs/development/python-modules/meson-python/default.nix35
-rw-r--r--pkgs/development/python-modules/mesonpep517/default.nix22
-rw-r--r--pkgs/development/python-modules/messagebird/default.nix27
-rw-r--r--pkgs/development/python-modules/metakernel/default.nix27
-rw-r--r--pkgs/development/python-modules/metar/default.nix19
-rw-r--r--pkgs/development/python-modules/metawear/default.nix35
-rw-r--r--pkgs/development/python-modules/meteoalertapi/default.nix13
-rw-r--r--pkgs/development/python-modules/meteocalc/default.nix19
-rw-r--r--pkgs/development/python-modules/meteofrance-api/default.nix33
-rw-r--r--pkgs/development/python-modules/mezzanine/default.nix41
-rw-r--r--pkgs/development/python-modules/mf2py/default.nix31
-rw-r--r--pkgs/development/python-modules/mhcflurry/default.nix51
-rw-r--r--pkgs/development/python-modules/mhcgnomes/default.nix19
-rw-r--r--pkgs/development/python-modules/miasm/0001-setup.py-use-valid-semver.patch26
-rw-r--r--pkgs/development/python-modules/miasm/0002-core-remove-IDAPython-dependency.patch65
-rw-r--r--pkgs/development/python-modules/miasm/default.nix59
-rw-r--r--pkgs/development/python-modules/miauth/default.nix37
-rw-r--r--pkgs/development/python-modules/micawber/default.nix15
-rw-r--r--pkgs/development/python-modules/micloud/default.nix15
-rw-r--r--pkgs/development/python-modules/microdata/default.nix19
-rw-r--r--pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix4
-rw-r--r--pkgs/development/python-modules/midea-beautiful-air/default.nix23
-rw-r--r--pkgs/development/python-modules/midiutil/default.nix8
-rw-r--r--pkgs/development/python-modules/mido/default.nix57
-rw-r--r--pkgs/development/python-modules/migen/default.nix15
-rw-r--r--pkgs/development/python-modules/mike/default.nix29
-rw-r--r--pkgs/development/python-modules/milc/default.nix25
-rw-r--r--pkgs/development/python-modules/milksnake/default.nix14
-rw-r--r--pkgs/development/python-modules/mill-local/default.nix17
-rw-r--r--pkgs/development/python-modules/millheater/default.nix17
-rw-r--r--pkgs/development/python-modules/minari/default.nix88
-rw-r--r--pkgs/development/python-modules/mindsdb-evaluator/default.nix29
-rw-r--r--pkgs/development/python-modules/minexr/default.nix20
-rw-r--r--pkgs/development/python-modules/miniaudio/default.nix25
-rw-r--r--pkgs/development/python-modules/minichain/default.nix25
-rw-r--r--pkgs/development/python-modules/minidb/default.nix29
-rw-r--r--pkgs/development/python-modules/minidump/default.nix19
-rw-r--r--pkgs/development/python-modules/miniful/default.nix17
-rw-r--r--pkgs/development/python-modules/minikanren/default.nix23
-rw-r--r--pkgs/development/python-modules/minikerberos/default.nix25
-rw-r--r--pkgs/development/python-modules/minimal-snowplow-tracker/default.nix20
-rw-r--r--pkgs/development/python-modules/minimock/default.nix21
-rw-r--r--pkgs/development/python-modules/minio/default.nix45
-rw-r--r--pkgs/development/python-modules/miniupnpc/default.nix18
-rw-r--r--pkgs/development/python-modules/mip/default.nix60
-rw-r--r--pkgs/development/python-modules/mir-eval/default.nix21
-rw-r--r--pkgs/development/python-modules/mirakuru/default.nix21
-rw-r--r--pkgs/development/python-modules/misaka/default.nix9
-rw-r--r--pkgs/development/python-modules/misoc/default.nix23
-rw-r--r--pkgs/development/python-modules/mistletoe/default.nix19
-rw-r--r--pkgs/development/python-modules/mistune/default.nix23
-rw-r--r--pkgs/development/python-modules/mitmproxy-macos/default.nix22
-rw-r--r--pkgs/development/python-modules/mitmproxy-rs/default.nix23
-rw-r--r--pkgs/development/python-modules/mitmproxy/default.nix97
-rw-r--r--pkgs/development/python-modules/mixins/default.nix11
-rw-r--r--pkgs/development/python-modules/mixpanel/default.nix30
-rw-r--r--pkgs/development/python-modules/mizani/default.nix39
-rw-r--r--pkgs/development/python-modules/mkdocs-autolinks-plugin/default.nix23
-rw-r--r--pkgs/development/python-modules/mkdocs-autorefs/default.nix29
-rw-r--r--pkgs/development/python-modules/mkdocs-drawio-exporter/default.nix24
-rw-r--r--pkgs/development/python-modules/mkdocs-exclude/default.nix13
-rw-r--r--pkgs/development/python-modules/mkdocs-get-deps/default.nix43
-rw-r--r--pkgs/development/python-modules/mkdocs-git-authors-plugin/default.nix15
-rw-r--r--pkgs/development/python-modules/mkdocs-git-revision-date-localized-plugin/default.nix29
-rw-r--r--pkgs/development/python-modules/mkdocs-gitlab-plugin/default.nix13
-rw-r--r--pkgs/development/python-modules/mkdocs-jupyter/default.nix41
-rw-r--r--pkgs/development/python-modules/mkdocs-linkcheck/default.nix13
-rw-r--r--pkgs/development/python-modules/mkdocs-macros/default.nix29
-rw-r--r--pkgs/development/python-modules/mkdocs-macros/mkdocs-macros-test.nix13
-rw-r--r--pkgs/development/python-modules/mkdocs-macros/tests.nix13
-rw-r--r--pkgs/development/python-modules/mkdocs-material/default.nix4
-rw-r--r--pkgs/development/python-modules/mkdocs-material/mkdocs-material-extensions.nix13
-rw-r--r--pkgs/development/python-modules/mkdocs-mermaid2-plugin/default.nix29
-rw-r--r--pkgs/development/python-modules/mkdocs-minify-plugin/default.nix19
-rw-r--r--pkgs/development/python-modules/mkdocs-redirects/default.nix25
-rw-r--r--pkgs/development/python-modules/mkdocs-redoc-tag/default.nix25
-rw-r--r--pkgs/development/python-modules/mkdocs-rss-plugin/default.nix6
-rw-r--r--pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix29
-rw-r--r--pkgs/development/python-modules/mkdocs/default.nix83
-rw-r--r--pkgs/development/python-modules/mkdocstrings-python/default.nix4
-rw-r--r--pkgs/development/python-modules/mkdocstrings/default.nix4
-rw-r--r--pkgs/development/python-modules/mkl-service/default.nix15
-rw-r--r--pkgs/development/python-modules/ml-collections/default.nix23
-rw-r--r--pkgs/development/python-modules/ml-dtypes/default.nix36
-rw-r--r--pkgs/development/python-modules/mlflow/default.nix81
-rw-r--r--pkgs/development/python-modules/mlrose/default.nix26
-rw-r--r--pkgs/development/python-modules/mlx/default.nix45
-rw-r--r--pkgs/development/python-modules/mlxtend/default.nix41
-rw-r--r--pkgs/development/python-modules/mmcif-pdbx/default.nix25
-rw-r--r--pkgs/development/python-modules/mmcv/default.nix111
-rw-r--r--pkgs/development/python-modules/mmh3/default.nix13
-rw-r--r--pkgs/development/python-modules/mmpython/default.nix12
-rw-r--r--pkgs/development/python-modules/mmtf-python/default.nix23
-rw-r--r--pkgs/development/python-modules/mne-python/default.nix77
-rw-r--r--pkgs/development/python-modules/mnemonic/default.nix14
-rw-r--r--pkgs/development/python-modules/mnist/default.nix10
-rw-r--r--pkgs/development/python-modules/moat-ble/default.nix31
-rw-r--r--pkgs/development/python-modules/mobi/default.nix29
-rw-r--r--pkgs/development/python-modules/mobly/default.nix41
-rw-r--r--pkgs/development/python-modules/mock-open/default.nix17
-rw-r--r--pkgs/development/python-modules/mock-services/default.nix21
-rw-r--r--pkgs/development/python-modules/mock-ssh-server/default.nix19
-rw-r--r--pkgs/development/python-modules/mock/default.nix19
-rw-r--r--pkgs/development/python-modules/mocket/default.nix120
-rw-r--r--pkgs/development/python-modules/mockfs/default.nix25
-rw-r--r--pkgs/development/python-modules/mockito/default.nix19
-rw-r--r--pkgs/development/python-modules/mockupdb/default.nix29
-rw-r--r--pkgs/development/python-modules/moddb/default.nix22
-rw-r--r--pkgs/development/python-modules/model-bakery/default.nix4
-rw-r--r--pkgs/development/python-modules/model-checker/default.nix43
-rw-r--r--pkgs/development/python-modules/modelcif/default.nix27
-rw-r--r--pkgs/development/python-modules/modeled/default.nix25
-rw-r--r--pkgs/development/python-modules/moderngl-window/default.nix67
-rw-r--r--pkgs/development/python-modules/moderngl/default.nix23
-rw-r--r--pkgs/development/python-modules/modestmaps/default.nix14
-rw-r--r--pkgs/development/python-modules/mohawk/default.nix18
-rw-r--r--pkgs/development/python-modules/molbar/default.nix71
-rw-r--r--pkgs/development/python-modules/molecule/default.nix4
-rw-r--r--pkgs/development/python-modules/molecule/plugins.nix27
-rw-r--r--pkgs/development/python-modules/momepy/default.nix57
-rw-r--r--pkgs/development/python-modules/monai-deploy/default.nix25
-rw-r--r--pkgs/development/python-modules/monai/default.nix49
-rw-r--r--pkgs/development/python-modules/monero/default.nix31
-rw-r--r--pkgs/development/python-modules/mongodict/default.nix10
-rw-r--r--pkgs/development/python-modules/mongoengine/default.nix21
-rw-r--r--pkgs/development/python-modules/mongomock/default.nix29
-rw-r--r--pkgs/development/python-modules/mongoquery/default.nix21
-rw-r--r--pkgs/development/python-modules/monitorcontrol/default.nix29
-rw-r--r--pkgs/development/python-modules/monkeyhex/default.nix11
-rw-r--r--pkgs/development/python-modules/monotonic/default.nix11
-rw-r--r--pkgs/development/python-modules/monty/default.nix39
-rw-r--r--pkgs/development/python-modules/monzopy/default.nix40
-rw-r--r--pkgs/development/python-modules/moonraker-api/default.nix23
-rw-r--r--pkgs/development/python-modules/mopeka-iot-ble/default.nix33
-rw-r--r--pkgs/development/python-modules/more-itertools/default.nix31
-rw-r--r--pkgs/development/python-modules/more-properties/default.nix17
-rw-r--r--pkgs/development/python-modules/morecantile/default.nix54
-rw-r--r--pkgs/development/python-modules/moreorless/default.nix29
-rw-r--r--pkgs/development/python-modules/moretools/default.nix19
-rw-r--r--pkgs/development/python-modules/morfessor/default.nix9
-rw-r--r--pkgs/development/python-modules/morphys/default.nix7
-rw-r--r--pkgs/development/python-modules/mortgage/default.nix39
-rw-r--r--pkgs/development/python-modules/motionblinds/default.nix25
-rw-r--r--pkgs/development/python-modules/motionblindsble/default.nix55
-rw-r--r--pkgs/development/python-modules/motioneye-client/default.nix33
-rw-r--r--pkgs/development/python-modules/motmetrics/default.nix41
-rw-r--r--pkgs/development/python-modules/moto/default.nix110
-rw-r--r--pkgs/development/python-modules/motor/default.nix25
-rw-r--r--pkgs/development/python-modules/mouseinfo/default.nix17
-rw-r--r--pkgs/development/python-modules/moviepy/default.nix108
-rw-r--r--pkgs/development/python-modules/mox3/default.nix36
-rw-r--r--pkgs/development/python-modules/mpd2/default.nix35
-rw-r--r--pkgs/development/python-modules/mpegdash/default.nix36
-rw-r--r--pkgs/development/python-modules/mpi4py/default.nix15
-rw-r--r--pkgs/development/python-modules/mpl-scatter-density/default.nix33
-rw-r--r--pkgs/development/python-modules/mpldatacursor/default.nix9
-rw-r--r--pkgs/development/python-modules/mplfinance/default.nix13
-rw-r--r--pkgs/development/python-modules/mplhep-data/default.nix21
-rw-r--r--pkgs/development/python-modules/mplhep/default.nix37
-rw-r--r--pkgs/development/python-modules/mplleaflet/default.nix16
-rw-r--r--pkgs/development/python-modules/mpmath/default.nix42
-rw-r--r--pkgs/development/python-modules/mpris-server/default.nix23
-rw-r--r--pkgs/development/python-modules/mpv/default.nix23
-rw-r--r--pkgs/development/python-modules/mpyq/default.nix9
-rw-r--r--pkgs/development/python-modules/mqtt2influxdb/default.nix21
-rw-r--r--pkgs/development/python-modules/mrjob/default.nix60
-rw-r--r--pkgs/development/python-modules/mrsqm/default.nix23
-rw-r--r--pkgs/development/python-modules/ms-active-directory/default.nix25
-rw-r--r--pkgs/development/python-modules/ms-cv/default.nix15
-rw-r--r--pkgs/development/python-modules/msal-extensions/default.nix25
-rw-r--r--pkgs/development/python-modules/msal/default.nix32
-rw-r--r--pkgs/development/python-modules/mscerts/default.nix23
-rw-r--r--pkgs/development/python-modules/msg-parser/default.nix27
-rw-r--r--pkgs/development/python-modules/msgpack-numpy/default.nix23
-rw-r--r--pkgs/development/python-modules/msgpack/default.nix29
-rw-r--r--pkgs/development/python-modules/msgraph-core/default.nix51
-rw-r--r--pkgs/development/python-modules/msgraph-sdk/default.nix4
-rw-r--r--pkgs/development/python-modules/msgspec/default.nix23
-rw-r--r--pkgs/development/python-modules/msldap/default.nix37
-rw-r--r--pkgs/development/python-modules/msoffcrypto-tool/default.nix4
-rw-r--r--pkgs/development/python-modules/msprime/default.nix39
-rw-r--r--pkgs/development/python-modules/msrest/default.nix85
-rw-r--r--pkgs/development/python-modules/msrestazure/default.nix38
-rw-r--r--pkgs/development/python-modules/mss/default.nix13
-rw-r--r--pkgs/development/python-modules/mt-940/default.nix23
-rw-r--r--pkgs/development/python-modules/mujoco/default.nix92
-rw-r--r--pkgs/development/python-modules/mujson/default.nix7
-rw-r--r--pkgs/development/python-modules/mullvad-api/default.nix9
-rw-r--r--pkgs/development/python-modules/mullvad-closest/default.nix23
-rw-r--r--pkgs/development/python-modules/mulpyplexer/default.nix7
-rw-r--r--pkgs/development/python-modules/multi-key-dict/default.nix17
-rw-r--r--pkgs/development/python-modules/multidict/default.nix17
-rw-r--r--pkgs/development/python-modules/multimethod/default.nix25
-rw-r--r--pkgs/development/python-modules/multipart/default.nix30
-rw-r--r--pkgs/development/python-modules/multipledispatch/default.nix11
-rw-r--r--pkgs/development/python-modules/multiprocess/default.nix17
-rw-r--r--pkgs/development/python-modules/multiset/default.nix23
-rw-r--r--pkgs/development/python-modules/multitasking/default.nix9
-rw-r--r--pkgs/development/python-modules/munch/default.nix26
-rw-r--r--pkgs/development/python-modules/mung/default.nix33
-rw-r--r--pkgs/development/python-modules/munkres/default.nix14
-rw-r--r--pkgs/development/python-modules/murmurhash/default.nix19
-rw-r--r--pkgs/development/python-modules/muscima/default.nix23
-rw-r--r--pkgs/development/python-modules/music-tag/default.nix23
-rw-r--r--pkgs/development/python-modules/musicbrainzngs/default.nix12
-rw-r--r--pkgs/development/python-modules/mutag/default.nix39
-rw-r--r--pkgs/development/python-modules/mutagen/default.nix35
-rw-r--r--pkgs/development/python-modules/mutatormath/default.nix22
-rw-r--r--pkgs/development/python-modules/mutesync/default.nix11
-rw-r--r--pkgs/development/python-modules/mutf8/default.nix19
-rw-r--r--pkgs/development/python-modules/mwcli/default.nix21
-rw-r--r--pkgs/development/python-modules/mwclient/default.nix25
-rw-r--r--pkgs/development/python-modules/mwdblib/default.nix29
-rw-r--r--pkgs/development/python-modules/mwoauth/default.nix23
-rw-r--r--pkgs/development/python-modules/mwparserfromhell/default.nix19
-rw-r--r--pkgs/development/python-modules/mwtypes/default.nix15
-rw-r--r--pkgs/development/python-modules/mwxml/default.nix23
-rw-r--r--pkgs/development/python-modules/mxnet/default.nix25
-rw-r--r--pkgs/development/python-modules/myfitnesspal/default.nix45
-rw-r--r--pkgs/development/python-modules/mygpoclient/default.nix20
-rw-r--r--pkgs/development/python-modules/myhdl/default.nix17
-rw-r--r--pkgs/development/python-modules/myhome/default.nix31
-rw-r--r--pkgs/development/python-modules/myjwt/default.nix41
-rw-r--r--pkgs/development/python-modules/mypy-boto3-builder/default.nix53
-rw-r--r--pkgs/development/python-modules/mypy-boto3/default.nix1462
-rw-r--r--pkgs/development/python-modules/mypy-protobuf/default.nix54
-rw-r--r--pkgs/development/python-modules/mypy/default.nix153
-rw-r--r--pkgs/development/python-modules/mypy/extensions.nix27
-rw-r--r--pkgs/development/python-modules/mysql-connector/default.nix39
-rw-r--r--pkgs/development/python-modules/mysqlclient/default.nix19
-rw-r--r--pkgs/development/python-modules/myst-docutils/default.nix33
-rw-r--r--pkgs/development/python-modules/myst-nb/default.nix39
-rw-r--r--pkgs/development/python-modules/myst-parser/default.nix79
-rw-r--r--pkgs/development/python-modules/n3fit/default.nix17
-rw-r--r--pkgs/development/python-modules/nad-receiver/default.nix19
-rw-r--r--pkgs/development/python-modules/nagiosplugin/default.nix23
-rw-r--r--pkgs/development/python-modules/naked/default.nix36
-rw-r--r--pkgs/development/python-modules/name-that-hash/default.nix17
-rw-r--r--pkgs/development/python-modules/namedlist/default.nix21
-rw-r--r--pkgs/development/python-modules/nameko/default.nix45
-rw-r--r--pkgs/development/python-modules/nameparser/default.nix19
-rw-r--r--pkgs/development/python-modules/names/default.nix19
-rw-r--r--pkgs/development/python-modules/namex/default.nix36
-rw-r--r--pkgs/development/python-modules/nampa/default.nix25
-rw-r--r--pkgs/development/python-modules/nanobind/default.nix17
-rw-r--r--pkgs/development/python-modules/nanoid/default.nix19
-rw-r--r--pkgs/development/python-modules/nanoleaf/default.nix30
-rw-r--r--pkgs/development/python-modules/nanomsg-python/default.nix19
-rw-r--r--pkgs/development/python-modules/nanotime/default.nix25
-rw-r--r--pkgs/development/python-modules/napalm/default.nix74
-rw-r--r--pkgs/development/python-modules/napalm/hp-procurve.nix37
-rw-r--r--pkgs/development/python-modules/napari-console/default.nix45
-rw-r--r--pkgs/development/python-modules/napari-npe2/default.nix41
-rw-r--r--pkgs/development/python-modules/napari-plugin-engine/default.nix21
-rw-r--r--pkgs/development/python-modules/napari-svg/default.nix25
-rw-r--r--pkgs/development/python-modules/napari/default.nix96
-rw-r--r--pkgs/development/python-modules/nasdaq-data-link/default.nix39
-rw-r--r--pkgs/development/python-modules/natasha/default.nix30
-rw-r--r--pkgs/development/python-modules/nats-python/default.nix37
-rw-r--r--pkgs/development/python-modules/natsort/default.nix25
-rw-r--r--pkgs/development/python-modules/natural/default.nix32
-rw-r--r--pkgs/development/python-modules/naturalsort/default.nix24
-rw-r--r--pkgs/development/python-modules/navec/default.nix25
-rw-r--r--pkgs/development/python-modules/nbclassic/default.nix71
-rw-r--r--pkgs/development/python-modules/nbclient/default.nix129
-rw-r--r--pkgs/development/python-modules/nbconflux/default.nix29
-rw-r--r--pkgs/development/python-modules/nbconvert/default.nix70
-rw-r--r--pkgs/development/python-modules/nbdev/default.nix45
-rw-r--r--pkgs/development/python-modules/nbdime/default.nix43
-rw-r--r--pkgs/development/python-modules/nbexec/default.nix42
-rw-r--r--pkgs/development/python-modules/nbformat/default.nix33
-rw-r--r--pkgs/development/python-modules/nbmake/default.nix68
-rw-r--r--pkgs/development/python-modules/nbmerge/default.nix23
-rw-r--r--pkgs/development/python-modules/nbsmoke/default.nix25
-rw-r--r--pkgs/development/python-modules/nbsphinx/default.nix36
-rw-r--r--pkgs/development/python-modules/nbtlib/default.nix27
-rw-r--r--pkgs/development/python-modules/nbval/default.nix43
-rw-r--r--pkgs/development/python-modules/nbxmpp/default.nix43
-rw-r--r--pkgs/development/python-modules/nc-dnsapi/default.nix14
-rw-r--r--pkgs/development/python-modules/ncclient/default.nix25
-rw-r--r--pkgs/development/python-modules/nclib/default.nix13
-rw-r--r--pkgs/development/python-modules/ndeflib/default.nix31
-rw-r--r--pkgs/development/python-modules/ndg-httpsclient/default.nix13
-rw-r--r--pkgs/development/python-modules/ndindex/default.nix35
-rw-r--r--pkgs/development/python-modules/ndjson/default.nix19
-rw-r--r--pkgs/development/python-modules/ndms2-client/default.nix19
-rw-r--r--pkgs/development/python-modules/ndspy/default.nix19
-rw-r--r--pkgs/development/python-modules/ndtypes/default.nix34
-rw-r--r--pkgs/development/python-modules/nengo/default.nix33
-rw-r--r--pkgs/development/python-modules/neo/default.nix31
-rw-r--r--pkgs/development/python-modules/neo4j/default.nix4
-rw-r--r--pkgs/development/python-modules/neoteroi-mkdocs/default.nix13
-rw-r--r--pkgs/development/python-modules/nessclient/default.nix21
-rw-r--r--pkgs/development/python-modules/nest-asyncio/default.nix23
-rw-r--r--pkgs/development/python-modules/nested-lookup/default.nix19
-rw-r--r--pkgs/development/python-modules/nestedtext/default.nix43
-rw-r--r--pkgs/development/python-modules/netaddr/default.nix31
-rw-r--r--pkgs/development/python-modules/netapp-lib/default.nix13
-rw-r--r--pkgs/development/python-modules/netapp-ontap/default.nix40
-rw-r--r--pkgs/development/python-modules/netcdf4/default.nix41
-rw-r--r--pkgs/development/python-modules/netdata-pandas/default.nix42
-rw-r--r--pkgs/development/python-modules/netdata/default.nix29
-rw-r--r--pkgs/development/python-modules/netdisco/default.nix15
-rw-r--r--pkgs/development/python-modules/nethsm/default.nix25
-rw-r--r--pkgs/development/python-modules/netifaces/default.nix13
-rw-r--r--pkgs/development/python-modules/netio/default.nix25
-rw-r--r--pkgs/development/python-modules/netmap/default.nix13
-rw-r--r--pkgs/development/python-modules/netmiko/default.nix36
-rw-r--r--pkgs/development/python-modules/nettigo-air-monitor/default.nix12
-rw-r--r--pkgs/development/python-modules/netutils/default.nix4
-rw-r--r--pkgs/development/python-modules/networkx/default.nix48
-rw-r--r--pkgs/development/python-modules/nevow/default.nix8
-rw-r--r--pkgs/development/python-modules/newick/default.nix27
-rw-r--r--pkgs/development/python-modules/newversion/default.nix31
-rw-r--r--pkgs/development/python-modules/nexia/default.nix31
-rw-r--r--pkgs/development/python-modules/nextcloudmonitor/default.nix13
-rw-r--r--pkgs/development/python-modules/nextcord/default.nix29
-rw-r--r--pkgs/development/python-modules/nfcpy/default.nix30
-rw-r--r--pkgs/development/python-modules/nh3/default.nix28
-rw-r--r--pkgs/development/python-modules/niaaml/default.nix41
-rw-r--r--pkgs/development/python-modules/niaarm/default.nix41
-rw-r--r--pkgs/development/python-modules/niaclass/default.nix40
-rw-r--r--pkgs/development/python-modules/nianet/default.nix31
-rw-r--r--pkgs/development/python-modules/niapy/default.nix40
-rw-r--r--pkgs/development/python-modules/nibabel/default.nix65
-rw-r--r--pkgs/development/python-modules/nibe/default.nix55
-rw-r--r--pkgs/development/python-modules/nidaqmx/default.nix25
-rw-r--r--pkgs/development/python-modules/niko-home-control/default.nix19
-rw-r--r--pkgs/development/python-modules/nikola/default.nix95
-rw-r--r--pkgs/development/python-modules/nilearn/default.nix35
-rw-r--r--pkgs/development/python-modules/niluclient/default.nix15
-rw-r--r--pkgs/development/python-modules/nimfa/default.nix29
-rw-r--r--pkgs/development/python-modules/nine/default.nix8
-rw-r--r--pkgs/development/python-modules/ninebot-ble/default.nix28
-rw-r--r--pkgs/development/python-modules/ninja/default.nix20
-rw-r--r--pkgs/development/python-modules/nipreps-versions/default.nix21
-rw-r--r--pkgs/development/python-modules/nipy/default.nix46
-rw-r--r--pkgs/development/python-modules/nipype/default.nix84
-rw-r--r--pkgs/development/python-modules/nitime/default.nix37
-rw-r--r--pkgs/development/python-modules/nitransforms/default.nix35
-rw-r--r--pkgs/development/python-modules/niworkflows/default.nix59
-rw-r--r--pkgs/development/python-modules/nix-kernel/default.nix15
-rw-r--r--pkgs/development/python-modules/nix-prefetch-github/default.nix41
-rw-r--r--pkgs/development/python-modules/nixpkgs-pytools/default.nix15
-rw-r--r--pkgs/development/python-modules/nixpkgs/default.nix16
-rw-r--r--pkgs/development/python-modules/nkdfu/default.nix15
-rw-r--r--pkgs/development/python-modules/nlpcloud/default.nix17
-rw-r--r--pkgs/development/python-modules/nltk/default.nix23
-rw-r--r--pkgs/development/python-modules/nmapthon2/default.nix25
-rw-r--r--pkgs/development/python-modules/nocasedict/default.nix29
-rw-r--r--pkgs/development/python-modules/nocaselist/default.nix31
-rw-r--r--pkgs/development/python-modules/nocturne/default.nix34
-rw-r--r--pkgs/development/python-modules/node-semver/default.nix21
-rw-r--r--pkgs/development/python-modules/nodeenv/default.nix35
-rw-r--r--pkgs/development/python-modules/nodepy-runtime/default.nix17
-rw-r--r--pkgs/development/python-modules/noise/default.nix6
-rw-r--r--pkgs/development/python-modules/noiseprotocol/default.nix23
-rw-r--r--pkgs/development/python-modules/nomadnet/default.nix35
-rw-r--r--pkgs/development/python-modules/noneprompt/default.nix39
-rw-r--r--pkgs/development/python-modules/norfair/default.nix47
-rw-r--r--pkgs/development/python-modules/normality/default.nix43
-rw-r--r--pkgs/development/python-modules/nose-cov/default.nix21
-rw-r--r--pkgs/development/python-modules/nose-cprof/default.nix26
-rw-r--r--pkgs/development/python-modules/nose-exclude/default.nix28
-rw-r--r--pkgs/development/python-modules/nose-pattern-exclude/default.nix7
-rw-r--r--pkgs/development/python-modules/nose-randomly/default.nix34
-rw-r--r--pkgs/development/python-modules/nose-timer/default.nix17
-rw-r--r--pkgs/development/python-modules/nose-warnings-filters/default.nix11
-rw-r--r--pkgs/development/python-modules/nose-xunitmp/default.nix36
-rw-r--r--pkgs/development/python-modules/nose/default.nix36
-rw-r--r--pkgs/development/python-modules/nose2/default.nix37
-rw-r--r--pkgs/development/python-modules/nose3/default.nix19
-rw-r--r--pkgs/development/python-modules/nosejs/default.nix29
-rw-r--r--pkgs/development/python-modules/nosexcover/default.nix30
-rw-r--r--pkgs/development/python-modules/notebook-shim/default.nix17
-rw-r--r--pkgs/development/python-modules/notebook/default.nix44
-rw-r--r--pkgs/development/python-modules/notedown/default.nix17
-rw-r--r--pkgs/development/python-modules/notifications-android-tv/default.nix31
-rw-r--r--pkgs/development/python-modules/notifications-python-client/default.nix39
-rw-r--r--pkgs/development/python-modules/notify-events/default.nix13
-rw-r--r--pkgs/development/python-modules/notify-py/default.nix118
-rw-r--r--pkgs/development/python-modules/notify2/default.nix18
-rw-r--r--pkgs/development/python-modules/notion-client/default.nix33
-rw-r--r--pkgs/development/python-modules/notmuch/default.nix17
-rw-r--r--pkgs/development/python-modules/notmuch2/default.nix20
-rw-r--r--pkgs/development/python-modules/nototools/default.nix45
-rw-r--r--pkgs/development/python-modules/notus-scanner/default.nix2
-rw-r--r--pkgs/development/python-modules/nox/default.nix62
-rw-r--r--pkgs/development/python-modules/nplusone/default.nix31
-rw-r--r--pkgs/development/python-modules/nptyping/default.nix29
-rw-r--r--pkgs/development/python-modules/npyscreen/default.nix10
-rw-r--r--pkgs/development/python-modules/nsapi/default.nix13
-rw-r--r--pkgs/development/python-modules/nsz/default.nix19
-rw-r--r--pkgs/development/python-modules/ntc-templates/default.nix35
-rw-r--r--pkgs/development/python-modules/ntplib/default.nix8
-rw-r--r--pkgs/development/python-modules/nuheat/default.nix27
-rw-r--r--pkgs/development/python-modules/nuitka/default.nix33
-rw-r--r--pkgs/development/python-modules/nulltype/default.nix17
-rw-r--r--pkgs/development/python-modules/num2words/default.nix21
-rw-r--r--pkgs/development/python-modules/numba-scipy/default.nix23
-rw-r--r--pkgs/development/python-modules/numba/default.nix99
-rw-r--r--pkgs/development/python-modules/numcodecs/default.nix49
-rw-r--r--pkgs/development/python-modules/numdifftools/default.nix19
-rw-r--r--pkgs/development/python-modules/numericalunits/default.nix11
-rw-r--r--pkgs/development/python-modules/numexpr/default.nix27
-rw-r--r--pkgs/development/python-modules/numpy-stl/default.nix23
-rw-r--r--pkgs/development/python-modules/numpy/1.nix (renamed from pkgs/development/python-modules/numpy/default.nix)159
-rw-r--r--pkgs/development/python-modules/numpy/2.nix180
-rw-r--r--pkgs/development/python-modules/numpydoc/default.nix31
-rw-r--r--pkgs/development/python-modules/numpyro/default.nix42
-rw-r--r--pkgs/development/python-modules/nunavut/default.nix28
-rw-r--r--pkgs/development/python-modules/nutils/default.nix39
-rw-r--r--pkgs/development/python-modules/nvchecker/default.nix51
-rw-r--r--pkgs/development/python-modules/nvdlib/default.nix33
-rw-r--r--pkgs/development/python-modules/nvidia-ml-py/default.nix15
-rw-r--r--pkgs/development/python-modules/nwdiag/default.nix33
-rw-r--r--pkgs/development/python-modules/nxt-python/default.nix37
-rw-r--r--pkgs/development/python-modules/oasatelematics/default.nix21
-rw-r--r--pkgs/development/python-modules/oath/default.nix17
-rw-r--r--pkgs/development/python-modules/oauth/default.nix8
-rw-r--r--pkgs/development/python-modules/oauth2/default.nix19
-rw-r--r--pkgs/development/python-modules/oauth2client/default.nix20
-rw-r--r--pkgs/development/python-modules/oauthenticator/default.nix55
-rw-r--r--pkgs/development/python-modules/oauthlib/default.nix47
-rw-r--r--pkgs/development/python-modules/obfsproxy/default.nix25
-rw-r--r--pkgs/development/python-modules/objax/default.nix53
-rw-r--r--pkgs/development/python-modules/objax/replace-deprecated-device_buffers.patch14
-rw-r--r--pkgs/development/python-modules/objgraph/default.nix27
-rw-r--r--pkgs/development/python-modules/objsize/default.nix29
-rw-r--r--pkgs/development/python-modules/obspy/default.nix23
-rw-r--r--pkgs/development/python-modules/oca-port/default.nix19
-rw-r--r--pkgs/development/python-modules/ochre/default.nix19
-rw-r--r--pkgs/development/python-modules/oci/default.nix38
-rw-r--r--pkgs/development/python-modules/ocifs/default.nix23
-rw-r--r--pkgs/development/python-modules/ocrmypdf/default.nix80
-rw-r--r--pkgs/development/python-modules/od/default.nix19
-rw-r--r--pkgs/development/python-modules/odfpy/default.nix11
-rw-r--r--pkgs/development/python-modules/odp-amsterdam/default.nix31
-rw-r--r--pkgs/development/python-modules/oelint-parser/default.nix19
-rw-r--r--pkgs/development/python-modules/oemthermostat/default.nix38
-rw-r--r--pkgs/development/python-modules/offtrac/default.nix8
-rw-r--r--pkgs/development/python-modules/ofxclient/default.nix19
-rw-r--r--pkgs/development/python-modules/ofxhome/default.nix7
-rw-r--r--pkgs/development/python-modules/ofxparse/default.nix20
-rw-r--r--pkgs/development/python-modules/ofxtools/default.nix11
-rw-r--r--pkgs/development/python-modules/okonomiyaki/default.nix62
-rw-r--r--pkgs/development/python-modules/okta/default.nix49
-rw-r--r--pkgs/development/python-modules/oldest-supported-numpy/default.nix13
-rw-r--r--pkgs/development/python-modules/olefile/default.nix22
-rw-r--r--pkgs/development/python-modules/oletools/default.nix38
-rw-r--r--pkgs/development/python-modules/ollama/default.nix6
-rw-r--r--pkgs/development/python-modules/ome-zarr/default.nix60
-rw-r--r--pkgs/development/python-modules/omegaconf/default.nix45
-rw-r--r--pkgs/development/python-modules/omemo-dr/default.nix29
-rw-r--r--pkgs/development/python-modules/omnikinverter/default.nix29
-rw-r--r--pkgs/development/python-modules/omnilogic/default.nix17
-rw-r--r--pkgs/development/python-modules/omorfi/default.nix15
-rw-r--r--pkgs/development/python-modules/omrdatasettools/default.nix41
-rw-r--r--pkgs/development/python-modules/oncalendar/default.nix11
-rw-r--r--pkgs/development/python-modules/onetimepad/default.nix9
-rw-r--r--pkgs/development/python-modules/onigurumacffi/default.nix7
-rw-r--r--pkgs/development/python-modules/onkyo-eiscp/default.nix14
-rw-r--r--pkgs/development/python-modules/online-judge-api-client/default.nix46
-rw-r--r--pkgs/development/python-modules/online-judge-tools/default.nix39
-rw-r--r--pkgs/development/python-modules/onlykey-solo-python/default.nix34
-rw-r--r--pkgs/development/python-modules/onnx/default.nix111
-rw-r--r--pkgs/development/python-modules/onnxconverter-common/default.nix28
-rw-r--r--pkgs/development/python-modules/onnxmltools/default.nix29
-rw-r--r--pkgs/development/python-modules/onnxruntime-tools/default.nix23
-rw-r--r--pkgs/development/python-modules/onnxruntime/default.nix55
-rw-r--r--pkgs/development/python-modules/onvif-zeep-async/default.nix19
-rw-r--r--pkgs/development/python-modules/onvif-zeep/default.nix23
-rw-r--r--pkgs/development/python-modules/oocsi/default.nix13
-rw-r--r--pkgs/development/python-modules/opcua-widgets/default.nix13
-rw-r--r--pkgs/development/python-modules/open-clip-torch/default.nix77
-rw-r--r--pkgs/development/python-modules/open-garage/default.nix17
-rw-r--r--pkgs/development/python-modules/open-interpreter/default.nix55
-rw-r--r--pkgs/development/python-modules/open-meteo/default.nix31
-rw-r--r--pkgs/development/python-modules/openai-triton/bin.nix97
-rw-r--r--pkgs/development/python-modules/openai-triton/binary-hashes.nix3
-rw-r--r--pkgs/development/python-modules/openai-triton/default.nix212
-rw-r--r--pkgs/development/python-modules/openai-whisper/default.nix54
-rw-r--r--pkgs/development/python-modules/openai/default.nix4
-rw-r--r--pkgs/development/python-modules/openaiauth/default.nix25
-rw-r--r--pkgs/development/python-modules/openant/default.nix40
-rw-r--r--pkgs/development/python-modules/openapi-core/default.nix90
-rw-r--r--pkgs/development/python-modules/openapi-schema-validator/default.nix39
-rw-r--r--pkgs/development/python-modules/openapi-spec-validator/default.nix41
-rw-r--r--pkgs/development/python-modules/openapi3/default.nix31
-rw-r--r--pkgs/development/python-modules/openbabel-bindings/default.nix7
-rw-r--r--pkgs/development/python-modules/opencensus-context/default.nix13
-rw-r--r--pkgs/development/python-modules/opencensus-ext-azure/default.nix25
-rw-r--r--pkgs/development/python-modules/opencensus/default.nix23
-rw-r--r--pkgs/development/python-modules/opencontainers/default.nix23
-rw-r--r--pkgs/development/python-modules/openerz-api/default.nix29
-rw-r--r--pkgs/development/python-modules/openevsewifi/default.nix29
-rw-r--r--pkgs/development/python-modules/openhomedevice/default.nix40
-rw-r--r--pkgs/development/python-modules/openidc-client/default.nix9
-rw-r--r--pkgs/development/python-modules/openllm-client/default.nix37
-rw-r--r--pkgs/development/python-modules/openllm-core/default.nix83
-rw-r--r--pkgs/development/python-modules/openllm/default.nix181
-rw-r--r--pkgs/development/python-modules/openpyxl/default.nix79
-rw-r--r--pkgs/development/python-modules/openrazer/common.nix5
-rw-r--r--pkgs/development/python-modules/openrazer/daemon.nix51
-rw-r--r--pkgs/development/python-modules/openrazer/pylib.nix48
-rw-r--r--pkgs/development/python-modules/openrgb-python/default.nix19
-rw-r--r--pkgs/development/python-modules/openrouteservice/default.nix15
-rw-r--r--pkgs/development/python-modules/opensearch-py/default.nix55
-rw-r--r--pkgs/development/python-modules/opensensemap-api/default.nix17
-rw-r--r--pkgs/development/python-modules/opensfm/default.nix94
-rw-r--r--pkgs/development/python-modules/openshift/default.nix23
-rw-r--r--pkgs/development/python-modules/opensimplex/default.nix11
-rw-r--r--pkgs/development/python-modules/openstackdocstheme/default.nix21
-rw-r--r--pkgs/development/python-modules/openstacksdk/default.nix41
-rw-r--r--pkgs/development/python-modules/openstacksdk/tests.nix86
-rw-r--r--pkgs/development/python-modules/openstep-plist/default.nix23
-rw-r--r--pkgs/development/python-modules/opentelemetry-api/default.nix42
-rw-r--r--pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-common/default.nix25
-rw-r--r--pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-grpc/default.nix33
-rw-r--r--pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-http/default.nix33
-rw-r--r--pkgs/development/python-modules/opentelemetry-exporter-otlp/default.nix23
-rw-r--r--pkgs/development/python-modules/opentelemetry-exporter-prometheus/default.nix28
-rw-r--r--pkgs/development/python-modules/opentelemetry-instrumentation-aiohttp-client/default.nix29
-rw-r--r--pkgs/development/python-modules/opentelemetry-instrumentation-asgi/default.nix27
-rw-r--r--pkgs/development/python-modules/opentelemetry-instrumentation-django/default.nix31
-rw-r--r--pkgs/development/python-modules/opentelemetry-instrumentation-fastapi/default.nix37
-rw-r--r--pkgs/development/python-modules/opentelemetry-instrumentation-flask/default.nix25
-rw-r--r--pkgs/development/python-modules/opentelemetry-instrumentation-grpc/default.nix31
-rw-r--r--pkgs/development/python-modules/opentelemetry-instrumentation-wsgi/default.nix25
-rw-r--r--pkgs/development/python-modules/opentelemetry-instrumentation/default.nix29
-rw-r--r--pkgs/development/python-modules/opentelemetry-proto/default.nix27
-rw-r--r--pkgs/development/python-modules/opentelemetry-sdk/default.nix34
-rw-r--r--pkgs/development/python-modules/opentelemetry-semantic-conventions/default.nix27
-rw-r--r--pkgs/development/python-modules/opentelemetry-test-utils/default.nix24
-rw-r--r--pkgs/development/python-modules/opentelemetry-util-http/default.nix19
-rw-r--r--pkgs/development/python-modules/opentimestamps/default.nix27
-rw-r--r--pkgs/development/python-modules/opentracing/default.nix23
-rw-r--r--pkgs/development/python-modules/opentsne/default.nix37
-rw-r--r--pkgs/development/python-modules/opentypespec/default.nix18
-rw-r--r--pkgs/development/python-modules/openusd/default.nix9
-rw-r--r--pkgs/development/python-modules/openvino/default.nix15
-rw-r--r--pkgs/development/python-modules/openwebifpy/default.nix36
-rw-r--r--pkgs/development/python-modules/openwrt-luci-rpc/default.nix19
-rw-r--r--pkgs/development/python-modules/openwrt-ubus-rpc/default.nix27
-rw-r--r--pkgs/development/python-modules/opower/default.nix14
-rw-r--r--pkgs/development/python-modules/opsdroid-get-image-size/default.nix13
-rw-r--r--pkgs/development/python-modules/opt-einsum/default.nix33
-rw-r--r--pkgs/development/python-modules/optax/default.nix33
-rw-r--r--pkgs/development/python-modules/optax/tests.nix17
-rw-r--r--pkgs/development/python-modules/optimum/default.nix59
-rw-r--r--pkgs/development/python-modules/optree/default.nix55
-rw-r--r--pkgs/development/python-modules/optuna/default.nix96
-rw-r--r--pkgs/development/python-modules/opuslib/default.nix15
-rw-r--r--pkgs/development/python-modules/opytimark/default.nix27
-rw-r--r--pkgs/development/python-modules/oracledb/default.nix4
-rw-r--r--pkgs/development/python-modules/oralb-ble/default.nix33
-rw-r--r--pkgs/development/python-modules/orange-canvas-core/default.nix41
-rw-r--r--pkgs/development/python-modules/orange-widget-base/default.nix37
-rw-r--r--pkgs/development/python-modules/orange3/default.nix156
-rw-r--r--pkgs/development/python-modules/oras/default.nix4
-rw-r--r--pkgs/development/python-modules/orbax-checkpoint/default.nix4
-rw-r--r--pkgs/development/python-modules/ordered-set/default.nix27
-rw-r--r--pkgs/development/python-modules/orderedmultidict/default.nix17
-rw-r--r--pkgs/development/python-modules/orderedset/default.nix8
-rw-r--r--pkgs/development/python-modules/orgparse/default.nix6
-rw-r--r--pkgs/development/python-modules/orjson/default.nix82
-rw-r--r--pkgs/development/python-modules/orm/default.nix25
-rw-r--r--pkgs/development/python-modules/ormar/default.nix117
-rw-r--r--pkgs/development/python-modules/orvibo/default.nix7
-rw-r--r--pkgs/development/python-modules/os-service-types/default.nix18
-rw-r--r--pkgs/development/python-modules/os-service-types/tests.nix15
-rw-r--r--pkgs/development/python-modules/osc-diagram/default.nix16
-rw-r--r--pkgs/development/python-modules/osc-lib/default.nix29
-rw-r--r--pkgs/development/python-modules/osc-sdk-python/default.nix34
-rw-r--r--pkgs/development/python-modules/osc/default.nix42
-rw-r--r--pkgs/development/python-modules/oscpy/default.nix10
-rw-r--r--pkgs/development/python-modules/oscrypto/default.nix31
-rw-r--r--pkgs/development/python-modules/oscscreen/default.nix12
-rw-r--r--pkgs/development/python-modules/oset/default.nix7
-rw-r--r--pkgs/development/python-modules/oslo-concurrency/default.nix33
-rw-r--r--pkgs/development/python-modules/oslo-config/default.nix27
-rw-r--r--pkgs/development/python-modules/oslo-config/tests.nix21
-rw-r--r--pkgs/development/python-modules/oslo-context/default.nix10
-rw-r--r--pkgs/development/python-modules/oslo-db/default.nix41
-rw-r--r--pkgs/development/python-modules/oslo-i18n/default.nix17
-rw-r--r--pkgs/development/python-modules/oslo-log/default.nix43
-rw-r--r--pkgs/development/python-modules/oslo-serialization/default.nix30
-rw-r--r--pkgs/development/python-modules/oslo-utils/default.nix49
-rw-r--r--pkgs/development/python-modules/oslotest/default.nix19
-rw-r--r--pkgs/development/python-modules/oslotest/tests.nix9
-rw-r--r--pkgs/development/python-modules/osmnx/default.nix46
-rw-r--r--pkgs/development/python-modules/osmpythontools/default.nix25
-rw-r--r--pkgs/development/python-modules/ospd/default.nix31
-rw-r--r--pkgs/development/python-modules/osqp/default.nix68
-rw-r--r--pkgs/development/python-modules/oss2/default.nix35
-rw-r--r--pkgs/development/python-modules/ossfs/default.nix23
-rw-r--r--pkgs/development/python-modules/ots-python/default.nix27
-rw-r--r--pkgs/development/python-modules/outcome/default.nix27
-rw-r--r--pkgs/development/python-modules/outlines/default.nix43
-rw-r--r--pkgs/development/python-modules/outspin/default.nix32
-rw-r--r--pkgs/development/python-modules/overly/default.nix19
-rw-r--r--pkgs/development/python-modules/overpy/default.nix21
-rw-r--r--pkgs/development/python-modules/overrides/default.nix27
-rw-r--r--pkgs/development/python-modules/ovh/default.nix29
-rw-r--r--pkgs/development/python-modules/ovmfvartool/default.nix12
-rw-r--r--pkgs/development/python-modules/owslib/default.nix57
-rw-r--r--pkgs/development/python-modules/oyaml/default.nix25
-rw-r--r--pkgs/development/python-modules/p1monitor/default.nix29
-rw-r--r--pkgs/development/python-modules/pa-ringbuffer/default.nix6
-rw-r--r--pkgs/development/python-modules/packageurl-python/default.nix32
-rw-r--r--pkgs/development/python-modules/packaging/default.nix36
-rw-r--r--pkgs/development/python-modules/packbits/default.nix17
-rw-r--r--pkgs/development/python-modules/packet-python/default.nix23
-rw-r--r--pkgs/development/python-modules/packvers/default.nix28
-rw-r--r--pkgs/development/python-modules/pad4pi/default.nix7
-rw-r--r--pkgs/development/python-modules/paddle-bfloat/default.nix19
-rw-r--r--pkgs/development/python-modules/paddle2onnx/default.nix35
-rw-r--r--pkgs/development/python-modules/paddleocr/default.nix67
-rw-r--r--pkgs/development/python-modules/paddlepaddle/default.nix96
-rw-r--r--pkgs/development/python-modules/pagelabels/default.nix9
-rw-r--r--pkgs/development/python-modules/paginate/default.nix29
-rw-r--r--pkgs/development/python-modules/paho-mqtt/default.nix30
-rw-r--r--pkgs/development/python-modules/palace/default.nix23
-rw-r--r--pkgs/development/python-modules/palettable/default.nix21
-rw-r--r--pkgs/development/python-modules/pallets-sphinx-themes/default.nix17
-rw-r--r--pkgs/development/python-modules/pamela/default.nix10
-rw-r--r--pkgs/development/python-modules/pamqp/default.nix21
-rw-r--r--pkgs/development/python-modules/panacotta/default.nix13
-rw-r--r--pkgs/development/python-modules/panasonic-viera/default.nix25
-rw-r--r--pkgs/development/python-modules/pandas-datareader/default.nix34
-rw-r--r--pkgs/development/python-modules/pandas-stubs/default.nix81
-rw-r--r--pkgs/development/python-modules/pandas/default.nix491
-rw-r--r--pkgs/development/python-modules/pandoc-attributes/default.nix15
-rw-r--r--pkgs/development/python-modules/pandoc-xnos/default.nix21
-rw-r--r--pkgs/development/python-modules/pandocfilters/default.nix10
-rw-r--r--pkgs/development/python-modules/panel/default.nix45
-rw-r--r--pkgs/development/python-modules/panflute/default.nix19
-rw-r--r--pkgs/development/python-modules/panphon/default.nix44
-rw-r--r--pkgs/development/python-modules/paperbush/default.nix29
-rw-r--r--pkgs/development/python-modules/papermill/default.nix115
-rw-r--r--pkgs/development/python-modules/papis-python-rofi/default.nix8
-rw-r--r--pkgs/development/python-modules/papis/default.nix82
-rw-r--r--pkgs/development/python-modules/para/default.nix13
-rw-r--r--pkgs/development/python-modules/param/default.nix36
-rw-r--r--pkgs/development/python-modules/parameter-expansion-patched/default.nix25
-rw-r--r--pkgs/development/python-modules/parameterized/default.nix27
-rw-r--r--pkgs/development/python-modules/parametrize-from-file/default.nix37
-rw-r--r--pkgs/development/python-modules/paramiko/default.nix43
-rw-r--r--pkgs/development/python-modules/paramz/default.nix21
-rw-r--r--pkgs/development/python-modules/paranoid-crypto/default.nix31
-rw-r--r--pkgs/development/python-modules/parfive/default.nix37
-rw-r--r--pkgs/development/python-modules/parse-type/default.nix17
-rw-r--r--pkgs/development/python-modules/parse/default.nix22
-rw-r--r--pkgs/development/python-modules/parsedatetime/default.nix13
-rw-r--r--pkgs/development/python-modules/parsedmarc/default.nix79
-rw-r--r--pkgs/development/python-modules/parsel/default.nix27
-rw-r--r--pkgs/development/python-modules/parsimonious/default.nix21
-rw-r--r--pkgs/development/python-modules/parsley/default.nix9
-rw-r--r--pkgs/development/python-modules/parso/default.nix16
-rw-r--r--pkgs/development/python-modules/parsy/default.nix19
-rw-r--r--pkgs/development/python-modules/partd/default.nix43
-rw-r--r--pkgs/development/python-modules/particle/default.nix36
-rw-r--r--pkgs/development/python-modules/parts/default.nix21
-rw-r--r--pkgs/development/python-modules/parver/default.nix31
-rw-r--r--pkgs/development/python-modules/pasimple/default.nix17
-rw-r--r--pkgs/development/python-modules/passlib/default.nix39
-rw-r--r--pkgs/development/python-modules/paste/default.nix29
-rw-r--r--pkgs/development/python-modules/pastedeploy/default.nix19
-rw-r--r--pkgs/development/python-modules/pastel/default.nix7
-rw-r--r--pkgs/development/python-modules/pastescript/default.nix35
-rw-r--r--pkgs/development/python-modules/patator/default.nix37
-rw-r--r--pkgs/development/python-modules/patch-ng/default.nix10
-rw-r--r--pkgs/development/python-modules/patch/default.nix10
-rw-r--r--pkgs/development/python-modules/path-and-address/default.nix12
-rw-r--r--pkgs/development/python-modules/path/default.nix21
-rw-r--r--pkgs/development/python-modules/pathable/default.nix25
-rw-r--r--pkgs/development/python-modules/pathlib-abc/default.nix29
-rw-r--r--pkgs/development/python-modules/pathlib/default.nix27
-rw-r--r--pkgs/development/python-modules/pathlib2/default.nix31
-rw-r--r--pkgs/development/python-modules/pathos/default.nix21
-rw-r--r--pkgs/development/python-modules/pathspec/default.nix44
-rw-r--r--pkgs/development/python-modules/pathtools/default.nix10
-rw-r--r--pkgs/development/python-modules/pathvalidate/default.nix19
-rw-r--r--pkgs/development/python-modules/pathy/default.nix39
-rw-r--r--pkgs/development/python-modules/patiencediff/default.nix29
-rw-r--r--pkgs/development/python-modules/patool/default.nix41
-rw-r--r--pkgs/development/python-modules/patrowl4py/default.nix43
-rw-r--r--pkgs/development/python-modules/patsy/default.nix32
-rw-r--r--pkgs/development/python-modules/paver/default.nix31
-rw-r--r--pkgs/development/python-modules/paypal-checkout-serversdk/default.nix21
-rw-r--r--pkgs/development/python-modules/paypalhttp/default.nix30
-rw-r--r--pkgs/development/python-modules/paypalrestsdk/default.nix25
-rw-r--r--pkgs/development/python-modules/pbkdf2/default.nix6
-rw-r--r--pkgs/development/python-modules/pbr/default.nix15
-rw-r--r--pkgs/development/python-modules/pbr/tests.nix21
-rw-r--r--pkgs/development/python-modules/pbs-installer/default.nix33
-rw-r--r--pkgs/development/python-modules/pc-ble-driver-py/default.nix33
-rw-r--r--pkgs/development/python-modules/pcapy-ng/default.nix35
-rw-r--r--pkgs/development/python-modules/pcbnewtransition/default.nix30
-rw-r--r--pkgs/development/python-modules/pcffont/default.nix45
-rw-r--r--pkgs/development/python-modules/pcodedmp/default.nix15
-rw-r--r--pkgs/development/python-modules/pcpp/default.nix11
-rw-r--r--pkgs/development/python-modules/pdb2pqr/default.nix37
-rw-r--r--pkgs/development/python-modules/pdbfixer/default.nix21
-rw-r--r--pkgs/development/python-modules/pdf2docx/default.nix38
-rw-r--r--pkgs/development/python-modules/pdf2image/default.nix21
-rw-r--r--pkgs/development/python-modules/pdfkit/default.nix8
-rw-r--r--pkgs/development/python-modules/pdfminer-six/default.nix51
-rw-r--r--pkgs/development/python-modules/pdfplumber/default.nix43
-rw-r--r--pkgs/development/python-modules/pdfrw/default.nix10
-rw-r--r--pkgs/development/python-modules/pdfrw2/default.nix19
-rw-r--r--pkgs/development/python-modules/pdftotext/default.nix7
-rw-r--r--pkgs/development/python-modules/pdfx/default.nix14
-rw-r--r--pkgs/development/python-modules/pdm-backend/default.nix47
-rw-r--r--pkgs/development/python-modules/pdm-pep517/default.nix17
-rw-r--r--pkgs/development/python-modules/pdoc-pyo3-sample-library/default.nix23
-rw-r--r--pkgs/development/python-modules/pdoc/default.nix33
-rw-r--r--pkgs/development/python-modules/pdoc3/default.nix25
-rw-r--r--pkgs/development/python-modules/pdunehd/default.nix15
-rw-r--r--pkgs/development/python-modules/peaqevcore/default.nix4
-rw-r--r--pkgs/development/python-modules/pebble/default.nix21
-rw-r--r--pkgs/development/python-modules/pecan/default.nix39
-rw-r--r--pkgs/development/python-modules/peco/default.nix32
-rw-r--r--pkgs/development/python-modules/peewee-migrate/default.nix39
-rw-r--r--pkgs/development/python-modules/peewee/default.nix55
-rw-r--r--pkgs/development/python-modules/pefile/default.nix36
-rw-r--r--pkgs/development/python-modules/peft/default.nix35
-rw-r--r--pkgs/development/python-modules/pegen/default.nix41
-rw-r--r--pkgs/development/python-modules/pelican/default.nix83
-rw-r--r--pkgs/development/python-modules/pem/default.nix31
-rw-r--r--pkgs/development/python-modules/pencompy/default.nix13
-rw-r--r--pkgs/development/python-modules/pendulum/default.nix80
-rw-r--r--pkgs/development/python-modules/pep440/default.nix25
-rw-r--r--pkgs/development/python-modules/pep517/default.nix42
-rw-r--r--pkgs/development/python-modules/pep8-naming/default.nix27
-rw-r--r--pkgs/development/python-modules/pep8/default.nix8
-rw-r--r--pkgs/development/python-modules/peppercorn/default.nix10
-rw-r--r--pkgs/development/python-modules/percol/default.nix7
-rw-r--r--pkgs/development/python-modules/perfplot/default.nix35
-rw-r--r--pkgs/development/python-modules/periodictable/default.nix23
-rw-r--r--pkgs/development/python-modules/periodiq/default.nix30
-rw-r--r--pkgs/development/python-modules/permissionedforms/default.nix19
-rw-r--r--pkgs/development/python-modules/persim/default.nix37
-rw-r--r--pkgs/development/python-modules/persist-queue/default.nix15
-rw-r--r--pkgs/development/python-modules/persistent/default.nix42
-rw-r--r--pkgs/development/python-modules/persisting-theory/default.nix13
-rw-r--r--pkgs/development/python-modules/pescea/default.nix27
-rw-r--r--pkgs/development/python-modules/pettingzoo/default.nix132
-rw-r--r--pkgs/development/python-modules/pex/default.nix28
-rw-r--r--pkgs/development/python-modules/pexif/default.nix10
-rw-r--r--pkgs/development/python-modules/pexpect/default.nix22
-rw-r--r--pkgs/development/python-modules/pfzy/default.nix19
-rw-r--r--pkgs/development/python-modules/pg8000/default.nix33
-rw-r--r--pkgs/development/python-modules/pgcli/default.nix60
-rw-r--r--pkgs/development/python-modules/pglast/default.nix21
-rw-r--r--pkgs/development/python-modules/pgmpy/default.nix60
-rw-r--r--pkgs/development/python-modules/pgpdump/default.nix8
-rw-r--r--pkgs/development/python-modules/pgpy/default.nix30
-rw-r--r--pkgs/development/python-modules/pgsanity/default.nix18
-rw-r--r--pkgs/development/python-modules/pgspecial/default.nix34
-rw-r--r--pkgs/development/python-modules/pgvector/default.nix37
-rw-r--r--pkgs/development/python-modules/phe/default.nix53
-rw-r--r--pkgs/development/python-modules/phik/default.nix83
-rw-r--r--pkgs/development/python-modules/phone-modem/default.nix15
-rw-r--r--pkgs/development/python-modules/phonemizer/default.nix27
-rw-r--r--pkgs/development/python-modules/phonenumbers/default.nix27
-rw-r--r--pkgs/development/python-modules/phonopy/default.nix41
-rw-r--r--pkgs/development/python-modules/photutils/default.nix89
-rw-r--r--pkgs/development/python-modules/phpserialize/default.nix8
-rw-r--r--pkgs/development/python-modules/phunspell/default.nix53
-rw-r--r--pkgs/development/python-modules/phx-class-registry/default.nix24
-rw-r--r--pkgs/development/python-modules/pi1wire/default.nix13
-rw-r--r--pkgs/development/python-modules/piano-transcription-inference/default.nix25
-rw-r--r--pkgs/development/python-modules/piccata/default.nix19
-rw-r--r--pkgs/development/python-modules/piccolo-theme/default.nix30
-rw-r--r--pkgs/development/python-modules/pickleshare/default.nix15
-rw-r--r--pkgs/development/python-modules/picobox/default.nix21
-rw-r--r--pkgs/development/python-modules/picos/default.nix21
-rw-r--r--pkgs/development/python-modules/picosvg/default.nix27
-rw-r--r--pkgs/development/python-modules/pid/default.nix10
-rw-r--r--pkgs/development/python-modules/piep/default.nix29
-rw-r--r--pkgs/development/python-modules/piexif/default.nix8
-rw-r--r--pkgs/development/python-modules/pijuice/default.nix18
-rw-r--r--pkgs/development/python-modules/pika-pool/default.nix9
-rw-r--r--pkgs/development/python-modules/pika/default.nix29
-rw-r--r--pkgs/development/python-modules/pikepdf/default.nix61
-rw-r--r--pkgs/development/python-modules/pilkit/default.nix31
-rw-r--r--pkgs/development/python-modules/pillow-heif/default.nix101
-rw-r--r--pkgs/development/python-modules/pillow-jpls/default.nix71
-rw-r--r--pkgs/development/python-modules/pillow-simd/default.nix85
-rw-r--r--pkgs/development/python-modules/pillow/default.nix107
-rw-r--r--pkgs/development/python-modules/pillow/generic.nix127
-rw-r--r--pkgs/development/python-modules/pillowfight/default.nix10
-rw-r--r--pkgs/development/python-modules/pims/default.nix27
-rw-r--r--pkgs/development/python-modules/pinboard/default.nix8
-rw-r--r--pkgs/development/python-modules/pinecone-client/default.nix49
-rw-r--r--pkgs/development/python-modules/pins/default.nix79
-rw-r--r--pkgs/development/python-modules/pint-pandas/default.nix25
-rw-r--r--pkgs/development/python-modules/pint/default.nix54
-rw-r--r--pkgs/development/python-modules/pip-api/default.nix31
-rw-r--r--pkgs/development/python-modules/pip-requirements-parser/default.nix29
-rw-r--r--pkgs/development/python-modules/pip-system-certs/default.nix20
-rw-r--r--pkgs/development/python-modules/pip-tools/default.nix45
-rw-r--r--pkgs/development/python-modules/pip/default.nix72
-rw-r--r--pkgs/development/python-modules/pipdate/default.nix31
-rw-r--r--pkgs/development/python-modules/pipdeptree/default.nix10
-rw-r--r--pkgs/development/python-modules/pipenv-poetry-migrate/default.nix31
-rw-r--r--pkgs/development/python-modules/piper-phonemize/default.nix15
-rw-r--r--pkgs/development/python-modules/pipetools/default.nix32
-rw-r--r--pkgs/development/python-modules/pipx/default.nix55
-rw-r--r--pkgs/development/python-modules/pivy/default.nix39
-rw-r--r--pkgs/development/python-modules/pixcat/default.nix17
-rw-r--r--pkgs/development/python-modules/pixel-font-builder/default.nix59
-rw-r--r--pkgs/development/python-modules/pixel-ring/default.nix15
-rw-r--r--pkgs/development/python-modules/pixelmatch/default.nix29
-rw-r--r--pkgs/development/python-modules/pkce/default.nix9
-rw-r--r--pkgs/development/python-modules/pkg-about/default.nix29
-rw-r--r--pkgs/development/python-modules/pkgconfig/default.nix15
-rw-r--r--pkgs/development/python-modules/pkginfo/default.nix21
-rw-r--r--pkgs/development/python-modules/pkginfo2/default.nix19
-rw-r--r--pkgs/development/python-modules/pkgutil-resolve-name/default.nix24
-rw-r--r--pkgs/development/python-modules/pkuseg/default.nix15
-rw-r--r--pkgs/development/python-modules/pkutils/default.nix35
-rw-r--r--pkgs/development/python-modules/plac/default.nix15
-rw-r--r--pkgs/development/python-modules/plaid-python/default.nix33
-rw-r--r--pkgs/development/python-modules/plantuml-markdown/default.nix36
-rw-r--r--pkgs/development/python-modules/plantuml/default.nix11
-rw-r--r--pkgs/development/python-modules/plaster-pastedeploy/default.nix18
-rw-r--r--pkgs/development/python-modules/plaster/default.nix12
-rw-r--r--pkgs/development/python-modules/platformdirs/default.nix27
-rw-r--r--pkgs/development/python-modules/playsound/default.nix7
-rw-r--r--pkgs/development/python-modules/playwright-stealth/default.nix25
-rw-r--r--pkgs/development/python-modules/playwright/default.nix56
-rw-r--r--pkgs/development/python-modules/playwrightcapture/default.nix12
-rw-r--r--pkgs/development/python-modules/pleroma-bot/default.nix25
-rw-r--r--pkgs/development/python-modules/plexapi/default.nix29
-rw-r--r--pkgs/development/python-modules/plexauth/default.nix12
-rw-r--r--pkgs/development/python-modules/plexwebsocket/default.nix19
-rw-r--r--pkgs/development/python-modules/plone-testing/default.nix19
-rw-r--r--pkgs/development/python-modules/plotext/default.nix7
-rw-r--r--pkgs/development/python-modules/plotly/default.nix19
-rw-r--r--pkgs/development/python-modules/plotnine/default.nix10
-rw-r--r--pkgs/development/python-modules/pluggy/default.nix21
-rw-r--r--pkgs/development/python-modules/pluggy/tests.nix7
-rw-r--r--pkgs/development/python-modules/pluginbase/default.nix9
-rw-r--r--pkgs/development/python-modules/plugincode/default.nix30
-rw-r--r--pkgs/development/python-modules/plugnplay/default.nix13
-rw-r--r--pkgs/development/python-modules/plugp100/default.nix51
-rw-r--r--pkgs/development/python-modules/plugwise/default.nix4
-rw-r--r--pkgs/development/python-modules/plum-py/default.nix21
-rw-r--r--pkgs/development/python-modules/plumbum/default.nix23
-rw-r--r--pkgs/development/python-modules/pluthon/default.nix19
-rw-r--r--pkgs/development/python-modules/plux/default.nix34
-rw-r--r--pkgs/development/python-modules/ply/default.nix9
-rw-r--r--pkgs/development/python-modules/plyer/default.nix15
-rw-r--r--pkgs/development/python-modules/plyfile/default.nix34
-rw-r--r--pkgs/development/python-modules/plyplus/default.nix10
-rw-r--r--pkgs/development/python-modules/plyvel/default.nix13
-rw-r--r--pkgs/development/python-modules/pmdarima/default.nix35
-rw-r--r--pkgs/development/python-modules/pmdsky-debug-py/default.nix9
-rw-r--r--pkgs/development/python-modules/pmsensor/default.nix13
-rw-r--r--pkgs/development/python-modules/pmw/default.nix9
-rw-r--r--pkgs/development/python-modules/pnglatex/default.nix10
-rw-r--r--pkgs/development/python-modules/pocket/default.nix14
-rw-r--r--pkgs/development/python-modules/podcastparser/default.nix19
-rw-r--r--pkgs/development/python-modules/podcats/default.nix13
-rw-r--r--pkgs/development/python-modules/podman/default.nix35
-rw-r--r--pkgs/development/python-modules/poetry-core/default.nix33
-rw-r--r--pkgs/development/python-modules/poetry-dynamic-versioning/default.nix33
-rw-r--r--pkgs/development/python-modules/poetry-semver/default.nix11
-rw-r--r--pkgs/development/python-modules/polarizationsolver/default.nix17
-rw-r--r--pkgs/development/python-modules/polars/default.nix80
-rw-r--r--pkgs/development/python-modules/polib/default.nix8
-rw-r--r--pkgs/development/python-modules/policyuniverse/default.nix13
-rw-r--r--pkgs/development/python-modules/polling/default.nix19
-rw-r--r--pkgs/development/python-modules/polygon3/default.nix9
-rw-r--r--pkgs/development/python-modules/polyline/default.nix23
-rw-r--r--pkgs/development/python-modules/polyswarm-api/default.nix6
-rw-r--r--pkgs/development/python-modules/pomegranate/default.nix33
-rw-r--r--pkgs/development/python-modules/pontos/default.nix41
-rw-r--r--pkgs/development/python-modules/pony/default.nix32
-rw-r--r--pkgs/development/python-modules/ponywhoosh/default.nix8
-rw-r--r--pkgs/development/python-modules/pooch/default.nix41
-rw-r--r--pkgs/development/python-modules/pook/default.nix35
-rw-r--r--pkgs/development/python-modules/poolsense/default.nix9
-rw-r--r--pkgs/development/python-modules/poppler-qt5/default.nix39
-rw-r--r--pkgs/development/python-modules/port-for/default.nix17
-rw-r--r--pkgs/development/python-modules/portalocker/default.nix41
-rw-r--r--pkgs/development/python-modules/portend/default.nix16
-rw-r--r--pkgs/development/python-modules/portion/default.nix44
-rw-r--r--pkgs/development/python-modules/portpicker/default.nix25
-rw-r--r--pkgs/development/python-modules/posix-ipc/default.nix13
-rw-r--r--pkgs/development/python-modules/posthog/default.nix31
-rw-r--r--pkgs/development/python-modules/pot/default.nix60
-rw-r--r--pkgs/development/python-modules/potr/default.nix9
-rw-r--r--pkgs/development/python-modules/power/default.nix10
-rw-r--r--pkgs/development/python-modules/powerline-mem-segment/default.nix11
-rw-r--r--pkgs/development/python-modules/powerline/default.nix29
-rw-r--r--pkgs/development/python-modules/pox/default.nix13
-rw-r--r--pkgs/development/python-modules/poyo/default.nix10
-rw-r--r--pkgs/development/python-modules/ppdeep/default.nix7
-rw-r--r--pkgs/development/python-modules/ppft/default.nix23
-rw-r--r--pkgs/development/python-modules/pplpy/default.nix37
-rw-r--r--pkgs/development/python-modules/pprintpp/default.nix2
-rw-r--r--pkgs/development/python-modules/pproxy/default.nix23
-rw-r--r--pkgs/development/python-modules/ppscore/default.nix27
-rw-r--r--pkgs/development/python-modules/pq/default.nix9
-rw-r--r--pkgs/development/python-modules/prance/default.nix41
-rw-r--r--pkgs/development/python-modules/praw/default.nix31
-rw-r--r--pkgs/development/python-modules/prawcore/default.nix39
-rw-r--r--pkgs/development/python-modules/prayer-times-calculator/default.nix25
-rw-r--r--pkgs/development/python-modules/pre-commit-hooks/default.nix29
-rw-r--r--pkgs/development/python-modules/precis-i18n/default.nix13
-rw-r--r--pkgs/development/python-modules/prefixed/default.nix19
-rw-r--r--pkgs/development/python-modules/preggy/default.nix20
-rw-r--r--pkgs/development/python-modules/premailer/default.nix27
-rw-r--r--pkgs/development/python-modules/preprocess-cancellation/default.nix25
-rw-r--r--pkgs/development/python-modules/preshed/default.nix31
-rw-r--r--pkgs/development/python-modules/pretend/default.nix19
-rw-r--r--pkgs/development/python-modules/pretty-errors/default.nix39
-rw-r--r--pkgs/development/python-modules/prettytable/default.nix34
-rw-r--r--pkgs/development/python-modules/primecountpy/default.nix25
-rw-r--r--pkgs/development/python-modules/primepy/default.nix11
-rw-r--r--pkgs/development/python-modules/primer3/default.nix29
-rw-r--r--pkgs/development/python-modules/priority/default.nix19
-rw-r--r--pkgs/development/python-modules/prisma/default.nix43
-rw-r--r--pkgs/development/python-modules/prison/default.nix19
-rw-r--r--pkgs/development/python-modules/private-gpt/default.nix96
-rw-r--r--pkgs/development/python-modules/proboscis/default.nix21
-rw-r--r--pkgs/development/python-modules/process-tests/default.nix14
-rw-r--r--pkgs/development/python-modules/procmon-parser/default.nix21
-rw-r--r--pkgs/development/python-modules/prodict/default.nix17
-rw-r--r--pkgs/development/python-modules/proglog/default.nix7
-rw-r--r--pkgs/development/python-modules/progress/default.nix9
-rw-r--r--pkgs/development/python-modules/progressbar/default.nix6
-rw-r--r--pkgs/development/python-modules/progressbar2/default.nix29
-rw-r--r--pkgs/development/python-modules/progressbar33/default.nix6
-rw-r--r--pkgs/development/python-modules/prometheus-api-client/default.nix40
-rw-r--r--pkgs/development/python-modules/prometheus-client/default.nix32
-rw-r--r--pkgs/development/python-modules/prometheus-flask-exporter/default.nix18
-rw-r--r--pkgs/development/python-modules/prometheus-pandas/default.nix21
-rw-r--r--pkgs/development/python-modules/prometrix/default.nix65
-rw-r--r--pkgs/development/python-modules/promise/default.nix31
-rw-r--r--pkgs/development/python-modules/prompt-toolkit/1.nix28
-rw-r--r--pkgs/development/python-modules/prompt-toolkit/default.nix27
-rw-r--r--pkgs/development/python-modules/prompthub-py/default.nix21
-rw-r--r--pkgs/development/python-modules/property-manager/default.nix22
-rw-r--r--pkgs/development/python-modules/prophet/default.nix38
-rw-r--r--pkgs/development/python-modules/propka/default.nix27
-rw-r--r--pkgs/development/python-modules/proto-plus/default.nix23
-rw-r--r--pkgs/development/python-modules/protobuf/3.nix23
-rw-r--r--pkgs/development/python-modules/protobuf/default.nix86
-rw-r--r--pkgs/development/python-modules/protobuf3-to-dict/default.nix15
-rw-r--r--pkgs/development/python-modules/proton-client/default.nix27
-rw-r--r--pkgs/development/python-modules/proton-core/default.nix31
-rw-r--r--pkgs/development/python-modules/proton-keyring-linux-secretservice/default.nix27
-rw-r--r--pkgs/development/python-modules/proton-keyring-linux/default.nix25
-rw-r--r--pkgs/development/python-modules/proton-vpn-api-core/default.nix35
-rw-r--r--pkgs/development/python-modules/proton-vpn-connection/default.nix29
-rw-r--r--pkgs/development/python-modules/proton-vpn-killswitch-network-manager/default.nix29
-rw-r--r--pkgs/development/python-modules/proton-vpn-killswitch/default.nix27
-rw-r--r--pkgs/development/python-modules/proton-vpn-logger/default.nix27
-rw-r--r--pkgs/development/python-modules/proton-vpn-network-manager-openvpn/default.nix23
-rw-r--r--pkgs/development/python-modules/proton-vpn-network-manager/default.nix27
-rw-r--r--pkgs/development/python-modules/proton-vpn-session/default.nix35
-rw-r--r--pkgs/development/python-modules/protonup-ng/default.nix19
-rw-r--r--pkgs/development/python-modules/protonvpn-nm-lib/default.nix41
-rw-r--r--pkgs/development/python-modules/prov/default.nix29
-rw-r--r--pkgs/development/python-modules/prox-tv/default.nix30
-rw-r--r--pkgs/development/python-modules/proxmoxer/default.nix23
-rw-r--r--pkgs/development/python-modules/proxy-db/default.nix27
-rw-r--r--pkgs/development/python-modules/proxy-py/default.nix5
-rw-r--r--pkgs/development/python-modules/proxy-tools/default.nix13
-rw-r--r--pkgs/development/python-modules/psautohint/default.nix26
-rw-r--r--pkgs/development/python-modules/pscript/default.nix17
-rw-r--r--pkgs/development/python-modules/psd-tools/default.nix43
-rw-r--r--pkgs/development/python-modules/psrpcore/default.nix2
-rw-r--r--pkgs/development/python-modules/psutil-home-assistant/default.nix20
-rw-r--r--pkgs/development/python-modules/psutil/default.nix38
-rw-r--r--pkgs/development/python-modules/psychrolib/default.nix21
-rw-r--r--pkgs/development/python-modules/psycopg/ctypes.patch9
-rw-r--r--pkgs/development/python-modules/psycopg/default.nix120
-rw-r--r--pkgs/development/python-modules/psycopg2/default.nix53
-rw-r--r--pkgs/development/python-modules/psycopg2cffi/default.nix68
-rw-r--r--pkgs/development/python-modules/psygnal/default.nix37
-rw-r--r--pkgs/development/python-modules/ptable/default.nix9
-rw-r--r--pkgs/development/python-modules/ptest/default.nix10
-rw-r--r--pkgs/development/python-modules/ptpython/default.nix33
-rw-r--r--pkgs/development/python-modules/ptyprocess/default.nix37
-rw-r--r--pkgs/development/python-modules/publicsuffixlist/default.nix4
-rw-r--r--pkgs/development/python-modules/pubnub/default.nix4
-rw-r--r--pkgs/development/python-modules/pubnubsub-handler/default.nix13
-rw-r--r--pkgs/development/python-modules/pudb/default.nix27
-rw-r--r--pkgs/development/python-modules/pueblo/default.nix17
-rw-r--r--pkgs/development/python-modules/pulp/default.nix25
-rw-r--r--pkgs/development/python-modules/pulsar-client/default.nix45
-rw-r--r--pkgs/development/python-modules/pulsar/default.nix27
-rw-r--r--pkgs/development/python-modules/pulsectl/default.nix25
-rw-r--r--pkgs/development/python-modules/pulumi-aws/default.nix32
-rw-r--r--pkgs/development/python-modules/pulumi/default.nix29
-rw-r--r--pkgs/development/python-modules/pure-cdb/default.nix8
-rw-r--r--pkgs/development/python-modules/pure-eval/default.nix31
-rw-r--r--pkgs/development/python-modules/pure-pcapy3/default.nix13
-rw-r--r--pkgs/development/python-modules/pure-protobuf/default.nix35
-rw-r--r--pkgs/development/python-modules/pure-python-adb-homeassistant/default.nix7
-rw-r--r--pkgs/development/python-modules/pure-python-adb/default.nix28
-rw-r--r--pkgs/development/python-modules/puremagic/default.nix4
-rw-r--r--pkgs/development/python-modules/purepng/default.nix21
-rw-r--r--pkgs/development/python-modules/purl/default.nix23
-rw-r--r--pkgs/development/python-modules/push-receiver/default.nix15
-rw-r--r--pkgs/development/python-modules/pushbullet-py/default.nix51
-rw-r--r--pkgs/development/python-modules/pushover-complete/default.nix23
-rw-r--r--pkgs/development/python-modules/pvextractor/default.nix36
-rw-r--r--pkgs/development/python-modules/pvlib/default.nix57
-rw-r--r--pkgs/development/python-modules/pvo/default.nix33
-rw-r--r--pkgs/development/python-modules/pweave/default.nix34
-rw-r--r--pkgs/development/python-modules/pwlf/default.nix23
-rw-r--r--pkgs/development/python-modules/pwndbg/default.nix46
-rw-r--r--pkgs/development/python-modules/pwntools/default.nix59
-rw-r--r--pkgs/development/python-modules/pxml/default.nix37
-rw-r--r--pkgs/development/python-modules/py-air-control-exporter/default.nix29
-rw-r--r--pkgs/development/python-modules/py-air-control/default.nix16
-rw-r--r--pkgs/development/python-modules/py-aosmith/default.nix19
-rw-r--r--pkgs/development/python-modules/py-bip39-bindings/default.nix36
-rw-r--r--pkgs/development/python-modules/py-canary/default.nix35
-rw-r--r--pkgs/development/python-modules/py-cid/default.nix23
-rw-r--r--pkgs/development/python-modules/py-cpuinfo/default.nix31
-rw-r--r--pkgs/development/python-modules/py-deprecate/default.nix18
-rw-r--r--pkgs/development/python-modules/py-desmume/default.nix39
-rw-r--r--pkgs/development/python-modules/py-dmidecode/default.nix25
-rw-r--r--pkgs/development/python-modules/py-dormakaba-dkey/default.nix25
-rw-r--r--pkgs/development/python-modules/py-ecc/default.nix29
-rw-r--r--pkgs/development/python-modules/py-eth-sig-utils/default.nix17
-rw-r--r--pkgs/development/python-modules/py-expression-eval/default.nix3
-rw-r--r--pkgs/development/python-modules/py-libzfs/default.nix26
-rw-r--r--pkgs/development/python-modules/py-lru-cache/default.nix10
-rw-r--r--pkgs/development/python-modules/py-multiaddr/default.nix32
-rw-r--r--pkgs/development/python-modules/py-multibase/default.nix25
-rw-r--r--pkgs/development/python-modules/py-multicodec/default.nix25
-rw-r--r--pkgs/development/python-modules/py-multihash/default.nix28
-rw-r--r--pkgs/development/python-modules/py-nextbusnext/default.nix25
-rw-r--r--pkgs/development/python-modules/py-nightscout/default.nix26
-rw-r--r--pkgs/development/python-modules/py-partiql-parser/default.nix25
-rw-r--r--pkgs/development/python-modules/py-pdf-parser/default.nix21
-rw-r--r--pkgs/development/python-modules/py-radix-sr/default.nix16
-rw-r--r--pkgs/development/python-modules/py-scrypt/default.nix11
-rw-r--r--pkgs/development/python-modules/py-serializable/default.nix2
-rw-r--r--pkgs/development/python-modules/py-slvs/default.nix50
-rw-r--r--pkgs/development/python-modules/py-sneakers/default.nix13
-rw-r--r--pkgs/development/python-modules/py-sonic/default.nix9
-rw-r--r--pkgs/development/python-modules/py-sr25519-bindings/default.nix34
-rw-r--r--pkgs/development/python-modules/py-stringmatching/default.nix29
-rw-r--r--pkgs/development/python-modules/py-synologydsm-api/default.nix31
-rw-r--r--pkgs/development/python-modules/py-tes/default.nix25
-rw-r--r--pkgs/development/python-modules/py-ubjson/default.nix21
-rw-r--r--pkgs/development/python-modules/py-vapid/default.nix26
-rw-r--r--pkgs/development/python-modules/py-zabbix/default.nix31
-rw-r--r--pkgs/development/python-modules/py/default.nix11
-rw-r--r--pkgs/development/python-modules/py17track/default.nix33
-rw-r--r--pkgs/development/python-modules/py2bit/default.nix11
-rw-r--r--pkgs/development/python-modules/py3buddy/default.nix10
-rw-r--r--pkgs/development/python-modules/py3dns/default.nix8
-rw-r--r--pkgs/development/python-modules/py3exiv2/default.nix21
-rw-r--r--pkgs/development/python-modules/py3langid/default.nix21
-rw-r--r--pkgs/development/python-modules/py3nvml/default.nix18
-rw-r--r--pkgs/development/python-modules/py3rijndael/default.nix13
-rw-r--r--pkgs/development/python-modules/py3status/default.nix53
-rw-r--r--pkgs/development/python-modules/py4j/default.nix8
-rw-r--r--pkgs/development/python-modules/py65/default.nix36
-rw-r--r--pkgs/development/python-modules/pyTelegramBotAPI/default.nix4
-rw-r--r--pkgs/development/python-modules/pyacaia-async/default.nix28
-rw-r--r--pkgs/development/python-modules/pyacoustid/default.nix18
-rw-r--r--pkgs/development/python-modules/pyaehw4a1/default.nix9
-rw-r--r--pkgs/development/python-modules/pyaes/default.nix6
-rw-r--r--pkgs/development/python-modules/pyaftership/default.nix25
-rw-r--r--pkgs/development/python-modules/pyahocorasick/default.nix20
-rw-r--r--pkgs/development/python-modules/pyairnow/default.nix23
-rw-r--r--pkgs/development/python-modules/pyairvisual/default.nix37
-rw-r--r--pkgs/development/python-modules/pyais/default.nix49
-rw-r--r--pkgs/development/python-modules/pyalgotrade/default.nix43
-rw-r--r--pkgs/development/python-modules/pyamg/default.nix25
-rw-r--r--pkgs/development/python-modules/pyaml/default.nix25
-rw-r--r--pkgs/development/python-modules/pyannotate/default.nix19
-rw-r--r--pkgs/development/python-modules/pyannote-audio/default.nix59
-rw-r--r--pkgs/development/python-modules/pyannote-core/default.nix42
-rw-r--r--pkgs/development/python-modules/pyannote-database/default.nix43
-rw-r--r--pkgs/development/python-modules/pyannote-metrics/default.nix58
-rw-r--r--pkgs/development/python-modules/pyannote-pipeline/default.nix48
-rw-r--r--pkgs/development/python-modules/pyarlo/default.nix17
-rw-r--r--pkgs/development/python-modules/pyarr/default.nix29
-rw-r--r--pkgs/development/python-modules/pyarrow-hotfix/default.nix19
-rw-r--r--pkgs/development/python-modules/pyarrow/default.nix180
-rw-r--r--pkgs/development/python-modules/pyasn/default.nix13
-rw-r--r--pkgs/development/python-modules/pyasn1-modules/default.nix48
-rw-r--r--pkgs/development/python-modules/pyasn1/default.nix19
-rw-r--r--pkgs/development/python-modules/pyasuswrt/default.nix25
-rw-r--r--pkgs/development/python-modules/pyasyncore/default.nix17
-rw-r--r--pkgs/development/python-modules/pyatag/default.nix21
-rw-r--r--pkgs/development/python-modules/pyatem/default.nix45
-rw-r--r--pkgs/development/python-modules/pyathena/default.nix55
-rw-r--r--pkgs/development/python-modules/pyatmo/default.nix39
-rw-r--r--pkgs/development/python-modules/pyatome/default.nix19
-rw-r--r--pkgs/development/python-modules/pyatspi/default.nix16
-rw-r--r--pkgs/development/python-modules/pyatv/default.nix84
-rw-r--r--pkgs/development/python-modules/pyaudio/default.nix12
-rw-r--r--pkgs/development/python-modules/pyaussiebb/default.nix27
-rw-r--r--pkgs/development/python-modules/pyautogui/default.nix34
-rw-r--r--pkgs/development/python-modules/pyavm/default.nix31
-rw-r--r--pkgs/development/python-modules/pyaxmlparser/default.nix21
-rw-r--r--pkgs/development/python-modules/pybalboa/default.nix19
-rw-r--r--pkgs/development/python-modules/pybars3/default.nix24
-rw-r--r--pkgs/development/python-modules/pybase64/default.nix19
-rw-r--r--pkgs/development/python-modules/pybids/default.nix55
-rw-r--r--pkgs/development/python-modules/pybigwig/default.nix27
-rw-r--r--pkgs/development/python-modules/pybind11/default.nix79
-rw-r--r--pkgs/development/python-modules/pybindgen/default.nix27
-rw-r--r--pkgs/development/python-modules/pyblackbird/default.nix17
-rw-r--r--pkgs/development/python-modules/pybloom-live/default.nix29
-rw-r--r--pkgs/development/python-modules/pybluez/default.nix22
-rw-r--r--pkgs/development/python-modules/pybox2d/default.nix13
-rw-r--r--pkgs/development/python-modules/pybravia/default.nix25
-rw-r--r--pkgs/development/python-modules/pybrowserid/darwin_fix.patch231
-rw-r--r--pkgs/development/python-modules/pybrowserid/default.nix36
-rw-r--r--pkgs/development/python-modules/pybrowsers/default.nix25
-rw-r--r--pkgs/development/python-modules/pybtex-docutils/default.nix25
-rw-r--r--pkgs/development/python-modules/pybtex/default.nix15
-rw-r--r--pkgs/development/python-modules/pybullet/default.nix25
-rw-r--r--pkgs/development/python-modules/pycairo/default.nix38
-rw-r--r--pkgs/development/python-modules/pycangjie/default.nix36
-rw-r--r--pkgs/development/python-modules/pycapnp/default.nix22
-rw-r--r--pkgs/development/python-modules/pycaption/default.nix31
-rw-r--r--pkgs/development/python-modules/pycardano/default.nix57
-rw-r--r--pkgs/development/python-modules/pycares/default.nix31
-rw-r--r--pkgs/development/python-modules/pycarwings2/default.nix27
-rw-r--r--pkgs/development/python-modules/pycatch22/default.nix29
-rw-r--r--pkgs/development/python-modules/pycategories/default.nix17
-rw-r--r--pkgs/development/python-modules/pycategories/infix.nix9
-rw-r--r--pkgs/development/python-modules/pycddl/default.nix42
-rw-r--r--pkgs/development/python-modules/pycdio/default.nix27
-rw-r--r--pkgs/development/python-modules/pycec/default.nix25
-rw-r--r--pkgs/development/python-modules/pycep-parser/default.nix29
-rw-r--r--pkgs/development/python-modules/pycfdns/default.nix25
-rw-r--r--pkgs/development/python-modules/pycflow2dot/default.nix21
-rw-r--r--pkgs/development/python-modules/pycfmodel/default.nix45
-rw-r--r--pkgs/development/python-modules/pychannels/default.nix9
-rw-r--r--pkgs/development/python-modules/pychart/default.nix9
-rw-r--r--pkgs/development/python-modules/pychm/default.nix11
-rw-r--r--pkgs/development/python-modules/pychromecast/default.nix23
-rw-r--r--pkgs/development/python-modules/pycketcasts/default.nix17
-rw-r--r--pkgs/development/python-modules/pyclimacell/default.nix19
-rw-r--r--pkgs/development/python-modules/pyclip/default.nix29
-rw-r--r--pkgs/development/python-modules/pyclipper/default.nix23
-rw-r--r--pkgs/development/python-modules/pycm/default.nix35
-rw-r--r--pkgs/development/python-modules/pycmarkgfm/default.nix9
-rw-r--r--pkgs/development/python-modules/pycocotools/default.nix15
-rw-r--r--pkgs/development/python-modules/pycodestyle/default.nix29
-rw-r--r--pkgs/development/python-modules/pycognito/default.nix57
-rw-r--r--pkgs/development/python-modules/pycoin/default.nix13
-rw-r--r--pkgs/development/python-modules/pycollada/default.nix13
-rw-r--r--pkgs/development/python-modules/pycomfoconnect/default.nix19
-rw-r--r--pkgs/development/python-modules/pycomm3/default.nix44
-rw-r--r--pkgs/development/python-modules/pycomposefile/default.nix37
-rw-r--r--pkgs/development/python-modules/pycontracts/default.nix19
-rw-r--r--pkgs/development/python-modules/pycontrol4/default.nix23
-rw-r--r--pkgs/development/python-modules/pycookiecheat/default.nix53
-rw-r--r--pkgs/development/python-modules/pycoolmasternet-async/default.nix13
-rw-r--r--pkgs/development/python-modules/pycosat/default.nix7
-rw-r--r--pkgs/development/python-modules/pycotap/default.nix6
-rw-r--r--pkgs/development/python-modules/pycountry/default.nix33
-rw-r--r--pkgs/development/python-modules/pycparser/default.nix14
-rw-r--r--pkgs/development/python-modules/pycrc/default.nix6
-rw-r--r--pkgs/development/python-modules/pycrdt-websocket/default.nix55
-rw-r--r--pkgs/development/python-modules/pycrdt/Cargo.lock141
-rw-r--r--pkgs/development/python-modules/pycrdt/default.nix42
-rw-r--r--pkgs/development/python-modules/pycritty/default.nix10
-rw-r--r--pkgs/development/python-modules/pycron/default.nix34
-rw-r--r--pkgs/development/python-modules/pycrypto/default.nix2
-rw-r--r--pkgs/development/python-modules/pycryptodome/default.nix24
-rw-r--r--pkgs/development/python-modules/pycryptodome/vectors.nix22
-rw-r--r--pkgs/development/python-modules/pycryptodomex/default.nix4
-rw-r--r--pkgs/development/python-modules/pycsdr/default.nix7
-rw-r--r--pkgs/development/python-modules/pyct/default.nix27
-rw-r--r--pkgs/development/python-modules/pyctr/default.nix19
-rw-r--r--pkgs/development/python-modules/pycuda/compyte.nix5
-rw-r--r--pkgs/development/python-modules/pycuda/default.nix44
-rw-r--r--pkgs/development/python-modules/pycups/default.nix9
-rw-r--r--pkgs/development/python-modules/pycurl/default.nix88
-rw-r--r--pkgs/development/python-modules/pycxx/default.nix12
-rw-r--r--pkgs/development/python-modules/pycycling/default.nix33
-rw-r--r--pkgs/development/python-modules/pycyphal/default.nix45
-rw-r--r--pkgs/development/python-modules/pydaikin/default.nix25
-rw-r--r--pkgs/development/python-modules/pydal/default.nix29
-rw-r--r--pkgs/development/python-modules/pydanfossair/default.nix7
-rw-r--r--pkgs/development/python-modules/pydantic-compat/default.nix29
-rw-r--r--pkgs/development/python-modules/pydantic-core/default.nix50
-rw-r--r--pkgs/development/python-modules/pydantic-extra-types/default.nix37
-rw-r--r--pkgs/development/python-modules/pydantic-scim/default.nix21
-rw-r--r--pkgs/development/python-modules/pydantic-settings/default.nix110
-rw-r--r--pkgs/development/python-modules/pydantic-yaml-0/default.nix34
-rw-r--r--pkgs/development/python-modules/pydantic/1.nix50
-rw-r--r--pkgs/development/python-modules/pydantic/default.nix82
-rw-r--r--pkgs/development/python-modules/pydata-google-auth/default.nix21
-rw-r--r--pkgs/development/python-modules/pydata-sphinx-theme/default.nix29
-rw-r--r--pkgs/development/python-modules/pydateinfer/default.nix19
-rw-r--r--pkgs/development/python-modules/pydbus/default.nix19
-rw-r--r--pkgs/development/python-modules/pydeck/default.nix33
-rw-r--r--pkgs/development/python-modules/pydeconz/default.nix47
-rw-r--r--pkgs/development/python-modules/pydelijn/default.nix19
-rw-r--r--pkgs/development/python-modules/pydenticon/default.nix17
-rw-r--r--pkgs/development/python-modules/pydeps/default.nix33
-rw-r--r--pkgs/development/python-modules/pydes/default.nix9
-rw-r--r--pkgs/development/python-modules/pydevccu/default.nix13
-rw-r--r--pkgs/development/python-modules/pydevd/default.nix101
-rw-r--r--pkgs/development/python-modules/pydevtool/default.nix24
-rw-r--r--pkgs/development/python-modules/pydexcom/default.nix23
-rw-r--r--pkgs/development/python-modules/pydicom-seg/default.nix37
-rw-r--r--pkgs/development/python-modules/pydicom/default.nix57
-rw-r--r--pkgs/development/python-modules/pydigiham/default.nix16
-rw-r--r--pkgs/development/python-modules/pydiscourse/default.nix27
-rw-r--r--pkgs/development/python-modules/pydiscovergy/default.nix50
-rw-r--r--pkgs/development/python-modules/pydispatcher/default.nix14
-rw-r--r--pkgs/development/python-modules/pydmd/default.nix44
-rw-r--r--pkgs/development/python-modules/pydocstyle/default.nix37
-rw-r--r--pkgs/development/python-modules/pydocumentdb/default.nix16
-rw-r--r--pkgs/development/python-modules/pydoe/default.nix15
-rw-r--r--pkgs/development/python-modules/pydoods/default.nix15
-rw-r--r--pkgs/development/python-modules/pydot/default.nix33
-rw-r--r--pkgs/development/python-modules/pydrawise/default.nix4
-rw-r--r--pkgs/development/python-modules/pydrive2/default.nix33
-rw-r--r--pkgs/development/python-modules/pydroid-ipcam/default.nix17
-rw-r--r--pkgs/development/python-modules/pydruid/default.nix35
-rw-r--r--pkgs/development/python-modules/pydsdl/default.nix15
-rw-r--r--pkgs/development/python-modules/pydub/default.nix34
-rw-r--r--pkgs/development/python-modules/pydub/ffmpeg-fix-path.patch28
-rw-r--r--pkgs/development/python-modules/pyduke-energy/default.nix27
-rw-r--r--pkgs/development/python-modules/pyduotecno/default.nix4
-rw-r--r--pkgs/development/python-modules/pydy/default.nix44
-rw-r--r--pkgs/development/python-modules/pydyf/default.nix29
-rw-r--r--pkgs/development/python-modules/pyebus/default.nix27
-rw-r--r--pkgs/development/python-modules/pyechonest/default.nix7
-rw-r--r--pkgs/development/python-modules/pyeclib/default.nix25
-rw-r--r--pkgs/development/python-modules/pyecoforest/default.nix38
-rw-r--r--pkgs/development/python-modules/pyeconet/default.nix23
-rw-r--r--pkgs/development/python-modules/pyecowitt/default.nix33
-rw-r--r--pkgs/development/python-modules/pyedimax/default.nix26
-rw-r--r--pkgs/development/python-modules/pyee/default.nix37
-rw-r--r--pkgs/development/python-modules/pyefergy/default.nix51
-rw-r--r--pkgs/development/python-modules/pyeight/default.nix17
-rw-r--r--pkgs/development/python-modules/pyelftools/default.nix38
-rw-r--r--pkgs/development/python-modules/pyemby/default.nix11
-rw-r--r--pkgs/development/python-modules/pyemd/default.nix35
-rw-r--r--pkgs/development/python-modules/pyemvue/default.nix31
-rw-r--r--pkgs/development/python-modules/pyenchant/default.nix43
-rw-r--r--pkgs/development/python-modules/pyenphase/default.nix4
-rw-r--r--pkgs/development/python-modules/pyenvisalink/default.nix23
-rw-r--r--pkgs/development/python-modules/pyephember/default.nix17
-rw-r--r--pkgs/development/python-modules/pyepsg/default.nix8
-rw-r--r--pkgs/development/python-modules/pyerfa/default.nix47
-rw-r--r--pkgs/development/python-modules/pyeverlights/default.nix9
-rw-r--r--pkgs/development/python-modules/pyevilgenius/default.nix17
-rw-r--r--pkgs/development/python-modules/pyevmasm/default.nix11
-rw-r--r--pkgs/development/python-modules/pyexcel-io/default.nix15
-rw-r--r--pkgs/development/python-modules/pyexcel-ods/default.nix19
-rw-r--r--pkgs/development/python-modules/pyexcel-xls/default.nix21
-rw-r--r--pkgs/development/python-modules/pyexcel/default.nix21
-rw-r--r--pkgs/development/python-modules/pyexiftool/default.nix28
-rw-r--r--pkgs/development/python-modules/pyexploitdb/default.nix32
-rw-r--r--pkgs/development/python-modules/pyezviz/default.nix38
-rw-r--r--pkgs/development/python-modules/pyface/default.nix25
-rw-r--r--pkgs/development/python-modules/pyfaidx/default.nix43
-rw-r--r--pkgs/development/python-modules/pyfakefs/default.nix69
-rw-r--r--pkgs/development/python-modules/pyfakewebcam/default.nix15
-rw-r--r--pkgs/development/python-modules/pyfantom/default.nix8
-rw-r--r--pkgs/development/python-modules/pyfcm/default.nix9
-rw-r--r--pkgs/development/python-modules/pyfftw/default.nix31
-rw-r--r--pkgs/development/python-modules/pyfido/default.nix9
-rw-r--r--pkgs/development/python-modules/pyfiglet/default.nix8
-rw-r--r--pkgs/development/python-modules/pyfireservicerota/default.nix24
-rw-r--r--pkgs/development/python-modules/pyflakes/default.nix23
-rw-r--r--pkgs/development/python-modules/pyflexit/default.nix9
-rw-r--r--pkgs/development/python-modules/pyflic/default.nix9
-rw-r--r--pkgs/development/python-modules/pyflick/default.nix13
-rw-r--r--pkgs/development/python-modules/pyfluidsynth/default.nix21
-rw-r--r--pkgs/development/python-modules/pyflume/default.nix23
-rw-r--r--pkgs/development/python-modules/pyfma/default.nix37
-rw-r--r--pkgs/development/python-modules/pyfnip/default.nix9
-rw-r--r--pkgs/development/python-modules/pyformlang/default.nix29
-rw-r--r--pkgs/development/python-modules/pyfreedompro/default.nix15
-rw-r--r--pkgs/development/python-modules/pyfribidi/default.nix16
-rw-r--r--pkgs/development/python-modules/pyfritzhome/default.nix29
-rw-r--r--pkgs/development/python-modules/pyfronius/default.nix31
-rw-r--r--pkgs/development/python-modules/pyftgl/default.nix27
-rw-r--r--pkgs/development/python-modules/pyfttt/default.nix8
-rw-r--r--pkgs/development/python-modules/pyfume/default.nix44
-rw-r--r--pkgs/development/python-modules/pyfuse3/default.nix32
-rw-r--r--pkgs/development/python-modules/pyfxa/default.nix41
-rw-r--r--pkgs/development/python-modules/pyfzf/default.nix19
-rw-r--r--pkgs/development/python-modules/pygal/default.nix35
-rw-r--r--pkgs/development/python-modules/pygame-ce/default.nix107
-rw-r--r--pkgs/development/python-modules/pygame-gui/default.nix41
-rw-r--r--pkgs/development/python-modules/pygame-sdl2/default.nix60
-rw-r--r--pkgs/development/python-modules/pygame/default.nix83
-rw-r--r--pkgs/development/python-modules/pygatt/default.nix42
-rw-r--r--pkgs/development/python-modules/pygccxml/default.nix19
-rw-r--r--pkgs/development/python-modules/pygdbmi/default.nix18
-rw-r--r--pkgs/development/python-modules/pygeoip/default.nix8
-rw-r--r--pkgs/development/python-modules/pygeos/default.nix53
-rw-r--r--pkgs/development/python-modules/pygetwindow/default.nix15
-rw-r--r--pkgs/development/python-modules/pygit2/default.nix53
-rw-r--r--pkgs/development/python-modules/pygitguardian/default.nix35
-rw-r--r--pkgs/development/python-modules/pygithub/default.nix29
-rw-r--r--pkgs/development/python-modules/pyglet/default.nix134
-rw-r--r--pkgs/development/python-modules/pyglm/default.nix25
-rw-r--r--pkgs/development/python-modules/pygls/default.nix33
-rw-r--r--pkgs/development/python-modules/pygltflib/default.nix27
-rw-r--r--pkgs/development/python-modules/pygmars/default.nix25
-rw-r--r--pkgs/development/python-modules/pygments-better-html/default.nix15
-rw-r--r--pkgs/development/python-modules/pygments-markdown-lexer/default.nix10
-rw-r--r--pkgs/development/python-modules/pygments-style-github/default.nix9
-rw-r--r--pkgs/development/python-modules/pygments/default.nix51
-rw-r--r--pkgs/development/python-modules/pygmo/default.nix121
-rw-r--r--pkgs/development/python-modules/pygmt/default.nix43
-rw-r--r--pkgs/development/python-modules/pygnmi/default.nix27
-rw-r--r--pkgs/development/python-modules/pygobject/3.nix44
-rw-r--r--pkgs/development/python-modules/pygogo/default.nix25
-rw-r--r--pkgs/development/python-modules/pygount/default.nix35
-rw-r--r--pkgs/development/python-modules/pygpgme/default.nix15
-rw-r--r--pkgs/development/python-modules/pygraphviz/default.nix37
-rw-r--r--pkgs/development/python-modules/pygreat/default.nix15
-rw-r--r--pkgs/development/python-modules/pygrok/default.nix12
-rw-r--r--pkgs/development/python-modules/pygsl/default.nix41
-rw-r--r--pkgs/development/python-modules/pygtail/default.nix8
-rw-r--r--pkgs/development/python-modules/pygtfs/default.nix33
-rw-r--r--pkgs/development/python-modules/pygti/default.nix21
-rw-r--r--pkgs/development/python-modules/pygtkspellcheck/default.nix23
-rw-r--r--pkgs/development/python-modules/pygtrie/default.nix7
-rw-r--r--pkgs/development/python-modules/pyhamcrest/default.nix23
-rw-r--r--pkgs/development/python-modules/pyhanko-certvalidator/default.nix39
-rw-r--r--pkgs/development/python-modules/pyhanko/default.nix87
-rw-r--r--pkgs/development/python-modules/pyhaversion/default.nix42
-rw-r--r--pkgs/development/python-modules/pyhcl/default.nix19
-rw-r--r--pkgs/development/python-modules/pyheck/default.nix35
-rw-r--r--pkgs/development/python-modules/pyheif/default.nix16
-rw-r--r--pkgs/development/python-modules/pyheos/default.nix31
-rw-r--r--pkgs/development/python-modules/pyhepmc/default.nix34
-rw-r--r--pkgs/development/python-modules/pyhiveapi/default.nix25
-rw-r--r--pkgs/development/python-modules/pyhocon/default.nix25
-rw-r--r--pkgs/development/python-modules/pyhomematic/default.nix11
-rw-r--r--pkgs/development/python-modules/pyhomepilot/default.nix15
-rw-r--r--pkgs/development/python-modules/pyhomeworks/default.nix15
-rw-r--r--pkgs/development/python-modules/pyhumps/default.nix25
-rw-r--r--pkgs/development/python-modules/pyi2cflash/default.nix13
-rw-r--r--pkgs/development/python-modules/pyialarm/default.nix17
-rw-r--r--pkgs/development/python-modules/pyicloud/default.nix37
-rw-r--r--pkgs/development/python-modules/pyicu/default.nix22
-rw-r--r--pkgs/development/python-modules/pyimpfuzzy/default.nix25
-rw-r--r--pkgs/development/python-modules/pyindego/default.nix43
-rw-r--r--pkgs/development/python-modules/pyinfra/default.nix42
-rw-r--r--pkgs/development/python-modules/pyinotify/default.nix8
-rw-r--r--pkgs/development/python-modules/pyinputevent/default.nix8
-rw-r--r--pkgs/development/python-modules/pyinstaller-versionfile/default.nix21
-rw-r--r--pkgs/development/python-modules/pyinsteon/default.nix48
-rw-r--r--pkgs/development/python-modules/pyinstrument/default.nix19
-rw-r--r--pkgs/development/python-modules/pyintesishome/default.nix19
-rw-r--r--pkgs/development/python-modules/pyipma/default.nix27
-rw-r--r--pkgs/development/python-modules/pyipp/default.nix56
-rw-r--r--pkgs/development/python-modules/pyipv8/default.nix31
-rw-r--r--pkgs/development/python-modules/pyiqvia/default.nix36
-rw-r--r--pkgs/development/python-modules/pyisbn/default.nix17
-rw-r--r--pkgs/development/python-modules/pyisemail/default.nix31
-rw-r--r--pkgs/development/python-modules/pyisy/default.nix23
-rw-r--r--pkgs/development/python-modules/pyixapi/default.nix17
-rw-r--r--pkgs/development/python-modules/pyjet/default.nix35
-rw-r--r--pkgs/development/python-modules/pyjks/default.nix19
-rw-r--r--pkgs/development/python-modules/pyjnius/default.nix19
-rw-r--r--pkgs/development/python-modules/pyjson5/default.nix44
-rw-r--r--pkgs/development/python-modules/pyjsparser/default.nix65
-rw-r--r--pkgs/development/python-modules/pyjwkest/default.nix18
-rw-r--r--pkgs/development/python-modules/pyjwt/default.nix25
-rw-r--r--pkgs/development/python-modules/pykakasi/default.nix37
-rw-r--r--pkgs/development/python-modules/pykaleidescape/default.nix49
-rw-r--r--pkgs/development/python-modules/pykalman/default.nix17
-rw-r--r--pkgs/development/python-modules/pykdl/default.nix79
-rw-r--r--pkgs/development/python-modules/pykdtree/default.nix40
-rw-r--r--pkgs/development/python-modules/pykeepass/default.nix25
-rw-r--r--pkgs/development/python-modules/pykerberos/default.nix9
-rw-r--r--pkgs/development/python-modules/pykeyatome/default.nix27
-rw-r--r--pkgs/development/python-modules/pykira/default.nix13
-rw-r--r--pkgs/development/python-modules/pykka/default.nix31
-rw-r--r--pkgs/development/python-modules/pykmtronic/default.nix16
-rw-r--r--pkgs/development/python-modules/pykodi/default.nix19
-rw-r--r--pkgs/development/python-modules/pykoplenti/default.nix31
-rw-r--r--pkgs/development/python-modules/pykostalpiko/default.nix19
-rw-r--r--pkgs/development/python-modules/pykrakenapi/default.nix14
-rw-r--r--pkgs/development/python-modules/pykulersky/default.nix23
-rw-r--r--pkgs/development/python-modules/pykwalify/default.nix19
-rw-r--r--pkgs/development/python-modules/pykwb/default.nix19
-rw-r--r--pkgs/development/python-modules/pylacrosse/default.nix25
-rw-r--r--pkgs/development/python-modules/pylacus/default.nix25
-rw-r--r--pkgs/development/python-modules/pylama/default.nix144
-rw-r--r--pkgs/development/python-modules/pylast/default.nix47
-rw-r--r--pkgs/development/python-modules/pylatex/default.nix33
-rw-r--r--pkgs/development/python-modules/pylatexenc/default.nix9
-rw-r--r--pkgs/development/python-modules/pylaunches/default.nix54
-rw-r--r--pkgs/development/python-modules/pyld/default.nix9
-rw-r--r--pkgs/development/python-modules/pylddwrap/default.nix19
-rw-r--r--pkgs/development/python-modules/pyleri/default.nix25
-rw-r--r--pkgs/development/python-modules/pylev/default.nix9
-rw-r--r--pkgs/development/python-modules/pylgnetcast/default.nix19
-rw-r--r--pkgs/development/python-modules/pylibacl/default.nix11
-rw-r--r--pkgs/development/python-modules/pylibconfig2/default.nix7
-rw-r--r--pkgs/development/python-modules/pylibdmtx/default.nix18
-rw-r--r--pkgs/development/python-modules/pylibjpeg-libjpeg/default.nix41
-rw-r--r--pkgs/development/python-modules/pylibjpeg/default.nix23
-rw-r--r--pkgs/development/python-modules/pyliblo/default.nix16
-rw-r--r--pkgs/development/python-modules/pylibmc/default.nix23
-rw-r--r--pkgs/development/python-modules/pylink-square/default.nix22
-rw-r--r--pkgs/development/python-modules/pylint-celery/default.nix23
-rw-r--r--pkgs/development/python-modules/pylint-django/default.nix41
-rw-r--r--pkgs/development/python-modules/pylint-flask/default.nix31
-rw-r--r--pkgs/development/python-modules/pylint-plugin-utils/default.nix29
-rw-r--r--pkgs/development/python-modules/pylint-venv/default.nix19
-rw-r--r--pkgs/development/python-modules/pylint/default.nix121
-rw-r--r--pkgs/development/python-modules/pylion/default.nix21
-rw-r--r--pkgs/development/python-modules/pylitterbot/default.nix2
-rw-r--r--pkgs/development/python-modules/pylnk3/default.nix25
-rw-r--r--pkgs/development/python-modules/pyloadapi/default.nix58
-rw-r--r--pkgs/development/python-modules/pylpsd/default.nix17
-rw-r--r--pkgs/development/python-modules/pylru/default.nix17
-rw-r--r--pkgs/development/python-modules/pyls-flake8/default.nix20
-rw-r--r--pkgs/development/python-modules/pyls-isort/default.nix11
-rw-r--r--pkgs/development/python-modules/pyls-memestra/default.nix17
-rw-r--r--pkgs/development/python-modules/pyls-spyder/default.nix19
-rw-r--r--pkgs/development/python-modules/pylsp-mypy/default.nix31
-rw-r--r--pkgs/development/python-modules/pylsp-rope/default.nix23
-rw-r--r--pkgs/development/python-modules/pylsqpack/default.nix15
-rw-r--r--pkgs/development/python-modules/pylti/default.nix53
-rw-r--r--pkgs/development/python-modules/pylutron-caseta/default.nix49
-rw-r--r--pkgs/development/python-modules/pylutron/default.nix26
-rw-r--r--pkgs/development/python-modules/pylxd/default.nix41
-rw-r--r--pkgs/development/python-modules/pylyrics/default.nix10
-rw-r--r--pkgs/development/python-modules/pylzma/default.nix6
-rw-r--r--pkgs/development/python-modules/pymacaroons/default.nix8
-rw-r--r--pkgs/development/python-modules/pymailgunner/default.nix19
-rw-r--r--pkgs/development/python-modules/pymanopt/default.nix31
-rw-r--r--pkgs/development/python-modules/pymarshal/default.nix25
-rw-r--r--pkgs/development/python-modules/pymata-express/default.nix15
-rw-r--r--pkgs/development/python-modules/pymatgen/default.nix6
-rw-r--r--pkgs/development/python-modules/pymatreader/default.nix25
-rw-r--r--pkgs/development/python-modules/pymatting/default.nix34
-rw-r--r--pkgs/development/python-modules/pymaven-patch/default.nix25
-rw-r--r--pkgs/development/python-modules/pymavlink/default.nix18
-rw-r--r--pkgs/development/python-modules/pymbolic/default.nix27
-rw-r--r--pkgs/development/python-modules/pymc/default.nix52
-rw-r--r--pkgs/development/python-modules/pymdown-extensions/default.nix61
-rw-r--r--pkgs/development/python-modules/pymdstat/default.nix11
-rw-r--r--pkgs/development/python-modules/pymediainfo/default.nix27
-rw-r--r--pkgs/development/python-modules/pymediaroom/default.nix13
-rw-r--r--pkgs/development/python-modules/pymedio/default.nix29
-rw-r--r--pkgs/development/python-modules/pymeeus/default.nix19
-rw-r--r--pkgs/development/python-modules/pymelcloud/default.nix25
-rw-r--r--pkgs/development/python-modules/pymemcache/default.nix31
-rw-r--r--pkgs/development/python-modules/pymemoize/default.nix10
-rw-r--r--pkgs/development/python-modules/pyment/default.nix6
-rw-r--r--pkgs/development/python-modules/pymeta3/default.nix16
-rw-r--r--pkgs/development/python-modules/pymetar/default.nix10
-rw-r--r--pkgs/development/python-modules/pymeteireann/default.nix15
-rw-r--r--pkgs/development/python-modules/pymeteoclimatic/default.nix29
-rw-r--r--pkgs/development/python-modules/pymetno/default.nix21
-rw-r--r--pkgs/development/python-modules/pymfy/default.nix27
-rw-r--r--pkgs/development/python-modules/pymicrobot/default.nix23
-rw-r--r--pkgs/development/python-modules/pymiele/default.nix23
-rw-r--r--pkgs/development/python-modules/pymilter/default.nix32
-rw-r--r--pkgs/development/python-modules/pymilvus/default.nix47
-rw-r--r--pkgs/development/python-modules/pymitv/default.nix11
-rw-r--r--pkgs/development/python-modules/pymongo-inmemory/default.nix38
-rw-r--r--pkgs/development/python-modules/pymongo/default.nix37
-rw-r--r--pkgs/development/python-modules/pymoo/default.nix47
-rw-r--r--pkgs/development/python-modules/pymorphy2/default.nix15
-rw-r--r--pkgs/development/python-modules/pymorphy2/dicts-ru.nix7
-rw-r--r--pkgs/development/python-modules/pymorphy3/default.nix27
-rw-r--r--pkgs/development/python-modules/pymorphy3/dicts-ru.nix7
-rw-r--r--pkgs/development/python-modules/pymorphy3/dicts-uk.nix7
-rw-r--r--pkgs/development/python-modules/pympler/default.nix49
-rw-r--r--pkgs/development/python-modules/pymsgbox/default.nix9
-rw-r--r--pkgs/development/python-modules/pymsteams/default.nix19
-rw-r--r--pkgs/development/python-modules/pymumble/default.nix17
-rw-r--r--pkgs/development/python-modules/pymunk/default.nix39
-rw-r--r--pkgs/development/python-modules/pymupdf/default.nix196
-rw-r--r--pkgs/development/python-modules/pymvglive/default.nix7
-rw-r--r--pkgs/development/python-modules/pymysensors/default.nix41
-rw-r--r--pkgs/development/python-modules/pymysql/default.nix21
-rw-r--r--pkgs/development/python-modules/pymysqlsa/default.nix17
-rw-r--r--pkgs/development/python-modules/pymystem3/default.nix25
-rw-r--r--pkgs/development/python-modules/pynac/default.nix10
-rw-r--r--pkgs/development/python-modules/pynacl/default.nix46
-rw-r--r--pkgs/development/python-modules/pynamecheap/default.nix11
-rw-r--r--pkgs/development/python-modules/pynamodb/default.nix41
-rw-r--r--pkgs/development/python-modules/pynanoleaf/default.nix14
-rw-r--r--pkgs/development/python-modules/pync/default.nix23
-rw-r--r--pkgs/development/python-modules/pynello/default.nix19
-rw-r--r--pkgs/development/python-modules/pynest2d/default.nix22
-rw-r--r--pkgs/development/python-modules/pynetbox/default.nix23
-rw-r--r--pkgs/development/python-modules/pynetdicom/default.nix37
-rw-r--r--pkgs/development/python-modules/pynetgear/default.nix19
-rw-r--r--pkgs/development/python-modules/pyngo/default.nix31
-rw-r--r--pkgs/development/python-modules/pyngrok/default.nix23
-rw-r--r--pkgs/development/python-modules/pynina/default.nix19
-rw-r--r--pkgs/development/python-modules/pynisher/default.nix17
-rw-r--r--pkgs/development/python-modules/pynitrokey/default.nix71
-rw-r--r--pkgs/development/python-modules/pynmea2/default.nix28
-rw-r--r--pkgs/development/python-modules/pynmeagps/default.nix40
-rw-r--r--pkgs/development/python-modules/pynndescent/default.nix45
-rw-r--r--pkgs/development/python-modules/pynose/default.nix9
-rw-r--r--pkgs/development/python-modules/pynotifier/default.nix21
-rw-r--r--pkgs/development/python-modules/pynput/default.nix62
-rw-r--r--pkgs/development/python-modules/pynrrd/default.nix19
-rw-r--r--pkgs/development/python-modules/pynuki/default.nix23
-rw-r--r--pkgs/development/python-modules/pynut2/default.nix15
-rw-r--r--pkgs/development/python-modules/pynvim-pp/default.nix11
-rw-r--r--pkgs/development/python-modules/pynvim/default.nix31
-rw-r--r--pkgs/development/python-modules/pynvml/default.nix33
-rw-r--r--pkgs/development/python-modules/pynws/default.nix49
-rw-r--r--pkgs/development/python-modules/pynx584/default.nix24
-rw-r--r--pkgs/development/python-modules/pynzb/default.nix10
-rw-r--r--pkgs/development/python-modules/pyobihai/default.nix23
-rw-r--r--pkgs/development/python-modules/pyocd-pemicro/default.nix19
-rw-r--r--pkgs/development/python-modules/pyocd/default.nix66
-rw-r--r--pkgs/development/python-modules/pyocr/default.nix48
-rw-r--r--pkgs/development/python-modules/pyoctoprintapi/default.nix39
-rw-r--r--pkgs/development/python-modules/pyodbc/default.nix23
-rw-r--r--pkgs/development/python-modules/pyogg/default.nix42
-rw-r--r--pkgs/development/python-modules/pyogrio/default.nix75
-rw-r--r--pkgs/development/python-modules/pyombi/default.nix15
-rw-r--r--pkgs/development/python-modules/pyomo/default.nix36
-rw-r--r--pkgs/development/python-modules/pyopencl/default.nix82
-rw-r--r--pkgs/development/python-modules/pyopengl-accelerate/default.nix17
-rw-r--r--pkgs/development/python-modules/pyopengl/default.nix90
-rw-r--r--pkgs/development/python-modules/pyopenssl/default.nix101
-rw-r--r--pkgs/development/python-modules/pyopenuv/default.nix33
-rw-r--r--pkgs/development/python-modules/pyopenweathermap/default.nix52
-rw-r--r--pkgs/development/python-modules/pyopnsense/default.nix25
-rw-r--r--pkgs/development/python-modules/pyoppleio/default.nix28
-rw-r--r--pkgs/development/python-modules/pyorthanc/default.nix37
-rw-r--r--pkgs/development/python-modules/pyosf/default.nix19
-rw-r--r--pkgs/development/python-modules/pyosmium/default.nix47
-rw-r--r--pkgs/development/python-modules/pyosohotwaterapi/default.nix25
-rw-r--r--pkgs/development/python-modules/pyotp/default.nix15
-rw-r--r--pkgs/development/python-modules/pyoutbreaksnearme/default.nix35
-rw-r--r--pkgs/development/python-modules/pyoverkiz/default.nix41
-rw-r--r--pkgs/development/python-modules/pyowm/default.nix2
-rw-r--r--pkgs/development/python-modules/pyownet/default.nix7
-rw-r--r--pkgs/development/python-modules/pypandoc/default.nix32
-rw-r--r--pkgs/development/python-modules/pyparser/default.nix7
-rw-r--r--pkgs/development/python-modules/pyparsing/default.nix27
-rw-r--r--pkgs/development/python-modules/pyparted/default.nix45
-rw-r--r--pkgs/development/python-modules/pypass/default.nix37
-rw-r--r--pkgs/development/python-modules/pypblib/default.nix6
-rw-r--r--pkgs/development/python-modules/pypca/default.nix13
-rw-r--r--pkgs/development/python-modules/pypcap/default.nix13
-rw-r--r--pkgs/development/python-modules/pypck/default.nix39
-rw-r--r--pkgs/development/python-modules/pypdf/default.nix97
-rw-r--r--pkgs/development/python-modules/pypdf2/default.nix39
-rw-r--r--pkgs/development/python-modules/pypdf3/default.nix19
-rw-r--r--pkgs/development/python-modules/pypeg2/default.nix10
-rw-r--r--pkgs/development/python-modules/pypemicro/default.nix17
-rw-r--r--pkgs/development/python-modules/pyperclip/default.nix23
-rw-r--r--pkgs/development/python-modules/pyperf/default.nix35
-rw-r--r--pkgs/development/python-modules/pyperscan/default.nix41
-rw-r--r--pkgs/development/python-modules/pyphen/default.nix37
-rw-r--r--pkgs/development/python-modules/pyphotonfile/default.nix17
-rw-r--r--pkgs/development/python-modules/pypika/default.nix16
-rw-r--r--pkgs/development/python-modules/pypillowfight/default.nix10
-rw-r--r--pkgs/development/python-modules/pypinyin/default.nix19
-rw-r--r--pkgs/development/python-modules/pypiserver/default.nix48
-rw-r--r--pkgs/development/python-modules/pypitoken/default.nix29
-rw-r--r--pkgs/development/python-modules/pyplaato/default.nix17
-rw-r--r--pkgs/development/python-modules/pyplatec/default.nix14
-rw-r--r--pkgs/development/python-modules/pypng/default.nix37
-rw-r--r--pkgs/development/python-modules/pypng/setup-cfg-pngsuite.patch12
-rw-r--r--pkgs/development/python-modules/pypoint/default.nix15
-rw-r--r--pkgs/development/python-modules/pypoolstation/default.nix25
-rw-r--r--pkgs/development/python-modules/pyppeteer/default.nix39
-rw-r--r--pkgs/development/python-modules/pyprecice/default.nix19
-rw-r--r--pkgs/development/python-modules/pypresence/default.nix6
-rw-r--r--pkgs/development/python-modules/pyprind/default.nix10
-rw-r--r--pkgs/development/python-modules/pyprobables/default.nix25
-rw-r--r--pkgs/development/python-modules/pyprof2calltree/default.nix15
-rw-r--r--pkgs/development/python-modules/pyproj/default.nix54
-rw-r--r--pkgs/development/python-modules/pyproject-api/default.nix53
-rw-r--r--pkgs/development/python-modules/pyproject-hooks/default.nix33
-rw-r--r--pkgs/development/python-modules/pyproject-metadata/default.nix39
-rw-r--r--pkgs/development/python-modules/pyprosegur/default.nix27
-rw-r--r--pkgs/development/python-modules/pyprusalink/default.nix25
-rw-r--r--pkgs/development/python-modules/pypsrp/default.nix55
-rw-r--r--pkgs/development/python-modules/pyptlib/default.nix16
-rw-r--r--pkgs/development/python-modules/pypubsub/default.nix24
-rw-r--r--pkgs/development/python-modules/pypugjs/default.nix42
-rw-r--r--pkgs/development/python-modules/pypykatz/default.nix27
-rw-r--r--pkgs/development/python-modules/pypytools/default.nix33
-rw-r--r--pkgs/development/python-modules/pyqldb/default.nix16
-rw-r--r--pkgs/development/python-modules/pyqrcode/default.nix8
-rw-r--r--pkgs/development/python-modules/pyqt-builder/default.nix30
-rw-r--r--pkgs/development/python-modules/pyqt/5.x.nix252
-rw-r--r--pkgs/development/python-modules/pyqt/6.x.nix157
-rw-r--r--pkgs/development/python-modules/pyqt/pyqt6-sip.nix7
-rw-r--r--pkgs/development/python-modules/pyqt/sip.nix15
-rw-r--r--pkgs/development/python-modules/pyqt3d/default.nix40
-rw-r--r--pkgs/development/python-modules/pyqt5-stubs/default.nix63
-rw-r--r--pkgs/development/python-modules/pyqt6-charts/default.nix31
-rw-r--r--pkgs/development/python-modules/pyqt6-webengine/default.nix41
-rw-r--r--pkgs/development/python-modules/pyqtchart/default.nix40
-rw-r--r--pkgs/development/python-modules/pyqtdarktheme/default.nix45
-rw-r--r--pkgs/development/python-modules/pyqtdatavisualization/default.nix40
-rw-r--r--pkgs/development/python-modules/pyqtgraph/default.nix62
-rw-r--r--pkgs/development/python-modules/pyqtwebengine/default.nix171
-rw-r--r--pkgs/development/python-modules/pyquaternion/default.nix13
-rw-r--r--pkgs/development/python-modules/pyquery/default.nix25
-rw-r--r--pkgs/development/python-modules/pyquil/default.nix15
-rw-r--r--pkgs/development/python-modules/pyqvrpro/default.nix23
-rw-r--r--pkgs/development/python-modules/pyqwikswitch/default.nix13
-rw-r--r--pkgs/development/python-modules/pyrabbit2/default.nix15
-rw-r--r--pkgs/development/python-modules/pyrad/default.nix66
-rw-r--r--pkgs/development/python-modules/pyradiomics/default.nix34
-rw-r--r--pkgs/development/python-modules/pyradios/default.nix15
-rw-r--r--pkgs/development/python-modules/pyrainbird/default.nix59
-rw-r--r--pkgs/development/python-modules/pyramid-beaker/default.nix14
-rw-r--r--pkgs/development/python-modules/pyramid-chameleon/default.nix29
-rw-r--r--pkgs/development/python-modules/pyramid-exclog/default.nix12
-rw-r--r--pkgs/development/python-modules/pyramid-jinja2/default.nix25
-rw-r--r--pkgs/development/python-modules/pyramid-mako/default.nix22
-rw-r--r--pkgs/development/python-modules/pyramid-multiauth/default.nix27
-rw-r--r--pkgs/development/python-modules/pyramid/default.nix37
-rw-r--r--pkgs/development/python-modules/pyrate-limiter/default.nix17
-rw-r--r--pkgs/development/python-modules/pyrdfa3/default.nix25
-rw-r--r--pkgs/development/python-modules/pyre-extensions/default.nix15
-rw-r--r--pkgs/development/python-modules/pyreaderwriterlock/default.nix28
-rw-r--r--pkgs/development/python-modules/pyreadstat/default.nix37
-rw-r--r--pkgs/development/python-modules/pyrect/default.nix16
-rw-r--r--pkgs/development/python-modules/pyregion/default.nix41
-rw-r--r--pkgs/development/python-modules/pyrender/default.nix46
-rw-r--r--pkgs/development/python-modules/pyreqwest-impersonate/default.nix61
-rw-r--r--pkgs/development/python-modules/pyrevolve/default.nix29
-rw-r--r--pkgs/development/python-modules/pyrfc3339/default.nix34
-rw-r--r--pkgs/development/python-modules/pyrfxtrx/default.nix25
-rw-r--r--pkgs/development/python-modules/pyric/default.nix13
-rw-r--r--pkgs/development/python-modules/pyring-buffer/default.nix21
-rw-r--r--pkgs/development/python-modules/pyrisco/default.nix4
-rw-r--r--pkgs/development/python-modules/pyrituals/default.nix17
-rw-r--r--pkgs/development/python-modules/pyrmvtransport/default.nix33
-rw-r--r--pkgs/development/python-modules/pyro-api/default.nix8
-rw-r--r--pkgs/development/python-modules/pyro-ppl/default.nix75
-rw-r--r--pkgs/development/python-modules/pyro4/default.nix31
-rw-r--r--pkgs/development/python-modules/pyro5/default.nix31
-rw-r--r--pkgs/development/python-modules/pyrogram/default.nix17
-rw-r--r--pkgs/development/python-modules/pyroma/default.nix37
-rw-r--r--pkgs/development/python-modules/pyroute2/default.nix31
-rw-r--r--pkgs/development/python-modules/pyrr/default.nix18
-rw-r--r--pkgs/development/python-modules/pyrsistent/default.nix27
-rw-r--r--pkgs/development/python-modules/pyrss2gen/default.nix8
-rw-r--r--pkgs/development/python-modules/pyrtlsdr/default.nix18
-rw-r--r--pkgs/development/python-modules/pyrympro/default.nix39
-rw-r--r--pkgs/development/python-modules/pysabnzbd/default.nix13
-rw-r--r--pkgs/development/python-modules/pysaj/default.nix17
-rw-r--r--pkgs/development/python-modules/pysam/default.nix33
-rw-r--r--pkgs/development/python-modules/pysaml2/default.nix56
-rw-r--r--pkgs/development/python-modules/pysatochip/default.nix29
-rw-r--r--pkgs/development/python-modules/pysbd/default.nix18
-rw-r--r--pkgs/development/python-modules/pysc2/default.nix35
-rw-r--r--pkgs/development/python-modules/pyscaffold/default.nix67
-rw-r--r--pkgs/development/python-modules/pyscaffoldext-cookiecutter/default.nix33
-rw-r--r--pkgs/development/python-modules/pyscaffoldext-custom-extension/default.nix33
-rw-r--r--pkgs/development/python-modules/pyscaffoldext-django/default.nix31
-rw-r--r--pkgs/development/python-modules/pyscaffoldext-dsproject/default.nix33
-rw-r--r--pkgs/development/python-modules/pyscaffoldext-markdown/default.nix35
-rw-r--r--pkgs/development/python-modules/pyscaffoldext-travis/default.nix31
-rw-r--r--pkgs/development/python-modules/pyscard/default.nix70
-rw-r--r--pkgs/development/python-modules/pyscf/default.nix40
-rw-r--r--pkgs/development/python-modules/pyschedule/default.nix13
-rw-r--r--pkgs/development/python-modules/pyschemes/default.nix17
-rw-r--r--pkgs/development/python-modules/pyschlage/default.nix31
-rw-r--r--pkgs/development/python-modules/pyscreenshot/default.nix37
-rw-r--r--pkgs/development/python-modules/pyscreeze/default.nix27
-rw-r--r--pkgs/development/python-modules/pyscrypt/default.nix7
-rw-r--r--pkgs/development/python-modules/pyscss/default.nix19
-rw-r--r--pkgs/development/python-modules/pysdcp/default.nix9
-rw-r--r--pkgs/development/python-modules/pysdl2/default.nix48
-rw-r--r--pkgs/development/python-modules/pysecuritas/default.nix17
-rw-r--r--pkgs/development/python-modules/pysendfile/default.nix2
-rw-r--r--pkgs/development/python-modules/pysensibo/default.nix19
-rw-r--r--pkgs/development/python-modules/pysensors/default.nix13
-rw-r--r--pkgs/development/python-modules/pysequoia/default.nix57
-rw-r--r--pkgs/development/python-modules/pyserial-asyncio-fast/default.nix35
-rw-r--r--pkgs/development/python-modules/pyserial-asyncio/default.nix19
-rw-r--r--pkgs/development/python-modules/pyserial/default.nix25
-rw-r--r--pkgs/development/python-modules/pysftp/default.nix14
-rw-r--r--pkgs/development/python-modules/pyshark/default.nix53
-rw-r--r--pkgs/development/python-modules/pyshp/default.nix19
-rw-r--r--pkgs/development/python-modules/pysiaalarm/default.nix27
-rw-r--r--pkgs/development/python-modules/pyside2-tools/default.nix31
-rw-r--r--pkgs/development/python-modules/pyside2/default.nix79
-rw-r--r--pkgs/development/python-modules/pyside6/default.nix106
-rw-r--r--pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix4
-rw-r--r--pkgs/development/python-modules/pysigma-backend-insightidr/default.nix33
-rw-r--r--pkgs/development/python-modules/pysigma-backend-opensearch/default.nix40
-rw-r--r--pkgs/development/python-modules/pysigma-backend-qradar/default.nix33
-rw-r--r--pkgs/development/python-modules/pysigma-backend-splunk/default.nix29
-rw-r--r--pkgs/development/python-modules/pysigma-backend-sqlite/default.nix29
-rw-r--r--pkgs/development/python-modules/pysigma-pipeline-crowdstrike/default.nix31
-rw-r--r--pkgs/development/python-modules/pysigma-pipeline-sysmon/default.nix31
-rw-r--r--pkgs/development/python-modules/pysigma-pipeline-windows/default.nix31
-rw-r--r--pkgs/development/python-modules/pysigma/default.nix7
-rw-r--r--pkgs/development/python-modules/pysignalclirestapi/default.nix17
-rw-r--r--pkgs/development/python-modules/pysigset/default.nix6
-rw-r--r--pkgs/development/python-modules/pysilero-vad/default.nix37
-rw-r--r--pkgs/development/python-modules/pysim/default.nix56
-rw-r--r--pkgs/development/python-modules/pysimplegui/default.nix23
-rw-r--r--pkgs/development/python-modules/pysimplesoap/default.nix73
-rw-r--r--pkgs/development/python-modules/pysingleton/default.nix7
-rw-r--r--pkgs/development/python-modules/pyskyqhub/default.nix19
-rw-r--r--pkgs/development/python-modules/pyskyqremote/default.nix19
-rw-r--r--pkgs/development/python-modules/pyslim/default.nix25
-rw-r--r--pkgs/development/python-modules/pyslurm/default.nix33
-rw-r--r--pkgs/development/python-modules/pysma/default.nix19
-rw-r--r--pkgs/development/python-modules/pysmappee/default.nix25
-rw-r--r--pkgs/development/python-modules/pysmart/default.nix31
-rw-r--r--pkgs/development/python-modules/pysmartapp/default.nix23
-rw-r--r--pkgs/development/python-modules/pysmartdl/default.nix25
-rw-r--r--pkgs/development/python-modules/pysmartthings/default.nix23
-rw-r--r--pkgs/development/python-modules/pysmb/default.nix13
-rw-r--r--pkgs/development/python-modules/pysmbc/default.nix25
-rw-r--r--pkgs/development/python-modules/pysmf/default.nix24
-rw-r--r--pkgs/development/python-modules/pysmi-lextudio/default.nix25
-rw-r--r--pkgs/development/python-modules/pysmi/default.nix12
-rw-r--r--pkgs/development/python-modules/pysml/default.nix27
-rw-r--r--pkgs/development/python-modules/pysmt/default.nix19
-rw-r--r--pkgs/development/python-modules/pysnmp-lextudio/default.nix33
-rw-r--r--pkgs/development/python-modules/pysnmp-pyasn1/default.nix25
-rw-r--r--pkgs/development/python-modules/pysnmp-pysmi/default.nix23
-rw-r--r--pkgs/development/python-modules/pysnmp/default.nix26
-rw-r--r--pkgs/development/python-modules/pysnmpcrypto/default.nix33
-rw-r--r--pkgs/development/python-modules/pysnmplib/default.nix25
-rw-r--r--pkgs/development/python-modules/pysnooper/default.nix21
-rw-r--r--pkgs/development/python-modules/pysnooz/default.nix39
-rw-r--r--pkgs/development/python-modules/pysnow/default.nix35
-rw-r--r--pkgs/development/python-modules/pysocks/default.nix10
-rw-r--r--pkgs/development/python-modules/pysol-cards/default.nix13
-rw-r--r--pkgs/development/python-modules/pysolcast/default.nix6
-rw-r--r--pkgs/development/python-modules/pysolr/default.nix10
-rw-r--r--pkgs/development/python-modules/pysoma/default.nix13
-rw-r--r--pkgs/development/python-modules/pysonos/default.nix23
-rw-r--r--pkgs/development/python-modules/pyspark/default.nix33
-rw-r--r--pkgs/development/python-modules/pyspcwebgw/default.nix29
-rw-r--r--pkgs/development/python-modules/pyspellchecker/default.nix19
-rw-r--r--pkgs/development/python-modules/pyspf/default.nix8
-rw-r--r--pkgs/development/python-modules/pyspice/default.nix28
-rw-r--r--pkgs/development/python-modules/pyspiflash/default.nix13
-rw-r--r--pkgs/development/python-modules/pyspinel/default.nix19
-rw-r--r--pkgs/development/python-modules/pyspnego/default.nix41
-rw-r--r--pkgs/development/python-modules/pysptk/default.nix31
-rw-r--r--pkgs/development/python-modules/pyspx/default.nix25
-rw-r--r--pkgs/development/python-modules/pysqlcipher3/default.nix9
-rw-r--r--pkgs/development/python-modules/pysqlitecipher/default.nix15
-rw-r--r--pkgs/development/python-modules/pysqueezebox/default.nix25
-rw-r--r--pkgs/development/python-modules/pysrim/default.nix13
-rw-r--r--pkgs/development/python-modules/pysrt/default.nix11
-rw-r--r--pkgs/development/python-modules/pyssim/default.nix16
-rw-r--r--pkgs/development/python-modules/pystac/default.nix53
-rw-r--r--pkgs/development/python-modules/pystache/default.nix27
-rw-r--r--pkgs/development/python-modules/pystardict/default.nix23
-rw-r--r--pkgs/development/python-modules/pystatgrab/default.nix46
-rw-r--r--pkgs/development/python-modules/pystemd/default.nix35
-rw-r--r--pkgs/development/python-modules/pystemmer/default.nix31
-rw-r--r--pkgs/development/python-modules/pystray/default.nix52
-rw-r--r--pkgs/development/python-modules/pysubs2/default.nix27
-rw-r--r--pkgs/development/python-modules/pysuez/default.nix23
-rw-r--r--pkgs/development/python-modules/pysvg-py3/default.nix9
-rw-r--r--pkgs/development/python-modules/pysvn/default.nix51
-rw-r--r--pkgs/development/python-modules/pyswitchbee/default.nix25
-rw-r--r--pkgs/development/python-modules/pyswitchbot/default.nix45
-rw-r--r--pkgs/development/python-modules/pysychonaut/default.nix15
-rw-r--r--pkgs/development/python-modules/pysyncobj/default.nix13
-rw-r--r--pkgs/development/python-modules/pysyncthru/default.nix25
-rw-r--r--pkgs/development/python-modules/pytabix/default.nix11
-rw-r--r--pkgs/development/python-modules/pytablewriter/default.nix81
-rw-r--r--pkgs/development/python-modules/pytado/default.nix35
-rw-r--r--pkgs/development/python-modules/pytaglib/default.nix23
-rw-r--r--pkgs/development/python-modules/pytankerkoenig/default.nix7
-rw-r--r--pkgs/development/python-modules/pytap2/default.nix25
-rw-r--r--pkgs/development/python-modules/pytapo/default.nix34
-rw-r--r--pkgs/development/python-modules/pytautulli/default.nix33
-rw-r--r--pkgs/development/python-modules/pyte/default.nix11
-rw-r--r--pkgs/development/python-modules/pytedee-async/default.nix25
-rw-r--r--pkgs/development/python-modules/pytenable/default.nix8
-rw-r--r--pkgs/development/python-modules/pytensor/default.nix59
-rw-r--r--pkgs/development/python-modules/pytesseract/default.nix29
-rw-r--r--pkgs/development/python-modules/pytest-aiohttp/default.nix29
-rw-r--r--pkgs/development/python-modules/pytest-annotate/default.nix25
-rw-r--r--pkgs/development/python-modules/pytest-ansible/default.nix98
-rw-r--r--pkgs/development/python-modules/pytest-arraydiff/default.nix31
-rw-r--r--pkgs/development/python-modules/pytest-astropy-header/default.nix25
-rw-r--r--pkgs/development/python-modules/pytest-astropy/default.nix39
-rw-r--r--pkgs/development/python-modules/pytest-asyncio/default.nix29
-rw-r--r--pkgs/development/python-modules/pytest-asyncio/tests.nix17
-rw-r--r--pkgs/development/python-modules/pytest-base-url/default.nix39
-rw-r--r--pkgs/development/python-modules/pytest-benchmark/default.nix55
-rw-r--r--pkgs/development/python-modules/pytest-black/default.nix20
-rw-r--r--pkgs/development/python-modules/pytest-cases/default.nix29
-rw-r--r--pkgs/development/python-modules/pytest-catchlog/default.nix10
-rw-r--r--pkgs/development/python-modules/pytest-celery/default.nix11
-rw-r--r--pkgs/development/python-modules/pytest-check/default.nix29
-rw-r--r--pkgs/development/python-modules/pytest-cid/default.nix27
-rw-r--r--pkgs/development/python-modules/pytest-click/default.nix19
-rw-r--r--pkgs/development/python-modules/pytest-console-scripts/default.nix31
-rw-r--r--pkgs/development/python-modules/pytest-cov/default.nix25
-rw-r--r--pkgs/development/python-modules/pytest-cram/default.nix26
-rw-r--r--pkgs/development/python-modules/pytest-datadir/default.nix15
-rw-r--r--pkgs/development/python-modules/pytest-datafiles/default.nix23
-rw-r--r--pkgs/development/python-modules/pytest-dependency/default.nix29
-rw-r--r--pkgs/development/python-modules/pytest-describe/default.nix23
-rw-r--r--pkgs/development/python-modules/pytest-django/default.nix27
-rw-r--r--pkgs/development/python-modules/pytest-doctestplus/default.nix31
-rw-r--r--pkgs/development/python-modules/pytest-dotenv/default.nix10
-rw-r--r--pkgs/development/python-modules/pytest-emoji/default.nix27
-rw-r--r--pkgs/development/python-modules/pytest-env/default.nix23
-rw-r--r--pkgs/development/python-modules/pytest-error-for-skips/default.nix11
-rw-r--r--pkgs/development/python-modules/pytest-examples/default.nix43
-rw-r--r--pkgs/development/python-modules/pytest-expect/default.nix18
-rw-r--r--pkgs/development/python-modules/pytest-factoryboy/default.nix47
-rw-r--r--pkgs/development/python-modules/pytest-filter-subpackage/default.nix35
-rw-r--r--pkgs/development/python-modules/pytest-fixture-config/default.nix31
-rw-r--r--pkgs/development/python-modules/pytest-flake8/default.nix23
-rw-r--r--pkgs/development/python-modules/pytest-flakes/default.nix10
-rw-r--r--pkgs/development/python-modules/pytest-flask/default.nix43
-rw-r--r--pkgs/development/python-modules/pytest-forked/default.nix49
-rw-r--r--pkgs/development/python-modules/pytest-freezegun/default.nix23
-rw-r--r--pkgs/development/python-modules/pytest-freezer/default.nix37
-rw-r--r--pkgs/development/python-modules/pytest-golden/default.nix37
-rw-r--r--pkgs/development/python-modules/pytest-grpc/default.nix21
-rw-r--r--pkgs/development/python-modules/pytest-harvest/default.nix31
-rw-r--r--pkgs/development/python-modules/pytest-helpers-namespace/default.nix25
-rw-r--r--pkgs/development/python-modules/pytest-html/default.nix35
-rw-r--r--pkgs/development/python-modules/pytest-httpbin/default.nix39
-rw-r--r--pkgs/development/python-modules/pytest-httpserver/default.nix31
-rw-r--r--pkgs/development/python-modules/pytest-httpx/default.nix39
-rw-r--r--pkgs/development/python-modules/pytest-image-diff/default.nix19
-rw-r--r--pkgs/development/python-modules/pytest-instafail/default.nix25
-rw-r--r--pkgs/development/python-modules/pytest-isort/default.nix41
-rw-r--r--pkgs/development/python-modules/pytest-jupyter/default.nix127
-rw-r--r--pkgs/development/python-modules/pytest-lazy-fixture/default.nix23
-rw-r--r--pkgs/development/python-modules/pytest-lazy-fixtures/default.nix32
-rw-r--r--pkgs/development/python-modules/pytest-localserver/default.nix17
-rw-r--r--pkgs/development/python-modules/pytest-logdog/default.nix37
-rw-r--r--pkgs/development/python-modules/pytest-markdown-docs/default.nix43
-rw-r--r--pkgs/development/python-modules/pytest-md-report/default.nix37
-rw-r--r--pkgs/development/python-modules/pytest-metadata/default.nix25
-rw-r--r--pkgs/development/python-modules/pytest-mock/default.nix25
-rw-r--r--pkgs/development/python-modules/pytest-mockito/default.nix25
-rw-r--r--pkgs/development/python-modules/pytest-mockservers/default.nix39
-rw-r--r--pkgs/development/python-modules/pytest-mpl/default.nix36
-rw-r--r--pkgs/development/python-modules/pytest-mypy-plugins/default.nix47
-rw-r--r--pkgs/development/python-modules/pytest-mypy/default.nix25
-rw-r--r--pkgs/development/python-modules/pytest-notebook/default.nix41
-rw-r--r--pkgs/development/python-modules/pytest-openfiles/default.nix50
-rw-r--r--pkgs/development/python-modules/pytest-order/default.nix22
-rw-r--r--pkgs/development/python-modules/pytest-parallel/default.nix21
-rw-r--r--pkgs/development/python-modules/pytest-param-files/default.nix35
-rw-r--r--pkgs/development/python-modules/pytest-playwright/default.nix41
-rw-r--r--pkgs/development/python-modules/pytest-plt/default.nix11
-rw-r--r--pkgs/development/python-modules/pytest-postgresql/default.nix39
-rw-r--r--pkgs/development/python-modules/pytest-pudb/default.nix13
-rw-r--r--pkgs/development/python-modules/pytest-pylint/default.nix29
-rw-r--r--pkgs/development/python-modules/pytest-pytestrail/default.nix29
-rw-r--r--pkgs/development/python-modules/pytest-qt/default.nix31
-rw-r--r--pkgs/development/python-modules/pytest-quickcheck/default.nix17
-rw-r--r--pkgs/development/python-modules/pytest-raises/default.nix27
-rw-r--r--pkgs/development/python-modules/pytest-raisesregexp/default.nix14
-rw-r--r--pkgs/development/python-modules/pytest-raisin/default.nix19
-rw-r--r--pkgs/development/python-modules/pytest-random-order/default.nix31
-rw-r--r--pkgs/development/python-modules/pytest-randomly/default.nix35
-rw-r--r--pkgs/development/python-modules/pytest-recording/default.nix53
-rw-r--r--pkgs/development/python-modules/pytest-regressions/default.nix61
-rw-r--r--pkgs/development/python-modules/pytest-relaxed/default.nix35
-rw-r--r--pkgs/development/python-modules/pytest-remotedata/default.nix37
-rw-r--r--pkgs/development/python-modules/pytest-repeat/default.nix29
-rw-r--r--pkgs/development/python-modules/pytest-rerunfailures/default.nix35
-rw-r--r--pkgs/development/python-modules/pytest-resource-path/default.nix31
-rw-r--r--pkgs/development/python-modules/pytest-reverse/default.nix19
-rw-r--r--pkgs/development/python-modules/pytest-runner/default.nix11
-rw-r--r--pkgs/development/python-modules/pytest-server-fixtures/default.nix42
-rw-r--r--pkgs/development/python-modules/pytest-services/default.nix35
-rw-r--r--pkgs/development/python-modules/pytest-shutil/default.nix88
-rw-r--r--pkgs/development/python-modules/pytest-snapshot/default.nix35
-rw-r--r--pkgs/development/python-modules/pytest-socket/default.nix27
-rw-r--r--pkgs/development/python-modules/pytest-spec/default.nix2
-rw-r--r--pkgs/development/python-modules/pytest-subprocess/default.nix39
-rw-r--r--pkgs/development/python-modules/pytest-subtesthack/default.nix7
-rw-r--r--pkgs/development/python-modules/pytest-subtests/default.nix35
-rw-r--r--pkgs/development/python-modules/pytest-sugar/default.nix27
-rw-r--r--pkgs/development/python-modules/pytest-tap/default.nix31
-rw-r--r--pkgs/development/python-modules/pytest-test-utils/default.nix42
-rw-r--r--pkgs/development/python-modules/pytest-testinfra/default.nix4
-rw-r--r--pkgs/development/python-modules/pytest-testmon/default.nix33
-rw-r--r--pkgs/development/python-modules/pytest-textual-snapshot/default.nix33
-rw-r--r--pkgs/development/python-modules/pytest-timeout/default.nix25
-rw-r--r--pkgs/development/python-modules/pytest-tornado/default.nix15
-rw-r--r--pkgs/development/python-modules/pytest-tornasync/default.nix14
-rw-r--r--pkgs/development/python-modules/pytest-trio/default.nix12
-rw-r--r--pkgs/development/python-modules/pytest-twisted/default.nix27
-rw-r--r--pkgs/development/python-modules/pytest-unordered/default.nix19
-rw-r--r--pkgs/development/python-modules/pytest-vcr/default.nix15
-rw-r--r--pkgs/development/python-modules/pytest-virtualenv/default.nix48
-rw-r--r--pkgs/development/python-modules/pytest-voluptuous/default.nix35
-rw-r--r--pkgs/development/python-modules/pytest-warnings/default.nix7
-rw-r--r--pkgs/development/python-modules/pytest-watch/default.nix21
-rw-r--r--pkgs/development/python-modules/pytest-xdist/default.nix44
-rw-r--r--pkgs/development/python-modules/pytest-xprocess/default.nix27
-rw-r--r--pkgs/development/python-modules/pytest-xvfb/default.nix23
-rw-r--r--pkgs/development/python-modules/pytest/7.nix204
-rw-r--r--pkgs/development/python-modules/pytest/8.2.2-unittest-testcase-regression.patch72
-rw-r--r--pkgs/development/python-modules/pytest/default.nix95
-rw-r--r--pkgs/development/python-modules/pytest/tests.nix7
-rw-r--r--pkgs/development/python-modules/pytestcache/default.nix9
-rw-r--r--pkgs/development/python-modules/python-arango/default.nix47
-rw-r--r--pkgs/development/python-modules/python-awair/default.nix21
-rw-r--r--pkgs/development/python-modules/python-axolotl-curve25519/default.nix6
-rw-r--r--pkgs/development/python-modules/python-axolotl/default.nix15
-rw-r--r--pkgs/development/python-modules/python-barcode/default.nix29
-rw-r--r--pkgs/development/python-modules/python-baseconv/default.nix9
-rw-r--r--pkgs/development/python-modules/python-benedict/default.nix71
-rw-r--r--pkgs/development/python-modules/python-bidi/default.nix7
-rw-r--r--pkgs/development/python-modules/python-binance/default.nix33
-rw-r--r--pkgs/development/python-modules/python-box/default.nix67
-rw-r--r--pkgs/development/python-modules/python-bring-api/default.nix25
-rw-r--r--pkgs/development/python-modules/python-bsblan/default.nix37
-rw-r--r--pkgs/development/python-modules/python-cinderclient/default.nix31
-rw-r--r--pkgs/development/python-modules/python-codon-tables/default.nix7
-rw-r--r--pkgs/development/python-modules/python-constraint/default.nix11
-rw-r--r--pkgs/development/python-modules/python-creole/default.nix54
-rw-r--r--pkgs/development/python-modules/python-crfsuite/default.nix19
-rw-r--r--pkgs/development/python-modules/python-crontab/default.nix35
-rw-r--r--pkgs/development/python-modules/python-csxcad/default.nix26
-rw-r--r--pkgs/development/python-modules/python-ctags3/default.nix11
-rw-r--r--pkgs/development/python-modules/python-daemon/default.nix32
-rw-r--r--pkgs/development/python-modules/python-datemath/default.nix31
-rw-r--r--pkgs/development/python-modules/python-dateutil/default.nix16
-rw-r--r--pkgs/development/python-modules/python-dbusmock/default.nix80
-rw-r--r--pkgs/development/python-modules/python-decouple/default.nix17
-rw-r--r--pkgs/development/python-modules/python-didl-lite/default.nix31
-rw-r--r--pkgs/development/python-modules/python-digitalocean/default.nix5
-rw-r--r--pkgs/development/python-modules/python-djvulibre/default.nix30
-rw-r--r--pkgs/development/python-modules/python-docs-theme/default.nix25
-rw-r--r--pkgs/development/python-modules/python-docx/default.nix43
-rw-r--r--pkgs/development/python-modules/python-doi/default.nix7
-rw-r--r--pkgs/development/python-modules/python-dotenv/default.nix23
-rw-r--r--pkgs/development/python-modules/python-ecobee-api/default.nix32
-rw-r--r--pkgs/development/python-modules/python-editor/default.nix9
-rw-r--r--pkgs/development/python-modules/python-efl/default.nix37
-rw-r--r--pkgs/development/python-modules/python-engineio/default.nix59
-rw-r--r--pkgs/development/python-modules/python-etcd/default.nix31
-rw-r--r--pkgs/development/python-modules/python-ethtool/default.nix14
-rw-r--r--pkgs/development/python-modules/python-ev3dev2/default.nix11
-rw-r--r--pkgs/development/python-modules/python-family-hub-local/default.nix21
-rw-r--r--pkgs/development/python-modules/python-fedora/default.nix39
-rw-r--r--pkgs/development/python-modules/python-flirt/default.nix17
-rw-r--r--pkgs/development/python-modules/python-fontconfig/default.nix29
-rw-r--r--pkgs/development/python-modules/python-frontmatter/default.nix14
-rw-r--r--pkgs/development/python-modules/python-fsutil/default.nix35
-rw-r--r--pkgs/development/python-modules/python-fullykiosk/default.nix23
-rw-r--r--pkgs/development/python-modules/python-fx/default.nix57
-rw-r--r--pkgs/development/python-modules/python-gammu/default.nix25
-rw-r--r--pkgs/development/python-modules/python-gitlab/default.nix50
-rw-r--r--pkgs/development/python-modules/python-glanceclient/default.nix73
-rw-r--r--pkgs/development/python-modules/python-gnupg/default.nix21
-rw-r--r--pkgs/development/python-modules/python-google-nest/default.nix19
-rw-r--r--pkgs/development/python-modules/python-gvm/default.nix43
-rw-r--r--pkgs/development/python-modules/python-heatclient/default.nix43
-rw-r--r--pkgs/development/python-modules/python-hglib/default.nix20
-rw-r--r--pkgs/development/python-modules/python-hl7/default.nix15
-rw-r--r--pkgs/development/python-modules/python-homeassistant-analytics/default.nix3
-rw-r--r--pkgs/development/python-modules/python-homewizard-energy/default.nix37
-rw-r--r--pkgs/development/python-modules/python-hosts/default.nix28
-rw-r--r--pkgs/development/python-modules/python-hpilo/default.nix12
-rw-r--r--pkgs/development/python-modules/python-http-client/default.nix17
-rw-r--r--pkgs/development/python-modules/python-i18n/default.nix13
-rw-r--r--pkgs/development/python-modules/python-idzip/default.nix23
-rw-r--r--pkgs/development/python-modules/python-ipmi/default.nix29
-rw-r--r--pkgs/development/python-modules/python-ipware/default.nix27
-rw-r--r--pkgs/development/python-modules/python-ironicclient/default.nix47
-rw-r--r--pkgs/development/python-modules/python-izone/default.nix29
-rw-r--r--pkgs/development/python-modules/python-jenkins/default.nix56
-rw-r--r--pkgs/development/python-modules/python-jose/default.nix67
-rw-r--r--pkgs/development/python-modules/python-json-logger/default.nix11
-rw-r--r--pkgs/development/python-modules/python-jsonrpc-server/default.nix27
-rw-r--r--pkgs/development/python-modules/python-juicenet/default.nix19
-rw-r--r--pkgs/development/python-modules/python-kasa/default.nix47
-rw-r--r--pkgs/development/python-modules/python-keycloak/default.nix48
-rw-r--r--pkgs/development/python-modules/python-keystoneclient/default.nix31
-rw-r--r--pkgs/development/python-modules/python-ldap-test/default.nix8
-rw-r--r--pkgs/development/python-modules/python-ldap/default.nix44
-rw-r--r--pkgs/development/python-modules/python-libnmap/default.nix21
-rw-r--r--pkgs/development/python-modules/python-linux-procfs/default.nix8
-rw-r--r--pkgs/development/python-modules/python-logstash/default.nix6
-rw-r--r--pkgs/development/python-modules/python-louvain/default.nix28
-rw-r--r--pkgs/development/python-modules/python-lsp-black/default.nix61
-rw-r--r--pkgs/development/python-modules/python-lsp-jsonrpc/default.nix29
-rw-r--r--pkgs/development/python-modules/python-lsp-ruff/default.nix29
-rw-r--r--pkgs/development/python-modules/python-lsp-server/default.nix1
-rw-r--r--pkgs/development/python-modules/python-ly/default.nix6
-rw-r--r--pkgs/development/python-modules/python-lzf/default.nix24
-rw-r--r--pkgs/development/python-modules/python-lzo/default.nix30
-rw-r--r--pkgs/development/python-modules/python-magic/default.nix23
-rw-r--r--pkgs/development/python-modules/python-manilaclient/default.nix49
-rw-r--r--pkgs/development/python-modules/python-manilaclient/tests.nix15
-rw-r--r--pkgs/development/python-modules/python-mapnik/default.nix105
-rw-r--r--pkgs/development/python-modules/python-mapnik/python-mapnik_std_optional.patch176
-rw-r--r--pkgs/development/python-modules/python-markdown-math/default.nix11
-rw-r--r--pkgs/development/python-modules/python-matter-server/default.nix99
-rw-r--r--pkgs/development/python-modules/python-matter-server/link-paa-root-certs.patch29
-rw-r--r--pkgs/development/python-modules/python-mbedtls/default.nix27
-rw-r--r--pkgs/development/python-modules/python-memcached/default.nix19
-rw-r--r--pkgs/development/python-modules/python-miio/default.nix64
-rw-r--r--pkgs/development/python-modules/python-mimeparse/default.nix15
-rw-r--r--pkgs/development/python-modules/python-mnist/default.nix6
-rw-r--r--pkgs/development/python-modules/python-motionmount/default.nix4
-rw-r--r--pkgs/development/python-modules/python-mpv-jsonipc/default.nix17
-rw-r--r--pkgs/development/python-modules/python-multipart/default.nix47
-rw-r--r--pkgs/development/python-modules/python-musicpd/default.nix14
-rw-r--r--pkgs/development/python-modules/python-mystrom/default.nix15
-rw-r--r--pkgs/development/python-modules/python-ndn/default.nix39
-rw-r--r--pkgs/development/python-modules/python-nest/default.nix21
-rw-r--r--pkgs/development/python-modules/python-nmap/default.nix17
-rw-r--r--pkgs/development/python-modules/python-nomad/default.nix31
-rw-r--r--pkgs/development/python-modules/python-novaclient/default.nix31
-rw-r--r--pkgs/development/python-modules/python-nvd3/default.nix16
-rw-r--r--pkgs/development/python-modules/python-oauth2/default.nix9
-rw-r--r--pkgs/development/python-modules/python-olm/default.nix20
-rw-r--r--pkgs/development/python-modules/python-on-whales/default.nix21
-rw-r--r--pkgs/development/python-modules/python-opendata-transport/default.nix23
-rw-r--r--pkgs/development/python-modules/python-openems/default.nix25
-rw-r--r--pkgs/development/python-modules/python-opensky/default.nix33
-rw-r--r--pkgs/development/python-modules/python-openstackclient/default.nix31
-rw-r--r--pkgs/development/python-modules/python-openzwave/default.nix33
-rw-r--r--pkgs/development/python-modules/python-osc/default.nix27
-rw-r--r--pkgs/development/python-modules/python-otbr-api/default.nix31
-rw-r--r--pkgs/development/python-modules/python-owasp-zap-v2-4/default.nix17
-rw-r--r--pkgs/development/python-modules/python-packer/default.nix10
-rw-r--r--pkgs/development/python-modules/python-pae/default.nix23
-rw-r--r--pkgs/development/python-modules/python-pam/default.nix28
-rw-r--r--pkgs/development/python-modules/python-periphery/default.nix6
-rw-r--r--pkgs/development/python-modules/python-picnic-api/default.nix17
-rw-r--r--pkgs/development/python-modules/python-pidfile/default.nix13
-rw-r--r--pkgs/development/python-modules/python-pipedrive/default.nix9
-rw-r--r--pkgs/development/python-modules/python-pkcs11/default.nix15
-rw-r--r--pkgs/development/python-modules/python-pptx/default.nix15
-rw-r--r--pkgs/development/python-modules/python-prctl/default.nix11
-rw-r--r--pkgs/development/python-modules/python-ptrace/default.nix13
-rw-r--r--pkgs/development/python-modules/python-rabbitair/default.nix33
-rw-r--r--pkgs/development/python-modules/python-rapidjson/default.nix32
-rw-r--r--pkgs/development/python-modules/python-redis-lock/default.nix57
-rw-r--r--pkgs/development/python-modules/python-registry/default.nix23
-rw-r--r--pkgs/development/python-modules/python-roborock/default.nix6
-rw-r--r--pkgs/development/python-modules/python-rtmidi/default.nix67
-rw-r--r--pkgs/development/python-modules/python-sat/default.nix32
-rw-r--r--pkgs/development/python-modules/python-secp256k1-cardano/default.nix16
-rw-r--r--pkgs/development/python-modules/python-simple-hipchat/default.nix6
-rw-r--r--pkgs/development/python-modules/python-slugify/default.nix43
-rw-r--r--pkgs/development/python-modules/python-smarttub/default.nix27
-rw-r--r--pkgs/development/python-modules/python-snap7/default.nix17
-rw-r--r--pkgs/development/python-modules/python-snappy/default.nix19
-rw-r--r--pkgs/development/python-modules/python-socketio/default.nix49
-rw-r--r--pkgs/development/python-modules/python-socks/default.nix33
-rw-r--r--pkgs/development/python-modules/python-songpal/default.nix23
-rw-r--r--pkgs/development/python-modules/python-sql/default.nix26
-rw-r--r--pkgs/development/python-modules/python-status/default.nix7
-rw-r--r--pkgs/development/python-modules/python-stdnum/default.nix31
-rw-r--r--pkgs/development/python-modules/python-string-utils/default.nix11
-rw-r--r--pkgs/development/python-modules/python-swiftclient/default.nix33
-rw-r--r--pkgs/development/python-modules/python-tado/default.nix34
-rw-r--r--pkgs/development/python-modules/python-tds/default.nix31
-rw-r--r--pkgs/development/python-modules/python-technove/default.nix35
-rw-r--r--pkgs/development/python-modules/python-telegram-bot/default.nix62
-rw-r--r--pkgs/development/python-modules/python-telegram/default.nix31
-rw-r--r--pkgs/development/python-modules/python-toolbox/default.nix13
-rw-r--r--pkgs/development/python-modules/python-trovo/default.nix21
-rw-r--r--pkgs/development/python-modules/python-twitch-client/default.nix29
-rw-r--r--pkgs/development/python-modules/python-twitter/default.nix39
-rw-r--r--pkgs/development/python-modules/python-u2flib-host/default.nix13
-rw-r--r--pkgs/development/python-modules/python-u2flib-server/default.nix34
-rw-r--r--pkgs/development/python-modules/python-uinput/default.nix9
-rw-r--r--pkgs/development/python-modules/python-ulid/default.nix19
-rw-r--r--pkgs/development/python-modules/python-unshare/default.nix14
-rw-r--r--pkgs/development/python-modules/python-utils/default.nix38
-rw-r--r--pkgs/development/python-modules/python-vagrant/default.nix17
-rw-r--r--pkgs/development/python-modules/python-velbus/default.nix19
-rw-r--r--pkgs/development/python-modules/python-vipaccess/default.nix17
-rw-r--r--pkgs/development/python-modules/python-vlc/default.nix25
-rw-r--r--pkgs/development/python-modules/python-wifi/default.nix15
-rw-r--r--pkgs/development/python-modules/python-wink/default.nix9
-rw-r--r--pkgs/development/python-modules/python-xmp-toolkit/default.nix16
-rw-r--r--pkgs/development/python-modules/python-xz/default.nix11
-rw-r--r--pkgs/development/python-modules/python-yate/default.nix21
-rw-r--r--pkgs/development/python-modules/python-youtube/default.nix28
-rw-r--r--pkgs/development/python-modules/python-zbar/default.nix19
-rw-r--r--pkgs/development/python-modules/python3-application/default.nix22
-rw-r--r--pkgs/development/python-modules/python3-eventlib/default.nix18
-rw-r--r--pkgs/development/python-modules/python3-gnutls/default.nix32
-rw-r--r--pkgs/development/python-modules/python3-openid/default.nix8
-rw-r--r--pkgs/development/python-modules/python3-saml/default.nix31
-rw-r--r--pkgs/development/python-modules/pythondialog/default.nix12
-rw-r--r--pkgs/development/python-modules/pythonegardia/default.nix19
-rw-r--r--pkgs/development/python-modules/pythonfinder/default.nix60
-rw-r--r--pkgs/development/python-modules/pythonix/default.nix26
-rw-r--r--pkgs/development/python-modules/pythonnet/default.nix26
-rw-r--r--pkgs/development/python-modules/pythonnet/deps.nix1137
-rw-r--r--pkgs/development/python-modules/pythonocc-core/default.nix54
-rw-r--r--pkgs/development/python-modules/pythran/default.nix46
-rw-r--r--pkgs/development/python-modules/pytibber/default.nix31
-rw-r--r--pkgs/development/python-modules/pytidylib/default.nix9
-rw-r--r--pkgs/development/python-modules/pytikz-allefeld/default.nix27
-rw-r--r--pkgs/development/python-modules/pytile/default.nix33
-rw-r--r--pkgs/development/python-modules/pytimeparse/default.nix25
-rw-r--r--pkgs/development/python-modules/pytimeparse2/default.nix9
-rw-r--r--pkgs/development/python-modules/pytlv/default.nix20
-rw-r--r--pkgs/development/python-modules/pytm/default.nix31
-rw-r--r--pkgs/development/python-modules/pytmx/default.nix21
-rw-r--r--pkgs/development/python-modules/pytomlpp/default.nix25
-rw-r--r--pkgs/development/python-modules/pytomorrowio/default.nix25
-rw-r--r--pkgs/development/python-modules/pytoolconfig/default.nix56
-rw-r--r--pkgs/development/python-modules/pytools/default.nix33
-rw-r--r--pkgs/development/python-modules/pytorch-lightning/default.nix57
-rw-r--r--pkgs/development/python-modules/pytorch-metric-learning/default.nix63
-rw-r--r--pkgs/development/python-modules/pytorch-msssim/default.nix17
-rw-r--r--pkgs/development/python-modules/pytorch-pfn-extras/default.nix104
-rw-r--r--pkgs/development/python-modules/pytraccar/default.nix33
-rw-r--r--pkgs/development/python-modules/pytradfri/default.nix30
-rw-r--r--pkgs/development/python-modules/pytrafikverket/default.nix23
-rw-r--r--pkgs/development/python-modules/pytransportnsw/default.nix15
-rw-r--r--pkgs/development/python-modules/pytransportnswv2/default.nix31
-rw-r--r--pkgs/development/python-modules/pytrends/default.nix36
-rw-r--r--pkgs/development/python-modules/pytricia/default.nix9
-rw-r--r--pkgs/development/python-modules/pytrydan/default.nix47
-rw-r--r--pkgs/development/python-modules/pyttsx3/default.nix8
-rw-r--r--pkgs/development/python-modules/pytube/default.nix19
-rw-r--r--pkgs/development/python-modules/pytubefix/default.nix28
-rw-r--r--pkgs/development/python-modules/pytun/default.nix11
-rw-r--r--pkgs/development/python-modules/pyturbojpeg/default.nix33
-rw-r--r--pkgs/development/python-modules/pytweening/default.nix7
-rw-r--r--pkgs/development/python-modules/pytz-deprecation-shim/default.nix36
-rw-r--r--pkgs/development/python-modules/pytz/default.nix20
-rw-r--r--pkgs/development/python-modules/pytzdata/default.nix6
-rw-r--r--pkgs/development/python-modules/pyu2f/default.nix21
-rw-r--r--pkgs/development/python-modules/pyuca/default.nix19
-rw-r--r--pkgs/development/python-modules/pyudev/default.nix34
-rw-r--r--pkgs/development/python-modules/pyunifi/default.nix8
-rw-r--r--pkgs/development/python-modules/pyunifiprotect/default.nix76
-rw-r--r--pkgs/development/python-modules/pyunpack/default.nix19
-rw-r--r--pkgs/development/python-modules/pyupdate/default.nix9
-rw-r--r--pkgs/development/python-modules/pyupgrade/default.nix25
-rw-r--r--pkgs/development/python-modules/pyuptimerobot/default.nix25
-rw-r--r--pkgs/development/python-modules/pyusb/default.nix26
-rw-r--r--pkgs/development/python-modules/pyuseragents/default.nix9
-rw-r--r--pkgs/development/python-modules/pyutil/default.nix34
-rw-r--r--pkgs/development/python-modules/pyutilib/default.nix11
-rw-r--r--pkgs/development/python-modules/pyuv/default.nix13
-rw-r--r--pkgs/development/python-modules/pyvcd/default.nix19
-rw-r--r--pkgs/development/python-modules/pyvera/default.nix21
-rw-r--r--pkgs/development/python-modules/pyverilog/default.nix21
-rw-r--r--pkgs/development/python-modules/pyversasense/default.nix29
-rw-r--r--pkgs/development/python-modules/pyvesync/default.nix19
-rw-r--r--pkgs/development/python-modules/pyvex/default.nix39
-rw-r--r--pkgs/development/python-modules/pyvicare/default.nix21
-rw-r--r--pkgs/development/python-modules/pyvips/default.nix41
-rw-r--r--pkgs/development/python-modules/pyvirtualdisplay/default.nix7
-rw-r--r--pkgs/development/python-modules/pyvis/default.nix26
-rw-r--r--pkgs/development/python-modules/pyvisa-py/default.nix33
-rw-r--r--pkgs/development/python-modules/pyvisa-sim/default.nix33
-rw-r--r--pkgs/development/python-modules/pyvisa/default.nix29
-rw-r--r--pkgs/development/python-modules/pyvista/default.nix37
-rw-r--r--pkgs/development/python-modules/pyviz-comms/default.nix11
-rw-r--r--pkgs/development/python-modules/pyvizio/default.nix21
-rw-r--r--pkgs/development/python-modules/pyvlx/default.nix33
-rw-r--r--pkgs/development/python-modules/pyvmomi/default.nix17
-rw-r--r--pkgs/development/python-modules/pyvo/default.nix36
-rw-r--r--pkgs/development/python-modules/pyvolumio/default.nix11
-rw-r--r--pkgs/development/python-modules/pyvoro/default.nix7
-rw-r--r--pkgs/development/python-modules/pywal/default.nix9
-rw-r--r--pkgs/development/python-modules/pywatchman/default.nix8
-rw-r--r--pkgs/development/python-modules/pywaterkotte/default.nix29
-rw-r--r--pkgs/development/python-modules/pywavefront/default.nix24
-rw-r--r--pkgs/development/python-modules/pywavelets/default.nix18
-rw-r--r--pkgs/development/python-modules/pywayland/default.nix17
-rw-r--r--pkgs/development/python-modules/pywbem/default.nix53
-rw-r--r--pkgs/development/python-modules/pyweatherflowrest/default.nix26
-rw-r--r--pkgs/development/python-modules/pyweatherflowudp/default.nix28
-rw-r--r--pkgs/development/python-modules/pywebpush/default.nix35
-rw-r--r--pkgs/development/python-modules/pywebview/default.nix39
-rw-r--r--pkgs/development/python-modules/pywemo/default.nix33
-rw-r--r--pkgs/development/python-modules/pywerview/default.nix39
-rw-r--r--pkgs/development/python-modules/pywfa/default.nix19
-rw-r--r--pkgs/development/python-modules/pywilight/default.nix17
-rw-r--r--pkgs/development/python-modules/pywinrm/default.nix34
-rw-r--r--pkgs/development/python-modules/pywizlight/default.nix27
-rw-r--r--pkgs/development/python-modules/pywlroots/default.nix62
-rw-r--r--pkgs/development/python-modules/pyworld/default.nix19
-rw-r--r--pkgs/development/python-modules/pyws66i/default.nix19
-rw-r--r--pkgs/development/python-modules/pyx/default.nix9
-rw-r--r--pkgs/development/python-modules/pyxattr/default.nix39
-rw-r--r--pkgs/development/python-modules/pyxbe/default.nix19
-rw-r--r--pkgs/development/python-modules/pyxdg/default.nix9
-rw-r--r--pkgs/development/python-modules/pyxeoma/default.nix9
-rw-r--r--pkgs/development/python-modules/pyxiaomigateway/default.nix9
-rw-r--r--pkgs/development/python-modules/pyxl3/default.nix11
-rw-r--r--pkgs/development/python-modules/pyxlsb/default.nix8
-rw-r--r--pkgs/development/python-modules/pyxnat/default.nix53
-rw-r--r--pkgs/development/python-modules/pyyaml-env-tag/default.nix21
-rw-r--r--pkgs/development/python-modules/pyyaml-include/default.nix25
-rw-r--r--pkgs/development/python-modules/pyyaml/default.nix19
-rw-r--r--pkgs/development/python-modules/pyyardian/default.nix23
-rw-r--r--pkgs/development/python-modules/pyzabbix/default.nix23
-rw-r--r--pkgs/development/python-modules/pyzbar/default.nix24
-rw-r--r--pkgs/development/python-modules/pyzerproc/default.nix25
-rw-r--r--pkgs/development/python-modules/pyzipper/default.nix31
-rw-r--r--pkgs/development/python-modules/pyzmq/default.nix76
-rw-r--r--pkgs/development/python-modules/pyzufall/default.nix30
-rw-r--r--pkgs/development/python-modules/qasync/default.nix17
-rw-r--r--pkgs/development/python-modules/qbittorrent-api/default.nix28
-rw-r--r--pkgs/development/python-modules/qcelemental/default.nix35
-rw-r--r--pkgs/development/python-modules/qcengine/default.nix31
-rw-r--r--pkgs/development/python-modules/qcodes-contrib-drivers/default.nix56
-rw-r--r--pkgs/development/python-modules/qcodes/default.nix161
-rw-r--r--pkgs/development/python-modules/qcs-api-client/default.nix10
-rw-r--r--pkgs/development/python-modules/qcs-sdk-python/Cargo.lock71
-rw-r--r--pkgs/development/python-modules/qcs-sdk-python/default.nix15
-rw-r--r--pkgs/development/python-modules/qdarkstyle/default.nix18
-rw-r--r--pkgs/development/python-modules/qdldl/default.nix23
-rw-r--r--pkgs/development/python-modules/qdrant-client/default.nix4
-rw-r--r--pkgs/development/python-modules/qds-sdk/default.nix38
-rw-r--r--pkgs/development/python-modules/qemu/default.nix41
-rw-r--r--pkgs/development/python-modules/qgrid/default.nix40
-rw-r--r--pkgs/development/python-modules/qiling/default.nix38
-rw-r--r--pkgs/development/python-modules/qimage2ndarray/default.nix12
-rw-r--r--pkgs/development/python-modules/qingping-ble/default.nix31
-rw-r--r--pkgs/development/python-modules/qiskit-aer/default.nix52
-rw-r--r--pkgs/development/python-modules/qiskit-finance/default.nix49
-rw-r--r--pkgs/development/python-modules/qiskit-ibmq-provider/default.nix53
-rw-r--r--pkgs/development/python-modules/qiskit-ignis/default.nix69
-rw-r--r--pkgs/development/python-modules/qiskit-machine-learning/default.nix43
-rw-r--r--pkgs/development/python-modules/qiskit-nature/default.nix51
-rw-r--r--pkgs/development/python-modules/qiskit-optimization/default.nix37
-rw-r--r--pkgs/development/python-modules/qiskit-terra/default.nix253
-rw-r--r--pkgs/development/python-modules/qiskit/default.nix42
-rw-r--r--pkgs/development/python-modules/qmk-dotty-dict/default.nix17
-rw-r--r--pkgs/development/python-modules/qnap-qsw/default.nix19
-rw-r--r--pkgs/development/python-modules/qnapstats/default.nix19
-rw-r--r--pkgs/development/python-modules/qpageview/default.nix19
-rw-r--r--pkgs/development/python-modules/qpsolvers/default.nix57
-rw-r--r--pkgs/development/python-modules/qrcode-terminal/default.nix38
-rw-r--r--pkgs/development/python-modules/qrcode/default.nix37
-rw-r--r--pkgs/development/python-modules/qreactor/default.nix27
-rw-r--r--pkgs/development/python-modules/qscintilla-qt5/default.nix72
-rw-r--r--pkgs/development/python-modules/qstylizer/default.nix27
-rw-r--r--pkgs/development/python-modules/qt-material/default.nix17
-rw-r--r--pkgs/development/python-modules/qt5reactor/default.nix15
-rw-r--r--pkgs/development/python-modules/qtawesome/default.nix23
-rw-r--r--pkgs/development/python-modules/qtconsole/default.nix48
-rw-r--r--pkgs/development/python-modules/qtile-extras/default.nix6
-rw-r--r--pkgs/development/python-modules/qtile/default.nix104
-rw-r--r--pkgs/development/python-modules/qtile/wrapper.nix8
-rw-r--r--pkgs/development/python-modules/qtpy/default.nix29
-rw-r--r--pkgs/development/python-modules/quadprog/default.nix23
-rw-r--r--pkgs/development/python-modules/qualysclient/default.nix31
-rw-r--r--pkgs/development/python-modules/quamash/default.nix14
-rw-r--r--pkgs/development/python-modules/quandl/default.nix51
-rw-r--r--pkgs/development/python-modules/quantile-forest/default.nix4
-rw-r--r--pkgs/development/python-modules/quantile-python/default.nix7
-rw-r--r--pkgs/development/python-modules/quantiphy-eval/default.nix19
-rw-r--r--pkgs/development/python-modules/quantiphy/default.nix33
-rw-r--r--pkgs/development/python-modules/quantities/default.nix29
-rw-r--r--pkgs/development/python-modules/quantulum3/default.nix29
-rw-r--r--pkgs/development/python-modules/quantum-gateway/default.nix25
-rw-r--r--pkgs/development/python-modules/quart-cors/default.nix45
-rw-r--r--pkgs/development/python-modules/quart/default.nix101
-rw-r--r--pkgs/development/python-modules/quaternion/default.nix15
-rw-r--r--pkgs/development/python-modules/qudida/default.nix25
-rw-r--r--pkgs/development/python-modules/questionary/default.nix35
-rw-r--r--pkgs/development/python-modules/queuelib/default.nix16
-rw-r--r--pkgs/development/python-modules/quil/default.nix14
-rw-r--r--pkgs/development/python-modules/quixote/default.nix2
-rw-r--r--pkgs/development/python-modules/qutip/default.nix59
-rw-r--r--pkgs/development/python-modules/r2pipe/default.nix46
-rw-r--r--pkgs/development/python-modules/rachiopy/default.nix29
-rw-r--r--pkgs/development/python-modules/radian/default.nix55
-rw-r--r--pkgs/development/python-modules/radicale-infcloud/default.nix12
-rw-r--r--pkgs/development/python-modules/radio-beam/default.nix33
-rw-r--r--pkgs/development/python-modules/radios/default.nix42
-rw-r--r--pkgs/development/python-modules/radiotherm/default.nix13
-rw-r--r--pkgs/development/python-modules/radish-bdd/default.nix43
-rw-r--r--pkgs/development/python-modules/radon/default.nix35
-rw-r--r--pkgs/development/python-modules/railroad-diagrams/default.nix13
-rw-r--r--pkgs/development/python-modules/rainbowstream/default.nix33
-rw-r--r--pkgs/development/python-modules/raincloudy/default.nix58
-rw-r--r--pkgs/development/python-modules/ramlfications/default.nix47
-rw-r--r--pkgs/development/python-modules/random-user-agent/default.nix36
-rw-r--r--pkgs/development/python-modules/random2/default.nix12
-rw-r--r--pkgs/development/python-modules/randomfiletree/default.nix7
-rw-r--r--pkgs/development/python-modules/range-typed-integers/default.nix15
-rw-r--r--pkgs/development/python-modules/rangehttpserver/default.nix21
-rw-r--r--pkgs/development/python-modules/rangeparser/default.nix25
-rw-r--r--pkgs/development/python-modules/rank-bm25/default.nix17
-rw-r--r--pkgs/development/python-modules/rapidfuzz-capi/default.nix7
-rw-r--r--pkgs/development/python-modules/rapidfuzz/default.nix57
-rw-r--r--pkgs/development/python-modules/rapidgzip/default.nix25
-rw-r--r--pkgs/development/python-modules/rapidocr-onnxruntime/default.nix129
-rw-r--r--pkgs/development/python-modules/rapidocr-onnxruntime/setup-py-override-version-checking.patch30
-rw-r--r--pkgs/development/python-modules/rapt-ble/default.nix33
-rw-r--r--pkgs/development/python-modules/rarfile/default.nix56
-rw-r--r--pkgs/development/python-modules/rasterio/default.nix91
-rw-r--r--pkgs/development/python-modules/ratarmount/default.nix22
-rw-r--r--pkgs/development/python-modules/ratarmountcore/default.nix44
-rw-r--r--pkgs/development/python-modules/ratelim/default.nix13
-rw-r--r--pkgs/development/python-modules/ratelimit/default.nix9
-rw-r--r--pkgs/development/python-modules/rauth/default.nix26
-rw-r--r--pkgs/development/python-modules/raven/default.nix16
-rw-r--r--pkgs/development/python-modules/rawkit/default.nix17
-rw-r--r--pkgs/development/python-modules/ray/binary-hashes.nix4
-rw-r--r--pkgs/development/python-modules/ray/default.nix138
-rw-r--r--pkgs/development/python-modules/raylib-python-cffi/default.nix57
-rw-r--r--pkgs/development/python-modules/raylib-python-cffi/fix_pyray_builder.patch61
-rw-r--r--pkgs/development/python-modules/razdel/default.nix9
-rw-r--r--pkgs/development/python-modules/rbtools/default.nix28
-rw-r--r--pkgs/development/python-modules/rchitect/default.nix27
-rw-r--r--pkgs/development/python-modules/rcssmin/default.nix13
-rw-r--r--pkgs/development/python-modules/rdflib/default.nix107
-rw-r--r--pkgs/development/python-modules/rdkit/default.nix52
-rw-r--r--pkgs/development/python-modules/re-assert/default.nix13
-rw-r--r--pkgs/development/python-modules/reactivex/default.nix29
-rw-r--r--pkgs/development/python-modules/readabilipy/default.nix33
-rw-r--r--pkgs/development/python-modules/readability-lxml/default.nix27
-rw-r--r--pkgs/development/python-modules/readchar/default.nix21
-rw-r--r--pkgs/development/python-modules/readlike/default.nix14
-rw-r--r--pkgs/development/python-modules/readmdict/default.nix29
-rw-r--r--pkgs/development/python-modules/readme-renderer/default.nix40
-rw-r--r--pkgs/development/python-modules/readme/default.nix20
-rw-r--r--pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix25
-rw-r--r--pkgs/development/python-modules/rebulk/default.nix25
-rw-r--r--pkgs/development/python-modules/recipe-scrapers/default.nix33
-rw-r--r--pkgs/development/python-modules/recline/default.nix23
-rw-r--r--pkgs/development/python-modules/recommonmark/default.nix25
-rw-r--r--pkgs/development/python-modules/reconplogger/default.nix4
-rw-r--r--pkgs/development/python-modules/recordlinkage/default.nix45
-rw-r--r--pkgs/development/python-modules/recurring-ical-events/default.nix31
-rw-r--r--pkgs/development/python-modules/recursive-pth-loader/default.nix13
-rw-r--r--pkgs/development/python-modules/red-black-tree-mod/default.nix21
-rw-r--r--pkgs/development/python-modules/redbaron/default.nix10
-rw-r--r--pkgs/development/python-modules/redis-om/default.nix43
-rw-r--r--pkgs/development/python-modules/redis/default.nix45
-rw-r--r--pkgs/development/python-modules/redshift-connector/default.nix31
-rw-r--r--pkgs/development/python-modules/reedsolo/default.nix21
-rw-r--r--pkgs/development/python-modules/refery/default.nix23
-rw-r--r--pkgs/development/python-modules/reflink/default.nix11
-rw-r--r--pkgs/development/python-modules/regenmaschine/default.nix35
-rw-r--r--pkgs/development/python-modules/regex/default.nix19
-rw-r--r--pkgs/development/python-modules/regional/default.nix25
-rw-r--r--pkgs/development/python-modules/regress/default.nix20
-rw-r--r--pkgs/development/python-modules/reikna/default.nix41
-rw-r--r--pkgs/development/python-modules/related/default.nix27
-rw-r--r--pkgs/development/python-modules/relatorio/default.nix34
-rw-r--r--pkgs/development/python-modules/releases/default.nix18
-rw-r--r--pkgs/development/python-modules/remarshal/default.nix43
-rw-r--r--pkgs/development/python-modules/remi/default.nix23
-rw-r--r--pkgs/development/python-modules/remote-pdb/default.nix8
-rw-r--r--pkgs/development/python-modules/remotezip/default.nix29
-rw-r--r--pkgs/development/python-modules/renault-api/default.nix21
-rw-r--r--pkgs/development/python-modules/rencode/default.nix15
-rw-r--r--pkgs/development/python-modules/renson-endura-delta/default.nix29
-rw-r--r--pkgs/development/python-modules/reolink-aio/default.nix33
-rw-r--r--pkgs/development/python-modules/reolink/default.nix27
-rw-r--r--pkgs/development/python-modules/reorder-python-imports/default.nix27
-rw-r--r--pkgs/development/python-modules/reparser/default.nix9
-rw-r--r--pkgs/development/python-modules/repath/default.nix19
-rw-r--r--pkgs/development/python-modules/repeated-test/default.nix25
-rw-r--r--pkgs/development/python-modules/repl-python-wakatime/default.nix52
-rw-r--r--pkgs/development/python-modules/repocheck/default.nix8
-rw-r--r--pkgs/development/python-modules/reportengine/default.nix34
-rw-r--r--pkgs/development/python-modules/reportlab-qrcode/default.nix50
-rw-r--r--pkgs/development/python-modules/reportlab/default.nix42
-rw-r--r--pkgs/development/python-modules/repoze-lru/default.nix25
-rw-r--r--pkgs/development/python-modules/repoze-sphinx-autointerface/default.nix27
-rw-r--r--pkgs/development/python-modules/repoze-who/default.nix32
-rw-r--r--pkgs/development/python-modules/reproject/default.nix48
-rw-r--r--pkgs/development/python-modules/reprshed/default.nix13
-rw-r--r--pkgs/development/python-modules/reptor/default.nix6
-rw-r--r--pkgs/development/python-modules/reqif/default.nix37
-rw-r--r--pkgs/development/python-modules/requests-aws4auth/default.nix31
-rw-r--r--pkgs/development/python-modules/requests-cache/default.nix99
-rw-r--r--pkgs/development/python-modules/requests-credssp/default.nix29
-rw-r--r--pkgs/development/python-modules/requests-download/default.nix9
-rw-r--r--pkgs/development/python-modules/requests-file/default.nix41
-rw-r--r--pkgs/development/python-modules/requests-futures/default.nix19
-rw-r--r--pkgs/development/python-modules/requests-gssapi/default.nix31
-rw-r--r--pkgs/development/python-modules/requests-hawk/default.nix16
-rw-r--r--pkgs/development/python-modules/requests-http-signature/default.nix35
-rw-r--r--pkgs/development/python-modules/requests-kerberos/default.nix31
-rw-r--r--pkgs/development/python-modules/requests-mock/default.nix27
-rw-r--r--pkgs/development/python-modules/requests-ntlm/default.nix23
-rw-r--r--pkgs/development/python-modules/requests-oauthlib/default.nix29
-rw-r--r--pkgs/development/python-modules/requests-pkcs12/default.nix21
-rw-r--r--pkgs/development/python-modules/requests-ratelimiter/default.nix21
-rw-r--r--pkgs/development/python-modules/requests-toolbelt/default.nix25
-rw-r--r--pkgs/development/python-modules/requests-unixsocket/default.nix35
-rw-r--r--pkgs/development/python-modules/requests-wsgi-adapter/default.nix13
-rw-r--r--pkgs/development/python-modules/requests/default.nix93
-rw-r--r--pkgs/development/python-modules/requestsexceptions/default.nix9
-rw-r--r--pkgs/development/python-modules/requirements-detector/default.nix45
-rw-r--r--pkgs/development/python-modules/reretry/default.nix8
-rw-r--r--pkgs/development/python-modules/rerun-sdk/default.nix21
-rw-r--r--pkgs/development/python-modules/resampy/default.nix23
-rw-r--r--pkgs/development/python-modules/resend/default.nix35
-rw-r--r--pkgs/development/python-modules/resize-right/default.nix19
-rw-r--r--pkgs/development/python-modules/resolvelib/default.nix21
-rw-r--r--pkgs/development/python-modules/responses/default.nix45
-rw-r--r--pkgs/development/python-modules/respx/default.nix56
-rw-r--r--pkgs/development/python-modules/restfly/default.nix27
-rw-r--r--pkgs/development/python-modules/restrictedpython/default.nix29
-rw-r--r--pkgs/development/python-modules/restructuredtext-lint/default.nix29
-rw-r--r--pkgs/development/python-modules/restview/default.nix27
-rw-r--r--pkgs/development/python-modules/result/default.nix15
-rw-r--r--pkgs/development/python-modules/rethinkdb/default.nix18
-rw-r--r--pkgs/development/python-modules/retry-decorator/default.nix19
-rw-r--r--pkgs/development/python-modules/retry/default.nix21
-rw-r--r--pkgs/development/python-modules/retrying/default.nix19
-rw-r--r--pkgs/development/python-modules/returns/default.nix51
-rw-r--r--pkgs/development/python-modules/reuse/default.nix2
-rw-r--r--pkgs/development/python-modules/rfc3339-validator/default.nix21
-rw-r--r--pkgs/development/python-modules/rfc3339/default.nix7
-rw-r--r--pkgs/development/python-modules/rfc3986-validator/default.nix13
-rw-r--r--pkgs/development/python-modules/rfc3986/default.nix25
-rw-r--r--pkgs/development/python-modules/rfc3987/default.nix6
-rw-r--r--pkgs/development/python-modules/rfc6555/default.nix19
-rw-r--r--pkgs/development/python-modules/rfc7464/default.nix8
-rw-r--r--pkgs/development/python-modules/rfc8785/default.nix40
-rw-r--r--pkgs/development/python-modules/rfcat/default.nix31
-rw-r--r--pkgs/development/python-modules/rflink/default.nix29
-rw-r--r--pkgs/development/python-modules/rich-argparse-plus/default.nix31
-rw-r--r--pkgs/development/python-modules/rich-argparse/default.nix39
-rw-r--r--pkgs/development/python-modules/rich-click/default.nix35
-rw-r--r--pkgs/development/python-modules/rich-pixels/default.nix60
-rw-r--r--pkgs/development/python-modules/rich-rst/default.nix36
-rw-r--r--pkgs/development/python-modules/rich/default.nix81
-rw-r--r--pkgs/development/python-modules/ring-doorbell/default.nix2
-rw-r--r--pkgs/development/python-modules/rio-tiler/default.nix65
-rw-r--r--pkgs/development/python-modules/rioxarray/default.nix67
-rw-r--r--pkgs/development/python-modules/ripe-atlas-cousteau/default.nix26
-rw-r--r--pkgs/development/python-modules/ripe-atlas-sagan/default.nix37
-rw-r--r--pkgs/development/python-modules/riprova/default.nix11
-rw-r--r--pkgs/development/python-modules/ripser/default.nix35
-rw-r--r--pkgs/development/python-modules/riscof/default.nix21
-rw-r--r--pkgs/development/python-modules/riscv-config/default.nix7
-rw-r--r--pkgs/development/python-modules/riscv-isac/default.nix37
-rw-r--r--pkgs/development/python-modules/rising/default.nix38
-rw-r--r--pkgs/development/python-modules/ritassist/default.nix21
-rw-r--r--pkgs/development/python-modules/rjpl/default.nix19
-rw-r--r--pkgs/development/python-modules/rjsmin/default.nix13
-rw-r--r--pkgs/development/python-modules/rki-covid-parser/default.nix31
-rw-r--r--pkgs/development/python-modules/rkm-codes/default.nix19
-rw-r--r--pkgs/development/python-modules/rlax/default.nix40
-rw-r--r--pkgs/development/python-modules/rlcard/default.nix76
-rw-r--r--pkgs/development/python-modules/rlp/default.nix21
-rw-r--r--pkgs/development/python-modules/rmcl/default.nix21
-rw-r--r--pkgs/development/python-modules/rmrl/default.nix25
-rw-r--r--pkgs/development/python-modules/rmscene/default.nix27
-rw-r--r--pkgs/development/python-modules/rmsd/default.nix14
-rw-r--r--pkgs/development/python-modules/rnc2rng/default.nix11
-rw-r--r--pkgs/development/python-modules/rnginline/default.nix41
-rw-r--r--pkgs/development/python-modules/rns/default.nix31
-rw-r--r--pkgs/development/python-modules/roadlib/default.nix4
-rw-r--r--pkgs/development/python-modules/roadrecon/default.nix41
-rw-r--r--pkgs/development/python-modules/roadtools/default.nix25
-rw-r--r--pkgs/development/python-modules/roadtx/default.nix4
-rw-r--r--pkgs/development/python-modules/robomachine/default.nix31
-rw-r--r--pkgs/development/python-modules/robot-detection/default.nix7
-rw-r--r--pkgs/development/python-modules/robotframework-databaselibrary/default.nix20
-rw-r--r--pkgs/development/python-modules/robotframework-excellib/default.nix17
-rw-r--r--pkgs/development/python-modules/robotframework-pythonlibcore/default.nix31
-rw-r--r--pkgs/development/python-modules/robotframework-requests/default.nix29
-rw-r--r--pkgs/development/python-modules/robotframework-selenium2library/default.nix8
-rw-r--r--pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix31
-rw-r--r--pkgs/development/python-modules/robotframework-sshlibrary/default.nix20
-rw-r--r--pkgs/development/python-modules/robotframework-tools/default.nix21
-rw-r--r--pkgs/development/python-modules/robotframework/default.nix27
-rw-r--r--pkgs/development/python-modules/robotstatuschecker/default.nix19
-rw-r--r--pkgs/development/python-modules/robotsuite/default.nix19
-rw-r--r--pkgs/development/python-modules/rocket-errbot/default.nix22
-rw-r--r--pkgs/development/python-modules/roku/default.nix16
-rw-r--r--pkgs/development/python-modules/rokuecp/default.nix59
-rw-r--r--pkgs/development/python-modules/rollbar/default.nix30
-rw-r--r--pkgs/development/python-modules/roman/default.nix8
-rw-r--r--pkgs/development/python-modules/ronin/default.nix19
-rw-r--r--pkgs/development/python-modules/roombapy/default.nix37
-rw-r--r--pkgs/development/python-modules/roonapi/default.nix27
-rw-r--r--pkgs/development/python-modules/rope/default.nix25
-rw-r--r--pkgs/development/python-modules/ropgadget/default.nix19
-rw-r--r--pkgs/development/python-modules/ropper/default.nix25
-rw-r--r--pkgs/development/python-modules/rotary-embedding-torch/default.nix33
-rw-r--r--pkgs/development/python-modules/rouge-score/default.nix33
-rw-r--r--pkgs/development/python-modules/routeros-api/default.nix35
-rw-r--r--pkgs/development/python-modules/routes/default.nix22
-rw-r--r--pkgs/development/python-modules/rova/default.nix27
-rw-r--r--pkgs/development/python-modules/rowan/default.nix43
-rw-r--r--pkgs/development/python-modules/rpcq/default.nix35
-rw-r--r--pkgs/development/python-modules/rpdb/default.nix8
-rw-r--r--pkgs/development/python-modules/rpds-py/default.nix39
-rw-r--r--pkgs/development/python-modules/rpi-bad-power/default.nix23
-rw-r--r--pkgs/development/python-modules/rpi-gpio/default.nix6
-rw-r--r--pkgs/development/python-modules/rpi-gpio2/default.nix31
-rw-r--r--pkgs/development/python-modules/rplcd/default.nix6
-rw-r--r--pkgs/development/python-modules/rply/default.nix19
-rw-r--r--pkgs/development/python-modules/rpmfile/default.nix17
-rw-r--r--pkgs/development/python-modules/rpmfluff/default.nix14
-rw-r--r--pkgs/development/python-modules/rpy2/default.nix149
-rw-r--r--pkgs/development/python-modules/rpyc/default.nix33
-rw-r--r--pkgs/development/python-modules/rpyc4/default.nix33
-rw-r--r--pkgs/development/python-modules/rq/default.nix53
-rw-r--r--pkgs/development/python-modules/rsa/default.nix29
-rw-r--r--pkgs/development/python-modules/rsskey/default.nix23
-rw-r--r--pkgs/development/python-modules/rst2ansi/default.nix9
-rw-r--r--pkgs/development/python-modules/rst2pdf/default.nix58
-rw-r--r--pkgs/development/python-modules/rstr/default.nix18
-rw-r--r--pkgs/development/python-modules/rtfde/default.nix27
-rw-r--r--pkgs/development/python-modules/rtfunicode/default.nix9
-rw-r--r--pkgs/development/python-modules/rtmidi-python/default.nix37
-rw-r--r--pkgs/development/python-modules/rtmixer/default.nix19
-rw-r--r--pkgs/development/python-modules/rtoml/default.nix55
-rw-r--r--pkgs/development/python-modules/rtp/default.nix24
-rw-r--r--pkgs/development/python-modules/rtree/default.nix21
-rw-r--r--pkgs/development/python-modules/rtslib/default.nix18
-rw-r--r--pkgs/development/python-modules/rtsp-to-webrtc/default.nix37
-rw-r--r--pkgs/development/python-modules/ruamel-base/default.nix7
-rw-r--r--pkgs/development/python-modules/ruamel-yaml-clib/default.nix9
-rw-r--r--pkgs/development/python-modules/ruamel-yaml/default.nix22
-rw-r--r--pkgs/development/python-modules/rubicon-objc/default.nix31
-rw-r--r--pkgs/development/python-modules/rubymarshal/default.nix8
-rw-r--r--pkgs/development/python-modules/ruff-api/Cargo.lock2932
-rw-r--r--pkgs/development/python-modules/ruff-api/default.nix60
-rw-r--r--pkgs/development/python-modules/ruffus/default.nix17
-rw-r--r--pkgs/development/python-modules/rules/default.nix32
-rw-r--r--pkgs/development/python-modules/runs/default.nix27
-rw-r--r--pkgs/development/python-modules/rustworkx/default.nix35
-rw-r--r--pkgs/development/python-modules/ruuvitag-ble/default.nix33
-rw-r--r--pkgs/development/python-modules/ruyaml/default.nix35
-rw-r--r--pkgs/development/python-modules/rx/default.nix8
-rw-r--r--pkgs/development/python-modules/rxv/default.nix31
-rw-r--r--pkgs/development/python-modules/rzpipe/default.nix13
-rw-r--r--pkgs/development/python-modules/s2clientprotocol/default.nix11
-rw-r--r--pkgs/development/python-modules/s3fs/default.nix33
-rw-r--r--pkgs/development/python-modules/s3transfer/default.nix57
-rw-r--r--pkgs/development/python-modules/sabctools/default.nix16
-rw-r--r--pkgs/development/python-modules/sabyenc/default.nix7
-rw-r--r--pkgs/development/python-modules/sabyenc3/default.nix13
-rw-r--r--pkgs/development/python-modules/sacn/default.nix19
-rw-r--r--pkgs/development/python-modules/sacrebleu/default.nix35
-rw-r--r--pkgs/development/python-modules/sacremoses/default.nix24
-rw-r--r--pkgs/development/python-modules/safe-pysha3/default.nix13
-rw-r--r--pkgs/development/python-modules/safe/default.nix10
-rw-r--r--pkgs/development/python-modules/safeio/default.nix7
-rw-r--r--pkgs/development/python-modules/safetensors/default.nix56
-rw-r--r--pkgs/development/python-modules/safety-schemas/default.nix25
-rw-r--r--pkgs/development/python-modules/safety/default.nix62
-rw-r--r--pkgs/development/python-modules/sagemaker/default.nix71
-rw-r--r--pkgs/development/python-modules/salmon-mail/default.nix30
-rw-r--r--pkgs/development/python-modules/sampledata/default.nix24
-rw-r--r--pkgs/development/python-modules/samplerate/default.nix66
-rw-r--r--pkgs/development/python-modules/samsungctl/default.nix15
-rw-r--r--pkgs/development/python-modules/samsungtvws/default.nix39
-rw-r--r--pkgs/development/python-modules/sane/default.nix13
-rw-r--r--pkgs/development/python-modules/saneyaml/default.nix31
-rw-r--r--pkgs/development/python-modules/sanic-auth/default.nix21
-rw-r--r--pkgs/development/python-modules/sanic-routing/default.nix17
-rw-r--r--pkgs/development/python-modules/sanic-testing/default.nix17
-rw-r--r--pkgs/development/python-modules/sanic-testing/tests.nix15
-rw-r--r--pkgs/development/python-modules/sanic/default.nix166
-rw-r--r--pkgs/development/python-modules/sanix/default.nix21
-rw-r--r--pkgs/development/python-modules/sansio-multipart/default.nix9
-rw-r--r--pkgs/development/python-modules/sarge/default.nix17
-rw-r--r--pkgs/development/python-modules/sarif-om/default.nix17
-rw-r--r--pkgs/development/python-modules/sarif-tools/default.nix62
-rw-r--r--pkgs/development/python-modules/sasmodels/default.nix35
-rw-r--r--pkgs/development/python-modules/scalene/default.nix57
-rw-r--r--pkgs/development/python-modules/scales/default.nix12
-rw-r--r--pkgs/development/python-modules/scancode-toolkit/default.nix138
-rw-r--r--pkgs/development/python-modules/scapy/default.nix99
-rw-r--r--pkgs/development/python-modules/schedule/default.nix23
-rw-r--r--pkgs/development/python-modules/schema-salad/default.nix5
-rw-r--r--pkgs/development/python-modules/schema/default.nix29
-rw-r--r--pkgs/development/python-modules/schemainspect/default.nix49
-rw-r--r--pkgs/development/python-modules/schemdraw/default.nix49
-rw-r--r--pkgs/development/python-modules/schiene/default.nix17
-rw-r--r--pkgs/development/python-modules/schwifty/default.nix60
-rw-r--r--pkgs/development/python-modules/scikit-bio/default.nix85
-rw-r--r--pkgs/development/python-modules/scikit-build-core/default.nix64
-rw-r--r--pkgs/development/python-modules/scikit-build/default.nix50
-rw-r--r--pkgs/development/python-modules/scikit-fmm/default.nix34
-rw-r--r--pkgs/development/python-modules/scikit-fuzzy/default.nix29
-rw-r--r--pkgs/development/python-modules/scikit-hep-testdata/default.nix37
-rw-r--r--pkgs/development/python-modules/scikit-image/default.nix118
-rw-r--r--pkgs/development/python-modules/scikit-learn-extra/default.nix39
-rw-r--r--pkgs/development/python-modules/scikit-learn/default.nix95
-rw-r--r--pkgs/development/python-modules/scikit-misc/default.nix46
-rw-r--r--pkgs/development/python-modules/scikit-optimize/default.nix25
-rw-r--r--pkgs/development/python-modules/scikit-posthocs/default.nix40
-rw-r--r--pkgs/development/python-modules/scikit-rf/default.nix103
-rw-r--r--pkgs/development/python-modules/scikit-survival/default.nix58
-rw-r--r--pkgs/development/python-modules/scikit-tda/default.nix39
-rw-r--r--pkgs/development/python-modules/scikits-odes/default.nix39
-rw-r--r--pkgs/development/python-modules/scikits-samplerate/default.nix44
-rw-r--r--pkgs/development/python-modules/scim2-filter-parser/default.nix37
-rw-r--r--pkgs/development/python-modules/scipy/default.nix130
-rw-r--r--pkgs/development/python-modules/scipy/pocketfft-aligned_alloc.patch30
-rw-r--r--pkgs/development/python-modules/scmrepo/default.nix43
-rw-r--r--pkgs/development/python-modules/scooby/default.nix37
-rw-r--r--pkgs/development/python-modules/scour/default.nix13
-rw-r--r--pkgs/development/python-modules/scp/default.nix19
-rw-r--r--pkgs/development/python-modules/scramp/default.nix46
-rw-r--r--pkgs/development/python-modules/scrap-engine/default.nix11
-rw-r--r--pkgs/development/python-modules/scrapy-deltafetch/default.nix13
-rw-r--r--pkgs/development/python-modules/scrapy-fake-useragent/default.nix23
-rw-r--r--pkgs/development/python-modules/scrapy-splash/default.nix13
-rw-r--r--pkgs/development/python-modules/scrapy/default.nix153
-rw-r--r--pkgs/development/python-modules/screed/default.nix15
-rw-r--r--pkgs/development/python-modules/screeninfo/default.nix29
-rw-r--r--pkgs/development/python-modules/screenlogicpy/default.nix63
-rw-r--r--pkgs/development/python-modules/scripttest/default.nix11
-rw-r--r--pkgs/development/python-modules/scs/default.nix41
-rw-r--r--pkgs/development/python-modules/sdds/default.nix25
-rw-r--r--pkgs/development/python-modules/sdkmanager/default.nix26
-rw-r--r--pkgs/development/python-modules/sdnotify/default.nix9
-rw-r--r--pkgs/development/python-modules/seaborn/default.nix53
-rw-r--r--pkgs/development/python-modules/seabreeze/default.nix47
-rw-r--r--pkgs/development/python-modules/seasonal/default.nix39
-rw-r--r--pkgs/development/python-modules/seatconnect/default.nix31
-rw-r--r--pkgs/development/python-modules/seccomp/default.nix13
-rw-r--r--pkgs/development/python-modules/secp256k1/default.nix20
-rw-r--r--pkgs/development/python-modules/secretstorage/default.nix17
-rw-r--r--pkgs/development/python-modules/sectools/default.nix25
-rw-r--r--pkgs/development/python-modules/secure/default.nix15
-rw-r--r--pkgs/development/python-modules/securetar/default.nix31
-rw-r--r--pkgs/development/python-modules/securityreporter/default.nix37
-rw-r--r--pkgs/development/python-modules/seedir/default.nix29
-rw-r--r--pkgs/development/python-modules/seekpath/default.nix23
-rw-r--r--pkgs/development/python-modules/segments/default.nix25
-rw-r--r--pkgs/development/python-modules/segno/default.nix43
-rw-r--r--pkgs/development/python-modules/segyio/default.nix31
-rw-r--r--pkgs/development/python-modules/selectors2/default.nix21
-rw-r--r--pkgs/development/python-modules/selenium-wire/default.nix51
-rw-r--r--pkgs/development/python-modules/selenium/default.nix72
-rw-r--r--pkgs/development/python-modules/semantic-version/default.nix26
-rw-r--r--pkgs/development/python-modules/semaphore-bot/default.nix13
-rw-r--r--pkgs/development/python-modules/send2trash/default.nix20
-rw-r--r--pkgs/development/python-modules/sendgrid/default.nix27
-rw-r--r--pkgs/development/python-modules/sense-energy/default.nix35
-rw-r--r--pkgs/development/python-modules/sensirion-ble/default.nix27
-rw-r--r--pkgs/development/python-modules/sensor-state-data/default.nix29
-rw-r--r--pkgs/development/python-modules/sensorpro-ble/default.nix31
-rw-r--r--pkgs/development/python-modules/sensorpush-ble/default.nix33
-rw-r--r--pkgs/development/python-modules/sentence-splitter/default.nix27
-rw-r--r--pkgs/development/python-modules/sentence-transformers/default.nix47
-rw-r--r--pkgs/development/python-modules/sentencepiece/default.nix7
-rw-r--r--pkgs/development/python-modules/sentinel/default.nix6
-rw-r--r--pkgs/development/python-modules/sentinels/default.nix21
-rw-r--r--pkgs/development/python-modules/sepaxml/default.nix22
-rw-r--r--pkgs/development/python-modules/seqdiag/default.nix33
-rw-r--r--pkgs/development/python-modules/seqeval/default.nix19
-rw-r--r--pkgs/development/python-modules/serialio/default.nix21
-rw-r--r--pkgs/development/python-modules/serializable/default.nix19
-rw-r--r--pkgs/development/python-modules/serpent/default.nix26
-rw-r--r--pkgs/development/python-modules/serpy/default.nix19
-rw-r--r--pkgs/development/python-modules/servefile/default.nix20
-rw-r--r--pkgs/development/python-modules/serverfiles/default.nix13
-rw-r--r--pkgs/development/python-modules/serverlessrepo/default.nix27
-rw-r--r--pkgs/development/python-modules/service-identity/default.nix35
-rw-r--r--pkgs/development/python-modules/setproctitle/default.nix28
-rw-r--r--pkgs/development/python-modules/setupmeta/default.nix29
-rw-r--r--pkgs/development/python-modules/setuptools-changelog-shortener/default.nix13
-rw-r--r--pkgs/development/python-modules/setuptools-declarative-requirements/default.nix17
-rw-r--r--pkgs/development/python-modules/setuptools-dso/default.nix18
-rw-r--r--pkgs/development/python-modules/setuptools-generate/default.nix35
-rw-r--r--pkgs/development/python-modules/setuptools-gettext/default.nix41
-rw-r--r--pkgs/development/python-modules/setuptools-git-versioning/default.nix40
-rw-r--r--pkgs/development/python-modules/setuptools-git/default.nix10
-rw-r--r--pkgs/development/python-modules/setuptools-lint/default.nix8
-rw-r--r--pkgs/development/python-modules/setuptools-odoo/default.nix25
-rw-r--r--pkgs/development/python-modules/setuptools-rust/default.nix29
-rw-r--r--pkgs/development/python-modules/setuptools-rust/pyo3-test/default.nix23
-rw-r--r--pkgs/development/python-modules/setuptools-scm-git-archive/default.nix25
-rw-r--r--pkgs/development/python-modules/setuptools-scm/default.nix62
-rw-r--r--pkgs/development/python-modules/setuptools-scm/tests.nix15
-rw-r--r--pkgs/development/python-modules/setuptools-trial/default.nix25
-rw-r--r--pkgs/development/python-modules/setuptools/default.nix25
-rw-r--r--pkgs/development/python-modules/sev-snp-measure/default.nix13
-rw-r--r--pkgs/development/python-modules/seventeentrack/default.nix33
-rw-r--r--pkgs/development/python-modules/sexpdata/default.nix19
-rw-r--r--pkgs/development/python-modules/sfepy/default.nix78
-rw-r--r--pkgs/development/python-modules/sfrbox-api/default.nix45
-rw-r--r--pkgs/development/python-modules/sgmllib3k/default.nix25
-rw-r--r--pkgs/development/python-modules/sgp4/default.nix7
-rw-r--r--pkgs/development/python-modules/sh/default.nix63
-rw-r--r--pkgs/development/python-modules/shamir-mnemonic/default.nix17
-rw-r--r--pkgs/development/python-modules/shap/default.nix145
-rw-r--r--pkgs/development/python-modules/shapely/1.8.nix43
-rw-r--r--pkgs/development/python-modules/shapely/default.nix37
-rw-r--r--pkgs/development/python-modules/shaperglot/default.nix35
-rw-r--r--pkgs/development/python-modules/sharedmem/default.nix7
-rw-r--r--pkgs/development/python-modules/sharkiq/default.nix11
-rw-r--r--pkgs/development/python-modules/sharp-aquos-rc/default.nix11
-rw-r--r--pkgs/development/python-modules/shazamio/default.nix33
-rw-r--r--pkgs/development/python-modules/shellescape/default.nix14
-rw-r--r--pkgs/development/python-modules/shellingham/default.nix23
-rw-r--r--pkgs/development/python-modules/shiboken2/default.nix59
-rw-r--r--pkgs/development/python-modules/shiboken6/default.nix67
-rw-r--r--pkgs/development/python-modules/shimmy/default.nix97
-rw-r--r--pkgs/development/python-modules/shippai/default.nix6
-rw-r--r--pkgs/development/python-modules/shiv/default.nix30
-rw-r--r--pkgs/development/python-modules/shlib/default.nix23
-rw-r--r--pkgs/development/python-modules/shodan/default.nix30
-rw-r--r--pkgs/development/python-modules/shortuuid/default.nix25
-rw-r--r--pkgs/development/python-modules/should-dsl/default.nix6
-rw-r--r--pkgs/development/python-modules/shouldbe/default.nix30
-rw-r--r--pkgs/development/python-modules/show-in-file-manager/default.nix22
-rw-r--r--pkgs/development/python-modules/showit/default.nix17
-rw-r--r--pkgs/development/python-modules/shtab/default.nix23
-rw-r--r--pkgs/development/python-modules/shutilwhich/default.nix9
-rw-r--r--pkgs/development/python-modules/signalslot/default.nix25
-rw-r--r--pkgs/development/python-modules/signedjson/default.nix59
-rw-r--r--pkgs/development/python-modules/signify/default.nix39
-rw-r--r--pkgs/development/python-modules/signxml/default.nix37
-rw-r--r--pkgs/development/python-modules/sigrok/default.nix119
-rw-r--r--pkgs/development/python-modules/sigstore-protobuf-specs/default.nix29
-rw-r--r--pkgs/development/python-modules/sigstore/default.nix2
-rw-r--r--pkgs/development/python-modules/sigtools/default.nix34
-rw-r--r--pkgs/development/python-modules/simanneal/default.nix9
-rw-r--r--pkgs/development/python-modules/simber/default.nix25
-rw-r--r--pkgs/development/python-modules/simpful/default.nix33
-rw-r--r--pkgs/development/python-modules/simple-di/default.nix17
-rw-r--r--pkgs/development/python-modules/simple-rest-client/default.nix29
-rw-r--r--pkgs/development/python-modules/simple-rlp/default.nix7
-rw-r--r--pkgs/development/python-modules/simple-salesforce/default.nix42
-rw-r--r--pkgs/development/python-modules/simple-term-menu/default.nix14
-rw-r--r--pkgs/development/python-modules/simple-websocket-server/default.nix8
-rw-r--r--pkgs/development/python-modules/simple-websocket/default.nix27
-rw-r--r--pkgs/development/python-modules/simpleaudio/default.nix11
-rw-r--r--pkgs/development/python-modules/simplebayes/default.nix19
-rw-r--r--pkgs/development/python-modules/simpleeval/default.nix27
-rw-r--r--pkgs/development/python-modules/simplefix/default.nix19
-rw-r--r--pkgs/development/python-modules/simplegeneric/default.nix7
-rw-r--r--pkgs/development/python-modules/simplehound/default.nix15
-rw-r--r--pkgs/development/python-modules/simpleitk/default.nix29
-rw-r--r--pkgs/development/python-modules/simplejson/default.nix26
-rw-r--r--pkgs/development/python-modules/simplekml/default.nix9
-rw-r--r--pkgs/development/python-modules/simplekv/default.nix2
-rw-r--r--pkgs/development/python-modules/simplemma/default.nix25
-rw-r--r--pkgs/development/python-modules/simplenote/default.nix16
-rw-r--r--pkgs/development/python-modules/simplepush/default.nix25
-rw-r--r--pkgs/development/python-modules/simplesat/default.nix25
-rw-r--r--pkgs/development/python-modules/simplesqlite/default.nix23
-rw-r--r--pkgs/development/python-modules/simplisafe-python/default.nix46
-rw-r--r--pkgs/development/python-modules/simpy/default.nix22
-rw-r--r--pkgs/development/python-modules/single-source/default.nix29
-rw-r--r--pkgs/development/python-modules/single-version/default.nix14
-rw-r--r--pkgs/development/python-modules/siobrultech-protocols/default.nix17
-rw-r--r--pkgs/development/python-modules/siosocks/default.nix25
-rw-r--r--pkgs/development/python-modules/sip/4.x.nix27
-rw-r--r--pkgs/development/python-modules/sip/default.nix41
-rw-r--r--pkgs/development/python-modules/sipyco/default.nix25
-rw-r--r--pkgs/development/python-modules/sisyphus-control/default.nix25
-rw-r--r--pkgs/development/python-modules/siuba/default.nix31
-rw-r--r--pkgs/development/python-modules/six/default.nix27
-rw-r--r--pkgs/development/python-modules/sjcl/default.nix19
-rw-r--r--pkgs/development/python-modules/skein/default.nix62
-rw-r--r--pkgs/development/python-modules/skein/skeinjar.nix9
-rw-r--r--pkgs/development/python-modules/skia-pathops/default.nix86
-rw-r--r--pkgs/development/python-modules/skidl/default.nix15
-rw-r--r--pkgs/development/python-modules/skl2onnx/default.nix38
-rw-r--r--pkgs/development/python-modules/sklearn-deap/default.nix31
-rw-r--r--pkgs/development/python-modules/skodaconnect/default.nix29
-rw-r--r--pkgs/development/python-modules/skorch/default.nix94
-rw-r--r--pkgs/development/python-modules/skrl/default.nix27
-rw-r--r--pkgs/development/python-modules/skybellpy/default.nix44
-rw-r--r--pkgs/development/python-modules/skyfield/default.nix29
-rw-r--r--pkgs/development/python-modules/skytemple-dtef/default.nix25
-rw-r--r--pkgs/development/python-modules/skytemple-eventserver/default.nix6
-rw-r--r--pkgs/development/python-modules/skytemple-files/default.nix95
-rw-r--r--pkgs/development/python-modules/skytemple-icons/default.nix6
-rw-r--r--pkgs/development/python-modules/skytemple-rust/default.nix35
-rw-r--r--pkgs/development/python-modules/skytemple-ssb-debugger/default.nix55
-rw-r--r--pkgs/development/python-modules/skytemple-ssb-emulator/default.nix51
-rw-r--r--pkgs/development/python-modules/slack-bolt/default.nix85
-rw-r--r--pkgs/development/python-modules/slack-sdk/default.nix55
-rw-r--r--pkgs/development/python-modules/slackclient/default.nix84
-rw-r--r--pkgs/development/python-modules/sleekxmpp/default.nix20
-rw-r--r--pkgs/development/python-modules/sleepyq/default.nix11
-rw-r--r--pkgs/development/python-modules/slicedimage/default.nix34
-rw-r--r--pkgs/development/python-modules/slicer/default.nix55
-rw-r--r--pkgs/development/python-modules/slicerator/default.nix13
-rw-r--r--pkgs/development/python-modules/slimit/default.nix23
-rw-r--r--pkgs/development/python-modules/slither-analyzer/default.nix37
-rw-r--r--pkgs/development/python-modules/slixmpp/default.nix31
-rw-r--r--pkgs/development/python-modules/slob/default.nix13
-rw-r--r--pkgs/development/python-modules/slovnet/default.nix21
-rw-r--r--pkgs/development/python-modules/slowapi/default.nix41
-rw-r--r--pkgs/development/python-modules/slpp/default.nix23
-rw-r--r--pkgs/development/python-modules/slugid/default.nix11
-rw-r--r--pkgs/development/python-modules/sly/default.nix27
-rw-r--r--pkgs/development/python-modules/smart-meter-texas/default.nix30
-rw-r--r--pkgs/development/python-modules/smart-open/default.nix86
-rw-r--r--pkgs/development/python-modules/smarthab/default.nix13
-rw-r--r--pkgs/development/python-modules/smartypants/default.nix23
-rw-r--r--pkgs/development/python-modules/smbprotocol/default.nix23
-rw-r--r--pkgs/development/python-modules/smbus-cffi/default.nix23
-rw-r--r--pkgs/development/python-modules/smbus2/default.nix19
-rw-r--r--pkgs/development/python-modules/smdebug-rulesconfig/default.nix6
-rw-r--r--pkgs/development/python-modules/smhi-pkg/default.nix17
-rw-r--r--pkgs/development/python-modules/smmap/default.nix24
-rw-r--r--pkgs/development/python-modules/smpp-pdu/default.nix32
-rw-r--r--pkgs/development/python-modules/smpplib/default.nix23
-rw-r--r--pkgs/development/python-modules/smtpdfix/default.nix33
-rw-r--r--pkgs/development/python-modules/snakebite/default.nix17
-rw-r--r--pkgs/development/python-modules/snakemake-executor-plugin-cluster-generic/default.nix17
-rw-r--r--pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix19
-rw-r--r--pkgs/development/python-modules/snakemake-interface-report-plugins/default.nix21
-rw-r--r--pkgs/development/python-modules/snakemake-interface-storage-plugins/default.nix23
-rw-r--r--pkgs/development/python-modules/snakemake-storage-plugin-s3/default.nix35
-rw-r--r--pkgs/development/python-modules/snakemake-storage-plugin-xrootd/default.nix27
-rw-r--r--pkgs/development/python-modules/snakeviz/default.nix31
-rw-r--r--pkgs/development/python-modules/snap-helpers/default.nix32
-rw-r--r--pkgs/development/python-modules/snapcast/default.nix29
-rw-r--r--pkgs/development/python-modules/snapshottest/default.nix31
-rw-r--r--pkgs/development/python-modules/snaptime/default.nix17
-rw-r--r--pkgs/development/python-modules/sniffio/default.nix23
-rw-r--r--pkgs/development/python-modules/snitun/default.nix100
-rw-r--r--pkgs/development/python-modules/snorkel/default.nix41
-rw-r--r--pkgs/development/python-modules/snowballstemmer/default.nix7
-rw-r--r--pkgs/development/python-modules/snowflake-connector-python/default.nix9
-rw-r--r--pkgs/development/python-modules/snowflake-sqlalchemy/default.nix19
-rw-r--r--pkgs/development/python-modules/snscrape/default.nix37
-rw-r--r--pkgs/development/python-modules/snuggs/default.nix30
-rw-r--r--pkgs/development/python-modules/social-auth-app-django/default.nix27
-rw-r--r--pkgs/development/python-modules/social-auth-core/default.nix51
-rw-r--r--pkgs/development/python-modules/socialscan/default.nix19
-rw-r--r--pkgs/development/python-modules/socid-extractor/default.nix19
-rw-r--r--pkgs/development/python-modules/socketio-client/default.nix19
-rw-r--r--pkgs/development/python-modules/sockio/default.nix17
-rw-r--r--pkgs/development/python-modules/sockjs-tornado/default.nix7
-rw-r--r--pkgs/development/python-modules/sockjs/default.nix11
-rw-r--r--pkgs/development/python-modules/socksio/default.nix23
-rw-r--r--pkgs/development/python-modules/socksipy-branch/default.nix8
-rw-r--r--pkgs/development/python-modules/soco/default.nix4
-rw-r--r--pkgs/development/python-modules/softlayer/default.nix49
-rw-r--r--pkgs/development/python-modules/solaredge/default.nix15
-rw-r--r--pkgs/development/python-modules/solax/default.nix37
-rw-r--r--pkgs/development/python-modules/solc-select/default.nix11
-rw-r--r--pkgs/development/python-modules/solo-python/default.nix36
-rw-r--r--pkgs/development/python-modules/somajo/default.nix27
-rw-r--r--pkgs/development/python-modules/somfy-mylink-synergy/default.nix9
-rw-r--r--pkgs/development/python-modules/sonarr/default.nix17
-rw-r--r--pkgs/development/python-modules/sonos-websocket/default.nix23
-rw-r--r--pkgs/development/python-modules/sopel/default.nix43
-rw-r--r--pkgs/development/python-modules/sorl-thumbnail/default.nix23
-rw-r--r--pkgs/development/python-modules/sortedcollections/default.nix13
-rw-r--r--pkgs/development/python-modules/sortedcontainers/default.nix17
-rw-r--r--pkgs/development/python-modules/soundcloud-v2/default.nix25
-rw-r--r--pkgs/development/python-modules/sounddevice/default.nix29
-rw-r--r--pkgs/development/python-modules/soundfile/default.nix31
-rw-r--r--pkgs/development/python-modules/soupsieve/default.nix17
-rw-r--r--pkgs/development/python-modules/sourmash/default.nix37
-rw-r--r--pkgs/development/python-modules/soxr/default.nix47
-rw-r--r--pkgs/development/python-modules/spacy-alignments/default.nix21
-rw-r--r--pkgs/development/python-modules/spacy-loggers/default.nix13
-rw-r--r--pkgs/development/python-modules/spacy-pkuseg/default.nix20
-rw-r--r--pkgs/development/python-modules/spacy-transformers/annotation-test/default.nix19
-rw-r--r--pkgs/development/python-modules/spacy-transformers/default.nix45
-rw-r--r--pkgs/development/python-modules/spacy/annotation-test/default.nix19
-rw-r--r--pkgs/development/python-modules/spacy/default.nix103
-rw-r--r--pkgs/development/python-modules/spacy/legacy.nix11
-rw-r--r--pkgs/development/python-modules/spacy/lookups-data.nix13
-rw-r--r--pkgs/development/python-modules/spacy/models.nix67
-rw-r--r--pkgs/development/python-modules/spake2/default.nix27
-rw-r--r--pkgs/development/python-modules/spark-parser/default.nix16
-rw-r--r--pkgs/development/python-modules/sparklines/default.nix17
-rw-r--r--pkgs/development/python-modules/sparqlwrapper/default.nix9
-rw-r--r--pkgs/development/python-modules/sparse/default.nix31
-rw-r--r--pkgs/development/python-modules/spatial-image/default.nix29
-rw-r--r--pkgs/development/python-modules/spdx-lookup/default.nix20
-rw-r--r--pkgs/development/python-modules/spdx-tools/default.nix41
-rw-r--r--pkgs/development/python-modules/spdx/default.nix14
-rw-r--r--pkgs/development/python-modules/speaklater/default.nix8
-rw-r--r--pkgs/development/python-modules/speaklater3/default.nix7
-rw-r--r--pkgs/development/python-modules/spectral-cube/default.nix65
-rw-r--r--pkgs/development/python-modules/spectral-cube/distutils-looseversion.patch152
-rw-r--r--pkgs/development/python-modules/speechbrain/default.nix31
-rw-r--r--pkgs/development/python-modules/speechrecognition/default.nix41
-rw-r--r--pkgs/development/python-modules/speedtest-cli/default.nix12
-rw-r--r--pkgs/development/python-modules/speg/default.nix11
-rw-r--r--pkgs/development/python-modules/spglib/default.nix45
-rw-r--r--pkgs/development/python-modules/sphfile/default.nix13
-rw-r--r--pkgs/development/python-modules/sphinx-argparse/default.nix21
-rw-r--r--pkgs/development/python-modules/sphinx-autoapi/default.nix52
-rw-r--r--pkgs/development/python-modules/sphinx-autobuild/default.nix45
-rw-r--r--pkgs/development/python-modules/sphinx-autodoc-typehints/default.nix33
-rw-r--r--pkgs/development/python-modules/sphinx-automodapi/default.nix25
-rw-r--r--pkgs/development/python-modules/sphinx-basic-ng/default.nix17
-rw-r--r--pkgs/development/python-modules/sphinx-better-theme/default.nix12
-rw-r--r--pkgs/development/python-modules/sphinx-book-theme/default.nix25
-rw-r--r--pkgs/development/python-modules/sphinx-codeautolink/default.nix41
-rw-r--r--pkgs/development/python-modules/sphinx-comments/default.nix11
-rw-r--r--pkgs/development/python-modules/sphinx-copybutton/default.nix15
-rw-r--r--pkgs/development/python-modules/sphinx-design/default.nix21
-rw-r--r--pkgs/development/python-modules/sphinx-external-toc/default.nix19
-rw-r--r--pkgs/development/python-modules/sphinx-fortran/default.nix21
-rw-r--r--pkgs/development/python-modules/sphinx-hoverxref/default.nix49
-rw-r--r--pkgs/development/python-modules/sphinx-inline-tabs/default.nix19
-rw-r--r--pkgs/development/python-modules/sphinx-intl/default.nix29
-rw-r--r--pkgs/development/python-modules/sphinx-issues/default.nix15
-rw-r--r--pkgs/development/python-modules/sphinx-jinja/default.nix8
-rw-r--r--pkgs/development/python-modules/sphinx-jupyterbook-latex/default.nix35
-rw-r--r--pkgs/development/python-modules/sphinx-markdown-parser/default.nix47
-rw-r--r--pkgs/development/python-modules/sphinx-markdown-tables/default.nix11
-rw-r--r--pkgs/development/python-modules/sphinx-material/default.nix27
-rw-r--r--pkgs/development/python-modules/sphinx-mdinclude/default.nix37
-rw-r--r--pkgs/development/python-modules/sphinx-multitoc-numbering/default.nix25
-rw-r--r--pkgs/development/python-modules/sphinx-notfound-page/default.nix47
-rw-r--r--pkgs/development/python-modules/sphinx-prompt/default.nix33
-rw-r--r--pkgs/development/python-modules/sphinx-pytest/default.nix33
-rw-r--r--pkgs/development/python-modules/sphinx-rtd-dark-mode/default.nix29
-rw-r--r--pkgs/development/python-modules/sphinx-rtd-theme/default.nix25
-rw-r--r--pkgs/development/python-modules/sphinx-serve/default.nix7
-rw-r--r--pkgs/development/python-modules/sphinx-sitemap/default.nix23
-rw-r--r--pkgs/development/python-modules/sphinx-tabs/default.nix43
-rw-r--r--pkgs/development/python-modules/sphinx-testing/default.nix30
-rw-r--r--pkgs/development/python-modules/sphinx-thebe/default.nix23
-rw-r--r--pkgs/development/python-modules/sphinx-togglebutton/default.nix19
-rw-r--r--pkgs/development/python-modules/sphinx-version-warning/default.nix39
-rw-r--r--pkgs/development/python-modules/sphinx/default.nix189
-rw-r--r--pkgs/development/python-modules/sphinxawesome-theme/default.nix35
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-actdiag/default.nix19
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-apidoc/default.nix11
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix15
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-asyncio/default.nix17
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-bayesnet/default.nix16
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix23
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix33
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix29
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix17
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-ditaa/default.nix42
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-excel-table/default.nix16
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-fulltoc/default.nix9
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix15
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-httpdomain/default.nix10
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-jquery/default.nix25
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix11
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-katex/default.nix35
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-log-cabinet/default.nix7
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-mscgen/default.nix17
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-newsfeed/default.nix20
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-nwdiag/default.nix19
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-openapi/default.nix24
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix31
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-programoutput/default.nix15
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix17
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-seqdiag/default.nix19
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix17
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-spelling/default.nix29
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-tikz/default.nix23
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-wavedrom/default.nix21
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-websupport/default.nix17
-rw-r--r--pkgs/development/python-modules/sphinxcontrib-youtube/default.nix18
-rw-r--r--pkgs/development/python-modules/sphinxemoji/default.nix24
-rw-r--r--pkgs/development/python-modules/sphinxext-opengraph/default.nix31
-rw-r--r--pkgs/development/python-modules/spiderpy/default.nix21
-rw-r--r--pkgs/development/python-modules/spidev/default.nix7
-rw-r--r--pkgs/development/python-modules/spinners/default.nix12
-rw-r--r--pkgs/development/python-modules/splinter/default.nix53
-rw-r--r--pkgs/development/python-modules/spotipy/default.nix21
-rw-r--r--pkgs/development/python-modules/spsdk/default.nix82
-rw-r--r--pkgs/development/python-modules/spur/default.nix19
-rw-r--r--pkgs/development/python-modules/spyder-kernels/default.nix55
-rw-r--r--pkgs/development/python-modules/spyder/default.nix108
-rw-r--r--pkgs/development/python-modules/spylls/default.nix15
-rw-r--r--pkgs/development/python-modules/spyse-python/default.nix29
-rw-r--r--pkgs/development/python-modules/spython/default.nix25
-rw-r--r--pkgs/development/python-modules/sqids/default.nix23
-rw-r--r--pkgs/development/python-modules/sqlalchemy-citext/default.nix13
-rw-r--r--pkgs/development/python-modules/sqlalchemy-continuum/default.nix70
-rw-r--r--pkgs/development/python-modules/sqlalchemy-i18n/default.nix13
-rw-r--r--pkgs/development/python-modules/sqlalchemy-jsonfield/default.nix33
-rw-r--r--pkgs/development/python-modules/sqlalchemy-migrate/default.nix46
-rw-r--r--pkgs/development/python-modules/sqlalchemy-mixins/default.nix21
-rw-r--r--pkgs/development/python-modules/sqlalchemy-utils/default.nix115
-rw-r--r--pkgs/development/python-modules/sqlalchemy-views/default.nix29
-rw-r--r--pkgs/development/python-modules/sqlalchemy/1_4.nix141
-rw-r--r--pkgs/development/python-modules/sqlalchemy/default.nix161
-rw-r--r--pkgs/development/python-modules/sqlbag/default.nix65
-rw-r--r--pkgs/development/python-modules/sqlglot/default.nix25
-rw-r--r--pkgs/development/python-modules/sqlite-anyio/default.nix44
-rw-r--r--pkgs/development/python-modules/sqlite-fts4/default.nix19
-rw-r--r--pkgs/development/python-modules/sqlite-migrate/default.nix33
-rw-r--r--pkgs/development/python-modules/sqlite-utils/default.nix43
-rw-r--r--pkgs/development/python-modules/sqlitedict/default.nix29
-rw-r--r--pkgs/development/python-modules/sqliteschema/default.nix21
-rw-r--r--pkgs/development/python-modules/sqlmap/default.nix4
-rw-r--r--pkgs/development/python-modules/sqlmodel/default.nix21
-rw-r--r--pkgs/development/python-modules/sqlobject/default.nix27
-rw-r--r--pkgs/development/python-modules/sqlparse/default.nix34
-rw-r--r--pkgs/development/python-modules/sqlsoup/default.nix23
-rw-r--r--pkgs/development/python-modules/sqltrie/default.nix27
-rw-r--r--pkgs/development/python-modules/squarify/default.nix11
-rw-r--r--pkgs/development/python-modules/sre-yield/default.nix20
-rw-r--r--pkgs/development/python-modules/srp/default.nix23
-rw-r--r--pkgs/development/python-modules/srpenergy/default.nix25
-rw-r--r--pkgs/development/python-modules/srptools/default.nix25
-rw-r--r--pkgs/development/python-modules/srsly/default.nix35
-rw-r--r--pkgs/development/python-modules/srt/default.nix18
-rw-r--r--pkgs/development/python-modules/srvlookup/default.nix25
-rw-r--r--pkgs/development/python-modules/ssdeep/default.nix29
-rw-r--r--pkgs/development/python-modules/ssdp/default.nix23
-rw-r--r--pkgs/development/python-modules/ssdpy/default.nix15
-rw-r--r--pkgs/development/python-modules/sse-starlette/default.nix4
-rw-r--r--pkgs/development/python-modules/sseclient-py/default.nix23
-rw-r--r--pkgs/development/python-modules/sseclient/default.nix23
-rw-r--r--pkgs/development/python-modules/sshfs/default.nix29
-rw-r--r--pkgs/development/python-modules/sshpubkeys/default.nix14
-rw-r--r--pkgs/development/python-modules/sshtunnel/default.nix16
-rw-r--r--pkgs/development/python-modules/sslib/default.nix9
-rw-r--r--pkgs/development/python-modules/stack-data/default.nix29
-rw-r--r--pkgs/development/python-modules/stanio/default.nix21
-rw-r--r--pkgs/development/python-modules/stanza/default.nix35
-rw-r--r--pkgs/development/python-modules/starkbank-ecdsa/default.nix19
-rw-r--r--pkgs/development/python-modules/starlette-context/default.nix31
-rw-r--r--pkgs/development/python-modules/starlette-wtf/default.nix35
-rw-r--r--pkgs/development/python-modules/starlette/default.nix77
-rw-r--r--pkgs/development/python-modules/starline/default.nix23
-rw-r--r--pkgs/development/python-modules/stashy/default.nix22
-rw-r--r--pkgs/development/python-modules/static3/default.nix29
-rw-r--r--pkgs/development/python-modules/staticjinja/default.nix41
-rw-r--r--pkgs/development/python-modules/staticmap/default.nix18
-rw-r--r--pkgs/development/python-modules/statistics/default.nix11
-rw-r--r--pkgs/development/python-modules/statmake/default.nix58
-rw-r--r--pkgs/development/python-modules/statsd/default.nix25
-rw-r--r--pkgs/development/python-modules/statsmodels/default.nix32
-rw-r--r--pkgs/development/python-modules/std-uritemplate/default.nix4
-rw-r--r--pkgs/development/python-modules/std2/default.nix9
-rw-r--r--pkgs/development/python-modules/stdiomask/default.nix7
-rw-r--r--pkgs/development/python-modules/stdlib-list/default.nix21
-rw-r--r--pkgs/development/python-modules/stdlibs/default.nix25
-rw-r--r--pkgs/development/python-modules/steamodd/default.nix7
-rw-r--r--pkgs/development/python-modules/steamship/default.nix39
-rw-r--r--pkgs/development/python-modules/stem/default.nix28
-rw-r--r--pkgs/development/python-modules/stemming/default.nix11
-rw-r--r--pkgs/development/python-modules/stestr/default.nix29
-rw-r--r--pkgs/development/python-modules/stestr/tests.nix8
-rw-r--r--pkgs/development/python-modules/stevedore/default.nix21
-rw-r--r--pkgs/development/python-modules/stickytape/default.nix31
-rw-r--r--pkgs/development/python-modules/stim/default.nix43
-rw-r--r--pkgs/development/python-modules/stm32loader/default.nix39
-rw-r--r--pkgs/development/python-modules/stone/default.nix29
-rw-r--r--pkgs/development/python-modules/stookalert/default.nix13
-rw-r--r--pkgs/development/python-modules/stopit/default.nix9
-rw-r--r--pkgs/development/python-modules/stransi/default.nix25
-rw-r--r--pkgs/development/python-modules/strategies/default.nix21
-rw-r--r--pkgs/development/python-modules/stravalib/default.nix29
-rw-r--r--pkgs/development/python-modules/strawberry-graphql/default.nix138
-rw-r--r--pkgs/development/python-modules/strct/default.nix46
-rw-r--r--pkgs/development/python-modules/streamdeck/default.nix13
-rw-r--r--pkgs/development/python-modules/streaming-form-data/default.nix20
-rw-r--r--pkgs/development/python-modules/streamlabswater/default.nix15
-rw-r--r--pkgs/development/python-modules/streamlit/default.nix86
-rw-r--r--pkgs/development/python-modules/streamz/default.nix51
-rw-r--r--pkgs/development/python-modules/strenum/default.nix27
-rw-r--r--pkgs/development/python-modules/strict-rfc3339/default.nix6
-rw-r--r--pkgs/development/python-modules/strictyaml/default.nix17
-rw-r--r--pkgs/development/python-modules/stringbrewer/default.nix18
-rw-r--r--pkgs/development/python-modules/stringcase/default.nix5
-rw-r--r--pkgs/development/python-modules/stringly/default.nix15
-rw-r--r--pkgs/development/python-modules/stringparser/default.nix29
-rw-r--r--pkgs/development/python-modules/stripe/default.nix29
-rw-r--r--pkgs/development/python-modules/striprtf/default.nix15
-rw-r--r--pkgs/development/python-modules/structlog/default.nix31
-rw-r--r--pkgs/development/python-modules/stubserver/default.nix13
-rw-r--r--pkgs/development/python-modules/stumpy/default.nix27
-rw-r--r--pkgs/development/python-modules/stupidartnet/default.nix25
-rw-r--r--pkgs/development/python-modules/stups-cli-support/default.nix21
-rw-r--r--pkgs/development/python-modules/stups-fullstop/default.nix21
-rw-r--r--pkgs/development/python-modules/stups-pierone/default.nix25
-rw-r--r--pkgs/development/python-modules/stups-tokens/default.nix23
-rw-r--r--pkgs/development/python-modules/stups-zign/default.nix21
-rw-r--r--pkgs/development/python-modules/stytra/default.nix65
-rw-r--r--pkgs/development/python-modules/subarulink/default.nix23
-rw-r--r--pkgs/development/python-modules/subliminal/default.nix47
-rw-r--r--pkgs/development/python-modules/subprocess-tee/default.nix36
-rw-r--r--pkgs/development/python-modules/subunit/default.nix42
-rw-r--r--pkgs/development/python-modules/subunit2sql/default.nix23
-rw-r--r--pkgs/development/python-modules/subzerod/default.nix19
-rw-r--r--pkgs/development/python-modules/succulent/default.nix44
-rw-r--r--pkgs/development/python-modules/sudachidict/default.nix19
-rw-r--r--pkgs/development/python-modules/sudachipy/default.nix49
-rw-r--r--pkgs/development/python-modules/summarytools/default.nix32
-rw-r--r--pkgs/development/python-modules/sumo/default.nix45
-rw-r--r--pkgs/development/python-modules/sumtypes/default.nix21
-rw-r--r--pkgs/development/python-modules/sunpy/default.nix81
-rw-r--r--pkgs/development/python-modules/sunwatcher/default.nix15
-rw-r--r--pkgs/development/python-modules/sunweg/default.nix29
-rw-r--r--pkgs/development/python-modules/superqt/default.nix60
-rw-r--r--pkgs/development/python-modules/supervise-api/default.nix29
-rw-r--r--pkgs/development/python-modules/supervisor/default.nix27
-rw-r--r--pkgs/development/python-modules/sure/default.nix25
-rw-r--r--pkgs/development/python-modules/surepy/default.nix41
-rw-r--r--pkgs/development/python-modules/surt/default.nix23
-rw-r--r--pkgs/development/python-modules/survey/default.nix23
-rw-r--r--pkgs/development/python-modules/sv-ttk/default.nix21
-rw-r--r--pkgs/development/python-modules/svg-path/default.nix17
-rw-r--r--pkgs/development/python-modules/svg-py/default.nix23
-rw-r--r--pkgs/development/python-modules/svg2tikz/default.nix39
-rw-r--r--pkgs/development/python-modules/svgelements/default.nix44
-rw-r--r--pkgs/development/python-modules/svglib/default.nix31
-rw-r--r--pkgs/development/python-modules/svgutils/default.nix22
-rw-r--r--pkgs/development/python-modules/svgwrite/default.nix14
-rw-r--r--pkgs/development/python-modules/swagger-spec-validator/default.nix11
-rw-r--r--pkgs/development/python-modules/swagger-ui-bundle/default.nix32
-rw-r--r--pkgs/development/python-modules/swift/default.nix45
-rw-r--r--pkgs/development/python-modules/swisshydrodata/default.nix17
-rw-r--r--pkgs/development/python-modules/switchbot-api/default.nix29
-rw-r--r--pkgs/development/python-modules/swspotify/default.nix29
-rw-r--r--pkgs/development/python-modules/sybil/default.nix21
-rw-r--r--pkgs/development/python-modules/symengine/default.nix56
-rw-r--r--pkgs/development/python-modules/sympy/default.nix28
-rw-r--r--pkgs/development/python-modules/symspellpy/default.nix44
-rw-r--r--pkgs/development/python-modules/syncedlyrics/default.nix33
-rw-r--r--pkgs/development/python-modules/syncer/default.nix9
-rw-r--r--pkgs/development/python-modules/synergy/default.nix23
-rw-r--r--pkgs/development/python-modules/synologydsm-api/default.nix29
-rw-r--r--pkgs/development/python-modules/syrupy/default.nix29
-rw-r--r--pkgs/development/python-modules/syslog-rfc5424-formatter/default.nix13
-rw-r--r--pkgs/development/python-modules/systembridge/default.nix11
-rw-r--r--pkgs/development/python-modules/systembridgeconnector/default.nix29
-rw-r--r--pkgs/development/python-modules/systembridgemodels/default.nix27
-rw-r--r--pkgs/development/python-modules/systemd/default.nix29
-rw-r--r--pkgs/development/python-modules/sysv-ipc/default.nix8
-rw-r--r--pkgs/development/python-modules/tabcmd/default.nix8
-rw-r--r--pkgs/development/python-modules/tableaudocumentapi/default.nix40
-rw-r--r--pkgs/development/python-modules/tableauserverclient/default.nix37
-rw-r--r--pkgs/development/python-modules/tabledata/default.nix20
-rw-r--r--pkgs/development/python-modules/tables/default.nix41
-rw-r--r--pkgs/development/python-modules/tablib/default.nix63
-rw-r--r--pkgs/development/python-modules/tabula-py/default.nix47
-rw-r--r--pkgs/development/python-modules/tabulate/default.nix17
-rw-r--r--pkgs/development/python-modules/tabview/default.nix9
-rw-r--r--pkgs/development/python-modules/tadasets/default.nix15
-rw-r--r--pkgs/development/python-modules/tag-expressions/default.nix19
-rw-r--r--pkgs/development/python-modules/tago/default.nix27
-rw-r--r--pkgs/development/python-modules/tagoio-sdk/default.nix33
-rw-r--r--pkgs/development/python-modules/tahoma-api/default.nix9
-rw-r--r--pkgs/development/python-modules/tailer/default.nix9
-rw-r--r--pkgs/development/python-modules/tailscale/default.nix33
-rw-r--r--pkgs/development/python-modules/takethetime/default.nix9
-rw-r--r--pkgs/development/python-modules/tank-utility/default.nix29
-rw-r--r--pkgs/development/python-modules/tappy/default.nix31
-rw-r--r--pkgs/development/python-modules/tasklib/default.nix17
-rw-r--r--pkgs/development/python-modules/taskw-ng/default.nix2
-rw-r--r--pkgs/development/python-modules/taskw/default.nix37
-rw-r--r--pkgs/development/python-modules/tatsu/default.nix33
-rw-r--r--pkgs/development/python-modules/taxi/default.nix19
-rw-r--r--pkgs/development/python-modules/tbats/default.nix23
-rw-r--r--pkgs/development/python-modules/tblib/default.nix17
-rw-r--r--pkgs/development/python-modules/tbm-utils/default.nix4
-rw-r--r--pkgs/development/python-modules/tcolorpy/default.nix11
-rw-r--r--pkgs/development/python-modules/tcxparser/default.nix24
-rw-r--r--pkgs/development/python-modules/tcxreader/default.nix28
-rw-r--r--pkgs/development/python-modules/tdir/default.nix27
-rw-r--r--pkgs/development/python-modules/teamcity-messages/default.nix23
-rw-r--r--pkgs/development/python-modules/telegram-text/default.nix23
-rw-r--r--pkgs/development/python-modules/telegram/default.nix8
-rw-r--r--pkgs/development/python-modules/telegraph/default.nix40
-rw-r--r--pkgs/development/python-modules/telepath/default.nix13
-rw-r--r--pkgs/development/python-modules/telethon-session-sqlalchemy/default.nix12
-rw-r--r--pkgs/development/python-modules/telethon/default.nix29
-rw-r--r--pkgs/development/python-modules/teletype/default.nix21
-rw-r--r--pkgs/development/python-modules/telfhash/default.nix25
-rw-r--r--pkgs/development/python-modules/tellduslive/default.nix19
-rw-r--r--pkgs/development/python-modules/temescal/default.nix19
-rw-r--r--pkgs/development/python-modules/temperusb/default.nix19
-rw-r--r--pkgs/development/python-modules/tempest/default.nix69
-rw-r--r--pkgs/development/python-modules/tempita/default.nix9
-rw-r--r--pkgs/development/python-modules/templateflow/default.nix21
-rw-r--r--pkgs/development/python-modules/tempora/default.nix29
-rw-r--r--pkgs/development/python-modules/tenacity/default.nix29
-rw-r--r--pkgs/development/python-modules/tencentcloud-sdk-python/default.nix4
-rw-r--r--pkgs/development/python-modules/tendo/default.nix21
-rw-r--r--pkgs/development/python-modules/tensorboard-data-server/default.nix7
-rw-r--r--pkgs/development/python-modules/tensorboard-plugin-profile/default.nix21
-rw-r--r--pkgs/development/python-modules/tensorboard-plugin-wit/default.nix7
-rw-r--r--pkgs/development/python-modules/tensorboard/default.nix41
-rw-r--r--pkgs/development/python-modules/tensorboardx/default.nix60
-rw-r--r--pkgs/development/python-modules/tensordict/default.nix72
-rw-r--r--pkgs/development/python-modules/tensorflow-datasets/default.nix97
-rw-r--r--pkgs/development/python-modules/tensorflow-estimator/bin.nix20
-rw-r--r--pkgs/development/python-modules/tensorflow-metadata/default.nix21
-rw-r--r--pkgs/development/python-modules/tensorflow-probability/default.nix53
-rw-r--r--pkgs/development/python-modules/tensorflow/bin.nix118
-rw-r--r--pkgs/development/python-modules/tensorflow/binary-hashes.nix118
-rw-r--r--pkgs/development/python-modules/tensorflow/default.nix582
-rwxr-xr-xpkgs/development/python-modules/tensorflow/prefetcher.sh33
-rw-r--r--pkgs/development/python-modules/tensorly/default.nix27
-rw-r--r--pkgs/development/python-modules/tensorrt/default.nix23
-rw-r--r--pkgs/development/python-modules/tensorstore/default.nix21
-rw-r--r--pkgs/development/python-modules/termcolor/default.nix21
-rw-r--r--pkgs/development/python-modules/termgraph/default.nix13
-rw-r--r--pkgs/development/python-modules/terminado/default.nix25
-rw-r--r--pkgs/development/python-modules/terminaltables/default.nix8
-rw-r--r--pkgs/development/python-modules/terminaltexteffects/default.nix36
-rw-r--r--pkgs/development/python-modules/termplotlib/default.nix23
-rw-r--r--pkgs/development/python-modules/termstyle/default.nix6
-rw-r--r--pkgs/development/python-modules/tern/default.nix45
-rw-r--r--pkgs/development/python-modules/tesla-fleet-api/default.nix29
-rw-r--r--pkgs/development/python-modules/tesla-powerwall/default.nix33
-rw-r--r--pkgs/development/python-modules/tesla-wall-connector/default.nix31
-rw-r--r--pkgs/development/python-modules/teslajsonpy/default.nix4
-rw-r--r--pkgs/development/python-modules/tess/default.nix20
-rw-r--r--pkgs/development/python-modules/tesserocr/default.nix49
-rw-r--r--pkgs/development/python-modules/test-tube/default.nix27
-rw-r--r--pkgs/development/python-modules/testbook/default.nix33
-rw-r--r--pkgs/development/python-modules/testcontainers/default.nix49
-rw-r--r--pkgs/development/python-modules/testfixtures/default.nix35
-rw-r--r--pkgs/development/python-modules/testing-common-database/default.nix8
-rw-r--r--pkgs/development/python-modules/testing-postgresql/default.nix25
-rw-r--r--pkgs/development/python-modules/testpath/default.nix22
-rw-r--r--pkgs/development/python-modules/testrail-api/default.nix31
-rw-r--r--pkgs/development/python-modules/testrepository/default.nix28
-rw-r--r--pkgs/development/python-modules/testresources/default.nix25
-rw-r--r--pkgs/development/python-modules/testscenarios/default.nix24
-rw-r--r--pkgs/development/python-modules/testtools/default.nix39
-rw-r--r--pkgs/development/python-modules/texsoup/default.nix19
-rw-r--r--pkgs/development/python-modules/text-unidecode/default.nix9
-rw-r--r--pkgs/development/python-modules/textacy/default.nix45
-rw-r--r--pkgs/development/python-modules/textdistance/default.nix17
-rw-r--r--pkgs/development/python-modules/textfsm/default.nix18
-rw-r--r--pkgs/development/python-modules/textile/default.nix23
-rw-r--r--pkgs/development/python-modules/textnets/default.nix50
-rw-r--r--pkgs/development/python-modules/textparser/default.nix27
-rw-r--r--pkgs/development/python-modules/texttable/default.nix23
-rw-r--r--pkgs/development/python-modules/textual-dev/default.nix44
-rw-r--r--pkgs/development/python-modules/textual-universal-directorytree/default.nix35
-rw-r--r--pkgs/development/python-modules/textual/default.nix44
-rw-r--r--pkgs/development/python-modules/textwrap3/default.nix13
-rw-r--r--pkgs/development/python-modules/textx/default.nix56
-rw-r--r--pkgs/development/python-modules/textx/tests.nix37
-rw-r--r--pkgs/development/python-modules/tf-keras/default.nix53
-rw-r--r--pkgs/development/python-modules/tf2onnx/default.nix58
-rw-r--r--pkgs/development/python-modules/tflearn/default.nix23
-rw-r--r--pkgs/development/python-modules/tftpy/default.nix9
-rw-r--r--pkgs/development/python-modules/tgcrypto/default.nix21
-rw-r--r--pkgs/development/python-modules/theano-pymc/default.nix50
-rw-r--r--pkgs/development/python-modules/theano/default.nix107
-rw-r--r--pkgs/development/python-modules/thefuzz/default.nix19
-rw-r--r--pkgs/development/python-modules/thelogrus/default.nix25
-rw-r--r--pkgs/development/python-modules/thermobeacon-ble/default.nix31
-rw-r--r--pkgs/development/python-modules/thermopro-ble/default.nix31
-rw-r--r--pkgs/development/python-modules/thespian/default.nix6
-rw-r--r--pkgs/development/python-modules/thinc/default.nix89
-rw-r--r--pkgs/development/python-modules/thorlabspm100/default.nix23
-rw-r--r--pkgs/development/python-modules/threadloop/default.nix15
-rw-r--r--pkgs/development/python-modules/threadpool/default.nix8
-rw-r--r--pkgs/development/python-modules/threadpoolctl/default.nix26
-rw-r--r--pkgs/development/python-modules/threat9-test-bed/default.nix37
-rw-r--r--pkgs/development/python-modules/three-merge/default.nix7
-rw-r--r--pkgs/development/python-modules/thrift/default.nix21
-rw-r--r--pkgs/development/python-modules/thriftpy2/default.nix38
-rw-r--r--pkgs/development/python-modules/throttler/default.nix23
-rw-r--r--pkgs/development/python-modules/thttp/default.nix21
-rw-r--r--pkgs/development/python-modules/tidalapi/default.nix39
-rw-r--r--pkgs/development/python-modules/tidyexc/default.nix19
-rw-r--r--pkgs/development/python-modules/tifffile/default.nix33
-rw-r--r--pkgs/development/python-modules/tika-client/default.nix19
-rw-r--r--pkgs/development/python-modules/tika/default.nix18
-rw-r--r--pkgs/development/python-modules/tiktoken/default.nix44
-rw-r--r--pkgs/development/python-modules/tikzplotlib/default.nix21
-rw-r--r--pkgs/development/python-modules/tiledb/default.nix31
-rw-r--r--pkgs/development/python-modules/tilequant/default.nix31
-rw-r--r--pkgs/development/python-modules/tiler/default.nix25
-rw-r--r--pkgs/development/python-modules/tilestache/default.nix33
-rw-r--r--pkgs/development/python-modules/tilt-ble/default.nix31
-rw-r--r--pkgs/development/python-modules/time-machine/default.nix35
-rw-r--r--pkgs/development/python-modules/timeago/default.nix13
-rw-r--r--pkgs/development/python-modules/timecop/default.nix2
-rw-r--r--pkgs/development/python-modules/timelib/default.nix14
-rw-r--r--pkgs/development/python-modules/timeout-decorator/default.nix6
-rw-r--r--pkgs/development/python-modules/timeslot/default.nix21
-rw-r--r--pkgs/development/python-modules/timetagger/default.nix35
-rw-r--r--pkgs/development/python-modules/timezonefinder/default.nix31
-rw-r--r--pkgs/development/python-modules/timing-asgi/default.nix17
-rw-r--r--pkgs/development/python-modules/timm/default.nix51
-rw-r--r--pkgs/development/python-modules/timy/default.nix28
-rw-r--r--pkgs/development/python-modules/tiny-proxy/default.nix25
-rw-r--r--pkgs/development/python-modules/tinycss/default.nix31
-rw-r--r--pkgs/development/python-modules/tinycss2/default.nix25
-rw-r--r--pkgs/development/python-modules/tinydb/default.nix21
-rw-r--r--pkgs/development/python-modules/tinygrad/default.nix199
-rw-r--r--pkgs/development/python-modules/tinygrad/fix-dlopen-cuda.patch (renamed from pkgs/development/python-modules/gpuctypes/fix-dlopen-cuda.patch)16
-rw-r--r--pkgs/development/python-modules/tinyobjloader-py/default.nix16
-rw-r--r--pkgs/development/python-modules/tinyrecord/default.nix19
-rw-r--r--pkgs/development/python-modules/tinysegmenter/default.nix24
-rw-r--r--pkgs/development/python-modules/tinytuya/default.nix47
-rw-r--r--pkgs/development/python-modules/tissue/default.nix12
-rw-r--r--pkgs/development/python-modules/titlecase/default.nix35
-rw-r--r--pkgs/development/python-modules/tkinter/default.nix38
-rw-r--r--pkgs/development/python-modules/tld/default.nix29
-rw-r--r--pkgs/development/python-modules/tldextract/default.nix33
-rw-r--r--pkgs/development/python-modules/tlds/default.nix19
-rw-r--r--pkgs/development/python-modules/tls-client/default.nix25
-rw-r--r--pkgs/development/python-modules/tls-parser/default.nix19
-rw-r--r--pkgs/development/python-modules/tlsh/default.nix10
-rw-r--r--pkgs/development/python-modules/tlslite-ng/default.nix16
-rw-r--r--pkgs/development/python-modules/tlslite/default.nix10
-rw-r--r--pkgs/development/python-modules/tlv8/default.nix17
-rw-r--r--pkgs/development/python-modules/tmb/default.nix19
-rw-r--r--pkgs/development/python-modules/todoist-api-python/default.nix33
-rw-r--r--pkgs/development/python-modules/todoist/default.nix21
-rw-r--r--pkgs/development/python-modules/token-bucket/default.nix25
-rw-r--r--pkgs/development/python-modules/tokenize-rt/default.nix23
-rw-r--r--pkgs/development/python-modules/tokenizers/default.nix69
-rw-r--r--pkgs/development/python-modules/tokenlib/default.nix42
-rw-r--r--pkgs/development/python-modules/tokentrim/default.nix19
-rw-r--r--pkgs/development/python-modules/tololib/default.nix35
-rw-r--r--pkgs/development/python-modules/toml-adapt/default.nix31
-rw-r--r--pkgs/development/python-modules/toml/default.nix8
-rw-r--r--pkgs/development/python-modules/tomli-w/default.nix13
-rw-r--r--pkgs/development/python-modules/tomli/default.nix30
-rw-r--r--pkgs/development/python-modules/tomlkit/default.nix25
-rw-r--r--pkgs/development/python-modules/toolz/default.nix9
-rw-r--r--pkgs/development/python-modules/toonapi/default.nix19
-rw-r--r--pkgs/development/python-modules/toposort/default.nix19
-rw-r--r--pkgs/development/python-modules/torch-audiomentations/default.nix21
-rw-r--r--pkgs/development/python-modules/torch-pitch-shift/default.nix19
-rw-r--r--pkgs/development/python-modules/torch-tb-profiler/default.nix28
-rw-r--r--pkgs/development/python-modules/torch/bin.nix129
-rw-r--r--pkgs/development/python-modules/torch/binary-hashes.nix110
-rw-r--r--pkgs/development/python-modules/torch/default.nix669
-rwxr-xr-xpkgs/development/python-modules/torch/prefetch.sh7
-rw-r--r--pkgs/development/python-modules/torchaudio/bin.nix97
-rw-r--r--pkgs/development/python-modules/torchaudio/binary-hashes.nix110
-rw-r--r--pkgs/development/python-modules/torchaudio/default.nix158
-rwxr-xr-xpkgs/development/python-modules/torchaudio/prefetch.sh7
-rw-r--r--pkgs/development/python-modules/torchdiffeq/default.nix25
-rw-r--r--pkgs/development/python-modules/torchgpipe/default.nix42
-rw-r--r--pkgs/development/python-modules/torchinfo/default.nix30
-rw-r--r--pkgs/development/python-modules/torchio/default.nix59
-rw-r--r--pkgs/development/python-modules/torchlibrosa/default.nix15
-rw-r--r--pkgs/development/python-modules/torchmetrics/default.nix57
-rw-r--r--pkgs/development/python-modules/torchrl/default.nix127
-rw-r--r--pkgs/development/python-modules/torchsde/default.nix35
-rw-r--r--pkgs/development/python-modules/torchsnapshot/default.nix71
-rw-r--r--pkgs/development/python-modules/torchsummary/default.nix34
-rw-r--r--pkgs/development/python-modules/torchvision/bin.nix60
-rw-r--r--pkgs/development/python-modules/torchvision/binary-hashes.nix106
-rw-r--r--pkgs/development/python-modules/torchvision/default.nix79
-rwxr-xr-xpkgs/development/python-modules/torchvision/prefetch.sh11
-rw-r--r--pkgs/development/python-modules/tornado/4.nix17
-rw-r--r--pkgs/development/python-modules/tornado/5.nix17
-rw-r--r--pkgs/development/python-modules/tornado/default.nix50
-rw-r--r--pkgs/development/python-modules/torpy/default.nix25
-rw-r--r--pkgs/development/python-modules/torrent-parser/default.nix35
-rw-r--r--pkgs/development/python-modules/torrequest/default.nix17
-rw-r--r--pkgs/development/python-modules/total-connect-client/default.nix37
-rw-r--r--pkgs/development/python-modules/towncrier/default.nix54
-rw-r--r--pkgs/development/python-modules/tox/default.nix55
-rw-r--r--pkgs/development/python-modules/tplink-omada-client/default.nix25
-rw-r--r--pkgs/development/python-modules/tpm2-pytss/default.nix89
-rw-r--r--pkgs/development/python-modules/tpm2-pytss/pr576-backport.patch117
-rw-r--r--pkgs/development/python-modules/tqdm/default.nix50
-rw-r--r--pkgs/development/python-modules/traceback2/default.nix19
-rw-r--r--pkgs/development/python-modules/tracerite/default.nix27
-rw-r--r--pkgs/development/python-modules/tracing/default.nix12
-rw-r--r--pkgs/development/python-modules/trackpy/default.nix35
-rw-r--r--pkgs/development/python-modules/trafilatura/default.nix72
-rw-r--r--pkgs/development/python-modules/trailrunner/default.nix31
-rw-r--r--pkgs/development/python-modules/trainer/default.nix40
-rw-r--r--pkgs/development/python-modules/traitlets/default.nix33
-rw-r--r--pkgs/development/python-modules/traits/default.nix17
-rw-r--r--pkgs/development/python-modules/traitsui/default.nix23
-rw-r--r--pkgs/development/python-modules/traittypes/default.nix38
-rw-r--r--pkgs/development/python-modules/trampoline/default.nix17
-rw-r--r--pkgs/development/python-modules/transaction/default.nix17
-rw-r--r--pkgs/development/python-modules/transformers/default.nix320
-rw-r--r--pkgs/development/python-modules/transforms3d/default.nix27
-rw-r--r--pkgs/development/python-modules/transitions/default.nix57
-rw-r--r--pkgs/development/python-modules/translatehtml/default.nix15
-rw-r--r--pkgs/development/python-modules/translatepy/default.nix21
-rw-r--r--pkgs/development/python-modules/translationstring/default.nix8
-rw-r--r--pkgs/development/python-modules/translitcodec/default.nix11
-rw-r--r--pkgs/development/python-modules/transmission-rpc/default.nix31
-rw-r--r--pkgs/development/python-modules/transmissionrpc/default.nix9
-rw-r--r--pkgs/development/python-modules/trectools/default.nix27
-rw-r--r--pkgs/development/python-modules/tree-sitter-html/Cargo.lock71
-rw-r--r--pkgs/development/python-modules/tree-sitter-html/default.nix56
-rw-r--r--pkgs/development/python-modules/tree-sitter-javascript/Cargo.lock71
-rw-r--r--pkgs/development/python-modules/tree-sitter-javascript/default.nix58
-rw-r--r--pkgs/development/python-modules/tree-sitter-json/Cargo.lock71
-rw-r--r--pkgs/development/python-modules/tree-sitter-json/default.nix58
-rw-r--r--pkgs/development/python-modules/tree-sitter-languages/default.nix68
-rw-r--r--pkgs/development/python-modules/tree-sitter-python/Cargo.lock71
-rw-r--r--pkgs/development/python-modules/tree-sitter-python/default.nix58
-rw-r--r--pkgs/development/python-modules/tree-sitter-rust/Cargo.lock71
-rw-r--r--pkgs/development/python-modules/tree-sitter-rust/default.nix59
-rw-r--r--pkgs/development/python-modules/tree-sitter/default.nix46
-rw-r--r--pkgs/development/python-modules/tree-sitter0_21/default.nix44
-rw-r--r--pkgs/development/python-modules/treelib/default.nix17
-rw-r--r--pkgs/development/python-modules/treelog/default.nix15
-rw-r--r--pkgs/development/python-modules/treeo/default.nix29
-rw-r--r--pkgs/development/python-modules/treex/default.nix39
-rw-r--r--pkgs/development/python-modules/treq/default.nix33
-rw-r--r--pkgs/development/python-modules/trezor-agent/default.nix47
-rw-r--r--pkgs/development/python-modules/trezor/default.nix74
-rw-r--r--pkgs/development/python-modules/trfl/default.nix30
-rw-r--r--pkgs/development/python-modules/trimesh/default.nix31
-rw-r--r--pkgs/development/python-modules/trino-python-client/default.nix49
-rw-r--r--pkgs/development/python-modules/trio-asyncio/default.nix45
-rw-r--r--pkgs/development/python-modules/trio-websocket/default.nix73
-rw-r--r--pkgs/development/python-modules/trio/default.nix68
-rw-r--r--pkgs/development/python-modules/tritonclient/default.nix26
-rw-r--r--pkgs/development/python-modules/troposphere/default.nix35
-rw-r--r--pkgs/development/python-modules/trove-classifiers/default.nix28
-rw-r--r--pkgs/development/python-modules/trueskill/default.nix18
-rw-r--r--pkgs/development/python-modules/truncnorm/default.nix44
-rw-r--r--pkgs/development/python-modules/trustme/default.nix28
-rw-r--r--pkgs/development/python-modules/truststore/default.nix43
-rw-r--r--pkgs/development/python-modules/trytond/default.nix111
-rw-r--r--pkgs/development/python-modules/tsfresh/default.nix49
-rw-r--r--pkgs/development/python-modules/tskit/default.nix44
-rw-r--r--pkgs/development/python-modules/ttach/default.nix13
-rw-r--r--pkgs/development/python-modules/ttls/default.nix25
-rw-r--r--pkgs/development/python-modules/ttn-client/default.nix35
-rw-r--r--pkgs/development/python-modules/ttp-templates/default.nix15
-rw-r--r--pkgs/development/python-modules/ttp/default.nix45
-rw-r--r--pkgs/development/python-modules/ttstokenizer/default.nix15
-rw-r--r--pkgs/development/python-modules/tubes/default.nix33
-rw-r--r--pkgs/development/python-modules/tubeup/default.nix27
-rw-r--r--pkgs/development/python-modules/tuf/default.nix35
-rw-r--r--pkgs/development/python-modules/tunigo/default.nix16
-rw-r--r--pkgs/development/python-modules/turnt/default.nix13
-rw-r--r--pkgs/development/python-modules/tuya-device-sharing-sdk/default.nix19
-rw-r--r--pkgs/development/python-modules/tuya-iot-py-sdk/default.nix17
-rw-r--r--pkgs/development/python-modules/tuyaha/default.nix9
-rw-r--r--pkgs/development/python-modules/tvdb-api/default.nix11
-rw-r--r--pkgs/development/python-modules/tweedledum/default.nix29
-rw-r--r--pkgs/development/python-modules/tweepy/default.nix33
-rw-r--r--pkgs/development/python-modules/twentemilieu/default.nix29
-rw-r--r--pkgs/development/python-modules/twiggy/default.nix12
-rw-r--r--pkgs/development/python-modules/twilio/default.nix4
-rw-r--r--pkgs/development/python-modules/twill/default.nix4
-rw-r--r--pkgs/development/python-modules/twine/default.nix33
-rw-r--r--pkgs/development/python-modules/twinkly-client/default.nix19
-rw-r--r--pkgs/development/python-modules/twisted/default.nix264
-rw-r--r--pkgs/development/python-modules/twitch-python/default.nix21
-rw-r--r--pkgs/development/python-modules/twitchapi/default.nix25
-rw-r--r--pkgs/development/python-modules/twitter-common-collections/default.nix16
-rw-r--r--pkgs/development/python-modules/twitter-common-confluence/default.nix16
-rw-r--r--pkgs/development/python-modules/twitter-common-dirutil/default.nix16
-rw-r--r--pkgs/development/python-modules/twitter-common-lang/default.nix14
-rw-r--r--pkgs/development/python-modules/twitter-common-log/default.nix23
-rw-r--r--pkgs/development/python-modules/twitter-common-options/default.nix14
-rw-r--r--pkgs/development/python-modules/twitter/default.nix25
-rw-r--r--pkgs/development/python-modules/twitterapi/default.nix17
-rw-r--r--pkgs/development/python-modules/twofish/default.nix19
-rw-r--r--pkgs/development/python-modules/txaio/default.nix23
-rw-r--r--pkgs/development/python-modules/txamqp/default.nix12
-rw-r--r--pkgs/development/python-modules/txdbus/default.nix13
-rw-r--r--pkgs/development/python-modules/txgithub/default.nix26
-rw-r--r--pkgs/development/python-modules/txi2p-tahoe/default.nix17
-rw-r--r--pkgs/development/python-modules/txredisapi/default.nix27
-rw-r--r--pkgs/development/python-modules/txrequests/default.nix28
-rw-r--r--pkgs/development/python-modules/txtai/default.nix193
-rw-r--r--pkgs/development/python-modules/txtorcon/default.nix42
-rw-r--r--pkgs/development/python-modules/txzmq/default.nix19
-rw-r--r--pkgs/development/python-modules/type-infer/default.nix50
-rw-r--r--pkgs/development/python-modules/typechecks/default.nix7
-rw-r--r--pkgs/development/python-modules/typecode/default.nix35
-rw-r--r--pkgs/development/python-modules/typecode/libmagic.nix23
-rw-r--r--pkgs/development/python-modules/typed-ast/default.nix15
-rw-r--r--pkgs/development/python-modules/typed-settings/default.nix4
-rw-r--r--pkgs/development/python-modules/typeguard/default.nix47
-rw-r--r--pkgs/development/python-modules/typepy/default.nix29
-rw-r--r--pkgs/development/python-modules/typer-shell/default.nix57
-rw-r--r--pkgs/development/python-modules/typer/default.nix43
-rw-r--r--pkgs/development/python-modules/types-aiobotocore-packages/default.nix1465
-rw-r--r--pkgs/development/python-modules/types-aiobotocore/default.nix89
-rwxr-xr-xpkgs/development/python-modules/types-aiobotocore/update.sh45
-rw-r--r--pkgs/development/python-modules/types-appdirs/default.nix7
-rw-r--r--pkgs/development/python-modules/types-awscrt/default.nix4
-rw-r--r--pkgs/development/python-modules/types-beautifulsoup4/default.nix26
-rw-r--r--pkgs/development/python-modules/types-click/default.nix9
-rw-r--r--pkgs/development/python-modules/types-colorama/default.nix13
-rw-r--r--pkgs/development/python-modules/types-dateutil/default.nix17
-rw-r--r--pkgs/development/python-modules/types-decorator/default.nix17
-rw-r--r--pkgs/development/python-modules/types-deprecated/default.nix17
-rw-r--r--pkgs/development/python-modules/types-docopt/default.nix11
-rw-r--r--pkgs/development/python-modules/types-enum34/default.nix11
-rw-r--r--pkgs/development/python-modules/types-freezegun/default.nix11
-rw-r--r--pkgs/development/python-modules/types-futures/default.nix6
-rw-r--r--pkgs/development/python-modules/types-html5lib/default.nix17
-rw-r--r--pkgs/development/python-modules/types-ipaddress/default.nix11
-rw-r--r--pkgs/development/python-modules/types-lxml/default.nix29
-rw-r--r--pkgs/development/python-modules/types-markdown/default.nix17
-rw-r--r--pkgs/development/python-modules/types-mock/default.nix13
-rw-r--r--pkgs/development/python-modules/types-pillow/default.nix15
-rw-r--r--pkgs/development/python-modules/types-protobuf/default.nix21
-rw-r--r--pkgs/development/python-modules/types-psutil/default.nix15
-rw-r--r--pkgs/development/python-modules/types-psycopg2/default.nix17
-rw-r--r--pkgs/development/python-modules/types-pyopenssl/default.nix21
-rw-r--r--pkgs/development/python-modules/types-python-dateutil/default.nix17
-rw-r--r--pkgs/development/python-modules/types-pytz/default.nix17
-rw-r--r--pkgs/development/python-modules/types-pyyaml/default.nix11
-rw-r--r--pkgs/development/python-modules/types-requests/default.nix4
-rw-r--r--pkgs/development/python-modules/types-retry/default.nix11
-rw-r--r--pkgs/development/python-modules/types-s3transfer/default.nix17
-rw-r--r--pkgs/development/python-modules/types-setuptools/default.nix21
-rw-r--r--pkgs/development/python-modules/types-tabulate/default.nix17
-rw-r--r--pkgs/development/python-modules/types-toml/default.nix7
-rw-r--r--pkgs/development/python-modules/types-tqdm/default.nix15
-rw-r--r--pkgs/development/python-modules/types-typed-ast/default.nix11
-rw-r--r--pkgs/development/python-modules/types-ujson/default.nix21
-rw-r--r--pkgs/development/python-modules/types-urllib3/default.nix11
-rw-r--r--pkgs/development/python-modules/typesentry/default.nix18
-rw-r--r--pkgs/development/python-modules/typesystem/default.nix27
-rw-r--r--pkgs/development/python-modules/typical/default.nix2
-rw-r--r--pkgs/development/python-modules/typing-extensions/default.nix31
-rw-r--r--pkgs/development/python-modules/typing-inspect/default.nix21
-rw-r--r--pkgs/development/python-modules/typing-validation/default.nix31
-rw-r--r--pkgs/development/python-modules/typish/default.nix19
-rw-r--r--pkgs/development/python-modules/typogrify/default.nix13
-rw-r--r--pkgs/development/python-modules/tzdata/default.nix29
-rw-r--r--pkgs/development/python-modules/tzlocal/default.nix21
-rw-r--r--pkgs/development/python-modules/u-msgpack-python/default.nix15
-rw-r--r--pkgs/development/python-modules/ua-parser/default.nix25
-rw-r--r--pkgs/development/python-modules/uamqp/default.nix101
-rw-r--r--pkgs/development/python-modules/uarray/default.nix29
-rw-r--r--pkgs/development/python-modules/uart-devices/default.nix19
-rw-r--r--pkgs/development/python-modules/uasiren/default.nix32
-rw-r--r--pkgs/development/python-modules/ubelt/default.nix33
-rw-r--r--pkgs/development/python-modules/uc-micro-py/default.nix25
-rw-r--r--pkgs/development/python-modules/ucsmsdk/default.nix15
-rw-r--r--pkgs/development/python-modules/udatetime/default.nix7
-rw-r--r--pkgs/development/python-modules/ueagle/default.nix15
-rw-r--r--pkgs/development/python-modules/ueberzug/default.nix31
-rw-r--r--pkgs/development/python-modules/ufmt/default.nix58
-rw-r--r--pkgs/development/python-modules/ufo2ft/default.nix53
-rw-r--r--pkgs/development/python-modules/ufolib2/default.nix41
-rw-r--r--pkgs/development/python-modules/ufolint/default.nix20
-rw-r--r--pkgs/development/python-modules/ufonormalizer/default.nix8
-rw-r--r--pkgs/development/python-modules/ufoprocessor/default.nix16
-rw-r--r--pkgs/development/python-modules/uharfbuzz/default.nix25
-rw-r--r--pkgs/development/python-modules/uhi/default.nix23
-rw-r--r--pkgs/development/python-modules/uiprotect/default.nix93
-rw-r--r--pkgs/development/python-modules/ujson/default.nix25
-rw-r--r--pkgs/development/python-modules/ukkonen/default.nix25
-rw-r--r--pkgs/development/python-modules/ukpostcodeparser/default.nix12
-rw-r--r--pkgs/development/python-modules/ulid-transform/default.nix25
-rw-r--r--pkgs/development/python-modules/ultraheat-api/default.nix19
-rw-r--r--pkgs/development/python-modules/umalqurra/default.nix8
-rw-r--r--pkgs/development/python-modules/umap-learn/default.nix53
-rw-r--r--pkgs/development/python-modules/umodbus/default.nix27
-rw-r--r--pkgs/development/python-modules/unasync/default.nix24
-rw-r--r--pkgs/development/python-modules/uncertainties/default.nix43
-rw-r--r--pkgs/development/python-modules/uncompyle6/default.nix34
-rw-r--r--pkgs/development/python-modules/undefined/default.nix17
-rw-r--r--pkgs/development/python-modules/unearth/default.nix41
-rw-r--r--pkgs/development/python-modules/unicode-rbnf/default.nix29
-rw-r--r--pkgs/development/python-modules/unicode-slugify/default.nix20
-rw-r--r--pkgs/development/python-modules/unicodecsv/default.nix8
-rw-r--r--pkgs/development/python-modules/unicodedata2/default.nix19
-rw-r--r--pkgs/development/python-modules/unicorn/default.nix41
-rw-r--r--pkgs/development/python-modules/unicrypto/default.nix17
-rw-r--r--pkgs/development/python-modules/unicurses/default.nix8
-rw-r--r--pkgs/development/python-modules/unidata-blocks/default.nix43
-rw-r--r--pkgs/development/python-modules/unidecode/default.nix25
-rw-r--r--pkgs/development/python-modules/unidic-lite/default.nix13
-rw-r--r--pkgs/development/python-modules/unidic/default.nix41
-rw-r--r--pkgs/development/python-modules/unidiff/default.nix12
-rw-r--r--pkgs/development/python-modules/unifi-discovery/default.nix51
-rw-r--r--pkgs/development/python-modules/unifi/default.nix14
-rw-r--r--pkgs/development/python-modules/unifiled/default.nix11
-rw-r--r--pkgs/development/python-modules/unify/default.nix31
-rw-r--r--pkgs/development/python-modules/unique-log-filter/default.nix27
-rw-r--r--pkgs/development/python-modules/unittest-data-provider/default.nix7
-rw-r--r--pkgs/development/python-modules/unittest-xml-reporting/default.nix46
-rw-r--r--pkgs/development/python-modules/univers/default.nix46
-rw-r--r--pkgs/development/python-modules/universal-pathlib/default.nix19
-rw-r--r--pkgs/development/python-modules/universal-silabs-flasher/default.nix57
-rw-r--r--pkgs/development/python-modules/unix-ar/default.nix9
-rw-r--r--pkgs/development/python-modules/unpaddedbase64/default.nix14
-rw-r--r--pkgs/development/python-modules/unrardll/default.nix8
-rw-r--r--pkgs/development/python-modules/unrpa/default.nix13
-rw-r--r--pkgs/development/python-modules/unstructured-api-tools/default.nix57
-rw-r--r--pkgs/development/python-modules/unstructured-inference/default.nix73
-rw-r--r--pkgs/development/python-modules/unstructured/default.nix136
-rw-r--r--pkgs/development/python-modules/untangle/default.nix17
-rw-r--r--pkgs/development/python-modules/untokenize/default.nix9
-rw-r--r--pkgs/development/python-modules/uonet-request-signer-hebe/default.nix19
-rw-r--r--pkgs/development/python-modules/upass/default.nix15
-rw-r--r--pkgs/development/python-modules/upb-lib/default.nix25
-rw-r--r--pkgs/development/python-modules/upcloud-api/default.nix17
-rw-r--r--pkgs/development/python-modules/update-checker/default.nix9
-rw-r--r--pkgs/development/python-modules/update-copyright/default.nix9
-rw-r--r--pkgs/development/python-modules/update-dotdee/default.nix31
-rw-r--r--pkgs/development/python-modules/uplc/default.nix34
-rw-r--r--pkgs/development/python-modules/upnpy/default.nix7
-rw-r--r--pkgs/development/python-modules/uproot/default.nix49
-rw-r--r--pkgs/development/python-modules/uptime-kuma-api/default.nix19
-rw-r--r--pkgs/development/python-modules/uptime-kuma-monitor/default.nix17
-rw-r--r--pkgs/development/python-modules/uptime/default.nix25
-rw-r--r--pkgs/development/python-modules/uqbar/default.nix73
-rw-r--r--pkgs/development/python-modules/uranium/default.nix44
-rw-r--r--pkgs/development/python-modules/uri-template/default.nix21
-rw-r--r--pkgs/development/python-modules/uritemplate/default.nix30
-rw-r--r--pkgs/development/python-modules/uritools/default.nix17
-rw-r--r--pkgs/development/python-modules/url-normalize/default.nix33
-rw-r--r--pkgs/development/python-modules/urlextract/default.nix31
-rw-r--r--pkgs/development/python-modules/urlgrabber/default.nix13
-rw-r--r--pkgs/development/python-modules/urllib3/default.nix142
-rw-r--r--pkgs/development/python-modules/urlman/default.nix17
-rw-r--r--pkgs/development/python-modules/urlpy/default.nix25
-rw-r--r--pkgs/development/python-modules/urwid-mitmproxy/default.nix16
-rw-r--r--pkgs/development/python-modules/urwid-readline/default.nix27
-rw-r--r--pkgs/development/python-modules/urwid/default.nix77
-rw-r--r--pkgs/development/python-modules/urwidgets/default.nix27
-rw-r--r--pkgs/development/python-modules/urwidtrees/default.nix29
-rw-r--r--pkgs/development/python-modules/us/default.nix25
-rw-r--r--pkgs/development/python-modules/usb-devices/default.nix25
-rw-r--r--pkgs/development/python-modules/usbtmc/default.nix7
-rw-r--r--pkgs/development/python-modules/user-agents/default.nix9
-rw-r--r--pkgs/development/python-modules/userpath/default.nix30
-rw-r--r--pkgs/development/python-modules/ush/default.nix11
-rw-r--r--pkgs/development/python-modules/usort/default.nix39
-rw-r--r--pkgs/development/python-modules/utils/default.nix11
-rw-r--r--pkgs/development/python-modules/uvcclient/default.nix9
-rw-r--r--pkgs/development/python-modules/uvicorn/default.nix41
-rw-r--r--pkgs/development/python-modules/uvicorn/tests.nix25
-rw-r--r--pkgs/development/python-modules/uvloop/default.nix99
-rw-r--r--pkgs/development/python-modules/uxsim/add-qt-plugin-path-to-env.patch11
-rw-r--r--pkgs/development/python-modules/uxsim/default.nix64
-rw-r--r--pkgs/development/python-modules/vaa/default.nix29
-rw-r--r--pkgs/development/python-modules/vacuum-map-parser-base/default.nix13
-rw-r--r--pkgs/development/python-modules/vacuum-map-parser-roborock/default.nix15
-rw-r--r--pkgs/development/python-modules/validator-collection/default.nix8
-rw-r--r--pkgs/development/python-modules/validobj/default.nix18
-rw-r--r--pkgs/development/python-modules/validphys2/default.nix19
-rw-r--r--pkgs/development/python-modules/vallox-websocket-api/default.nix27
-rw-r--r--pkgs/development/python-modules/vapoursynth/default.nix34
-rw-r--r--pkgs/development/python-modules/variants/default.nix23
-rw-r--r--pkgs/development/python-modules/varint/default.nix11
-rw-r--r--pkgs/development/python-modules/vat-moss/default.nix25
-rw-r--r--pkgs/development/python-modules/vcard/default.nix26
-rw-r--r--pkgs/development/python-modules/vcrpy/default.nix29
-rw-r--r--pkgs/development/python-modules/vcver/default.nix13
-rw-r--r--pkgs/development/python-modules/vcversioner/default.nix6
-rw-r--r--pkgs/development/python-modules/vdf/default.nix16
-rw-r--r--pkgs/development/python-modules/vdirsyncer/default.nix55
-rw-r--r--pkgs/development/python-modules/vector/default.nix35
-rw-r--r--pkgs/development/python-modules/vega-datasets/default.nix48
-rw-r--r--pkgs/development/python-modules/vega/default.nix45
-rw-r--r--pkgs/development/python-modules/vehicle/default.nix35
-rw-r--r--pkgs/development/python-modules/velbus-aio/default.nix8
-rw-r--r--pkgs/development/python-modules/venstarcolortouch/default.nix17
-rw-r--r--pkgs/development/python-modules/venusian/default.nix21
-rw-r--r--pkgs/development/python-modules/verboselogs/default.nix17
-rw-r--r--pkgs/development/python-modules/verlib2/default.nix13
-rw-r--r--pkgs/development/python-modules/versioneer/default.nix27
-rw-r--r--pkgs/development/python-modules/versionfinder/default.nix23
-rw-r--r--pkgs/development/python-modules/versioningit/default.nix56
-rw-r--r--pkgs/development/python-modules/versiontag/default.nix7
-rw-r--r--pkgs/development/python-modules/versiontools/default.nix10
-rw-r--r--pkgs/development/python-modules/verspec/default.nix22
-rw-r--r--pkgs/development/python-modules/vertica-python/default.nix25
-rw-r--r--pkgs/development/python-modules/veryprettytable/default.nix19
-rw-r--r--pkgs/development/python-modules/vg/default.nix33
-rw-r--r--pkgs/development/python-modules/vharfbuzz/default.nix18
-rw-r--r--pkgs/development/python-modules/videocr/default.nix15
-rw-r--r--pkgs/development/python-modules/vidstab/default.nix25
-rw-r--r--pkgs/development/python-modules/viewstate/default.nix19
-rw-r--r--pkgs/development/python-modules/vilfo-api-client/default.nix23
-rw-r--r--pkgs/development/python-modules/vincenty/default.nix7
-rw-r--r--pkgs/development/python-modules/vine/default.nix17
-rw-r--r--pkgs/development/python-modules/virt-firmware/default.nix41
-rw-r--r--pkgs/development/python-modules/virtkey/default.nix26
-rw-r--r--pkgs/development/python-modules/virtualenv-clone/default.nix21
-rw-r--r--pkgs/development/python-modules/virtualenv/default.nix90
-rw-r--r--pkgs/development/python-modules/virtualenvwrapper/default.nix66
-rw-r--r--pkgs/development/python-modules/visions/default.nix70
-rw-r--r--pkgs/development/python-modules/visitor/default.nix8
-rw-r--r--pkgs/development/python-modules/vispy/default.nix49
-rw-r--r--pkgs/development/python-modules/viv-utils/default.nix31
-rw-r--r--pkgs/development/python-modules/vivisect/default.nix33
-rw-r--r--pkgs/development/python-modules/vllm/default.nix194
-rw-r--r--pkgs/development/python-modules/vmprof/default.nix82
-rw-r--r--pkgs/development/python-modules/vncdo/default.nix33
-rw-r--r--pkgs/development/python-modules/vnoise/default.nix35
-rw-r--r--pkgs/development/python-modules/vobject/default.nix9
-rw-r--r--pkgs/development/python-modules/volatile/default.nix21
-rw-r--r--pkgs/development/python-modules/volkszaehler/default.nix23
-rw-r--r--pkgs/development/python-modules/voluptuous-openapi/default.nix43
-rw-r--r--pkgs/development/python-modules/voluptuous-serialize/default.nix27
-rw-r--r--pkgs/development/python-modules/voluptuous-stubs/default.nix17
-rw-r--r--pkgs/development/python-modules/voluptuous/default.nix29
-rw-r--r--pkgs/development/python-modules/volvooncall/default.nix39
-rw-r--r--pkgs/development/python-modules/vowpalwabbit/default.nix47
-rw-r--r--pkgs/development/python-modules/vpk/default.nix13
-rw-r--r--pkgs/development/python-modules/vprof/default.nix17
-rw-r--r--pkgs/development/python-modules/vqgan-jax/default.nix23
-rw-r--r--pkgs/development/python-modules/vsts-cd-manager/default.nix13
-rw-r--r--pkgs/development/python-modules/vsts/default.nix11
-rw-r--r--pkgs/development/python-modules/vsure/default.nix17
-rw-r--r--pkgs/development/python-modules/vt-py/default.nix8
-rw-r--r--pkgs/development/python-modules/vtjp/default.nix25
-rw-r--r--pkgs/development/python-modules/vulcan-api/default.nix41
-rw-r--r--pkgs/development/python-modules/vultr/default.nix13
-rw-r--r--pkgs/development/python-modules/vulture/default.nix31
-rw-r--r--pkgs/development/python-modules/vxi11/default.nix7
-rw-r--r--pkgs/development/python-modules/w1thermsensor/default.nix60
-rw-r--r--pkgs/development/python-modules/w3lib/default.nix25
-rw-r--r--pkgs/development/python-modules/wadllib/default.nix18
-rw-r--r--pkgs/development/python-modules/wagtail-factories/default.nix19
-rw-r--r--pkgs/development/python-modules/wagtail-factories/tests.nix13
-rw-r--r--pkgs/development/python-modules/wagtail-localize/default.nix39
-rw-r--r--pkgs/development/python-modules/wagtail-modeladmin/default.nix41
-rw-r--r--pkgs/development/python-modules/wagtail/default.nix53
-rw-r--r--pkgs/development/python-modules/wagtail/tests.nix27
-rw-r--r--pkgs/development/python-modules/waitress-django/default.nix33
-rw-r--r--pkgs/development/python-modules/waitress/default.nix18
-rw-r--r--pkgs/development/python-modules/wakeonlan/default.nix29
-rw-r--r--pkgs/development/python-modules/wallbox/default.nix32
-rw-r--r--pkgs/development/python-modules/wallet-py3k/default.nix27
-rw-r--r--pkgs/development/python-modules/walrus/default.nix38
-rw-r--r--pkgs/development/python-modules/wand/default.nix13
-rw-r--r--pkgs/development/python-modules/wandb/default.nix399
-rw-r--r--pkgs/development/python-modules/waqiasync/default.nix11
-rw-r--r--pkgs/development/python-modules/warble/default.nix27
-rw-r--r--pkgs/development/python-modules/warcio/default.nix33
-rw-r--r--pkgs/development/python-modules/ward/default.nix38
-rw-r--r--pkgs/development/python-modules/warlock/default.nix31
-rw-r--r--pkgs/development/python-modules/warrant-lite/default.nix21
-rw-r--r--pkgs/development/python-modules/warrant/default.nix27
-rw-r--r--pkgs/development/python-modules/wasabi/default.nix33
-rw-r--r--pkgs/development/python-modules/wasmer/default.nix73
-rw-r--r--pkgs/development/python-modules/wasmer/tests.nix13
-rw-r--r--pkgs/development/python-modules/wasserstein/default.nix35
-rw-r--r--pkgs/development/python-modules/watchdog-gevent/default.nix2
-rw-r--r--pkgs/development/python-modules/watchdog/default.nix136
-rw-r--r--pkgs/development/python-modules/watchfiles/default.nix45
-rw-r--r--pkgs/development/python-modules/watchgod/default.nix14
-rw-r--r--pkgs/development/python-modules/waterfurnace/default.nix23
-rw-r--r--pkgs/development/python-modules/watermark/default.nix33
-rw-r--r--pkgs/development/python-modules/wavedrom/default.nix33
-rw-r--r--pkgs/development/python-modules/wavefile/default.nix31
-rw-r--r--pkgs/development/python-modules/wavinsentio/default.nix19
-rw-r--r--pkgs/development/python-modules/waybackpy/default.nix35
-rw-r--r--pkgs/development/python-modules/wazeroutecalculator/default.nix19
-rw-r--r--pkgs/development/python-modules/wcag-contrast-ratio/default.nix15
-rw-r--r--pkgs/development/python-modules/wcmatch/default.nix25
-rw-r--r--pkgs/development/python-modules/wcwidth/default.nix25
-rw-r--r--pkgs/development/python-modules/weasel/default.nix40
-rw-r--r--pkgs/development/python-modules/weasyprint/default.nix64
-rw-r--r--pkgs/development/python-modules/weasyprint/library-paths.patch9
-rw-r--r--pkgs/development/python-modules/weatherflow4py/default.nix54
-rw-r--r--pkgs/development/python-modules/weaviate-client/default.nix6
-rw-r--r--pkgs/development/python-modules/web-cache/default.nix7
-rw-r--r--pkgs/development/python-modules/web/default.nix24
-rw-r--r--pkgs/development/python-modules/web3/default.nix73
-rw-r--r--pkgs/development/python-modules/webargs/default.nix25
-rw-r--r--pkgs/development/python-modules/webassets/default.nix18
-rw-r--r--pkgs/development/python-modules/webauthn/default.nix29
-rw-r--r--pkgs/development/python-modules/webcolors/default.nix26
-rw-r--r--pkgs/development/python-modules/webdataset/default.nix97
-rw-r--r--pkgs/development/python-modules/webdav4/default.nix42
-rw-r--r--pkgs/development/python-modules/webdavclient3/default.nix18
-rw-r--r--pkgs/development/python-modules/webdriver-manager/default.nix36
-rw-r--r--pkgs/development/python-modules/webencodings/default.nix9
-rw-r--r--pkgs/development/python-modules/webexteamssdk/default.nix42
-rw-r--r--pkgs/development/python-modules/webhelpers/default.nix23
-rw-r--r--pkgs/development/python-modules/webob/default.nix19
-rw-r--r--pkgs/development/python-modules/weboob/default.nix65
-rw-r--r--pkgs/development/python-modules/webrtc-noise-gain/default.nix43
-rw-r--r--pkgs/development/python-modules/webrtcvad/default.nix7
-rw-r--r--pkgs/development/python-modules/websocket-client/default.nix38
-rw-r--r--pkgs/development/python-modules/websockets/default.nix27
-rw-r--r--pkgs/development/python-modules/websockify/default.nix35
-rw-r--r--pkgs/development/python-modules/webssh/default.nix32
-rw-r--r--pkgs/development/python-modules/webssh/remove-typo-in-test-case.patch18
-rw-r--r--pkgs/development/python-modules/webtest-aiohttp/default.nix27
-rw-r--r--pkgs/development/python-modules/webtest/default.nix31
-rw-r--r--pkgs/development/python-modules/webthing-ws/default.nix19
-rw-r--r--pkgs/development/python-modules/webthing/default.nix23
-rw-r--r--pkgs/development/python-modules/weconnect-mqtt/default.nix42
-rw-r--r--pkgs/development/python-modules/weconnect/default.nix37
-rw-r--r--pkgs/development/python-modules/werkzeug/default.nix104
-rw-r--r--pkgs/development/python-modules/west/default.nix23
-rw-r--r--pkgs/development/python-modules/wfuzz/default.nix37
-rw-r--r--pkgs/development/python-modules/wget/default.nix7
-rw-r--r--pkgs/development/python-modules/whatthepatch/default.nix25
-rw-r--r--pkgs/development/python-modules/wheel-filename/default.nix25
-rw-r--r--pkgs/development/python-modules/wheel-inspect/default.nix40
-rw-r--r--pkgs/development/python-modules/wheel/default.nix19
-rw-r--r--pkgs/development/python-modules/wheezy-captcha/default.nix11
-rw-r--r--pkgs/development/python-modules/wheezy-template/default.nix9
-rw-r--r--pkgs/development/python-modules/whenever/default.nix37
-rw-r--r--pkgs/development/python-modules/whichcraft/default.nix10
-rw-r--r--pkgs/development/python-modules/whirlpool-sixth-sense/default.nix6
-rw-r--r--pkgs/development/python-modules/whisper/default.nix22
-rw-r--r--pkgs/development/python-modules/whitenoise/default.nix31
-rw-r--r--pkgs/development/python-modules/whodap/default.nix23
-rw-r--r--pkgs/development/python-modules/whois-api/default.nix21
-rw-r--r--pkgs/development/python-modules/whois/default.nix21
-rw-r--r--pkgs/development/python-modules/whoisdomain/default.nix19
-rw-r--r--pkgs/development/python-modules/whoosh/default.nix29
-rw-r--r--pkgs/development/python-modules/widgetsnbextension/default.nix23
-rw-r--r--pkgs/development/python-modules/widlparser/default.nix19
-rw-r--r--pkgs/development/python-modules/wiffi/default.nix19
-rw-r--r--pkgs/development/python-modules/wifi/default.nix25
-rw-r--r--pkgs/development/python-modules/wikipedia-api/default.nix15
-rw-r--r--pkgs/development/python-modules/wikipedia/default.nix23
-rw-r--r--pkgs/development/python-modules/wikipedia2vec/default.nix35
-rw-r--r--pkgs/development/python-modules/wikitextparser/default.nix27
-rw-r--r--pkgs/development/python-modules/willow/default.nix57
-rw-r--r--pkgs/development/python-modules/winacl/default.nix31
-rw-r--r--pkgs/development/python-modules/winsspi/default.nix19
-rw-r--r--pkgs/development/python-modules/withings-api/default.nix27
-rw-r--r--pkgs/development/python-modules/withings-sync/default.nix27
-rw-r--r--pkgs/development/python-modules/wktutils/default.nix66
-rw-r--r--pkgs/development/python-modules/wled/default.nix58
-rw-r--r--pkgs/development/python-modules/wn/default.nix31
-rw-r--r--pkgs/development/python-modules/woob/default.nix66
-rw-r--r--pkgs/development/python-modules/woodblock/default.nix19
-rw-r--r--pkgs/development/python-modules/wordcloud/default.nix53
-rw-r--r--pkgs/development/python-modules/wordfreq/default.nix33
-rw-r--r--pkgs/development/python-modules/worldengine/default.nix31
-rw-r--r--pkgs/development/python-modules/wrapio/default.nix14
-rw-r--r--pkgs/development/python-modules/wrapt/default.nix26
-rw-r--r--pkgs/development/python-modules/wrf-python/default.nix39
-rw-r--r--pkgs/development/python-modules/ws4py/default.nix33
-rw-r--r--pkgs/development/python-modules/wsdiscovery/default.nix21
-rw-r--r--pkgs/development/python-modules/wsgi-intercept/default.nix35
-rw-r--r--pkgs/development/python-modules/wsgidav/default.nix45
-rw-r--r--pkgs/development/python-modules/wsgiprox/default.nix11
-rw-r--r--pkgs/development/python-modules/wsgiproxy2/default.nix19
-rw-r--r--pkgs/development/python-modules/wsgitools/default.nix26
-rw-r--r--pkgs/development/python-modules/wsme/default.nix43
-rw-r--r--pkgs/development/python-modules/wsnsimpy/default.nix23
-rw-r--r--pkgs/development/python-modules/wsproto/default.nix13
-rw-r--r--pkgs/development/python-modules/wtf-peewee/default.nix19
-rw-r--r--pkgs/development/python-modules/wtforms-bootstrap5/default.nix23
-rw-r--r--pkgs/development/python-modules/wtforms/default.nix44
-rw-r--r--pkgs/development/python-modules/wunsen/default.nix47
-rw-r--r--pkgs/development/python-modules/wurlitzer/default.nix27
-rw-r--r--pkgs/development/python-modules/wxpython/4.2.nix125
-rw-r--r--pkgs/development/python-modules/wyoming/default.nix45
-rw-r--r--pkgs/development/python-modules/x-wr-timezone/default.nix23
-rw-r--r--pkgs/development/python-modules/x11-hash/default.nix19
-rw-r--r--pkgs/development/python-modules/x256/default.nix6
-rw-r--r--pkgs/development/python-modules/xapian/default.nix15
-rw-r--r--pkgs/development/python-modules/xapp/default.nix50
-rw-r--r--pkgs/development/python-modules/xarray-dataclasses/default.nix25
-rw-r--r--pkgs/development/python-modules/xarray-einstats/default.nix33
-rw-r--r--pkgs/development/python-modules/xarray/default.nix33
-rw-r--r--pkgs/development/python-modules/xattr/default.nix23
-rw-r--r--pkgs/development/python-modules/xbox-webapi/default.nix31
-rw-r--r--pkgs/development/python-modules/xboxapi/default.nix11
-rw-r--r--pkgs/development/python-modules/xcffib/default.nix35
-rw-r--r--pkgs/development/python-modules/xdg-base-dirs/default.nix19
-rw-r--r--pkgs/development/python-modules/xdg/default.nix21
-rw-r--r--pkgs/development/python-modules/xdis/default.nix25
-rw-r--r--pkgs/development/python-modules/xdoctest/default.nix25
-rw-r--r--pkgs/development/python-modules/xdot/default.nix29
-rw-r--r--pkgs/development/python-modules/xdxf2html/default.nix13
-rw-r--r--pkgs/development/python-modules/xformers/default.nix98
-rw-r--r--pkgs/development/python-modules/xgboost/default.nix45
-rw-r--r--pkgs/development/python-modules/xhtml2pdf/default.nix45
-rw-r--r--pkgs/development/python-modules/xiaomi-ble/default.nix52
-rw-r--r--pkgs/development/python-modules/xkbcommon/default.nix17
-rw-r--r--pkgs/development/python-modules/xkcdpass/default.nix33
-rw-r--r--pkgs/development/python-modules/xknx/default.nix37
-rw-r--r--pkgs/development/python-modules/xlib/default.nix39
-rw-r--r--pkgs/development/python-modules/xlrd/default.nix14
-rw-r--r--pkgs/development/python-modules/xlsx2csv/default.nix13
-rw-r--r--pkgs/development/python-modules/xlsxwriter/default.nix25
-rw-r--r--pkgs/development/python-modules/xlwt/default.nix37
-rw-r--r--pkgs/development/python-modules/xmind/default.nix13
-rw-r--r--pkgs/development/python-modules/xml-marshaller/default.nix18
-rw-r--r--pkgs/development/python-modules/xml2rfc/default.nix62
-rw-r--r--pkgs/development/python-modules/xmldiff/default.nix35
-rw-r--r--pkgs/development/python-modules/xmljson/default.nix13
-rw-r--r--pkgs/development/python-modules/xmlschema/default.nix7
-rw-r--r--pkgs/development/python-modules/xmlsec/default.nix45
-rw-r--r--pkgs/development/python-modules/xmltodict/default.nix15
-rw-r--r--pkgs/development/python-modules/xmod/default.nix27
-rw-r--r--pkgs/development/python-modules/xmodem/default.nix15
-rw-r--r--pkgs/development/python-modules/xmpppy/default.nix35
-rw-r--r--pkgs/development/python-modules/xnatpy/default.nix24
-rw-r--r--pkgs/development/python-modules/xnd/default.nix33
-rw-r--r--pkgs/development/python-modules/xpath-expressions/default.nix21
-rw-r--r--pkgs/development/python-modules/xpybutil/default.nix19
-rw-r--r--pkgs/development/python-modules/xrootd/default.nix19
-rw-r--r--pkgs/development/python-modules/xsdata/default.nix59
-rw-r--r--pkgs/development/python-modules/xstatic-asciinema-player/default.nix7
-rw-r--r--pkgs/development/python-modules/xstatic-bootbox/default.nix10
-rw-r--r--pkgs/development/python-modules/xstatic-bootstrap/default.nix10
-rw-r--r--pkgs/development/python-modules/xstatic-font-awesome/default.nix7
-rw-r--r--pkgs/development/python-modules/xstatic-jquery-file-upload/default.nix14
-rw-r--r--pkgs/development/python-modules/xstatic-jquery-ui/default.nix12
-rw-r--r--pkgs/development/python-modules/xstatic-jquery/default.nix12
-rw-r--r--pkgs/development/python-modules/xstatic-pygments/default.nix10
-rw-r--r--pkgs/development/python-modules/xstatic/default.nix10
-rw-r--r--pkgs/development/python-modules/xtensor-python/default.nix85
-rw-r--r--pkgs/development/python-modules/xvfbwrapper/default.nix13
-rw-r--r--pkgs/development/python-modules/xxhash/default.nix19
-rw-r--r--pkgs/development/python-modules/xyzservices/default.nix37
-rw-r--r--pkgs/development/python-modules/y-py/default.nix23
-rw-r--r--pkgs/development/python-modules/yacs/default.nix11
-rw-r--r--pkgs/development/python-modules/yahooweather/default.nix7
-rw-r--r--pkgs/development/python-modules/yalesmartalarmclient/default.nix17
-rw-r--r--pkgs/development/python-modules/yalexs-ble/default.nix35
-rw-r--r--pkgs/development/python-modules/yalexs/default.nix15
-rw-r--r--pkgs/development/python-modules/yamale/default.nix2
-rw-r--r--pkgs/development/python-modules/yamlfix/default.nix31
-rw-r--r--pkgs/development/python-modules/yamllint/default.nix58
-rw-r--r--pkgs/development/python-modules/yamlloader/default.nix21
-rw-r--r--pkgs/development/python-modules/yamlordereddictloader/default.nix9
-rw-r--r--pkgs/development/python-modules/yanc/default.nix8
-rw-r--r--pkgs/development/python-modules/yangson/default.nix35
-rw-r--r--pkgs/development/python-modules/yapf/default.nix45
-rw-r--r--pkgs/development/python-modules/yappi/default.nix25
-rw-r--r--pkgs/development/python-modules/yapsy/default.nix15
-rw-r--r--pkgs/development/python-modules/yara-python/default.nix50
-rw-r--r--pkgs/development/python-modules/yaramod/default.nix105
-rw-r--r--pkgs/development/python-modules/yarg/default.nix16
-rw-r--r--pkgs/development/python-modules/yargy/default.nix11
-rw-r--r--pkgs/development/python-modules/yark/default.nix29
-rw-r--r--pkgs/development/python-modules/yarl/default.nix29
-rw-r--r--pkgs/development/python-modules/yasi/default.nix27
-rw-r--r--pkgs/development/python-modules/yaspin/default.nix29
-rw-r--r--pkgs/development/python-modules/yaswfp/default.nix13
-rw-r--r--pkgs/development/python-modules/yattag/default.nix13
-rw-r--r--pkgs/development/python-modules/ydata-profiling/default.nix103
-rw-r--r--pkgs/development/python-modules/ydiff/default.nix16
-rw-r--r--pkgs/development/python-modules/yeelight/default.nix35
-rw-r--r--pkgs/development/python-modules/yfinance/default.nix23
-rw-r--r--pkgs/development/python-modules/yolink-api/default.nix4
-rw-r--r--pkgs/development/python-modules/youless-api/default.nix51
-rw-r--r--pkgs/development/python-modules/youseedee/default.nix15
-rw-r--r--pkgs/development/python-modules/youtokentome/default.nix23
-rw-r--r--pkgs/development/python-modules/youtube-search-python/default.nix19
-rw-r--r--pkgs/development/python-modules/youtube-search/default.nix19
-rw-r--r--pkgs/development/python-modules/youtube-transcript-api/default.nix25
-rw-r--r--pkgs/development/python-modules/youtubeaio/default.nix29
-rw-r--r--pkgs/development/python-modules/yowsup/default.nix36
-rw-r--r--pkgs/development/python-modules/yoyo-migrations/default.nix15
-rw-r--r--pkgs/development/python-modules/ypy-websocket/default.nix35
-rw-r--r--pkgs/development/python-modules/yq/default.nix36
-rw-r--r--pkgs/development/python-modules/yte/default.nix35
-rw-r--r--pkgs/development/python-modules/ytmusicapi/default.nix31
-rw-r--r--pkgs/development/python-modules/yubico-client/default.nix10
-rw-r--r--pkgs/development/python-modules/yubico/default.nix13
-rw-r--r--pkgs/development/python-modules/z3c-checkversions/default.nix18
-rw-r--r--pkgs/development/python-modules/zadnegoale/default.nix27
-rw-r--r--pkgs/development/python-modules/zamg/default.nix27
-rw-r--r--pkgs/development/python-modules/zarr/default.nix41
-rw-r--r--pkgs/development/python-modules/zbaemon/default.nix12
-rw-r--r--pkgs/development/python-modules/zc-lockfile/default.nix13
-rw-r--r--pkgs/development/python-modules/zcbor/default.nix29
-rw-r--r--pkgs/development/python-modules/zconfig/default.nix46
-rw-r--r--pkgs/development/python-modules/zcs/default.nix31
-rw-r--r--pkgs/development/python-modules/zdaemon/default.nix25
-rw-r--r--pkgs/development/python-modules/zeep/default.nix64
-rw-r--r--pkgs/development/python-modules/zephyr-python-api/default.nix21
-rw-r--r--pkgs/development/python-modules/zeroc-ice/default.nix28
-rw-r--r--pkgs/development/python-modules/zeroconf/default.nix31
-rw-r--r--pkgs/development/python-modules/zerorpc/default.nix19
-rw-r--r--pkgs/development/python-modules/zetup/default.nix17
-rw-r--r--pkgs/development/python-modules/zeversolarlocal/default.nix31
-rw-r--r--pkgs/development/python-modules/zfec/default.nix28
-rw-r--r--pkgs/development/python-modules/zha-quirks/default.nix4
-rw-r--r--pkgs/development/python-modules/zha/default.nix66
-rw-r--r--pkgs/development/python-modules/ziafont/default.nix28
-rw-r--r--pkgs/development/python-modules/ziamath/default.nix33
-rw-r--r--pkgs/development/python-modules/zict/default.nix25
-rw-r--r--pkgs/development/python-modules/zigpy-cc/default.nix25
-rw-r--r--pkgs/development/python-modules/zigpy-deconz/default.nix29
-rw-r--r--pkgs/development/python-modules/zigpy-xbee/default.nix27
-rw-r--r--pkgs/development/python-modules/zigpy-zigate/default.nix35
-rw-r--r--pkgs/development/python-modules/zigpy-znp/default.nix45
-rw-r--r--pkgs/development/python-modules/zigpy/default.nix93
-rw-r--r--pkgs/development/python-modules/zimports/default.nix29
-rw-r--r--pkgs/development/python-modules/zipfile2/default.nix11
-rw-r--r--pkgs/development/python-modules/zipp/default.nix76
-rw-r--r--pkgs/development/python-modules/zipstream-ng/default.nix19
-rw-r--r--pkgs/development/python-modules/zipstream/default.nix21
-rw-r--r--pkgs/development/python-modules/zlib-ng/default.nix35
-rw-r--r--pkgs/development/python-modules/zm-py/default.nix33
-rw-r--r--pkgs/development/python-modules/zodb/default.nix29
-rw-r--r--pkgs/development/python-modules/zodbpickle/default.nix17
-rw-r--r--pkgs/development/python-modules/zope-cachedescriptors/default.nix23
-rw-r--r--pkgs/development/python-modules/zope-component/default.nix26
-rw-r--r--pkgs/development/python-modules/zope-configuration/default.nix37
-rw-r--r--pkgs/development/python-modules/zope-contenttype/default.nix25
-rw-r--r--pkgs/development/python-modules/zope-copy/default.nix29
-rw-r--r--pkgs/development/python-modules/zope-deferredimport/default.nix11
-rw-r--r--pkgs/development/python-modules/zope-deprecation/default.nix30
-rw-r--r--pkgs/development/python-modules/zope-dottedname/default.nix33
-rw-r--r--pkgs/development/python-modules/zope-event/default.nix10
-rw-r--r--pkgs/development/python-modules/zope-exceptions/default.nix26
-rw-r--r--pkgs/development/python-modules/zope-filerepresentation/default.nix17
-rw-r--r--pkgs/development/python-modules/zope-hookable/default.nix19
-rw-r--r--pkgs/development/python-modules/zope-i18nmessageid/default.nix19
-rw-r--r--pkgs/development/python-modules/zope-interface/default.nix22
-rw-r--r--pkgs/development/python-modules/zope-lifecycleevent/default.nix24
-rw-r--r--pkgs/development/python-modules/zope-location/default.nix10
-rw-r--r--pkgs/development/python-modules/zope-proxy/default.nix21
-rw-r--r--pkgs/development/python-modules/zope-schema/default.nix23
-rw-r--r--pkgs/development/python-modules/zope-size/default.nix17
-rw-r--r--pkgs/development/python-modules/zope-testbrowser/default.nix39
-rw-r--r--pkgs/development/python-modules/zope-testing/default.nix35
-rw-r--r--pkgs/development/python-modules/zope-testrunner/default.nix25
-rw-r--r--pkgs/development/python-modules/zopfli/default.nix10
-rw-r--r--pkgs/development/python-modules/zstandard/default.nix29
-rw-r--r--pkgs/development/python-modules/zstd/default.nix19
-rw-r--r--pkgs/development/python-modules/zulip/default.nix29
-rw-r--r--pkgs/development/python-modules/zwave-js-server-python/default.nix4
-rw-r--r--pkgs/development/python-modules/zwave-me-ws/default.nix23
-rw-r--r--pkgs/development/python-modules/zxcvbn/default.nix14
-rw-r--r--pkgs/development/python-modules/zxing-cpp/default.nix35
7456 files changed, 125496 insertions, 111600 deletions
diff --git a/pkgs/development/python-modules/3to2/default.nix b/pkgs/development/python-modules/3to2/default.nix
index b86e16ae0d4d0..7832a765a05f9 100644
--- a/pkgs/development/python-modules/3to2/default.nix
+++ b/pkgs/development/python-modules/3to2/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/a2wsgi/default.nix b/pkgs/development/python-modules/a2wsgi/default.nix
index b2b5a03beac46..4706c97c9bc45 100644
--- a/pkgs/development/python-modules/a2wsgi/default.nix
+++ b/pkgs/development/python-modules/a2wsgi/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, asgiref
-, httpx
-, pdm-backend
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  asgiref,
+  httpx,
+  pdm-backend,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-UOgaxVqmCfosZm5CuswlxCTIiEzmBy8afpAhFLfuXWM=";
   };
 
-  nativeBuildInputs = [
-    pdm-backend
-  ];
+  nativeBuildInputs = [ pdm-backend ];
 
   nativeCheckInputs = [
     asgiref
diff --git a/pkgs/development/python-modules/aadict/default.nix b/pkgs/development/python-modules/aadict/default.nix
index 4ddf06bbb700a..0988fab6d2389 100644
--- a/pkgs/development/python-modules/aadict/default.nix
+++ b/pkgs/development/python-modules/aadict/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
-, pynose
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  pynose,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -16,24 +17,16 @@ buildPythonPackage rec {
     hash = "sha256-p3MorFXbtXNdqZRBhwJRvv4TX2h6twenoXhWE2OydwQ=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    six
-  ];
+  dependencies = [ six ];
 
-  nativeCheckInputs = [
-    pynose
-  ];
+  nativeCheckInputs = [ pynose ];
 
-  pythonImportsCheck = [
-    "aadict"
-  ];
+  pythonImportsCheck = [ "aadict" ];
 
   meta = with lib; {
-    description = "An auto-attribute dict (and a couple of other useful dict functions)";
+    description = "Auto-attribute dict (and a couple of other useful dict functions)";
     homepage = "https://github.com/metagriffin/aadict";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ glittershark ];
diff --git a/pkgs/development/python-modules/aafigure/default.nix b/pkgs/development/python-modules/aafigure/default.nix
index b2a04d8ac5994..0d519a1bddb71 100644
--- a/pkgs/development/python-modules/aafigure/default.nix
+++ b/pkgs/development/python-modules/aafigure/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pillow }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pillow,
+}:
 
 buildPythonPackage rec {
   pname = "aafigure";
diff --git a/pkgs/development/python-modules/aardwolf/default.nix b/pkgs/development/python-modules/aardwolf/default.nix
index 934133d0d7055..72d309cd32980 100644
--- a/pkgs/development/python-modules/aardwolf/default.nix
+++ b/pkgs/development/python-modules/aardwolf/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, stdenv
-, arc4
-, asn1crypto
-, asn1tools
-, asyauth
-, asysocks
-, buildPythonPackage
-, cargo
-, colorama
-, fetchFromGitHub
-, iconv
-, minikerberos
-, pillow
-, pyperclip
-, pythonOlder
-, rustPlatform
-, rustc
-, setuptools-rust
-, tqdm
-, unicrypto
-, winsspi
+{
+  lib,
+  stdenv,
+  arc4,
+  asn1crypto,
+  asn1tools,
+  asyauth,
+  asysocks,
+  buildPythonPackage,
+  cargo,
+  colorama,
+  fetchFromGitHub,
+  iconv,
+  minikerberos,
+  pillow,
+  pyperclip,
+  pythonOlder,
+  rustPlatform,
+  rustc,
+  setuptools-rust,
+  tqdm,
+  unicrypto,
+  winsspi,
 }:
 
 buildPythonPackage rec {
@@ -65,16 +66,12 @@ buildPythonPackage rec {
     tqdm
     unicrypto
     winsspi
-  ] ++ lib.optionals (stdenv.isDarwin) [
-    iconv
-  ];
+  ] ++ lib.optionals (stdenv.isDarwin) [ iconv ];
 
   # Module doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aardwolf"
-  ];
+  pythonImportsCheck = [ "aardwolf" ];
 
   meta = with lib; {
     description = "Asynchronous RDP protocol implementation";
diff --git a/pkgs/development/python-modules/abjad/default.nix b/pkgs/development/python-modules/abjad/default.nix
index 3c501a029b189..9ff530afdf741 100644
--- a/pkgs/development/python-modules/abjad/default.nix
+++ b/pkgs/development/python-modules/abjad/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, ply
-, roman
-, uqbar
-, pythonOlder
-, pytestCheckHook
-, lilypond
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  ply,
+  roman,
+  uqbar,
+  pythonOlder,
+  pytestCheckHook,
+  lilypond,
 }:
 
 buildPythonPackage rec {
@@ -27,13 +28,9 @@ buildPythonPackage rec {
     uqbar
   ];
 
-  buildInputs = [
-    lilypond
-  ];
+  buildInputs = [ lilypond ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace abjad/io.py \
diff --git a/pkgs/development/python-modules/about-time/default.nix b/pkgs/development/python-modules/about-time/default.nix
index d705bf5a3e15c..24d92ea3b6851 100644
--- a/pkgs/development/python-modules/about-time/default.nix
+++ b/pkgs/development/python-modules/about-time/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
 }:
 
 buildPythonPackage rec {
@@ -19,12 +20,10 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  pythonImportsCheck = [
-    "about_time"
-  ];
+  pythonImportsCheck = [ "about_time" ];
 
   meta = with lib; {
-    description = "A cool helper for tracking time and throughput of code blocks, with beautiful human friendly renditions";
+    description = "Cool helper for tracking time and throughput of code blocks, with beautiful human friendly renditions";
     homepage = "https://github.com/rsalmei/about-time";
     license = licenses.mit;
     maintainers = with maintainers; [ thiagokokada ];
diff --git a/pkgs/development/python-modules/absl-py/default.nix b/pkgs/development/python-modules/absl-py/default.nix
index eb412275a8821..9447d53ae699c 100644
--- a/pkgs/development/python-modules/absl-py/default.nix
+++ b/pkgs/development/python-modules/absl-py/default.nix
@@ -1,10 +1,9 @@
-{ buildPythonPackage
-, lib
-, pythonOlder
-, fetchPypi
-, setuptools
-, six
-, enum34
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -17,15 +16,9 @@ buildPythonPackage rec {
     hash = "sha256-eCB5DvuzFnOc3otOGTVyQ/w2CKFSAkKIUT3ZaNfZWf8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    six
-  ] ++ lib.optionals (pythonOlder "3.4") [
-    enum34
-  ];
+  propagatedBuildInputs = [ six ];
 
   # checks use bazel; should be revisited
   doCheck = false;
diff --git a/pkgs/development/python-modules/accelerate/default.nix b/pkgs/development/python-modules/accelerate/default.nix
index d3bfb9cf1b0c1..fcee1327c2a27 100644
--- a/pkgs/development/python-modules/accelerate/default.nix
+++ b/pkgs/development/python-modules/accelerate/default.nix
@@ -1,41 +1,45 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
-, pythonOlder
-, pytest7CheckHook
-, setuptools
-, numpy
-, packaging
-, psutil
-, pyyaml
-, safetensors
-, torch
-, config
-, cudatoolkit
-, evaluate
-, parameterized
-, transformers
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  pythonOlder,
+  llvmPackages,
+  pytest7CheckHook,
+  setuptools,
+  numpy,
+  packaging,
+  psutil,
+  pyyaml,
+  safetensors,
+  torch,
+  config,
+  cudatoolkit,
+  evaluate,
+  parameterized,
+  transformers,
 }:
 
 buildPythonPackage rec {
   pname = "accelerate";
-  version = "0.29.3";
+  version = "0.31.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "huggingface";
-    repo = pname;
+    repo = "accelerate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oQGb/hlMN8JfwEyWufBvMk2Z1FMSl1lsdIbgZ3ZMdF8=";
+    hash = "sha256-1iLTmSyZzOHGeAr2xBW4mebbq1FZdNfJb8blCtbSqsI=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  buildInputs = [ llvmPackages.openmp ];
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     numpy
     packaging
     psutil
@@ -50,44 +54,57 @@ buildPythonPackage rec {
     pytest7CheckHook
     transformers
   ];
-  preCheck = ''
-    export HOME=$(mktemp -d)
-    export PATH=$out/bin:$PATH
-  '' + lib.optionalString config.cudaSupport ''
-    export TRITON_PTXAS_PATH="${cudatoolkit}/bin/ptxas"
-  '';
+  preCheck =
+    ''
+      export HOME=$(mktemp -d)
+      export PATH=$out/bin:$PATH
+    ''
+    + lib.optionalString config.cudaSupport ''
+      export TRITON_PTXAS_PATH="${cudatoolkit}/bin/ptxas"
+    '';
   pytestFlagsArray = [ "tests" ];
-  disabledTests = [
-    # try to download data:
-    "FeatureExamplesTests"
-    "test_infer_auto_device_map_on_t0pp"
+  disabledTests =
+    [
+      # try to download data:
+      "FeatureExamplesTests"
+      "test_infer_auto_device_map_on_t0pp"
 
-    # require socket communication
-    "test_explicit_dtypes"
-    "test_gated"
-    "test_invalid_model_name"
-    "test_invalid_model_name_transformers"
-    "test_no_metadata"
-    "test_no_split_modules"
-    "test_remote_code"
-    "test_transformers_model"
+      # require socket communication
+      "test_explicit_dtypes"
+      "test_gated"
+      "test_invalid_model_name"
+      "test_invalid_model_name_transformers"
+      "test_no_metadata"
+      "test_no_split_modules"
+      "test_remote_code"
+      "test_transformers_model"
 
-    # set the environment variable, CC, which conflicts with standard environment
-    "test_patch_environment_key_exists"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    # RuntimeError: Dynamo is not supported on Python 3.12+
-    "test_convert_to_fp32"
-    "test_send_to_device_compiles"
-  ] ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
-    # usual aarch64-linux RuntimeError: DataLoader worker (pid(s) <...>) exited unexpectedly
-    "CheckpointTest"
-  ] ++ lib.optionals (!config.cudaSupport) [
-    # requires ptxas from cudatoolkit, which is unfree
-    "test_dynamo_extract_model"
-  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
-    # RuntimeError: torch_shm_manager: execl failed: Permission denied
-    "CheckpointTest"
-  ];
+      # nondeterministic, tests GC behaviour by thresholding global ram usage
+      "test_free_memory_dereferences_prepared_components"
+
+      # set the environment variable, CC, which conflicts with standard environment
+      "test_patch_environment_key_exists"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # RuntimeError: Dynamo is not supported on Python 3.12+
+      "test_convert_to_fp32"
+      "test_dynamo_extract_model"
+      "test_send_to_device_compiles"
+    ]
+    ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
+      # usual aarch64-linux RuntimeError: DataLoader worker (pid(s) <...>) exited unexpectedly
+      "CheckpointTest"
+      # TypeError: unsupported operand type(s) for /: 'NoneType' and 'int' (it seems cpuinfo doesn't work here)
+      "test_mpi_multicpu_config_cmd"
+    ]
+    ++ lib.optionals (!config.cudaSupport) [
+      # requires ptxas from cudatoolkit, which is unfree
+      "test_dynamo_extract_model"
+    ]
+    ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
+      # RuntimeError: torch_shm_manager: execl failed: Permission denied
+      "CheckpointTest"
+    ];
 
   disabledTestPaths = lib.optionals (!(stdenv.isLinux && stdenv.isx86_64)) [
     # numerous instances of torch.multiprocessing.spawn.ProcessRaisedException:
@@ -97,13 +114,13 @@ buildPythonPackage rec {
     "tests/test_scheduler.py"
   ];
 
-  pythonImportsCheck = [
-    "accelerate"
-  ];
+  pythonImportsCheck = [ "accelerate" ];
+
+  __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
     homepage = "https://huggingface.co/docs/accelerate";
-    description = "A simple way to train and use PyTorch models with multi-GPU, TPU, mixed-precision";
+    description = "Simple way to train and use PyTorch models with multi-GPU, TPU, mixed-precision";
     changelog = "https://github.com/huggingface/accelerate/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ bcdarwin ];
diff --git a/pkgs/development/python-modules/accessible-pygments/default.nix b/pkgs/development/python-modules/accessible-pygments/default.nix
index 9c516a5f6e85f..74bd2d1e09a04 100644
--- a/pkgs/development/python-modules/accessible-pygments/default.nix
+++ b/pkgs/development/python-modules/accessible-pygments/default.nix
@@ -1,26 +1,35 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pygments
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  hatchling,
+  hatch-vcs,
+  hatch-fancy-pypi-readme,
+  pygments,
 }:
 
 buildPythonPackage rec {
   pname = "accessible-pygments";
-  version = "0.0.4";
-  format = "setuptools";
+  version = "0.0.5";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-57V6mxWVjpYBx+nrB6RAyBMoNUWiCXPyV0pfRT0OlT4=";
+    pname = "accessible_pygments";
+    inherit version;
+    hash = "sha256-QJGNPmorYZrUJMuR5Va9O9iGVEPZ8i8dzfeeM8gEaHI=";
   };
 
-  propagatedBuildInputs = [
-    pygments
+  build-system = [
+    hatchling
+    hatch-vcs
+    hatch-fancy-pypi-readme
   ];
 
+  dependencies = [ pygments ];
+
   # Tests only execute pygments with these styles
   doCheck = false;
 
@@ -30,7 +39,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A collection of accessible pygments styles";
+    description = "Collection of accessible pygments styles";
     homepage = "https://github.com/Quansight-Labs/accessible-pygments";
     changelog = "https://github.com/Quansight-Labs/accessible-pygments/raw/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/accupy/default.nix b/pkgs/development/python-modules/accupy/default.nix
index 6c2906fcb7ee3..f8f9897a6b3af 100644
--- a/pkgs/development/python-modules/accupy/default.nix
+++ b/pkgs/development/python-modules/accupy/default.nix
@@ -1,42 +1,44 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, mpmath
-, numpy
-, pybind11
-, pyfma
-, eigen
-, importlib-metadata
-, pytestCheckHook
-, matplotlib
-, dufte
-, perfplot
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  mpmath,
+  numpy,
+  pybind11,
+  pyfma,
+  eigen,
+  importlib-metadata,
+  pytestCheckHook,
+  matplotlib,
+  dufte,
+  perfplot,
 }:
 
 buildPythonPackage rec {
   pname = "accupy";
   version = "0.3.6";
-  format = "setuptools";
+  pyproject = true;
+
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "nschloe";
-    repo = pname;
+    repo = "accupy";
     rev = version;
-    sha256 = "0sxkwpp2xy2jgakhdxr4nh1cspqv8l89kz6s832h05pbpyc0n767";
+    hash = "sha256-xxwLmL/rFgDFQNr8mRBFG1/NArQk9wanelL4Lu7ls2s=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
+    setuptools
     pybind11
   ];
 
-  buildInputs = [
-    eigen
-  ];
+  buildInputs = [ eigen ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     mpmath
     numpy
     pyfma
@@ -50,8 +52,8 @@ buildPythonPackage rec {
   ];
 
   postConfigure = ''
-   substituteInPlace setup.py \
-     --replace "/usr/include/eigen3/" "${eigen}/include/eigen3/"
+    substituteInPlace setup.py \
+      --replace-fail "/usr/include/eigen3/" "${eigen}/include/eigen3/"
   '';
 
   preBuild = ''
@@ -66,10 +68,15 @@ buildPythonPackage rec {
   # decouple ourselves from an unnecessary build dep
   preCheck = ''
     for f in test/test*.py ; do
-      substituteInPlace $f --replace 'import perfplot' ""
+      substituteInPlace $f --replace-quiet 'import perfplot' ""
     done
   '';
-  disabledTests = [ "test_speed_comparison1" "test_speed_comparison2" ];
+
+  disabledTests = [
+    "test_speed_comparison1"
+    "test_speed_comparison2"
+  ];
+
   pythonImportsCheck = [ "accupy" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/acme-tiny/default.nix b/pkgs/development/python-modules/acme-tiny/default.nix
index f0e1d699a8efc..c0ddb81a1920d 100644
--- a/pkgs/development/python-modules/acme-tiny/default.nix
+++ b/pkgs/development/python-modules/acme-tiny/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, fusepy
-, fuse
-, openssl
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  fusepy,
+  fuse,
+  openssl,
 }:
 
 buildPythonPackage rec {
@@ -25,14 +26,17 @@ buildPythonPackage rec {
 
   buildInputs = [ setuptools-scm ];
 
-  nativeCheckInputs = [ fusepy fuse ];
+  nativeCheckInputs = [
+    fusepy
+    fuse
+  ];
 
   doCheck = false; # seems to hang, not sure
 
   pythonImportsCheck = [ "acme_tiny" ];
 
   meta = with lib; {
-    description = "A tiny script to issue and renew TLS certs from Let's Encrypt";
+    description = "Tiny script to issue and renew TLS certs from Let's Encrypt";
     mainProgram = "acme-tiny";
     homepage = "https://github.com/diafygi/acme-tiny";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/acme/default.nix b/pkgs/development/python-modules/acme/default.nix
index 65e930e07414a..0b3ad8d274800 100644
--- a/pkgs/development/python-modules/acme/default.nix
+++ b/pkgs/development/python-modules/acme/default.nix
@@ -1,16 +1,17 @@
-{ buildPythonPackage
-, certbot
-, cryptography
-, pyasn1
-, pyopenssl
-, pyrfc3339
-, josepy
-, pytz
-, requests
-, requests-toolbelt
-, six
-, werkzeug
-, ndg-httpsclient
+{
+  buildPythonPackage,
+  certbot,
+  cryptography,
+  pyasn1,
+  pyopenssl,
+  pyrfc3339,
+  josepy,
+  pytz,
+  requests,
+  requests-toolbelt,
+  six,
+  werkzeug,
+  ndg-httpsclient,
 }:
 
 buildPythonPackage rec {
@@ -20,8 +21,17 @@ buildPythonPackage rec {
   format = "setuptools";
 
   propagatedBuildInputs = [
-    cryptography pyasn1 pyopenssl pyrfc3339 pytz requests requests-toolbelt six
-    werkzeug ndg-httpsclient josepy
+    cryptography
+    pyasn1
+    pyopenssl
+    pyrfc3339
+    pytz
+    requests
+    requests-toolbelt
+    six
+    werkzeug
+    ndg-httpsclient
+    josepy
   ];
 
   # does not contain any tests
diff --git a/pkgs/development/python-modules/acoustics/default.nix b/pkgs/development/python-modules/acoustics/default.nix
index 3f51f03e5e0d7..67941fd6dedf8 100644
--- a/pkgs/development/python-modules/acoustics/default.nix
+++ b/pkgs/development/python-modules/acoustics/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, matplotlib
-, numpy
-, pandas
-, pytestCheckHook
-, pythonOlder
-, scipy
-, tabulate
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  matplotlib,
+  numpy,
+  pandas,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
+  tabulate,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,7 @@ buildPythonPackage rec {
 
   src = fetchFromGitHub {
     owner = "python-acoustics";
-    repo  = "python-acoustics";
+    repo = "python-acoustics";
     rev = "99d79206159b822ea2f4e9d27c8b2fbfeb704d38";
     hash = "sha256-/4bVjlhj8ihpAFHEWPaZ/xBILi3rb8f0NmwAexJCg+o=";
   };
@@ -35,9 +36,7 @@ buildPythonPackage rec {
     tabulate
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export HOME=$TMPDIR
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     echo "backend: ps" > $HOME/.matplotlib/matplotlibrc
   '';
 
-  pytestFlagsArray = [
-    "-Wignore::DeprecationWarning"
-  ];
+  pytestFlagsArray = [ "-Wignore::DeprecationWarning" ];
 
   pythonImportsCheck = [ "acoustics" ];
 
diff --git a/pkgs/development/python-modules/acquire/default.nix b/pkgs/development/python-modules/acquire/default.nix
index 555a60412bf45..5fed3a33b44da 100644
--- a/pkgs/development/python-modules/acquire/default.nix
+++ b/pkgs/development/python-modules/acquire/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, defusedxml
-, dissect-cstruct
-, dissect-target
-, fetchFromGitHub
-, minio
-, pycryptodome
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-toolbelt
-, rich
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  defusedxml,
+  dissect-cstruct,
+  dissect-target,
+  fetchFromGitHub,
+  minio,
+  pycryptodome,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-toolbelt,
+  rich,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "acquire";
-  version = "3.13";
+  version = "3.14";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -26,15 +27,15 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "acquire";
     rev = "refs/tags/${version}";
-    hash = "sha256-Z85bHM3MtS2MLX9BaKi8VqA13QjO9KdrgqhuyBzjILQ=";
+    hash = "sha256-QW5+npgjrIzyI2hztFovA5s6TMzgCCEiZx9aZREmYII=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     defusedxml
     dissect-cstruct
     dissect-target
@@ -51,13 +52,9 @@ buildPythonPackage rec {
     ] ++ dissect-target.optional-dependencies.full;
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.full;
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.full;
 
-  pythonImportsCheck = [
-    "acquire"
-  ];
+  pythonImportsCheck = [ "acquire" ];
 
   meta = with lib; {
     description = "Tool to quickly gather forensic artifacts from disk images or a live system";
diff --git a/pkgs/development/python-modules/actdiag/default.nix b/pkgs/development/python-modules/actdiag/default.nix
index 070bcd72ed4ab..e4069863bb21a 100644
--- a/pkgs/development/python-modules/actdiag/default.nix
+++ b/pkgs/development/python-modules/actdiag/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, blockdiag
-, buildPythonPackage
-, fetchFromGitHub
-, pynose
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  blockdiag,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pynose,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-WmprkHOgvlsOIg8H77P7fzEqxGnj6xaL7Df7urRkg3o=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    blockdiag
-  ];
+  propagatedBuildInputs = [ blockdiag ];
 
   nativeCheckInputs = [
     pynose
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "src/actdiag/tests/"
-  ];
+  pytestFlagsArray = [ "src/actdiag/tests/" ];
 
   disabledTests = [
     # AttributeError: 'TestRstDirectives' object has no attribute 'assertRegexpMatches'
@@ -45,9 +40,7 @@ buildPythonPackage rec {
     "noviewbox"
   ];
 
-  pythonImportsCheck = [
-    "actdiag"
-  ];
+  pythonImportsCheck = [ "actdiag" ];
 
   meta = with lib; {
     description = "Generate activity-diagram image from spec-text file (similar to Graphviz)";
diff --git a/pkgs/development/python-modules/acunetix/default.nix b/pkgs/development/python-modules/acunetix/default.nix
index b28a6beefbc72..2c1800fbc503d 100644
--- a/pkgs/development/python-modules/acunetix/default.nix
+++ b/pkgs/development/python-modules/acunetix/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiofiles
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
+{
+  lib,
+  aiofiles,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "acunetix"
-  ];
+  pythonImportsCheck = [ "acunetix" ];
 
   meta = with lib; {
     description = "Acunetix Web Vulnerability Scanner SDK for Python";
diff --git a/pkgs/development/python-modules/adafruit-io/default.nix b/pkgs/development/python-modules/adafruit-io/default.nix
index 8aaa8b61fda7a..3177c78047669 100644
--- a/pkgs/development/python-modules/adafruit-io/default.nix
+++ b/pkgs/development/python-modules/adafruit-io/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, paho-mqtt
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  paho-mqtt,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-JBpF08WGe1pMK1y7HZLH/jSQkJtbWdiTGYHWRd39UIk=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     paho-mqtt
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "Adafruit_IO"
-  ];
+  pythonImportsCheck = [ "Adafruit_IO" ];
 
   disabledTestPaths = [
     # Tests requires valid credentials
diff --git a/pkgs/development/python-modules/adafruit-platformdetect/default.nix b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
index bee4d68d5d738..b9adcf95b0e9a 100644
--- a/pkgs/development/python-modules/adafruit-platformdetect/default.nix
+++ b/pkgs/development/python-modules/adafruit-platformdetect/default.nix
@@ -1,33 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "adafruit-platformdetect";
-  version = "3.62.0";
+  version = "3.71.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    pname = "Adafruit-PlatformDetect";
+    pname = "adafruit_platformdetect";
     inherit version;
-    hash = "sha256-L2CbqWqyOo4mq+KsO8FYAyHClRKFXMLWWtfYEg0SD34=";
+    hash = "sha256-sgXU1m3SuEP2HIgIOKM2Sz8noLGSruzFe+zf0dA9p2A=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
   # Project has not published tests yet
   doCheck = false;
 
-  pythonImportsCheck = [
-    "adafruit_platformdetect"
-  ];
+  pythonImportsCheck = [ "adafruit_platformdetect" ];
 
   meta = with lib; {
     description = "Platform detection for use by Adafruit libraries";
diff --git a/pkgs/development/python-modules/adafruit-pureio/default.nix b/pkgs/development/python-modules/adafruit-pureio/default.nix
index 82d39fa23abad..0c2ce56f2d048 100644
--- a/pkgs/development/python-modules/adafruit-pureio/default.nix
+++ b/pkgs/development/python-modules/adafruit-pureio/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -18,16 +19,12 @@ buildPythonPackage rec {
     hash = "sha256-xM+7NlcxlC0fEJKhFvR9/a4K7xjFsn8QcrWCStXqjHw=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   # Physical SMBus is not present
   doCheck = false;
 
-  pythonImportsCheck = [
-    "Adafruit_PureIO"
-  ];
+  pythonImportsCheck = [ "Adafruit_PureIO" ];
 
   meta = with lib; {
     description = "Python interface to Linux IO including I2C and SPI";
diff --git a/pkgs/development/python-modules/adal/default.nix b/pkgs/development/python-modules/adal/default.nix
index cbce5d2af1484..9025dd327fb8d 100644
--- a/pkgs/development/python-modules/adal/default.nix
+++ b/pkgs/development/python-modules/adal/default.nix
@@ -1,17 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, httpretty
-, pyjwt
-, pytestCheckHook
-, python-dateutil
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpretty,
+  pyjwt,
+  pytestCheckHook,
+  python-dateutil,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "adal";
   version = "1.2.7";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "AzureAD";
@@ -24,7 +26,9 @@ buildPythonPackage rec {
     sed -i '/cryptography/d' setup.py
   '';
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     pyjwt
     python-dateutil
     requests
@@ -40,9 +44,7 @@ buildPythonPackage rec {
     "test_failed_request"
   ];
 
-  pythonImportsCheck = [
-    "adal"
-  ];
+  pythonImportsCheck = [ "adal" ];
 
   meta = with lib; {
     description = "Python module to authenticate to Azure Active Directory (AAD) in order to access AAD protected web resources";
diff --git a/pkgs/development/python-modules/adax-local/default.nix b/pkgs/development/python-modules/adax-local/default.nix
index 4571816cfa07b..0f8cfb62a3576 100644
--- a/pkgs/development/python-modules/adax-local/default.nix
+++ b/pkgs/development/python-modules/adax-local/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, bleak
-, buildPythonPackage
-, fetchFromGitHub
-, async-timeout
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  bleak,
+  buildPythonPackage,
+  fetchFromGitHub,
+  async-timeout,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "adax_local"
-  ];
+  pythonImportsCheck = [ "adax_local" ];
 
   meta = with lib; {
     description = "Module for local access to Adax";
diff --git a/pkgs/development/python-modules/adax/default.nix b/pkgs/development/python-modules/adax/default.nix
index 19e1e9a6fb02d..173fe1ce76b7f 100644
--- a/pkgs/development/python-modules/adax/default.nix
+++ b/pkgs/development/python-modules/adax/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "adax"
-  ];
+  pythonImportsCheck = [ "adax" ];
 
   meta = with lib; {
     description = "Python module to communicate with Adax";
diff --git a/pkgs/development/python-modules/adb-enhanced/default.nix b/pkgs/development/python-modules/adb-enhanced/default.nix
index 739d340143573..7ef10347207c1 100644
--- a/pkgs/development/python-modules/adb-enhanced/default.nix
+++ b/pkgs/development/python-modules/adb-enhanced/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, docopt
-, fetchFromGitHub
-, jdk11
-, psutil
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  docopt,
+  fetchFromGitHub,
+  jdk11,
+  psutil,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "adb-enhanced";
-  version = "2.5.22";
+  version = "2.5.24";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +19,7 @@ buildPythonPackage rec {
     owner = "ashishb";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-n1CME/swV+NsZdUfWwVY1qQeYzawwy+sm0mkRPQKm6A=";
+    hash = "sha256-0HxeL6VGM+HTiAxs3NFRcEFbmH9q+0/pJdGyF1hl4hU=";
   };
 
   propagatedBuildInputs = [
@@ -34,9 +35,7 @@ buildPythonPackage rec {
   # Disable tests because they require a dedicated Android emulator
   doCheck = false;
 
-  pythonImportsCheck = [
-    "adbe"
-  ];
+  pythonImportsCheck = [ "adbe" ];
 
   meta = with lib; {
     description = "Tool for Android testing and development";
diff --git a/pkgs/development/python-modules/adb-homeassistant/default.nix b/pkgs/development/python-modules/adb-homeassistant/default.nix
index f411c85fbfd12..a5f539d950292 100644
--- a/pkgs/development/python-modules/adb-homeassistant/default.nix
+++ b/pkgs/development/python-modules/adb-homeassistant/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, libusb1
-, rsa
-, pycryptodome
-, pytest
-, mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  libusb1,
+  rsa,
+  pycryptodome,
+  pytest,
+  mock,
 }:
 buildPythonPackage {
   pname = "adb-homeassistant";
@@ -18,7 +19,6 @@ buildPythonPackage {
     repo = "python-adb";
     rev = "5949bf432307cbba7128e84d7bc6add7f054a078";
     sha256 = "0s3fazvbzchn1fsvjrd1jl8w9y4dvvgq6q8m8p5lr2gri0npr581";
-
   };
 
   propagatedBuildInputs = [
@@ -27,13 +27,16 @@ buildPythonPackage {
     pycryptodome
   ];
 
-  nativeCheckInputs = [ pytest mock ];
+  nativeCheckInputs = [
+    pytest
+    mock
+  ];
   checkPhase = ''
     py.test test
   '';
 
   meta = with lib; {
-    description = "A pure python implementation of the Android ADB and Fastboot protocols";
+    description = "Pure python implementation of the Android ADB and Fastboot protocols";
     homepage = "https://github.com/JeffLIrion/python-adb/tree/adb-homeassistant";
     license = licenses.asl20;
     maintainers = [ maintainers.makefu ];
diff --git a/pkgs/development/python-modules/adb-shell/default.nix b/pkgs/development/python-modules/adb-shell/default.nix
index c2f189e2749ae..ed62a53046186 100644
--- a/pkgs/development/python-modules/adb-shell/default.nix
+++ b/pkgs/development/python-modules/adb-shell/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, aiofiles
-, async-timeout
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, isPy3k
-, libusb1
-, mock
-, pyasn1
-, pythonAtLeast
-, pycryptodome
-, pytestCheckHook
-, rsa
+{
+  lib,
+  aiofiles,
+  async-timeout,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  isPy3k,
+  libusb1,
+  mock,
+  pyasn1,
+  pythonAtLeast,
+  pycryptodome,
+  pytestCheckHook,
+  rsa,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
       aiofiles
       async-timeout
     ];
-    usb = [
-      libusb1
-    ];
+    usb = [ libusb1 ];
   };
 
   nativeCheckInputs = [
@@ -50,9 +49,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "adb_shell"
-  ];
+  pythonImportsCheck = [ "adb_shell" ];
 
   meta = with lib; {
     description = "Python implementation of ADB with shell and FileSync functionality";
diff --git a/pkgs/development/python-modules/adblock/default.nix b/pkgs/development/python-modules/adblock/default.nix
index 87f42fbd35b6e..7faeab491f628 100644
--- a/pkgs/development/python-modules/adblock/default.nix
+++ b/pkgs/development/python-modules/adblock/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, fetchpatch
-, buildPythonPackage
-, rustPlatform
-, pkg-config
-, openssl
-, publicsuffix-list
-, pythonOlder
-, libiconv
-, CoreFoundation
-, Security
-, pytestCheckHook
-, toml
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchpatch,
+  buildPythonPackage,
+  rustPlatform,
+  pkg-config,
+  openssl,
+  publicsuffix-list,
+  pythonOlder,
+  libiconv,
+  CoreFoundation,
+  Security,
+  pytestCheckHook,
+  toml,
 }:
 
 buildPythonPackage rec {
@@ -50,20 +51,20 @@ buildPythonPackage rec {
     hash = "sha256-1xmYmF5P7a5O9MilxDy+CVhmWMGRetdM2fGvTPy7JmM=";
   };
 
-  nativeBuildInputs = [
-    pkg-config
-  ] ++ (with rustPlatform; [
-    cargoSetupHook
-    maturinBuildHook
-  ]);
+  nativeBuildInputs =
+    [ pkg-config ]
+    ++ (with rustPlatform; [
+      cargoSetupHook
+      maturinBuildHook
+    ]);
 
-  buildInputs = [
-    openssl
-  ] ++ lib.optionals stdenv.isDarwin [
-    libiconv
-    CoreFoundation
-    Security
-  ];
+  buildInputs =
+    [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [
+      libiconv
+      CoreFoundation
+      Security
+    ];
 
   PSL_PATH = "${publicsuffix-list}/share/publicsuffix/public_suffix_list.dat";
 
@@ -92,6 +93,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/ArniDagur/python-adblock/";
     changelog = "https://github.com/ArniDagur/python-adblock/blob/${version}/CHANGELOG.md";
     maintainers = with maintainers; [ dotlambda ];
-    license = with licenses; [ asl20 /* or */ mit ];
+    license = with licenses; [
+      asl20 # or
+      mit
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/add-trailing-comma/default.nix b/pkgs/development/python-modules/add-trailing-comma/default.nix
index 1bf592b99517f..08da1feadb118 100644
--- a/pkgs/development/python-modules/add-trailing-comma/default.nix
+++ b/pkgs/development/python-modules/add-trailing-comma/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, tokenize-rt
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  tokenize-rt,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-B+wjBy42RwabVz/6qEMGpB0JmwJ9hqSskwcNj4x/B/k=";
   };
 
-  propagatedBuildInputs = [
-    tokenize-rt
-  ];
+  propagatedBuildInputs = [ tokenize-rt ];
 
-  pythonImportsCheck = [
-    "add_trailing_comma"
-  ];
+  pythonImportsCheck = [ "add_trailing_comma" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A tool (and pre-commit hook) to automatically add trailing commas to calls and literals";
+    description = "Tool (and pre-commit hook) to automatically add trailing commas to calls and literals";
     mainProgram = "add-trailing-comma";
     homepage = "https://github.com/asottile/add-trailing-comma";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/addict/default.nix b/pkgs/development/python-modules/addict/default.nix
index 2a80935f3a22f..36bab211bb4ac 100644
--- a/pkgs/development/python-modules/addict/default.nix
+++ b/pkgs/development/python-modules/addict/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/adext/default.nix b/pkgs/development/python-modules/adext/default.nix
index c5a05d19bee85..8a7345613de79 100644
--- a/pkgs/development/python-modules/adext/default.nix
+++ b/pkgs/development/python-modules/adext/default.nix
@@ -1,40 +1,39 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools-scm
-, alarmdecoder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools-scm,
+  alarmdecoder,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "adext";
-  version = "0.4.2";
-  format = "setuptools";
+  version = "0.4.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "ajschmidt8";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0h5k9kzms2f0r48pdhsgv8pimk0vsxw8vs0k6880mank8ij914wr";
+    repo = "adext";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-y8BvcSc3vD0FEWiyzW2Oh6PBS2Itjs2sz+9Dzh5yqSg=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    alarmdecoder
-  ];
+  dependencies = [ alarmdecoder ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "adext" ];
 
   meta = with lib; {
     description = "Python extension for AlarmDecoder";
     homepage = "https://github.com/ajschmidt8/adext";
+    changelog = "https://github.com/ajschmidt8/adext/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/adguardhome/default.nix b/pkgs/development/python-modules/adguardhome/default.nix
index a92e6e8ae33d1..5dbaefc3db991 100644
--- a/pkgs/development/python-modules/adguardhome/default.nix
+++ b/pkgs/development/python-modules/adguardhome/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
       --replace 0.0.0 ${version}
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -50,9 +49,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "adguardhome"
-  ];
+  pythonImportsCheck = [ "adguardhome" ];
 
   meta = with lib; {
     description = "Python client for the AdGuard Home API";
diff --git a/pkgs/development/python-modules/adjusttext/default.nix b/pkgs/development/python-modules/adjusttext/default.nix
index 6f4ca01a7ac0d..233d5036dc98a 100644
--- a/pkgs/development/python-modules/adjusttext/default.nix
+++ b/pkgs/development/python-modules/adjusttext/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, matplotlib
-, numpy
-, packaging
-, pythonOlder
-, scipy
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  matplotlib,
+  numpy,
+  packaging,
+  pythonOlder,
+  scipy,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "adjustText"
-  ];
+  pythonImportsCheck = [ "adjustText" ];
 
   meta = with lib; {
     description = "Iteratively adjust text position in matplotlib plots to minimize overlaps";
diff --git a/pkgs/development/python-modules/advantage-air/default.nix b/pkgs/development/python-modules/advantage-air/default.nix
index ffe66565dc2c4..569edb891c386 100644
--- a/pkgs/development/python-modules/advantage-air/default.nix
+++ b/pkgs/development/python-modules/advantage-air/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,16 +19,12 @@ buildPythonPackage rec {
     hash = "sha256-4rRR9IxzH5EiYfWzWYeyCwoLB2LetBVyH7L3nkvp+gA=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # No tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "advantage_air"
-  ];
+  pythonImportsCheck = [ "advantage_air" ];
 
   meta = with lib; {
     description = "API helper for Advantage Air's MyAir and e-zone API";
diff --git a/pkgs/development/python-modules/advocate/default.nix b/pkgs/development/python-modules/advocate/default.nix
index 532302b799c6c..a0954dae4439e 100644
--- a/pkgs/development/python-modules/advocate/default.nix
+++ b/pkgs/development/python-modules/advocate/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, ndg-httpsclient
-, netifaces
-, pyasn1
-, pyopenssl
-, requests
-, six
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ndg-httpsclient,
+  netifaces,
+  pyasn1,
+  pyopenssl,
+  requests,
+  six,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -39,7 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/JordanMilne/Advocate";
-    description = "An SSRF-preventing wrapper around Python's requests library";
+    description = "SSRF-preventing wrapper around Python's requests library";
     license = licenses.asl20;
     maintainers = with maintainers; [ pborzenkov ];
   };
diff --git a/pkgs/development/python-modules/aemet-opendata/default.nix b/pkgs/development/python-modules/aemet-opendata/default.nix
index dcf232247be9e..46942738c93a9 100644
--- a/pkgs/development/python-modules/aemet-opendata/default.nix
+++ b/pkgs/development/python-modules/aemet-opendata/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, geopy
-, pythonOlder
-, requests
-, setuptools
-, urllib3
-, wheel
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  geopy,
+  pythonOlder,
+  requests,
+  setuptools,
+  urllib3,
+  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "aemet-opendata";
-  version = "0.5.1";
-  format = "pyproject";
+  version = "0.5.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.11";
 
@@ -21,15 +22,15 @@ buildPythonPackage rec {
     owner = "Noltari";
     repo = "AEMET-OpenData";
     rev = "refs/tags/${version}";
-    hash = "sha256-qj1rXM3yHYDQhtOkHfKEGS2ICjN7B2olD4og3uISjcw=";
+    hash = "sha256-cUvm8WJs2eW/KHIaLhQq/DYj7VIuTqxjhcwHprYIxAo=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     wheel
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     geopy
     requests
@@ -39,9 +40,7 @@ buildPythonPackage rec {
   # no tests implemented
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aemet_opendata.interface"
-  ];
+  pythonImportsCheck = [ "aemet_opendata.interface" ];
 
   meta = with lib; {
     description = "Python client for AEMET OpenData Rest API";
diff --git a/pkgs/development/python-modules/aenum/default.nix b/pkgs/development/python-modules/aenum/default.nix
index c299864830afc..3b25cf8bdf541 100644
--- a/pkgs/development/python-modules/aenum/default.nix
+++ b/pkgs/development/python-modules/aenum/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyparsing
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyparsing,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,32 +21,30 @@ buildPythonPackage rec {
     hash = "sha256-jL12zRjE+HD/ObJChNPqAo++hzGljfOqWB5DTFdblVk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pyparsing
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aenum"
-  ];
-
-  disabledTests = [
-    # https://github.com/ethanfurman/aenum/issues/27
-    "test_class_nested_enum_and_pickle_protocol_four"
-    "test_pickle_enum_function_with_qualname"
-    "test_stdlib_inheritence"
-    "test_subclasses_with_getnewargs_ex"
-    "test_arduino_headers"
-    "test_c_header_scanner"
-    "test_extend_flag_backwards_stdlib"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    # AttributeError: <enum 'Color'> has no attribute 'value'. Did you mean: 'blue'?
-    "test_extend_enum_shadow_property_stdlib"
-  ];
+  pythonImportsCheck = [ "aenum" ];
+
+  disabledTests =
+    [
+      # https://github.com/ethanfurman/aenum/issues/27
+      "test_class_nested_enum_and_pickle_protocol_four"
+      "test_pickle_enum_function_with_qualname"
+      "test_stdlib_inheritence"
+      "test_subclasses_with_getnewargs_ex"
+      "test_arduino_headers"
+      "test_c_header_scanner"
+      "test_extend_flag_backwards_stdlib"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # AttributeError: <enum 'Color'> has no attribute 'value'. Did you mean: 'blue'?
+      "test_extend_enum_shadow_property_stdlib"
+    ];
 
   meta = with lib; {
     description = "Advanced Enumerations (compatible with Python's stdlib Enum), NamedTuples, and NamedConstants";
diff --git a/pkgs/development/python-modules/aeppl/default.nix b/pkgs/development/python-modules/aeppl/default.nix
index 1633be12bb97a..62067166d5df0 100644
--- a/pkgs/development/python-modules/aeppl/default.nix
+++ b/pkgs/development/python-modules/aeppl/default.nix
@@ -1,29 +1,33 @@
-{ lib
-, aesara
-, buildPythonPackage
-, fetchFromGitHub
-, numdifftools
-, numpy
-, pytestCheckHook
-, pythonOlder
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  aesara,
+  numpy,
+  scipy,
+  numdifftools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "aeppl";
   version = "0.1.5";
-  format = "setuptools";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "aesara-devs";
-    repo = pname;
+    repo = "aeppl";
     rev = "refs/tags/v${version}";
     hash = "sha256-mqBbXwWJwQA2wSHuEdBeXQMfTIcgwYEjpq8AVmOjmHM=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     aesara
     numpy
     scipy
@@ -38,15 +42,21 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d);
   '';
 
-  pythonImportsCheck = [
-    "aeppl"
-  ];
+  pythonImportsCheck = [ "aeppl" ];
 
   disabledTests = [
     # Compute issue
     "test_initial_values"
   ];
 
+  pytestFlagsArray = [
+    # `numpy.distutils` is deprecated since NumPy 1.23.0, as a result of the deprecation of `distutils` itself.
+    # It will be removed for Python >= 3.12. For older Python versions it will remain present.
+    "-Wignore::DeprecationWarning"
+    # Blas cannot be found, allow fallback to the numpy slower implementation
+    "-Wignore::UserWarning"
+  ];
+
   meta = with lib; {
     description = "Library for an Aesara-based PPL";
     homepage = "https://github.com/aesara-devs/aeppl";
diff --git a/pkgs/development/python-modules/aesara/default.nix b/pkgs/development/python-modules/aesara/default.nix
index 589799c1b848f..a7e5ee1436673 100644
--- a/pkgs/development/python-modules/aesara/default.nix
+++ b/pkgs/development/python-modules/aesara/default.nix
@@ -1,32 +1,35 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, cons
-, cython
-, etuples
-, fetchFromGitHub
-, filelock
-, hatch-vcs
-, hatchling
-, jax
-, jaxlib
-, logical-unification
-, minikanren
-, numba
-, numba-scipy
-, numpy
-, pytestCheckHook
-, pythonOlder
-, scipy
-, typing-extensions
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cons,
+  cython,
+  etuples,
+  fetchFromGitHub,
+  filelock,
+  hatch-vcs,
+  hatchling,
+  jax,
+  jaxlib,
+  logical-unification,
+  minikanren,
+  numba,
+  numba-scipy,
+  numpy,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  scipy,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "aesara";
   version = "2.9.3";
-  format = "pyproject";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  # Python 3.12 is not supported: https://github.com/aesara-devs/aesara/issues/1520
+  disabled = pythonOlder "3.8" || pythonAtLeast "3.12";
 
   src = fetchFromGitHub {
     owner = "aesara-devs";
@@ -35,13 +38,13 @@ buildPythonPackage rec {
     hash = "sha256-aO0+O7Ts9phsV4ghunNolxfAruGBbC+tHjVkmFedcCI=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     cython
     hatch-vcs
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     cons
     etuples
     filelock
@@ -62,16 +65,15 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "--durations=50" ""
+      --replace-fail "--durations=50" "" \
+      --replace-fail "hatch-vcs >=0.3.0,<0.4.0" "hatch-vcs"
   '';
 
   preBuild = ''
     export HOME=$(mktemp -d)
   '';
 
-  pythonImportsCheck = [
-    "aesara"
-  ];
+  pythonImportsCheck = [ "aesara" ];
 
   disabledTestPaths = [
     # Don't run the most compute-intense tests
@@ -81,12 +83,23 @@ buildPythonPackage rec {
     "tests/sparse/sandbox/"
     # JAX is not available on all platform and often broken
     "tests/link/jax/"
+
+    # 2024-04-27: The current nixpkgs numba version is too recent and incompatible with aesara 2.9.3
+    "tests/link/numba/"
   ];
 
   disabledTests = [
     # Disable all benchmark tests
     "test_scan_multiple_output"
     "test_logsumexp_benchmark"
+
+    # TypeError: exceptions must be derived from Warning, not <class 'NoneType'>
+    "test_api_deprecation_warning"
+    # AssertionError: assert ['Elemwise{Co..._i{0} 0', ...] == ['Elemwise{Co..._i{0} 0', ...]
+    # At index 3 diff: '| |Gemv{inplace} d={0: [0]} 2' != '| |CGemv{inplace} d={0: [0]} 2'
+    "test_debugprint"
+    # ValueError: too many values to unpack (expected 3)
+    "test_ExternalCOp_c_code_cache_version"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/aesedb/default.nix b/pkgs/development/python-modules/aesedb/default.nix
index fda6d316162af..e4c377895e43a 100644
--- a/pkgs/development/python-modules/aesedb/default.nix
+++ b/pkgs/development/python-modules/aesedb/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiowinreg
-, buildPythonPackage
-, colorama
-, fetchFromGitHub
-, pycryptodomex
-, pythonOlder
-, setuptools
-, tqdm
-, unicrypto
+{
+  lib,
+  aiowinreg,
+  buildPythonPackage,
+  colorama,
+  fetchFromGitHub,
+  pycryptodomex,
+  pythonOlder,
+  setuptools,
+  tqdm,
+  unicrypto,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-nYuMWE03Rsw1XuD/bxccpu8rddeXgS/EKJcO1VBLTLU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiowinreg
@@ -39,9 +38,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aesedb"
-  ];
+  pythonImportsCheck = [ "aesedb" ];
 
   meta = with lib; {
     description = "Parser for JET databases";
diff --git a/pkgs/development/python-modules/aetcd/default.nix b/pkgs/development/python-modules/aetcd/default.nix
index 8a2652450cd1c..77cd49ad80295 100644
--- a/pkgs/development/python-modules/aetcd/default.nix
+++ b/pkgs/development/python-modules/aetcd/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, grpcio
-, protobuf
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  grpcio,
+  protobuf,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -48,9 +49,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aetcd"
-  ];
+  pythonImportsCheck = [ "aetcd" ];
 
   disabledTestPaths = [
     # Tests require a running ectd instance
diff --git a/pkgs/development/python-modules/afdko/default.nix b/pkgs/development/python-modules/afdko/default.nix
index ed934eab350bc..98e3ee4a95229 100644
--- a/pkgs/development/python-modules/afdko/default.nix
+++ b/pkgs/development/python-modules/afdko/default.nix
@@ -1,33 +1,34 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, fonttools
-, defcon
-, lxml
-, fs
-, unicodedata2
-, zopfli
-, brotlipy
-, fontpens
-, brotli
-, fontmath
-, mutatormath
-, booleanoperations
-, ufoprocessor
-, ufonormalizer
-, tqdm
-, setuptools-scm
-, scikit-build
-, cmake
-, ninja
-, antlr4_9
-, libxml2
-, pytestCheckHook
-# Enables some expensive tests, useful for verifying an update
-, runAllTests ? false
-, afdko
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  fonttools,
+  defcon,
+  lxml,
+  fs,
+  unicodedata2,
+  zopfli,
+  brotlipy,
+  fontpens,
+  brotli,
+  fontmath,
+  mutatormath,
+  booleanoperations,
+  ufoprocessor,
+  ufonormalizer,
+  tqdm,
+  setuptools-scm,
+  scikit-build,
+  cmake,
+  ninja,
+  antlr4_9,
+  libxml2,
+  pytestCheckHook,
+  # Enables some expensive tests, useful for verifying an update
+  runAllTests ? false,
+  afdko,
 }:
 
 buildPythonPackage rec {
@@ -80,11 +81,11 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     booleanoperations
     fonttools
-    lxml           # fonttools[lxml], defcon[lxml] extra
-    fs             # fonttools[ufo] extra
-    unicodedata2   # fonttools[unicode] extra
-    brotlipy       # fonttools[woff] extra
-    zopfli         # fonttools[woff] extra
+    lxml # fonttools[lxml], defcon[lxml] extra
+    fs # fonttools[ufo] extra
+    unicodedata2 # fonttools[unicode] extra
+    brotlipy # fonttools[woff] extra
+    zopfli # fonttools[woff] extra
     fontpens
     brotli
     defcon
@@ -107,23 +108,26 @@ buildPythonPackage rec {
     rm -rf _skbuild
   '';
 
-  disabledTests = lib.optionals (!runAllTests) [
-    # Disable slow tests, reduces test time ~25 %
-    "test_report"
-    "test_post_overflow"
-    "test_cjk"
-    "test_extrapolate"
-    "test_filename_without_dir"
-    "test_overwrite"
-    "test_options"
-  ] ++ lib.optionals (stdenv.hostPlatform.isAarch || stdenv.hostPlatform.isRiscV) [
-    # unknown reason so far
-    # https://github.com/adobe-type-tools/afdko/issues/1425
-    "test_spec"
-  ] ++ lib.optionals (stdenv.hostPlatform.isi686) [
-    "test_dump_option"
-    "test_type1mm_inputs"
-  ];
+  disabledTests =
+    lib.optionals (!runAllTests) [
+      # Disable slow tests, reduces test time ~25 %
+      "test_report"
+      "test_post_overflow"
+      "test_cjk"
+      "test_extrapolate"
+      "test_filename_without_dir"
+      "test_overwrite"
+      "test_options"
+    ]
+    ++ lib.optionals (stdenv.hostPlatform.isAarch || stdenv.hostPlatform.isRiscV) [
+      # unknown reason so far
+      # https://github.com/adobe-type-tools/afdko/issues/1425
+      "test_spec"
+    ]
+    ++ lib.optionals (stdenv.hostPlatform.isi686) [
+      "test_dump_option"
+      "test_type1mm_inputs"
+    ];
 
   passthru.tests = {
     fullTestsuite = afdko.override { runAllTests = true; };
diff --git a/pkgs/development/python-modules/affine/default.nix b/pkgs/development/python-modules/affine/default.nix
index 4f121cbdbf944..c86ad95b71d61 100644
--- a/pkgs/development/python-modules/affine/default.nix
+++ b/pkgs/development/python-modules/affine/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, flit-core
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  flit-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-ok2BjWqDbBMZdtIvjCe408oy0K9kwdjSnet7r6TaHuo=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     changelog = "https://github.com/rasterio/affine/blob/${version}/CHANGES.txt";
@@ -34,5 +31,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/rasterio/affine";
     maintainers = with maintainers; [ mredaelli ];
   };
-
 }
diff --git a/pkgs/development/python-modules/afsapi/default.nix b/pkgs/development/python-modules/afsapi/default.nix
index d971bc5b5e039..604452336ffec 100644
--- a/pkgs/development/python-modules/afsapi/default.nix
+++ b/pkgs/development/python-modules/afsapi/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, lxml
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxml,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-eE5BsXNtSU6YUhRn4/SKpMrqaYf8tyfLKdxxGOmNJ9I=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -37,13 +36,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "async_tests.py"
-  ];
+  pytestFlagsArray = [ "async_tests.py" ];
 
-  pythonImportsCheck = [
-    "afsapi"
-  ];
+  pythonImportsCheck = [ "afsapi" ];
 
   meta = with lib; {
     description = "Python implementation of the Frontier Silicon API";
diff --git a/pkgs/development/python-modules/agate-dbf/default.nix b/pkgs/development/python-modules/agate-dbf/default.nix
index 1f3055b4600dd..548ad6b5e40f6 100644
--- a/pkgs/development/python-modules/agate-dbf/default.nix
+++ b/pkgs/development/python-modules/agate-dbf/default.nix
@@ -1,21 +1,32 @@
-{ lib, fetchPypi, buildPythonPackage, agate, dbf, dbfread }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  agate,
+  dbf,
+  dbfread,
+}:
 
 buildPythonPackage rec {
-    pname = "agate-dbf";
-    version = "0.2.3";
-    format = "setuptools";
+  pname = "agate-dbf";
+  version = "0.2.3";
+  format = "setuptools";
 
-    propagatedBuildInputs = [ agate dbf dbfread ];
+  propagatedBuildInputs = [
+    agate
+    dbf
+    dbfread
+  ];
 
-    src = fetchPypi {
-      inherit pname version;
-      sha256 = "sha256-mKK1N1cTbMdNwpflniEB009tSPQfdBVrtsDeJruiqj8=";
-    };
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-mKK1N1cTbMdNwpflniEB009tSPQfdBVrtsDeJruiqj8=";
+  };
 
-    meta = with lib; {
-      description = "Adds read support for dbf files to agate";
-      homepage    = "https://github.com/wireservice/agate-dbf";
-      license     = with licenses; [ mit ];
-      maintainers = with maintainers; [ vrthra ];
-    };
+  meta = with lib; {
+    description = "Adds read support for dbf files to agate";
+    homepage = "https://github.com/wireservice/agate-dbf";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ vrthra ];
+  };
 }
diff --git a/pkgs/development/python-modules/agate-excel/default.nix b/pkgs/development/python-modules/agate-excel/default.nix
index 64b4718a2bc23..aad186601b7bc 100644
--- a/pkgs/development/python-modules/agate-excel/default.nix
+++ b/pkgs/development/python-modules/agate-excel/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, agate
-, openpyxl
-, xlrd
-, olefile
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  agate,
+  openpyxl,
+  xlrd,
+  olefile,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +29,9 @@ buildPythonPackage rec {
     olefile
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "agate"
-  ];
+  pythonImportsCheck = [ "agate" ];
 
   meta = with lib; {
     description = "Adds read support for excel files to agate";
diff --git a/pkgs/development/python-modules/agate-sql/default.nix b/pkgs/development/python-modules/agate-sql/default.nix
index 70cb2fbda6889..7d357f49ff105 100644
--- a/pkgs/development/python-modules/agate-sql/default.nix
+++ b/pkgs/development/python-modules/agate-sql/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, isPy27
-, fetchPypi
-, agate
-, sqlalchemy
-, crate
-, pytestCheckHook
-, geojson
+{
+  lib,
+  buildPythonPackage,
+  isPy27,
+  fetchPypi,
+  agate,
+  sqlalchemy,
+  crate,
+  pytestCheckHook,
+  geojson,
 }:
 
 buildPythonPackage rec {
@@ -21,14 +22,21 @@ buildPythonPackage rec {
     hash = "sha256-mxswKEpXP9QWdZQ3Jz3MXIECK98vrLJLSqAppir9U7A=";
   };
 
-  propagatedBuildInputs = [ agate sqlalchemy ];
+  propagatedBuildInputs = [
+    agate
+    sqlalchemy
+  ];
 
-  nativeCheckInputs = [ crate geojson pytestCheckHook ];
+  nativeCheckInputs = [
+    crate
+    geojson
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [ "agatesql" ];
 
   meta = with lib; {
-    description = "Adds SQL read/write support to agate.";
+    description = "Adds SQL read/write support to agate";
     homepage = "https://github.com/wireservice/agate-sql";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ vrthra ];
diff --git a/pkgs/development/python-modules/agate/default.nix b/pkgs/development/python-modules/agate/default.nix
index 48a30b9a40efb..7af42df65a528 100644
--- a/pkgs/development/python-modules/agate/default.nix
+++ b/pkgs/development/python-modules/agate/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, babel
-, buildPythonPackage
-, cssselect
-, fetchFromGitHub
-, glibcLocales
-, isodate
-, leather
-, lxml
-, parsedatetime
-, pyicu
-, pynose
-, python-slugify
-, pythonOlder
-, pytimeparse
-, pytz
-, setuptools
+{
+  lib,
+  babel,
+  buildPythonPackage,
+  cssselect,
+  fetchFromGitHub,
+  glibcLocales,
+  isodate,
+  leather,
+  lxml,
+  parsedatetime,
+  pyicu,
+  pynose,
+  python-slugify,
+  pythonOlder,
+  pytimeparse,
+  pytz,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     hash = "sha256-I7jvZA/m06kUuUcfglySaroDbJ5wbgiF2lb84EFPmpw=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     babel
@@ -57,9 +56,7 @@ buildPythonPackage rec {
     LC_ALL="en_US.UTF-8" nosetests tests
   '';
 
-  pythonImportsCheck = [
-    "agate"
-  ];
+  pythonImportsCheck = [ "agate" ];
 
   meta = with lib; {
     description = "Python data analysis library that is optimized for humans instead of machines";
diff --git a/pkgs/development/python-modules/agent-py/default.nix b/pkgs/development/python-modules/agent-py/default.nix
index 584feec88dde2..eb1702d32709a 100644
--- a/pkgs/development/python-modules/agent-py/default.nix
+++ b/pkgs/development/python-modules/agent-py/default.nix
@@ -1,4 +1,12 @@
-{ aiohttp, buildPythonPackage, fetchPypi, isPy3k, lib, python, requests }:
+{
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  lib,
+  python,
+  requests,
+}:
 
 buildPythonPackage rec {
   pname = "agent-py";
@@ -12,14 +20,17 @@ buildPythonPackage rec {
     sha256 = "1hx88m8b8kfb2gm6hii5ldjv7hlvqf99cz0w2vj0d0grrxcbn5cz";
   };
 
-  propagatedBuildInputs = [ requests aiohttp ];
+  propagatedBuildInputs = [
+    requests
+    aiohttp
+  ];
 
   checkPhase = ''
     ${python.interpreter} tests/test_agent.py
   '';
 
   meta = with lib; {
-    description = "A python wrapper around the Agent REST API.";
+    description = "Python wrapper around the Agent REST API";
     homepage = "https://github.com/ispysoftware/agent-py";
     license = licenses.asl20;
     maintainers = with maintainers; [ jamiemagee ];
diff --git a/pkgs/development/python-modules/aggdraw/default.nix b/pkgs/development/python-modules/aggdraw/default.nix
index a83de3540fcd3..06e092b4a6057 100644
--- a/pkgs/development/python-modules/aggdraw/default.nix
+++ b/pkgs/development/python-modules/aggdraw/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, packaging
-, setuptools
-, pkgconfig
-, freetype
-, pytest
-, python
-, pillow
-, numpy
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  packaging,
+  setuptools,
+  pkgconfig,
+  freetype,
+  pytest,
+  python,
+  pillow,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     pkgconfig
   ];
 
-  buildInputs = [
-    freetype
-  ];
+  buildInputs = [ freetype ];
 
   nativeCheckInputs = [
     numpy
diff --git a/pkgs/development/python-modules/ago/default.nix b/pkgs/development/python-modules/ago/default.nix
index ad095c441db26..ba9fb23a2ce93 100644
--- a/pkgs/development/python-modules/ago/default.nix
+++ b/pkgs/development/python-modules/ago/default.nix
@@ -1,12 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-
-, pythonOlder
-
-, pytestCheckHook
-
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -14,20 +11,14 @@ buildPythonPackage rec {
   version = "0.0.95";
   pyproject = true;
 
-  disabled = pythonOlder "3.3";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-0gEPXqw99UTsSOwRYQLgaFkaNFsaWA8ylz24pQX8p0Q=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "ago" ];
 
diff --git a/pkgs/development/python-modules/aigpy/default.nix b/pkgs/development/python-modules/aigpy/default.nix
index ef0e5f13273ac..d8cadb97e1cc9 100644
--- a/pkgs/development/python-modules/aigpy/default.nix
+++ b/pkgs/development/python-modules/aigpy/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mutagen
-, requests
-, colorama
-, prettytable
-, pycrypto
-, pydub
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mutagen,
+  requests,
+  colorama,
+  prettytable,
+  pycrypto,
+  pydub,
 }:
 
 buildPythonPackage rec {
@@ -19,11 +20,18 @@ buildPythonPackage rec {
     sha256 = "sha256-1kQced6YdC/wvegqFVhZfej4+4aemGXvKysKjejP13w=";
   };
 
-  propagatedBuildInputs = [ mutagen requests colorama prettytable pycrypto pydub ];
+  propagatedBuildInputs = [
+    mutagen
+    requests
+    colorama
+    prettytable
+    pycrypto
+    pydub
+  ];
 
   meta = {
     homepage = "https://github.com/AIGMix/AIGPY";
-    description = "A python library with miscellaneous tools";
+    description = "Python library with miscellaneous tools";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.misterio77 ];
     platforms = lib.platforms.all;
diff --git a/pkgs/development/python-modules/ailment/default.nix b/pkgs/development/python-modules/ailment/default.nix
index 5b496bf9c45d0..22aef7748c3b4 100644
--- a/pkgs/development/python-modules/ailment/default.nix
+++ b/pkgs/development/python-modules/ailment/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "ailment";
-  version = "9.2.101";
+  version = "9.2.107";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "ailment";
     rev = "refs/tags/v${version}";
-    hash = "sha256-3JPoO9GpnVEc4UQhhXxpj53PwK5eRsy6Ikt4qw5jGa8=";
+    hash = "sha256-yEwSHmAxbbdLVFatG4pKJokatCkO4RCZUMVAoBSOwTI=";
   };
 
   build-system = [ setuptools ];
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ailment" ];
 
   meta = with lib; {
-    description = "The angr Intermediate Language";
+    description = "Angr Intermediate Language";
     homepage = "https://github.com/angr/ailment";
     license = with licenses; [ bsd2 ];
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/aio-geojson-client/default.nix b/pkgs/development/python-modules/aio-geojson-client/default.nix
index 04dfa69f8912a..4034699d2d295 100644
--- a/pkgs/development/python-modules/aio-geojson-client/default.nix
+++ b/pkgs/development/python-modules/aio-geojson-client/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, geojson
-, haversine
-, mock
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  geojson,
+  haversine,
+  mock,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aio_geojson_client"
-  ];
+  pythonImportsCheck = [ "aio_geojson_client" ];
 
   meta = with lib; {
     description = "Python module for accessing GeoJSON feeds";
diff --git a/pkgs/development/python-modules/aio-geojson-generic-client/default.nix b/pkgs/development/python-modules/aio-geojson-generic-client/default.nix
index 343f47d2aca40..c47ea3e7cf576 100644
--- a/pkgs/development/python-modules/aio-geojson-generic-client/default.nix
+++ b/pkgs/development/python-modules/aio-geojson-generic-client/default.nix
@@ -1,16 +1,16 @@
-{ lib
-, aio-geojson-client
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, geojson
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, pytz
-, setuptools
+{
+  lib,
+  aio-geojson-client,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  geojson,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -30,7 +30,6 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -52,9 +51,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aio_geojson_generic_client"
-  ];
+  pythonImportsCheck = [ "aio_geojson_generic_client" ];
 
   meta = with lib; {
     description = "Python library for accessing GeoJSON feeds";
diff --git a/pkgs/development/python-modules/aio-geojson-geonetnz-quakes/default.nix b/pkgs/development/python-modules/aio-geojson-geonetnz-quakes/default.nix
index 65973321f95b8..f9dd37f5653a0 100644
--- a/pkgs/development/python-modules/aio-geojson-geonetnz-quakes/default.nix
+++ b/pkgs/development/python-modules/aio-geojson-geonetnz-quakes/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aio-geojson-client
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pytz
-, pythonOlder
-, setuptools
+{
+  lib,
+  aio-geojson-client,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pytz,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-8OpmA3yHjUY+N5Obri4RWeuJiW916xGSWUYUgdpmjkw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aio-geojson-client
@@ -43,9 +42,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aio_geojson_geonetnz_quakes"
-  ];
+  pythonImportsCheck = [ "aio_geojson_geonetnz_quakes" ];
 
   meta = with lib; {
     description = "Python module for accessing the GeoNet NZ Quakes GeoJSON feeds";
diff --git a/pkgs/development/python-modules/aio-geojson-geonetnz-volcano/default.nix b/pkgs/development/python-modules/aio-geojson-geonetnz-volcano/default.nix
index 35e558fdc2625..6050107c9acfd 100644
--- a/pkgs/development/python-modules/aio-geojson-geonetnz-volcano/default.nix
+++ b/pkgs/development/python-modules/aio-geojson-geonetnz-volcano/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, aio-geojson-client
-, aiohttp
-, aioresponses
-, mock
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytest-xdist
-, pytestCheckHook
-, pytz
-, pythonOlder
-, setuptools
+{
+  lib,
+  aio-geojson-client,
+  aiohttp,
+  aioresponses,
+  mock,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytest-xdist,
+  pytestCheckHook,
+  pytz,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-ZmGDO9EROFMlxdj5txNh719M+3l/0jRFbB2h2AyZAdI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aio-geojson-client
@@ -47,9 +46,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aio_geojson_geonetnz_volcano"
-  ];
+  pythonImportsCheck = [ "aio_geojson_geonetnz_volcano" ];
 
   meta = with lib; {
     description = "Python module for accessing the GeoNet NZ Volcanic GeoJSON feeds";
diff --git a/pkgs/development/python-modules/aio-geojson-nsw-rfs-incidents/default.nix b/pkgs/development/python-modules/aio-geojson-nsw-rfs-incidents/default.nix
index 94724e800f58e..2341e515a01ea 100644
--- a/pkgs/development/python-modules/aio-geojson-nsw-rfs-incidents/default.nix
+++ b/pkgs/development/python-modules/aio-geojson-nsw-rfs-incidents/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aio-geojson-client
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, pytz
-, setuptools
+{
+  lib,
+  aio-geojson-client,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-HksiKfXhLASAgU81x7YiOXFmBLIkqJ9ldWLLY1ZbZlk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aio-geojson-client
@@ -43,9 +42,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aio_geojson_nsw_rfs_incidents"
-  ];
+  pythonImportsCheck = [ "aio_geojson_nsw_rfs_incidents" ];
 
   meta = with lib; {
     description = "Python module for accessing the NSW Rural Fire Service incidents feeds";
diff --git a/pkgs/development/python-modules/aio-geojson-usgs-earthquakes/default.nix b/pkgs/development/python-modules/aio-geojson-usgs-earthquakes/default.nix
index 339481624a359..55a67843f1e93 100644
--- a/pkgs/development/python-modules/aio-geojson-usgs-earthquakes/default.nix
+++ b/pkgs/development/python-modules/aio-geojson-usgs-earthquakes/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aio-geojson-client
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pytz
-, pythonOlder
-, setuptools
+{
+  lib,
+  aio-geojson-client,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pytz,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-Q9vBy5R5N5ihJdSMALo88qVYcFVs2/33lYRPdLej4S8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aio-geojson-client
@@ -37,18 +36,14 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   checkInputs = [
     aioresponses
     pytest-asyncio
   ];
 
-  pythonImportsCheck = [
-    "aio_geojson_usgs_earthquakes"
-  ];
+  pythonImportsCheck = [ "aio_geojson_usgs_earthquakes" ];
 
   meta = with lib; {
     description = "Python module for accessing the U.S. Geological Survey Earthquake Hazards Program feeds";
diff --git a/pkgs/development/python-modules/aio-georss-client/default.nix b/pkgs/development/python-modules/aio-georss-client/default.nix
index 6130564b421c9..8aea98efa5a4d 100644
--- a/pkgs/development/python-modules/aio-georss-client/default.nix
+++ b/pkgs/development/python-modules/aio-georss-client/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, dateparser
-, fetchFromGitHub
-, haversine
-, mock
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
-, xmltodict
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  dateparser,
+  fetchFromGitHub,
+  haversine,
+  mock,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -49,9 +48,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aio_georss_client"
-  ];
+  pythonImportsCheck = [ "aio_georss_client" ];
 
   meta = with lib; {
     description = "Python library for accessing GeoRSS feeds";
diff --git a/pkgs/development/python-modules/aio-georss-gdacs/default.nix b/pkgs/development/python-modules/aio-georss-gdacs/default.nix
index 52c5c79a198eb..457f4bca26ec9 100644
--- a/pkgs/development/python-modules/aio-georss-gdacs/default.nix
+++ b/pkgs/development/python-modules/aio-georss-gdacs/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aio-georss-client
-, aioresponses
-, buildPythonPackage
-, dateparser
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  aio-georss-client,
+  aioresponses,
+  buildPythonPackage,
+  dateparser,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aio-georss-client
@@ -41,9 +40,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aio_georss_gdacs"
-  ];
+  pythonImportsCheck = [ "aio_georss_gdacs" ];
 
   meta = with lib; {
     description = "Python library for accessing GeoRSS feeds";
diff --git a/pkgs/development/python-modules/aioairq/default.nix b/pkgs/development/python-modules/aioairq/default.nix
index 5be97a3d9c9df..274b25202a3a7 100644
--- a/pkgs/development/python-modules/aioairq/default.nix
+++ b/pkgs/development/python-modules/aioairq/default.nix
@@ -1,35 +1,49 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pycryptodome
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pycryptodome,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "aioairq";
-  version = "0.3.2";
-  format = "setuptools";
+  version = "0.4.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "CorantGmbH";
-    repo = pname;
+    repo = "aioairq";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Sau0Ih+9WRChbztl8yjXVWy4/QxyllQKOPslbZroBeQ=";
+    hash = "sha256-ppjhGBAoA5iV+ZfUKkUCNJRYN82JtclRe36pbe85i5w=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     aiohttp
     pycryptodome
   ];
 
   # Module has no tests
-  doCheck = false;
+  #doCheck = false;
+
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "aioairq" ];
 
-  pythonImportsCheck = [
-    "aioairq"
+  disabledTestPaths = [
+    # Tests require network access
+    "tests/test_core_on_device.py"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/aioairzone-cloud/default.nix b/pkgs/development/python-modules/aioairzone-cloud/default.nix
index 63815d39e47ad..21957343c838d 100644
--- a/pkgs/development/python-modules/aioairzone-cloud/default.nix
+++ b/pkgs/development/python-modules/aioairzone-cloud/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "aioairzone-cloud";
-  version = "0.5.1";
+  version = "0.5.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "Noltari";
     repo = "aioairzone-cloud";
     rev = "refs/tags/${version}";
-    hash = "sha256-L5Gb+V0W+9duGV6lRc01jrAfh4U+MS77Y238EeXe0TU=";
+    hash = "sha256-HI6ZSplKS8V+lfkyx1H8wcSPbNxJNF7h5qn7s75qCtI=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/aioairzone/default.nix b/pkgs/development/python-modules/aioairzone/default.nix
index 905232c065a36..49684006ca864 100644
--- a/pkgs/development/python-modules/aioairzone/default.nix
+++ b/pkgs/development/python-modules/aioairzone/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "aioairzone";
-  version = "0.7.6";
+  version = "0.7.7";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -17,23 +18,17 @@ buildPythonPackage rec {
     owner = "Noltari";
     repo = "aioairzone";
     rev = "refs/tags/${version}";
-    hash = "sha256-99Km1zizAA0BF4ZlLmKOBoOQzKS/QdWpWC9dzg2s3lU=";
+    hash = "sha256-0YChwHxxINwvhOAmDPn0IUMOItMDDRx6mGbsz6uSIEU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aioairzone"
-  ];
+  pythonImportsCheck = [ "aioairzone" ];
 
   meta = with lib; {
     description = "Module to control AirZone devices";
@@ -43,4 +38,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ fab ];
   };
 }
-
diff --git a/pkgs/development/python-modules/aioaladdinconnect/default.nix b/pkgs/development/python-modules/aioaladdinconnect/default.nix
deleted file mode 100644
index 5617eec6b534d..0000000000000
--- a/pkgs/development/python-modules/aioaladdinconnect/default.nix
+++ /dev/null
@@ -1,41 +0,0 @@
-{ lib
-, aioboto3
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-}:
-
-buildPythonPackage rec {
-  pname = "aioaladdinconnect";
-  version = "0.2.0";
-  format = "setuptools";
-
-  disabled = pythonOlder "3.7";
-
-  src = fetchPypi {
-    pname = "AIOAladdinConnect";
-    inherit version;
-    hash = "sha256-5vfw8SU3lWlPoMAR+byf8jpZrGmXTPoeO+DvPByjZnw=";
-  };
-
-  propagatedBuildInputs = [
-    aioboto3
-    aiohttp
-  ];
-
-  # Module has no tests
-  doCheck = false;
-
-  pythonImportsCheck = [
-    "AIOAladdinConnect"
-  ];
-
-  meta = with lib; {
-    description = "Library for controlling Genie garage doors connected to Aladdin Connect devices";
-    homepage = "https://github.com/mkmer/AIOAladdinConnect";
-    changelog = "https://github.com/mkmer/AIOAladdinConnect/releases/tag/${version}";
-    license = with licenses; [ mit ];
-    maintainers = with maintainers; [ fab ];
-  };
-}
diff --git a/pkgs/development/python-modules/aioambient/default.nix b/pkgs/development/python-modules/aioambient/default.nix
index 5646bf02b8a2f..c5573e88f7d9e 100644
--- a/pkgs/development/python-modules/aioambient/default.nix
+++ b/pkgs/development/python-modules/aioambient/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, certifi
-, fetchFromGitHub
-, poetry-core
-, pytest-aiohttp
-, pytest-asyncio
-, pytestCheckHook
-, python-engineio
-, python-socketio
-, pythonOlder
-, websockets
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  certifi,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytestCheckHook,
+  python-engineio,
+  python-socketio,
+  pythonOlder,
+  websockets,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     hash = "sha256-eqZVY0L+2BWF7cCXW/VLQYYXNPtUF6tJHQmeZNW1W5o=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     aiohttp
@@ -50,13 +49,9 @@ buildPythonPackage rec {
   ];
 
   # Ignore the examples directory as the files are prefixed with test_
-  disabledTestPaths = [
-    "examples/"
-  ];
+  disabledTestPaths = [ "examples/" ];
 
-  pythonImportsCheck = [
-    "aioambient"
-  ];
+  pythonImportsCheck = [ "aioambient" ];
 
   meta = with lib; {
     description = "Python library for the Ambient Weather API";
diff --git a/pkgs/development/python-modules/aioamqp/default.nix b/pkgs/development/python-modules/aioamqp/default.nix
index 8bdc72a019ede..8184e3e31172c 100644
--- a/pkgs/development/python-modules/aioamqp/default.nix
+++ b/pkgs/development/python-modules/aioamqp/default.nix
@@ -1,34 +1,34 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pamqp
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pamqp,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "aioamqp";
   version = "0.15.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "Polyconseil";
-    repo = pname;
-    rev = "${pname}-${version}";
+    repo = "aioamqp";
+    rev = "aioamqp-${version}";
     hash = "sha256-fssPknJn1tLtzb+2SFyZjfdhUdD8jqkwlInoi5uaplk=";
   };
 
-  propagatedBuildInputs = [
-    pamqp
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ pamqp ];
 
   # Tests assume rabbitmq server running
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aioamqp"
-  ];
+  pythonImportsCheck = [ "aioamqp" ];
 
   meta = with lib; {
     description = "AMQP implementation using asyncio";
diff --git a/pkgs/development/python-modules/aioapcaccess/default.nix b/pkgs/development/python-modules/aioapcaccess/default.nix
index 6d6c709552519..104e09fac8ba3 100644
--- a/pkgs/development/python-modules/aioapcaccess/default.nix
+++ b/pkgs/development/python-modules/aioapcaccess/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aioapcaccess"
-  ];
+  pythonImportsCheck = [ "aioapcaccess" ];
 
   meta = with lib; {
     description = "Module for working with apcaccess";
diff --git a/pkgs/development/python-modules/aioapns/default.nix b/pkgs/development/python-modules/aioapns/default.nix
index fe6b4192014ae..ac728fa7e656a 100644
--- a/pkgs/development/python-modules/aioapns/default.nix
+++ b/pkgs/development/python-modules/aioapns/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, h2
-, pyjwt
-, pyopenssl
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  h2,
+  pyjwt,
+  pyopenssl,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-QPayQogW97saMmaPUP5x0CiXd6Qptg/OROigi5ASNQg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     h2
@@ -33,12 +32,10 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aioapns"
-  ];
+  pythonImportsCheck = [ "aioapns" ];
 
   meta = with lib; {
-    description = "An efficient APNs Client Library";
+    description = "Efficient APNs Client Library";
     homepage = "https://github.com/Fatal1ty/aioapns";
     changelog = "https://github.com/Fatal1ty/aioapns/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/aioaseko/default.nix b/pkgs/development/python-modules/aioaseko/default.nix
index beea7e05a7505..c8f6a896c9fe8 100644
--- a/pkgs/development/python-modules/aioaseko/default.nix
+++ b/pkgs/development/python-modules/aioaseko/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, pyjwt
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  pyjwt,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-bjPl0yrRaTIEEuPV8NbWu2hx/es5bcu2tDBZV+95fUc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aioaseko"
-  ];
+  pythonImportsCheck = [ "aioaseko" ];
 
   meta = with lib; {
     description = "Module to interact with the Aseko Pool Live API";
diff --git a/pkgs/development/python-modules/aioautomower/default.nix b/pkgs/development/python-modules/aioautomower/default.nix
index 99d8175b62ed2..a1ff12bdcc891 100644
--- a/pkgs/development/python-modules/aioautomower/default.nix
+++ b/pkgs/development/python-modules/aioautomower/default.nix
@@ -1,21 +1,21 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, freezegun
-, mashumaro
-, poetry-core
-, pyjwt
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, syrupy
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  freezegun,
+  mashumaro,
+  poetry-core,
+  pyjwt,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  syrupy,
 }:
 
 buildPythonPackage rec {
   pname = "aioautomower";
-  version = "2024.4.0";
+  version = "2024.6.1";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -24,21 +24,19 @@ buildPythonPackage rec {
     owner = "Thomas55555";
     repo = "aioautomower";
     rev = "refs/tags/${version}";
-    hash = "sha256-W6aZdvg+EZKv0pmIaPOBaJaWipq3AENTVAVon/lFuI4=";
+    hash = "sha256-9mIGhSw8FP5+hAs9It8oTCFYSSRgTGAkMNBbCVImkMQ=";
   };
 
   postPatch = ''
     # Upstream doesn't set a version
     substituteInPlace pyproject.toml \
-      --replace-fail 'version = "0.0.0"' 'version = "${version}"'
+      --replace-fail 'version = "0.0.0"' 'version = "${version}"' \
+      --replace-fail "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-    setuptools
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     mashumaro
     pyjwt
@@ -51,13 +49,9 @@ buildPythonPackage rec {
     syrupy
   ];
 
-  pythonImportsCheck = [
-    "aioautomower"
-  ];
+  pythonImportsCheck = [ "aioautomower" ];
 
-  pytestFlagsArray = [
-    "--snapshot-update"
-  ];
+  pytestFlagsArray = [ "--snapshot-update" ];
 
   disabledTests = [
     # File is missing
diff --git a/pkgs/development/python-modules/aioazuredevops/default.nix b/pkgs/development/python-modules/aioazuredevops/default.nix
index 377c967986296..48687293d434c 100644
--- a/pkgs/development/python-modules/aioazuredevops/default.nix
+++ b/pkgs/development/python-modules/aioazuredevops/default.nix
@@ -1,38 +1,65 @@
-{ lib
-, buildPythonPackage
-, isPy27
-, fetchPypi
-, aiohttp
-, click
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  aiohttp,
+  incremental,
+
+  # tests
+  aioresponses,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytest-socket,
+  pytestCheckHook,
+  syrupy,
 }:
 
 buildPythonPackage rec {
   pname = "aioazuredevops";
-  version = "1.4.3";
-  format = "setuptools";
+  version = "2.2.0";
+  pyproject = true;
 
-  disabled = isPy27;
+  disabled = pythonOlder "3.11";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-vNTvSQYjjptdPsHz0zM9paq3iodZrhcEralPm6YRZJE=";
+  src = fetchFromGitHub {
+    owner = "timmo001";
+    repo = "aioazuredevops";
+    rev = "refs/tags/${version}";
+    hash = "sha256-1v58I9WOyyrp9n+qdvVeMZ3EObqP/06XCOZYS0nEvPU=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    incremental
+    setuptools
+  ];
+
+  dependencies = [
     aiohttp
-    click
+    incremental
   ];
 
-  # no tests implemented
-  doCheck = false;
+  nativeCheckInputs = [
+    aioresponses
+    pytest-aiohttp
+    pytest-asyncio
+    pytest-socket
+    pytestCheckHook
+    syrupy
+  ];
 
   pythonImportsCheck = [
-    "aioazuredevops.builds"
     "aioazuredevops.client"
     "aioazuredevops.core"
   ];
 
   meta = with lib; {
+    changelog = "https://github.com/timmo001/aioazuredevops/releases/tag/${version}";
     description = "Get data from the Azure DevOps API";
     mainProgram = "aioazuredevops";
     homepage = "https://github.com/timmo001/aioazuredevops";
diff --git a/pkgs/development/python-modules/aiobafi6/default.nix b/pkgs/development/python-modules/aiobafi6/default.nix
index 7856437baeea8..632b3d7d5b190 100644
--- a/pkgs/development/python-modules/aiobafi6/default.nix
+++ b/pkgs/development/python-modules/aiobafi6/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, zeroconf
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-QxjrspvNrcMcGChjj1B4QF/SnWCsGmPxnI2bWAL6BiI=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     protobuf
@@ -37,9 +36,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aiobafi6"
-  ];
+  pythonImportsCheck = [ "aiobafi6" ];
 
   meta = with lib; {
     description = "Library for communication with the Big Ass Fans i6 firmware";
diff --git a/pkgs/development/python-modules/aiobiketrax/default.nix b/pkgs/development/python-modules/aiobiketrax/default.nix
index 93333448ad112..b07dda7f5171b 100644
--- a/pkgs/development/python-modules/aiobiketrax/default.nix
+++ b/pkgs/development/python-modules/aiobiketrax/default.nix
@@ -1,60 +1,52 @@
-{ lib
-, aiohttp
-, auth0-python
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pyjwt
-, pytest-aiohttp
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  lib,
+  aiohttp,
+  auth0-python,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pyjwt,
+  pytest-aiohttp,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "aiobiketrax";
-  version = "1.1.2";
-  format = "pyproject";
+  version = "1.3.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "basilfx";
-    repo = pname;
+    repo = "aiobiketrax";
     rev = "refs/tags/v${version}";
-    hash = "sha256-71gPdA1snPJCR0Pmcaki55Ukf5xtUjuZ+xX8VvspKC4=";
+    hash = "sha256-6hSSPanagYKZxoyU8mp/1bWRcpJJkhNw3Rh82ogKGr4=";
   };
 
   postPatch = ''
     # https://github.com/basilfx/aiobiketrax/pull/63
     substituteInPlace aiobiketrax/api.py \
-      --replace "auth0.v3" "auth0"
+      --replace-fail "auth0.v3" "auth0"
   '';
 
-  pythonRelaxDeps = [
-    "auth0-python"
-  ];
+  pythonRelaxDeps = [ "auth0-python" ];
+
+  build-system = [ poetry-core ];
 
-  nativeBuildInputs = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     auth0-python
     python-dateutil
     pyjwt
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "aiobiketrax"
-  ];
+  pythonImportsCheck = [ "aiobiketrax" ];
 
   meta = with lib; {
     description = "Library for interacting with the PowUnity BikeTrax GPS tracker";
diff --git a/pkgs/development/python-modules/aioblescan/default.nix b/pkgs/development/python-modules/aioblescan/default.nix
index 768b2f9722015..24e17c54eddab 100644
--- a/pkgs/development/python-modules/aioblescan/default.nix
+++ b/pkgs/development/python-modules/aioblescan/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-JeA9jX566OSRiejdnlifbcNGm0J0C+xzA6zXDUyZ6jc=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "aioblescan"
-  ];
+  pythonImportsCheck = [ "aioblescan" ];
 
   meta = with lib; {
     description = "Library to listen for BLE advertized packets";
diff --git a/pkgs/development/python-modules/aioboto3/default.nix b/pkgs/development/python-modules/aioboto3/default.nix
index ea7921fc283be..592e8087349fc 100644
--- a/pkgs/development/python-modules/aioboto3/default.nix
+++ b/pkgs/development/python-modules/aioboto3/default.nix
@@ -1,19 +1,19 @@
-{ lib
-, aiobotocore
-, aiofiles
-, buildPythonPackage
-, chalice
-, cryptography
-, dill
-, fetchFromGitHub
-, moto
-, poetry-core
-, poetry-dynamic-versioning
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
+{
+  lib,
+  aiobotocore,
+  aiofiles,
+  buildPythonPackage,
+  chalice,
+  cryptography,
+  dill,
+  fetchFromGitHub,
+  moto,
+  poetry-core,
+  poetry-dynamic-versioning,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -33,24 +33,15 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     poetry-core
     poetry-dynamic-versioning
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "aiobotocore"
-  ];
+  pythonRelaxDeps = [ "aiobotocore" ];
 
-  propagatedBuildInputs = [
-    aiobotocore
-  ] ++ aiobotocore.optional-dependencies.boto3;
+  propagatedBuildInputs = [ aiobotocore ] ++ aiobotocore.optional-dependencies.boto3;
 
   passthru.optional-dependencies = {
-    chalice = [
-      chalice
-    ];
-    s3cse = [
-      cryptography
-    ];
+    chalice = [ chalice ];
+    s3cse = [ cryptography ];
   };
 
   nativeCheckInputs = [
@@ -62,9 +53,7 @@ buildPythonPackage rec {
     requests
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "aioboto3"
-  ];
+  pythonImportsCheck = [ "aioboto3" ];
 
   disabledTests = [
     # Our moto package is not ready to support more tests
diff --git a/pkgs/development/python-modules/aiobotocore/default.nix b/pkgs/development/python-modules/aiobotocore/default.nix
index 5c421c99f6d02..4a7ced69d970d 100644
--- a/pkgs/development/python-modules/aiobotocore/default.nix
+++ b/pkgs/development/python-modules/aiobotocore/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, aiohttp
-, aioitertools
-, botocore
-, buildPythonPackage
-, dill
-, fetchFromGitHub
-, flask
-, flask-cors
-, awscli
-, moto
-, boto3
-, setuptools
-, pytest-asyncio
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, wrapt
+{
+  lib,
+  aiohttp,
+  aioitertools,
+  botocore,
+  buildPythonPackage,
+  dill,
+  fetchFromGitHub,
+  flask,
+  flask-cors,
+  awscli,
+  moto,
+  boto3,
+  setuptools,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  wrapt,
 }:
 
 buildPythonPackage rec {
   pname = "aiobotocore";
-  version = "2.12.3";
+  version = "2.13.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -29,7 +30,7 @@ buildPythonPackage rec {
     owner = "aio-libs";
     repo = "aiobotocore";
     rev = "refs/tags/${version}";
-    hash = "sha256-Us94kT7UhTTwMxF63iLLczXZhfr/Z8cJr12DKEphkog=";
+    hash = "sha256-8fsZCmzjM6JlX3HoRGt7zsezYIXnv411kkHG8rJqMuY=";
   };
 
   # Relax version constraints: aiobotocore works with newer botocore versions
@@ -38,9 +39,7 @@ buildPythonPackage rec {
     sed -i "s/'botocore>=.*'/'botocore'/" setup.py
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -50,12 +49,8 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    awscli = [
-      awscli
-    ];
-    boto3 = [
-      boto3
-    ];
+    awscli = [ awscli ];
+    boto3 = [ boto3 ];
   };
 
   nativeCheckInputs = [
@@ -67,9 +62,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aiobotocore"
-  ];
+  pythonImportsCheck = [ "aiobotocore" ];
 
   disabledTestPaths = [
     # Tests require network access
@@ -90,18 +83,20 @@ buildPythonPackage rec {
     "tests/test_waiter.py"
   ];
 
-  disabledTests = [
-    "test_get_credential"
-    "test_load_sso_credentials_without_cache"
-    "test_load_sso_credentials"
-    "test_required_config_not_set"
-    "test_sso_cred_fetcher_raises_helpful_message_on_unauthorized_exception"
-    "test_sso_credential_fetcher_can_fetch_credentials"
-  ] ++ lib.optionals (pythonAtLeast "3.12.") [
-    # AttributeError: 'called_with' is not a valid assertion. Use a spec for the mock if 'called_with' is meant to be an attribute.
-    "test_max_rate_updated_on_success_response"
-    "test_max_rate_cant_exceed_20_percent_max"
-  ];
+  disabledTests =
+    [
+      "test_get_credential"
+      "test_load_sso_credentials_without_cache"
+      "test_load_sso_credentials"
+      "test_required_config_not_set"
+      "test_sso_cred_fetcher_raises_helpful_message_on_unauthorized_exception"
+      "test_sso_credential_fetcher_can_fetch_credentials"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12.") [
+      # AttributeError: 'called_with' is not a valid assertion. Use a spec for the mock if 'called_with' is meant to be an attribute.
+      "test_max_rate_updated_on_success_response"
+      "test_max_rate_cant_exceed_20_percent_max"
+    ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/aiobroadlink/default.nix b/pkgs/development/python-modules/aiobroadlink/default.nix
index db73273a36797..01a0df16561cd 100644
--- a/pkgs/development/python-modules/aiobroadlink/default.nix
+++ b/pkgs/development/python-modules/aiobroadlink/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-uTUtDhL9VtWZE+Y6ZJY4prmlE+Yh2UrCg5+eSyAQzMk=";
   };
 
-  propagatedBuildInputs = [
-    cryptography
-  ];
+  propagatedBuildInputs = [ cryptography ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aiobroadlink"
-  ];
+  pythonImportsCheck = [ "aiobroadlink" ];
 
   meta = with lib; {
     description = "Python module to control various Broadlink devices";
diff --git a/pkgs/development/python-modules/aiocache/default.nix b/pkgs/development/python-modules/aiocache/default.nix
index fd4e5f3a154a3..54a2bfb88ef78 100644
--- a/pkgs/development/python-modules/aiocache/default.nix
+++ b/pkgs/development/python-modules/aiocache/default.nix
@@ -1,10 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, msgpack
-, pythonOlder
-, redis
-, setuptools
+{
+  lib,
+  aiohttp,
+  aiomcache,
+  buildPythonPackage,
+  fetchFromGitHub,
+  marshmallow,
+  msgpack,
+  pkgs,
+  pythonOlder,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  redis,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,31 +29,66 @@ buildPythonPackage rec {
     hash = "sha256-yvXDNJL8uxReaU81klVWudJwh1hmvg5GeeILcNpm/YA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace-fail "--cov=aiocache --cov=tests/ --cov-report term" ""
+  '';
+
+  build-system = [ setuptools ];
 
-  passthru.optional-dependencies = {
-    redis = [
-      redis
-    ];
-    msgpack = [
-      msgpack
-    ];
+  optional-dependencies = {
+    redis = [ redis ];
+    memcached = [ aiomcache ];
+    msgpack = [ msgpack ];
   };
 
-  # aiomcache would be required but last release was in 2017
-  doCheck = false;
+  nativeCheckInputs = [
+    aiohttp
+    marshmallow
+    pytest-asyncio
+    pytest-mock
+    pytestCheckHook
+  ] ++ lib.flatten (lib.attrValues optional-dependencies);
+
+  pytestFlagsArray = [
+    "-W"
+    "ignore::DeprecationWarning"
+    # TypeError: object MagicMock can't be used in 'await' expression
+    "--deselect=tests/ut/backends/test_redis.py::TestRedisBackend::test_close"
+  ];
+
+  disabledTests = [
+    # Test calls apache benchmark and fails, no usable output
+    "test_concurrency_error_rates"
+  ];
 
-  pythonImportsCheck = [
-    "aiocache"
+  disabledTestPaths = [
+    # Benchmark and performance tests are not relevant for Nixpkgs
+    "tests/performance/"
   ];
 
+  preCheck = ''
+    ${lib.getBin pkgs.redis}/bin/redis-server &
+    REDIS_PID=$!
+
+    ${lib.getBin pkgs.memcached}/bin/memcached &
+    MEMCACHED_PID=$!
+  '';
+
+  postCheck = ''
+    kill $REDIS_PID
+    kill $MEMCACHED_PID
+  '';
+
+  __darwinAllowLocalNetworking = true;
+
+  pythonImportsCheck = [ "aiocache" ];
+
   meta = with lib; {
     description = "Python API Rate Limit Decorator";
     homepage = "https://github.com/aio-libs/aiocache";
     changelog = "https://github.com/aio-libs/aiocache/releases/tag/v${version}";
-    license = with licenses; [ bsd3 ];
+    license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/aiocoap/default.nix b/pkgs/development/python-modules/aiocoap/default.nix
index af2b220a21c2b..5aff82034bcc3 100644
--- a/pkgs/development/python-modules/aiocoap/default.nix
+++ b/pkgs/development/python-modules/aiocoap/default.nix
@@ -1,44 +1,37 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
-, pythonOlder
-
-# build-system
-, setuptools
-
-# optionals
-, cbor2
-, cbor-diag
-, cryptography
-, filelock
-, ge25519
-, dtlssocket
-, websockets
-, termcolor
-, pygments
-
-# tests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  cbor-diag,
+  cbor2,
+  cryptography,
+  dtlssocket,
+  fetchFromGitHub,
+  filelock,
+  ge25519,
+  pygments,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
+  termcolor,
+  websockets,
 }:
 
 buildPythonPackage rec {
   pname = "aiocoap";
-  version = "0.4.7";
+  version = "0.4.8";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "chrysn";
-    repo = pname;
+    repo = "aiocoap";
     rev = "refs/tags/${version}";
-    hash = "sha256-4iwoPfmIwk+PlWUp60aqA5qZgzyj34pnZHf9uH5UhnY=";
+    hash = "sha256-jBRxorHr5/CgAR6WVXBUycZpJ6n1DYVFQk6kqVv8D1Q=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   passthru.optional-dependencies = {
     oscore = [
@@ -47,12 +40,8 @@ buildPythonPackage rec {
       filelock
       ge25519
     ];
-    tinydtls = [
-      dtlssocket
-    ];
-    ws = [
-      websockets
-    ];
+    tinydtls = [ dtlssocket ];
+    ws = [ websockets ];
     prettyprint = [
       termcolor
       cbor2
@@ -61,26 +50,7 @@ buildPythonPackage rec {
     ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
-
-  pytestFlagsArray = lib.optionals (pythonAtLeast "3.12") [
-    # https://github.com/chrysn/aiocoap/issues/339
-    "--deselect=tests/test_server.py::TestServerTCP::test_big_resource"
-    "--deselect=tests/test_server.py::TestServerTCP::test_empty_accept"
-    "--deselect=tests/test_server.py::TestServerTCP::test_error_resources"
-    "--deselect=tests/test_server.py::TestServerTCP::test_fast_resource"
-    "--deselect=tests/test_server.py::TestServerTCP::test_js_accept"
-    "--deselect=tests/test_server.py::TestServerTCP::test_manualbig_resource"
-    "--deselect=tests/test_server.py::TestServerTCP::test_nonexisting_resource"
-    "--deselect=tests/test_server.py::TestServerTCP::test_replacing_resource"
-    "--deselect=tests/test_server.py::TestServerTCP::test_root_resource"
-    "--deselect=tests/test_server.py::TestServerTCP::test_slow_resource"
-    "--deselect=tests/test_server.py::TestServerTCP::test_slowbig_resource"
-    "--deselect=tests/test_server.py::TestServerTCP::test_spurious_resource"
-    "--deselect=tests/test_server.py::TestServerTCP::test_unacceptable_accept"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # Don't test the plugins
@@ -89,14 +59,29 @@ buildPythonPackage rec {
     "tests/test_oscore_plugtest.py"
   ];
 
-  disabledTests = [
-    # Communication is not properly mocked
-    "test_uri_parser"
-  ];
+  disabledTests =
+    [
+      # Communication is not properly mocked
+      "test_uri_parser"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # https://github.com/chrysn/aiocoap/issues/339
+      "TestServerTCP::test_big_resource"
+      "TestServerTCP::test_empty_accept"
+      "TestServerTCP::test_error_resources"
+      "TestServerTCP::test_fast_resource"
+      "TestServerTCP::test_js_accept"
+      "TestServerTCP::test_manualbig_resource"
+      "TestServerTCP::test_nonexisting_resource"
+      "TestServerTCP::test_replacing_resource"
+      "TestServerTCP::test_root_resource"
+      "TestServerTCP::test_slow_resource"
+      "TestServerTCP::test_slowbig_resource"
+      "TestServerTCP::test_spurious_resource"
+      "TestServerTCP::test_unacceptable_accept"
+    ];
 
-  pythonImportsCheck = [
-    "aiocoap"
-  ];
+  pythonImportsCheck = [ "aiocoap" ];
 
   meta = with lib; {
     description = "Python CoAP library";
diff --git a/pkgs/development/python-modules/aiocomelit/default.nix b/pkgs/development/python-modules/aiocomelit/default.nix
index b9c18196d24a1..f8a116c011e03 100644
--- a/pkgs/development/python-modules/aiocomelit/default.nix
+++ b/pkgs/development/python-modules/aiocomelit/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, colorlog
-, fetchFromGitHub
-, pint
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  colorlog,
+  fetchFromGitHub,
+  pint,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
       --replace-fail " --cov=aiocomelit --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -42,9 +41,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aiocomelit"
-  ];
+  pythonImportsCheck = [ "aiocomelit" ];
 
   meta = with lib; {
     description = "Library to control Comelit Simplehome";
diff --git a/pkgs/development/python-modules/aioconsole/default.nix b/pkgs/development/python-modules/aioconsole/default.nix
index 8cb67f32a920d..da4efbbdbb389 100644
--- a/pkgs/development/python-modules/aioconsole/default.nix
+++ b/pkgs/development/python-modules/aioconsole/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 # This package provides a binary "apython" which sometimes invokes
@@ -17,7 +18,7 @@
 # wrapped to be able to find aioconsole and any other packages.
 buildPythonPackage rec {
   pname = "aioconsole";
-  version = "0.7.0";
+  version = "0.7.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,12 +27,10 @@ buildPythonPackage rec {
     owner = "vxgmichel";
     repo = "aioconsole";
     rev = "refs/tags/v${version}";
-    hash = "sha256-SKJLc1Tauwpmh2xtFFyHqKRaaQAK99SpbbGLFmAbKcQ=";
+    hash = "sha256-c8zeKebS04bZS9pMIKAauaLPvRrWaGoDKbnF906tFzQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -51,9 +50,7 @@ buildPythonPackage rec {
     "test_interact_multiple_indented_lines"
   ];
 
-  pythonImportsCheck = [
-    "aioconsole"
-  ];
+  pythonImportsCheck = [ "aioconsole" ];
 
   meta = with lib; {
     changelog = "https://github.com/vxgmichel/aioconsole/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/aiocontextvars/default.nix b/pkgs/development/python-modules/aiocontextvars/default.nix
index 24f6f1b2e4888..47f7108309e69 100644
--- a/pkgs/development/python-modules/aiocontextvars/default.nix
+++ b/pkgs/development/python-modules/aiocontextvars/default.nix
@@ -1,29 +1,34 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pytest-asyncio
-, isPy27
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  pytest-asyncio,
+  isPy27,
 }:
 
 buildPythonPackage rec {
   pname = "aiocontextvars";
   version = "0.2.2";
-  format = "setuptools";
+  pyproject = true;
+
   disabled = isPy27;
 
   src = fetchFromGitHub {
     owner = "fantix";
-    repo = pname;
+    repo = "aiocontextvars";
     rev = "v${version}";
-    sha256 = "0a2gmrm9csiknc8n3si67sgzffkydplh9d7ga1k87ygk2aj22mmk";
+    hash = "sha256-s1YhpBLz+YNmUO+0BOltfjr3nz4m6mERszNqlmquTyg=";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "'pytest-runner'," ""
+      --replace-fail "'pytest-runner'," ""
   '';
 
+  build-system = [ setuptools ];
+
   nativeCheckInputs = [
     pytestCheckHook
     pytest-asyncio
diff --git a/pkgs/development/python-modules/aiocron/default.nix b/pkgs/development/python-modules/aiocron/default.nix
index a9a135e28f21f..0701fdab407a9 100644
--- a/pkgs/development/python-modules/aiocron/default.nix
+++ b/pkgs/development/python-modules/aiocron/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, python
-, croniter
-, tzlocal
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  python,
+  croniter,
+  tzlocal,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-SFRlE/ry63kB5lpk66e2U8gBBu0A7ZyjQZw9ELZVWgE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     croniter
diff --git a/pkgs/development/python-modules/aiocurrencylayer/default.nix b/pkgs/development/python-modules/aiocurrencylayer/default.nix
index 427992c58823c..944904ae2cae2 100644
--- a/pkgs/development/python-modules/aiocurrencylayer/default.nix
+++ b/pkgs/development/python-modules/aiocurrencylayer/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, httpx
-, poetry-core
-, pytest-asyncio
-, pytest-httpx
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpx,
+  poetry-core,
+  pytest-asyncio,
+  pytest-httpx,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     hash = "sha256-VOzgWN+dDPaGEcahFPSWjBR989b9eNkx4zcnI9o2Xiw=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    httpx
-  ];
+  propagatedBuildInputs = [ httpx ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -37,9 +34,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aiocurrencylayer"
-  ];
+  pythonImportsCheck = [ "aiocurrencylayer" ];
 
   meta = with lib; {
     description = "Python API for interacting with currencylayer";
diff --git a/pkgs/development/python-modules/aiodhcpwatcher/default.nix b/pkgs/development/python-modules/aiodhcpwatcher/default.nix
index 5c8adc9b4b99a..4566a36e85591 100644
--- a/pkgs/development/python-modules/aiodhcpwatcher/default.nix
+++ b/pkgs/development/python-modules/aiodhcpwatcher/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, poetry-core
+  # build-system
+  poetry-core,
 
-# dependencies
-, scapy
+  # dependencies
+  scapy,
 
-# tests
-, pytest-asyncio
-, pytestCheckHook
+  # tests
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -29,22 +30,16 @@ buildPythonPackage rec {
     sed -i "/addopts =/d" pyproject.toml
   '';
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    scapy
-  ];
+  dependencies = [ scapy ];
 
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aiodhcpwatcher"
-  ];
+  pythonImportsCheck = [ "aiodhcpwatcher" ];
 
   meta = with lib; {
     description = "Watch for DHCP packets with asyncio";
@@ -52,5 +47,6 @@ buildPythonPackage rec {
     changelog = "https://github.com/bdraco/aiodhcpwatcher/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ hexa ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/python-modules/aiodocker/default.nix b/pkgs/development/python-modules/aiodocker/default.nix
index f3c76acceac0e..13f5134d3cec6 100644
--- a/pkgs/development/python-modules/aiodocker/default.nix
+++ b/pkgs/development/python-modules/aiodocker/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, aiohttp
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  aiohttp,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     sha256 = "RL5Ck4wsBZO88afmoojeFKbdIeCjDo/SwNqUcERH6Ls=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # tests require docker daemon
   doCheck = false;
diff --git a/pkgs/development/python-modules/aioecowitt/default.nix b/pkgs/development/python-modules/aioecowitt/default.nix
index 414f35aaf4d08..b871411b0163d 100644
--- a/pkgs/development/python-modules/aioecowitt/default.nix
+++ b/pkgs/development/python-modules/aioecowitt/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, meteocalc
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  meteocalc,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-QfUawUtkNl2molropV8NSU7Kfm/D5/xuaPCjgm2TVOs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -37,9 +36,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aioecowitt"
-  ];
+  pythonImportsCheck = [ "aioecowitt" ];
 
   meta = with lib; {
     description = "Wrapper for the EcoWitt protocol";
diff --git a/pkgs/development/python-modules/aioelectricitymaps/default.nix b/pkgs/development/python-modules/aioelectricitymaps/default.nix
index e0f6a236b6cb0..be03d2de043a9 100644
--- a/pkgs/development/python-modules/aioelectricitymaps/default.nix
+++ b/pkgs/development/python-modules/aioelectricitymaps/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, mashumaro
-, orjson
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, syrupy
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mashumaro,
+  orjson,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  syrupy,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
       --replace-warn "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -48,9 +47,7 @@ buildPythonPackage rec {
     syrupy
   ];
 
-  pythonImportsCheck = [
-    "aioelectricitymaps"
-  ];
+  pythonImportsCheck = [ "aioelectricitymaps" ];
 
   meta = with lib; {
     description = "Module for interacting with Electricity maps";
diff --git a/pkgs/development/python-modules/aioemonitor/default.nix b/pkgs/development/python-modules/aioemonitor/default.nix
index feddda5832f2b..a9fcde7fb79af 100644
--- a/pkgs/development/python-modules/aioemonitor/default.nix
+++ b/pkgs/development/python-modules/aioemonitor/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytest-raises
-, pytestCheckHook
-, pythonOlder
-, xmltodict
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytest-raises,
+  pytestCheckHook,
+  pythonOlder,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/aioesphomeapi/default.nix b/pkgs/development/python-modules/aioesphomeapi/default.nix
index 282e27f3f8af4..579142fbeec31 100644
--- a/pkgs/development/python-modules/aioesphomeapi/default.nix
+++ b/pkgs/development/python-modules/aioesphomeapi/default.nix
@@ -1,31 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch2,
+  pythonOlder,
 
-# build-system
-, cython
-, setuptools
+  # build-system
+  cython,
+  setuptools,
 
-# dependencies
-, aiohappyeyeballs
-, async-interrupt
-, async-timeout
-, chacha20poly1305-reuseable
-, cryptography
-, noiseprotocol
-, protobuf
-, zeroconf
+  # dependencies
+  aiohappyeyeballs,
+  async-interrupt,
+  async-timeout,
+  chacha20poly1305-reuseable,
+  cryptography,
+  noiseprotocol,
+  protobuf,
+  zeroconf,
 
-# tests
-, mock
-, pytest-asyncio
-, pytestCheckHook
+  # tests
+  mock,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "aioesphomeapi";
-  version = "23.2.0";
+  version = "24.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -34,9 +36,16 @@ buildPythonPackage rec {
     owner = "esphome";
     repo = "aioesphomeapi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GFQ87Ic0xHXs8ZgmzH7kOFbDSNmtj0hx+YHKnrz/sG0=";
+    hash = "sha256-T0E8lrire3rlPY3B3P3CqNWYV4SMvnOKKiiGTRoDz/s=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      url = "https://github.com/esphome/aioesphomeapi/commit/647dd99e0d04f017da41880e2fc299914ad5c762.diff";
+      hash = "sha256-A0emzRj8AO7KF/XcAk0ysUvXO7v/tzvKGa63T5dzgTk=";
+    })
+  ];
+
   build-system = [
     setuptools
     cython
@@ -50,9 +59,7 @@ buildPythonPackage rec {
     noiseprotocol
     protobuf
     zeroconf
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    async-timeout
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
 
   nativeCheckInputs = [
     mock
@@ -63,17 +70,22 @@ buildPythonPackage rec {
   disabledTests = [
     # https://github.com/esphome/aioesphomeapi/issues/837
     "test_reconnect_logic_stop_callback"
+    # python3.12.4 regression
+    # https://github.com/esphome/aioesphomeapi/issues/889
+    "test_start_connection_cannot_increase_recv_buffer"
+    "test_start_connection_can_only_increase_buffer_size_to_262144"
   ];
 
-  pythonImportsCheck = [
-    "aioesphomeapi"
-  ];
+  pythonImportsCheck = [ "aioesphomeapi" ];
 
   meta = with lib; {
     description = "Python Client for ESPHome native API";
     homepage = "https://github.com/esphome/aioesphomeapi";
     changelog = "https://github.com/esphome/aioesphomeapi/releases/tag/v${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ fab hexa ];
+    maintainers = with maintainers; [
+      fab
+      hexa
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/aioextensions/default.nix b/pkgs/development/python-modules/aioextensions/default.nix
index 92c05b12e677d..34097274aa694 100644
--- a/pkgs/development/python-modules/aioextensions/default.nix
+++ b/pkgs/development/python-modules/aioextensions/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-, pythonOlder
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  pythonOlder,
 
-# Python dependencies
-, uvloop
-, pytest
+  # Python dependencies
+  uvloop,
+  pytest,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/aiofile/default.nix b/pkgs/development/python-modules/aiofile/default.nix
index ba9bd0652cfb3..ecbcf73396ece 100644
--- a/pkgs/development/python-modules/aiofile/default.nix
+++ b/pkgs/development/python-modules/aiofile/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiomisc
-, aiomisc-pytest
-, caio
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiomisc,
+  aiomisc-pytest,
+  caio,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-KBly/aeHHZh7mL8MJ9gmxbqS7PmR4sedtBY/2HCXt54=";
   };
 
-  propagatedBuildInputs = [
-    caio
-  ];
+  propagatedBuildInputs = [ caio ];
 
   nativeCheckInputs = [
     aiomisc
@@ -32,9 +31,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aiofile"
-  ];
+  pythonImportsCheck = [ "aiofile" ];
 
   disabledTests = [
     # Tests (SystemError) fails randomly during nix-review
diff --git a/pkgs/development/python-modules/aiofiles/default.nix b/pkgs/development/python-modules/aiofiles/default.nix
index d3d289204b7bc..dd9e903a4369c 100644
--- a/pkgs/development/python-modules/aiofiles/default.nix
+++ b/pkgs/development/python-modules/aiofiles/default.nix
@@ -1,11 +1,12 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-EbRQD/AoTMWAlPOMWmD0UdFjRyjt5MUBkJtcydUCdHM=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -41,9 +40,7 @@ buildPythonPackage rec {
     "test_slow_file"
   ];
 
-  pythonImportsCheck = [
-    "aiofiles"
-  ];
+  pythonImportsCheck = [ "aiofiles" ];
 
   meta = with lib; {
     description = "File support for asyncio";
diff --git a/pkgs/development/python-modules/aioflo/default.nix b/pkgs/development/python-modules/aioflo/default.nix
index 4ec24cb77a9a6..13b51bf8ad21d 100644
--- a/pkgs/development/python-modules/aioflo/default.nix
+++ b/pkgs/development/python-modules/aioflo/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, pytest-aiohttp
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  poetry-core,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -39,13 +40,9 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   __darwinAllowLocalNetworking = true;
 
@@ -56,9 +53,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aioflo"
-  ];
+  pythonImportsCheck = [ "aioflo" ];
 
   meta = with lib; {
     description = "Python library for Flo by Moen Smart Water Detectors";
diff --git a/pkgs/development/python-modules/aioftp/default.nix b/pkgs/development/python-modules/aioftp/default.nix
index 6aa37699ca4a9..89906cb458143 100644
--- a/pkgs/development/python-modules/aioftp/default.nix
+++ b/pkgs/development/python-modules/aioftp/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, stdenv
-, async-timeout
-, buildPythonPackage
-, fetchPypi
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, siosocks
-, trustme
+{
+  lib,
+  stdenv,
+  async-timeout,
+  buildPythonPackage,
+  fetchPypi,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  siosocks,
+  trustme,
 }:
 
 buildPythonPackage rec {
@@ -28,18 +29,12 @@ buildPythonPackage rec {
       --replace " --cov" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    siosocks
-  ];
+  propagatedBuildInputs = [ siosocks ];
 
   passthru.optional-dependencies = {
-    socks = [
-      siosocks
-    ];
+    socks = [ siosocks ];
   };
 
   nativeCheckInputs = [
@@ -54,9 +49,7 @@ buildPythonPackage rec {
     "test_pasv_connection_pasv_forced_response_address"
   ];
 
-  pythonImportsCheck = [
-    "aioftp"
-  ];
+  pythonImportsCheck = [ "aioftp" ];
 
   meta = with lib; {
     description = "Python FTP client/server for asyncio";
diff --git a/pkgs/development/python-modules/aiogithubapi/default.nix b/pkgs/development/python-modules/aiogithubapi/default.nix
index 59367acb041ad..696f05f403ce2 100644
--- a/pkgs/development/python-modules/aiogithubapi/default.nix
+++ b/pkgs/development/python-modules/aiogithubapi/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, aresponses
-, async-timeout
-, backoff
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, sigstore
+{
+  lib,
+  aiohttp,
+  aresponses,
+  async-timeout,
+  backoff,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  sigstore,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
       --replace 'sigstore = "<2"' 'sigstore = "*"'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -54,17 +53,13 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "--asyncio-mode=auto"
-  ];
+  pytestFlagsArray = [ "--asyncio-mode=auto" ];
 
   preCheck = ''
     export HOME=$(mktemp -d)
   '';
 
-  pythonImportsCheck = [
-    "aiogithubapi"
-  ];
+  pythonImportsCheck = [ "aiogithubapi" ];
 
   disabledTests = [
     # sigstore.errors.TUFError: Failed to refresh TUF metadata
diff --git a/pkgs/development/python-modules/aiogram/default.nix b/pkgs/development/python-modules/aiogram/default.nix
index 74d9f070a7219..31c5b19a1ab36 100644
--- a/pkgs/development/python-modules/aiogram/default.nix
+++ b/pkgs/development/python-modules/aiogram/default.nix
@@ -11,21 +11,22 @@
   gitUpdater,
   hatchling,
   magic-filter,
+  motor,
   pycryptodomex,
   pydantic,
+  pymongo,
   pytest-aiohttp,
   pytest-asyncio,
   pytest-lazy-fixture,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
   pytz,
   redis,
 }:
 
 buildPythonPackage rec {
   pname = "aiogram";
-  version = "3.5.0";
+  version = "3.8.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -34,12 +35,11 @@ buildPythonPackage rec {
     owner = "aiogram";
     repo = "aiogram";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NOaI01Lb969Lp/v38u2UipN9UbOQNJQEbN2JS3lmFno=";
+    hash = "sha256-lqZnebFmNNSAOv3XcWHl+gtoWO7z27Zk0O6AJ7w+HDk=";
   };
 
   build-system = [ hatchling ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   pythonRelaxDeps = [ "pydantic" ];
 
@@ -55,7 +55,9 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     aiohttp-socks
     aresponses
+    motor
     pycryptodomex
+    pymongo
     pytest-aiohttp
     pytest-asyncio
     pytest-lazy-fixture
diff --git a/pkgs/development/python-modules/aioguardian/default.nix b/pkgs/development/python-modules/aioguardian/default.nix
index 8047a91fb2c42..afd3fd33190a7 100644
--- a/pkgs/development/python-modules/aioguardian/default.nix
+++ b/pkgs/development/python-modules/aioguardian/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, aiohttp
-, async-timeout
-, asyncio-dgram
-, buildPythonPackage
-, certifi
-, docutils
-, fetchFromGitHub
-, poetry-core
-, pytest-aiohttp
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, voluptuous
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  asyncio-dgram,
+  buildPythonPackage,
+  certifi,
+  docutils,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  voluptuous,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     hash = "sha256-7fY8+aAxlDtOBLu8SadY5qiH6+RvxnFpOw1RXTonP2o=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -48,13 +47,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTestPaths = [
-    "examples/"
-  ];
+  disabledTestPaths = [ "examples/" ];
 
-  pythonImportsCheck = [
-    "aioguardian"
-  ];
+  pythonImportsCheck = [ "aioguardian" ];
 
   meta = with lib; {
     description = " Python library to interact with Elexa Guardian devices";
diff --git a/pkgs/development/python-modules/aiohappyeyeballs/default.nix b/pkgs/development/python-modules/aiohappyeyeballs/default.nix
index a2be5384a04ce..efd083022fdaa 100644
--- a/pkgs/development/python-modules/aiohappyeyeballs/default.nix
+++ b/pkgs/development/python-modules/aiohappyeyeballs/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build-system
-, poetry-core
+  # build-system
+  poetry-core,
 
-# optional-dependencies
-, furo
-, myst-parser
-, sphinx-autobuild
-, sphinxHook
+  # optional-dependencies
+  furo,
+  myst-parser,
+  sphinx-autobuild,
+  sphinxHook,
 
-# tests
-, pytest-asyncio
-, pytestCheckHook
+  # tests
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -41,9 +42,7 @@ buildPythonPackage rec {
       --replace " --cov=aiohappyeyeballs --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ] ++ passthru.optional-dependencies.docs;
+  nativeBuildInputs = [ poetry-core ] ++ passthru.optional-dependencies.docs;
 
   passthru.optional-dependencies = {
     docs = [
@@ -59,9 +58,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aiohappyeyeballs"
-  ];
+  pythonImportsCheck = [ "aiohappyeyeballs" ];
 
   disabledTestPaths = [
     # https://github.com/bdraco/aiohappyeyeballs/issues/30
@@ -73,6 +70,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/bdraco/aiohappyeyeballs";
     changelog = "https://github.com/bdraco/aiohappyeyeballs/blob/v${version}/CHANGELOG.md";
     license = licenses.psfl;
-    maintainers = with maintainers; [ fab hexa ];
+    maintainers = with maintainers; [
+      fab
+      hexa
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/aioharmony/default.nix b/pkgs/development/python-modules/aioharmony/default.nix
index 8976c3d30707c..bbb42f62c7151 100644
--- a/pkgs/development/python-modules/aioharmony/default.nix
+++ b/pkgs/development/python-modules/aioharmony/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, slixmpp
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  slixmpp,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/aiohomekit/default.nix b/pkgs/development/python-modules/aiohomekit/default.nix
index 546fd9c4f4041..94bd0c7dcd07e 100644
--- a/pkgs/development/python-modules/aiohomekit/default.nix
+++ b/pkgs/development/python-modules/aiohomekit/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, aiocoap
-, aiohappyeyeballs
-, async-interrupt
-, bleak
-, bleak-retry-connector
-, chacha20poly1305
-, chacha20poly1305-reuseable
-, commentjson
-, cryptography
-, fetchFromGitHub
-, orjson
-, poetry-core
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, zeroconf
+{
+  lib,
+  buildPythonPackage,
+  aiocoap,
+  aiohappyeyeballs,
+  async-interrupt,
+  bleak,
+  bleak-retry-connector,
+  chacha20poly1305,
+  chacha20poly1305-reuseable,
+  commentjson,
+  cryptography,
+  fetchFromGitHub,
+  orjson,
+  poetry-core,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     hash = "sha256-F3PhZsuIgT3x1Y3/kx9juPwN2WKxvdbahrRm+r6ZPps=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiocoap
@@ -73,9 +72,7 @@ buildPythonPackage rec {
     "test_discover_device_id_case_upper"
   ];
 
-  pythonImportsCheck = [
-    "aiohomekit"
-  ];
+  pythonImportsCheck = [ "aiohomekit" ];
 
   meta = with lib; {
     description = "Python module that implements the HomeKit protocol";
diff --git a/pkgs/development/python-modules/aiohttp-apispec/default.nix b/pkgs/development/python-modules/aiohttp-apispec/default.nix
index ea908ff544145..9284686d3cab1 100644
--- a/pkgs/development/python-modules/aiohttp-apispec/default.nix
+++ b/pkgs/development/python-modules/aiohttp-apispec/default.nix
@@ -1,16 +1,15 @@
-{ lib
-, aiohttp
-, apispec
-, buildPythonPackage
-, callPackage
-, fetchFromGitHub
-, fetchPypi
-, jinja2
-, packaging
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, webargs
+{
+  lib,
+  aiohttp,
+  apispec,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jinja2,
+  packaging,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  webargs,
 }:
 
 buildPythonPackage rec {
@@ -40,9 +39,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aiohttp_apispec"
-  ];
+  pythonImportsCheck = [ "aiohttp_apispec" ];
 
   meta = with lib; {
     description = "Build and document REST APIs with aiohttp and apispec";
diff --git a/pkgs/development/python-modules/aiohttp-basicauth/default.nix b/pkgs/development/python-modules/aiohttp-basicauth/default.nix
index b7ce89c134768..ee3e5483a1e48 100644
--- a/pkgs/development/python-modules/aiohttp-basicauth/default.nix
+++ b/pkgs/development/python-modules/aiohttp-basicauth/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, aiohttp
-, pytestCheckHook
-, pytest-asyncio
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  aiohttp,
+  pytestCheckHook,
+  pytest-asyncio,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-UaRzauHmBHYwXFqRwDn1py79BScqq5j5SWALM4dQBP4=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/aiohttp-client-cache/default.nix b/pkgs/development/python-modules/aiohttp-client-cache/default.nix
index c8ff60e64f5a7..540a96a824dde 100644
--- a/pkgs/development/python-modules/aiohttp-client-cache/default.nix
+++ b/pkgs/development/python-modules/aiohttp-client-cache/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, poetry-core
-, aiohttp
-, attrs
-, itsdangerous
-, url-normalize
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  poetry-core,
+  aiohttp,
+  attrs,
+  itsdangerous,
+  url-normalize,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     inherit pname version;
     sha256 = "sha256-B2b/9O2gVJjHUlN0pYeBDcwsy3slaAnd5SroeQqEU+s=";
   };
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
   propagatedBuildInputs = [
     aiohttp
     attrs
@@ -26,7 +25,7 @@ buildPythonPackage rec {
     url-normalize
   ];
   meta = with lib; {
-    description = "An async persistent cache for aiohttp requests";
+    description = "Async persistent cache for aiohttp requests";
     homepage = "https://pypi.org/project/aiohttp-client-cache/";
     license = licenses.mit;
     maintainers = with maintainers; [ seirl ];
diff --git a/pkgs/development/python-modules/aiohttp-cors/default.nix b/pkgs/development/python-modules/aiohttp-cors/default.nix
index ad6033ca4f27e..31c2115802707 100644
--- a/pkgs/development/python-modules/aiohttp-cors/default.nix
+++ b/pkgs/development/python-modules/aiohttp-cors/default.nix
@@ -1,5 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder
-, typing ? null, aiohttp
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  typing ? null,
+  aiohttp,
 }:
 
 buildPythonPackage rec {
@@ -14,8 +19,7 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.5";
 
-  propagatedBuildInputs = [ aiohttp ]
-  ++ lib.optional (pythonOlder "3.5") typing;
+  propagatedBuildInputs = [ aiohttp ] ++ lib.optional (pythonOlder "3.5") typing;
 
   # Requires network access
   doCheck = false;
diff --git a/pkgs/development/python-modules/aiohttp-fast-url-dispatcher/default.nix b/pkgs/development/python-modules/aiohttp-fast-url-dispatcher/default.nix
index 905705c992dd1..8e4cd760a5f76 100644
--- a/pkgs/development/python-modules/aiohttp-fast-url-dispatcher/default.nix
+++ b/pkgs/development/python-modules/aiohttp-fast-url-dispatcher/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,25 +28,19 @@ buildPythonPackage rec {
       --replace " --cov=aiohttp_fast_url_dispatcher --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aiohttp_fast_url_dispatcher"
-  ];
+  pythonImportsCheck = [ "aiohttp_fast_url_dispatcher" ];
 
   meta = with lib; {
-    description = "A faster URL dispatcher for aiohttp";
+    description = "Faster URL dispatcher for aiohttp";
     homepage = "https://github.com/bdraco/aiohttp-fast-url-dispatcher";
     changelog = "https://github.com/bdraco/aiohttp-fast-url-dispatcher/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/aiohttp-fast-zlib/default.nix b/pkgs/development/python-modules/aiohttp-fast-zlib/default.nix
new file mode 100644
index 0000000000000..e770098d63b3a
--- /dev/null
+++ b/pkgs/development/python-modules/aiohttp-fast-zlib/default.nix
@@ -0,0 +1,48 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  aiohttp,
+  isal,
+  zlib-ng,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "aiohttp-fast-zlib";
+  version = "0.1.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "bdraco";
+    repo = "aiohttp-fast-zlib";
+    rev = "v${version}";
+    hash = "sha256-nR/0hVe5zAhLXu+kBOBH+whIjUV44c5yuNOj+Zl+eFo=";
+  };
+
+  postPatch = ''
+    sed -i "/addopts =/d" pyproject.toml
+  '';
+
+  build-system = [ poetry-core ];
+
+  dependencies = [ aiohttp ];
+
+  optional-dependencies = {
+    isal = [ isal ];
+    zlib_ng = [ zlib-ng ];
+  };
+
+  nativeCheckInputs = [ pytestCheckHook ] ++ lib.flatten (lib.attrValues optional-dependencies);
+
+  pythonImportsCheck = [ "aiohttp_fast_zlib" ];
+
+  meta = with lib; {
+    description = "Use the fastest installed zlib compatible library with aiohttp";
+    homepage = "https://github.com/bdraco/aiohttp-fast-zlib";
+    changelog = "https://github.com/bdraco/aiohttp-fast-zlib/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiohttp-isal/default.nix b/pkgs/development/python-modules/aiohttp-isal/default.nix
new file mode 100644
index 0000000000000..4d7c46ee54843
--- /dev/null
+++ b/pkgs/development/python-modules/aiohttp-isal/default.nix
@@ -0,0 +1,51 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  poetry-core,
+
+  # dependencies
+  aiohttp,
+  isal,
+
+  # tests
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "aiohttp-isal";
+  version = "0.3.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "bdraco";
+    repo = "aiohttp-isal";
+    rev = "v${version}";
+    hash = "sha256-rSXV5Z5JdznQGtRI83UIbaSfbIYkUHphJTVK/LM2V4U=";
+  };
+
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    aiohttp
+    isal
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  preCheck = ''
+    sed -i '/addopts/d' pyproject.toml
+  '';
+
+  pythonImportsCheck = [ "aiohttp_isal" ];
+
+  meta = with lib; {
+    changelog = "https://github.com/bdraco/aiohttp-isal/blob/${src.rev}/CHANGELOG.md";
+    description = "Isal support for aiohttp";
+    homepage = "https://github.com/bdraco/aiohttp-isal";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiohttp-jinja2/default.nix b/pkgs/development/python-modules/aiohttp-jinja2/default.nix
index 8e78784457ca4..490dea94e0379 100644
--- a/pkgs/development/python-modules/aiohttp-jinja2/default.nix
+++ b/pkgs/development/python-modules/aiohttp-jinja2/default.nix
@@ -1,17 +1,19 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, jinja2
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  jinja2,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "aiohttp-jinja2";
   version = "1.6";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -20,7 +22,9 @@ buildPythonPackage rec {
     hash = "sha256-o6f/UmTlvKUuiuVHu/0HYbcklSMNQ40FtsCRW+YZsOI=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     aiohttp
     jinja2
   ];
@@ -31,8 +35,8 @@ buildPythonPackage rec {
   ];
 
   postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace " --cov=aiohttp_jinja2 --cov-report xml --cov-report html --cov-report term" ""
+    substituteInPlace pytest.ini \
+      --replace-fail "--cov=aiohttp_jinja2/ --cov=tests/ --cov-report term" ""
   '';
 
   pytestFlagsArray = [
@@ -40,13 +44,7 @@ buildPythonPackage rec {
     "ignore::DeprecationWarning"
   ];
 
-  pythonImportsCheck = [
-    "aiohttp_jinja2"
-  ];
-
-  # Tests are outdated (1.5)
-  # pytest.PytestUnhandledCoroutineWarning: async def functions...
-  doCheck = false;
+  pythonImportsCheck = [ "aiohttp_jinja2" ];
 
   meta = with lib; {
     description = "Jinja2 support for aiohttp";
diff --git a/pkgs/development/python-modules/aiohttp-oauthlib/default.nix b/pkgs/development/python-modules/aiohttp-oauthlib/default.nix
index 92981ea952c7a..31972760c132d 100644
--- a/pkgs/development/python-modules/aiohttp-oauthlib/default.nix
+++ b/pkgs/development/python-modules/aiohttp-oauthlib/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, oauthlib
-, aiohttp
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  oauthlib,
+  aiohttp,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     aiohttp
   ];
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   # Package has no tests.
   doCheck = false;
diff --git a/pkgs/development/python-modules/aiohttp-openmetrics/default.nix b/pkgs/development/python-modules/aiohttp-openmetrics/default.nix
index 11b979c4f6c2d..8f11cfb849962 100644
--- a/pkgs/development/python-modules/aiohttp-openmetrics/default.nix
+++ b/pkgs/development/python-modules/aiohttp-openmetrics/default.nix
@@ -1,15 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, aiohttp
-, prometheus-client
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  aiohttp,
+  prometheus-client,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "aiohttp-openmetrics";
   version = "0.0.12";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -18,7 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-/ZRngcMlroCVTvIl+30DR4SI8LsSnTovuzg3YduWgWA=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     aiohttp
     prometheus-client
   ];
@@ -26,9 +30,7 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aiohttp_openmetrics"
-  ];
+  pythonImportsCheck = [ "aiohttp_openmetrics" ];
 
   meta = with lib; {
     description = "OpenMetrics provider for aiohttp";
diff --git a/pkgs/development/python-modules/aiohttp-remotes/default.nix b/pkgs/development/python-modules/aiohttp-remotes/default.nix
index 66f81b1232980..ac73417b348ca 100644
--- a/pkgs/development/python-modules/aiohttp-remotes/default.nix
+++ b/pkgs/development/python-modules/aiohttp-remotes/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, flit
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  flit,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -22,15 +23,9 @@ buildPythonPackage rec {
     sha256 = "f95c3a6be5e2de746a85ce9af49ec548da6db8378d7e81bb171ec77b13562a6c";
   };
 
-  nativeBuildInputs = [
-    flit
-  ];
+  nativeBuildInputs = [ flit ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ] ++ lib.optionals (pythonOlder "3.7") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ aiohttp ] ++ lib.optionals (pythonOlder "3.7") [ typing-extensions ];
 
   nativeCheckInputs = [
     pytest-aiohttp
@@ -42,9 +37,7 @@ buildPythonPackage rec {
       --replace " --no-cov-on-fail --cov-branch --cov=aiohttp_remotes --cov-report=term --cov-report=html" ""
   '';
 
-  pythonImportsCheck = [
-    "aiohttp_remotes"
-  ];
+  pythonImportsCheck = [ "aiohttp_remotes" ];
 
   pytestFlagsArray = [
     "-W"
diff --git a/pkgs/development/python-modules/aiohttp-retry/default.nix b/pkgs/development/python-modules/aiohttp-retry/default.nix
index 262fcef8e442b..940f5bd35a3d0 100644
--- a/pkgs/development/python-modules/aiohttp-retry/default.nix
+++ b/pkgs/development/python-modules/aiohttp-retry/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pytest-aiohttp
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pytest-aiohttp,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-Zr68gx8ZR9jKrogmqaFLvpBAIHE9ptHm0zZ/b49cCLw=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   __darwinAllowLocalNetworking = true;
 
@@ -32,13 +31,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aiohttp_retry"
-  ];
+  pythonImportsCheck = [ "aiohttp_retry" ];
 
-  pytestFlagsArray = [
-    "--asyncio-mode=auto"
-  ];
+  pytestFlagsArray = [ "--asyncio-mode=auto" ];
 
   meta = with lib; {
     description = "Retry client for aiohttp";
diff --git a/pkgs/development/python-modules/aiohttp-session/default.nix b/pkgs/development/python-modules/aiohttp-session/default.nix
new file mode 100644
index 0000000000000..d526349721651
--- /dev/null
+++ b/pkgs/development/python-modules/aiohttp-session/default.nix
@@ -0,0 +1,54 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  aiohttp,
+
+  # optional-dependencies
+  aiomcache,
+  cryptography,
+  pynacl,
+  redis,
+}:
+
+buildPythonPackage rec {
+  pname = "aiohttp-session";
+  version = "2.12.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "aio-libs";
+    repo = "aiohttp-session";
+    rev = "v${version}";
+    hash = "sha256-7MNah4OIQnoxLoZkLOdeu5uCwSyPMhc6Wsht8dFconc=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [ aiohttp ];
+
+  optional-dependencies = {
+    aioredis = [ redis ];
+    aiomcache = [ aiomcache ];
+    pycrypto = [ cryptography ];
+    secure = [ cryptography ];
+    pynacl = [ pynacl ];
+  };
+
+  doCheck = false; # runs redis in docker
+
+  pythonImportsCheck = [ "aiohttp_session" ];
+
+  meta = with lib; {
+    description = "Web sessions for aiohttp.web";
+    homepage = "https://github.com/aio-libs/aiohttp-session";
+    changelog = "https://github.com/aio-libs/aiohttp-session/blob/${src.rev}/CHANGES.txt";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiohttp-socks/default.nix b/pkgs/development/python-modules/aiohttp-socks/default.nix
index 6b96d06ea482b..8bce625b2f97c 100644
--- a/pkgs/development/python-modules/aiohttp-socks/default.nix
+++ b/pkgs/development/python-modules/aiohttp-socks/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-
-# build-system
-, setuptools
-
-# dependencies
-, aiohttp
-, attrs
-, python-socks
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  aiohttp,
+  attrs,
+  python-socks,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-a2EdTOg46c8sL+1eDbpEfMhIJKbLqV3FdHYGIB2kbLQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -38,9 +37,7 @@ buildPythonPackage rec {
   # Checks needs internet access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aiohttp_socks"
-  ];
+  pythonImportsCheck = [ "aiohttp_socks" ];
 
   meta = {
     description = "SOCKS proxy connector for aiohttp";
diff --git a/pkgs/development/python-modules/aiohttp-swagger/default.nix b/pkgs/development/python-modules/aiohttp-swagger/default.nix
index 19c822acf1a7f..0b7dc5c6ea2e2 100644
--- a/pkgs/development/python-modules/aiohttp-swagger/default.nix
+++ b/pkgs/development/python-modules/aiohttp-swagger/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, aiohttp
-, jinja2
-, markupsafe
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  aiohttp,
+  jinja2,
+  markupsafe,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -47,14 +48,11 @@ buildPythonPackage rec {
     rm tests/conftest.py
   '';
 
-  pythonImportsCheck = [
-    "aiohttp_swagger"
-  ];
+  pythonImportsCheck = [ "aiohttp_swagger" ];
 
   meta = with lib; {
     description = "Swagger API Documentation builder for aiohttp";
     homepage = "https://github.com/cr0hn/aiohttp-swagger";
     license = licenses.mit;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/aiohttp-wsgi/default.nix b/pkgs/development/python-modules/aiohttp-wsgi/default.nix
index d048cb41e3209..f962c82166e9a 100644
--- a/pkgs/development/python-modules/aiohttp-wsgi/default.nix
+++ b/pkgs/development/python-modules/aiohttp-wsgi/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-3Q00FidZWV1KueuHyHKQf1PsDJGOaRW6v/kBy7lzD4Q=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "aiohttp_wsgi" ];
 
diff --git a/pkgs/development/python-modules/aiohttp-zlib-ng/default.nix b/pkgs/development/python-modules/aiohttp-zlib-ng/default.nix
index bb5337203f6f2..4d0a45414bf12 100644
--- a/pkgs/development/python-modules/aiohttp-zlib-ng/default.nix
+++ b/pkgs/development/python-modules/aiohttp-zlib-ng/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, zlib-ng
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  zlib-ng,
 }:
 
 buildPythonPackage rec {
@@ -27,22 +28,16 @@ buildPythonPackage rec {
       --replace-fail " --cov=aiohttp_zlib_ng --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
     zlib-ng
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "aiohttp_zlib_ng"
-  ];
+  pythonImportsCheck = [ "aiohttp_zlib_ng" ];
 
   meta = with lib; {
     description = "Enable zlib_ng on aiohttp";
diff --git a/pkgs/development/python-modules/aiohttp/default.nix b/pkgs/development/python-modules/aiohttp/default.nix
index a84a54e2c6fa0..20d911edfbbaf 100644
--- a/pkgs/development/python-modules/aiohttp/default.nix
+++ b/pkgs/development/python-modules/aiohttp/default.nix
@@ -1,31 +1,32 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, substituteAll
-, llhttp
-, python
-# build_requires
-, cython
-, setuptools
-# install_requires
-, attrs
-, multidict
-, async-timeout
-, yarl
-, frozenlist
-, aiosignal
-, aiodns
-, brotli
-# tests_require
-, freezegun
-, gunicorn
-, pytest-mock
-, pytest7CheckHook
-, python-on-whales
-, re-assert
-, trustme
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  substituteAll,
+  llhttp,
+  python,
+  # build_requires
+  cython,
+  setuptools,
+  # install_requires
+  attrs,
+  multidict,
+  async-timeout,
+  yarl,
+  frozenlist,
+  aiosignal,
+  aiodns,
+  brotli,
+  # tests_require
+  freezegun,
+  gunicorn,
+  pytest-mock,
+  pytest7CheckHook,
+  python-on-whales,
+  re-assert,
+  trustme,
 }:
 
 buildPythonPackage rec {
@@ -84,32 +85,35 @@ buildPythonPackage rec {
   '';
 
   # NOTE: pytest-xdist cannot be added because it is flaky. See https://github.com/NixOS/nixpkgs/issues/230597 for more info.
-  nativeCheckInputs = [
-    freezegun
-    gunicorn
-    pytest-mock
-    pytest7CheckHook
-    python-on-whales
-    re-assert
-  ] ++ lib.optionals (!(stdenv.isDarwin && stdenv.isAarch64)) [
-    # Optional test dependency. Depends indirectly on pyopenssl, which is
-    # broken on aarch64-darwin.
-    trustme
-  ];
-
-  disabledTests = [
-    # Disable tests that require network access
-    "test_client_session_timeout_zero"
-    "test_mark_formdata_as_processed"
-    "test_requote_redirect_url_default"
-    # don't run benchmarks
-    "test_import_time"
-  ] ++ lib.optionals stdenv.is32bit [
-    "test_cookiejar"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_addresses"  # https://github.com/aio-libs/aiohttp/issues/3572, remove >= v4.0.0
-    "test_close"
-  ];
+  nativeCheckInputs =
+    [
+      freezegun
+      gunicorn
+      pytest-mock
+      pytest7CheckHook
+      python-on-whales
+      re-assert
+    ]
+    ++ lib.optionals (!(stdenv.isDarwin && stdenv.isAarch64)) [
+      # Optional test dependency. Depends indirectly on pyopenssl, which is
+      # broken on aarch64-darwin.
+      trustme
+    ];
+
+  disabledTests =
+    [
+      # Disable tests that require network access
+      "test_client_session_timeout_zero"
+      "test_mark_formdata_as_processed"
+      "test_requote_redirect_url_default"
+      # don't run benchmarks
+      "test_import_time"
+    ]
+    ++ lib.optionals stdenv.is32bit [ "test_cookiejar" ]
+    ++ lib.optionals stdenv.isDarwin [
+      "test_addresses" # https://github.com/aio-libs/aiohttp/issues/3572, remove >= v4.0.0
+      "test_close"
+    ];
 
   disabledTestPaths = [
     "tests/test_proxy_functional.py" # FIXME package proxy.py
@@ -118,13 +122,15 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   # aiohttp in current folder shadows installed version
-  preCheck = ''
-    rm -r aiohttp
-    touch tests/data.unknown_mime_type # has to be modified after 1 Jan 1990
-  '' + lib.optionalString stdenv.isDarwin ''
-    # Work around "OSError: AF_UNIX path too long"
-    export TMPDIR="/tmp"
-  '';
+  preCheck =
+    ''
+      rm -r aiohttp
+      touch tests/data.unknown_mime_type # has to be modified after 1 Jan 1990
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      # Work around "OSError: AF_UNIX path too long"
+      export TMPDIR="/tmp"
+    '';
 
   meta = with lib; {
     changelog = "https://github.com/aio-libs/aiohttp/blob/v${version}/CHANGES.rst";
diff --git a/pkgs/development/python-modules/aiohue/default.nix b/pkgs/development/python-modules/aiohue/default.nix
index 44ab0e99a9d0c..39468b2116a52 100644
--- a/pkgs/development/python-modules/aiohue/default.nix
+++ b/pkgs/development/python-modules/aiohue/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aiohttp
-, asyncio-throttle
-, awesomeversion
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pytest-aiohttp
-, pytest-asyncio
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  asyncio-throttle,
+  awesomeversion,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
       --replace 'version = "0.0.0"' 'version = "${version}"'
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     awesomeversion
diff --git a/pkgs/development/python-modules/aiohwenergy/default.nix b/pkgs/development/python-modules/aiohwenergy/default.nix
index fb4d89adab51d..d5e45c6525b03 100644
--- a/pkgs/development/python-modules/aiohwenergy/default.nix
+++ b/pkgs/development/python-modules/aiohwenergy/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,16 +21,12 @@ buildPythonPackage rec {
     hash = "sha256-WfkwIxyDzLNzhWNWST/V3iN9Bhu2oXDwGiA5UXCq5ho=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aiohwenergy"
-  ];
+  pythonImportsCheck = [ "aiohwenergy" ];
 
   meta = with lib; {
     description = "Python library to interact with the HomeWizard Energy devices API";
diff --git a/pkgs/development/python-modules/aioimaplib/default.nix b/pkgs/development/python-modules/aioimaplib/default.nix
index 84020ba7ac54f..737a0a3d8e97a 100644
--- a/pkgs/development/python-modules/aioimaplib/default.nix
+++ b/pkgs/development/python-modules/aioimaplib/default.nix
@@ -1,58 +1,50 @@
-{ lib
-, pythonOlder
-, pythonAtLeast
-, asynctest
-, buildPythonPackage
-, docutils
-, fetchFromGitHub
-, imaplib2
-, mock
-, nose
-, pyopenssl
-, pytestCheckHook
-, pytz
-, tzlocal
+{
+  lib,
+  asynctest,
+  buildPythonPackage,
+  docutils,
+  fetchFromGitHub,
+  imaplib2,
+  mock,
+  pyopenssl,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  setuptools,
+  tzlocal,
 }:
 
 buildPythonPackage rec {
   pname = "aioimaplib";
-  version = "1.0.1";
-  format = "setuptools";
+  version = "1.1.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "bamthomas";
-    repo = pname;
-    rev = version;
-    hash = "sha256-7Ta0BhtQSm228vvUa5z+pzM3UC7+BskgBNjxsbEb9P0=";
+    repo = "aioimaplib";
+    rev = "refs/tags/${version}";
+    hash = "sha256-TjCPGZGsSb+04kQNzHU3kWBo2vY34ujEqh1GIMIehJc=";
   };
 
-  # https://github.com/bamthomas/aioimaplib/issues/54
-  doCheck = pythonOlder "3.11";
+  build-system = [ setuptools ];
 
   nativeCheckInputs = [
     asynctest
     docutils
     imaplib2
     mock
-    nose
     pyopenssl
     pytestCheckHook
     pytz
     tzlocal
   ];
 
-  disabledTests = [
-    # https://github.com/bamthomas/aioimaplib/issues/77
-    "test_get_quotaroot"
-    # asyncio.exceptions.TimeoutError
-    "test_idle"
-  ];
+  # https://github.com/bamthomas/aioimaplib/issues/54
+  doCheck = pythonOlder "3.11";
 
-  pythonImportsCheck = [
-    "aioimaplib"
-  ];
+  pythonImportsCheck = [ "aioimaplib" ];
 
   meta = with lib; {
     description = "Python asyncio IMAP4rev1 client library";
diff --git a/pkgs/development/python-modules/aioinflux/default.nix b/pkgs/development/python-modules/aioinflux/default.nix
index d45e02d1e91b0..ef5f9bcf6340d 100644
--- a/pkgs/development/python-modules/aioinflux/default.nix
+++ b/pkgs/development/python-modules/aioinflux/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, aiohttp
-, ciso8601
-, pandas
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  aiohttp,
+  ciso8601,
+  pandas,
 }:
 
 buildPythonPackage rec {
@@ -16,7 +17,11 @@ buildPythonPackage rec {
     sha256 = "1jy5mcg9wdz546s9wdwsgkxhm2ac4dmphd9vz243db39j1m0a3bj";
   };
 
-  propagatedBuildInputs = [ aiohttp ciso8601 pandas ];
+  propagatedBuildInputs = [
+    aiohttp
+    ciso8601
+    pandas
+  ];
 
   # Tests require InfluxDB server
   doCheck = false;
@@ -27,6 +32,9 @@ buildPythonPackage rec {
     description = "Asynchronous Python client for InfluxDB";
     homepage = "https://github.com/gusutabopb/aioinflux";
     license = licenses.mit;
-    maintainers = with maintainers; [ liamdiprose lopsided98 ];
+    maintainers = with maintainers; [
+      liamdiprose
+      lopsided98
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/aioitertools/default.nix b/pkgs/development/python-modules/aioitertools/default.nix
index 6fdc7dfd4d62a..6d59d99d14c8a 100644
--- a/pkgs/development/python-modules/aioitertools/default.nix
+++ b/pkgs/development/python-modules/aioitertools/default.nix
@@ -1,17 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# native
-, flit-core
+  # native
+  flit-core,
 
-# propagates
-, typing-extensions
+  # propagates
+  typing-extensions,
 
-# tests
-, unittestCheckHook
+  # tests
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,21 +26,13 @@ buildPythonPackage rec {
     hash = "sha256-QsaLjdOmnCv38iM7999LtYtVe8pSUqwC7VGHu8Z9aDE=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [ typing-extensions ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  pythonImportsCheck = [
-    "aioitertools"
-  ];
+  pythonImportsCheck = [ "aioitertools" ];
 
   meta = with lib; {
     description = "Implementation of itertools, builtins, and more for AsyncIO and mixed-type iterables";
diff --git a/pkgs/development/python-modules/aiojobs/default.nix b/pkgs/development/python-modules/aiojobs/default.nix
index 62633de45385f..a2d012e2a6505 100644
--- a/pkgs/development/python-modules/aiojobs/default.nix
+++ b/pkgs/development/python-modules/aiojobs/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -36,18 +37,12 @@ buildPythonPackage rec {
       --replace "--cov=aiojobs/ --cov=tests/ --cov-report term" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [
-    async-timeout
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [ async-timeout ];
 
   passthru.optional-dependencies = {
-    aiohttp = [
-      aiohttp
-    ];
+    aiohttp = [ aiohttp ];
   };
 
   nativeCheckInputs = [
@@ -55,9 +50,7 @@ buildPythonPackage rec {
     pytest-aiohttp
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "aiojobs"
-  ];
+  pythonImportsCheck = [ "aiojobs" ];
 
   disabledTests = [
     # RuntimeWarning: coroutine 'Scheduler._wait_failed' was never awaited
diff --git a/pkgs/development/python-modules/aiokafka/default.nix b/pkgs/development/python-modules/aiokafka/default.nix
index 45f79d81948c5..347a4a5f78a3d 100644
--- a/pkgs/development/python-modules/aiokafka/default.nix
+++ b/pkgs/development/python-modules/aiokafka/default.nix
@@ -1,67 +1,58 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, gssapi
-, kafka-python
-, lz4
-, packaging
-, python-snappy
-, pythonOlder
-, zlib
-, zstandard
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  gssapi,
+  kafka-python,
+  lz4,
+  packaging,
+  python-snappy,
+  pythonOlder,
+  setuptools,
+  zlib,
+  zstandard,
 }:
 
 buildPythonPackage rec {
   pname = "aiokafka";
   version = "0.10.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "aio-libs";
-    repo = pname;
+    repo = "aiokafka";
     rev = "refs/tags/v${version}";
     hash = "sha256-G9Q77nWUUW+hG/wm9z/S8gea4U1wHZdj7WdK2LsKBos=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     cython
+    setuptools
   ];
 
-  buildInputs = [
-    zlib
-  ];
+  buildInputs = [ zlib ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     async-timeout
     kafka-python
     packaging
   ];
 
-  passthru.optional-dependencies = {
-    snappy = [
-      python-snappy
-    ];
-    lz4 = [
-      lz4
-    ];
-    zstd = [
-      zstandard
-    ];
-    gssapi = [
-      gssapi
-    ];
+  optional-dependencies = {
+    snappy = [ python-snappy ];
+    lz4 = [ lz4 ];
+    zstd = [ zstandard ];
+    gssapi = [ gssapi ];
   };
 
   # Checks require running Kafka server
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aiokafka"
-  ];
+  pythonImportsCheck = [ "aiokafka" ];
 
   meta = with lib; {
     description = "Kafka integration with asyncio";
diff --git a/pkgs/development/python-modules/aiokef/default.nix b/pkgs/development/python-modules/aiokef/default.nix
index f185f974c7f8a..52289adda8422 100644
--- a/pkgs/development/python-modules/aiokef/default.nix
+++ b/pkgs/development/python-modules/aiokef/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, tenacity
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  tenacity,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     tenacity
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [ "tests" ];
   pythonImportsCheck = [ "aiokef" ];
diff --git a/pkgs/development/python-modules/aiolifx-connection/default.nix b/pkgs/development/python-modules/aiolifx-connection/default.nix
index 92cece410ee4d..4c024d45a378d 100644
--- a/pkgs/development/python-modules/aiolifx-connection/default.nix
+++ b/pkgs/development/python-modules/aiolifx-connection/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, aiolifx
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  aiolifx,
 }:
 
 buildPythonPackage rec {
@@ -18,16 +19,12 @@ buildPythonPackage rec {
     hash = "sha256:09fydp5fqqh1s0vav39mw98i1la6qcgk17gch0m5ihyl9q50ks13";
   };
 
-  propagatedBuildInputs = [
-    aiolifx
-  ];
+  propagatedBuildInputs = [ aiolifx ];
 
   # tests are not implemented
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aiolifx_connection"
-  ];
+  pythonImportsCheck = [ "aiolifx_connection" ];
 
   meta = with lib; {
     description = "Wrapper for aiolifx to connect to a single LIFX device";
diff --git a/pkgs/development/python-modules/aiolifx-effects/default.nix b/pkgs/development/python-modules/aiolifx-effects/default.nix
index 282a87c43d8db..975dce93766ac 100644
--- a/pkgs/development/python-modules/aiolifx-effects/default.nix
+++ b/pkgs/development/python-modules/aiolifx-effects/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, aiolifx
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  aiolifx,
 }:
 
 buildPythonPackage rec {
@@ -18,16 +19,12 @@ buildPythonPackage rec {
     hash = "sha256-Mhxs5PNr2W9ych56WYUZTEGck4HVTQfkil3S3zHv6Qc=";
   };
 
-  propagatedBuildInputs = [
-    aiolifx
-  ];
+  propagatedBuildInputs = [ aiolifx ];
 
   # tests are not implemented
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aiolifx_effects"
-  ];
+  pythonImportsCheck = [ "aiolifx_effects" ];
 
   meta = with lib; {
     changelog = "https://github.com/amelchio/aiolifx_effects/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/aiolifx-themes/default.nix b/pkgs/development/python-modules/aiolifx-themes/default.nix
index 284866dc921a6..8f30f735364b5 100644
--- a/pkgs/development/python-modules/aiolifx-themes/default.nix
+++ b/pkgs/development/python-modules/aiolifx-themes/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "aiolifx-themes";
-  version = "0.4.17";
+  version = "0.4.18";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "Djelibeybi";
     repo = "aiolifx-themes";
     rev = "refs/tags/v${version}";
-    hash = "sha256-nKzvdDzwizF1Db8qFQuOH7gLnYHmdCYdQZPN+gNg8mU=";
+    hash = "sha256-6oV6pyVwSS6sYrTokcJ/1KBkuv7EHNr+2bJ5ujengTY=";
   };
 
   prePatch = ''
diff --git a/pkgs/development/python-modules/aiolifx/default.nix b/pkgs/development/python-modules/aiolifx/default.nix
index 8f3a773b713e1..62853267d54b0 100644
--- a/pkgs/development/python-modules/aiolifx/default.nix
+++ b/pkgs/development/python-modules/aiolifx/default.nix
@@ -13,14 +13,14 @@
 
 buildPythonPackage rec {
   pname = "aiolifx";
-  version = "1.0.2";
+  version = "1.0.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-E3UxNTqss3urpMTwhLhIoAnBekGOIyFy0+sOj3mGlss=";
+    hash = "sha256-Lzdd4UPyu3/avxKO0XPCFI8zhTjDF7zwSKf6RL1/k9M=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/aiolimiter/default.nix b/pkgs/development/python-modules/aiolimiter/default.nix
index 5757a77da65ba..928fb0123a73b 100644
--- a/pkgs/development/python-modules/aiolimiter/default.nix
+++ b/pkgs/development/python-modules/aiolimiter/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, importlib-metadata
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, toml
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  importlib-metadata,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  toml,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     hash = "sha256-BpLh9utf2oJe+83rsIZeV5+MjbJ3aO5slMNVbUywQIo=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -42,9 +39,7 @@ buildPythonPackage rec {
       --replace " --cov=aiolimiter --cov-config=tox.ini --cov-report term-missing" ""
   '';
 
-  pythonImportsCheck = [
-    "aiolimiter"
-  ];
+  pythonImportsCheck = [ "aiolimiter" ];
 
   meta = with lib; {
     description = "Implementation of a rate limiter for asyncio";
diff --git a/pkgs/development/python-modules/aiolip/default.nix b/pkgs/development/python-modules/aiolip/default.nix
index d09efdf7866b5..5baebc529b02d 100644
--- a/pkgs/development/python-modules/aiolip/default.nix
+++ b/pkgs/development/python-modules/aiolip/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "1bgmcl8q1p6f2xm3w2qylvla6vf6bd1p2hfwj4l8w6w0w04vr02g";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace setup.py --replace "'pytest-runner'," ""
diff --git a/pkgs/development/python-modules/aiolivisi/default.nix b/pkgs/development/python-modules/aiolivisi/default.nix
index 1cad96a9425b3..a432f5ec35340 100644
--- a/pkgs/development/python-modules/aiolivisi/default.nix
+++ b/pkgs/development/python-modules/aiolivisi/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, pydantic
-, pytestCheckHook
-, pythonOlder
-, websockets
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  pydantic,
+  pytestCheckHook,
+  pythonOlder,
+  websockets,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aiolivisi"
-  ];
+  pythonImportsCheck = [ "aiolivisi" ];
 
   meta = with lib; {
     description = "Module to communicate with LIVISI Smart Home Controller";
diff --git a/pkgs/development/python-modules/aiolookin/default.nix b/pkgs/development/python-modules/aiolookin/default.nix
index 75a6b0715d203..ab251f3f820d5 100644
--- a/pkgs/development/python-modules/aiolookin/default.nix
+++ b/pkgs/development/python-modules/aiolookin/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, faker
-, fetchFromGitHub
-, pytest-aiohttp
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  faker,
+  fetchFromGitHub,
+  pytest-aiohttp,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-G3/lUgV60CMLskUo83TlvLLIfJtu5DEz+94mdVI4OrI=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   nativeCheckInputs = [
     faker
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     "test_successful"
   ];
 
-  pythonImportsCheck = [
-    "aiolookin"
-  ];
+  pythonImportsCheck = [ "aiolookin" ];
 
   meta = with lib; {
     description = "Python client for interacting with LOOKin devices";
diff --git a/pkgs/development/python-modules/aiomcache/default.nix b/pkgs/development/python-modules/aiomcache/default.nix
new file mode 100644
index 0000000000000..f320ae7945d30
--- /dev/null
+++ b/pkgs/development/python-modules/aiomcache/default.nix
@@ -0,0 +1,42 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  python-memcached,
+  typing-extensions,
+}:
+
+buildPythonPackage rec {
+  pname = "aiomcache";
+  version = "0.8.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "aio-libs";
+    repo = "aiomcache";
+    rev = "v${version}";
+    hash = "sha256-+rlKHDop0kNxJ0HoXROs/oyI4zE3MDyxXXhWZtVDMj4=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [ python-memcached ] ++ lib.optionals (pythonOlder "3.11") [ typing-extensions ];
+
+  doCheck = false; # executes memcached in docker
+
+  pythonImportsCheck = [ "aiomcache" ];
+
+  meta = with lib; {
+    changelog = "https://github.com/aio-libs/aiomcache/blob/${src.rev}/CHANGES.rst";
+    description = "Minimal asyncio memcached client";
+    homepage = "https://github.com/aio-libs/aiomcache/";
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiomealie/default.nix b/pkgs/development/python-modules/aiomealie/default.nix
new file mode 100644
index 0000000000000..046ed8c04ec5e
--- /dev/null
+++ b/pkgs/development/python-modules/aiomealie/default.nix
@@ -0,0 +1,61 @@
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mashumaro,
+  orjson,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  syrupy,
+  yarl,
+}:
+
+buildPythonPackage rec {
+  pname = "aiomealie";
+  version = "0.4.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.11";
+
+  src = fetchFromGitHub {
+    owner = "joostlek";
+    repo = "python-mealie";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-I1CA/YD2pNvBijSQgF/R8v5DfR/xyh0t/HGGiVE5UbY=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "--cov" ""
+  '';
+
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    aiohttp
+    mashumaro
+    orjson
+    yarl
+  ];
+
+  nativeCheckInputs = [
+    aioresponses
+    pytest-asyncio
+    pytestCheckHook
+    syrupy
+  ];
+
+  pythonImportsCheck = [ "aiomealie" ];
+
+  meta = with lib; {
+    description = "Module to interact with Mealie";
+    homepage = "https://github.com/joostlek/python-mealie";
+    changelog = "https://github.com/joostlek/python-mealie/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/aiomisc-pytest/default.nix b/pkgs/development/python-modules/aiomisc-pytest/default.nix
index 674aef1d02ef9..ebbc22e37a22e 100644
--- a/pkgs/development/python-modules/aiomisc-pytest/default.nix
+++ b/pkgs/development/python-modules/aiomisc-pytest/default.nix
@@ -1,16 +1,16 @@
-{ lib
-, aiomisc
-, buildPythonPackage
-, fetchPypi
-, poetry-core
-, pytest
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  lib,
+  aiomisc,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  pytest,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "aiomisc-pytest";
-  version = "1.1.2";
+  version = "1.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,29 +18,19 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "aiomisc_pytest";
     inherit version;
-    hash = "sha256-Zja0cNFrn6mUFlZOtzAtBJ/Gn27akD59qX6p88ytD6w=";
+    hash = "sha256-4mWP77R3CoX+XhoT6BbxQtxpINpdmeozjYUsegNfMyU=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  build-system = [ poetry-core ];
 
-  pythonRelaxDeps = [
-    "pytest"
-  ];
 
-  buildInputs = [
-    pytest
-  ];
+  pythonRelaxDeps = [ "pytest" ];
 
-  propagatedBuildInputs = [
-    aiomisc
-  ];
+  buildInputs = [ pytest ];
 
-  pythonImportsCheck = [
-    "aiomisc_pytest"
-  ];
+  dependencies = [ aiomisc ];
+
+  pythonImportsCheck = [ "aiomisc_pytest" ];
 
   # Module has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/aiomisc/default.nix b/pkgs/development/python-modules/aiomisc/default.nix
index 9182859bb90ef..0a7e40e46ed9a 100644
--- a/pkgs/development/python-modules/aiomisc/default.nix
+++ b/pkgs/development/python-modules/aiomisc/default.nix
@@ -22,14 +22,14 @@
 
 buildPythonPackage rec {
   pname = "aiomisc";
-  version = "17.5.6";
+  version = "17.5.24";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-oq4z+ULN6VYkXX4Oz/JqKZSIh55AHOxFJVLyaNGqaNA=";
+    hash = "sha256-9/7QI9z5dYADNRIWBelrUoNe/LaHqpb/Ch4e1Z9I1s4=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/aiomodernforms/default.nix b/pkgs/development/python-modules/aiomodernforms/default.nix
index 98133f8b894f2..4727fa2b46a53 100644
--- a/pkgs/development/python-modules/aiomodernforms/default.nix
+++ b/pkgs/development/python-modules/aiomodernforms/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, aiohttp
-, backoff
-, yarl
-, aresponses
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  aiohttp,
+  backoff,
+  yarl,
+  aresponses,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/aiomqtt/default.nix b/pkgs/development/python-modules/aiomqtt/default.nix
index 16450a8758b99..6e074397fac85 100644
--- a/pkgs/development/python-modules/aiomqtt/default.nix
+++ b/pkgs/development/python-modules/aiomqtt/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, anyio
-, buildPythonPackage
-, fetchFromGitHub
-, paho-mqtt
-, poetry-core
-, poetry-dynamic-versioning
-, pytestCheckHook
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  anyio,
+  buildPythonPackage,
+  fetchFromGitHub,
+  paho-mqtt,
+  poetry-core,
+  poetry-dynamic-versioning,
+  pytestCheckHook,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "aiomqtt";
   version = "2.0.1";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -24,12 +25,12 @@ buildPythonPackage rec {
     hash = "sha256-bV1elEO1518LVLwNDN5pzjxRgcG34K1XUsK7fTw8h+8=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
     poetry-dynamic-versioning
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     paho-mqtt
     typing-extensions
   ];
@@ -39,16 +40,15 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aiomqtt"
-  ];
+  pythonImportsCheck = [ "aiomqtt" ];
 
   pytestFlagsArray = [
-    "-m" "'not network'"
+    "-m"
+    "'not network'"
   ];
 
   meta = with lib; {
-    description = "The idiomatic asyncio MQTT client, wrapped around paho-mqtt";
+    description = "Idiomatic asyncio MQTT client, wrapped around paho-mqtt";
     homepage = "https://github.com/sbtinstruments/aiomqtt";
     changelog = "https://github.com/sbtinstruments/aiomqtt/blob/${src.rev}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/aiomusiccast/default.nix b/pkgs/development/python-modules/aiomusiccast/default.nix
index f2639400bb725..32245aec5a01c 100644
--- a/pkgs/development/python-modules/aiomusiccast/default.nix
+++ b/pkgs/development/python-modules/aiomusiccast/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, aiohttp
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  aiohttp,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
       --replace '"0.0.0"' '"${version}"'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -38,9 +37,7 @@ buildPythonPackage rec {
   # upstream has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aiomusiccast"
-  ];
+  pythonImportsCheck = [ "aiomusiccast" ];
 
   meta = with lib; {
     description = "Companion library for musiccast devices intended for the Home Assistant integration";
diff --git a/pkgs/development/python-modules/aiomysensors/default.nix b/pkgs/development/python-modules/aiomysensors/default.nix
index 5e3ca5a6089ec..f23adad066628 100644
--- a/pkgs/development/python-modules/aiomysensors/default.nix
+++ b/pkgs/development/python-modules/aiomysensors/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "aiomysensors";
-  version = "0.3.15";
+  version = "0.3.16";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "MartinHjelmare";
     repo = "aiomysensors";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kgfz8VUTtOFN1hPkNJhPdRUKQn01BJn+92Ez6lgVGbc=";
+    hash = "sha256-1BpmjCgKiCZmBpBENlg79+I3UhkIxrgLAUD8ixpGUM8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/aiomysql/default.nix b/pkgs/development/python-modules/aiomysql/default.nix
index acd3cc56e4a84..093b6f0b96d3e 100644
--- a/pkgs/development/python-modules/aiomysql/default.nix
+++ b/pkgs/development/python-modules/aiomysql/default.nix
@@ -1,23 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pymysql
-, pythonOlder
-, setuptools-scm
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pymysql,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "aiomysql";
   version = "0.2.0";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "aio-libs";
-    repo = pname;
+    repo = "aiomysql";
     rev = "refs/tags/v${version}";
     hash = "sha256-m/EgoBU3e+s3soXyYtACMDSjJfMLBOk/00qPtgawwQ8=";
   };
@@ -33,20 +35,17 @@ buildPythonPackage rec {
   ];
 
   nativeBuildInputs = [
+    setuptools
     setuptools-scm
     wheel
   ];
 
-  propagatedBuildInputs = [
-    pymysql
-  ];
+  propagatedBuildInputs = [ pymysql ];
 
   # Tests require MySQL database
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aiomysql"
-  ];
+  pythonImportsCheck = [ "aiomysql" ];
 
   meta = with lib; {
     description = "MySQL driver for asyncio";
diff --git a/pkgs/development/python-modules/aionanoleaf/default.nix b/pkgs/development/python-modules/aionanoleaf/default.nix
index e819431a4220c..18b77947fbdda 100644
--- a/pkgs/development/python-modules/aionanoleaf/default.nix
+++ b/pkgs/development/python-modules/aionanoleaf/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-f0TyXhuAzI0s0n6sXH9mKWA4nad2YchZkQ0+jw/Bmv0=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aionanoleaf"
-  ];
+  pythonImportsCheck = [ "aionanoleaf" ];
 
   meta = with lib; {
     description = "Python wrapper for the Nanoleaf API";
diff --git a/pkgs/development/python-modules/aionotion/default.nix b/pkgs/development/python-modules/aionotion/default.nix
index 918900c34a477..645bbc39c14c8 100644
--- a/pkgs/development/python-modules/aionotion/default.nix
+++ b/pkgs/development/python-modules/aionotion/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, certifi
-, ciso8601
-, fetchFromGitHub
-, frozenlist
-, mashumaro
-, poetry-core
-, pyjwt
-, pytest-aiohttp
-, pytest-asyncio
-, pytestCheckHook
-, pytest-cov
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  certifi,
+  ciso8601,
+  fetchFromGitHub,
+  frozenlist,
+  mashumaro,
+  poetry-core,
+  pyjwt,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytestCheckHook,
+  pytest-cov,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     hash = "sha256-BsbfLb5wCVxR8v2U2Zzt7LMl7XJcZWfVjZN47VDkhFc=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -55,13 +54,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTestPaths = [
-    "examples"
-  ];
+  disabledTestPaths = [ "examples" ];
 
-  pythonImportsCheck = [
-    "aionotion"
-  ];
+  pythonImportsCheck = [ "aionotion" ];
 
   meta = with lib; {
     description = "Python library for Notion Home Monitoring";
diff --git a/pkgs/development/python-modules/aiooncue/default.nix b/pkgs/development/python-modules/aiooncue/default.nix
index 4003ebd5de401..4925d8d344487 100644
--- a/pkgs/development/python-modules/aiooncue/default.nix
+++ b/pkgs/development/python-modules/aiooncue/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-TKOpx+twnG9zj7RcwOn53ebT7eyLOFKyxChp9lCdoU8=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Module doesn't have tests
   doCheck = false;
@@ -31,9 +30,7 @@ buildPythonPackage rec {
       --replace '"pytest-runner",' ""
   '';
 
-  pythonImportsCheck = [
-    "aiooncue"
-  ];
+  pythonImportsCheck = [ "aiooncue" ];
 
   meta = with lib; {
     description = "Module to interact with the Kohler Oncue API";
diff --git a/pkgs/development/python-modules/aioopenexchangerates/default.nix b/pkgs/development/python-modules/aioopenexchangerates/default.nix
index fc5eb933a98e2..7d3f698129ef5 100644
--- a/pkgs/development/python-modules/aioopenexchangerates/default.nix
+++ b/pkgs/development/python-modules/aioopenexchangerates/default.nix
@@ -9,12 +9,11 @@
   pytest-aiohttp,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
 }:
 
 buildPythonPackage rec {
   pname = "aioopenexchangerates";
-  version = "0.4.11";
+  version = "0.4.13";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +22,7 @@ buildPythonPackage rec {
     owner = "MartinHjelmare";
     repo = "aioopenexchangerates";
     rev = "refs/tags/v${version}";
-    hash = "sha256-8AScYCDgv8Dkjt/0WJ4P2q2H9dykuq3w00qDDP8PiSs=";
+    hash = "sha256-xVEyBE33gncw1h0/T7UJap8jd2KELBHSIlNE13YfIZA=";
   };
 
   postPatch = ''
@@ -35,7 +34,6 @@ buildPythonPackage rec {
 
   build-system = [ poetry-core ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     aiohttp
diff --git a/pkgs/development/python-modules/aioopenssl/default.nix b/pkgs/development/python-modules/aioopenssl/default.nix
index 0ecbbc4e6a533..e51b023a30729 100644
--- a/pkgs/development/python-modules/aioopenssl/default.nix
+++ b/pkgs/development/python-modules/aioopenssl/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyopenssl
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyopenssl,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,15 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-7Q+4/DlP+kUnC3YNk7woJaxLEEiuVmolUOajepM003Q=";
   };
 
-  propagatedBuildInputs = [
-    pyopenssl
-  ];
+  propagatedBuildInputs = [ pyopenssl ];
 
   pythonImportsCheck = [ "aioopenssl" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
     description = "TLS-capable transport using OpenSSL for asyncio";
diff --git a/pkgs/development/python-modules/aiooss2/default.nix b/pkgs/development/python-modules/aiooss2/default.nix
index 7bdd692ac2d6e..7d1e235949e70 100644
--- a/pkgs/development/python-modules/aiooss2/default.nix
+++ b/pkgs/development/python-modules/aiooss2/default.nix
@@ -8,7 +8,6 @@
   pytest-mock,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
   requests,
   setuptools,
   setuptools-scm,
@@ -38,7 +37,6 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     aiohttp
diff --git a/pkgs/development/python-modules/aiooui/default.nix b/pkgs/development/python-modules/aiooui/default.nix
index d26385e284b09..fb85170c54b42 100644
--- a/pkgs/development/python-modules/aiooui/default.nix
+++ b/pkgs/development/python-modules/aiooui/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,18 +31,14 @@ buildPythonPackage rec {
       --replace-fail '"setuptools>=65.4.1", ' ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aiooui"
-  ];
+  pythonImportsCheck = [ "aiooui" ];
 
   meta = with lib; {
     description = "Async OUI lookups";
diff --git a/pkgs/development/python-modules/aiopg/default.nix b/pkgs/development/python-modules/aiopg/default.nix
index fb49bba0f4ab9..a54ce5436b7a9 100644
--- a/pkgs/development/python-modules/aiopg/default.nix
+++ b/pkgs/development/python-modules/aiopg/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, psycopg2
-, pythonOlder
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  psycopg2,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
   # Tests requires a PostgreSQL Docker instance
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aiopg"
-  ];
+  pythonImportsCheck = [ "aiopg" ];
 
   meta = with lib; {
     description = "Python library for accessing a PostgreSQL database";
diff --git a/pkgs/development/python-modules/aiopinboard/default.nix b/pkgs/development/python-modules/aiopinboard/default.nix
index 33d4d82ea2187..f6785c7facb23 100644
--- a/pkgs/development/python-modules/aiopinboard/default.nix
+++ b/pkgs/development/python-modules/aiopinboard/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, aiohttp
-, aresponses
-, arrow
-, buildPythonPackage
-, certifi
-, fetchFromGitHub
-, frozenlist
-, poetry-core
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  arrow,
+  buildPythonPackage,
+  certifi,
+  fetchFromGitHub,
+  frozenlist,
+  poetry-core,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-/N9r17e0ZvPmcqW/XtRyAENKCGRzWqeOSKPpWHHYomg=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -45,10 +44,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-
-  pythonImportsCheck = [
-    "aiopinboard"
-  ];
+  pythonImportsCheck = [ "aiopinboard" ];
 
   meta = with lib; {
     description = "Library to interact with the Pinboard API";
diff --git a/pkgs/development/python-modules/aioprocessing/default.nix b/pkgs/development/python-modules/aioprocessing/default.nix
index 4a66a8f35d029..b54e16612f87b 100644
--- a/pkgs/development/python-modules/aioprocessing/default.nix
+++ b/pkgs/development/python-modules/aioprocessing/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-/gHHsaOMeBaGEdMEDnPZMDbDt8imSdY23J7Xo7ybG6I=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   # Tests aren't included in pypi package
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aioprocessing"
-  ];
+  pythonImportsCheck = [ "aioprocessing" ];
 
   meta = with lib; {
     description = "Library that integrates the multiprocessing module with asyncio";
diff --git a/pkgs/development/python-modules/aioprometheus/default.nix b/pkgs/development/python-modules/aioprometheus/default.nix
index 273d35fe13d98..0c74e4a6ac25e 100644
--- a/pkgs/development/python-modules/aioprometheus/default.nix
+++ b/pkgs/development/python-modules/aioprometheus/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, orjson
-, quantile-python
-, aiohttp
-, aiohttp-basicauth
-, starlette
-, quart
-, pytestCheckHook
-, httpx
-, fastapi
-, uvicorn
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  orjson,
+  quantile-python,
+  aiohttp,
+  aiohttp-basicauth,
+  starlette,
+  quart,
+  pytestCheckHook,
+  httpx,
+  fastapi,
+  uvicorn,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -34,15 +35,9 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    aiohttp = [
-      aiohttp
-    ];
-    starlette = [
-      starlette
-    ];
-    quart = [
-      quart
-    ];
+    aiohttp = [ aiohttp ];
+    starlette = [ starlette ];
+    quart = [ quart ];
   };
 
   nativeCheckInputs = [
@@ -56,7 +51,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "aioprometheus" ];
 
   meta = with lib; {
-    description = "A Prometheus Python client library for asyncio-based applications";
+    description = "Prometheus Python client library for asyncio-based applications";
     homepage = "https://github.com/claws/aioprometheus";
     changelog = "https://github.com/claws/aioprometheus/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/aiopulse/default.nix b/pkgs/development/python-modules/aiopulse/default.nix
index 3a2c11417be66..3155e6d7d9ef3 100644
--- a/pkgs/development/python-modules/aiopulse/default.nix
+++ b/pkgs/development/python-modules/aiopulse/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,20 +19,14 @@ buildPythonPackage rec {
     hash = "sha256-yrltqnePNnNwsVGkfXgtrtL/FuazRvmoVL4L0H4j4Bg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    async-timeout
-  ];
+  propagatedBuildInputs = [ async-timeout ];
 
   # Tests are not present
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aiopulse"
-  ];
+  pythonImportsCheck = [ "aiopulse" ];
 
   meta = with lib; {
     description = "Python Rollease Acmeda Automate Pulse hub protocol implementation";
diff --git a/pkgs/development/python-modules/aiopurpleair/default.nix b/pkgs/development/python-modules/aiopurpleair/default.nix
index 2fd8515b237a9..bc6ec70a07536 100644
--- a/pkgs/development/python-modules/aiopurpleair/default.nix
+++ b/pkgs/development/python-modules/aiopurpleair/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, certifi
-, fetchFromGitHub
-, poetry-core
-, pydantic
-, pytest-aiohttp
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  certifi,
+  fetchFromGitHub,
+  poetry-core,
+  pydantic,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-2Ngo2pvzwcgQvpyW5Q97VQN/tGSVhVJwRj0DMaPn+O4=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -50,9 +49,7 @@ buildPythonPackage rec {
     "examples/"
   ];
 
-  pythonImportsCheck = [
-    "aiopurpleair"
-  ];
+  pythonImportsCheck = [ "aiopurpleair" ];
 
   meta = with lib; {
     description = "Python library for interacting with the PurpleAir API";
diff --git a/pkgs/development/python-modules/aiopvpc/default.nix b/pkgs/development/python-modules/aiopvpc/default.nix
index 19baf29f55c5c..82c5f0ab124b7 100644
--- a/pkgs/development/python-modules/aiopvpc/default.nix
+++ b/pkgs/development/python-modules/aiopvpc/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, async-timeout
-, backports-zoneinfo
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytest-timeout
-, pytestCheckHook
-, pythonOlder
-, python-dotenv
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  backports-zoneinfo,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytest-timeout,
+  pytestCheckHook,
+  pythonOlder,
+  python-dotenv,
 }:
 
 buildPythonPackage rec {
@@ -31,16 +32,12 @@ buildPythonPackage rec {
       --replace-fail " --cov --cov-report term --cov-report html" ""
   '';
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     aiohttp
     async-timeout
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    backports-zoneinfo
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ backports-zoneinfo ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -49,9 +46,7 @@ buildPythonPackage rec {
     python-dotenv
   ];
 
-  pythonImportsCheck = [
-    "aiopvpc"
-  ];
+  pythonImportsCheck = [ "aiopvpc" ];
 
   meta = with lib; {
     description = "Python module to download Spanish electricity hourly prices (PVPC)";
diff --git a/pkgs/development/python-modules/aiopyarr/default.nix b/pkgs/development/python-modules/aiopyarr/default.nix
index c4a6cf05ad519..a957998de3545 100644
--- a/pkgs/development/python-modules/aiopyarr/default.nix
+++ b/pkgs/development/python-modules/aiopyarr/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, ciso8601
-, fetchFromGitHub
-, orjson
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  ciso8601,
+  fetchFromGitHub,
+  orjson,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -41,9 +42,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aiopyarr"
-  ];
+  pythonImportsCheck = [ "aiopyarr" ];
 
   meta = with lib; {
     description = "Python API client for Lidarr/Radarr/Readarr/Sonarr";
diff --git a/pkgs/development/python-modules/aiopylgtv/default.nix b/pkgs/development/python-modules/aiopylgtv/default.nix
index b7034d3858353..8a23532f63454 100644
--- a/pkgs/development/python-modules/aiopylgtv/default.nix
+++ b/pkgs/development/python-modules/aiopylgtv/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, pythonOlder
-, sqlitedict
-, websockets
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  pythonOlder,
+  sqlitedict,
+  websockets,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/aioqsw/default.nix b/pkgs/development/python-modules/aioqsw/default.nix
index 7e62d1f2089d1..b936ef7387161 100644
--- a/pkgs/development/python-modules/aioqsw/default.nix
+++ b/pkgs/development/python-modules/aioqsw/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -27,16 +28,12 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aioqsw"
-  ];
+  pythonImportsCheck = [ "aioqsw" ];
 
   meta = with lib; {
     description = "Library to fetch data from QNAP QSW switches";
diff --git a/pkgs/development/python-modules/aioquic/default.nix b/pkgs/development/python-modules/aioquic/default.nix
index 071fe70dd962c..0b3bc5464ce1f 100644
--- a/pkgs/development/python-modules/aioquic/default.nix
+++ b/pkgs/development/python-modules/aioquic/default.nix
@@ -1,42 +1,33 @@
-{ lib
-, buildPythonPackage
-, certifi
-, cryptography
-, fetchPypi
-, fetchpatch
-, openssl
-, pylsqpack
-, pyopenssl
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, service-identity
+{
+  lib,
+  buildPythonPackage,
+  certifi,
+  cryptography,
+  fetchPypi,
+  openssl,
+  pylsqpack,
+  pyopenssl,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  service-identity,
 }:
 
 buildPythonPackage rec {
   pname = "aioquic";
-  version = "0.9.25";
+  version = "1.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-cHlceJBTJthVwq5SQHIjSq5YbHibgSkuJy0CHpsEMKM=";
+    hash = "sha256-p5HFeYuutCoS+ij9Mn2gTQjxh5XpOIkXi0svSf6Lv0M=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/aiortc/aioquic/commit/e899593805e0b31325a1d347504eb8e6100fe87d.diff";
-      hash = "sha256-TTpIIWX/R4k2KxhsN17O9cRW/dN0AARYnju8JTht3D8=";
-    })
-  ];
-
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     certifi
     cryptography
     pylsqpack
@@ -44,17 +35,11 @@ buildPythonPackage rec {
     service-identity
   ];
 
-  buildInputs = [
-    openssl
-  ];
+  buildInputs = [ openssl ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "aioquic"
-  ];
+  pythonImportsCheck = [ "aioquic" ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/aioraven/default.nix b/pkgs/development/python-modules/aioraven/default.nix
index ca64f111e35e3..e4649a8d8eadd 100644
--- a/pkgs/development/python-modules/aioraven/default.nix
+++ b/pkgs/development/python-modules/aioraven/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pythonOlder
-, iso4217
-, pyserial
-, pyserial-asyncio
-, pytestCheckHook
-, pytest-asyncio
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pythonOlder,
+  iso4217,
+  pyserial,
+  pyserial-asyncio-fast,
+  pytestCheckHook,
+  pytest-asyncio,
 }:
 
 buildPythonPackage rec {
   pname = "aioraven";
-  version = "0.5.3";
+  version = "0.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -21,17 +22,15 @@ buildPythonPackage rec {
     owner = "cottsay";
     repo = "aioraven";
     rev = "refs/tags/${version}";
-    hash = "sha256-kGCFwpMaLWxLUp8k5H5AnL21KrwohbUYLswLcLqmc3M=";
+    hash = "sha256-RU2DRDjxl0EVmnNLADawEB/x6Zc3/IWH015xig5AIJY=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     iso4217
     pyserial
-    pyserial-asyncio
+    pyserial-asyncio-fast
   ];
 
   nativeCheckInputs = [
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aioraven"
-  ];
+  pythonImportsCheck = [ "aioraven" ];
 
   meta = with lib; {
     description = "Module for communication with RAVEn devices";
diff --git a/pkgs/development/python-modules/aiorecollect/default.nix b/pkgs/development/python-modules/aiorecollect/default.nix
index 4d3aae9dc1b8e..57a59497bbc62 100644
--- a/pkgs/development/python-modules/aiorecollect/default.nix
+++ b/pkgs/development/python-modules/aiorecollect/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, freezegun
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  freezegun,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,13 +30,9 @@ buildPythonPackage rec {
     sed -i '/certifi =/d' pyproject.toml
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   __darwinAllowLocalNetworking = true;
 
@@ -52,9 +48,7 @@ buildPythonPackage rec {
     "examples/"
   ];
 
-  pythonImportsCheck = [
-    "aiorecollect"
-  ];
+  pythonImportsCheck = [ "aiorecollect" ];
 
   meta = with lib; {
     description = "Python library for the Recollect Waste API";
diff --git a/pkgs/development/python-modules/aioredis/default.nix b/pkgs/development/python-modules/aioredis/default.nix
index 2c944600ef913..aef2e406036e6 100644
--- a/pkgs/development/python-modules/aioredis/default.nix
+++ b/pkgs/development/python-modules/aioredis/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, async-timeout
-, typing-extensions
-, hiredis
-, isPyPy
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchpatch,
+  fetchPypi,
+  async-timeout,
+  typing-extensions,
+  hiredis,
+  isPyPy,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/aioresponses/default.nix b/pkgs/development/python-modules/aioresponses/default.nix
index 6cbcad24bdc4c..5b102d463171d 100644
--- a/pkgs/development/python-modules/aioresponses/default.nix
+++ b/pkgs/development/python-modules/aioresponses/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-
-# build-system
-, pbr
-, setuptools
-
-# dependencies
-, aiohttp
-
-# tests
-, ddt
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+
+  # build-system
+  pbr,
+  setuptools,
+
+  # dependencies
+  aiohttp,
+
+  # tests
+  ddt,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -32,13 +33,9 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
-  pythonImportsCheck = [
-    "aioresponses"
-  ];
+  pythonImportsCheck = [ "aioresponses" ];
 
   nativeCheckInputs = [
     ddt
@@ -52,7 +49,7 @@ buildPythonPackage rec {
   ];
 
   meta = {
-    description = "A helper to mock/fake web requests in python aiohttp package";
+    description = "Helper to mock/fake web requests in python aiohttp package";
     homepage = "https://github.com/pnuckowski/aioresponses";
     license = lib.licenses.mit;
   };
diff --git a/pkgs/development/python-modules/aioridwell/default.nix b/pkgs/development/python-modules/aioridwell/default.nix
index 6598b42ed8bfe..da7c4322b7be6 100644
--- a/pkgs/development/python-modules/aioridwell/default.nix
+++ b/pkgs/development/python-modules/aioridwell/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, certifi
-, fetchFromGitHub
-, freezegun
-, poetry-core
-, pyjwt
-, pytest-aiohttp
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, pytz
-, titlecase
-, types-pytz
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  certifi,
+  fetchFromGitHub,
+  freezegun,
+  poetry-core,
+  pyjwt,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  titlecase,
+  types-pytz,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     hash = "sha256-B5k8uXDHq0U6fJVW8oy2sWUj5OIVGUfe9EtCjnIr3OE=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -63,9 +62,7 @@ buildPythonPackage rec {
     "examples/"
   ];
 
-  pythonImportsCheck = [
-    "aioridwell"
-  ];
+  pythonImportsCheck = [ "aioridwell" ];
 
   meta = with lib; {
     description = "Python library for interacting with Ridwell waste recycling";
diff --git a/pkgs/development/python-modules/aiormq/default.nix b/pkgs/development/python-modules/aiormq/default.nix
index 214ffc714ee63..7dd16b1f48113 100644
--- a/pkgs/development/python-modules/aiormq/default.nix
+++ b/pkgs/development/python-modules/aiormq/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, aiomisc-pytest
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pythonRelaxDepsHook
-, pytestCheckHook
-, pamqp
-, yarl
-, poetry-core
+{
+  lib,
+  aiomisc-pytest,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  pamqp,
+  yarl,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -26,25 +26,18 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "pamqp"
-  ];
+  pythonRelaxDeps = [ "pamqp" ];
 
   propagatedBuildInputs = [
     pamqp
     yarl
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  checkInputs = [
-    aiomisc-pytest
-  ];
+  checkInputs = [ aiomisc-pytest ];
 
   # Tests attempt to connect to a RabbitMQ server
   disabledTestPaths = [
@@ -52,9 +45,7 @@ buildPythonPackage rec {
     "tests/test_connection.py"
   ];
 
-  pythonImportsCheck = [
-    "aiormq"
-  ];
+  pythonImportsCheck = [ "aiormq" ];
 
   meta = with lib; {
     description = "AMQP 0.9.1 asynchronous client library";
diff --git a/pkgs/development/python-modules/aiorpcx/default.nix b/pkgs/development/python-modules/aiorpcx/default.nix
index 5686a7dafd126..a770b6e5f3abe 100644
--- a/pkgs/development/python-modules/aiorpcx/default.nix
+++ b/pkgs/development/python-modules/aiorpcx/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, attrs
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  attrs,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/aiortm/default.nix b/pkgs/development/python-modules/aiortm/default.nix
index 9e1384acc6792..4498c27080c38 100644
--- a/pkgs/development/python-modules/aiortm/default.nix
+++ b/pkgs/development/python-modules/aiortm/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "aiortm";
-  version = "0.8.13";
+  version = "0.8.14";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "MartinHjelmare";
     repo = "aiortm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-JoolmxZFN0UG8wAMxMAYL8APFjpEcMECirCKUA/UBlY=";
+    hash = "sha256-x/QTmFNPnazyAmJQ9zLzAFB9V3NUwDeTJdrJqQ54jGE=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/aiortsp/default.nix b/pkgs/development/python-modules/aiortsp/default.nix
index a988e670070de..4bdf43d387666 100644
--- a/pkgs/development/python-modules/aiortsp/default.nix
+++ b/pkgs/development/python-modules/aiortsp/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, dpkt
+  # dependencies
+  dpkt,
 
-# tests
-, mock
-, pytestCheckHook
-, pytest-asyncio
+  # tests
+  mock,
+  pytestCheckHook,
+  pytest-asyncio,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     hash = "sha256-bxfnKAzMYh0lhS3he617eGhO7hmNbiwEYHh8k/PZ6r4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    dpkt
-  ];
+  propagatedBuildInputs = [ dpkt ];
 
   nativeCheckInputs = [
     mock
@@ -40,12 +37,10 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
-  pythonImportsCheck = [
-    "aiortsp"
-  ];
+  pythonImportsCheck = [ "aiortsp" ];
 
   meta = with lib; {
-    description = "An Asyncio-based RTSP library";
+    description = "Asyncio-based RTSP library";
     homepage = "https://github.com/marss/aiortsp";
     changelog = "https://github.com/marss/aiortsp/blob/${src.rev}/CHANGELOG.rst";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/python-modules/aioruckus/default.nix b/pkgs/development/python-modules/aioruckus/default.nix
index a3d77994f432c..d78c56e92cc39 100644
--- a/pkgs/development/python-modules/aioruckus/default.nix
+++ b/pkgs/development/python-modules/aioruckus/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
-, xmltodict
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wheel,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
     xmltodict
   ];
 
-  pythonImportsCheck = [
-    "aioruckus"
-  ];
+  pythonImportsCheck = [ "aioruckus" ];
 
   nativeCheckInputs = [
     pytest-asyncio
diff --git a/pkgs/development/python-modules/aiorun/default.nix b/pkgs/development/python-modules/aiorun/default.nix
index f0e63e0ae374c..318411ae9a5dd 100644
--- a/pkgs/development/python-modules/aiorun/default.nix
+++ b/pkgs/development/python-modules/aiorun/default.nix
@@ -1,43 +1,41 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, fetchpatch
-, flit-core
-, pygments
-, pytestCheckHook
-, uvloop
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  fetchpatch,
+  flit-core,
+  pygments,
+  pytestCheckHook,
+  uvloop,
 }:
 
 buildPythonPackage rec {
   pname = "aiorun";
   version = "2023.7.2";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "cjrh";
-    repo = pname;
+    repo = "aiorun";
     rev = "refs/tags/v${version}";
     hash = "sha256-3AGsT8IUNi5SZHBsBfd7akj8eQ+xb0mrR7ydIr3T8gs=";
   };
 
   patches = [
     # Raise flit-core version constrains
-    (fetchpatch { # https://github.com/cjrh/aiorun/pull/85
+    (fetchpatch {
+      # https://github.com/cjrh/aiorun/pull/85
       url = "https://github.com/cjrh/aiorun/commit/a0c027ea331167712738e35ca70fefcd794e16d5.patch";
       hash = "sha256-M1rcrkdFcoFa3IncPnJaRhnXbelyk56QnMGtmgB6bvk=";
     })
   ];
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  build-system = [ flit-core ];
 
-  propagatedBuildInputs = [
-    pygments
-  ];
+  dependencies = [ pygments ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -49,9 +47,7 @@ buildPythonPackage rec {
     export HOME=$TMPDIR
   '';
 
-  pythonImportsCheck = [
-    "aiorun"
-  ];
+  pythonImportsCheck = [ "aiorun" ];
 
   meta = with lib; {
     description = "Boilerplate for asyncio applications";
diff --git a/pkgs/development/python-modules/aioruuvigateway/default.nix b/pkgs/development/python-modules/aioruuvigateway/default.nix
index 215d34d098b04..ac167e943bc59 100644
--- a/pkgs/development/python-modules/aioruuvigateway/default.nix
+++ b/pkgs/development/python-modules/aioruuvigateway/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, bluetooth-data-tools
-, httpx
-, pytest-asyncio
-, pytest-httpx
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  bluetooth-data-tools,
+  httpx,
+  pytest-asyncio,
+  pytest-httpx,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-Etv+kPFYEK79hpDeNmDfuyNj1vJ6udry1u+TRO5gLV4=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     bluetooth-data-tools
@@ -36,12 +35,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aioruuvigateway"
-  ];
+  pythonImportsCheck = [ "aioruuvigateway" ];
 
   meta = with lib; {
-    description = "An asyncio-native library for requesting data from a Ruuvi Gateway";
+    description = "Asyncio-native library for requesting data from a Ruuvi Gateway";
     homepage = "https://github.com/akx/aioruuvigateway";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
diff --git a/pkgs/development/python-modules/aiorwlock/default.nix b/pkgs/development/python-modules/aiorwlock/default.nix
index 87fab70a03f32..1a1de43c08866 100644
--- a/pkgs/development/python-modules/aiorwlock/default.nix
+++ b/pkgs/development/python-modules/aiorwlock/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-, pytest-asyncio
-, pytest-cov
-, pytestCheckHook
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  pytest-asyncio,
+  pytest-cov,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/aiosasl/default.nix b/pkgs/development/python-modules/aiosasl/default.nix
index d904802ff61a2..fe977cc1bbec8 100644
--- a/pkgs/development/python-modules/aiosasl/default.nix
+++ b/pkgs/development/python-modules/aiosasl/default.nix
@@ -1,16 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pyopenssl
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pyopenssl,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "aiosasl";
   version = "0.5.0";
+  pyproject = true;
 
-  format = "setuptools";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "horazont";
@@ -27,6 +31,14 @@ buildPythonPackage rec {
     })
   ];
 
+  postPatch = ''
+    # https://github.com/horazont/aiosasl/issues/28
+    substituteInPlace tests/test_aiosasl.py \
+      --replace-fail "assertRaisesRegexp" "assertRaisesRegex"
+  '';
+
+  build-system = [ setuptools ];
+
   nativeCheckInputs = [
     pyopenssl
     pytestCheckHook
diff --git a/pkgs/development/python-modules/aiosenz/default.nix b/pkgs/development/python-modules/aiosenz/default.nix
index cddb2f37071fc..48a5ca3d1025a 100644
--- a/pkgs/development/python-modules/aiosenz/default.nix
+++ b/pkgs/development/python-modules/aiosenz/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, authlib
-, buildPythonPackage
-, fetchFromGitHub
-, httpx
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  authlib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpx,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-ODdWPS14zzptxuS6mff51f0s1SYnIqjF40DmvT0sL0w=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     httpx
@@ -34,9 +33,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aiosenz"
-  ];
+  pythonImportsCheck = [ "aiosenz" ];
 
   meta = with lib; {
     description = "Python wrapper for the nVent Raychem SENZ RestAPI";
diff --git a/pkgs/development/python-modules/aioserial/default.nix b/pkgs/development/python-modules/aioserial/default.nix
index ca0c4d2e8c6e0..d413591aaa3a1 100644
--- a/pkgs/development/python-modules/aioserial/default.nix
+++ b/pkgs/development/python-modules/aioserial/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyserial
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyserial,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-cCvwOw64S47y2NrFy5JeHmhdzpj3exJVabxv0rO1gig=";
   };
 
-  propagatedBuildInputs = [
-    pyserial
-  ];
+  propagatedBuildInputs = [ pyserial ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/aioshelly/default.nix b/pkgs/development/python-modules/aioshelly/default.nix
index 55c60d8e921a8..359a1db2cb743 100644
--- a/pkgs/development/python-modules/aioshelly/default.nix
+++ b/pkgs/development/python-modules/aioshelly/default.nix
@@ -1,34 +1,33 @@
-{ lib
-, aiohttp
-, bluetooth-data-tools
-, buildPythonPackage
-, fetchFromGitHub
-, habluetooth
-, orjson
-, pythonOlder
-, setuptools
-, yarl
+{
+  lib,
+  aiohttp,
+  bluetooth-data-tools,
+  buildPythonPackage,
+  fetchFromGitHub,
+  habluetooth,
+  orjson,
+  pythonOlder,
+  setuptools,
+  yarl,
 }:
 
 buildPythonPackage rec {
   pname = "aioshelly";
-  version = "8.2.0";
+  version = "10.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "home-assistant-libs";
-    repo = pname;
+    repo = "aioshelly";
     rev = "refs/tags/${version}";
-    hash = "sha256-ZJ6lb3pd8DhNagaVq1uFwadtviuHCg44YZkh29ipu5U=";
+    hash = "sha256-+p+AFgqS/9rCDkIiNm4o7GhQ4dPfKl2s7ukEYaAdlgo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     bluetooth-data-tools
     habluetooth
@@ -39,9 +38,7 @@ buildPythonPackage rec {
   # Project has no test
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aioshelly"
-  ];
+  pythonImportsCheck = [ "aioshelly" ];
 
   meta = with lib; {
     description = "Python library to control Shelly";
diff --git a/pkgs/development/python-modules/aioshutil/default.nix b/pkgs/development/python-modules/aioshutil/default.nix
index 84813ff04c970..1aeccdce9fe9c 100644
--- a/pkgs/development/python-modules/aioshutil/default.nix
+++ b/pkgs/development/python-modules/aioshutil/default.nix
@@ -1,48 +1,45 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "aioshutil";
-  version = "1.3";
-  format = "pyproject";
+  version = "1.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "kumaraditya303";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-XIGjiLjoyS/7vUDIyBPvHNMyHOBa0gsg/c/vGgrhZAg=";
+    repo = "aioshutil";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-OGxD7GusRcHpz7FdUpa/dJ6/jIAVexbTvXfouVw0C+I=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace-fail " --cov aioshutil --cov-report xml" ""
+  '';
+
+  nativeBuildInputs = [ setuptools-scm ];
 
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace " --cov aioshutil --cov-report xml" ""
-  '';
-
-  pythonImportsCheck = [
-    "aioshutil"
-  ];
+  pythonImportsCheck = [ "aioshutil" ];
 
   meta = with lib; {
     description = "Asynchronous version of function of shutil module";
     homepage = "https://github.com/kumaraditya303/aioshutil";
-    license = with licenses; [ bsd3 ];
+    license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/aiosignal/default.nix b/pkgs/development/python-modules/aiosignal/default.nix
index 2b3addc35917c..7e024ce276264 100644
--- a/pkgs/development/python-modules/aiosignal/default.nix
+++ b/pkgs/development/python-modules/aiosignal/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, frozenlist
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  frozenlist,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-vx3Fe28r+0it1UFwyDSD9NNyeIN4tywTyr4pVp49WuU=";
   };
 
-  propagatedBuildInputs = [
-    frozenlist
-  ];
+  propagatedBuildInputs = [ frozenlist ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -36,9 +35,7 @@ buildPythonPackage rec {
       --replace "--cov=aiosignal" ""
   '';
 
-  pythonImportsCheck = [
-    "aiosignal"
-  ];
+  pythonImportsCheck = [ "aiosignal" ];
 
   meta = with lib; {
     description = "Python list of registered asynchronous callbacks";
diff --git a/pkgs/development/python-modules/aioskybell/default.nix b/pkgs/development/python-modules/aioskybell/default.nix
index 2e5527850bf56..922d60f4c33c7 100644
--- a/pkgs/development/python-modules/aioskybell/default.nix
+++ b/pkgs/development/python-modules/aioskybell/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiofiles
-, aiohttp
-, aresponses
-, buildPythonPackage
-, ciso8601
-, fetchFromGitHub
-, pytest-asyncio
-, pytest-freezegun
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiofiles,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  ciso8601,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytest-freezegun,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
       --replace 'version="master",' 'version="${version}",'
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -48,9 +47,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aioskybell"
-  ];
+  pythonImportsCheck = [ "aioskybell" ];
 
   meta = with lib; {
     description = "API client for Skybell doorbells";
diff --git a/pkgs/development/python-modules/aioslimproto/default.nix b/pkgs/development/python-modules/aioslimproto/default.nix
index 0a92b10bfd29a..0f6d21d3aefbf 100644
--- a/pkgs/development/python-modules/aioslimproto/default.nix
+++ b/pkgs/development/python-modules/aioslimproto/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, pillow
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pillow,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
       --replace-fail "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -40,9 +39,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aioslimproto"
-  ];
+  pythonImportsCheck = [ "aioslimproto" ];
 
   meta = with lib; {
     description = "Module to control Squeezebox players";
diff --git a/pkgs/development/python-modules/aiosmb/default.nix b/pkgs/development/python-modules/aiosmb/default.nix
index 873eb8d24acf7..0fe74733ff646 100644
--- a/pkgs/development/python-modules/aiosmb/default.nix
+++ b/pkgs/development/python-modules/aiosmb/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, asyauth
-, asysocks
-, buildPythonPackage
-, colorama
-, cryptography
-, fetchPypi
-, minikerberos
-, prompt-toolkit
-, pycryptodomex
-, pythonOlder
-, six
-, tqdm
-, winacl
-, winsspi
+{
+  lib,
+  asyauth,
+  asysocks,
+  buildPythonPackage,
+  colorama,
+  cryptography,
+  fetchPypi,
+  minikerberos,
+  prompt-toolkit,
+  pycryptodomex,
+  pythonOlder,
+  six,
+  tqdm,
+  winacl,
+  winsspi,
 }:
 
 buildPythonPackage rec {
@@ -44,9 +45,7 @@ buildPythonPackage rec {
   # Project doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aiosmb"
-  ];
+  pythonImportsCheck = [ "aiosmb" ];
 
   meta = with lib; {
     description = "Python SMB library";
diff --git a/pkgs/development/python-modules/aiosmtpd/default.nix b/pkgs/development/python-modules/aiosmtpd/default.nix
index 39050153be2e5..dfecf0b966af3 100644
--- a/pkgs/development/python-modules/aiosmtpd/default.nix
+++ b/pkgs/development/python-modules/aiosmtpd/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, atpublic
-, attrs
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  atpublic,
+  attrs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "aiosmtpd";
-  version = "1.4.5";
+  version = "1.4.6";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -21,19 +22,15 @@ buildPythonPackage rec {
     owner = "aio-libs";
     repo = "aiosmtpd";
     rev = "refs/tags/v${version}";
-    hash = "sha256-8nQ4BVSLYgZHRGkbujy/olV/+GABlkDhe5wef3hyQpQ=";
+    hash = "sha256-Ih/xbWM9O/fFQiZezydlPlIr36fLRc2lLgdfxD5Jviw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     atpublic
     attrs
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   nativeCheckInputs = [
     pytest-mock
@@ -50,9 +47,7 @@ buildPythonPackage rec {
     "test_byclient"
   ];
 
-  pythonImportsCheck = [
-    "aiosmtpd"
-  ];
+  pythonImportsCheck = [ "aiosmtpd" ];
 
   meta = with lib; {
     description = "Asyncio based SMTP server";
diff --git a/pkgs/development/python-modules/aiosmtplib/default.nix b/pkgs/development/python-modules/aiosmtplib/default.nix
index dda58fc011e88..fa8822675a22a 100644
--- a/pkgs/development/python-modules/aiosmtplib/default.nix
+++ b/pkgs/development/python-modules/aiosmtplib/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiosmtpd
-, buildPythonPackage
-, fetchFromGitHub
-, hypothesis
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, trustme
+{
+  lib,
+  aiosmtpd,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hypothesis,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  trustme,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-67Z+k+PBIGP2oGb/52dMtsapUsHufvFcX+wWiMj5Jsg=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     aiosmtpd
@@ -36,9 +35,7 @@ buildPythonPackage rec {
     trustme
   ];
 
-  pythonImportsCheck = [
-    "aiosmtplib"
-  ];
+  pythonImportsCheck = [ "aiosmtplib" ];
 
   meta = with lib; {
     description = "Module which provides a SMTP client";
diff --git a/pkgs/development/python-modules/aiosomecomfort/default.nix b/pkgs/development/python-modules/aiosomecomfort/default.nix
index 59698d94a3149..6161fd0166de5 100644
--- a/pkgs/development/python-modules/aiosomecomfort/default.nix
+++ b/pkgs/development/python-modules/aiosomecomfort/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, prettytable
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  prettytable,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-EmglZW9gzgswxoEtDT+evjn8N+3aPooYFudwAXP8XEE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
     prettytable
   ];
 
-  pythonImportsCheck = [
-    "aiosomecomfort"
-  ];
+  pythonImportsCheck = [ "aiosomecomfort" ];
 
   # Tests only run on Windows, due to WindowsSelectorEventLoopPolicy
   doCheck = false;
diff --git a/pkgs/development/python-modules/aiosql/default.nix b/pkgs/development/python-modules/aiosql/default.nix
index ac2ff4a650a87..5afa301ea9efa 100644
--- a/pkgs/development/python-modules/aiosql/default.nix
+++ b/pkgs/development/python-modules/aiosql/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pg8000
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
-, sphinx-rtd-theme
-, sphinxHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pg8000,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  sphinx-rtd-theme,
+  sphinxHook,
 }:
 
 buildPythonPackage rec {
   pname = "aiosql";
-  version = "10.1";
+  version = "10.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +28,7 @@ buildPythonPackage rec {
     owner = "nackjicholson";
     repo = "aiosql";
     rev = "refs/tags/${version}";
-    hash = "sha256-KlDwvoU0GYCN+ZCp4pp557qf9ChceS4NeA0Yiq+g3YQ=";
+    hash = "sha256-o88pKxvK7fT+ocemiY58yA6fTmgg8+QsztHU3OvcDAo=";
   };
 
   sphinxRoot = "docs/source";
@@ -39,18 +40,14 @@ buildPythonPackage rec {
     sphinxHook
   ];
 
-  propagatedBuildInputs = [
-    pg8000
-  ];
+  propagatedBuildInputs = [ pg8000 ];
 
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aiosql"
-  ];
+  pythonImportsCheck = [ "aiosql" ];
 
   meta = with lib; {
     description = "Simple SQL in Python";
diff --git a/pkgs/development/python-modules/aiosqlite/default.nix b/pkgs/development/python-modules/aiosqlite/default.nix
index bd16b06895a61..3bad4e1870703 100644
--- a/pkgs/development/python-modules/aiosqlite/default.nix
+++ b/pkgs/development/python-modules/aiosqlite/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pytestCheckHook
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pytestCheckHook,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -21,26 +22,16 @@ buildPythonPackage rec {
     hash = "sha256-JQ9iNxK7FvBhPyr825d+8P5ZYFztDIX3gOwp4FPfyU4=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ typing-extensions ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Tests are not pick-up automatically by the hook
-  pytestFlagsArray = [
-    "aiosqlite/tests/*.py"
-  ];
+  pytestFlagsArray = [ "aiosqlite/tests/*.py" ];
 
-  pythonImportsCheck = [
-    "aiosqlite"
-  ];
+  pythonImportsCheck = [ "aiosqlite" ];
 
   meta = with lib; {
     description = "Asyncio bridge to the standard sqlite3 module";
diff --git a/pkgs/development/python-modules/aiosteamist/default.nix b/pkgs/development/python-modules/aiosteamist/default.nix
index 535594e3d28dd..b6fc08e3c9d11 100644
--- a/pkgs/development/python-modules/aiosteamist/default.nix
+++ b/pkgs/development/python-modules/aiosteamist/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
-, xmltodict
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-IKrAJ4QDcYJRO4hcomL9FRs8hJ3k7SgRgK4H1b8SxIM=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -36,9 +35,7 @@ buildPythonPackage rec {
       --replace 'xmltodict = "^0.12.0"' 'xmltodict = "*"'
   '';
 
-  pythonImportsCheck = [
-    "aiosteamist"
-  ];
+  pythonImportsCheck = [ "aiosteamist" ];
 
   # Modules doesn't have test suite
   doCheck = false;
diff --git a/pkgs/development/python-modules/aiostream/default.nix b/pkgs/development/python-modules/aiostream/default.nix
index 43f3ae89f1383..98b2d3902fa41 100644
--- a/pkgs/development/python-modules/aiostream/default.nix
+++ b/pkgs/development/python-modules/aiostream/default.nix
@@ -1,43 +1,43 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "aiostream";
-  version = "0.5.2";
-  format = "setuptools";
+  version = "0.6.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "vxgmichel";
-    repo = pname;
+    repo = "aiostream";
     rev = "refs/tags/v${version}";
-    hash = "sha256-g2W2TtCh2ANPjeTdASVgEu+qKfz/Ugh1rDWJcFvOJpI=";
+    hash = "sha256-RJ+0o8w92GteMRPOIddCBQ4JApi5gXiwkJRNe9t2E7g=";
   };
 
   postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace " --cov aiostream --cov-report html --cov-report term" ""
+    substituteInPlace pyproject.toml \
+      --replace-fail " --cov aiostream" ""
   '';
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ typing-extensions ];
 
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aiostream"
-  ];
+  pythonImportsCheck = [ "aiostream" ];
 
   meta = with lib; {
     description = "Generator-based operators for asynchronous iteration";
diff --git a/pkgs/development/python-modules/aioswitcher/default.nix b/pkgs/development/python-modules/aioswitcher/default.nix
index 4534dcf09687d..cfdde67b22dd6 100644
--- a/pkgs/development/python-modules/aioswitcher/default.nix
+++ b/pkgs/development/python-modules/aioswitcher/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, assertpy
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytest-mockservers
-, pytest-resource-path
-, pytest-sugar
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, time-machine
+{
+  lib,
+  assertpy,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytest-mockservers,
+  pytest-resource-path,
+  pytest-sugar,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  time-machine,
 }:
 
 buildPythonPackage rec {
   pname = "aioswitcher";
-  version = "3.4.2";
+  version = "3.4.3";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -24,14 +25,12 @@ buildPythonPackage rec {
     owner = "TomerFi";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-UpwIzwOl1yKqK8KxFDXAWoZFkQ+1r1sUcDfx6AxRdNw=";
+    hash = "sha256-yKHSExtnO9m8Tc3BmCqV8tJs59ynKOqUmekaOatGRTc=";
   };
 
   __darwinAllowLocalNetworking = true;
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   preCheck = ''
     export TZ=Asia/Jerusalem
@@ -47,21 +46,21 @@ buildPythonPackage rec {
     time-machine
   ];
 
-  disabledTests = [
-    # AssertionError: Expected <14:00> to be equal to <17:00>, but was not.
-    "test_schedule_parser_with_a_weekly_recurring_enabled_schedule_data"
-    "test_schedule_parser_with_a_daily_recurring_enabled_schedule_data"
-    "test_schedule_parser_with_a_partial_daily_recurring_enabled_schedule_data"
-    "test_schedule_parser_with_a_non_recurring_enabled_schedule_data"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    # ssertionError: Expected <'I' format requires 0 <= number <= 4294967295> to be equal to <argument out of range>, but was not.
-    "test_minutes_to_hexadecimal_seconds_with_a_negative_value_should_throw_an_error"
-    "test_current_timestamp_to_hexadecimal_with_errornous_value_should_throw_an_error"
-  ];
+  disabledTests =
+    [
+      # AssertionError: Expected <14:00> to be equal to <17:00>, but was not.
+      "test_schedule_parser_with_a_weekly_recurring_enabled_schedule_data"
+      "test_schedule_parser_with_a_daily_recurring_enabled_schedule_data"
+      "test_schedule_parser_with_a_partial_daily_recurring_enabled_schedule_data"
+      "test_schedule_parser_with_a_non_recurring_enabled_schedule_data"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # ssertionError: Expected <'I' format requires 0 <= number <= 4294967295> to be equal to <argument out of range>, but was not.
+      "test_minutes_to_hexadecimal_seconds_with_a_negative_value_should_throw_an_error"
+      "test_current_timestamp_to_hexadecimal_with_errornous_value_should_throw_an_error"
+    ];
 
-  pythonImportsCheck = [
-    "aioswitcher"
-  ];
+  pythonImportsCheck = [ "aioswitcher" ];
 
   meta = with lib; {
     description = "Python module to interact with Switcher water heater";
diff --git a/pkgs/development/python-modules/aiosyncthing/default.nix b/pkgs/development/python-modules/aiosyncthing/default.nix
index fd9d02cb3a72a..59bc50e78e377 100644
--- a/pkgs/development/python-modules/aiosyncthing/default.nix
+++ b/pkgs/development/python-modules/aiosyncthing/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, expects
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
-, yarl
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  expects,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -35,9 +36,7 @@ buildPythonPackage rec {
     pytest-mock
   ];
 
-  pytestFlagsArray = [
-    "--asyncio-mode=auto"
-  ];
+  pytestFlagsArray = [ "--asyncio-mode=auto" ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
diff --git a/pkgs/development/python-modules/aiotankerkoenig/default.nix b/pkgs/development/python-modules/aiotankerkoenig/default.nix
index 5915fdd6beb15..a1a2fd2471712 100644
--- a/pkgs/development/python-modules/aiotankerkoenig/default.nix
+++ b/pkgs/development/python-modules/aiotankerkoenig/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, mashumaro
-, orjson
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, syrupy
-, yarl
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mashumaro,
+  orjson,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  syrupy,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
       --replace-fail "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -50,9 +49,7 @@ buildPythonPackage rec {
     syrupy
   ];
 
-  pythonImportsCheck = [
-    "aiotankerkoenig"
-  ];
+  pythonImportsCheck = [ "aiotankerkoenig" ];
 
   meta = with lib; {
     description = "Python module for interacting with tankerkoenig.de";
diff --git a/pkgs/development/python-modules/aiotractive/default.nix b/pkgs/development/python-modules/aiotractive/default.nix
index 4af4f9618784f..a299a349856d7 100644
--- a/pkgs/development/python-modules/aiotractive/default.nix
+++ b/pkgs/development/python-modules/aiotractive/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, yarl
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-fIdIFG1OpAN1R2L2RryTzYZyqGLo3tqAAkRC8UUFM4k=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aiotractive"
-  ];
+  pythonImportsCheck = [ "aiotractive" ];
 
   meta = with lib; {
     changelog = "https://github.com/zhulik/aiotractive/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/aiounifi/default.nix b/pkgs/development/python-modules/aiounifi/default.nix
index f4f150c820f82..41b58f12fbd33 100644
--- a/pkgs/development/python-modules/aiounifi/default.nix
+++ b/pkgs/development/python-modules/aiounifi/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "aiounifi";
-  version = "77";
+  version = "79";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "Kane610";
     repo = "aiounifi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-c3UR/AwnQLm6h1jsM6mk6MOii2/xQzFcrci+oG4BsDs=";
+    hash = "sha256-okyUjHWzm2LKyDSmE93qbc8XK4fMQMr9R0L/W7GSeUw=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/aiounittest/default.nix b/pkgs/development/python-modules/aiounittest/default.nix
index 1c97a430503a4..beae5db296abf 100644
--- a/pkgs/development/python-modules/aiounittest/default.nix
+++ b/pkgs/development/python-modules/aiounittest/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
-, setuptools
-, pynose
-, coverage
-, wrapt
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  setuptools,
+  pynose,
+  coverage,
+  wrapt,
 }:
 
 buildPythonPackage rec {
@@ -20,13 +21,9 @@ buildPythonPackage rec {
     hash = "sha256-7lDOI1SHPpRZLTHRTmfbKlZH18T73poJdFyVmb+HKms=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    wrapt
-  ];
+  propagatedBuildInputs = [ wrapt ];
 
   nativeCheckInputs = [
     pynose
diff --git a/pkgs/development/python-modules/aiovlc/default.nix b/pkgs/development/python-modules/aiovlc/default.nix
index 39607c9fdde51..d0e0e42f33fff 100644
--- a/pkgs/development/python-modules/aiovlc/default.nix
+++ b/pkgs/development/python-modules/aiovlc/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, pytest-asyncio
-, pytest-timeout
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytest-timeout,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
       " --cov=aiovlc --cov-report=term-missing:skip-covered" ""
   '';
 
-  propagatedBuildInputs = [
-    click
-  ];
+  propagatedBuildInputs = [ click ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -37,9 +36,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "aiovlc"
-  ];
+  pythonImportsCheck = [ "aiovlc" ];
 
   meta = with lib; {
     description = "Python module to control VLC";
diff --git a/pkgs/development/python-modules/aiowaqi/default.nix b/pkgs/development/python-modules/aiowaqi/default.nix
index 19e133e27cbd1..370b28cb6f761 100644
--- a/pkgs/development/python-modules/aiowaqi/default.nix
+++ b/pkgs/development/python-modules/aiowaqi/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, syrupy
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  syrupy,
+  yarl,
 }:
 
 buildPythonPackage rec {
   pname = "aiowaqi";
-  version = "3.0.1";
+  version = "3.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -22,19 +23,17 @@ buildPythonPackage rec {
     owner = "joostlek";
     repo = "python-waqi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+4l820FGQI66GGr+KGEeDmPUFwRrMNvYFJuSouesakY=";
+    hash = "sha256-YWTGEOSSkZ0XbZUE3k+Dn9qg8Pmwip9wCp8e/j1D9io=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "--cov" ""
+      --replace-fail "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     yarl
   ];
@@ -46,18 +45,14 @@ buildPythonPackage rec {
     syrupy
   ];
 
-  pythonImportsCheck = [
-    "aiowaqi"
-  ];
+  pythonImportsCheck = [ "aiowaqi" ];
 
   disabledTests = [
     # Upstream mocking fails
     "test_search"
   ];
 
-  pytestFlagsArray = [
-    "--snapshot-update"
-  ];
+  pytestFlagsArray = [ "--snapshot-update" ];
 
   meta = with lib; {
     description = "Module to interact with the WAQI API";
diff --git a/pkgs/development/python-modules/aiowatttime/default.nix b/pkgs/development/python-modules/aiowatttime/default.nix
index f20f7fe02ab13..9932f9f822206 100644
--- a/pkgs/development/python-modules/aiowatttime/default.nix
+++ b/pkgs/development/python-modules/aiowatttime/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, certifi
-, fetchFromGitHub
-, poetry-core
-, pytest-aiohttp
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  certifi,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
   pname = "aiowatttime";
-  version = "2023.12.0";
+  version = "2024.06.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.10";
@@ -23,12 +24,10 @@ buildPythonPackage rec {
     owner = "bachya";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-sodgFveVE2Z894z36AzXF6c3iI4UhaqMJK+H6CjsvGA=";
+    hash = "sha256-c5L+Nx+CoWEc6Bs61GOHPBelExe5I7EOlMQ+QV6nktI=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
diff --git a/pkgs/development/python-modules/aiowebostv/default.nix b/pkgs/development/python-modules/aiowebostv/default.nix
index e264710e0c47f..2e3ee99d5ab3a 100644
--- a/pkgs/development/python-modules/aiowebostv/default.nix
+++ b/pkgs/development/python-modules/aiowebostv/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, websockets
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  websockets,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-VUznW+rMCZF1LbrQmEaOgdcX3YCm6Tf7yWlB8KNrjxU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    websockets
-  ];
+  propagatedBuildInputs = [ websockets ];
 
   # Module doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aiowebostv"
-  ];
+  pythonImportsCheck = [ "aiowebostv" ];
 
   meta = with lib; {
     description = "Module to interact with LG webOS based TV devices";
diff --git a/pkgs/development/python-modules/aioweenect/default.nix b/pkgs/development/python-modules/aioweenect/default.nix
index a55c1ad650462..43083f319ba17 100644
--- a/pkgs/development/python-modules/aioweenect/default.nix
+++ b/pkgs/development/python-modules/aioweenect/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +29,9 @@ buildPythonPackage rec {
       --replace "--cov --cov-report term-missing --cov-report xml --cov=aioweenect tests" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   nativeCheckInputs = [
     aresponses
@@ -42,10 +39,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-
-  pythonImportsCheck = [
-    "aioweenect"
-  ];
+  pythonImportsCheck = [ "aioweenect" ];
 
   meta = with lib; {
     description = "Library for the weenect API";
diff --git a/pkgs/development/python-modules/aiowithings/default.nix b/pkgs/development/python-modules/aiowithings/default.nix
index 46dfafb2ad752..fe46582dbf299 100644
--- a/pkgs/development/python-modules/aiowithings/default.nix
+++ b/pkgs/development/python-modules/aiowithings/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, syrupy
-, yarl
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  syrupy,
+  yarl,
 }:
 
 buildPythonPackage rec {
   pname = "aiowithings";
-  version = "2.1.0";
+  version = "3.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -22,7 +23,7 @@ buildPythonPackage rec {
     owner = "joostlek";
     repo = "python-withings";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+pIIVCR+QsW9M3pH9Ss3dMvkeKM1OdhQ1y+s/T6pHtk=";
+    hash = "sha256-Crc+OpkkRKHgrszXNuV2Q83IusOXt9y4IVTSz/w7l/Y=";
   };
 
   postPatch = ''
@@ -30,9 +31,7 @@ buildPythonPackage rec {
       --replace "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -46,9 +45,7 @@ buildPythonPackage rec {
     syrupy
   ];
 
-  pythonImportsCheck = [
-    "aiowithings"
-  ];
+  pythonImportsCheck = [ "aiowithings" ];
 
   meta = with lib; {
     description = "Module to interact with Withings";
diff --git a/pkgs/development/python-modules/aioxmpp/default.nix b/pkgs/development/python-modules/aioxmpp/default.nix
index 6c7660f9f3e14..e753cb6c63dcf 100644
--- a/pkgs/development/python-modules/aioxmpp/default.nix
+++ b/pkgs/development/python-modules/aioxmpp/default.nix
@@ -1,26 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, aiosasl
-, aioopenssl
-, babel
-, dnspython
-, lxml
-, multidict
-, pyasn1
-, pyasn1-modules
-, pyopenssl
-, pytz
-, sortedcollections
-, tzlocal
-, pytestCheckHook
+{
+  lib,
+  aioopenssl,
+  aiosasl,
+  babel,
+  buildPythonPackage,
+  dnspython,
+  fetchFromGitHub,
+  lxml,
+  multidict,
+  pyasn1-modules,
+  pyasn1,
+  pyopenssl,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  pytz,
+  setuptools,
+  sortedcollections,
+  tzlocal,
 }:
 
 buildPythonPackage rec {
   pname = "aioxmpp";
   version = "0.13.3";
+  pyproject = true;
 
-  format = "setuptools";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "horazont";
@@ -29,7 +34,14 @@ buildPythonPackage rec {
     hash = "sha256-bQPKEM5eKhFI3Kx3U1espdxqjnG4yUgOXmYCrd98PDo=";
   };
 
-  propagatedBuildInputs = [
+  pythonRelaxDeps = [
+    "lxml"
+  ];
+
+  build-system = [ setuptools ];
+
+
+  dependencies = [
     aiosasl
     aioopenssl
     babel
@@ -52,23 +64,30 @@ buildPythonPackage rec {
     "aioxmpp.stream"
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTestPaths = [
-    "benchmarks"
-  ];
+  disabledTestPaths = [ "benchmarks" ];
 
   disabledTests = [
     # AttributeError: 'zoneinfo.ZoneInfo' object has no attribute 'normalize'
     "test_convert_field_datetime_default_locale"
+  ] ++ lib.optionals (pythonAtLeast "3.12") [
+    # asyncio issues
+    "test_is_abstract"
+    "Testbackground"
+    "TestCapturingXSO"
+    "Testcheck_x509"
+    "TestClient"
+    "TestIntegerType"
+    "TestStanzaStream"
+    "TestStanzaToken"
+    "TestXMLStream"
   ];
 
   meta = {
-    changelog = "https://github.com/horazont/aioxmpp/blob/${src.rev}/docs/api/changelog.rst";
     description = "Pure-python XMPP library for asyncio";
     homepage = "https://github.com/horazont/aioxmpp";
+    changelog = "https://github.com/horazont/aioxmpp/blob/${src.rev}/docs/api/changelog.rst";
     license = lib.licenses.lgpl3Plus;
     maintainers = with lib.maintainers; [ dotlambda ];
   };
diff --git a/pkgs/development/python-modules/aioymaps/default.nix b/pkgs/development/python-modules/aioymaps/default.nix
index aea81caca7540..1bb817406af84 100644
--- a/pkgs/development/python-modules/aioymaps/default.nix
+++ b/pkgs/development/python-modules/aioymaps/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-pW8FoMdA8XdQZmLRwk5SBBgFhYhgEMJPA9+b+8aicuE=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/aiozoneinfo/default.nix b/pkgs/development/python-modules/aiozoneinfo/default.nix
new file mode 100644
index 0000000000000..6329676378181
--- /dev/null
+++ b/pkgs/development/python-modules/aiozoneinfo/default.nix
@@ -0,0 +1,49 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  tzdata,
+}:
+
+buildPythonPackage rec {
+  pname = "aiozoneinfo";
+  version = "0.2.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "bluetooth-devices";
+    repo = "aiozoneinfo";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-VpdghF2rXoA94YfMSNaICa3yfRRRiQueVrLk1K4igdk=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "--cov=aiozoneinfo --cov-report=term-missing:skip-covered" ""
+  '';
+
+  build-system = [ poetry-core ];
+
+  dependencies = [ tzdata ];
+
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "aiozoneinfo" ];
+
+  meta = with lib; {
+    description = "Tools to fetch zoneinfo with asyncio";
+    homepage = "https://github.com/bluetooth-devices/aiozoneinfo";
+    changelog = "https://github.com/bluetooth-devices/aiozoneinfo/blob/${version}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/airium/default.nix b/pkgs/development/python-modules/airium/default.nix
index b61cd573fb4bc..c433c00667713 100644
--- a/pkgs/development/python-modules/airium/default.nix
+++ b/pkgs/development/python-modules/airium/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitLab
-, setuptools
-, pytestCheckHook
-, beautifulsoup4
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitLab,
+  setuptools,
+  pytestCheckHook,
+  beautifulsoup4,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-qAU+rmj2ZHw7KdxVvRyponcPiRcyENfDyW1y9JTiwsY=";
   };
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  propagatedBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/airly/default.nix b/pkgs/development/python-modules/airly/default.nix
index 7153890494e2c..c9e3d2726e367 100644
--- a/pkgs/development/python-modules/airly/default.nix
+++ b/pkgs/development/python-modules/airly/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, aioresponses
-, aiounittest
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  aiounittest,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/airthings-ble/default.nix b/pkgs/development/python-modules/airthings-ble/default.nix
index 9fc7d0e68049d..9e84b10802f92 100644
--- a/pkgs/development/python-modules/airthings-ble/default.nix
+++ b/pkgs/development/python-modules/airthings-ble/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "airthings-ble";
-  version = "0.8.0";
+  version = "0.9.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "vincegio";
     repo = "airthings-ble";
     rev = "refs/tags/${version}";
-    hash = "sha256-BgjfvKrVpw/cP93JCloZKq+PIyS/w7/v6+obfgDT64A=";
+    hash = "sha256-920Vgk8kY5NsjYrOGYoRtcdHl4KKO7ytieH8cJ0S3RE=";
   };
 
   postPatch = ''
@@ -45,7 +45,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Library for Airthings BLE devices";
     homepage = "https://github.com/vincegio/airthings-ble";
-    changelog = "https://github.com/vincegio/airthings-ble/releases/tag/v${version}";
+    changelog = "https://github.com/vincegio/airthings-ble/releases/tag/${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/airthings-cloud/default.nix b/pkgs/development/python-modules/airthings-cloud/default.nix
index fb8b20965a315..6016d1921cc60 100644
--- a/pkgs/development/python-modules/airthings-cloud/default.nix
+++ b/pkgs/development/python-modules/airthings-cloud/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "airthings"
-  ];
+  pythonImportsCheck = [ "airthings" ];
 
   meta = with lib; {
     description = "Python module for Airthings";
diff --git a/pkgs/development/python-modules/airtouch4pyapi/default.nix b/pkgs/development/python-modules/airtouch4pyapi/default.nix
index de19c59653644..4fd3df8885b9a 100644
--- a/pkgs/development/python-modules/airtouch4pyapi/default.nix
+++ b/pkgs/development/python-modules/airtouch4pyapi/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-RiRwebumidn0nijL/e9J74ZYx0DASi1up5BTNxYoGEA=";
   };
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/airtouch5py/default.nix b/pkgs/development/python-modules/airtouch5py/default.nix
index f474e23457863..3665bb159a104 100644
--- a/pkgs/development/python-modules/airtouch5py/default.nix
+++ b/pkgs/development/python-modules/airtouch5py/default.nix
@@ -6,7 +6,6 @@
 
   # build-system
   poetry-core,
-  pythonRelaxDepsHook,
 
   # dependencies
   bitarray,
@@ -31,7 +30,6 @@ buildPythonPackage rec {
   };
 
   build-system = [ poetry-core ];
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
   pythonRelaxDeps = [ "crc" ];
 
   dependencies = [
diff --git a/pkgs/development/python-modules/ajpy/default.nix b/pkgs/development/python-modules/ajpy/default.nix
index 6ae4a11322f97..e8db62267dbe0 100644
--- a/pkgs/development/python-modules/ajpy/default.nix
+++ b/pkgs/development/python-modules/ajpy/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "ajpy";
diff --git a/pkgs/development/python-modules/alabaster/default.nix b/pkgs/development/python-modules/alabaster/default.nix
index b2b77a34c8810..5c935659ca08b 100644
--- a/pkgs/development/python-modules/alabaster/default.nix
+++ b/pkgs/development/python-modules/alabaster/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, pygments
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  pygments,
 }:
 
 buildPythonPackage rec {
@@ -24,7 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/bitprophet/alabaster";
-    description = "A Sphinx theme";
+    description = "Sphinx theme";
     license = licenses.bsd3;
   };
 }
diff --git a/pkgs/development/python-modules/aladdin-connect/default.nix b/pkgs/development/python-modules/aladdin-connect/default.nix
index 3ca8016cd7657..ebf54ec2abc4d 100644
--- a/pkgs/development/python-modules/aladdin-connect/default.nix
+++ b/pkgs/development/python-modules/aladdin-connect/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, requests
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  requests,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-kLvMpSGa5WyDOH3ejAJyFGsB9IiMXp+nvVxM/ZkxyFw=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aladdin_connect"
-  ];
+  pythonImportsCheck = [ "aladdin_connect" ];
 
   meta = with lib; {
     description = "Python library for interacting with Genie Aladdin Connect devices";
diff --git a/pkgs/development/python-modules/alarmdecoder/default.nix b/pkgs/development/python-modules/alarmdecoder/default.nix
index 3573990876a2f..4109ce7d1d9f4 100644
--- a/pkgs/development/python-modules/alarmdecoder/default.nix
+++ b/pkgs/development/python-modules/alarmdecoder/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pyftdi
-, pyopenssl
-, pyserial
-, pytestCheckHook
-, pythonOlder
-, pyusb
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pyftdi,
+  pyopenssl,
+  pyserial,
+  pytestCheckHook,
+  pythonOlder,
+  pyusb,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/albumentations/default.nix b/pkgs/development/python-modules/albumentations/default.nix
index 1de36e510197b..6651771f5ca52 100644
--- a/pkgs/development/python-modules/albumentations/default.nix
+++ b/pkgs/development/python-modules/albumentations/default.nix
@@ -1,52 +1,54 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, numpy
-, opencv4
-, pyyaml
-, qudida
-, scikit-image
-, scipy
-, deepdiff
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, torch
-, torchvision
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  deepdiff,
+  numpy,
+  opencv4,
+  pyyaml,
+  scikit-image,
+  scikit-learn,
+  scipy,
+  pydantic,
+  pytestCheckHook,
+  pythonOlder,
+  torch,
+  torchvision,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "albumentations";
-  version = "1.4.4";
+  version = "1.4.9";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-VNpClOBdoaQOqU92Mm/Z5Q7P+fZzR+m43SFA9pSi1M0=";
+  src = fetchFromGitHub {
+    owner = "albumentations-team";
+    repo = "albumentations";
+    rev = "refs/tags/${version}";
+    hash = "sha256-tzalxhn61hYI6lN1wXwOd1EhTPx/9Fk8pTn/+zx188Y=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   pythonRemoveDeps = [
     "opencv-python"
+    "pydantic"
   ];
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     numpy
     opencv4
+    pydantic
     pyyaml
-    qudida
     scikit-image
+    scikit-learn
     scipy
+    typing-extensions
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/ale-py/default.nix b/pkgs/development/python-modules/ale-py/default.nix
index 9ff15479551e3..14c3e7b939a6e 100644
--- a/pkgs/development/python-modules/ale-py/default.nix
+++ b/pkgs/development/python-modules/ale-py/default.nix
@@ -1,98 +1,88 @@
-{ buildPythonPackage
-, SDL2
-, cmake
-, fetchFromGitHub
-, fetchpatch
-, gym
-, importlib-metadata
-, importlib-resources
-, lib
-, ninja
-, numpy
-, pybind11
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, stdenv
-, typing-extensions
-, wheel
-, zlib
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  cmake,
+  ninja,
+  pybind11,
+  setuptools,
+  wheel,
+  SDL2,
+  zlib,
+  importlib-resources,
+  numpy,
+  typing-extensions,
+  importlib-metadata,
+  gymnasium,
+  pytestCheckHook,
+  stdenv,
 }:
 
 buildPythonPackage rec {
   pname = "ale-py";
-  version = "0.8.1";
+  version = "0.9.0";
   pyproject = true;
 
+  disabled = pythonOlder "3.8";
+
   src = fetchFromGitHub {
     owner = "Farama-Foundation";
     repo = "Arcade-Learning-Environment";
     rev = "refs/tags/v${version}";
-    hash = "sha256-B2AxhlzvBy1lJ3JttJjImgTjMtEUyZBv+xHU2IC7BVE=";
+    hash = "sha256-obZfNQ0+ppnq/BD4IFeMFAqJnCVV3X/2HeRwbdSKRFk=";
   };
 
   patches = [
     # don't download pybind11, use local pybind11
     ./cmake-pybind11.patch
-    ./patch-sha-check-in-setup.patch
-
-    # The following two patches add the required `include <cstdint>` for compilation to work with GCC 13.
-    # See https://github.com/Farama-Foundation/Arcade-Learning-Environment/pull/503
-    (fetchpatch {
-      name = "fix-gcc13-compilation-1";
-      url = "https://github.com/Farama-Foundation/Arcade-Learning-Environment/commit/ebd64c03cdaa3d8df7da7c62ec3ae5795105e27a.patch";
-      hash = "sha256-NMz0hw8USOj88WryHRkMQNWznnP6+5aWovEYNuocQ2c=";
-    })
-    (fetchpatch {
-      name = "fix-gcc13-compilation-2";
-      url = "https://github.com/Farama-Foundation/Arcade-Learning-Environment/commit/4c99c7034f17810f3ff6c27436bfc3b40d08da21.patch";
-      hash = "sha256-66/bDCyMr1RsKk63T9GnFZGloLlkdr/bf5WHtWbX6VY=";
-    })
   ];
 
-  nativeBuildInputs = [
+  build-system = [
     cmake
     ninja
+    pybind11
     setuptools
     wheel
-    pybind11
   ];
 
   buildInputs = [
-    zlib
     SDL2
+    zlib
   ];
 
-  propagatedBuildInputs = [
-    typing-extensions
+  dependencies = [
     importlib-resources
     numpy
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
-
-  nativeCheckInputs = [
-    pytestCheckHook
-    gym
-  ];
+    typing-extensions
+  ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace 'dynamic = ["version"]' 'version = "${version}"'
-    substituteInPlace setup.py \
-      --replace '@sha@' '"${version}"'
+      --replace-fail 'dynamic = ["version"]' 'version = "${version}"'
   '';
 
   dontUseCmakeConfigure = true;
 
   pythonImportsCheck = [ "ale_py" ];
 
-  meta = with lib; {
-    description = "a simple framework that allows researchers and hobbyists to develop AI agents for Atari 2600 games";
+  nativeCheckInputs = [
+    gymnasium
+    pytestCheckHook
+  ];
+
+  # test_atari_env.py::test_check_env fails on the majority of the environments because the ROM are missing.
+  # The user is expected to manually download the roms:
+  # https://github.com/Farama-Foundation/Arcade-Learning-Environment/blob/v0.9.0/docs/faq.md#i-downloaded-ale-and-i-installed-it-successfully-but-i-cannot-find-any-rom-file-at-roms-do-i-have-to-get-them-somewhere-else
+  disabledTests = [ "test_check_env" ];
+
+  meta = {
+    description = "Simple framework that allows researchers and hobbyists to develop AI agents for Atari 2600 games";
     mainProgram = "ale-import-roms";
     homepage = "https://github.com/mgbellemare/Arcade-Learning-Environment";
-    license = licenses.gpl2;
-    maintainers = with maintainers; [ billhuang ];
+    changelog = "https://github.com/Farama-Foundation/Arcade-Learning-Environment/releases/tag/v${version}";
+    license = lib.licenses.gpl2;
+    maintainers = with lib.maintainers; [ billhuang ];
     broken = stdenv.isDarwin; # fails to link with missing library
   };
 }
diff --git a/pkgs/development/python-modules/ale-py/patch-sha-check-in-setup.patch b/pkgs/development/python-modules/ale-py/patch-sha-check-in-setup.patch
deleted file mode 100644
index f387346ded379..0000000000000
--- a/pkgs/development/python-modules/ale-py/patch-sha-check-in-setup.patch
+++ /dev/null
@@ -1,17 +0,0 @@
-diff --git a/setup.py b/setup.py
-index ff1b1c5..ce40df0 100644
---- a/setup.py
-+++ b/setup.py
-@@ -141,11 +141,7 @@ def parse_version(version_file):
- 
-         version = ci_version
-     else:
--        sha = (
--            subprocess.check_output(["git", "rev-parse", "--short", "HEAD"], cwd=here)
--            .decode("ascii")
--            .strip()
--        )
-+        sha = @sha@
-         version += f"+{sha}"
- 
-     return version
diff --git a/pkgs/development/python-modules/alectryon/default.nix b/pkgs/development/python-modules/alectryon/default.nix
index 423aedb942371..6f048b0412300 100644
--- a/pkgs/development/python-modules/alectryon/default.nix
+++ b/pkgs/development/python-modules/alectryon/default.nix
@@ -1,5 +1,13 @@
-{ lib, buildPythonPackage, fetchPypi
-, pygments, dominate, beautifulsoup4, docutils, sphinx }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pygments,
+  dominate,
+  beautifulsoup4,
+  docutils,
+  sphinx,
+}:
 
 buildPythonPackage rec {
   pname = "alectryon";
@@ -23,7 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/cpitclaudel/alectryon";
-    description = "A collection of tools for writing technical documents that mix Coq code and prose";
+    description = "Collection of tools for writing technical documents that mix Coq code and prose";
     mainProgram = "alectryon";
     license = licenses.mit;
     maintainers = with maintainers; [ Zimmi48 ];
diff --git a/pkgs/development/python-modules/alembic/default.nix b/pkgs/development/python-modules/alembic/default.nix
index cd7b0696afd43..039f03baacfbb 100644
--- a/pkgs/development/python-modules/alembic/default.nix
+++ b/pkgs/development/python-modules/alembic/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-
-# build-system
-, setuptools
-
-# dependencies
-, importlib-metadata
-, importlib-resources
-, mako
-, sqlalchemy
-, typing-extensions
-
-# tests
-, pytest7CheckHook
-, pytest-xdist
-, python-dateutil
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  importlib-metadata,
+  importlib-resources,
+  mako,
+  sqlalchemy,
+  typing-extensions,
+
+  # tests
+  pytest7CheckHook,
+  pytest-xdist,
+  python-dateutil,
 }:
 
 buildPythonPackage rec {
   pname = "alembic";
   version = "1.13.1";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -31,22 +32,20 @@ buildPythonPackage rec {
     hash = "sha256-STLIVYv2jy7pK5u8uCGGccYnBk1bCJOUN69td9wF5ZU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    mako
-    sqlalchemy
-    typing-extensions
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    importlib-resources
-    importlib-metadata
-  ];
+  dependencies =
+    [
+      mako
+      sqlalchemy
+      typing-extensions
+    ]
+    ++ lib.optionals (pythonOlder "3.9") [
+      importlib-resources
+      importlib-metadata
+    ];
 
-  pythonImportsCheck = [
-    "alembic"
-  ];
+  pythonImportsCheck = [ "alembic" ];
 
   nativeCheckInputs = [
     pytest7CheckHook
@@ -56,7 +55,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://bitbucket.org/zzzeek/alembic";
-    description = "A database migration tool for SQLAlchemy";
+    description = "Database migration tool for SQLAlchemy";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
     mainProgram = "alembic";
diff --git a/pkgs/development/python-modules/alexapy/default.nix b/pkgs/development/python-modules/alexapy/default.nix
index 2ab2d26123652..af10ae03468e8 100644
--- a/pkgs/development/python-modules/alexapy/default.nix
+++ b/pkgs/development/python-modules/alexapy/default.nix
@@ -1,20 +1,20 @@
-{ lib
-, aiofiles
-, aiohttp
-, authcaptureproxy
-, backoff
-, beautifulsoup4
-, buildPythonPackage
-, certifi
-, cryptography
-, fetchFromGitLab
-, poetry-core
-, pyotp
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
-, simplejson
-, yarl
+{
+  lib,
+  aiofiles,
+  aiohttp,
+  authcaptureproxy,
+  backoff,
+  beautifulsoup4,
+  buildPythonPackage,
+  certifi,
+  cryptography,
+  fetchFromGitLab,
+  poetry-core,
+  pyotp,
+  pythonOlder,
+  requests,
+  simplejson,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -31,13 +31,10 @@ buildPythonPackage rec {
     hash = "sha256-eoL7q+p0m3YZd7Ub7U8nE3tQGNA2oQXelvN+H01b0BM=";
   };
 
-  pythonRelaxDeps = [
-    "aiofiles"
-  ];
+  pythonRelaxDeps = [ "aiofiles" ];
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -54,9 +51,7 @@ buildPythonPackage rec {
     yarl
   ];
 
-  pythonImportsCheck = [
-    "alexapy"
-  ];
+  pythonImportsCheck = [ "alexapy" ];
 
   # Module has no tests (only a websocket test which seems unrelated to the module)
   doCheck = false;
diff --git a/pkgs/development/python-modules/algebraic-data-types/default.nix b/pkgs/development/python-modules/algebraic-data-types/default.nix
index 9c19470fbddc9..e247c3b3f0188 100644
--- a/pkgs/development/python-modules/algebraic-data-types/default.nix
+++ b/pkgs/development/python-modules/algebraic-data-types/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, hypothesis
-, mypy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  hypothesis,
+  mypy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     "tests/test_mypy_plugin.py"
   ];
 
-  pythonImportsCheck = [
-    "adt"
-  ];
+  pythonImportsCheck = [ "adt" ];
 
   meta = with lib; {
     description = "Algebraic data types for Python";
diff --git a/pkgs/development/python-modules/alive-progress/default.nix b/pkgs/development/python-modules/alive-progress/default.nix
index 58ccedd26d6c0..8f24c6c86dd49 100644
--- a/pkgs/development/python-modules/alive-progress/default.nix
+++ b/pkgs/development/python-modules/alive-progress/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, about-time
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, grapheme
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  about-time,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  grapheme,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-yJhl0QrMHET9ISDc/D5AEQ7dTJkmcV2SWqy/xmG18uY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     about-time
@@ -37,12 +36,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "alive_progress"
-  ];
+  pythonImportsCheck = [ "alive_progress" ];
 
   meta = with lib; {
-    description = "A new kind of Progress Bar, with real-time throughput, ETA, and very cool animations";
+    description = "New kind of Progress Bar, with real-time throughput, ETA, and very cool animations";
     homepage = "https://github.com/rsalmei/alive-progress";
     changelog = "https://github.com/rsalmei/alive-progress/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/aliyun-python-sdk-cdn/default.nix b/pkgs/development/python-modules/aliyun-python-sdk-cdn/default.nix
index 3f29826f0a34e..646742cafd40f 100644
--- a/pkgs/development/python-modules/aliyun-python-sdk-cdn/default.nix
+++ b/pkgs/development/python-modules/aliyun-python-sdk-cdn/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aliyun-python-sdk-core
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  aliyun-python-sdk-core,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-LMCNvjV85TvdSM0OXean4dPzAiV8apVdRLTvUISOKec=";
   };
 
-  propagatedBuildInputs = [
-    aliyun-python-sdk-core
-  ];
+  propagatedBuildInputs = [ aliyun-python-sdk-core ];
 
   # All components are stored in a mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aliyunsdkcdn"
-  ];
+  pythonImportsCheck = [ "aliyunsdkcdn" ];
 
   meta = with lib; {
     description = "CDN module of Aliyun Python SDK";
diff --git a/pkgs/development/python-modules/aliyun-python-sdk-config/default.nix b/pkgs/development/python-modules/aliyun-python-sdk-config/default.nix
index 5801e6a5ee14a..e9d398de7a188 100644
--- a/pkgs/development/python-modules/aliyun-python-sdk-config/default.nix
+++ b/pkgs/development/python-modules/aliyun-python-sdk-config/default.nix
@@ -1,32 +1,29 @@
-{ lib
-, aliyun-python-sdk-core
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  aliyun-python-sdk-core,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "aliyun-python-sdk-config";
-  version = "2.2.12";
+  version = "2.2.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-blrT/yCQ2vxaociSqKvRX3fUyKLsAFT3UyFGB/AzZHI=";
+    hash = "sha256-w4YJe3Bngg4A2KVlpIqf80FHhscLMMMk0AVkr/NfbPM=";
   };
 
-  propagatedBuildInputs = [
-    aliyun-python-sdk-core
-  ];
+  propagatedBuildInputs = [ aliyun-python-sdk-core ];
 
   # All components are stored in a mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aliyunsdkconfig"
-  ];
+  pythonImportsCheck = [ "aliyunsdkconfig" ];
 
   meta = with lib; {
     description = "Configuration module of Aliyun Python SDK";
diff --git a/pkgs/development/python-modules/aliyun-python-sdk-core/default.nix b/pkgs/development/python-modules/aliyun-python-sdk-core/default.nix
index 57323e4b189d5..b722dac05fc88 100644
--- a/pkgs/development/python-modules/aliyun-python-sdk-core/default.nix
+++ b/pkgs/development/python-modules/aliyun-python-sdk-core/default.nix
@@ -5,7 +5,6 @@
   fetchPypi,
   jmespath,
   pythonOlder,
-  pythonRelaxDepsHook,
   setuptools,
 }:
 
@@ -25,7 +24,6 @@ buildPythonPackage rec {
 
   build-system = [ setuptools ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     cryptography
diff --git a/pkgs/development/python-modules/aliyun-python-sdk-dbfs/default.nix b/pkgs/development/python-modules/aliyun-python-sdk-dbfs/default.nix
index 1dc10a140cc14..a627ccce23b9a 100644
--- a/pkgs/development/python-modules/aliyun-python-sdk-dbfs/default.nix
+++ b/pkgs/development/python-modules/aliyun-python-sdk-dbfs/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aliyun-python-sdk-core
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  aliyun-python-sdk-core,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-Kj6DfnXZq5ilE+vnZrAoZEhPDoNrMIs5p2OcBc24qXM=";
   };
 
-  propagatedBuildInputs = [
-    aliyun-python-sdk-core
-  ];
+  propagatedBuildInputs = [ aliyun-python-sdk-core ];
 
   # All components are stored in a mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aliyunsdkdbfs"
-  ];
+  pythonImportsCheck = [ "aliyunsdkdbfs" ];
 
   meta = with lib; {
     description = "DBFS module of Aliyun Python SDK";
diff --git a/pkgs/development/python-modules/aliyun-python-sdk-iot/default.nix b/pkgs/development/python-modules/aliyun-python-sdk-iot/default.nix
index 2f08429d54d78..a2fa3bcc3c313 100644
--- a/pkgs/development/python-modules/aliyun-python-sdk-iot/default.nix
+++ b/pkgs/development/python-modules/aliyun-python-sdk-iot/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aliyun-python-sdk-core
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  aliyun-python-sdk-core,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-v0jTMKtYrbEBVjHQokpWSlcJBALZFsuoYHq8wCP8w1E=";
   };
 
-  propagatedBuildInputs = [
-    aliyun-python-sdk-core
-  ];
+  propagatedBuildInputs = [ aliyun-python-sdk-core ];
 
   # All components are stored in a mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aliyunsdkiot"
-  ];
+  pythonImportsCheck = [ "aliyunsdkiot" ];
 
   meta = with lib; {
     description = "IoT module of Aliyun Python SDK";
diff --git a/pkgs/development/python-modules/aliyun-python-sdk-kms/default.nix b/pkgs/development/python-modules/aliyun-python-sdk-kms/default.nix
index 55288c2b6d2ab..7364654c83220 100644
--- a/pkgs/development/python-modules/aliyun-python-sdk-kms/default.nix
+++ b/pkgs/development/python-modules/aliyun-python-sdk-kms/default.nix
@@ -1,32 +1,32 @@
-{ lib
-, aliyun-python-sdk-core
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  aliyun-python-sdk-core,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "aliyun-python-sdk-kms";
-  version = "2.16.2";
-  format = "setuptools";
+  version = "2.16.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+HI0qLZNRXyiM4+HZQ2xijzn99vJv+9x7+jyiUre09Y=";
+    hash = "sha256-wxt9JOFTJxowQ+gB57a2s/DbR+lag8jRDNq4wRZi/Dk=";
   };
 
-  propagatedBuildInputs = [
-    aliyun-python-sdk-core
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ aliyun-python-sdk-core ];
 
   # All components are stored in a mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aliyunsdkkms"
-  ];
+  pythonImportsCheck = [ "aliyunsdkkms" ];
 
   meta = with lib; {
     description = "KMS module of Aliyun Python SDK";
diff --git a/pkgs/development/python-modules/aliyun-python-sdk-sts/default.nix b/pkgs/development/python-modules/aliyun-python-sdk-sts/default.nix
index 8de6117167482..0f913ff8412a1 100644
--- a/pkgs/development/python-modules/aliyun-python-sdk-sts/default.nix
+++ b/pkgs/development/python-modules/aliyun-python-sdk-sts/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aliyun-python-sdk-core
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  aliyun-python-sdk-core,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-GLzieAX0j/aEKeKj37PtBQJy3c2zWgy1no7/lXiYSU0=";
   };
 
-  propagatedBuildInputs = [
-    aliyun-python-sdk-core
-  ];
+  propagatedBuildInputs = [ aliyun-python-sdk-core ];
 
   # All components are stored in a mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aliyunsdksts"
-  ];
+  pythonImportsCheck = [ "aliyunsdksts" ];
 
   meta = with lib; {
     description = "STS module of Aliyun Python SDK";
diff --git a/pkgs/development/python-modules/allpairspy/default.nix b/pkgs/development/python-modules/allpairspy/default.nix
index 31bc1229e2ba7..4ee847df38f61 100644
--- a/pkgs/development/python-modules/allpairspy/default.nix
+++ b/pkgs/development/python-modules/allpairspy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,17 +18,11 @@ buildPythonPackage rec {
     hash = "sha256-0wzoQDHB7Tt80ZTlKrNxFutztsgUuin5D2eb80c4PBI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "allpairspy"
-  ];
+  pythonImportsCheck = [ "allpairspy" ];
 
   meta = with lib; {
     description = "Pairwise test combinations generator";
diff --git a/pkgs/development/python-modules/allure-behave/default.nix b/pkgs/development/python-modules/allure-behave/default.nix
index ef9e8fc2bf208..4b80c97c8777d 100644
--- a/pkgs/development/python-modules/allure-behave/default.nix
+++ b/pkgs/development/python-modules/allure-behave/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, behave
-, allure-python-commons
-, setuptools-scm
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  behave,
+  allure-python-commons,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-M4yizHOV0e491y9dfZLYkg8a3g4H3evGN7OOYeBtyNw=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   pythonImportsCheck = [ "allure_behave" ];
 
@@ -31,7 +30,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Allure behave integration.";
+    description = "Allure behave integration";
     homepage = "https://github.com/allure-framework/allure-python";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/development/python-modules/allure-pytest/default.nix b/pkgs/development/python-modules/allure-pytest/default.nix
index 504f118bc3a76..88fc7054f1e61 100644
--- a/pkgs/development/python-modules/allure-pytest/default.nix
+++ b/pkgs/development/python-modules/allure-pytest/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, allure-python-commons
-, buildPythonPackage
-, fetchPypi
-, pytest
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  allure-python-commons,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -19,24 +20,16 @@ buildPythonPackage rec {
     hash = "sha256-DvjheQxEqYjba4PE1PXpFFHixMjqEGAd+ohSjSOvz24=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    allure-python-commons
-  ];
+  propagatedBuildInputs = [ allure-python-commons ];
 
   # Tests were moved to the meta package
   doCheck = false;
 
-  pythonImportsCheck = [
-    "allure_pytest"
-  ];
+  pythonImportsCheck = [ "allure_pytest" ];
 
   meta = with lib; {
     description = "Allure integrations for Python test frameworks";
diff --git a/pkgs/development/python-modules/allure-python-commons-test/default.nix b/pkgs/development/python-modules/allure-python-commons-test/default.nix
index da1d4a3dca4ca..5a4f5049d9cc9 100644
--- a/pkgs/development/python-modules/allure-python-commons-test/default.nix
+++ b/pkgs/development/python-modules/allure-python-commons-test/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, attrs
-, pluggy
-, six
-, pyhamcrest
-, setuptools-scm
-, python
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  attrs,
+  pluggy,
+  six,
+  pyhamcrest,
+  setuptools-scm,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -15,18 +15,19 @@ buildPythonPackage rec {
   version = "2.13.5";
   format = "setuptools";
 
-  disabled = pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-pWkLVfBrLEhdhuTE95K3aqrhEY2wEyo5uRzuJC3ngjE=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [ attrs pluggy six pyhamcrest ];
+  propagatedBuildInputs = [
+    attrs
+    pluggy
+    six
+    pyhamcrest
+  ];
 
   checkPhase = ''
     ${python.interpreter} -m doctest ./src/container.py
diff --git a/pkgs/development/python-modules/allure-python-commons/default.nix b/pkgs/development/python-modules/allure-python-commons/default.nix
index c63466ce8e25c..30881b90f3fdb 100644
--- a/pkgs/development/python-modules/allure-python-commons/default.nix
+++ b/pkgs/development/python-modules/allure-python-commons/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, attrs
-, pluggy
-, six
-, allure-python-commons-test
-, setuptools-scm
-, python
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  attrs,
+  pluggy,
+  six,
+  allure-python-commons-test,
+  setuptools-scm,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -22,18 +23,24 @@ buildPythonPackage rec {
     hash = "sha256-ojLnlVgR+Yjkmkwd1sFszn6bgdDqBCKx5WVNMlTiyvM=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [ attrs pluggy six allure-python-commons-test ];
+  propagatedBuildInputs = [
+    attrs
+    pluggy
+    six
+    allure-python-commons-test
+  ];
 
   checkPhase = ''
     ${python.interpreter} -m doctest ./src/utils.py
     ${python.interpreter} -m doctest ./src/mapping.py
   '';
 
-  pythonImportsCheck = [ "allure" "allure_commons" ];
+  pythonImportsCheck = [
+    "allure"
+    "allure_commons"
+  ];
 
   meta = with lib; {
     description = "Common engine for all modules. It is useful for make integration with your homemade frameworks";
diff --git a/pkgs/development/python-modules/alpha-vantage/default.nix b/pkgs/development/python-modules/alpha-vantage/default.nix
index b98c2508458ed..b68fc39bc137c 100644
--- a/pkgs/development/python-modules/alpha-vantage/default.nix
+++ b/pkgs/development/python-modules/alpha-vantage/default.nix
@@ -1,27 +1,34 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, pandas
-, pytestCheckHook
-, requests
-, requests-mock
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pandas,
+  pytestCheckHook,
+  requests,
+  requests-mock,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "alpha-vantage";
   version = "2.3.1";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "RomelTorres";
     repo = "alpha_vantage";
-    rev = version;
-    sha256 = "0cyw6zw7c7r076rmhnmg905ihwb9r7g511n6gdlph06v74pdls8d";
+    rev = "refs/tags/${version}";
+    hash = "sha256-DWnaLjnbAHhpe8aGUN7JaXEYC0ivWlizOSAfdvg33DM=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     aiohttp
     requests
   ];
@@ -33,18 +40,16 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTestPaths = [
-    # Tests require network access
-    "test_alpha_vantage/test_integration_alphavantage.py"
-    "test_alpha_vantage/test_integration_alphavantage_async.py"
-  ];
+  # https://github.com/RomelTorres/alpha_vantage/issues/344
+  doCheck = false;
 
   pythonImportsCheck = [ "alpha_vantage" ];
 
   meta = with lib; {
     description = "Python module for the Alpha Vantage API";
     homepage = "https://github.com/RomelTorres/alpha_vantage";
-    license = with licenses; [ mit ];
+    changelog = "https://github.com/RomelTorres/alpha_vantage/releases/tag/${version}";
+    license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/altair/default.nix b/pkgs/development/python-modules/altair/default.nix
index 3b9b53b9a6c33..f195c3b080ba3 100644
--- a/pkgs/development/python-modules/altair/default.nix
+++ b/pkgs/development/python-modules/altair/default.nix
@@ -1,29 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# Runtime dependencies
-, hatchling
-, toolz
-, numpy
-, jsonschema
-, typing-extensions
-, pandas
-, jinja2
-, packaging
+  # Runtime dependencies
+  hatchling,
+  toolz,
+  numpy,
+  jsonschema,
+  typing-extensions,
+  pandas,
+  jinja2,
+  packaging,
 
-# Build, dev and test dependencies
-, anywidget
-, ipython
-, pytestCheckHook
-, vega-datasets
-, sphinx
+  # Build, dev and test dependencies
+  anywidget,
+  ipython,
+  pytestCheckHook,
+  vega-datasets,
+  sphinx,
 }:
 
 buildPythonPackage rec {
   pname = "altair";
-  version = "5.2.0";
+  version = "5.3.0";
   format = "pyproject";
   disabled = pythonOlder "3.8";
 
@@ -31,12 +32,10 @@ buildPythonPackage rec {
     owner = "altair-viz";
     repo = "altair";
     rev = "refs/tags/v${version}";
-    hash = "sha256-uTG+V0SQgAQtMjvrVvKVKgIBT9qO+26EPRxQCEXj/gc=";
+    hash = "sha256-VGtH+baIKObJY8/44JCyKi+XrIddSqOtpNeMCO+8o9M=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     jinja2
@@ -57,6 +56,11 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "altair" ];
 
+  disabledTests = [
+    # ValueError: Saving charts in 'svg' format requires the vl-convert-python or altair_saver package: see http://github.com/altair-viz/altair_saver/
+    "test_renderer_with_none_embed_options"
+  ];
+
   disabledTestPaths = [
     # Disabled because it requires internet connectivity
     "tests/test_examples.py"
@@ -69,11 +73,14 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A declarative statistical visualization library for Python.";
+    description = "Declarative statistical visualization library for Python";
     homepage = "https://altair-viz.github.io";
     downloadPage = "https://github.com/altair-viz/altair";
     changelog = "https://altair-viz.github.io/releases/changes.html";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ teh vinetos ];
+    maintainers = with maintainers; [
+      teh
+      vinetos
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/altgraph/default.nix b/pkgs/development/python-modules/altgraph/default.nix
index 3a42414aa8d87..e45be70d4a08f 100644
--- a/pkgs/development/python-modules/altgraph/default.nix
+++ b/pkgs/development/python-modules/altgraph/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/ronaldoussoren/altgraph/tags${version}";
-    description = "A fork of graphlib: a graph (network) package for constructing graphs";
+    description = "Fork of graphlib: a graph (network) package for constructing graphs";
     longDescription = ''
       altgraph is a fork of graphlib: a graph (network) package for constructing graphs,
       BFS and DFS traversals, topological sort, shortest paths, etc. with graphviz output.
diff --git a/pkgs/development/python-modules/amaranth-boards/default.nix b/pkgs/development/python-modules/amaranth-boards/default.nix
index 2475c93f8c617..a010d3570b7cb 100644
--- a/pkgs/development/python-modules/amaranth-boards/default.nix
+++ b/pkgs/development/python-modules/amaranth-boards/default.nix
@@ -1,14 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, amaranth
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  amaranth,
+  setuptools,
+  setuptools-scm,
+  unstableGitUpdater,
 }:
 
 buildPythonPackage rec {
   pname = "amaranth-boards";
-  version = "0-unstable-2023-12-13";
+  version = "0-unstable-2024-05-01";
   pyproject = true;
   # python setup.py --version
   realVersion = "0.1.dev202+g${lib.substring 0 7 src.rev}";
@@ -16,12 +18,20 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "amaranth-lang";
     repo = "amaranth-boards";
-    rev = "170675812b71ee722bcf8ccdb88409a9ad97ffe2";
-    hash = "sha256-dwZCKMJnEY9RjzkcJ9r3TEC7W+Wfi/P7Hjl4/d60/qo=";
+    rev = "aba2300dc83216523e1c98fdb22471cb4bac5027";
+    # these files change depending on git branch status
+    postFetch = "rm -f $out/.git_archival.txt $out/.gitattributes";
+    hash = "sha256-jldXyMJtuSGcZKmtwpZBYrR/UBe4ufblPYRYpBmReM8=";
   };
 
-  nativeBuildInputs = [ setuptools setuptools-scm ];
-  dependencies = [ setuptools amaranth ];
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+  dependencies = [
+    setuptools
+    amaranth
+  ];
 
   preBuild = ''
     export SETUPTOOLS_SCM_PRETEND_VERSION="${realVersion}"
@@ -30,10 +40,15 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
+  passthru.updateScript = unstableGitUpdater { };
+
   meta = with lib; {
     description = "Board definitions for Amaranth HDL";
     homepage = "https://github.com/amaranth-lang/amaranth-boards";
     license = licenses.bsd2;
-    maintainers = with maintainers; [ emily thoughtpolice pbsds ];
+    maintainers = with maintainers; [
+      thoughtpolice
+      pbsds
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/amaranth-soc/default.nix b/pkgs/development/python-modules/amaranth-soc/default.nix
index 0742055e9cf24..597a1829161fc 100644
--- a/pkgs/development/python-modules/amaranth-soc/default.nix
+++ b/pkgs/development/python-modules/amaranth-soc/default.nix
@@ -1,22 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, amaranth
-, pdm-backend
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  amaranth,
+  pdm-backend,
+  unstableGitUpdater,
 }:
 
 buildPythonPackage rec {
   pname = "amaranth-soc";
-  version = "0-unstable-2024-02-16";
+  version = "0.1a-unstable-2024-06-10";
   pyproject = true;
   # from `pdm show`
-  realVersion = "0.1a1.dev1+g${lib.substring 0 7 src.rev}";
+  realVersion = let
+     tag = builtins.elemAt (lib.splitString "-" version) 0;
+     rev = lib.substring 0 7 src.rev;
+    in "${tag}1.dev1+g${rev}";
 
   src = fetchFromGitHub {
     owner = "amaranth-lang";
     repo = "amaranth-soc";
-    rev = "9f46553aa4289e2a11788a73fade6410a371b162";
-    hash = "sha256-ZllDSrZEu16jZtbQ7crQSj3XCbsthueXtaAvyf45dmY=";
+    rev = "e1b842800533f44924f21c3867bc2290084d100f";
+    hash = "sha256-GAGQEncONY566v8hLjGeZ7CRlOt36vHg+0a5xcB+g1Y=";
   };
 
   nativeBuildInputs = [ pdm-backend ];
@@ -26,10 +31,15 @@ buildPythonPackage rec {
     export PDM_BUILD_SCM_VERSION="${realVersion}"
   '';
 
+  passthru.updateScript = unstableGitUpdater { tagPrefix = "v"; };
+
   meta = with lib; {
     description = "System on Chip toolkit for Amaranth HDL";
     homepage = "https://github.com/amaranth-lang/amaranth-soc";
     license = licenses.bsd2;
-    maintainers = with maintainers; [ emily thoughtpolice pbsds ];
+    maintainers = with maintainers; [
+      thoughtpolice
+      pbsds
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/amaranth/default.nix b/pkgs/development/python-modules/amaranth/default.nix
index 5f2f072558dfe..d2c9344ed2f2a 100644
--- a/pkgs/development/python-modules/amaranth/default.nix
+++ b/pkgs/development/python-modules/amaranth/default.nix
@@ -1,32 +1,33 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pdm-backend
-, pyvcd
-, jinja2
-, importlib-resources
-, importlib-metadata
-, git
-
-# for tests
-, pytestCheckHook
-, symbiyosys
-, yices
-, yosys
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pdm-backend,
+  pyvcd,
+  jinja2,
+  importlib-resources,
+  importlib-metadata,
+  git,
+
+  # for tests
+  pytestCheckHook,
+  symbiyosys,
+  yices,
+  yosys,
 }:
 
 buildPythonPackage rec {
   pname = "amaranth";
   format = "pyproject";
-  version = "0.4.5";
+  version = "0.5.0";
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "amaranth-lang";
     repo = "amaranth";
     rev = "refs/tags/v${version}";
-    hash = "sha256-g9dn6gUTdFHz9GMWHERsRLWHoI3E7vjuQDK0usbZO7g=";
+    hash = "sha256-+EV2NgYSuCbYTQKeBUN+/D0attfrJ3cso7U6RjLEIbg=";
   };
 
   nativeBuildInputs = [
@@ -34,12 +35,13 @@ buildPythonPackage rec {
     pdm-backend
   ];
 
-  dependencies = [
-    jinja2
-    pyvcd
-  ] ++
-    lib.optional (pythonOlder "3.9") importlib-resources ++
-    lib.optional (pythonOlder "3.8") importlib-metadata;
+  dependencies =
+    [
+      jinja2
+      pyvcd
+    ]
+    ++ lib.optional (pythonOlder "3.9") importlib-resources
+    ++ lib.optional (pythonOlder "3.8") importlib-metadata;
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -51,10 +53,13 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "amaranth" ];
 
   meta = with lib; {
-    description = "A modern hardware definition language and toolchain based on Python";
+    description = "Modern hardware definition language and toolchain based on Python";
     mainProgram = "amaranth-rpc";
     homepage = "https://amaranth-lang.org/docs/amaranth";
     license = licenses.bsd2;
-    maintainers = with maintainers; [ emily thoughtpolice pbsds ];
+    maintainers = with maintainers; [
+      thoughtpolice
+      pbsds
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/amarna/default.nix b/pkgs/development/python-modules/amarna/default.nix
index d9587d11ee48f..daa474e25ecf2 100644
--- a/pkgs/development/python-modules/amarna/default.nix
+++ b/pkgs/development/python-modules/amarna/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, lark
-, pydot
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lark,
+  pydot,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     pydot
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "amarna"
-  ];
+  pythonImportsCheck = [ "amarna" ];
 
   meta = with lib; {
     description = "Static-analyzer and linter for the Cairo programming language";
diff --git a/pkgs/development/python-modules/amazon-ion/default.nix b/pkgs/development/python-modules/amazon-ion/default.nix
index 939c554d339d4..d10b9f4ff0498 100644
--- a/pkgs/development/python-modules/amazon-ion/default.nix
+++ b/pkgs/development/python-modules/amazon-ion/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, cbor2
-, docopt
-, fetchFromGitHub
-, jsonconversion
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, six
-, tabulate
+{
+  lib,
+  buildPythonPackage,
+  cbor2,
+  docopt,
+  fetchFromGitHub,
+  jsonconversion,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  six,
+  tabulate,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
       --replace "'pytest-runner'," ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     jsonconversion
@@ -58,9 +57,7 @@ buildPythonPackage rec {
     "tests/test_benchmark_cli.py"
   ];
 
-  pythonImportsCheck = [
-    "amazon.ion"
-  ];
+  pythonImportsCheck = [ "amazon.ion" ];
 
   meta = with lib; {
     description = "Python implementation of Amazon Ion";
diff --git a/pkgs/development/python-modules/amazon-kclpy/default.nix b/pkgs/development/python-modules/amazon-kclpy/default.nix
index 751a2945da598..1ade5e23e240c 100644
--- a/pkgs/development/python-modules/amazon-kclpy/default.nix
+++ b/pkgs/development/python-modules/amazon-kclpy/default.nix
@@ -1,35 +1,50 @@
-{ lib, buildPythonPackage, fetchFromGitHub, python, mock, boto, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  setuptools,
+  mock,
+  boto3,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "amazon-kclpy";
-  version = "2.1.3";
-  format = "setuptools";
+  version = "2.1.5";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "awslabs";
     repo = "amazon-kinesis-client-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-3BhccRJd6quElXZSix1aVIqWr9wdcTTziDhnIOLiPPo=";
+    hash = "sha256-kSboeg/fdg7hbiWyPzAAsYo+0vbQDfRoeJYHlrrFNrA=";
   };
 
-  # argparse is just required for python2.6
-  prePatch = ''
-    substituteInPlace setup.py \
-      --replace "'argparse'," ""
-  '';
+  patches = [
+    (fetchpatch {
+      name = "remove-deprecated-boto.patch";
+      url = "https://github.com/awslabs/amazon-kinesis-client-python/commit/bd2c442cdd1b0e2c99d3471c1d3ffcc9161a7c42.patch";
+      hash = "sha256-5W0qItDGjx1F6IllzLH57XCpToKrAu9mTbzv/1wMXuY=";
+    })
+  ];
 
-  propagatedBuildInputs =  [ mock boto ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [ pytest ];
+  dependencies = [
+    mock
+    boto3
+  ];
 
-  checkPhase = ''
-    ${python.interpreter} -m pytest
-  '';
+  pythonImportsCheck = [ "amazon_kclpy" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Amazon Kinesis Client Library for Python";
     homepage = "https://github.com/awslabs/amazon-kinesis-client-python";
-    license = licenses.amazonsl;
+    license = licenses.asl20;
     maintainers = with maintainers; [ psyanticy ];
+    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/ambee/default.nix b/pkgs/development/python-modules/ambee/default.nix
index 3e3f719b7afd2..ddd0b4e747eef 100644
--- a/pkgs/development/python-modules/ambee/default.nix
+++ b/pkgs/development/python-modules/ambee/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, aiohttp
-, poetry-core
-, yarl
-, aresponses
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  aiohttp,
+  poetry-core,
+  yarl,
+  aresponses,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-2wX2CLr6kdVw2AGPW6DmYI2OBfQFI/iWVorok2d3wx4=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
diff --git a/pkgs/development/python-modules/amberelectric/default.nix b/pkgs/development/python-modules/amberelectric/default.nix
index ac32a8cc7824c..19cc637c816ba 100644
--- a/pkgs/development/python-modules/amberelectric/default.nix
+++ b/pkgs/development/python-modules/amberelectric/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest-mock
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, setuptools
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest-mock,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  setuptools,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-HujjqJ3nkPIj8P0qAiQnQzLhji5l8qOAO2Gh53OJ7UY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     urllib3
@@ -35,9 +34,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "amberelectric"
-  ];
+  pythonImportsCheck = [ "amberelectric" ];
 
   meta = with lib; {
     description = "Python Amber Electric API interface";
diff --git a/pkgs/development/python-modules/ambiclimate/default.nix b/pkgs/development/python-modules/ambiclimate/default.nix
deleted file mode 100644
index ecaae3fd9f571..0000000000000
--- a/pkgs/development/python-modules/ambiclimate/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, aiohttp
-, async-timeout
-}:
-
-buildPythonPackage rec {
-  pname = "ambiclimate";
-  version = "0.2.1";
-  format = "setuptools";
-
-  src = fetchPypi {
-    pname = "Ambiclimate";
-    inherit version;
-    sha256 = "0vhmpazc2n7qyyh7wqsz635w0f8afk2i5d592ikb84bgnfn83483";
-  };
-
-  propagatedBuildInputs = [
-    aiohttp
-    async-timeout
-  ];
-
-  # tests are not present
-  doCheck = false;
-
-  pythonImportsCheck = [ "ambiclimate" ];
-
-  meta = with lib; {
-    description = "Python library to communicate with ambiclimate";
-    homepage = "https://github.com/Danielhiversen/pyAmbiclimate";
-    license = with licenses; [ mit ];
-    maintainers = with maintainers; [ fab ];
-  };
-}
diff --git a/pkgs/development/python-modules/amcrest/default.nix b/pkgs/development/python-modules/amcrest/default.nix
index 1de7da6f829fc..0a217c6f7832b 100644
--- a/pkgs/development/python-modules/amcrest/default.nix
+++ b/pkgs/development/python-modules/amcrest/default.nix
@@ -1,23 +1,23 @@
-{ lib
-, argcomplete
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, httpx
-, pytestCheckHook
-, pythonOlder
-, requests
-, responses
-, urllib3
-, typing-extensions
+{
+  lib,
+  argcomplete,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch2,
+  httpx,
+  mock,
+  pytestCheckHook,
+  requests,
+  responses,
+  setuptools,
+  typing-extensions,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "amcrest";
   version = "1.9.8";
-  format = "setuptools";
-
-  disabled = pythonOlder "3.7";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "tchellomello";
@@ -26,7 +26,18 @@ buildPythonPackage rec {
     hash = "sha256-v0jWEZo06vltEq//suGrvJ/AeeDxUG5CCFhbf03q34w=";
   };
 
-  propagatedBuildInputs = [
+  patches = [
+    (fetchpatch2 {
+      # https://github.com/tchellomello/python-amcrest/pull/235
+      name = "replace-distutils.patch";
+      url = "https://github.com/tchellomello/python-amcrest/commit/ec56049c0f5b49bc4c5bcf0acb7fea89ec1c1df4.patch";
+      hash = "sha256-ym+Bn795y+JqhNMk4NPnOVr3DwO9DkUV0d9LEaz3CMo=";
+    })
+  ];
+
+  build-system = [ setuptools ];
+
+  dependencies = [
     argcomplete
     httpx
     requests
@@ -40,15 +51,13 @@ buildPythonPackage rec {
     responses
   ];
 
-  pythonImportsCheck = [
-    "amcrest"
-  ];
+  pythonImportsCheck = [ "amcrest" ];
 
   meta = with lib; {
     description = "Python module for Amcrest and Dahua Cameras";
     homepage = "https://github.com/tchellomello/python-amcrest";
     changelog = "https://github.com/tchellomello/python-amcrest/releases/tag/${version}";
-    license = with licenses; [ gpl2Only ];
+    license = licenses.gpl2Only;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/amiibo-py/default.nix b/pkgs/development/python-modules/amiibo-py/default.nix
index 93cc6cdd0b6cf..bf38fbd56bbbb 100644
--- a/pkgs/development/python-modules/amiibo-py/default.nix
+++ b/pkgs/development/python-modules/amiibo-py/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, aiohttp
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  aiohttp,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/amply/default.nix b/pkgs/development/python-modules/amply/default.nix
index 5f648fc1baf97..12af9b9da2ebc 100644
--- a/pkgs/development/python-modules/amply/default.nix
+++ b/pkgs/development/python-modules/amply/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, setuptools-scm
-, docutils
-, pyparsing
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  setuptools-scm,
+  docutils,
+  pyparsing,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/amqp/default.nix b/pkgs/development/python-modules/amqp/default.nix
index 36fc48c35f35e..8adda06c48c9e 100644
--- a/pkgs/development/python-modules/amqp/default.nix
+++ b/pkgs/development/python-modules/amqp/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, case
-, fetchPypi
-, pytestCheckHook
-, pytest-rerunfailures
-, pythonOlder
-, vine
+{
+  lib,
+  buildPythonPackage,
+  case,
+  fetchPypi,
+  pytestCheckHook,
+  pytest-rerunfailures,
+  pythonOlder,
+  vine,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-oez/QlrQY61CpIbJAoB9FIIxFIHIrZWnJpSyl1519/0=";
   };
 
-  propagatedBuildInputs = [
-    vine
-  ];
+  propagatedBuildInputs = [ vine ];
 
   __darwinAllowLocalNetworking = true;
 
@@ -37,9 +36,7 @@ buildPythonPackage rec {
     "test_rmq.py"
   ];
 
-  pythonImportsCheck = [
-    "amqp"
-  ];
+  pythonImportsCheck = [ "amqp" ];
 
   meta = with lib; {
     description = "Python client for the Advanced Message Queuing Procotol (AMQP). This is a fork of amqplib which is maintained by the Celery project";
diff --git a/pkgs/development/python-modules/amqplib/default.nix b/pkgs/development/python-modules/amqplib/default.nix
index 0805ce6784a28..60c66e2414916 100644
--- a/pkgs/development/python-modules/amqplib/default.nix
+++ b/pkgs/development/python-modules/amqplib/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, python }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+}:
 
 buildPythonPackage rec {
   pname = "amqplib";
diff --git a/pkgs/development/python-modules/amqtt/default.nix b/pkgs/development/python-modules/amqtt/default.nix
index 0daef6d77aa02..0221295513b34 100644
--- a/pkgs/development/python-modules/amqtt/default.nix
+++ b/pkgs/development/python-modules/amqtt/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, docopt
-, fetchFromGitHub
-, hypothesis
-, passlib
-, poetry-core
-, pytest-logdog
-, pytest-asyncio
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, pyyaml
-, setuptools
-, transitions
-, websockets
+{
+  lib,
+  buildPythonPackage,
+  docopt,
+  fetchFromGitHub,
+  hypothesis,
+  passlib,
+  poetry-core,
+  pytest-logdog,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  pyyaml,
+  setuptools,
+  transitions,
+  websockets,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
       --replace 'websockets = ">=9.0,<11.0"' 'websockets = "*"'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     docopt
@@ -56,9 +55,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "--asyncio-mode=auto"
-  ];
+  pytestFlagsArray = [ "--asyncio-mode=auto" ];
 
   disabledTests = lib.optionals (pythonAtLeast "3.12") [
     # stuck in epoll
@@ -83,9 +80,7 @@ buildPythonPackage rec {
     export PATH=$out/bin:$PATH
   '';
 
-  pythonImportsCheck = [
-    "amqtt"
-  ];
+  pythonImportsCheck = [ "amqtt" ];
 
   meta = with lib; {
     description = "Python MQTT client and broker implementation";
diff --git a/pkgs/development/python-modules/anchor-kr/default.nix b/pkgs/development/python-modules/anchor-kr/default.nix
index 32ce534e6b6b7..10828482b830f 100644
--- a/pkgs/development/python-modules/anchor-kr/default.nix
+++ b/pkgs/development/python-modules/anchor-kr/default.nix
@@ -1,6 +1,7 @@
-{ lib,
+{
+  lib,
   buildPythonPackage,
-  fetchFromGitHub
+  fetchFromGitHub,
 }:
 buildPythonPackage {
   pname = "anchor";
diff --git a/pkgs/development/python-modules/ancp-bids/default.nix b/pkgs/development/python-modules/ancp-bids/default.nix
index 366b00e9c6e0a..77978e6cd19c5 100644
--- a/pkgs/development/python-modules/ancp-bids/default.nix
+++ b/pkgs/development/python-modules/ancp-bids/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pythonOlder
-, pytestCheckHook
-, setuptools
-, wheel
-, numpy
-, pandas
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
+  wheel,
+  numpy,
+  pandas,
 }:
 
 buildPythonPackage rec {
   pname = "ancp-bids";
-  version = "0.2.1";
+  version = "0.2.4";
   format = "pyproject";
   disabled = pythonOlder "3.7";
 
@@ -21,7 +22,7 @@ buildPythonPackage rec {
     owner = "ANCPLabOldenburg";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-Nu9pulVSZysgm/F7jl+VpoqMCiHeysZjQDQ1dT7AnpE=";
+    hash = "sha256-c6X1gCYAezgZQP6xfQPfKW8V35F1cnTdbryEp3sZ4jw=";
   };
 
   patches = [
@@ -44,9 +45,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "ancpbids"
-  ];
+  pythonImportsCheck = [ "ancpbids" ];
 
   pytestFlagsArray = [ "tests/auto" ];
 
diff --git a/pkgs/development/python-modules/androguard/default.nix b/pkgs/development/python-modules/androguard/default.nix
index e408d11590bd1..cc1789963e617 100644
--- a/pkgs/development/python-modules/androguard/default.nix
+++ b/pkgs/development/python-modules/androguard/default.nix
@@ -1,32 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, future
-, networkx
-, pygments
-, lxml
-, colorama
-, matplotlib
-, asn1crypto
-, click
-, pydot
-, ipython
-, packaging
-, pyqt5
-, pyperclip
-, nose
-, nose-timer
-, mock
-, python-magic
-, codecov
-, coverage
-, qt5
-# This is usually used as a library, and it'd be a shame to force the GUI
-# libraries to the closure if GUI is not desired.
-, withGui ? false
-# Tests take a very long time, and currently fail, but next release' tests
-# shouldn't fail
-, doCheck ? false
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  future,
+  networkx,
+  pygments,
+  lxml,
+  colorama,
+  matplotlib,
+  asn1crypto,
+  click,
+  pydot,
+  ipython,
+  packaging,
+  pyqt5,
+  pyperclip,
+  nose,
+  nose-timer,
+  mock,
+  python-magic,
+  codecov,
+  coverage,
+  qt5,
+  # This is usually used as a library, and it'd be a shame to force the GUI
+  # libraries to the closure if GUI is not desired.
+  withGui ? false,
+  # Tests take a very long time, and currently fail, but next release' tests
+  # shouldn't fail
+  doCheck ? false,
 }:
 
 buildPythonPackage rec {
@@ -41,27 +42,25 @@ buildPythonPackage rec {
     sha256 = "1aparxiq11y0hbvkayp92w684nyxyyx7mi0n1x6x51g5z6c58vmy";
   };
 
-  nativeBuildInputs = [
-    packaging
-  ] ++ lib.optionals withGui [
-    qt5.wrapQtAppsHook
-  ];
+  nativeBuildInputs = [ packaging ] ++ lib.optionals withGui [ qt5.wrapQtAppsHook ];
 
-  propagatedBuildInputs = [
-    asn1crypto
-    click
-    colorama
-    future
-    ipython
-    lxml
-    matplotlib
-    networkx
-    pydot
-    pygments
-  ] ++ lib.optionals withGui [
-    pyqt5
-    pyperclip
-  ];
+  propagatedBuildInputs =
+    [
+      asn1crypto
+      click
+      colorama
+      future
+      ipython
+      lxml
+      matplotlib
+      networkx
+      pydot
+      pygments
+    ]
+    ++ lib.optionals withGui [
+      pyqt5
+      pyperclip
+    ];
 
   nativeCheckInputs = [
     codecov
diff --git a/pkgs/development/python-modules/android-backup/default.nix b/pkgs/development/python-modules/android-backup/default.nix
index 647a36f78b330..cc153ab2e3959 100644
--- a/pkgs/development/python-modules/android-backup/default.nix
+++ b/pkgs/development/python-modules/android-backup/default.nix
@@ -1,10 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pycrypto
-, pythonOlder
-, enum34
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pycrypto,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +18,7 @@ buildPythonPackage rec {
     sha256 = "0c436hv64ddqrjs77pa7z6spiv49pjflbmgg31p38haj5mzlrqvw";
   };
 
-  propagatedBuildInputs = [
-    pycrypto
-  ] ++ lib.optional (pythonOlder "3.4") enum34;
+  propagatedBuildInputs = [ pycrypto ];
 
   checkPhase = ''
     ${python.interpreter} -m android_backup.tests
diff --git a/pkgs/development/python-modules/androidtv/default.nix b/pkgs/development/python-modules/androidtv/default.nix
index 0516388b3f89f..799306fa30f01 100644
--- a/pkgs/development/python-modules/androidtv/default.nix
+++ b/pkgs/development/python-modules/androidtv/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, adb-shell
-, aiofiles
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pure-python-adb
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  adb-shell,
+  aiofiles,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pure-python-adb,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -31,27 +32,21 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    async = [
-      aiofiles
-    ];
+    async = [ aiofiles ];
     inherit (adb-shell.optional-dependencies) usb;
   };
 
   nativeCheckInputs = [
     mock
     pytestCheckHook
-  ]
-  ++ passthru.optional-dependencies.async
-  ++ passthru.optional-dependencies.usb;
+  ] ++ passthru.optional-dependencies.async ++ passthru.optional-dependencies.usb;
 
   disabledTests = [
     # Requires git but fails anyway
     "test_no_underscores"
   ];
 
-  pythonImportsCheck = [
-    "androidtv"
-  ];
+  pythonImportsCheck = [ "androidtv" ];
 
   meta = with lib; {
     description = "Communicate with an Android TV or Fire TV device via ADB over a network";
diff --git a/pkgs/development/python-modules/androidtvremote2/default.nix b/pkgs/development/python-modules/androidtvremote2/default.nix
index a0c066c4d9751..df179dab636be 100644
--- a/pkgs/development/python-modules/androidtvremote2/default.nix
+++ b/pkgs/development/python-modules/androidtvremote2/default.nix
@@ -1,40 +1,37 @@
-{ lib
-, aiofiles
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, protobuf
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiofiles,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  protobuf,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "androidtvremote2";
-  version = "0.0.15";
-  format = "pyproject";
+  version = "0.1.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "tronikos";
     repo = "androidtvremote2";
     rev = "refs/tags/v${version}";
-    hash = "sha256-aLNmuMuwaMhl/Utv6bVU4fR8zmhj0fUiInL4RHT4dVw=";
+    hash = "sha256-Zem2IWBUWmyVdBjqoVKFk+/lg5T7CPXCKFXhFusQFLY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiofiles
     cryptography
     protobuf
   ];
 
-  pythonImportsCheck = [
-    "androidtvremote2"
-  ];
+  pythonImportsCheck = [ "androidtvremote2" ];
 
   # Module only has a dummy test
   doCheck = false;
diff --git a/pkgs/development/python-modules/anel-pwrctrl-homeassistant/default.nix b/pkgs/development/python-modules/anel-pwrctrl-homeassistant/default.nix
index d32138c68dfa7..07b8cbb96c0c0 100644
--- a/pkgs/development/python-modules/anel-pwrctrl-homeassistant/default.nix
+++ b/pkgs/development/python-modules/anel-pwrctrl-homeassistant/default.nix
@@ -17,14 +17,12 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "anel_pwrctrl"
-  ];
+  pythonImportsCheck = [ "anel_pwrctrl" ];
 
   meta = with lib; {
     description = "Discover and control ANEL NET-PwrCtrl devices";
     homepage = "https://github.com/mweinelt/anel-pwrctrl";
     license = licenses.mit;
-    maintainers = with maintainers; [jamiemagee];
+    maintainers = with maintainers; [ jamiemagee ];
   };
 }
diff --git a/pkgs/development/python-modules/angr/default.nix b/pkgs/development/python-modules/angr/default.nix
index b47510fcc4b1b..c3c9f1cb6e562 100644
--- a/pkgs/development/python-modules/angr/default.nix
+++ b/pkgs/development/python-modules/angr/default.nix
@@ -23,7 +23,6 @@
   pycparser,
   pyformlang,
   pythonOlder,
-  pythonRelaxDepsHook,
   pyvex,
   rich,
   rpyc,
@@ -37,7 +36,7 @@
 
 buildPythonPackage rec {
   pname = "angr";
-  version = "9.2.101";
+  version = "9.2.107";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -46,13 +45,12 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "angr";
     rev = "refs/tags/v${version}";
-    hash = "sha256-btj1bGpS/t1uQxmMiZ+PTBqiIb7eigg1vGTPjzr4/p4=";
+    hash = "sha256-f4RiLXEp4q3V2SiX6OSLHbAVCaZ5GLOvqm1qmBAYIZ8=";
   };
 
   pythonRelaxDeps = [ "capstone" ];
 
   build-system = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
diff --git a/pkgs/development/python-modules/angrcli/default.nix b/pkgs/development/python-modules/angrcli/default.nix
index cd2bf2f5508f2..0e3fa66f24862 100644
--- a/pkgs/development/python-modules/angrcli/default.nix
+++ b/pkgs/development/python-modules/angrcli/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, angr
-, buildPythonPackage
-, cmd2
-, coreutils
-, fetchFromGitHub
-, pygments
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, stdenv
+{
+  lib,
+  angr,
+  buildPythonPackage,
+  cmd2,
+  coreutils,
+  fetchFromGitHub,
+  pygments,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  stdenv,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
       --replace-fail "/bin/ls" "${coreutils}/bin/ls"
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     angr
@@ -52,9 +51,7 @@ buildPythonPackage rec {
     "test_max_depth"
   ];
 
-  pythonImportsCheck = [
-    "angrcli"
-  ];
+  pythonImportsCheck = [ "angrcli" ];
 
   meta = with lib; {
     description = "Python modules to allow easier interactive use of angr";
diff --git a/pkgs/development/python-modules/aniso8601/default.nix b/pkgs/development/python-modules/aniso8601/default.nix
index 5aa4edce7c2e6..0c10170d5c104 100644
--- a/pkgs/development/python-modules/aniso8601/default.nix
+++ b/pkgs/development/python-modules/aniso8601/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, python-dateutil
-, fetchPypi
-, isPy3k
-, mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  python-dateutil,
+  fetchPypi,
+  isPy3k,
+  mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-cuMRdmfu32aVG7LZP0KWpWuUsHioqVkFoFJhH7PxuXM=";
   };
 
-  propagatedBuildInputs = [
-    python-dateutil
-  ];
+  propagatedBuildInputs = [ python-dateutil ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ lib.optional (!isPy3k) mock;
+  nativeCheckInputs = [ pytestCheckHook ] ++ lib.optional (!isPy3k) mock;
 
   pythonImportsCheck = [ "aniso8601" ];
 
diff --git a/pkgs/development/python-modules/anitopy/default.nix b/pkgs/development/python-modules/anitopy/default.nix
index 313f9631154e6..95f3af2b7cb5f 100644
--- a/pkgs/development/python-modules/anitopy/default.nix
+++ b/pkgs/development/python-modules/anitopy/default.nix
@@ -1,6 +1,7 @@
-{ lib,
+{
+  lib,
   buildPythonPackage,
-  fetchFromGitHub
+  fetchFromGitHub,
 }:
 buildPythonPackage rec {
   pname = "anitopy";
diff --git a/pkgs/development/python-modules/annexremote/default.nix b/pkgs/development/python-modules/annexremote/default.nix
index 562014f067890..8b133595ebbde 100644
--- a/pkgs/development/python-modules/annexremote/default.nix
+++ b/pkgs/development/python-modules/annexremote/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "annexremote"
-  ];
+  pythonImportsCheck = [ "annexremote" ];
 
   meta = with lib; {
     description = "Helper module to easily develop git-annex remotes";
diff --git a/pkgs/development/python-modules/annotated-types/default.nix b/pkgs/development/python-modules/annotated-types/default.nix
index 85e2379507c6c..77ab71785200e 100644
--- a/pkgs/development/python-modules/annotated-types/default.nix
+++ b/pkgs/development/python-modules/annotated-types/default.nix
@@ -1,37 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, typing-extensions
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  typing-extensions,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "annotated-types";
-  version = "0.6.0";
+  version = "0.7.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "annotated-types";
     repo = "annotated-types";
     rev = "refs/tags/v${version}";
-    hash = "sha256-SZ9/rXYcns4DFM6vk6SRKvuv3MY3T7xO9aW7WAQqtVE=";
+    hash = "sha256-I1SPUKq2WIwEX5JmS3HrJvrpNrKDu30RWkBRDFE+k9A=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [ typing-extensions ];
 
   pythonImportsCheck = [ "annotated_types" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Reusable constraint types to use with typing.Annotated";
diff --git a/pkgs/development/python-modules/annoy/default.nix b/pkgs/development/python-modules/annoy/default.nix
index 4de8d0adacb9b..255896d30982a 100644
--- a/pkgs/development/python-modules/annoy/default.nix
+++ b/pkgs/development/python-modules/annoy/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, h5py
-, numpy
-, pynose
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  h5py,
+  numpy,
+  pynose,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,22 +26,16 @@ buildPythonPackage rec {
       --replace-fail "'nose>=1.0'" ""
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  nativeBuildInputs = [
-    h5py
-  ];
+  nativeBuildInputs = [ h5py ];
 
   nativeCheckInputs = [
     numpy
     pynose
   ];
 
-  pythonImportsCheck = [
-    "annoy"
-  ];
+  pythonImportsCheck = [ "annoy" ];
 
   meta = with lib; {
     description = "Approximate Nearest Neighbors in C++/Python optimized for memory usage and loading/saving to disk";
diff --git a/pkgs/development/python-modules/anonip/default.nix b/pkgs/development/python-modules/anonip/default.nix
index 5f6cc373e5604..b4aa2652bf0a6 100644
--- a/pkgs/development/python-modules/anonip/default.nix
+++ b/pkgs/development/python-modules/anonip/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,22 +20,16 @@ buildPythonPackage rec {
     sha256 = "0cssdcridadjzichz1vv1ng7jwphqkn8ihh83hpz9mcjmxyb94qc";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace setup.cfg \
       --replace " --cov=anonip --cov-report=term-missing --no-cov-on-fail" ""
   '';
 
-  pytestFlagsArray = [
-    "tests.py"
-  ];
+  pytestFlagsArray = [ "tests.py" ];
 
-  pythonImportsCheck = [
-    "anonip"
-  ];
+  pythonImportsCheck = [ "anonip" ];
 
   meta = with lib; {
     description = "Tool to anonymize IP addresses in log files";
diff --git a/pkgs/development/python-modules/anova-wifi/default.nix b/pkgs/development/python-modules/anova-wifi/default.nix
index 4f4c00cd7bed7..fa0b7074094a3 100644
--- a/pkgs/development/python-modules/anova-wifi/default.nix
+++ b/pkgs/development/python-modules/anova-wifi/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "anova-wifi";
-  version = "0.12.0";
+  version = "0.13.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "Lash-L";
     repo = "anova_wifi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-0RRnQBLglPnPin9/gqWDKIsfi5V7ydrdDKwm93WEnvk=";
+    hash = "sha256-5BSkUg36k2gNfOrVNkeRwU/4SlfEua3ZU4KTZmKSq4Q=";
   };
 
   postPatch = ''
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "anova_wifi" ];
 
   meta = with lib; {
-    description = "A Python package for reading anova sous vide api data";
+    description = "Python package for reading anova sous vide api data";
     homepage = "https://github.com/Lash-L/anova_wifi";
     changelog = "https://github.com/Lash-L/anova_wifi/releases/tag/v${version}";
     maintainers = with maintainers; [ jamiemagee ];
diff --git a/pkgs/development/python-modules/ansi/default.nix b/pkgs/development/python-modules/ansi/default.nix
index 3fb30ebf72558..282fcd04e0a51 100644
--- a/pkgs/development/python-modules/ansi/default.nix
+++ b/pkgs/development/python-modules/ansi/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-PmgB1glksu4roQeZ1o7uilMJNm9xaYqw680N2z+tUUM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [
     "ansi.colour"
diff --git a/pkgs/development/python-modules/ansi2html/default.nix b/pkgs/development/python-modules/ansi2html/default.nix
index 5f87f8ff3e51c..9ab201720ddf8 100644
--- a/pkgs/development/python-modules/ansi2html/default.nix
+++ b/pkgs/development/python-modules/ansi2html/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, setuptools
-, setuptools-scm
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  setuptools,
+  setuptools-scm,
+  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "ansi2html";
-  version = "1.9.1";
+  version = "1.9.2";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-XGg3oT7MGQOqt6VFNTMSBJ3+3+UQU2KtOo2dIHhx7HE=";
+    hash = "sha256-NFO/h1NdN7gnsFJF+qp1bbq07D1pkl41K2MZw8lVwKU=";
   };
 
   nativeBuildInputs = [
@@ -25,9 +26,7 @@ buildPythonPackage rec {
 
   preCheck = "export PATH=$PATH:$out/bin";
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "ansi2html" ];
 
diff --git a/pkgs/development/python-modules/ansi2image/default.nix b/pkgs/development/python-modules/ansi2image/default.nix
index eadb1ca188a4b..2f3373b1c50ac 100644
--- a/pkgs/development/python-modules/ansi2image/default.nix
+++ b/pkgs/development/python-modules/ansi2image/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, colorama
-, fetchFromGitHub
-, pillow
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  colorama,
+  fetchFromGitHub,
+  pillow,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,17 +27,11 @@ buildPythonPackage rec {
     pillow
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ansi2image"
-  ];
+  pythonImportsCheck = [ "ansi2image" ];
 
-  pytestFlagsArray = [
-    "tests/tests.py"
-  ];
+  pytestFlagsArray = [ "tests/tests.py" ];
 
   meta = with lib; {
     description = "Module to convert ANSI text to an image";
diff --git a/pkgs/development/python-modules/ansible-builder/default.nix b/pkgs/development/python-modules/ansible-builder/default.nix
index e9ddfe5bc2870..f5a67d28eddb6 100644
--- a/pkgs/development/python-modules/ansible-builder/default.nix
+++ b/pkgs/development/python-modules/ansible-builder/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, python3Packages
-, podman
-, fetchPypi
-, bindep
+{
+  lib,
+  python3Packages,
+  podman,
+  fetchPypi,
+  bindep,
 }:
 python3Packages.buildPythonPackage rec {
   pname = "ansible-builder";
@@ -19,9 +20,7 @@ python3Packages.buildPythonPackage rec {
     setuptools-scm
   ];
 
-  buildInputs = [
-    bindep
-  ];
+  buildInputs = [ bindep ];
 
   propagatedBuildInputs = with python3Packages; [
     podman
@@ -37,7 +36,7 @@ python3Packages.buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "An Ansible execution environment builder";
+    description = "Ansible execution environment builder";
     homepage = "https://ansible-builder.readthedocs.io/en/stable/";
     license = licenses.asl20;
     maintainers = with maintainers; [ melkor333 ];
diff --git a/pkgs/development/python-modules/ansible-compat/default.nix b/pkgs/development/python-modules/ansible-compat/default.nix
index b3455fac82f45..493204c867382 100644
--- a/pkgs/development/python-modules/ansible-compat/default.nix
+++ b/pkgs/development/python-modules/ansible-compat/default.nix
@@ -1,40 +1,46 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, ansible-core
-, flaky
-, pytest-mock
-, pytestCheckHook
-, pyyaml
-, setuptools-scm
-, subprocess-tee
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  ansible-core,
+  coreutils,
+  flaky,
+  pytest-mock,
+  pytestCheckHook,
+  pyyaml,
+  setuptools,
+  setuptools-scm,
+  subprocess-tee,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "ansible-compat";
-  version = "4.1.11";
-  format = "pyproject";
+  version = "24.6.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.10";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-s+n518OhzmIi3kROncb+zn66cKxk8qC+/cTi1UIBi0o=";
+    pname = "ansible_compat";
+    inherit version;
+    hash = "sha256-+T1MNH2OGQPCkkSUQcCamH1wNm+crfmv5eMtyKAZPKw=";
   };
 
   nativeBuildInputs = [
+    setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     pyyaml
     subprocess-tee
   ];
 
   preCheck = ''
     export HOME=$(mktemp -d)
-    export PATH=$PATH:$out/bin
+    substituteInPlace test/test_runtime.py \
+      --replace-fail "printenv" "${coreutils}/bin/printenv"
   '';
 
   nativeCheckInputs = [
@@ -55,18 +61,18 @@ buildPythonPackage rec {
     "test_install_collection_dest"
     "test_upgrade_collection"
     "test_require_collection_no_cache_dir"
-    "test_runtime"
+    "test_runtime_has_playbook"
+    "test_runtime_plugins"
+    "test_scan_sys_path"
   ];
 
-  pythonImportsCheck = [
-    "ansible_compat"
-  ];
+  pythonImportsCheck = [ "ansible_compat" ];
 
   meta = with lib; {
     description = "Function collection that help interacting with various versions of Ansible";
     homepage = "https://github.com/ansible/ansible-compat";
     changelog = "https://github.com/ansible/ansible-compat/releases/tag/v${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ dawidd6 ];
   };
 }
diff --git a/pkgs/development/python-modules/ansible-kernel/default.nix b/pkgs/development/python-modules/ansible-kernel/default.nix
index dda1fe09fad42..3dd5dcba8463d 100644
--- a/pkgs/development/python-modules/ansible-kernel/default.nix
+++ b/pkgs/development/python-modules/ansible-kernel/default.nix
@@ -1,46 +1,68 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, writeText
-, ipywidgets
-, six
-, docopt
-, tqdm
-, jupyter
-, psutil
-, pyyaml
-, ansible-runner
-, ansible
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  writeText,
+  setuptools,
+  ipywidgets,
+  six,
+  docopt,
+  tqdm,
+  jupyter,
+  psutil,
+  pyyaml,
+  ansible-runner,
+  ansible,
+  python,
 }:
 
 let
-  kernelSpecFile = writeText "kernel.json" (builtins.toJSON {
-    argv = [ python.interpreter "-m" "ansible_kernel" "-f" "{connection_file}" ];
-    codemirror_mode = "yaml";
-    display_name = "Ansible";
-    language = "ansible";
-  });
+  kernelSpecFile = writeText "kernel.json" (
+    builtins.toJSON {
+      argv = [
+        python.interpreter
+        "-m"
+        "ansible_kernel"
+        "-f"
+        "{connection_file}"
+      ];
+      codemirror_mode = "yaml";
+      display_name = "Ansible";
+      language = "ansible";
+    }
+  );
 in
 buildPythonPackage rec {
   pname = "ansible-kernel";
   version = "1.0.0";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-UJjm9FpmXSznXtaIR2rVv5YJS/H83FvRkNz09vwoe0c=";
   };
 
-  propagatedBuildInputs = [ ipywidgets six docopt tqdm jupyter psutil pyyaml ansible-runner ansible ];
+  build-system = [ setuptools ];
+
+  dependencies = [
+    ipywidgets
+    six
+    docopt
+    tqdm
+    jupyter
+    psutil
+    pyyaml
+    ansible-runner
+    ansible
+  ];
 
   postPatch = ''
-   # remove when merged
-   # https://github.com/ansible/ansible-jupyter-kernel/pull/82
-   touch LICENSE.md
+    # remove when merged
+    # https://github.com/ansible/ansible-jupyter-kernel/pull/82
+    touch LICENSE.md
 
-   # remove custom install
-   sed -i "s/cmdclass={'install': Installer},//" setup.py
+    # remove custom install
+    sed -i "s/cmdclass={'install': Installer},//" setup.py
   '';
 
   # tests hang with launched kernel
@@ -53,7 +75,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "An Ansible kernel for Jupyter";
+    description = "Ansible kernel for Jupyter";
     homepage = "https://github.com/ansible/ansible-jupyter-kernel";
     license = licenses.asl20;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/ansible-navigator/default.nix b/pkgs/development/python-modules/ansible-navigator/default.nix
index 5c21792534365..5d767a4fab437 100644
--- a/pkgs/development/python-modules/ansible-navigator/default.nix
+++ b/pkgs/development/python-modules/ansible-navigator/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, pkgs
-, python3Packages
-, podman
-, oniguruma
-, fetchPypi
-, buildPythonPackage
+{
+  lib,
+  pkgs,
+  python3Packages,
+  podman,
+  oniguruma,
+  fetchPypi,
+  buildPythonPackage,
 }:
 buildPythonPackage rec {
   pname = "ansible-navigator";
-  version = "24.2.0";
+  version = "24.3.2";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-qXBhM63fFwPwo0pmEhZnZnGC8Eht8eFPfVbDkY98MGM=";
+    hash = "sha256-IAcZFisB3BOmdxZuGZ3PZcDl2CXsg6ToI/1fdPpkIXw=";
   };
 
   buildInputs = with python3Packages; [
@@ -39,7 +40,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A text-based user interface (TUI) for Ansible.";
+    description = "Text-based user interface (TUI) for Ansible";
     homepage = "https://ansible.readthedocs.io/projects/navigator/";
     license = licenses.asl20;
     maintainers = with maintainers; [ melkor333 ];
diff --git a/pkgs/development/python-modules/ansible-pylibssh/default.nix b/pkgs/development/python-modules/ansible-pylibssh/default.nix
index 068af47bca3c2..26dbb4413a9ec 100644
--- a/pkgs/development/python-modules/ansible-pylibssh/default.nix
+++ b/pkgs/development/python-modules/ansible-pylibssh/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "ansible-pylibssh";
-  version = "1.1.0";
+  version = "1.2.0.post4";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-spaGux6dYvtUtpOdU6oN7SEn8IgBof2NpQSPvr+Zplg=";
+    hash = "sha256-brnSrzSnumK32/mEON0l0iSPdoYrFwYmBc4MT7WcrX8=";
   };
 
   # Remove after https://github.com/ansible/pylibssh/pull/502 is merged
diff --git a/pkgs/development/python-modules/ansible-runner/default.nix b/pkgs/development/python-modules/ansible-runner/default.nix
index e4cb4c205d257..ab765079da972 100644
--- a/pkgs/development/python-modules/ansible-runner/default.nix
+++ b/pkgs/development/python-modules/ansible-runner/default.nix
@@ -1,61 +1,52 @@
-{ lib
-, stdenv
-, ansible-core
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, glibcLocales
-, importlib-metadata
-, mock
-, openssh
-, pbr
-, pexpect
-, psutil
-, pytest-mock
-, pytest-timeout
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, python-daemon
-, pyyaml
-, six
+{
+  lib,
+  stdenv,
+  ansible-core,
+  buildPythonPackage,
+  fetchPypi,
+  glibcLocales,
+  importlib-metadata,
+  mock,
+  openssh,
+  pexpect,
+  psutil,
+  pytest-mock,
+  pytest-timeout,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  python-daemon,
+  pyyaml,
+  setuptools,
+  setuptools-scm,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "ansible-runner";
-  version = "2.3.6";
-  format = "setuptools";
+  version = "2.4.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-shdKEtytLcLzQuqCh2iY9WigtmxTVoYAv4BXcVj8uhw=";
+    hash = "sha256-gtArJUiDDzelNRe2XII8SvNxBpQGx9ITtckEHUXgxbY=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "fix-tests.patch";
-      url = "https://github.com/ansible/ansible-runner/commit/0d522c90cfc1f305e118705a1b3335ccb9c1633d.patch";
-      hash = "sha256-eTnQkftvjK0YHU+ovotRVSuVlvaVeXp5SvYk1DPCg88=";
-      excludes = [ ".github/workflows/ci.yml" "tox.ini" ];
-    })
+  build-system = [
+    setuptools
+    setuptools-scm
   ];
 
-  nativeBuildInputs = [
-    pbr
-  ];
-
-  propagatedBuildInputs = [
+  dependencies = [
     ansible-core
     psutil
     pexpect
     python-daemon
     pyyaml
     six
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
   nativeCheckInputs = [
     ansible-core # required to place ansible CLI onto the PATH in tests
@@ -85,21 +76,20 @@ buildPythonPackage rec {
     "test_validate_pattern"
   ];
 
-  disabledTestPaths = [
-    # These tests unset PATH and then run executables like `bash` (see https://github.com/ansible/ansible-runner/pull/918)
-    "test/integration/test_runner.py"
-    "test/unit/test_runner.py"
-  ]
-  ++ lib.optionals stdenv.isDarwin [
-    # Integration tests on Darwin are not regularly passing in ansible-runner's own CI
-    "test/integration"
-    # These tests write to `/tmp` which is not writable on Darwin
-    "test/unit/config/test__base.py"
-  ];
+  disabledTestPaths =
+    [
+      # These tests unset PATH and then run executables like `bash` (see https://github.com/ansible/ansible-runner/pull/918)
+      "test/integration/test_runner.py"
+      "test/unit/test_runner.py"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # Integration tests on Darwin are not regularly passing in ansible-runner's own CI
+      "test/integration"
+      # These tests write to `/tmp` which is not writable on Darwin
+      "test/unit/config/test__base.py"
+    ];
 
-  pythonImportsCheck = [
-    "ansible_runner"
-  ];
+  pythonImportsCheck = [ "ansible_runner" ];
 
   meta = with lib; {
     description = "Helps when interfacing with Ansible";
diff --git a/pkgs/development/python-modules/ansible-vault-rw/default.nix b/pkgs/development/python-modules/ansible-vault-rw/default.nix
index 9e0005e04e858..1a772b3c639f9 100644
--- a/pkgs/development/python-modules/ansible-vault-rw/default.nix
+++ b/pkgs/development/python-modules/ansible-vault-rw/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, ansible-core
+  # dependencies
+  ansible-core,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     hash = "sha256-XOj9tUcPFEm3a/B64qvFZIDa1INWrkBchbaG77ZNvV4";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    ansible-core
-  ];
+  propagatedBuildInputs = [ ansible-core ];
 
   # Otherwise tests will fail to create directory
   # Permission denied: '/homeless-shelter'
@@ -40,15 +37,12 @@ buildPythonPackage rec {
   # no tests in sdist, no 2.1.0 tag on git
   doCheck = false;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "This project aim to R/W an ansible-vault yaml file.";
+    description = "This project aim to R/W an ansible-vault yaml file";
     homepage = "https://github.com/tomoh1r/ansible-vault";
-    changelog =
-      "https://github.com/tomoh1r/ansible-vault/blob/master/CHANGES.txt";
+    changelog = "https://github.com/tomoh1r/ansible-vault/blob/master/CHANGES.txt";
     license = licenses.gpl3;
     maintainers = with maintainers; [ StillerHarpo ];
   };
diff --git a/pkgs/development/python-modules/ansible/core.nix b/pkgs/development/python-modules/ansible/core.nix
index dccf9ede2253b..8caf7e1e6274c 100644
--- a/pkgs/development/python-modules/ansible/core.nix
+++ b/pkgs/development/python-modules/ansible/core.nix
@@ -1,30 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pythonRelaxDepsHook
-, installShellFiles
-, docutils
-, ansible
-, cryptography
-, importlib-resources
-, jinja2
-, junit-xml
-, lxml
-, ncclient
-, packaging
-, paramiko
-, ansible-pylibssh
-, passlib
-, pexpect
-, psutil
-, pycrypto
-, pyyaml
-, requests
-, resolvelib
-, scp
-, windowsSupport ? false, pywinrm
-, xmltodict
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  installShellFiles,
+  docutils,
+  ansible,
+  cryptography,
+  importlib-resources,
+  jinja2,
+  junit-xml,
+  lxml,
+  ncclient,
+  packaging,
+  paramiko,
+  ansible-pylibssh,
+  passlib,
+  pexpect,
+  psutil,
+  pycrypto,
+  pyyaml,
+  requests,
+  resolvelib,
+  scp,
+  windowsSupport ? false,
+  pywinrm,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
@@ -49,41 +50,36 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     installShellFiles
     docutils
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = [
-    # depend on ansible instead of the other way around
-    ansible
-    # from requirements.txt
-    cryptography
-    jinja2
-    packaging
-    passlib
-    pyyaml
-    resolvelib
-    # optional dependencies
-    junit-xml
-    lxml
-    ncclient
-    paramiko
-    ansible-pylibssh
-    pexpect
-    psutil
-    pycrypto
-    requests
-    scp
-    xmltodict
-  ] ++ lib.optionals windowsSupport [
-    pywinrm
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-resources
-  ];
+  propagatedBuildInputs =
+    [
+      # depend on ansible instead of the other way around
+      ansible
+      # from requirements.txt
+      cryptography
+      jinja2
+      packaging
+      passlib
+      pyyaml
+      resolvelib
+      # optional dependencies
+      junit-xml
+      lxml
+      ncclient
+      paramiko
+      ansible-pylibssh
+      pexpect
+      psutil
+      pycrypto
+      requests
+      scp
+      xmltodict
+    ]
+    ++ lib.optionals windowsSupport [ pywinrm ]
+    ++ lib.optionals (pythonOlder "3.10") [ importlib-resources ];
 
-  pythonRelaxDeps = lib.optionals (pythonOlder "3.10") [
-    "importlib-resources"
-  ];
+  pythonRelaxDeps = lib.optionals (pythonOlder "3.10") [ "importlib-resources" ];
 
   postInstall = ''
     export HOME="$(mktemp -d)"
diff --git a/pkgs/development/python-modules/ansible/default.nix b/pkgs/development/python-modules/ansible/default.nix
index 321cf23c26716..2dd2567589f24 100644
--- a/pkgs/development/python-modules/ansible/default.nix
+++ b/pkgs/development/python-modules/ansible/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, pythonOlder
-, buildPythonPackage
-, fetchPypi
-, jsonschema
-, jxmlease
-, ncclient
-, netaddr
-, paramiko
-, ansible-pylibssh
-, pynetbox
-, scp
-, textfsm
-, ttp
-, xmltodict
+{
+  lib,
+  pythonOlder,
+  buildPythonPackage,
+  fetchPypi,
+  jsonschema,
+  jxmlease,
+  ncclient,
+  netaddr,
+  paramiko,
+  ansible-pylibssh,
+  pynetbox,
+  scp,
+  textfsm,
+  ttp,
+  xmltodict,
 
-# optionals
-, withJunos ? false
-, withNetbox ? false
+  # optionals
+  withJunos ? false,
+  withNetbox ? false,
 }:
 
 let
   pname = "ansible";
-  version = "9.5.1";
+  version = "10.1.0";
 in
 buildPythonPackage {
   inherit pname version;
@@ -31,7 +32,7 @@ buildPythonPackage {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-PCeLyWQrl/yVOyugW5nNgIAedb81Z9+qHLUTH+DsHs0=";
+    hash = "sha256-fYxEVX9XBocwbhnQ4ylq0jBZPLEr2jXc/JJ0pgY68io=";
   };
 
   postPatch = ''
@@ -39,38 +40,42 @@ buildPythonPackage {
     sed -Ei '/ansible-core/d' setup.py
   '';
 
-  propagatedBuildInputs = lib.unique ([
-    # Support ansible collections by default, make all others optional
-    # ansible.netcommon
-    jxmlease
-    ncclient
-    netaddr
-    paramiko
-    ansible-pylibssh
-    xmltodict
-    # ansible.posix
-    # ansible.utils
-    jsonschema
-    textfsm
-    ttp
-    xmltodict
-    # ansible.windows
+  propagatedBuildInputs = lib.unique (
+    [
+      # Support ansible collections by default, make all others optional
+      # ansible.netcommon
+      jxmlease
+      ncclient
+      netaddr
+      paramiko
+      ansible-pylibssh
+      xmltodict
+      # ansible.posix
+      # ansible.utils
+      jsonschema
+      textfsm
+      ttp
+      xmltodict
+      # ansible.windows
 
-    # lots of collections with dedicated requirements.txt and pyproject.toml files,
-    # add the dependencies for the collections you need conditionally and install
-    # ansible using overrides to enable the collections you need.
-  ] ++ lib.optionals (withJunos) [
-    # ansible_collections/junipernetworks/junos/requirements.txt
-    jxmlease
-    ncclient
-    paramiko
-    ansible-pylibssh
-    scp
-    xmltodict
-  ] ++ lib.optionals (withNetbox) [
-    # ansible_collections/netbox/netbox/pyproject.toml
-    pynetbox
-  ]);
+      # lots of collections with dedicated requirements.txt and pyproject.toml files,
+      # add the dependencies for the collections you need conditionally and install
+      # ansible using overrides to enable the collections you need.
+    ]
+    ++ lib.optionals (withJunos) [
+      # ansible_collections/junipernetworks/junos/requirements.txt
+      jxmlease
+      ncclient
+      paramiko
+      ansible-pylibssh
+      scp
+      xmltodict
+    ]
+    ++ lib.optionals (withNetbox) [
+      # ansible_collections/netbox/netbox/pyproject.toml
+      pynetbox
+    ]
+  );
 
   # don't try and fail to strip 48000+ non strippable files, it takes >5 minutes!
   dontStrip = true;
diff --git a/pkgs/development/python-modules/ansicolor/default.nix b/pkgs/development/python-modules/ansicolor/default.nix
index 8ec12d37f5989..95f78fcec2391 100644
--- a/pkgs/development/python-modules/ansicolor/default.nix
+++ b/pkgs/development/python-modules/ansicolor/default.nix
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ansicolor" ];
 
   meta = with lib; {
-    description = "A library to produce ansi color output and colored highlighting and diffing";
+    description = "Library to produce ansi color output and colored highlighting and diffing";
     homepage = "https://github.com/numerodix/ansicolor/";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/ansicolors/default.nix b/pkgs/development/python-modules/ansicolors/default.nix
index ddedef72916af..bf07d4c883d72 100644
--- a/pkgs/development/python-modules/ansicolors/default.nix
+++ b/pkgs/development/python-modules/ansicolors/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "ansicolors";
diff --git a/pkgs/development/python-modules/ansiconv/default.nix b/pkgs/development/python-modules/ansiconv/default.nix
index ae240be309960..4e5a82dc33398 100644
--- a/pkgs/development/python-modules/ansiconv/default.nix
+++ b/pkgs/development/python-modules/ansiconv/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "ansiconv";
@@ -15,10 +20,9 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytest ];
 
   meta = with lib; {
-    description = "A module for converting ANSI coded text and converts it to either plain text or HTML";
+    description = "Module for converting ANSI coded text and converts it to either plain text or HTML";
     homepage = "https://github.com/ansible/ansiconv";
     license = licenses.mit;
     maintainers = with maintainers; [ psyanticy ];
   };
-
 }
diff --git a/pkgs/development/python-modules/ansimarkup/default.nix b/pkgs/development/python-modules/ansimarkup/default.nix
index 9e4ed625ba199..2f0a1f8501035 100644
--- a/pkgs/development/python-modules/ansimarkup/default.nix
+++ b/pkgs/development/python-modules/ansimarkup/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, colorama
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  colorama,
 }:
 
 buildPythonPackage rec {
@@ -24,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ansimarkup" ];
 
   meta = with lib; {
-    description = "An XML-like markup for producing colored terminal text.";
+    description = "XML-like markup for producing colored terminal text";
     homepage = "https://github.com/gvalkov/python-ansimarkup";
     license = licenses.bsd3;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/development/python-modules/ansiwrap/default.nix b/pkgs/development/python-modules/ansiwrap/default.nix
index 8dbfa99687c86..c80d24d1c9b63 100644
--- a/pkgs/development/python-modules/ansiwrap/default.nix
+++ b/pkgs/development/python-modules/ansiwrap/default.nix
@@ -1,45 +1,45 @@
-{ lib
-, ansicolors
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, textwrap3
+{
+  lib,
+  ansicolors,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
+  textwrap3,
 }:
 
 buildPythonPackage rec {
   pname = "ansiwrap";
   version = "0.8.4";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
 
   src = fetchPypi {
     inherit pname version;
     extension = "zip";
-    sha256 = "ca0c740734cde59bf919f8ff2c386f74f9a369818cdc60efe94893d01ea8d9b7";
+    hash = "sha256-ygx0BzTN5Zv5Gfj/LDhvdPmjaYGM3GDv6UiT0B6o2bc=";
   };
 
   postPatch = ''
     # https://github.com/jonathaneunice/ansiwrap/issues/18
     substituteInPlace test/test_ansiwrap.py \
-      --replace "set(range(20, 120)).difference(LINE_LENGTHS)" "sorted(set(range(20, 120)).difference(LINE_LENGTHS))" \
-      --replace "set(range(120, 400)).difference(LINE_LENGTHS)" "sorted(set(range(120, 400)).difference(LINE_LENGTHS))"
+      --replace-fail "set(range(20, 120)).difference(LINE_LENGTHS)" "sorted(set(range(20, 120)).difference(LINE_LENGTHS))" \
+      --replace-fail "set(range(120, 400)).difference(LINE_LENGTHS)" "sorted(set(range(120, 400)).difference(LINE_LENGTHS))"
   '';
 
-  checkInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [ textwrap3 ];
+
+  nativeCheckInputs = [
     ansicolors
     pytestCheckHook
   ];
 
-  propagatedBuildInputs = [
-    textwrap3
-  ];
-
-  pythonImportsCheck = [
-    "ansiwrap"
-  ];
+  pythonImportsCheck = [ "ansiwrap" ];
 
   meta = with lib; {
     description = "Textwrap, but savvy to ANSI colors and styles";
diff --git a/pkgs/development/python-modules/anthemav/default.nix b/pkgs/development/python-modules/anthemav/default.nix
index 00642f8cb157f..095cd790b8c45 100644
--- a/pkgs/development/python-modules/anthemav/default.nix
+++ b/pkgs/development/python-modules/anthemav/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "anthemav"
-  ];
+  pythonImportsCheck = [ "anthemav" ];
 
   meta = with lib; {
     description = "Python asyncio module to interface with Anthem AVM and MRX receivers";
diff --git a/pkgs/development/python-modules/anthropic/default.nix b/pkgs/development/python-modules/anthropic/default.nix
index 5eef6a51010a4..07ac6c3081b77 100644
--- a/pkgs/development/python-modules/anthropic/default.nix
+++ b/pkgs/development/python-modules/anthropic/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "anthropic";
-  version = "0.25.6";
+  version = "0.28.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "anthropics";
     repo = "anthropic-sdk-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-83TufOgu6W9UvoCEUgDiw6gXDAdwyIKEALVF0hjj6wk=";
+    hash = "sha256-n5Vmi2frUdSbrmulopwUlIO+blkf7cANoKTaTFZQdjw=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/antlr4-python3-runtime/default.nix b/pkgs/development/python-modules/antlr4-python3-runtime/default.nix
index 70fa4e6da2fa1..2c446ac30517a 100644
--- a/pkgs/development/python-modules/antlr4-python3-runtime/default.nix
+++ b/pkgs/development/python-modules/antlr4-python3-runtime/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, setuptools
-, python
-, antlr4
+{
+  lib,
+  buildPythonPackage,
+  setuptools,
+  python,
+  antlr4,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
 
   sourceRoot = "${src.name}/runtime/Python3";
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   postPatch = ''
     substituteInPlace tests/TestIntervalSet.py \
diff --git a/pkgs/development/python-modules/anyascii/default.nix b/pkgs/development/python-modules/anyascii/default.nix
index d781a552cca10..9a7b8d71bd46f 100644
--- a/pkgs/development/python-modules/anyascii/default.nix
+++ b/pkgs/development/python-modules/anyascii/default.nix
@@ -1,24 +1,21 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "anyascii";
   version = "0.3.2";
   format = "setuptools";
-  disabled = pythonOlder "3.3";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-nV0y74RP4iW4vHy6f5UFNPrk2iepvzpr6iyw6kbORzA=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     changelog = "https://github.com/anyascii/anyascii/blob/${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/anybadge/default.nix b/pkgs/development/python-modules/anybadge/default.nix
index 0418de37a2514..8bb9f80cfd3a0 100644
--- a/pkgs/development/python-modules/anybadge/default.nix
+++ b/pkgs/development/python-modules/anybadge/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, packaging
-, pytestCheckHook
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  packaging,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
   # setup.py reads its version from the TRAVIS_TAG environment variable
   TRAVIS_TAG = "v${version}";
 
-  propagatedBuildInputs = [
-    packaging
-  ];
+  propagatedBuildInputs = [ packaging ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -43,9 +42,7 @@ buildPythonPackage rec {
     "tests/test_server.py"
   ];
 
-  pythonImportsCheck = [
-    "anybadge"
-  ];
+  pythonImportsCheck = [ "anybadge" ];
 
   meta = with lib; {
     description = "Python tool for generating badges for your projects";
diff --git a/pkgs/development/python-modules/anyconfig/default.nix b/pkgs/development/python-modules/anyconfig/default.nix
index b0e673969a5b2..9d4d0ed58203a 100644
--- a/pkgs/development/python-modules/anyconfig/default.nix
+++ b/pkgs/development/python-modules/anyconfig/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-, pytestCheckHook
-, setuptools
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     sed -i '/addopts =/d' setup.cfg
   '';
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  propagatedBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # OSError: /build/anyconfig-0.12.0/tests/res/cli/no_template/10/e/10.* should exists but not
diff --git a/pkgs/development/python-modules/anyio/default.nix b/pkgs/development/python-modules/anyio/default.nix
index c5e6d20acb6b7..3c1492c98223a 100644
--- a/pkgs/development/python-modules/anyio/default.nix
+++ b/pkgs/development/python-modules/anyio/default.nix
@@ -1,30 +1,34 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-
-# build-system
-, setuptools
-, setuptools-scm
-
-# dependencies
-, exceptiongroup
-, idna
-, sniffio
-, typing-extensions
-
-# optionals
-, trio
-
-# tests
-, hypothesis
-, psutil
-, pytest-mock
-, pytest-xdist
-, pytestCheckHook
-, trustme
-, uvloop
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+  setuptools-scm,
+
+  # dependencies
+  exceptiongroup,
+  idna,
+  sniffio,
+  typing-extensions,
+
+  # optionals
+  trio,
+
+  # tests
+  hypothesis,
+  psutil,
+  pytest-mock,
+  pytest-xdist,
+  pytestCheckHook,
+  trustme,
+  uvloop,
+
+  # smoke tests
+  starlette,
 }:
 
 buildPythonPackage rec {
@@ -46,18 +50,18 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    idna
-    sniffio
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    exceptiongroup
-    typing-extensions
-  ];
+  propagatedBuildInputs =
+    [
+      idna
+      sniffio
+    ]
+    ++ lib.optionals (pythonOlder "3.11") [
+      exceptiongroup
+      typing-extensions
+    ];
 
   passthru.optional-dependencies = {
-    trio = [
-      trio
-    ];
+    trio = [ trio ];
   };
 
   # trustme uses pyopenssl
@@ -75,8 +79,10 @@ buildPythonPackage rec {
   ] ++ passthru.optional-dependencies.trio;
 
   pytestFlagsArray = [
-    "-W" "ignore::trio.TrioDeprecationWarning"
-    "-m" "'not network'"
+    "-W"
+    "ignore::trio.TrioDeprecationWarning"
+    "-m"
+    "'not network'"
   ];
 
   disabledTests = lib.optionals (stdenv.isx86_64 && stdenv.isDarwin) [
@@ -91,9 +97,11 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [
-    "anyio"
-  ];
+  pythonImportsCheck = [ "anyio" ];
+
+  passthru.tests = {
+    inherit starlette;
+  };
 
   meta = with lib; {
     changelog = "https://github.com/agronholm/anyio/blob/${src.rev}/docs/versionhistory.rst";
diff --git a/pkgs/development/python-modules/anyqt/default.nix b/pkgs/development/python-modules/anyqt/default.nix
index 584b1dcf4233b..f1e88064955dd 100644
--- a/pkgs/development/python-modules/anyqt/default.nix
+++ b/pkgs/development/python-modules/anyqt/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyqt5
-, pytestCheckHook
-, nix-update-script
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyqt5,
+  pytestCheckHook,
+  nix-update-script,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,10 @@ buildPythonPackage rec {
     hash = "sha256-dL2EUAMzWKq/oN3rXiEC6emDJddmg4KclT5ONKA0jfk=";
   };
 
-  nativeCheckInputs = [ pyqt5 pytestCheckHook ];
+  nativeCheckInputs = [
+    pyqt5
+    pytestCheckHook
+  ];
 
   # All of these fail because Qt modules cannot be imported
   disabledTestPaths = [
diff --git a/pkgs/development/python-modules/anysqlite/default.nix b/pkgs/development/python-modules/anysqlite/default.nix
index bf6cb41a79164..26e5b43a83710 100644
--- a/pkgs/development/python-modules/anysqlite/default.nix
+++ b/pkgs/development/python-modules/anysqlite/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, anyio
-, buildPythonPackage
-, fetchFromGitHub
-, hatch-fancy-pypi-readme
-, hatchling
-, pytestCheckHook
-, pythonOlder
-, trio
+{
+  lib,
+  anyio,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatch-fancy-pypi-readme,
+  hatchling,
+  pytestCheckHook,
+  pythonOlder,
+  trio,
 }:
 
 buildPythonPackage rec {
@@ -28,18 +29,14 @@ buildPythonPackage rec {
     hatchling
   ];
 
-  propagatedBuildInputs = [
-    anyio
-  ];
+  propagatedBuildInputs = [ anyio ];
 
   nativeCheckInputs = [
     pytestCheckHook
     trio
   ];
 
-  pythonImportsCheck = [
-    "anysqlite"
-  ];
+  pythonImportsCheck = [ "anysqlite" ];
 
   meta = with lib; {
     description = "Sqlite3 for asyncio and trio";
diff --git a/pkgs/development/python-modules/anytree/default.nix b/pkgs/development/python-modules/anytree/default.nix
index 0fe64bbe8f626..5be671d31e2ba 100644
--- a/pkgs/development/python-modules/anytree/default.nix
+++ b/pkgs/development/python-modules/anytree/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fontconfig
-, graphviz
-, poetry-core
-, pytest7CheckHook
-, pythonOlder
-, six
-, substituteAll
-, withGraphviz ? true
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fontconfig,
+  graphviz,
+  poetry-core,
+  pytest7CheckHook,
+  pythonOlder,
+  six,
+  substituteAll,
+  withGraphviz ? true,
 }:
 
 buildPythonPackage rec {
@@ -32,17 +33,11 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  nativeCheckInputs = [
-    pytest7CheckHook
-  ];
+  nativeCheckInputs = [ pytest7CheckHook ];
 
   # Tests print “Fontconfig error: Cannot load default config file”
   preCheck = lib.optionalString withGraphviz ''
@@ -52,9 +47,7 @@ buildPythonPackage rec {
   # Circular dependency anytree → graphviz → pango → glib → gtk-doc → anytree
   doCheck = withGraphviz;
 
-  pythonImportsCheck = [
-    "anytree"
-  ];
+  pythonImportsCheck = [ "anytree" ];
 
   meta = with lib; {
     description = "Powerful and Lightweight Python Tree Data Structure";
diff --git a/pkgs/development/python-modules/anywidget/default.nix b/pkgs/development/python-modules/anywidget/default.nix
index 767fc775851d1..03b41c11e2515 100644
--- a/pkgs/development/python-modules/anywidget/default.nix
+++ b/pkgs/development/python-modules/anywidget/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, hatch-jupyter-builder
-, hatchling
-, importlib-metadata
-, ipywidgets
-, psygnal
-, typing-extensions
-, watchfiles
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  hatch-jupyter-builder,
+  hatchling,
+  importlib-metadata,
+  ipywidgets,
+  psygnal,
+  typing-extensions,
+  watchfiles,
 }:
 
 buildPythonPackage rec {
   pname = "anywidget";
-  version = "0.9.10";
+  version = "0.9.12";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-OQpigkCYHAmBPHUjJ53cq4L/T9Moet1UM7eLE2kIkGg=";
+    hash = "sha256-JYVbJJbcZUE1a20mygyflSUgO7fPKBf4S5O/4/U8+B4=";
   };
 
   # We do not need the jupyterlab build dependency, because we do not need to
@@ -48,6 +49,11 @@ buildPythonPackage rec {
     watchfiles
   ];
 
+  disabledTests = [
+    # requires package.json
+    "test_version"
+  ];
+
   pythonImportsCheck = [ "anywidget" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/aocd-example-parser/default.nix b/pkgs/development/python-modules/aocd-example-parser/default.nix
index c2379aa914e15..de56bb7f0698e 100644
--- a/pkgs/development/python-modules/aocd-example-parser/default.nix
+++ b/pkgs/development/python-modules/aocd-example-parser/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-iOxqzZj29aY/xyigir1KOU6GcBBvnlxEOBLHChEQjf4=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   # Circular dependency with aocd
   # pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/aocd/default.nix b/pkgs/development/python-modules/aocd/default.nix
index 1b56736028b89..3a6c506f6b11b 100644
--- a/pkgs/development/python-modules/aocd/default.nix
+++ b/pkgs/development/python-modules/aocd/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, stdenv
-, aocd-example-parser
-, beautifulsoup4
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, pebble
-, pook
-, pytest-freezegun
-, pytest-mock
-, pytest-raisin
-, pytest-socket
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, requests
-, requests-mock
-, rich
-, setuptools
-, termcolor
-, tzlocal
+{
+  lib,
+  stdenv,
+  aocd-example-parser,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  pebble,
+  pook,
+  pytest-freezegun,
+  pytest-mock,
+  pytest-raisin,
+  pytest-socket,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  requests,
+  requests-mock,
+  rich,
+  setuptools,
+  termcolor,
+  tzlocal,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
     hash = "sha256-YZvcR97uHceloqwoP+azaBmj3GLusYNbItLIaeJ3QD0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aocd-example-parser
@@ -101,9 +100,7 @@ buildPythonPackage rec {
     "test_submit_float_warns"
   ];
 
-  pythonImportsCheck = [
-    "aocd"
-  ];
+  pythonImportsCheck = [ "aocd" ];
 
   meta = with lib; {
     description = "Get your Advent of Code data with a single import statement";
diff --git a/pkgs/development/python-modules/apache-beam/default.nix b/pkgs/development/python-modules/apache-beam/default.nix
index fead79054b365..f1ad42c81d9cd 100644
--- a/pkgs/development/python-modules/apache-beam/default.nix
+++ b/pkgs/development/python-modules/apache-beam/default.nix
@@ -1,62 +1,62 @@
-{ buildPythonPackage
-, cloudpickle
-, crcmod
-, cython
-, dill
-, fastavro
-, fasteners
-, fetchFromGitHub
-, fetchpatch
-, freezegun
-, grpcio
-, grpcio-tools
-, hdfs
-, httplib2
-, hypothesis
-, lib
-, mock
-, mypy-protobuf
-, numpy
-, objsize
-, orjson
-, pandas
-, parameterized
-, proto-plus
-, protobuf
-, psycopg2
-, pyarrow
-, pydot
-, pyhamcrest
-, pymongo
-, pytest-xdist
-, pytestCheckHook
-, python
-, python-dateutil
-, pythonRelaxDepsHook
-, pytz
-, pyyaml
-, regex
-, requests
-, requests-mock
-, scikit-learn
-, setuptools
-, sqlalchemy
-, tenacity
-, testcontainers
-, typing-extensions
-, zstandard
+{
+  buildPythonPackage,
+  cloudpickle,
+  crcmod,
+  cython,
+  dill,
+  fastavro,
+  fasteners,
+  fetchFromGitHub,
+  fetchpatch,
+  freezegun,
+  grpcio,
+  grpcio-tools,
+  hdfs,
+  httplib2,
+  hypothesis,
+  lib,
+  mock,
+  mypy-protobuf,
+  numpy,
+  objsize,
+  orjson,
+  pandas,
+  parameterized,
+  proto-plus,
+  protobuf,
+  psycopg2,
+  pyarrow,
+  pydot,
+  pyhamcrest,
+  pymongo,
+  pytest-xdist,
+  pytestCheckHook,
+  python,
+  python-dateutil,
+  pytz,
+  pyyaml,
+  regex,
+  requests,
+  requests-mock,
+  scikit-learn,
+  setuptools,
+  sqlalchemy,
+  tenacity,
+  testcontainers,
+  typing-extensions,
+  zstandard,
 }:
 
 buildPythonPackage rec {
   pname = "apache-beam";
-  version = "2.54.0";
+  version = "2.56.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "apache";
     repo = "beam";
     rev = "refs/tags/v${version}";
-    hash = "sha256-DcqYBPAS+yUqTJLUem8+2OqRUzb6DoBOeRkMjmvuvws=";
+    hash = "sha256-SD+93duc3vTIlS/LPOuzXeiUSpwX+GNrqW3GTJMVgKY=";
   };
 
   patches = [
@@ -95,7 +95,6 @@ buildPythonPackage rec {
     cython
     grpcio-tools
     mypy-protobuf
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -126,9 +125,7 @@ buildPythonPackage rec {
 
   enableParallelBuilding = true;
 
-  pythonImportsCheck = [
-    "apache_beam"
-  ];
+  pythonImportsCheck = [ "apache_beam" ];
 
   checkInputs = [
     freezegun
diff --git a/pkgs/development/python-modules/apcaccess/default.nix b/pkgs/development/python-modules/apcaccess/default.nix
index b93a91c3090ba..5fb60a8c6f82c 100644
--- a/pkgs/development/python-modules/apcaccess/default.nix
+++ b/pkgs/development/python-modules/apcaccess/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +22,9 @@ buildPythonPackage rec {
       --replace "setup_requires='pytest-runner'," ""
   '';
 
-  pythonImportsCheck = [
-    "apcaccess"
-  ];
+  pythonImportsCheck = [ "apcaccess" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Library offers programmatic access to the status information provided by apcupsd over its Network Information Server";
diff --git a/pkgs/development/python-modules/apipkg/default.nix b/pkgs/development/python-modules/apipkg/default.nix
index b37c1b11fe6fe..e3cf3a0c7757a 100644
--- a/pkgs/development/python-modules/apipkg/default.nix
+++ b/pkgs/development/python-modules/apipkg/default.nix
@@ -1,39 +1,34 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatch-vcs
-, hatchling
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatch-vcs,
+  hatchling,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "apipkg";
   version = "3.0.2";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pytest-dev";
-    repo = pname;
+    repo = "apipkg";
     rev = "refs/tags/v${version}";
     hash = "sha256-ANLD7fUMKN3RmAVjVkcpwUH6U9ASalXdwKtPpoC8Urs=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     hatch-vcs
     hatchling
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "test_apipkg.py"
-  ];
+  pytestFlagsArray = [ "test_apipkg.py" ];
 
-  pythonImportsCheck = [
-    "apipkg"
-  ];
+  pythonImportsCheck = [ "apipkg" ];
 
   meta = with lib; {
     changelog = "https://github.com/pytest-dev/apipkg/blob/main/CHANGELOG";
diff --git a/pkgs/development/python-modules/apischema/default.nix b/pkgs/development/python-modules/apischema/default.nix
index eb385ccaf90e1..1034d1d02160a 100644
--- a/pkgs/development/python-modules/apischema/default.nix
+++ b/pkgs/development/python-modules/apischema/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, graphql-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  graphql-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
   };
 
   passthru.optional-dependencies = {
-    graphql = [
-      graphql-core
-    ];
+    graphql = [ graphql-core ];
   };
 
   nativeCheckInputs = [
@@ -32,9 +31,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "apischema"
-  ];
+  pythonImportsCheck = [ "apischema" ];
 
   meta = with lib; {
     description = "JSON (de)serialization, GraphQL and JSON schema generation using typing";
diff --git a/pkgs/development/python-modules/apispec-webframeworks/default.nix b/pkgs/development/python-modules/apispec-webframeworks/default.nix
index 66e45f0a15f99..3953083d41a6f 100644
--- a/pkgs/development/python-modules/apispec-webframeworks/default.nix
+++ b/pkgs/development/python-modules/apispec-webframeworks/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, apispec
-, bottle
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, flask
-, mock
-, pytestCheckHook
-, pythonOlder
-, tornado
+{
+  lib,
+  aiohttp,
+  apispec,
+  bottle,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  flask,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
+  tornado,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     hash = "sha256-qepiaRW36quIgxBtEHMF3HN0wO6jp2uGAHgg5fJoMUY=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    apispec
-  ] ++ apispec.optional-dependencies.yaml;
+  propagatedBuildInputs = [ apispec ] ++ apispec.optional-dependencies.yaml;
 
   nativeCheckInputs = [
     aiohttp
@@ -43,9 +40,7 @@ buildPythonPackage rec {
     tornado
   ];
 
-  pythonImportsCheck = [
-    "apispec_webframeworks"
-  ];
+  pythonImportsCheck = [ "apispec_webframeworks" ];
 
   meta = with lib; {
     description = "Web framework plugins for apispec";
diff --git a/pkgs/development/python-modules/apispec/default.nix b/pkgs/development/python-modules/apispec/default.nix
index b3df151c0c51e..f64100ce676d9 100644
--- a/pkgs/development/python-modules/apispec/default.nix
+++ b/pkgs/development/python-modules/apispec/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, marshmallow
-, mock
-, openapi-spec-validator
-, packaging
-, prance
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  marshmallow,
+  mock,
+  openapi-spec-validator,
+  packaging,
+  prance,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,21 +26,13 @@ buildPythonPackage rec {
     hash = "sha256-9cqkfO51/gO5xQtVlASLTAUu7KLCEuDawS27YXXZplk=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    packaging
-  ];
+  propagatedBuildInputs = [ packaging ];
 
   passthru.optional-dependencies = {
-    marshmallow = [
-      marshmallow
-    ];
-    yaml = [
-      pyyaml
-    ];
+    marshmallow = [ marshmallow ];
+    yaml = [ pyyaml ];
     validation = [
       openapi-spec-validator
       prance
@@ -51,13 +44,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "apispec"
-  ];
+  pythonImportsCheck = [ "apispec" ];
 
   meta = with lib; {
     changelog = "https://github.com/marshmallow-code/apispec/blob/${version}/CHANGELOG.rst";
-    description = "A pluggable API specification generator with support for the OpenAPI Specification";
+    description = "Pluggable API specification generator with support for the OpenAPI Specification";
     homepage = "https://github.com/marshmallow-code/apispec";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/apkinspector/default.nix b/pkgs/development/python-modules/apkinspector/default.nix
index 925845c73da3f..95bffbe4854bd 100644
--- a/pkgs/development/python-modules/apkinspector/default.nix
+++ b/pkgs/development/python-modules/apkinspector/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "apkinspector";
-  version = "1.2.3";
+  version = "1.2.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "erev0s";
     repo = "apkInspector";
     rev = "refs/tags/v${version}";
-    hash = "sha256-n6uVyN5XBEM/nuN7mvhNRwMUgUT5abOsh3CbhKK6ifY=";
+    hash = "sha256-WVqaRWOLo8/Xav+AtaxE3EKR9lZe+Z+ep/K88FGbASg=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/apkit/default.nix b/pkgs/development/python-modules/apkit/default.nix
index 7e2c45ca8bc75..ab07a00ddb46a 100644
--- a/pkgs/development/python-modules/apkit/default.nix
+++ b/pkgs/development/python-modules/apkit/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  scipy,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/aplpy/default.nix b/pkgs/development/python-modules/aplpy/default.nix
index 14141cf72d366..f786f70b0c8a1 100644
--- a/pkgs/development/python-modules/aplpy/default.nix
+++ b/pkgs/development/python-modules/aplpy/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, astropy
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, matplotlib
-, numpy
-, pillow
-, pyavm
-, pyregion
-, pytest-astropy
-, pytestCheckHook
-, pythonOlder
-, reproject
-, scikit-image
-, setuptools
-, setuptools-scm
-, shapely
-, wheel
+{
+  lib,
+  astropy,
+  buildPythonPackage,
+  fetchpatch,
+  fetchPypi,
+  matplotlib,
+  numpy,
+  pillow,
+  pyavm,
+  pyregion,
+  pytest-astropy,
+  pytestCheckHook,
+  pythonOlder,
+  reproject,
+  scikit-image,
+  setuptools,
+  setuptools-scm,
+  shapely,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -73,12 +74,10 @@ buildPythonPackage rec {
     OPENMP_EXPECTED=0
   '';
 
-  pythonImportsCheck = [
-    "aplpy"
-  ];
+  pythonImportsCheck = [ "aplpy" ];
 
   meta = with lib; {
-    description = "The Astronomical Plotting Library in Python";
+    description = "Astronomical Plotting Library in Python";
     homepage = "http://aplpy.github.io";
     license = licenses.mit;
     maintainers = with maintainers; [ smaret ];
diff --git a/pkgs/development/python-modules/app-model/default.nix b/pkgs/development/python-modules/app-model/default.nix
index 7dc1c65349eaf..bf2130e224176 100644
--- a/pkgs/development/python-modules/app-model/default.nix
+++ b/pkgs/development/python-modules/app-model/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatch-vcs
-, hatchling
-, in-n-out
-, psygnal
-, pydantic
-, pydantic-compat
-, pytestCheckHook
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatch-vcs,
+  hatchling,
+  in-n-out,
+  psygnal,
+  pydantic,
+  pydantic-compat,
+  pytestCheckHook,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "app-model";
-  version = "0.2.6";
+  version = "0.2.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,15 +24,15 @@ buildPythonPackage rec {
     owner = "pyapp-kit";
     repo = "app-model";
     rev = "refs/tags/v${version}";
-    hash = "sha256-EMlxY9Xna9e3kWJ7X8oRuLHEmivwVFcEXRDvZfN2rNY=";
+    hash = "sha256-ISMSt7c8CoxffMhg7XC/ebKkgXFTBihDr1fGkqMCBoc=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     hatch-vcs
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     psygnal
     pydantic
     pydantic-compat
@@ -39,13 +40,9 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "app_model"
-  ];
+  pythonImportsCheck = [ "app_model" ];
 
   meta = with lib; {
     description = "Module to implement generic application schema";
diff --git a/pkgs/development/python-modules/appdirs/default.nix b/pkgs/development/python-modules/appdirs/default.nix
index 1f2da03eae041..dff911c89dae9 100644
--- a/pkgs/development/python-modules/appdirs/default.nix
+++ b/pkgs/development/python-modules/appdirs/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -14,7 +15,7 @@ buildPythonPackage rec {
   };
 
   meta = {
-    description = "A python module for determining appropriate platform-specific dirs";
+    description = "Python module for determining appropriate platform-specific dirs";
     homepage = "https://github.com/ActiveState/appdirs";
     license = lib.licenses.mit;
   };
diff --git a/pkgs/development/python-modules/apple-weatherkit/default.nix b/pkgs/development/python-modules/apple-weatherkit/default.nix
index ce5bce13d5f78..60cfd6d9e71ea 100644
--- a/pkgs/development/python-modules/apple-weatherkit/default.nix
+++ b/pkgs/development/python-modules/apple-weatherkit/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, aiohttp
-, aiohttp-retry
-, pythonOlder
-, pyjwt
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  aiohttp,
+  aiohttp-retry,
+  pythonOlder,
+  pyjwt,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-w3KinicaF01I6fIidI7XYHpB8eq52RTUw/BMLrx6Grk=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -35,9 +34,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "apple_weatherkit"
-  ];
+  pythonImportsCheck = [ "apple_weatherkit" ];
 
   meta = with lib; {
     description = "Python library for Apple WeatherKit";
diff --git a/pkgs/development/python-modules/applicationinsights/default.nix b/pkgs/development/python-modules/applicationinsights/default.nix
index 3dd3ccf4d36ba..9c4021bbad372 100644
--- a/pkgs/development/python-modules/applicationinsights/default.nix
+++ b/pkgs/development/python-modules/applicationinsights/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
-, portalocker
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+  portalocker,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/appnope/default.nix b/pkgs/development/python-modules/appnope/default.nix
index bb72bbc8e73e6..19a9263a0697f 100644
--- a/pkgs/development/python-modules/appnope/default.nix
+++ b/pkgs/development/python-modules/appnope/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-JYzNOPD1ofOrtZK5TTKxbF1ausmczsltR7F1Vwss8Sw=";
   };
 
-  checkInputs = [
-    pytestCheckHook
-  ];
+  checkInputs = [ pytestCheckHook ];
 
   meta = {
     description = "Disable App Nap on macOS";
diff --git a/pkgs/development/python-modules/apprise/default.nix b/pkgs/development/python-modules/apprise/default.nix
index 4d65c1babd193..e079703d17a0c 100644
--- a/pkgs/development/python-modules/apprise/default.nix
+++ b/pkgs/development/python-modules/apprise/default.nix
@@ -1,39 +1,44 @@
-{ lib
-, babel
-, buildPythonPackage
-, click
-, cryptography
-, fetchPypi
-, gntp
-, installShellFiles
-, markdown
-, paho-mqtt
-, pytest-mock
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, requests
-, requests-oauthlib
+{
+  lib,
+  babel,
+  buildPythonPackage,
+  click,
+  cryptography,
+  fetchPypi,
+  gntp,
+  installShellFiles,
+  markdown,
+  paho-mqtt,
+  pytest-mock,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  requests,
+  requests-oauthlib,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "apprise";
-  version = "1.7.6";
-  format = "setuptools";
+  version = "1.8.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-B38JMJzIpskGPb1hSzQ4B9Un1UZpO3/o/FpEM1Av6mw=";
+    hash = "sha256-6PWM6/6ho09WnLTGiAmjF1voDsBvCi7Ec1IrkgIyEsU=";
   };
 
-  nativeBuildInputs = [
-    installShellFiles
+  nativeBuildInputs = [ installShellFiles ];
+
+  build-system = [
+    babel
+    setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     click
     cryptography
     markdown
@@ -43,7 +48,6 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    babel
     gntp
     paho-mqtt
     pytest-mock
@@ -53,7 +57,11 @@ buildPythonPackage rec {
 
   disabledTests = [
     "test_apprise_cli_nux_env"
+    # Nondeterministic. Fails with `assert 0 == 1`
+    "test_notify_emoji_general"
     "test_plugin_mqtt_general"
+    # Nondeterministic. Fails with `AssertionError`
+    "test_plugin_xbmc_kodi_urls"
   ];
 
   disabledTestPaths = [
@@ -65,16 +73,14 @@ buildPythonPackage rec {
     installManPage packaging/man/apprise.1
   '';
 
-  pythonImportsCheck = [
-    "apprise"
-  ];
+  pythonImportsCheck = [ "apprise" ];
 
   meta = with lib; {
     description = "Push Notifications that work with just about every platform";
     homepage = "https://github.com/caronc/apprise";
     changelog = "https://github.com/caronc/apprise/releases/tag/v${version}";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ getchoo ];
     mainProgram = "apprise";
   };
 }
diff --git a/pkgs/development/python-modules/approval-utilities/default.nix b/pkgs/development/python-modules/approval-utilities/default.nix
index 38d22ad57aae4..c7e7157539b4a 100644
--- a/pkgs/development/python-modules/approval-utilities/default.nix
+++ b/pkgs/development/python-modules/approval-utilities/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, approvaltests
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  approvaltests,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     mv setup.approval_utilities.py setup.py
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     # used in approval_utilities/utilities/time_utilities.py
diff --git a/pkgs/development/python-modules/approvaltests/default.nix b/pkgs/development/python-modules/approvaltests/default.nix
index 9898dffe82aba..b1fa512928c39 100644
--- a/pkgs/development/python-modules/approvaltests/default.nix
+++ b/pkgs/development/python-modules/approvaltests/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, allpairspy
-, approval-utilities
-, beautifulsoup4
-, buildPythonPackage
-, empty-files
-, fetchFromGitHub
-, mock
-, mrjob
-, numpy
-, pyperclip
-, pytest
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, testfixtures
-, typing-extensions
+{
+  lib,
+  allpairspy,
+  approval-utilities,
+  beautifulsoup4,
+  buildPythonPackage,
+  empty-files,
+  fetchFromGitHub,
+  mock,
+  mrjob,
+  numpy,
+  pyperclip,
+  pytest,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  testfixtures,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "approvaltests";
-  version = "11.2.1";
+  version = "12.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -29,12 +30,10 @@ buildPythonPackage rec {
     owner = "approvals";
     repo = "ApprovalTests.Python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oG1TH9F8IYDZWLuL2TIesNuZQVzGQRqkGk502HTG+O8=";
+    hash = "sha256-Hd0cEAL5RGmAhob1oZwOVC+eXOxc9OTeUnrTTNCpL2E=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     allpairspy
diff --git a/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix b/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
index 67ed8ef74b595..bda93dfe5cdf1 100644
--- a/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
+++ b/pkgs/development/python-modules/appthreat-vulnerability-db/default.nix
@@ -1,6 +1,7 @@
 {
   lib,
   appdirs,
+  apsw,
   buildPythonPackage,
   cvss,
   fetchFromGitHub,
@@ -8,9 +9,10 @@
   msgpack,
   orjson,
   packageurl-python,
+  pydantic,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
+  rich,
   semver,
   setuptools,
   tabulate,
@@ -18,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "appthreat-vulnerability-db";
-  version = "5.6.7";
+  version = "6.0.8";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -27,7 +29,7 @@ buildPythonPackage rec {
     owner = "AppThreat";
     repo = "vulnerability-db";
     rev = "refs/tags/v${version}";
-    hash = "sha256-/QzK+su+g2ESZ81C0coxKf13WOUVz1GyfJbOrO7fS98=";
+    hash = "sha256-lgt609UDuHTGQTTrpvxNvgUk6GU+TYqwc19dzatI4Io=";
   };
 
   postPatch = ''
@@ -42,15 +44,17 @@ buildPythonPackage rec {
 
   build-system = [ setuptools ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     appdirs
+    apsw
     cvss
     httpx
     msgpack
     orjson
     packageurl-python
+    pydantic
+    rich
     semver
     tabulate
   ] ++ httpx.optional-dependencies.http2;
diff --git a/pkgs/development/python-modules/apptools/default.nix b/pkgs/development/python-modules/apptools/default.nix
index faaf6bec0796e..60360301a09bb 100644
--- a/pkgs/development/python-modules/apptools/default.nix
+++ b/pkgs/development/python-modules/apptools/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, configobj
-, fetchPypi
-, importlib-resources
-, pandas
-, pytestCheckHook
-, pythonOlder
-, tables
-, traits
-, traitsui
+{
+  lib,
+  buildPythonPackage,
+  configobj,
+  fetchPypi,
+  importlib-resources,
+  pandas,
+  pytestCheckHook,
+  pythonOlder,
+  tables,
+  traits,
+  traitsui,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     configobj
     traits
     traitsui
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    importlib-resources
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ];
 
   nativeCheckInputs = [
     tables
@@ -41,9 +40,7 @@ buildPythonPackage rec {
     export HOME=$TMP
   '';
 
-  pythonImportsCheck = [
-    "apptools"
-  ];
+  pythonImportsCheck = [ "apptools" ];
 
   meta = with lib; {
     description = "Set of packages that Enthought has found useful in creating a number of applications";
diff --git a/pkgs/development/python-modules/apricot-select/default.nix b/pkgs/development/python-modules/apricot-select/default.nix
index 80e12792f1620..f05e9b8e5e95f 100644
--- a/pkgs/development/python-modules/apricot-select/default.nix
+++ b/pkgs/development/python-modules/apricot-select/default.nix
@@ -1,16 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numba
-, numpy
-, pynose
-, pytestCheckHook
-, pythonOlder
-, scikit-learn
-, scipy
-, setuptools
-, torchvision
-, tqdm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  apricot-select,
+  numba,
+  numpy,
+  pynose,
+  pytestCheckHook,
+  pythonOlder,
+  scikit-learn,
+  scipy,
+  setuptools,
+  torchvision,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -31,27 +33,23 @@ buildPythonPackage rec {
     sed -i '/"nose"/d' setup.py
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     numba
     numpy
+    scikit-learn
     scipy
+    torchvision
     tqdm
   ];
 
   nativeCheckInputs = [
     pynose
     pytestCheckHook
-    scikit-learn
-    torchvision
   ];
 
-  pythonImportsCheck = [
-    "apricot"
-  ];
+  pythonImportsCheck = [ "apricot" ];
 
   disabledTestPaths = [
     # Tests require nose
@@ -59,6 +57,21 @@ buildPythonPackage rec {
     "tests/test_optimizers/test_knapsack_feature_based.py"
   ];
 
+  # NOTE: These tests seem to be flaky.
+  disabledTests = [
+    "test_digits_modular"
+    "test_digits_modular_object"
+    "test_digits_modular_sparse"
+    "test_digits_sqrt_modular"
+    "test_digits_sqrt_modular_object"
+    "test_digits_sqrt_modular_sparse"
+  ];
+
+  # NOTE: Tests are disabled by default because they can run for hours and timeout on Hydra.
+  doCheck = false;
+
+  passthru.tests.check = apricot-select.overridePythonAttrs { doCheck = true; };
+
   meta = with lib; {
     description = "Module for submodular optimization for the purpose of selecting subsets of massive data sets";
     homepage = "https://github.com/jmschrei/apricot";
diff --git a/pkgs/development/python-modules/aprslib/default.nix b/pkgs/development/python-modules/aprslib/default.nix
index 390a88fc2bf26..72f9d05d4e2bd 100644
--- a/pkgs/development/python-modules/aprslib/default.nix
+++ b/pkgs/development/python-modules/aprslib/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
 
   doCheck = false; # mox3 is disabled on python311
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "aprslib" ];
 
diff --git a/pkgs/development/python-modules/apscheduler/default.nix b/pkgs/development/python-modules/apscheduler/default.nix
index 771d9a3d0200e..6d038d28ec3e5 100644
--- a/pkgs/development/python-modules/apscheduler/default.nix
+++ b/pkgs/development/python-modules/apscheduler/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, gevent
-, pytest-asyncio
-, pytest-tornado
-, pytestCheckHook
-, pythonOlder
-, pytz
-, setuptools
-, setuptools-scm
-, six
-, tornado
-, twisted
-, tzlocal
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  gevent,
+  pytest-asyncio,
+  pytest-tornado,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  setuptools,
+  setuptools-scm,
+  six,
+  tornado,
+  twisted,
+  tzlocal,
 }:
 
 buildPythonPackage rec {
   pname = "apscheduler";
   version = "3.10.4";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -29,11 +30,12 @@ buildPythonPackage rec {
     hash = "sha256-5t8HGyfZvomOSGvHlAp75QtK8unafAjwdEqW1L1M70o=";
   };
 
-  buildInputs = [
+  build-system = [
+    setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     pytz
     setuptools
     six
@@ -51,23 +53,23 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.cfg \
-      --replace " --cov --tb=short" ""
+      --replace-fail " --cov --tb=short" ""
   '';
 
-  disabledTests = [
-    "test_broken_pool"
-    # gevent tests have issue on newer Python releases
-    "test_add_live_job"
-    "test_add_pending_job"
-    "test_shutdown"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_submit_job"
-    "test_max_instances"
-  ];
+  disabledTests =
+    [
+      "test_broken_pool"
+      # gevent tests have issue on newer Python releases
+      "test_add_live_job"
+      "test_add_pending_job"
+      "test_shutdown"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      "test_submit_job"
+      "test_max_instances"
+    ];
 
-  pythonImportsCheck = [
-    "apscheduler"
-  ];
+  pythonImportsCheck = [ "apscheduler" ];
 
   meta = with lib; {
     description = "Library that lets you schedule your Python code to be executed";
diff --git a/pkgs/development/python-modules/apsw/default.nix b/pkgs/development/python-modules/apsw/default.nix
index 41eb2ade77eda..cf38790288698 100644
--- a/pkgs/development/python-modules/apsw/default.nix
+++ b/pkgs/development/python-modules/apsw/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "apsw";
-  version = "3.45.3.0";
+  version = "3.46.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,14 +19,13 @@ buildPythonPackage rec {
     owner = "rogerbinns";
     repo = "apsw";
     rev = "refs/tags/${version}";
-    hash = "sha256-7z9JXJn2a6RJAc+7KrkzzScrNmbb06ud6L1rBinzkP8=";
+    hash = "sha256-GcfHkK4TCHPA2K6ymXtpCwNUCCUq0vq98UjYGGwn588=";
   };
 
   build-system = [ setuptools ];
 
   buildInputs = [ sqlite ];
 
-
   # Project uses custom test setup to exclude some tests by default, so using pytest
   # requires more maintenance
   # https://github.com/rogerbinns/apsw/issues/335
@@ -38,7 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/rogerbinns/apsw/blob/${src.rev}/doc/changes.rst";
-    description = "A Python wrapper for the SQLite embedded relational database engine";
+    description = "Python wrapper for the SQLite embedded relational database engine";
     homepage = "https://github.com/rogerbinns/apsw";
     license = licenses.zlib;
     maintainers = with maintainers; [ gador ];
diff --git a/pkgs/development/python-modules/apycula/default.nix b/pkgs/development/python-modules/apycula/default.nix
index c41dd8fea2786..43e2fbdbcc390 100644
--- a/pkgs/development/python-modules/apycula/default.nix
+++ b/pkgs/development/python-modules/apycula/default.nix
@@ -22,9 +22,7 @@ buildPythonPackage rec {
 
   build-system = [ setuptools-scm ];
 
-  dependencies = [
-    crc
-  ];
+  dependencies = [ crc ];
 
   # Tests require a physical FPGA
   doCheck = false;
diff --git a/pkgs/development/python-modules/aqipy-atmotech/default.nix b/pkgs/development/python-modules/aqipy-atmotech/default.nix
index a9b82ca6ad199..549e49b3d4866 100644
--- a/pkgs/development/python-modules/aqipy-atmotech/default.nix
+++ b/pkgs/development/python-modules/aqipy-atmotech/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,18 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-tqHhfJmtVFUSO57Cid9y3LK4pOoG7ROtwDT2hY5IE1Y=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace setup.py \
       --replace "'pytest-runner'" ""
   '';
 
-  pythonImportsCheck = [
-    "aqipy"
-  ];
+  pythonImportsCheck = [ "aqipy" ];
 
   meta = with lib; {
     description = "Library for AQI calculation";
diff --git a/pkgs/development/python-modules/aqualogic/default.nix b/pkgs/development/python-modules/aqualogic/default.nix
index e7772f40c63c3..4e5ac2e73f48d 100644
--- a/pkgs/development/python-modules/aqualogic/default.nix
+++ b/pkgs/development/python-modules/aqualogic/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pyserial
-, pytestCheckHook
-, websockets
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyserial,
+  pytestCheckHook,
+  websockets,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     websockets
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # With 3.4 the event loop is not terminated after the first test
   # https://github.com/swilson/aqualogic/issues/9
diff --git a/pkgs/development/python-modules/arabic-reshaper/default.nix b/pkgs/development/python-modules/arabic-reshaper/default.nix
index f9c82cd0a6997..36c9aaf013954 100644
--- a/pkgs/development/python-modules/arabic-reshaper/default.nix
+++ b/pkgs/development/python-modules/arabic-reshaper/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fonttools
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fonttools,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,12 @@ buildPythonPackage rec {
   };
 
   passthru.optional-dependencies = {
-    with-fonttools = [
-      fonttools
-    ];
+    with-fonttools = [ fonttools ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "arabic_reshaper"
-  ];
+  pythonImportsCheck = [ "arabic_reshaper" ];
 
   meta = with lib; {
     description = "Reconstruct Arabic sentences to be used in applications that don't support Arabic";
diff --git a/pkgs/development/python-modules/aranet4/default.nix b/pkgs/development/python-modules/aranet4/default.nix
index cc1c93c8677f7..c5e5702b729fb 100644
--- a/pkgs/development/python-modules/aranet4/default.nix
+++ b/pkgs/development/python-modules/aranet4/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "aranet4";
-  version = "2.3.3";
+  version = "2.3.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "Anrijs";
     repo = "Aranet4-Python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-j53d2Ki9xVWGHWkAu1wkjYE56Xq7kfMmqQrQiKrBg2I=";
+    hash = "sha256-Ni6qbt1eXeV/PS/1l0DaSSob7f0Gh4nYQThCHTYB7yI=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/arc4/default.nix b/pkgs/development/python-modules/arc4/default.nix
index 9e873328a308a..6706519259c7f 100644
--- a/pkgs/development/python-modules/arc4/default.nix
+++ b/pkgs/development/python-modules/arc4/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-DlZIygf5v3ZNY2XFmrKOA15ccMo3Rv0kf6hZJ0CskeQ=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "arc4"
-  ];
+  pythonImportsCheck = [ "arc4" ];
 
   meta = with lib; {
     description = "ARCFOUR (RC4) cipher implementation";
diff --git a/pkgs/development/python-modules/arcam-fmj/default.nix b/pkgs/development/python-modules/arcam-fmj/default.nix
index b78a7bfac1610..1588d8f14eb74 100644
--- a/pkgs/development/python-modules/arcam-fmj/default.nix
+++ b/pkgs/development/python-modules/arcam-fmj/default.nix
@@ -1,20 +1,22 @@
-{ lib
-, buildPythonPackage
-, pythonAtLeast
-, pythonOlder
-, fetchFromGitHub
-, aiohttp
-, attrs
-, defusedxml
-, pytest-aiohttp
-, pytest-mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonAtLeast,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  aiohttp,
+  attrs,
+  defusedxml,
+  pytest-aiohttp,
+  pytest-mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "arcam-fmj";
-  version = "1.4.0";
-  format = "setuptools";
+  version = "1.5.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -22,10 +24,12 @@ buildPythonPackage rec {
     owner = "elupus";
     repo = "arcam_fmj";
     rev = "refs/tags/${version}";
-    hash = "sha256-/A3Fs0JyzW05L80CtI07Y/kTTrIC6yqubJfYO0kAEf0=";
+    hash = "sha256-hBoUxY+xtW04UPUG2P8A8QQbHxGk0bjcrtXis6nlaGg=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     aiohttp
     attrs
     defusedxml
@@ -47,6 +51,7 @@ buildPythonPackage rec {
     "test_silent_server_disconnect"
     "test_heartbeat"
     "test_cancellation"
+    "test_unsupported_zone"
   ];
 
   pythonImportsCheck = [
diff --git a/pkgs/development/python-modules/archinfo/default.nix b/pkgs/development/python-modules/archinfo/default.nix
index fe6ca55ad91ba..f5331820f72d7 100644
--- a/pkgs/development/python-modules/archinfo/default.nix
+++ b/pkgs/development/python-modules/archinfo/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "archinfo";
-  version = "9.2.101";
+  version = "9.2.107";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "archinfo";
     rev = "refs/tags/v${version}";
-    hash = "sha256-58iijDVs4OqZytHDjhGqYRMSIVGPCWTUNRy74OQZcPw=";
+    hash = "sha256-D29ddBceo4Bz3KUiQckdbV0e9uPXEOAAIHZrSpqw3BE=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/archspec/default.nix b/pkgs/development/python-modules/archspec/default.nix
index 1ae73f71f325b..3c9c0f00f7d7f 100644
--- a/pkgs/development/python-modules/archspec/default.nix
+++ b/pkgs/development/python-modules/archspec/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, jsonschema
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  jsonschema,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "archspec";
-  version = "0.2.3";
+  version = "0.2.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,32 +21,29 @@ buildPythonPackage rec {
     repo = "archspec";
     rev = "refs/tags/v${version}";
     fetchSubmodules = true;
-    hash = "sha256-Ek+rmgvG6DbtxljAEHVac/JzNI1MaLpPu4G8nhaxzg8=";
+    hash = "sha256-Xg1XdmKk2b6fqzOdedU3SGIgy65CjExxDByt/Xvmr24=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    click
-  ];
+  dependecies = [ click ];
 
   nativeCheckInputs = [
     pytestCheckHook
     jsonschema
   ];
 
-  pythonImportsCheck = [
-    "archspec"
-  ];
+  pythonImportsCheck = [ "archspec" ];
 
   meta = with lib; {
     description = "Library for detecting, labeling, and reasoning about microarchitectures";
-    mainProgram = "archspec";
     homepage = "https://archspec.readthedocs.io/";
     changelog = "https://github.com/archspec/archspec/releases/tag/v${version}";
-    license = with licenses; [ mit asl20 ];
+    license = with licenses; [
+      mit
+      asl20
+    ];
     maintainers = with maintainers; [ atila ];
+    mainProgram = "archspec";
   };
 }
diff --git a/pkgs/development/python-modules/area/default.nix b/pkgs/development/python-modules/area/default.nix
index 3057bf1eb805f..39b0ccd26cc26 100644
--- a/pkgs/development/python-modules/area/default.nix
+++ b/pkgs/development/python-modules/area/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "area";
@@ -14,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "Calculate the area inside of any GeoJSON geometry. This is a port of Mapbox’s geojson-area for Python.";
+    description = "Calculate the area inside of any GeoJSON geometry. This is a port of Mapbox’s geojson-area for Python";
     homepage = "https://github.com/scisco/area";
     license = licenses.bsd2;
   };
diff --git a/pkgs/development/python-modules/arelle/default.nix b/pkgs/development/python-modules/arelle/default.nix
index fbbda611ba50c..7ecdc1bb8a932 100644
--- a/pkgs/development/python-modules/arelle/default.nix
+++ b/pkgs/development/python-modules/arelle/default.nix
@@ -1,8 +1,19 @@
-{ gui ? true,
-  buildPythonPackage, fetchFromGitHub, lib,
-  sphinx, lxml, isodate, numpy, openpyxl,
-  tkinter ? null, py3to2, isPy3k, python,
-  ... }:
+{
+  gui ? true,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  sphinx,
+  lxml,
+  isodate,
+  numpy,
+  openpyxl,
+  tkinter ? null,
+  py3to2,
+  isPy3k,
+  python,
+  ...
+}:
 
 buildPythonPackage rec {
   pname = "arelle${lib.optionalString (!gui) "-headless"}";
@@ -19,10 +30,11 @@ buildPythonPackage rec {
     rev = "edgr${version}";
     sha256 = "12a94ipdp6xalqyds7rcp6cjwps6fbj3byigzfy403hlqc9n1g33";
   };
-  outputs = ["out" "doc"];
-  patches = [
-    ./tests.patch
+  outputs = [
+    "out"
+    "doc"
   ];
+  patches = [ ./tests.patch ];
   postPatch = "rm testParser2.py";
   nativeBuildInputs = [
     sphinx
@@ -33,25 +45,25 @@ buildPythonPackage rec {
     isodate
     numpy
     openpyxl
-  ] ++ lib.optionals gui [
-    tkinter
-  ];
+  ] ++ lib.optionals gui [ tkinter ];
 
   # arelle-gui is useless without gui dependencies, so delete it when !gui.
-  postInstall = lib.optionalString (!gui) ''
-    find $out/bin -name "*arelle-gui*" -delete
-  '' +
-  # By default, not the entirety of the src dir is copied. This means we don't
-  # copy the `images` dir, which is needed for the gui version.
-  lib.optionalString (gui) ''
-    targetDir=$out/${python.sitePackages}
-    cp -vr $src/arelle $targetDir
-  '';
+  postInstall =
+    lib.optionalString (!gui) ''
+      find $out/bin -name "*arelle-gui*" -delete
+    ''
+    +
+      # By default, not the entirety of the src dir is copied. This means we don't
+      # copy the `images` dir, which is needed for the gui version.
+      lib.optionalString (gui) ''
+        targetDir=$out/${python.sitePackages}
+        cp -vr $src/arelle $targetDir
+      '';
 
   # Documentation
   postBuild = ''
     (cd apidocs && make html && cp -r _build $doc)
-    '';
+  '';
 
   doCheck = false;
 
@@ -60,10 +72,12 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = ''
-      An open source facility for XBRL, the eXtensible Business Reporting
-      Language supporting various standards, exposed through a Python or
-      REST API'' + lib.optionalString gui " and a graphical user interface";
+    description =
+      ''
+        An open source facility for XBRL, the eXtensible Business Reporting
+        Language supporting various standards, exposed through a Python or
+        REST API''
+      + lib.optionalString gui " and a graphical user interface";
     mainProgram = "arelle";
     homepage = "http://arelle.org/";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/aresponses/default.nix b/pkgs/development/python-modules/aresponses/default.nix
index 01b0c3c44a6ec..f5d268fcf2bf2 100644
--- a/pkgs/development/python-modules/aresponses/default.nix
+++ b/pkgs/development/python-modules/aresponses/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytest
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytest,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-Ui9ZpWaVBfCbDlZH3EgHX32FIZtyTHnc/UXqtoEyFcw=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   buildInputs = [
     pytest
@@ -45,9 +44,7 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [
-    "aresponses"
-  ];
+  pythonImportsCheck = [ "aresponses" ];
 
   meta = with lib; {
     description = "Asyncio testing server";
@@ -56,4 +53,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ makefu ];
   };
 }
-
diff --git a/pkgs/development/python-modules/argcomplete/default.nix b/pkgs/development/python-modules/argcomplete/default.nix
index 363b07758a2a2..969acd0b1c458 100644
--- a/pkgs/development/python-modules/argcomplete/default.nix
+++ b/pkgs/development/python-modules/argcomplete/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "argcomplete";
-  version = "3.3.0";
+  version = "3.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +18,7 @@ buildPythonPackage rec {
     owner = "kislyuk";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-ekTmT6jYkC36X2e0ukwHfDGwdPg3jK8jML2naBCgNI8=";
+    hash = "sha256-4JMyBixc6LcSdpvvLmK4nyyqZMK2kuFcPU7OXhJLpoc=";
   };
 
   nativeBuildInputs = [
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Tries to build and install test packages which fails
   doCheck = false;
 
-  pythonImportsCheck = [
-    "argcomplete"
-  ];
+  pythonImportsCheck = [ "argcomplete" ];
 
   meta = with lib; {
     changelog = "https://github.com/kislyuk/argcomplete/blob/v${version}/Changes.rst";
diff --git a/pkgs/development/python-modules/argh/default.nix b/pkgs/development/python-modules/argh/default.nix
index 3097db5417545..9d4167a3ddf1d 100644
--- a/pkgs/development/python-modules/argh/default.nix
+++ b/pkgs/development/python-modules/argh/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, flit-core
-, iocapture
-, mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  iocapture,
+  mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-2xw0iFgE99RkbDhdwvsZtFKYVhMi9MFerhsTOZP54yM=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   nativeCheckInputs = [
     iocapture
@@ -33,7 +31,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/neithere/argh/blob/v${version}/CHANGES";
     homepage = "https://github.com/neithere/argh";
-    description = "An unobtrusive argparse wrapper with natural syntax";
+    description = "Unobtrusive argparse wrapper with natural syntax";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ domenkozar ];
   };
diff --git a/pkgs/development/python-modules/argilla/default.nix b/pkgs/development/python-modules/argilla/default.nix
index d3b87ca99f442..cbfeb2c87c7eb 100644
--- a/pkgs/development/python-modules/argilla/default.nix
+++ b/pkgs/development/python-modules/argilla/default.nix
@@ -1,145 +1,96 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pythonRelaxDepsHook
-, deprecated
-, rich
-, backoff
-, packaging
-, pydantic
-, typer
-, tqdm
-, wrapt
-, numpy
-, httpx
-, pandas
-, monotonic
-# optional-dependencies
-, fastapi
-, opensearch-py
-, elasticsearch8
-, uvicorn
-, smart-open
-, brotli-asgi
-, alembic
-, sqlalchemy
-, greenlet
-, aiosqlite
-, luqum
-, scikit-learn
-, aiofiles
-, pyyaml
-, python-multipart
-, python-jose
-, passlib
-, psutil
-# , segment-analytics-python
-, asyncpg
-, psycopg2
-, schedule
-, prodict
-, cleanlab
-, datasets
-, huggingface-hub
+{
+  lib,
+  aiofiles,
+  aiosqlite,
+  alembic,
+  asyncpg,
+  backoff,
+  brotli-asgi,
+  buildPythonPackage,
+  cleanlab,
+  datasets,
+  deprecated,
+  elasticsearch8,
+  evaluate,
+  factory-boy,
+  faiss,
+  fastapi,
+  fetchFromGitHub,
+  flyingsquid,
+  greenlet,
+  httpx,
+  huggingface-hub,
+  luqum,
+  monotonic,
+  numpy,
+  openai,
+  opensearch-py,
+  packaging,
+  pandas,
+  passlib,
+  peft,
+  pgmpy,
+  plotly,
+  prodict,
+  psutil,
+  psycopg2,
+  pydantic,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  python-jose,
+  python-multipart,
+  pythonOlder,
+  pyyaml,
+  rich,
+  schedule,
+  scikit-learn,
+  sentence-transformers,
+  seqeval,
+  setuptools,
+  smart-open,
+  snorkel,
+  spacy,
+  spacy-transformers,
+  sqlalchemy,
+  tqdm,
+  transformers,
+  typer,
+  uvicorn,
+  wrapt,
 # , flair
-, faiss
-, flyingsquid
-, pgmpy
-, plotly
-, snorkel
-, spacy
-, transformers
-, evaluate
-, seqeval
 # , setfit
+# , spacy-huggingface-hub
 # , span_marker
-, openai
-, peft
-# test dependencies
-, pytestCheckHook
-, pytest-cov
-, pytest-mock
-, pytest-asyncio
-, factory-boy
+# , trl
 }:
-let
+
+buildPythonPackage rec {
   pname = "argilla";
-  version = "1.27.0";
-  optional-dependencies = {
-    server = [
-      fastapi
-      opensearch-py
-      elasticsearch8
-      uvicorn
-      smart-open
-      brotli-asgi
-      alembic
-      sqlalchemy
-      greenlet
-      aiosqlite
-      luqum
-      scikit-learn
-      aiofiles
-      pyyaml
-      python-multipart
-      python-jose
-      passlib
-      psutil
-      # segment-analytics-python
-    ] ++
-      elasticsearch8.optional-dependencies.async ++
-      uvicorn.optional-dependencies.standard ++
-      python-jose.optional-dependencies.cryptography ++
-      passlib.optional-dependencies.bcrypt;
-    postgresql = [ asyncpg psycopg2 ];
-    listeners = [ schedule prodict ];
-    integrations = [
-      pyyaml
-      cleanlab
-      datasets
-      huggingface-hub
-      # flair
-      faiss
-      flyingsquid
-      pgmpy
-      plotly
-      snorkel
-      spacy
-      transformers
-      evaluate
-      seqeval
-      # setfit
-      # span_marker
-      openai
-      peft
-    ] ++ transformers.optional-dependencies.torch;
-  };
-in
-buildPythonPackage {
-  inherit pname version;
-  format = "setuptools";
+  version = "1.29.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "argilla-io";
-    repo = pname;
+    repo = "argilla";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CBVP/+XFKnJBMcxsDd7lgQ1JFX7zFlHmdBwkAMmq85g=";
+    hash = "sha256-+eQNvLDV063JY6CyngpGyo4NdSd6HvAHFgGWtPfZNVQ=";
   };
 
   pythonRelaxDeps = [
-    "typer"
-    "rich"
+    "httpx"
     "numpy"
+    "rich"
+    "typer"
+    "wrapt"
   ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
+  build-system = [ setuptools ];
+
 
-  propagatedBuildInputs = [
+  dependencies = [
     httpx
     deprecated
     packaging
@@ -154,7 +105,67 @@ buildPythonPackage {
     typer
   ];
 
-  # still quite a bit of optional dependencies missing
+  passthru.optional-dependencies = {
+    server =
+      [
+        aiofiles
+        aiosqlite
+        alembic
+        brotli-asgi
+        elasticsearch8
+        fastapi
+        greenlet
+        luqum
+        opensearch-py
+        passlib
+        psutil
+        python-jose
+        python-multipart
+        pyyaml
+        scikit-learn
+        smart-open
+        sqlalchemy
+        uvicorn
+      ]
+      ++ elasticsearch8.optional-dependencies.async
+      ++ uvicorn.optional-dependencies.standard
+      ++ python-jose.optional-dependencies.cryptography
+      ++ passlib.optional-dependencies.bcrypt;
+    postgresql = [
+      asyncpg
+      psycopg2
+    ];
+    listeners = [
+      schedule
+      prodict
+    ];
+    integrations = [
+      cleanlab
+      datasets
+      evaluate
+      faiss
+      flyingsquid
+      huggingface-hub
+      openai
+      peft
+      pgmpy
+      plotly
+      pyyaml
+      sentence-transformers
+      seqeval
+      snorkel
+      spacy
+      spacy-transformers
+      transformers
+      # flair
+      # setfit
+      # span_marker
+      # trl
+      # spacy-huggingface-hub
+    ] ++ transformers.optional-dependencies.torch;
+  };
+
+  # Still quite a bit of optional dependencies missing
   doCheck = false;
 
   preCheck = ''
@@ -163,26 +174,19 @@ buildPythonPackage {
 
   nativeCheckInputs = [
     pytestCheckHook
-    pytest-cov
     pytest-mock
     pytest-asyncio
     factory-boy
-  ]
-    ++ optional-dependencies.server
-    ++ optional-dependencies.postgresql
-    ++ optional-dependencies.listeners
-    ++ optional-dependencies.integrations;
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pytestFlagsArray = [ "--ignore=tests/server/datasets/test_dao.py" ];
-
-  passthru.optional-dependencies = optional-dependencies;
+  disabledTestPaths = [ "tests/server/datasets/test_dao.py" ];
 
   meta = with lib; {
-    description = "Argilla: the open-source data curation platform for LLMs";
-    mainProgram = "argilla";
+    description = "Open-source data curation platform for LLMs";
     homepage = "https://github.com/argilla-io/argilla";
     changelog = "https://github.com/argilla-io/argilla/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
+    mainProgram = "argilla";
   };
 }
diff --git a/pkgs/development/python-modules/argon2-cffi-bindings/default.nix b/pkgs/development/python-modules/argon2-cffi-bindings/default.nix
index 822acd09e1429..4e286daa0ed67 100644
--- a/pkgs/development/python-modules/argon2-cffi-bindings/default.nix
+++ b/pkgs/development/python-modules/argon2-cffi-bindings/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, libargon2
-, cffi
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  libargon2,
+  cffi,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     cffi
   ];
 
-  propagatedBuildInputs = [
-    cffi
-  ];
+  propagatedBuildInputs = [ cffi ];
 
   env.ARGON2_CFFI_USE_SYSTEM = 1;
 
diff --git a/pkgs/development/python-modules/argon2-cffi/default.nix b/pkgs/development/python-modules/argon2-cffi/default.nix
index da9022c93f192..2ab26082ad16c 100644
--- a/pkgs/development/python-modules/argon2-cffi/default.nix
+++ b/pkgs/development/python-modules/argon2-cffi/default.nix
@@ -1,12 +1,13 @@
-{ hypothesis
-, pytestCheckHook
-, buildPythonPackage
-, fetchPypi
-, lib
-, hatchling
-, hatch-vcs
-, hatch-fancy-pypi-readme
-, argon2-cffi-bindings
+{
+  hypothesis,
+  pytestCheckHook,
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  hatchling,
+  hatch-vcs,
+  hatch-fancy-pypi-readme,
+  argon2-cffi-bindings,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,24 @@ buildPythonPackage rec {
     hash = "sha256-h5w+eaJynOdo67fTbUYJ46eKTKLsOp8SKGygV+PQ2wg=";
   };
 
-  nativeBuildInputs = [ hatchling hatch-vcs hatch-fancy-pypi-readme ];
+  nativeBuildInputs = [
+    hatchling
+    hatch-vcs
+    hatch-fancy-pypi-readme
+  ];
 
   propagatedBuildInputs = [ argon2-cffi-bindings ];
 
-  nativeCheckInputs = [ hypothesis pytestCheckHook ];
+  nativeCheckInputs = [
+    hypothesis
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [ "argon2" ];
 
   meta = with lib; {
     description = "Secure Password Hashes for Python";
-    homepage    = "https://argon2-cffi.readthedocs.io/";
-    license     = licenses.mit;
+    homepage = "https://argon2-cffi.readthedocs.io/";
+    license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/argos-translate-files/default.nix b/pkgs/development/python-modules/argos-translate-files/default.nix
index 0f0e3ea223549..308f8bb7c0a17 100644
--- a/pkgs/development/python-modules/argos-translate-files/default.nix
+++ b/pkgs/development/python-modules/argos-translate-files/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, lxml
-, translatehtml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  lxml,
+  translatehtml,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/argostranslate/default.nix b/pkgs/development/python-modules/argostranslate/default.nix
index 57ea8db15a3d9..5d4db901771d5 100644
--- a/pkgs/development/python-modules/argostranslate/default.nix
+++ b/pkgs/development/python-modules/argostranslate/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, ctranslate2
-, ctranslate2-cpp
-, sentencepiece
-, stanza
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  ctranslate2,
+  ctranslate2-cpp,
+  sentencepiece,
+  stanza,
 }:
 let
   ctranslate2OneDNN = ctranslate2.override {
@@ -18,13 +19,13 @@ let
 in
 buildPythonPackage rec {
   pname = "argostranslate";
-  version = "1.9.3";
+  version = "1.9.6";
 
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-N1Dh8238cDKpIMeQT645lDvYMbOWjVqGuWxt37+TQmQ=";
+    sha256 = "sha256-3YzBMnqmcTIpn5UOFg3SDTFLjPSE9UDw0i8fB8LYh2s=";
   };
 
   propagatedBuildInputs = [
@@ -42,9 +43,7 @@ buildPythonPackage rec {
 
   doCheck = false; # needs network access
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # required for import check to work
   # PermissionError: [Errno 13] Permission denied: '/homeless-shelter'
diff --git a/pkgs/development/python-modules/argparse-addons/default.nix b/pkgs/development/python-modules/argparse-addons/default.nix
index 44b9bf1c4ce02..1af3f55cd5546 100644
--- a/pkgs/development/python-modules/argparse-addons/default.nix
+++ b/pkgs/development/python-modules/argparse-addons/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "argparse-addons";
@@ -17,6 +21,9 @@ buildPythonPackage rec {
     description = "Additional Python argparse types and actions";
     homepage = "https://github.com/eerimoq/argparse_addons";
     license = licenses.mit;
-    maintainers = with maintainers; [ frogamic sbruder ];
+    maintainers = with maintainers; [
+      frogamic
+      sbruder
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/argparse-dataclass/default.nix b/pkgs/development/python-modules/argparse-dataclass/default.nix
index e0fbcd842b807..68ba25a94ead9 100644
--- a/pkgs/development/python-modules/argparse-dataclass/default.nix
+++ b/pkgs/development/python-modules/argparse-dataclass/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-ASdP6LOEeTszyppYV6vRQX8BKOHYUimI36tMSZTQfTk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "argparse_dataclass"
-  ];
+  pythonImportsCheck = [ "argparse_dataclass" ];
 
   meta = with lib; {
     description = "Declarative CLIs with argparse and dataclasses";
diff --git a/pkgs/development/python-modules/argparse-manpage/default.nix b/pkgs/development/python-modules/argparse-manpage/default.nix
index 59a303e0237b7..77bd37acd6f67 100644
--- a/pkgs/development/python-modules/argparse-manpage/default.nix
+++ b/pkgs/development/python-modules/argparse-manpage/default.nix
@@ -1,36 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, packaging
-, tomli
-, pytestCheckHook
-, pip
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  packaging,
+  tomli,
+  pytestCheckHook,
+  pip,
 }:
 
 buildPythonPackage rec {
   pname = "argparse-manpage";
-  version = "4.5";
+  version = "4.6";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "praiskup";
     repo = "argparse-manpage";
-    rev = "v${version}";
-    hash = "sha256-9lriW+Yx/6ysoumloQglDm5JEcKNUWm422B3P6IE/EE=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-2GJDFLCaPTb8sQCAv9qZ+pIysFE7IaKh9co3Mb8Dutc=";
   };
 
   nativeBuildInputs = [
     setuptools
     packaging
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [ tomli ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -43,9 +40,7 @@ buildPythonPackage rec {
     "test_old_example_file_name"
   ];
 
-  pythonImportsCheck = [
-    "argparse_manpage"
-  ];
+  pythonImportsCheck = [ "argparse_manpage" ];
 
   passthru.optional-dependencies = {
     setuptools = [ setuptools ];
diff --git a/pkgs/development/python-modules/args/default.nix b/pkgs/development/python-modules/args/default.nix
index 329fde3416691..28170c20e92c3 100644
--- a/pkgs/development/python-modules/args/default.nix
+++ b/pkgs/development/python-modules/args/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "args";
diff --git a/pkgs/development/python-modules/aria2p/default.nix b/pkgs/development/python-modules/aria2p/default.nix
index 01f81b316952b..132f467e0499d 100644
--- a/pkgs/development/python-modules/aria2p/default.nix
+++ b/pkgs/development/python-modules/aria2p/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pdm-backend
-, appdirs
-, loguru
-, requests
-, setuptools
-, toml
-, websocket-client
-, asciimatics
-, pyperclip
-, aria2
-, fastapi
-, psutil
-, pytest-xdist
-, pytestCheckHook
-, responses
-, uvicorn
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pdm-backend,
+  appdirs,
+  loguru,
+  requests,
+  setuptools,
+  toml,
+  websocket-client,
+  asciimatics,
+  pyperclip,
+  aria2,
+  fastapi,
+  psutil,
+  pytest-xdist,
+  pytestCheckHook,
+  responses,
+  uvicorn,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
     hash = "sha256-WlbZP2+qUSyfmeFFiuarXI3VaNZvD9cnOef/WM+J0OE=";
   };
 
-  nativeBuildInputs = [
-    pdm-backend
-  ];
+  nativeBuildInputs = [ pdm-backend ];
 
   propagatedBuildInputs = [
     appdirs
@@ -47,7 +46,10 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    tui = [ asciimatics pyperclip ];
+    tui = [
+      asciimatics
+      pyperclip
+    ];
   };
 
   preCheck = ''
diff --git a/pkgs/development/python-modules/ariadne/default.nix b/pkgs/development/python-modules/ariadne/default.nix
index 14740b2136c13..c94ffd720d101 100644
--- a/pkgs/development/python-modules/ariadne/default.nix
+++ b/pkgs/development/python-modules/ariadne/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, freezegun
-, graphql-core
-, hatchling
-, httpx
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, python-multipart
-, starlette
-, syrupy
-, typing-extensions
-, werkzeug
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  freezegun,
+  graphql-core,
+  hatchling,
+  httpx,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  python-multipart,
+  starlette,
+  syrupy,
+  typing-extensions,
+  werkzeug,
 }:
 
 buildPythonPackage rec {
@@ -30,13 +31,9 @@ buildPythonPackage rec {
     hash = "sha256-zdM6LKtrD6m3hWn90yAgsinCvaa86BaTdhgf/VzGDLA=";
   };
 
-  patches = [
-    ./remove-opentracing.patch
-  ];
+  patches = [ ./remove-opentracing.patch ];
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     graphql-core
@@ -55,13 +52,9 @@ buildPythonPackage rec {
     werkzeug
   ];
 
-  pythonImportsCheck = [
-    "ariadne"
-  ];
+  pythonImportsCheck = [ "ariadne" ];
 
-  pytestFlagsArray = [
-    "--snapshot-update"
-  ];
+  pytestFlagsArray = [ "--snapshot-update" ];
 
   disabledTests = [
     # TypeError: TestClient.request() got an unexpected keyword argument 'content'
diff --git a/pkgs/development/python-modules/arnparse/default.nix b/pkgs/development/python-modules/arnparse/default.nix
index 5da008aa650f5..f9795be59283a 100644
--- a/pkgs/development/python-modules/arnparse/default.nix
+++ b/pkgs/development/python-modules/arnparse/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,18 +17,14 @@ buildPythonPackage rec {
     hash = "sha256-2+wxzYoS/KJXjYM6lZguxbr2Oxobo0eFNnzWZHLi0WM=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "arnparse"
-  ];
+  pythonImportsCheck = [ "arnparse" ];
 
   meta = with lib; {
     description = "Parse ARNs using Python";
     homepage = "https://github.com/PokaInc/arnparse";
     license = licenses.mit;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/arpeggio/default.nix b/pkgs/development/python-modules/arpeggio/default.nix
index b07a7333c878d..cd98f61d4e525 100644
--- a/pkgs/development/python-modules/arpeggio/default.nix
+++ b/pkgs/development/python-modules/arpeggio/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/arpy/default.nix b/pkgs/development/python-modules/arpy/default.nix
index 229e15d24ff34..819d4559dc948 100644
--- a/pkgs/development/python-modules/arpy/default.nix
+++ b/pkgs/development/python-modules/arpy/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,14 +17,12 @@ buildPythonPackage rec {
     hash = "sha256-jD1XJJhcpJymn0CwZ65U06xLKm1JjHffmx/umEO7a5s=";
   };
 
-  checkInputs = [
-    unittestCheckHook
-  ];
+  checkInputs = [ unittestCheckHook ];
 
   pythonImportsCheck = [ "arpy" ];
 
   meta = with lib; {
-    description = "A library for accessing the archive files and reading the contents";
+    description = "Library for accessing the archive files and reading the contents";
     homepage = "https://github.com/viraptor/arpy";
     license = licenses.bsd2;
     maintainers = with maintainers; [ thornycrackers ];
diff --git a/pkgs/development/python-modules/array-record/default.nix b/pkgs/development/python-modules/array-record/default.nix
index c37eec6baba02..83385b535429d 100644
--- a/pkgs/development/python-modules/array-record/default.nix
+++ b/pkgs/development/python-modules/array-record/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, pythonAtLeast
-, python
-, fetchPypi
-, absl-py
-, etils
-, importlib-resources
-, typing-extensions
-, zipp
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  pythonAtLeast,
+  python,
+  fetchPypi,
+  absl-py,
+  etils,
+  importlib-resources,
+  typing-extensions,
+  zipp,
 }:
 
 buildPythonPackage rec {
@@ -19,21 +20,25 @@ buildPythonPackage rec {
   # As of 2023-10-31, PyPI includes wheels for Python 3.9, 3.10, and 3.11.
   disabled = pythonOlder "3.9" || pythonAtLeast "3.12";
 
-  src = let
-    pyShortVersion = "cp${builtins.replaceStrings ["."] [""] python.pythonVersion}";
-  in fetchPypi {
-    inherit version format;
-    pname = "array_record";
-    dist = pyShortVersion;
-    python = pyShortVersion;
-    abi = pyShortVersion;
-    platform = "manylinux_2_17_x86_64.manylinux2014_x86_64";
-    hash = {
-      cp39 = "sha256-BzMOVue7E1S1+5+XTcPELko81ujc9MbmqLhNsU7pqO0=";
-      cp310 = "sha256-eUD9pQu9GsbV8MPD1MiF3Ihr+zYioSOo6P15hYIwPYo=";
-      cp311 = "sha256-rAmkI3EIZPYiXrxFowfDC0Gf3kRw0uX0i6Kx6Zu+hNM=";
-    }.${pyShortVersion} or (throw "${pname} is missing hash for ${pyShortVersion}");
-  };
+  src =
+    let
+      pyShortVersion = "cp${builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion}";
+    in
+    fetchPypi {
+      inherit version format;
+      pname = "array_record";
+      dist = pyShortVersion;
+      python = pyShortVersion;
+      abi = pyShortVersion;
+      platform = "manylinux_2_17_x86_64.manylinux2014_x86_64";
+      hash =
+        {
+          cp39 = "sha256-BzMOVue7E1S1+5+XTcPELko81ujc9MbmqLhNsU7pqO0=";
+          cp310 = "sha256-eUD9pQu9GsbV8MPD1MiF3Ihr+zYioSOo6P15hYIwPYo=";
+          cp311 = "sha256-rAmkI3EIZPYiXrxFowfDC0Gf3kRw0uX0i6Kx6Zu+hNM=";
+        }
+        .${pyShortVersion} or (throw "${pname} is missing hash for ${pyShortVersion}");
+    };
 
   propagatedBuildInputs = [
     absl-py
diff --git a/pkgs/development/python-modules/arrayqueues/default.nix b/pkgs/development/python-modules/arrayqueues/default.nix
index 48207c8e659f6..a363318453bae 100644
--- a/pkgs/development/python-modules/arrayqueues/default.nix
+++ b/pkgs/development/python-modules/arrayqueues/default.nix
@@ -1,5 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -13,9 +17,7 @@ buildPythonPackage rec {
     sha256 = "sha256-7I+5BQO/gsvTREDkBfxrMblw3JPfY48S4KI4PCGPtFY=";
   };
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   meta = {
     homepage = "https://github.com/portugueslab/arrayqueues";
diff --git a/pkgs/development/python-modules/arris-tg2492lg/default.nix b/pkgs/development/python-modules/arris-tg2492lg/default.nix
index e44aec28aed79..c966fd1ac7ce3 100644
--- a/pkgs/development/python-modules/arris-tg2492lg/default.nix
+++ b/pkgs/development/python-modules/arris-tg2492lg/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-MQq9jMUoJgqaY0f9YIbhME2kO+ektPqBnT9REg3qDpg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   nativeCheckInputs = [
     pytest-aiohttp
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "arris_tg2492lg"
-  ];
+  pythonImportsCheck = [ "arris_tg2492lg" ];
 
   meta = with lib; {
     description = "Library to connect to an Arris TG2492LG";
diff --git a/pkgs/development/python-modules/arrow/default.nix b/pkgs/development/python-modules/arrow/default.nix
index 77aa1f6ca4ac0..57645904f79f1 100644
--- a/pkgs/development/python-modules/arrow/default.nix
+++ b/pkgs/development/python-modules/arrow/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, flit-core
-, python-dateutil
-, types-python-dateutil
-, pytestCheckHook
-, pytest-mock
-, pytz
-, simplejson
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  flit-core,
+  python-dateutil,
+  types-python-dateutil,
+  pytestCheckHook,
+  pytest-mock,
+  pytz,
+  simplejson,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     sed -i "/addopts/d" tox.ini
   '';
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     python-dateutil
@@ -45,9 +44,7 @@ buildPythonPackage rec {
   ];
 
   # ParserError: Could not parse timezone expression "America/Nuuk"
-  disabledTests = [
-    "test_parse_tz_name_zzz"
-  ];
+  disabledTests = [ "test_parse_tz_name_zzz" ];
 
   pythonImportsCheck = [ "arrow" ];
 
diff --git a/pkgs/development/python-modules/arsenic/default.nix b/pkgs/development/python-modules/arsenic/default.nix
index 2d742f943f79c..8d7ab341c9d2b 100644
--- a/pkgs/development/python-modules/arsenic/default.nix
+++ b/pkgs/development/python-modules/arsenic/default.nix
@@ -7,7 +7,6 @@
   fetchpatch,
   packaging,
   poetry-core,
-  pythonRelaxDepsHook,
   pythonOlder,
   structlog,
 }:
@@ -43,7 +42,6 @@ buildPythonPackage rec {
 
   pythonRelaxDeps = [ "structlog" ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   build-system = [ poetry-core ];
 
diff --git a/pkgs/development/python-modules/art/default.nix b/pkgs/development/python-modules/art/default.nix
index c1fbd475bc07f..0f43d311f88c1 100644
--- a/pkgs/development/python-modules/art/default.nix
+++ b/pkgs/development/python-modules/art/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
   pname = "art";
-  version = "6.1";
+  version = "6.2";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "sepandhaghighi";
     repo = "art";
-    rev = "v${version}";
-    hash = "sha256-RJexYOGWwAwxQ7lWGgXzFSR2aly1twB9pC4QFs5m7k8=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-lFe6J3R+A1WE+LGywupjOGwhOcrUH5JE26Cit0DaT/4=";
   };
 
   pythonImportsCheck = [ "art" ];
diff --git a/pkgs/development/python-modules/arviz/default.nix b/pkgs/development/python-modules/arviz/default.nix
index b7860aa5dc30c..19e69d4e087fb 100644
--- a/pkgs/development/python-modules/arviz/default.nix
+++ b/pkgs/development/python-modules/arviz/default.nix
@@ -1,34 +1,35 @@
-{ lib
-, buildPythonPackage
-, dm-tree
-, fetchFromGitHub
-, emcee
-, h5netcdf
-, matplotlib
-, netcdf4
-, numba
-, numpy
-, pandas
-, setuptools
-, cloudpickle
-, pytestCheckHook
-, scipy
-, packaging
-, pythonOlder
-, typing-extensions
-, xarray
-, xarray-einstats
-, zarr
-, ffmpeg
-, h5py
-, jaxlib
-, torchvision
-, jax
+{
+  lib,
+  buildPythonPackage,
+  dm-tree,
+  fetchFromGitHub,
+  emcee,
+  h5netcdf,
+  matplotlib,
+  netcdf4,
+  numba,
+  numpy,
+  pandas,
+  setuptools,
+  cloudpickle,
+  pytestCheckHook,
+  scipy,
+  packaging,
+  pythonOlder,
+  typing-extensions,
+  xarray,
+  xarray-einstats,
+  zarr,
+  ffmpeg,
+  h5py,
+  jaxlib,
+  torchvision,
+  jax,
   # , pymc3 (circular dependency)
-, pyro-ppl
+  pyro-ppl,
   #, pystan (not packaged)
-, numpyro
-, bokeh
+  numpyro,
+  bokeh,
 }:
 
 buildPythonPackage rec {
@@ -85,9 +86,7 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d);
   '';
 
-  pytestFlagsArray = [
-    "arviz/tests/base_tests/"
-  ];
+  pytestFlagsArray = [ "arviz/tests/base_tests/" ];
 
   disabledTests = [
     # Tests require network access
@@ -110,9 +109,7 @@ buildPythonPackage rec {
     "test_plot_forest"
   ];
 
-  pythonImportsCheck = [
-    "arviz"
-  ];
+  pythonImportsCheck = [ "arviz" ];
 
   meta = with lib; {
     description = "Library for exploratory analysis of Bayesian models";
diff --git a/pkgs/development/python-modules/arxiv2bib/default.nix b/pkgs/development/python-modules/arxiv2bib/default.nix
index a60642a114890..889159ccff34d 100644
--- a/pkgs/development/python-modules/arxiv2bib/default.nix
+++ b/pkgs/development/python-modules/arxiv2bib/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, lib
-, fetchFromGitHub
-, mock
-, unittestCheckHook
+{
+  buildPythonPackage,
+  lib,
+  fetchFromGitHub,
+  mock,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,8 +19,14 @@ buildPythonPackage rec {
     sha256 = "1kp2iyx20lpc9dv4qg5fgwf83a1wx6f7hj1ldqyncg0kn9xcrhbg";
   };
 
-  nativeCheckInputs = [ unittestCheckHook mock ];
-  unittestFlagsArray = [ "-s" "tests" ];
+  nativeCheckInputs = [
+    unittestCheckHook
+    mock
+  ];
+  unittestFlagsArray = [
+    "-s"
+    "tests"
+  ];
 
   meta = with lib; {
     description = "Get a BibTeX entry from an arXiv id number, using the arxiv.org API";
diff --git a/pkgs/development/python-modules/asana/default.nix b/pkgs/development/python-modules/asana/default.nix
index a37a70844d6eb..f63bd17297e1c 100644
--- a/pkgs/development/python-modules/asana/default.nix
+++ b/pkgs/development/python-modules/asana/default.nix
@@ -1,18 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-oauthlib
-, responses
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  certifi,
+  six,
+  python-dateutil,
+  urllib3,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "asana";
-  version = "5.0.3";
-  format = "setuptools";
+  version = "5.0.7";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -20,23 +22,21 @@ buildPythonPackage rec {
     owner = "asana";
     repo = "python-asana";
     rev = "refs/tags/v${version}";
-    hash = "sha256-9F63DvwMh9NwlTqFuhiXfgRRRxAFjjRYmYzsuOhlQJ0=";
+    hash = "sha256-X6444LU2hcx4Er5N+WbSjgbe2tHjl1y1z5FqZGngiOw=";
   };
 
-  propagatedBuildInputs = [
-    requests
-    requests-oauthlib
+  build-system = [ setuptools ];
+
+  dependencies = [
+    certifi
     six
+    python-dateutil
+    urllib3
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-    responses
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "asana"
-  ];
+  pythonImportsCheck = [ "asana" ];
 
   meta = with lib; {
     description = "Python client library for Asana";
diff --git a/pkgs/development/python-modules/ascii-magic/default.nix b/pkgs/development/python-modules/ascii-magic/default.nix
index 0c876d756ebef..8f7b5ae5c4284 100644
--- a/pkgs/development/python-modules/ascii-magic/default.nix
+++ b/pkgs/development/python-modules/ascii-magic/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, colorama
-, fetchPypi
-, pillow
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  colorama,
+  fetchPypi,
+  pillow,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,13 +26,9 @@ buildPythonPackage rec {
     pillow
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ascii_magic"
-  ];
+  pythonImportsCheck = [ "ascii_magic" ];
 
   preCheck = ''
     cd tests
diff --git a/pkgs/development/python-modules/asciimatics/default.nix b/pkgs/development/python-modules/asciimatics/default.nix
index 0a9736bebe508..ee536ff7177df 100644
--- a/pkgs/development/python-modules/asciimatics/default.nix
+++ b/pkgs/development/python-modules/asciimatics/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pillow
-, pyfiglet
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
-, wcwidth
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pillow,
+  pyfiglet,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  wcwidth,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-z905gEJydRnYtz5iuO+CwL7P7U60IImcO5bJjQuWgho=";
   };
 
-  build-system = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
   dependencies = [
     pyfiglet
@@ -31,11 +30,9 @@ buildPythonPackage rec {
     wcwidth
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck =  [
+  pythonImportsCheck = [
     "asciimatics.effects"
     "asciimatics.renderers"
     "asciimatics.scene"
diff --git a/pkgs/development/python-modules/asciitree/default.nix b/pkgs/development/python-modules/asciitree/default.nix
index 323e1fbf87394..ab8ec69bef49d 100644
--- a/pkgs/development/python-modules/asciitree/default.nix
+++ b/pkgs/development/python-modules/asciitree/default.nix
@@ -1,28 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "asciitree";
   version = "0.3.3";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "mbr";
-    repo = pname;
+    repo = "asciitree";
     rev = version;
-    sha256 = "071wlpyi8pa262sj9xdy0zbj163z84dasxad363z3sfndqxw78h1";
+    hash = "sha256-AaLDO27W6fGHGU11rRpBf5gg1we+9SS1MEJdFP2lPBw=";
   };
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  build-system = [ setuptools ];
 
-  checkPhase = ''
-    pytest
-  '';
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Draws ASCII trees";
diff --git a/pkgs/development/python-modules/asdf-astropy/default.nix b/pkgs/development/python-modules/asdf-astropy/default.nix
new file mode 100644
index 0000000000000..1ee09ad98332a
--- /dev/null
+++ b/pkgs/development/python-modules/asdf-astropy/default.nix
@@ -0,0 +1,70 @@
+{
+  lib,
+  asdf-coordinates-schemas,
+  asdf-standard,
+  asdf-transform-schemas,
+  asdf,
+  astropy,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  packaging,
+  pytest-astropy,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
+  setuptools-scm,
+  setuptools,
+  tomli,
+  wheel,
+}:
+
+buildPythonPackage rec {
+  pname = "asdf-astropy";
+  version = "0.6.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "astropy";
+    repo = "asdf-astropy";
+    rev = "refs/tags/${version}";
+    hash = "sha256-dOd9QdBOu7QotRiHkXJoIqaHG6U9odTlRmy22/nvvuw=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
+  propagatedBuildInputs = [
+    asdf
+    asdf-coordinates-schemas
+    asdf-standard
+    asdf-transform-schemas
+    astropy
+    numpy
+    packaging
+  ];
+
+  nativeCheckInputs = [
+    pytest-astropy
+    pytestCheckHook
+    scipy
+  ];
+
+  pythonImportsCheck = [ "asdf_astropy" ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  meta = with lib; {
+    description = "Extension library for ASDF to provide support for Astropy";
+    homepage = "https://github.com/astropy/asdf-astropy";
+    changelog = "https://github.com/astropy/asdf-astropy/blob/${version}/CHANGES.rst";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/asdf-coordinates-schemas/default.nix b/pkgs/development/python-modules/asdf-coordinates-schemas/default.nix
new file mode 100644
index 0000000000000..9b2c103ac13f0
--- /dev/null
+++ b/pkgs/development/python-modules/asdf-coordinates-schemas/default.nix
@@ -0,0 +1,48 @@
+{
+  lib,
+  asdf-standard,
+  asdf,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools-scm,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "asdf-coordinates-schemas";
+  version = "0.3.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "asdf-format";
+    repo = "asdf-coordinates-schemas";
+    rev = "refs/tags/${version}";
+    hash = "sha256-LuC0m25OqQwivK/Z3OfoCtdhBV87rk16XrkJxUxG07o=";
+  };
+
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  dependencies = [
+    asdf
+    asdf-standard
+  ];
+
+  # Circular dependency with asdf-astropy
+  doCheck = false;
+
+  pythonImportsCheck = [ "asdf_coordinates_schemas" ];
+
+  meta = with lib; {
+    description = "ASDF schemas for coordinates";
+    homepage = "https://github.com/asdf-format/asdf-coordinates-schemas";
+    changelog = "https://github.com/asdf-format/asdf-coordinates-schemas/blob/${version}/CHANGES.rst";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/asdf-standard/default.nix b/pkgs/development/python-modules/asdf-standard/default.nix
index 63586454746bc..15c8191a84653 100644
--- a/pkgs/development/python-modules/asdf-standard/default.nix
+++ b/pkgs/development/python-modules/asdf-standard/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, importlib-resources
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  importlib-resources,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -19,20 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-AVNbwrFb/AnsimLUmZ+c8y3EnccWYMhCVkAij9h3YQI=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [
-    importlib-resources
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [ importlib-resources ];
 
   # Circular dependency on asdf
   doCheck = false;
 
-  pythonImportsCheck = [
-    "asdf_standard"
-  ];
+  pythonImportsCheck = [ "asdf_standard" ];
 
   meta = with lib; {
     description = "Standards document describing ASDF";
diff --git a/pkgs/development/python-modules/asdf-transform-schemas/default.nix b/pkgs/development/python-modules/asdf-transform-schemas/default.nix
index 7adc1705569eb..4a96c06dac39b 100644
--- a/pkgs/development/python-modules/asdf-transform-schemas/default.nix
+++ b/pkgs/development/python-modules/asdf-transform-schemas/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, asdf-standard
-, buildPythonPackage
-, fetchPypi
-, importlib-resources
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  asdf-standard,
+  buildPythonPackage,
+  fetchPypi,
+  importlib-resources,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -20,22 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-gs9MeCV1c0qJUyfyX/WDzpSZ1+K4Nv6IgLLXlhxrRis=";
   };
 
-  build-system = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
-  dependencies = [
-    asdf-standard
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    importlib-resources
-  ];
+  dependencies = [ asdf-standard ] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ];
 
   # Circular dependency on asdf
   doCheck = false;
 
-  pythonImportsCheck = [
-    "asdf_transform_schemas"
-  ];
+  pythonImportsCheck = [ "asdf_transform_schemas" ];
 
   meta = with lib; {
     description = "ASDF schemas for validating transform tags";
diff --git a/pkgs/development/python-modules/asdf-wcs-schemas/default.nix b/pkgs/development/python-modules/asdf-wcs-schemas/default.nix
new file mode 100644
index 0000000000000..f59b2cb98803a
--- /dev/null
+++ b/pkgs/development/python-modules/asdf-wcs-schemas/default.nix
@@ -0,0 +1,56 @@
+{
+  lib,
+  asdf-astropy,
+  asdf-coordinates-schemas,
+  asdf-standard,
+  asdf-transform-schemas,
+  asdf,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "asdf-wcs-schemas";
+  version = "0.4.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "asdf-format";
+    repo = "asdf-wcs-schemas";
+    rev = "refs/tags/${version}";
+    hash = "sha256-4CxKLMYXdNkNwkfFRX3YKkS4e+Z3wQgmz8ogbC4Z1vI=";
+  };
+
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  dependencies = [
+    asdf-coordinates-schemas
+    asdf-standard
+    asdf-transform-schemas
+  ];
+
+  nativeCheckInputs = [
+    asdf
+    asdf-astropy
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "asdf_wcs_schemas" ];
+
+  meta = with lib; {
+    description = "World Coordinate System (WCS) ASDF schemas";
+    homepage = "https://github.com/asdf-format/asdf-wcs-schemas";
+    changelog = "https://github.com/asdf-format/asdf-wcs-schemas/blob/${version}/CHANGES.rst";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/asdf/default.nix b/pkgs/development/python-modules/asdf/default.nix
index a6508229a3f0e..09e00d7ae8f51 100644
--- a/pkgs/development/python-modules/asdf/default.nix
+++ b/pkgs/development/python-modules/asdf/default.nix
@@ -1,98 +1,71 @@
-{ lib
-, asdf-standard
-, asdf-transform-schemas
-, astropy
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, importlib-resources
-, jmespath
-, jsonschema
-, lz4
-, numpy
-, packaging
-, pytest-astropy
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, semantic-version
-, setuptools-scm
+{
+  lib,
+  asdf-standard,
+  asdf-transform-schemas,
+  attrs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fsspec,
+  importlib-metadata,
+  jmespath,
+  lz4,
+  numpy,
+  packaging,
+  psutil,
+  pytest-remotedata,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  semantic-version,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "asdf";
-  version = "2.13.0";
-  format = "pyproject";
+  version = "3.2.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
-    owner = "asdf-format/";
-    repo = pname;
+    owner = "asdf-format";
+    repo = "asdf";
     rev = "refs/tags/${version}";
-    hash = "sha256-u8e7ot5NDRqQFH0eLVnGinBQmQD73BlR5K9HVjA7SIg=";
+    hash = "sha256-r+cEv6g7fq3I/h2mlszzJRQcazy7qP9pg0hfYG/Sa9E=";
   };
 
-  patches = [
-    # Fix default validation, https://github.com/asdf-format/asdf/pull/1203
-    (fetchpatch {
-      name = "default-validation.patch";
-      url = "https://github.com/asdf-format/asdf/commit/6f79f620b4632e20178d9bd53528702605d3e976.patch";
-      hash = "sha256-h/dYhXRCf5oIIC+u6+8C91mJnmEzuNmlEzqc0UEhLy0=";
-      excludes = [
-          "CHANGES.rst"
-      ];
-    })
-  ];
-
-  postPatch = ''
-    # https://github.com/asdf-format/asdf/pull/1203
-    substituteInPlace pyproject.toml \
-      --replace "'jsonschema >=4.0.1, <4.10.0'," "'jsonschema >=4.0.1',"
-  '';
-
-  nativeBuildInputs = [
+  build-system = [
+    setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     asdf-standard
     asdf-transform-schemas
+    importlib-metadata
     jmespath
-    jsonschema
     numpy
     packaging
     pyyaml
     semantic-version
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    importlib-resources
+    attrs
   ];
 
   nativeCheckInputs = [
-    astropy
+    fsspec
     lz4
-    pytest-astropy
+    psutil
+    pytest-remotedata
     pytestCheckHook
   ];
 
-  preCheck = ''
-    export PY_IGNORE_IMPORTMISMATCH=1
-  '';
-
-  pythonImportsCheck = [
-    "asdf"
-  ];
-
-  disabledTests = [
-    "config.rst"
-  ];
+  pythonImportsCheck = [ "asdf" ];
 
   meta = with lib; {
     description = "Python tools to handle ASDF files";
     homepage = "https://github.com/asdf-format/asdf";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
-    # Many tests fail, according to Hydra
-    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/ase/default.nix b/pkgs/development/python-modules/ase/default.nix
index ed3c019146e59..f99b201842e65 100644
--- a/pkgs/development/python-modules/ase/default.nix
+++ b/pkgs/development/python-modules/ase/default.nix
@@ -1,34 +1,69 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, isPy27
-, numpy
-, scipy
-, matplotlib
-, flask
-, pillow
-, psycopg2
+{
+  lib,
+  stdenv,
+  fetchPypi,
+  buildPythonPackage,
+  isPy27,
+  pythonAtLeast,
+  setuptools,
+  numpy,
+  scipy,
+  matplotlib,
+  flask,
+  pillow,
+  psycopg2,
+  tkinter,
+  pytestCheckHook,
+  pytest-mock,
+  pytest-xdist,
 }:
 
 buildPythonPackage rec {
   pname = "ase";
-  version = "3.22.1";
-  format = "setuptools";
+  version = "3.23.0";
+  pyproject = true;
+
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-AE32sOoEsRFMeQ+t/kXUEl6w5TElxmqTQlr4U9gqtDI=";
+    hash = "sha256-kaKqMdib2QsO/f5KfoQmTzKCiyq/yfOOZeBBrXb+yK4=";
   };
 
-  propagatedBuildInputs = [ numpy scipy matplotlib flask pillow psycopg2 ];
+  build-system = [ setuptools ];
 
-  checkPhase = ''
-    $out/bin/ase test
-  '';
+  dependencies = [
+    numpy
+    scipy
+    matplotlib
+    flask
+    pillow
+    psycopg2
+  ] ++ lib.optionals stdenv.isDarwin [
+    tkinter
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-mock
+    pytest-xdist
+  ];
 
-  # tests just hang most likely due to something with subprocesses and cli
-  doCheck = false;
+  disabledTests = [
+    "test_fundamental_params"
+    "test_ase_bandstructure"
+    "test_imports"
+    "test_units"
+    "test_favicon"
+    "test_vibrations_methods" # missing attribute
+    "test_jmol_roundtrip" # missing attribute
+    "test_pw_input_write_nested_flat" # Did not raise DeprecationWarning
+    "test_fix_scaled" # Did not raise UserWarning
+  ] ++ lib.optionals (pythonAtLeast "3.12") [ "test_info_calculators" ];
+
+  preCheck = ''
+    export PATH="$out/bin:$PATH"
+  '';
 
   pythonImportsCheck = [ "ase" ];
 
diff --git a/pkgs/development/python-modules/asf-search/default.nix b/pkgs/development/python-modules/asf-search/default.nix
index f4e06bb8af8da..1d54f0895933f 100644
--- a/pkgs/development/python-modules/asf-search/default.nix
+++ b/pkgs/development/python-modules/asf-search/default.nix
@@ -9,7 +9,6 @@
   pytestCheckHook,
   python-dateutil,
   pythonOlder,
-  pythonRelaxDepsHook,
   pytz,
   remotezip,
   requests-mock,
@@ -21,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "asf-search";
-  version = "7.0.9";
+  version = "7.1.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -30,14 +29,13 @@ buildPythonPackage rec {
     owner = "asfadmin";
     repo = "Discovery-asf_search";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CD9Up4h23dplTt51zif+4ZdW0qczRUz2hCOwUOOlS24=";
+    hash = "sha256-4TiLncVxDxGB8YSgeEvXGb3kY2tjfYYmBAleJeaiPWU=";
   };
 
   pythonRelaxDeps = [ "tenacity" ];
 
   build-system = [ setuptools-scm ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     dateparser
diff --git a/pkgs/development/python-modules/asgi-csrf/default.nix b/pkgs/development/python-modules/asgi-csrf/default.nix
index e04eda64ab509..d7b7a4c03fd29 100644
--- a/pkgs/development/python-modules/asgi-csrf/default.nix
+++ b/pkgs/development/python-modules/asgi-csrf/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, 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 {
diff --git a/pkgs/development/python-modules/asgi-lifespan/default.nix b/pkgs/development/python-modules/asgi-lifespan/default.nix
index 05e21d84585f9..97ab68297c218 100644
--- a/pkgs/development/python-modules/asgi-lifespan/default.nix
+++ b/pkgs/development/python-modules/asgi-lifespan/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, setuptools-scm
-, sniffio
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  sniffio,
 }:
 
 buildPythonPackage rec {
@@ -30,16 +31,12 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  dependencies = [
-    sniffio
-  ];
+  dependencies = [ sniffio ];
 
   # Circular dependencies, starlette
   doCheck = false;
 
-  pythonImportsCheck = [
-    "asgi_lifespan"
-  ];
+  pythonImportsCheck = [ "asgi_lifespan" ];
 
   meta = with lib; {
     description = "Programmatic startup/shutdown of ASGI apps";
diff --git a/pkgs/development/python-modules/asgi-logger/default.nix b/pkgs/development/python-modules/asgi-logger/default.nix
index fb79236d784cc..0133515565e27 100644
--- a/pkgs/development/python-modules/asgi-logger/default.nix
+++ b/pkgs/development/python-modules/asgi-logger/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, poetry-core
-, asgiref
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  asgiref,
 }:
 
 buildPythonPackage rec {
@@ -15,18 +16,12 @@ buildPythonPackage rec {
     hash = "sha256-son1ML9J0UMgJCpWdYD/yK0FO6VmfuzifSWpeCLToKo=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
-  propagatedBuildInputs = [
-    asgiref
-  ];
+  nativeBuildInputs = [ poetry-core ];
+  propagatedBuildInputs = [ asgiref ];
 
   # tests are not in the pypi release, and there are no tags/release corresponding to the pypi releases in the github
   doCheck = false;
-  pythonImportsCheck = [
-    "asgi_logger"
-  ];
+  pythonImportsCheck = [ "asgi_logger" ];
 
   meta = with lib; {
     description = "Access logger for ASGI servers";
diff --git a/pkgs/development/python-modules/asgineer/default.nix b/pkgs/development/python-modules/asgineer/default.nix
index c1fae6959a695..f16cb368f4b8c 100644
--- a/pkgs/development/python-modules/asgineer/default.nix
+++ b/pkgs/development/python-modules/asgineer/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -24,10 +25,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A really thin ASGI web framework";
+    description = "Really thin ASGI web framework";
     license = licenses.bsd2;
     homepage = "https://asgineer.readthedocs.io";
     maintainers = [ maintainers.matthiasbeyer ];
   };
 }
-
diff --git a/pkgs/development/python-modules/asgiref/default.nix b/pkgs/development/python-modules/asgiref/default.nix
index 11fd868ebd915..10cfbf571b305 100644
--- a/pkgs/development/python-modules/asgiref/default.nix
+++ b/pkgs/development/python-modules/asgiref/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -22,18 +23,14 @@ buildPythonPackage rec {
     hash = "sha256-VW1PBh6+nLMD7qxmL83ymuxCPYKVY3qGKsB7ZiMqMu8=";
   };
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ typing-extensions ];
 
   nativeCheckInputs = [
     pytestCheckHook
     pytest-asyncio
   ];
 
-  disabledTests = lib.optionals stdenv.isDarwin [
-    "test_multiprocessing"
-  ];
+  disabledTests = lib.optionals stdenv.isDarwin [ "test_multiprocessing" ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/asks/default.nix b/pkgs/development/python-modules/asks/default.nix
index 86c024f0e12db..1bab5a583c1ae 100644
--- a/pkgs/development/python-modules/asks/default.nix
+++ b/pkgs/development/python-modules/asks/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonAtLeast
-, pythonOlder
-, fetchFromGitHub
-, anyio
-, async-generator
-, h11
-, curio
-, overly
-, pytestCheckHook
-, trio
+{
+  lib,
+  buildPythonPackage,
+  pythonAtLeast,
+  pythonOlder,
+  fetchFromGitHub,
+  anyio,
+  async-generator,
+  h11,
+  curio,
+  overly,
+  pytestCheckHook,
+  trio,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/asmog/default.nix b/pkgs/development/python-modules/asmog/default.nix
index a1d8c340ba689..39e77a2a15ba8 100644
--- a/pkgs/development/python-modules/asmog/default.nix
+++ b/pkgs/development/python-modules/asmog/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/asn1/default.nix b/pkgs/development/python-modules/asn1/default.nix
index 4e62df50aff5d..6b406b13961b0 100644
--- a/pkgs/development/python-modules/asn1/default.nix
+++ b/pkgs/development/python-modules/asn1/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, future
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  future,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,26 +21,18 @@ buildPythonPackage rec {
     hash = "sha256-pXLG2Mkrv6EeJn6Dk+SefzNtrPdQ6of95LbVTKjTADQ=";
   };
 
-  propagatedBuildInputs = [
-    future
-  ];
+  propagatedBuildInputs = [ future ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace setup.py \
       --replace "enum-compat" ""
   '';
 
-  pytestFlagsArray = [
-    "tests/test_asn1.py"
-  ];
+  pytestFlagsArray = [ "tests/test_asn1.py" ];
 
-  pythonImportsCheck = [
-    "asn1"
-  ];
+  pythonImportsCheck = [ "asn1" ];
 
   meta = with lib; {
     description = "Python ASN.1 encoder and decoder";
diff --git a/pkgs/development/python-modules/asn1ate/default.nix b/pkgs/development/python-modules/asn1ate/default.nix
index fbad415431dc5..0a1032259c84d 100644
--- a/pkgs/development/python-modules/asn1ate/default.nix
+++ b/pkgs/development/python-modules/asn1ate/default.nix
@@ -1,9 +1,14 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pyparsing }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyparsing,
+}:
 
 buildPythonPackage rec {
   pname = "asn1ate";
   format = "setuptools";
-  version= "0.6";
+  version = "0.6";
 
   src = fetchFromGitHub {
     sha256 = "1p8hv4gsyqsdr0gafcq497n52pybiqmc22di8ai4nsj60fv0km45";
diff --git a/pkgs/development/python-modules/asn1crypto/default.nix b/pkgs/development/python-modules/asn1crypto/default.nix
index a10ad81c18233..4fb33a866a609 100644
--- a/pkgs/development/python-modules/asn1crypto/default.nix
+++ b/pkgs/development/python-modules/asn1crypto/default.nix
@@ -1,28 +1,33 @@
-{ lib
-, buildPythonPackage
-, python
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  python,
+  fetchFromGitHub,
 
-# build system
-, setuptools
+  # build system
+  setuptools,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 # Switch version based on python version, as the situation isn't easy:
 #   https://github.com/wbond/asn1crypto/issues/269
 #   https://github.com/MatthiasValvekens/certomancer/issues/12
 let
-  provenance = if lib.versionOlder python.version "3.12" then rec {
-    version = "1.5.1";
-    rev = version;
-    hash = "sha256-M8vASxhaJPgkiTrAckxz7gk/QHkrFlNz7fFbnLEBT+M=";
-  } else {
-    version = "1.5.1-unstable-2023-11-03";
-    rev = "b763a757bb2bef2ab63620611ddd8006d5e9e4a2";
-    hash = "sha256-11WajEDtisiJsKQjZMSd5sDog3DuuBzf1PcgSY+uuXY=";
-  };
+  provenance =
+    if lib.versionOlder python.version "3.12" then
+      rec {
+        version = "1.5.1";
+        rev = version;
+        hash = "sha256-M8vASxhaJPgkiTrAckxz7gk/QHkrFlNz7fFbnLEBT+M=";
+      }
+    else
+      {
+        version = "1.5.1-unstable-2023-11-03";
+        rev = "b763a757bb2bef2ab63620611ddd8006d5e9e4a2";
+        hash = "sha256-11WajEDtisiJsKQjZMSd5sDog3DuuBzf1PcgSY+uuXY=";
+      };
 in
 
 buildPythonPackage rec {
@@ -37,13 +42,9 @@ buildPythonPackage rec {
     inherit (provenance) rev hash;
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
     description = "Fast ASN.1 parser and serializer with definitions for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7, PKCS#8, PKCS#12, PKCS#5, X.509 and TSP";
diff --git a/pkgs/development/python-modules/asn1tools/default.nix b/pkgs/development/python-modules/asn1tools/default.nix
index b339739afcab4..4895e713cd60b 100644
--- a/pkgs/development/python-modules/asn1tools/default.nix
+++ b/pkgs/development/python-modules/asn1tools/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, bitstruct
-, buildPythonPackage
-, diskcache
-, fetchFromGitHub
-, prompt-toolkit
-, pyparsing
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  bitstruct,
+  buildPythonPackage,
+  diskcache,
+  fetchFromGitHub,
+  prompt-toolkit,
+  pyparsing,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-TWAOML6nsLX3TYqoQ9fcSjrUmC4byXOfczfkmSaSa0k=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     bitstruct
@@ -35,12 +34,8 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-depdendencies = {
-    shell = [
-      prompt-toolkit
-    ];
-    cache = [
-      diskcache
-    ];
+    shell = [ prompt-toolkit ];
+    cache = [ diskcache ];
   };
 
   nativeCheckInputs = [
@@ -48,9 +43,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-depdendencies);
 
-  pythonImportsCheck = [
-    "asn1tools"
-  ];
+  pythonImportsCheck = [ "asn1tools" ];
 
   disabledTests = [
     # assert exact error message of pyparsing which changed and no longer matches
diff --git a/pkgs/development/python-modules/aspectlib/default.nix b/pkgs/development/python-modules/aspectlib/default.nix
index 3f4a87e0a334e..752484f21374a 100644
--- a/pkgs/development/python-modules/aspectlib/default.nix
+++ b/pkgs/development/python-modules/aspectlib/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, fetchpatch
-, setuptools
-, fields
-, process-tests
-, pytestCheckHook
-, tornado
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  fetchpatch,
+  setuptools,
+  fields,
+  process-tests,
+  pytestCheckHook,
+  tornado,
 }:
 
 buildPythonPackage rec {
@@ -32,13 +33,9 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    fields
-  ];
+  propagatedBuildInputs = [ fields ];
 
   pythonImportsCheck = [
     "aspectlib"
@@ -53,9 +50,7 @@ buildPythonPackage rec {
     tornado
   ];
 
-  pytestFlagsArray = [
-    "-W ignore::DeprecationWarning"
-  ];
+  pytestFlagsArray = [ "-W ignore::DeprecationWarning" ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/aspell-python/default.nix b/pkgs/development/python-modules/aspell-python/default.nix
index 1af34b43fc291..37c708bed5c07 100644
--- a/pkgs/development/python-modules/aspell-python/default.nix
+++ b/pkgs/development/python-modules/aspell-python/default.nix
@@ -1,17 +1,19 @@
-{ lib
-, aspell
-, aspellDicts
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, pytestCheckHook
-, pythonAtLeast
+{
+  lib,
+  aspell,
+  aspellDicts,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  pytestCheckHook,
+  pythonAtLeast,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "aspell-python";
   version = "1.15";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = isPy27;
 
@@ -22,22 +24,18 @@ buildPythonPackage rec {
     hash = "sha256-IEKRDmQY5fOH9bQk0dkUAy7UzpBOoZW4cNtVvLMcs40=";
   };
 
-  buildInputs = [
-    aspell
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  buildInputs = [ aspell ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export ASPELL_CONF="dict-dir ${aspellDicts.en}/lib/aspell"
     export HOME=$(mktemp -d)
   '';
 
-  pytestFlagsArray = [
-    "test/unittests.py"
-  ];
+  pytestFlagsArray = [ "test/unittests.py" ];
 
   disabledTests = lib.optionals (pythonAtLeast "3.10") [
     # https://github.com/WojciechMula/aspell-python/issues/22
@@ -46,9 +44,7 @@ buildPythonPackage rec {
     "test_saveall"
   ];
 
-  pythonImportsCheck = [
-    "aspell"
-  ];
+  pythonImportsCheck = [ "aspell" ];
 
   meta = with lib; {
     description = "Python wrapper for aspell (C extension and Python version)";
diff --git a/pkgs/development/python-modules/aspy-refactor-imports/default.nix b/pkgs/development/python-modules/aspy-refactor-imports/default.nix
index 9ba679225da25..bcfb80b32e814 100644
--- a/pkgs/development/python-modules/aspy-refactor-imports/default.nix
+++ b/pkgs/development/python-modules/aspy-refactor-imports/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, stdenv
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  stdenv,
 }:
 
 buildPythonPackage rec {
@@ -19,19 +20,15 @@ buildPythonPackage rec {
     sha256 = "MlCM3zNTQZJ1RWrTQG0AN28RUepWINKCeLENykbu2nw=";
   };
 
-  pythonImportsCheck = [
-    "aspy.refactor_imports"
-  ];
+  pythonImportsCheck = [ "aspy.refactor_imports" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # fails on darwin due to case-insensitive file system
-  disabledTests = lib.optionals stdenv.isDarwin ["test_application_directory_case"];
+  disabledTests = lib.optionals stdenv.isDarwin [ "test_application_directory_case" ];
 
   meta = with lib; {
-    description = "Utilities for refactoring imports in python-like syntax.";
+    description = "Utilities for refactoring imports in python-like syntax";
     homepage = "https://github.com/asottile/aspy.refactor_imports";
     license = licenses.mit;
     maintainers = with maintainers; [ gador ];
diff --git a/pkgs/development/python-modules/aspy-yaml/default.nix b/pkgs/development/python-modules/aspy-yaml/default.nix
index 732d19be0d10c..5387b50c108d4 100644
--- a/pkgs/development/python-modules/aspy-yaml/default.nix
+++ b/pkgs/development/python-modules/aspy-yaml/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pyyaml }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyyaml,
+}:
 
 buildPythonPackage rec {
   pname = "aspy-yaml";
@@ -17,7 +22,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A few extensions to pyyaml";
+    description = "Few extensions to pyyaml";
     homepage = "https://github.com/asottile/aspy.yaml";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/assay/default.nix b/pkgs/development/python-modules/assay/default.nix
index 35dce9a454a24..25108a26d4044 100644
--- a/pkgs/development/python-modules/assay/default.nix
+++ b/pkgs/development/python-modules/assay/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonAtLeast }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+}:
 
 buildPythonPackage rec {
   pname = "assay";
diff --git a/pkgs/development/python-modules/assertpy/default.nix b/pkgs/development/python-modules/assertpy/default.nix
index de900c368da18..e45e59409c724 100644
--- a/pkgs/development/python-modules/assertpy/default.nix
+++ b/pkgs/development/python-modules/assertpy/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,9 @@ buildPythonPackage rec {
     sha256 = "0hnfh45cmqyp7zasrllwf8gbq3mazqlhhk0sq1iqlh6fig0yfq2f";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "assertpy"
-  ];
+  pythonImportsCheck = [ "assertpy" ];
 
   meta = with lib; {
     description = "Simple assertion library for unit testing with a fluent API";
diff --git a/pkgs/development/python-modules/asterisk-mbox/default.nix b/pkgs/development/python-modules/asterisk-mbox/default.nix
index 0a08dc737449a..7b6af81ba0339 100644
--- a/pkgs/development/python-modules/asterisk-mbox/default.nix
+++ b/pkgs/development/python-modules/asterisk-mbox/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch2
-, setuptools
-, packaging
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch2,
+  setuptools,
+  packaging,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    packaging
-  ];
+  propagatedBuildInputs = [ packaging ];
 
   # no tests implemented
   doCheck = false;
@@ -40,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "asterisk_mbox" ];
 
   meta = with lib; {
-    description = "The client side of a client/server to interact with Asterisk voicemail mailboxes";
+    description = "Client side of a client/server to interact with Asterisk voicemail mailboxes";
     homepage = "https://github.com/PhracturedBlue/asterisk_mbox";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/asteroid-filterbanks/default.nix b/pkgs/development/python-modules/asteroid-filterbanks/default.nix
index 3a22c0fb5132e..9c41816421752 100644
--- a/pkgs/development/python-modules/asteroid-filterbanks/default.nix
+++ b/pkgs/development/python-modules/asteroid-filterbanks/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, black
-, codecov
-, coverage
-, librosa
-, numpy
-, pre-commit
-, pytest
-, scipy
-, torch
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  black,
+  codecov,
+  coverage,
+  librosa,
+  numpy,
+  pre-commit,
+  pytest,
+  scipy,
+  torch,
 }:
 
 buildPythonPackage rec {
@@ -46,7 +47,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "asteroid_filterbanks" ];
 
   meta = with lib; {
-    description = "The PyTorch-based audio source separation toolkit for researchers";
+    description = "PyTorch-based audio source separation toolkit for researchers";
     homepage = "https://github.com/asteroid-team/asteroid-filterbanks";
     license = licenses.mit;
     maintainers = with maintainers; [ matthewcroughan ];
diff --git a/pkgs/development/python-modules/asteval/default.nix b/pkgs/development/python-modules/asteval/default.nix
index d625dfe3448ed..e9eed2ac38e0e 100644
--- a/pkgs/development/python-modules/asteval/default.nix
+++ b/pkgs/development/python-modules/asteval/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "asteval";
-  version = "0.9.32";
+  version = "0.9.33";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "lmfit";
     repo = "asteval";
     rev = "refs/tags/${version}";
-    hash = "sha256-3eML5lEKEUlp3Fwdgvk31an83x8no5ichskKvzYJDsE=";
+    hash = "sha256-j07HH84cn2AA5DyMcM7sXiBubCjZP67RJXVcErMPyBk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/astor/default.nix b/pkgs/development/python-modules/astor/default.nix
index f69afaf55252c..c13e6d4cfab03 100644
--- a/pkgs/development/python-modules/astor/default.nix
+++ b/pkgs/development/python-modules/astor/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
   };
 
   # disable tests broken with python3.6: https://github.com/berkerpeksag/astor/issues/89
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # https://github.com/berkerpeksag/astor/issues/196
diff --git a/pkgs/development/python-modules/astral/default.nix b/pkgs/development/python-modules/astral/default.nix
index 40f66dc26ab47..c6831e4473cb9 100644
--- a/pkgs/development/python-modules/astral/default.nix
+++ b/pkgs/development/python-modules/astral/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# build
-, poetry-core
+  # build
+  poetry-core,
 
-# runtime
-, backports-zoneinfo
+  # runtime
+  backports-zoneinfo,
 
-# tests
-, pytestCheckHook
-, freezegun
+  # tests
+  pytestCheckHook,
+  freezegun,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     hash = "sha256-m3w7QS6eadFyz7JL4Oat3MnxvQGijbi+vmbXXMxTPYg=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [
-    backports-zoneinfo
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [ backports-zoneinfo ];
 
   nativeCheckInputs = [
     freezegun
diff --git a/pkgs/development/python-modules/astroid/default.nix b/pkgs/development/python-modules/astroid/default.nix
index d0b3fe60160aa..200dc13e989ff 100644
--- a/pkgs/development/python-modules/astroid/default.nix
+++ b/pkgs/development/python-modules/astroid/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, typing-extensions
-, pip
-, pylint
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
+  pip,
+  pylint,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "astroid";
-  version = "3.1.0"; # Check whether the version is compatible with pylint
+  version = "3.2.2"; # Check whether the version is compatible with pylint
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,16 +21,12 @@ buildPythonPackage rec {
     owner = "PyCQA";
     repo = "astroid";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+cTQHbqoucaNi7rPoyH6Cu07vZMS8KWn5C/A3NXRSwE=";
+    hash = "sha256-Fc/AjMOz9D9SgkxXvMAhvJcZtj9BsPykg0DX4hEqdB8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [ typing-extensions ];
 
   nativeCheckInputs = [
     pip
@@ -42,7 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/PyCQA/astroid/blob/${src.rev}/ChangeLog";
-    description = "An abstract syntax tree for Python with inference support";
+    description = "Abstract syntax tree for Python with inference support";
     homepage = "https://github.com/PyCQA/astroid";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/astropy-extension-helpers/default.nix b/pkgs/development/python-modules/astropy-extension-helpers/default.nix
index 9f7280185aedd..e398e7c34c2f7 100644
--- a/pkgs/development/python-modules/astropy-extension-helpers/default.nix
+++ b/pkgs/development/python-modules/astropy-extension-helpers/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, findutils
-, pytestCheckHook
-, pythonOlder
-, pip
-, setuptools
-, setuptools-scm
-, tomli
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  findutils,
+  pytestCheckHook,
+  pythonOlder,
+  pip,
+  setuptools,
+  setuptools-scm,
+  tomli,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -40,9 +41,7 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    tomli
-  ];
+  propagatedBuildInputs = [ tomli ];
 
   nativeCheckInputs = [
     findutils
@@ -51,18 +50,14 @@ buildPythonPackage rec {
   ];
 
   # avoid import mismatch errors, as conftest.py is copied to build dir
-  pytestFlagsArray = [
-    "extension_helpers"
-  ];
+  pytestFlagsArray = [ "extension_helpers" ];
 
   disabledTests = [
     # https://github.com/astropy/extension-helpers/issues/43
     "test_write_if_different"
   ];
 
-  pythonImportsCheck = [
-    "extension_helpers"
-  ];
+  pythonImportsCheck = [ "extension_helpers" ];
 
   meta = with lib; {
     description = "Utilities for building and installing packages in the Astropy ecosystem";
diff --git a/pkgs/development/python-modules/astropy-healpix/default.nix b/pkgs/development/python-modules/astropy-healpix/default.nix
index fa04d6595e8bf..e65d0d2222854 100644
--- a/pkgs/development/python-modules/astropy-healpix/default.nix
+++ b/pkgs/development/python-modules/astropy-healpix/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, numpy
-, astropy
-, astropy-extension-helpers
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, pytest-doctestplus
-, hypothesis
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  astropy,
+  astropy-extension-helpers,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  pytest-doctestplus,
+  hypothesis,
 }:
 
 buildPythonPackage rec {
@@ -19,12 +20,17 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit version;
-    pname = lib.replaceStrings ["-"] ["_"] pname;
+    pname = lib.replaceStrings [ "-" ] [ "_" ] pname;
     hash = "sha256-3l0qfsl7FnBFBmlx8loVDR5AYfBxWb4jZJY02zbnl0Y=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml --replace "numpy>=2.0.0rc1" "numpy"
+  '';
+
   nativeBuildInputs = [
     astropy-extension-helpers
+    numpy
     setuptools
     setuptools-scm
   ];
diff --git a/pkgs/development/python-modules/astropy-helpers/default.nix b/pkgs/development/python-modules/astropy-helpers/default.nix
index 0cf6cbda0688c..c803ac0449c37 100644
--- a/pkgs/development/python-modules/astropy-helpers/default.nix
+++ b/pkgs/development/python-modules/astropy-helpers/default.nix
@@ -1,7 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -9,7 +11,8 @@ buildPythonPackage rec {
   version = "4.0.1";
   format = "setuptools";
 
-  disabled = !isPy3k;
+  # ModuleNotFoundError: No module named 'imp'
+  disabled = !isPy3k || pythonAtLeast "3.12";
 
   doCheck = false; # tests requires sphinx-astropy
 
diff --git a/pkgs/development/python-modules/astropy-iers-data/default.nix b/pkgs/development/python-modules/astropy-iers-data/default.nix
index ae993ba5d520a..9d7a88369aaf8 100644
--- a/pkgs/development/python-modules/astropy-iers-data/default.nix
+++ b/pkgs/development/python-modules/astropy-iers-data/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, setuptools-scm
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "astropy-iers-data";
-  version = "0.2024.04.01.00.33.14";
+  version = "0.2024.06.17.00.31.35";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +19,7 @@ buildPythonPackage rec {
     owner = "astropy";
     repo = "astropy-iers-data";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6FHAntN+m0cLDEhWPrcgyD0PgVDOfC8nf4kVl1z8x0g=";
+    hash = "sha256-hFlDXnxhKuhlCFrF+Uip3Xjc9Jt8UFJcDCST90BmAlg=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/astropy/default.nix b/pkgs/development/python-modules/astropy/default.nix
index d22420b9fcfe2..6da626bb545d3 100644
--- a/pkgs/development/python-modules/astropy/default.nix
+++ b/pkgs/development/python-modules/astropy/default.nix
@@ -1,41 +1,47 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
 
-# build time
-, astropy-extension-helpers
-, cython
-, jinja2
-, oldest-supported-numpy
-, setuptools-scm
-, wheel
-# testing
-, pytestCheckHook
-, stdenv
-, pytest-xdist
-, pytest-astropy
+  # build time
+  astropy-extension-helpers,
+  cython,
+  jinja2,
+  oldest-supported-numpy,
+  setuptools-scm,
+  wheel,
+  # testing
+  pytestCheckHook,
+  stdenv,
+  pytest-xdist,
+  pytest-astropy,
 
-# runtime
-, astropy-iers-data
-, numpy
-, packaging
-, pyerfa
-, pyyaml
+  # runtime
+  astropy-iers-data,
+  numpy,
+  packaging,
+  pyerfa,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
   pname = "astropy";
-  version = "6.0.1";
+  version = "6.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8"; # according to setup.cfg
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ial13jVtBgjnTx9JNEL7Osu7eoW3OeB0RguwNAAUs5w=";
+    hash = "sha256-5cb0XZEcMKy41VbH+O2ZSuxxsQjmHu5QZ/AK8eTjYTg=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "numpy>=2.0.0"  "numpy"
+  '';
+
   nativeBuildInputs = [
     astropy-extension-helpers
     cython
@@ -66,9 +72,7 @@ buildPythonPackage rec {
     export HOME="$(mktemp -d)"
     export OMP_NUM_THREADS=$(( $NIX_BUILD_CORES / 4 ))
   '';
-  pythonImportsCheck = [
-    "astropy"
-  ];
+  pythonImportsCheck = [ "astropy" ];
   disabledTests = [
     # May fail due to parallelism, see:
     # https://github.com/astropy/astropy/issues/15441
@@ -84,15 +88,16 @@ buildPythonPackage rec {
     "test_sidereal_lon_independent"
     "test_timedelta_full_precision_arithmetic"
     "test_datetime_to_timedelta"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_sidereal_lat_independent"
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ "test_sidereal_lat_independent" ];
 
   meta = {
     description = "Astronomy/Astrophysics library for Python";
     homepage = "https://www.astropy.org";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.all;
-    maintainers = with lib.maintainers; [ kentjames doronbehar ];
+    maintainers = with lib.maintainers; [
+      kentjames
+      doronbehar
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/astroquery/default.nix b/pkgs/development/python-modules/astroquery/default.nix
index 070238d8b2c49..7988d75a90447 100644
--- a/pkgs/development/python-modules/astroquery/default.nix
+++ b/pkgs/development/python-modules/astroquery/default.nix
@@ -1,20 +1,23 @@
-{ pkgs
-, buildPythonPackage
-, fetchPypi
-, astropy
-, requests
-, keyring
-, beautifulsoup4
-, html5lib
-, matplotlib
-, pillow
-, pytest
-, pytest-astropy
-, pytestCheckHook
-, pyvo
-, astropy-helpers
-, setuptools
-, isPy3k
+{
+  pkgs,
+  buildPythonPackage,
+  fetchPypi,
+  astropy,
+  requests,
+  keyring,
+  beautifulsoup4,
+  html5lib,
+  matplotlib,
+  pillow,
+  pytest,
+  pytest-astropy,
+  pytest-dependency,
+  pytest-rerunfailures,
+  pytestCheckHook,
+  pyvo,
+  astropy-helpers,
+  setuptools,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -38,24 +41,31 @@ buildPythonPackage rec {
     pyvo
   ];
 
-  nativeBuildInputs = [ astropy-helpers setuptools ];
+  nativeBuildInputs = [
+    astropy-helpers
+    setuptools
+  ];
 
   # Disable automatic update of the astropy-helper module
   postPatch = ''
     substituteInPlace setup.cfg --replace "auto_use = True" "auto_use = False"
   '';
 
-  nativeCheckInputs = [
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  checkInputs = [
     matplotlib
     pillow
     pytest
     pytest-astropy
-    pytestCheckHook
+    pytest-dependency
+    pytest-rerunfailures
   ];
 
   pytestFlagsArray = [
     # DeprecationWarning: 'cgi' is deprecated and slated for removal in Python 3.13
-    "-W" "ignore::DeprecationWarning"
+    "-W"
+    "ignore::DeprecationWarning"
   ];
 
   # Tests must be run in the build directory. The tests create files
diff --git a/pkgs/development/python-modules/asttokens/default.nix b/pkgs/development/python-modules/asttokens/default.nix
index 53fe96ff4d03b..a725032d75481 100644
--- a/pkgs/development/python-modules/asttokens/default.nix
+++ b/pkgs/development/python-modules/asttokens/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, setuptools-scm
-, six
-, astroid
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  setuptools-scm,
+  six,
+  astroid,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-sDhpcYuppusCfhNL/fafOKI21oHIPBYNUQdorxElS6A=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   nativeCheckInputs = [
     astroid
diff --git a/pkgs/development/python-modules/astunparse/default.nix b/pkgs/development/python-modules/astunparse/default.nix
index 54ee47f37d259..77f2cc10ad102 100644
--- a/pkgs/development/python-modules/astunparse/default.nix
+++ b/pkgs/development/python-modules/astunparse/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, six
-, wheel
- }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  six,
+  wheel,
+}:
 
 buildPythonPackage rec {
   pname = "astunparse";
-  version =  "1.6.3";
+  version = "1.6.3";
   format = "setuptools";
 
   src = fetchPypi {
@@ -15,7 +16,10 @@ buildPythonPackage rec {
     sha256 = "5ad93a8456f0d084c3456d059fd9a92cce667963232cbf763eac3bc5b7940872";
   };
 
-  propagatedBuildInputs = [ six wheel ];
+  propagatedBuildInputs = [
+    six
+    wheel
+  ];
 
   # tests not included with pypi release
   doCheck = false;
diff --git a/pkgs/development/python-modules/asyauth/default.nix b/pkgs/development/python-modules/asyauth/default.nix
index 3421902ff8309..786bfc4c7fe78 100644
--- a/pkgs/development/python-modules/asyauth/default.nix
+++ b/pkgs/development/python-modules/asyauth/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, asn1crypto
-, asysocks
-, buildPythonPackage
-, fetchPypi
-, minikerberos
-, pythonOlder
-, unicrypto
+{
+  lib,
+  asn1crypto,
+  asysocks,
+  buildPythonPackage,
+  fetchPypi,
+  minikerberos,
+  pythonOlder,
+  unicrypto,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Project doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "asyauth"
-  ];
+  pythonImportsCheck = [ "asyauth" ];
 
   meta = with lib; {
     description = "Unified authentication library";
diff --git a/pkgs/development/python-modules/async-dns/default.nix b/pkgs/development/python-modules/async-dns/default.nix
index 375e72d24fdda..cbc8f15ed2107 100644
--- a/pkgs/development/python-modules/async-dns/default.nix
+++ b/pkgs/development/python-modules/async-dns/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, python
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     sha256 = "0vn7hxvpzikd7q61a27fwzal4lwsra2063awyr6fjpy6lh3cjdwf";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   checkPhase = ''
     export HOME=$TMPDIR
diff --git a/pkgs/development/python-modules/async-generator/default.nix b/pkgs/development/python-modules/async-generator/default.nix
index 92c281580d9e8..81efcc00d9ce8 100644
--- a/pkgs/development/python-modules/async-generator/default.nix
+++ b/pkgs/development/python-modules/async-generator/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonAtLeast
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,20 +20,19 @@ buildPythonPackage rec {
     hash = "sha256-brs9EGwSkgqq5CzLb3h+9e79zdFm6j1ij6hHar5xIUQ=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = lib.optionals (pythonAtLeast "3.12") [
-    "test_aclose_on_unstarted_generator"
-  ];
+  disabledTests = lib.optionals (pythonAtLeast "3.12") [ "test_aclose_on_unstarted_generator" ];
 
   pythonImportsCheck = [ "async_generator" ];
 
   meta = with lib; {
     description = "Async generators and context managers for Python 3.5+";
     homepage = "https://github.com/python-trio/async_generator";
-    license = with licenses; [ mit asl20 ];
+    license = with licenses; [
+      mit
+      asl20
+    ];
     maintainers = with maintainers; [ dotlambda ];
   };
 }
diff --git a/pkgs/development/python-modules/async-interrupt/default.nix b/pkgs/development/python-modules/async-interrupt/default.nix
index b6e16f54963dd..d9fa7c8a59e5b 100644
--- a/pkgs/development/python-modules/async-interrupt/default.nix
+++ b/pkgs/development/python-modules/async-interrupt/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,18 +27,14 @@ buildPythonPackage rec {
       --replace " --cov=async_interrupt --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "async_interrupt"
-  ];
+  pythonImportsCheck = [ "async_interrupt" ];
 
   meta = with lib; {
     description = "Context manager to raise an exception when a future is done";
diff --git a/pkgs/development/python-modules/async-lru/default.nix b/pkgs/development/python-modules/async-lru/default.nix
index 2f4ef7262acde..91fd5b0b9180c 100644
--- a/pkgs/development/python-modules/async-lru/default.nix
+++ b/pkgs/development/python-modules/async-lru/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, typing-extensions
-, pytestCheckHook
-, pytest-asyncio
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  typing-extensions,
+  pytestCheckHook,
+  pytest-asyncio,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-S2sOkgtS+YdMtVP7UHD3+oR8Fem8roLhhgVVfh33PcM=";
   };
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [ typing-extensions ];
 
   postPatch = ''
     sed -i -e '/^addopts/d' -e '/^filterwarnings/,+2d' setup.cfg
diff --git a/pkgs/development/python-modules/async-modbus/default.nix b/pkgs/development/python-modules/async-modbus/default.nix
index 05d9267443523..24a4b3c30eefb 100644
--- a/pkgs/development/python-modules/async-modbus/default.nix
+++ b/pkgs/development/python-modules/async-modbus/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, connio
-, fetchFromGitHub
-, fetchpatch
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, umodbus
+{
+  lib,
+  buildPythonPackage,
+  connio,
+  fetchFromGitHub,
+  fetchpatch,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  umodbus,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
       --replace '"--durations=2", "--verbose"' ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     connio
@@ -53,9 +52,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "async_modbus"
-  ];
+  pythonImportsCheck = [ "async_modbus" ];
 
   meta = with lib; {
     description = "Library for Modbus communication";
diff --git a/pkgs/development/python-modules/async-stagger/default.nix b/pkgs/development/python-modules/async-stagger/default.nix
index 379056ad56f3c..51c18ed367739 100644
--- a/pkgs/development/python-modules/async-stagger/default.nix
+++ b/pkgs/development/python-modules/async-stagger/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pytestCheckHook
-, pytest-asyncio
-, pytest-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytestCheckHook,
+  pytest-asyncio,
+  pytest-mock,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     "test_stagger_coro_gen"
   ];
 
-  pythonImportsCheck = [
-    "async_stagger"
-  ];
+  pythonImportsCheck = [ "async_stagger" ];
 
   meta = with lib; {
     description = "Happy Eyeballs connection algorithm and underlying scheduling logic in asyncio";
diff --git a/pkgs/development/python-modules/async-timeout/default.nix b/pkgs/development/python-modules/async-timeout/default.nix
index 88a6c9e14e34f..bc7c535947c07 100644
--- a/pkgs/development/python-modules/async-timeout/default.nix
+++ b/pkgs/development/python-modules/async-timeout/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-RkDZa+hNgtAu1Z6itxBaD3szq+hwNwPNCrC/h8QnUi8=";
   };
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ typing-extensions ];
 
   # Circular dependency on aiohttp
   doCheck = false;
diff --git a/pkgs/development/python-modules/async-tkinter-loop/default.nix b/pkgs/development/python-modules/async-tkinter-loop/default.nix
index 2d4c0e538a687..a620c95843cc4 100644
--- a/pkgs/development/python-modules/async-tkinter-loop/default.nix
+++ b/pkgs/development/python-modules/async-tkinter-loop/default.nix
@@ -1,12 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python3Packages
-, poetry-core
-, tkinter
-, typing-extensions
-, pythonRelaxDepsHook
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python3Packages,
+  poetry-core,
+  tkinter,
+  typing-extensions,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +21,6 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     poetry-core
   ];
 
@@ -30,13 +29,9 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  pythonRemoveDeps = [
-    "asyncio"
-  ];
+  pythonRemoveDeps = [ "asyncio" ];
 
-  pythonImportsCheck = [
-    "async_tkinter_loop"
-  ];
+  pythonImportsCheck = [ "async_tkinter_loop" ];
 
   meta = with lib; {
     description = "Implementation of asynchronous mainloop for tkinter, the use of which allows using async handler functions";
diff --git a/pkgs/development/python-modules/async-upnp-client/default.nix b/pkgs/development/python-modules/async-upnp-client/default.nix
index d896a16f5ab6e..7c87735f74724 100644
--- a/pkgs/development/python-modules/async-upnp-client/default.nix
+++ b/pkgs/development/python-modules/async-upnp-client/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, aiohttp
-, async-timeout
-, defusedxml
-, python-didl-lite
-, voluptuous
+  # dependencies
+  aiohttp,
+  async-timeout,
+  defusedxml,
+  python-didl-lite,
+  voluptuous,
 
-# tests
-, pytest-aiohttp
-, pytest-asyncio
-, pytestCheckHook
+  # tests
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "async-upnp-client";
-  version = "0.38.3";
+  version = "0.39.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -31,12 +32,12 @@ buildPythonPackage rec {
     owner = "StevenLooman";
     repo = "async_upnp_client";
     rev = "refs/tags/${version}";
-    hash = "sha256-RmpQOVZ/s3Zv2e+iS7LTI5Wh/g0yy0Xv0M8ppsbYZPg=";
+    hash = "sha256-2A46/j6DkZ7rz/B64aBAp0NvRG5TBuL4VwMVS50+fQs=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  pythonRelaxDeps = [ "defusedxml" ];
+
+  build-system = [ setuptools ];
 
   dependencies = [
     aiohttp
@@ -56,18 +57,14 @@ buildPythonPackage rec {
     # socket.gaierror: [Errno -2] Name or service not known
     "test_async_get_local_ip"
     "test_get_local_ip"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_deferred_callback_url"
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ "test_deferred_callback_url" ];
 
   disabledTestPaths = [
     # Tries to bind to multicast socket and fails to find proper interface
     "tests/test_ssdp_listener.py"
   ];
 
-  pythonImportsCheck = [
-    "async_upnp_client"
-  ];
+  pythonImportsCheck = [ "async_upnp_client" ];
 
   meta = with lib; {
     description = "Asyncio UPnP Client library for Python";
diff --git a/pkgs/development/python-modules/asyncclick/default.nix b/pkgs/development/python-modules/asyncclick/default.nix
index 5847a55f83756..9e5b82197efbd 100644
--- a/pkgs/development/python-modules/asyncclick/default.nix
+++ b/pkgs/development/python-modules/asyncclick/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, anyio
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
-, trio
+{
+  lib,
+  anyio,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
+  trio,
 }:
 
 buildPythonPackage rec {
   pname = "asyncclick";
-  version = "8.1.7.1";
+  version = "8.1.7.2";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     owner = "python-trio";
     repo = "asyncclick";
     rev = "refs/tags/${version}";
-    hash = "sha256-gx7s/HikvjsXalc0Z73JWMKc1SlhR+kohwk2sW4o19I=";
+    hash = "sha256-ahzI7yILq1OpZ6IT0qt8vjzi6I6zAoTrULOl8CqRw4A=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    anyio
-  ];
+  propagatedBuildInputs = [ anyio ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -36,7 +33,8 @@ buildPythonPackage rec {
   ];
 
   pytestFlagsArray = [
-    "-W" "ignore::trio.TrioDeprecationWarning"
+    "-W"
+    "ignore::trio.TrioDeprecationWarning"
   ];
 
   disabledTests = [
@@ -44,9 +42,7 @@ buildPythonPackage rec {
     "test_context_pushing"
   ];
 
-  pythonImportsCheck = [
-    "asyncclick"
-  ];
+  pythonImportsCheck = [ "asyncclick" ];
 
   meta = with lib; {
     description = "Python composable command line utility";
diff --git a/pkgs/development/python-modules/asynccmd/default.nix b/pkgs/development/python-modules/asynccmd/default.nix
index 6234240474297..0cfbf87fc4d3b 100644
--- a/pkgs/development/python-modules/asynccmd/default.nix
+++ b/pkgs/development/python-modules/asynccmd/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/asyncinotify/default.nix b/pkgs/development/python-modules/asyncinotify/default.nix
index 6fe187bfc3cf1..27fb79e5b98be 100644
--- a/pkgs/development/python-modules/asyncinotify/default.nix
+++ b/pkgs/development/python-modules/asyncinotify/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,21 +21,13 @@ buildPythonPackage rec {
     hash = "sha256-RXx6i5dIB2oySVaLoHPRGD9VKgiO5OAXmrzVBq8Ad18=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "asyncinotify"
-  ];
+  pythonImportsCheck = [ "asyncinotify" ];
 
-  pytestFlagsArray = [
-    "test.py"
-  ];
+  pytestFlagsArray = [ "test.py" ];
 
   meta = with lib; {
     description = "Module for inotify";
diff --git a/pkgs/development/python-modules/asyncio-dgram/default.nix b/pkgs/development/python-modules/asyncio-dgram/default.nix
index f999cd3b3b344..cdd6ac9b97811 100644
--- a/pkgs/development/python-modules/asyncio-dgram/default.nix
+++ b/pkgs/development/python-modules/asyncio-dgram/default.nix
@@ -1,32 +1,33 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "asyncio-dgram";
-  version = "2.1.2";
-  format = "setuptools";
+  version = "2.2.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "jsbronder";
-    repo = pname;
-    rev = "refs/tagsv${version}";
+    repo = "asyncio-dgram";
+    rev = "refs/tags/v${version}";
     hash = "sha256-Eb/9JtgPT2yOlfnn5Ox8M0kcQhSlRCuX8+Rq6amki8Q=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  build-system = [ setuptools ];
 
-  checkInputs = [
+  nativeCheckInputs = [
     pytest-asyncio
+    pytestCheckHook
   ];
 
   # OSError: AF_UNIX path too long
@@ -38,9 +39,7 @@ buildPythonPackage rec {
     "test_from_socket_bad_socket"
   ];
 
-  pythonImportsCheck = [
-    "asyncio_dgram"
-  ];
+  pythonImportsCheck = [ "asyncio_dgram" ];
 
   meta = with lib; {
     description = "Python support for higher level Datagram";
diff --git a/pkgs/development/python-modules/asyncio-mqtt/default.nix b/pkgs/development/python-modules/asyncio-mqtt/default.nix
index 309e74ba4cc1b..8209b94606592 100644
--- a/pkgs/development/python-modules/asyncio-mqtt/default.nix
+++ b/pkgs/development/python-modules/asyncio-mqtt/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, anyio
-, buildPythonPackage
-, fetchFromGitHub
-, paho-mqtt
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
-, typing-extensions
-, wheel
+{
+  lib,
+  anyio,
+  buildPythonPackage,
+  fetchFromGitHub,
+  paho-mqtt,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  typing-extensions,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -31,20 +32,14 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    paho-mqtt
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ paho-mqtt ] ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ];
 
   nativeCheckInputs = [
     anyio
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "asyncio_mqtt"
-  ];
+  pythonImportsCheck = [ "asyncio_mqtt" ];
 
   disabledTests = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/asyncio-rlock/default.nix b/pkgs/development/python-modules/asyncio-rlock/default.nix
index 6f53a3adfa0a4..8ed725d13ccc0 100644
--- a/pkgs/development/python-modules/asyncio-rlock/default.nix
+++ b/pkgs/development/python-modules/asyncio-rlock/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/asyncio-throttle/default.nix b/pkgs/development/python-modules/asyncio-throttle/default.nix
index c48868380ebd7..dc8dc03599a13 100644
--- a/pkgs/development/python-modules/asyncio-throttle/default.nix
+++ b/pkgs/development/python-modules/asyncio-throttle/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, pytest-asyncio
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  pytest-asyncio,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/asyncmy/default.nix b/pkgs/development/python-modules/asyncmy/default.nix
index 76a6d86a5beee..54c5ad8fd37b4 100644
--- a/pkgs/development/python-modules/asyncmy/default.nix
+++ b/pkgs/development/python-modules/asyncmy/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Not running tests as aiomysql is missing support for pymysql>=0.9.3
   doCheck = false;
 
-  pythonImportsCheck = [
-    "asyncmy"
-  ];
+  pythonImportsCheck = [ "asyncmy" ];
 
   meta = with lib; {
     description = "Python module to interact with MySQL/mariaDB";
diff --git a/pkgs/development/python-modules/asyncpg/default.nix b/pkgs/development/python-modules/asyncpg/default.nix
index dce3a9ba0642d..b855d952ed2d3 100644
--- a/pkgs/development/python-modules/asyncpg/default.nix
+++ b/pkgs/development/python-modules/asyncpg/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, async-timeout
-, uvloop
-, postgresql
-, pythonOlder
-, pytest-xdist
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  async-timeout,
+  uvloop,
+  postgresql,
+  pythonOlder,
+  pytest-xdist,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
 
   # required for compatibility with Python versions older than 3.11
   # see https://github.com/MagicStack/asyncpg/blob/v0.29.0/asyncpg/_asyncio_compat.py#L13
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [
-    async-timeout
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [ async-timeout ];
 
   nativeCheckInputs = [
     uvloop
@@ -41,9 +40,7 @@ buildPythonPackage rec {
     rm -rf asyncpg/
   '';
 
-  pythonImportsCheck = [
-    "asyncpg"
-  ];
+  pythonImportsCheck = [ "asyncpg" ];
 
   meta = with lib; {
     description = "Asyncio PosgtreSQL driver";
diff --git a/pkgs/development/python-modules/asyncserial/default.nix b/pkgs/development/python-modules/asyncserial/default.nix
index a40d31510c406..1fec899b050fd 100644
--- a/pkgs/development/python-modules/asyncserial/default.nix
+++ b/pkgs/development/python-modules/asyncserial/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyserial
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyserial,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-WExmgh55sTH2w7wV3i96J1F1FN7L5rX3L/Ayvt2Kw/g=";
   };
 
-  propagatedBuildInputs = [
-    pyserial
-  ];
+  propagatedBuildInputs = [ pyserial ];
 
   pythonImportsCheck = [ "asyncserial" ];
 
diff --git a/pkgs/development/python-modules/asyncsleepiq/default.nix b/pkgs/development/python-modules/asyncsleepiq/default.nix
index 25969661bf15d..9f78951b7d987 100644
--- a/pkgs/development/python-modules/asyncsleepiq/default.nix
+++ b/pkgs/development/python-modules/asyncsleepiq/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,20 +19,14 @@ buildPythonPackage rec {
     hash = "sha256-TDHFKLifNmmAVvD5DjSopEXFbR+KPMIdSA+rLAKrfpI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # upstream has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "asyncsleepiq"
-  ];
+  pythonImportsCheck = [ "asyncsleepiq" ];
 
   meta = with lib; {
     description = "Async interface to SleepIQ API";
diff --git a/pkgs/development/python-modules/asyncssh/default.nix b/pkgs/development/python-modules/asyncssh/default.nix
index 735e831c03249..3618d0eaa1849 100644
--- a/pkgs/development/python-modules/asyncssh/default.nix
+++ b/pkgs/development/python-modules/asyncssh/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, stdenv
-, bcrypt
-, buildPythonPackage
-, cryptography
-, fetchPypi
-, fido2
-, gssapi
-, libnacl
-, libsodium
-, nettle
-, openssh
-, openssl
-, pyopenssl
-, pytestCheckHook
-, python-pkcs11
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  bcrypt,
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  fido2,
+  gssapi,
+  libnacl,
+  libsodium,
+  nettle,
+  openssh,
+  openssl,
+  pyopenssl,
+  pytestCheckHook,
+  python-pkcs11,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "asyncssh";
   version = "2.14.2";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -30,32 +31,23 @@ buildPythonPackage rec {
     hash = "sha256-6Va/iYjQega6MwX2YE4mH0ygFMSiMvCHPxx2kvvjz8I=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     cryptography
-    libsodium
     nettle
     typing-extensions
   ];
 
-  passthru.optional-dependencies = {
-    bcrypt = [
-      bcrypt
-    ];
-    fido2 = [
-      fido2
-    ];
-    gssapi = [
-      gssapi
-    ];
-    libnacl = [
-      libnacl
-    ];
-    pkcs11 = [
-      python-pkcs11
-    ];
-    pyOpenSSL = [
-      pyopenssl
-    ];
+  buildInputs = [ libsodium ];
+
+  optional-dependencies = {
+    bcrypt = [ bcrypt ];
+    fido2 = [ fido2 ];
+    gssapi = [ gssapi ];
+    libnacl = [ libnacl ];
+    pkcs11 = [ python-pkcs11 ];
+    pyOpenSSL = [ pyopenssl ];
   };
 
   __darwinAllowLocalNetworking = true;
@@ -64,7 +56,7 @@ buildPythonPackage rec {
     openssh
     openssl
     pytestCheckHook
-  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+  ] ++ lib.flatten (builtins.attrValues optional-dependencies);
 
   patches = [
     # Reverts https://github.com/ronf/asyncssh/commit/4b3dec994b3aa821dba4db507030b569c3a32730
@@ -90,9 +82,7 @@ buildPythonPackage rec {
     "test_forward_remote"
   ];
 
-  pythonImportsCheck = [
-    "asyncssh"
-  ];
+  pythonImportsCheck = [ "asyncssh" ];
 
   meta = with lib; {
     description = "Asynchronous SSHv2 Python client and server library";
diff --git a/pkgs/development/python-modules/asynctest/default.nix b/pkgs/development/python-modules/asynctest/default.nix
index fde7479884dcf..d8a97aaf302a8 100644
--- a/pkgs/development/python-modules/asynctest/default.nix
+++ b/pkgs/development/python-modules/asynctest/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, python, pythonAtLeast }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  python,
+  pythonAtLeast,
+}:
 
 buildPythonPackage rec {
   pname = "asynctest";
diff --git a/pkgs/development/python-modules/asyncua/default.nix b/pkgs/development/python-modules/asyncua/default.nix
index 3666d8716d960..9b9c571dde307 100644
--- a/pkgs/development/python-modules/asyncua/default.nix
+++ b/pkgs/development/python-modules/asyncua/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, stdenv
-, aiofiles
-, aiosqlite
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, pyopenssl
-, pytest-asyncio_0_21
-, pytest-mock
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pytz
-, setuptools
-, sortedcontainers
-, typing-extensions
+{
+  lib,
+  stdenv,
+  aiofiles,
+  aiosqlite,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  pyopenssl,
+  pytest-asyncio_0_21,
+  pytest-mock,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  pytz,
+  setuptools,
+  sortedcontainers,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -43,9 +44,7 @@ buildPythonPackage rec {
       --replace "tools/" "$out/bin/"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiofiles
@@ -64,9 +63,7 @@ buildPythonPackage rec {
     pytest-mock
   ];
 
-  pythonImportsCheck = [
-    "asyncua"
-  ];
+  pythonImportsCheck = [ "asyncua" ];
 
   disabledTests = lib.optionals stdenv.isDarwin [
     # Failed: DID NOT RAISE <class 'asyncio.exceptions.TimeoutError'>
diff --git a/pkgs/development/python-modules/asyncwhois/default.nix b/pkgs/development/python-modules/asyncwhois/default.nix
index 084c9ee8d306c..f2c341a3b593c 100644
--- a/pkgs/development/python-modules/asyncwhois/default.nix
+++ b/pkgs/development/python-modules/asyncwhois/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
-, python-socks
-, pythonOlder
-, setuptools
-, tldextract
-, whodap
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  python-socks,
+  pythonOlder,
+  setuptools,
+  tldextract,
+  whodap,
 }:
 
 buildPythonPackage rec {
   pname = "asyncwhois";
-  version = "1.1.0";
+  version = "1.1.4";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -22,14 +23,17 @@ buildPythonPackage rec {
     owner = "pogzyb";
     repo = "asyncwhois";
     rev = "refs/tags/v${version}";
-    hash = "sha256-rJwJhSOFrZZ3WXEZmPMfdosBBW/R5/PMqs0QLnsPMoI=";
+    hash = "sha256-BjHGp94vad5qTvffiU8ZEOxYeXNzQHlNq1SaxviYfps=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace-fail "python-socks[asyncio]" "python-socks"
+  '';
+
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     python-socks
     tldextract
     whodap
@@ -41,11 +45,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace-fail "python-socks[asyncio]" "python-socks"
-  '';
-
   disabledTests = [
     # Tests require network access
     "test_pywhois_aio_get_hostname_from_ip"
@@ -63,9 +62,7 @@ buildPythonPackage rec {
     "test__get_top_level_domain"
   ];
 
-  pythonImportsCheck = [
-    "asyncwhois"
-  ];
+  pythonImportsCheck = [ "asyncwhois" ];
 
   meta = with lib; {
     description = "Python module for retrieving WHOIS information";
diff --git a/pkgs/development/python-modules/asysocks/default.nix b/pkgs/development/python-modules/asysocks/default.nix
index cad72c813aecb..d0df75b17dd53 100644
--- a/pkgs/development/python-modules/asysocks/default.nix
+++ b/pkgs/development/python-modules/asysocks/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, asn1crypto
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  asn1crypto,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-uilvJjuZrvdC2m4zhXCkbzLjwtbC1liWEZ20Ya7FYJ0=";
   };
 
-  propagatedBuildInputs = [
-    asn1crypto
-  ];
+  propagatedBuildInputs = [ asn1crypto ];
 
   # Upstream hasn't release the tests yet
   doCheck = false;
 
-  pythonImportsCheck = [
-    "asysocks"
-  ];
+  pythonImportsCheck = [ "asysocks" ];
 
   meta = with lib; {
     description = "Python Socks4/5 client and server library";
diff --git a/pkgs/development/python-modules/atc-ble/default.nix b/pkgs/development/python-modules/atc-ble/default.nix
index 187aaeeb99ac8..76e5724019041 100644
--- a/pkgs/development/python-modules/atc-ble/default.nix
+++ b/pkgs/development/python-modules/atc-ble/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, bluetooth-sensor-state-data
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pycryptodomex
-, pytestCheckHook
-, pythonOlder
-, sensor-state-data
+{
+  lib,
+  bluetooth-sensor-state-data,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pycryptodomex,
+  pytestCheckHook,
+  pythonOlder,
+  sensor-state-data,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
       --replace " --cov=atc_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bluetooth-sensor-state-data
@@ -38,13 +37,9 @@ buildPythonPackage rec {
     sensor-state-data
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "atc_ble"
-  ];
+  pythonImportsCheck = [ "atc_ble" ];
 
   meta = with lib; {
     description = "Library for ATC devices with custom firmware";
diff --git a/pkgs/development/python-modules/atenpdu/default.nix b/pkgs/development/python-modules/atenpdu/default.nix
index 25c114debd404..1dde4152f0ace 100644
--- a/pkgs/development/python-modules/atenpdu/default.nix
+++ b/pkgs/development/python-modules/atenpdu/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, async-timeout
-, pysnmp-lextudio
-, pythonOlder
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  async-timeout,
+  pysnmp-lextudio,
+  pythonOlder,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-KzRoE4tE/tQkKYroq5PbWKREmEl8AwbIOg3IHRZZtsQ=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     async-timeout
@@ -31,9 +30,7 @@ buildPythonPackage rec {
   # Module has no test
   doCheck = false;
 
-  pythonImportsCheck = [
-    "atenpdu"
-  ];
+  pythonImportsCheck = [ "atenpdu" ];
 
   meta = with lib; {
     description = "Python interface to control ATEN PE PDUs";
diff --git a/pkgs/development/python-modules/atlassian-python-api/default.nix b/pkgs/development/python-modules/atlassian-python-api/default.nix
index c4c9f85cf3f2f..6a481aed589d0 100644
--- a/pkgs/development/python-modules/atlassian-python-api/default.nix
+++ b/pkgs/development/python-modules/atlassian-python-api/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, beautifulsoup4
-, deprecated
-, jmespath
-, lxml
-, oauthlib
-, requests
-, requests-kerberos
-, requests-oauthlib
-, six
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  beautifulsoup4,
+  deprecated,
+  jmespath,
+  lxml,
+  oauthlib,
+  requests,
+  requests-kerberos,
+  requests-oauthlib,
+  six,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "atlassian-python-api";
-  version = "3.41.11";
+  version = "3.41.14";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     owner = "atlassian-api";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-yQqy+pFl5TK4CEUM+vpwl+pkUjBuc0xvqC9o1ZC5m7c=";
+    hash = "sha256-cXVHGEOvEuSH19mub9u6kjK3epetN3IeXlHxwiBzTPY=";
   };
 
   propagatedBuildInputs = [
@@ -40,13 +41,9 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "atlassian"
-  ];
+  pythonImportsCheck = [ "atlassian" ];
 
   meta = with lib; {
     description = "Python Atlassian REST API Wrapper";
diff --git a/pkgs/development/python-modules/atom/default.nix b/pkgs/development/python-modules/atom/default.nix
index 519fc3791d798..3e7bb3e990b61 100644
--- a/pkgs/development/python-modules/atom/default.nix
+++ b/pkgs/development/python-modules/atom/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools-scm
-, future
-, cppy
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools-scm,
+  future,
+  cppy,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,25 +23,17 @@ buildPythonPackage rec {
     hash = "sha256-HoUKU6z+6PPBUsvI4earZG9UXN0PrugAxu/F7WUfUe8=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    cppy
-  ];
+  buildInputs = [ cppy ];
 
   preCheck = ''
     rm -rf atom
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "atom.api"
-  ];
+  pythonImportsCheck = [ "atom.api" ];
 
   meta = with lib; {
     description = "Memory efficient Python objects";
diff --git a/pkgs/development/python-modules/atomiclong/default.nix b/pkgs/development/python-modules/atomiclong/default.nix
index 1af61849585bd..a5180221fc762 100644
--- a/pkgs/development/python-modules/atomiclong/default.nix
+++ b/pkgs/development/python-modules/atomiclong/default.nix
@@ -1,17 +1,32 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, cffi }:
+{
+  lib,
+  buildPythonPackage,
+  cffi,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "atomiclong";
   version = "0.1.1";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1gjbc9lvpkgg8vj7dspif1gz9aq4flkhxia16qj6yvb7rp27h4yb";
+    hash = "sha256-yxN4xM1nbW8kNkHFDid1BKv0X3Dx6nbkRu/Nu2liS74=";
   };
 
-  buildInputs = [ pytest ];
-  propagatedBuildInputs = [ cffi ];
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  dependencies = [ cffi ];
+
+  pythonImportsCheck = [ "atomiclong" ];
 
   meta = with lib; {
     description = "Long data type with atomic operations using CFFI";
diff --git a/pkgs/development/python-modules/atomicwrites-homeassistant/default.nix b/pkgs/development/python-modules/atomicwrites-homeassistant/default.nix
index b340c0f9e80c9..aba94f1bfddc1 100644
--- a/pkgs/development/python-modules/atomicwrites-homeassistant/default.nix
+++ b/pkgs/development/python-modules/atomicwrites-homeassistant/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 let
@@ -18,13 +19,9 @@ buildPythonPackage {
     hash = "sha256-JWpnIQbxZ0VEUijZZiQLd7VfRqCW0gMFkBpXql0fTC8=";
   };
 
-  pythonImportsCheck = [
-    "atomicwrites"
-  ];
+  pythonImportsCheck = [ "atomicwrites" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Atomic file writes";
diff --git a/pkgs/development/python-modules/atomicwrites/default.nix b/pkgs/development/python-modules/atomicwrites/default.nix
index 06ce71504dd5c..1779a14148aae 100644
--- a/pkgs/development/python-modules/atomicwrites/default.nix
+++ b/pkgs/development/python-modules/atomicwrites/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "atomicwrites";
diff --git a/pkgs/development/python-modules/atomman/default.nix b/pkgs/development/python-modules/atomman/default.nix
index a245c93e36187..6728f39269ecf 100644
--- a/pkgs/development/python-modules/atomman/default.nix
+++ b/pkgs/development/python-modules/atomman/default.nix
@@ -1,31 +1,31 @@
-{ lib
-, ase
-, buildPythonPackage
-, cython
-, datamodeldict
-, fetchFromGitHub
-, matplotlib
-, numericalunits
-, numpy
-, pandas
-, phonopy
-, potentials
-, pymatgen
-, pytestCheckHook
-, pythonOlder
-, requests
-, scipy
-, setuptools
-, toolz
-, wheel
-, xmltodict
-, pythonRelaxDepsHook
+{
+  lib,
+  ase,
+  buildPythonPackage,
+  cython,
+  datamodeldict,
+  fetchFromGitHub,
+  matplotlib,
+  numericalunits,
+  numpy,
+  pandas,
+  phonopy,
+  potentials,
+  pymatgen,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  scipy,
+  setuptools,
+  toolz,
+  wheel,
+  xmltodict,
 }:
 
-buildPythonPackage rec {
-  version = "unstable-2023-07-28";
+buildPythonPackage {
   pname = "atomman";
-  format = "pyproject";
+  version = "1.4.6-unstable-2023-07-28";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -36,14 +36,15 @@ buildPythonPackage rec {
     hash = "sha256-WfB+OY61IPprT6OCVHl8VA60p7lLVkRGuyYX+nm7bbA=";
   };
 
-  nativeBuildInputs = [
+
+  build-system = [
     setuptools
     wheel
-    pythonRelaxDepsHook
+    numpy
+    cython
   ];
 
-  propagatedBuildInputs = [
-    cython
+  dependencies = [
     datamodeldict
     matplotlib
     numericalunits
@@ -77,9 +78,7 @@ buildPythonPackage rec {
     "test_unique_shifts_prototype" # needs network access to download database files
   ];
 
-  pythonImportsCheck = [
-    "atomman"
-  ];
+  pythonImportsCheck = [ "atomman" ];
 
   meta = with lib; {
     description = "Atomistic Manipulation Toolkit";
diff --git a/pkgs/development/python-modules/atpublic/default.nix b/pkgs/development/python-modules/atpublic/default.nix
index 616581ffc6f5e..cf752f0a59c52 100644
--- a/pkgs/development/python-modules/atpublic/default.nix
+++ b/pkgs/development/python-modules/atpublic/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, hatchling
-, sybil
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  hatchling,
+  sybil,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -20,13 +21,9 @@ buildPythonPackage rec {
     hash = "sha256-0cjNkxr3Rh9tGLxgYzg+hlTZ6e8Z1Y7m3AHoUVu/Vd8=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -42,9 +39,7 @@ buildPythonPackage rec {
     sed -i '/cov=public/d' pyproject.toml
   '';
 
-  pythonImportsCheck = [
-    "public"
-  ];
+  pythonImportsCheck = [ "public" ];
 
   meta = with lib; {
     description = "Python decorator and function which populates a module's __all__ and globals";
diff --git a/pkgs/development/python-modules/atsim-potentials/default.nix b/pkgs/development/python-modules/atsim-potentials/default.nix
index b06ef867c21f8..f194c251d5d31 100644
--- a/pkgs/development/python-modules/atsim-potentials/default.nix
+++ b/pkgs/development/python-modules/atsim-potentials/default.nix
@@ -1,36 +1,36 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, configparser
-, pyparsing
-, pytestCheckHook
-, future
-, openpyxl
-, wrapt
-, scipy
-, cexprtk
-, deepdiff
-, sympy
+{
+  lib,
+  buildPythonPackage,
+  pythonAtLeast,
+  fetchFromGitHub,
+  setuptools,
+  configparser,
+  pyparsing,
+  pytestCheckHook,
+  future,
+  openpyxl,
+  wrapt,
+  scipy,
+  cexprtk,
+  deepdiff,
+  sympy,
 }:
 
 buildPythonPackage rec {
-  version = "0.4.1";
-  format = "setuptools";
   pname = "atsim-potentials";
+  version = "0.4.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "mjdrushton";
-    repo = pname;
+    repo = "atsim-potentials";
     rev = "refs/tags/${version}";
     hash = "sha256-G7lNqwEUwAT0f7M2nUTCxpXOAl6FWKlh7tcsvbur1eM=";
   };
 
-  postPatch = ''
-    # Remove conflicting openpyxl dependency version check
-    sed -i '/openpyxl==2.6.4/d' setup.py
-  '';
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     cexprtk
     configparser
     future
@@ -46,10 +46,21 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  # these files try to import `distutils` removed in Python 3.12
+  disabledTestPaths = lib.optionals (pythonAtLeast "3.12") [
+    "tests/config/test_configuration_eam.py"
+    "tests/config/test_configuration_eam_fs.py"
+    "tests/config/test_configuration_pair.py"
+    "tests/test_dlpoly_writeTABEAM.py"
+    "tests/test_documentation_examples.py"
+    "tests/test_eam_adp_writer.py"
+    "tests/test_gulp_writer.py"
+    "tests/test_lammpsWriteEAM.py"
+  ];
+
   disabledTests = [
     # Missing lammps executable
     "eam_tabulate_example2TestCase"
-    "test_pymath"
   ];
 
   pythonImportsCheck = [ "atsim.potentials" ];
diff --git a/pkgs/development/python-modules/attacut/default.nix b/pkgs/development/python-modules/attacut/default.nix
new file mode 100644
index 0000000000000..9724ac0a27418
--- /dev/null
+++ b/pkgs/development/python-modules/attacut/default.nix
@@ -0,0 +1,73 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+
+  setuptools,
+
+  pytestCheckHook,
+
+  docopt,
+  fire,
+  numpy,
+  python-crfsuite,
+  pyyaml,
+  six,
+  ssg,
+  torch,
+}:
+
+buildPythonPackage rec {
+  pname = "attacut";
+  version = "1.1.0-dev";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "PyThaiNLP";
+    repo = "attacut";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-x3JJC1Xd+tsOAHJEHGzIrhIrNGSvLSanAFc7+uXb2Kk=";
+  };
+
+  # no more need, see patch...
+  postPatch = ''
+    sed -i "/nptyping>=/d" setup.py
+  '';
+
+  patches = [
+    (fetchpatch {
+      name = "fix-nptyping-deprecated-array.patch";
+      url = "https://github.com/PyThaiNLP/attacut/commit/a707297b3f08a015d32d8ac241aa8cb11128cbd4.patch";
+      includes = [ "attacut/evaluation.py" ];
+      hash = "sha256-k2DJPwiH1Fyf5u6+zavx0bankCXsJVZrw1MGcf8ZL+M=";
+    })
+  ];
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    docopt
+    fire
+    numpy
+    python-crfsuite
+    pyyaml
+    six
+    ssg
+    torch
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pytestFlagsArray = [ "tests/*" ];
+
+  pythonImportsCheck = [ "attacut" ];
+
+  meta = with lib; {
+    description = "Fast and Accurate Neural Thai Word Segmenter";
+    homepage = "https://github.com/PyThaiNLP/attacut";
+    license = licenses.mit;
+    maintainers = with maintainers; [ vizid ];
+    mainProgram = "attacut-cli";
+  };
+}
diff --git a/pkgs/development/python-modules/attrdict/default.nix b/pkgs/development/python-modules/attrdict/default.nix
index fb7bc91ad1324..00c25a332e76f 100644
--- a/pkgs/development/python-modules/attrdict/default.nix
+++ b/pkgs/development/python-modules/attrdict/default.nix
@@ -41,7 +41,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "attrdict" ];
 
   meta = with lib; {
-    description = "A dict with attribute-style access";
+    description = "Dict with attribute-style access";
     homepage = "https://github.com/bcj/AttrDict";
     changelog = "https://github.com/bcj/AttrDict/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/attrs/default.nix b/pkgs/development/python-modules/attrs/default.nix
index 8e46432b810f1..6a9884beca5cc 100644
--- a/pkgs/development/python-modules/attrs/default.nix
+++ b/pkgs/development/python-modules/attrs/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, callPackage
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, hatchling
+{
+  lib,
+  callPackage,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  hatchling,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     substituteAllInPlace pyproject.toml
   '';
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   outputs = [
     "out"
@@ -41,9 +40,7 @@ buildPythonPackage rec {
     cp -R conftest.py tests $testout
   '';
 
-  pythonImportsCheck = [
-    "attr"
-  ];
+  pythonImportsCheck = [ "attr" ];
 
   # pytest depends on attrs, so we can't do this out-of-the-box.
   # Instead, we do this as a passthru.tests test.
diff --git a/pkgs/development/python-modules/attrs/tests.nix b/pkgs/development/python-modules/attrs/tests.nix
index 2614716d71d02..d657ba1ffc5a4 100644
--- a/pkgs/development/python-modules/attrs/tests.nix
+++ b/pkgs/development/python-modules/attrs/tests.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, pytestCheckHook
-, attrs
-, hypothesis
+{
+  buildPythonPackage,
+  pytestCheckHook,
+  attrs,
+  hypothesis,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/aubio/default.nix b/pkgs/development/python-modules/aubio/default.nix
index b810544e4043b..a5b03baad8d1c 100644
--- a/pkgs/development/python-modules/aubio/default.nix
+++ b/pkgs/development/python-modules/aubio/default.nix
@@ -1,38 +1,56 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, pytestCheckHook
-, stdenv
-, darwin
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  setuptools,
+  numpy,
+  pytestCheckHook,
+  stdenv,
+  darwin,
 }:
 
 buildPythonPackage rec {
   pname = "aubio";
   version = "0.4.9";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
-    owner = pname;
-    repo = pname;
+    owner = "aubio";
+    repo = "aubio";
     rev = version;
-    sha256 = "0fhxikvlr010nbh02g455d5y8bq6j5yw180cdh4gsd0hb43y3z26";
+    hash = "sha256-RvzhB1kQNP0IbAygwH2RBi/kSyuFPAHgsiCATPeMHTo=";
   };
 
-  buildInputs = lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Accelerate AudioToolbox CoreVideo CoreGraphics ]);
-
-  propagatedBuildInputs = [
-    numpy
+  patches = [
+    (fetchpatch {
+      # fix "incompatible function pointer types initializing 'PyUFuncGenericFunction'"
+      name = "const-function-signature.patch";
+      url = "https://github.com/aubio/aubio/commit/95ff046c698156f21e2ca0d1d8a02c23ab76969f.patch";
+      hash = "sha256-qKcIPjpcZUizSN/t96WOiOn+IlsrlC0+g7gW77KejH0=";
+    })
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  buildInputs = lib.optionals stdenv.isDarwin (
+    with darwin.apple_sdk.frameworks;
+    [
+      Accelerate
+      AudioToolbox
+      CoreVideo
+      CoreGraphics
+    ]
+  );
+
+  build-system = [ setuptools ];
+
+  dependencies = [ numpy ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "aubio" ];
 
   meta = with lib; {
-    description = "a library for audio and music analysis";
+    description = "Library for audio and music analysis";
     homepage = "https://aubio.org";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/audible/default.nix b/pkgs/development/python-modules/audible/default.nix
index 63b8e605086e5..1eb984dcbc162 100644
--- a/pkgs/development/python-modules/audible/default.nix
+++ b/pkgs/development/python-modules/audible/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
 
   # build-system
-, poetry-core
+  poetry-core,
 
   # dependencies
-, beautifulsoup4
-, httpx
-, pbkdf2
-, pillow
-, pyaes
-, rsa
+  beautifulsoup4,
+  httpx,
+  pbkdf2,
+  pillow,
+  pyaes,
+  rsa,
 
   # test dependencies
-, pytestCheckHook
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     hash = "sha256-qLU8FjJBPKFgjpumPqRiiMBwZi+zW46iEmWM8UerMgs=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     pillow
@@ -42,9 +41,7 @@ buildPythonPackage rec {
     rsa
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "audible" ];
 
diff --git a/pkgs/development/python-modules/audio-metadata/default.nix b/pkgs/development/python-modules/audio-metadata/default.nix
index e9be3715ec311..40b47f61016aa 100644
--- a/pkgs/development/python-modules/audio-metadata/default.nix
+++ b/pkgs/development/python-modules/audio-metadata/default.nix
@@ -10,7 +10,6 @@
   poetry-core,
   pprintpp,
   pythonOlder,
-  pythonRelaxDepsHook,
   tbm-utils,
 }:
 
@@ -44,7 +43,6 @@ buildPythonPackage rec {
 
   build-system = [ poetry-core ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     attrs
diff --git a/pkgs/development/python-modules/audioread/default.nix b/pkgs/development/python-modules/audioread/default.nix
index 851839f0a7976..fc3bd9b2c43ea 100644
--- a/pkgs/development/python-modules/audioread/default.nix
+++ b/pkgs/development/python-modules/audioread/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-rFRgpUmMSL3y6OdnQCWDpNzRP0QU0ob0LOQ3nos1Bm0=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   # No tests, need to disable or py3k breaks
   doCheck = false;
diff --git a/pkgs/development/python-modules/audiotools/default.nix b/pkgs/development/python-modules/audiotools/default.nix
index 427faa4fe37b5..4bd7594b5fdc3 100644
--- a/pkgs/development/python-modules/audiotools/default.nix
+++ b/pkgs/development/python-modules/audiotools/default.nix
@@ -1,16 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, stdenv
-, AudioToolbox
-, AudioUnit
-, CoreServices
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  stdenv,
+  AudioToolbox,
+  AudioUnit,
+  CoreServices,
 }:
 
 buildPythonPackage rec {
   pname = "audiotools";
   version = "3.1.1";
-  format = "setuptools";
+  pyproject = true;
+
+  build-system = [ setuptools ];
 
   buildInputs = lib.optionals stdenv.isDarwin [
     AudioToolbox
diff --git a/pkgs/development/python-modules/auditok/default.nix b/pkgs/development/python-modules/auditok/default.nix
index 2ec68b11157b2..1ae8f82ab6fc1 100644
--- a/pkgs/development/python-modules/auditok/default.nix
+++ b/pkgs/development/python-modules/auditok/default.nix
@@ -1,12 +1,13 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-, matplotlib
-, numpy
-, pyaudio
-, pydub
-, pythonOlder
-, unittestCheckHook
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  matplotlib,
+  numpy,
+  pyaudio,
+  pydub,
+  pythonOlder,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,11 +23,19 @@ buildPythonPackage rec {
     hash = "sha256-HNsw9VLP7XEgs8E2X6p7ygDM47AwWxMYjptipknFig4=";
   };
 
-  propagatedBuildInputs = [ matplotlib numpy pyaudio pydub ];
+  propagatedBuildInputs = [
+    matplotlib
+    numpy
+    pyaudio
+    pydub
+  ];
 
   nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [ "-s" "tests" ];
+  unittestFlagsArray = [
+    "-s"
+    "tests"
+  ];
 
   pythonImportsCheck = [ "auditok" ];
 
diff --git a/pkgs/development/python-modules/auditwheel/default.nix b/pkgs/development/python-modules/auditwheel/default.nix
index 9890a39e460c2..6864f6bece835 100644
--- a/pkgs/development/python-modules/auditwheel/default.nix
+++ b/pkgs/development/python-modules/auditwheel/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools-scm
-, pyelftools
-, importlib-metadata
-, pretend
-, pytestCheckHook
-# non-python dependencies
-, bzip2
-, gnutar
-, patchelf
-, unzip
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools-scm,
+  pyelftools,
+  importlib-metadata,
+  pretend,
+  pytestCheckHook,
+  # non-python dependencies
+  bzip2,
+  gnutar,
+  patchelf,
+  unzip,
 }:
 
 buildPythonPackage rec {
@@ -26,15 +27,9 @@ buildPythonPackage rec {
     hash = "sha256-ZCLEq2Qh0j41XJHplGkmzVMrn99G8rX/2vGr/p7inmc=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    pyelftools
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  propagatedBuildInputs = [ pyelftools ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   nativeCheckInputs = [
     pretend
@@ -42,9 +37,7 @@ buildPythonPackage rec {
   ];
 
   # Integration tests require docker and networking
-  disabledTestPaths = [
-    "tests/integration"
-  ];
+  disabledTestPaths = [ "tests/integration" ];
 
   # Ensure that there are no undeclared deps
   postCheck = ''
@@ -52,7 +45,15 @@ buildPythonPackage rec {
   '';
 
   makeWrapperArgs = [
-    "--prefix" "PATH" ":" (lib.makeBinPath [ bzip2 gnutar patchelf unzip ])
+    "--prefix"
+    "PATH"
+    ":"
+    (lib.makeBinPath [
+      bzip2
+      gnutar
+      patchelf
+      unzip
+    ])
   ];
 
   meta = with lib; {
@@ -60,9 +61,9 @@ buildPythonPackage rec {
     description = "Auditing and relabeling cross-distribution Linux wheels";
     homepage = "https://github.com/pypa/auditwheel";
     license = with licenses; [
-      mit  # auditwheel and nibabel
-      bsd2  # from https://github.com/matthew-brett/delocate
-      bsd3  # from https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-projects/pax-utils/lddtree.py
+      mit # auditwheel and nibabel
+      bsd2 # from https://github.com/matthew-brett/delocate
+      bsd3 # from https://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-projects/pax-utils/lddtree.py
     ];
     mainProgram = "auditwheel";
     maintainers = with maintainers; [ davhau ];
diff --git a/pkgs/development/python-modules/augeas/default.nix b/pkgs/development/python-modules/augeas/default.nix
index 48c5e723bc4c1..9da8e4a22dccc 100644
--- a/pkgs/development/python-modules/augeas/default.nix
+++ b/pkgs/development/python-modules/augeas/default.nix
@@ -1,40 +1,44 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, buildPythonPackage
-, unittestCheckHook
-, pkg-config
-, augeas
-, cffi
-, pkgs # for libxml2
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  unittestCheckHook,
+  pkg-config,
+  augeas,
+  cffi,
+  pkgs, # for libxml2
 }:
 buildPythonPackage rec {
-    pname = "augeas";
-    version = "1.2.0";
-    format = "setuptools";
+  pname = "augeas";
+  version = "1.2.0";
+  format = "setuptools";
 
-    src = fetchFromGitHub {
-      owner = "hercules-team";
-      repo = "python-augeas";
-      rev = "v${version}";
-      hash = "sha256-Lq8ckra3sqN38zo1d5JsEq6U5TtLKRmqysoWNwR9J9A=";
-    };
+  src = fetchFromGitHub {
+    owner = "hercules-team";
+    repo = "python-augeas";
+    rev = "v${version}";
+    hash = "sha256-Lq8ckra3sqN38zo1d5JsEq6U5TtLKRmqysoWNwR9J9A=";
+  };
 
-    nativeBuildInputs = [ pkg-config ];
+  nativeBuildInputs = [ pkg-config ];
 
-    buildInputs = [ augeas pkgs.libxml2 ];
+  buildInputs = [
+    augeas
+    pkgs.libxml2
+  ];
 
-    propagatedBuildInputs = [ cffi ];
+  propagatedBuildInputs = [ cffi ];
 
-    nativeCheckInputs = [ unittestCheckHook ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-    pythonImportsCheck = [ "augeas" ];
+  pythonImportsCheck = [ "augeas" ];
 
-    meta = with lib; {
-      changelog = "https://github.com/hercules-team/python-augeas/releases/tag/v${version}";
-      description = "Pure python bindings for augeas";
-      homepage = "https://github.com/hercules-team/python-augeas";
-      license = licenses.lgpl2Plus;
-      platforms = platforms.unix;
-    };
+  meta = with lib; {
+    changelog = "https://github.com/hercules-team/python-augeas/releases/tag/v${version}";
+    description = "Pure python bindings for augeas";
+    homepage = "https://github.com/hercules-team/python-augeas";
+    license = licenses.lgpl2Plus;
+    platforms = platforms.unix;
+  };
 }
diff --git a/pkgs/development/python-modules/augmax/default.nix b/pkgs/development/python-modules/augmax/default.nix
index 2ab159cfc6f8d..ac4d6834f8ba3 100644
--- a/pkgs/development/python-modules/augmax/default.nix
+++ b/pkgs/development/python-modules/augmax/default.nix
@@ -1,16 +1,17 @@
-{ buildPythonPackage
-, einops
-, fetchFromGitHub
-, jax
-, jaxlib
-, lib
-, pythonOlder
-, setuptools
+{
+  buildPythonPackage,
+  einops,
+  fetchFromGitHub,
+  jax,
+  jaxlib,
+  lib,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "augmax";
-  version = "0.3.1";
+  version = "0.3.2";
   pyproject = true;
 
   disbaled = pythonOlder "3.6";
@@ -19,14 +20,15 @@ buildPythonPackage rec {
     owner = "khdlr";
     repo = "augmax";
     rev = "refs/tags/v${version}";
-    hash = "sha256-hDNNoE7KVaH3jrXZA4A8f0UoQJPl6KHA3XwMc3Ccohk=";
+    hash = "sha256-xz6yJiVZUkRcRa2rKZdytfpP+XCk/QI4xtKlNaS9FYo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [ einops jax ];
+  dependencies = [
+    einops
+    jax
+  ];
 
   # augmax does not have any tests at the time of writing (2022-02-19), but
   # jaxlib is necessary for the pythonImportsCheckPhase.
@@ -37,7 +39,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Efficiently Composable Data Augmentation on the GPU with Jax";
     homepage = "https://github.com/khdlr/augmax";
-    changelog = "https://github.com/khdlr/augmax/blob/${src.rev}/CHANGELOG.md";
+    changelog = "https://github.com/khdlr/augmax/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ samuela ];
   };
diff --git a/pkgs/development/python-modules/auroranoaa/default.nix b/pkgs/development/python-modules/auroranoaa/default.nix
index f906b4e42bcb5..82820fc05f33d 100644
--- a/pkgs/development/python-modules/auroranoaa/default.nix
+++ b/pkgs/development/python-modules/auroranoaa/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/aurorapy/default.nix b/pkgs/development/python-modules/aurorapy/default.nix
index 6ee2be80d3b6c..dbfa6a226b9a2 100644
--- a/pkgs/development/python-modules/aurorapy/default.nix
+++ b/pkgs/development/python-modules/aurorapy/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitLab
-, future
-, pyserial
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitLab,
+  future,
+  pyserial,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-rGwfGq3zdoG9NCGqVN29Q4bWApk5B6CRdsW9ctWgOec=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     future
@@ -37,9 +36,7 @@ buildPythonPackage rec {
     six
   ];
 
-  pythonImportsCheck = [
-    "aurorapy"
-  ];
+  pythonImportsCheck = [ "aurorapy" ];
 
   meta = with lib; {
     description = "Implementation of the communication protocol for Power-One Aurora inverters";
diff --git a/pkgs/development/python-modules/autarco/default.nix b/pkgs/development/python-modules/autarco/default.nix
index 71cf0df61d775..72ad0c41fc767 100644
--- a/pkgs/development/python-modules/autarco/default.nix
+++ b/pkgs/development/python-modules/autarco/default.nix
@@ -1,17 +1,17 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, mashumaro
-, orjson
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, syrupy
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mashumaro,
+  orjson,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  syrupy,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-IBf6Dw2Yf7m+5bQ72K0kPxGdtpl8JowQ9IO3gWS3Vso=";
   };
 
-  pythonRelaxDeps = [
-    "orjson"
-  ];
+  pythonRelaxDeps = [ "orjson" ];
 
   postPatch = ''
     # Upstream doesn't set a version for the pyproject.toml
@@ -41,7 +39,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -60,9 +57,7 @@ buildPythonPackage rec {
     syrupy
   ];
 
-  pythonImportsCheck = [
-    "autarco"
-  ];
+  pythonImportsCheck = [ "autarco" ];
 
   meta = with lib; {
     description = "Module for the Autarco Inverter";
diff --git a/pkgs/development/python-modules/auth0-python/default.nix b/pkgs/development/python-modules/auth0-python/default.nix
index 1ae64d53a50c2..69d4fdedfd2a7 100644
--- a/pkgs/development/python-modules/auth0-python/default.nix
+++ b/pkgs/development/python-modules/auth0-python/default.nix
@@ -1,20 +1,20 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, callee
-, cryptography
-, fetchFromGitHub
-, mock
-, poetry-core
-, poetry-dynamic-versioning
-, pyjwt
-, pyopenssl
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
-, urllib3
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  callee,
+  cryptography,
+  fetchFromGitHub,
+  mock,
+  poetry-core,
+  poetry-dynamic-versioning,
+  pyjwt,
+  pyopenssl,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -34,7 +34,6 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     poetry-core
     poetry-dynamic-versioning
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -54,9 +53,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonRelaxDeps = [
-    "cryptography"
-  ];
+  pythonRelaxDeps = [ "cryptography" ];
 
   disabledTests = [
     # Tries to ping websites (e.g. google.com)
@@ -65,9 +62,7 @@ buildPythonPackage rec {
     "test_options_are_used_and_override"
   ];
 
-  pythonImportsCheck = [
-    "auth0"
-  ];
+  pythonImportsCheck = [ "auth0" ];
 
   meta = with lib; {
     description = "Auth0 Python SDK";
diff --git a/pkgs/development/python-modules/authcaptureproxy/default.nix b/pkgs/development/python-modules/authcaptureproxy/default.nix
index 7f0159f96bcac..7aa705244501b 100644
--- a/pkgs/development/python-modules/authcaptureproxy/default.nix
+++ b/pkgs/development/python-modules/authcaptureproxy/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, poetry-core
+  # build-system
+  poetry-core,
 
-# dependencies
-, aiohttp
-, beautifulsoup4
-, httpx
-, multidict
-, typer
-, yarl
+  # dependencies
+  aiohttp,
+  beautifulsoup4,
+  httpx,
+  multidict,
+  typer,
+  yarl,
 
-# tests
-, pytest-asyncio
-, pytestCheckHook
+  # tests
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     hash = "sha256-gdu0Ror/epu6huTEpBrqHD62O9uaL6273pKnpqPKskc=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -54,16 +53,17 @@ buildPythonPackage rec {
     "test_return_timer_countdown_refresh_html"
   ];
 
-  pythonImportsCheck = [
-    "authcaptureproxy"
-  ];
+  pythonImportsCheck = [ "authcaptureproxy" ];
 
   meta = with lib; {
     changelog = "https://github.com/alandtse/auth_capture_proxy/releases/tag/v${version}";
-    description = "A proxy to capture authentication information from a webpage";
+    description = "Proxy to capture authentication information from a webpage";
     mainProgram = "auth_capture_proxy";
     homepage = "https://github.com/alandtse/auth_capture_proxy";
     license = licenses.asl20;
-    maintainers = with maintainers; [ graham33 hexa ];
+    maintainers = with maintainers; [
+      graham33
+      hexa
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/authheaders/default.nix b/pkgs/development/python-modules/authheaders/default.nix
index 3f73af498036c..1bd70e81d3338 100644
--- a/pkgs/development/python-modules/authheaders/default.nix
+++ b/pkgs/development/python-modules/authheaders/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, authres
-, buildPythonPackage
-, dkimpy
-, dnspython
-, fetchFromGitHub
-, publicsuffix2
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  authres,
+  buildPythonPackage,
+  dkimpy,
+  dnspython,
+  fetchFromGitHub,
+  publicsuffix2,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-/vxUUSWwysYQzcy2AmkF4f8R59FHRnBfFlPRpfM9e5o=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     authres
@@ -36,13 +35,9 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "authheaders"
-  ];
+  pythonImportsCheck = [ "authheaders" ];
 
   disabledTests = [
     # Test fails with timeout even if the resolv.conf hack is present
diff --git a/pkgs/development/python-modules/authlib/default.nix b/pkgs/development/python-modules/authlib/default.nix
index a2c6c2a1b057b..10596261a5f6d 100644
--- a/pkgs/development/python-modules/authlib/default.nix
+++ b/pkgs/development/python-modules/authlib/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, cachelib
-, cryptography
-, fetchFromGitHub
-, flask
-, flask-sqlalchemy
-, httpx
-, mock
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, requests
-, starlette
-, werkzeug
+{
+  lib,
+  buildPythonPackage,
+  cachelib,
+  cryptography,
+  fetchFromGitHub,
+  flask,
+  flask-sqlalchemy,
+  httpx,
+  mock,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  starlette,
+  werkzeug,
 }:
 
 buildPythonPackage rec {
   pname = "authlib";
-  version = "1.3.0";
+  version = "1.3.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -26,7 +27,7 @@ buildPythonPackage rec {
     owner = "lepture";
     repo = "authlib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-XHzABjGpZN6ilYuBYyGF3Xy/+AT2DXick8/A4JkyWBA=";
+    hash = "sha256-5AZca4APi2gLwj/AHtXOPzIFnJkCmK9mDV0bAAvIx8A=";
   };
 
   propagatedBuildInputs = [
@@ -46,9 +47,7 @@ buildPythonPackage rec {
     werkzeug
   ];
 
-  pythonImportsCheck = [
-    "authlib"
-  ];
+  pythonImportsCheck = [ "authlib" ];
 
   disabledTestPaths = [
     # Django tests require a running instance
diff --git a/pkgs/development/python-modules/authres/default.nix b/pkgs/development/python-modules/authres/default.nix
index 52c1d138bc6e1..3c9a9d3679689 100644
--- a/pkgs/development/python-modules/authres/default.nix
+++ b/pkgs/development/python-modules/authres/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchPypi, buildPythonPackage, python }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  python,
+}:
 
 buildPythonPackage rec {
   pname = "authres";
diff --git a/pkgs/development/python-modules/autobahn/default.nix b/pkgs/development/python-modules/autobahn/default.nix
index 2bfbc16e8f912..1efc211fcc54f 100644
--- a/pkgs/development/python-modules/autobahn/default.nix
+++ b/pkgs/development/python-modules/autobahn/default.nix
@@ -1,55 +1,57 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, attrs
-, argon2-cffi
-, base58
-, cbor2
-, cffi
-, click
-, cryptography
-, ecdsa
-, eth-abi
-, eth-account
-, flatbuffers
-, jinja2
-, hkdf
-, hyperlink
-, mnemonic
-, mock
-, msgpack
-, passlib
-, py-ecc
-# , py-eth-sig-utils
-, py-multihash
-, py-ubjson
-, pynacl
-, pygobject3
-, pyopenssl
-, qrcode
-, pytest-asyncio_0_21
-, python-snappy
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  attrs,
+  argon2-cffi,
+  base58,
+  cbor2,
+  cffi,
+  click,
+  cryptography,
+  ecdsa,
+  eth-abi,
+  eth-account,
+  flatbuffers,
+  jinja2,
+  hkdf,
+  hyperlink,
+  mnemonic,
+  mock,
+  msgpack,
+  passlib,
+  py-ecc,
+  # , py-eth-sig-utils
+  py-multihash,
+  py-ubjson,
+  pynacl,
+  pygobject3,
+  pyopenssl,
+  qrcode,
+  pytest-asyncio_0_21,
+  python-snappy,
+  pytestCheckHook,
+  pythonOlder,
   # , pytrie
-, rlp
-, service-identity
-, spake2
-, twisted
-, txaio
-, ujson
+  rlp,
+  service-identity,
+  setuptools,
+  spake2,
+  twisted,
+  txaio,
+  ujson,
   # , web3
   # , wsaccel
   # , xbr
-, yapf
+  yapf,
   # , zlmdb
-, zope-interface
+  zope-interface,
 }@args:
 
 buildPythonPackage rec {
   pname = "autobahn";
   version = "23.6.2";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
@@ -60,48 +62,82 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "pytest>=2.8.6,<3.3.0" "pytest"
+      --replace-fail "pytest>=2.8.6,<3.3.0" "pytest"
   '';
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     cryptography
     hyperlink
     pynacl
     txaio
   ];
 
-  nativeCheckInputs = [
-    mock
-    pytest-asyncio_0_21
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.scram
-  ++ passthru.optional-dependencies.serialization
-  ++ passthru.optional-dependencies.xbr;
+  nativeCheckInputs =
+    [
+      mock
+      pytest-asyncio_0_21
+      pytestCheckHook
+    ]
+    ++ optional-dependencies.scram ++ optional-dependencies.serialization ++ optional-dependencies.xbr;
 
   preCheck = ''
     # Run asyncio tests (requires twisted)
     export USE_ASYNCIO=1
   '';
 
-  pytestFlagsArray = [
-    "--pyargs autobahn"
-  ];
+  pytestFlagsArray = [ "--pyargs autobahn" ];
 
-  pythonImportsCheck = [
-    "autobahn"
-  ];
+  pythonImportsCheck = [ "autobahn" ];
 
-  passthru.optional-dependencies = rec {
+  optional-dependencies = rec {
     all = accelerate ++ compress ++ encryption ++ nvx ++ serialization ++ scram ++ twisted ++ ui ++ xbr;
-    accelerate = [ /* wsaccel */ ];
+    accelerate = [
+      # wsaccel
+    ];
     compress = [ python-snappy ];
-    encryption = [ pynacl pyopenssl qrcode /* pytrie */ service-identity ];
+    encryption = [
+      pynacl
+      pyopenssl
+      qrcode # pytrie
+      service-identity
+    ];
     nvx = [ cffi ];
-    scram = [ argon2-cffi cffi passlib ];
-    serialization = [ cbor2 flatbuffers msgpack ujson py-ubjson ];
-    twisted = [ attrs args.twisted zope-interface ];
+    scram = [
+      argon2-cffi
+      cffi
+      passlib
+    ];
+    serialization = [
+      cbor2
+      flatbuffers
+      msgpack
+      ujson
+      py-ubjson
+    ];
+    twisted = [
+      attrs
+      args.twisted
+      zope-interface
+    ];
     ui = [ pygobject3 ];
-    xbr = [ base58 cbor2 click ecdsa eth-abi jinja2 hkdf mnemonic py-ecc /* py-eth-sig-utils */ py-multihash rlp spake2 twisted /* web3 xbr */ yapf /* zlmdb */ ];
+    xbr = [
+      base58
+      cbor2
+      click
+      ecdsa
+      eth-abi
+      jinja2
+      hkdf
+      mnemonic
+      py-ecc # py-eth-sig-utils
+      py-multihash
+      rlp
+      spake2
+      twisted # web3 xbr
+      yapf # zlmdb
+    ];
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/autocommand/default.nix b/pkgs/development/python-modules/autocommand/default.nix
index 11ee55d6417df..fd4a0f22d439c 100644
--- a/pkgs/development/python-modules/autocommand/default.nix
+++ b/pkgs/development/python-modules/autocommand/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,20 +26,14 @@ buildPythonPackage rec {
     rm setup.py
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # fails with: SyntaxError: invalid syntax
   doCheck = false;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "autocommand"
-  ];
+  pythonImportsCheck = [ "autocommand" ];
 
   meta = with lib; {
     description = "Autocommand turns a python function into a CLI program";
diff --git a/pkgs/development/python-modules/autofaiss/default.nix b/pkgs/development/python-modules/autofaiss/default.nix
index af5bbbebbb7d7..02dd9c071d7f2 100644
--- a/pkgs/development/python-modules/autofaiss/default.nix
+++ b/pkgs/development/python-modules/autofaiss/default.nix
@@ -1,15 +1,15 @@
-{ buildPythonPackage
-, embedding-reader
-, faiss
-, fetchFromGitHub
-, fire
-, fsspec
-, lib
-, numpy
-, pyarrow
-, pytestCheckHook
-, pythonRelaxDepsHook
-, pythonOlder
+{
+  buildPythonPackage,
+  embedding-reader,
+  faiss,
+  fetchFromGitHub,
+  fire,
+  fsspec,
+  lib,
+  numpy,
+  pyarrow,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +26,6 @@ buildPythonPackage rec {
     hash = "sha256-pey3wrW7CDLMiPPKnmYrcSJqGuy6ecA2SE9m3Jtt6DU=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   pythonRemoveDeps = [
     # The `dataclasses` packages is a python2-only backport, unnecessary in
@@ -56,9 +53,7 @@ buildPythonPackage rec {
     pyarrow
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Attempts to spin up a Spark cluster and talk to it which doesn't work in
diff --git a/pkgs/development/python-modules/autoflake/default.nix b/pkgs/development/python-modules/autoflake/default.nix
index 1fc68b92f94b6..1351237609688 100644
--- a/pkgs/development/python-modules/autoflake/default.nix
+++ b/pkgs/development/python-modules/autoflake/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatchling
-, pyflakes
-, pytestCheckHook
-, pythonOlder
-, tomli
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatchling,
+  pyflakes,
+  pytestCheckHook,
+  pythonOlder,
+  tomli,
 }:
 buildPythonPackage rec {
   pname = "autoflake";
@@ -17,22 +18,13 @@ buildPythonPackage rec {
     hash = "sha256-yYt13FsKhkWcTwGh0yrH60M47EMXpEaVFf8eaH7NkJ4=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = [
-    pyflakes
-  ]
-  ++ lib.optional (pythonOlder "3.11") tomli;
+  propagatedBuildInputs = [ pyflakes ] ++ lib.optional (pythonOlder "3.11") tomli;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "autoflake"
-  ];
+  pythonImportsCheck = [ "autoflake" ];
 
   disabledTests = [
     # AssertionError: True is not false
diff --git a/pkgs/development/python-modules/autograd-gamma/default.nix b/pkgs/development/python-modules/autograd-gamma/default.nix
index a772a09678596..0e38848d6f7d4 100644
--- a/pkgs/development/python-modules/autograd-gamma/default.nix
+++ b/pkgs/development/python-modules/autograd-gamma/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook, autograd, scipy }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  autograd,
+  scipy,
+}:
 
 buildPythonPackage rec {
   pname = "autograd-gamma";
diff --git a/pkgs/development/python-modules/autograd/default.nix b/pkgs/development/python-modules/autograd/default.nix
index 26f636e85bf03..2b7569d8f7450 100644
--- a/pkgs/development/python-modules/autograd/default.nix
+++ b/pkgs/development/python-modules/autograd/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, future
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  future,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
   # fixed, enable testing. See: https://github.com/HIPS/autograd/issues/404
   doCheck = false;
 
-  pythonImportsCheck = [
-    "autograd"
-  ];
+  pythonImportsCheck = [ "autograd" ];
 
   meta = with lib; {
     homepage = "https://github.com/HIPS/autograd";
diff --git a/pkgs/development/python-modules/autoit-ripper/default.nix b/pkgs/development/python-modules/autoit-ripper/default.nix
index 3a4f3f059fc9f..47d54b20820b6 100644
--- a/pkgs/development/python-modules/autoit-ripper/default.nix
+++ b/pkgs/development/python-modules/autoit-ripper/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pefile
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pefile,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,20 +19,14 @@ buildPythonPackage rec {
     hash = "sha256-+BHWDkeVewoRUgaHln5TyoajpCvJiowCiC2dFYyp1MA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    pefile
-  ];
+  propagatedBuildInputs = [ pefile ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "autoit_ripper"
-  ];
+  pythonImportsCheck = [ "autoit_ripper" ];
 
   meta = with lib; {
     description = "Python module to extract AutoIt scripts embedded in PE binaries";
diff --git a/pkgs/development/python-modules/autologging/default.nix b/pkgs/development/python-modules/autologging/default.nix
index 46adfc6195ac4..4d58b3d8ab53c 100644
--- a/pkgs/development/python-modules/autologging/default.nix
+++ b/pkgs/development/python-modules/autologging/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "autologging";
diff --git a/pkgs/development/python-modules/automat/default.nix b/pkgs/development/python-modules/automat/default.nix
index e69a30257f1c2..af707983b5958 100644
--- a/pkgs/development/python-modules/automat/default.nix
+++ b/pkgs/development/python-modules/automat/default.nix
@@ -1,50 +1,54 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, attrs
-, pytest-benchmark
-, pytestCheckHook
-, setuptools-scm
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  attrs,
+  pytest-benchmark,
+  pytestCheckHook,
+  setuptools-scm,
+  six,
 }:
 
-let automat = buildPythonPackage rec {
-  version = "22.10.0";
-  format = "setuptools";
-  pname = "automat";
-
-  src = fetchPypi {
-    pname = "Automat";
-    inherit version;
-    hash = "sha256-5WvrhO2tGdzBHTDo2biV913ute9elrhKRnBms7hLsE4=";
-  };
-
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
-
-  propagatedBuildInputs = [
-    six
-    attrs
-  ];
-
-  nativeCheckInputs = [
-    pytest-benchmark
-    pytestCheckHook
-  ];
-
-  # escape infinite recursion with twisted
-  doCheck = false;
-
-  passthru.tests = {
-    check = automat.overridePythonAttrs (_: { doCheck = true; });
-  };
-
-  meta = with lib; {
-    homepage = "https://github.com/glyph/Automat";
-    description = "Self-service finite-state machines for the programmer on the go";
-    mainProgram = "automat-visualize";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ];
+let
+  automat = buildPythonPackage rec {
+    version = "22.10.0";
+    format = "setuptools";
+    pname = "automat";
+
+    src = fetchPypi {
+      pname = "Automat";
+      inherit version;
+      hash = "sha256-5WvrhO2tGdzBHTDo2biV913ute9elrhKRnBms7hLsE4=";
+    };
+
+    nativeBuildInputs = [ setuptools-scm ];
+
+    propagatedBuildInputs = [
+      six
+      attrs
+    ];
+
+    nativeCheckInputs = [
+      pytest-benchmark
+      pytestCheckHook
+    ];
+
+    # escape infinite recursion with twisted
+    doCheck = false;
+
+    passthru.tests = {
+      check = automat.overridePythonAttrs (_: {
+        doCheck = true;
+      });
+    };
+
+    meta = with lib; {
+      homepage = "https://github.com/glyph/Automat";
+      description = "Self-service finite-state machines for the programmer on the go";
+      mainProgram = "automat-visualize";
+      license = licenses.mit;
+      maintainers = with maintainers; [ ];
+    };
   };
-}; in automat
+in
+automat
diff --git a/pkgs/development/python-modules/automate-home/default.nix b/pkgs/development/python-modules/automate-home/default.nix
index c13395aa42e3e..bfaa26afc761d 100644
--- a/pkgs/development/python-modules/automate-home/default.nix
+++ b/pkgs/development/python-modules/automate-home/default.nix
@@ -1,29 +1,42 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, apscheduler
-, hiredis
-, aioredis
-, ephem
-, pytz
-, pyyaml
+{
+  lib,
+  aioredis,
+  apscheduler,
+  buildPythonPackage,
+  ephem,
+  fetchPypi,
+  hiredis,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  pytz,
+  pyyaml,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "automate-home";
   version = "0.9.1";
-  format = "setuptools";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  # Typing issue
+  disabled = pythonOlder "3.8" || pythonAtLeast "3.12";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-41qd+KPSrOrczkovwXht3irbcYlYehBZ1HZ44yZe4cM=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    # Rename pyephem, https://github.com/majamassarini/automate-home/pull/3
+    substituteInPlace setup.py \
+      --replace-fail "pyephem" "ephem" \
+      --replace-fail "aioredis==1.3.1" "aioredis"
+  '';
+
+  build-system = [ setuptools ];
+
+  dependencies = [
     apscheduler
     hiredis
     aioredis
@@ -32,24 +45,14 @@ buildPythonPackage rec {
     pyyaml
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  postPatch = ''
-    # Rename pyephem, https://github.com/majamassarini/automate-home/pull/3
-    substituteInPlace setup.py \
-      --replace "pyephem" "ephem" \
-      --replace "aioredis==1.3.1" "aioredis"
-  '';
-
-  pythonImportsCheck = [
-    "home"
-  ];
+  pythonImportsCheck = [ "home" ];
 
   meta = with lib; {
     description = "Python module to automate (home) devices";
     homepage = "https://github.com/majamassarini/automate-home";
+    changelog = "https://github.com/majamassarini/automate-home/releases/tag/${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/automx2/default.nix b/pkgs/development/python-modules/automx2/default.nix
index a0b4f78e6754c..05ddb4c521a9a 100644
--- a/pkgs/development/python-modules/automx2/default.nix
+++ b/pkgs/development/python-modules/automx2/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flask
-, flask-migrate
-, ldap3
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+  flask-migrate,
+  ldap3,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-s/kd9A/d3SPMZC9+B4DdcXVi77WLH/SBwXIdaKHUj34=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     flask
@@ -33,13 +32,9 @@ buildPythonPackage rec {
     ldap3
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "automx2"
-  ];
+  pythonImportsCheck = [ "automx2" ];
 
   meta = with lib; {
     description = "Email client configuration made easy";
diff --git a/pkgs/development/python-modules/autopage/default.nix b/pkgs/development/python-modules/autopage/default.nix
index c8fbd6b9473df..8d2963037a349 100644
--- a/pkgs/development/python-modules/autopage/default.nix
+++ b/pkgs/development/python-modules/autopage/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "autopage";
@@ -11,14 +16,12 @@ buildPythonPackage rec {
     hash = "sha256-gmmW10xaqfS2kWGVVHMSrGOEusOBC4UXBj8pMkgle3I=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   pythonImportsCheck = [ "autopage" ];
 
   meta = with lib; {
-    description = "A library to provide automatic paging for console output";
+    description = "Library to provide automatic paging for console output";
     homepage = "https://github.com/zaneb/autopage";
     license = licenses.asl20;
     maintainers = teams.openstack.members;
diff --git a/pkgs/development/python-modules/autopep8/default.nix b/pkgs/development/python-modules/autopep8/default.nix
index 34dd0baa4c99d..4088b131d4e3a 100644
--- a/pkgs/development/python-modules/autopep8/default.nix
+++ b/pkgs/development/python-modules/autopep8/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, glibcLocales
-, pycodestyle
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, tomli
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  glibcLocales,
+  pycodestyle,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  tomli,
 }:
 
 buildPythonPackage rec {
@@ -24,15 +24,9 @@ buildPythonPackage rec {
     hash = "sha256-psGl9rXxTQGHyXf1VskJ/I/goVH5hRRP5bUXQdaT/8M=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    pycodestyle
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  propagatedBuildInputs = [ pycodestyle ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   nativeCheckInputs = [
     glibcLocales
@@ -43,7 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/hhatto/autopep8/releases/tag/v${version}";
-    description = "A tool that automatically formats Python code to conform to the PEP 8 style guide";
+    description = "Tool that automatically formats Python code to conform to the PEP 8 style guide";
     homepage = "https://github.com/hhatto/autopep8";
     license = licenses.mit;
     mainProgram = "autopep8";
diff --git a/pkgs/development/python-modules/autoslot/default.nix b/pkgs/development/python-modules/autoslot/default.nix
index c234b35e0e585..55059da486a0c 100644
--- a/pkgs/development/python-modules/autoslot/default.nix
+++ b/pkgs/development/python-modules/autoslot/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,17 +27,11 @@ buildPythonPackage rec {
       --replace 'build-backend = "flit.buildapi"' 'build-backend = "flit_core.buildapi"'
   '';
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "autoslot"
-  ];
+  pythonImportsCheck = [ "autoslot" ];
 
   meta = with lib; {
     description = "Automatic __slots__ for your Python classes";
diff --git a/pkgs/development/python-modules/autotrash/default.nix b/pkgs/development/python-modules/autotrash/default.nix
new file mode 100644
index 0000000000000..1d0e28405c93f
--- /dev/null
+++ b/pkgs/development/python-modules/autotrash/default.nix
@@ -0,0 +1,33 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "autotrash";
+  version = "0.4.7";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "bneijt";
+    repo = "autotrash";
+    rev = "refs/tags/${version}";
+    hash = "sha256-qMU3jjBL5+fd9vKX5BIqES5AM8D/54aBOmdHFiBtfEo=";
+  };
+
+  build-system = [ poetry-core ];
+
+  pythonImportsCheck = [ "autotrash" ];
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Tool to automatically purge old trashed files";
+    license = licenses.gpl3Plus;
+    homepage = "https://bneijt.nl/pr/autotrash";
+    maintainers = with maintainers; [ sigmanificient ];
+    mainProgram = "autotrash";
+  };
+}
diff --git a/pkgs/development/python-modules/av/default.nix b/pkgs/development/python-modules/av/default.nix
index b57472867005d..c126a8ab1fc43 100644
--- a/pkgs/development/python-modules/av/default.nix
+++ b/pkgs/development/python-modules/av/default.nix
@@ -1,15 +1,17 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, ffmpeg_5-headless
-, numpy
-, pillow
-, pkg-config
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  fetchpatch,
+  ffmpeg_5-headless,
+  numpy,
+  pillow,
+  pkg-config,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -26,15 +28,22 @@ buildPythonPackage rec {
     hash = "sha256-pCKP+4ZmZCJcG7/Qy9H6aS4svQdgaRA9S1QVNWFYhSQ=";
   };
 
+  patches = [
+    # merged upstream PR: https://github.com/PyAV-Org/PyAV/pull/1387
+    (fetchpatch {
+      name = "use-pkg-config-env-var-fix-cross.patch";
+      url = "https://github.com/PyAV-Org/PyAV/commit/ba7a2c9f716af506838d399e6ed27ed6d64d2435.patch";
+      sha256 = "sha256-oH+g8sVoVCQe6DimRN38VT2GdziriwHYRAhldNxz9/E=";
+    })
+  ];
+
   nativeBuildInputs = [
     cython
     pkg-config
     setuptools
   ];
 
-  buildInputs = [
-    ffmpeg_5-headless
-  ];
+  buildInputs = [ ffmpeg_5-headless ];
 
   preCheck = ''
     # ensure we import the built version
@@ -47,55 +56,57 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = [
-    # urlopen fails during DNS resolution
-    "test_writing_to_custom_io"
-    "test_decode_close_then_use"
-    # Tests that want to download FATE data, https://github.com/PyAV-Org/PyAV/issues/955
-    "test_vobsub"
-    "test_transcode"
-    "test_stream_tuples"
-    "test_stream_seek"
-    "test_stream_probing"
-    "test_seek_start"
-    "test_seek_middle"
-    "test_seek_int64"
-    "test_seek_float"
-    "test_seek_end"
-    "test_roundtrip"
-    "test_reading_from_write_readonl"
-    "test_reading_from_pipe_readonly"
-    "test_reading_from_file"
-    "test_reading_from_buffer"
-    "test_reading_from_buffer_no_see"
-    "test_parse"
-    "test_movtext"
-    "test_encoding_xvid"
-    "test_encoding_tiff"
-    "test_encoding_png"
-    "test_encoding_pcm_s24le"
-    "test_encoding_mpeg4"
-    "test_encoding_mpeg1video"
-    "test_encoding_mp2"
-    "test_encoding_mjpeg"
-    "test_encoding_h264"
-    "test_encoding_dvvideo"
-    "test_encoding_dnxhd"
-    "test_encoding_aac"
-    "test_decoded_video_frame_count"
-    "test_decoded_time_base"
-    "test_decoded_motion_vectors"
-    "test_decode_half"
-    "test_decode_audio_sample_count"
-    "test_data"
-    "test_container_probing"
-    "test_codec_tag"
-    "test_selection"
-  ] ++ lib.optionals (stdenv.isDarwin) [
-    # Segmentation Faults
-    "test_encoding_with_pts"
-    "test_bayer_write"
-  ];
+  disabledTests =
+    [
+      # urlopen fails during DNS resolution
+      "test_writing_to_custom_io"
+      "test_decode_close_then_use"
+      # Tests that want to download FATE data, https://github.com/PyAV-Org/PyAV/issues/955
+      "test_vobsub"
+      "test_transcode"
+      "test_stream_tuples"
+      "test_stream_seek"
+      "test_stream_probing"
+      "test_seek_start"
+      "test_seek_middle"
+      "test_seek_int64"
+      "test_seek_float"
+      "test_seek_end"
+      "test_roundtrip"
+      "test_reading_from_write_readonl"
+      "test_reading_from_pipe_readonly"
+      "test_reading_from_file"
+      "test_reading_from_buffer"
+      "test_reading_from_buffer_no_see"
+      "test_parse"
+      "test_movtext"
+      "test_encoding_xvid"
+      "test_encoding_tiff"
+      "test_encoding_png"
+      "test_encoding_pcm_s24le"
+      "test_encoding_mpeg4"
+      "test_encoding_mpeg1video"
+      "test_encoding_mp2"
+      "test_encoding_mjpeg"
+      "test_encoding_h264"
+      "test_encoding_dvvideo"
+      "test_encoding_dnxhd"
+      "test_encoding_aac"
+      "test_decoded_video_frame_count"
+      "test_decoded_time_base"
+      "test_decoded_motion_vectors"
+      "test_decode_half"
+      "test_decode_audio_sample_count"
+      "test_data"
+      "test_container_probing"
+      "test_codec_tag"
+      "test_selection"
+    ]
+    ++ lib.optionals (stdenv.isDarwin) [
+      # Segmentation Faults
+      "test_encoding_with_pts"
+      "test_bayer_write"
+    ];
 
   disabledTestPaths = [
     # urlopen fails during DNS resolution
diff --git a/pkgs/development/python-modules/avea/default.nix b/pkgs/development/python-modules/avea/default.nix
index 01440a0ff9ace..202d6e7b7742a 100644
--- a/pkgs/development/python-modules/avea/default.nix
+++ b/pkgs/development/python-modules/avea/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, bluepy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  bluepy,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     sha256 = "1dirf0zdf4hb941w1dvh97vsvcy4h3w9r8jwdgr1ggmhdf9kfx4v";
   };
 
-  propagatedBuildInputs = [
-    bluepy
-  ];
+  propagatedBuildInputs = [ bluepy ];
 
   # no tests are present
   doCheck = false;
diff --git a/pkgs/development/python-modules/avidtools/default.nix b/pkgs/development/python-modules/avidtools/default.nix
index bcb1ba01c819a..3b58583c4fd25 100644
--- a/pkgs/development/python-modules/avidtools/default.nix
+++ b/pkgs/development/python-modules/avidtools/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, datetime
-, fetchPypi
-, nvdlib
-, pydantic
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  datetime,
+  fetchPypi,
+  nvdlib,
+  pydantic,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     sed -i "/'typing'/d" setup.py
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     datetime
@@ -39,9 +38,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "avidtools"
-  ];
+  pythonImportsCheck = [ "avidtools" ];
 
   meta = with lib; {
     description = "Developer tools for AVID";
diff --git a/pkgs/development/python-modules/avion/default.nix b/pkgs/development/python-modules/avion/default.nix
index 8bb0f339cd482..d4b4a72148d92 100644
--- a/pkgs/development/python-modules/avion/default.nix
+++ b/pkgs/development/python-modules/avion/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, bluepy
-, buildPythonPackage
-, csrmesh
-, fetchPypi
-, pycryptodome
-, pythonOlder
-, requests
+{
+  lib,
+  bluepy,
+  buildPythonPackage,
+  csrmesh,
+  fetchPypi,
+  pycryptodome,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/avro-python3/default.nix b/pkgs/development/python-modules/avro-python3/default.nix
index 114ff98326f82..df1e67017ab56 100644
--- a/pkgs/development/python-modules/avro-python3/default.nix
+++ b/pkgs/development/python-modules/avro-python3/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, pycodestyle, isort }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  pycodestyle,
+  isort,
+}:
 
 buildPythonPackage rec {
   pname = "avro-python3";
@@ -11,15 +18,21 @@ buildPythonPackage rec {
     sha256 = "3b63f24e6b04368c3e4a6f923f484be0230d821aad65ac36108edbff29e9aaab";
   };
 
-  buildInputs = [ pycodestyle isort ];
-  doCheck = false;        # No such file or directory: './run_tests.py
+  buildInputs = [
+    pycodestyle
+    isort
+  ];
+  doCheck = false; # No such file or directory: './run_tests.py
 
   meta = with lib; {
-    description = "A serialization and RPC framework";
+    description = "Serialization and RPC framework";
     mainProgram = "avro";
     homepage = "https://pypi.python.org/pypi/avro-python3/";
     license = licenses.asl20;
 
-    maintainers = [ maintainers.shlevy maintainers.timma ];
+    maintainers = [
+      maintainers.shlevy
+      maintainers.timma
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/avro/default.nix b/pkgs/development/python-modules/avro/default.nix
index 4b1f85e7d2037..ec07daa2880c6 100644
--- a/pkgs/development/python-modules/avro/default.nix
+++ b/pkgs/development/python-modules/avro/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, setuptools
-, fetchPypi
-, typing-extensions
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  setuptools,
+  fetchPypi,
+  typing-extensions,
+  pytest7CheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,17 +26,11 @@ buildPythonPackage rec {
       --replace-fail 'distutils' 'setuptools._distutils'
   '';
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytest7CheckHook ];
 
   disabledTests = [
     # Requires network access
@@ -44,9 +39,7 @@ buildPythonPackage rec {
     "test_schema_compatibility_type_mismatch"
   ];
 
-  pythonImportsCheck = [
-    "avro"
-  ];
+  pythonImportsCheck = [ "avro" ];
 
   meta = with lib; {
     description = "Python serialization and RPC framework";
diff --git a/pkgs/development/python-modules/avro3k/default.nix b/pkgs/development/python-modules/avro3k/default.nix
index 43a61d6d02203..a2e9c344c5649 100644
--- a/pkgs/development/python-modules/avro3k/default.nix
+++ b/pkgs/development/python-modules/avro3k/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+}:
 
 buildPythonPackage rec {
   pname = "avro3k";
@@ -17,10 +22,10 @@ buildPythonPackage rec {
       --replace "1.7.7-SNAPSHOT" "1.7.7"
   '';
 
-  doCheck = false;        # No such file or directory: './run_tests.py
+  doCheck = false; # No such file or directory: './run_tests.py
 
   meta = with lib; {
-    description = "A serialization and RPC framework";
+    description = "Serialization and RPC framework";
     mainProgram = "avro";
     homepage = "https://pypi.python.org/pypi/avro3k/";
   };
diff --git a/pkgs/development/python-modules/avwx-engine/default.nix b/pkgs/development/python-modules/avwx-engine/default.nix
new file mode 100644
index 0000000000000..0d0be882efe8f
--- /dev/null
+++ b/pkgs/development/python-modules/avwx-engine/default.nix
@@ -0,0 +1,84 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  geopy,
+  hatchling,
+  httpx,
+  numpy,
+  pytest-asyncio,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  rapidfuzz,
+  scipy,
+  shapely,
+  time-machine,
+  xmltodict,
+}:
+
+buildPythonPackage rec {
+  pname = "avwx-engine";
+  version = "1.9.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "avwx-rest";
+    repo = "avwx-engine";
+    rev = "refs/tags/${version}";
+    hash = "sha256-CUnUz2SsXtWaqGzaB1PH+EoHqebSue6e8GXhRZRcXLs=";
+  };
+
+  postPatch = ''
+    sed -i -e "/--cov/d" -e "/--no-cov/d" pyproject.toml
+  '';
+
+  build-system = [ hatchling ];
+
+  dependencies = [
+    geopy
+    httpx
+    python-dateutil
+    xmltodict
+  ];
+
+  passthru.optional-dependencies = {
+    all = [
+      numpy
+      rapidfuzz
+      scipy
+      shapely
+    ];
+    fuzz = [ rapidfuzz ];
+    scipy = [
+      numpy
+      scipy
+    ];
+    shape = [ shapely ];
+  };
+
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytestCheckHook
+    time-machine
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+
+  pythonImportsCheck = [ "avwx" ];
+
+  disabledTests = [
+    # Tests require network access
+    "fetch"
+    "test_nbm_all"
+    "test_station_nearest_ip"
+  ];
+
+  meta = with lib; {
+    description = "Aviation Weather parsing engine";
+    homepage = "https://github.com/avwx-rest/avwx-engine";
+    changelog = "https://github.com/avwx-rest/avwx-engine/blob/${version}/changelog.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/aw-client/default.nix b/pkgs/development/python-modules/aw-client/default.nix
index c08ea790059c9..42c51ed2f806c 100644
--- a/pkgs/development/python-modules/aw-client/default.nix
+++ b/pkgs/development/python-modules/aw-client/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, poetry-core
-, aw-core
-, requests
-, persist-queue
-, click
-, tabulate
-, typing-extensions
-, pytestCheckHook
-, gitUpdater
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  poetry-core,
+  aw-core,
+  requests,
+  persist-queue,
+  click,
+  tabulate,
+  typing-extensions,
+  pytestCheckHook,
+  gitUpdater,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.8";
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aw-core
@@ -42,9 +41,7 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Only run this test, the others are integration tests that require
   # an instance of aw-server running in order to function.
@@ -57,9 +54,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "aw_client" ];
 
-  passthru.updateScript = gitUpdater {
-    rev-prefix = "v";
-  };
+  passthru.updateScript = gitUpdater { rev-prefix = "v"; };
 
   meta = with lib; {
     description = "Client library for ActivityWatch";
diff --git a/pkgs/development/python-modules/aw-core/default.nix b/pkgs/development/python-modules/aw-core/default.nix
index 290c2650a0155..84b13c6f100de 100644
--- a/pkgs/development/python-modules/aw-core/default.nix
+++ b/pkgs/development/python-modules/aw-core/default.nix
@@ -1,20 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pythonRelaxDepsHook
-, poetry-core
-, jsonschema
-, peewee
-, platformdirs
-, iso8601
-, rfc3339-validator
-, strict-rfc3339
-, tomlkit
-, deprecation
-, timeslot
-, pytestCheckHook
-, gitUpdater
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  poetry-core,
+  jsonschema,
+  peewee,
+  platformdirs,
+  iso8601,
+  rfc3339-validator,
+  strict-rfc3339,
+  tomlkit,
+  deprecation,
+  timeslot,
+  pytestCheckHook,
+  gitUpdater,
 }:
 
 buildPythonPackage rec {
@@ -35,7 +35,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -55,9 +54,7 @@ buildPythonPackage rec {
     "iso8601"
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     # Fake home folder for tests that write to $HOME
@@ -66,9 +63,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "aw_core" ];
 
-  passthru.updateScript = gitUpdater {
-    rev-prefix = "v";
-  };
+  passthru.updateScript = gitUpdater { rev-prefix = "v"; };
 
   meta = with lib; {
     description = "Core library for ActivityWatch";
diff --git a/pkgs/development/python-modules/awacs/default.nix b/pkgs/development/python-modules/awacs/default.nix
index 18c5944b06cbe..efb134be67874 100644
--- a/pkgs/development/python-modules/awacs/default.nix
+++ b/pkgs/development/python-modules/awacs/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, python
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  python,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,13 @@ buildPythonPackage rec {
     hash = "sha256-sNo1auVjdOqHLGzbAJRrsi6c2BfD861rAIAZ46RdgEA=";
   };
 
-  propagatedBuildInputs = lib.lists.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = lib.lists.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   checkPhase = ''
     ${python.interpreter} -m unittest discover
   '';
 
-  pythonImportsCheck = [
-    "awacs"
-  ];
+  pythonImportsCheck = [ "awacs" ];
 
   meta = with lib; {
     description = "AWS Access Policy Language creation library";
diff --git a/pkgs/development/python-modules/awesome-slugify/default.nix b/pkgs/development/python-modules/awesome-slugify/default.nix
index cd1717a96b4d6..1b43d389ee757 100644
--- a/pkgs/development/python-modules/awesome-slugify/default.nix
+++ b/pkgs/development/python-modules/awesome-slugify/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, unidecode, regex, unittestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  unidecode,
+  regex,
+  unittestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "awesome-slugify";
@@ -19,7 +26,10 @@ buildPythonPackage rec {
     ./slugify_filename_test.patch # fixes broken test by new unidecode
   ];
 
-  propagatedBuildInputs = [ unidecode regex ];
+  propagatedBuildInputs = [
+    unidecode
+    regex
+  ];
 
   nativeCheckInputs = [ unittestCheckHook ];
 
diff --git a/pkgs/development/python-modules/awesomeversion/default.nix b/pkgs/development/python-modules/awesomeversion/default.nix
index f728bbb562097..9ffea48aa93e3 100644
--- a/pkgs/development/python-modules/awesomeversion/default.nix
+++ b/pkgs/development/python-modules/awesomeversion/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, poetry-core
-, pytest-snapshot
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  poetry-core,
+  pytest-snapshot,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -27,13 +28,9 @@ buildPythonPackage rec {
       --replace-fail 'version = "0"' 'version = "${version}"'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  pythonImportsCheck = [
-    "awesomeversion"
-  ];
+  pythonImportsCheck = [ "awesomeversion" ];
 
   nativeCheckInputs = [
     pytest-snapshot
diff --git a/pkgs/development/python-modules/awkward-cpp/default.nix b/pkgs/development/python-modules/awkward-cpp/default.nix
index bd5c3197a0973..9b4a45c2f4053 100644
--- a/pkgs/development/python-modules/awkward-cpp/default.nix
+++ b/pkgs/development/python-modules/awkward-cpp/default.nix
@@ -1,48 +1,45 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, cmake
-, ninja
-, pybind11
-, scikit-build-core
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  cmake,
+  ninja,
+  pybind11,
+  scikit-build-core,
+  numpy,
 }:
 
 buildPythonPackage rec {
   pname = "awkward-cpp";
-  version = "32";
+  version = "34";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-rYxa+GIG+w9DSxZ0nMXMppoVqI4WykPpHlbFzKd0IfA=";
+    hash = "sha256-OayBTXafOK3ppfbDm4Wwe7wFr1Y0L7FXQu3OEjf54Ek=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     cmake
     ninja
     pybind11
     scikit-build-core
   ] ++ scikit-build-core.optional-dependencies.pyproject;
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  dependencies = [ numpy ];
 
   dontUseCmakeConfigure = true;
 
-  pythonImportsCheck = [
-    "awkward_cpp"
-  ];
+  pythonImportsCheck = [ "awkward_cpp" ];
 
-  meta = with lib; {
+  meta = {
     description = "CPU kernels and compiled extensions for Awkward Array";
     homepage = "https://github.com/scikit-hep/awkward";
     changelog = "https://github.com/scikit-hep/awkward/releases/tag/v${version}";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ veprbl ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/python-modules/awkward/default.nix b/pkgs/development/python-modules/awkward/default.nix
index d347b623d4077..f7f613148f9e5 100644
--- a/pkgs/development/python-modules/awkward/default.nix
+++ b/pkgs/development/python-modules/awkward/default.nix
@@ -1,30 +1,31 @@
-{ lib
-, fsspec
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, hatch-fancy-pypi-readme
-, hatchling
-, awkward-cpp
-, importlib-metadata
-, numpy
-, packaging
-, typing-extensions
-, jax
-, jaxlib
-, numba
-, setuptools
-, numexpr
-, pandas
-, pyarrow
-, pytest-xdist
-, pytestCheckHook
+{
+  lib,
+  fsspec,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  hatch-fancy-pypi-readme,
+  hatchling,
+  awkward-cpp,
+  importlib-metadata,
+  numpy,
+  packaging,
+  typing-extensions,
+  jax,
+  jaxlib,
+  numba,
+  setuptools,
+  numexpr,
+  pandas,
+  pyarrow,
+  pytest-xdist,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "awkward";
-  version = "2.6.3";
+  version = "2.6.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -33,58 +34,57 @@ buildPythonPackage rec {
     owner = "scikit-hep";
     repo = "awkward";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zII5TZ0bzVEo5hTrLr45N7oL3lYhkCyNfZif+0vkEo4=";
+    hash = "sha256-HDO626bK5BH/mdLuGkeYIOz8X2N9/rkTLhQNzG1erYA=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     hatch-fancy-pypi-readme
     hatchling
   ];
 
-  propagatedBuildInputs = [
-    awkward-cpp
-    fsspec
-    importlib-metadata
-    numpy
-    packaging
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    typing-extensions
-  ] ++ lib.optionals (pythonOlder "3.12") [
-    importlib-metadata
-  ];
+  dependencies =
+    [
+      awkward-cpp
+      fsspec
+      importlib-metadata
+      numpy
+      packaging
+    ]
+    ++ lib.optionals (pythonOlder "3.11") [ typing-extensions ]
+    ++ lib.optionals (pythonOlder "3.12") [ importlib-metadata ];
 
   dontUseCmakeConfigure = true;
 
   pythonImportsCheck = [ "awkward" ];
 
-  nativeCheckInputs = [
-    fsspec
-    numba
-    setuptools
-    numexpr
-    pandas
-    pyarrow
-    pytest-xdist
-    pytestCheckHook
-  ] ++ lib.optionals (!stdenv.isDarwin) [
-    # no support for darwin
-    jax
-    jaxlib
-  ];
+  nativeCheckInputs =
+    [
+      fsspec
+      numba
+      setuptools
+      numexpr
+      pandas
+      pyarrow
+      pytest-xdist
+      pytestCheckHook
+    ]
+    ++ lib.optionals (!stdenv.isDarwin) [
+      # no support for darwin
+      jax
+      jaxlib
+    ];
 
   # The following tests have been disabled because they need to be run on a GPU platform.
   disabledTestPaths = [
     "tests-cuda"
-  # Disable tests dependending on jax on darwin
-  ] ++ lib.optionals stdenv.isDarwin [
-    "tests/test_2603_custom_behaviors_with_jax.py"
-  ];
+    # Disable tests dependending on jax on darwin
+  ] ++ lib.optionals stdenv.isDarwin [ "tests/test_2603_custom_behaviors_with_jax.py" ];
 
-  meta = with lib; {
+  meta = {
     description = "Manipulate JSON-like data with NumPy-like idioms";
     homepage = "https://github.com/scikit-hep/awkward";
     changelog = "https://github.com/scikit-hep/awkward/releases/tag/v${version}";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ veprbl ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/python-modules/aws-adfs/default.nix b/pkgs/development/python-modules/aws-adfs/default.nix
index 0c67f2ce4bce3..c2c0b859b033c 100644
--- a/pkgs/development/python-modules/aws-adfs/default.nix
+++ b/pkgs/development/python-modules/aws-adfs/default.nix
@@ -1,20 +1,20 @@
-{ lib
-, boto3
-, botocore
-, buildPythonPackage
-, click
-, configparser
-, fetchFromGitHub
-, fido2
-, lxml
-, poetry-core
-, pyopenssl
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
-, requests-kerberos
-, toml
+{
+  lib,
+  boto3,
+  botocore,
+  buildPythonPackage,
+  click,
+  configparser,
+  fetchFromGitHub,
+  fido2,
+  lxml,
+  poetry-core,
+  pyopenssl,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-kerberos,
+  toml,
 }:
 
 buildPythonPackage rec {
@@ -26,21 +26,21 @@ buildPythonPackage rec {
 
   src = fetchFromGitHub {
     owner = "venth";
-    repo = pname;
+    repo = "aws-adfs";
     rev = "refs/tags/v${version}";
     hash = "sha256-ZzQ92VBa8CApd0WkfPrUZsEZICK2fhwmt45P2sx2mK0=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = [
     "configparser"
+    "requests-kerberos"
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     boto3
     botocore
     click
@@ -61,16 +61,14 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d);
   '';
 
-  pythonImportsCheck = [
-    "aws_adfs"
-  ];
+  pythonImportsCheck = [ "aws_adfs" ];
 
   meta = with lib; {
     description = "Command line tool to ease AWS CLI authentication against ADFS";
-    mainProgram = "aws-adfs";
     homepage = "https://github.com/venth/aws-adfs";
     changelog = "https://github.com/venth/aws-adfs/releases/tag/v${version}";
     license = licenses.psfl;
     maintainers = with maintainers; [ bhipple ];
+    mainProgram = "aws-adfs";
   };
 }
diff --git a/pkgs/development/python-modules/aws-encryption-sdk/default.nix b/pkgs/development/python-modules/aws-encryption-sdk/default.nix
index 13f8d29ca9136..35e3af8980d19 100644
--- a/pkgs/development/python-modules/aws-encryption-sdk/default.nix
+++ b/pkgs/development/python-modules/aws-encryption-sdk/default.nix
@@ -1,34 +1,33 @@
-{ lib
-, attrs
-, boto3
-, buildPythonPackage
-, cryptography
-, fetchPypi
-, mock
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wrapt
+{
+  lib,
+  attrs,
+  boto3,
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  mock,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wrapt,
 }:
 
 buildPythonPackage rec {
   pname = "aws-encryption-sdk";
-  version = "3.2.0";
+  version = "3.3.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-QwT8+M4qo/qYsaz/ejvzzQUowynAxDe1Xg9Fa79iNH4=";
+    hash = "sha256-6yrboU9IHNg9cWmrjmQplIltOaSmTheWkEprSSVmE7A=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     attrs
     boto3
     cryptography
@@ -52,9 +51,7 @@ buildPythonPackage rec {
     "test_happy_version"
   ];
 
-  pythonImportsCheck = [
-    "aws_encryption_sdk"
-  ];
+  pythonImportsCheck = [ "aws_encryption_sdk" ];
 
   meta = with lib; {
     description = "Python implementation of the AWS Encryption SDK";
diff --git a/pkgs/development/python-modules/aws-lambda-builders/default.nix b/pkgs/development/python-modules/aws-lambda-builders/default.nix
index 9e32768ee18dc..97257d6108ffc 100644
--- a/pkgs/development/python-modules/aws-lambda-builders/default.nix
+++ b/pkgs/development/python-modules/aws-lambda-builders/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, parameterized
-, pip
-, pyelftools
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  parameterized,
+  pip,
+  pyelftools,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "aws-lambda-builders";
-  version = "1.48.0";
+  version = "1.50.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +23,7 @@ buildPythonPackage rec {
     owner = "awslabs";
     repo = "aws-lambda-builders";
     rev = "refs/tags/v${version}";
-    hash = "sha256-g1f0OL41lvs8OLyLcBk6XJk9wZO/oWluUj5sUcXlUIE=";
+    hash = "sha256-GXpyO+Qd6NP5yxWn1kw34x+P5uyR0rcNlzwivT6eHdE=";
   };
 
   postPatch = ''
@@ -30,13 +31,9 @@ buildPythonPackage rec {
       --replace-fail "version=read_version()," 'version="${version}",'
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    six
-  ];
+  dependencies = [ six ];
 
   nativeCheckInputs = [
     mock
@@ -73,9 +70,7 @@ buildPythonPackage rec {
     "tests/integration/workflows/dotnet_clipackage/test_dotnet.py"
   ];
 
-  pythonImportsCheck = [
-    "aws_lambda_builders"
-  ];
+  pythonImportsCheck = [ "aws_lambda_builders" ];
 
   meta = with lib; {
     description = "Tool to compile, build and package AWS Lambda functions";
diff --git a/pkgs/development/python-modules/aws-sam-translator/default.nix b/pkgs/development/python-modules/aws-sam-translator/default.nix
index 872adf8227683..e672317cc75f6 100644
--- a/pkgs/development/python-modules/aws-sam-translator/default.nix
+++ b/pkgs/development/python-modules/aws-sam-translator/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, boto3
-, buildPythonPackage
-, fetchFromGitHub
-, jsonschema
-, parameterized
-, pydantic
-, pytest-env
-, pytest-rerunfailures
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, typing-extensions
+{
+  lib,
+  boto3,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jsonschema,
+  parameterized,
+  pydantic,
+  pytest-env,
+  pytest-rerunfailures,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "aws-sam-translator";
-  version = "1.86.0";
+  version = "1.89.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     owner = "aws";
     repo = "serverless-application-model";
     rev = "refs/tags/v${version}";
-    hash = "sha256-elirU6u6smuYIj8oO6s2ybQB8Tu0pJPkBdjd0W0CfFE=";
+    hash = "sha256-wqM3n99lD0s/E9nd55q19Us31XgFtU/bBYJR1HTnnvk=";
   };
 
   postPatch = ''
@@ -80,9 +81,7 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [
-    "samtranslator"
-  ];
+  pythonImportsCheck = [ "samtranslator" ];
 
   meta = with lib; {
     description = "Python library to transform SAM templates into AWS CloudFormation templates";
diff --git a/pkgs/development/python-modules/aws-secretsmanager-caching/default.nix b/pkgs/development/python-modules/aws-secretsmanager-caching/default.nix
index 46de183c1d42b..6427a1417ec2f 100644
--- a/pkgs/development/python-modules/aws-secretsmanager-caching/default.nix
+++ b/pkgs/development/python-modules/aws-secretsmanager-caching/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, botocore
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  botocore,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -32,18 +33,14 @@ buildPythonPackage rec {
       --replace-fail "'pytest-runner'," ""
   '';
 
-  build-system = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
   dependencies = [
     botocore
-    setuptools  # Needs pkg_resources at runtime.
+    setuptools # Needs pkg_resources at runtime.
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # Integration tests require networking.
@@ -65,9 +62,7 @@ buildPythonPackage rec {
     "test_valid_json"
   ];
 
-  pythonImportsCheck = [
-    "aws_secretsmanager_caching"
-  ];
+  pythonImportsCheck = [ "aws_secretsmanager_caching" ];
 
   meta = with lib; {
     description = "Client-side AWS secrets manager caching library";
diff --git a/pkgs/development/python-modules/aws-xray-sdk/default.nix b/pkgs/development/python-modules/aws-xray-sdk/default.nix
index 43d59437330bf..418a938dc75ed 100644
--- a/pkgs/development/python-modules/aws-xray-sdk/default.nix
+++ b/pkgs/development/python-modules/aws-xray-sdk/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, aiohttp
-, botocore
-, bottle
-, buildPythonPackage
-, django
-, fetchFromGitHub
-, httpx
-, importlib-metadata
-, jsonpickle
-, pymysql
-, pytest-asyncio
-, pynamodb
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
-, sqlalchemy
-, webtest
-, wrapt
+{
+  lib,
+  aiohttp,
+  botocore,
+  bottle,
+  buildPythonPackage,
+  django,
+  fetchFromGitHub,
+  httpx,
+  importlib-metadata,
+  jsonpickle,
+  pymysql,
+  pytest-asyncio,
+  pynamodb,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
+  sqlalchemy,
+  webtest,
+  wrapt,
 }:
 
 buildPythonPackage rec {
   pname = "aws-xray-sdk";
-  version = "2.13.0";
+  version = "2.14.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -31,21 +32,17 @@ buildPythonPackage rec {
     owner = "aws";
     repo = "aws-xray-sdk-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-KhYYzeOteQxS1ltEUbjsDriHXO0Kom9YiCvVhSNvXVQ=";
+    hash = "sha256-rWP0yQ+Ril0UByOCWJKcL3mD7TvzK8Ddq9JlFIRBFU4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     botocore
     jsonpickle
     requests
     wrapt
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   nativeCheckInputs = [
     aiohttp
@@ -68,9 +65,7 @@ buildPythonPackage rec {
     "tests/test_patcher.py"
   ];
 
-  pythonImportsCheck = [
-    "aws_xray_sdk"
-  ];
+  pythonImportsCheck = [ "aws_xray_sdk" ];
 
   meta = with lib; {
     description = "AWS X-Ray SDK for the Python programming language";
diff --git a/pkgs/development/python-modules/awscrt/default.nix b/pkgs/development/python-modules/awscrt/default.nix
index d5d0cb5891719..209627d858bf0 100644
--- a/pkgs/development/python-modules/awscrt/default.nix
+++ b/pkgs/development/python-modules/awscrt/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cmake
-, perl
-, stdenv
-, gcc10
-, CoreFoundation
-, Security
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cmake,
+  perl,
+  stdenv,
+  gcc10,
+  CoreFoundation,
+  Security,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "awscrt";
-  version = "0.20.9";
+  version = "0.20.12";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JDeFrJ7mSUXgR5wjhDJVRfKVl1dXQ86Ew3FVbRAU5j4=";
+    hash = "sha256-Z271rdHsBh8/+nIrMm3wGhxEJJNIl2hYuBQdkHSlRok=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [
@@ -28,18 +29,16 @@ buildPythonPackage rec {
   ];
 
   # gcc <10 is not supported, LLVM on darwin is just fine
-  nativeBuildInputs = [
-    cmake
-  ] ++ lib.optionals (!stdenv.isDarwin && stdenv.isAarch64) [
-    gcc10
-    perl
-  ];
+  nativeBuildInputs =
+    [ cmake ]
+    ++ lib.optionals (!stdenv.isDarwin && stdenv.isAarch64) [
+      gcc10
+      perl
+    ];
 
   dontUseCmakeConfigure = true;
 
-  pythonImportsCheck = [
-    "awscrt"
-  ];
+  pythonImportsCheck = [ "awscrt" ];
 
   # Unable to import test module
   # https://github.com/awslabs/aws-crt-python/issues/281
diff --git a/pkgs/development/python-modules/awsiotpythonsdk/default.nix b/pkgs/development/python-modules/awsiotpythonsdk/default.nix
index 20da74babff29..3fd9258df22cb 100644
--- a/pkgs/development/python-modules/awsiotpythonsdk/default.nix
+++ b/pkgs/development/python-modules/awsiotpythonsdk/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-TUNIWGal7NQy2qmHVTiw6eX4t/Yt3NnM3HHztBwMfoM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "AWSIoTPythonSDK"
-  ];
+  pythonImportsCheck = [ "AWSIoTPythonSDK" ];
 
   meta = with lib; {
     description = "Python SDK for connecting to AWS IoT";
diff --git a/pkgs/development/python-modules/awsipranges/default.nix b/pkgs/development/python-modules/awsipranges/default.nix
index 036639c3cdb7b..c3b74b1feca82 100644
--- a/pkgs/development/python-modules/awsipranges/default.nix
+++ b/pkgs/development/python-modules/awsipranges/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pyopenssl
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pyopenssl,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-ve1+0zkDDUGswtQoXhfESMcBzoNgUutxEhz43HXL4H8=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     pyopenssl
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "awsipranges"
-  ];
+  pythonImportsCheck = [ "awsipranges" ];
 
   disabledTestPaths = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/awslambdaric/default.nix b/pkgs/development/python-modules/awslambdaric/default.nix
index 75e8897a7144c..a831b5300eb90 100644
--- a/pkgs/development/python-modules/awslambdaric/default.nix
+++ b/pkgs/development/python-modules/awslambdaric/default.nix
@@ -1,23 +1,24 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, isPy27
-, pytestCheckHook
-, autoconf271
-, automake
-, cmake
-, gcc
-, libtool
-, perl
-, setuptools
-, simplejson
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  isPy27,
+  pytestCheckHook,
+  autoconf271,
+  automake,
+  cmake,
+  gcc,
+  libtool,
+  perl,
+  setuptools,
+  simplejson,
 }:
 
 buildPythonPackage rec {
   pname = "awslambdaric";
-  version = "2.0.10";
+  version = "2.0.11";
   pyproject = true;
 
   disabled = isPy27;
@@ -26,7 +27,7 @@ buildPythonPackage rec {
     owner = "aws";
     repo = "aws-lambda-python-runtime-interface-client";
     rev = "refs/tags/${version}";
-    sha256 = "sha256-tvTN6gV73Qnbe4OBHtfxt4jXV32fMTPE4H79WIkgkxE=";
+    sha256 = "sha256-9DiUpgeL4bY7G3b5R06FjpN0st03F84fj0bhp70moKo=";
   };
 
   patches = [
@@ -44,7 +45,14 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ simplejson ];
 
-  nativeBuildInputs = [ autoconf271 automake cmake libtool perl setuptools ];
+  nativeBuildInputs = [
+    autoconf271
+    automake
+    cmake
+    libtool
+    perl
+    setuptools
+  ];
 
   buildInputs = [ gcc ];
 
@@ -57,7 +65,10 @@ buildPythonPackage rec {
     "test_handle_event_request_fault_exception_logging_syntax_error"
   ];
 
-  pythonImportsCheck = [ "awslambdaric" "runtime_client" ];
+  pythonImportsCheck = [
+    "awslambdaric"
+    "runtime_client"
+  ];
 
   meta = with lib; {
     broken = (stdenv.isLinux && stdenv.isAarch64);
diff --git a/pkgs/development/python-modules/awswrangler/default.nix b/pkgs/development/python-modules/awswrangler/default.nix
index b222c5703cd4a..12f4549bbe43d 100644
--- a/pkgs/development/python-modules/awswrangler/default.nix
+++ b/pkgs/development/python-modules/awswrangler/default.nix
@@ -20,14 +20,13 @@
   pyparsing,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
   redshift-connector,
   requests-aws4auth,
 }:
 
 buildPythonPackage rec {
   pname = "awswrangler";
-  version = "3.7.3";
+  version = "3.8.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -36,18 +35,13 @@ buildPythonPackage rec {
     owner = "aws";
     repo = "aws-sdk-pandas";
     rev = "refs/tags/${version}";
-    hash = "sha256-gm6ieteW+NcY+AOLcMZLUPcSi2Z/Mo27rzd1i9imp5I=";
+    hash = "sha256-2eF8WDhWfYgR3Ce/ehzCBtUdGUFzNmrTNfnatDpCg7Q=";
   };
 
   pythonRelaxDeps = [ "packaging" ];
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   dependencies = [
     boto3
@@ -75,9 +69,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "awswrangler"
-  ];
+  pythonImportsCheck = [ "awswrangler" ];
 
   pytestFlagsArray = [
     # Subset of tests that run in upstream CI (many others require credentials)
diff --git a/pkgs/development/python-modules/ax/default.nix b/pkgs/development/python-modules/ax/default.nix
index f0bba36c3c2fc..dddcc6e1ebeb5 100644
--- a/pkgs/development/python-modules/ax/default.nix
+++ b/pkgs/development/python-modules/ax/default.nix
@@ -1,33 +1,36 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, botorch
-, ipywidgets
-, jinja2
-, pandas
-, plotly
-, setuptools
-, setuptools-scm
-, typeguard
-, wheel
-, hypothesis
-, mercurial
-, pyfakefs
-, pytestCheckHook
-, yappi
-, pyre-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ax,
+  botorch,
+  ipywidgets,
+  jinja2,
+  pandas,
+  plotly,
+  python,
+  setuptools,
+  setuptools-scm,
+  typeguard,
+  wheel,
+  hypothesis,
+  mercurial,
+  pyfakefs,
+  pytestCheckHook,
+  yappi,
+  pyre-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "ax";
-  version = "0.3.7";
+  version = "0.4.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "facebook";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-UOX8Q7F5c9J1KSfQUy8aoL5CNb9YmEI4X7Fd5B16UqQ=";
+    hash = "sha256-dj6Gig8N4oLtcZLwPl4QDHG/FwA2nFBtYxSARnWiJJU=";
   };
 
   nativeBuildInputs = [
@@ -73,9 +76,16 @@ buildPythonPackage rec {
     "test_get_standard_plots_moo"
     # AssertionError: Expected 'warning' to be called once. Called 3 times
     "test_validate_kwarg_typing"
+    # uses torch.equal
+    "test_convert_observations"
   ];
   pythonImportsCheck = [ "ax" ];
 
+  # Many portions of the test suite fail under Python 3.12
+  doCheck = lib.versions.majorMinor python.version != "3.12";
+
+  passthru.tests.check = ax.overridePythonAttrs { doCheck = true; };
+
   meta = with lib; {
     description = "Ax is an accessible, general-purpose platform for understanding, managing, deploying, and automating adaptive experiments";
     homepage = "https://ax.dev/";
diff --git a/pkgs/development/python-modules/axisregistry/default.nix b/pkgs/development/python-modules/axisregistry/default.nix
index 510b87474d9a9..453f1c27f8bd0 100644
--- a/pkgs/development/python-modules/axisregistry/default.nix
+++ b/pkgs/development/python-modules/axisregistry/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fonttools
-, protobuf
-, pythonRelaxDepsHook
-, pytestCheckHook
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fonttools,
+  protobuf,
+  pytestCheckHook,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -23,14 +23,11 @@ buildPythonPackage rec {
     protobuf
   ];
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools-scm
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Relax the dependency on protobuf 3. Other packages in the Google Fonts
   # ecosystem have begun upgrading from protobuf 3 to protobuf 4,
diff --git a/pkgs/development/python-modules/azure-applicationinsights/default.nix b/pkgs/development/python-modules/azure-applicationinsights/default.nix
index 3292f0066a96f..27e6275ab5420 100644
--- a/pkgs/development/python-modules/azure-applicationinsights/default.nix
+++ b/pkgs/development/python-modules/azure-applicationinsights/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, azure-common
-, msrest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  azure-common,
+  msrest,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-batch/default.nix b/pkgs/development/python-modules/azure-batch/default.nix
index b0e27ef337cba..3caa3c69de876 100644
--- a/pkgs/development/python-modules/azure-batch/default.nix
+++ b/pkgs/development/python-modules/azure-batch/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrestazure
-, azure-common
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrestazure,
+  azure-common,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-x5Jn1sPT/hShakIqtbv6vL1o7QtYtrvN+gyDRcTHhTI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     azure-common
@@ -31,9 +30,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.batch"
-  ];
+  pythonImportsCheck = [ "azure.batch" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure Batch Client Library";
diff --git a/pkgs/development/python-modules/azure-common/default.nix b/pkgs/development/python-modules/azure-common/default.nix
index 2b4caa102f79c..b168e1b21cf2b 100644
--- a/pkgs/development/python-modules/azure-common/default.nix
+++ b/pkgs/development/python-modules/azure-common/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, azure-nspkg
-, isPyPy
-, setuptools
-, python
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  azure-nspkg,
+  isPyPy,
+  setuptools,
+  python,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-SsDNMhTja2obakQmhnIqXYzESWA6qDPz8PQL2oNnBKM=";
   };
 
-  propagatedBuildInputs = [
-    azure-nspkg
-  ] ++ lib.optionals (!isPy3k) [ setuptools ]; # need for namespace lookup
+  propagatedBuildInputs = [ azure-nspkg ] ++ lib.optionals (!isPy3k) [ setuptools ]; # need for namespace lookup
 
   postInstall = lib.optionalString (!isPy3k) ''
     echo "__import__('pkg_resources').declare_namespace(__name__)" >> "$out/${python.sitePackages}"/azure/__init__.py
@@ -34,6 +33,9 @@ buildPythonPackage rec {
     description = "This is the Microsoft Azure common code";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ olcai maxwilson ];
+    maintainers = with maintainers; [
+      olcai
+      maxwilson
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-containerregistry/default.nix b/pkgs/development/python-modules/azure-containerregistry/default.nix
index 7b6d8ba17915a..37d7173441acf 100644
--- a/pkgs/development/python-modules/azure-containerregistry/default.nix
+++ b/pkgs/development/python-modules/azure-containerregistry/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, azure-core
-, msrest
-, msrestazure
-, isodate
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  azure-core,
+  msrest,
+  msrestazure,
+  isodate,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-core/default.nix b/pkgs/development/python-modules/azure-core/default.nix
index 90a16ee098204..ed09e15d112b0 100644
--- a/pkgs/development/python-modules/azure-core/default.nix
+++ b/pkgs/development/python-modules/azure-core/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, aiodns
-, aiohttp
-, flask
-, mock
-, pytest
-, pytest-asyncio
-, pytest-trio
-, pytestCheckHook
-, requests
-, setuptools
-, six
-, trio
-, typing-extensions
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  aiodns,
+  aiohttp,
+  flask,
+  mock,
+  pytest,
+  pytest-asyncio,
+  pytest-trio,
+  pytestCheckHook,
+  requests,
+  setuptools,
+  six,
+  trio,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
-  version = "1.30.1";
+  version = "1.30.2";
   pname = "azure-core";
   pyproject = true;
 
@@ -29,12 +30,10 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Jic6JUEx+EJp6OpEZPNWDHMfKcDB9prJkBCEXyOcGo8=";
+    hash = "sha256-oU3CEO/NYIghqkctn7jo0DXSm2iZOBkUe8KQqKwiRHI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     requests
@@ -43,9 +42,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    aio = [
-      aiohttp
-    ];
+    aio = [ aiohttp ];
   };
 
   nativeCheckInputs = [
@@ -64,9 +61,7 @@ buildPythonPackage rec {
     export PYTHONPATH=tests/testserver_tests/coretestserver:$PYTHONPATH
   '';
 
-  pytestFlagsArray = [
-    "tests/"
-  ];
+  pytestFlagsArray = [ "tests/" ];
 
   # disable tests which touch network
   disabledTests = [
@@ -77,12 +72,10 @@ buildPythonPackage rec {
     "timeout"
     "test_sync_transport_short_read_download_stream"
     "test_aio_transport_short_read_download_stream"
-  # disable 8 tests failing on some darwin machines with errors:
-  # azure.core.polling.base_polling.BadStatus: Invalid return status 403 for 'GET' operation
-  # azure.core.exceptions.HttpResponseError: Operation returned an invalid status 'Forbidden'
-  ] ++ lib.optionals stdenv.isDarwin [
-    "location_polling_fail"
-  ];
+    # disable 8 tests failing on some darwin machines with errors:
+    # azure.core.polling.base_polling.BadStatus: Invalid return status 403 for 'GET' operation
+    # azure.core.exceptions.HttpResponseError: Operation returned an invalid status 'Forbidden'
+  ] ++ lib.optionals stdenv.isDarwin [ "location_polling_fail" ];
 
   disabledTestPaths = [
     # requires testing modules which aren't published, and likely to create cyclic dependencies
diff --git a/pkgs/development/python-modules/azure-cosmos/default.nix b/pkgs/development/python-modules/azure-cosmos/default.nix
index df687eb52ac52..3b593399469e6 100644
--- a/pkgs/development/python-modules/azure-cosmos/default.nix
+++ b/pkgs/development/python-modules/azure-cosmos/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "azure-cosmos";
-  version = "4.6.0";
+  version = "4.7.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2uxqwgHGRzsJK2Ku5x44G+62w6jcNhJJgytwSMTwYeI=";
+    hash = "sha256-ctcUAzE0ZWMCouiVfEuTWQZzvSiLDKYMsSPjSK6ZokE=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/azure-cosmosdb-nspkg/default.nix b/pkgs/development/python-modules/azure-cosmosdb-nspkg/default.nix
index f256d8d5b4499..f11653ef6d23e 100644
--- a/pkgs/development/python-modules/azure-cosmosdb-nspkg/default.nix
+++ b/pkgs/development/python-modules/azure-cosmosdb-nspkg/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, azure-nspkg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  azure-nspkg,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     sha256 = "acf691e692818d9a65c653c7a3485eb8e35c0bdc496bba652e5ea3905ba09cd8";
   };
 
-  propagatedBuildInputs = [
-    azure-nspkg
-  ];
+  propagatedBuildInputs = [ azure-nspkg ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-cosmosdb-table/default.nix b/pkgs/development/python-modules/azure-cosmosdb-table/default.nix
index 42c81a96ff6cd..3f68e661f6c03 100644
--- a/pkgs/development/python-modules/azure-cosmosdb-table/default.nix
+++ b/pkgs/development/python-modules/azure-cosmosdb-table/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cryptography
-, azure-common
-, azure-storage-common
-, azure-cosmosdb-nspkg
-, futures ? null
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cryptography,
+  azure-common,
+  azure-storage-common,
+  azure-cosmosdb-nspkg,
+  futures ? null,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     azure-common
     azure-storage-common
     azure-cosmosdb-nspkg
-  ] ++ lib.optionals (!isPy3k) [
-    futures
-  ];
+  ] ++ lib.optionals (!isPy3k) [ futures ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-data-tables/default.nix b/pkgs/development/python-modules/azure-data-tables/default.nix
index 42b8b1edb55d0..c9b61bcb57723 100644
--- a/pkgs/development/python-modules/azure-data-tables/default.nix
+++ b/pkgs/development/python-modules/azure-data-tables/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, azure-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
-, typing-extensions
-, yarl
+{
+  lib,
+  azure-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  typing-extensions,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.data.tables"
-  ];
+  pythonImportsCheck = [ "azure.data.tables" ];
 
   meta = with lib; {
     description = "NoSQL data storage service that can be accessed from anywhere";
diff --git a/pkgs/development/python-modules/azure-datalake-store/default.nix b/pkgs/development/python-modules/azure-datalake-store/default.nix
index 7dcf5c8b73988..2a5ad27ee8c1c 100644
--- a/pkgs/development/python-modules/azure-datalake-store/default.nix
+++ b/pkgs/development/python-modules/azure-datalake-store/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, adal
-, azure-common
-, buildPythonPackage
-, fetchPypi
-, msal
-, pythonOlder
-, requests
+{
+  lib,
+  adal,
+  azure-common,
+  buildPythonPackage,
+  fetchPypi,
+  msal,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-eventgrid/default.nix b/pkgs/development/python-modules/azure-eventgrid/default.nix
index c7246ffe9d850..786156d4c118f 100644
--- a/pkgs/development/python-modules/azure-eventgrid/default.nix
+++ b/pkgs/development/python-modules/azure-eventgrid/default.nix
@@ -1,28 +1,27 @@
-{ lib
-, azure-common
-, azure-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
-, setuptools
+{
+  lib,
+  azure-common,
+  azure-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "azure-eventgrid";
-  version = "4.19.0";
+  version = "4.20.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-a9fVQBbMo6Zwdp6WTYKiQBlqJcQRs+nxqKqBVcPbBew=";
+    hash = "sha256-we2rkHabxOei+wogN88EVXVNUK95NnTAiz/sIpMkjEw=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     azure-common
@@ -33,12 +32,10 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.eventgrid"
-  ];
+  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";
+    description = "Fully-managed intelligent event routing service that allows for uniform event consumption using a publish-subscribe model";
     homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/eventgrid/azure-eventgrid";
     changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-eventgrid_${version}/sdk/eventgrid/azure-eventgrid/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/azure-eventhub/default.nix b/pkgs/development/python-modules/azure-eventhub/default.nix
index 91203ed642047..6fc221c965f5c 100644
--- a/pkgs/development/python-modules/azure-eventhub/default.nix
+++ b/pkgs/development/python-modules/azure-eventhub/default.nix
@@ -1,27 +1,26 @@
-{ lib
-, azure-core
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  azure-core,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "azure-eventhub";
-  version = "5.11.7";
+  version = "5.12.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-C0Ywon7jrAxEjD8jdSHV3K71qKGnJBQjUGwEY3oKRLA=";
+    hash = "sha256-DaMLBRLFLqInuKR2sYH/wH0gIiMRF2xxBHuv1HW4G44=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     azure-core
diff --git a/pkgs/development/python-modules/azure-functions-devops-build/default.nix b/pkgs/development/python-modules/azure-functions-devops-build/default.nix
index aa6e291035785..e7e4cf570cb8e 100644
--- a/pkgs/development/python-modules/azure-functions-devops-build/default.nix
+++ b/pkgs/development/python-modules/azure-functions-devops-build/default.nix
@@ -1,7 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, jinja2
-, msrest
-, vsts
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jinja2,
+  msrest,
+  vsts,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +20,11 @@ buildPythonPackage rec {
     sha256 = "1slc7jd92v9q1qg1yacnrpi2a7hi7iw61wzbzfd6wx9q63pw9yqi";
   };
 
-  propagatedBuildInputs = [ jinja2 msrest vsts ];
+  propagatedBuildInputs = [
+    jinja2
+    msrest
+    vsts
+  ];
 
   # circular dependency with azure-cli-core
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-graphrbac/default.nix b/pkgs/development/python-modules/azure-graphrbac/default.nix
index 1c26d5e6b29a0..412838ef7fc5f 100644
--- a/pkgs/development/python-modules/azure-graphrbac/default.nix
+++ b/pkgs/development/python-modules/azure-graphrbac/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-identity/default.nix b/pkgs/development/python-modules/azure-identity/default.nix
index 18e21134a8dbb..6f89cacb08bdc 100644
--- a/pkgs/development/python-modules/azure-identity/default.nix
+++ b/pkgs/development/python-modules/azure-identity/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, azure-core
-, cryptography
-, msal
-, msal-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  azure-core,
+  cryptography,
+  msal,
+  msal-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "azure-identity";
-  version = "1.16.0";
+  version = "1.17.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-b/HWZ83Ngdoc6rQvgKC+Y8qEZin1GKki9zF6fjyEThs=";
+    hash = "sha256-oRaPIjstf6OWg2K3iv/RV6Hzdy8xCozc6IPMUVxsiZg=";
   };
 
   propagatedBuildInputs = [
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     msal-extensions
   ];
 
-  pythonImportsCheck = [
-    "azure.identity"
-  ];
+  pythonImportsCheck = [ "azure.identity" ];
 
   # Requires checkout from mono-repo and a mock account:
   # https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/identity/tests.yml
diff --git a/pkgs/development/python-modules/azure-keyvault-administration/default.nix b/pkgs/development/python-modules/azure-keyvault-administration/default.nix
index a890e435508fc..e059b2fb6e053 100644
--- a/pkgs/development/python-modules/azure-keyvault-administration/default.nix
+++ b/pkgs/development/python-modules/azure-keyvault-administration/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, azure-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  azure-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-ems2y59UTzV1D/L6lMg7l7PvIMH+G0JOpoAY7ucD8d8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     azure-core
@@ -33,13 +32,9 @@ buildPythonPackage rec {
   # Tests require checkout from mono-repo
   doCheck = false;
 
-  pythonNamespaces = [
-    "azure.keyvault"
-  ];
+  pythonNamespaces = [ "azure.keyvault" ];
 
-  pythonImportsCheck = [
-    "azure.keyvault.administration"
-  ];
+  pythonImportsCheck = [ "azure.keyvault.administration" ];
 
   meta = with lib; {
     description = "Microsoft Azure Key Vault Administration Client Library for Python";
diff --git a/pkgs/development/python-modules/azure-keyvault-certificates/default.nix b/pkgs/development/python-modules/azure-keyvault-certificates/default.nix
index e45f1b241517b..77bfa1ea25a03 100644
--- a/pkgs/development/python-modules/azure-keyvault-certificates/default.nix
+++ b/pkgs/development/python-modules/azure-keyvault-certificates/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, azure-common
-, azure-core
-, isodate
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  azure-common,
+  azure-core,
+  isodate,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-xWEnPkQCwlEUhzSGyYv6GyxHiGIp1BAOh9rxAO4Edyg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     azure-common
@@ -32,16 +31,12 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  pythonNamespaces = [
-    "azure.keyvault"
-  ];
+  pythonNamespaces = [ "azure.keyvault" ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.keyvault.certificates"
-  ];
+  pythonImportsCheck = [ "azure.keyvault.certificates" ];
 
   meta = with lib; {
     description = "Microsoft Azure Key Vault Certificates Client Library for Python";
diff --git a/pkgs/development/python-modules/azure-keyvault-nspkg/default.nix b/pkgs/development/python-modules/azure-keyvault-nspkg/default.nix
index f060c77edc16a..813b0d51d04c0 100644
--- a/pkgs/development/python-modules/azure-keyvault-nspkg/default.nix
+++ b/pkgs/development/python-modules/azure-keyvault-nspkg/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
 
-# pythonPackages
-, azure-nspkg
+  # pythonPackages
+  azure-nspkg,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     sha256 = "0hdnd6124hx7s16z1pssmq5m5mqqqz8s38ixl9aayv4wmf5bhs5c";
   };
 
-  propagatedBuildInputs = [
-    azure-nspkg
-  ];
+  propagatedBuildInputs = [ azure-nspkg ];
 
   # Just a namespace package, no tests exist:
   #   https://github.com/Azure/azure-sdk-for-python/blob/master/sdk/keyvault/tests.yml
@@ -29,8 +28,6 @@ buildPythonPackage rec {
     description = "Microsoft Azure Key Vault Namespace Package [Internal]";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [
-      kamadorueda
-    ];
+    maintainers = with maintainers; [ kamadorueda ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-keyvault-secrets/default.nix b/pkgs/development/python-modules/azure-keyvault-secrets/default.nix
index 56004efa76b63..795ac2e8978a1 100644
--- a/pkgs/development/python-modules/azure-keyvault-secrets/default.nix
+++ b/pkgs/development/python-modules/azure-keyvault-secrets/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, azure-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  azure-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-VjbAodiiDjxXmcs8z/1Ovz8NGst8rpUmhhgzr4sP6BQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     azure-core
@@ -30,9 +29,7 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  pythonNamespaces = [
-    "azure.keyvault"
-  ];
+  pythonNamespaces = [ "azure.keyvault" ];
 
   # Tests require checkout from mono-repo
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-keyvault/default.nix b/pkgs/development/python-modules/azure-keyvault/default.nix
index 4fedfd4cbf551..e8959dd5f6609 100644
--- a/pkgs/development/python-modules/azure-keyvault/default.nix
+++ b/pkgs/development/python-modules/azure-keyvault/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, azure-keyvault-certificates
-, azure-keyvault-keys
-, azure-keyvault-secrets
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  azure-keyvault-certificates,
+  azure-keyvault-keys,
+  azure-keyvault-secrets,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-loganalytics/default.nix b/pkgs/development/python-modules/azure-loganalytics/default.nix
index 7c18ed7ceb5f2..78879294d9e5a 100644
--- a/pkgs/development/python-modules/azure-loganalytics/default.nix
+++ b/pkgs/development/python-modules/azure-loganalytics/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, azure-common
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  azure-common,
 }:
 
 buildPythonPackage rec {
@@ -30,6 +31,9 @@ buildPythonPackage rec {
     description = "This is the Microsoft Azure Log Analytics Client Library";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ maxwilson jonringer ];
+    maintainers = with maintainers; [
+      maxwilson
+      jonringer
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-mgmt-advisor/default.nix b/pkgs/development/python-modules/azure-mgmt-advisor/default.nix
index 2a75de7bf4938..e73f36518d56d 100644
--- a/pkgs/development/python-modules/azure-mgmt-advisor/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-advisor/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, isPy3k
-, azure-mgmt-core
-, azure-mgmt-nspkg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  isPy3k,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     msrestazure
     azure-common
     azure-mgmt-core
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
-  ];
+  ] ++ lib.optionals (!isPy3k) [ azure-mgmt-nspkg ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-mgmt-appcontainers/default.nix b/pkgs/development/python-modules/azure-mgmt-appcontainers/default.nix
index 624c9735b6ac7..8d66700b5413c 100644
--- a/pkgs/development/python-modules/azure-mgmt-appcontainers/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-appcontainers/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, azure-common
-, azure-mgmt-core
-, isodate
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  azure-common,
+  azure-mgmt-core,
+  isodate,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -24,16 +25,12 @@ buildPythonPackage rec {
     azure-common
     azure-mgmt-core
     isodate
-  ]  ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   # no tests included
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.mgmt.appcontainers"
-  ];
+  pythonImportsCheck = [ "azure.mgmt.appcontainers" ];
 
   meta = with lib; {
     description = "Microsoft Azure Appcontainers Management Client Library for Python";
diff --git a/pkgs/development/python-modules/azure-mgmt-applicationinsights/default.nix b/pkgs/development/python-modules/azure-mgmt-applicationinsights/default.nix
index 352d719ddadd1..053211a5ac47d 100644
--- a/pkgs/development/python-modules/azure-mgmt-applicationinsights/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-applicationinsights/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     azure-mgmt-core
     msrest
     msrestazure
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
-  ];
+  ] ++ lib.optionals (!isPy3k) [ azure-mgmt-nspkg ];
 
   pythonNamespaces = [ "azure.mgmt" ];
 
@@ -38,6 +37,9 @@ buildPythonPackage rec {
     description = "This is the Microsoft Azure Application Insights Management Client Library";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ jonringer maxwilson ];
+    maintainers = with maintainers; [
+      jonringer
+      maxwilson
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-mgmt-authorization/default.nix b/pkgs/development/python-modules/azure-mgmt-authorization/default.nix
index 89ce5b1a40124..52c94964f570d 100644
--- a/pkgs/development/python-modules/azure-mgmt-authorization/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-authorization/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     msrestazure
     azure-common
     azure-mgmt-core
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
-  ];
+  ] ++ lib.optionals (!isPy3k) [ azure-mgmt-nspkg ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-mgmt-batch/default.nix b/pkgs/development/python-modules/azure-mgmt-batch/default.nix
index 64cfffff110ae..e6020399fdf8d 100644
--- a/pkgs/development/python-modules/azure-mgmt-batch/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-batch/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
-, setuptools
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-/JSIGmrNuKlTPzcbb3stPq6heJ65VQFLJKkI1t/nWZE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     azure-common
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Tests are only available in mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.mgmt.batch"
-  ];
+  pythonImportsCheck = [ "azure.mgmt.batch" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure Batch Management Client Library";
diff --git a/pkgs/development/python-modules/azure-mgmt-batchai/default.nix b/pkgs/development/python-modules/azure-mgmt-batchai/default.nix
index fd0a7c019a3fe..0fa160b6adc00 100644
--- a/pkgs/development/python-modules/azure-mgmt-batchai/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-batchai/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
-, msrestazure
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
+  msrestazure,
 }:
 
 buildPythonPackage rec {
@@ -23,7 +24,7 @@ buildPythonPackage rec {
     azure-common
     azure-mgmt-core
     azure-mgmt-nspkg
- ];
+  ];
 
   pythonNamespaces = [ "azure.mgmt" ];
 
diff --git a/pkgs/development/python-modules/azure-mgmt-billing/default.nix b/pkgs/development/python-modules/azure-mgmt-billing/default.nix
index 7bf243e3edbbc..db243f5857594 100644
--- a/pkgs/development/python-modules/azure-mgmt-billing/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-billing/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-billing";
-  version = "6.0.0"; #pypi's 0.2.0 doesn't build ootb
+  version = "6.0.0"; # pypi's 0.2.0 doesn't build ootb
   format = "setuptools";
 
   src = fetchPypi {
diff --git a/pkgs/development/python-modules/azure-mgmt-cdn/default.nix b/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
index 7c53f86ca6c4c..c98f7f9f36aab 100644
--- a/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-cdn/default.nix
@@ -1,23 +1,23 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-cdn";
-  version = "13.1.0";
+  version = "13.1.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
-    pname = "azure_mgmt_cdn";
-    inherit version;
-    hash = "sha256-Igpr2snnXkwAyEGlnY3j7JAQ4LnhQS3snmwka2GeO/I=";
+    inherit pname version;
+    hash = "sha256-RmMwTzG2Zy3sMgx857qXFcK5nn2LaEs3XwtO/9qQIQw=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix b/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix
index 25dfe383e35dd..a4052e739880b 100644
--- a/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-cognitiveservices/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, azure-common
-, azure-mgmt-core
-, msrestazure
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  azure-common,
+  azure-mgmt-core,
+  msrestazure,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-mgmt-commerce/default.nix b/pkgs/development/python-modules/azure-mgmt-commerce/default.nix
index 035f3f6c682c8..c8a189bb8c398 100644
--- a/pkgs/development/python-modules/azure-mgmt-commerce/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-commerce/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
 }:
 
 buildPythonPackage rec {
@@ -42,6 +43,9 @@ buildPythonPackage rec {
     description = "This is the Microsoft Azure Commerce Management Client Library";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ maxwilson jonringer ];
+    maintainers = with maintainers; [
+      maxwilson
+      jonringer
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-mgmt-common/default.nix b/pkgs/development/python-modules/azure-mgmt-common/default.nix
index 5f0390708c7d9..cecaf2dd2bd45 100644
--- a/pkgs/development/python-modules/azure-mgmt-common/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-common/default.nix
@@ -1,12 +1,13 @@
-{ pkgs
-, buildPythonPackage
-, fetchPypi
-, python
-, azure-common
-, azure-mgmt-nspkg
-, requests
-, msrestazure
-, isPy3k
+{
+  pkgs,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  azure-common,
+  azure-mgmt-nspkg,
+  requests,
+  msrestazure,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -38,6 +39,9 @@ buildPythonPackage rec {
     description = "This is the Microsoft Azure Resource Management common code";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ olcai maxwilson ];
+    maintainers = with maintainers; [
+      olcai
+      maxwilson
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-mgmt-consumption/default.nix b/pkgs/development/python-modules/azure-mgmt-consumption/default.nix
index 5156763d55f05..b300fe7f17b6f 100644
--- a/pkgs/development/python-modules/azure-mgmt-consumption/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-consumption/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix b/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix
index 06a9c072f279b..3b0c9ecfe20a4 100644
--- a/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-containerinstance/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
   # has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.mgmt.containerinstance"
-  ];
+  pythonImportsCheck = [ "azure.mgmt.containerinstance" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure Container Instance Client Library";
diff --git a/pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix b/pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix
index 40e86961a8927..9604f102ec382 100644
--- a/pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-containerregistry/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, azure-common
-, azure-mgmt-core
-, isodate
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  azure-common,
+  azure-mgmt-core,
+  isodate,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
index 94417bc47ec75..c03cf2582452d 100644
--- a/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-containerservice/default.nix
@@ -1,31 +1,30 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
-, setuptools
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-containerservice";
-  version = "29.1.0";
+  version = "30.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-RohxeLsQNZM/BvpjEhwaydTFhx8gKuK4a8Svbh47NU8=";
+    hash = "sha256-bGLmrFkONP7dc5/iSzGzdQcToBRhZpbqjUTHvMgcBrc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     azure-common
     azure-mgmt-core
     isodate
@@ -34,9 +33,7 @@ buildPythonPackage rec {
   # has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.mgmt.containerservice"
-  ];
+  pythonImportsCheck = [ "azure.mgmt.containerservice" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure Container Service Management Client Library";
diff --git a/pkgs/development/python-modules/azure-mgmt-core/default.nix b/pkgs/development/python-modules/azure-mgmt-core/default.nix
index 67e7a4bca229e..ef3aedee0dc5c 100644
--- a/pkgs/development/python-modules/azure-mgmt-core/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-core/default.nix
@@ -1,8 +1,9 @@
-{ pkgs
-, buildPythonPackage
-, fetchPypi
-, azure-core
-, typing-extensions
+{
+  pkgs,
+  buildPythonPackage,
+  fetchPypi,
+  azure-core,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -26,7 +27,10 @@ buildPythonPackage rec {
   # not included
   doCheck = false;
 
-  pythonImportsCheck = [ "azure.mgmt.core" "azure.core" ];
+  pythonImportsCheck = [
+    "azure.mgmt.core"
+    "azure.core"
+  ];
 
   meta = with pkgs.lib; {
     description = "Microsoft Azure Management Core Library for Python";
diff --git a/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix b/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
index 0448801856be1..01ef04a5d2315 100644
--- a/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-cosmosdb/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-cosmosdb";
-  version = "9.4.0";
+  version = "9.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-yruCHNRGsJ5z0kwxwoemD8w2I0iPH/qTNcaSJn55w0E=";
+    hash = "sha256-XSGhl94Is2OOCa2I4y2iEfe7WYt9fP7kjWHVfWmz7dk=";
   };
 
   propagatedBuildInputs = [
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.mgmt.cosmosdb"
-  ];
+  pythonImportsCheck = [ "azure.mgmt.cosmosdb" ];
 
   meta = with lib; {
     description = "Module to work with the Microsoft Azure Cosmos DB Management";
diff --git a/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix b/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
index 7f760eecf397e..3c511be3ca531 100644
--- a/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-datafactory/default.nix
@@ -1,28 +1,27 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
-, setuptools
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-datafactory";
-  version = "6.1.0";
+  version = "8.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9WMsfVh9ca/nbbTPVuj1BwhIv6kGZlPbTzqzhvadBps=";
+    hash = "sha256-CL1Z50yjbEkncmKT4FhJ7UaOiUtw1CD85TVEJ7KHjQ4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     azure-common
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.mgmt.datafactory"
-  ];
+  pythonImportsCheck = [ "azure.mgmt.datafactory" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure Data Factory Management Client Library";
diff --git a/pkgs/development/python-modules/azure-mgmt-datalake-analytics/default.nix b/pkgs/development/python-modules/azure-mgmt-datalake-analytics/default.nix
index 83d6e314987fc..1c1a1d05b2699 100644
--- a/pkgs/development/python-modules/azure-mgmt-datalake-analytics/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-datalake-analytics/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrestazure
-, azure-common
-, azure-mgmt-datalake-nspkg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrestazure,
+  azure-common,
+  azure-mgmt-datalake-nspkg,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-mgmt-datalake-nspkg/default.nix b/pkgs/development/python-modules/azure-mgmt-datalake-nspkg/default.nix
index 8723830d4105b..322987f2039af 100644
--- a/pkgs/development/python-modules/azure-mgmt-datalake-nspkg/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-datalake-nspkg/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, azure-mgmt-nspkg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  azure-mgmt-nspkg,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     sha256 = "deb192ba422f8b3ec272ce4e88736796f216f28ea5b03f28331d784b7a3f4880";
   };
 
-  propagatedBuildInputs = [
-    azure-mgmt-nspkg
-  ];
+  propagatedBuildInputs = [ azure-mgmt-nspkg ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-mgmt-datalake-store/default.nix b/pkgs/development/python-modules/azure-mgmt-datalake-store/default.nix
index 2ab479b3f7c2f..b790482ee7aa0 100644
--- a/pkgs/development/python-modules/azure-mgmt-datalake-store/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-datalake-store/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrestazure
-, azure-common
-, azure-mgmt-datalake-nspkg
-, azure-mgmt-core
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrestazure,
+  azure-common,
+  azure-mgmt-datalake-nspkg,
+  azure-mgmt-core,
 }:
 
 buildPythonPackage rec {
@@ -34,6 +35,9 @@ buildPythonPackage rec {
     description = "This is the Microsoft Azure Data Lake Store Management Client Library";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ jonringer maxwilson ];
+    maintainers = with maintainers; [
+      jonringer
+      maxwilson
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-mgmt-datamigration/default.nix b/pkgs/development/python-modules/azure-mgmt-datamigration/default.nix
index fe57d5d26cc6b..f15bcca45128d 100644
--- a/pkgs/development/python-modules/azure-mgmt-datamigration/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-datamigration/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-nspkg
-, azure-mgmt-core
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-nspkg,
+  azure-mgmt-core,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     msrestazure
     azure-common
     azure-mgmt-core
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
-  ];
+  ] ++ lib.optionals (!isPy3k) [ azure-mgmt-nspkg ];
 
   pythonNamespaces = [ "azure.mgmt" ];
 
@@ -38,6 +37,9 @@ buildPythonPackage rec {
     description = "This is the Microsoft Azure Data Migration Client Library";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ jonringer maxwilson ];
+    maintainers = with maintainers; [
+      jonringer
+      maxwilson
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-mgmt-devspaces/default.nix b/pkgs/development/python-modules/azure-mgmt-devspaces/default.nix
index 9a2cf7c027097..196fadd01e1ee 100644
--- a/pkgs/development/python-modules/azure-mgmt-devspaces/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-devspaces/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrestazure
-, azure-common
-, azure-mgmt-nspkg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrestazure,
+  azure-common,
+  azure-mgmt-nspkg,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-mgmt-devtestlabs/default.nix b/pkgs/development/python-modules/azure-mgmt-devtestlabs/default.nix
index 02b21b3dfd351..57717302637b4 100644
--- a/pkgs/development/python-modules/azure-mgmt-devtestlabs/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-devtestlabs/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     msrestazure
     azure-common
     azure-mgmt-core
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
-  ];
+  ] ++ lib.optionals (!isPy3k) [ azure-mgmt-nspkg ];
 
   pythonNamespaces = [ "azure.mgmt" ];
 
@@ -38,6 +37,9 @@ buildPythonPackage rec {
     description = "This is the Microsoft Azure DevTestLabs Management Client Library";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ jonringer maxwilson ];
+    maintainers = with maintainers; [
+      jonringer
+      maxwilson
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-mgmt-dns/default.nix b/pkgs/development/python-modules/azure-mgmt-dns/default.nix
index bc8d9eb9e1155..f1031a1db42fc 100644
--- a/pkgs/development/python-modules/azure-mgmt-dns/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-dns/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
 }:
 
 buildPythonPackage rec {
@@ -35,6 +36,9 @@ buildPythonPackage rec {
     description = "This is the Microsoft Azure DNS Management Client Library";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ jonringer maxwilson ];
+    maintainers = with maintainers; [
+      jonringer
+      maxwilson
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix b/pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix
index 98c897aeabff7..a04027b66f707 100644
--- a/pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-eventgrid/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
   # has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.mgmt.eventgrid"
-  ];
+  pythonImportsCheck = [ "azure.mgmt.eventgrid" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure EventGrid Management Client Library";
diff --git a/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix b/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
index 92bb1bf301a82..7ce3bf66c5d6b 100644
--- a/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-eventhub/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix b/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix
index 7bd4c36696326..02457ba264ef3 100644
--- a/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-hanaonazure/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     msrestazure
     azure-common
     azure-mgmt-core
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
-  ];
+  ] ++ lib.optionals (!isPy3k) [ azure-mgmt-nspkg ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-mgmt-imagebuilder/default.nix b/pkgs/development/python-modules/azure-mgmt-imagebuilder/default.nix
index 50341f66402f0..2f254d6f24751 100644
--- a/pkgs/development/python-modules/azure-mgmt-imagebuilder/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-imagebuilder/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
-, setuptools
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-PzJdaIthJcL6kmgeWxjqQHugMtW+P3wHJEBtcz5sFO8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     azure-common
diff --git a/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix b/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix
index 660b266207571..4d7ffa9c36f45 100644
--- a/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-iotcentral/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     azure-mgmt-core
     msrest
     msrestazure
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
-  ];
+  ] ++ lib.optionals (!isPy3k) [ azure-mgmt-nspkg ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-mgmt-iothub/default.nix b/pkgs/development/python-modules/azure-mgmt-iothub/default.nix
index 8890f65af3af1..fbf2da2f1c139 100644
--- a/pkgs/development/python-modules/azure-mgmt-iothub/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-iothub/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -24,16 +25,12 @@ buildPythonPackage rec {
     azure-common
     azure-mgmt-core
     isodate
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.mgmt.iothub"
-  ];
+  pythonImportsCheck = [ "azure.mgmt.iothub" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure IoTHub Management Client Library";
diff --git a/pkgs/development/python-modules/azure-mgmt-iothubprovisioningservices/default.nix b/pkgs/development/python-modules/azure-mgmt-iothubprovisioningservices/default.nix
index df0a7efe8dbfb..36ee7883f1ca6 100644
--- a/pkgs/development/python-modules/azure-mgmt-iothubprovisioningservices/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-iothubprovisioningservices/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
 }:
 
 buildPythonPackage rec {
@@ -36,6 +37,9 @@ buildPythonPackage rec {
     description = "This is the Microsoft Azure IoTHub Provisioning Services Client Library";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ jonringer maxwilson ];
+    maintainers = with maintainers; [
+      jonringer
+      maxwilson
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix b/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
index 9b954760fe1ca..7bd05198e4ea4 100644
--- a/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-keyvault/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     isodate
   ];
 
-  pythonNamespaces = [
-    "azure.mgmt"
-  ];
+  pythonNamespaces = [ "azure.mgmt" ];
 
   # Module has no tests
   doCheck = false;
@@ -37,6 +36,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-keyvault_${version}/sdk/keyvault/azure-mgmt-keyvault/CHANGELOG.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ jonringer maxwilson ];
+    maintainers = with maintainers; [
+      jonringer
+      maxwilson
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix b/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
index 499b4362f02c3..84e8197bbc3c0 100644
--- a/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-loganalytics/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-mgmt-logic/default.nix b/pkgs/development/python-modules/azure-mgmt-logic/default.nix
index fc22b57d98a87..c3e74008da920 100644
--- a/pkgs/development/python-modules/azure-mgmt-logic/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-logic/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.mgmt.logic"
-  ];
+  pythonImportsCheck = [ "azure.mgmt.logic" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure Logic Apps Management Client Library";
diff --git a/pkgs/development/python-modules/azure-mgmt-machinelearningcompute/default.nix b/pkgs/development/python-modules/azure-mgmt-machinelearningcompute/default.nix
index fa6e67196260b..118ba17016027 100644
--- a/pkgs/development/python-modules/azure-mgmt-machinelearningcompute/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-machinelearningcompute/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-nspkg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-nspkg,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-mgmt-managementgroups/default.nix b/pkgs/development/python-modules/azure-mgmt-managementgroups/default.nix
index 22df23f03cd32..52c5f380740a8 100644
--- a/pkgs/development/python-modules/azure-mgmt-managementgroups/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-managementgroups/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     msrestazure
     azure-common
     azure-mgmt-core
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
-  ];
+  ] ++ lib.optionals (!isPy3k) [ azure-mgmt-nspkg ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-mgmt-managementpartner/default.nix b/pkgs/development/python-modules/azure-mgmt-managementpartner/default.nix
index 5d91873e96220..ff45777f89704 100644
--- a/pkgs/development/python-modules/azure-mgmt-managementpartner/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-managementpartner/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-mgmt-maps/default.nix b/pkgs/development/python-modules/azure-mgmt-maps/default.nix
index 81b216804ae4f..2f7dbd1209a22 100644
--- a/pkgs/development/python-modules/azure-mgmt-maps/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-maps/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
-, typing-extensions
-, msrest
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  typing-extensions,
+  msrest,
 }:
 
 buildPythonPackage rec {
@@ -26,20 +27,14 @@ buildPythonPackage rec {
     azure-common
     azure-mgmt-core
     msrest
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
-  pythonNamespaces = [
-    "azure.mgmt"
-  ];
+  pythonNamespaces = [ "azure.mgmt" ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.mgmt.maps"
-  ];
+  pythonImportsCheck = [ "azure.mgmt.maps" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure Maps Client Library";
diff --git a/pkgs/development/python-modules/azure-mgmt-marketplaceordering/default.nix b/pkgs/development/python-modules/azure-mgmt-marketplaceordering/default.nix
index d07dd7a1cfe7a..4f2dd1ff04a1e 100644
--- a/pkgs/development/python-modules/azure-mgmt-marketplaceordering/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-marketplaceordering/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-nspkg
-, isPy3k
-, azure-mgmt-core
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-nspkg,
+  isPy3k,
+  azure-mgmt-core,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     msrestazure
     azure-common
     azure-mgmt-core
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
-  ];
+  ] ++ lib.optionals (!isPy3k) [ azure-mgmt-nspkg ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-mgmt-media/default.nix b/pkgs/development/python-modules/azure-mgmt-media/default.nix
index a9c47aca1eadf..473fbf0700792 100644
--- a/pkgs/development/python-modules/azure-mgmt-media/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-media/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
   # has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.mgmt.media"
-  ];
+  pythonImportsCheck = [ "azure.mgmt.media" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure Media Services Client Library";
diff --git a/pkgs/development/python-modules/azure-mgmt-monitor/default.nix b/pkgs/development/python-modules/azure-mgmt-monitor/default.nix
index e4d0ae9b288fe..1a75b23ccc856 100644
--- a/pkgs/development/python-modules/azure-mgmt-monitor/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-monitor/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +25,9 @@ buildPythonPackage rec {
     isodate
     azure-common
     azure-mgmt-core
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
-  pythonNamespaces = [
-    "azure.mgmt"
-  ];
+  pythonNamespaces = [ "azure.mgmt" ];
 
   # Module has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-mgmt-msi/default.nix b/pkgs/development/python-modules/azure-mgmt-msi/default.nix
index 8351622cd42fc..5c2fb8aeb572e 100644
--- a/pkgs/development/python-modules/azure-mgmt-msi/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-msi/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, msrest
-, azure-common
-, azure-mgmt-core
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  msrest,
+  azure-common,
+  azure-mgmt-core,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-mgmt-netapp/default.nix b/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
index eaa6df20a744b..1fe67e96717be 100644
--- a/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-netapp/default.nix
@@ -1,25 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, azure-common
-, azure-mgmt-core
-, isodate
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  azure-common,
+  azure-mgmt-core,
+  isodate,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-netapp";
-  version = "12.0.0";
-  format = "setuptools";
+  version = "13.0.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-bC7HZzIeUK4E6HcQgguB/sDr1G1kPkS/A43xZ6pBpyw=";
+    hash = "sha256-R322hzij1kcnrwxMClOzta40cMnd4w6bGnp5+p2pMQ8=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     azure-common
     azure-mgmt-core
     isodate
diff --git a/pkgs/development/python-modules/azure-mgmt-network/default.nix b/pkgs/development/python-modules/azure-mgmt-network/default.nix
index d64d76abd1fe1..9df7aa588c35d 100644
--- a/pkgs/development/python-modules/azure-mgmt-network/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-network/default.nix
@@ -1,28 +1,27 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
-, setuptools
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-network";
-  version = "25.3.0";
+  version = "25.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-3OLK+xrg5WPgte/FN9yYp8Ctgk1CYeZL7XX3iBlt1cY=";
+    hash = "sha256-ozjmLYH9vwUPgCFDwoy5ZbB+3UOADvBQTN+muIVNdVQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     azure-common
@@ -33,19 +32,19 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonNamespaces = [
-    "azure.mgmt"
-  ];
+  pythonNamespaces = [ "azure.mgmt" ];
 
-  pythonImportsCheck = [
-    "azure.mgmt.network"
-  ];
+  pythonImportsCheck = [ "azure.mgmt.network" ];
 
   meta = with lib; {
     description = "Microsoft Azure SDK for Python";
     homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/network/azure-mgmt-network";
     changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-network_${version}/sdk/network/azure-mgmt-network/CHANGELOG.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ olcai maxwilson jonringer ];
+    maintainers = with maintainers; [
+      olcai
+      maxwilson
+      jonringer
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-mgmt-notificationhubs/default.nix b/pkgs/development/python-modules/azure-mgmt-notificationhubs/default.nix
index 75e7718f110b9..c28e754429d82 100644
--- a/pkgs/development/python-modules/azure-mgmt-notificationhubs/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-notificationhubs/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-mgmt-nspkg/default.nix b/pkgs/development/python-modules/azure-mgmt-nspkg/default.nix
index 6f5b8912f9a2b..27fa690bb52ec 100644
--- a/pkgs/development/python-modules/azure-mgmt-nspkg/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-nspkg/default.nix
@@ -1,7 +1,8 @@
-{ pkgs
-, buildPythonPackage
-, fetchPypi
-, azure-nspkg
+{
+  pkgs,
+  buildPythonPackage,
+  fetchPypi,
+  azure-nspkg,
 }:
 
 buildPythonPackage rec {
@@ -23,6 +24,9 @@ buildPythonPackage rec {
     description = "Microsoft Azure SDK for Python";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ olcai maxwilson ];
+    maintainers = with maintainers; [
+      olcai
+      maxwilson
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-mgmt-policyinsights/default.nix b/pkgs/development/python-modules/azure-mgmt-policyinsights/default.nix
index e92d7302d32cb..a7365e27bd8e9 100644
--- a/pkgs/development/python-modules/azure-mgmt-policyinsights/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-policyinsights/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     azure-mgmt-core
     msrest
     msrestazure
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
-  ];
+  ] ++ lib.optionals (!isPy3k) [ azure-mgmt-nspkg ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-mgmt-powerbiembedded/default.nix b/pkgs/development/python-modules/azure-mgmt-powerbiembedded/default.nix
index 9215d8955b911..664d6e905fa9b 100644
--- a/pkgs/development/python-modules/azure-mgmt-powerbiembedded/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-powerbiembedded/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-nspkg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-nspkg,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-mgmt-privatedns/default.nix b/pkgs/development/python-modules/azure-mgmt-privatedns/default.nix
index 2a89a0460cd8c..a1446f95426d3 100644
--- a/pkgs/development/python-modules/azure-mgmt-privatedns/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-privatedns/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, msrest
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  msrest,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     azure-mgmt-core
     isodate
     msrest
-  ]  ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   # no tests included
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-mgmt-rdbms/default.nix b/pkgs/development/python-modules/azure-mgmt-rdbms/default.nix
index c73ae220f09d6..dc10601bb6620 100644
--- a/pkgs/development/python-modules/azure-mgmt-rdbms/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-rdbms/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     azure-mgmt-core
     msrest
     msrestazure
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
-  ];
+  ] ++ lib.optionals (!isPy3k) [ azure-mgmt-nspkg ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-mgmt-recoveryservices/default.nix b/pkgs/development/python-modules/azure-mgmt-recoveryservices/default.nix
index 5f6377d54edd3..414fcce92ab10 100644
--- a/pkgs/development/python-modules/azure-mgmt-recoveryservices/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-recoveryservices/default.nix
@@ -1,39 +1,36 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-recoveryservices";
-  version = "2.5.0";
+  version = "3.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-XxowjEhYx5uD/4vY5hGSCSvcarmdbdc5Y2GLHciEurU=";
+    hash = "sha256-3yEt+t+8xlnDEjHD4XCqt8IRRNFysPiCaKsPWtjpWII=";
   };
 
   propagatedBuildInputs = [
     azure-common
     azure-mgmt-core
     isodate
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.mgmt.recoveryservices"
-  ];
+  pythonImportsCheck = [ "azure.mgmt.recoveryservices" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure Recovery Services Client Library";
diff --git a/pkgs/development/python-modules/azure-mgmt-redhatopenshift/default.nix b/pkgs/development/python-modules/azure-mgmt-redhatopenshift/default.nix
index fd6fe1b3e65bd..de5fa0d7faf37 100644
--- a/pkgs/development/python-modules/azure-mgmt-redhatopenshift/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-redhatopenshift/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -24,18 +25,14 @@ buildPythonPackage rec {
     isodate
     azure-common
     azure-mgmt-core
-  ]  ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   pythonNamespaces = "azure.mgmt";
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.mgmt.redhatopenshift"
-  ];
+  pythonImportsCheck = [ "azure.mgmt.redhatopenshift" ];
 
   meta = with lib; {
     description = "Microsoft Azure Red Hat Openshift Management Client Library for Python";
diff --git a/pkgs/development/python-modules/azure-mgmt-redis/default.nix b/pkgs/development/python-modules/azure-mgmt-redis/default.nix
index 4bfbc40d7a42c..b40de91c0ad6e 100644
--- a/pkgs/development/python-modules/azure-mgmt-redis/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-redis/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -24,16 +25,12 @@ buildPythonPackage rec {
     isodate
     azure-common
     azure-mgmt-core
-   ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.mgmt.redis"
-  ];
+  pythonImportsCheck = [ "azure.mgmt.redis" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure Redis Cache Management Client Library";
diff --git a/pkgs/development/python-modules/azure-mgmt-relay/default.nix b/pkgs/development/python-modules/azure-mgmt-relay/default.nix
index 9e6f2eb9f797d..ced59697c8e30 100644
--- a/pkgs/development/python-modules/azure-mgmt-relay/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-relay/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-mgmt-reservations/default.nix b/pkgs/development/python-modules/azure-mgmt-reservations/default.nix
index ee97aab67805e..d382ded7d8103 100644
--- a/pkgs/development/python-modules/azure-mgmt-reservations/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-reservations/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-mgmt-resource/default.nix b/pkgs/development/python-modules/azure-mgmt-resource/default.nix
index 648b22df38608..37e29ac970f0c 100644
--- a/pkgs/development/python-modules/azure-mgmt-resource/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-resource/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, azure-mgmt-core
-, azure-mgmt-common
-, msrest
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  azure-mgmt-core,
+  azure-mgmt-common,
+  msrest,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -29,18 +30,18 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonNamespaces = [
-    "azure.mgmt"
-  ];
+  pythonNamespaces = [ "azure.mgmt" ];
 
-  pythonImportsCheck = [
-    "azure.mgmt.resource"
-  ];
+  pythonImportsCheck = [ "azure.mgmt.resource" ];
 
   meta = with lib; {
     description = "Microsoft Azure SDK for Python";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ olcai maxwilson jonringer ];
+    maintainers = with maintainers; [
+      olcai
+      maxwilson
+      jonringer
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-mgmt-scheduler/default.nix b/pkgs/development/python-modules/azure-mgmt-scheduler/default.nix
index 306a7500114f7..57d67492ccafa 100644
--- a/pkgs/development/python-modules/azure-mgmt-scheduler/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-scheduler/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-nspkg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-nspkg,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-mgmt-search/default.nix b/pkgs/development/python-modules/azure-mgmt-search/default.nix
index 5ba74007734a0..ebdfda97592ab 100644
--- a/pkgs/development/python-modules/azure-mgmt-search/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-search/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -24,16 +25,12 @@ buildPythonPackage rec {
     azure-common
     azure-mgmt-core
     isodate
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.mgmt.search"
-  ];
+  pythonImportsCheck = [ "azure.mgmt.search" ];
 
   meta = with lib; {
     description = "This is the Microsoft Azure Search Management Client Library";
diff --git a/pkgs/development/python-modules/azure-mgmt-security/default.nix b/pkgs/development/python-modules/azure-mgmt-security/default.nix
index 60271f7c03819..e6e347513422c 100644
--- a/pkgs/development/python-modules/azure-mgmt-security/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-security/default.nix
@@ -1,30 +1,29 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
-, setuptools
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-security";
-  version = "6.0.0";
+  version = "7.0.0";
   fpyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zq/BhpiZBnEQvYMMXMmLybjzLY6oQMofaTsaX1Kl+LA=";
+    hash = "sha256-WRLu1+nTdY/cqNJuHcJrQZQ9xHAyCKEYQmbiwlLhrWY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     azure-common
     azure-mgmt-core
     isodate
@@ -40,7 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Microsoft Azure Security Center Management Client Library for Python";
-    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/security/azure-mgmt-security";
     changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-security_${version}/sdk/security/azure-mgmt-security/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
diff --git a/pkgs/development/python-modules/azure-mgmt-servicebus/default.nix b/pkgs/development/python-modules/azure-mgmt-servicebus/default.nix
index 182fa1599752b..1606e56cccdc1 100644
--- a/pkgs/development/python-modules/azure-mgmt-servicebus/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-servicebus/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix b/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix
index 1ba61f30fcfa1..916f785bf70be 100644
--- a/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-servicefabric/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
-, setuptools
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-oIQzBJVUQ2yQhEvIqWgg6INplITm/8mQMv0lcfjF99Y=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     isodate
@@ -30,9 +29,7 @@ buildPythonPackage rec {
     azure-mgmt-core
   ];
 
-  pythonNamespaces = [
-    "azure.mgmt"
-  ];
+  pythonNamespaces = [ "azure.mgmt" ];
 
   # Module has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-mgmt-servicefabricmanagedclusters/default.nix b/pkgs/development/python-modules/azure-mgmt-servicefabricmanagedclusters/default.nix
index 513018a1ecc2b..4152514643d67 100644
--- a/pkgs/development/python-modules/azure-mgmt-servicefabricmanagedclusters/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-servicefabricmanagedclusters/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-mgmt-servicelinker/default.nix b/pkgs/development/python-modules/azure-mgmt-servicelinker/default.nix
index 520ae24b32100..9e5405336b68f 100644
--- a/pkgs/development/python-modules/azure-mgmt-servicelinker/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-servicelinker/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, azure-common
-, azure-mgmt-core
-, msrest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  azure-common,
+  azure-mgmt-core,
+  msrest,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-mgmt-signalr/default.nix b/pkgs/development/python-modules/azure-mgmt-signalr/default.nix
index 2079cd8d0d98b..e40c1670747f9 100644
--- a/pkgs/development/python-modules/azure-mgmt-signalr/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-signalr/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-mgmt-sql/default.nix b/pkgs/development/python-modules/azure-mgmt-sql/default.nix
index c677f7e3cca09..83e45b54a9bbb 100644
--- a/pkgs/development/python-modules/azure-mgmt-sql/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-sql/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     msrestazure
     azure-common
     azure-mgmt-core
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
-  ];
+  ] ++ lib.optionals (!isPy3k) [ azure-mgmt-nspkg ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-mgmt-storage/default.nix b/pkgs/development/python-modules/azure-mgmt-storage/default.nix
index 5643ab8ce545f..4cc72e61d4597 100644
--- a/pkgs/development/python-modules/azure-mgmt-storage/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-storage/default.nix
@@ -1,35 +1,37 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, azure-mgmt-common
-, azure-mgmt-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  azure-mgmt-common,
+  azure-mgmt-core,
+  isodate,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-storage";
-  version = "21.1.0";
-  format = "setuptools";
+  version = "21.2.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-1tPA6RfJiLye0Eckd9PvP5CIYAnrHZenEZRPg3VjAWI=";
+    hash = "sha256-KHyYQLAb6TGBnUA9p+1SvWL9B3sFKd1HDm28T+3ksg0=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     azure-mgmt-common
     azure-mgmt-core
+    isodate
   ];
 
-  pythonNamespaces = [
-    "azure.mgmt"
-  ];
+  pythonNamespaces = [ "azure.mgmt" ];
 
-  pythonImportsCheck = [
-    "azure.mgmt.storage"
-  ];
+  pythonImportsCheck = [ "azure.mgmt.storage" ];
 
   # Module has no tests
   doCheck = false;
@@ -37,7 +39,12 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "This is the Microsoft Azure Storage Management Client Library";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
+    changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-storage_${version}/sdk/storage/azure-mgmt-storage/CHANGELOG.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ jonringer olcai maxwilson ];
+    maintainers = with maintainers; [
+      jonringer
+      olcai
+      maxwilson
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-mgmt-subscription/default.nix b/pkgs/development/python-modules/azure-mgmt-subscription/default.nix
index 1915f15110b9e..ad45a8015587d 100644
--- a/pkgs/development/python-modules/azure-mgmt-subscription/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-subscription/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     azure-mgmt-core
     msrest
     msrestazure
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
-  ];
+  ] ++ lib.optionals (!isPy3k) [ azure-mgmt-nspkg ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-mgmt-trafficmanager/default.nix b/pkgs/development/python-modules/azure-mgmt-trafficmanager/default.nix
index e2ae6c3e9cf57..acccaba91bff1 100644
--- a/pkgs/development/python-modules/azure-mgmt-trafficmanager/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-trafficmanager/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msrest
-, msrestazure
-, azure-common
-, azure-mgmt-core
-, azure-mgmt-nspkg
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  msrestazure,
+  azure-common,
+  azure-mgmt-core,
+  azure-mgmt-nspkg,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     msrestazure
     azure-common
     azure-mgmt-core
-  ] ++ lib.optionals (!isPy3k) [
-    azure-mgmt-nspkg
-  ];
+  ] ++ lib.optionals (!isPy3k) [ azure-mgmt-nspkg ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-mgmt-web/default.nix b/pkgs/development/python-modules/azure-mgmt-web/default.nix
index 0008035e91e0f..adbae42173ca9 100644
--- a/pkgs/development/python-modules/azure-mgmt-web/default.nix
+++ b/pkgs/development/python-modules/azure-mgmt-web/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, azure-common
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
+{
+  lib,
+  azure-common,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "azure-mgmt-web";
-  version = "7.2.0";
+  version = "7.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-78/m9/Ug7Qq8/oZRfhyM8CpxL3N6PbDbfLRsbWR5ge0=";
+    hash = "sha256-IDK/TVDfC7uCLqAMrDv74OZ0h9LJzBGCwIWPgxSc3qk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/azure-monitor-ingestion/default.nix b/pkgs/development/python-modules/azure-monitor-ingestion/default.nix
index 7058a1bddbea2..e77ae5df94d3d 100644
--- a/pkgs/development/python-modules/azure-monitor-ingestion/default.nix
+++ b/pkgs/development/python-modules/azure-monitor-ingestion/default.nix
@@ -1,28 +1,27 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools
-, azure-core
-, isodate
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  azure-core,
+  isodate,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "azure-monitor-ingestion";
-  version = "1.0.3";
+  version = "1.0.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-idAEqP+HaZs/0fzyBaqO8enTTySg88w3TSIUceiYdDs=";
+    hash = "sha256-JU11mTof5wfRmPAUrvWhT6pXDO5zabNbsDriqo+Zvnk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     azure-core
diff --git a/pkgs/development/python-modules/azure-multiapi-storage/default.nix b/pkgs/development/python-modules/azure-multiapi-storage/default.nix
index a3697ae4564d0..d03aaf12f9caf 100644
--- a/pkgs/development/python-modules/azure-multiapi-storage/default.nix
+++ b/pkgs/development/python-modules/azure-multiapi-storage/default.nix
@@ -47,7 +47,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Microsoft Azure Storage Client Library for Python with multi API version support.";
+    description = "Microsoft Azure Storage Client Library for Python with multi API version support";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
diff --git a/pkgs/development/python-modules/azure-nspkg/default.nix b/pkgs/development/python-modules/azure-nspkg/default.nix
index a79963cddb26f..57fa097924931 100644
--- a/pkgs/development/python-modules/azure-nspkg/default.nix
+++ b/pkgs/development/python-modules/azure-nspkg/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -20,6 +21,9 @@ buildPythonPackage rec {
     description = "Microsoft Azure SDK for Python";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ olcai maxwilson ];
+    maintainers = with maintainers; [
+      olcai
+      maxwilson
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-servicebus/default.nix b/pkgs/development/python-modules/azure-servicebus/default.nix
index e84a9cb5fd214..6e622d51794d0 100644
--- a/pkgs/development/python-modules/azure-servicebus/default.nix
+++ b/pkgs/development/python-modules/azure-servicebus/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, azure-common
-, azure-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, msrest
-, pythonOlder
-, typing-extensions
-, uamqp
+{
+  lib,
+  azure-common,
+  azure-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  msrest,
+  pythonOlder,
+  typing-extensions,
+  uamqp,
 }:
 
 buildPythonPackage rec {
   pname = "azure-servicebus";
-  version = "7.12.1";
+  version = "7.12.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-sRv1aer3fDDYp2+IuTwIcT/TYYjZzG2r9x6tsQ63Qvk=";
+    hash = "sha256-pqPF957VvvEB2ePjyYahA7IA4mxJU8R6UvVSx1fkXso=";
   };
 
   propagatedBuildInputs = [
@@ -34,9 +35,7 @@ buildPythonPackage rec {
   # Tests require dev-tools
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.servicebus"
-  ];
+  pythonImportsCheck = [ "azure.servicebus" ];
 
   meta = with lib; {
     description = "Microsoft Azure Service Bus Client Library";
diff --git a/pkgs/development/python-modules/azure-servicefabric/default.nix b/pkgs/development/python-modules/azure-servicefabric/default.nix
index b7ad663a1b430..e7052a1716519 100644
--- a/pkgs/development/python-modules/azure-servicefabric/default.nix
+++ b/pkgs/development/python-modules/azure-servicefabric/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, azure-common
-, msrest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  azure-common,
+  msrest,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-servicemanagement-legacy/default.nix b/pkgs/development/python-modules/azure-servicemanagement-legacy/default.nix
index d47f38396c74f..bff86f69ba6b4 100644
--- a/pkgs/development/python-modules/azure-servicemanagement-legacy/default.nix
+++ b/pkgs/development/python-modules/azure-servicemanagement-legacy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, azure-common
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  azure-common,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -30,6 +31,9 @@ buildPythonPackage rec {
     description = "This is the Microsoft Azure Service Management Legacy Client Library";
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ olcai maxwilson ];
+    maintainers = with maintainers; [
+      olcai
+      maxwilson
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-storage-blob/default.nix b/pkgs/development/python-modules/azure-storage-blob/default.nix
index 3fd78981d046f..fa2876123e977 100644
--- a/pkgs/development/python-modules/azure-storage-blob/default.nix
+++ b/pkgs/development/python-modules/azure-storage-blob/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, azure-core
-, buildPythonPackage
-, cryptography
-, fetchPypi
-, isodate
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  azure-core,
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "azure-storage-blob";
-  version = "12.19.1";
+  version = "12.20.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-E+FrpC/FSsLH6Pl2BiFzpcgrnsBZRyjhNKrDcpZaEbA=";
+    hash = "sha256-7rkSVuQdS1ubrWqH/QqK3gfdWKpSNE4sjSdG4noBfTs=";
   };
 
   propagatedBuildInputs = [
@@ -35,6 +36,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/Azure/azure-sdk-for-python";
     changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-storage-blob_${version}/sdk/storage/azure-storage-blob/CHANGELOG.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ cmcdragonkai maxwilson ];
+    maintainers = with maintainers; [
+      cmcdragonkai
+      maxwilson
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/azure-storage-common/default.nix b/pkgs/development/python-modules/azure-storage-common/default.nix
index 361725a307aa2..7f5b602dad160 100644
--- a/pkgs/development/python-modules/azure-storage-common/default.nix
+++ b/pkgs/development/python-modules/azure-storage-common/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, azure-common
-, cryptography
-, python-dateutil
-, requests
-, isPy3k
-, azure-storage-nspkg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  azure-common,
+  cryptography,
+  python-dateutil,
+  requests,
+  isPy3k,
+  azure-storage-nspkg,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-storage-file-share/default.nix b/pkgs/development/python-modules/azure-storage-file-share/default.nix
index b89653fb67811..1f47df6c9e73d 100644
--- a/pkgs/development/python-modules/azure-storage-file-share/default.nix
+++ b/pkgs/development/python-modules/azure-storage-file-share/default.nix
@@ -1,33 +1,41 @@
-{ lib
-, azure-core
-, buildPythonPackage
-, cryptography
-, fetchPypi
-, isodate
-, msrest
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  azure-core,
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  isodate,
+  msrest,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "azure-storage-file-share";
-  version = "12.15.0";
-  format = "setuptools";
+  version = "12.16.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-AJjxz6k0TE94HODNUE/zo1JVdRVTwB5yDczQyqjYqio=";
+    hash = "sha256-QS+35sPCj29yKvmBlapZQHqqMjI6+hOkoB9i0Lh3TrM=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     azure-core
     cryptography
     isodate
     typing-extensions
   ];
 
+  passthru.optional-dependencies = {
+    aio = [ azure-core ] ++ azure-core.optional-dependencies.aio;
+  };
+
   # Tests require checkout from monorepo
   doCheck = false;
 
@@ -38,7 +46,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Microsoft Azure File Share Storage Client Library for Python";
-    homepage = "https://github.com/Azure/azure-sdk-for-python";
+    homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/storage/azure-storage-file-share";
     changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-storage-file-share_${version}/sdk/storage/azure-storage-file-share/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ kamadorueda ];
diff --git a/pkgs/development/python-modules/azure-storage-file/default.nix b/pkgs/development/python-modules/azure-storage-file/default.nix
index bf847905ae934..97ad54fda7041 100644
--- a/pkgs/development/python-modules/azure-storage-file/default.nix
+++ b/pkgs/development/python-modules/azure-storage-file/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, azure-common
-, azure-storage-common
-, isPy3k
-, futures ? null
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  azure-common,
+  azure-storage-common,
+  isPy3k,
+  futures ? null,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/azure-storage-nspkg/default.nix b/pkgs/development/python-modules/azure-storage-nspkg/default.nix
index 9d1394e5be3a0..3807fa100e409 100644
--- a/pkgs/development/python-modules/azure-storage-nspkg/default.nix
+++ b/pkgs/development/python-modules/azure-storage-nspkg/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, azure-nspkg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  azure-nspkg,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     sha256 = "6f3bbe8652d5f542767d8433e7f96b8df7f518774055ac7c92ed7ca85f653811";
   };
 
-  propagatedBuildInputs = [
-    azure-nspkg
-  ];
+  propagatedBuildInputs = [ azure-nspkg ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/azure-storage-queue/default.nix b/pkgs/development/python-modules/azure-storage-queue/default.nix
index 1fdbf6914d18a..50f5d701138b5 100644
--- a/pkgs/development/python-modules/azure-storage-queue/default.nix
+++ b/pkgs/development/python-modules/azure-storage-queue/default.nix
@@ -1,29 +1,28 @@
-{ lib
-, azure-core
-, buildPythonPackage
-, cryptography
-, fetchPypi
-, isodate
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  azure-core,
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  isodate,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "azure-storage-queue";
-  version = "12.9.0";
+  version = "12.10.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-mBAbDhfaDUcM9XALbEDP50Q57Dycds84OYCW5zcbnRs=";
+    hash = "sha256-dnuj1czNtPcJdOXOYdFkx6t0cyz7K0Qd2HN2aaIRbag=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     azure-core
@@ -33,17 +32,13 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    aio = [
-      azure-core
-    ] ++ azure-core.optional-dependencies.aio;
+    aio = [ azure-core ] ++ azure-core.optional-dependencies.aio;
   };
 
   # has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.storage.queue"
-  ];
+  pythonImportsCheck = [ "azure.storage.queue" ];
 
   meta = with lib; {
     description = "Client library for Microsoft Azure Storage services containing the queue service APIs";
diff --git a/pkgs/development/python-modules/azure-synapse-artifacts/default.nix b/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
index 1782dd56e4854..0cc9e72a984dd 100644
--- a/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
+++ b/pkgs/development/python-modules/azure-synapse-artifacts/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, azure-common
-, azure-core
-, azure-mgmt-core
-, buildPythonPackage
-, fetchPypi
-, isodate
-, pythonOlder
+{
+  lib,
+  azure-common,
+  azure-core,
+  azure-mgmt-core,
+  buildPythonPackage,
+  fetchPypi,
+  isodate,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "azure-synapse-artifacts";
-  version = "0.18.0";
+  version = "0.19.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-qgiHMzW7T5NuQl0jwZheMXp7wHhNOHyH24J6wfc4VqQ=";
+    hash = "sha256-UvCSsiZ315IoDwvMI02JLJ9zjpPI4Ut0wZUQG5uicYQ=";
   };
 
   propagatedBuildInputs = [
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Tests are only available in mono-repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "azure.synapse.artifacts"
-  ];
+  pythonImportsCheck = [ "azure.synapse.artifacts" ];
 
   meta = with lib; {
     description = "Microsoft Azure Synapse Artifacts Client Library for Python";
diff --git a/pkgs/development/python-modules/b2sdk/default.nix b/pkgs/development/python-modules/b2sdk/default.nix
index 266443af70f02..5c67b77e78f98 100644
--- a/pkgs/development/python-modules/b2sdk/default.nix
+++ b/pkgs/development/python-modules/b2sdk/default.nix
@@ -6,6 +6,7 @@
   glibcLocales,
   importlib-metadata,
   logfury,
+  annotated-types,
   packaging,
   pdm-backend,
   pyfakefs,
@@ -13,7 +14,6 @@
   pytest-mock,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
   requests,
   tqdm,
   typing-extensions,
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "b2sdk";
-  version = "2.1.0";
+  version = "2.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -30,17 +30,17 @@ buildPythonPackage rec {
     owner = "Backblaze";
     repo = "b2-sdk-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-/TuPT+Y0asGGtfRNxxvpX0WkS4O4asFmIuqSdQ4I9fQ=";
+    hash = "sha256-SaoQzP7vtzVWmkUTw0vCeneeSMTmBTIr5kiMXGcgm9g=";
   };
 
   build-system = [ pdm-backend ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   pythonRemoveDeps = [ "setuptools" ];
 
   dependencies =
     [
+      annotated-types
       packaging
       logfury
       requests
diff --git a/pkgs/development/python-modules/babel/default.nix b/pkgs/development/python-modules/babel/default.nix
index 2e2a1a66eb483..de68774a358b3 100644
--- a/pkgs/development/python-modules/babel/default.nix
+++ b/pkgs/development/python-modules/babel/default.nix
@@ -1,52 +1,40 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPyPy
-, pythonAtLeast
-, pythonOlder
-
-# build-system
-, setuptools
-
-# tests
-, freezegun
-, pytestCheckHook
-, pytz
-, tzdata
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+
+  # tests
+  freezegun,
+  pytestCheckHook,
+  pytz,
+  tzdata,
 }:
 
 buildPythonPackage rec {
   pname = "babel";
-  version = "2.14.0";
+  version = "2.15.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    pname = "Babel";
-    inherit version;
-    hash = "sha256-aRmGfbA2OYuiHrXHoPayirjLw656c6ROvjSudKTn02M=";
+    inherit pname version;
+    hash = "sha256-ja8OJl0FdovGx6MUzxMh6aEjr8MozGNcGGIqLzCgRBM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
-
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [
-    pytz
-  ];
-
-  # including backports.zoneinfo for python<3.9 yields infinite recursion
-  doCheck = pythonAtLeast "3.9";
+  build-system = [ setuptools ];
 
   nativeCheckInputs = [
     freezegun
     pytestCheckHook
     # https://github.com/python-babel/babel/issues/988#issuecomment-1521765563
     pytz
-  ] ++ lib.optionals isPyPy [
-    tzdata
-  ];
+  ] ++ lib.optionals isPyPy [ tzdata ];
 
   disabledTests = [
     # fails on days switching from and to daylight saving time in EST
@@ -54,12 +42,14 @@ buildPythonPackage rec {
     "test_format_time"
   ];
 
-  meta = with lib; {
+  pythonImportsCheck = [ "babel" ];
+
+  meta = {
+    description = "Collection of internationalizing tools";
     homepage = "https://babel.pocoo.org/";
     changelog = "https://github.com/python-babel/babel/releases/tag/v${version}";
-    description = "Collection of internationalizing tools";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ getchoo ];
     mainProgram = "pybabel";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/babelfish/default.nix b/pkgs/development/python-modules/babelfish/default.nix
index f79a0ba005faf..64cd4318226af 100644
--- a/pkgs/development/python-modules/babelfish/default.nix
+++ b/pkgs/development/python-modules/babelfish/default.nix
@@ -1,16 +1,25 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  poetry-core,
+  importlib-metadata,
+}:
 
 buildPythonPackage rec {
   pname = "babelfish";
-  version = "0.6.0";
-  format = "setuptools";
+  version = "0.6.1";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2dadfadd1b205ca5fa5dc9fa637f5b7933160a0418684c7c46a7a664033208a2";
+    hash = "sha256-3stnpGYIiNSEgKtpmDCYNxdBWNDxqmO+uxwuEaq5eqs=";
   };
 
-  propagatedBuildInputs = [ setuptools ];
+  build-system = [ poetry-core ];
+
+  dependencies = lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
   # no tests executed
   doCheck = false;
@@ -18,8 +27,8 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "babelfish" ];
 
   meta = with lib; {
-    homepage = "https://pypi.python.org/pypi/babelfish";
-    description = "A module to work with countries and languages";
+    homepage = "https://github.com/Diaoul/babelfish";
+    description = "Module to work with countries and languages";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/babelfont/default.nix b/pkgs/development/python-modules/babelfont/default.nix
index 8afa32c500533..afc75992a9a5b 100644
--- a/pkgs/development/python-modules/babelfont/default.nix
+++ b/pkgs/development/python-modules/babelfont/default.nix
@@ -1,33 +1,39 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cu2qu
-, defcon
-, fontfeatures
-, fonttools
-, glyphslib
-, openstep-plist
-, orjson
-, poetry-core
-, pytestCheckHook
-, ufolib2
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cu2qu,
+  defcon,
+  fontfeatures,
+  fonttools,
+  glyphslib,
+  openstep-plist,
+  orjson,
+  pytestCheckHook,
+  setuptools,
+  setuptools-scm,
+  ufolib2,
 }:
 
 buildPythonPackage rec {
   pname = "babelfont";
-  version = "3.0.1";
+  version = "3.0.5";
+  pyproject = true;
 
   # PyPI source tarballs omit tests, fetch from Github instead
   src = fetchFromGitHub {
     owner = "simoncozens";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-1DHcJDVaCgIAODyf5UUrXej8x3ySD4+6/KtxuF2yFV4=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-9PEOkkm7qH4ExiJJKrTZX5Ph/urtOyFsy7jjtFepncU=";
   };
 
-  pyproject = true;
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     cu2qu
     fontfeatures
     fonttools
@@ -36,11 +42,7 @@ buildPythonPackage rec {
     orjson
     ufolib2
   ];
-  nativeBuildInputs = [
-    poetry-core
-  ];
 
-  doCheck = true;
   nativeCheckInputs = [
     defcon
     pytestCheckHook
diff --git a/pkgs/development/python-modules/babelgladeextractor/default.nix b/pkgs/development/python-modules/babelgladeextractor/default.nix
index d6154a063e7c3..e0b4d3c8ebc17 100644
--- a/pkgs/development/python-modules/babelgladeextractor/default.nix
+++ b/pkgs/development/python-modules/babelgladeextractor/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, isPy3k
-, buildPythonPackage
-, fetchPypi
-, babel
+{
+  lib,
+  isPy3k,
+  buildPythonPackage,
+  fetchPypi,
+  babel,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "160p4wi2ss69g141c2z59azvrhn7ymy5m9h9d65qrcabigi0by5w";
   };
 
-  propagatedBuildInputs = [
-    babel
-  ];
+  propagatedBuildInputs = [ babel ];
 
   # SyntaxError: Non-ASCII character '\xc3' in file /build/BabelGladeExtractor-0.6.3/babelglade/tests/test_translate.py on line 20, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details
   doCheck = isPy3k;
diff --git a/pkgs/development/python-modules/backcall/default.nix b/pkgs/development/python-modules/backcall/default.nix
index adf4daa893ae5..ca1f30956a1c1 100644
--- a/pkgs/development/python-modules/backcall/default.nix
+++ b/pkgs/development/python-modules/backcall/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -25,5 +26,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/takluyver/backcall";
     license = lib.licenses.bsd3;
   };
-
 }
diff --git a/pkgs/development/python-modules/backoff/default.nix b/pkgs/development/python-modules/backoff/default.nix
index 000f024476760..46e0f80bf2402 100644
--- a/pkgs/development/python-modules/backoff/default.nix
+++ b/pkgs/development/python-modules/backoff/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pytest-asyncio
-, responses
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pytest-asyncio,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-g8bYGJ6Kw6y3BUnuoP1IAye5CL0geH5l7pTb3xxq7jI=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -29,9 +28,7 @@ buildPythonPackage rec {
     responses
   ];
 
-  pythonImportsCheck = [
-    "backoff"
-  ];
+  pythonImportsCheck = [ "backoff" ];
 
   meta = with lib; {
     description = "Function decoration for backoff and retry";
diff --git a/pkgs/development/python-modules/backports-cached-property/default.nix b/pkgs/development/python-modules/backports-cached-property/default.nix
index dcce9b5fc6f0b..c2a0bc2459152 100644
--- a/pkgs/development/python-modules/backports-cached-property/default.nix
+++ b/pkgs/development/python-modules/backports-cached-property/default.nix
@@ -1,6 +1,13 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
-, setuptools-scm, wheel
-, pytestCheckHook, pytest-mock, pytest-sugar
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools-scm,
+  wheel,
+  pytestCheckHook,
+  pytest-mock,
+  pytest-sugar,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +24,9 @@ buildPythonPackage rec {
     hash = "sha256-rdgKbVQaELilPrN4ve8RbbaLiT14Xex0esy5vUX2ZBc=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    wheel
-  ];
+  propagatedBuildInputs = [ wheel ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -31,9 +34,7 @@ buildPythonPackage rec {
     pytest-sugar
   ];
 
-  pythonImportsCheck = [
-    "backports.cached_property"
-  ];
+  pythonImportsCheck = [ "backports.cached_property" ];
 
   meta = with lib; {
     description = "Python 3.8 functools.cached_property backport to python 3.6";
diff --git a/pkgs/development/python-modules/backports-datetime-fromisoformat/default.nix b/pkgs/development/python-modules/backports-datetime-fromisoformat/default.nix
index febf3d50bb4f3..d79b11eeb63be 100644
--- a/pkgs/development/python-modules/backports-datetime-fromisoformat/default.nix
+++ b/pkgs/development/python-modules/backports-datetime-fromisoformat/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# tests
-, pytz
-, pytestCheckHook
+  # tests
+  pytz,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-c3LCTOKva99+x96iLHNnL1e1Ft1M1CsjQX+nEqAlXUs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytz
@@ -32,13 +31,11 @@ buildPythonPackage rec {
   ];
 
   disabledTestPaths = [
-      # ModuleNotFoundError: No module named 'developmental_release'
+    # ModuleNotFoundError: No module named 'developmental_release'
     "release/test_developmental_release.py"
   ];
 
-  pythonImportsCheck = [
-    "backports.datetime_fromisoformat"
-  ];
+  pythonImportsCheck = [ "backports.datetime_fromisoformat" ];
 
   meta = with lib; {
     changelog = "https://github.com/movermeyer/backports.datetime_fromisoformat/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/backports-entry-points-selectable/default.nix b/pkgs/development/python-modules/backports-entry-points-selectable/default.nix
index ea57e4887bff9..9a0baed50a48a 100644
--- a/pkgs/development/python-modules/backports-entry-points-selectable/default.nix
+++ b/pkgs/development/python-modules/backports-entry-points-selectable/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools-scm
-, importlib-metadata
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools-scm,
+  importlib-metadata,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-F6i0SucA+6VIaG3SdN3JHAYDcVZc1jgGwgodM5EXRuY=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/backports-shutil-get-terminal-size/default.nix b/pkgs/development/python-modules/backports-shutil-get-terminal-size/default.nix
index 237cde584ebde..b70f3acaaea9c 100644
--- a/pkgs/development/python-modules/backports-shutil-get-terminal-size/default.nix
+++ b/pkgs/development/python-modules/backports-shutil-get-terminal-size/default.nix
@@ -1,35 +1,37 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
+  pythonOlder,
 }:
 
-if !(pythonOlder "3.3") then null else buildPythonPackage {
-  pname = "backports-shutil-get-terminal-size";
-  version = "unstable-2016-02-21";
+if !(pythonOlder "3.3") then
+  null
+else
+  buildPythonPackage {
+    pname = "backports-shutil-get-terminal-size";
+    version = "unstable-2016-02-21";
 
-  # there have been numerous fixes committed since the initial release.
-  # Most notably fixing a problem where the backport would always return
-  # terminal size 0. See https://trac.sagemath.org/ticket/25320#comment:5.
-  # Unfortunately the maintainer seems inactive and has not responded to
-  # a request for a new release since 2016:
-  # https://github.com/chrippa/backports.shutil_get_terminal_size/issues/7
-  src = fetchFromGitHub {
-    owner = "chrippa";
-    repo = "backports.shutil_get_terminal_size";
-    rev = "159e269450dbf37c3a837f6ea7e628d59acbb96a";
-    sha256 = "17sgv8vg0xxfdnca45l1mmwwvj29gich5c8kqznnj51kfccch7sg";
-  };
+    # there have been numerous fixes committed since the initial release.
+    # Most notably fixing a problem where the backport would always return
+    # terminal size 0. See https://trac.sagemath.org/ticket/25320#comment:5.
+    # Unfortunately the maintainer seems inactive and has not responded to
+    # a request for a new release since 2016:
+    # https://github.com/chrippa/backports.shutil_get_terminal_size/issues/7
+    src = fetchFromGitHub {
+      owner = "chrippa";
+      repo = "backports.shutil_get_terminal_size";
+      rev = "159e269450dbf37c3a837f6ea7e628d59acbb96a";
+      sha256 = "17sgv8vg0xxfdnca45l1mmwwvj29gich5c8kqznnj51kfccch7sg";
+    };
 
-  nativeCheckInputs = [
-    pytest
-  ];
+    nativeCheckInputs = [ pytest ];
 
-  meta = with lib; {
-    description = "A backport of the get_terminal_size function from Python 3.3’s shutil.";
-    homepage = "https://github.com/chrippa/backports.shutil_get_terminal_size";
-    license = with licenses; [ mit ];
-    maintainers = teams.sage.members;
-  };
-}
+    meta = with lib; {
+      description = "Backport of the get_terminal_size function from Python 3.3’s shutil";
+      homepage = "https://github.com/chrippa/backports.shutil_get_terminal_size";
+      license = with licenses; [ mit ];
+      maintainers = teams.sage.members;
+    };
+  }
diff --git a/pkgs/development/python-modules/backports-shutil-which/default.nix b/pkgs/development/python-modules/backports-shutil-which/default.nix
index 290e4e2697811..07335b5bf6b1c 100644
--- a/pkgs/development/python-modules/backports-shutil-which/default.nix
+++ b/pkgs/development/python-modules/backports-shutil-which/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchPypi, buildPythonPackage, pytest }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "backports-shutil-which";
diff --git a/pkgs/development/python-modules/backports-strenum/default.nix b/pkgs/development/python-modules/backports-strenum/default.nix
index 229f9282c3555..71312dd1677ed 100644
--- a/pkgs/development/python-modules/backports-strenum/default.nix
+++ b/pkgs/development/python-modules/backports-strenum/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-jbMR9VAGsMAJTP2VQyRr+RPYwWwk8hGAYs4KoZEWa7U=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "backports.strenum"
-  ];
+  pythonImportsCheck = [ "backports.strenum" ];
 
   meta = with lib; {
     description = "Base class for creating enumerated constants that are also subclasses of str";
diff --git a/pkgs/development/python-modules/backports-tarfile/default.nix b/pkgs/development/python-modules/backports-tarfile/default.nix
new file mode 100644
index 0000000000000..1b1c7790a91af
--- /dev/null
+++ b/pkgs/development/python-modules/backports-tarfile/default.nix
@@ -0,0 +1,65 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  jaraco-test,
+  pytestCheckHook,
+}:
+
+let self = buildPythonPackage rec {
+  pname = "backports-tarfile";
+  version = "1.2.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "jaraco";
+    repo = "backports.tarfile";
+    rev = "v${version}";
+    hash = "sha256-X3rkL35aDG+DnIOq0fI7CFoWGNtgLkLjtT9y6+23oto=";
+  };
+
+  build-system = [
+    setuptools
+    setuptools-scm
+    wheel
+  ];
+
+  doCheck = false;
+
+  nativeCheckInputs = [
+    jaraco-test
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # calls python -m backports.tarfile and doesn't find module documentation
+    "test_bad_use"
+    "test_create_command"
+    "test_create_command_compressed"
+    "test_create_command_dot_started_filename"
+    "test_create_command_dotless_filename"
+    "test_extract_command"
+    "test_extract_command_different_directory"
+    "test_extract_command_invalid_file"
+    "test_list_command_invalid_file"
+    "test_test_command"
+    "test_test_command_invalid_file"
+    # chmod: permission denied
+    "test_modes"
+  ];
+
+  pythonImportsCheck = [ "backports.tarfile" ];
+
+  passthru.tests.pytest = self.overridePythonAttrs { doCheck = true; };
+
+  meta = with lib; {
+    description = "Backport of CPython tarfile module";
+    homepage = "https://github.com/jaraco/backports.tarfile";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+};
+in self
diff --git a/pkgs/development/python-modules/backports-zoneinfo/default.nix b/pkgs/development/python-modules/backports-zoneinfo/default.nix
index ff5196855d343..a27197dea80dc 100644
--- a/pkgs/development/python-modules/backports-zoneinfo/default.nix
+++ b/pkgs/development/python-modules/backports-zoneinfo/default.nix
@@ -1,13 +1,16 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, pythonAtLeast
-, pythonOlder
-, python
-, substituteAll
-, importlib-resources
-, tzdata
-, hypothesis
-, pytestCheckHook
-, fetchpatch
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  pythonOlder,
+  python,
+  substituteAll,
+  importlib-resources,
+  tzdata,
+  hypothesis,
+  pytestCheckHook,
+  fetchpatch,
 }:
 
 buildPythonPackage rec {
@@ -50,11 +53,7 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
-    tzdata
-  ] ++ lib.optionals (pythonOlder "3.7") [
-    importlib-resources
-  ];
+  propagatedBuildInputs = [ tzdata ] ++ lib.optionals (pythonOlder "3.7") [ importlib-resources ];
 
   pythonImportsCheck = [ "backports.zoneinfo" ];
 
diff --git a/pkgs/development/python-modules/bacpypes/default.nix b/pkgs/development/python-modules/bacpypes/default.nix
index 9a30c1bbd6a94..8819f55e0a668 100644
--- a/pkgs/development/python-modules/bacpypes/default.nix
+++ b/pkgs/development/python-modules/bacpypes/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, wheel
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  wheel,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,22 +29,16 @@ buildPythonPackage rec {
       --replace "(3, 8): 'py34'," "(3, 8): 'py34', (3, 9): 'py34', (3, 10): 'py34', (3, 11): 'py34', (3, 12): 'py34',"
   '';
 
-  propagatedBuildInputs = [
-    wheel
-  ];
+  propagatedBuildInputs = [ wheel ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Test fails with a an error: AssertionError: assert 30 == 31
     "test_recurring_task_5"
   ];
 
-  pythonImportsCheck = [
-    "bacpypes"
-  ];
+  pythonImportsCheck = [ "bacpypes" ];
 
   meta = with lib; {
     description = "Module for the BACnet application layer and network layer";
diff --git a/pkgs/development/python-modules/bagit/default.nix b/pkgs/development/python-modules/bagit/default.nix
index abc9fdb1661fa..6742f35877c40 100644
--- a/pkgs/development/python-modules/bagit/default.nix
+++ b/pkgs/development/python-modules/bagit/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, gettext
-, mock
-, pytestCheckHook
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gettext,
+  mock,
+  pytestCheckHook,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,10 @@ buildPythonPackage rec {
     hash = "sha256-t01P7MPWgOrktuW2zF0TIzt6u/jkLmrpD2OnqawhJaI=";
   };
 
-  nativeBuildInputs = [ gettext setuptools-scm ];
+  nativeBuildInputs = [
+    gettext
+    setuptools-scm
+  ];
 
   nativeCheckInputs = [
     mock
diff --git a/pkgs/development/python-modules/bambi/default.nix b/pkgs/development/python-modules/bambi/default.nix
index 5a3a23a4e3d07..f2447b2c9d125 100644
--- a/pkgs/development/python-modules/bambi/default.nix
+++ b/pkgs/development/python-modules/bambi/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, arviz
-, formulae
-, graphviz
-, pandas
-, pymc
-, blackjax
-, numpyro
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  arviz,
+  formulae,
+  graphviz,
+  pandas,
+  pymc,
+  blackjax,
+  numpyro,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-9+uTyV3mQlHOKAjXohwkhTzNe/+I5XR/LuH1ZYvhc8I=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     arviz
@@ -80,9 +79,7 @@ buildPythonPackage rec {
     "test_with_user_values"
   ];
 
-  pythonImportsCheck = [
-    "bambi"
-  ];
+  pythonImportsCheck = [ "bambi" ];
 
   meta = with lib; {
     homepage = "https://bambinos.github.io/bambi";
@@ -90,5 +87,7 @@ buildPythonPackage rec {
     changelog = "https://github.com/bambinos/bambi/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
+    # https://github.com/NixOS/nixpkgs/issues/310940
+    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/banal/default.nix b/pkgs/development/python-modules/banal/default.nix
index d8843dd894864..a2b938a5f035f 100644
--- a/pkgs/development/python-modules/banal/default.nix
+++ b/pkgs/development/python-modules/banal/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
 }:
 buildPythonPackage rec {
   pname = "banal";
@@ -15,9 +16,7 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "banal"
-  ];
+  pythonImportsCheck = [ "banal" ];
 
   meta = with lib; {
     description = "Commons of banal micro-functions for Python";
diff --git a/pkgs/development/python-modules/bandcamp-api/default.nix b/pkgs/development/python-modules/bandcamp-api/default.nix
index 31efe43cbef59..c1feeae7ffe13 100644
--- a/pkgs/development/python-modules/bandcamp-api/default.nix
+++ b/pkgs/development/python-modules/bandcamp-api/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, beautifulsoup4
-, demjson3
-, html5lib
-, lxml
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  beautifulsoup4,
+  demjson3,
+  html5lib,
+  lxml,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/bandit/default.nix b/pkgs/development/python-modules/bandit/default.nix
index e309643e8c6e8..8495ccf626f7e 100644
--- a/pkgs/development/python-modules/bandit/default.nix
+++ b/pkgs/development/python-modules/bandit/default.nix
@@ -1,29 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, gitpython
-, pbr
-, pyyaml
-, rich
-, stevedore
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  gitpython,
+  pbr,
+  pyyaml,
+  rich,
+  stevedore,
 }:
 
 buildPythonPackage rec {
   pname = "bandit";
-  version = "1.7.8";
+  version = "1.7.9";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Nt5Q9yCFarJKJNuqX+4sZgUO2XwUd+ChFZ3qsXdeq2s=";
+    hash = "sha256-fDlaQ2dDAY974KTLsKTqm5ArbYcmTd7PjP3HO094/2E=";
   };
 
-  nativeBuildInputs = [
-    pbr
-  ];
+  nativeBuildInputs = [ pbr ];
 
   propagatedBuildInputs = [
     gitpython
@@ -36,9 +35,7 @@ buildPythonPackage rec {
   #   and this requires Network Connectivity
   doCheck = false;
 
-  pythonImportsCheck = [
-    "bandit"
-  ];
+  pythonImportsCheck = [ "bandit" ];
 
   meta = with lib; {
     description = "Security oriented static analyser for python code";
diff --git a/pkgs/development/python-modules/bangla/default.nix b/pkgs/development/python-modules/bangla/default.nix
index d5664d7aeae0b..4cdaee2a25293 100644
--- a/pkgs/development/python-modules/bangla/default.nix
+++ b/pkgs/development/python-modules/bangla/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/bap/default.nix b/pkgs/development/python-modules/bap/default.nix
index a3316b8651f52..f598b1aa7907c 100644
--- a/pkgs/development/python-modules/bap/default.nix
+++ b/pkgs/development/python-modules/bap/default.nix
@@ -1,4 +1,10 @@
-{lib, buildPythonPackage, fetchFromGitHub, bap, requests}:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  bap,
+  requests,
+}:
 
 buildPythonPackage rec {
   pname = "bap";
@@ -11,12 +17,15 @@ buildPythonPackage rec {
     sha256 = "1ahkrmcn7qaivps1gar8wd9mq2qqyx6zzvznf5r9rr05h17x5lbp";
   };
 
-  propagatedBuildInputs = [bap requests];
+  propagatedBuildInputs = [
+    bap
+    requests
+  ];
 
   doCheck = false;
 
   meta = with lib; {
-    description = "Platform for binary analysis. It is written in OCaml, but can be used from other languages.";
+    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 ];
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/barectf/default.nix b/pkgs/development/python-modules/barectf/default.nix
index ed9be93dd0217..532228c31e4f5 100644
--- a/pkgs/development/python-modules/barectf/default.nix
+++ b/pkgs/development/python-modules/barectf/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest7CheckHook
-, pythonRelaxDepsHook
-, setuptools
-, jsonschema
-, pyyaml
-, jinja2
-, termcolor
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest7CheckHook,
+  setuptools,
+  jsonschema,
+  pyyaml,
+  jinja2,
+  termcolor,
 }:
 
 buildPythonPackage rec {
@@ -25,7 +25,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = [
@@ -42,13 +41,9 @@ buildPythonPackage rec {
     termcolor
   ];
 
-  pythonImportsCheck = [
-    "barectf"
-  ];
+  pythonImportsCheck = [ "barectf" ];
 
-  nativeCheckInputs = [
-    pytest7CheckHook
-  ];
+  nativeCheckInputs = [ pytest7CheckHook ];
 
   meta = with lib; {
     description = "Generator of ANSI C tracers which output CTF data streams ";
diff --git a/pkgs/development/python-modules/baron/default.nix b/pkgs/development/python-modules/baron/default.nix
index d02a434248fb9..8e766dc784866 100644
--- a/pkgs/development/python-modules/baron/default.nix
+++ b/pkgs/development/python-modules/baron/default.nix
@@ -1,4 +1,11 @@
-{ lib, fetchPypi, buildPythonPackage, rply, pytestCheckHook, isPy3k }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  rply,
+  pytestCheckHook,
+  isPy3k,
+}:
 
 buildPythonPackage rec {
   pname = "baron";
diff --git a/pkgs/development/python-modules/base2048/default.nix b/pkgs/development/python-modules/base2048/default.nix
index 8d75bd93e336a..3f8ecf0c58b1f 100644
--- a/pkgs/development/python-modules/base2048/default.nix
+++ b/pkgs/development/python-modules/base2048/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, cargo
-, fetchFromGitHub
-, frelatage
-, libiconv
-, maturin
-, pytestCheckHook
-, pythonOlder
-, rustc
-, rustPlatform
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cargo,
+  fetchFromGitHub,
+  frelatage,
+  libiconv,
+  maturin,
+  pytestCheckHook,
+  pythonOlder,
+  rustc,
+  rustPlatform,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-OXlfycJB1IrW2Zq0xPDGjjwCdRTWtX/ixPGWcd+YjAg=";
   };
 
-  cargoDeps = rustPlatform.importCargoLock {
-    lockFile = ./Cargo.lock;
-  };
+  cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; };
 
   postPatch = ''
     ln -s ${./Cargo.lock} Cargo.lock
@@ -41,23 +40,15 @@ buildPythonPackage rec {
     rustc
   ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
-    libiconv
-  ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   passthru.optional-dependencies = {
-    fuzz = [
-      frelatage
-    ];
+    fuzz = [ frelatage ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "base2048"
-  ];
+  pythonImportsCheck = [ "base2048" ];
 
   meta = with lib; {
     description = "Binary encoding with base-2048 in Python with Rust";
diff --git a/pkgs/development/python-modules/base36/default.nix b/pkgs/development/python-modules/base36/default.nix
index 461ecc9127913..33909a6c942ac 100644
--- a/pkgs/development/python-modules/base36/default.nix
+++ b/pkgs/development/python-modules/base36/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/base58/default.nix b/pkgs/development/python-modules/base58/default.nix
index 020f103851cb6..f3eaa3b3e8581 100644
--- a/pkgs/development/python-modules/base58/default.nix
+++ b/pkgs/development/python-modules/base58/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyhamcrest
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyhamcrest,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/base58check/default.nix b/pkgs/development/python-modules/base58check/default.nix
index 7b635abd0de18..338775bf6ceec 100644
--- a/pkgs/development/python-modules/base58check/default.nix
+++ b/pkgs/development/python-modules/base58check/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-Tig6beLRDsXC//x4+t/z2BGaJQWzcP0J+QEKx3D0rhs=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "base58check"
-  ];
+  pythonImportsCheck = [ "base58check" ];
 
   meta = with lib; {
     description = "Implementation of the Base58Check encoding scheme";
diff --git a/pkgs/development/python-modules/base64io/default.nix b/pkgs/development/python-modules/base64io/default.nix
index 0ca50fa63dc56..c5ba9c8361442 100644
--- a/pkgs/development/python-modules/base64io/default.nix
+++ b/pkgs/development/python-modules/base64io/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, unstableGitUpdater
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  unstableGitUpdater,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-RFl0iuyHdPf3VpBxH4m/N2yaKEBxkNMT1ldZP9VGGOk=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   nativeCheckInputs = [
     mock
diff --git a/pkgs/development/python-modules/baseline/default.nix b/pkgs/development/python-modules/baseline/default.nix
index d64fbd26f6f34..1fadfe681b885 100644
--- a/pkgs/development/python-modules/baseline/default.nix
+++ b/pkgs/development/python-modules/baseline/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy3k, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy3k,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "baseline";
diff --git a/pkgs/development/python-modules/baselines/default.nix b/pkgs/development/python-modules/baselines/default.nix
index 70be97034ce0d..fab9db7660d9d 100644
--- a/pkgs/development/python-modules/baselines/default.nix
+++ b/pkgs/development/python-modules/baselines/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
-, gym
-, scipy
-, tqdm
-, joblib
-, dill
-, progressbar2
-, cloudpickle
-, click
-, pyzmq
-, tensorflow
-, mpi4py
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
+  gym,
+  scipy,
+  tqdm,
+  joblib,
+  dill,
+  progressbar2,
+  cloudpickle,
+  click,
+  pyzmq,
+  tensorflow,
+  mpi4py,
 }:
 
 buildPythonPackage {
@@ -52,9 +53,7 @@ buildPythonPackage {
   # fails to create a daemon, probably because of sandboxing
   doCheck = false;
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
   meta = with lib; {
     description = "High-quality implementations of reinforcement learning algorithms";
diff --git a/pkgs/development/python-modules/basemap-data/default.nix b/pkgs/development/python-modules/basemap-data/default.nix
index 390b4afcf7604..17963e1da7634 100644
--- a/pkgs/development/python-modules/basemap-data/default.nix
+++ b/pkgs/development/python-modules/basemap-data/default.nix
@@ -1,16 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
-, basemap
-, cython
-, geos
-, numpy
-, matplotlib
-, pyproj
-, pyshp
-, python
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  pythonAtLeast,
+  basemap,
+  cython,
+  geos,
+  numpy,
+  matplotlib,
+  pyproj,
+  pyshp,
+  python,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,12 +23,15 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  pythonImportsCheck =  [ "mpl_toolkits.basemap_data" ];
+  pythonImportsCheck = [ "mpl_toolkits.basemap_data" ];
 
   meta = with lib; {
     homepage = "https://matplotlib.org/basemap/";
     description = "Data assets for matplotlib basemap";
-    license = with licenses; [ mit lgpl3Plus ];
+    license = with licenses; [
+      mit
+      lgpl3Plus
+    ];
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/basemap/default.nix b/pkgs/development/python-modules/basemap/default.nix
index 3dd2e761b0976..74759f2a0d980 100644
--- a/pkgs/development/python-modules/basemap/default.nix
+++ b/pkgs/development/python-modules/basemap/default.nix
@@ -1,18 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
-, basemap-data
-, cython
-, geos
-, numpy
-, matplotlib
-, pillow
-, pyproj
-, pyshp
-, python
-, pythonRelaxDepsHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  basemap-data,
+  cython,
+  geos,
+  numpy,
+  matplotlib,
+  pillow,
+  pyproj,
+  pyshp,
+  python,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -32,7 +32,6 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     cython
     geos
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -70,6 +69,9 @@ buildPythonPackage rec {
       http://matplotlib.github.com/basemap/users/examples.html for examples of what it can do.
     '';
     maintainers = with maintainers; [ ];
-    license = with licenses; [ mit lgpl21 ];
+    license = with licenses; [
+      mit
+      lgpl21
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/bases/default.nix b/pkgs/development/python-modules/bases/default.nix
index 9c25ffaa63f85..062c757f8ce51 100644
--- a/pkgs/development/python-modules/bases/default.nix
+++ b/pkgs/development/python-modules/bases/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-, pytestCheckHook
+  pytestCheckHook,
 
-, pythonOlder
+  pythonOlder,
 
-, setuptools
-, wheel
-, setuptools-scm
+  setuptools,
+  wheel,
+  setuptools-scm,
 
   # for tests
-, base58
+  base58,
 
-, typing-extensions
-, typing-validation
+  typing-extensions,
+  typing-validation,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/bash-kernel/default.nix b/pkgs/development/python-modules/bash-kernel/default.nix
index c3ab6083ba1dd..0df270f8a2b7a 100644
--- a/pkgs/development/python-modules/bash-kernel/default.nix
+++ b/pkgs/development/python-modules/bash-kernel/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, flit-core
-, ipykernel
-, python
-, pexpect
-, bash
-, substituteAll
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  ipykernel,
+  python,
+  pexpect,
+  bashInteractive,
+  substituteAll,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +24,11 @@ buildPythonPackage rec {
   patches = [
     (substituteAll {
       src = ./bash-path.patch;
-      bash = lib.getExe bash;
+      bash = lib.getExe bashInteractive;
     })
   ];
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     ipykernel
@@ -45,8 +43,20 @@ buildPythonPackage rec {
     ${python.pythonOnBuildForHost.interpreter} -m bash_kernel.install --prefix $out
   '';
 
-  # no tests
-  doCheck = false;
+  checkPhase = ''
+    runHook preCheck
+
+    # Create a JUPYTER_PATH with the kernelspec
+    export JUPYTER_PATH=$(mktemp -d)
+    mkdir -p $JUPYTER_PATH/kernels/bash
+    echo '{ "language": "bash", "argv": [ "${python}/bin/python", "-m", "bash_kernel", "-f", "{connection_file}" ] }' > $JUPYTER_PATH/kernels/bash/kernel.json
+
+    # Evaluate a test notebook with papermill
+    cd $(mktemp -d)
+    ${python.withPackages (ps: [ ps.papermill ])}/bin/papermill --kernel bash ${./test.ipynb} out.ipynb
+
+    runHook postCheck
+  '';
 
   meta = with lib; {
     description = "Bash Kernel for Jupyter";
diff --git a/pkgs/development/python-modules/bash-kernel/test.ipynb b/pkgs/development/python-modules/bash-kernel/test.ipynb
new file mode 100644
index 0000000000000..4d061381b96d1
--- /dev/null
+++ b/pkgs/development/python-modules/bash-kernel/test.ipynb
@@ -0,0 +1,26 @@
+{
+  "cells": [
+    {
+      "cell_type": "code",
+      "execution_count": null,
+      "metadata": {},
+      "outputs": [],
+      "source": [
+        "echo hi"
+      ]
+    }
+  ],
+  "metadata": {
+    "kernel_info": {
+      "display_name": "Unknown",
+      "name": "bash"
+    },
+    "language_info": {
+      "file_extension": ".ipynb",
+      "name": "bash",
+      "version": "5.0"
+    }
+  },
+  "nbformat": 4,
+  "nbformat_minor": 2
+}
diff --git a/pkgs/development/python-modules/bashlex/default.nix b/pkgs/development/python-modules/bashlex/default.nix
index ed5cb1a6091ab..17d2485c6def9 100644
--- a/pkgs/development/python-modules/bashlex/default.nix
+++ b/pkgs/development/python-modules/bashlex/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     ${python.pythonOnBuildForHost.interpreter} -c 'import bashlex'
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "bashlex" ];
 
diff --git a/pkgs/development/python-modules/basiciw/default.nix b/pkgs/development/python-modules/basiciw/default.nix
index 33ea28ff0fb89..45b1d5407db48 100644
--- a/pkgs/development/python-modules/basiciw/default.nix
+++ b/pkgs/development/python-modules/basiciw/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, gcc
-, wirelesstools
-, isPy27
-, isPyPy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  gcc,
+  wirelesstools,
+  isPy27,
+  isPyPy,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/batchgenerators/default.nix b/pkgs/development/python-modules/batchgenerators/default.nix
index 56476a0e7d39c..e07567ff1be0a 100644
--- a/pkgs/development/python-modules/batchgenerators/default.nix
+++ b/pkgs/development/python-modules/batchgenerators/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pytestCheckHook
-, future
-, numpy
-, pillow
-, scipy
-, scikit-learn
-, scikit-image
-, threadpoolctl
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pytestCheckHook,
+  future,
+  numpy,
+  pillow,
+  scipy,
+  scikit-learn,
+  scikit-image,
+  threadpoolctl,
 }:
 
 buildPythonPackage rec {
@@ -42,9 +43,7 @@ buildPythonPackage rec {
       --replace '"unittest2",' ""
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # see https://github.com/MIC-DKFZ/batchgenerators/pull/78
   disabledTestPaths = [ "tests/test_axis_mirroring.py" ];
diff --git a/pkgs/development/python-modules/batchspawner/default.nix b/pkgs/development/python-modules/batchspawner/default.nix
index 87c6aa2cafbf7..d1844aaa144da 100644
--- a/pkgs/development/python-modules/batchspawner/default.nix
+++ b/pkgs/development/python-modules/batchspawner/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, jinja2
-, jupyterhub
-, pythonOlder
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  jinja2,
+  jupyterhub,
+  pythonOlder,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -44,12 +45,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "batchspawner"
-  ];
+  pythonImportsCheck = [ "batchspawner" ];
 
   meta = with lib; {
-    description = "A spawner for Jupyterhub to spawn notebooks using batch resource managers";
+    description = "Spawner for Jupyterhub to spawn notebooks using batch resource managers";
     mainProgram = "batchspawner-singleuser";
     homepage = "https://github.com/jupyterhub/batchspawner";
     changelog = "https://github.com/jupyterhub/batchspawner/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/baycomp/default.nix b/pkgs/development/python-modules/baycomp/default.nix
index 6ed381851535d..3eb45a2808eee 100644
--- a/pkgs/development/python-modules/baycomp/default.nix
+++ b/pkgs/development/python-modules/baycomp/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, scipy
-, scikit-learn
-, matplotlib
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  scipy,
+  scikit-learn,
+  matplotlib,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -28,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "baycomp" ];
 
   meta = {
-    description = "A library for Bayesian comparison of classifiers";
+    description = "Library for Bayesian comparison of classifiers";
     homepage = "https://github.com/janezd/baycomp";
     license = [ lib.licenses.mit ];
     maintainers = [ lib.maintainers.lucasew ];
diff --git a/pkgs/development/python-modules/bayesian-optimization/default.nix b/pkgs/development/python-modules/bayesian-optimization/default.nix
index dda52e8ebba81..f8cfa8af8b4ce 100644
--- a/pkgs/development/python-modules/bayesian-optimization/default.nix
+++ b/pkgs/development/python-modules/bayesian-optimization/default.nix
@@ -1,12 +1,13 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, scikit-learn
-, scipy
-, colorama
-, pytestCheckHook
-, pythonOlder
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  scikit-learn,
+  scipy,
+  colorama,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/bayespy/default.nix b/pkgs/development/python-modules/bayespy/default.nix
index ef82df7dfb950..7768dd5a8d7c5 100644
--- a/pkgs/development/python-modules/bayespy/default.nix
+++ b/pkgs/development/python-modules/bayespy/default.nix
@@ -1,30 +1,44 @@
-{ stdenv, lib, buildPythonPackage, fetchPypi, pythonOlder
-, pytestCheckHook, nose, glibcLocales, fetchpatch
-, numpy, scipy, matplotlib, h5py }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  numpy,
+  scipy,
+  h5py,
+  truncnorm,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "bayespy";
   version = "0.6.1";
-  format = "setuptools";
+  pyproject = true;
 
-  # Python 2 not supported and not some old Python 3 because MPL doesn't support
-  # them properly.
-  disabled = pythonOlder "3.4";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-3N8w/LiTLsDZbHp3z26FvDg3vStB2l3XkIWx+Mma1G0=";
+  src = fetchFromGitHub {
+    owner = "bayespy";
+    repo = "bayespy";
+    rev = "refs/tags/${version}";
+    hash = "sha256-X7CwJBrKHlU1jqMkt/7XEzaiwul1Yzkb/V64lXG4Aqo=";
   };
 
-  nativeCheckInputs = [ pytestCheckHook nose glibcLocales ];
+  postPatch = ''
+    substituteInPlace versioneer.py \
+      --replace-fail SafeConfigParser ConfigParser \
+      --replace-fail readfp read_file
+  '';
 
-  propagatedBuildInputs = [ numpy scipy matplotlib h5py ];
+  build-system = [ setuptools ];
 
-  disabledTests = [
-    # Assertion error
-    "test_message_to_parents"
+  dependencies = [
+    numpy
+    scipy
+    h5py
+    truncnorm
   ];
 
+  nativeCheckInputs = [ pytestCheckHook ];
+
   pythonImportsCheck = [ "bayespy" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/bbox/default.nix b/pkgs/development/python-modules/bbox/default.nix
index 5e601e43b564c..0a41bccf7111c 100644
--- a/pkgs/development/python-modules/bbox/default.nix
+++ b/pkgs/development/python-modules/bbox/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, matplotlib
-, numpy
-, pendulum
-, pillow
-, poetry-core
-, pyquaternion
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  matplotlib,
+  numpy,
+  pendulum,
+  pillow,
+  poetry-core,
+  pyquaternion,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-FrJ8FhlqwmnEB/QvPlkDfqZncNGPhwY9aagM9yv1LGs=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     pyquaternion
@@ -47,9 +46,7 @@ buildPythonPackage rec {
     "test_multi_jaccard_index_2d_performance"
   ];
 
-  pythonImportsCheck = [
-    "bbox"
-  ];
+  pythonImportsCheck = [ "bbox" ];
 
   meta = with lib; {
     description = "Python library for 2D/3D bounding boxes";
diff --git a/pkgs/development/python-modules/bc-detect-secrets/default.nix b/pkgs/development/python-modules/bc-detect-secrets/default.nix
index df19afca09d5a..3054ff681076b 100644
--- a/pkgs/development/python-modules/bc-detect-secrets/default.nix
+++ b/pkgs/development/python-modules/bc-detect-secrets/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, gibberish-detector
-, mock
-, pkgs
-, pyahocorasick
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, requests
-, responses
-, setuptools
-, unidiff
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gibberish-detector,
+  mock,
+  pkgs,
+  pyahocorasick,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  requests,
+  responses,
+  setuptools,
+  unidiff,
 }:
 
 buildPythonPackage rec {
   pname = "bc-detect-secrets";
-  version = "1.5.5";
+  version = "1.5.12";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,12 +26,10 @@ buildPythonPackage rec {
     owner = "bridgecrewio";
     repo = "detect-secrets";
     rev = "refs/tags/${version}";
-    hash = "sha256-05hxc34ecSoAp0GBVf9yq2BC928wxZOLZJHAbJ7cdtk=";
+    hash = "sha256-njTVA1H0QM0PHIHe/Vc4IJtbgTyWdytqPv0RRnTY6cw=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     pyyaml
@@ -39,12 +38,8 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    word_list = [
-      pyahocorasick
-    ];
-    gibberish = [
-      gibberish-detector
-    ];
+    word_list = [ pyahocorasick ];
+    gibberish = [ gibberish-detector ];
   };
 
   nativeCheckInputs = [
@@ -71,9 +66,7 @@ buildPythonPackage rec {
     "TestModifiesBaselineFromVersionChange"
   ];
 
-  pythonImportsCheck = [
-    "detect_secrets"
-  ];
+  pythonImportsCheck = [ "detect_secrets" ];
 
   meta = with lib; {
     description = "Tool to detect secrets in the code";
@@ -82,4 +75,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ fab ];
   };
 }
-
diff --git a/pkgs/development/python-modules/bc-jsonpath-ng/default.nix b/pkgs/development/python-modules/bc-jsonpath-ng/default.nix
index 2322f0407f9f8..2fd65621f1302 100644
--- a/pkgs/development/python-modules/bc-jsonpath-ng/default.nix
+++ b/pkgs/development/python-modules/bc-jsonpath-ng/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, decorator
-, fetchFromGitHub
-, ply
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  decorator,
+  fetchFromGitHub,
+  ply,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,18 +27,14 @@ buildPythonPackage rec {
     ply
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # Exclude tests that require oslotest
     "tests/test_jsonpath_rw_ext.py"
   ];
 
-  pythonImportsCheck = [
-    "bc_jsonpath_ng"
-  ];
+  pythonImportsCheck = [ "bc_jsonpath_ng" ];
 
   meta = with lib; {
     description = "JSONPath implementation for Python";
diff --git a/pkgs/development/python-modules/bc-python-hcl2/default.nix b/pkgs/development/python-modules/bc-python-hcl2/default.nix
index dc74d16127609..519a39c53baca 100644
--- a/pkgs/development/python-modules/bc-python-hcl2/default.nix
+++ b/pkgs/development/python-modules/bc-python-hcl2/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, lark
-, pynose
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  lark,
+  pynose,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,16 +26,12 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  dependencies = [
-    lark
-  ];
+  dependencies = [ lark ];
 
   # This fork of python-hcl2 doesn't ship tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "hcl2"
-  ];
+  pythonImportsCheck = [ "hcl2" ];
 
   meta = with lib; {
     description = "Parser for HCL2 written in Python using Lark";
diff --git a/pkgs/development/python-modules/bcdoc/default.nix b/pkgs/development/python-modules/bcdoc/default.nix
index b9af315895396..5d1c96392d0be 100644
--- a/pkgs/development/python-modules/bcdoc/default.nix
+++ b/pkgs/development/python-modules/bcdoc/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, docutils, six }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  docutils,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "bcdoc";
@@ -10,7 +16,10 @@ buildPythonPackage rec {
     sha256 = "f568c182e06883becf7196f227052435cffd45604700c82362ca77d3427b6202";
   };
 
-  buildInputs = [ docutils six ];
+  buildInputs = [
+    docutils
+    six
+  ];
 
   # Tests fail due to nix file timestamp normalization.
   doCheck = false;
diff --git a/pkgs/development/python-modules/bcf/default.nix b/pkgs/development/python-modules/bcf/default.nix
index 08fb7d4249bd0..f8a1f6825d8eb 100644
--- a/pkgs/development/python-modules/bcf/default.nix
+++ b/pkgs/development/python-modules/bcf/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, appdirs
-, click
-, colorama
-, intelhex
-, packaging
-, pyaml
-, pyftdi
-, pyserial
-, requests
-, schema
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  appdirs,
+  click,
+  colorama,
+  intelhex,
+  packaging,
+  pyaml,
+  pyftdi,
+  pyserial,
+  requests,
+  schema,
 }:
 buildPythonPackage rec {
   pname = "bcf";
diff --git a/pkgs/development/python-modules/bcg/default.nix b/pkgs/development/python-modules/bcg/default.nix
index c039a1e30072e..1855e95eddbaa 100644
--- a/pkgs/development/python-modules/bcg/default.nix
+++ b/pkgs/development/python-modules/bcg/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, appdirs
-, click
-, click-log
-, paho-mqtt
-, pyaml
-, pyserial
-, schema
-, simplejson
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  appdirs,
+  click,
+  click-log,
+  paho-mqtt,
+  pyaml,
+  pyserial,
+  schema,
+  simplejson,
 }:
 buildPythonPackage rec {
   pname = "bcg";
diff --git a/pkgs/development/python-modules/bch/default.nix b/pkgs/development/python-modules/bch/default.nix
index 2885cc47bfe10..b29e2f0dfe94d 100644
--- a/pkgs/development/python-modules/bch/default.nix
+++ b/pkgs/development/python-modules/bch/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, click
-, click-log
-, paho-mqtt
-, pyaml
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  click,
+  click-log,
+  paho-mqtt,
+  pyaml,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/bcrypt/3.nix b/pkgs/development/python-modules/bcrypt/3.nix
index fec467f983cc5..86b9361ff4ffe 100644
--- a/pkgs/development/python-modules/bcrypt/3.nix
+++ b/pkgs/development/python-modules/bcrypt/3.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, setuptools
-, isPyPy
-, fetchPypi
-, pythonOlder
-, cffi
-, pytestCheckHook
-, six
+{
+  lib,
+  buildPythonPackage,
+  setuptools,
+  isPyPy,
+  fetchPypi,
+  pythonOlder,
+  cffi,
+  pytestCheckHook,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -21,26 +22,18 @@ buildPythonPackage rec {
     hash = "sha256-QzxBDCF3BXcF2iqfLNAd0VdJOyp6wUyFk6FrPatra/s=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     six
     cffi
   ];
 
-  propagatedNativeBuildInputs = [
-    cffi
-  ];
+  propagatedNativeBuildInputs = [ cffi ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "bcrypt"
-  ];
+  pythonImportsCheck = [ "bcrypt" ];
 
   meta = with lib; {
     description = "Modern password hashing for your software and your servers";
diff --git a/pkgs/development/python-modules/bcrypt/default.nix b/pkgs/development/python-modules/bcrypt/default.nix
index a8f751056d906..396a9668b777c 100644
--- a/pkgs/development/python-modules/bcrypt/default.nix
+++ b/pkgs/development/python-modules/bcrypt/default.nix
@@ -1,33 +1,34 @@
-{ lib
-, buildPythonPackage
-, cargo
-, rustPlatform
-, rustc
-, setuptools
-, setuptools-rust
-, fetchPypi
-, pythonOlder
-, pytestCheckHook
-, libiconv
-, stdenv
+{
+  lib,
+  buildPythonPackage,
+  cargo,
+  rustPlatform,
+  rustc,
+  setuptools,
+  setuptools-rust,
+  fetchPypi,
+  pythonOlder,
+  pytestCheckHook,
+  libiconv,
+  stdenv,
   # for passthru.tests
-, asyncssh
-, django_4
-, fastapi
-, paramiko
-, twisted
+  asyncssh,
+  django_4,
+  fastapi,
+  paramiko,
+  twisted,
 }:
 
 buildPythonPackage rec {
   pname = "bcrypt";
-  version = "4.1.2";
+  version = "4.1.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MzE6EgCjrpC3VYfOrFArBIuED8aef3oJBbX4f6x6Elg=";
+    hash = "sha256-LuFd10n1lS/j8EMND/a3QILhWcUDMqFBPVG1aJzwZiM=";
   };
 
   cargoRoot = "src/_bcrypt";
@@ -35,7 +36,7 @@ buildPythonPackage rec {
     inherit src;
     sourceRoot = "${pname}-${version}/${cargoRoot}";
     name = "${pname}-${version}";
-    hash = "sha256-fTD1AKvyeni5ukYjK53gueKLey+rcIUjW/0R289xeb0=";
+    hash = "sha256-Uag1pUuis5lpnus2p5UrMLa4HP7VQLhKxR5TEMfpK0s=";
   };
 
   nativeBuildInputs = [
@@ -49,16 +50,18 @@ buildPythonPackage rec {
   # Remove when https://github.com/NixOS/nixpkgs/pull/190093 lands.
   buildInputs = lib.optional stdenv.isDarwin libiconv;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "bcrypt"
-  ];
+  pythonImportsCheck = [ "bcrypt" ];
 
   passthru.tests = {
-    inherit asyncssh django_4 fastapi paramiko twisted;
+    inherit
+      asyncssh
+      django_4
+      fastapi
+      paramiko
+      twisted
+      ;
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/bdffont/default.nix b/pkgs/development/python-modules/bdffont/default.nix
index f5cd8f9431211..c4ac42a60452f 100644
--- a/pkgs/development/python-modules/bdffont/default.nix
+++ b/pkgs/development/python-modules/bdffont/default.nix
@@ -1,42 +1,42 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, nix-update-script
-, hatch-vcs
-, hatchling
-, brotli
-, fonttools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytestCheckHook,
+  nix-update-script,
+  hatchling,
 }:
 
 buildPythonPackage rec {
   pname = "bdffont";
-  version = "0.0.20";
+  version = "0.0.26";
+  pyproject = true;
 
-  disabled = pythonOlder "3.11";
+  disabled = pythonOlder "3.10";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-T0gTtudsZmL0VZ3a3+C/v+dWAwbXUgf0PEdNtkxWROw=";
+    pname = "bdffont";
+    inherit version;
+    hash = "sha256-Q8IqwJmAYFicTX7RrVU9UvGZX+oaPb0RKlIFwArktXk=";
   };
 
-  format = "pyproject";
-
-  nativeBuildInputs = [
-    hatch-vcs
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
+  pythonImportsCheck = [ "bdffont" ];
+
   passthru.updateScript = nix-update-script { };
 
   meta = {
     homepage = "https://github.com/TakWolf/bdffont";
-    description = "A library for manipulating .bdf format fonts";
+    description = "A library for manipulating Glyph Bitmap Distribution Format (BDF) Fonts";
     platforms = lib.platforms.all;
     license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ h7x4 ];
+    maintainers = with lib.maintainers; [
+      TakWolf
+      h7x4
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/beaker/default.nix b/pkgs/development/python-modules/beaker/default.nix
index b55b8ce93c69f..a369c25e8970d 100644
--- a/pkgs/development/python-modules/beaker/default.nix
+++ b/pkgs/development/python-modules/beaker/default.nix
@@ -1,44 +1,47 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, glibcLocales
-, nose
-, pylibmc
-, python-memcached
-, redis
-, pymongo
-, mock
-, webtest
-, sqlalchemy
-, pycrypto
-, cryptography
-, isPy27
-, isPy3k
-, funcsigs ? null
-, pycryptopp ? null
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  glibcLocales,
+  nose,
+  pylibmc,
+  python-memcached,
+  redis,
+  pymongo,
+  mock,
+  webtest,
+  sqlalchemy,
+  pycrypto,
+  cryptography,
+  isPy27,
+  isPy3k,
+  funcsigs ? null,
+  pycryptopp ? null,
 }:
 
 buildPythonPackage rec {
   pname = "beaker";
-  version = "1.11.0";
+  version = "1.13.0";
 
   # The pypy release do not contains the tests
   src = fetchFromGitHub {
     owner = "bbangert";
     repo = "beaker";
-    rev = version;
-    sha256 = "059sc7iar90lc2y9mppdis5ddfcxyirz03gmsfb0307f5dsa1dhj";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-HzjhOPXElwKoJLrhGIbVn798tbX/kaS1EpQIX+vXCtE=";
   };
 
-  propagatedBuildInputs = [
-    sqlalchemy
-    pycrypto
-    cryptography
-  ] ++ lib.optionals (isPy27) [
-    funcsigs
-    pycryptopp
-  ];
+  propagatedBuildInputs =
+    [
+      sqlalchemy
+      pycrypto
+      cryptography
+    ]
+    ++ lib.optionals (isPy27) [
+      funcsigs
+      pycryptopp
+    ];
 
   nativeCheckInputs = [
     glibcLocales
@@ -69,12 +72,10 @@ buildPythonPackage rec {
   '';
 
   meta = {
-    description = "A Session and Caching library with WSGI Middleware";
+    description = "Session and Caching library with WSGI Middleware";
     homepage = "https://github.com/bbangert/beaker";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ domenkozar ];
-    knownVulnerabilities = [
-      "CVE-2013-7489"
-    ];
+    knownVulnerabilities = [ "CVE-2013-7489" ];
   };
 }
diff --git a/pkgs/development/python-modules/beancount-black/default.nix b/pkgs/development/python-modules/beancount-black/default.nix
index f1e1ee3a4b02b..4196997a0c95b 100644
--- a/pkgs/development/python-modules/beancount-black/default.nix
+++ b/pkgs/development/python-modules/beancount-black/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
-, beancount-parser
-, click
-, poetry-core
-, pytestCheckHook
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  beancount-parser,
+  click,
+  poetry-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "beancount-black";
-  version = "0.2.1";
+  version = "1.0.2";
 
   disabled = pythonOlder "3.9";
   format = "pyproject";
@@ -19,25 +20,19 @@ buildPythonPackage rec {
     owner = "LaunchPlatform";
     repo = "beancount-black";
     rev = version;
-    hash = "sha256-wvAQnwnyHn5Koc/UN4zpJ3JDmFbDoUrpCTmJCpSP7Mg=";
+    hash = "sha256-SoAic9UYKE9lhMpl44VosJmmjKJjDrKOyMeUO931Ztg=";
   };
 
-  buildInputs = [
-    poetry-core
-  ];
+  buildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     beancount-parser
     click
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "beancount_black"
-  ];
+  pythonImportsCheck = [ "beancount_black" ];
 
   meta = with lib; {
     description = "Opinioned code formatter for Beancount";
diff --git a/pkgs/development/python-modules/beancount-docverif/default.nix b/pkgs/development/python-modules/beancount-docverif/default.nix
index d614b2f12d4f0..e78db14aa2424 100644
--- a/pkgs/development/python-modules/beancount-docverif/default.nix
+++ b/pkgs/development/python-modules/beancount-docverif/default.nix
@@ -1,7 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi
-, setuptools-scm
-, beancount
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  beancount,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -15,30 +18,24 @@ buildPythonPackage rec {
     hash = "sha256-CFBv1FZP5JO+1MPnD86ttrO42zZlvE157zqig7s4HOg=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    beancount
-  ];
+  propagatedBuildInputs = [ beancount ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     homepage = "https://github.com/siriobalmelli/beancount_docverif";
     description = "Document verification plugin for Beancount";
     longDescription = ''
-        Docverif is the "Document Verification" plugin for beancount, fulfilling the following functions:
+      Docverif is the "Document Verification" plugin for beancount, fulfilling the following functions:
 
-        - Require that every transaction touching an account have an accompanying document on disk.
-        - Explicitly declare the name of a document accompanying a transaction.
-        - Explicitly declare that a transaction is expected not to have an accompanying document.
-        - Look for an "implicit" PDF document matching transaction data.
-        - Associate (and require) a document with any type of entry, including open entries themselves.
-        - Guarantee integrity: verify that every document declared does in fact exist on disk.
+      - Require that every transaction touching an account have an accompanying document on disk.
+      - Explicitly declare the name of a document accompanying a transaction.
+      - Explicitly declare that a transaction is expected not to have an accompanying document.
+      - Look for an "implicit" PDF document matching transaction data.
+      - Associate (and require) a document with any type of entry, including open entries themselves.
+      - Guarantee integrity: verify that every document declared does in fact exist on disk.
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ siriobalmelli ];
diff --git a/pkgs/development/python-modules/beancount-parser/default.nix b/pkgs/development/python-modules/beancount-parser/default.nix
index b7fe986209fba..3493a7f61143b 100644
--- a/pkgs/development/python-modules/beancount-parser/default.nix
+++ b/pkgs/development/python-modules/beancount-parser/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
-, lark
-, poetry-core
-, pytestCheckHook
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  lark,
+  poetry-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "beancount-parser";
-  version = "0.2.0";
+  version = "1.2.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -18,24 +19,16 @@ buildPythonPackage rec {
     owner = "LaunchPlatform";
     repo = "beancount-parser";
     rev = "refs/tags/${version}";
-    hash = "sha256-VSl+Jde/mDSUpICXjmPKID6qZiKUUaK8ixztP1qaoDM=";
+    hash = "sha256-8YcrsLdSRTixKXU/IM821kNcBo0jB/8DXA1/KiedsBY=";
   };
 
-  buildInputs = [
-    poetry-core
-  ];
+  buildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    lark
-  ];
+  propagatedBuildInputs = [ lark ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "beancount_parser"
-  ];
+  pythonImportsCheck = [ "beancount_parser" ];
 
   meta = with lib; {
     description = "Standalone Lark based Beancount syntax parser";
diff --git a/pkgs/development/python-modules/beancount/default.nix b/pkgs/development/python-modules/beancount/default.nix
index ef415aa83d7af..b0e9c97c5d1a2 100644
--- a/pkgs/development/python-modules/beancount/default.nix
+++ b/pkgs/development/python-modules/beancount/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-, beautifulsoup4
-, bottle
-, chardet
-, python-dateutil
-, google-api-python-client
-, google-auth-oauthlib
-, lxml
-, oauth2client
-, ply
-, pytest
-, python-magic
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  beautifulsoup4,
+  bottle,
+  chardet,
+  python-dateutil,
+  google-api-python-client,
+  google-auth-oauthlib,
+  lxml,
+  oauth2client,
+  ply,
+  pytest,
+  python-magic,
+  requests,
 }:
 
 buildPythonPackage rec {
-  version = "2.3.6";
+  version = "3.0.0";
   format = "setuptools";
   pname = "beancount";
 
@@ -25,7 +26,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gB+Tvta1fS4iQ2aIxInVob8fduIQ887RhoB1fmDTR1o=";
+    hash = "sha256-z2aGhpx+o+78CU7hPthmv196K7DGHk1PXfPjX4Rs/98=";
   };
 
   # Tests require files not included in the PyPI archive.
@@ -52,9 +53,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/beancount/beancount";
     description = "Double-entry bookkeeping computer language";
     longDescription = ''
-        A double-entry bookkeeping computer language that lets you define
-        financial transaction records in a text file, read them in memory,
-        generate a variety of reports from them, and provides a web interface.
+      A double-entry bookkeeping computer language that lets you define
+      financial transaction records in a text file, read them in memory,
+      generate a variety of reports from them, and provides a web interface.
     '';
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ bhipple ];
diff --git a/pkgs/development/python-modules/beanhub-cli/default.nix b/pkgs/development/python-modules/beanhub-cli/default.nix
new file mode 100644
index 0000000000000..5573d7618a234
--- /dev/null
+++ b/pkgs/development/python-modules/beanhub-cli/default.nix
@@ -0,0 +1,75 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  pytestCheckHook,
+  beancount-black,
+  beancount-parser,
+  beanhub-forms,
+  beanhub-import,
+  click,
+  fastapi,
+  httpx,
+  jinja2,
+  poetry-core,
+  pydantic,
+  pydantic-core,
+  pydantic-settings,
+  pytz,
+  pyyaml,
+  rich,
+  starlette-wtf,
+  uvicorn,
+}:
+
+buildPythonPackage rec {
+  pname = "beanhub-cli";
+  version = "1.1.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "LaunchPlatform";
+    repo = "beanhub-cli";
+    rev = "refs/tags/${version}";
+    hash = "sha256-vYBbaUVJAs+aIp6aQpJb62DEDxe/sQTzgOkjPq6ADoc=";
+  };
+
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    beancount-black
+    beancount-parser
+    beanhub-forms
+    beanhub-import
+    click
+    fastapi
+    jinja2
+    pydantic
+    pydantic-core
+    pydantic-settings
+    pytz
+    pyyaml
+    rich
+    starlette-wtf
+    uvicorn
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    httpx
+  ];
+
+  pythonImportsCheck = [ "beanhub_cli" ];
+
+  meta = {
+    description = "Command line tools for BeanHub or Beancount users";
+    mainProgram = "bh";
+    homepage = "https://github.com/LaunchPlatform/beanhub-cli/";
+    changelog = "https://github.com/LaunchPlatform/beanhub-cli/releases/tag/${version}";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ fangpen ];
+  };
+}
diff --git a/pkgs/development/python-modules/beanhub-extract/default.nix b/pkgs/development/python-modules/beanhub-extract/default.nix
new file mode 100644
index 0000000000000..31ca5b48bca0d
--- /dev/null
+++ b/pkgs/development/python-modules/beanhub-extract/default.nix
@@ -0,0 +1,40 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  pytestCheckHook,
+  poetry-core,
+  pytz,
+}:
+
+buildPythonPackage rec {
+  pname = "beanhub-extract";
+  version = "0.0.7";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "LaunchPlatform";
+    repo = "beanhub-extract";
+    rev = "refs/tags/${version}";
+    hash = "sha256-Wt8ZCyCaERNXEd0/Q89QWUW/wGFSHAP2RZLhnv5xkgY=";
+  };
+
+  build-system = [ poetry-core ];
+
+  dependencies = [ pytz ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "beanhub_extract" ];
+
+  meta = {
+    description = "Simple library for extracting all kind of bank account transaction export files, mostly for beanhub-import to ingest and generate transactions";
+    homepage = "https://github.com/LaunchPlatform/beanhub-extract/";
+    changelog = "https://github.com/LaunchPlatform/beanhub-extract/releases/tag/${version}";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ fangpen ];
+  };
+}
diff --git a/pkgs/development/python-modules/beanhub-forms/default.nix b/pkgs/development/python-modules/beanhub-forms/default.nix
new file mode 100644
index 0000000000000..2482d0306e7cf
--- /dev/null
+++ b/pkgs/development/python-modules/beanhub-forms/default.nix
@@ -0,0 +1,52 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  pytestCheckHook,
+  jinja2,
+  multidict,
+  poetry-core,
+  pydantic,
+  pyyaml,
+  wtforms,
+}:
+
+buildPythonPackage rec {
+  pname = "beanhub-forms";
+  version = "0.1.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "LaunchPlatform";
+    repo = "beanhub-forms";
+    rev = "refs/tags/${version}";
+    hash = "sha256-313c+ENmTe1LyfEiMXNB9AUoGx3Yv/1D0T3HnAbd+Zw=";
+  };
+
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    jinja2
+    pydantic
+    pyyaml
+    wtforms
+  ];
+
+  nativeCheckInputs = [
+    multidict
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "beanhub_forms" ];
+
+  meta = {
+    description = "Library for generating and processing BeanHub's custom forms";
+    homepage = "https://github.com/LaunchPlatform/beanhub-forms/";
+    changelog = "https://github.com/LaunchPlatform/beanhub-forms/releases/tag/${version}";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ fangpen ];
+  };
+}
diff --git a/pkgs/development/python-modules/beanhub-import/default.nix b/pkgs/development/python-modules/beanhub-import/default.nix
new file mode 100644
index 0000000000000..4d205ebb54a6c
--- /dev/null
+++ b/pkgs/development/python-modules/beanhub-import/default.nix
@@ -0,0 +1,54 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  pytestCheckHook,
+  beancount-black,
+  beancount-parser,
+  beanhub-extract,
+  jinja2,
+  poetry-core,
+  pydantic,
+  pytz,
+  pyyaml,
+}:
+
+buildPythonPackage rec {
+  pname = "beanhub-import";
+  version = "0.1.5";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "LaunchPlatform";
+    repo = "beanhub-import";
+    rev = "refs/tags/${version}";
+    hash = "sha256-BH+d7cKC83b7T2Z1Xlwpsv3KACo1vDn6v65tElhir/c=";
+  };
+
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    beancount-black
+    beancount-parser
+    beanhub-extract
+    jinja2
+    pydantic
+    pytz
+    pyyaml
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "beanhub_import" ];
+
+  meta = {
+    description = "Declarative idempotent rule-based Beancount transaction import engine in Python";
+    homepage = "https://github.com/LaunchPlatform/beanhub-import/";
+    changelog = "https://github.com/LaunchPlatform/beanhub-import/releases/tag/${version}";
+    license = with lib.licenses; [ mit ];
+    maintainers = with lib.maintainers; [ fangpen ];
+  };
+}
diff --git a/pkgs/development/python-modules/beanstalkc/default.nix b/pkgs/development/python-modules/beanstalkc/default.nix
index c0590651ded83..ce9d606553ef8 100644
--- a/pkgs/development/python-modules/beanstalkc/default.nix
+++ b/pkgs/development/python-modules/beanstalkc/default.nix
@@ -1,4 +1,8 @@
-{ lib, fetchFromGitHub, buildPythonPackage }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+}:
 
 buildPythonPackage rec {
   pname = "beanstalkc";
@@ -15,7 +19,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A simple beanstalkd client library for Python";
+    description = "Simple beanstalkd client library for Python";
     maintainers = with maintainers; [ aanderse ];
     license = licenses.asl20;
     homepage = "https://github.com/earl/beanstalkc";
diff --git a/pkgs/development/python-modules/beartype/default.nix b/pkgs/development/python-modules/beartype/default.nix
index ac4a0947e28b5..f9382892a51d9 100644
--- a/pkgs/development/python-modules/beartype/default.nix
+++ b/pkgs/development/python-modules/beartype/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pytestCheckHook
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pytestCheckHook,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -19,18 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-Jk3cLx2p7JT/Y5FB++M9IuEqn3WqhjuDtwRv//E4GSc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytestCheckHook
     typing-extensions
   ];
 
-  pythonImportsCheck = [
-    "beartype"
-  ];
+  pythonImportsCheck = [ "beartype" ];
 
   meta = with lib; {
     description = "Fast runtime type checking for Python";
diff --git a/pkgs/development/python-modules/beautiful-date/default.nix b/pkgs/development/python-modules/beautiful-date/default.nix
index 05ebf87f2a05c..ed34ae4688261 100644
--- a/pkgs/development/python-modules/beautiful-date/default.nix
+++ b/pkgs/development/python-modules/beautiful-date/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, freezegun
-, python-dateutil
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  freezegun,
+  python-dateutil,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-e6YJBaDwWqVehxBPOvsIdV4FIXlIwj29H5untXGJvT0=";
   };
 
-  propagatedBuildInputs = [
-    python-dateutil
-  ];
+  propagatedBuildInputs = [ python-dateutil ];
 
   nativeCheckInputs = [
     freezegun
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "beautiful_date"
-  ];
+  pythonImportsCheck = [ "beautiful_date" ];
 
   meta = with lib; {
     description = "Simple and beautiful way to create date and datetime objects";
diff --git a/pkgs/development/python-modules/beautifulsoup4/default.nix b/pkgs/development/python-modules/beautifulsoup4/default.nix
index 75ae136d2887b..4ebcfd4128df6 100644
--- a/pkgs/development/python-modules/beautifulsoup4/default.nix
+++ b/pkgs/development/python-modules/beautifulsoup4/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, chardet
-, hatchling
-, html5lib
-, lxml
-, pytestCheckHook
-, pythonOlder
-, soupsieve
-, sphinxHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  chardet,
+  hatchling,
+  html5lib,
+  lxml,
+  pytestCheckHook,
+  pythonOlder,
+  soupsieve,
+  sphinxHook,
 
-# for passthru.tests
-, html-sanitizer
-, markdownify
-, mechanicalsoup
-, nbconvert
-, subliminal
-, wagtail
+  # for passthru.tests
+  html-sanitizer,
+  markdownify,
+  mechanicalsoup,
+  nbconvert,
+  subliminal,
+  wagtail,
 }:
 
 buildPythonPackage rec {
@@ -24,7 +25,10 @@ buildPythonPackage rec {
   version = "4.12.3";
   pyproject = true;
 
-  outputs = ["out" "doc"];
+  outputs = [
+    "out"
+    "doc"
+  ];
 
   disabled = pythonOlder "3.6";
 
@@ -44,29 +48,25 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    html5lib = [
-      html5lib
-    ];
-    lxml = [
-      lxml
-    ];
+    html5lib = [ html5lib ];
+    lxml = [ lxml ];
   };
 
   nativeCheckInputs = [
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "bs4"
-  ];
+  pythonImportsCheck = [ "bs4" ];
 
   passthru.tests = {
-    inherit html-sanitizer
+    inherit
+      html-sanitizer
       markdownify
       mechanicalsoup
       nbconvert
       subliminal
-      wagtail;
+      wagtail
+      ;
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/beautifultable/default.nix b/pkgs/development/python-modules/beautifultable/default.nix
index 97b13414f36b6..9b1544ae2bd05 100644
--- a/pkgs/development/python-modules/beautifultable/default.nix
+++ b/pkgs/development/python-modules/beautifultable/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, wcwidth
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  wcwidth,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,21 +21,13 @@ buildPythonPackage rec {
     hash = "sha256-/SReCEvSwiNjBoz/3tGJ9zUNBAag4mLsHlUXwm47zCw=";
   };
 
-  propagatedBuildInputs = [
-    wcwidth
-  ];
+  propagatedBuildInputs = [ wcwidth ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "test.py"
-  ];
+  pytestFlagsArray = [ "test.py" ];
 
-  pythonImportsCheck = [
-    "beautifultable"
-  ];
+  pythonImportsCheck = [ "beautifultable" ];
 
   meta = with lib; {
     description = "Python package for printing visually appealing tables";
diff --git a/pkgs/development/python-modules/beautysh/default.nix b/pkgs/development/python-modules/beautysh/default.nix
index c41414075f381..8c8af617f833b 100644
--- a/pkgs/development/python-modules/beautysh/default.nix
+++ b/pkgs/development/python-modules/beautysh/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, colorama
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, pytestCheckHook
-, setuptools
-, types-colorama
-, types-setuptools
+{
+  lib,
+  buildPythonPackage,
+  colorama,
+  fetchFromGitHub,
+  fetchpatch,
+  poetry-core,
+  pytest7CheckHook,
+  setuptools,
+  types-colorama,
+  types-setuptools,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
       --replace 'types-setuptools = "^57.4.0"' 'types-setuptools = "*"'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     colorama
@@ -47,13 +46,9 @@ buildPythonPackage rec {
     types-setuptools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytest7CheckHook ];
 
-  pythonImportsCheck = [
-    "beautysh"
-  ];
+  pythonImportsCheck = [ "beautysh" ];
 
   meta = with lib; {
     description = "Tool for beautifying Bash scripts";
diff --git a/pkgs/development/python-modules/bech32/default.nix b/pkgs/development/python-modules/bech32/default.nix
index 37a120a042c3a..53c7bc5ec91d1 100644
--- a/pkgs/development/python-modules/bech32/default.nix
+++ b/pkgs/development/python-modules/bech32/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 buildPythonPackage rec {
   pname = "bech32";
diff --git a/pkgs/development/python-modules/before-after/default.nix b/pkgs/development/python-modules/before-after/default.nix
index 3dc6c400693d6..6756580f5a779 100644
--- a/pkgs/development/python-modules/before-after/default.nix
+++ b/pkgs/development/python-modules/before-after/default.nix
@@ -1,4 +1,10 @@
-{ buildPythonPackage, fetchPypi, fetchpatch, pytestCheckHook, lib }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  pytestCheckHook,
+  lib,
+}:
 
 buildPythonPackage rec {
   pname = "before-after";
diff --git a/pkgs/development/python-modules/behave/default.nix b/pkgs/development/python-modules/behave/default.nix
index 942981d004c91..21b6d7b692607 100644
--- a/pkgs/development/python-modules/behave/default.nix
+++ b/pkgs/development/python-modules/behave/default.nix
@@ -1,8 +1,20 @@
-{ lib, stdenv, fetchFromGitHub
-, buildPythonPackage, python
-, pytestCheckHook, mock, path, pyhamcrest, pytest-html
-, glibcLocales
-, colorama, cucumber-tag-expressions, parse, parse-type, six
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  python,
+  pytestCheckHook,
+  mock,
+  path,
+  pyhamcrest,
+  pytest-html,
+  glibcLocales,
+  colorama,
+  cucumber-tag-expressions,
+  parse,
+  parse-type,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +29,13 @@ buildPythonPackage rec {
     hash = "sha256-B8PUN1Q4UAsDWrHjPZDlpaPjCKjI/pAogCSI+BQnaWs=";
   };
 
-  nativeCheckInputs = [ pytestCheckHook mock path pyhamcrest pytest-html ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    mock
+    path
+    pyhamcrest
+    pytest-html
+  ];
 
   # upstream tests are failing, so instead we only check if we can import it
   doCheck = false;
@@ -25,7 +43,13 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "behave" ];
 
   buildInputs = [ glibcLocales ];
-  propagatedBuildInputs = [ colorama cucumber-tag-expressions parse parse-type six ];
+  propagatedBuildInputs = [
+    colorama
+    cucumber-tag-expressions
+    parse
+    parse-type
+    six
+  ];
 
   postPatch = ''
     patchShebangs bin
@@ -49,6 +73,9 @@ buildPythonPackage rec {
     description = "behaviour-driven development, Python style";
     mainProgram = "behave";
     license = licenses.bsd2;
-    maintainers = with maintainers; [ alunduil maxxk ];
+    maintainers = with maintainers; [
+      alunduil
+      maxxk
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/bellows/default.nix b/pkgs/development/python-modules/bellows/default.nix
index 38c938bb74247..9d95e4ecd957b 100644
--- a/pkgs/development/python-modules/bellows/default.nix
+++ b/pkgs/development/python-modules/bellows/default.nix
@@ -1,24 +1,24 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, click
-, click-log
-, fetchFromGitHub
-, fetchpatch2
-, pure-pcapy3
-, pyserial-asyncio
-, pytest-asyncio
-, pytest-timeout
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, voluptuous
-, zigpy
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  click,
+  click-log,
+  fetchFromGitHub,
+  pure-pcapy3,
+  pyserial-asyncio,
+  pytest-asyncio,
+  pytest-timeout,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  voluptuous,
+  zigpy,
 }:
 
 buildPythonPackage rec {
   pname = "bellows";
-  version = "0.38.1";
+  version = "0.39.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,25 +27,16 @@ buildPythonPackage rec {
     owner = "zigpy";
     repo = "bellows";
     rev = "refs/tags/${version}";
-    hash = "sha256-oxPzjDb+FdHeHsgeGKH3SVvKb0vCB9dIhT7lGzhDcBw=";
+    hash = "sha256-e7DGAA2/6tc2+iH/14y/QT7k9a7pgrE5bplTPL3xm2Q=";
   };
 
-  patches = [
-    (fetchpatch2 {
-      url = "https://github.com/zigpy/bellows/commit/7833647083f27f55b7ad345f4aaa7dffaa369abc.patch";
-      hash = "sha256-v+BOPqikWoyNtZ1qRWe3RwraG6nQnfZqoV6yj9PpGX8=";
-    })
-  ];
-
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace-fail '"setuptools-git-versioning<2"' "" \
       --replace-fail 'dynamic = ["version"]' 'version = "${version}"'
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     click
@@ -54,9 +45,7 @@ buildPythonPackage rec {
     pyserial-asyncio
     voluptuous
     zigpy
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    async-timeout
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -64,9 +53,7 @@ buildPythonPackage rec {
     pytest-timeout
   ];
 
-  pythonImportsCheck = [
-    "bellows"
-  ];
+  pythonImportsCheck = [ "bellows" ];
 
   meta = with lib; {
     description = "Python module to implement EZSP for EmberZNet devices";
diff --git a/pkgs/development/python-modules/bencode-py/default.nix b/pkgs/development/python-modules/bencode-py/default.nix
index 4a2dfc5c320f6..7221c1e42c0cd 100644
--- a/pkgs/development/python-modules/bencode-py/default.nix
+++ b/pkgs/development/python-modules/bencode-py/default.nix
@@ -17,22 +17,16 @@ buildPythonPackage rec {
     hash = "sha256-KiTM2hclpRplCJPQtjJgE4NZ6qKZu256CZYTUKKm4Fw=";
   };
 
-  pythonImportsCheck = [
-    "bencodepy"
-  ];
+  pythonImportsCheck = [ "bencodepy" ];
 
-  nativeBuildInputs = [
-    pbr
-  ];
+  nativeBuildInputs = [ pbr ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Simple bencode parser (for Python 2, Python 3 and PyPy)";
     homepage = "https://github.com/fuzeman/bencode.py";
     license = licenses.bitTorrent11;
-    maintainers = with maintainers; [vamega];
+    maintainers = with maintainers; [ vamega ];
   };
 }
diff --git a/pkgs/development/python-modules/bencoder/default.nix b/pkgs/development/python-modules/bencoder/default.nix
index 2fa730630c0b4..971588282320a 100644
--- a/pkgs/development/python-modules/bencoder/default.nix
+++ b/pkgs/development/python-modules/bencoder/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, setuptools
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  setuptools,
 }:
 buildPythonPackage rec {
   pname = "bencoder";
@@ -19,7 +20,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A simple bencode decoder/encoder library in pure Python";
+    description = "Simple bencode decoder/encoder library in pure Python";
     homepage = "https://github.com/utdemir/bencoder";
     license = licenses.gpl2;
     maintainers = with maintainers; [ somasis ];
diff --git a/pkgs/development/python-modules/beniget/default.nix b/pkgs/development/python-modules/beniget/default.nix
index 5868378f8d371..3e3e104a9062e 100644
--- a/pkgs/development/python-modules/beniget/default.nix
+++ b/pkgs/development/python-modules/beniget/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, gast
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  gast,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     sha256 = "75554b3b8ad0553ce2f607627dad3d95c60c441189875b98e097528f8e23ac0c";
   };
 
-  propagatedBuildInputs = [
-    gast
-  ];
+  propagatedBuildInputs = [ gast ];
 
   meta = {
     description = "Extract semantic information about static Python code";
diff --git a/pkgs/development/python-modules/bentoml/default.nix b/pkgs/development/python-modules/bentoml/default.nix
index 6946f45e050f9..ab5d4025dbf99 100644
--- a/pkgs/development/python-modules/bentoml/default.nix
+++ b/pkgs/development/python-modules/bentoml/default.nix
@@ -1,75 +1,82 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, hatch-vcs
-, aiohttp
-, attrs
-, cattrs
-, circus
-, click
-, click-option-group
-, cloudpickle
-, deepmerge
-, fs
-, httpx
-, inflection
-, jinja2
-, numpy
-, opentelemetry-api
-, opentelemetry-instrumentation
-, opentelemetry-instrumentation-aiohttp-client
-, opentelemetry-instrumentation-asgi
-, opentelemetry-sdk
-, opentelemetry-semantic-conventions
-, opentelemetry-util-http
-, packaging
-, pathspec
-, pip-requirements-parser
-, pip-tools
-, prometheus-client
-, psutil
-, nvidia-ml-py
-, python-dateutil
-, python-json-logger
-, python-multipart
-, pyyaml
-, requests
-, rich
-, schema
-, simple-di
-, starlette
-, uvicorn
-, watchfiles
-, fs-s3fs
-, grpcio
-, grpcio-health-checking
-, opentelemetry-instrumentation-grpc
-, protobuf
-, grpcio-channelz
-, grpcio-reflection
-, filetype
-, pillow
-, pydantic
-, pandas
-, pyarrow
-, opentelemetry-exporter-otlp-proto-http
-# https://pypi.org/project/opentelemetry-exporter-jaeger-proto-grpc/
-# , opentelemetry-exporter-jaeger # support for this exporter ends in july 2023
-, opentelemetry-exporter-otlp
-# , opentelemetry-exporter-zipkin
-, tritonclient
-# native check inputs
-, pytestCheckHook
-, scikit-learn
-, lxml
-, orjson
-, pytest-asyncio
-, fastapi
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pythonRelaxDepsHook,
+  hatchling,
+  hatch-vcs,
+  aiohttp,
+  attrs,
+  cattrs,
+  circus,
+  click,
+  click-option-group,
+  cloudpickle,
+  deepmerge,
+  fs,
+  httpx,
+  httpx-ws,
+  inflection,
+  jinja2,
+  numpy,
+  nvidia-ml-py,
+  opentelemetry-api,
+  opentelemetry-instrumentation,
+  opentelemetry-instrumentation-aiohttp-client,
+  opentelemetry-instrumentation-asgi,
+  opentelemetry-sdk,
+  opentelemetry-semantic-conventions,
+  opentelemetry-util-http,
+  packaging,
+  pathspec,
+  pip-requirements-parser,
+  pip-tools,
+  prometheus-client,
+  psutil,
+  python-dateutil,
+  python-json-logger,
+  python-multipart,
+  pyyaml,
+  rich,
+  schema,
+  simple-di,
+  starlette,
+  tomli,
+  tomli-w,
+  uvicorn,
+  watchfiles,
+  fs-s3fs,
+  grpcio,
+  grpcio-health-checking,
+  opentelemetry-instrumentation-grpc,
+  protobuf,
+  grpcio-channelz,
+  grpcio-reflection,
+  pillow,
+  pydantic,
+  pandas,
+  pyarrow,
+  opentelemetry-exporter-otlp-proto-http,
+  # https://pypi.org/project/opentelemetry-exporter-jaeger-proto-grpc/
+  # , opentelemetry-exporter-jaeger # support for this exporter ends in july 2023
+  opentelemetry-exporter-otlp,
+  # , opentelemetry-exporter-zipkin
+  tritonclient,
+  # native check inputs
+  pytestCheckHook,
+  pytest-xdist,
+  google-api-python-client,
+  scikit-learn,
+  lxml,
+  orjson,
+  pytest-asyncio,
+  fastapi,
 }:
 
 let
-  version = "1.2.5";
+  version = "1.2.18";
   aws = [ fs-s3fs ];
   grpc = [
     grpcio
@@ -77,53 +84,72 @@ let
     opentelemetry-instrumentation-grpc
     protobuf
   ];
-  io-file = [ filetype ];
-  io-image = io-file ++ [ pillow ];
-  io-json = [ pydantic ];
-  io-pandas = [ pandas pyarrow ];
+  io-image = [ pillow ];
+  io-pandas = [
+    pandas
+    pyarrow
+  ];
   grpc-reflection = grpc ++ [ grpcio-reflection ];
   grpc-channelz = grpc ++ [ grpcio-channelz ];
   monitor-otlp = [ opentelemetry-exporter-otlp-proto-http ];
   # tracing-jaeger = [ opentelemetry-exporter-jaeger ];
   tracing-otlp = [ opentelemetry-exporter-otlp ];
   # tracing-zipkin = [ opentelemetry-exporter-zipkin ];
-  io = io-json ++ io-image ++ io-pandas ++ io-file;
+  io = io-image ++ io-pandas;
   tracing = tracing-otlp; # ++ tracing-zipkin ++ tracing-jaeger
   optional-dependencies = {
     all = aws ++ io ++ grpc ++ grpc-reflection ++ grpc-channelz ++ tracing ++ monitor-otlp;
-    inherit aws grpc io-file io-image io-json io-pandas io grpc-reflection
-      grpc-channelz monitor-otlp tracing-otlp tracing;
-    triton = [ tritonclient ] ++ tritonclient.optional-dependencies.http ++ tritonclient.optional-dependencies.grpc;
+    inherit
+      aws
+      grpc
+      io-image
+      io-pandas
+      io
+      grpc-reflection
+      grpc-channelz
+      monitor-otlp
+      tracing-otlp
+      tracing
+      ;
+    triton =
+      [ tritonclient ]
+      ++ lib.optionals stdenv.hostPlatform.isLinux (
+        tritonclient.optional-dependencies.http ++ tritonclient.optional-dependencies.grpc
+      );
   };
 in
 buildPythonPackage {
   pname = "bentoml";
   inherit version;
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "bentoml";
     repo = "BentoML";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GBKxyjCs02mxYiMK4GhgFUATRCUSVf8mFbWjuPVD7SU=";
+    hash = "sha256-giZteSikwS9YEcVMPCC9h2khbBgvUPRW1biAyixO13Y=";
   };
 
-  # https://github.com/bentoml/BentoML/pull/4227 should fix this test
-  postPatch = ''
-    substituteInPlace tests/unit/_internal/utils/test_analytics.py \
-      --replace "requests" "httpx"
-  '';
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   pythonRelaxDeps = [
+    "cattrs"
+    "nvidia-ml-py"
+    "opentelemetry-api"
+    "opentelemetry-instrumentation-aiohttp-client"
+    "opentelemetry-instrumentation-asgi"
+    "opentelemetry-instrumentation"
+    "opentelemetry-sdk"
     "opentelemetry-semantic-conventions"
+    "opentelemetry-util-http"
   ];
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
     hatch-vcs
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     attrs
     cattrs
@@ -134,9 +160,11 @@ buildPythonPackage {
     deepmerge
     fs
     httpx
+    httpx-ws
     inflection
     jinja2
     numpy
+    nvidia-ml-py
     opentelemetry-api
     opentelemetry-instrumentation
     opentelemetry-instrumentation-aiohttp-client
@@ -150,21 +178,21 @@ buildPythonPackage {
     pip-tools
     prometheus-client
     psutil
-    nvidia-ml-py
+    pydantic
     python-dateutil
     python-json-logger
     python-multipart
     pyyaml
-    requests
     rich
     schema
     simple-di
     starlette
+    tomli-w
     uvicorn
     watchfiles
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
-  passthru.optional-dependencies = optional-dependencies;
+  inherit optional-dependencies;
 
   pythonImportsCheck = [ "bentoml" ];
 
@@ -185,26 +213,29 @@ buildPythonPackage {
   ];
 
   nativeCheckInputs = [
-    pytestCheckHook
-    pandas
-    pydantic
-    scikit-learn
+    fastapi
+    google-api-python-client
     lxml
     orjson
-    pytest-asyncio
+    pandas
     pillow
-    fastapi
-    starlette
+    pytest-asyncio
+    pytest-xdist
+    pytestCheckHook
+    scikit-learn
   ] ++ optional-dependencies.grpc;
 
-
   meta = with lib; {
     description = "Build Production-Grade AI Applications";
     homepage = "https://github.com/bentoml/BentoML";
     changelog = "https://github.com/bentoml/BentoML/releases/tag/v${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [ happysalada natsukium ];
-    # https://github.com/bentoml/BentoML/issues/3885
-    broken = versionAtLeast pydantic.version "2";
+    maintainers = with maintainers; [
+      happysalada
+      natsukium
+    ];
+    # AttributeError: 'dict' object has no attribute 'schemas'
+    # https://github.com/bentoml/BentoML/issues/4290
+    broken = versionAtLeast cattrs.version "23.2";
   };
 }
diff --git a/pkgs/development/python-modules/berkeleydb/default.nix b/pkgs/development/python-modules/berkeleydb/default.nix
new file mode 100644
index 0000000000000..514a9b0c689ab
--- /dev/null
+++ b/pkgs/development/python-modules/berkeleydb/default.nix
@@ -0,0 +1,38 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pkgs,
+  python,
+}:
+
+buildPythonPackage rec {
+  pname = "berkeleydb";
+  version = "18.1.8";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-4YMaeQv9hVdA5cEvlS8Z9kbCaYBs/DYnda/Zh4zzJVc=";
+  };
+
+  build-system = [ setuptools ];
+
+  checkPhase = ''
+    ${python.interpreter} test.py
+  '';
+
+  # See: https://github.com/NixOS/nixpkgs/pull/311198/files#r1597746759
+  env = {
+    BERKELEYDB_INCDIR = "${lib.getDev pkgs.db}/include";
+    BERKELEYDB_LIBDIR = "${lib.getLib pkgs.db}/lib";
+  };
+
+  meta = with lib; {
+    description = "Python bindings for Oracle Berkeley DB";
+    homepage = "https://www.jcea.es/programacion/pybsddb.htm";
+    license = with licenses; [ bsd3 ];
+    maintainers = [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/bespon/default.nix b/pkgs/development/python-modules/bespon/default.nix
index a942651dcb73e..2721bd0b4b1dc 100644
--- a/pkgs/development/python-modules/bespon/default.nix
+++ b/pkgs/development/python-modules/bespon/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,10 +21,9 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "bespon" ];
   meta = with lib; {
-    description = "Encodes and decodes data in the BespON format.";
+    description = "Encodes and decodes data in the BespON format";
     homepage = "https://github.com/gpoore/bespon_py";
     license = licenses.bsd3;
     maintainers = with maintainers; [ synthetica ];
   };
-
 }
diff --git a/pkgs/development/python-modules/betacode/default.nix b/pkgs/development/python-modules/betacode/default.nix
index 4b935b34139a2..24931f25029cb 100644
--- a/pkgs/development/python-modules/betacode/default.nix
+++ b/pkgs/development/python-modules/betacode/default.nix
@@ -1,4 +1,10 @@
-{ fetchPypi, buildPythonPackage, pygtrie, isPy3k, lib, }:
+{
+  fetchPypi,
+  buildPythonPackage,
+  pygtrie,
+  isPy3k,
+  lib,
+}:
 buildPythonPackage rec {
   pname = "betacode";
   version = "1.0";
@@ -13,7 +19,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ pygtrie ];
   meta = {
     homepage = "https://github.com/matgrioni/betacode";
-    description = "A small python package to flexibly convert from betacode to unicode and back.";
+    description = "Small python package to flexibly convert from betacode to unicode and back";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ kmein ];
   };
diff --git a/pkgs/development/python-modules/betamax-matchers/default.nix b/pkgs/development/python-modules/betamax-matchers/default.nix
index 2588c1c848827..210d463b23783 100644
--- a/pkgs/development/python-modules/betamax-matchers/default.nix
+++ b/pkgs/development/python-modules/betamax-matchers/default.nix
@@ -1,5 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi
-, betamax, requests-toolbelt }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  betamax,
+  requests-toolbelt,
+}:
 
 buildPythonPackage rec {
   pname = "betamax-matchers";
@@ -11,11 +16,14 @@ buildPythonPackage rec {
     sha256 = "07qpwjyq2i2aqhz5iwghnj4pqr2ys5n45v1vmpcfx9r5mhwrsq43";
   };
 
-  buildInputs = [ betamax requests-toolbelt ];
+  buildInputs = [
+    betamax
+    requests-toolbelt
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/sigmavirus24/betamax_matchers";
-    description = "A group of experimental matchers for Betamax";
+    description = "Group of experimental matchers for Betamax";
     license = licenses.asl20;
     maintainers = with maintainers; [ pSub ];
   };
diff --git a/pkgs/development/python-modules/betamax-serializers/default.nix b/pkgs/development/python-modules/betamax-serializers/default.nix
index 072b3fa4193ba..ca2494faa78f9 100644
--- a/pkgs/development/python-modules/betamax-serializers/default.nix
+++ b/pkgs/development/python-modules/betamax-serializers/default.nix
@@ -1,5 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi
-, betamax, pyyaml }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  betamax,
+  pyyaml,
+}:
 
 buildPythonPackage rec {
   pname = "betamax-serializers";
@@ -11,11 +16,14 @@ buildPythonPackage rec {
     sha256 = "0ja9isbjmzzhxdj69s0kdsvw8nkp073w6an6a4liy5vk3fdl2p1l";
   };
 
-  buildInputs = [ betamax pyyaml ];
+  buildInputs = [
+    betamax
+    pyyaml
+  ];
 
   meta = with lib; {
     homepage = "https://gitlab.com/betamax/serializers";
-    description = "A set of third-party serializers for Betamax";
+    description = "Set of third-party serializers for Betamax";
     license = licenses.asl20;
   };
 }
diff --git a/pkgs/development/python-modules/betamax/default.nix b/pkgs/development/python-modules/betamax/default.nix
index d4da87d074334..9c96a59cabc34 100644
--- a/pkgs/development/python-modules/betamax/default.nix
+++ b/pkgs/development/python-modules/betamax/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, requests }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+}:
 
 buildPythonPackage rec {
   pname = "betamax";
@@ -16,7 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://betamax.readthedocs.org/en/latest/";
-    description = "A VCR imitation for requests";
+    description = "VCR imitation for requests";
     license = licenses.asl20;
     maintainers = with maintainers; [ pSub ];
   };
diff --git a/pkgs/development/python-modules/betterproto/default.nix b/pkgs/development/python-modules/betterproto/default.nix
index a20daf344f061..5f42d46b1e588 100644
--- a/pkgs/development/python-modules/betterproto/default.nix
+++ b/pkgs/development/python-modules/betterproto/default.nix
@@ -61,6 +61,7 @@ buildPythonPackage rec {
   # The tests require the generation of code before execution. This requires
   # the protoc-gen-python_betterproto script from the package to be on PATH.
   preCheck = ''
+    (($(ulimit -n) < 1024)) && ulimit -n 1024
     export PATH=$PATH:$out/bin
     patchShebangs src/betterproto/plugin/main.py
     ${python.interpreter} -m tests.generate
diff --git a/pkgs/development/python-modules/beziers/default.nix b/pkgs/development/python-modules/beziers/default.nix
index e4295f63ba054..e132936a1c397 100644
--- a/pkgs/development/python-modules/beziers/default.nix
+++ b/pkgs/development/python-modules/beziers/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, dotmap
-, matplotlib
-, pyclipper
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  dotmap,
+  matplotlib,
+  pyclipper,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-4014u7s47Tfdpa2Q9hKAoHg7Ebcs1/DVW5TpEmoh2bc=";
   };
 
-  propagatedBuildInputs = [
-    pyclipper
-  ];
+  propagatedBuildInputs = [ pyclipper ];
 
   doCheck = true;
   nativeCheckInputs = [
@@ -30,7 +29,11 @@ buildPythonPackage rec {
     matplotlib
     unittestCheckHook
   ];
-  unittestFlagsArray = [ "-s" "test" "-v" ];
+  unittestFlagsArray = [
+    "-s"
+    "test"
+    "-v"
+  ];
 
   meta = with lib; {
     description = "Python library for manipulating Bezier curves and paths in fonts";
diff --git a/pkgs/development/python-modules/bibtexparser/default.nix b/pkgs/development/python-modules/bibtexparser/default.nix
index d6b24f13ab134..38dcd4a705f20 100644
--- a/pkgs/development/python-modules/bibtexparser/default.nix
+++ b/pkgs/development/python-modules/bibtexparser/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyparsing
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyparsing,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,21 +21,18 @@ buildPythonPackage rec {
     hash = "sha256-YMkLSx7L2srLINZa6Ec0rPoxE2SdMv6CnI4BpHgHuzM=";
   };
 
-  propagatedBuildInputs = [
-    pyparsing
-  ];
+  propagatedBuildInputs = [ pyparsing ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "bibtexparser"
-  ];
+  pythonImportsCheck = [ "bibtexparser" ];
 
   meta = with lib; {
     description = "Bibtex parser for Python";
     homepage = "https://github.com/sciunto-org/python-bibtexparser";
-    license = with licenses; [ lgpl3Only /* or */ bsd3 ];
+    license = with licenses; [
+      lgpl3Only # or
+      bsd3
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/bidict/default.nix b/pkgs/development/python-modules/bidict/default.nix
index 811fb7055fea7..f333f2f3dbca3 100644
--- a/pkgs/development/python-modules/bidict/default.nix
+++ b/pkgs/development/python-modules/bidict/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, hypothesis
-, pytest-xdist
-, pytestCheckHook
-, typing-extensions
-, pythonOlder
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  hypothesis,
+  pytest-xdist,
+  pytestCheckHook,
+  typing-extensions,
+  pythonOlder,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -47,8 +48,11 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://bidict.readthedocs.io";
     changelog = "https://bidict.readthedocs.io/changelog.html";
-    description = "The bidirectional mapping library for Python.";
+    description = "Bidirectional mapping library for Python";
     license = licenses.mpl20;
-    maintainers = with maintainers; [ jab jakewaksbaum ];
+    maintainers = with maintainers; [
+      jab
+      jakewaksbaum
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/bids-validator/default.nix b/pkgs/development/python-modules/bids-validator/default.nix
index 6779e42c580dc..4a097d1bcc634 100644
--- a/pkgs/development/python-modules/bids-validator/default.nix
+++ b/pkgs/development/python-modules/bids-validator/default.nix
@@ -1,23 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-
-# build-system
-, setuptools
-, versioneer
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+  versioneer,
 }:
 
 buildPythonPackage rec {
   pname = "bids-validator";
-  version = "1.14.5";
+  version = "1.14.6";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-TXIb1ff7D6aM+8L5F47O5Dvupp1Sn4Rnl+GQaUdEgno=";
+    pname = "bids_validator";
+    inherit version;
+    hash = "sha256-3ytrXRqq1h00zK0ElPLtc84wgoJa2jGVTE4UwlONSFw=";
   };
 
   nativeBuildInputs = [
@@ -28,9 +30,7 @@ buildPythonPackage rec {
   # needs packages which are not available in nixpkgs
   doCheck = false;
 
-  pythonImportsCheck = [
-    "bids_validator"
-  ];
+  pythonImportsCheck = [ "bids_validator" ];
 
   meta = with lib; {
     description = "Validator for the Brain Imaging Data Structure";
diff --git a/pkgs/development/python-modules/biliass/default.nix b/pkgs/development/python-modules/biliass/default.nix
index 65f4e8f7d7c8c..75e799ce44b97 100644
--- a/pkgs/development/python-modules/biliass/default.nix
+++ b/pkgs/development/python-modules/biliass/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, poetry-core
-, protobuf
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  poetry-core,
+  protobuf,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "biliass";
-  version = "1.3.7";
+  version = "1.3.11";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -18,26 +19,18 @@ buildPythonPackage rec {
     owner = "yutto-dev";
     repo = "biliass";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Opb4rlGe+LDJZs3F7e/NZYfuMtHEWUZeMm8VZQfEzKI=";
+    hash = "sha256-hBorYAqtxTZ4LElxxJOGxC2g7sBRhRKVv6HOVHZn9FA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    protobuf
-  ];
+  propagatedBuildInputs = [ protobuf ];
 
   doCheck = false; # test artifacts missing
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "biliass"
-  ];
+  pythonImportsCheck = [ "biliass" ];
 
   meta = with lib; {
     homepage = "https://github.com/yutto-dev/biliass";
diff --git a/pkgs/development/python-modules/bilibili-api-python/default.nix b/pkgs/development/python-modules/bilibili-api-python/default.nix
new file mode 100644
index 0000000000000..8adb7b664894c
--- /dev/null
+++ b/pkgs/development/python-modules/bilibili-api-python/default.nix
@@ -0,0 +1,76 @@
+{
+  aiohttp,
+  apscheduler,
+  beautifulsoup4,
+  brotli,
+  buildPythonPackage,
+  colorama,
+  fetchPypi,
+  httpx,
+  lib,
+  lxml,
+  pillow,
+  pycryptodomex,
+  pyyaml,
+  qrcode,
+  qrcode-terminal,
+  requests,
+  rsa,
+  setuptools,
+  setuptools-scm,
+  tqdm,
+  yarl,
+}:
+buildPythonPackage rec {
+  pname = "bilibili-api-python";
+  version = "16.2.0";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-ecv9lzp2L13seBosahgnglaZP8YZCD/13nlTPP8LCs0=";
+  };
+
+  postPatch = ''
+    # The upstream uses requirements.txt, which overly strict version constraints.
+    substituteInPlace requirements.txt \
+      --replace-fail "~=" ">="
+  '';
+
+  build-system = [
+    setuptools-scm
+    setuptools
+  ];
+
+  dependencies = [
+    aiohttp
+    beautifulsoup4
+    colorama
+    lxml
+    pyyaml
+    brotli
+    httpx
+    qrcode
+    requests
+    apscheduler
+    rsa
+    pillow
+    tqdm
+    yarl
+    pycryptodomex
+    qrcode-terminal
+  ];
+
+  # tests require network
+  doCheck = false;
+
+  pythonImportsCheck = [ "bilibili_api" ];
+
+  meta = {
+    changelog = "https://github.com/Nemo2011/bilibili-api/releases/tag/${version}";
+    description = "Python module providing convenient integration for various Bilibili API along with some additional common features";
+    homepage = "https://nemo2011.github.io/bilibili-api";
+    license = lib.licenses.gpl3Plus;
+    maintainers = with lib.maintainers; [ moraxyc ];
+  };
+}
diff --git a/pkgs/development/python-modules/billiard/default.nix b/pkgs/development/python-modules/billiard/default.nix
index 15ccd234a7ac0..87e6b47366a28 100644
--- a/pkgs/development/python-modules/billiard/default.nix
+++ b/pkgs/development/python-modules/billiard/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, case
-, psutil
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  case,
+  psutil,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     "test_set_pdeathsig"
   ];
 
-  pythonImportsCheck = [
-    "billiard"
-  ];
+  pythonImportsCheck = [ "billiard" ];
 
   meta = with lib; {
     description = "Python multiprocessing fork with improvements and bugfixes";
diff --git a/pkgs/development/python-modules/bimmer-connected/default.nix b/pkgs/development/python-modules/bimmer-connected/default.nix
index 48ddcc9e7d629..2b7f334b989d5 100644
--- a/pkgs/development/python-modules/bimmer-connected/default.nix
+++ b/pkgs/development/python-modules/bimmer-connected/default.nix
@@ -1,52 +1,51 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pbr
-, httpx
-, pillow
-, pycryptodome
-, pyjwt
-, pytest-asyncio
-, pytestCheckHook
-, python
-, respx
-, setuptools
-, time-machine
-, tzdata
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pbr,
+  httpx,
+  pillow,
+  pycryptodome,
+  pyjwt,
+  pytest-asyncio,
+  pytestCheckHook,
+  python,
+  respx,
+  setuptools,
+  time-machine,
+  tzdata,
 }:
 
 buildPythonPackage rec {
   pname = "bimmer-connected";
-  version = "0.14.6";
+  version = "0.15.3";
   pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "bimmerconnected";
     repo = "bimmer_connected";
     rev = "refs/tags/${version}";
-    hash = "sha256-/FL9czp5x/BcKSXXzT19kgGiPFd61BpU7HLtgyyHlIs=";
+    hash = "sha256-0Z7W9Z5zl7N0WbvfOTs8wcloI5VfqrZ+OBWocFAnjwY=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     pbr
     setuptools
   ];
 
   PBR_VERSION = version;
 
-  propagatedBuildInputs = [
+  dependencies = [
     httpx
     pycryptodome
     pyjwt
   ];
 
   passthru.optional-dependencies = {
-    china = [
-      pillow
-    ];
+    china = [ pillow ];
   };
 
   postInstall = ''
@@ -69,9 +68,7 @@ buildPythonPackage rec {
     export TZDIR=${tzdata}/${python.sitePackages}/tzdata/zoneinfo
   '';
 
-  pythonImportsCheck = [
-    "bimmer_connected"
-  ];
+  pythonImportsCheck = [ "bimmer_connected" ];
 
   meta = with lib; {
     changelog = "https://github.com/bimmerconnected/bimmer_connected/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/binance-connector/default.nix b/pkgs/development/python-modules/binance-connector/default.nix
new file mode 100644
index 0000000000000..914ab4c6acd07
--- /dev/null
+++ b/pkgs/development/python-modules/binance-connector/default.nix
@@ -0,0 +1,60 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pycryptodome,
+  pythonOlder,
+  requests,
+  websocket-client,
+  # dependencies for tests
+  pytest-cov,
+  pytest,
+  sure,
+  responses,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "binance-connector";
+  version = "3.7.0";
+  format = "setuptools";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "binance";
+    repo = "${pname}-python";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-hmn8WKr+krzOzHNJ/aynXAbf+rHxDfyKDgycdQQU3xk=";
+  };
+
+  propagatedBuildInputs = [
+    requests
+    pycryptodome
+    websocket-client
+  ];
+
+  nativeCheckInputs = [
+    pytest-cov
+    pytest
+    sure
+    responses
+    pytestCheckHook
+  ];
+
+  # pytestCheckHook attempts to run examples directory, which requires
+  # network access
+  disabledTestPaths = [ "examples/" ];
+
+  pythonImportsCheck = [
+    "binance.spot"
+    "binance.websocket"
+  ];
+
+  meta = with lib; {
+    description = "Simple connector to Binance Public API";
+    homepage = "https://github.com/binance/binance-connector-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ trishtzy ];
+  };
+}
diff --git a/pkgs/development/python-modules/binary/default.nix b/pkgs/development/python-modules/binary/default.nix
index 9311289b7cc27..93cb6d24dae06 100644
--- a/pkgs/development/python-modules/binary/default.nix
+++ b/pkgs/development/python-modules/binary/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,12 +23,18 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [ "binary" "binary.core" ];
+  pythonImportsCheck = [
+    "binary"
+    "binary.core"
+  ];
 
   meta = with lib; {
     description = "Easily convert between binary and SI units (kibibyte, kilobyte, etc.)";
     homepage = "https://github.com/ofek/binary";
-    license = with licenses; [ asl20 mit ];
+    license = with licenses; [
+      asl20
+      mit
+    ];
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/binary2strings/default.nix b/pkgs/development/python-modules/binary2strings/default.nix
index c122b67886da2..3a9937e8fea8c 100644
--- a/pkgs/development/python-modules/binary2strings/default.nix
+++ b/pkgs/development/python-modules/binary2strings/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pybind11
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pybind11,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -26,17 +27,11 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "binary2strings"
-  ];
+  pythonImportsCheck = [ "binary2strings" ];
 
-  pytestFlagsArray = [
-    "tests/test.py"
-  ];
+  pytestFlagsArray = [ "tests/test.py" ];
 
   meta = with lib; {
     description = "Module to extract Ascii, Utf8, and Unicode strings from binary data";
diff --git a/pkgs/development/python-modules/binaryornot/default.nix b/pkgs/development/python-modules/binaryornot/default.nix
index 435b5412b2385..dd57a7885aac8 100644
--- a/pkgs/development/python-modules/binaryornot/default.nix
+++ b/pkgs/development/python-modules/binaryornot/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, chardet, hypothesis }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  chardet,
+  hypothesis,
+}:
 
 buildPythonPackage rec {
   pname = "binaryornot";
diff --git a/pkgs/development/python-modules/bincopy/default.nix b/pkgs/development/python-modules/bincopy/default.nix
index f61432b229f8c..45fb979a72b50 100644
--- a/pkgs/development/python-modules/bincopy/default.nix
+++ b/pkgs/development/python-modules/bincopy/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, argparse-addons
-, humanfriendly
-, pyelftools
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  argparse-addons,
+  humanfriendly,
+  pyelftools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,15 +26,16 @@ buildPythonPackage rec {
     pyelftools
   ];
 
-  pythonImportsCheck = [
-    "bincopy"
-  ];
+  pythonImportsCheck = [ "bincopy" ];
 
   meta = with lib; {
     description = "Mangling of various file formats that conveys binary information (Motorola S-Record, Intel HEX, TI-TXT, ELF and binary files)";
     mainProgram = "bincopy";
     homepage = "https://github.com/eerimoq/bincopy";
     license = licenses.mit;
-    maintainers = with maintainers; [ frogamic sbruder ];
+    maintainers = with maintainers; [
+      frogamic
+      sbruder
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/bindep/default.nix b/pkgs/development/python-modules/bindep/default.nix
index 4a27f56a3bcd2..8acd7ecf7cf08 100644
--- a/pkgs/development/python-modules/bindep/default.nix
+++ b/pkgs/development/python-modules/bindep/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, python3Packages
-, fetchPypi
+{
+  lib,
+  python3Packages,
+  fetchPypi,
 }:
 python3Packages.buildPythonPackage rec {
   pname = "bindep";
diff --git a/pkgs/development/python-modules/binho-host-adapter/default.nix b/pkgs/development/python-modules/binho-host-adapter/default.nix
index 51b9d9908a12b..78cd0e9b7ed9f 100644
--- a/pkgs/development/python-modules/binho-host-adapter/default.nix
+++ b/pkgs/development/python-modules/binho-host-adapter/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyserial
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyserial,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/binwalk/default.nix b/pkgs/development/python-modules/binwalk/default.nix
index b3725caa3d6df..0f3d10d2b3062 100644
--- a/pkgs/development/python-modules/binwalk/default.nix
+++ b/pkgs/development/python-modules/binwalk/default.nix
@@ -1,24 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, stdenv
-, zlib
-, xz
-, gzip
-, bzip2
-, gnutar
-, p7zip
-, cabextract
-, cramfsprogs
-, cramfsswap
-, sasquatch
-, squashfsTools
-, matplotlib
-, nose
-, pycrypto
-, pyqtgraph
-, visualizationSupport ? false }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  stdenv,
+  zlib,
+  xz,
+  gzip,
+  bzip2,
+  gnutar,
+  p7zip,
+  cabextract,
+  cramfsprogs,
+  cramfsswap,
+  sasquatch,
+  squashfsTools,
+  matplotlib,
+  nose,
+  pycrypto,
+  pyqtgraph,
+  visualizationSupport ? false,
+}:
 
 buildPythonPackage rec {
   pname = "binwalk${lib.optionalString visualizationSupport "-full"}";
@@ -38,16 +40,33 @@ buildPythonPackage rec {
     (fetchpatch {
       url = "https://github.com/ReFirmLabs/binwalk/commit/dd4f2efd275c9dd1001130e82e0f985110cd2754.patch";
       sha256 = "1707n4nf1d1ay1yn4i8qlrvj2c1120g88hjwyklpsc2s2dcnqj9r";
-      includes = [
-        "testing/tests/test_firmware_zip.py"
-      ];
+      includes = [ "testing/tests/test_firmware_zip.py" ];
       revert = true;
     })
   ];
 
-  propagatedBuildInputs = [ zlib xz gzip bzip2 gnutar p7zip cabextract squashfsTools xz pycrypto ]
-  ++ lib.optionals visualizationSupport [ matplotlib pyqtgraph ]
-  ++ lib.optionals (!stdenv.isDarwin) [ cramfsprogs cramfsswap sasquatch ];
+  propagatedBuildInputs =
+    [
+      zlib
+      xz
+      gzip
+      bzip2
+      gnutar
+      p7zip
+      cabextract
+      squashfsTools
+      xz
+      pycrypto
+    ]
+    ++ lib.optionals visualizationSupport [
+      matplotlib
+      pyqtgraph
+    ]
+    ++ lib.optionals (!stdenv.isDarwin) [
+      cramfsprogs
+      cramfsswap
+      sasquatch
+    ];
 
   # setup.py only installs version.py during install, not test
   postPatch = ''
@@ -65,7 +84,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/ReFirmLabs/binwalk";
-    description = "A tool for searching a given binary image for embedded files";
+    description = "Tool for searching a given binary image for embedded files";
     mainProgram = "binwalk";
     maintainers = [ maintainers.koral ];
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/biom-format/default.nix b/pkgs/development/python-modules/biom-format/default.nix
new file mode 100644
index 0000000000000..8588c88e97af6
--- /dev/null
+++ b/pkgs/development/python-modules/biom-format/default.nix
@@ -0,0 +1,61 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  cython,
+  click,
+  numpy,
+  scipy,
+  pandas,
+  h5py,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "biom-format";
+  version = "2.1.16";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "biocore";
+    repo = "biom-format";
+    rev = "refs/tags/${version}";
+    hash = "sha256-E/6dIN8tdsu6cBVBW/BOeAQwJB9XRRL3flQZSKqIZlc=";
+  };
+
+  build-system = [
+    setuptools
+    cython
+    numpy
+  ];
+
+  dependencies = [
+    click
+    numpy
+    scipy
+    pandas
+    h5py
+  ];
+
+  # make pytest resolve the package from $out
+  # some tests don't work if we change the level of directory nesting
+  preCheck = ''
+    mkdir biom_tests
+    mv biom/tests biom_tests/tests
+    rm -r biom
+  '';
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pytestFlagsArray = [ "biom_tests/tests" ];
+
+  pythonImportsCheck = [ "biom" ];
+
+  meta = {
+    homepage = "http://biom-format.org/";
+    description = "Biological Observation Matrix (BIOM) format";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ tomasajt ];
+  };
+}
diff --git a/pkgs/development/python-modules/biopandas/default.nix b/pkgs/development/python-modules/biopandas/default.nix
index d33a9faf44031..29e609b9b43c3 100644
--- a/pkgs/development/python-modules/biopandas/default.nix
+++ b/pkgs/development/python-modules/biopandas/default.nix
@@ -1,35 +1,34 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, looseversion
-, mmtf-python
-, nose
-, numpy
-, pandas
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  looseversion,
+  mmtf-python,
+  numpy,
+  pandas,
+  pynose,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "biopandas";
-  version = "0.4.1";
-  format = "setuptools";
+  version = "0.5.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "BioPandas";
     repo = "biopandas";
     rev = "refs/tags/v${version}";
-    hash = "sha256-PRdemBo+bB2xJWmF2NylFTfNwEEo67i6XSaeDAFmQ/c=";
+    hash = "sha256-1c78baBBsDyvAWrNx5mZI/Q75wyXv0DAwAdWm3EwX/I=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
-  pythonRelaxDeps = [
-    "looseversion"
-  ];
+  pythonRelaxDeps = [ "looseversion" ];
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     numpy
     pandas
     mmtf-python
@@ -37,21 +36,21 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    nose
+    pynose
+    pytestCheckHook
   ];
 
-  checkPhase = ''
-    runHook preCheck
-
-    nosetests
-
-    runHook postCheck
-  '';
-
-  pythonImportsCheck = [
-    "biopandas"
+  disabledTests = [
+    # require network access
+    "test_mmcif_pdb_conversion"
+    "test_fetch_pdb"
+    "test_write_mmtf_bp"
+    "test_write_mmtf"
+    "test_b_factor_shift"
   ];
 
+  pythonImportsCheck = [ "biopandas" ];
+
   meta = {
     description = "Working with molecular structures in pandas DataFrames";
     homepage = "https://github.com/BioPandas/biopandas";
diff --git a/pkgs/development/python-modules/biopython/close_parser_on_time.patch b/pkgs/development/python-modules/biopython/close_parser_on_time.patch
new file mode 100644
index 0000000000000..05d22e22ed9e6
--- /dev/null
+++ b/pkgs/development/python-modules/biopython/close_parser_on_time.patch
@@ -0,0 +1,18 @@
+diff --git a/Bio/SeqIO/SeqXmlIO.py b/Bio/SeqIO/SeqXmlIO.py
+index 8fe75ebb728..6758317d05f 100644
+--- a/Bio/SeqIO/SeqXmlIO.py
++++ b/Bio/SeqIO/SeqXmlIO.py
+@@ -498,11 +498,12 @@ def iterate(self, handle):
+             if not text:
+                 break
+             parser.feed(text)
++        # Closing the parser ensures that all XML data fed into it are processed
++        parser.close()
+         # We have reached the end of the XML file;
+         # send out the remaining records
+         yield from records
+         records.clear()
+-        parser.close()
+ 
+ 
+ class SeqXmlWriter(SequenceWriter):
diff --git a/pkgs/development/python-modules/biopython/default.nix b/pkgs/development/python-modules/biopython/default.nix
index 2ec814f56aef0..051f66845dec0 100644
--- a/pkgs/development/python-modules/biopython/default.nix
+++ b/pkgs/development/python-modules/biopython/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -18,15 +19,17 @@ buildPythonPackage rec {
     hash = "sha256-eOa/t43mMDQDev01/nfLbgqeW2Jwa+z3in2SKxbtg/c=";
   };
 
-  nativeBuildInputs = [
-    setuptools
+  patches = [
+    # cherry-picked from https://github.com/biopython/biopython/commit/3f9bda7ef44f533dadbaa0de29ac21929bc0b2f1
+    # fixes SeqXMLIO parser to process all data. remove on next update
+    ./close_parser_on_time.patch
   ];
 
-  propagatedBuildInputs = [ numpy ];
+  build-system = [ setuptools ];
 
-  pythonImportsCheck = [
-    "Bio"
-  ];
+  dependencies = [ numpy ];
+
+  pythonImportsCheck = [ "Bio" ];
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/bip-utils/default.nix b/pkgs/development/python-modules/bip-utils/default.nix
index c4709e80845d4..17d7eea6b1b20 100644
--- a/pkgs/development/python-modules/bip-utils/default.nix
+++ b/pkgs/development/python-modules/bip-utils/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, cbor2
-, coincurve
-, crcmod
-, ecdsa
-, ed25519-blake2b
-, fetchFromGitHub
-, py-sr25519-bindings
-, pycryptodome
-, pynacl
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  cbor2,
+  coincurve,
+  crcmod,
+  ecdsa,
+  ed25519-blake2b,
+  fetchFromGitHub,
+  py-sr25519-bindings,
+  pycryptodome,
+  pynacl,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     hash = "sha256-3G37n/mfI+3JVIkmJWzbB1qPPTE6NJJlFZWdE0fIIWA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     ecdsa
@@ -43,19 +42,18 @@ buildPythonPackage rec {
     pycryptodome
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "bip_utils"
-  ];
+  pythonImportsCheck = [ "bip_utils" ];
 
   meta = with lib; {
     description = "Implementation of BIP39, BIP32, BIP44, BIP49 and BIP84 for wallet seeds, keys and addresses generation";
     homepage = "https://github.com/ebellocchia/bip_utils";
     changelog = "https://github.com/ebellocchia/bip_utils/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [ prusnak stargate01 ];
+    maintainers = with maintainers; [
+      prusnak
+      stargate01
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/bip32/default.nix b/pkgs/development/python-modules/bip32/default.nix
index 165cf6231eea6..ea8e22a52cc6f 100644
--- a/pkgs/development/python-modules/bip32/default.nix
+++ b/pkgs/development/python-modules/bip32/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, base58
-, coincurve
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  base58,
+  coincurve,
 }:
 
 buildPythonPackage rec {
@@ -23,28 +24,18 @@ buildPythonPackage rec {
     hash = "sha256-o8UKR17XDWp1wTWYeDL0DJY+D11YI4mg0UuGEAPkHxE=";
   };
 
-  # https://github.com/darosior/python-bip32/pull/40/files
-  postPatch = ''
-    substituteInPlace requirements.txt \
-      --replace-fail 'coincurve>=15.0,<19' 'coincurve>=15.0,<20'
-  '';
+  pythonRelaxDeps = [ "coincurve" ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     base58
     coincurve
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "bip32"
-  ];
+  pythonImportsCheck = [ "bip32" ];
 
   meta = with lib; {
     description = "Minimalistic implementation of the BIP32 key derivation scheme";
diff --git a/pkgs/development/python-modules/biplist/default.nix b/pkgs/development/python-modules/biplist/default.nix
index 26247a3930cda..0ef428281a66b 100644
--- a/pkgs/development/python-modules/biplist/default.nix
+++ b/pkgs/development/python-modules/biplist/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     sha256 = "1im45a9z7ryrfyp1v6i39qia5qagw6i1mhif0hl0praz9iv4j1ac";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Failing tests
diff --git a/pkgs/development/python-modules/birch/default.nix b/pkgs/development/python-modules/birch/default.nix
index 56c95e415c319..f91bfea02733c 100644
--- a/pkgs/development/python-modules/birch/default.nix
+++ b/pkgs/development/python-modules/birch/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, setuptools
-, strct
-, pytestCheckHook
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  setuptools,
+  strct,
+  pytestCheckHook,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -40,13 +41,9 @@ buildPythonPackage rec {
       --replace-fail '"0+unknown"' '"${version}"'
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  dependencies = [
-    strct
-  ];
+  dependencies = [ strct ];
 
   pythonImportsCheck = [
     "birch"
@@ -64,7 +61,6 @@ buildPythonPackage rec {
     export HOME="$(mktemp -d)"
   '';
 
-
   meta = with lib; {
     description = "Simple hierarchical configuration for Python packages";
     homepage = "https://github.com/shaypal5/birch";
diff --git a/pkgs/development/python-modules/bitarray/default.nix b/pkgs/development/python-modules/bitarray/default.nix
index 8a748ed5b1b8e..426fa3f6874b2 100644
--- a/pkgs/development/python-modules/bitarray/default.nix
+++ b/pkgs/development/python-modules/bitarray/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     ${python.interpreter} -c 'import bitarray; bitarray.test()'
   '';
 
-  pythonImportsCheck = [
-    "bitarray"
-  ];
+  pythonImportsCheck = [ "bitarray" ];
 
   meta = with lib; {
     description = "Efficient arrays of booleans";
diff --git a/pkgs/development/python-modules/bitbox02/default.nix b/pkgs/development/python-modules/bitbox02/default.nix
index 7d6f891756088..0217979d31da2 100644
--- a/pkgs/development/python-modules/bitbox02/default.nix
+++ b/pkgs/development/python-modules/bitbox02/default.nix
@@ -1,29 +1,33 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, base58
-, ecdsa
-, hidapi
-, noiseprotocol
-, protobuf
-, semver
-, typing-extensions
+{
+  lib,
+  base58,
+  buildPythonPackage,
+  ecdsa,
+  fetchPypi,
+  hidapi,
+  noiseprotocol,
+  protobuf,
+  pythonOlder,
+  semver,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "bitbox02";
-  version = "6.2.0";
-  format = "setuptools";
+  version = "6.3.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zt4G45nJjtU2/tbYpCEgjaoA+Xtpe9g2OpQaxfMzCb8=";
+    hash = "sha256-0D+yIovlYw8dfDUeW+vcualbvmLs+IySkTpmHwk2meM=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     base58
     ecdsa
     hidapi
@@ -36,9 +40,7 @@ buildPythonPackage rec {
   # does not contain tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "bitbox02"
-  ];
+  pythonImportsCheck = [ "bitbox02" ];
 
   meta = with lib; {
     description = "Firmware code of the BitBox02 hardware wallet";
diff --git a/pkgs/development/python-modules/bitcoin-utils-fork-minimal/default.nix b/pkgs/development/python-modules/bitcoin-utils-fork-minimal/default.nix
index c548ce0bbf320..f2c70dcadc7e5 100644
--- a/pkgs/development/python-modules/bitcoin-utils-fork-minimal/default.nix
+++ b/pkgs/development/python-modules/bitcoin-utils-fork-minimal/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, base58
-, buildPythonPackage
-, ecdsa
-, fetchPypi
-, sympy
+{
+  lib,
+  base58,
+  buildPythonPackage,
+  ecdsa,
+  fetchPypi,
+  sympy,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
   # Project doesn't ship tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "bitcoinutils"
-  ];
+  pythonImportsCheck = [ "bitcoinutils" ];
 
   meta = with lib; {
     description = "Bitcoin utility functions";
diff --git a/pkgs/development/python-modules/bitcoinlib/default.nix b/pkgs/development/python-modules/bitcoinlib/default.nix
index d921d9ca56bf7..910e3ea654a91 100644
--- a/pkgs/development/python-modules/bitcoinlib/default.nix
+++ b/pkgs/development/python-modules/bitcoinlib/default.nix
@@ -1,4 +1,11 @@
-{ stdenv, lib, buildPythonPackage, isPy3k, fetchFromGitHub, openssl }:
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  isPy3k,
+  fetchFromGitHub,
+  openssl,
+}:
 
 buildPythonPackage rec {
   pname = "bitcoinlib";
@@ -20,7 +27,10 @@ buildPythonPackage rec {
       "'${lib.getLib openssl}/lib/libssl${stdenv.hostPlatform.extensions.sharedLibrary}'"
   '';
 
-  pythonImportsCheck = [ "bitcoin" "bitcoin.core.key" ];
+  pythonImportsCheck = [
+    "bitcoin"
+    "bitcoin.core.key"
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/petertodd/python-bitcoinlib";
diff --git a/pkgs/development/python-modules/bitcoinrpc/default.nix b/pkgs/development/python-modules/bitcoinrpc/default.nix
index 65c05c01991b6..cfdc523b1213b 100644
--- a/pkgs/development/python-modules/bitcoinrpc/default.nix
+++ b/pkgs/development/python-modules/bitcoinrpc/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, orjson
-, httpx
-, typing-extensions
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  orjson,
+  httpx,
+  typing-extensions,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +29,9 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "bitcoinrpc"
-  ];
+  pythonImportsCheck = [ "bitcoinrpc" ];
 
   meta = with lib; {
     description = "Bitcoin JSON-RPC client";
diff --git a/pkgs/development/python-modules/bite-parser/default.nix b/pkgs/development/python-modules/bite-parser/default.nix
index 62f4d36727877..76abaebf63640 100644
--- a/pkgs/development/python-modules/bite-parser/default.nix
+++ b/pkgs/development/python-modules/bite-parser/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-Uq2FDoo5gztMRqtdkKYX0RULhjFgy+DeujC6BTZ3CZI=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     pytest-asyncio
diff --git a/pkgs/development/python-modules/bitlist/default.nix b/pkgs/development/python-modules/bitlist/default.nix
index 30198b7a1a176..76d2b45b2605a 100644
--- a/pkgs/development/python-modules/bitlist/default.nix
+++ b/pkgs/development/python-modules/bitlist/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, wheel
-, parts
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  wheel,
+  parts,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "bitlist";
   version = "1.2.0";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -22,25 +23,21 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace '--cov=bitlist --cov-report term-missing' ""
+      --replace-fail '--cov=bitlist --cov-report term-missing' ""
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     wheel
   ];
 
-  propagatedBuildInputs = [
-    parts
-  ];
+  pythonRelaxDeps = [ "parts" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  dependencies = [ parts ];
 
-  pythonImportsCheck = [
-    "bitlist"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "bitlist" ];
 
   meta = with lib; {
     description = "Python library for working with little-endian list representation of bit strings";
diff --git a/pkgs/development/python-modules/bitmath/default.nix b/pkgs/development/python-modules/bitmath/default.nix
index d5bdf77fb592d..dab0477350b7e 100644
--- a/pkgs/development/python-modules/bitmath/default.nix
+++ b/pkgs/development/python-modules/bitmath/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, progressbar231 ? null, progressbar33, mock }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  progressbar231 ? null,
+  progressbar33,
+  mock,
+}:
 
 buildPythonPackage rec {
   pname = "bitmath";
@@ -10,7 +18,10 @@ buildPythonPackage rec {
     sha256 = "293325f01e65defe966853111df11d39215eb705a967cb115851da8c4cfa3eb8";
   };
 
-  nativeCheckInputs = [ (if isPy3k then progressbar33 else progressbar231) mock ];
+  nativeCheckInputs = [
+    (if isPy3k then progressbar33 else progressbar231)
+    mock
+  ];
 
   meta = with lib; {
     description = "Module for representing and manipulating file sizes with different prefix";
diff --git a/pkgs/development/python-modules/bitsandbytes/default.nix b/pkgs/development/python-modules/bitsandbytes/default.nix
index 189b8a9c6c27c..9bfc4a89784fe 100644
--- a/pkgs/development/python-modules/bitsandbytes/default.nix
+++ b/pkgs/development/python-modules/bitsandbytes/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, pythonOlder
-, setuptools
-, wheel
-, torch
-, scipy
-, symlinkJoin
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  pythonOlder,
+  setuptools,
+  wheel,
+  torch,
+  scipy,
+  symlinkJoin,
 }:
 
 let
   pname = "bitsandbytes";
-  version = "0.42.0";
+  version = "0.43.1";
 
   inherit (torch) cudaCapabilities cudaPackages cudaSupport;
   inherit (cudaPackages) backendStdenv cudaVersion;
@@ -29,17 +30,19 @@ let
 
   cuda-native-redist = symlinkJoin {
     name = "cuda-native-redist-${cudaVersion}";
-    paths = with cudaPackages; [
-      cuda_cudart # cuda_runtime.h cuda_runtime_api.h
-      cuda_nvcc
-    ] ++ cuda-common-redist;
+    paths =
+      with cudaPackages;
+      [
+        cuda_cudart # cuda_runtime.h cuda_runtime_api.h
+        cuda_nvcc
+      ]
+      ++ cuda-common-redist;
   };
 
   cuda-redist = symlinkJoin {
     name = "cuda-redist-${cudaVersion}";
     paths = cuda-common-redist;
   };
-
 in
 buildPythonPackage {
   inherit pname version;
@@ -51,49 +54,48 @@ buildPythonPackage {
     owner = "TimDettmers";
     repo = "bitsandbytes";
     rev = "refs/tags/${version}";
-    hash = "sha256-PZxsFJ6WpfeQqRQrRRBZfZfNY6/TfJFLBeknX24OXcU=";
+    hash = "sha256-GFbFKPdV96DXPA+PZO4h0zdBclN670fb0PGv4QPHWHU=";
   };
 
-  postPatch = ''
-    substituteInPlace Makefile --replace "/usr/bin/g++" "g++" --replace "lib64" "lib"
-    substituteInPlace bitsandbytes/cuda_setup/main.py  \
-      --replace "binary_path = package_dir / self.binary_name"  \
-                "binary_path = Path('$out/${python.sitePackages}/${pname}')/self.binary_name"
-  '' + lib.optionalString torch.cudaSupport ''
-    substituteInPlace bitsandbytes/cuda_setup/main.py  \
-      --replace "/usr/local/cuda/lib64" "${cuda-native-redist}/lib"
-  '';
+  postPatch =
+    ''
+      substituteInPlace Makefile --replace "/usr/bin/g++" "g++" --replace "lib64" "lib"
+      substituteInPlace bitsandbytes/cuda_setup/main.py  \
+        --replace "binary_path = package_dir / self.binary_name"  \
+                  "binary_path = Path('$out/${python.sitePackages}/${pname}')/self.binary_name"
+    ''
+    + lib.optionalString torch.cudaSupport ''
+      substituteInPlace bitsandbytes/cuda_setup/main.py  \
+        --replace "/usr/local/cuda/lib64" "${cuda-native-redist}/lib"
+    '';
 
   CUDA_HOME = "${cuda-native-redist}";
 
-  preBuild = if torch.cudaSupport then
-    with torch.cudaPackages;
-    let cudaVersion = lib.concatStrings (lib.splitVersion torch.cudaPackages.cudaMajorMinorVersion); in
-    ''make CUDA_VERSION=${cudaVersion} cuda${cudaMajorVersion}x''
-  else
-    ''make CUDA_VERSION=CPU cpuonly'';
+  preBuild =
+    if torch.cudaSupport then
+      with torch.cudaPackages;
+      let
+        cudaVersion = lib.concatStrings (lib.splitVersion torch.cudaPackages.cudaMajorMinorVersion);
+      in
+      ''make CUDA_VERSION=${cudaVersion} cuda${cudaMajorVersion}x''
+    else
+      ''make CUDA_VERSION=CPU cpuonly'';
 
   nativeBuildInputs = [
     setuptools
     wheel
-  ] ++ lib.optionals torch.cudaSupport [
-    cuda-native-redist
-  ];
+  ] ++ lib.optionals torch.cudaSupport [ cuda-native-redist ];
 
-  buildInputs = lib.optionals torch.cudaSupport [
-    cuda-redist
-  ];
+  buildInputs = lib.optionals torch.cudaSupport [ cuda-redist ];
 
   propagatedBuildInputs = [
     scipy
     torch
   ];
 
-  doCheck = false;  # tests require CUDA and also GPU access
+  doCheck = false; # tests require CUDA and also GPU access
 
-  pythonImportsCheck = [
-    "bitsandbytes"
-  ];
+  pythonImportsCheck = [ "bitsandbytes" ];
 
   meta = with lib; {
     description = "8-bit CUDA functions for PyTorch";
diff --git a/pkgs/development/python-modules/bitstring/default.nix b/pkgs/development/python-modules/bitstring/default.nix
index 52fdaece66ff3..af85d4b32034a 100644
--- a/pkgs/development/python-modules/bitstring/default.nix
+++ b/pkgs/development/python-modules/bitstring/default.nix
@@ -1,15 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, bitarray
-, setuptools
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  bitarray,
+  setuptools,
+  pytest-benchmark,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "bitstring";
-  version = "4.1.4";
+  version = "4.2.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,18 +20,27 @@ buildPythonPackage rec {
     owner = "scott-griffiths";
     repo = pname;
     rev = "refs/tags/bitstring-${version}";
-    hash = "sha256-CO7R2SCb232OW1DCLo45UIarFG5FhR4WkwuQieXha0Y=";
+    hash = "sha256-m2LZdUWOMxzr/biZhD1nWagab8PohHTcr+U1di0nkrU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
+  build-system = [ setuptools ];
+
+  dependencies = [ bitarray ];
+
+  nativeCheckInputs = [
+    pytest-benchmark
+    pytestCheckHook
   ];
 
-  propagatedBuildInputs = [
-    bitarray
+  pytestFlagsArray = [
+    "--benchmark-disable"
   ];
 
-  nativeCheckInputs = [ unittestCheckHook ];
+  disabledTestPaths = [
+    "tests/test_bits.py"
+    "tests/test_fp8.py"
+    "tests/test_mxfp.py"
+  ];
 
   pythonImportsCheck = [ "bitstring" ];
 
diff --git a/pkgs/development/python-modules/bitstruct/default.nix b/pkgs/development/python-modules/bitstruct/default.nix
index e16a6d7a38cde..7d64491e9733b 100644
--- a/pkgs/development/python-modules/bitstruct/default.nix
+++ b/pkgs/development/python-modules/bitstruct/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-11up3e2FwX6IWiCaAOuOJI7kB2IUny8qeTYMqFdGfaw=";
   };
 
-  pythonImportsCheck = [
-    "bitstruct"
-  ];
+  pythonImportsCheck = [ "bitstruct" ];
 
   meta = with lib; {
     description = "Python bit pack/unpack package";
diff --git a/pkgs/development/python-modules/bitvavo-aio/default.nix b/pkgs/development/python-modules/bitvavo-aio/default.nix
index 9dc561afd680f..0df3e7add0988 100644
--- a/pkgs/development/python-modules/bitvavo-aio/default.nix
+++ b/pkgs/development/python-modules/bitvavo-aio/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "1d9nbbvv7xnkixj03sfhs2da5j3i2m7p73r7j1yb7b39zas2rbig";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/bizkaibus/default.nix b/pkgs/development/python-modules/bizkaibus/default.nix
index 4f55bb14fdbfd..ba078194af8f8 100644
--- a/pkgs/development/python-modules/bizkaibus/default.nix
+++ b/pkgs/development/python-modules/bizkaibus/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, requests
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  requests,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "1v7k9fclndb4x9npzhzj68kbrc3lb3wr6cwal2x46ib207593ckr";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/bjoern/default.nix b/pkgs/development/python-modules/bjoern/default.nix
index e8b11a6311a4e..ca8663c1d6560 100644
--- a/pkgs/development/python-modules/bjoern/default.nix
+++ b/pkgs/development/python-modules/bjoern/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, libev, python }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  libev,
+  python,
+}:
 
 buildPythonPackage rec {
   pname = "bjoern";
@@ -23,7 +29,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/jonashaag/bjoern";
-    description = "A screamingly fast Python 2/3 WSGI server written in C";
+    description = "Screamingly fast Python 2/3 WSGI server written in C";
     license = licenses.bsd2;
     maintainers = with maintainers; [ cmcdragonkai ];
   };
diff --git a/pkgs/development/python-modules/bkcharts/default.nix b/pkgs/development/python-modules/bkcharts/default.nix
index cdcd03c18d550..737535ce3cf63 100644
--- a/pkgs/development/python-modules/bkcharts/default.nix
+++ b/pkgs/development/python-modules/bkcharts/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, pandas
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  pandas,
 }:
 
-
 buildPythonPackage rec {
   pname = "bkcharts";
   version = "0.2";
@@ -16,7 +16,10 @@ buildPythonPackage rec {
     sha256 = "a5eaa8e78853dcecaa46345812e4fabe9cd3b96330ebf0809f640a4a0556d72e";
   };
 
-  propagatedBuildInputs = [ numpy pandas ];
+  propagatedBuildInputs = [
+    numpy
+    pandas
+  ];
 
   # Circular test dependency on bokeh
   doCheck = false;
diff --git a/pkgs/development/python-modules/black-macchiato/default.nix b/pkgs/development/python-modules/black-macchiato/default.nix
index b29405d00791c..da26ce0ed3a8b 100644
--- a/pkgs/development/python-modules/black-macchiato/default.nix
+++ b/pkgs/development/python-modules/black-macchiato/default.nix
@@ -1,9 +1,10 @@
-{ lib,
+{
+  lib,
   buildPythonPackage,
   fetchFromGitHub,
   pythonOlder,
   pytestCheckHook,
-  black
+  black,
 }:
 
 buildPythonPackage rec {
@@ -14,24 +15,26 @@ buildPythonPackage rec {
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
-    owner  = "wbolster";
-    repo   = pname;
-    rev    = version;
+    owner = "wbolster";
+    repo = pname;
+    rev = version;
     sha256 = "0lc9w50nlbmlzj44krk7kxcia202fhybbnwfh77xixlc7vb4rayl";
   };
 
   propagatedBuildInputs = [ black ];
 
-  nativeCheckInputs = [ pytestCheckHook black ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    black
+  ];
 
   pythonImportsCheck = [ "black" ];
 
   meta = with lib; {
     description = "This is a small utility built on top of the black Python code formatter to enable formatting of partial files";
     mainProgram = "black-macchiato";
-    homepage    = "https://github.com/wbolster/black-macchiato";
-    license     = licenses.bsd3;
+    homepage = "https://github.com/wbolster/black-macchiato";
+    license = licenses.bsd3;
     maintainers = with maintainers; [ jperras ];
   };
-
 }
diff --git a/pkgs/development/python-modules/black/default.nix b/pkgs/development/python-modules/black/default.nix
index 48f1c3305558b..06b53f599e30d 100644
--- a/pkgs/development/python-modules/black/default.nix
+++ b/pkgs/development/python-modules/black/default.nix
@@ -1,37 +1,38 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pytestCheckHook
-, aiohttp
-, click
-, colorama
-, hatch-fancy-pypi-readme
-, hatch-vcs
-, hatchling
-, ipython
-, mypy-extensions
-, packaging
-, pathspec
-, parameterized
-, platformdirs
-, tokenize-rt
-, tomli
-, typing-extensions
-, uvloop
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytestCheckHook,
+  aiohttp,
+  click,
+  colorama,
+  hatch-fancy-pypi-readme,
+  hatch-vcs,
+  hatchling,
+  ipython,
+  mypy-extensions,
+  packaging,
+  pathspec,
+  parameterized,
+  platformdirs,
+  tokenize-rt,
+  tomli,
+  typing-extensions,
+  uvloop,
 }:
 
 buildPythonPackage rec {
   pname = "black";
-  version = "24.4.0";
+  version = "24.4.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-8Htp/aIFeDZ+rrvWcP+PxlOrGB4f+V2ESX+fog59BkE=";
+    hash = "sha256-yHK1MFfwAAhdpmoZxV1o9vjdysJkI5KtOjVYeEBvvU0=";
   };
 
   nativeBuildInputs = [
@@ -40,27 +41,23 @@ buildPythonPackage rec {
     hatchling
   ];
 
-  propagatedBuildInputs = [
-    click
-    mypy-extensions
-    packaging
-    pathspec
-    platformdirs
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-    typing-extensions
-  ];
+  propagatedBuildInputs =
+    [
+      click
+      mypy-extensions
+      packaging
+      pathspec
+      platformdirs
+    ]
+    ++ lib.optionals (pythonOlder "3.11") [
+      tomli
+      typing-extensions
+    ];
 
   passthru.optional-dependencies = {
-    colorama = [
-      colorama
-    ];
-    d = [
-      aiohttp
-    ];
-    uvloop = [
-      uvloop
-    ];
+    colorama = [ colorama ];
+    d = [ aiohttp ];
+    uvloop = [ uvloop ];
     jupyter = [
       ipython
       tokenize-rt
@@ -77,39 +74,47 @@ buildPythonPackage rec {
   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
   pytestFlagsArray = [
-    "-W" "ignore::DeprecationWarning"
+    "-W"
+    "ignore::DeprecationWarning"
   ];
 
-  preCheck = ''
-    export PATH="$PATH:$out/bin"
+  preCheck =
+    ''
+      export PATH="$PATH:$out/bin"
 
-    # The top directory /build matches black's DEFAULT_EXCLUDE regex.
-    # Make /build the project root for black tests to avoid excluding files.
-    touch ../.git
-  '' + lib.optionalString stdenv.isDarwin ''
-    # Work around https://github.com/psf/black/issues/2105
-    export TMPDIR="/tmp"
-  '';
+      # The top directory /build matches black's DEFAULT_EXCLUDE regex.
+      # Make /build the project root for black tests to avoid excluding files.
+      touch ../.git
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      # Work around https://github.com/psf/black/issues/2105
+      export TMPDIR="/tmp"
+    '';
 
-  disabledTests = [
-    # requires network access
-    "test_gen_check_output"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # fails on darwin
-    "test_expression_diff"
-    # Fail on Hydra, see https://github.com/NixOS/nixpkgs/pull/130785
-    "test_bpo_2142_workaround"
-    "test_skip_magic_trailing_comma"
-  ];
+  disabledTests =
+    [
+      # requires network access
+      "test_gen_check_output"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # fails on darwin
+      "test_expression_diff"
+      # Fail on Hydra, see https://github.com/NixOS/nixpkgs/pull/130785
+      "test_bpo_2142_workaround"
+      "test_skip_magic_trailing_comma"
+    ];
   # multiple tests exceed max open files on hydra builders
   doCheck = !(stdenv.isLinux && stdenv.isAarch64);
 
   meta = with lib; {
-    description = "The uncompromising Python code formatter";
+    description = "Uncompromising Python code formatter";
     homepage = "https://github.com/psf/black";
     changelog = "https://github.com/psf/black/blob/${version}/CHANGES.md";
     license = licenses.mit;
     mainProgram = "black";
-    maintainers = with maintainers; [ sveitser autophagy ];
+    maintainers = with maintainers; [
+      sveitser
+      autophagy
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/blackjax/default.nix b/pkgs/development/python-modules/blackjax/default.nix
index 7ecc4eda95198..3e8c680f7c91c 100644
--- a/pkgs/development/python-modules/blackjax/default.nix
+++ b/pkgs/development/python-modules/blackjax/default.nix
@@ -1,21 +1,23 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pytest-xdist
-, pytestCheckHook
-, setuptools-scm
-, fastprogress
-, jax
-, jaxlib
-, jaxopt
-, optax
-, typing-extensions
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pytest-xdist,
+  pytestCheckHook,
+  setuptools-scm,
+  fastprogress,
+  jax,
+  jaxlib,
+  jaxopt,
+  optax,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "blackjax";
-  version = "1.1.1";
+  version = "1.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -24,12 +26,12 @@ buildPythonPackage rec {
     owner = "blackjax-devs";
     repo = "blackjax";
     rev = "refs/tags/${version}";
-    hash = "sha256-6+ElY1F8oRCtWT4a/LIG6hYMthlq5mDx2baKAc6zIns=";
+    hash = "sha256-VoWBCjFMyE5LVJyf7du/pKlnvDHj22lguiP6ZUzH9ak=";
   };
 
-  nativeBuildInputs = [ setuptools-scm ];
+  build-system = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     fastprogress
     jax
     jaxlib
@@ -42,15 +44,26 @@ buildPythonPackage rec {
     pytestCheckHook
     pytest-xdist
   ];
-  disabledTestPaths = [ "tests/test_benchmarks.py" ];
-  disabledTests = [
-    # too slow
-    "test_adaptive_tempered_smc"
-  ];
 
-  pythonImportsCheck = [
-    "blackjax"
-  ];
+  disabledTestPaths =
+    [ "tests/test_benchmarks.py" ]
+    ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
+      # Assertion errors on numerical values
+      "tests/mcmc/test_integrators.py"
+    ];
+
+  disabledTests =
+    [
+      # too slow
+      "test_adaptive_tempered_smc"
+    ]
+    ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
+      # Numerical test (AssertionError)
+      # https://github.com/blackjax-devs/blackjax/issues/668
+      "test_chees_adaptation"
+    ];
+
+  pythonImportsCheck = [ "blackjax" ];
 
   meta = with lib; {
     homepage = "https://blackjax-devs.github.io/blackjax";
diff --git a/pkgs/development/python-modules/bleach-allowlist/default.nix b/pkgs/development/python-modules/bleach-allowlist/default.nix
index 96f9b6ccf4167..2ef358f71fa39 100644
--- a/pkgs/development/python-modules/bleach-allowlist/default.nix
+++ b/pkgs/development/python-modules/bleach-allowlist/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, bleach
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  bleach,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-VuIghgeaDmoxAK6Z5NuvIOslhUhlmOsOmUAIoRQo2ps=";
   };
 
-  propagatedBuildInputs = [
-    bleach
-  ];
+  propagatedBuildInputs = [ bleach ];
 
   # No tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/bleach/default.nix b/pkgs/development/python-modules/bleach/default.nix
index c1fb4d77e8061..00fcd0bf91257 100644
--- a/pkgs/development/python-modules/bleach/default.nix
+++ b/pkgs/development/python-modules/bleach/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, six
-, html5lib
-, setuptools
-, tinycss2
-, packaging
-, pythonOlder
-, webencodings
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  six,
+  html5lib,
+  setuptools,
+  tinycss2,
+  packaging,
+  pythonOlder,
+  webencodings,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-CjHxg3ljxB1Gu/EzG4d44TCOoHkdsDzE5zV7l89CqP4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     html5lib
@@ -36,26 +35,20 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    css = [
-      tinycss2
-    ];
+    css = [ tinycss2 ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Disable network tests
     "protocols"
   ];
 
-  pythonImportsCheck = [
-    "bleach"
-  ];
+  pythonImportsCheck = [ "bleach" ];
 
   meta = with lib; {
-    description = "An easy, HTML5, whitelisting HTML sanitizer";
+    description = "Easy, HTML5, whitelisting HTML sanitizer";
     longDescription = ''
       Bleach is an HTML sanitizing library that escapes or strips markup and
       attributes based on a white list. Bleach can also linkify text safely,
diff --git a/pkgs/development/python-modules/bleak-esphome/default.nix b/pkgs/development/python-modules/bleak-esphome/default.nix
index 0138f8b1d7f3d..c313abbe82607 100644
--- a/pkgs/development/python-modules/bleak-esphome/default.nix
+++ b/pkgs/development/python-modules/bleak-esphome/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aioesphomeapi
-, bleak
-, bluetooth-data-tools
-, buildPythonPackage
-, fetchFromGitHub
-, habluetooth
-, lru-dict
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aioesphomeapi,
+  bleak,
+  bluetooth-data-tools,
+  buildPythonPackage,
+  fetchFromGitHub,
+  habluetooth,
+  lru-dict,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
       --replace " --cov=bleak_esphome --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aioesphomeapi
@@ -48,9 +47,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "bleak_esphome"
-  ];
+  pythonImportsCheck = [ "bleak_esphome" ];
 
   meta = with lib; {
     description = "Bleak backend of ESPHome";
diff --git a/pkgs/development/python-modules/bleak/default.nix b/pkgs/development/python-modules/bleak/default.nix
index f53f614867ec1..aef8d84b43f14 100644
--- a/pkgs/development/python-modules/bleak/default.nix
+++ b/pkgs/development/python-modules/bleak/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, async-timeout
-, bluez
-, buildPythonPackage
-, dbus-fast
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  async-timeout,
+  bluez,
+  buildPythonPackage,
+  dbus-fast,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "bleak";
-  version = "0.21.1";
+  version = "0.22.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -22,7 +23,7 @@ buildPythonPackage rec {
     owner = "hbldh";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-T0im8zKyNLbskAEDeUUFS/daJtvttlHlttjscqP8iSk=";
+    hash = "sha256-O8EvF+saJ0UBZ8MESM5gIRmk2wbA4HUDADiVUtXzXrY=";
   };
 
   postPatch = ''
@@ -31,9 +32,7 @@ buildPythonPackage rec {
       --replace \"bluetoothctl\" \"${bluez}/bin/bluetoothctl\"
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     async-timeout
@@ -46,9 +45,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "bleak"
-  ];
+  pythonImportsCheck = [ "bleak" ];
 
   meta = with lib; {
     description = "Bluetooth Low Energy platform agnostic client";
diff --git a/pkgs/development/python-modules/blebox-uniapi/default.nix b/pkgs/development/python-modules/blebox-uniapi/default.nix
index 3381c0d1ccf84..bf1b15ffcd639 100644
--- a/pkgs/development/python-modules/blebox-uniapi/default.nix
+++ b/pkgs/development/python-modules/blebox-uniapi/default.nix
@@ -1,18 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, aiohttp
-, semver
-, deepmerge
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  aiohttp,
+  semver,
+  deepmerge,
+  jmespath,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "blebox-uniapi";
-  version = "2.3.0";
+  version = "2.4.2";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -21,7 +23,7 @@ buildPythonPackage rec {
     owner = "blebox";
     repo = "blebox_uniapi";
     rev = "refs/tags/v${version}";
-    hash = "sha256-nqxbwHzx2cnojw/XX9XQoVvOCCd88tulY0m9xEHU3m4=";
+    hash = "sha256-/NXAyEv4RR12/aoSodKiexKlC83GB1YQVAii8vf6U8c=";
   };
 
   postPatch = ''
@@ -29,12 +31,11 @@ buildPythonPackage rec {
       --replace-fail "pytest-runner" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
+    jmespath
     semver
   ];
 
@@ -44,9 +45,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "blebox_uniapi"
-  ];
+  pythonImportsCheck = [ "blebox_uniapi" ];
 
   meta = with lib; {
     changelog = "https://github.com/blebox/blebox_uniapi/blob/v${version}/HISTORY.rst";
diff --git a/pkgs/development/python-modules/bless/default.nix b/pkgs/development/python-modules/bless/default.nix
index 3f24aef8bf539..f4352cba19789 100644
--- a/pkgs/development/python-modules/bless/default.nix
+++ b/pkgs/development/python-modules/bless/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aioconsole
-, bleak
-, buildPythonPackage
-, dbus-next
-, fetchFromGitHub
-, numpy
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  aioconsole,
+  bleak,
+  buildPythonPackage,
+  dbus-next,
+  fetchFromGitHub,
+  numpy,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     sed -i "/pysetupdi/d" setup.py
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     bleak
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "bless"
-  ];
+  pythonImportsCheck = [ "bless" ];
 
   meta = with lib; {
     description = "Library for creating a BLE Generic Attribute Profile (GATT) server";
diff --git a/pkgs/development/python-modules/blessed/default.nix b/pkgs/development/python-modules/blessed/default.nix
index 70762d0c524a2..6bb56aaab30e4 100644
--- a/pkgs/development/python-modules/blessed/default.nix
+++ b/pkgs/development/python-modules/blessed/default.nix
@@ -1,5 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi, six
-, wcwidth, pytest, mock, glibcLocales
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  wcwidth,
+  pytest,
+  mock,
+  glibcLocales,
 }:
 
 buildPythonPackage rec {
@@ -12,7 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-LN1n+HRuBI8A30eiiA9NasvNs5kDG2BONLqPcdV4doA=";
   };
 
-  nativeCheckInputs = [ pytest mock glibcLocales ];
+  nativeCheckInputs = [
+    pytest
+    mock
+    glibcLocales
+  ];
 
   # Default tox.ini parameters not needed
   checkPhase = ''
@@ -20,11 +31,14 @@ buildPythonPackage rec {
     pytest
   '';
 
-  propagatedBuildInputs = [ wcwidth six ];
+  propagatedBuildInputs = [
+    wcwidth
+    six
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/jquast/blessed";
-    description = "A thin, practical wrapper around terminal capabilities in Python.";
+    description = "Thin, practical wrapper around terminal capabilities in Python";
     maintainers = with maintainers; [ eqyiel ];
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/blessings/default.nix b/pkgs/development/python-modules/blessings/default.nix
index d8c97d1e0f505..d4d4e887ce113 100644
--- a/pkgs/development/python-modules/blessings/default.nix
+++ b/pkgs/development/python-modules/blessings/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  nose,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/erikrose/blessings";
-    description = "A thin, practical wrapper around terminal coloring, styling, and positioning";
+    description = "Thin, practical wrapper around terminal coloring, styling, and positioning";
     license = licenses.mit;
     maintainers = with maintainers; [ domenkozar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/blinker/default.nix b/pkgs/development/python-modules/blinker/default.nix
index 2e5707d153890..72cb3205e1553 100644
--- a/pkgs/development/python-modules/blinker/default.nix
+++ b/pkgs/development/python-modules/blinker/default.nix
@@ -1,32 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, flit-core
+  # build-system
+  flit-core,
 
-# tests
-, pytestCheckHook
-, pytest-asyncio
+  # tests
+  pytestCheckHook,
+  pytest-asyncio,
 }:
 
 buildPythonPackage rec {
   pname = "blinker";
-  version = "1.7.0";
+  version = "1.8.2";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-5oIP9vpOTR2OJ0fCKDdJw/VH5P7hErmFVc3NrjKZYYI=";
+    hash = "sha256-j3ewnTv3x5XpaelIbznCxenDnU7gdCS+K8WU7OlkLYM=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  pythonImportsCheck = [
-    "blinker"
-  ];
+  pythonImportsCheck = [ "blinker" ];
 
   nativeCheckInputs = [
     pytest-asyncio
diff --git a/pkgs/development/python-modules/blinkpy/default.nix b/pkgs/development/python-modules/blinkpy/default.nix
index 4df10e61970c6..b2b7dc6dc9bb5 100644
--- a/pkgs/development/python-modules/blinkpy/default.nix
+++ b/pkgs/development/python-modules/blinkpy/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, aiofiles
-, aiohttp
-, pytestCheckHook
-, python-dateutil
-, python-slugify
-, pythonOlder
-, requests
-, setuptools
-, sortedcontainers
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  aiofiles,
+  aiohttp,
+  pytestCheckHook,
+  python-dateutil,
+  python-slugify,
+  pythonOlder,
+  requests,
+  setuptools,
+  sortedcontainers,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
       --replace "setuptools~=68.0" "setuptools"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiofiles
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     sortedcontainers
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [
     "blinkpy"
diff --git a/pkgs/development/python-modules/blinkstick/default.nix b/pkgs/development/python-modules/blinkstick/default.nix
index da4e23e527b17..6e170382a01bd 100644
--- a/pkgs/development/python-modules/blinkstick/default.nix
+++ b/pkgs/development/python-modules/blinkstick/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pyusb }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyusb,
+}:
 
 buildPythonPackage rec {
   pname = "blinkstick";
@@ -23,6 +28,9 @@ buildPythonPackage rec {
     mainProgram = "blinkstick";
     homepage = "https://github.com/arvydas/blinkstick-python";
     license = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [ np perstark ];
+    maintainers = with lib.maintainers; [
+      np
+      perstark
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/blis/default.nix b/pkgs/development/python-modules/blis/default.nix
index 8b465bcebdc11..f6075a7e5bc67 100644
--- a/pkgs/development/python-modules/blis/default.nix
+++ b/pkgs/development/python-modules/blis/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, cython_0
-, hypothesis
-, numpy
-, pytestCheckHook
-, pythonOlder
-, gitUpdater
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  cython_0,
+  hypothesis,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  gitUpdater,
 }:
 
 buildPythonPackage rec {
@@ -41,18 +42,14 @@ buildPythonPackage rec {
     cython_0
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   nativeCheckInputs = [
     hypothesis
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "blis"
-  ];
+  pythonImportsCheck = [ "blis" ];
 
   passthru = {
     # Do not update to BLIS 0.9.x until the following issue is resolved:
diff --git a/pkgs/development/python-modules/blobfile/default.nix b/pkgs/development/python-modules/blobfile/default.nix
index 039468acca4a8..3e4c1dc7da63c 100644
--- a/pkgs/development/python-modules/blobfile/default.nix
+++ b/pkgs/development/python-modules/blobfile/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, filelock
-, lxml
-, pycryptodomex
-, pythonOlder
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  filelock,
+  lxml,
+  pycryptodomex,
+  pythonOlder,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
   # Tests require a running Docker instance
   doCheck = false;
 
-  pythonImportsCheck = [
-    "blobfile"
-  ];
+  pythonImportsCheck = [ "blobfile" ];
 
   meta = with lib; {
     description = "Read Google Cloud Storage, Azure Blobs, and local paths with the same interface";
diff --git a/pkgs/development/python-modules/block-io/default.nix b/pkgs/development/python-modules/block-io/default.nix
index 6540ebe02eb8a..65190dcca6689 100644
--- a/pkgs/development/python-modules/block-io/default.nix
+++ b/pkgs/development/python-modules/block-io/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchPypi
-, bitcoin-utils-fork-minimal
-, buildPythonPackage
-, base58
-, pycryptodome
-, requests
-, setuptools
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  bitcoin-utils-fork-minimal,
+  buildPythonPackage,
+  base58,
+  pycryptodome,
+  requests,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
   # https://github.com/BlockIo/block_io-python/blob/79006bc8974544b70a2d8e9f19c759941d32648e/test.py#L18
   doCheck = false;
 
-  pythonImportsCheck = [
-    "block_io"
-  ];
+  pythonImportsCheck = [ "block_io" ];
 
   meta = with lib; {
     description = "Integrate Bitcoin, Dogecoin and Litecoin in your Python applications using block.io";
diff --git a/pkgs/development/python-modules/blockchain/default.nix b/pkgs/development/python-modules/blockchain/default.nix
index 96c6f41741795..445836cda78d4 100644
--- a/pkgs/development/python-modules/blockchain/default.nix
+++ b/pkgs/development/python-modules/blockchain/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, future
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  future,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "enum-compat" ""
   '';
 
-  propagatedBuildInputs = [
-    future
-  ];
+  propagatedBuildInputs = [ future ];
 
   # tests are interacting with the API and not mocking the calls
   doCheck = false;
diff --git a/pkgs/development/python-modules/blockdiag/default.nix b/pkgs/development/python-modules/blockdiag/default.nix
index 47b598b306cb8..b1a7dc98b57da 100644
--- a/pkgs/development/python-modules/blockdiag/default.nix
+++ b/pkgs/development/python-modules/blockdiag/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, docutils
-, ephem
-, fetchFromGitHub
-, fetchpatch
-, funcparserlib
-, pillow
-, pynose
-, pytestCheckHook
-, pythonOlder
-, reportlab
-, setuptools
-, webcolors
+{
+  lib,
+  buildPythonPackage,
+  docutils,
+  ephem,
+  fetchFromGitHub,
+  fetchpatch,
+  funcparserlib,
+  pillow,
+  pynose,
+  pytestCheckHook,
+  pythonOlder,
+  reportlab,
+  setuptools,
+  webcolors,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
     })
   ];
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     docutils
@@ -55,18 +54,14 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "src/blockdiag/tests/"
-  ];
+  pytestFlagsArray = [ "src/blockdiag/tests/" ];
 
   disabledTests = [
     # Test require network access
     "test_app_cleans_up_images"
   ];
 
-  pythonImportsCheck = [
-    "blockdiag"
-  ];
+  pythonImportsCheck = [ "blockdiag" ];
 
   meta = with lib; {
     description = "Generate block-diagram image from spec-text file (similar to Graphviz)";
diff --git a/pkgs/development/python-modules/blockfrost-python/default.nix b/pkgs/development/python-modules/blockfrost-python/default.nix
index a8da8d6e45cb6..7afc1b091952d 100644
--- a/pkgs/development/python-modules/blockfrost-python/default.nix
+++ b/pkgs/development/python-modules/blockfrost-python/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-# Python deps
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  # Python deps
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/blocksat-cli/default.nix b/pkgs/development/python-modules/blocksat-cli/default.nix
index bc260ee07ed11..1351b26698b89 100644
--- a/pkgs/development/python-modules/blocksat-cli/default.nix
+++ b/pkgs/development/python-modules/blocksat-cli/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, distro
-, fetchFromGitHub
-, pyasyncore
-, pysnmp
-, pytestCheckHook
-, python-gnupg
-, pythonAtLeast
-, pythonOlder
-, qrcode
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  distro,
+  fetchFromGitHub,
+  pyasyncore,
+  pysnmp,
+  pytestCheckHook,
+  python-gnupg,
+  pythonAtLeast,
+  pythonOlder,
+  qrcode,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-1gz2lAS/AHeY54AaVXGeofLC68KjAP7POsIaBL3v2EY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     distro
@@ -37,13 +36,9 @@ buildPythonPackage rec {
     python-gnupg
     qrcode
     requests
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    pyasyncore
-  ];
+  ] ++ lib.optionals (pythonAtLeast "3.12") [ pyasyncore ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     "test_monitor_get_stats"
@@ -51,9 +46,7 @@ buildPythonPackage rec {
     "test_erasure_recovery"
   ];
 
-  pythonImportsCheck = [
-    "blocksatcli"
-  ];
+  pythonImportsCheck = [ "blocksatcli" ];
 
   meta = with lib; {
     description = "Blockstream Satellite CLI";
diff --git a/pkgs/development/python-modules/bloodhound-py/default.nix b/pkgs/development/python-modules/bloodhound-py/default.nix
index bf8fd3f942dec..f2e9555502741 100644
--- a/pkgs/development/python-modules/bloodhound-py/default.nix
+++ b/pkgs/development/python-modules/bloodhound-py/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, dnspython
-, fetchPypi
-, impacket
-, ldap3
-, pycryptodome
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  dnspython,
+  fetchPypi,
+  impacket,
+  ldap3,
+  pycryptodome,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-USZU19dLppoq19+JMFtiojyJk6bj96nP2JQDq7JFkHM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     dnspython
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "bloodhound"
-  ];
+  pythonImportsCheck = [ "bloodhound" ];
 
   meta = with lib; {
     description = "Python based ingestor for BloodHound, based on Impacket";
diff --git a/pkgs/development/python-modules/bloodyad/default.nix b/pkgs/development/python-modules/bloodyad/default.nix
index 11d26f32fbae8..3c28d13e6c21d 100644
--- a/pkgs/development/python-modules/bloodyad/default.nix
+++ b/pkgs/development/python-modules/bloodyad/default.nix
@@ -1,19 +1,23 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, gssapi
-, hatchling
-, ldap3
-, pyasn1
-, pytestCheckHook
-, pythonOlder
-, winacl
+{
+  lib,
+  asn1crypto,
+  buildPythonPackage,
+  cryptography,
+  dnspython,
+  fetchFromGitHub,
+  gssapi,
+  hatchling,
+  ldap3,
+  msldap,
+  pyasn1,
+  pytestCheckHook,
+  pythonOlder,
+  winacl,
 }:
 
 buildPythonPackage rec {
   pname = "bloodyad";
-  version = "1.1.1";
+  version = "2.0.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,28 +26,25 @@ buildPythonPackage rec {
     owner = "CravateRouge";
     repo = "bloodyAD";
     rev = "refs/tags/v${version}";
-    hash = "sha256-wnq+HTAPnC7pSGI2iytSyHmdqtUq2pUnNwZnsGX8CL4=";
+    hash = "sha256-VqjWv7z2mU0mLM6rM4KBLS4JZaM3DGRxjXXBJQQcu9I=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    asn1crypto
     cryptography
+    dnspython
     gssapi
     ldap3
+    msldap
     pyasn1
     winacl
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "bloodyAD"
-  ];
+  pythonImportsCheck = [ "bloodyAD" ];
 
   disabledTests = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/blosc2/default.nix b/pkgs/development/python-modules/blosc2/default.nix
index efaec4ead7135..db948e8098bc2 100644
--- a/pkgs/development/python-modules/blosc2/default.nix
+++ b/pkgs/development/python-modules/blosc2/default.nix
@@ -1,31 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, cmake
-, cython
-, ninja
-, oldest-supported-numpy
-, pkg-config
-, scikit-build
-, setuptools
-, wheel
+  # build-system
+  cmake,
+  cython,
+  ninja,
+  oldest-supported-numpy,
+  pkg-config,
+  scikit-build,
+  setuptools,
+  wheel,
 
-# c library
-, c-blosc2
+  # c library
+  c-blosc2,
 
-# propagates
-, msgpack
-, ndindex
-, numpy
-, py-cpuinfo
-, rich
+  # propagates
+  msgpack,
+  ndindex,
+  numpy,
+  py-cpuinfo,
+  rich,
 
-# tests
-, psutil
-, pytestCheckHook
-, torch
+  # tests
+  psutil,
+  pytestCheckHook,
+  torch,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/bluecurrent-api/default.nix b/pkgs/development/python-modules/bluecurrent-api/default.nix
index 26c631706a177..a42998c1d3188 100644
--- a/pkgs/development/python-modules/bluecurrent-api/default.nix
+++ b/pkgs/development/python-modules/bluecurrent-api/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools
-, pytz
-, websockets
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  pytz,
+  websockets,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-mWRTSMS68+J1Z4PYOFF/UvofSqV1wv0gjiTACEWDfNg=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     pytz
diff --git a/pkgs/development/python-modules/bluemaestro-ble/default.nix b/pkgs/development/python-modules/bluemaestro-ble/default.nix
index d6eb12166a8ab..d1f8cbd912646 100644
--- a/pkgs/development/python-modules/bluemaestro-ble/default.nix
+++ b/pkgs/development/python-modules/bluemaestro-ble/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, bluetooth-data-tools
-, bluetooth-sensor-state-data
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, sensor-state-data
+{
+  lib,
+  bluetooth-data-tools,
+  bluetooth-sensor-state-data,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  sensor-state-data,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-mJ5JNGN4F9U3WMJQDwiZwuxE0zOirwo1sWF3/bVwXhY=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bluetooth-data-tools
@@ -33,18 +32,14 @@ buildPythonPackage rec {
     sensor-state-data
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace " --cov=bluemaestro_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  pythonImportsCheck = [
-    "bluemaestro_ble"
-  ];
+  pythonImportsCheck = [ "bluemaestro_ble" ];
 
   meta = with lib; {
     description = "Library for bluemaestro BLE devices";
diff --git a/pkgs/development/python-modules/bluepy-devices/default.nix b/pkgs/development/python-modules/bluepy-devices/default.nix
index 45aa2f95c3e83..85bce7b2c85d4 100644
--- a/pkgs/development/python-modules/bluepy-devices/default.nix
+++ b/pkgs/development/python-modules/bluepy-devices/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, bluepy
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  bluepy,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -11,7 +12,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     pname = "bluepy_devices";
-    inherit  version;
+    inherit version;
     sha256 = "02zzzivxq2vifgs65m2rm8pqlsbzsbc419c032irzvfxjx539mr8";
   };
 
diff --git a/pkgs/development/python-modules/bluepy/default.nix b/pkgs/development/python-modules/bluepy/default.nix
index c0053a111415e..4a3256836c670 100644
--- a/pkgs/development/python-modules/bluepy/default.nix
+++ b/pkgs/development/python-modules/bluepy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pkg-config
-, glib
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pkg-config,
+  glib,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/bluetooth-adapters/default.nix b/pkgs/development/python-modules/bluetooth-adapters/default.nix
index cf6924f2f3d67..518b38000ca0b 100644
--- a/pkgs/development/python-modules/bluetooth-adapters/default.nix
+++ b/pkgs/development/python-modules/bluetooth-adapters/default.nix
@@ -1,24 +1,26 @@
-{ lib
-, aiohttp
-, aiooui
-, async-timeout
-, bleak
-, buildPythonPackage
-, dbus-fast
-, fetchFromGitHub
-, mac-vendor-lookup
-, myst-parser
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, sphinx-rtd-theme
-, sphinxHook
-, usb-devices
+{
+  lib,
+  aiohttp,
+  aiooui,
+  async-timeout,
+  bleak,
+  buildPythonPackage,
+  dbus-fast,
+  fetchFromGitHub,
+  mac-vendor-lookup,
+  myst-parser,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  sphinx-rtd-theme,
+  sphinxHook,
+  uart-devices,
+  usb-devices,
 }:
 
 buildPythonPackage rec {
   pname = "bluetooth-adapters";
-  version = "0.18.0";
+  version = "0.19.2";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -27,7 +29,7 @@ buildPythonPackage rec {
     owner = "Bluetooth-Devices";
     repo = "bluetooth-adapters";
     rev = "refs/tags/v${version}";
-    hash = "sha256-KPmCOPCK7muT0qptJMKQwWU/6tvepkdHwlNYcrvpRLg=";
+    hash = "sha256-hPs6YnmndJ2Z5RotcIRIYWPdvMyX56ul84l1Cs8kqH0=";
   };
 
   postPatch = ''
@@ -40,30 +42,27 @@ buildPythonPackage rec {
     "doc"
   ];
 
-  nativeBuildInputs = [
+  build-system = [
     myst-parser
     poetry-core
     sphinx-rtd-theme
     sphinxHook
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     aiooui
     async-timeout
     bleak
     dbus-fast
     mac-vendor-lookup
+    uart-devices
     usb-devices
   ];
 
-  pythonImportsCheck = [
-    "bluetooth_adapters"
-  ];
+  pythonImportsCheck = [ "bluetooth_adapters" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Tools to enumerate and find Bluetooth Adapters";
diff --git a/pkgs/development/python-modules/bluetooth-auto-recovery/default.nix b/pkgs/development/python-modules/bluetooth-auto-recovery/default.nix
index a3e137cae4937..861aaab2d138a 100644
--- a/pkgs/development/python-modules/bluetooth-auto-recovery/default.nix
+++ b/pkgs/development/python-modules/bluetooth-auto-recovery/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "bluetooth-auto-recovery";
-  version = "1.4.1";
+  version = "1.4.2";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "Bluetooth-Devices";
     repo = "bluetooth-auto-recovery";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4LgEb90QsjTMsVat6fe9B3b6f93bHTgJgQNsRbyti2M=";
+    hash = "sha256-JaFazXjbHohj4+rPkQA/SaBP0irHrre3vaCqz7T2bwE=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/bluetooth-data-tools/default.nix b/pkgs/development/python-modules/bluetooth-data-tools/default.nix
index fbaf458be3f31..4a68e748c9ce5 100644
--- a/pkgs/development/python-modules/bluetooth-data-tools/default.nix
+++ b/pkgs/development/python-modules/bluetooth-data-tools/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cryptography
-, cython
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cryptography,
+  cython,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -33,22 +34,16 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  propagatedBuildInputs = [
-    cryptography
-  ];
+  propagatedBuildInputs = [ cryptography ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace " --cov=bluetooth_data_tools --cov-report=term-missing:skip-covered" ""
   '';
 
-  pythonImportsCheck = [
-    "bluetooth_data_tools"
-  ];
+  pythonImportsCheck = [ "bluetooth_data_tools" ];
 
   meta = with lib; {
     description = "Library for converting bluetooth data and packets";
diff --git a/pkgs/development/python-modules/bluetooth-sensor-state-data/default.nix b/pkgs/development/python-modules/bluetooth-sensor-state-data/default.nix
index a74769d0ec571..d3e3a36ff885e 100644
--- a/pkgs/development/python-modules/bluetooth-sensor-state-data/default.nix
+++ b/pkgs/development/python-modules/bluetooth-sensor-state-data/default.nix
@@ -1,53 +1,49 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, home-assistant-bluetooth
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, sensor-state-data
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  home-assistant-bluetooth,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  sensor-state-data,
 }:
 
 buildPythonPackage rec {
   pname = "bluetooth-sensor-state-data";
-  version = "1.6.2";
-  format = "pyproject";
+  version = "1.7.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "Bluetooth-Devices";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-NC0l3wbQKz4MVM0kHbXBAUol74ir7V/JQgeYCVuyRs4=";
+    repo = "bluetooth-sensor-state-data";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-phiK+2tULBE78d1X/TsaT2kLRHxiCiuLMkaI7S6tqJ8=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail " --cov=bluetooth_sensor_state_data --cov-report=term-missing:skip-covered" ""
+  '';
+
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     home-assistant-bluetooth
     sensor-state-data
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace " --cov=bluetooth_sensor_state_data --cov-report=term-missing:skip-covered" ""
-  '';
-
-  pythonImportsCheck = [
-    "bluetooth_sensor_state_data"
-  ];
+  pythonImportsCheck = [ "bluetooth_sensor_state_data" ];
 
   meta = with lib; {
     description = "Models for storing and converting Bluetooth Sensor State Data";
     homepage = "https://github.com/bluetooth-devices/bluetooth-sensor-state-data";
-    license = with licenses; [ asl20 ];
+    changelog = "https://github.com/Bluetooth-Devices/bluetooth-sensor-state-data/releases/tag/v${version}";
+    license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/blurhash-python/default.nix b/pkgs/development/python-modules/blurhash-python/default.nix
index 2b0232a7e9b91..e8acda803941c 100644
--- a/pkgs/development/python-modules/blurhash-python/default.nix
+++ b/pkgs/development/python-modules/blurhash-python/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, cffi
-, pillow
-, pytestCheckHook
-, setuptools-scm
-, six
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  cffi,
+  pillow,
+  pytestCheckHook,
+  setuptools-scm,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "blurhash" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
     description = "Compact representation of a placeholder for an image";
diff --git a/pkgs/development/python-modules/blurhash/default.nix b/pkgs/development/python-modules/blurhash/default.nix
index 08adb2b92b175..349687e30fe3b 100644
--- a/pkgs/development/python-modules/blurhash/default.nix
+++ b/pkgs/development/python-modules/blurhash/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pillow
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pillow,
+  numpy,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/bme280spi/default.nix b/pkgs/development/python-modules/bme280spi/default.nix
index 7747925a24785..4fb429cd6d925 100644
--- a/pkgs/development/python-modules/bme280spi/default.nix
+++ b/pkgs/development/python-modules/bme280spi/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, spidev
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  spidev,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     sha256 = "51682acefda6f29eaaf9f37815edbfdd48ef0e9f1509419eceafe7b440eddc6e";
   };
 
-  propagatedBuildInputs = [
-    spidev
-  ];
+  propagatedBuildInputs = [ spidev ];
 
   # no tests implemented
   doCheck = false;
diff --git a/pkgs/development/python-modules/bme680/default.nix b/pkgs/development/python-modules/bme680/default.nix
index 955eee09cdeff..3d1a3c0cd2339 100644
--- a/pkgs/development/python-modules/bme680/default.nix
+++ b/pkgs/development/python-modules/bme680/default.nix
@@ -1,41 +1,44 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, smbus-cffi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  hatchling,
+  hatch-fancy-pypi-readme,
+
+  # dependencies
+  smbus2,
+
+  # checks
+  mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "bme680";
-  version = "1.1.1";
-  format = "setuptools";
+  version = "2.0.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pimoroni";
     repo = "bme680-python";
-    rev = "v${version}";
-    hash = "sha256-gmdRxMJ0DoCyNcb/bYp746PBi4HktHAAYOcSQJ0Uheg=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ep0dnok/ycEoUAnOK4QmdqdO0r4ttzSoqHDl7aPengE=";
   };
 
-  propagatedBuildInputs = [
-    smbus-cffi
+  build-system = [
+    hatchling
+    hatch-fancy-pypi-readme
   ];
 
-  preBuild = ''
-    cd library
-  '';
+  dependencies = [ smbus2 ];
 
   nativeCheckInputs = [
     mock
     pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace library/setup.cfg \
-      --replace "smbus" "smbus-cffi"
-  '';
-
   pythonImportsCheck = [ "bme680" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/bnnumerizer/default.nix b/pkgs/development/python-modules/bnnumerizer/default.nix
index c3beaa01cf129..f4303af27ed1a 100644
--- a/pkgs/development/python-modules/bnnumerizer/default.nix
+++ b/pkgs/development/python-modules/bnnumerizer/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/bnunicodenormalizer/default.nix b/pkgs/development/python-modules/bnunicodenormalizer/default.nix
index 19aa011d3782b..a3a53f7c0091b 100644
--- a/pkgs/development/python-modules/bnunicodenormalizer/default.nix
+++ b/pkgs/development/python-modules/bnunicodenormalizer/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "bnunicodenormalizer";
-  version = "0.1.6";
+  version = "0.1.7";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-qVC6+0SnAs25DFzKPHFUOoYPlrRvkGWFptjIVom8wJM=";
+    hash = "sha256-hqNInMgcc9KvtOJlvS0Ni8UvyKI3TiEMiZ4CYJQLwJE=";
   };
 
   nativeCheckInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/boa-api/default.nix b/pkgs/development/python-modules/boa-api/default.nix
index d96b64522622c..2d6ea217cb95b 100644
--- a/pkgs/development/python-modules/boa-api/default.nix
+++ b/pkgs/development/python-modules/boa-api/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
   # upstream has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "boaapi"
-  ];
+  pythonImportsCheck = [ "boaapi" ];
 
   meta = {
     homepage = "https://github.com/boalang/api-python";
diff --git a/pkgs/development/python-modules/boiboite-opener-framework/default.nix b/pkgs/development/python-modules/boiboite-opener-framework/default.nix
index e7a0b017f405f..d9936a7593e90 100644
--- a/pkgs/development/python-modules/boiboite-opener-framework/default.nix
+++ b/pkgs/development/python-modules/boiboite-opener-framework/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, packaging
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, scapy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  packaging,
+  pytestCheckHook,
+  pythonOlder,
+  scapy,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "boiboite-opener-framework";
   version = "1.2.1";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -27,18 +28,16 @@ buildPythonPackage rec {
       --replace "scapy==2.5.0rc1" "scapy"
   '';
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     packaging
     scapy
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "bof"
-  ];
+  pythonImportsCheck = [ "bof" ];
 
   disabledTests = [
     # Tests are using netcat and cat to do UDP connections
@@ -75,5 +74,6 @@ buildPythonPackage rec {
     changelog = "https://github.com/Orange-Cyberdefense/bof/releases/tag/${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/python-modules/boilerpy3/default.nix b/pkgs/development/python-modules/boilerpy3/default.nix
index ef2980959d0b0..47afb1abe6b94 100644
--- a/pkgs/development/python-modules/boilerpy3/default.nix
+++ b/pkgs/development/python-modules/boilerpy3/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 let
@@ -27,7 +28,6 @@ buildPythonPackage {
       --replace '>=3.6.*' '>=3.6'
   '';
 
-
   pythonImportsCheck = [ "boilerpy3" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/bokeh/default.nix b/pkgs/development/python-modules/bokeh/default.nix
index 8f052c4b5b179..faffe2d1749e6 100644
--- a/pkgs/development/python-modules/bokeh/default.nix
+++ b/pkgs/development/python-modules/bokeh/default.nix
@@ -1,46 +1,47 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchFromGitHub
-, pythonOlder
-, substituteAll
-, colorama
-, contourpy
-, jinja2
-, numpy
-, nodejs
-, packaging
-, pandas
-, pillow
-, tornado
-, pytestCheckHook
-, pyyaml
-, setuptools
-, setuptools-git-versioning
-, xyzservices
-, beautifulsoup4
-, channels
-, click
-, colorcet
-, coverage
-, firefox
-, geckodriver
-, isort
-, json5
-, nbconvert
-, networkx
-, psutil
-, pygments
-, pygraphviz
-, pytest
-, pytest-asyncio
-, pytest-xdist
-, pytest-timeout
-, requests
-, scipy
-, selenium
-, toml
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchFromGitHub,
+  pythonOlder,
+  substituteAll,
+  colorama,
+  contourpy,
+  jinja2,
+  numpy,
+  nodejs,
+  packaging,
+  pandas,
+  pillow,
+  tornado,
+  pytestCheckHook,
+  pyyaml,
+  setuptools,
+  setuptools-git-versioning,
+  xyzservices,
+  beautifulsoup4,
+  channels,
+  click,
+  colorcet,
+  coverage,
+  firefox,
+  geckodriver,
+  isort,
+  json5,
+  nbconvert,
+  networkx,
+  psutil,
+  pygments,
+  pygraphviz,
+  pytest,
+  pytest-asyncio,
+  pytest-xdist,
+  pytest-timeout,
+  requests,
+  scipy,
+  selenium,
+  toml,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/boltons/default.nix b/pkgs/development/python-modules/boltons/default.nix
index 2046daf9297f9..06906435d850d 100644
--- a/pkgs/development/python-modules/boltons/default.nix
+++ b/pkgs/development/python-modules/boltons/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-Ie5CPT2u/2/hAIhDzXT6CPzJwmbgt3B6q3oxqKYb27o=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Tests bind to localhost
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [
-    "boltons"
-  ];
+  pythonImportsCheck = [ "boltons" ];
 
   meta = with lib; {
     description = "Constructs, recipes, and snippets extending the Python standard library";
diff --git a/pkgs/development/python-modules/boltztrap2/default.nix b/pkgs/development/python-modules/boltztrap2/default.nix
index f53d49af8d519..16e9c8f76d474 100644
--- a/pkgs/development/python-modules/boltztrap2/default.nix
+++ b/pkgs/development/python-modules/boltztrap2/default.nix
@@ -1,22 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, spglib
-, numpy
-, scipy
-, matplotlib
-, ase
-, netcdf4
-, pytest
-, pythonOlder
-, cython
-, cmake
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  spglib,
+  numpy,
+  scipy,
+  matplotlib,
+  ase,
+  netcdf4,
+  pythonOlder,
+  cython,
+  cmake,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "boltztrap2";
   version = "24.1.1";
-  format = "setuptools";
+
+  pyproject = true;
+  build-system = [ setuptools ];
 
   disabled = pythonOlder "3.5";
 
@@ -26,6 +29,11 @@ buildPythonPackage rec {
     hash = "sha256-kgv4lPBxcBmRKihaTwPRz8bHTWAWUOGZADtJUb3y+C4=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace-fail "USE_CYTHON = False" "USE_CYTHON = True"
+  '';
+
   dontUseCmakeConfigure = true;
 
   nativeBuildInputs = [
@@ -33,7 +41,7 @@ buildPythonPackage rec {
     cython
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     spglib
     numpy
     scipy
@@ -45,9 +53,7 @@ buildPythonPackage rec {
   # pypi release does no include files for tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "BoltzTraP2"
-  ];
+  pythonImportsCheck = [ "BoltzTraP2" ];
 
   meta = with lib; {
     description = "Band-structure interpolator and transport coefficient calculator";
diff --git a/pkgs/development/python-modules/bond-api/default.nix b/pkgs/development/python-modules/bond-api/default.nix
index e326688501e02..2131fa0bfb2d6 100644
--- a/pkgs/development/python-modules/bond-api/default.nix
+++ b/pkgs/development/python-modules/bond-api/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, aiohttp
-, aioresponses
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  aiohttp,
+  aioresponses,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-+87/j94eHyW3EMMBK+aXaNTVoNxsixeLusyBsPWa9yM=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   nativeCheckInputs = [
     aioresponses
@@ -32,9 +31,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "bond_api"
-  ];
+  pythonImportsCheck = [ "bond_api" ];
 
   meta = with lib; {
     description = "Asynchronous Python wrapper library over Bond Local API";
diff --git a/pkgs/development/python-modules/bond-async/default.nix b/pkgs/development/python-modules/bond-async/default.nix
index 1278315d78cce..49e7cb3515183 100644
--- a/pkgs/development/python-modules/bond-async/default.nix
+++ b/pkgs/development/python-modules/bond-async/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, aiohttp
-, aioresponses
-, orjson
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  aiohttp,
+  aioresponses,
+  orjson,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -35,9 +36,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "bond_async"
-  ];
+  pythonImportsCheck = [ "bond_async" ];
 
   meta = with lib; {
     description = "Asynchronous Python wrapper library over Bond Local API";
diff --git a/pkgs/development/python-modules/bonsai/default.nix b/pkgs/development/python-modules/bonsai/default.nix
index 43c88c1c73a5c..530f624987a18 100644
--- a/pkgs/development/python-modules/bonsai/default.nix
+++ b/pkgs/development/python-modules/bonsai/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, cyrus_sasl
-, openldap
-, gevent
-, tornado
-, trio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  cyrus_sasl,
+  openldap,
+  gevent,
+  tornado,
+  trio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-h/PbwQ69fDcmUCazMtxXP1iE0fE1on+WoK+wYgQ9jLs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   buildInputs = [
     cyrus_sasl
@@ -41,9 +40,7 @@ buildPythonPackage rec {
     trio = [ trio ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # requires running LDAP server
diff --git a/pkgs/development/python-modules/boolean-py/default.nix b/pkgs/development/python-modules/boolean-py/default.nix
index 47afe1ef02b64..8fd6b60311205 100644
--- a/pkgs/development/python-modules/boolean-py/default.nix
+++ b/pkgs/development/python-modules/boolean-py/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-i6aNzGDhZip9YHXLiuh9crGm2qT2toBU2xze4PDLleg=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "boolean"
-  ];
+  pythonImportsCheck = [ "boolean" ];
 
   meta = with lib; {
     description = "Implements boolean algebra in one module";
diff --git a/pkgs/development/python-modules/booleanoperations/default.nix b/pkgs/development/python-modules/booleanoperations/default.nix
index 4d96bb7612ed8..ca2518dbb4ea7 100644
--- a/pkgs/development/python-modules/booleanoperations/default.nix
+++ b/pkgs/development/python-modules/booleanoperations/default.nix
@@ -1,6 +1,14 @@
-{ lib, buildPythonPackage, fetchPypi
-, fonttools, fs, pyclipper, defcon, fontpens
-, setuptools-scm, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fonttools,
+  fs,
+  pyclipper,
+  defcon,
+  fontpens,
+  setuptools-scm,
+  pytest,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/boost-histogram/default.nix b/pkgs/development/python-modules/boost-histogram/default.nix
index 14eeb53c93f25..de4224d13ee78 100644
--- a/pkgs/development/python-modules/boost-histogram/default.nix
+++ b/pkgs/development/python-modules/boost-histogram/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, boost
-, numpy
-, pytestCheckHook
-, pytest-benchmark
-, setuptools-scm
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  boost,
+  numpy,
+  pytestCheckHook,
+  pytest-benchmark,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -22,17 +23,11 @@ buildPythonPackage rec {
     hash = "sha256-lxRvc19GfVBpdqBH8/I3zlmECpUv0jH19DH4l/sAbN0=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    boost
-  ];
+  buildInputs = [ boost ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/bootstrap/build/default.nix b/pkgs/development/python-modules/bootstrap/build/default.nix
index f4e49bd65605c..2101ee06c6bb4 100644
--- a/pkgs/development/python-modules/bootstrap/build/default.nix
+++ b/pkgs/development/python-modules/bootstrap/build/default.nix
@@ -1,46 +1,52 @@
-{ lib
-, stdenv
-, python
-, build
-, flit-core
-, installer
-, packaging
-, pyproject-hooks
-, tomli
-, makeWrapper
+{
+  lib,
+  stdenv,
+  python,
+  build,
+  flit-core,
+  installer,
+  packaging,
+  pyproject-hooks,
+  tomli,
+  makeWrapper,
 }:
 let
-  buildBootstrapPythonModule = basePackage: attrs: stdenv.mkDerivation ({
-    pname = "${python.libPrefix}-bootstrap-${basePackage.pname}";
-    inherit (basePackage) version src meta;
+  buildBootstrapPythonModule =
+    basePackage: attrs:
+    stdenv.mkDerivation (
+      {
+        pname = "${python.libPrefix}-bootstrap-${basePackage.pname}";
+        inherit (basePackage) version src meta;
 
-    nativeBuildInputs = [ makeWrapper ];
+        nativeBuildInputs = [ makeWrapper ];
 
-    buildPhase = ''
-      runHook preBuild
+        buildPhase = ''
+          runHook preBuild
 
-      PYTHONPATH="${flit-core}/${python.sitePackages}" \
-        ${python.interpreter} -m flit_core.wheel
+          PYTHONPATH="${flit-core}/${python.sitePackages}" \
+            ${python.interpreter} -m flit_core.wheel
 
-      runHook postBuild
-    '';
+          runHook postBuild
+        '';
 
-    installPhase = ''
-      runHook preInstall
+        installPhase = ''
+          runHook preInstall
 
-      PYTHONPATH="${installer}/${python.sitePackages}" \
-        ${python.interpreter} -m installer \
-          --destdir "$out" --prefix "" dist/*.whl
+          PYTHONPATH="${installer}/${python.sitePackages}" \
+            ${python.interpreter} -m installer \
+              --destdir "$out" --prefix "" dist/*.whl
 
-      runHook postInstall
-    '';
-  } // attrs);
+          runHook postInstall
+        '';
+      }
+      // attrs
+    );
 
-  bootstrap-packaging = buildBootstrapPythonModule packaging {};
+  bootstrap-packaging = buildBootstrapPythonModule packaging { };
 
-  bootstrap-pyproject-hooks = buildBootstrapPythonModule pyproject-hooks {};
+  bootstrap-pyproject-hooks = buildBootstrapPythonModule pyproject-hooks { };
 
-  bootstrap-tomli = buildBootstrapPythonModule tomli {};
+  bootstrap-tomli = buildBootstrapPythonModule tomli { };
 
   sitePkgs = python.sitePackages;
 in
diff --git a/pkgs/development/python-modules/bootstrap/flit-core/default.nix b/pkgs/development/python-modules/bootstrap/flit-core/default.nix
index 43fec03901cd8..d348b1f877c80 100644
--- a/pkgs/development/python-modules/bootstrap/flit-core/default.nix
+++ b/pkgs/development/python-modules/bootstrap/flit-core/default.nix
@@ -1,12 +1,18 @@
-{ lib
-, stdenv
-, python
-, flit-core
+{
+  lib,
+  stdenv,
+  python,
+  flit-core,
 }:
 
 stdenv.mkDerivation rec {
   pname = "${python.libPrefix}-bootstrap-${flit-core.pname}";
-  inherit (flit-core) version src patches meta;
+  inherit (flit-core)
+    version
+    src
+    patches
+    meta
+    ;
 
   sourceRoot = "${src.name}/flit_core";
 
diff --git a/pkgs/development/python-modules/bootstrap/installer/default.nix b/pkgs/development/python-modules/bootstrap/installer/default.nix
index a3944ba395003..454ec2a239a1a 100644
--- a/pkgs/development/python-modules/bootstrap/installer/default.nix
+++ b/pkgs/development/python-modules/bootstrap/installer/default.nix
@@ -1,13 +1,19 @@
-{ lib
-, stdenv
-, python
-, flit-core
-, installer
+{
+  lib,
+  stdenv,
+  python,
+  flit-core,
+  installer,
 }:
 
 stdenv.mkDerivation {
   pname = "${python.libPrefix}-bootstrap-${installer.pname}";
-  inherit (installer) version src patches meta;
+  inherit (installer)
+    version
+    src
+    patches
+    meta
+    ;
 
   buildPhase = ''
     runHook preBuild
diff --git a/pkgs/development/python-modules/bootstrap/packaging/default.nix b/pkgs/development/python-modules/bootstrap/packaging/default.nix
index f8a10d4ddd121..8f429e5f5c652 100644
--- a/pkgs/development/python-modules/bootstrap/packaging/default.nix
+++ b/pkgs/development/python-modules/bootstrap/packaging/default.nix
@@ -1,8 +1,9 @@
-{ stdenv
-, python
-, flit-core
-, installer
-, packaging
+{
+  stdenv,
+  python,
+  flit-core,
+  installer,
+  packaging,
 }:
 
 stdenv.mkDerivation {
diff --git a/pkgs/development/python-modules/borb/default.nix b/pkgs/development/python-modules/borb/default.nix
index e1d2211f2ab31..594c64fe66ef3 100644
--- a/pkgs/development/python-modules/borb/default.nix
+++ b/pkgs/development/python-modules/borb/default.nix
@@ -1,30 +1,38 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchPypi
-, fonttools
-, lxml
-, pillow
-, python-barcode
-, pythonOlder
-, qrcode
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  fonttools,
+  lxml,
+  matplotlib,
+  pandas,
+  pillow,
+  python-barcode,
+  pythonOlder,
+  qrcode,
+  pytestCheckHook,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "borb";
-  version = "2.1.22";
-  format = "setuptools";
+  version = "2.1.24";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-T+uSq/KF3p4zJJhQeompJIJ6BWhYFK9Ko9w0sZFtFhE=";
+  src = fetchFromGitHub {
+    owner = "jorisschellekens";
+    repo = "borb";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-3PZ3fHsq9pgJ4oK42Y4b/3ghuYELgRPe09fciOKknuE=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     cryptography
     fonttools
     lxml
@@ -35,11 +43,25 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  pythonImportsCheck = [
-    "borb.pdf"
+  nativeCheckInputs = [
+    matplotlib
+    pandas
+    pytestCheckHook
   ];
 
-  doCheck = false;
+  pythonImportsCheck = [ "borb.pdf" ];
+
+  disabledTests = [
+    "test_code_files_are_small "
+    "test_image_has_pdfobject_methods"
+  ];
+
+  disabledTestPaths = [
+    # Tests require network access
+    "tests/pdf/"
+    "tests/toolkit/"
+    "tests/license/"
+  ];
 
   meta = with lib; {
     description = "Library for reading, creating and manipulating PDF files in Python";
diff --git a/pkgs/development/python-modules/bork/default.nix b/pkgs/development/python-modules/bork/default.nix
index 578c218372b5a..c0404e566de6c 100644
--- a/pkgs/development/python-modules/bork/default.nix
+++ b/pkgs/development/python-modules/bork/default.nix
@@ -1,17 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
-, build
-, coloredlogs
-, packaging
-, pip
-, readme-renderer
-, toml
-, twine
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  build,
+  coloredlogs,
+  packaging,
+  pip,
+  readme-renderer,
+  toml,
+  twine,
 }:
 
 buildPythonPackage rec {
@@ -28,11 +28,11 @@ buildPythonPackage rec {
   };
 
   build-system = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
   pythonRelaxDeps = [
+    "build"
     "packaging"
     "readme-renderer"
     "twine"
@@ -46,9 +46,7 @@ buildPythonPackage rec {
     pip
     readme-renderer
     twine
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    toml
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ toml ];
 
   pythonImportsCheck = [
     "bork"
@@ -56,13 +54,9 @@ buildPythonPackage rec {
     "bork.cli"
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "-m 'not network'"
-  ];
+  pytestFlagsArray = [ "-m 'not network'" ];
 
   disabledTests = [
     # tries to call python -m bork
diff --git a/pkgs/development/python-modules/boschshcpy/default.nix b/pkgs/development/python-modules/boschshcpy/default.nix
index 14e04b17f6042..ba4c5d9e9e206 100644
--- a/pkgs/development/python-modules/boschshcpy/default.nix
+++ b/pkgs/development/python-modules/boschshcpy/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, getmac
-, pythonOlder
-, requests
-, setuptools
-, zeroconf
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  getmac,
+  pythonOlder,
+  requests,
+  setuptools,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-lQDYJrla2iDk1MbLHjBGP3ZcZ1djD3bWhz15RaBFMgg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cryptography
@@ -37,9 +36,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "boschshcpy"
-  ];
+  pythonImportsCheck = [ "boschshcpy" ];
 
   meta = with lib; {
     description = "Python module to work with the Bosch Smart Home Controller API";
diff --git a/pkgs/development/python-modules/boto/default.nix b/pkgs/development/python-modules/boto/default.nix
index b31d6d13c527a..9d676c3612f66 100644
--- a/pkgs/development/python-modules/boto/default.nix
+++ b/pkgs/development/python-modules/boto/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonAtLeast
-, python
-, nose
-, mock
-, requests
-, httpretty
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
+  python,
+  nose,
+  mock,
+  requests,
+  httpretty,
 }:
 
 buildPythonPackage rec {
@@ -40,8 +41,14 @@ buildPythonPackage rec {
     ${python.interpreter} tests/test.py default
   '';
 
-  nativeCheckInputs = [ nose mock ];
-  propagatedBuildInputs = [ requests httpretty ];
+  nativeCheckInputs = [
+    nose
+    mock
+  ];
+  propagatedBuildInputs = [
+    requests
+    httpretty
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/boto/boto";
diff --git a/pkgs/development/python-modules/boto3-stubs/default.nix b/pkgs/development/python-modules/boto3-stubs/default.nix
index 1d7e839665c9a..0e7054683263d 100644
--- a/pkgs/development/python-modules/boto3-stubs/default.nix
+++ b/pkgs/development/python-modules/boto3-stubs/default.nix
@@ -366,7 +366,7 @@
 
 buildPythonPackage rec {
   pname = "boto3-stubs";
-  version = "1.34.96";
+  version = "1.34.131";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -374,7 +374,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "boto3_stubs";
     inherit version;
-    hash = "sha256-gkpimXGE45wP34h7JCxEodaauH4hVMKzHVDGSvqKT8U=";
+    hash = "sha256-AZ2CqKRJbAGGPWdqjU8q2DC/TLdSsRB+pFP+4w1QOmA=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/boto3/default.nix b/pkgs/development/python-modules/boto3/default.nix
index e8ce2d73f11bb..e6accaddef6e0 100644
--- a/pkgs/development/python-modules/boto3/default.nix
+++ b/pkgs/development/python-modules/boto3/default.nix
@@ -1,19 +1,19 @@
-{ lib
-, botocore
-, buildPythonPackage
-, fetchFromGitHub
-, jmespath
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, s3transfer
-, setuptools
+{
+  lib,
+  botocore,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jmespath,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  s3transfer,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "boto3";
-  version = "1.34.58"; # N.B: if you change this, change botocore and awscli to a matching version
+  inherit (botocore) version; # N.B: botocore, boto3, awscli needs to be updated in lockstep, bump botocore version for updating these.
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,17 +22,14 @@ buildPythonPackage rec {
     owner = "boto";
     repo = "boto3";
     rev = "refs/tags/${version}";
-    hash = "sha256-2L4pHjrDoy7dPZm0nx+NXZV/K3ZVx7FrNGYZTMrwAs4=";
+    hash = "sha256-1qnWJjYsDc70VkHYbKt0X26f0f4TugqMiS1FeaPjhq4=";
   };
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
-  pythonRelaxDeps = [
-    "s3transfer"
-  ];
+  pythonRelaxDeps = [ "s3transfer" ];
 
   propagatedBuildInputs = [
     botocore
@@ -45,9 +42,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "boto3"
-  ];
+  pythonImportsCheck = [ "boto3" ];
 
   disabledTestPaths = [
     # Integration tests require networking
@@ -55,9 +50,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    crt = [
-      botocore.optional-dependencies.crt
-    ];
+    crt = [ botocore.optional-dependencies.crt ];
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/botocore-stubs/default.nix b/pkgs/development/python-modules/botocore-stubs/default.nix
index 4d1960ebe115e..0eac91a8f3082 100644
--- a/pkgs/development/python-modules/botocore-stubs/default.nix
+++ b/pkgs/development/python-modules/botocore-stubs/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, poetry-core
-, pythonOlder
-, types-awscrt
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  pythonOlder,
+  types-awscrt,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "botocore-stubs";
-  version = "1.34.94";
+  version = "1.34.131";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -17,21 +18,17 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "botocore_stubs";
     inherit version;
-    hash = "sha256-ZNgKNGfjsZk56cJ1CvMzKLMIf49SSZjb337RaCJ/UH0=";
+    hash = "sha256-pS4FLPCKxwjCjh8wKtAxzXYELm+JUTcta+E1CKlYQwY=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     types-awscrt
     typing-extensions
   ];
 
-  pythonImportsCheck = [
-    "botocore-stubs"
-  ];
+  pythonImportsCheck = [ "botocore-stubs" ];
 
   meta = with lib; {
     description = "Type annotations and code completion for botocore";
diff --git a/pkgs/development/python-modules/botocore/default.nix b/pkgs/development/python-modules/botocore/default.nix
index 0c9dfaa7920a5..3eaade127cfe7 100644
--- a/pkgs/development/python-modules/botocore/default.nix
+++ b/pkgs/development/python-modules/botocore/default.nix
@@ -1,35 +1,32 @@
-{ lib
-, awscrt
-, buildPythonPackage
-, fetchPypi
-, jmespath
-, jsonschema
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
-, urllib3
+{
+  lib,
+  awscrt,
+  buildPythonPackage,
+  fetchPypi,
+  jmespath,
+  jsonschema,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  setuptools,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "botocore";
-  version = "1.34.87"; # N.B: if you change this, change boto3 and awscli to a matching version
+  version = "1.34.129"; # N.B: if you change this, change boto3 and awscli to a matching version
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-o6TYV/CUHZih5c6M1kw5BiJx/qC+TZ89DWr/bLWBI7k=";
+    hash = "sha256-fFbiWvYRLWnF0UoVtC92unaHaHq8RjqWrF7coZwKnC0=";
   };
 
-  pythonRelaxDeps = [
-    "urllib3"
-  ];
+  pythonRelaxDeps = [ "urllib3" ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -52,18 +49,14 @@ buildPythonPackage rec {
     "tests/functional"
   ];
 
-  pythonImportsCheck = [
-    "botocore"
-  ];
+  pythonImportsCheck = [ "botocore" ];
 
   passthru.optional-dependencies = {
-    crt = [
-      awscrt
-    ];
+    crt = [ awscrt ];
   };
 
   meta = with lib; {
-    description = "A low-level interface to a growing number of Amazon Web Services";
+    description = "Low-level interface to a growing number of Amazon Web Services";
     homepage = "https://github.com/boto/botocore";
     changelog = "https://github.com/boto/botocore/blob/${version}/CHANGELOG.rst";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/botorch/default.nix b/pkgs/development/python-modules/botorch/default.nix
index e816099087585..129facf57de18 100644
--- a/pkgs/development/python-modules/botorch/default.nix
+++ b/pkgs/development/python-modules/botorch/default.nix
@@ -1,33 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, gpytorch
-, linear-operator
-, multipledispatch
-, pyro-ppl
-, setuptools
-, setuptools-scm
-, wheel
-, torch
-, scipy
-, pytestCheckHook
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gpytorch,
+  linear-operator,
+  multipledispatch,
+  pyro-ppl,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  torch,
+  scipy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "botorch";
-  version = "0.10.0";
+  version = "0.11.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pytorch";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-IaFtQWrgOhVHDOiPQ4oG8l+Q0igWamYVWEReGccbVoI=";
+    hash = "sha256-YX/G46U09y/VZuWZhKY8zU0Y+bf0NKumzSGYUWvrq/0=";
   };
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
     setuptools-scm
     wheel
@@ -42,13 +41,9 @@ buildPythonPackage rec {
     torch
   ];
 
-  pythonRelaxDeps = [
-    "linear-operator"
-  ];
+  pythonRelaxDeps = [ "linear-operator" ];
 
-  checkInputs = [
-    pytestCheckHook
-  ];
+  checkInputs = [ pytestCheckHook ];
   pythonImportsCheck = [ "botorch" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/bottle/default.nix b/pkgs/development/python-modules/bottle/default.nix
index 8e89ce8d14cc3..2b7bff14c0075 100644
--- a/pkgs/development/python-modules/bottle/default.nix
+++ b/pkgs/development/python-modules/bottle/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pytestCheckHook
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pytestCheckHook,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -16,37 +17,35 @@ buildPythonPackage rec {
     hash = "sha256-4anJSXCubXELP7RSYpTf64byy0qB7/OkuY3ED7Dl4CE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     cd test
   '';
 
-  disabledTests = [
-    "test_delete_cookie"
-    "test_error"
-    "test_error_in_generator_callback"
-    # timing sensitive
-    "test_ims"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    # https://github.com/bottlepy/bottle/issues/1422
-    # ModuleNotFoundError: No module named 'bottle.ext'
-    "test_data_import"
-    "test_direkt_import"
-    "test_from_import"
-  ];
+  disabledTests =
+    [
+      "test_delete_cookie"
+      "test_error"
+      "test_error_in_generator_callback"
+      # timing sensitive
+      "test_ims"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # https://github.com/bottlepy/bottle/issues/1422
+      # ModuleNotFoundError: No module named 'bottle.ext'
+      "test_data_import"
+      "test_direkt_import"
+      "test_from_import"
+    ];
 
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
     homepage = "https://bottlepy.org/";
-    description = "A fast and simple micro-framework for small web-applications";
+    description = "Fast and simple micro-framework for small web-applications";
     mainProgram = "bottle.py";
     downloadPage = "https://github.com/bottlepy/bottle";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/bottleneck/default.nix b/pkgs/development/python-modules/bottleneck/default.nix
index 677b4a9903622..8b84fc8c125f2 100644
--- a/pkgs/development/python-modules/bottleneck/default.nix
+++ b/pkgs/development/python-modules/bottleneck/default.nix
@@ -1,44 +1,34 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, pytestCheckHook
-, python
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  pytestCheckHook,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "bottleneck";
-  version = "1.3.8";
+  version = "1.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    pname = "Bottleneck";
-    inherit version;
-    hash = "sha256-Z4DYlpabp/U8iZW6kMh8VIvrPbQ13JDGC5oQ7Rq02Gg=";
+    inherit pname version;
+    hash = "sha256-vrNt9Rm4cJ59NXwMljmwO4hcpjVbv15TdSxoXeUWBbg=";
   };
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "$out/${python.sitePackages}"
-  ];
+  pytestFlagsArray = [ "$out/${python.sitePackages}" ];
 
-  disabledTests = [
-    "test_make_c_files"
-  ];
+  disabledTests = [ "test_make_c_files" ];
 
-  pythonImportsCheck = [
-    "bottleneck"
-  ];
+  pythonImportsCheck = [ "bottleneck" ];
 
   meta = with lib; {
     description = "Fast NumPy array functions";
diff --git a/pkgs/development/python-modules/bottombar/default.nix b/pkgs/development/python-modules/bottombar/default.nix
index ab7a9b06d64f4..227e00d66e546 100644
--- a/pkgs/development/python-modules/bottombar/default.nix
+++ b/pkgs/development/python-modules/bottombar/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
 }:
 
 buildPythonPackage rec {
@@ -16,16 +17,12 @@ buildPythonPackage rec {
     hash = "sha256-W+Cbcgb664nVT/nsFdDruT688JWG2NZnF5hDDezTgnw=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   # The package only has some "interactive" tests where a user must check for
   # the correct output and hit enter after every check
   doCheck = false;
-  pythonImportsCheck = [
-    "bottombar"
-  ];
+  pythonImportsCheck = [ "bottombar" ];
 
   meta = with lib; {
     description = "Context manager that prints a status line at the bottom of a terminal window";
diff --git a/pkgs/development/python-modules/boxx/default.nix b/pkgs/development/python-modules/boxx/default.nix
index 67d862941c8ed..1a0821f7d5fb5 100644
--- a/pkgs/development/python-modules/boxx/default.nix
+++ b/pkgs/development/python-modules/boxx/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, xvfb-run
-, matplotlib
-, scikit-image
-, numpy
-, pandas
-, imageio
-, snakeviz
-, fn
-, pyopengl
-, seaborn
-, torch
-, pythonOlder
-, torchvision
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  xvfb-run,
+  matplotlib,
+  scikit-image,
+  numpy,
+  pandas,
+  imageio,
+  snakeviz,
+  fn,
+  pyopengl,
+  seaborn,
+  torch,
+  pythonOlder,
+  torchvision,
 }:
 
 buildPythonPackage rec {
@@ -47,9 +48,7 @@ buildPythonPackage rec {
     torchvision
   ];
 
-  pythonImportsCheck = [
-    "boxx"
-  ];
+  pythonImportsCheck = [ "boxx" ];
 
   checkPhase = ''
     xvfb-run ${python.interpreter} -m unittest
diff --git a/pkgs/development/python-modules/bpemb/default.nix b/pkgs/development/python-modules/bpemb/default.nix
index ab6d5357e53b0..03f4ae1cd2160 100644
--- a/pkgs/development/python-modules/bpemb/default.nix
+++ b/pkgs/development/python-modules/bpemb/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-
-, setuptools
-
-, gensim
-, numpy
-, requests
-, sentencepiece
-, tqdm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  setuptools,
+
+  gensim,
+  numpy,
+  requests,
+  sentencepiece,
+  tqdm,
 }:
 
 buildPythonPackage {
@@ -23,9 +24,7 @@ buildPythonPackage {
     hash = "sha256-nVaMXb5TBhO/vWE8AYAA3P9dSPI8O+rmzFvbEj8VEkE=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     gensim
@@ -38,9 +37,7 @@ buildPythonPackage {
   # need network connection for tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "bpemb"
-  ];
+  pythonImportsCheck = [ "bpemb" ];
 
   meta = with lib; {
     description = "Byte-pair embeddings in 275 languages";
diff --git a/pkgs/development/python-modules/bpycv/default.nix b/pkgs/development/python-modules/bpycv/default.nix
index 84085488ae4c1..a04cb8c79de43 100644
--- a/pkgs/development/python-modules/bpycv/default.nix
+++ b/pkgs/development/python-modules/bpycv/default.nix
@@ -1,20 +1,20 @@
-{ stdenv
-, lib
-, beautifulsoup4
-, blender
-, boxx
-, bpycv
-, buildPythonPackage
-, fetchFromGitHub
-, fetchPypi
-, fetchurl
-, minexr
-, opencv4
-, python3Packages
-, requests
-, runCommand
-, writeText
-, zcs
+{
+  stdenv,
+  lib,
+  beautifulsoup4,
+  blender,
+  boxx,
+  bpycv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchPypi,
+  minexr,
+  opencv4,
+  python3Packages,
+  requests,
+  runCommand,
+  writeText,
+  zcs,
 }:
 
 buildPythonPackage rec {
@@ -44,16 +44,19 @@ buildPythonPackage rec {
   doCheck = false;
 
   passthru.tests = {
-    render = runCommand "bpycv-render-test" {
-      BPY_EXAMPLE_DATA = fetchFromGitHub {
-        owner = "DIYer22";
-        repo = "bpycv_example_data";
-        hash = "sha256-dGb6KvbXTGTu5f4AqhA+i4AwTqBoR5SdXk0vsMEcD3Q=";
-        rev = "6ce0e65c107d572011394da16ffdf851e988dbb4";
-      };
-    } ''
-      ${blender.withPackages (ps: [ps.bpycv])}/bin/blender-wrapped -b -P ${./bpycv-test.py}
-    '';
+    render =
+      runCommand "bpycv-render-test"
+        {
+          BPY_EXAMPLE_DATA = fetchFromGitHub {
+            owner = "DIYer22";
+            repo = "bpycv_example_data";
+            hash = "sha256-dGb6KvbXTGTu5f4AqhA+i4AwTqBoR5SdXk0vsMEcD3Q=";
+            rev = "6ce0e65c107d572011394da16ffdf851e988dbb4";
+          };
+        }
+        ''
+          ${blender.withPackages (ps: [ ps.bpycv ])}/bin/blender-wrapped -b -P ${./bpycv-test.py}
+        '';
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/bpython/default.nix b/pkgs/development/python-modules/bpython/default.nix
index beb3d86cb70ce..e6dd4a3f082b6 100644
--- a/pkgs/development/python-modules/bpython/default.nix
+++ b/pkgs/development/python-modules/bpython/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, curtsies
-, cwcwidth
-, greenlet
-, jedi
-, pygments
-, pytestCheckHook
-, pythonOlder
-, pyperclip
-, pyxdg
-, requests
-, substituteAll
-, typing-extensions
-, urwid
-, watchdog
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  curtsies,
+  cwcwidth,
+  greenlet,
+  jedi,
+  pygments,
+  pytestCheckHook,
+  pythonOlder,
+  pyperclip,
+  pyxdg,
+  requests,
+  substituteAll,
+  typing-extensions,
+  urwid,
+  watchdog,
 }:
 
 buildPythonPackage rec {
@@ -48,13 +49,9 @@ buildPythonPackage rec {
       --replace "Exec=/usr/bin/bpython" "Exec=$out/bin/bpython"
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "bpython"
-  ];
+  pythonImportsCheck = [ "bpython" ];
 
   disabledTests = [
     # Check for syntax error ends with an AssertionError
@@ -62,9 +59,12 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A fancy curses interface to the Python interactive interpreter";
+    description = "Fancy curses interface to the Python interactive interpreter";
     homepage = "https://bpython-interpreter.org/";
     license = licenses.mit;
-    maintainers = with maintainers; [ flokli dotlambda ];
+    maintainers = with maintainers; [
+      flokli
+      dotlambda
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/bqplot/default.nix b/pkgs/development/python-modules/bqplot/default.nix
index a38d600f0f3b2..cd8495a818e6f 100644
--- a/pkgs/development/python-modules/bqplot/default.nix
+++ b/pkgs/development/python-modules/bqplot/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, jupyter-packaging
-, jupyterlab
-, bqscales
-, ipywidgets
-, numpy
-, pandas
-, traitlets
-, traittypes
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  jupyter-packaging,
+  jupyterlab,
+  bqscales,
+  ipywidgets,
+  numpy,
+  pandas,
+  traitlets,
+  traittypes,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/bqscales/default.nix b/pkgs/development/python-modules/bqscales/default.nix
index a5fae24a13ebb..2f1a0b0241d0e 100644
--- a/pkgs/development/python-modules/bqscales/default.nix
+++ b/pkgs/development/python-modules/bqscales/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, hatchling
-, hatch-jupyter-builder
-, jupyterlab
-, ipywidgets
-, numpy
-, traitlets
-, traittypes
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  hatchling,
+  hatch-jupyter-builder,
+  jupyterlab,
+  ipywidgets,
+  numpy,
+  traitlets,
+  traittypes,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/braceexpand/default.nix b/pkgs/development/python-modules/braceexpand/default.nix
index 76c339bb9ac31..0b32a37698bef 100644
--- a/pkgs/development/python-modules/braceexpand/default.nix
+++ b/pkgs/development/python-modules/braceexpand/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/bracex/default.nix b/pkgs/development/python-modules/bracex/default.nix
index d2b8bb06ff9b9..7e341d4c1ce08 100644
--- a/pkgs/development/python-modules/bracex/default.nix
+++ b/pkgs/development/python-modules/bracex/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatchling
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatchling,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-on6vHfQs9WH+1Yt6jz/fEp0eoWqB4frdHReYm8Y4S+s=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/braintree/default.nix b/pkgs/development/python-modules/braintree/default.nix
index 40715bcdacc14..7791004c1b6af 100644
--- a/pkgs/development/python-modules/braintree/default.nix
+++ b/pkgs/development/python-modules/braintree/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nose
-, pytestCheckHook
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nose,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-qeqQX+qyy78sLe+46CA4D6VAxNHUVahS4LMYdGDzc2k=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     nose
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "braintree"
-  ];
+  pythonImportsCheck = [ "braintree" ];
 
   disabledTestPaths = [
     # Don't test integrations
diff --git a/pkgs/development/python-modules/branca/default.nix b/pkgs/development/python-modules/branca/default.nix
index 77f146896062d..4c16cd2a88937 100644
--- a/pkgs/development/python-modules/branca/default.nix
+++ b/pkgs/development/python-modules/branca/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, jinja2
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
-, selenium
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jinja2,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  selenium,
 }:
 
 buildPythonPackage rec {
   pname = "branca";
-  version = "0.7.2";
+  version = "0.8.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +20,7 @@ buildPythonPackage rec {
     owner = "python-visualization";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-ipu0JZIx/YgR7F5Z7sl/9YEEHkyiDllR5dHko7AlSe8=";
+    hash = "sha256-9imrW4u2Ea1q7VKgk6Vs8y2OiSzAPr3W6471pi/gVm4=";
   };
 
   postPatch = ''
@@ -27,22 +28,16 @@ buildPythonPackage rec {
     rm setup.cfg
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    jinja2
-  ];
+  propagatedBuildInputs = [ jinja2 ];
 
   nativeCheckInputs = [
     pytestCheckHook
     selenium
   ];
 
-  pythonImportsCheck = [
-    "branca"
-  ];
+  pythonImportsCheck = [ "branca" ];
 
   disabledTestPaths = [
     # Some tests require a browser
diff --git a/pkgs/development/python-modules/bravado-core/default.nix b/pkgs/development/python-modules/bravado-core/default.nix
index 9699e1cc04fb8..e3832e5ed550e 100644
--- a/pkgs/development/python-modules/bravado-core/default.nix
+++ b/pkgs/development/python-modules/bravado-core/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
   # build inputs
-, jsonref
-, jsonschema
-, python-dateutil
-, pyyaml
-, requests
-, simplejson
-, six
-, swagger-spec-validator
-, pytz
-, msgpack
+  jsonref,
+  jsonschema,
+  python-dateutil,
+  pyyaml,
+  requests,
+  simplejson,
+  six,
+  swagger-spec-validator,
+  pytz,
+  msgpack,
   # check inputs
-, pytestCheckHook
-, mock
+  pytestCheckHook,
+  mock,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
     hash = "sha256-kyHmZNPl5lLKmm5i3TSi8Tfi96mQHqaiyBfceBJcOdw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     jsonref
@@ -50,17 +49,11 @@ buildPythonPackage rec {
     msgpack
   ] ++ jsonschema.optional-dependencies.format-nongpl;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  checkInputs = [
-    mock
-  ];
+  checkInputs = [ mock ];
 
-  pythonImportsCheck = [
-    "bravado_core"
-  ];
+  pythonImportsCheck = [ "bravado_core" ];
 
   disabledTestPaths = [
     # skip benchmarks
@@ -74,6 +67,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/Yelp/bravado-core";
     changelog = "https://github.com/Yelp/bravado-core/blob/v${version}/CHANGELOG.rst";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ vanschelven nickcao ];
+    maintainers = with maintainers; [
+      vanschelven
+      nickcao
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/bravia-tv/default.nix b/pkgs/development/python-modules/bravia-tv/default.nix
index 391d10f20df01..31a7d6528bbd9 100644
--- a/pkgs/development/python-modules/bravia-tv/default.nix
+++ b/pkgs/development/python-modules/bravia-tv/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/breathe/default.nix b/pkgs/development/python-modules/breathe/default.nix
index 35bc0b6986750..d9033c4fd3bad 100644
--- a/pkgs/development/python-modules/breathe/default.nix
+++ b/pkgs/development/python-modules/breathe/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, defusedxml
-, docutils
-, fetchFromGitHub
-, fetchpatch
-, pytestCheckHook
-, pythonOlder
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  defusedxml,
+  docutils,
+  fetchFromGitHub,
+  fetchpatch,
+  pytestCheckHook,
+  pythonOlder,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -37,17 +38,11 @@ buildPythonPackage rec {
     sphinx
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  checkInputs = [
-    defusedxml
-  ];
+  checkInputs = [ defusedxml ];
 
-  pythonImportsCheck = [
-    "breathe"
-  ];
+  pythonImportsCheck = [ "breathe" ];
 
   meta = with lib; {
     description = "Sphinx Doxygen renderer";
diff --git a/pkgs/development/python-modules/breezy/default.nix b/pkgs/development/python-modules/breezy/default.nix
index 4972e82b3d07c..de779d7f3e4cd 100644
--- a/pkgs/development/python-modules/breezy/default.nix
+++ b/pkgs/development/python-modules/breezy/default.nix
@@ -1,30 +1,31 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, cargo
-, configobj
-, cython
-, dulwich
-, fastbencode
-, fastimport
-, pygithub
-, libiconv
-, merge3
-, patiencediff
-, pyyaml
-, tzlocal
-, urllib3
-, breezy
-, launchpadlib
-, testtools
-, pythonOlder
-, installShellFiles
-, rustPlatform
-, rustc
-, setuptools-gettext
-, setuptools-rust
-, testers
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cargo,
+  configobj,
+  cython,
+  dulwich,
+  fastbencode,
+  fastimport,
+  pygithub,
+  libiconv,
+  merge3,
+  patiencediff,
+  pyyaml,
+  tzlocal,
+  urllib3,
+  breezy,
+  launchpadlib,
+  testtools,
+  pythonOlder,
+  installShellFiles,
+  rustPlatform,
+  rustc,
+  setuptools-gettext,
+  setuptools-rust,
+  testers,
 }:
 
 buildPythonPackage rec {
@@ -41,9 +42,7 @@ buildPythonPackage rec {
     hash = "sha256-NSfMUyx6a/vb1vTNn/fFfNktrFdB2N940m0TR6EhB9k=";
   };
 
-  cargoDeps = rustPlatform.importCargoLock {
-    lockFile = ./Cargo.lock;
-  };
+  cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; };
 
   postPatch = ''
     ln -s ${./Cargo.lock} Cargo.lock
@@ -61,22 +60,22 @@ buildPythonPackage rec {
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
-  propagatedBuildInputs = [
-    configobj
-    dulwich
-    fastbencode
-    merge3
-    patiencediff
-    pyyaml
-    tzlocal
-    urllib3
-  ] ++ passthru.optional-dependencies.launchpad
+  propagatedBuildInputs =
+    [
+      configobj
+      dulwich
+      fastbencode
+      merge3
+      patiencediff
+      pyyaml
+      tzlocal
+      urllib3
+    ]
+    ++ passthru.optional-dependencies.launchpad
     ++ passthru.optional-dependencies.fastimport
     ++ passthru.optional-dependencies.github;
 
-  nativeCheckInputs = [
-    testtools
-  ];
+  nativeCheckInputs = [ testtools ];
 
   # multiple failures on sandbox
   doCheck = false;
@@ -109,15 +108,9 @@ buildPythonPackage rec {
       command = "HOME=$TMPDIR brz --version";
     };
     optional-dependencies = {
-      launchpad = [
-        launchpadlib
-      ];
-      fastimport = [
-        fastimport
-      ];
-      github = [
-        pygithub
-      ];
+      launchpad = [ launchpadlib ];
+      fastimport = [ fastimport ];
+      github = [ pygithub ];
     };
   };
 
diff --git a/pkgs/development/python-modules/brelpy/default.nix b/pkgs/development/python-modules/brelpy/default.nix
index 83d5946c54b87..96e0d47265458 100644
--- a/pkgs/development/python-modules/brelpy/default.nix
+++ b/pkgs/development/python-modules/brelpy/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pycryptodome
-, pygithub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pycryptodome,
+  pygithub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,16 +19,12 @@ buildPythonPackage rec {
     hash = "sha256-MYWSKYd7emHZfY+W/UweQtTg62GSUMybpecL9BR8dhg=";
   };
 
-  propagatedBuildInputs = [
-    pycryptodome
-  ];
+  propagatedBuildInputs = [ pycryptodome ];
 
   # Source not tagged and PyPI releases don't contain tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "brelpy"
-  ];
+  pythonImportsCheck = [ "brelpy" ];
 
   meta = with lib; {
     description = "Python to communicate with the Brel hubs";
diff --git a/pkgs/development/python-modules/brian2/default.nix b/pkgs/development/python-modules/brian2/default.nix
index 59880be41293a..c6a31766078b3 100644
--- a/pkgs/development/python-modules/brian2/default.nix
+++ b/pkgs/development/python-modules/brian2/default.nix
@@ -1,29 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cython
-, jinja2
-, numpy
-, pyparsing
-, setuptools
-, sympy
-, pytest
-, pytest-xdist
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cython,
+  jinja2,
+  numpy,
+  pyparsing,
+  setuptools,
+  sympy,
+  pytest,
+  pytest-xdist,
+  python,
 }:
 
 buildPythonPackage rec {
   pname = "brian2";
-  version = "2.6.0";
-  format = "setuptools";
+  version = "2.7.0";
+  pyproject = true;
 
   src = fetchPypi {
-    pname = "Brian2";
-    inherit version;
-    hash = "sha256-qYeIMn8l2V2Ckpj5AY7TWihFnfZ//JcP5VacUUfYCf4=";
+    inherit pname version;
+    hash = "sha256-d9GDWp8CGIjeprWf4TtchVd36gmo36HBRkBOLaRXbpo=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     cython
     jinja2
     numpy
@@ -32,7 +34,7 @@ buildPythonPackage rec {
     sympy
   ];
 
-  checkInputs = [
+  nativeCheckInputs = [
     pytest
     pytest-xdist
   ];
@@ -46,7 +48,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A clock-driven simulator for spiking neural networks";
+    description = "Clock-driven simulator for spiking neural networks";
     homepage = "https://briansimulator.org/";
     license = licenses.cecill21;
     maintainers = with maintainers; [ jiegec ];
diff --git a/pkgs/development/python-modules/bring-api/default.nix b/pkgs/development/python-modules/bring-api/default.nix
index 8f7751dd912b0..7d08a68e0e62a 100644
--- a/pkgs/development/python-modules/bring-api/default.nix
+++ b/pkgs/development/python-modules/bring-api/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "bring-api";
-  version = "0.7.1";
+  version = "0.7.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "miaucl";
     repo = "bring-api";
     rev = "refs/tags/${version}";
-    hash = "sha256-ca6VNC1AG+BAzEhH+N3cwXL9pIBwAX6qLWMpgkEjn98=";
+    hash = "sha256-941IAVlLwfHCyqUu0AhdIfBjuT3pZpk98ZUssBVjEUA=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/broadbean/default.nix b/pkgs/development/python-modules/broadbean/default.nix
index a5554b5d9ba23..93eca748c521f 100644
--- a/pkgs/development/python-modules/broadbean/default.nix
+++ b/pkgs/development/python-modules/broadbean/default.nix
@@ -1,16 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, pythonOlder
-, setuptools
-, versioningit
-, wheel
-, numpy
-, matplotlib
-, schema
-, hypothesis
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  versioningit,
+  wheel,
+  numpy,
+  matplotlib,
+  schema,
+  hypothesis,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -51,7 +51,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://qcodes.github.io/broadbean";
-    description = "A library for making pulses that can be leveraged with QCoDeS";
+    description = "Library for making pulses that can be leveraged with QCoDeS";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ evilmav ];
   };
diff --git a/pkgs/development/python-modules/brother-ql/default.nix b/pkgs/development/python-modules/brother-ql/default.nix
index 4bdafe08b3d93..1aef851742c57 100644
--- a/pkgs/development/python-modules/brother-ql/default.nix
+++ b/pkgs/development/python-modules/brother-ql/default.nix
@@ -1,16 +1,17 @@
-{ stdenv
-, fetchPypi
-, fetchpatch
-, buildPythonPackage
-, future
-, packbits
-, pillow
-, pyusb
-, pytest
-, mock
-, click
-, attrs
-, lib
+{
+  stdenv,
+  fetchPypi,
+  fetchpatch,
+  buildPythonPackage,
+  future,
+  packbits,
+  pillow,
+  pyusb,
+  pytest,
+  mock,
+  click,
+  attrs,
+  lib,
 }:
 
 buildPythonPackage rec {
@@ -24,7 +25,14 @@ buildPythonPackage rec {
     hash = "sha256-H1xXoDnwEsnCBDl/RwAB9267dINCHr3phdDLPGFOhmA=";
   };
 
-  propagatedBuildInputs = [ future packbits pillow pyusb click attrs ];
+  propagatedBuildInputs = [
+    future
+    packbits
+    pillow
+    pyusb
+    click
+    attrs
+  ];
 
   patches = [
     (fetchpatch {
diff --git a/pkgs/development/python-modules/brother/default.nix b/pkgs/development/python-modules/brother/default.nix
index b4f163dd9928a..94380a638c639 100644
--- a/pkgs/development/python-modules/brother/default.nix
+++ b/pkgs/development/python-modules/brother/default.nix
@@ -1,18 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, dacite
-, pysnmp-lextudio
-, pytest-asyncio
-, pytest-error-for-skips
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  freezegun,
+  dacite,
+  pysnmp-lextudio,
+  pytest-asyncio,
+  pytest-error-for-skips,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  syrupy
 }:
 
 buildPythonPackage rec {
   pname = "brother";
-  version = "4.1.0";
+  version = "4.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -21,12 +24,10 @@ buildPythonPackage rec {
     owner = "bieniu";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-W7bakj/94l0pL5fOb+CK+Z6k1cbv/CY9XjXGYZfLFY4=";
+    hash = "sha256-5fd+UznnOFnqYL8CPX90Y2z6q35oUH638mz4l+Ux6oE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     dacite
@@ -34,14 +35,14 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
+    freezegun
     pytest-asyncio
     pytest-error-for-skips
     pytestCheckHook
+    syrupy
   ];
 
-  pythonImportsCheck = [
-    "brother"
-  ];
+  pythonImportsCheck = [ "brother" ];
 
   meta = with lib; {
     description = "Python wrapper for getting data from Brother laser and inkjet printers via SNMP";
diff --git a/pkgs/development/python-modules/brotli-asgi/default.nix b/pkgs/development/python-modules/brotli-asgi/default.nix
index 3bb6041422ae8..79d090f6127a4 100644
--- a/pkgs/development/python-modules/brotli-asgi/default.nix
+++ b/pkgs/development/python-modules/brotli-asgi/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-# build inputs
-, starlette
-, brotli
-# check inputs
-, httpx
-, requests
-, mypy
-, brotlipy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  # build inputs
+  starlette,
+  brotli,
+  # check inputs
+  httpx,
+  requests,
+  mypy,
+  brotlipy,
 }:
 let
   pname = "brotli-asgi";
@@ -43,7 +44,7 @@ buildPythonPackage {
   ];
 
   meta = with lib; {
-    description = "A compression AGSI middleware using brotli";
+    description = "Compression AGSI middleware using brotli";
     homepage = "https://github.com/fullonic/brotli-asgi";
     license = licenses.mit;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/development/python-modules/brotli/default.nix b/pkgs/development/python-modules/brotli/default.nix
index 5fba7e847b017..afe4e9e3fd702 100644
--- a/pkgs/development/python-modules/brotli/default.nix
+++ b/pkgs/development/python-modules/brotli/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +22,9 @@ buildPythonPackage rec {
   # only returns information how to really build
   dontConfigure = true;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "python/tests"
-  ];
+  pytestFlagsArray = [ "python/tests" ];
 
   meta = with lib; {
     homepage = "https://github.com/google/brotli";
diff --git a/pkgs/development/python-modules/brotlicffi/default.nix b/pkgs/development/python-modules/brotlicffi/default.nix
index 9d246d3873b10..53c0280b56b30 100644
--- a/pkgs/development/python-modules/brotlicffi/default.nix
+++ b/pkgs/development/python-modules/brotlicffi/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
-, cffi
-, brotli
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  cffi,
+  brotli,
 }:
 
 buildPythonPackage rec {
@@ -19,17 +20,11 @@ buildPythonPackage rec {
     sha256 = "sha256-oW4y1WBJ7+4XwNwwSSR0qUqN03cZYXUYQ6EAwce9dzI=";
   };
 
-  buildInputs = [
-    brotli
-  ];
+  buildInputs = [ brotli ];
 
-  propagatedNativeBuildInputs = [
-    cffi
-  ];
+  propagatedNativeBuildInputs = [ cffi ];
 
-  propagatedBuildInputs = [
-    cffi
-  ];
+  propagatedBuildInputs = [ cffi ];
 
   preBuild = ''
     export USE_SHARED_BROTLI=1
diff --git a/pkgs/development/python-modules/brotlipy/default.nix b/pkgs/development/python-modules/brotlipy/default.nix
index 4fef96aa5d743..c720218717842 100644
--- a/pkgs/development/python-modules/brotlipy/default.nix
+++ b/pkgs/development/python-modules/brotlipy/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cffi
-, enum34
-, construct
-, pytest
-, hypothesis
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cffi,
+  enum34,
+  construct,
+  pytest,
+  hypothesis,
 }:
 
 buildPythonPackage rec {
@@ -18,11 +19,18 @@ buildPythonPackage rec {
     sha256 = "36def0b859beaf21910157b4c33eb3b06d8ce459c942102f16988cca6ea164df";
   };
 
-  propagatedBuildInputs = [ cffi enum34 construct ];
+  propagatedBuildInputs = [
+    cffi
+    enum34
+    construct
+  ];
 
   propagatedNativeBuildInputs = [ cffi ];
 
-  nativeCheckInputs = [ pytest hypothesis ];
+  nativeCheckInputs = [
+    pytest
+    hypothesis
+  ];
 
   checkPhase = ''
     py.test
diff --git a/pkgs/development/python-modules/brottsplatskartan/default.nix b/pkgs/development/python-modules/brottsplatskartan/default.nix
index 4c4a0dcbc8fbd..71a8f3ce37aae 100644
--- a/pkgs/development/python-modules/brottsplatskartan/default.nix
+++ b/pkgs/development/python-modules/brottsplatskartan/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-cov
-, pytestCheckHook
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-cov,
+  pytestCheckHook,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/browser-cookie3/default.nix b/pkgs/development/python-modules/browser-cookie3/default.nix
index f8616e0567a20..681067e3c17c6 100644
--- a/pkgs/development/python-modules/browser-cookie3/default.nix
+++ b/pkgs/development/python-modules/browser-cookie3/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, lz4
-, keyring
-, pbkdf2
-, pycryptodomex
-, pyaes
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  lz4,
+  keyring,
+  pbkdf2,
+  pycryptodomex,
+  pyaes,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
   # No tests implemented
   doCheck = false;
 
-  pythonImportsCheck = [
-    "browser_cookie3"
-  ];
+  pythonImportsCheck = [ "browser_cookie3" ];
 
   meta = with lib; {
     description = "Loads cookies from your browser into a cookiejar object";
diff --git a/pkgs/development/python-modules/brunt/default.nix b/pkgs/development/python-modules/brunt/default.nix
index 40b0f665cb97e..232dae5cf1d34 100644
--- a/pkgs/development/python-modules/brunt/default.nix
+++ b/pkgs/development/python-modules/brunt/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, aiohttp
-, requests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  aiohttp,
+  requests,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # tests require Brunt hardware
   doCheck = false;
diff --git a/pkgs/development/python-modules/bsddb3/default.nix b/pkgs/development/python-modules/bsddb3/default.nix
index 4edc9e1524b43..af25971df03b8 100644
--- a/pkgs/development/python-modules/bsddb3/default.nix
+++ b/pkgs/development/python-modules/bsddb3/default.nix
@@ -1,25 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pkgs
-, python
+{
+  lib,
+  buildPythonPackage,
+  pythonAtLeast,
+  python,
+  fetchPypi,
+  setuptools,
+  pkgs,
 }:
 
 buildPythonPackage rec {
   pname = "bsddb3";
   version = "6.2.9";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "70d05ec8dc568f42e70fc919a442e0daadc2a905a1cfb7ca77f549d49d6e7801";
   };
 
+  build-system = [ setuptools ];
+
   buildInputs = [ pkgs.db ];
 
-  checkPhase = ''
-    ${python.interpreter} test.py
-  '';
+  # See : https://github.com/NixOS/nixpkgs/pull/311198#discussion_r1599257522
+  # More details here : https://www.jcea.es/programacion/pybsddb.htm
+  disabled = pythonAtLeast "3.10";
 
   # Path to database need to be set.
   # Somehow the setup.py flag is not propagated.
@@ -29,11 +34,20 @@ buildPythonPackage rec {
     export BERKELEYDB_DIR=${pkgs.db.dev};
   '';
 
+  postPatch = ''
+    substituteInPlace test3.py \
+      --replace-fail "from distutils.util import get_platform" "from sysconfig import get_platform" \
+      --replace-fail "sys.config[0:3]" "sys.implementation.cache_tag"
+  '';
+
+  checkPhase = ''
+    ${python.interpreter} test.py
+  '';
+
   meta = with lib; {
     description = "Python bindings for Oracle Berkeley DB";
     homepage = "https://www.jcea.es/programacion/pybsddb.htm";
     license = with licenses; [ agpl3Only ]; # License changed from bsd3 to agpl3 since 6.x
     maintainers = [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/bsdiff4/default.nix b/pkgs/development/python-modules/bsdiff4/default.nix
index f65fe77af252e..1ad855c1a11af 100644
--- a/pkgs/development/python-modules/bsdiff4/default.nix
+++ b/pkgs/development/python-modules/bsdiff4/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-HXEpqBIYYHMejM4pAdMYPhSuxwJE9k6PdFYyddw4gGc=";
   };
 
-  pythonImportsCheck = [
-    "bsdiff4"
-  ];
+  pythonImportsCheck = [ "bsdiff4" ];
 
   checkPhase = ''
     mv bsdiff4 _bsdiff4
diff --git a/pkgs/development/python-modules/bson/default.nix b/pkgs/development/python-modules/bson/default.nix
index afcb46f5d6510..415f50ce0850d 100644
--- a/pkgs/development/python-modules/bson/default.nix
+++ b/pkgs/development/python-modules/bson/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python-dateutil
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python-dateutil,
+  six,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/bt-proximity/default.nix b/pkgs/development/python-modules/bt-proximity/default.nix
index 97658726a4941..548c69d4e14dd 100644
--- a/pkgs/development/python-modules/bt-proximity/default.nix
+++ b/pkgs/development/python-modules/bt-proximity/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pybluez
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pybluez,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     sha256 = "0xlif91vblbz065531yjf8nmlcahrl4q5pz52bc1jmzz7iv9hpgq";
   };
 
-  propagatedBuildInputs = [
-    pybluez
-  ];
+  propagatedBuildInputs = [ pybluez ];
 
   # there are no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/btchip-python/default.nix b/pkgs/development/python-modules/btchip-python/default.nix
index 901a3b2cc9545..66c22bafac3ed 100644
--- a/pkgs/development/python-modules/btchip-python/default.nix
+++ b/pkgs/development/python-modules/btchip-python/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hidapi
-, pyscard
-, ecdsa
- }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hidapi,
+  pyscard,
+  ecdsa,
+}:
 
 buildPythonPackage rec {
   pname = "btchip-python";
@@ -27,16 +28,12 @@ buildPythonPackage rec {
     ecdsa
   ];
 
-  passthru.optional-dependencies.smartcard = [
-    pyscard
-  ];
+  passthru.optional-dependencies.smartcard = [ pyscard ];
 
   # tests requires hardware
   doCheck = false;
 
-  pythonImportsCheck = [
-    "btchip.btchip"
-  ];
+  pythonImportsCheck = [ "btchip.btchip" ];
 
   meta = with lib; {
     description = "Python communication library for Ledger Hardware Wallet products";
diff --git a/pkgs/development/python-modules/btest/default.nix b/pkgs/development/python-modules/btest/default.nix
index dc36b1981940b..9b7b37125d975 100644
--- a/pkgs/development/python-modules/btest/default.nix
+++ b/pkgs/development/python-modules/btest/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,7 +23,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Generic Driver for Powerful System Tests";
+    description = "Generic Driver for Powerful System Tests";
     homepage = "https://github.com/zeek/btest";
     changelog = "https://github.com/zeek/btest/blob/${version}/CHANGES";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/bthome-ble/default.nix b/pkgs/development/python-modules/bthome-ble/default.nix
index cc99d7696c5b9..f070417ff7edf 100644
--- a/pkgs/development/python-modules/bthome-ble/default.nix
+++ b/pkgs/development/python-modules/bthome-ble/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, bluetooth-data-tools
-, bluetooth-sensor-state-data
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, pytz
-, sensor-state-data
+{
+  lib,
+  bluetooth-data-tools,
+  bluetooth-sensor-state-data,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  sensor-state-data,
 }:
 
 buildPythonPackage rec {
   pname = "bthome-ble";
-  version = "3.8.1";
+  version = "3.9.3";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -22,14 +23,17 @@ buildPythonPackage rec {
     owner = "Bluetooth-Devices";
     repo = "bthome-ble";
     rev = "refs/tags/v${version}";
-    hash = "sha256-eaRFHrISxYovQLtNUPrgNw3ATClHqpZ+Us+JGmNNbyY=";
+    hash = "sha256-T6R3w8ZatgB73/rM5GLS9dBp3E1rvbqHo+QS6GHHI4w=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail " --cov=bthome_ble --cov-report=term-missing:skip-covered" ""
+  '';
+
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     bluetooth-data-tools
     bluetooth-sensor-state-data
     cryptography
@@ -37,24 +41,15 @@ buildPythonPackage rec {
     pytz
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace " --cov=bthome_ble --cov-report=term-missing:skip-covered" ""
-  '';
-
-  pythonImportsCheck = [
-    "bthome_ble"
-  ];
+  pythonImportsCheck = [ "bthome_ble" ];
 
   meta = with lib; {
     description = "Library for BThome BLE devices";
     homepage = "https://github.com/Bluetooth-Devices/bthome-ble";
     changelog = "https://github.com/bluetooth-devices/bthome-ble/blob/v${version}/CHANGELOG.md";
-    license = with licenses; [ mit ];
+    license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/btrees/default.nix b/pkgs/development/python-modules/btrees/default.nix
index bc61188b5902f..52aafcf554b67 100644
--- a/pkgs/development/python-modules/btrees/default.nix
+++ b/pkgs/development/python-modules/btrees/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, persistent
-, zope-interface
-, transaction
-, zope-testrunner
-, python
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  persistent,
+  zope-interface,
+  transaction,
+  zope-testrunner,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "btrees";
-  version = "5.2";
+  version = "6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +20,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "BTrees";
     inherit version;
-    hash = "sha256-bkoK8BpLvslan5Mbr1xUWXn0NBoTp2Yf+KSXr089g4E=";
+    hash = "sha256-9puM3TNDThPhgCFruCrgt80x+t+3zFWWlcs3MZyjX/A=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/btrfs/default.nix b/pkgs/development/python-modules/btrfs/default.nix
index a534257c6dbef..18a68282c4bcd 100644
--- a/pkgs/development/python-modules/btrfs/default.nix
+++ b/pkgs/development/python-modules/btrfs/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
   pname = "btrfs";
-  version = "13";
+  version = "14.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-NSyzhpHYDkunuU104XnbVCcVRNDoVBz4KuJRrE7WMO0=";
+    hash = "sha256-BPKPwT33i8fQYJkUZbnJ8nQNbmKw0Dq6ekb9mr7awEY=";
   };
 
   # no tests (in v12)
@@ -22,6 +23,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/knorrie/python-btrfs";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ evils Luflosi ];
+    maintainers = with maintainers; [
+      evils
+      Luflosi
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/btrfsutil/default.nix b/pkgs/development/python-modules/btrfsutil/default.nix
index d529ec09c7058..8638ea25a6e84 100644
--- a/pkgs/development/python-modules/btrfsutil/default.nix
+++ b/pkgs/development/python-modules/btrfsutil/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, btrfs-progs
+{
+  lib,
+  buildPythonPackage,
+  btrfs-progs,
 }:
 buildPythonPackage {
   pname = "btrfsutil";
@@ -21,6 +22,9 @@ buildPythonPackage {
     description = "Library for managing Btrfs filesystems";
     homepage = "https://btrfs.wiki.kernel.org/";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ raskin lopsided98 ];
+    maintainers = with maintainers; [
+      raskin
+      lopsided98
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/btsmarthub-devicelist/default.nix b/pkgs/development/python-modules/btsmarthub-devicelist/default.nix
index de5b3b6b6fa81..e55dd620e4e32 100644
--- a/pkgs/development/python-modules/btsmarthub-devicelist/default.nix
+++ b/pkgs/development/python-modules/btsmarthub-devicelist/default.nix
@@ -21,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-7ncxCpY+A2SuSFa3k21QchrmFs1dPRUMb1r1z/laa6M=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     responses
@@ -31,14 +29,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = [
-    "test_btsmarthub2_detection_neither_router_present"
-  ];
+  disabledTests = [ "test_btsmarthub2_detection_neither_router_present" ];
 
   meta = with lib; {
     description = "Retrieve a list of devices from a bt smarthub or bt smarthub 2 on a local network";
     homepage = "https://github.com/jxwolstenholme/btsmarthub_devicelist";
     license = licenses.mit;
-    maintainers = with maintainers; [jamiemagee];
+    maintainers = with maintainers; [ jamiemagee ];
   };
 }
diff --git a/pkgs/development/python-modules/btsocket/default.nix b/pkgs/development/python-modules/btsocket/default.nix
index e1c1f8a328875..6065a670f12da 100644
--- a/pkgs/development/python-modules/btsocket/default.nix
+++ b/pkgs/development/python-modules/btsocket/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "btsocket";
-  version = "0.2.0";
+  version = "0.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -15,17 +16,13 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "ukBaz";
     repo = "python-btsocket";
-    rev = "v${version}";
-    hash = "sha256-IqlbFYbEyJPlcmT3DIQIwsjQEAGeIGRtFNx4jWwNtjE=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-/T89GZJth7pBGQuN1ytCf649oWv7aZcfPHjYoftbLw8=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "btsocket"
-  ];
+  pythonImportsCheck = [ "btsocket" ];
 
   meta = with lib; {
     description = "Library to interact with the Bluez Bluetooth Management API";
diff --git a/pkgs/development/python-modules/bubop/default.nix b/pkgs/development/python-modules/bubop/default.nix
index 72c9737ce7b58..9c6c39fd25d28 100644
--- a/pkgs/development/python-modules/bubop/default.nix
+++ b/pkgs/development/python-modules/bubop/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, loguru
-, python-dateutil
-, pyyaml
-, tqdm
-, click
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  loguru,
+  python-dateutil,
+  pyyaml,
+  tqdm,
+  click,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     --replace-fail 'PyYAML = "~5.3.1"' 'PyYAML = "^6.0"'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     loguru
diff --git a/pkgs/development/python-modules/bucketstore/default.nix b/pkgs/development/python-modules/bucketstore/default.nix
index c87345732981a..46f29ff43e5e1 100644
--- a/pkgs/development/python-modules/bucketstore/default.nix
+++ b/pkgs/development/python-modules/bucketstore/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, boto3
-, moto
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  boto3,
+  moto,
 }:
 
 buildPythonPackage rec {
@@ -26,18 +27,14 @@ buildPythonPackage rec {
       --replace "version=__version__," 'version="${version}",'
   '';
 
-  propagatedBuildInputs = [
-    boto3
-  ];
+  propagatedBuildInputs = [ boto3 ];
 
   nativeCheckInputs = [
     moto
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "bucketstore"
-  ];
+  pythonImportsCheck = [ "bucketstore" ];
 
   meta = with lib; {
     description = "Library for interacting with Amazon S3";
diff --git a/pkgs/development/python-modules/bugsnag/default.nix b/pkgs/development/python-modules/bugsnag/default.nix
index c4afcb6935b22..18466cb31cb39 100644
--- a/pkgs/development/python-modules/bugsnag/default.nix
+++ b/pkgs/development/python-modules/bugsnag/default.nix
@@ -1,27 +1,26 @@
-{ lib
-, blinker
-, buildPythonPackage
-, fetchPypi
-, flask
-, pythonOlder
-, webob
+{
+  lib,
+  blinker,
+  buildPythonPackage,
+  fetchPypi,
+  flask,
+  pythonOlder,
+  webob,
 }:
 
 buildPythonPackage rec {
   pname = "bugsnag";
-  version = "4.7.0";
+  version = "4.7.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+w0lI2goXYnfX2KB+DNFPXl6UCOhg5o17zggalyYXr8=";
+    hash = "sha256-mECP4X1KfzAKVlNUB6ZEi5hE2bUoxEUnkIho/DZG6HM=";
   };
 
-  propagatedBuildInputs = [
-    webob
-  ];
+  propagatedBuildInputs = [ webob ];
 
   passthru.optional-dependencies = {
     flask = [
@@ -30,9 +29,7 @@ buildPythonPackage rec {
     ];
   };
 
-  pythonImportsCheck = [
-    "bugsnag"
-  ];
+  pythonImportsCheck = [ "bugsnag" ];
 
   # Module ha no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/bugwarrior/default.nix b/pkgs/development/python-modules/bugwarrior/default.nix
index 3e66455de7b50..ada42fb4b4e30 100644
--- a/pkgs/development/python-modules/bugwarrior/default.nix
+++ b/pkgs/development/python-modules/bugwarrior/default.nix
@@ -1,6 +1,27 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, setuptools
-, twiggy, requests, offtrac, bugzilla, taskw, python-dateutil, pytz, keyring, six
-, jinja2, pycurl, dogpile-cache, lockfile, click, pyxdg, future, jira }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  twiggy,
+  requests,
+  offtrac,
+  bugzilla,
+  taskw,
+  python-dateutil,
+  pytz,
+  keyring,
+  six,
+  jinja2,
+  pycurl,
+  dogpile-cache,
+  lockfile,
+  click,
+  pyxdg,
+  future,
+  jira,
+}:
 
 buildPythonPackage rec {
   pname = "bugwarrior";
@@ -15,8 +36,23 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     setuptools
-    twiggy requests offtrac bugzilla taskw python-dateutil pytz keyring six
-    jinja2 pycurl dogpile-cache lockfile click pyxdg future jira
+    twiggy
+    requests
+    offtrac
+    bugzilla
+    taskw
+    python-dateutil
+    pytz
+    keyring
+    six
+    jinja2
+    pycurl
+    dogpile-cache
+    lockfile
+    click
+    pyxdg
+    future
+    jira
   ];
 
   # for the moment oauth2client <4.0.0 and megaplan>=1.4 are missing for running the test suite.
diff --git a/pkgs/development/python-modules/bugz/default.nix b/pkgs/development/python-modules/bugz/default.nix
index 894f2070c2316..c44c9c5fdc73a 100644
--- a/pkgs/development/python-modules/bugz/default.nix
+++ b/pkgs/development/python-modules/bugz/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage {
@@ -23,5 +24,4 @@ buildPythonPackage {
     license = licenses.gpl2;
     maintainers = [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/bugzilla/default.nix b/pkgs/development/python-modules/bugzilla/default.nix
index e7b1db45a4ad9..3125ed30624f3 100644
--- a/pkgs/development/python-modules/bugzilla/default.nix
+++ b/pkgs/development/python-modules/bugzilla/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
-, pytestCheckHook
-, glibcLocalesUtf8
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  pytestCheckHook,
+  glibcLocalesUtf8,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,8 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
-    pytestCheckHook glibcLocalesUtf8
+    pytestCheckHook
+    glibcLocalesUtf8
   ];
 
   preCheck = ''
diff --git a/pkgs/development/python-modules/buienradar/default.nix b/pkgs/development/python-modules/buienradar/default.nix
index 23a19f89f2797..4ecf5a6abd221 100644
--- a/pkgs/development/python-modules/buienradar/default.nix
+++ b/pkgs/development/python-modules/buienradar/default.nix
@@ -1,29 +1,27 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, docopt
-, pytz
-, requests
-, setuptools
-, vincenty
-, xmltodict
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  docopt,
+  pytz,
+  requests,
+  setuptools,
+  vincenty,
+  xmltodict,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "buienradar";
-  version = "1.0.5";
+  version = "1.0.6";
   format = "setuptools";
 
-  disabled = pythonOlder "3.4";
-
   src = fetchFromGitHub {
     owner = "mjj4791";
     repo = "python-buienradar";
     # https://github.com/mjj4791/python-buienradar/issues/14
-    rev = "caa66ea855dbcc7cf6ee13291d9b2ed7ac01ef98";
-    hash = "sha256:0xz03xj5qjayriaah20adh0ycvlvb8jdvgh7w5gm236n64g6krj0";
+    rev = "6081a860e190eb59c2ea3ebdcb8a50f6133a0b53";
+    hash = "sha256-5bFGPR8StyQTMRcvECdHGC33oAR/9noeCbpwx3DSquQ=";
   };
 
   propagatedBuildInputs = [
@@ -35,9 +33,7 @@ buildPythonPackage rec {
     xmltodict
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # require network connection
diff --git a/pkgs/development/python-modules/build/default.nix b/pkgs/development/python-modules/build/default.nix
index 4f30c8f186293..b3a8c905bc8b0 100644
--- a/pkgs/development/python-modules/build/default.nix
+++ b/pkgs/development/python-modules/build/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, stdenv
-, build
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, filelock
-, packaging
-, pyproject-hooks
-, pytest-mock
-, pytest-rerunfailures
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, tomli
-, wheel
+{
+  lib,
+  stdenv,
+  build,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  filelock,
+  packaging,
+  pyproject-hooks,
+  pytest-mock,
+  pytest-rerunfailures,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  tomli,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -36,16 +37,12 @@ buildPythonPackage rec {
     sed -i '/importlib-metadata >= 4.6/d' pyproject.toml
   '';
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     packaging
     pyproject-hooks
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   # We need to disable tests because this package is part of the bootstrap chain
   # and its test dependencies cannot be built yet when this is being built.
@@ -78,25 +75,25 @@ buildPythonPackage rec {
 
       __darwinAllowLocalNetworking = true;
 
-      disabledTests = [
-        # Tests often fail with StopIteration
-        "test_isolat"
-        "test_default_pip_is_never_too_old"
-        "test_build"
-        "test_with_get_requires"
-        "test_init"
-        "test_output"
-        "test_wheel_metadata"
-      ] ++ lib.optionals stdenv.isDarwin [
-        # Expects Apple's Python and its quirks
-        "test_can_get_venv_paths_with_conflicting_default_scheme"
-      ];
+      disabledTests =
+        [
+          # Tests often fail with StopIteration
+          "test_isolat"
+          "test_default_pip_is_never_too_old"
+          "test_build"
+          "test_with_get_requires"
+          "test_init"
+          "test_output"
+          "test_wheel_metadata"
+        ]
+        ++ lib.optionals stdenv.isDarwin [
+          # Expects Apple's Python and its quirks
+          "test_can_get_venv_paths_with_conflicting_default_scheme"
+        ];
     };
   };
 
-  pythonImportsCheck = [
-    "build"
-  ];
+  pythonImportsCheck = [ "build" ];
 
   meta = with lib; {
     mainProgram = "pyproject-build";
diff --git a/pkgs/development/python-modules/buildcatrust/default.nix b/pkgs/development/python-modules/buildcatrust/default.nix
index 5fc3eab560392..cc2b5b5a29469 100644
--- a/pkgs/development/python-modules/buildcatrust/default.nix
+++ b/pkgs/development/python-modules/buildcatrust/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -15,13 +16,9 @@ buildPythonPackage rec {
     hash = "sha256-Ac10CZdihFBmr5LE6xFKx4+zr2n5nyR23px6N4vN05M=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # Non-hermetic, needs internet access (e.g. attempts to retrieve NSS store).
diff --git a/pkgs/development/python-modules/buildout/default.nix b/pkgs/development/python-modules/buildout/default.nix
index 5a2f577d2b18e..a653318ffe6f8 100644
--- a/pkgs/development/python-modules/buildout/default.nix
+++ b/pkgs/development/python-modules/buildout/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, pip
-, setuptools
-, wheel
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  pip,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -28,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "zc.buildout" ];
 
   meta = with lib; {
-    description = "A software build and configuration system";
+    description = "Software build and configuration system";
     mainProgram = "buildout";
     downloadPage = "https://github.com/buildout/buildout";
     homepage = "https://www.buildout.org";
diff --git a/pkgs/development/python-modules/bumps/default.nix b/pkgs/development/python-modules/bumps/default.nix
index 733494a8314ac..23e14d3eada99 100644
--- a/pkgs/development/python-modules/bumps/default.nix
+++ b/pkgs/development/python-modules/bumps/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "bumps"
-  ];
+  pythonImportsCheck = [ "bumps" ];
 
   meta = with lib; {
     description = "Data fitting with bayesian uncertainty analysis";
diff --git a/pkgs/development/python-modules/bunch/default.nix b/pkgs/development/python-modules/bunch/default.nix
index 39c858ebb6761..54659c6110954 100644
--- a/pkgs/development/python-modules/bunch/default.nix
+++ b/pkgs/development/python-modules/bunch/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
   # No real tests available
   doCheck = false;
 
-  pythonImportsCheck = [
-    "bunch"
-  ];
+  pythonImportsCheck = [ "bunch" ];
 
   meta = with lib; {
     description = "Python dictionary that provides attribute-style access";
diff --git a/pkgs/development/python-modules/bundlewrap-keepass/default.nix b/pkgs/development/python-modules/bundlewrap-keepass/default.nix
index 82c09dbc1080d..7a51ef2e84cc2 100644
--- a/pkgs/development/python-modules/bundlewrap-keepass/default.nix
+++ b/pkgs/development/python-modules/bundlewrap-keepass/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, bundlewrap
-, pykeepass
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  bundlewrap,
+  pykeepass,
 }:
 
 buildPythonPackage rec {
@@ -18,14 +19,15 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [ bundlewrap pykeepass ];
+  propagatedBuildInputs = [
+    bundlewrap
+    pykeepass
+  ];
 
   # upstream has no checks
   doCheck = false;
 
-  pythonImportsCheck = [
-    "bwkeepass"
-  ];
+  pythonImportsCheck = [ "bwkeepass" ];
 
   meta = with lib; {
     homepage = "https://pypi.org/project/bundlewrap-keepass";
diff --git a/pkgs/development/python-modules/bundlewrap-pass/default.nix b/pkgs/development/python-modules/bundlewrap-pass/default.nix
index 0b8068a149487..1a6101c10a725 100644
--- a/pkgs/development/python-modules/bundlewrap-pass/default.nix
+++ b/pkgs/development/python-modules/bundlewrap-pass/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, bundlewrap
-, pass
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  bundlewrap,
+  pass,
 }:
 
 buildPythonPackage rec {
@@ -18,14 +19,15 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [ bundlewrap pass ];
+  propagatedBuildInputs = [
+    bundlewrap
+    pass
+  ];
 
   # upstream has no checks
   doCheck = false;
 
-  pythonImportsCheck = [
-    "bwpass"
-  ];
+  pythonImportsCheck = [ "bwpass" ];
 
   meta = with lib; {
     homepage = "https://pypi.org/project/bundlewrap-pass";
diff --git a/pkgs/development/python-modules/bundlewrap-teamvault/default.nix b/pkgs/development/python-modules/bundlewrap-teamvault/default.nix
index ca6dd419de486..588bcd7e5a3ab 100644
--- a/pkgs/development/python-modules/bundlewrap-teamvault/default.nix
+++ b/pkgs/development/python-modules/bundlewrap-teamvault/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, bundlewrap
-, passlib
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  bundlewrap,
+  passlib,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -19,19 +20,21 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [ bundlewrap passlib requests ];
+  propagatedBuildInputs = [
+    bundlewrap
+    passlib
+    requests
+  ];
 
   # upstream has no checks
   doCheck = false;
 
-  pythonImportsCheck = [
-    "bwtv"
-  ];
+  pythonImportsCheck = [ "bwtv" ];
 
   meta = with lib; {
     homepage = "https://github.com/trehn/bundlewrap-teamvault";
     description = "Pull secrets from TeamVault into your BundleWrap repo";
-    license = [ licenses.gpl3 ] ;
+    license = [ licenses.gpl3 ];
     maintainers = with maintainers; [ hexchen ];
   };
 }
diff --git a/pkgs/development/python-modules/bundlewrap/default.nix b/pkgs/development/python-modules/bundlewrap/default.nix
index c3f3b1f531763..c77d8bfe7af12 100644
--- a/pkgs/development/python-modules/bundlewrap/default.nix
+++ b/pkgs/development/python-modules/bundlewrap/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
-, cryptography
-, jinja2
-, mako
-, passlib
-, pytest
-, pyyaml
-, requests
-, rtoml
-, setuptools
-, tomlkit
-, librouteros
-, pytestCheckHook
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  cryptography,
+  jinja2,
+  mako,
+  passlib,
+  pytest,
+  pyyaml,
+  requests,
+  rtoml,
+  setuptools,
+  tomlkit,
+  librouteros,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -32,7 +33,15 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools ];
   propagatedBuildInputs = [
-    setuptools cryptography jinja2 mako passlib pyyaml requests tomlkit librouteros
+    setuptools
+    cryptography
+    jinja2
+    mako
+    passlib
+    pyyaml
+    requests
+    tomlkit
+    librouteros
   ] ++ lib.optionals (pythonOlder "3.11") [ rtoml ];
 
   pythonImportsCheck = [ "bundlewrap" ];
@@ -48,7 +57,7 @@ buildPythonPackage rec {
     homepage = "https://bundlewrap.org/";
     description = "Easy, Concise and Decentralized Config management with Python";
     mainProgram = "bw";
-    license = [ licenses.gpl3 ] ;
+    license = [ licenses.gpl3 ];
     maintainers = with maintainers; [ wamserma ];
   };
 }
diff --git a/pkgs/development/python-modules/busypie/default.nix b/pkgs/development/python-modules/busypie/default.nix
index 9539d3f4371e4..77882309148c2 100644
--- a/pkgs/development/python-modules/busypie/default.nix
+++ b/pkgs/development/python-modules/busypie/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytest-timeout
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytest-timeout,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "busypie"
-  ];
+  pythonImportsCheck = [ "busypie" ];
 
   meta = with lib; {
     description = "Expressive busy wait for Python";
diff --git a/pkgs/development/python-modules/bwapy/default.nix b/pkgs/development/python-modules/bwapy/default.nix
index 4f7fd7c7b17b7..19e37b1eaf689 100644
--- a/pkgs/development/python-modules/bwapy/default.nix
+++ b/pkgs/development/python-modules/bwapy/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonAtLeast
-, pythonOlder
-, fetchPypi
-, bwa
-, cffi
-, zlib
+{
+  lib,
+  buildPythonPackage,
+  pythonAtLeast,
+  pythonOlder,
+  fetchPypi,
+  bwa,
+  cffi,
+  zlib,
 }:
 
 buildPythonPackage rec {
@@ -29,7 +30,10 @@ buildPythonPackage rec {
       --replace 'setuptools>=49.2.0' 'setuptools'
   '';
 
-  buildInputs = [ zlib bwa ];
+  buildInputs = [
+    zlib
+    bwa
+  ];
 
   propagatedBuildInputs = [ cffi ];
 
diff --git a/pkgs/development/python-modules/bx-py-utils/default.nix b/pkgs/development/python-modules/bx-py-utils/default.nix
index d66cfa62044d6..c6cf1a32185f6 100644
--- a/pkgs/development/python-modules/bx-py-utils/default.nix
+++ b/pkgs/development/python-modules/bx-py-utils/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, beautifulsoup4
-, boto3
-, lxml
-, pdoc
-, pytestCheckHook
-, requests-mock
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  beautifulsoup4,
+  boto3,
+  lxml,
+  pdoc,
+  pytestCheckHook,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     rm bx_py_utils_tests/publish.py
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   pythonImportsCheck = [
     "bx_py_utils.anonymize"
@@ -71,13 +70,13 @@ buildPythonPackage rec {
     "test_assert_html_snapshot_by_css_selector"
   ];
 
-  disabledTestPaths = [
-    "bx_py_utils_tests/tests/test_project_setup.py"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # processify() doesn't work under darwin
-    # https://github.com/boxine/bx_py_utils/issues/80
-    "bx_py_utils_tests/tests/test_processify.py"
-  ];
+  disabledTestPaths =
+    [ "bx_py_utils_tests/tests/test_project_setup.py" ]
+    ++ lib.optionals stdenv.isDarwin [
+      # processify() doesn't work under darwin
+      # https://github.com/boxine/bx_py_utils/issues/80
+      "bx_py_utils_tests/tests/test_processify.py"
+    ];
 
   meta = {
     description = "Various Python utility functions";
diff --git a/pkgs/development/python-modules/bx-python/default.nix b/pkgs/development/python-modules/bx-python/default.nix
index c504c0cc77f33..2ea260df66f81 100644
--- a/pkgs/development/python-modules/bx-python/default.nix
+++ b/pkgs/development/python-modules/bx-python/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
-, numpy
-, cython
-, zlib
-, python-lzo
-, nose
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  numpy,
+  cython,
+  zlib,
+  python-lzo,
+  nose,
 }:
 
 buildPythonPackage rec {
@@ -23,22 +24,16 @@ buildPythonPackage rec {
     hash = "sha256-evhxh/cCZFSK6EgMu7fC9/ZrPd2S1fZz89ItGYrHQck=";
   };
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
-  buildInputs = [
-    zlib
-  ];
+  buildInputs = [ zlib ];
 
   propagatedBuildInputs = [
     numpy
     python-lzo
   ];
 
-  nativeCheckInputs = [
-    nose
-  ];
+  nativeCheckInputs = [ nose ];
 
   postInstall = ''
     cp -r scripts/* $out/bin
diff --git a/pkgs/development/python-modules/bytecode/default.nix b/pkgs/development/python-modules/bytecode/default.nix
index 868279f4422c3..7c7a86baca438 100644
--- a/pkgs/development/python-modules/bytecode/default.nix
+++ b/pkgs/development/python-modules/bytecode/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-Jzsh0m00SiJjTP7hXMDmuR4XHmsCYdURuFDkVopGyIE=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "bytecode" ];
 
diff --git a/pkgs/development/python-modules/bytewax/default.nix b/pkgs/development/python-modules/bytewax/default.nix
index ea0bfe9e32da9..22d022c454bef 100644
--- a/pkgs/development/python-modules/bytewax/default.nix
+++ b/pkgs/development/python-modules/bytewax/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-
-# build-system
-, cmake
-, pkg-config
-, rustPlatform
-
-# native dependencies
-, cyrus_sasl
-, openssl
-, protobuf
-
-# dependencies
-, jsonpickle
-
-# optional dependencies
-, confluent-kafka
-
-# test
-, myst-docutils
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # build-system
+  cmake,
+  pkg-config,
+  rustPlatform,
+
+  # native dependencies
+  cyrus_sasl,
+  openssl,
+  protobuf,
+
+  # dependencies
+  jsonpickle,
+
+  # optional dependencies
+  confluent-kafka,
+
+  # test
+  myst-docutils,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -45,9 +46,7 @@ buildPythonPackage rec {
 
   # Remove docs tests, myst-docutils in nixpkgs is not compatible with package requirements.
   # Package uses old version.
-  patches = [
-    ./remove-docs-test.patch
-  ];
+  patches = [ ./remove-docs-test.patch ];
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
@@ -73,14 +72,10 @@ buildPythonPackage rec {
     protobuf
   ];
 
-  propagatedBuildInputs = [
-    jsonpickle
-  ];
+  propagatedBuildInputs = [ jsonpickle ];
 
   passthru.optional-dependencies = {
-    kafka = [
-      confluent-kafka
-    ];
+    kafka = [ confluent-kafka ];
   };
 
   preCheck = ''
@@ -97,16 +92,17 @@ buildPythonPackage rec {
     "docs"
   ];
 
-  pythonImportsCheck = [
-    "bytewax"
-  ];
+  pythonImportsCheck = [ "bytewax" ];
 
   meta = with lib; {
     description = "Python Stream Processing";
     homepage = "https://github.com/bytewax/bytewax";
     changelog = "https://github.com/bytewax/bytewax/releases/tag/v${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [ mslingsby kfollesdal ];
+    maintainers = with maintainers; [
+      mslingsby
+      kfollesdal
+    ];
     # mismatched type expected u8, found i8
     broken = stdenv.isAarch64;
   };
diff --git a/pkgs/development/python-modules/bz2file/default.nix b/pkgs/development/python-modules/bz2file/default.nix
index ef6a9ef270b22..bd8b79a9a13ef 100644
--- a/pkgs/development/python-modules/bz2file/default.nix
+++ b/pkgs/development/python-modules/bz2file/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/cachecontrol/default.nix b/pkgs/development/python-modules/cachecontrol/default.nix
index 8cfaaa5fa9b0f..fe81e67424494 100644
--- a/pkgs/development/python-modules/cachecontrol/default.nix
+++ b/pkgs/development/python-modules/cachecontrol/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, cherrypy
-, fetchFromGitHub
-, flit-core
-, filelock
-, mock
-, msgpack
-, pytestCheckHook
-, pythonOlder
-, redis
-, requests
+{
+  lib,
+  buildPythonPackage,
+  cherrypy,
+  fetchFromGitHub,
+  flit-core,
+  filelock,
+  mock,
+  msgpack,
+  pytestCheckHook,
+  pythonOlder,
+  redis,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     hash = "sha256-myyqiUGna+5S2GJGnwZTOfLh49NhjfHAvpUB49dQbgY=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     msgpack
@@ -38,12 +37,8 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    filecache = [
-      filelock
-    ];
-    redis = [
-      redis
-    ];
+    filecache = [ filelock ];
+    redis = [ redis ];
   };
 
   nativeCheckInputs = [
@@ -53,9 +48,7 @@ buildPythonPackage rec {
     requests
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "cachecontrol"
-  ];
+  pythonImportsCheck = [ "cachecontrol" ];
 
   meta = with lib; {
     description = "Httplib2 caching for requests";
diff --git a/pkgs/development/python-modules/cached-ipaddress/default.nix b/pkgs/development/python-modules/cached-ipaddress/default.nix
index 5e4781ec75032..a16488b81d0db 100644
--- a/pkgs/development/python-modules/cached-ipaddress/default.nix
+++ b/pkgs/development/python-modules/cached-ipaddress/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -36,13 +37,9 @@ buildPythonPackage rec {
     wheel
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "cached_ipaddress"
-  ];
+  pythonImportsCheck = [ "cached_ipaddress" ];
 
   meta = with lib; {
     description = "Cache construction of ipaddress objects";
diff --git a/pkgs/development/python-modules/cached-property/default.nix b/pkgs/development/python-modules/cached-property/default.nix
index 555b1ce006e7e..aab2647241626 100644
--- a/pkgs/development/python-modules/cached-property/default.nix
+++ b/pkgs/development/python-modules/cached-property/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pytestCheckHook
-, freezegun
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pytestCheckHook,
+  freezegun,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -40,12 +41,10 @@ buildPythonPackage rec {
     "test_threads_ttl_expiry"
   ];
 
-  pythonImportsCheck = [
-    "cached_property"
-  ];
+  pythonImportsCheck = [ "cached_property" ];
 
   meta = with lib; {
-    description = "A decorator for caching properties in classes";
+    description = "Decorator for caching properties in classes";
     homepage = "https://github.com/pydanny/cached-property";
     changelog = "https://github.com/pydanny/cached-property/releases/tag/${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/cachelib/default.nix b/pkgs/development/python-modules/cachelib/default.nix
index 26b69651ffc34..12e9c4eb14651 100644
--- a/pkgs/development/python-modules/cachelib/default.nix
+++ b/pkgs/development/python-modules/cachelib/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-xprocess
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-xprocess,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/cachetools/default.nix b/pkgs/development/python-modules/cachetools/default.nix
index 8a2f5397d6e12..c5098463552f7 100644
--- a/pkgs/development/python-modules/cachetools/default.nix
+++ b/pkgs/development/python-modules/cachetools/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,17 +25,11 @@ buildPythonPackage rec {
     hash = "sha256-CmyAW9uV63OV/zZsWwZkXOWbHfHAJdYFGJsRhpqQ1f4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "cachetools"
-  ];
+  pythonImportsCheck = [ "cachetools" ];
 
   meta = with lib; {
     description = "Extensible memoizing collections and decorators";
diff --git a/pkgs/development/python-modules/cachey/default.nix b/pkgs/development/python-modules/cachey/default.nix
index ac175fa0793a3..a8cb498b20260 100644
--- a/pkgs/development/python-modules/cachey/default.nix
+++ b/pkgs/development/python-modules/cachey/default.nix
@@ -1,11 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, typing-extensions
-, heapdict
-, pytestCheckHook
-, pythonOlder
-}: buildPythonPackage rec {
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  typing-extensions,
+  heapdict,
+  pytestCheckHook,
+  pythonOlder,
+}:
+buildPythonPackage rec {
   pname = "cachey";
   version = "0.2.1";
   format = "setuptools";
@@ -16,11 +18,12 @@
     rev = version;
     hash = "sha256-5USmuufrrWtmgibpfkjo9NtgN30hdl8plJfythmxM4s=";
   };
-  propagatedBuildInputs = [ typing-extensions heapdict ];
-  nativeCheckInputs = [ pytestCheckHook ];
-  pythonImportsCheck = [
-    "cachey"
+  propagatedBuildInputs = [
+    typing-extensions
+    heapdict
   ];
+  nativeCheckInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [ "cachey" ];
   meta = with lib; {
     description = "Caching based on computation time and storage space";
     homepage = "https://github.com/dask/cachey/";
diff --git a/pkgs/development/python-modules/cachier/default.nix b/pkgs/development/python-modules/cachier/default.nix
index e8fe51d4ded7b..dac7bb71f2362 100644
--- a/pkgs/development/python-modules/cachier/default.nix
+++ b/pkgs/development/python-modules/cachier/default.nix
@@ -1,17 +1,17 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pythonRelaxDepsHook
-, setuptools
-, watchdog
-, portalocker
-, pytestCheckHook
-, pymongo
-, dnspython
-, pymongo-inmemory
-, pandas
-, birch
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  watchdog,
+  portalocker,
+  pytestCheckHook,
+  pymongo,
+  dnspython,
+  pymongo-inmemory,
+  pandas,
+  birch,
 }:
 
 buildPythonPackage rec {
@@ -31,7 +31,6 @@ buildPythonPackage rec {
   pythonRemoveDeps = [ "setuptools" ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -75,9 +74,7 @@ buildPythonPackage rec {
     export HOME="$(mktemp -d)"
   '';
 
-  pythonImportsCheck = [
-    "cachier"
-  ];
+  pythonImportsCheck = [ "cachier" ];
 
   meta = {
     homepage = "https://github.com/python-cachier/cachier";
diff --git a/pkgs/development/python-modules/cachy/default.nix b/pkgs/development/python-modules/cachy/default.nix
index 8f16a45fe692c..7a6caad1f20a0 100644
--- a/pkgs/development/python-modules/cachy/default.nix
+++ b/pkgs/development/python-modules/cachy/default.nix
@@ -1,7 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi
-, redis
-, python-memcached
-, msgpack
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  redis,
+  python-memcached,
+  msgpack,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/cadquery/default.nix b/pkgs/development/python-modules/cadquery/default.nix
deleted file mode 100644
index 5db0b6ae2c997..0000000000000
--- a/pkgs/development/python-modules/cadquery/default.nix
+++ /dev/null
@@ -1,100 +0,0 @@
-{ lib
-, buildPythonPackage
-, toPythonModule
-, pythonOlder
-, pythonAtLeast
-, fetchFromGitHub
-, pyparsing
-, opencascade-occt
-, stdenv
-, python
-, cmake
-, swig
-, freetype
-, libGL
-, libGLU
-, libX11
-, six
-, pytest
-, makeFontsConf
-, freefont_ttf
-, Cocoa
-}:
-
-let
-  pythonocc-core-cadquery = toPythonModule (stdenv.mkDerivation {
-    pname = "pythonocc-core-cadquery";
-    version = "0.18.2";
-    format = "setuptools";
-
-    src = fetchFromGitHub {
-      owner = "CadQuery";
-      repo = "pythonocc-core";
-      # no proper release to to use, this commit copied from the Anaconda receipe
-      rev = "701e924ae40701cbe6f9992bcbdc2ef22aa9b5ab";
-      sha256 = "07zmiiw74dyj4v0ar5vqkvk30wzcpjjzbi04nsdk5mnlzslmyi6c";
-    };
-
-    nativeBuildInputs = [
-      cmake
-      swig
-    ];
-
-    buildInputs = [
-      python
-      opencascade-occt
-      freetype
-      libGL
-      libGLU
-      libX11
-    ] ++ lib.optionals stdenv.isDarwin [ Cocoa ];
-
-    propagatedBuildInputs = [
-      six
-    ];
-
-    cmakeFlags = [
-      "-Wno-dev"
-      "-DPYTHONOCC_INSTALL_DIRECTORY=${placeholder "out"}/${python.sitePackages}/OCC"
-    ];
-  });
-
-in
-  buildPythonPackage rec {
-    pname = "cadquery";
-    version = "2.0";
-
-    src = fetchFromGitHub {
-      owner = "CadQuery";
-      repo = pname;
-      rev = version;
-      sha256 = "1n63b6cjjrdwdfmwq0zx1xabjnhndk9mgfkm4w7z9ardcfpvg84l";
-    };
-
-    buildInputs = [
-      opencascade-occt
-    ];
-
-    propagatedBuildInputs = [
-      pyparsing
-      pythonocc-core-cadquery
-    ];
-
-    FONTCONFIG_FILE = makeFontsConf {
-      fontDirectories = [ freefont_ttf ];
-    };
-
-    nativeCheckInputs = [
-      pytest
-    ];
-
-    disabled = pythonOlder "3.6" || pythonAtLeast "3.8";
-
-    meta = with lib; {
-      description = "Parametric scripting language for creating and traversing CAD models";
-      homepage = "https://github.com/CadQuery/cadquery";
-      license = licenses.asl20;
-      maintainers = with maintainers; [ marcus7070 ];
-      broken = true;
-    };
-  }
diff --git a/pkgs/development/python-modules/caio/default.nix b/pkgs/development/python-modules/caio/default.nix
index ee1bdc8dc62f2..936fcaf3e95e9 100644
--- a/pkgs/development/python-modules/caio/default.nix
+++ b/pkgs/development/python-modules/caio/default.nix
@@ -1,35 +1,42 @@
-{ lib
-, aiomisc
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  aiomisc,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "caio";
-  version = "0.9.13";
-  format = "setuptools";
+  version = "0.9.17";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "mosquito";
-    repo = pname;
+    repo = "caio";
     rev = "refs/tags/${version}";
-    hash = "sha256-Q87NuL6yZ5uKImQqqdKTMWNyfUOb4NaZDEvNdqZbHDk=";
+    hash = "sha256-aTJ02dCLb3CsT6KmJxkmOzwtg5nuXeBwz+mT7ZTTU9o=";
   };
 
+  build-system = [ setuptools ];
+
   nativeCheckInputs = [
     aiomisc
     pytest-aiohttp
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "caio"
-  ];
+  env.NIX_CFLAGS_COMPILE = toString (
+    lib.optionals stdenv.cc.isClang [ "-Wno-error=implicit-function-declaration" ]
+  );
+
+  pythonImportsCheck = [ "caio" ];
 
   meta = with lib; {
     description = "File operations with asyncio support";
diff --git a/pkgs/development/python-modules/cairocffi/default.nix b/pkgs/development/python-modules/cairocffi/default.nix
index fb0a81e202d97..11a65554116c8 100644
--- a/pkgs/development/python-modules/cairocffi/default.nix
+++ b/pkgs/development/python-modules/cairocffi/default.nix
@@ -1,34 +1,35 @@
 # FIXME: make gdk-pixbuf dependency optional
-{ stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, lib
-, substituteAll
-, makeFontsConf
-, freefont_ttf
-, pikepdf
-, pytestCheckHook
-, cairo
-, cffi
-, flit-core
-, numpy
-, withXcffib ? false
-, xcffib
-, glib
-, gdk-pixbuf
+{
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  lib,
+  substituteAll,
+  makeFontsConf,
+  freefont_ttf,
+  pikepdf,
+  pytestCheckHook,
+  cairo,
+  cffi,
+  flit-core,
+  numpy,
+  withXcffib ? false,
+  xcffib,
+  glib,
+  gdk-pixbuf,
 }:
 
 buildPythonPackage rec {
   pname = "cairocffi";
-  version = "1.6.1";
+  version = "1.7.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-eOa75HNXZAxFPQvpKfpJzQXM4uEobz0qHKnL2n79uLc=";
+    hash = "sha256-LkjuhkiE7Eo6NL+oyauZmfaIKG63FKFaQ+ydBow2VXs=";
   };
 
   patches = [
@@ -43,12 +44,12 @@ buildPythonPackage rec {
     ./fix_test_scaled_font.patch
   ];
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [ cairo cffi ]
-    ++ lib.optional withXcffib xcffib;
+  propagatedBuildInputs = [
+    cairo
+    cffi
+  ] ++ lib.optional withXcffib xcffib;
 
   nativeCheckInputs = [
     numpy
@@ -56,9 +57,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "cairocffi"
-  ];
+  pythonImportsCheck = [ "cairocffi" ];
 
   meta = with lib; {
     changelog = "https://github.com/Kozea/cairocffi/blob/v${version}/NEWS.rst";
diff --git a/pkgs/development/python-modules/cairocffi/dlopen-paths.patch b/pkgs/development/python-modules/cairocffi/dlopen-paths.patch
index 6542b4367eb45..d4cc7061e86d4 100644
--- a/pkgs/development/python-modules/cairocffi/dlopen-paths.patch
+++ b/pkgs/development/python-modules/cairocffi/dlopen-paths.patch
@@ -1,21 +1,13 @@
 Patch dlopen() to allow direct paths to all required libs
 
-This is an update of the patch submitted in
-https://github.com/NixOS/nixpkgs/commit/b13e44e094989d3a902f8c73b22e8d3c0cc7acf4
-by Alexander V. Nikolaev <avn@avnik.info>
-
----
- cairocffi/__init__.py | 34 ++++++++++++++++------------------
- 1 file changed, 16 insertions(+), 18 deletions(-)
-
 diff --git a/cairocffi/__init__.py b/cairocffi/__init__.py
-index 307d58c..43c29e3 100644
+index f917d90..31dab12 100644
 --- a/cairocffi/__init__.py
 +++ b/cairocffi/__init__.py
-@@ -21,28 +21,26 @@ VERSION = __version__ = (Path(__file__).parent / 'VERSION').read_text().strip()
+@@ -22,6 +22,14 @@ VERSION = __version__ = '1.7.1'
  version = '1.17.2'
  version_info = (1, 17, 2)
-
+ 
 +# Use hardcoded soname, because ctypes.util use gcc/objdump which shouldn't be
 +# required for runtime
 +_LIBS = {
@@ -24,8 +16,11 @@ index 307d58c..43c29e3 100644
 +    'gobject-2.0': '@glib@/lib/libgobject-2.0@ext@',
 +    'gdk_pixbuf-2.0': '@gdk_pixbuf@/lib/libgdk_pixbuf-2.0@ext@',
 +}
-+
-
+ 
+ # Python 3.8 no longer searches for DLLs in PATH, so we can add everything in
+ # CAIROCFFI_DLL_DIRECTORIES manually. Note that unlike PATH, add_dll_directory
+@@ -36,26 +44,14 @@ if dll_directories and hasattr(os, 'add_dll_directory'):
+ 
  def dlopen(ffi, library_names, filenames):
      """Try various names for the same library, for different platforms."""
 -    exceptions = []
@@ -33,7 +28,7 @@ index 307d58c..43c29e3 100644
      for library_name in library_names:
 -        library_filename = find_library(library_name)
 -        if library_filename:
--            filenames = (library_filename,) + filenames
+-            filenames = (library_filename, *filenames)
 -        else:
 -            exceptions.append(
 -                'no library called "{}" was found'.format(library_name))
@@ -52,10 +47,8 @@ index 307d58c..43c29e3 100644
 +            lib = ffi.dlopen(path)
 +            if lib:
 +                return lib
-+
+ 
 +    raise OSError("dlopen() failed to load a library: %s as %s" % (library_name, path))
-
-
+ 
  cairo = dlopen(
---
-2.19.2
+     ffi, ('cairo-2', 'cairo', 'libcairo-2'),
diff --git a/pkgs/development/python-modules/cairosvg/default.nix b/pkgs/development/python-modules/cairosvg/default.nix
index ddabd2098824b..de527486065dc 100644
--- a/pkgs/development/python-modules/cairosvg/default.nix
+++ b/pkgs/development/python-modules/cairosvg/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, cairocffi
-, cssselect2
-, defusedxml
-, fetchPypi
-, pillow
-, pytestCheckHook
-, setuptools
-, tinycss2
+{
+  lib,
+  buildPythonPackage,
+  cairocffi,
+  cssselect2,
+  defusedxml,
+  fetchPypi,
+  pillow,
+  pytestCheckHook,
+  setuptools,
+  tinycss2,
 }:
 
 buildPythonPackage rec {
@@ -23,7 +24,13 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [ cairocffi cssselect2 defusedxml pillow tinycss2 ];
+  propagatedBuildInputs = [
+    cairocffi
+    cssselect2
+    defusedxml
+    pillow
+    tinycss2
+  ];
 
   propagatedNativeBuildInputs = [ cairocffi ];
 
@@ -39,9 +46,7 @@ buildPythonPackage rec {
       --replace "--isort" ""
   '';
 
-  pytestFlagsArray = [
-    "cairosvg/test_api.py"
-  ];
+  pytestFlagsArray = [ "cairosvg/test_api.py" ];
 
   pythonImportsCheck = [ "cairosvg" ];
 
diff --git a/pkgs/development/python-modules/caldav/default.nix b/pkgs/development/python-modules/caldav/default.nix
index ad16084d0f1be..9813d9b581bcb 100644
--- a/pkgs/development/python-modules/caldav/default.nix
+++ b/pkgs/development/python-modules/caldav/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, icalendar
-, lxml
-, pytestCheckHook
-, pythonOlder
-, python
-, pytz
-, recurring-ical-events
-, requests
-, setuptools
-, toPythonModule
-, tzlocal
-, vobject
-, xandikos
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  icalendar,
+  lxml,
+  pytestCheckHook,
+  pythonOlder,
+  python,
+  pytz,
+  recurring-ical-events,
+  requests,
+  setuptools,
+  toPythonModule,
+  tzlocal,
+  vobject,
+  xandikos,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     hash = "sha256-R9zXwD0sZE4bg6MTHWWCWWlZ5wH0H6g650zA7AboAo8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     vobject
@@ -56,6 +55,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/python-caldav/caldav";
     changelog = "https://github.com/python-caldav/caldav/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
-    maintainers = with maintainers; [ marenz dotlambda ];
+    maintainers = with maintainers; [
+      marenz
+      dotlambda
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/callee/default.nix b/pkgs/development/python-modules/callee/default.nix
index d7fb37706a594..e20a34f8cd430 100644
--- a/pkgs/development/python-modules/callee/default.nix
+++ b/pkgs/development/python-modules/callee/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-dsXMY3bW/70CmTfCuy5KjxPa+NLCzxzWv5e1aV2NEWE=";
   };
 
-  pythonImportsCheck = [
-    "callee"
-  ];
+  pythonImportsCheck = [ "callee" ];
 
   doCheck = false; # missing dependency
 
diff --git a/pkgs/development/python-modules/calmjs-parse/default.nix b/pkgs/development/python-modules/calmjs-parse/default.nix
index 34a2c00ce33b4..362cc368dc577 100644
--- a/pkgs/development/python-modules/calmjs-parse/default.nix
+++ b/pkgs/development/python-modules/calmjs-parse/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, ply
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  ply,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
       --replace "env['PYTHONPATH'] = 'src'" "env['PYTHONPATH'] += ':src'"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     setuptools
diff --git a/pkgs/development/python-modules/calmjs-types/default.nix b/pkgs/development/python-modules/calmjs-types/default.nix
index 897ddaf79e0c7..4d98b29c58004 100644
--- a/pkgs/development/python-modules/calmjs-types/default.nix
+++ b/pkgs/development/python-modules/calmjs-types/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/calmjs/default.nix b/pkgs/development/python-modules/calmjs/default.nix
index 031ebfb493f8e..442528807daca 100644
--- a/pkgs/development/python-modules/calmjs/default.nix
+++ b/pkgs/development/python-modules/calmjs/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, calmjs-types
-, calmjs-parse
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  calmjs-types,
+  calmjs-parse,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     calmjs-types
   ];
 
-  checkInputs = [
-    pytestCheckHook
-  ];
+  checkInputs = [ pytestCheckHook ];
 
   # ModuleNotFoundError: No module named 'calmjs.types'
   # Not yet clear how to run these tests correctly
diff --git a/pkgs/development/python-modules/calver/default.nix b/pkgs/development/python-modules/calver/default.nix
index 4b400f218739f..528632743605d 100644
--- a/pkgs/development/python-modules/calver/default.nix
+++ b/pkgs/development/python-modules/calver/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pretend
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pretend,
+  pytestCheckHook,
 }:
 
 let
@@ -45,4 +46,4 @@ let
     };
   };
 in
-  self
+self
diff --git a/pkgs/development/python-modules/calysto-scheme/default.nix b/pkgs/development/python-modules/calysto-scheme/default.nix
index 1e0dc0cd102d5..8c857d45e4f9d 100644
--- a/pkgs/development/python-modules/calysto-scheme/default.nix
+++ b/pkgs/development/python-modules/calysto-scheme/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, metakernel
-, pytestCheckHook
-, yasi
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  metakernel,
+  pytestCheckHook,
+  yasi,
 }:
 
 buildPythonPackage rec {
@@ -23,14 +24,12 @@ buildPythonPackage rec {
     metakernel
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "calysto_scheme" ];
 
   meta = with lib; {
-    description = "A Scheme kernel for Jupyter that can use Python libraries";
+    description = "Scheme kernel for Jupyter that can use Python libraries";
     homepage = "https://github.com/Calysto/calysto_scheme";
     changelog = "https://github.com/Calysto/calysto_scheme/blob/${src.rev}/ChangeLog.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/calysto/default.nix b/pkgs/development/python-modules/calysto/default.nix
index 54f7eb044b7f1..04d428e9e6fcf 100644
--- a/pkgs/development/python-modules/calysto/default.nix
+++ b/pkgs/development/python-modules/calysto/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, metakernel
-, svgwrite
-, ipywidgets
-, cairosvg
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  metakernel,
+  svgwrite,
+  ipywidgets,
+  cairosvg,
+  numpy,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/camelot/default.nix b/pkgs/development/python-modules/camelot/default.nix
index ae5a89e80166e..9903faf218071 100644
--- a/pkgs/development/python-modules/camelot/default.nix
+++ b/pkgs/development/python-modules/camelot/default.nix
@@ -1,19 +1,18 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, chardet
-, openpyxl
-, charset-normalizer
-, fetchPypi
-, fetchpatch
-, pythonOlder
-, pandas
-, tabulate
-, click
-, pdfminer-six
-, pypdf
-, opencv4
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  chardet,
+  openpyxl,
+  charset-normalizer,
+  fetchPypi,
+  pythonOlder,
+  pandas,
+  tabulate,
+  click,
+  pdfminer-six,
+  pypdf,
+  opencv4,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -44,12 +43,10 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  pythonImportsCheck = [
-    "camelot"
-  ];
+  pythonImportsCheck = [ "camelot" ];
 
   meta = with lib; {
-    description = "A Python library to extract tabular data from PDFs";
+    description = "Python library to extract tabular data from PDFs";
     mainProgram = "camelot";
     homepage = "http://camelot-py.readthedocs.io";
     changelog = "https://github.com/camelot-dev/camelot/blob/v${version}/HISTORY.md";
diff --git a/pkgs/development/python-modules/can/default.nix b/pkgs/development/python-modules/can/default.nix
index 28c401b667fe1..71097501c21b9 100644
--- a/pkgs/development/python-modules/can/default.nix
+++ b/pkgs/development/python-modules/can/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, future
-, hypothesis
-, packaging
-, parameterized
-, msgpack
-, pyserial
-, pytest-timeout
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, typing-extensions
-, wrapt
-, uptime
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  future,
+  hypothesis,
+  packaging,
+  parameterized,
+  msgpack,
+  pyserial,
+  pytest-timeout,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
+  wrapt,
+  uptime,
 }:
 
 buildPythonPackage rec {
   pname = "can";
-  version = "4.3.1";
+  version = "4.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -28,7 +29,7 @@ buildPythonPackage rec {
     owner = "hardbyte";
     repo = "python-can";
     rev = "refs/tags/v${version}";
-    hash = "sha256-t2zt54nPOYcEE0RPb4fbW7sN4HzFXlDIHvHudstBwrM=";
+    hash = "sha256-A3J/81QFSr9dP1FfpYZC+qAQlnYbzE4y5nBcfSzA3oI=";
   };
 
   postPatch = ''
@@ -36,9 +37,7 @@ buildPythonPackage rec {
       --replace " --cov=can --cov-config=tox.ini --cov-report=lcov --cov-report=term" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     msgpack
@@ -48,15 +47,9 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    serial = [
-      pyserial
-    ];
-    seeedstudio = [
-      pyserial
-    ];
-    pcan = [
-      uptime
-    ];
+    serial = [ pyserial ];
+    seeedstudio = [ pyserial ];
+    pcan = [ uptime ];
   };
 
   nativeCheckInputs = [
@@ -72,18 +65,20 @@ buildPythonPackage rec {
     "test/test_interface_canalystii.py"
   ];
 
-  disabledTests = [
-    # Tests require access socket
-    "BasicTestUdpMulticastBusIPv4"
-    "BasicTestUdpMulticastBusIPv6"
-    # pytest.approx is not supported in a boolean context (since pytest7)
-    "test_pack_unpack"
-    "test_receive"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # timing sensitive
-    "test_general"
-    "test_gap"
-  ];
+  disabledTests =
+    [
+      # Tests require access socket
+      "BasicTestUdpMulticastBusIPv4"
+      "BasicTestUdpMulticastBusIPv6"
+      # pytest.approx is not supported in a boolean context (since pytest7)
+      "test_pack_unpack"
+      "test_receive"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # timing sensitive
+      "test_general"
+      "test_gap"
+    ];
 
   preCheck = ''
     export PATH="$PATH:$out/bin";
@@ -91,15 +86,16 @@ buildPythonPackage rec {
     export CI=1
   '';
 
-  pythonImportsCheck = [
-    "can"
-  ];
+  pythonImportsCheck = [ "can" ];
 
   meta = with lib; {
     description = "CAN support for Python";
     homepage = "https://python-can.readthedocs.io";
     changelog = "https://github.com/hardbyte/python-can/releases/tag/v${version}";
     license = licenses.lgpl3Only;
-    maintainers = with maintainers; [ fab sorki ];
+    maintainers = with maintainers; [
+      fab
+      sorki
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/canals/default.nix b/pkgs/development/python-modules/canals/default.nix
index 8494d6dfbd5d6..938a6279e0026 100644
--- a/pkgs/development/python-modules/canals/default.nix
+++ b/pkgs/development/python-modules/canals/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, mkdocs-material
-, mkdocs-mermaid2-plugin
-, mkdocstrings
-, networkx
-, pytestCheckHook
-, pythonOlder
-, requests
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  mkdocs-material,
+  mkdocs-mermaid2-plugin,
+  mkdocstrings,
+  networkx,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-xoJqj/zPBPPCheBxA+8EFRJqUnlP+4aWLEh42q1X1mM=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     networkx
@@ -58,12 +57,10 @@ buildPythonPackage rec {
     "test_draw_pygraphviz"
   ];
 
-  pythonImportsCheck = [
-    "canals"
-  ];
+  pythonImportsCheck = [ "canals" ];
 
   meta = with lib; {
-    description = "A component orchestration engine";
+    description = "Component orchestration engine";
     homepage = "https://github.com/deepset-ai/canals";
     changelog = "https://github.com/deepset-ai/canals/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/canmatrix/default.nix b/pkgs/development/python-modules/canmatrix/default.nix
index 287d14e60d671..634eec1da39d5 100644
--- a/pkgs/development/python-modules/canmatrix/default.nix
+++ b/pkgs/development/python-modules/canmatrix/default.nix
@@ -1,25 +1,28 @@
-{ lib
-, attrs
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, future
-, importlib-metadata
-, ldfparser
-, lxml
-, openpyxl
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, six
-, xlrd
-, xlwt
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  future,
+  importlib-metadata,
+  ldfparser,
+  lxml,
+  openpyxl,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  setuptools,
+  six,
+  versioneer,
+  xlrd,
+  xlwt,
 }:
 
 buildPythonPackage rec {
   pname = "canmatrix";
   version = "1.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -31,45 +34,33 @@ buildPythonPackage rec {
   };
 
   postPatch = ''
-    substituteInPlace setup.py \
-      --replace "version = versioneer.get_version()" 'version = "${version}"'
+    # Remove vendorized versioneer.py
+    rm versioneer.py
   '';
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  nativeBuildInputs = [ versioneer ];
+
+  dependencies = [
     attrs
     click
     future
     six
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   passthru.optional-dependencies = {
-    arxml = [
-      lxml
-    ];
-    fibex = [
-      lxml
-    ];
-    kcd = [
-      lxml
-    ];
-    ldf = [
-      ldfparser
-    ];
-    odx = [
-      lxml
-    ];
+    arxml = [ lxml ];
+    fibex = [ lxml ];
+    kcd = [ lxml ];
+    ldf = [ ldfparser ];
+    odx = [ lxml ];
     xls = [
       xlrd
       xlwt
     ];
-    xlsx = [
-      openpyxl
-    ];
-    yaml = [
-      pyyaml
-    ];
+    xlsx = [ openpyxl ];
+    yaml = [ pyyaml ];
   };
 
   nativeCheckInputs = [
@@ -81,13 +72,9 @@ buildPythonPackage rec {
     "-s src/canmatrix"
   ];
 
-  disabledTests = [
-    "long_envvar_name_imports"
-  ];
+  disabledTests = [ "long_envvar_name_imports" ];
 
-  pythonImportsCheck = [
-    "canmatrix"
-  ];
+  pythonImportsCheck = [ "canmatrix" ];
 
   meta = with lib; {
     description = "Support and convert several CAN (Controller Area Network) database formats";
diff --git a/pkgs/development/python-modules/canonicaljson/default.nix b/pkgs/development/python-modules/canonicaljson/default.nix
index 0dd7a02a4aba2..fa1130778b555 100644
--- a/pkgs/development/python-modules/canonicaljson/default.nix
+++ b/pkgs/development/python-modules/canonicaljson/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, frozendict
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, simplejson
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  frozendict,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  simplejson,
 }:
 
 buildPythonPackage rec {
@@ -20,21 +21,13 @@ buildPythonPackage rec {
     hash = "sha256-4v2u8df63F2ctZvT0NQbBk3dppeAmsQyXc7XIdEvET8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    simplejson
-  ];
+  propagatedBuildInputs = [ simplejson ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "canonicaljson"
-  ];
+  pythonImportsCheck = [ "canonicaljson" ];
 
   meta = with lib; {
     description = "Encodes objects and arrays as RFC 7159 JSON";
diff --git a/pkgs/development/python-modules/canopen/default.nix b/pkgs/development/python-modules/canopen/default.nix
index 09a9f4366a0dd..90351fd007769 100644
--- a/pkgs/development/python-modules/canopen/default.nix
+++ b/pkgs/development/python-modules/canopen/default.nix
@@ -1,41 +1,36 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, can
-, canmatrix
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  can,
+  canmatrix,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "canopen";
-  version = "2.2.0";
+  version = "2.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-XxhlG5325HabmILpafk0rnc+8kpFqrwzNLWGmCBI0Iw=";
+    hash = "sha256-eSCEqTwTjVsqQG3dLU61ziCPA72P2mD4GtK7jVbGuCc=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     can
     canmatrix
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "canopen"
-  ];
+  pythonImportsCheck = [ "canopen" ];
 
   meta = with lib; {
     description = "CANopen stack implementation";
diff --git a/pkgs/development/python-modules/cantools/default.nix b/pkgs/development/python-modules/cantools/default.nix
index 2b87d4de37eaa..8aacef138db79 100644
--- a/pkgs/development/python-modules/cantools/default.nix
+++ b/pkgs/development/python-modules/cantools/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, argparse-addons
-, bitstruct
-, buildPythonPackage
-, can
-, crccheck
-, diskcache
-, fetchPypi
-, matplotlib
-, parameterized
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
-, textparser
+{
+  lib,
+  argparse-addons,
+  bitstruct,
+  buildPythonPackage,
+  can,
+  crccheck,
+  diskcache,
+  fetchPypi,
+  matplotlib,
+  parameterized,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  textparser,
 }:
 
 buildPythonPackage rec {
@@ -41,18 +42,14 @@ buildPythonPackage rec {
     textparser
   ];
 
-  passthru.optional-dependencies.plot = [
-    matplotlib
-  ];
+  passthru.optional-dependencies.plot = [ matplotlib ];
 
   nativeCheckInputs = [
     parameterized
     pytestCheckHook
   ] ++ passthru.optional-dependencies.plot;
 
-  pythonImportsCheck = [
-    "cantools"
-  ];
+  pythonImportsCheck = [ "cantools" ];
 
   meta = with lib; {
     description = "Tools to work with CAN bus";
diff --git a/pkgs/development/python-modules/capstone/4.nix b/pkgs/development/python-modules/capstone/4.nix
index 7c79cfe819428..2ecf1ce9347a1 100644
--- a/pkgs/development/python-modules/capstone/4.nix
+++ b/pkgs/development/python-modules/capstone/4.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, capstone_4
-, stdenv
-, setuptools
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  capstone_4,
+  stdenv,
+  setuptools,
+  pythonAtLeast,
 }:
 
 buildPythonPackage {
@@ -20,7 +21,10 @@ buildPythonPackage {
 
   # aarch64 only available from MacOS SDK 11 onwards, so fix the version tag.
   # otherwise, bdist_wheel may detect "macosx_10_6_arm64" which doesn't make sense.
-  setupPyBuildFlags = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ "--plat-name" "macosx_11_0" ];
+  setupPyBuildFlags = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+    "--plat-name"
+    "macosx_11_0"
+  ];
 
   propagatedBuildInputs = [ setuptools ];
 
@@ -34,7 +38,10 @@ buildPythonPackage {
     homepage = "http://www.capstone-engine.org/";
     license = licenses.bsdOriginal;
     description = "Python bindings for Capstone disassembly engine";
-    maintainers = with maintainers; [ bennofs ris ];
+    maintainers = with maintainers; [
+      bennofs
+      ris
+    ];
     broken = pythonAtLeast "3.12"; # uses distutils
   };
 }
diff --git a/pkgs/development/python-modules/capstone/default.nix b/pkgs/development/python-modules/capstone/default.nix
index 405dbe767da6c..ce7063adcd51e 100644
--- a/pkgs/development/python-modules/capstone/default.nix
+++ b/pkgs/development/python-modules/capstone/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, capstone
-, stdenv
-, setuptools
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  capstone,
+  stdenv,
+  setuptools,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -27,7 +28,10 @@ buildPythonPackage rec {
 
   # aarch64 only available from MacOS SDK 11 onwards, so fix the version tag.
   # otherwise, bdist_wheel may detect "macosx_10_6_arm64" which doesn't make sense.
-  setupPyBuildFlags = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ "--plat-name" "macosx_11_0" ];
+  setupPyBuildFlags = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+    "--plat-name"
+    "macosx_11_0"
+  ];
 
   propagatedBuildInputs = [ setuptools ];
 
@@ -41,6 +45,9 @@ buildPythonPackage rec {
     homepage = "http://www.capstone-engine.org/";
     license = licenses.bsdOriginal;
     description = "Python bindings for Capstone disassembly engine";
-    maintainers = with maintainers; [ bennofs ris ];
+    maintainers = with maintainers; [
+      bennofs
+      ris
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/captcha/default.nix b/pkgs/development/python-modules/captcha/default.nix
index 807272da5b1c7..fae80969824ca 100644
--- a/pkgs/development/python-modules/captcha/default.nix
+++ b/pkgs/development/python-modules/captcha/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchFromGitHub
-, pythonOlder
-, buildPythonPackage
-, pillow
-, pytestCheckHook
+{
+  lib,
+  fetchFromGitHub,
+  pythonOlder,
+  buildPythonPackage,
+  pillow,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -28,7 +29,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A captcha library that generates audio and image CAPTCHAs";
+    description = "Captcha library that generates audio and image CAPTCHAs";
     homepage = "https://github.com/lepture/captcha";
     license = licenses.bsd3;
     maintainers = with maintainers; [ Flakebi ];
diff --git a/pkgs/development/python-modules/capturer/default.nix b/pkgs/development/python-modules/capturer/default.nix
index 51d5064aefa3f..856da1f953695 100644
--- a/pkgs/development/python-modules/capturer/default.nix
+++ b/pkgs/development/python-modules/capturer/default.nix
@@ -1,4 +1,11 @@
-{ stdenv, lib, buildPythonPackage, fetchFromGitHub, humanfriendly, pytestCheckHook }:
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  humanfriendly,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "capturer";
diff --git a/pkgs/development/python-modules/carbon/default.nix b/pkgs/development/python-modules/carbon/default.nix
index f6647abbc57e8..3cfbf3c213f94 100644
--- a/pkgs/development/python-modules/carbon/default.nix
+++ b/pkgs/development/python-modules/carbon/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi, twisted, whisper, txamqp, cachetools, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  twisted,
+  whisper,
+  txamqp,
+  cachetools,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -13,14 +21,23 @@ buildPythonPackage rec {
 
   # Carbon-s default installation is /opt/graphite. This env variable ensures
   # carbon is installed as a regular python module.
-  GRAPHITE_NO_PREFIX="True";
+  GRAPHITE_NO_PREFIX = "True";
 
-  propagatedBuildInputs = [ twisted whisper txamqp cachetools urllib3 ];
+  propagatedBuildInputs = [
+    twisted
+    whisper
+    txamqp
+    cachetools
+    urllib3
+  ];
 
   meta = with lib; {
     homepage = "http://graphiteapp.org/";
     description = "Backend data caching and persistence daemon for Graphite";
-    maintainers = with maintainers; [ offline basvandijk ];
+    maintainers = with maintainers; [
+      offline
+      basvandijk
+    ];
     license = licenses.asl20;
   };
 }
diff --git a/pkgs/development/python-modules/cart/default.nix b/pkgs/development/python-modules/cart/default.nix
index 7373ac0691ccb..54b25617a0c70 100644
--- a/pkgs/development/python-modules/cart/default.nix
+++ b/pkgs/development/python-modules/cart/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, pycryptodome
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  pycryptodome,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,21 +21,13 @@ buildPythonPackage rec {
     hash = "sha256-0dHdXb4v92681xL21FsrIkNgNQ9R5ULV1lnSCITZzP8=";
   };
 
-  propagatedBuildInputs = [
-    pycryptodome
-  ];
+  propagatedBuildInputs = [ pycryptodome ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "unittests"
-  ];
+  pytestFlagsArray = [ "unittests" ];
 
-  pythonImportsCheck = [
-    "cart"
-  ];
+  pythonImportsCheck = [ "cart" ];
 
   meta = with lib; {
     description = "Python module for the CaRT Neutering format";
diff --git a/pkgs/development/python-modules/cartopy/default.nix b/pkgs/development/python-modules/cartopy/default.nix
index 17d6b014caef0..06437870fae56 100644
--- a/pkgs/development/python-modules/cartopy/default.nix
+++ b/pkgs/development/python-modules/cartopy/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, fetchpatch
-, cython
-, setuptools-scm
-, geos
-, proj
-, matplotlib
-, numpy
-, pyproj
-, pyshp
-, shapely
-, owslib
-, pillow
-, gdal
-, scipy
-, fontconfig
-, pytest-mpl
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchpatch,
+  fetchPypi,
+  cython,
+  setuptools-scm,
+  geos,
+  proj,
+  matplotlib,
+  numpy,
+  pyproj,
+  pyshp,
+  shapely,
+  owslib,
+  pillow,
+  gdal,
+  scipy,
+  fontconfig,
+  pytest-mpl,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -35,6 +36,15 @@ buildPythonPackage rec {
     hash = "sha256-Ix83s1cB8rox2UlZzKdebaBMLuo6fxTOHHXuOw6udnY=";
   };
 
+  patches = [
+    # Some tests in the 0.23.0 release are failing due to missing network markers. Revisit after update.
+    (fetchpatch {
+      name = "mnt-add-missing-needs-network-markers.patch";
+      url = "https://github.com/SciTools/cartopy/commit/2403847ea69c3d95e899ad5d0cab32ac6017df0e.patch";
+      hash = "sha256-aGBUX4jFn7GgoqmHVC51DmS+ga3GcQGKfkut++x67Q0=";
+    })
+  ];
+
   nativeBuildInputs = [
     cython
     geos # for geos-config
@@ -56,8 +66,15 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    ows = [ owslib pillow ];
-    plotting = [ gdal pillow scipy ];
+    ows = [
+      owslib
+      pillow
+    ];
+    plotting = [
+      gdal
+      pillow
+      scipy
+    ];
   };
 
   nativeCheckInputs = [
@@ -78,6 +95,7 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
+    "test_gridliner_constrained_adjust_datalim"
     "test_gridliner_labels_bbox_style"
   ];
 
diff --git a/pkgs/development/python-modules/casa-formats-io/default.nix b/pkgs/development/python-modules/casa-formats-io/default.nix
index 2537c9e8e5f6c..49f1b18dc8bd3 100644
--- a/pkgs/development/python-modules/casa-formats-io/default.nix
+++ b/pkgs/development/python-modules/casa-formats-io/default.nix
@@ -1,41 +1,48 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, astropy
-, dask
-, numpy
-, oldest-supported-numpy
-, setuptools-scm
-, wheel
+{
+  lib,
+  astropy,
+  buildPythonPackage,
+  dask,
+  fetchPypi,
+  numpy,
+  oldest-supported-numpy,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "casa-formats-io";
   version = "0.3.0";
-  format = "pyproject";
+  prproject = true;
+
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
-    inherit pname version;
+    pname = "casa_formats_io";
+    inherit version;
     hash = "sha256-FpQj0XeZ7vvOzUM/+5qG6FRwNXl3gzoUBItYdQ1M4m4=";
   };
 
-  nativeBuildInputs = [
-    oldest-supported-numpy
-    setuptools-scm
-    wheel
-  ];
+  build-system = [ setuptools-scm ];
 
-  propagatedBuildInputs = [ astropy dask numpy ];
+  nativeBuildInputs = [ oldest-supported-numpy ];
+
+  dependencies = [
+    astropy
+    dask
+    numpy
+  ];
 
   # Tests require a large (800 Mb) dataset
   doCheck = false;
 
   pythonImportsCheck = [ "casa_formats_io" ];
 
-  meta = {
+  meta = with lib; {
     description = "Dask-based reader for CASA data";
     homepage = "https://casa-formats-io.readthedocs.io/";
-    license = lib.licenses.lgpl2Only;
-    maintainers = with lib.maintainers; [ smaret ];
+    changelog = "https://github.com/radio-astro-tools/casa-formats-io/blob/v${version}/CHANGES.rst";
+    license = licenses.lgpl2Only;
+    maintainers = with maintainers; [ smaret ];
   };
 }
diff --git a/pkgs/development/python-modules/casbin/default.nix b/pkgs/development/python-modules/casbin/default.nix
index 64fe9705ea619..28843f9887755 100644
--- a/pkgs/development/python-modules/casbin/default.nix
+++ b/pkgs/development/python-modules/casbin/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, simpleeval
-, wcmatch
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  simpleeval,
+  wcmatch,
 }:
 
 buildPythonPackage rec {
   pname = "casbin";
-  version = "1.36.0";
+  version = "1.36.2";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -19,25 +20,19 @@ buildPythonPackage rec {
     owner = "casbin";
     repo = "pycasbin";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ebmCcu4OvDI7k4K6Jk5BgmXi5HtLMAV3PMkLd2LC0pY=";
+    hash = "sha256-RQYMQ1Zt+MJ3PyVGSTGo/Qi95M+NVGn7oC2gqXJdlEU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     simpleeval
     wcmatch
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "casbin"
-  ];
+  pythonImportsCheck = [ "casbin" ];
 
   meta = with lib; {
     description = "Authorization library that supports access control models like ACL, RBAC and ABAC";
diff --git a/pkgs/development/python-modules/case/default.nix b/pkgs/development/python-modules/case/default.nix
index 5a244096bcd5c..8cf5ad07a64b2 100644
--- a/pkgs/development/python-modules/case/default.nix
+++ b/pkgs/development/python-modules/case/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pynose
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pynose,
+  pythonOlder,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -22,7 +22,6 @@ buildPythonPackage rec {
 
   build-system = [
     setuptools
-    pythonRelaxDepsHook
   ];
 
   pythonRemoveDeps = [
@@ -38,9 +37,7 @@ buildPythonPackage rec {
   # No real unittests, only coverage
   doCheck = false;
 
-  pythonImportsCheck = [
-    "case"
-  ];
+  pythonImportsCheck = [ "case" ];
 
   meta = with lib; {
     homepage = "https://github.com/celery/case";
diff --git a/pkgs/development/python-modules/cashaddress/default.nix b/pkgs/development/python-modules/cashaddress/default.nix
index 8458f9b7fba61..ec7d20a9af681 100644
--- a/pkgs/development/python-modules/cashaddress/default.nix
+++ b/pkgs/development/python-modules/cashaddress/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-4izWD2KZqy1F7CAgdbe1fpjMlMZC0clrkHKS9IIQuoc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "cashaddress"
-  ];
+  pythonImportsCheck = [ "cashaddress" ];
 
   meta = with lib; {
     description = "Python tool for convert bitcoin cash legacy addresses";
diff --git a/pkgs/development/python-modules/cashews/default.nix b/pkgs/development/python-modules/cashews/default.nix
new file mode 100644
index 0000000000000..3d75bc80c4758
--- /dev/null
+++ b/pkgs/development/python-modules/cashews/default.nix
@@ -0,0 +1,70 @@
+{
+  bitarray,
+  buildPythonPackage,
+  dill,
+  diskcache,
+  fetchFromGitHub,
+  hiredis,
+  hypothesis,
+  lib,
+  pytest,
+  pytest-asyncio,
+  pytest-cov,
+  pytest-rerunfailures,
+  pytestCheckHook,
+  redis,
+  setuptools,
+  xxhash,
+}:
+
+buildPythonPackage rec {
+  pname = "cashews";
+  version = "7.1.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "Krukov";
+    repo = "cashews";
+    rev = "refs/tags/${version}";
+    hash = "sha256-VzIW6/xhKk+ZWd29BYQp6sjpBst8IVz8t/hCLc2LFT4=";
+  };
+
+  build-system = [ setuptools ];
+
+  passthru.optional-dependencies = {
+    dill = [ dill ];
+    diskcache = [ diskcache ];
+    redis = [ redis ];
+    speedup = [
+      bitarray
+      hiredis
+      xxhash
+    ];
+  };
+
+  nativeCheckInputs = [
+    hypothesis
+    pytest
+    pytest-asyncio
+    pytest-cov
+    pytest-rerunfailures
+    pytestCheckHook
+  ];
+
+  disabledTests = [
+    # these tests require too many dependencies
+    "redis"
+    "diskcache"
+    "integration"
+  ];
+
+  pythonImportsCheck = [ "cashews" ];
+
+  meta = {
+    description = "Cache tools with async power";
+    homepage = "https://github.com/Krukov/cashews/";
+    changelog = "https://github.com/Krukov/cashews/releases/tag/${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ moraxyc ];
+  };
+}
diff --git a/pkgs/development/python-modules/cassandra-driver/default.nix b/pkgs/development/python-modules/cassandra-driver/default.nix
index ad5364ccd3857..c850c6a89dd0d 100644
--- a/pkgs/development/python-modules/cassandra-driver/default.nix
+++ b/pkgs/development/python-modules/cassandra-driver/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, cryptography
-, cython_0
-, eventlet
-, fetchFromGitHub
-, geomet
-, gevent
-, gremlinpython
-, iana-etc
-, libev
-, libredirect
-, mock
-, nose
-, pytestCheckHook
-, pythonOlder
-, pytz
-, pyyaml
-, scales
-, six
-, sure
-, twisted
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cryptography,
+  cython_0,
+  eventlet,
+  fetchFromGitHub,
+  geomet,
+  gevent,
+  gremlinpython,
+  iana-etc,
+  libev,
+  libredirect,
+  mock,
+  nose,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  pyyaml,
+  scales,
+  six,
+  sure,
+  twisted,
 }:
 
 buildPythonPackage rec {
@@ -42,13 +43,9 @@ buildPythonPackage rec {
       --replace 'geomet>=0.1,<0.3' 'geomet'
   '';
 
-  nativeBuildInputs = [
-    cython_0
-  ];
+  nativeBuildInputs = [ cython_0 ];
 
-  buildInputs = [
-    libev
-  ];
+  buildInputs = [ libev ];
 
   propagatedBuildInputs = [
     six
@@ -66,33 +63,31 @@ buildPythonPackage rec {
 
   # Make /etc/protocols accessible to allow socket.getprotobyname('tcp') in sandbox,
   # also /etc/resolv.conf is referenced by some tests
-  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)
-    export LD_PRELOAD=${libredirect}/lib/libredirect.so
-  '') + ''
-    # increase tolerance for time-based test
-    substituteInPlace tests/unit/io/utils.py --replace 'delta=.15' 'delta=.3'
-
-    export HOME=$(mktemp -d)
-    # cythonize this before we hide the source dir as it references
-    # one of its files
-    cythonize -i tests/unit/cython/types_testhelper.pyx
-
-    mv cassandra .cassandra.hidden
-  '';
-
-  pythonImportsCheck = [
-    "cassandra"
-  ];
+  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)
+      export LD_PRELOAD=${libredirect}/lib/libredirect.so
+    '')
+    + ''
+      # increase tolerance for time-based test
+      substituteInPlace tests/unit/io/utils.py --replace 'delta=.15' 'delta=.3'
+
+      export HOME=$(mktemp -d)
+      # cythonize this before we hide the source dir as it references
+      # one of its files
+      cythonize -i tests/unit/cython/types_testhelper.pyx
+
+      mv cassandra .cassandra.hidden
+    '';
+
+  pythonImportsCheck = [ "cassandra" ];
 
   postCheck = ''
     unset NIX_REDIRECTS LD_PRELOAD
   '';
 
-  pytestFlagsArray = [
-    "tests/unit"
-  ];
+  pytestFlagsArray = [ "tests/unit" ];
 
   disabledTestPaths = [
     # requires puresasl
@@ -118,7 +113,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A Python client driver for Apache Cassandra";
+    description = "Python client driver for Apache Cassandra";
     homepage = "http://datastax.github.io/python-driver";
     changelog = "https://github.com/datastax/python-driver/blob/${version}/CHANGELOG.rst";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/castepxbin/default.nix b/pkgs/development/python-modules/castepxbin/default.nix
index 007a9543d6f18..7fa81bbbf9878 100644
--- a/pkgs/development/python-modules/castepxbin/default.nix
+++ b/pkgs/development/python-modules/castepxbin/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, flit-core
-, numpy
-, scipy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  flit-core,
+  numpy,
+  scipy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,21 +24,17 @@ buildPythonPackage rec {
     hash = "sha256-6kumVnm4PLRxuKO6Uz0iHzfYuu21hFC7EPRsc3S1kxE=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     numpy
     scipy
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A collection of readers for CASTEP binary outputs";
+    description = "Collection of readers for CASTEP binary outputs";
     homepage = "https://github.com/zhubonan/castepxbin";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/casttube/default.nix b/pkgs/development/python-modules/casttube/default.nix
index 4d836dc052fea..4b6e6b1c243ce 100644
--- a/pkgs/development/python-modules/casttube/default.nix
+++ b/pkgs/development/python-modules/casttube/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, requests }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+}:
 
 buildPythonPackage rec {
   pname = "casttube";
diff --git a/pkgs/development/python-modules/catalogue/default.nix b/pkgs/development/python-modules/catalogue/default.nix
index b417dba120f62..8b864b6c2b49b 100644
--- a/pkgs/development/python-modules/catalogue/default.nix
+++ b/pkgs/development/python-modules/catalogue/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, setuptools
-, typing-extensions
-, zipp
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
+  zipp,
 }:
 
 buildPythonPackage rec {
@@ -21,22 +22,16 @@ buildPythonPackage rec {
     hash = "sha256-T1baqUCRPT8J1YnBkcdOWm1Rdis6njfdU7dDev1s2hU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
     typing-extensions
     zipp
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "catalogue"
-  ];
+  pythonImportsCheck = [ "catalogue" ];
 
   meta = with lib; {
     description = "Tiny library for adding function or object registries";
diff --git a/pkgs/development/python-modules/catboost/default.nix b/pkgs/development/python-modules/catboost/default.nix
index 6795655f48406..98e4f0869ccb8 100644
--- a/pkgs/development/python-modules/catboost/default.nix
+++ b/pkgs/development/python-modules/catboost/default.nix
@@ -1,20 +1,26 @@
-{ lib
-, buildPythonPackage
-, catboost
-, python
-, graphviz
-, matplotlib
-, numpy
-, pandas
-, plotly
-, scipy
-, setuptools
-, six
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  catboost,
+  python,
+  graphviz,
+  matplotlib,
+  numpy,
+  pandas,
+  plotly,
+  scipy,
+  setuptools,
+  six,
+  wheel,
 }:
 
 buildPythonPackage rec {
-  inherit (catboost) pname version src meta;
+  inherit (catboost)
+    pname
+    version
+    src
+    meta
+    ;
   format = "pyproject";
 
   sourceRoot = "${src.name}/catboost/python-package";
diff --git a/pkgs/development/python-modules/catkin-pkg/default.nix b/pkgs/development/python-modules/catkin-pkg/default.nix
index c9ddf02b05f47..cc1b3a938c0d9 100644
--- a/pkgs/development/python-modules/catkin-pkg/default.nix
+++ b/pkgs/development/python-modules/catkin-pkg/default.nix
@@ -37,7 +37,7 @@ buildPythonPackage rec {
   disabledTestPaths = [ "test/test_flake8.py" ];
 
   meta = {
-    description = "Library for retrieving information about catkin packages.";
+    description = "Library for retrieving information about catkin packages";
     homepage = "http://wiki.ros.org/catkin_pkg";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ jnsgruk ];
diff --git a/pkgs/development/python-modules/catppuccin/default.nix b/pkgs/development/python-modules/catppuccin/default.nix
index 72b0a4ff42fe9..2726aa4f98de1 100644
--- a/pkgs/development/python-modules/catppuccin/default.nix
+++ b/pkgs/development/python-modules/catppuccin/default.nix
@@ -1,16 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, poetry-dynamic-versioning
-, pygments
-, rich
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  poetry-dynamic-versioning,
+  matplotlib,
+  pygments,
+  rich,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "catppuccin";
-  version = "2.2.0";
+  version = "2.3.0";
 
   pyproject = true;
 
@@ -18,7 +20,7 @@ buildPythonPackage rec {
     owner = "catppuccin";
     repo = "python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+V1rln3FlFvs1FEIANIch7k/b2EsI9xBxhg3Bwg99+I=";
+    hash = "sha256-1CPNs+n9S7fV+EvhFWBwnv6/N3UWQ/jiyRcn4XKzmd8=";
   };
 
   build-system = [
@@ -27,20 +29,22 @@ buildPythonPackage rec {
   ];
 
   optional-dependencies = {
+    matplotlib = [ matplotlib ];
     pygments = [ pygments ];
     rich = [ rich ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ lib.flatten (lib.attrValues optional-dependencies);
+  nativeCheckInputs = [ pytestCheckHook ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
   pythonImportsCheck = [ "catppuccin" ];
 
   meta = {
     description = "Soothing pastel theme for Python";
     homepage = "https://github.com/catppuccin/python";
-    maintainers = with lib.maintainers; [ fufexan tomasajt ];
+    maintainers = with lib.maintainers; [
+      fufexan
+      tomasajt
+    ];
     license = lib.licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/cattrs/default.nix b/pkgs/development/python-modules/cattrs/default.nix
index 304069b660d28..2e48750ccb1ef 100644
--- a/pkgs/development/python-modules/cattrs/default.nix
+++ b/pkgs/development/python-modules/cattrs/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, attrs
-, buildPythonPackage
-, cbor2
-, fetchFromGitHub
-, exceptiongroup
-, hatchling
-, hatch-vcs
-, hypothesis
-, immutables
-, motor
-, msgpack
-, orjson
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, tomlkit
-, typing-extensions
-, ujson
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  cbor2,
+  fetchFromGitHub,
+  exceptiongroup,
+  hatchling,
+  hatch-vcs,
+  hypothesis,
+  immutables,
+  motor,
+  msgpack,
+  orjson,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  tomlkit,
+  typing-extensions,
+  ujson,
 }:
 
 buildPythonPackage rec {
@@ -39,12 +40,12 @@ buildPythonPackage rec {
     hatch-vcs
   ];
 
-  propagatedBuildInputs = [
-    attrs
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    exceptiongroup
-    typing-extensions
-  ];
+  propagatedBuildInputs =
+    [ attrs ]
+    ++ lib.optionals (pythonOlder "3.11") [
+      exceptiongroup
+      typing-extensions
+    ];
 
   nativeCheckInputs = [
     cbor2
@@ -61,7 +62,6 @@ buildPythonPackage rec {
     ujson
   ];
 
-
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace "-l --benchmark-sort=fullname --benchmark-warmup=true --benchmark-warmup-iterations=5  --benchmark-group-by=fullname" ""
@@ -89,9 +89,7 @@ buildPythonPackage rec {
     "test_tomlkit"
   ];
 
-  pythonImportsCheck = [
-    "cattr"
-  ];
+  pythonImportsCheck = [ "cattr" ];
 
   meta = with lib; {
     description = "Python custom class converters for attrs";
diff --git a/pkgs/development/python-modules/cbor/default.nix b/pkgs/development/python-modules/cbor/default.nix
index 551a0567ce4bc..63d9ddfc70096 100644
--- a/pkgs/development/python-modules/cbor/default.nix
+++ b/pkgs/development/python-modules/cbor/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "cbor";
diff --git a/pkgs/development/python-modules/cbor2/default.nix b/pkgs/development/python-modules/cbor2/default.nix
index c9d2ecbaca4fb..319d7feb44fae 100644
--- a/pkgs/development/python-modules/cbor2/default.nix
+++ b/pkgs/development/python-modules/cbor2/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-
-# build-system
-, setuptools
-, setuptools-scm
-
-# tests
-, hypothesis
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+  setuptools-scm,
+
+  # tests
+  hypothesis,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "cbor2";
-  version = "5.6.3";
+  version = "5.6.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-5vCuJ1HC0zOpYOCAfAYRSU6xJFYxoWeWWsvBAFCUVdM=";
+    hash = "sha256-HFM8UN3oa+8caVBgIFSg/6PDduiw4gx7j1sQh5P2mD4=";
   };
 
   postPatch = ''
@@ -35,9 +36,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  pythonImportsCheck = [
-    "cbor2"
-  ];
+  pythonImportsCheck = [ "cbor2" ];
 
   nativeCheckInputs = [
     hypothesis
diff --git a/pkgs/development/python-modules/cccolutils/default.nix b/pkgs/development/python-modules/cccolutils/default.nix
index 86aa9f6c8593e..829ebd248c410 100644
--- a/pkgs/development/python-modules/cccolutils/default.nix
+++ b/pkgs/development/python-modules/cccolutils/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, git
-, gitpython
-, krb5
-, mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  git,
+  gitpython,
+  krb5,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-YzKjG43biRbTZKtzSUHHhtzOfcZfzISHDFolqzrBjL8=";
   };
 
-  buildInputs = [
-    krb5
-  ];
+  buildInputs = [ krb5 ];
 
   propagatedBuildInputs = [
     git
@@ -32,13 +31,9 @@ buildPythonPackage rec {
     mock
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "cccolutils"
-  ];
+  pythonImportsCheck = [ "cccolutils" ];
 
   meta = with lib; {
     description = "Python Kerberos 5 Credential Cache Collection Utilities";
diff --git a/pkgs/development/python-modules/celery-redbeat/default.nix b/pkgs/development/python-modules/celery-redbeat/default.nix
index 779dfb68c4c54..0e6d7f5b868f2 100644
--- a/pkgs/development/python-modules/celery-redbeat/default.nix
+++ b/pkgs/development/python-modules/celery-redbeat/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, python-dateutil
-, celery
-, redis
-, tenacity
-, pytestCheckHook
-, pytz
-, fakeredis
-, mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  python-dateutil,
+  celery,
+  redis,
+  tenacity,
+  pytestCheckHook,
+  pytz,
+  fakeredis,
+  mock,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/celery-singleton/default.nix b/pkgs/development/python-modules/celery-singleton/default.nix
index bb3ac446a6005..10b1bfc05063e 100644
--- a/pkgs/development/python-modules/celery-singleton/default.nix
+++ b/pkgs/development/python-modules/celery-singleton/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, fetchFromGitHub
-, poetry-core
-, celery
-, redis
-, pytestCheckHook
-, pytest-celery
+{
+  lib,
+  buildPythonPackage,
+  fetchpatch,
+  fetchFromGitHub,
+  poetry-core,
+  celery,
+  redis,
+  pytestCheckHook,
+  pytest-celery,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     celery
diff --git a/pkgs/development/python-modules/celery-types/default.nix b/pkgs/development/python-modules/celery-types/default.nix
index fd39ab0901f4f..53ed8e4f2512a 100644
--- a/pkgs/development/python-modules/celery-types/default.nix
+++ b/pkgs/development/python-modules/celery-types/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, poetry-core
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -19,14 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-DsrS+lpu3tCh+Rnl4eOBzC/wY1/ksh21O0ZhtodtWzA=";
   };
 
+  nativeBuildInputs = [ poetry-core ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
-
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ typing-extensions ];
 
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/celery/default.nix b/pkgs/development/python-modules/celery/default.nix
index f628404909086..9e52b75e59afe 100644
--- a/pkgs/development/python-modules/celery/default.nix
+++ b/pkgs/development/python-modules/celery/default.nix
@@ -1,38 +1,39 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-
-# build-system
-, setuptools
-
-# dependencies
-, billiard
-, kombu
-, vine
-, click
-, click-didyoumean
-, click-repl
-, click-plugins
-, tzdata
-, python-dateutil
-
-# optional-dependencies
-, google-cloud-storage
-, moto
-, msgpack
-, pymongo
-, pyyaml
-
-# tests
-, pytest-celery
-, pytest-click
-, pytest-subtests
-, pytest-timeout
-, pytest-xdist
-, pytestCheckHook
-, nixosTests
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  billiard,
+  kombu,
+  vine,
+  click,
+  click-didyoumean,
+  click-repl,
+  click-plugins,
+  tzdata,
+  python-dateutil,
+
+  # optional-dependencies
+  google-cloud-storage,
+  moto,
+  msgpack,
+  pymongo,
+  pyyaml,
+
+  # tests
+  pytest-celery,
+  pytest-click,
+  pytest-subtests,
+  pytest-timeout,
+  pytest-xdist,
+  pytestCheckHook,
+  nixosTests,
 }:
 
 buildPythonPackage rec {
@@ -47,9 +48,7 @@ buildPythonPackage rec {
     hash = "sha256-UEoZFA6NMCnVrK2IMwxUHUw/ZMeJ2F+UdWdi2Lyn5wY=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     billiard
@@ -70,20 +69,21 @@ buildPythonPackage rec {
     yaml = [ pyyaml ];
   };
 
-  nativeCheckInputs = [
-    moto
-    pytest-celery
-    pytest-click
-    pytest-subtests
-    pytest-timeout
-    pytest-xdist
-    pytestCheckHook
-  ]
-  # based on https://github.com/celery/celery/blob/main/requirements/test.txt
-  ++ optional-dependencies.yaml
-  ++ optional-dependencies.msgpack
-  ++ optional-dependencies.mongodb
-  ++ optional-dependencies.gcs;
+  nativeCheckInputs =
+    [
+      moto
+      pytest-celery
+      pytest-click
+      pytest-subtests
+      pytest-timeout
+      pytest-xdist
+      pytestCheckHook
+    ]
+    # based on https://github.com/celery/celery/blob/main/requirements/test.txt
+    ++ optional-dependencies.yaml
+    ++ optional-dependencies.msgpack
+    ++ optional-dependencies.mongodb
+    ++ optional-dependencies.gcs;
 
   disabledTestPaths = [
     # test_eventlet touches network
@@ -95,26 +95,26 @@ buildPythonPackage rec {
     "t/unit/backends/test_s3.py"
   ];
 
-  disabledTests = [
-    "msgpack"
-    "test_check_privileges_no_fchown"
-    # seems to only fail on higher core counts
-    # AssertionError: assert 3 == 0
-    "test_setup_security_disabled_serializers"
-    # fails with pytest-xdist
-    "test_itercapture_limit"
-    "test_stamping_headers_in_options"
-    "test_stamping_with_replace"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # too many open files on hydra
-    "test_cleanup"
-    "test_with_autoscaler_file_descriptor_safety"
-    "test_with_file_descriptor_safety"
-  ];
-
-  pythonImportsCheck = [
-    "celery"
-  ];
+  disabledTests =
+    [
+      "msgpack"
+      "test_check_privileges_no_fchown"
+      # seems to only fail on higher core counts
+      # AssertionError: assert 3 == 0
+      "test_setup_security_disabled_serializers"
+      # fails with pytest-xdist
+      "test_itercapture_limit"
+      "test_stamping_headers_in_options"
+      "test_stamping_with_replace"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # too many open files on hydra
+      "test_cleanup"
+      "test_with_autoscaler_file_descriptor_safety"
+      "test_with_file_descriptor_safety"
+    ];
+
+  pythonImportsCheck = [ "celery" ];
 
   passthru.tests = {
     inherit (nixosTests) sourcehut;
diff --git a/pkgs/development/python-modules/cement/default.nix b/pkgs/development/python-modules/cement/default.nix
index cc71268dee0bb..a3a131c8b8af8 100644
--- a/pkgs/development/python-modules/cement/default.nix
+++ b/pkgs/development/python-modules/cement/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
   # 127.0.0.1:11211.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "cement"
-  ];
+  pythonImportsCheck = [ "cement" ];
 
   meta = with lib; {
     description = "CLI Application Framework for Python";
diff --git a/pkgs/development/python-modules/cemm/default.nix b/pkgs/development/python-modules/cemm/default.nix
index 9f9ae3b16be5a..2b93befacbbd7 100644
--- a/pkgs/development/python-modules/cemm/default.nix
+++ b/pkgs/development/python-modules/cemm/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -40,9 +41,7 @@ buildPythonPackage rec {
       --replace 'addopts = "--cov"' ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -57,9 +56,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "cemm"
-  ];
+  pythonImportsCheck = [ "cemm" ];
 
   meta = with lib; {
     description = "Module for interacting with CEMM devices";
diff --git a/pkgs/development/python-modules/censys/default.nix b/pkgs/development/python-modules/censys/default.nix
index 70c7a6c4a0d23..460ac35b5351e 100644
--- a/pkgs/development/python-modules/censys/default.nix
+++ b/pkgs/development/python-modules/censys/default.nix
@@ -1,19 +1,19 @@
-{ lib
-, argcomplete
-, backoff
-, buildPythonPackage
-, fetchFromGitHub
-, importlib-metadata
-, parameterized
-, poetry-core
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
-, requests-mock
-, responses
-, rich
+{
+  lib,
+  argcomplete,
+  backoff,
+  buildPythonPackage,
+  fetchFromGitHub,
+  importlib-metadata,
+  parameterized,
+  poetry-core,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
+  responses,
+  rich,
 }:
 
 buildPythonPackage rec {
@@ -37,7 +37,6 @@ buildPythonPackage rec {
 
   build-system = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   dependencies = [
@@ -68,9 +67,7 @@ buildPythonPackage rec {
     mkdir -p $HOME
   '';
 
-  pythonImportsCheck = [
-    "censys"
-  ];
+  pythonImportsCheck = [ "censys" ];
 
   meta = with lib; {
     description = "Python API wrapper for the Censys Search Engine (censys.io)";
diff --git a/pkgs/development/python-modules/cepa/default.nix b/pkgs/development/python-modules/cepa/default.nix
deleted file mode 100644
index 1b12ea1e5efbd..0000000000000
--- a/pkgs/development/python-modules/cepa/default.nix
+++ /dev/null
@@ -1,48 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, python
-, mock
-}:
-
-buildPythonPackage rec {
-  pname = "cepa";
-  version = "1.8.4";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-P7xwGsP8ic1/abxYptDXNbAU+kC2Hiwu/Tge0g21ipY=";
-  };
-
-  patches = [
-    (fetchpatch {
-      name = "python-3.11-compatibility.patch";
-      url = "https://github.com/onionshare/cepa/commit/0bf9aee7151e65594c532826bb04636e1d80fb6f.patch";
-      hash = "sha256-roSt9N5OvnOOxKZUee86zGXt0AsZCcbBdV2cLz1MB2k=";
-    })
-  ];
-
-  postPatch = ''
-    rm test/unit/installation.py
-    sed -i "/test.unit.installation/d" test/settings.cfg
-    # https://github.com/torproject/stem/issues/56
-    sed -i '/MOCK_VERSION/d' run_tests.py
-  '';
-
-  nativeCheckInputs = [ mock ];
-
-  checkPhase = ''
-    touch .gitignore
-    ${python.interpreter} run_tests.py -u
-  '';
-
-  meta = with lib; {
-    description = "Controller library that allows applications to interact with Tor";
-    mainProgram = "tor-prompt";
-    homepage = "https://github.com/onionshare/cepa";
-    license = licenses.lgpl3Only;
-    maintainers = with maintainers; [ bbjubjub ];
-  };
-}
diff --git a/pkgs/development/python-modules/cerberus/default.nix b/pkgs/development/python-modules/cerberus/default.nix
index a60e803535993..566268bc06cb3 100644
--- a/pkgs/development/python-modules/cerberus/default.nix
+++ b/pkgs/development/python-modules/cerberus/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "cerberus"
-  ];
+  pythonImportsCheck = [ "cerberus" ];
 
   disabledTestPaths = [
     # We don't care about benchmarks
diff --git a/pkgs/development/python-modules/cert-chain-resolver/default.nix b/pkgs/development/python-modules/cert-chain-resolver/default.nix
index de89116b4c92f..31ed14788dd62 100644
--- a/pkgs/development/python-modules/cert-chain-resolver/default.nix
+++ b/pkgs/development/python-modules/cert-chain-resolver/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, pytestCheckHook
-, pytest-mock
-, pythonOlder
-, six
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pytest-mock,
+  pythonOlder,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-2itpu/Ap5GNnqAiw3Cp+8rndreWlwfPd+WwM99G7U2E=";
   };
 
-  propagatedBuildInputs = [
-    cryptography
-  ];
+  propagatedBuildInputs = [ cryptography ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -38,9 +37,7 @@ buildPythonPackage rec {
     "test_display_flag_is_properly_formatted"
   ];
 
-  pythonImportsCheck = [
-    "cert_chain_resolver"
-  ];
+  pythonImportsCheck = [ "cert_chain_resolver" ];
 
   meta = with lib; {
     description = "Resolve / obtain the certificate intermediates of a x509 certificate";
diff --git a/pkgs/development/python-modules/certauth/default.nix b/pkgs/development/python-modules/certauth/default.nix
index efdd6c03b256b..d68cbd3481c2f 100644
--- a/pkgs/development/python-modules/certauth/default.nix
+++ b/pkgs/development/python-modules/certauth/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pyopenssl
-, tldextract
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pyopenssl,
+  tldextract,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,22 +29,16 @@ buildPythonPackage rec {
       --replace-fail "--cov certauth " ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pyopenssl
     tldextract
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "certauth"
-  ];
+  pythonImportsCheck = [ "certauth" ];
 
   disabledTests = [
     # https://github.com/ikreymer/certauth/issues/23
diff --git a/pkgs/development/python-modules/certbot-dns-cloudflare/default.nix b/pkgs/development/python-modules/certbot-dns-cloudflare/default.nix
index 2b66de576d27f..1d0a48549c169 100644
--- a/pkgs/development/python-modules/certbot-dns-cloudflare/default.nix
+++ b/pkgs/development/python-modules/certbot-dns-cloudflare/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, acme
-, certbot
-, cloudflare
-, pytestCheckHook
-, pythonOlder
+{
+  buildPythonPackage,
+  acme,
+  certbot,
+  cloudflare,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     cloudflare
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [
     "-o cache_dir=$(mktemp -d)"
diff --git a/pkgs/development/python-modules/certbot-dns-google/default.nix b/pkgs/development/python-modules/certbot-dns-google/default.nix
index 6d5ab6954e9d5..1717a573a9d0b 100644
--- a/pkgs/development/python-modules/certbot-dns-google/default.nix
+++ b/pkgs/development/python-modules/certbot-dns-google/default.nix
@@ -1,10 +1,11 @@
-{ buildPythonPackage
-, acme
-, certbot
-, google-api-python-client
-, oauth2client
-, pytestCheckHook
-, pythonOlder
+{
+  buildPythonPackage,
+  acme,
+  certbot,
+  google-api-python-client,
+  oauth2client,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     oauth2client
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [
     "-o cache_dir=$(mktemp -d)"
diff --git a/pkgs/development/python-modules/certbot-dns-inwx/default.nix b/pkgs/development/python-modules/certbot-dns-inwx/default.nix
index 7408bb2dc2e25..08c83c264bcac 100644
--- a/pkgs/development/python-modules/certbot-dns-inwx/default.nix
+++ b/pkgs/development/python-modules/certbot-dns-inwx/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, acme
-, certbot
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  acme,
+  certbot,
 }:
 
 buildPythonPackage rec {
@@ -28,7 +29,10 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "INWX DNS Authenticator plugin for Certbot";
     homepage = "https://github.com/oGGy990/certbot-dns-inwx";
-    license = with licenses; [ asl20 mit ];
+    license = with licenses; [
+      asl20
+      mit
+    ];
     maintainers = with maintainers; [ onny ];
   };
 }
diff --git a/pkgs/development/python-modules/certbot-dns-ovh/default.nix b/pkgs/development/python-modules/certbot-dns-ovh/default.nix
index d9b554c7a86c6..4858b58279696 100644
--- a/pkgs/development/python-modules/certbot-dns-ovh/default.nix
+++ b/pkgs/development/python-modules/certbot-dns-ovh/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, acme
-, certbot
-, dns-lexicon
-, pytestCheckHook
-, pythonOlder
+{
+  buildPythonPackage,
+  acme,
+  certbot,
+  dns-lexicon,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     dns-lexicon
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [
     "-o cache_dir=$(mktemp -d)"
diff --git a/pkgs/development/python-modules/certbot-dns-rfc2136/default.nix b/pkgs/development/python-modules/certbot-dns-rfc2136/default.nix
index 9278435e09f00..d4883bd2ad02a 100644
--- a/pkgs/development/python-modules/certbot-dns-rfc2136/default.nix
+++ b/pkgs/development/python-modules/certbot-dns-rfc2136/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, acme
-, certbot
-, dnspython
-, pytestCheckHook
-, pythonOlder
+{
+  buildPythonPackage,
+  acme,
+  certbot,
+  dnspython,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     dnspython
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [
     "-o cache_dir=$(mktemp -d)"
diff --git a/pkgs/development/python-modules/certbot-dns-route53/default.nix b/pkgs/development/python-modules/certbot-dns-route53/default.nix
index 7637aec52b88c..798631b0c79e3 100644
--- a/pkgs/development/python-modules/certbot-dns-route53/default.nix
+++ b/pkgs/development/python-modules/certbot-dns-route53/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, acme
-, boto3
-, certbot
-, pytestCheckHook
-, pythonOlder
+{
+  buildPythonPackage,
+  acme,
+  boto3,
+  certbot,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     certbot
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [
     "-o cache_dir=$(mktemp -d)"
diff --git a/pkgs/development/python-modules/certbot/default.nix b/pkgs/development/python-modules/certbot/default.nix
index 8cda81ec6d30e..a922e5a69d29b 100644
--- a/pkgs/development/python-modules/certbot/default.nix
+++ b/pkgs/development/python-modules/certbot/default.nix
@@ -1,47 +1,46 @@
-{ lib
-, buildPythonPackage
-, python
-, runCommand
-, fetchFromGitHub
-, configargparse
-, acme
-, configobj
-, cryptography
-, distro
-, josepy
-, parsedatetime
-, pyrfc3339
-, pyopenssl
-, pytz
-, requests
-, six
-, zope-component
-, zope-interface
-, setuptools
-, dialog
-, gnureadline
-, pytest-xdist
-, pytestCheckHook
-, python-dateutil
+{
+  lib,
+  buildPythonPackage,
+  python,
+  runCommand,
+  fetchFromGitHub,
+  configargparse,
+  acme,
+  configobj,
+  cryptography,
+  distro,
+  josepy,
+  parsedatetime,
+  pyrfc3339,
+  pyopenssl,
+  pytz,
+  requests,
+  six,
+  zope-component,
+  zope-interface,
+  setuptools,
+  dialog,
+  gnureadline,
+  pytest-xdist,
+  pytestCheckHook,
+  python-dateutil,
 }:
 
 buildPythonPackage rec {
   pname = "certbot";
-  version = "2.9.0";
+  version = "2.11.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "certbot";
     repo = "certbot";
     rev = "refs/tags/v${version}";
-    hash = "sha256-yYB9Y0wniRgzNk5XatkjKayIPj7ienXsqOboKPwzIfk=";
+    hash = "sha256-Qee7lUjgliG5fmUWWPm3MzpGJHUF/DXZ08UA6kkWjjk=";
   };
 
   sourceRoot = "${src.name}/${pname}";
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     configargparse
@@ -56,7 +55,10 @@ buildPythonPackage rec {
     setuptools # for pkg_resources
   ];
 
-  buildInputs = [ dialog gnureadline ];
+  buildInputs = [
+    dialog
+    gnureadline
+  ];
 
   nativeCheckInputs = [
     python-dateutil
@@ -64,22 +66,19 @@ buildPythonPackage rec {
     pytest-xdist
   ];
 
-  pytestFlagsArray = [
-    "-o cache_dir=$(mktemp -d)"
-  ];
+  pytestFlagsArray = [ "-o cache_dir=$(mktemp -d)" ];
 
   makeWrapperArgs = [ "--prefix PATH : ${dialog}/bin" ];
 
   # certbot.withPlugins has a similar calling convention as python*.withPackages
   # it gets invoked with a lambda, and invokes that lambda with the python package set matching certbot's:
   # certbot.withPlugins (cp: [ cp.certbot-dns-foo ])
-  passthru.withPlugins = f:
+  passthru.withPlugins =
+    f:
     let
       pythonEnv = python.withPackages f;
-
     in
-    runCommand "certbot-with-plugins"
-      { } ''
+    runCommand "certbot-with-plugins" { } ''
       mkdir -p $out/bin
       cd $out/bin
       ln -s ${pythonEnv}/bin/certbot
diff --git a/pkgs/development/python-modules/certifi/default.nix b/pkgs/development/python-modules/certifi/default.nix
index 73492baa076a2..81c0839722986 100644
--- a/pkgs/development/python-modules/certifi/default.nix
+++ b/pkgs/development/python-modules/certifi/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, cacert
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  cacert,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -32,22 +33,16 @@ buildPythonPackage rec {
     ln -snvf "${cacert}/etc/ssl/certs/ca-bundle.crt" "certifi/cacert.pem"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedNativeBuildInputs = [
     # propagate cacerts setup-hook to set up `NIX_SSL_CERT_FILE`
     cacert
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "certifi"
-  ];
+  pythonImportsCheck = [ "certifi" ];
 
   meta = with lib; {
     homepage = "https://github.com/certifi/python-certifi";
diff --git a/pkgs/development/python-modules/certipy-ad/default.nix b/pkgs/development/python-modules/certipy-ad/default.nix
index 794c35f4d75ce..52cbbe19cbac4 100644
--- a/pkgs/development/python-modules/certipy-ad/default.nix
+++ b/pkgs/development/python-modules/certipy-ad/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, asn1crypto
-, buildPythonPackage
-, cryptography
-, dnspython
-, dsinternals
-, fetchFromGitHub
-, impacket
-, ldap3
-, pyasn1
-, pycryptodome
-, pyopenssl
-, pythonOlder
-, requests
-, requests-ntlm
-, unicrypto
-, setuptools
+{
+  lib,
+  asn1crypto,
+  buildPythonPackage,
+  cryptography,
+  dnspython,
+  dsinternals,
+  fetchFromGitHub,
+  impacket,
+  ldap3,
+  pyasn1,
+  pycryptodome,
+  pyopenssl,
+  pythonOlder,
+  requests,
+  requests-ntlm,
+  unicrypto,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
       --replace "pyasn1==0.4.8" "pyasn1"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     asn1crypto
@@ -60,9 +59,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "certipy"
-  ];
+  pythonImportsCheck = [ "certipy" ];
 
   meta = with lib; {
     description = "Library and CLI tool to enumerate and abuse misconfigurations in Active Directory Certificate Services";
diff --git a/pkgs/development/python-modules/certipy/default.nix b/pkgs/development/python-modules/certipy/default.nix
index e0ee3b6319b77..908edc32db696 100644
--- a/pkgs/development/python-modules/certipy/default.nix
+++ b/pkgs/development/python-modules/certipy/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyopenssl
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyopenssl,
 }:
 
 buildPythonPackage rec {
@@ -16,7 +17,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pyopenssl ];
 
-  doCheck = false; #no tests were included
+  doCheck = false; # no tests were included
 
   meta = with lib; {
     homepage = "https://github.com/LLNL/certipy";
@@ -25,5 +26,4 @@ buildPythonPackage rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ isgy ];
   };
-
 }
diff --git a/pkgs/development/python-modules/certomancer/default.nix b/pkgs/development/python-modules/certomancer/default.nix
index 4adb682f6dcef..e9311df36e82f 100644
--- a/pkgs/development/python-modules/certomancer/default.nix
+++ b/pkgs/development/python-modules/certomancer/default.nix
@@ -1,75 +1,69 @@
-{ lib
-, asn1crypto
-, buildPythonPackage
-, click
-, cryptography
-, fetchFromGitHub
-, freezegun
-, jinja2
-, oscrypto
-, pyhanko-certvalidator
-, pytest-aiohttp
-, pytestCheckHook
-, python-dateutil
-, python-pkcs11
-, pythonOlder
-, pytz
-, pyyaml
-, requests
-, requests-mock
-, setuptools
-, tzlocal
-, werkzeug
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  pythonAtLeast,
+  fetchFromGitHub,
+  # build-system
+  setuptools,
+  wheel,
+  # dependencies
+  asn1crypto,
+  click,
+  cryptography,
+  python-dateutil,
+  pyyaml,
+  tzlocal,
+  # optional-dependencies
+  requests-mock,
+  jinja2,
+  werkzeug,
+  python-pkcs11,
+  # nativeCheckInputs
+  freezegun,
+  pyhanko-certvalidator,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pytz,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "certomancer";
-  version = "0.11.0";
-  format = "pyproject";
+  version = "0.12.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  # https://github.com/MatthiasValvekens/certomancer/issues/12
+  disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
 
   src = fetchFromGitHub {
     owner = "MatthiasValvekens";
     repo = "certomancer";
     rev = "refs/tags/v${version}";
-    hash = "sha256-UQV0Tk4C5b5iBZ34Je59gK2dLTaJusnpxdyNicIh2Q8=";
+    hash = "sha256-c2Fq4YTHQvhxuZrpKQYZvqHIMfubbkeKV4rctELLeJU=";
   };
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace ' "pytest-runner",' "" \
-  '';
-
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     wheel
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     asn1crypto
     click
-    oscrypto
+    cryptography
     python-dateutil
     pyyaml
     tzlocal
   ];
 
   passthru.optional-dependencies = {
-    requests-mocker = [
-      requests-mock
-    ];
+    requests-mocker = [ requests-mock ];
     web-api = [
       jinja2
       werkzeug
     ];
-    pkcs12 = [
-      cryptography
-    ];
-    pkcs11 = [
-      python-pkcs11
-    ];
+    pkcs11 = [ python-pkcs11 ];
   };
 
   nativeCheckInputs = [
@@ -86,15 +80,13 @@ buildPythonPackage rec {
     "test_validate"
   ];
 
-  pythonImportsCheck = [
-    "certomancer"
-  ];
+  pythonImportsCheck = [ "certomancer" ];
 
-  meta = with lib; {
+  meta = {
     description = "Quickly construct, mock & deploy PKI test configurations using simple declarative configuration";
     mainProgram = "certomancer";
     homepage = "https://github.com/MatthiasValvekens/certomancer";
-    license = licenses.mit;
-    maintainers = with maintainers; [ wolfangaukang ];
+    license = lib.licenses.mit;
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/certvalidator/default.nix b/pkgs/development/python-modules/certvalidator/default.nix
index f1f6126c69df3..c59e2b6738e0b 100644
--- a/pkgs/development/python-modules/certvalidator/default.nix
+++ b/pkgs/development/python-modules/certvalidator/default.nix
@@ -1,6 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, asn1crypto, oscrypto
-, cacert
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  asn1crypto,
+  oscrypto,
+  cacert,
 }:
 
 buildPythonPackage rec {
@@ -15,7 +19,10 @@ buildPythonPackage rec {
     hash = "sha256-yVF7t4FuU3C9fDg67JeM7LWZZh/mv5F4EKmjlO4AuBY=";
   };
 
-  propagatedBuildInputs = [ asn1crypto oscrypto ];
+  propagatedBuildInputs = [
+    asn1crypto
+    oscrypto
+  ];
 
   nativeCheckInputs = [ cacert ];
   checkPhase = ''
diff --git a/pkgs/development/python-modules/cexprtk/default.nix b/pkgs/development/python-modules/cexprtk/default.nix
index a805c98f73ece..7b680777e3107 100644
--- a/pkgs/development/python-modules/cexprtk/default.nix
+++ b/pkgs/development/python-modules/cexprtk/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/cf-xarray/default.nix b/pkgs/development/python-modules/cf-xarray/default.nix
index 9dd92914cb63a..f7ee7ccd18319 100644
--- a/pkgs/development/python-modules/cf-xarray/default.nix
+++ b/pkgs/development/python-modules/cf-xarray/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, dask
-, fetchFromGitHub
-, matplotlib
-, pint
-, pooch
-, pytestCheckHook
-, pythonOlder
-, regex
-, rich
-, scipy
-, setuptools
-, setuptools-scm
-, shapely
-, wheel
-, xarray
+{
+  lib,
+  buildPythonPackage,
+  dask,
+  fetchFromGitHub,
+  matplotlib,
+  pint,
+  pooch,
+  pytestCheckHook,
+  pythonOlder,
+  regex,
+  rich,
+  scipy,
+  setuptools,
+  setuptools-scm,
+  shapely,
+  wheel,
+  xarray,
 }:
 
 buildPythonPackage rec {
   pname = "cf-xarray";
-  version = "0.9.0";
+  version = "0.9.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -28,7 +29,7 @@ buildPythonPackage rec {
     owner = "xarray-contrib";
     repo = "cf-xarray";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MlI5Wx0GOcXPRb/p0sPyAtbf84g3LQKVxCZLBfEIGLo=";
+    hash = "sha256-Og84lB99576G3IZz8LNafF86TyYP+ooe2tL8wb60RPw=";
   };
 
   nativeBuildInputs = [
@@ -38,9 +39,7 @@ buildPythonPackage rec {
     xarray
   ];
 
-  propagatedBuildInputs = [
-    xarray
-  ];
+  propagatedBuildInputs = [ xarray ];
 
   passthru.optional-dependencies = {
     all = [
@@ -59,9 +58,7 @@ buildPythonPackage rec {
     scipy
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "cf_xarray"
-  ];
+  pythonImportsCheck = [ "cf_xarray" ];
 
   disabledTestPaths = [
     # Tests require network access
@@ -70,7 +67,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "An accessor for xarray objects that interprets CF attributes";
+    description = "Accessor for xarray objects that interprets CF attributes";
     homepage = "https://github.com/xarray-contrib/cf-xarray";
     changelog = "https://github.com/xarray-contrib/cf-xarray/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/cffconvert/default.nix b/pkgs/development/python-modules/cffconvert/default.nix
index 9ca8fb492e5e0..fcf6f222984c9 100644
--- a/pkgs/development/python-modules/cffconvert/default.nix
+++ b/pkgs/development/python-modules/cffconvert/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, click
-, requests
-, ruamel-yaml
-, pykwalify
-, jsonschema
-, pytestCheckHook
-, pytest-cov
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  click,
+  requests,
+  ruamel-yaml,
+  pykwalify,
+  jsonschema,
+  pytestCheckHook,
+  pytest-cov,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-/2qhWVNylrqPSf1KmuZQahzq+YH860cohVSfJsDm1BE=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     click
@@ -35,9 +34,7 @@ buildPythonPackage rec {
     jsonschema
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   checkInputs = [
     # addopts uses --no-cov
@@ -49,9 +46,7 @@ buildPythonPackage rec {
     "tests/cli/test_rawify_url.py"
   ];
 
-  pythonImportsCheckHook = [
-    "cffconvert"
-  ];
+  pythonImportsCheckHook = [ "cffconvert" ];
 
   meta = {
     changelog = "https://github.com/citation-file-format/cffconvert/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/cffi/default.nix b/pkgs/development/python-modules/cffi/default.nix
index 7b2547afff1d1..ba0e67c9bc7cb 100644
--- a/pkgs/development/python-modules/cffi/default.nix
+++ b/pkgs/development/python-modules/cffi/default.nix
@@ -1,83 +1,96 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, isPyPy
-, fetchPypi
-, setuptools
-, pytestCheckHook
-, libffi
-, pkg-config
-, pycparser
-, pythonAtLeast
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  isPyPy,
+  fetchPypi,
+  fetchpatch2,
+  setuptools,
+  pytestCheckHook,
+  libffi,
+  pkg-config,
+  pycparser,
+  pythonAtLeast,
 }:
 
-if isPyPy then null else buildPythonPackage rec {
-  pname = "cffi";
-  version = "1.16.0";
-  pyproject = true;
+if isPyPy then
+  null
+else
+  buildPythonPackage rec {
+    pname = "cffi";
+    version = "1.16.0";
+    pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-vLPvQ+WGZbvaL7GYaY/K5ndkg+DEpjGqVkeAbCXgLMA=";
-  };
+    src = fetchPypi {
+      inherit pname version;
+      hash = "sha256-vLPvQ+WGZbvaL7GYaY/K5ndkg+DEpjGqVkeAbCXgLMA=";
+    };
 
-  patches = [
-    #
-    # Trusts the libffi library inside of nixpkgs on Apple devices.
-    #
-    # Based on some analysis I did:
-    #
-    #   https://groups.google.com/g/python-cffi/c/xU0Usa8dvhk
-    #
-    # I believe that libffi already contains the code from Apple's fork that is
-    # deemed safe to trust in cffi.
-    #
-    ./darwin-use-libffi-closures.diff
-  ] ++ lib.optionals (stdenv.cc.isClang && lib.versionAtLeast (lib.getVersion stdenv.cc) "13") [
-    # -Wnull-pointer-subtraction is enabled with -Wextra. Suppress it to allow the following tests
-    # to run and pass when cffi is built with newer versions of clang:
-    # - testing/cffi1/test_verify1.py::test_enum_usage
-    # - testing/cffi1/test_verify1.py::test_named_pointer_as_argument
-    ./clang-pointer-substraction-warning.diff
-  ];
+    patches =
+      [
+        #
+        # Trusts the libffi library inside of nixpkgs on Apple devices.
+        #
+        # Based on some analysis I did:
+        #
+        #   https://groups.google.com/g/python-cffi/c/xU0Usa8dvhk
+        #
+        # I believe that libffi already contains the code from Apple's fork that is
+        # deemed safe to trust in cffi.
+        #
+        ./darwin-use-libffi-closures.diff
 
-  postPatch = lib.optionalString stdenv.isDarwin ''
-    # Remove setup.py impurities
-    substituteInPlace setup.py \
-      --replace "'-iwithsysroot/usr/include/ffi'" "" \
-      --replace "'/usr/include/ffi'," "" \
-      --replace '/usr/include/libffi' '${lib.getDev libffi}/include'
-  '';
+        (fetchpatch2 {
+          # https://github.com/python-cffi/cffi/pull/34
+          name = "python-3.13-compat-1.patch";
+          url = "https://github.com/python-cffi/cffi/commit/49127c6929bfc7186fbfd3819dd5e058ad888de4.patch";
+          hash = "sha256-RbspsjwDf4uwJxMqG0JZGvipd7/JqXJ2uVB7PO4Qcms=";
+        })
+        (fetchpatch2 {
+          # https://github.com/python-cffi/cffi/pull/24
+          name = "python-3.13-compat-2.patch";
+          url = "https://github.com/python-cffi/cffi/commit/14723b0bbd127790c450945099db31018d80fa83.patch";
+          hash = "sha256-H5rFgRRTr27l5S6REo8+7dmPDQW7WXhP4f4DGZjdi+s=";
+        })
+      ]
+      ++ lib.optionals (stdenv.cc.isClang && lib.versionAtLeast (lib.getVersion stdenv.cc) "13") [
+        # -Wnull-pointer-subtraction is enabled with -Wextra. Suppress it to allow the following tests
+        # to run and pass when cffi is built with newer versions of clang:
+        # - testing/cffi1/test_verify1.py::test_enum_usage
+        # - testing/cffi1/test_verify1.py::test_named_pointer_as_argument
+        ./clang-pointer-substraction-warning.diff
+      ];
 
-  nativeBuildInputs = [
-    pkg-config
-    setuptools
-  ];
+    postPatch = lib.optionalString stdenv.isDarwin ''
+      # Remove setup.py impurities
+      substituteInPlace setup.py \
+        --replace "'-iwithsysroot/usr/include/ffi'" "" \
+        --replace "'/usr/include/ffi'," "" \
+        --replace '/usr/include/libffi' '${lib.getDev libffi}/include'
+    '';
 
-  buildInputs = [
-    libffi
-  ];
+    nativeBuildInputs = [
+      pkg-config
+      setuptools
+    ];
 
-  propagatedBuildInputs = [
-    pycparser
-  ];
+    buildInputs = [ libffi ];
 
-  # The tests use -Werror but with python3.6 clang detects some unreachable code.
-  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang
-    "-Wno-unused-command-line-argument -Wno-unreachable-code -Wno-c++11-narrowing";
+    propagatedBuildInputs = [ pycparser ];
 
-  doCheck = !stdenv.hostPlatform.isMusl;
+    # The tests use -Werror but with python3.6 clang detects some unreachable code.
+    env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-unused-command-line-argument -Wno-unreachable-code -Wno-c++11-narrowing";
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+    doCheck = !stdenv.hostPlatform.isMusl;
 
-  meta = with lib; {
-    changelog = "https://github.com/python-cffi/cffi/releases/tag/v${version}";
-    description = "Foreign Function Interface for Python calling C code";
-    downloadPage = "https://github.com/python-cffi/cffi";
-    homepage = "https://cffi.readthedocs.org/";
-    license = licenses.mit;
-    maintainers = teams.python.members;
-  };
-}
+    nativeCheckInputs = [ pytestCheckHook ];
+
+    meta = with lib; {
+      changelog = "https://github.com/python-cffi/cffi/releases/tag/v${version}";
+      description = "Foreign Function Interface for Python calling C code";
+      downloadPage = "https://github.com/python-cffi/cffi";
+      homepage = "https://cffi.readthedocs.org/";
+      license = licenses.mit;
+      maintainers = teams.python.members;
+    };
+  }
diff --git a/pkgs/development/python-modules/cffsubr/default.nix b/pkgs/development/python-modules/cffsubr/default.nix
index 324145639a3a5..988af2d302454 100644
--- a/pkgs/development/python-modules/cffsubr/default.nix
+++ b/pkgs/development/python-modules/cffsubr/default.nix
@@ -1,12 +1,13 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, fonttools
-, pytestCheckHook
-, setuptools-scm
-, wheel
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchpatch,
+  fetchPypi,
+  fonttools,
+  pytestCheckHook,
+  setuptools-scm,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -33,13 +34,9 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    fonttools
-  ];
+  propagatedBuildInputs = [ fonttools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "cffsubr" ];
 
diff --git a/pkgs/development/python-modules/cfgv/default.nix b/pkgs/development/python-modules/cfgv/default.nix
index 0975d649a1672..ecf28c56000da 100644
--- a/pkgs/development/python-modules/cfgv/default.nix
+++ b/pkgs/development/python-modules/cfgv/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-P02j53dltwdrlUBG89AI+P2GkXYKTVrQNF15rZt58jw=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "cfgv"
-  ];
+  pythonImportsCheck = [ "cfgv" ];
 
   meta = with lib; {
     description = "Validate configuration and produce human readable error messages";
diff --git a/pkgs/development/python-modules/cfn-flip/default.nix b/pkgs/development/python-modules/cfn-flip/default.nix
index bca9fbd06fbb7..e10440bd3d3ea 100644
--- a/pkgs/development/python-modules/cfn-flip/default.nix
+++ b/pkgs/development/python-modules/cfn-flip/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, six
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     sed -i "/--cov/d" tox.ini
@@ -42,15 +41,16 @@ buildPythonPackage rec {
     "test_yaml_no_ordered_dict"
   ];
 
-  pythonImportsCheck = [
-    "cfn_flip"
-  ];
+  pythonImportsCheck = [ "cfn_flip" ];
 
   meta = with lib; {
     description = "Tool for converting AWS CloudFormation templates between JSON and YAML formats";
     mainProgram = "cfn-flip";
     homepage = "https://github.com/awslabs/aws-cfn-template-flip";
     license = licenses.asl20;
-    maintainers = with maintainers; [ kamadorueda psyanticy ];
+    maintainers = with maintainers; [
+      kamadorueda
+      psyanticy
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/cfn-lint/default.nix b/pkgs/development/python-modules/cfn-lint/default.nix
index e4561df271211..0e182eafcd744 100644
--- a/pkgs/development/python-modules/cfn-lint/default.nix
+++ b/pkgs/development/python-modules/cfn-lint/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, aws-sam-translator
-, buildPythonPackage
-, fetchFromGitHub
-, jschema-to-python
-, jsonpatch
-, jsonschema
-, junit-xml
-, mock
-, networkx
-, pydot
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, regex
-, sarif-om
-, setuptools
-, sympy
+{
+  lib,
+  aws-sam-translator,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jschema-to-python,
+  jsonpatch,
+  jsonschema,
+  junit-xml,
+  mock,
+  networkx,
+  pydot,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  regex,
+  sarif-om,
+  setuptools,
+  sympy,
 }:
 
 buildPythonPackage rec {
   pname = "cfn-lint";
-  version = "0.86.0";
+  version = "0.87.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -29,7 +30,7 @@ buildPythonPackage rec {
     owner = "aws-cloudformation";
     repo = "cfn-lint";
     rev = "refs/tags/v${version}";
-    hash = "sha256-QkxCQ8YPRZSqAidmPus4JCgzez6uuRWvcaqfZsvugtY=";
+    hash = "sha256-em6Vi9zIn8ikmcHVbljA1vr+R3t8ZpJ57p3Ix3bqMYU=";
   };
 
   propagatedBuildInputs = [
@@ -70,9 +71,7 @@ buildPythonPackage rec {
     "test_template_config"
   ];
 
-  pythonImportsCheck = [
-    "cfnlint"
-  ];
+  pythonImportsCheck = [ "cfnlint" ];
 
   meta = with lib; {
     description = "Checks cloudformation for practices and behaviour that could potentially be improved";
diff --git a/pkgs/development/python-modules/cfscrape/default.nix b/pkgs/development/python-modules/cfscrape/default.nix
index 0152506787033..4a1e79f898945 100644
--- a/pkgs/development/python-modules/cfscrape/default.nix
+++ b/pkgs/development/python-modules/cfscrape/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/Anorov/cloudflare-scrape";
-    description = "A Python module to bypass Cloudflare's anti-bot page";
+    description = "Python module to bypass Cloudflare's anti-bot page";
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/cftime/default.nix b/pkgs/development/python-modules/cftime/default.nix
index 4291f805d2c0d..739d828ef2e56 100644
--- a/pkgs/development/python-modules/cftime/default.nix
+++ b/pkgs/development/python-modules/cftime/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchPypi
-, numpy
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchPypi,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "cftime";
-  version = "1.6.3";
+  version = "1.6.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0Kayn3KhPwjgCLm+z/JHzHXISsshMzLt4Yh5xbaqTf0=";
+    hash = "sha256-4yVAYZN1in7WcwjetS5yd4KhnjhOGDN45/9iCYvgrtw=";
   };
 
   postPatch = ''
@@ -28,17 +29,11 @@ buildPythonPackage rec {
     numpy
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "cftime"
-  ];
+  pythonImportsCheck = [ "cftime" ];
 
   meta = with lib; {
     description = "Time-handling functionality from netcdf4-python";
diff --git a/pkgs/development/python-modules/cgen/default.nix b/pkgs/development/python-modules/cgen/default.nix
index 966a6b7ff159f..b0e85335e0b80 100644
--- a/pkgs/development/python-modules/cgen/default.nix
+++ b/pkgs/development/python-modules/cgen/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytools
-, numpy
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytools,
+  numpy,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -30,6 +31,6 @@ buildPythonPackage rec {
     description = "C/C++ source generation from an AST";
     homepage = "https://github.com/inducer/cgen";
     license = licenses.mit;
-    maintainers = [ ];
+    maintainers = with lib.maintainers; [ sigmanificient ];
   };
 }
diff --git a/pkgs/development/python-modules/cgroup-utils/default.nix b/pkgs/development/python-modules/cgroup-utils/default.nix
index 4dfd3901ef7f7..89b05b5f34080 100644
--- a/pkgs/development/python-modules/cgroup-utils/default.nix
+++ b/pkgs/development/python-modules/cgroup-utils/default.nix
@@ -1,11 +1,20 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pep8, nose }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pep8,
+  nose,
+}:
 
 buildPythonPackage rec {
   version = "0.8";
   format = "setuptools";
   pname = "cgroup-utils";
 
-  buildInputs = [ pep8 nose ];
+  buildInputs = [
+    pep8
+    nose
+  ];
   # Pep8 tests fail...
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/chacha20poly1305-reuseable/default.nix b/pkgs/development/python-modules/chacha20poly1305-reuseable/default.nix
index 429467d65e309..2916b8e7d7793 100644
--- a/pkgs/development/python-modules/chacha20poly1305-reuseable/default.nix
+++ b/pkgs/development/python-modules/chacha20poly1305-reuseable/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-
-# build-system
-, cython
-, poetry-core
-, setuptools
-
-# propagates
-, cryptography
-
-# tests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # build-system
+  cython,
+  poetry-core,
+  setuptools,
+
+  # propagates
+  cryptography,
+
+  # tests
+  pytestCheckHook,
 }:
 
 let
@@ -39,22 +40,16 @@ buildPythonPackage {
     setuptools
   ];
 
-  propagatedBuildInputs = [
-    cryptography
-  ];
+  propagatedBuildInputs = [ cryptography ];
 
-  pythonImportsCheck = [
-    "chacha20poly1305_reuseable"
-  ];
+  pythonImportsCheck = [ "chacha20poly1305_reuseable" ];
 
   preCheck = ''
     substituteInPlace pyproject.toml \
       --replace "--cov=chacha20poly1305_reuseable --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "ChaCha20Poly1305 that is reuseable for asyncio";
diff --git a/pkgs/development/python-modules/chacha20poly1305/default.nix b/pkgs/development/python-modules/chacha20poly1305/default.nix
index d4f88b0a7349c..0493f9b15ee02 100644
--- a/pkgs/development/python-modules/chacha20poly1305/default.nix
+++ b/pkgs/development/python-modules/chacha20poly1305/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,14 +20,12 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "chacha20poly1305"
-  ];
+  pythonImportsCheck = [ "chacha20poly1305" ];
 
   meta = with lib; {
     description = "Module that implements ChaCha20Poly1305";
     homepage = "https://github.com/ph4r05/py-chacha20poly1305";
     license = licenses.mit;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/chai/default.nix b/pkgs/development/python-modules/chai/default.nix
index 6146ec692c75f..756a2ab0868bc 100644
--- a/pkgs/development/python-modules/chai/default.nix
+++ b/pkgs/development/python-modules/chai/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "chai";
@@ -10,6 +14,14 @@ buildPythonPackage rec {
     sha256 = "ff8d2b6855f660cd23cd5ec79bd10264d39f24f6235773331b48e7fcd637d6cc";
   };
 
+  postPatch = ''
+    # python 3.12 compatibility
+    substituteInPlace tests/*.py \
+      --replace "assertEquals" "assertEqual" \
+      --replace "assertNotEquals" "assertNotEqual" \
+      --replace "assert_equals" "assert_equal"
+  '';
+
   meta = with lib; {
     description = "Mocking, stubbing and spying framework for python";
   };
diff --git a/pkgs/development/python-modules/chainer/default.nix b/pkgs/development/python-modules/chainer/default.nix
index 1f5be76e2d219..0ca1a23439418 100644
--- a/pkgs/development/python-modules/chainer/default.nix
+++ b/pkgs/development/python-modules/chainer/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, config
-, cudaSupport ? config.cudaSupport
-, cupy
-, fetchFromGitHub
-, filelock
-, mock
-, numpy
-, protobuf
-, pytestCheckHook
-, pythonOlder
-, six
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  config,
+  cudaSupport ? config.cudaSupport,
+  cupy,
+  fetchFromGitHub,
+  filelock,
+  mock,
+  numpy,
+  protobuf,
+  pytestCheckHook,
+  pythonOlder,
+  six,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -34,18 +35,14 @@ buildPythonPackage rec {
     protobuf
     six
     typing-extensions
-  ] ++ lib.optionals cudaSupport [
-    cupy
-  ];
+  ] ++ lib.optionals cudaSupport [ cupy ];
 
   nativeCheckInputs = [
     mock
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "tests/chainer_tests/utils_tests"
-  ];
+  pytestFlagsArray = [ "tests/chainer_tests/utils_tests" ];
 
   preCheck = ''
     # cf. https://github.com/chainer/chainer/issues/8621
@@ -61,12 +58,10 @@ buildPythonPackage rec {
     "ideep"
   ];
 
-  pythonImportsCheck = [
-    "chainer"
-  ];
+  pythonImportsCheck = [ "chainer" ];
 
   meta = with lib; {
-    description = "A flexible framework of neural networks for deep learning";
+    description = "Flexible framework of neural networks for deep learning";
     homepage = "https://chainer.org/";
     license = licenses.mit;
     maintainers = with maintainers; [ hyphon81 ];
diff --git a/pkgs/development/python-modules/chainmap/default.nix b/pkgs/development/python-modules/chainmap/default.nix
index 9b96d4bac94e4..3babd3d418972 100644
--- a/pkgs/development/python-modules/chainmap/default.nix
+++ b/pkgs/development/python-modules/chainmap/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "chainmap";
diff --git a/pkgs/development/python-modules/chainstream/default.nix b/pkgs/development/python-modules/chainstream/default.nix
index 00c10a22e9eeb..d5ee7775ac827 100644
--- a/pkgs/development/python-modules/chainstream/default.nix
+++ b/pkgs/development/python-modules/chainstream/default.nix
@@ -1,4 +1,8 @@
-{ lib, fetchPypi, python3Packages }:
+{
+  lib,
+  fetchPypi,
+  python3Packages,
+}:
 
 python3Packages.buildPythonPackage rec {
   pname = "chainstream";
@@ -13,9 +17,7 @@ python3Packages.buildPythonPackage rec {
     hash = "sha256-302P1BixEmkODm+qTLZwaWLktrlf9cEziQ/TIVfI07c=";
   };
 
-  pythonImportsCheck = [
-    "chainstream"
-  ];
+  pythonImportsCheck = [ "chainstream" ];
 
   meta = with lib; {
     description = "Chain I/O streams together into a single stream";
diff --git a/pkgs/development/python-modules/chalice/default.nix b/pkgs/development/python-modules/chalice/default.nix
index 25b9998433a6b..dec0cbca53cdf 100644
--- a/pkgs/development/python-modules/chalice/default.nix
+++ b/pkgs/development/python-modules/chalice/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, attrs
-, botocore
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, hypothesis
-, inquirer
-, jmespath
-, mock
-, mypy-extensions
-, pip
-, pytest7CheckHook
-, pythonOlder
-, pyyaml
-, requests
-, setuptools
-, six
-, typing-extensions
-, watchdog
-, websocket-client
-, wheel
+{
+  lib,
+  attrs,
+  botocore,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  hypothesis,
+  inquirer,
+  jmespath,
+  mock,
+  mypy-extensions,
+  pip,
+  pytest7CheckHook,
+  pythonOlder,
+  pyyaml,
+  requests,
+  setuptools,
+  six,
+  typing-extensions,
+  watchdog,
+  websocket-client,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -96,9 +97,7 @@ buildPythonPackage rec {
     "test_both_tar_bz2"
   ];
 
-  pythonImportsCheck = [
-    "chalice"
-  ];
+  pythonImportsCheck = [ "chalice" ];
 
   meta = with lib; {
     description = "Python Serverless Microframework for AWS";
diff --git a/pkgs/development/python-modules/chameleon/default.nix b/pkgs/development/python-modules/chameleon/default.nix
index 3c97002f5dcd1..d3f0d7a0f4272 100644
--- a/pkgs/development/python-modules/chameleon/default.nix
+++ b/pkgs/development/python-modules/chameleon/default.nix
@@ -1,39 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, importlib-metadata
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  importlib-metadata,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "chameleon";
-  version = "4.5.2";
+  version = "4.5.4";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "malthe";
     repo = "chameleon";
     rev = "refs/tags/${version}";
-    hash = "sha256-SVLKT6JeFUpF7gYkq3B7Lm9b9SG2qa6Ekp8i8xM0Xh0=";
+    hash = "sha256-TbXx3reRpUqnMVDsr38FM1SLgARjqXAduO3k87U5TIg=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
+  dependencies = lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "chameleon"
-  ];
+  pythonImportsCheck = [ "chameleon" ];
 
   meta = with lib; {
     changelog = "https://github.com/malthe/chameleon/blob/${version}/CHANGES.rst";
@@ -43,5 +36,4 @@ buildPythonPackage rec {
     license = licenses.bsd0;
     maintainers = with maintainers; [ domenkozar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/changefinder/default.nix b/pkgs/development/python-modules/changefinder/default.nix
new file mode 100644
index 0000000000000..b7f49ccce54f7
--- /dev/null
+++ b/pkgs/development/python-modules/changefinder/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, numpy
+, scipy
+, statsmodels
+}:
+
+buildPythonPackage {
+  pname = "changefinder";
+  version = "unstable-2024-03-24";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "shunsukeaihara";
+    repo = "changefinder";
+    rev = "58c8c32f127b9e46f9823f36221f194bdb6f3f8b";
+    hash = "sha256-1If0gIsMU8673fKSSHVMvDgR1UnYgM/4HiyvZJ9T6VM=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+    scipy
+    statsmodels
+  ];
+
+  pythonImportsCheck = [ "changefinder" ];
+
+  meta = with lib; {
+    description = "Online Change-Point Detection library based on ChangeFinder algorithm";
+    homepage = "https://github.com/shunsukeaihara/changefinder";
+    license = licenses.mit;
+    maintainers = with maintainers; [ raitobezarius ];
+  };
+}
diff --git a/pkgs/development/python-modules/channels-redis/default.nix b/pkgs/development/python-modules/channels-redis/default.nix
index a495b389603d0..73538fcdce4c8 100644
--- a/pkgs/development/python-modules/channels-redis/default.nix
+++ b/pkgs/development/python-modules/channels-redis/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aioredis
-, asgiref
-, buildPythonPackage
-, channels
-, cryptography
-, fetchFromGitHub
-, hiredis
-, msgpack
-, pythonOlder
-, redis
+{
+  lib,
+  aioredis,
+  asgiref,
+  buildPythonPackage,
+  channels,
+  cryptography,
+  fetchFromGitHub,
+  hiredis,
+  msgpack,
+  pythonOlder,
+  redis,
 }:
 
 buildPythonPackage rec {
@@ -38,18 +39,14 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    cryptography = [
-      cryptography
-    ];
+    cryptography = [ cryptography ];
   };
 
   # Fails with : ConnectionRefusedError: [Errno 111] Connect call failed ('127.0.0.1', 6379)
   # (even with a local Redis instance running)
   doCheck = false;
 
-  pythonImportsCheck = [
-    "channels_redis"
-  ];
+  pythonImportsCheck = [ "channels_redis" ];
 
   meta = with lib; {
     description = "Redis-backed ASGI channel layer implementation";
diff --git a/pkgs/development/python-modules/channels/default.nix b/pkgs/development/python-modules/channels/default.nix
index 083a79284f24b..f7a204f1f3e27 100644
--- a/pkgs/development/python-modules/channels/default.nix
+++ b/pkgs/development/python-modules/channels/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, asgiref
-, buildPythonPackage
-, daphne
-, django
-, fetchFromGitHub
-, async-timeout
-, pytest-asyncio
-, pytest-django
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  asgiref,
+  buildPythonPackage,
+  daphne,
+  django,
+  fetchFromGitHub,
+  async-timeout,
+  pytest-asyncio,
+  pytest-django,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    daphne = [
-      daphne
-    ];
+    daphne = [ daphne ];
   };
 
   nativeCheckInputs = [
@@ -43,9 +42,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ passthru.optional-dependencies.daphne;
 
-  pythonImportsCheck = [
-    "channels"
-  ];
+  pythonImportsCheck = [ "channels" ];
 
   meta = with lib; {
     description = "Brings event-driven capabilities to Django with a channel system";
diff --git a/pkgs/development/python-modules/character-encoding-utils/default.nix b/pkgs/development/python-modules/character-encoding-utils/default.nix
index dd0e3b60fe1f4..83d01916d3c63 100644
--- a/pkgs/development/python-modules/character-encoding-utils/default.nix
+++ b/pkgs/development/python-modules/character-encoding-utils/default.nix
@@ -1,33 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, nix-update-script
-, hatch-vcs
-, hatchling
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytestCheckHook,
+  nix-update-script,
+  hatchling,
 }:
 
 buildPythonPackage rec {
   pname = "character-encoding-utils";
-  version = "0.0.6";
+  version = "0.0.8";
+  pyproject = true;
 
-  disabled = pythonOlder "3.11";
+  disabled = pythonOlder "3.10";
 
   src = fetchPypi {
     pname = "character_encoding_utils";
     inherit version;
-    hash = "sha256-ugzWiSpa/xxlraVyVPTSq/uxPg11kOyePgb1cmzX3ug=";
+    hash = "sha256-UXX4L/x7fP37ZEFDCPc0KRNyx47xvwY0Jz+lfxzUulg=";
   };
 
-  format = "pyproject";
+  build-system = [ hatchling ];
 
-  nativeBuildInputs = [
-    hatch-vcs
-    hatchling
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  checkInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [ "character_encoding_utils" ];
 
   passthru.updateScript = nix-update-script { };
 
@@ -36,6 +34,9 @@ buildPythonPackage rec {
     description = "Some character encoding utils";
     platforms = lib.platforms.all;
     license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ h7x4 ];
+    maintainers = with lib.maintainers; [
+      TakWolf
+      h7x4
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/characteristic/default.nix b/pkgs/development/python-modules/characteristic/default.nix
index d63c247b300bb..93e18a0682444 100644
--- a/pkgs/development/python-modules/characteristic/default.nix
+++ b/pkgs/development/python-modules/characteristic/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, fetchPypi
-, pytest
+{
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/chardet/default.nix b/pkgs/development/python-modules/chardet/default.nix
index f0170eb641e3e..c4759f316d8ef 100644
--- a/pkgs/development/python-modules/chardet/default.nix
+++ b/pkgs/development/python-modules/chardet/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hypothesis
-, pythonOlder
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hypothesis,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-Gztv9HmoxBS8P6LAhSmVaVxKAm3NbQYzst0JLKOcHPc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     hypothesis
diff --git a/pkgs/development/python-modules/charset-normalizer/default.nix b/pkgs/development/python-modules/charset-normalizer/default.nix
index 2a6a13dc0bf88..90abf29a7df79 100644
--- a/pkgs/development/python-modules/charset-normalizer/default.nix
+++ b/pkgs/development/python-modules/charset-normalizer/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -26,15 +27,13 @@ buildPythonPackage rec {
       --replace " --cov=charset_normalizer --cov-report=term-missing" ""
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "charset_normalizer"
-  ];
+  pythonImportsCheck = [ "charset_normalizer" ];
 
-  passthru.tests = { inherit aiohttp requests; };
+  passthru.tests = {
+    inherit aiohttp requests;
+  };
 
   meta = with lib; {
     description = "Python module for encoding and language detection";
diff --git a/pkgs/development/python-modules/chart-studio/default.nix b/pkgs/development/python-modules/chart-studio/default.nix
index 4f78d8728120c..542de4e844ca5 100644
--- a/pkgs/development/python-modules/chart-studio/default.nix
+++ b/pkgs/development/python-modules/chart-studio/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, nose
-, plotly
-, pytest
-, requests
-, retrying
-, setuptools
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  nose,
+  plotly,
+  pytest,
+  requests,
+  retrying,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "chart-studio";
-  version = "5.20.0";
+  version = "5.22.0";
   pyproject = true;
 
   # chart-studio was split from plotly
@@ -21,14 +22,12 @@ buildPythonPackage rec {
     owner = "plotly";
     repo = "plotly.py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-i//LKTNmoIrusBnpfSGc9cDijPxg/dY/7fumV3kfTAY=";
+    hash = "sha256-cEm0vLQ4PAVxvplqK+yayxLpNCvyfZtjZva0Bl2Sdfs=";
   };
 
   sourceRoot = "${src.name}/packages/python/chart-studio";
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     plotly
@@ -37,7 +36,11 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [ mock nose pytest ];
+  nativeCheckInputs = [
+    mock
+    nose
+    pytest
+  ];
   # most tests talk to a service
   checkPhase = ''
     HOME=$TMPDIR pytest chart_studio/tests/test_core chart_studio/tests/test_plot_ly/test_api
diff --git a/pkgs/development/python-modules/chat-downloader/default.nix b/pkgs/development/python-modules/chat-downloader/default.nix
index 32bf0a40da340..95e09e8db6e00 100644
--- a/pkgs/development/python-modules/chat-downloader/default.nix
+++ b/pkgs/development/python-modules/chat-downloader/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
-, isodate
-, docstring-parser
-, colorlog
-, websocket-client
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  isodate,
+  docstring-parser,
+  colorlog,
+  websocket-client,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -35,7 +36,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "chat_downloader" ];
 
   meta = with lib; {
-    description = "A simple tool used to retrieve chat messages from livestreams, videos, clips and past broadcasts";
+    description = "Simple tool used to retrieve chat messages from livestreams, videos, clips and past broadcasts";
     mainProgram = "chat_downloader";
     homepage = "https://github.com/xenova/chat-downloader";
     changelog = "https://github.com/xenova/chat-downloader/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/check-manifest/default.nix b/pkgs/development/python-modules/check-manifest/default.nix
index 1533329d5572e..533c05177689e 100644
--- a/pkgs/development/python-modules/check-manifest/default.nix
+++ b/pkgs/development/python-modules/check-manifest/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, breezy
-, build
-, buildPythonPackage
-, fetchPypi
-, git
-, pep517
-, pytestCheckHook
-, tomli
-, pythonOlder
+{
+  lib,
+  breezy,
+  build,
+  buildPythonPackage,
+  fetchPypi,
+  git,
+  pep517,
+  pytestCheckHook,
+  tomli,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,27 +26,21 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     build
     pep517
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   nativeCheckInputs = [
     git
     pytestCheckHook
   ];
 
-  checkInputs = [
-    breezy
-  ];
+  checkInputs = [ breezy ];
 
   disabledTests = [
     # Test wants to setup a venv
     "test_build_sdist_pep517_isolated"
   ];
 
-  pythonImportsCheck = [
-    "check_manifest"
-  ];
+  pythonImportsCheck = [ "check_manifest" ];
 
   meta = with lib; {
     description = "Check MANIFEST.in in a Python source package for completeness";
diff --git a/pkgs/development/python-modules/checkdmarc/default.nix b/pkgs/development/python-modules/checkdmarc/default.nix
index c39b704079316..bed41e7d9f471 100644
--- a/pkgs/development/python-modules/checkdmarc/default.nix
+++ b/pkgs/development/python-modules/checkdmarc/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, dnspython
-, expiringdict
-, fetchFromGitHub
-, hatchling
-, publicsuffixlist
-, pyleri
-, iana-etc
-, pytestCheckHook
-, pythonOlder
-, requests
-, timeout-decorator
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  dnspython,
+  expiringdict,
+  fetchFromGitHub,
+  hatchling,
+  publicsuffixlist,
+  pyleri,
+  iana-etc,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  timeout-decorator,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     hash = "sha256-NNB5dYQzzdNapjP4mtpCW08BzfZ+FFRESUtpxCOzrdk=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     cryptography
@@ -42,17 +41,11 @@ buildPythonPackage rec {
     timeout-decorator
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "checkdmarc"
-  ];
+  pythonImportsCheck = [ "checkdmarc" ];
 
-  pytestFlagsArray = [
-    "tests.py"
-  ];
+  pytestFlagsArray = [ "tests.py" ];
 
   disabledTests = [
     # Tests require network access
@@ -65,7 +58,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A parser for SPF and DMARC DNS records";
+    description = "Parser for SPF and DMARC DNS records";
     mainProgram = "checkdmarc";
     homepage = "https://github.com/domainaware/checkdmarc";
     changelog = "https://github.com/domainaware/checkdmarc/blob/${version}/CHANGELOG.md";
@@ -73,4 +66,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ fab ];
   };
 }
-
diff --git a/pkgs/development/python-modules/checksumdir/default.nix b/pkgs/development/python-modules/checksumdir/default.nix
index 78a24bb2950a4..ae54695e8a54a 100644
--- a/pkgs/development/python-modules/checksumdir/default.nix
+++ b/pkgs/development/python-modules/checksumdir/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-PO8sRGFQ1Dt/UYJuFH6Y3EaQVaS+4DJlOQtvF8ZmBWQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   doCheck = false; # Package does not contain tests
   pythonImportsCheck = [ "checksumdir" ];
diff --git a/pkgs/development/python-modules/cheetah3/default.nix b/pkgs/development/python-modules/cheetah3/default.nix
index bb1a3da46cf56..6c89ea73cdbf5 100644
--- a/pkgs/development/python-modules/cheetah3/default.nix
+++ b/pkgs/development/python-modules/cheetah3/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,12 +21,10 @@ buildPythonPackage rec {
 
   doCheck = false; # Circular dependency
 
-  pythonImportsCheck = [
-    "Cheetah"
-  ];
+  pythonImportsCheck = [ "Cheetah" ];
 
   meta = with lib; {
-    description = "A template engine and code generation tool";
+    description = "Template engine and code generation tool";
     homepage = "http://www.cheetahtemplate.org/";
     changelog = "https://github.com/CheetahTemplate3/cheetah3/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/cheroot/default.nix b/pkgs/development/python-modules/cheroot/default.nix
index 602afd0f755f7..b4d7daab17aac 100644
--- a/pkgs/development/python-modules/cheroot/default.nix
+++ b/pkgs/development/python-modules/cheroot/default.nix
@@ -1,32 +1,33 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, jaraco-functools
-, jaraco-text
-, more-itertools
-, portend
-, pypytools
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-toolbelt
-, requests-unixsocket
-, setuptools-scm
-, six
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  jaraco-functools,
+  jaraco-text,
+  more-itertools,
+  portend,
+  pypytools,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-toolbelt,
+  requests-unixsocket,
+  setuptools-scm,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "cheroot";
-  version = "10.0.0";
+  version = "10.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-WcShh3/vmWmzw8CAyqrzd+J4CRlDeFP8DTKp30CzEfA=";
+    hash = "sha256-4LgveXZY0muGE+yOtWPDsI5r1qeSHp1Qib0Rda0bF0A=";
   };
 
   # remove setuptools-scm-git-archive dependency
@@ -40,9 +41,7 @@ buildPythonPackage rec {
       --replace "setuptools_scm_git_archive>=1.0" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     jaraco-functools
@@ -72,14 +71,16 @@ buildPythonPackage rec {
     rm pytest.ini
   '';
 
-  disabledTests = [
-    "tls" # touches network
-    "peercreds_unix_sock" # test urls no longer allowed
-  ] ++ lib.optionals stdenv.isDarwin [
-    "http_over_https_error"
-    "bind_addr_unix"
-    "test_ssl_env"
-  ];
+  disabledTests =
+    [
+      "tls" # touches network
+      "peercreds_unix_sock" # test urls no longer allowed
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      "http_over_https_error"
+      "bind_addr_unix"
+      "test_ssl_env"
+    ];
 
   disabledTestPaths = [
     # avoid attempting to use 3 packages not available on nixpkgs
@@ -89,9 +90,7 @@ buildPythonPackage rec {
     "cheroot/test/test_ssl.py"
   ];
 
-  pythonImportsCheck = [
-    "cheroot"
-  ];
+  pythonImportsCheck = [ "cheroot" ];
 
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
diff --git a/pkgs/development/python-modules/cherrypy-cors/default.nix b/pkgs/development/python-modules/cherrypy-cors/default.nix
index 72af66bbef75a..a151c9d8fd15e 100644
--- a/pkgs/development/python-modules/cherrypy-cors/default.nix
+++ b/pkgs/development/python-modules/cherrypy-cors/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools
-, setuptools-scm
-, httpagentparser
-, cherrypy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  httpagentparser,
+  cherrypy,
+  pytestCheckHook,
 }:
 buildPythonPackage rec {
   pname = "cherrypy-cors";
@@ -32,9 +33,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "cherrypy_cors" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "CORS support for CherryPy";
diff --git a/pkgs/development/python-modules/cherrypy/default.nix b/pkgs/development/python-modules/cherrypy/default.nix
index 6d1fffbdedc95..f0f6ea8edcdeb 100644
--- a/pkgs/development/python-modules/cherrypy/default.nix
+++ b/pkgs/development/python-modules/cherrypy/default.nix
@@ -1,53 +1,41 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, cheroot
-, fetchpatch
-, fetchPypi
-, jaraco-collections
-, more-itertools
-, objgraph
-, path
-, portend
-, pyopenssl
-, pytest-forked
-, pytest-services
-, pytestCheckHook
-, python-memcached
-, pythonAtLeast
-, pythonOlder
-, requests-toolbelt
-, routes
-, setuptools-scm
-, simplejson
-, zc-lockfile
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cheroot,
+  fetchPypi,
+  jaraco-collections,
+  more-itertools,
+  objgraph,
+  path,
+  portend,
+  pyopenssl,
+  pytest-forked,
+  pytest-services,
+  pytestCheckHook,
+  python-memcached,
+  pythonAtLeast,
+  pythonOlder,
+  requests-toolbelt,
+  routes,
+  setuptools-scm,
+  simplejson,
+  zc-lockfile,
 }:
 
 buildPythonPackage rec {
   pname = "cherrypy";
-  version = "18.9.0";
+  version = "18.10.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    pname = "CherryPy";
-    inherit version;
-    hash = "sha256-awbBkc5xqGRh8wVyoatX/8CfQxQ7qOQsEDx7M0ciDrE=";
+    inherit pname version;
+    hash = "sha256-bHDnjuETAOiyHAdnxUKuaxAqScrFz9Tj4xPXu5B8WJE=";
   };
 
-  patches = [
-    # Replace distutils.spawn.find_executable with shutil.which, https://github.com/cherrypy/cherrypy/pull/2023
-    (fetchpatch {
-      name = "remove-distutils.patch";
-      url = "https://github.com/cherrypy/cherrypy/commit/8a19dd5f1e712a326a3613b17e6fc900012ed09a.patch";
-      hash = "sha256-fXECX0CdU74usiq9GEkIG9CF+dueszblT4qOeF6B700=";
-    })
-  ];
-
   postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace-fail '"setuptools_scm_git_archive >= 1.1",' ""
     # Disable doctest plugin because times out
     substituteInPlace pytest.ini \
       --replace-fail "--doctest-modules" "-vvv" \
@@ -56,11 +44,9 @@ buildPythonPackage rec {
     sed -i "/--cov/d" pytest.ini
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     cheroot
     jaraco-collections
     more-itertools
@@ -86,45 +72,42 @@ buildPythonPackage rec {
     "ignore::DeprecationWarning"
   ];
 
-  disabledTests = [
-    # Keyboard interrupt ends test suite run
-    "KeyboardInterrupt"
-    # daemonize and autoreload tests have issue with sockets within sandbox
-    "daemonize"
-    "Autoreload"
-
-    "test_antistampede"
-    "test_file_stream"
-    "test_basic_request"
-    "test_3_Redirect"
-    "test_4_File_deletion"
-  ] ++ lib.optionals (pythonAtLeast "3.11") [
-    "testErrorHandling"
-    "testHookErrors"
-    "test_HTTP10_KeepAlive"
-    "test_No_Message_Body"
-    "test_HTTP11_Timeout"
-    "testGzip"
-    "test_malformed_header"
-    "test_no_content_length"
-    "test_post_filename_with_special_characters"
-    "test_post_multipart"
-    "test_iterator"
-    "test_1_Ram_Concurrency"
-    "test_2_File_Concurrency"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_block"
-  ];
-
-  disabledTestPaths = lib.optionals stdenv.isDarwin [
-    "cherrypy/test/test_config_server.py"
-  ];
+  disabledTests =
+    [
+      # Keyboard interrupt ends test suite run
+      "KeyboardInterrupt"
+      # daemonize and autoreload tests have issue with sockets within sandbox
+      "daemonize"
+      "Autoreload"
+
+      "test_antistampede"
+      "test_file_stream"
+      "test_basic_request"
+      "test_3_Redirect"
+      "test_4_File_deletion"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.11") [
+      "testErrorHandling"
+      "testHookErrors"
+      "test_HTTP10_KeepAlive"
+      "test_No_Message_Body"
+      "test_HTTP11_Timeout"
+      "testGzip"
+      "test_malformed_header"
+      "test_no_content_length"
+      "test_post_filename_with_special_characters"
+      "test_post_multipart"
+      "test_iterator"
+      "test_1_Ram_Concurrency"
+      "test_2_File_Concurrency"
+    ]
+    ++ lib.optionals stdenv.isDarwin [ "test_block" ];
+
+  disabledTestPaths = lib.optionals stdenv.isDarwin [ "cherrypy/test/test_config_server.py" ];
 
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [
-    "cherrypy"
-  ];
+  pythonImportsCheck = [ "cherrypy" ];
 
   passthru.optional-dependencies = {
     json = [ simplejson ];
@@ -132,7 +115,9 @@ buildPythonPackage rec {
     routes_dispatcher = [ routes ];
     ssl = [ pyopenssl ];
     # not packaged yet
-    xcgi = [ /* flup */ ];
+    xcgi = [
+      # flup
+    ];
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/chess/default.nix b/pkgs/development/python-modules/chess/default.nix
index 5e32d74b43793..50cb9306969f5 100644
--- a/pkgs/development/python-modules/chess/default.nix
+++ b/pkgs/development/python-modules/chess/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-jfPg1W9Qp0DlAbMXaFqZ6Ri2zMOW6EKUHwi7Azn/yl0=";
   };
 
-  pythonImportsCheck = [
-    "chess"
-  ];
+  pythonImportsCheck = [ "chess" ];
 
   checkPhase = ''
     ${python.interpreter} ./test.py -v
   '';
 
   meta = with lib; {
-    description = "A chess library with move generation, move validation, and support for common formats";
+    description = "Chess library with move generation, move validation, and support for common formats";
     homepage = "https://github.com/niklasf/python-chess";
     changelog = "https://github.com/niklasf/python-chess/blob/v${version}/CHANGELOG.rst";
     license = licenses.gpl3Plus;
diff --git a/pkgs/development/python-modules/chevron/default.nix b/pkgs/development/python-modules/chevron/default.nix
index 6a122ecf31e3a..3a178e38c786a 100644
--- a/pkgs/development/python-modules/chevron/default.nix
+++ b/pkgs/development/python-modules/chevron/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
 }:
 
 buildPythonPackage {
@@ -23,7 +24,7 @@ buildPythonPackage {
 
   meta = with lib; {
     homepage = "https://github.com/noahmorrison/chevron";
-    description = "A python implementation of the mustache templating language";
+    description = "Python implementation of the mustache templating language";
     mainProgram = "chevron";
     license = licenses.mit;
     maintainers = with maintainers; [ dhkl ];
diff --git a/pkgs/development/python-modules/chex/default.nix b/pkgs/development/python-modules/chex/default.nix
index 08ce0916c25ea..803c352c71549 100644
--- a/pkgs/development/python-modules/chex/default.nix
+++ b/pkgs/development/python-modules/chex/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, absl-py
-, cloudpickle
-, dm-tree
-, jax
-, jaxlib
-, numpy
-, pytestCheckHook
-, toolz
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  absl-py,
+  cloudpickle,
+  dm-tree,
+  jax,
+  jaxlib,
+  numpy,
+  pytestCheckHook,
+  toolz,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     hash = "sha256-Z5Ns4fG5pC99I4xdGjDMKX6YZpTtd1y0TWcIOtr7dug=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     absl-py
@@ -41,9 +40,7 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  pythonImportsCheck = [
-    "chex"
-  ];
+  pythonImportsCheck = [ "chex" ];
 
   nativeCheckInputs = [
     cloudpickle
@@ -52,7 +49,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Chex is a library of utilities for helping to write reliable JAX code.";
+    description = "Chex is a library of utilities for helping to write reliable JAX code";
     homepage = "https://github.com/deepmind/chex";
     changelog = "https://github.com/google-deepmind/chex/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/chirpstack-api/default.nix b/pkgs/development/python-modules/chirpstack-api/default.nix
index 141a5f349b70e..38ea1d8739cfc 100644
--- a/pkgs/development/python-modules/chirpstack-api/default.nix
+++ b/pkgs/development/python-modules/chirpstack-api/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, google-api-core
-, grpcio
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  google-api-core,
+  grpcio,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "chirpstack_api"
-  ];
+  pythonImportsCheck = [ "chirpstack_api" ];
 
   meta = with lib; {
     description = "ChirpStack gRPC API message and service wrappers for Python";
diff --git a/pkgs/development/python-modules/chispa/default.nix b/pkgs/development/python-modules/chispa/default.nix
index 37e804c718942..980f02b4229db 100644
--- a/pkgs/development/python-modules/chispa/default.nix
+++ b/pkgs/development/python-modules/chispa/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,13 +21,9 @@ buildPythonPackage rec {
     hash = "sha256-r3/Uae/Bu/+ZpWt19jetfIRpew1hBB24WWQRJIcYqFs=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  propagatedBuildInputs = [ setuptools ];
 
   # Tests require a spark installation
   doCheck = false;
diff --git a/pkgs/development/python-modules/chroma-hnswlib/default.nix b/pkgs/development/python-modules/chroma-hnswlib/default.nix
index 31f884e53ba86..845f2064f1cd3 100644
--- a/pkgs/development/python-modules/chroma-hnswlib/default.nix
+++ b/pkgs/development/python-modules/chroma-hnswlib/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, pybind11
-, setuptools
-, wheel
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  pybind11,
+  setuptools,
+  wheel,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,13 +31,9 @@ buildPythonPackage rec {
     wheel
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "hnswlib"
-  ];
+  pythonImportsCheck = [ "hnswlib" ];
 
   meta = with lib; {
     description = "Header-only C++/python library for fast approximate nearest neighbors";
diff --git a/pkgs/development/python-modules/chromadb/default.nix b/pkgs/development/python-modules/chromadb/default.nix
index 2042758efd8af..50cae5fb0108a 100644
--- a/pkgs/development/python-modules/chromadb/default.nix
+++ b/pkgs/development/python-modules/chromadb/default.nix
@@ -10,6 +10,7 @@
   fastapi,
   fetchFromGitHub,
   grpcio,
+  httpx,
   hypothesis,
   importlib-resources,
   kubernetes,
@@ -32,7 +33,6 @@
   pytest-asyncio,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
   pyyaml,
   requests,
   rustc,
@@ -50,7 +50,7 @@
 
 buildPythonPackage rec {
   pname = "chromadb";
-  version = "0.5.0";
+  version = "0.5.3";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -59,13 +59,13 @@ buildPythonPackage rec {
     owner = "chroma-core";
     repo = "chroma";
     rev = "refs/tags/${version}";
-    hash = "sha256-gM+fexjwifF3evR8jZvMbIDz655RFKPUizrsB2q5tbw=";
+    hash = "sha256-czDL2b+Jj7mrYZCTfnaZArkOHBaWyTV0BTE2wvykHps=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-zyiFv/gswGupm7Y8BhviklqJzM914v0QyUsRwbGKZ48=";
+    hash = "sha256-eTVT1yowuDsajjceWojdUdX466FKneUt1i5QipBFdp4=";
   };
 
   pythonRelaxDeps = [ "orjson" ];
@@ -74,7 +74,6 @@ buildPythonPackage rec {
     cargo
     pkg-config
     protobuf
-    pythonRelaxDepsHook
     rustc
     rustPlatform.cargoSetupHook
     setuptools
@@ -92,6 +91,7 @@ buildPythonPackage rec {
     chroma-hnswlib
     fastapi
     grpcio
+    httpx
     importlib-resources
     kubernetes
     mmh3
@@ -132,27 +132,35 @@ buildPythonPackage rec {
   pytestFlagsArray = [ "-x" ];
 
   preCheck = ''
+    (($(ulimit -n) < 1024)) && ulimit -n 1024
     export HOME=$(mktemp -d)
   '';
 
+  disabledTests = [
+    # flaky / timing sensitive
+    "test_fastapi_server_token_authn_allows_when_it_should_allow"
+  ];
+
   disabledTestPaths = [
     # Tests require network access
-    "chromadb/test/property/test_cross_version_persist.py"
     "chromadb/test/auth/test_simple_rbac_authz.py"
+    "chromadb/test/db/test_system.py"
     "chromadb/test/ef/test_default_ef.py"
-    "chromadb/test/test_api.py"
     "chromadb/test/property/"
+    "chromadb/test/property/test_cross_version_persist.py"
     "chromadb/test/stress/"
+    "chromadb/test/test_api.py"
   ];
 
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "The AI-native open-source embedding database";
-    mainProgram = "chroma";
+    description = "AI-native open-source embedding database";
     homepage = "https://github.com/chroma-core/chroma";
     changelog = "https://github.com/chroma-core/chroma/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "chroma";
+    broken = stdenv.isLinux && stdenv.isAarch64;
   };
 }
diff --git a/pkgs/development/python-modules/chromaprint/default.nix b/pkgs/development/python-modules/chromaprint/default.nix
index b439a4da79a5a..bdf78d43b4685 100644
--- a/pkgs/development/python-modules/chromaprint/default.nix
+++ b/pkgs/development/python-modules/chromaprint/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, m2r
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  m2r,
 }:
 
 buildPythonPackage rec {
@@ -28,6 +29,9 @@ buildPythonPackage rec {
     description = "Facilitate effortless color terminal output";
     homepage = "https://pypi.org/project/${pname}/";
     license = licenses.mit;
-    maintainers = with maintainers; [ dschrempf peterhoeg ];
+    maintainers = with maintainers; [
+      dschrempf
+      peterhoeg
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/ci-info/default.nix b/pkgs/development/python-modules/ci-info/default.nix
index 8c2fc9c4ff3b5..4c603940a1440 100644
--- a/pkgs/development/python-modules/ci-info/default.nix
+++ b/pkgs/development/python-modules/ci-info/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, isPy27, fetchPypi, pytest, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  isPy27,
+  fetchPypi,
+  pytest,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   version = "0.3.0";
@@ -12,9 +19,12 @@ buildPythonPackage rec {
     hash = "sha256-H9UMvUAfKa3/7rGLBIniMtFqwadFisa8MW3qtq5TX7A=";
   };
 
-  nativeCheckInputs = [ pytest pytestCheckHook ];
+  nativeCheckInputs = [
+    pytest
+    pytestCheckHook
+  ];
 
-  doCheck = false;  # both tests access network
+  doCheck = false; # both tests access network
 
   pythonImportsCheck = [ "ci_info" ];
 
diff --git a/pkgs/development/python-modules/ci-py/default.nix b/pkgs/development/python-modules/ci-py/default.nix
index b7e6c5ff8060e..9abd0d04b29b6 100644
--- a/pkgs/development/python-modules/ci-py/default.nix
+++ b/pkgs/development/python-modules/ci-py/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
       --replace "'pytest-runner', " ""
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ci"
-  ];
+  pythonImportsCheck = [ "ci" ];
 
   meta = with lib; {
     description = "Library for working with Continuous Integration services";
diff --git a/pkgs/development/python-modules/cinemagoer/default.nix b/pkgs/development/python-modules/cinemagoer/default.nix
index 403ee6dafb616..3aeb0be954242 100644
--- a/pkgs/development/python-modules/cinemagoer/default.nix
+++ b/pkgs/development/python-modules/cinemagoer/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, lxml
-, sqlalchemy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  lxml,
+  sqlalchemy,
 }:
 
 buildPythonPackage rec {
@@ -26,7 +27,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "imdb" ]; # Former "imdbpy", upstream is yet to rename here
 
   meta = with lib; {
-    description = "A Python package for retrieving and managing the data of the IMDb movie database about movies and people";
+    description = "Python package for retrieving and managing the data of the IMDb movie database about movies and people";
     downloadPage = "https://github.com/cinemagoer/cinemagoer/";
     homepage = "https://cinemagoer.github.io/";
     license = licenses.gpl2Only;
diff --git a/pkgs/development/python-modules/circuit-webhook/default.nix b/pkgs/development/python-modules/circuit-webhook/default.nix
index 895c6803142e0..cca4277525b27 100644
--- a/pkgs/development/python-modules/circuit-webhook/default.nix
+++ b/pkgs/development/python-modules/circuit-webhook/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "circuit_webhook"
-  ];
+  pythonImportsCheck = [ "circuit_webhook" ];
 
   meta = with lib; {
     description = "Module for Unify Circuit API webhooks";
diff --git a/pkgs/development/python-modules/circuitbreaker/default.nix b/pkgs/development/python-modules/circuitbreaker/default.nix
index 9218d82847ccc..da66b2b45108b 100644
--- a/pkgs/development/python-modules/circuitbreaker/default.nix
+++ b/pkgs/development/python-modules/circuitbreaker/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pytest-asyncio
-, pytest-mock
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pytest-asyncio,
+  pytest-mock,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     pytest-mock
   ];
 
-  pythonImportsCheck = [
-    "circuitbreaker"
-  ];
+  pythonImportsCheck = [ "circuitbreaker" ];
 
   meta = with lib; {
     description = "Python Circuit Breaker implementation";
diff --git a/pkgs/development/python-modules/circus/default.nix b/pkgs/development/python-modules/circus/default.nix
index 95d29a4401bcd..9f36998e98678 100644
--- a/pkgs/development/python-modules/circus/default.nix
+++ b/pkgs/development/python-modules/circus/default.nix
@@ -1,30 +1,32 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, psutil
-, pytestCheckHook
-, pyyaml
-, pyzmq
-, tornado
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  psutil,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  pyzmq,
+  tornado,
 }:
 
 buildPythonPackage rec {
   pname = "circus";
   version = "0.18.0";
-  format = "pyproject";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-GTzoIk4GjO1mckz0gxBvtmdLUaV1g6waDn7Xp+6Mcas=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  build-system = [ flit-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     psutil
     pyzmq
     tornado
@@ -42,38 +44,39 @@ buildPythonPackage rec {
 
   disabledTests = [
     # these tests raise circus.tests.support.TimeoutException
-    "test_reload1"
-    "test_reload2"
+    "test_add_start"
+    "test_add"
+    "test_command_already_running"
+    "test_dummy"
+    "test_exits_within_graceful_timeout"
+    "test_full_stats"
+    "test_handler"
+    "test_handler"
+    "test_inherited"
+    "test_kills_after_graceful_timeout"
+    "test_launch_cli"
+    "test_max_age"
     "test_reload_sequential"
     "test_reload_uppercase"
     "test_reload_wid_1_worker"
     "test_reload_wid_4_workers"
-    "test_add"
-    "test_add_start"
-    "test_command_already_running"
-    "test_launch_cli"
-    "test_handler"
+    "test_reload1"
+    "test_reload2"
     "test_resource_watcher_max_cpu"
-    "test_resource_watcher_max_mem"
     "test_resource_watcher_max_mem_abs"
+    "test_resource_watcher_max_mem"
     "test_resource_watcher_min_cpu"
-    "test_resource_watcher_min_mem"
     "test_resource_watcher_min_mem_abs"
-    "test_full_stats"
-    "test_watchdog_discovery_found"
-    "test_watchdog_discovery_not_found"
-    "test_dummy"
-    "test_handler"
-    "test_stdin_socket"
-    "test_stop_and_restart"
-    "test_stream"
-    "test_inherited"
+    "test_resource_watcher_min_mem"
     "test_set_before_launch"
     "test_set_by_arbiter"
-    "test_max_age"
     "test_signal"
-    "test_exits_within_graceful_timeout"
-    "test_kills_after_graceful_timeout"
+    "test_stdin_socket"
+    "test_stop_and_restart"
+    "test_stream"
+    "test_venv"
+    "test_watchdog_discovery_found"
+    "test_watchdog_discovery_not_found"
     # this test requires socket communication
     "test_plugins"
   ];
@@ -81,8 +84,10 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "circus" ];
 
   meta = with lib; {
-    description = "A process and socket manager";
+    description = "Process and socket manager";
     homepage = "https://github.com/circus-tent/circus";
+    changelog = "https://github.com/circus-tent/circus/releases/tag/${version}";
     license = licenses.asl20;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/cirq-aqt/default.nix b/pkgs/development/python-modules/cirq-aqt/default.nix
index bac507091feb4..1bead28588e3d 100644
--- a/pkgs/development/python-modules/cirq-aqt/default.nix
+++ b/pkgs/development/python-modules/cirq-aqt/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, cirq-core
-, requests
-, pytestCheckHook
+{
+  buildPythonPackage,
+  cirq-core,
+  requests,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # cirq's importlib hook doesn't work here
   #pythonImportsCheck = [ "cirq_aqt" ];
diff --git a/pkgs/development/python-modules/cirq-core/default.nix b/pkgs/development/python-modules/cirq-core/default.nix
index 0563c2f1a71c1..e12dc6f3255e2 100644
--- a/pkgs/development/python-modules/cirq-core/default.nix
+++ b/pkgs/development/python-modules/cirq-core/default.nix
@@ -1,36 +1,38 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, duet
-, matplotlib
-, networkx
-, numpy
-, pandas
-, requests
-, scipy
-, sortedcontainers
-, sympy
-, tqdm
-, typing-extensions
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  attrs,
+  duet,
+  matplotlib,
+  networkx,
+  numpy,
+  pandas,
+  requests,
+  scipy,
+  sortedcontainers,
+  sympy,
+  tqdm,
+  typing-extensions,
   # Contrib requirements
-, withContribRequires ? false
-, autoray ? null
-, opt-einsum
-, ply
-, pylatex ? null
-, pyquil ? null
-, quimb ? null
+  withContribRequires ? false,
+  autoray ? null,
+  opt-einsum,
+  ply,
+  pylatex ? null,
+  pyquil ? null,
+  quimb ? null,
   # test inputs
-, pytestCheckHook
-, freezegun
-, pytest-asyncio
+  pytestCheckHook,
+  freezegun,
+  pytest-asyncio,
 }:
 
 buildPythonPackage rec {
   pname = "cirq-core";
-  version = "1.3.0";
+  version = "1.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
@@ -39,7 +41,7 @@ buildPythonPackage rec {
     owner = "quantumlib";
     repo = "cirq";
     rev = "refs/tags/v${version}";
-    hash = "sha256-JAJJciFg3BuRha1wTKixtKWcYy3NA2mNpniPyPHTTe8=";
+    hash = "sha256-KHwVq0qVtc8E9i2lugILYNwk9awq952w0x4DM+HG7Pg=";
   };
 
   sourceRoot = "${src.name}/${pname}";
@@ -47,28 +49,31 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace requirements.txt \
       --replace "matplotlib~=3.0" "matplotlib"
-   '';
+  '';
 
-  propagatedBuildInputs = [
-    duet
-    matplotlib
-    networkx
-    numpy
-    pandas
-    requests
-    scipy
-    sortedcontainers
-    sympy
-    tqdm
-    typing-extensions
-  ] ++ lib.optionals withContribRequires [
-    autoray
-    opt-einsum
-    ply
-    pylatex
-    pyquil
-    quimb
-  ];
+  propagatedBuildInputs =
+    [
+      attrs
+      duet
+      matplotlib
+      networkx
+      numpy
+      pandas
+      requests
+      scipy
+      sortedcontainers
+      sympy
+      tqdm
+      typing-extensions
+    ]
+    ++ lib.optionals withContribRequires [
+      autoray
+      opt-einsum
+      ply
+      pylatex
+      pyquil
+      quimb
+    ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -93,6 +98,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/quantumlib/cirq";
     changelog = "https://github.com/quantumlib/Cirq/releases/tag/v${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [ drewrisinger fab ];
+    maintainers = with maintainers; [
+      drewrisinger
+      fab
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/cirq-ft/default.nix b/pkgs/development/python-modules/cirq-ft/default.nix
index a0fbbc40da1f2..6ee4c28c88797 100644
--- a/pkgs/development/python-modules/cirq-ft/default.nix
+++ b/pkgs/development/python-modules/cirq-ft/default.nix
@@ -1,13 +1,14 @@
-{ attrs
-, buildPythonPackage
-, cachetools
-, cirq-core
-, ipython
-, ipywidgets
-, nbconvert
-, nbformat
-, pytestCheckHook
-, setuptools
+{
+  attrs,
+  buildPythonPackage,
+  cachetools,
+  cirq-core,
+  ipython,
+  ipywidgets,
+  nbconvert,
+  nbformat,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
 
   sourceRoot = "${src.name}/${pname}";
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     attrs
@@ -43,5 +42,4 @@ buildPythonPackage rec {
 
   # cirq's importlib hook doesn't work here
   #pythonImportsCheck = [ "cirq_ft" ];
-
 }
diff --git a/pkgs/development/python-modules/cirq-google/default.nix b/pkgs/development/python-modules/cirq-google/default.nix
index c2d36a4f796d0..b7b70b00afed4 100644
--- a/pkgs/development/python-modules/cirq-google/default.nix
+++ b/pkgs/development/python-modules/cirq-google/default.nix
@@ -1,11 +1,11 @@
-{ buildPythonPackage
-, cirq-core
-, freezegun
-, google-api-core
-, protobuf
-, pytestCheckHook
-, pythonRelaxDepsHook
-, setuptools
+{
+  buildPythonPackage,
+  cirq-core,
+  freezegun,
+  google-api-core,
+  protobuf,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -16,7 +16,6 @@ buildPythonPackage rec {
   sourceRoot = "${src.name}/${pname}";
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -47,5 +46,4 @@ buildPythonPackage rec {
     # Calibration issue
     "test_xeb_to_calibration_layer"
   ];
-
 }
diff --git a/pkgs/development/python-modules/cirq-ionq/default.nix b/pkgs/development/python-modules/cirq-ionq/default.nix
index fdad606eb069e..b4fa846366234 100644
--- a/pkgs/development/python-modules/cirq-ionq/default.nix
+++ b/pkgs/development/python-modules/cirq-ionq/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, cirq-core
-, requests
-, pytestCheckHook
+{
+  buildPythonPackage,
+  cirq-core,
+  requests,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # cirq's importlib hook doesn't work here
   #pythonImportsCheck = [ "cirq_ionq" ];
diff --git a/pkgs/development/python-modules/cirq-pasqal/default.nix b/pkgs/development/python-modules/cirq-pasqal/default.nix
index 7be607fbd74d6..ea13cb2cc4dad 100644
--- a/pkgs/development/python-modules/cirq-pasqal/default.nix
+++ b/pkgs/development/python-modules/cirq-pasqal/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, cirq-core
-, requests
-, pytestCheckHook
+{
+  buildPythonPackage,
+  cirq-core,
+  requests,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # cirq's importlib hook doesn't work here
   #pythonImportsCheck = [ "cirq_pasqal" ];
diff --git a/pkgs/development/python-modules/cirq-rigetti/default.nix b/pkgs/development/python-modules/cirq-rigetti/default.nix
index 2189beb9f880f..932ab71a15003 100644
--- a/pkgs/development/python-modules/cirq-rigetti/default.nix
+++ b/pkgs/development/python-modules/cirq-rigetti/default.nix
@@ -1,32 +1,33 @@
-{ buildPythonPackage
-, cirq-core
-, requests
-, pytestCheckHook
-, attrs
-, certifi
-, h11
-, httpcore
-, idna
-, httpx
-, iso8601
-, pydantic
-, pyjwt
-, pyquil
-, python-dateutil
-, pythonOlder
-, qcs-api-client
-, retrying
-, rfc3339
-, rfc3986
-, six
-, sniffio
-, toml
+{
+  buildPythonPackage,
+  cirq-core,
+  lib,
+  pytestCheckHook,
+  attrs,
+  certifi,
+  h11,
+  httpcore,
+  idna,
+  httpx,
+  iso8601,
+  pydantic,
+  pyjwt,
+  pyquil,
+  python-dateutil,
+  pythonOlder,
+  qcs-api-client,
+  retrying,
+  rfc3339,
+  rfc3986,
+  six,
+  sniffio,
+  toml,
 }:
 
 buildPythonPackage rec {
   pname = "cirq-rigetti";
   format = "setuptools";
-  inherit (cirq-core) version src meta;
+  inherit (cirq-core) version src;
 
   disabled = pythonOlder "3.7";
 
@@ -74,9 +75,7 @@ buildPythonPackage rec {
     toml
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # No need to test the version number
@@ -85,4 +84,9 @@ buildPythonPackage rec {
 
   # cirq's importlib hook doesn't work here
   #pythonImportsCheck = [ "cirq_rigetti" ];
+
+  meta = cirq-core.meta // {
+    # ModuleNotFoundError: No module named 'pyquil.parser'
+    broken = lib.versionAtLeast pyquil.version "4";
+  };
 }
diff --git a/pkgs/development/python-modules/cirq-web/default.nix b/pkgs/development/python-modules/cirq-web/default.nix
index 43f18ef282e10..95af99b1360b7 100644
--- a/pkgs/development/python-modules/cirq-web/default.nix
+++ b/pkgs/development/python-modules/cirq-web/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, cirq-core
-, pytestCheckHook
+{
+  buildPythonPackage,
+  cirq-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -10,13 +11,9 @@ buildPythonPackage rec {
 
   sourceRoot = "${src.name}/${pname}";
 
-  propagatedBuildInputs = [
-    cirq-core
-  ];
+  propagatedBuildInputs = [ cirq-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # cirq's importlib hook doesn't work here
   #pythonImportsCheck = [ "cirq_web" ];
diff --git a/pkgs/development/python-modules/cirq/default.nix b/pkgs/development/python-modules/cirq/default.nix
index 200f19e39f6fa..d640655c4cd82 100644
--- a/pkgs/development/python-modules/cirq/default.nix
+++ b/pkgs/development/python-modules/cirq/default.nix
@@ -1,13 +1,14 @@
-{ buildPythonPackage
-, cirq-aqt
-, cirq-core
-, cirq-ft
-, cirq-google
-, cirq-ionq
-, cirq-pasqal
-, cirq-rigetti
-, cirq-web
-, pytestCheckHook
+{
+  buildPythonPackage,
+  cirq-aqt,
+  cirq-core,
+  cirq-ft,
+  cirq-google,
+  cirq-ionq,
+  cirq-pasqal,
+  cirq-rigetti,
+  cirq-web,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
   ];
 
   # pythonImportsCheck = [ "cirq" "cirq.Circuit" ];  # cirq's importlib hook doesn't work here
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Don't run submodule or development tool tests
   disabledTestPaths = [
@@ -43,5 +42,4 @@ buildPythonPackage rec {
     "cirq-web"
     "dev_tools"
   ];
-
 }
diff --git a/pkgs/development/python-modules/ciscoconfparse/default.nix b/pkgs/development/python-modules/ciscoconfparse/default.nix
index 33bd43c7043b5..1643c6acfa473 100644
--- a/pkgs/development/python-modules/ciscoconfparse/default.nix
+++ b/pkgs/development/python-modules/ciscoconfparse/default.nix
@@ -1,15 +1,15 @@
-{ lib
-, buildPythonPackage
-, deprecat
-, dnspython
-, fetchFromGitHub
-, loguru
-, passlib
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, toml
+{
+  lib,
+  buildPythonPackage,
+  deprecat,
+  dnspython,
+  fetchFromGitHub,
+  loguru,
+  passlib,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  toml,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-vL/CQdYcOP356EyRToviWylP1EBtxmeov6qkhfQNZ2Y=";
   };
 
-  pythonRelaxDeps = [
-    "loguru"
-  ];
+  pythonRelaxDeps = [ "loguru" ];
 
   postPatch = ''
     # The line below is in the [build-system] section, which is invalid and
@@ -44,7 +42,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -55,13 +52,9 @@ buildPythonPackage rec {
     toml
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTestPaths = [
-    "tests/parse_test.py"
-  ];
+  disabledTestPaths = [ "tests/parse_test.py" ];
 
   disabledTests = [
     # Tests require network access
@@ -71,9 +64,7 @@ buildPythonPackage rec {
     "testParse_valid_filepath"
   ];
 
-  pythonImportsCheck = [
-    "ciscoconfparse"
-  ];
+  pythonImportsCheck = [ "ciscoconfparse" ];
 
   meta = with lib; {
     description = "Module to parse, audit, query, build, and modify Cisco IOS-style configurations";
diff --git a/pkgs/development/python-modules/ciscomobilityexpress/default.nix b/pkgs/development/python-modules/ciscomobilityexpress/default.nix
index c24873bf3174b..44d604e351328 100644
--- a/pkgs/development/python-modules/ciscomobilityexpress/default.nix
+++ b/pkgs/development/python-modules/ciscomobilityexpress/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     ${python.interpreter} -m unittest
   '';
 
-  pythonImportsCheck = [
-    "ciscomobilityexpress"
-  ];
+  pythonImportsCheck = [ "ciscomobilityexpress" ];
 
   meta = with lib; {
     description = "Module to interact with Cisco Mobility Express APIs to fetch connected devices";
diff --git a/pkgs/development/python-modules/ciso8601/default.nix b/pkgs/development/python-modules/ciso8601/default.nix
index e245e736ce280..e0ad1f0912609 100644
--- a/pkgs/development/python-modules/ciso8601/default.nix
+++ b/pkgs/development/python-modules/ciso8601/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
-, pytz
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -18,18 +19,14 @@ buildPythonPackage rec {
     hash = "sha256-KkMa1Rr3Z+5VnZfj25LDYpTfRyKqWA9u0vq6dZpwEy0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytestCheckHook
     pytz
   ];
 
-  pytestFlagsArray = [
-    "tests/tests.py"
-  ];
+  pytestFlagsArray = [ "tests/tests.py" ];
 
   pythonImportsCheck = [ "ciso8601" ];
 
diff --git a/pkgs/development/python-modules/citeproc-py/default.nix b/pkgs/development/python-modules/citeproc-py/default.nix
index 264b0f3b34812..3cdb2e6bafe23 100644
--- a/pkgs/development/python-modules/citeproc-py/default.nix
+++ b/pkgs/development/python-modules/citeproc-py/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-, git
-, lxml
-, rnc2rng
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+  git,
+  lxml,
+  rnc2rng,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,12 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ lxml ];
 
-  nativeCheckInputs = [ nose git ];
+  nativeCheckInputs = [
+    nose
+    git
+  ];
   checkPhase = "nosetests tests";
-  doCheck = false;  # seems to want a Git repository, but fetchgit with leaveDotGit also fails
+  doCheck = false; # seems to want a Git repository, but fetchgit with leaveDotGit also fails
   pythonImportsCheck = [ "citeproc" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/cjkwrap/default.nix b/pkgs/development/python-modules/cjkwrap/default.nix
index 83f487a2af140..00854c3c0d692 100644
--- a/pkgs/development/python-modules/cjkwrap/default.nix
+++ b/pkgs/development/python-modules/cjkwrap/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "cjkwrap";
@@ -12,7 +16,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "cjkwrap" ];
 
   meta = with lib; {
-    description = "A library for wrapping and filling CJK text";
+    description = "Library for wrapping and filling CJK text";
     homepage = "https://f.gallai.re/cjkwrap";
     license = licenses.lgpl3Plus;
     maintainers = [ maintainers.kaction ];
diff --git a/pkgs/development/python-modules/ckcc-protocol/default.nix b/pkgs/development/python-modules/ckcc-protocol/default.nix
index 84f63752e2ae1..a8563a9ce0850 100644
--- a/pkgs/development/python-modules/ckcc-protocol/default.nix
+++ b/pkgs/development/python-modules/ckcc-protocol/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, click
-, ecdsa
-, hidapi
-, fetchPypi
-, pyaes
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  click,
+  ecdsa,
+  hidapi,
+  fetchPypi,
+  pyaes,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ckcc"
-  ];
+  pythonImportsCheck = [ "ckcc" ];
 
   meta = with lib; {
     description = "Communicate with your Coldcard using Python";
diff --git a/pkgs/development/python-modules/clarabel/default.nix b/pkgs/development/python-modules/clarabel/default.nix
index 7e098000002df..d81f01b34fc5f 100644
--- a/pkgs/development/python-modules/clarabel/default.nix
+++ b/pkgs/development/python-modules/clarabel/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, rustPlatform
-, libiconv
-, numpy
-, scipy
-, nix-update-script
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  rustPlatform,
+  libiconv,
+  numpy,
+  scipy,
+  nix-update-script,
 }:
 
 buildPythonPackage rec {
   pname = "clarabel";
-  version = "0.7.1";
+  version = "0.9.0";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-owqxNfR1xbx4Mp/X31dSkRVeYFW8rwISTrYQuK0XY5Y=";
+    hash = "sha256-DW0/6IAL5bS11AqOFL1JJmez5GzF2+N2d85e0l8HGdQ=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-Tg9K66WIIAZyua8QlKrlUnpRJRmuxe7ihIr2Vqg79NQ=";
+    hash = "sha256-NNvrDXBodrO3bxr4X1HEn5uHmHDJ1s9C70lPv7OkSCo=";
   };
 
   nativeBuildInputs = with rustPlatform; [
@@ -37,9 +38,7 @@ buildPythonPackage rec {
     scipy
   ];
 
-  pythonImportsCheck = [
-    "clarabel"
-  ];
+  pythonImportsCheck = [ "clarabel" ];
 
   # no tests but run the same examples as .github/workflows/pypi.yaml
   checkPhase = ''
diff --git a/pkgs/development/python-modules/clarifai-grpc/default.nix b/pkgs/development/python-modules/clarifai-grpc/default.nix
index dfc183cb1d506..45e66edcdcf87 100644
--- a/pkgs/development/python-modules/clarifai-grpc/default.nix
+++ b/pkgs/development/python-modules/clarifai-grpc/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "clarifai-grpc";
-  version = "10.3.4";
+  version = "10.5.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "Clarifai";
     repo = "clarifai-python-grpc";
     rev = "refs/tags/${version}";
-    hash = "sha256-1Yx00g2Cd9/41DZYK5cRwcFQv2qD6B4cl4cpVZ6slTA=";
+    hash = "sha256-BhUTOzBa+dEBxtqXDTKuCpsZw8fqwl9Kait5NOcn29g=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/clarifai/default.nix b/pkgs/development/python-modules/clarifai/default.nix
index b1085bdc5b99c..f43de76e27bc3 100644
--- a/pkgs/development/python-modules/clarifai/default.nix
+++ b/pkgs/development/python-modules/clarifai/default.nix
@@ -13,7 +13,6 @@
   pypdf,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
   pyyaml,
   rich,
   schema,
@@ -25,7 +24,7 @@
 
 buildPythonPackage rec {
   pname = "clarifai";
-  version = "10.3.1";
+  version = "10.5.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -34,7 +33,7 @@ buildPythonPackage rec {
     owner = "Clarifai";
     repo = "clarifai-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-KCJ1Ev0fgww0JU1tDp9X/A9EIcXQRaFKeA/MRNnp5ng=";
+    hash = "sha256-zAjGVICrYgai6GFpcJyigKxn7kNEZKclggR5ktzrCQ0=";
   };
 
   pythonRelaxDeps = [ "clarifai-grpc" ];
@@ -43,7 +42,6 @@ buildPythonPackage rec {
 
   build-system = [ setuptools ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     clarifai-grpc
diff --git a/pkgs/development/python-modules/claripy/default.nix b/pkgs/development/python-modules/claripy/default.nix
index c10d32e6b189c..eaa8c4dc9ed0d 100644
--- a/pkgs/development/python-modules/claripy/default.nix
+++ b/pkgs/development/python-modules/claripy/default.nix
@@ -7,14 +7,13 @@
   pysmt,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
   setuptools,
   z3-solver,
 }:
 
 buildPythonPackage rec {
   pname = "claripy";
-  version = "9.2.101";
+  version = "9.2.107";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -23,14 +22,13 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "claripy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ecYyoFtCIsrlzcraqL8X4cZgqc243E9WXZix/70eksY=";
+    hash = "sha256-89wh/SuwxOuORk3S42VA/cJh1GACFWB4ceUxp2OszQM=";
   };
 
   # z3 does not provide a dist-info, so python-runtime-deps-check will fail
   pythonRemoveDeps = [ "z3-solver" ];
 
   build-system = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
diff --git a/pkgs/development/python-modules/class-doc/default.nix b/pkgs/development/python-modules/class-doc/default.nix
index 432df1f674eed..32d69f0927601 100644
--- a/pkgs/development/python-modules/class-doc/default.nix
+++ b/pkgs/development/python-modules/class-doc/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, more-itertools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  poetry-core,
+  more-itertools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -28,21 +29,13 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    more-itertools
-  ];
+  propagatedBuildInputs = [ more-itertools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "class_doc"
-  ];
+  pythonImportsCheck = [ "class_doc" ];
 
   meta = with lib; {
     description = "Extract attributes docstrings defined in various ways";
diff --git a/pkgs/development/python-modules/classify-imports/default.nix b/pkgs/development/python-modules/classify-imports/default.nix
index cdbc262af7ddf..53eaf1745231c 100644
--- a/pkgs/development/python-modules/classify-imports/default.nix
+++ b/pkgs/development/python-modules/classify-imports/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     hash = "sha256-f5wZfisKz9WGdq6u0rd/zg2CfMwWvQeR8xZQNbD7KfU=";
   };
 
-  pythonImportsCheck = [
-    "classify_imports"
-  ];
+  pythonImportsCheck = [ "classify_imports" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Utilities for refactoring imports in python-like syntax";
diff --git a/pkgs/development/python-modules/cld2-cffi/default.nix b/pkgs/development/python-modules/cld2-cffi/default.nix
deleted file mode 100644
index 876a6f4492f6e..0000000000000
--- a/pkgs/development/python-modules/cld2-cffi/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, six, cffi, nose }:
-
-buildPythonPackage rec {
-  pname = "cld2-cffi";
-  version = "0.1.4";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0rvcdx4fdh5yk4d2nlddq1q1r2r0xqp86hpmbdn447pdcj1r8a9s";
-  };
-
-  propagatedBuildInputs = [ six cffi ];
-  nativeCheckInputs = [ nose ];
-
-  # gcc doesn't approve of this code, so disable -Werror
-  env.NIX_CFLAGS_COMPILE = "-w" + lib.optionalString stdenv.cc.isClang " -Wno-error=c++11-narrowing";
-
-  checkPhase = "nosetests -v";
-
-  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/pkgs/development/python-modules/cle/default.nix b/pkgs/development/python-modules/cle/default.nix
index 4457c6586796c..ea5c8dabb09c8 100644
--- a/pkgs/development/python-modules/cle/default.nix
+++ b/pkgs/development/python-modules/cle/default.nix
@@ -2,6 +2,7 @@
   lib,
   archinfo,
   buildPythonPackage,
+  cart,
   cffi,
   fetchFromGitHub,
   minidump,
@@ -18,14 +19,14 @@
 
 let
   # The binaries are following the argr projects release cycle
-  version = "9.2.101";
+  version = "9.2.107";
 
   # Binary files from https://github.com/angr/binaries (only used for testing and only here)
   binaries = fetchFromGitHub {
     owner = "angr";
     repo = "binaries";
     rev = "refs/tags/v${version}";
-    hash = "sha256-8uvhjxZOgMjE2csOxS+kUPeo/pswovBDOLp5w8d4JSk=";
+    hash = "sha256-7b3kjPoaJ9z1wdz125XsD0hj5FXj9DmUt8Hpqd/AjKs=";
   };
 in
 buildPythonPackage rec {
@@ -39,13 +40,16 @@ buildPythonPackage rec {
     owner = "angr";
     repo = "cle";
     rev = "refs/tags/v${version}";
-    hash = "sha256-cG9j3cMDwjm2DGvvgJgYfigf5e/61HKWFudgezE2zz8=";
+    hash = "sha256-0dfnp0sIxO4Ln20c57Wb9B0E987v+xhrX53yriC+Qy0=";
   };
 
   build-system = [ setuptools ];
 
+  pythonRelaxDeps = [ "pyvex" ];
+
   dependencies = [
     archinfo
+    cart
     cffi
     minidump
     pefile
diff --git a/pkgs/development/python-modules/clean-fid/default.nix b/pkgs/development/python-modules/clean-fid/default.nix
index 7a2f328185e43..d88bbcc7105e4 100644
--- a/pkgs/development/python-modules/clean-fid/default.nix
+++ b/pkgs/development/python-modules/clean-fid/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# dependencies
-, numpy
-, pillow
-, requests
-, scipy
-, torch
-, torchvision
-, tqdm
+  # dependencies
+  numpy,
+  pillow,
+  requests,
+  scipy,
+  torch,
+  torchvision,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     tqdm
   ];
 
-  pythonImportsCheck = [
-    "cleanfid"
-  ];
+  pythonImportsCheck = [ "cleanfid" ];
 
   # no tests1
   doCheck = false;
diff --git a/pkgs/development/python-modules/cleanlab/default.nix b/pkgs/development/python-modules/cleanlab/default.nix
index 073ac338fb0bf..b7c2070ebcea3 100644
--- a/pkgs/development/python-modules/cleanlab/default.nix
+++ b/pkgs/development/python-modules/cleanlab/default.nix
@@ -1,43 +1,47 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, scikit-learn
-, termcolor
-, tqdm
-, pandas
-, setuptools
-# test dependencies
-, pytestCheckHook
-, pytest-lazy-fixture
-, tensorflow
-, torch
-, datasets
-, torchvision
-, keras
-, fasttext
-, hypothesis
-, wget
-, matplotlib
-, skorch
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  numpy,
+  scikit-learn,
+  termcolor,
+  tqdm,
+  pandas,
+  setuptools,
+  # test dependencies
+  datasets,
+  fasttext,
+  hypothesis,
+  keras,
+  matplotlib,
+  pytestCheckHook,
+  pytest-lazy-fixture,
+  skorch,
+  tensorflow,
+  torch,
+  torchvision,
+  wget,
 }:
 
 buildPythonPackage rec {
   pname = "cleanlab";
-  version = "2.6.1";
+  version = "2.6.5";
   pyproject = true;
-  disabled = pythonOlder "3.7";
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "cleanlab";
-    repo = pname;
+    repo = "cleanlab";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+uJtm/t6Ri25V/9N/2fcOgCOBaBy8PrsM/tO1uX7FEY=";
+    hash = "sha256-wehvGh27Ey1YK+eWTjT6jRwa7yqPpx3P0HUNePoljpw=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    numpy
     scikit-learn
     termcolor
     tqdm
@@ -52,18 +56,18 @@ buildPythonPackage rec {
   doCheck = true;
 
   nativeCheckInputs = [
+    datasets
+    fasttext
+    hypothesis
+    keras
+    matplotlib
     pytestCheckHook
     pytest-lazy-fixture
+    skorch
     tensorflow
     torch
-    datasets
     torchvision
-    keras
-    fasttext
-    hypothesis
     wget
-    matplotlib
-    skorch
   ];
 
   disabledTests = [
@@ -76,13 +80,15 @@ buildPythonPackage rec {
     "tests/test_dataset.py"
     # Requires the datasets we just prevented from downloading
     "tests/datalab/test_cleanvision_integration.py"
+    # Fails because of issues with the keras derivation
+    "tests/test_frameworks.py"
   ];
 
-  meta = with lib; {
-    description = "The standard data-centric AI package for data quality and machine learning with messy, real-world data and labels.";
+  meta = {
+    description = "Standard data-centric AI package for data quality and machine learning with messy, real-world data and labels";
     homepage = "https://github.com/cleanlab/cleanlab";
     changelog = "https://github.com/cleanlab/cleanlab/releases/tag/v${version}";
-    license = licenses.agpl3Only;
-    maintainers = with maintainers; [ happysalada ];
+    license = lib.licenses.agpl3Only;
+    maintainers = with lib.maintainers; [ happysalada ];
   };
 }
diff --git a/pkgs/development/python-modules/cleo/default.nix b/pkgs/development/python-modules/cleo/default.nix
index caa812c63a84c..be805228302a7 100644
--- a/pkgs/development/python-modules/cleo/default.nix
+++ b/pkgs/development/python-modules/cleo/default.nix
@@ -1,12 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, crashtest
-, poetry-core
-, pytest-mock
-, pytestCheckHook
-, pythonRelaxDepsHook
-, rapidfuzz
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  crashtest,
+  poetry-core,
+  pytest-mock,
+  pytestCheckHook,
+  rapidfuzz,
 }:
 
 buildPythonPackage rec {
@@ -23,12 +23,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "rapidfuzz"
-  ];
+  pythonRelaxDeps = [ "rapidfuzz" ];
 
   propagatedBuildInputs = [
     crashtest
diff --git a/pkgs/development/python-modules/clevercsv/default.nix b/pkgs/development/python-modules/clevercsv/default.nix
index fd8e4f61dceb9..eb9c003c913fd 100644
--- a/pkgs/development/python-modules/clevercsv/default.nix
+++ b/pkgs/development/python-modules/clevercsv/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# propagates
-, chardet
-, regex
-, packaging
+  # propagates
+  chardet,
+  regex,
+  packaging,
 
-# optionals
-, faust-cchardet
-, pandas
-, tabview
-# TODO: , wilderness
+  # optionals
+  faust-cchardet,
+  pandas,
+  tabview,
+  # TODO: , wilderness
 
-# tests
-, python
-, pytestCheckHook
+  # tests
+  python,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -45,9 +46,7 @@ buildPythonPackage rec {
     ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.full;
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.full;
 
   pythonImportsCheck = [
     "clevercsv"
@@ -61,9 +60,7 @@ buildPythonPackage rec {
   '';
 
   # their ci only runs unit tests, there are also integration and fuzzing tests
-  pytestFlagsArray = [
-    "./tests/test_unit"
-  ];
+  pytestFlagsArray = [ "./tests/test_unit" ];
 
   disabledTestPaths = [
     # ModuleNotFoundError: No module named 'wilderness'
diff --git a/pkgs/development/python-modules/clf/default.nix b/pkgs/development/python-modules/clf/default.nix
index 0dd3609197f85..acf60cba7e1e4 100644
--- a/pkgs/development/python-modules/clf/default.nix
+++ b/pkgs/development/python-modules/clf/default.nix
@@ -1,5 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi
-, docopt, requests, pygments }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  docopt,
+  requests,
+  pygments,
+}:
 
 buildPythonPackage rec {
   pname = "clf";
@@ -15,7 +21,11 @@ buildPythonPackage rec {
     sed -i 's/==/>=/' requirements.txt
   '';
 
-  propagatedBuildInputs = [ docopt requests pygments ];
+  propagatedBuildInputs = [
+    docopt
+    requests
+    pygments
+  ];
 
   # Error when running tests:
   # No local packages or download links found for requests
diff --git a/pkgs/development/python-modules/cli-helpers/default.nix b/pkgs/development/python-modules/cli-helpers/default.nix
index 409f2c004c2cb..106e4dac7c7c9 100644
--- a/pkgs/development/python-modules/cli-helpers/default.nix
+++ b/pkgs/development/python-modules/cli-helpers/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, configobj
-, mock
-, pytestCheckHook
-, pygments
-, tabulate
-, terminaltables
-, wcwidth
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  configobj,
+  mock,
+  pytestCheckHook,
+  pygments,
+  tabulate,
+  terminaltables,
+  wcwidth,
 }:
 
 buildPythonPackage rec {
@@ -61,7 +62,7 @@ buildPythonPackage rec {
       Read the documentation at http://cli-helpers.rtfd.io
     '';
     homepage = "https://cli-helpers.readthedocs.io/en/stable/";
-    license = licenses.bsd3 ;
+    license = licenses.bsd3;
     maintainers = [ maintainers.kalbasit ];
   };
 }
diff --git a/pkgs/development/python-modules/cli-ui/default.nix b/pkgs/development/python-modules/cli-ui/default.nix
new file mode 100644
index 0000000000000..ecd30ce3fc079
--- /dev/null
+++ b/pkgs/development/python-modules/cli-ui/default.nix
@@ -0,0 +1,45 @@
+{
+  lib,
+  python3Packages,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  poetry-core,
+  colorama,
+  tabulate,
+  unidecode,
+}:
+python3Packages.buildPythonPackage rec {
+  pname = "cli-ui";
+  version = "0.17.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-L2flDPR052rRYMPmYLutmL+LjfuNhHdl86Jht+E8Bfo=";
+  };
+
+  pythonRelaxDeps = [ "tabulate" ];
+
+
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    colorama
+    tabulate
+    unidecode
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "cli_ui" ];
+
+  meta = with lib; {
+    description = "Build Nice User Interfaces In The Terminal";
+    homepage = "https://github.com/your-tools/python-cli-ui";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ slashformotion ];
+  };
+}
diff --git a/pkgs/development/python-modules/cliche/default.nix b/pkgs/development/python-modules/cliche/default.nix
index b51801d8d2d3f..596ea43962b1a 100644
--- a/pkgs/development/python-modules/cliche/default.nix
+++ b/pkgs/development/python-modules/cliche/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, ipdb
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ipdb,
+  pytestCheckHook,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/click-aliases/default.nix b/pkgs/development/python-modules/click-aliases/default.nix
index f216d12909966..51b5b40a140c1 100644
--- a/pkgs/development/python-modules/click-aliases/default.nix
+++ b/pkgs/development/python-modules/click-aliases/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, click
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  click,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,17 +20,11 @@ buildPythonPackage rec {
     hash = "sha256-3/O5odibSjo5inlLCvUlotphhMVLBdaND/M2f40pMyM=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    click
-  ];
+  propagatedBuildInputs = [ click ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "click_aliases" ];
 
diff --git a/pkgs/development/python-modules/click-command-tree/default.nix b/pkgs/development/python-modules/click-command-tree/default.nix
index 53223c278c9c8..8902c3f13fbe9 100644
--- a/pkgs/development/python-modules/click-command-tree/default.nix
+++ b/pkgs/development/python-modules/click-command-tree/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, click
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  click,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,17 +18,11 @@ buildPythonPackage rec {
     hash = "sha256-oshAHCGe8p5BQ0W21bXSxrTCEFgIxZ6BmUEiWB1xAoI=";
   };
 
-  propagatedBuildInputs = [
-    click
-  ];
+  propagatedBuildInputs = [ click ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests.py"
-  ];
+  pytestFlagsArray = [ "tests.py" ];
 
   pythonImportsCheck = [ "click_command_tree" ];
 
diff --git a/pkgs/development/python-modules/click-completion/default.nix b/pkgs/development/python-modules/click-completion/default.nix
index b2e0a57bbcc8a..f79d92ecffc8a 100644
--- a/pkgs/development/python-modules/click-completion/default.nix
+++ b/pkgs/development/python-modules/click-completion/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
 
-# propagates
-, click
-, jinja2
-, shellingham
-, six
+  # propagates
+  click,
+  jinja2,
+  shellingham,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     six
   ];
 
-  pythonImportsCheck = [
-    "click_completion"
-  ];
+  pythonImportsCheck = [ "click_completion" ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/click-configfile/default.nix b/pkgs/development/python-modules/click-configfile/default.nix
index c1b0a0f092344..2d19a760e5fa6 100644
--- a/pkgs/development/python-modules/click-configfile/default.nix
+++ b/pkgs/development/python-modules/click-configfile/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, click
-, six
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  click,
+  six,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,18 +25,14 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace setup.py \
       --replace "install_requires=install_requires," 'install_requires=["click >= 6.6", "six >= 1.10"],'
   '';
 
-  pythonImportsCheck = [
-    "click_configfile"
-  ];
+  pythonImportsCheck = [ "click_configfile" ];
 
   disabledTests = [
     "test_configfile__with_unbound_section"
diff --git a/pkgs/development/python-modules/click-datetime/default.nix b/pkgs/development/python-modules/click-datetime/default.nix
index 5e570130f0306..2203bfb829637 100644
--- a/pkgs/development/python-modules/click-datetime/default.nix
+++ b/pkgs/development/python-modules/click-datetime/default.nix
@@ -1,5 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, click }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  click,
+}:
 
 buildPythonPackage rec {
   pname = "click-datetime";
@@ -21,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "click_datetime" ];
 
   meta = with lib; {
-    description = "Datetime type support for click.";
+    description = "Datetime type support for click";
     homepage = "https://github.com/click-contrib/click-datetime";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
diff --git a/pkgs/development/python-modules/click-default-group/default.nix b/pkgs/development/python-modules/click-default-group/default.nix
index 49422099ad78c..0e6d589e20e19 100644
--- a/pkgs/development/python-modules/click-default-group/default.nix
+++ b/pkgs/development/python-modules/click-default-group/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, flit-core
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  flit-core,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-9Vk4LdgLDAWG2YCQPLKR6PIVnULmpOoe7RtS8DgWARo=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    click
-  ];
+  propagatedBuildInputs = [ click ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "click_default_group"
-  ];
+  pythonImportsCheck = [ "click_default_group" ];
 
   meta = with lib; {
     description = "Group to invoke a command without explicit subcommand name";
diff --git a/pkgs/development/python-modules/click-didyoumean/default.nix b/pkgs/development/python-modules/click-didyoumean/default.nix
index 110855c60a422..a781352f39ff2 100644
--- a/pkgs/development/python-modules/click-didyoumean/default.nix
+++ b/pkgs/development/python-modules/click-didyoumean/default.nix
@@ -4,7 +4,7 @@
   fetchFromGitHub,
   poetry-core,
   click,
-  pytestCheckHook
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/click-help-colors/default.nix b/pkgs/development/python-modules/click-help-colors/default.nix
index 439a6241091c8..819c4e1487843 100644
--- a/pkgs/development/python-modules/click-help-colors/default.nix
+++ b/pkgs/development/python-modules/click-help-colors/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, click
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  click,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-9Mq+Us9VApm4iI9PLuTF81msJ+M7z+TWHbR3haXMk2w=";
   };
 
-  propagatedBuildInputs = [
-    click
-  ];
+  propagatedBuildInputs = [ click ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "click_help_colors"
-  ];
+  pythonImportsCheck = [ "click_help_colors" ];
 
   meta = with lib; {
     description = "Colorization of help messages in Click";
diff --git a/pkgs/development/python-modules/click-log/default.nix b/pkgs/development/python-modules/click-log/default.nix
index 0b3622b9dc983..348620d9106c6 100644
--- a/pkgs/development/python-modules/click-log/default.nix
+++ b/pkgs/development/python-modules/click-log/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, click }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  click,
+}:
 
 buildPythonPackage rec {
   pname = "click-log";
diff --git a/pkgs/development/python-modules/click-odoo-contrib/default.nix b/pkgs/development/python-modules/click-odoo-contrib/default.nix
index a01a3e88b1974..ebb626aabf8c0 100644
--- a/pkgs/development/python-modules/click-odoo-contrib/default.nix
+++ b/pkgs/development/python-modules/click-odoo-contrib/default.nix
@@ -1,12 +1,13 @@
-{ buildPythonPackage
-, click-odoo
-, fetchPypi
-, importlib-resources
-, lib
-, manifestoo-core
-, nix-update-script
-, pythonOlder
-, setuptools-scm
+{
+  buildPythonPackage,
+  click-odoo,
+  fetchPypi,
+  importlib-resources,
+  lib,
+  manifestoo-core,
+  nix-update-script,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-3gusvy3d6kgmyBY+bmXB6lbWk7qxJIuHALZtug1WLzo=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     click-odoo
diff --git a/pkgs/development/python-modules/click-odoo/default.nix b/pkgs/development/python-modules/click-odoo/default.nix
index b4cd69ed978af..ff815b9f26d5a 100644
--- a/pkgs/development/python-modules/click-odoo/default.nix
+++ b/pkgs/development/python-modules/click-odoo/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, click
-, fetchPypi
-, lib
-, nix-update-script
-, setuptools-scm
+{
+  buildPythonPackage,
+  click,
+  fetchPypi,
+  lib,
+  nix-update-script,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,9 @@ buildPythonPackage rec {
     hash = "sha256-zyfgsHzIoz4lnqANe63b2oqgD/oxBbTbJYEedfSHWQ8=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    click
-  ];
+  propagatedBuildInputs = [ click ];
 
   passthru.updateScript = nix-update-script { };
 
diff --git a/pkgs/development/python-modules/click-option-group/default.nix b/pkgs/development/python-modules/click-option-group/default.nix
index b1a2defe518f8..6fa457d6f57b5 100644
--- a/pkgs/development/python-modules/click-option-group/default.nix
+++ b/pkgs/development/python-modules/click-option-group/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, click
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  click,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,17 +20,11 @@ buildPythonPackage rec {
     hash = "sha256-uR5rIZPPT6pRk/jJEy2rZciOXrHWVWN6BfGroQ3znas=";
   };
 
-  propagatedBuildInputs = [
-    click
-  ];
+  propagatedBuildInputs = [ click ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "click_option_group"
-  ];
+  pythonImportsCheck = [ "click_option_group" ];
 
   meta = with lib; {
     description = "Option groups missing in Click";
diff --git a/pkgs/development/python-modules/click-plugins/default.nix b/pkgs/development/python-modules/click-plugins/default.nix
index f695f07f84b03..e1c2702b3007f 100644
--- a/pkgs/development/python-modules/click-plugins/default.nix
+++ b/pkgs/development/python-modules/click-plugins/default.nix
@@ -1,5 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi,
-  click, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  click,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -12,16 +16,12 @@ buildPythonPackage rec {
     sha256 = "46ab999744a9d831159c3411bb0c79346d94a444df9a3a3742e9ed63645f264b";
   };
 
-  propagatedBuildInputs = [
-    click
-  ];
+  propagatedBuildInputs = [ click ];
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
   meta = with lib; {
-    description = "An extension module for click to enable registering CLI commands";
+    description = "Extension module for click to enable registering CLI commands";
     homepage = "https://github.com/click-contrib/click-plugins";
     license = licenses.bsd3;
     maintainers = with maintainers; [ knedlsepp ];
diff --git a/pkgs/development/python-modules/click-repl/default.nix b/pkgs/development/python-modules/click-repl/default.nix
index aa375423769bc..bd2fad9f192f2 100644
--- a/pkgs/development/python-modules/click-repl/default.nix
+++ b/pkgs/development/python-modules/click-repl/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, click
-, prompt-toolkit
-, six
+  # dependencies
+  click,
+  prompt-toolkit,
+  six,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     sed -i '/--cov=/d' pyproject.toml
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     click
@@ -40,9 +39,7 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     homepage = "https://github.com/click-contrib/click-repl";
diff --git a/pkgs/development/python-modules/click-shell/default.nix b/pkgs/development/python-modules/click-shell/default.nix
index 1b9a5ecf62113..593b035757b45 100644
--- a/pkgs/development/python-modules/click-shell/default.nix
+++ b/pkgs/development/python-modules/click-shell/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, click
-, pytestCheckHook
-, pytest-click
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  click,
+  pytestCheckHook,
+  pytest-click,
 }:
 
 buildPythonPackage rec {
@@ -19,23 +20,19 @@ buildPythonPackage rec {
     hash = "sha256-4QpQzg0yFuOFymGiTI+A8o6LyX78iTJMqr0ernYbilI=";
   };
 
-  propagatedBuildInputs = [
-    click
-  ];
+  propagatedBuildInputs = [ click ];
 
   nativeCheckInputs = [
     pytest-click
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "click_shell"
-  ];
+  pythonImportsCheck = [ "click_shell" ];
 
   preCheck = "export HOME=$(mktemp -d)";
 
   meta = with lib; {
-    description = "An extension to click that easily turns your click app into a shell utility";
+    description = "Extension to click that easily turns your click app into a shell utility";
     longDescription = ''
       This is an extension to click that easily turns your click app into a
       shell utility. It is built on top of the built in python cmd module,
diff --git a/pkgs/development/python-modules/click-spinner/default.nix b/pkgs/development/python-modules/click-spinner/default.nix
index 0c281c29ab4c6..dd9ee1c021f26 100644
--- a/pkgs/development/python-modules/click-spinner/default.nix
+++ b/pkgs/development/python-modules/click-spinner/default.nix
@@ -1,30 +1,48 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, click
-, six
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  six,
+  versioneer,
 }:
 
 buildPythonPackage rec {
   pname = "click-spinner";
   version = "0.1.10";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "h+rPnXKYlzol12Fe9X1Hgq6/kTpTK7pLKKN+Nm6XXa8=";
+    hash = "sha256-h+rPnXKYlzol12Fe9X1Hgq6/kTpTK7pLKKN+Nm6XXa8=";
   };
 
+  postPatch = ''
+    rm versioneer.py
+  '';
+
+  build-system = [
+    setuptools
+    versioneer
+  ];
+
   nativeCheckInputs = [
     click
-    six
     pytestCheckHook
+    six
   ];
 
+  pythonImportsCheck = [ "click_spinner" ];
+
   meta = with lib; {
     description = "Add support for showwing that command line app is active to Click";
     homepage = "https://github.com/click-contrib/click-spinner";
+    changelog = "https://github.com/click-contrib/click-spinner/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/click-threading/default.nix b/pkgs/development/python-modules/click-threading/default.nix
index 771678354ca09..b69c7f7c93aa9 100644
--- a/pkgs/development/python-modules/click-threading/default.nix
+++ b/pkgs/development/python-modules/click-threading/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
-, click
-, isPy3k
-, futures ? null
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  click,
+  isPy3k,
+  futures ? null,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/click/default.nix b/pkgs/development/python-modules/click/default.nix
index eb32212cde237..3bda7fb00e70b 100644
--- a/pkgs/development/python-modules/click/default.nix
+++ b/pkgs/development/python-modules/click/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, importlib-metadata
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  importlib-metadata,
+  pytestCheckHook,
 
   # large-rebuild downstream dependencies and applications
-, flask
-, black
-, magic-wormhole
-, mitmproxy
-, typer
+  flask,
+  black,
+  magic-wormhole,
+  mitmproxy,
+  typer,
 }:
 
 buildPythonPackage rec {
@@ -27,13 +28,9 @@ buildPythonPackage rec {
     hash = "sha256-8YqIKRyw5MegnRwAO7YTCZateEFQFTH2PHpE8gTPTow=";
   };
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # test fails with filename normalization on zfs
@@ -41,7 +38,13 @@ buildPythonPackage rec {
   ];
 
   passthru.tests = {
-    inherit black flask magic-wormhole mitmproxy typer;
+    inherit
+      black
+      flask
+      magic-wormhole
+      mitmproxy
+      typer
+      ;
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/clickclick/default.nix b/pkgs/development/python-modules/clickclick/default.nix
index 7822dbc8bcaff..117e5c0c41966 100644
--- a/pkgs/development/python-modules/clickclick/default.nix
+++ b/pkgs/development/python-modules/clickclick/default.nix
@@ -1,4 +1,14 @@
-{ lib, buildPythonPackage, fetchFromGitHub, flake8, click, pyyaml, six, pytestCheckHook, pytest-cov }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flake8,
+  click,
+  pyyaml,
+  six,
+  pytestCheckHook,
+  pytest-cov,
+}:
 
 buildPythonPackage rec {
   pname = "clickclick";
@@ -12,18 +22,23 @@ buildPythonPackage rec {
     sha256 = "1rij9ws9nhsmagiy1vclzliiqfkxi006rf65qvrw1k3sm2s8p5g0";
   };
 
-  nativeCheckInputs = [ pytestCheckHook pytest-cov ];
-  propagatedBuildInputs = [ flake8 click pyyaml six ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-cov
+  ];
+  propagatedBuildInputs = [
+    flake8
+    click
+    pyyaml
+    six
+  ];
 
   # test_cli asserts on exact quoting style of output
-  disabledTests = [
-    "test_cli"
-  ];
+  disabledTests = [ "test_cli" ];
 
   meta = with lib; {
     description = "Click command line utilities";
     homepage = "https://github.com/hjacobs/python-clickclick/";
     license = licenses.asl20;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/clickgen/default.nix b/pkgs/development/python-modules/clickgen/default.nix
index b37c6382a821e..50b2f1b1d241b 100644
--- a/pkgs/development/python-modules/clickgen/default.nix
+++ b/pkgs/development/python-modules/clickgen/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, attrs
-, pillow
-, toml
-, numpy
-, pyyaml
-, python
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  attrs,
+  pillow,
+  toml,
+  numpy,
+  pyyaml,
+  python,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "clickgen";
-  version = "2.2.2";
+  version = "2.2.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -23,7 +24,7 @@ buildPythonPackage rec {
     owner = "ful1e5";
     repo = "clickgen";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Lsb0FvJohwsXofpcq7OgWfhl/3qVxAqY0wdvum6ywSQ=";
+    hash = "sha256-yFEkE1VyeHBuebpsumc6CTvv2kpAw7XAWlyUlXibqz0=";
   };
 
   propagatedBuildInputs = [
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     toml
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postInstall = ''
     # Copying scripts directory needed by clickgen script at $out/bin/
@@ -47,7 +46,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/ful1e5/clickgen";
-    description = "The hassle-free cursor building toolbox";
+    description = "Hassle-free cursor building toolbox";
     longDescription = ''
       clickgen is API for building X11 and Windows Cursors from
       .png files. clickgen is using anicursorgen and xcursorgen under the hood.
diff --git a/pkgs/development/python-modules/clickhouse-cityhash/default.nix b/pkgs/development/python-modules/clickhouse-cityhash/default.nix
index ecb3f3bf290e7..87094e3f52442 100644
--- a/pkgs/development/python-modules/clickhouse-cityhash/default.nix
+++ b/pkgs/development/python-modules/clickhouse-cityhash/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchPypi
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  pythonImportsCheck = [
-    "clickhouse_cityhash"
-  ];
+  pythonImportsCheck = [ "clickhouse_cityhash" ];
 
   meta = with lib; {
     description = "Python-bindings for CityHash, a fast non-cryptographic hash algorithm";
diff --git a/pkgs/development/python-modules/clickhouse-cli/default.nix b/pkgs/development/python-modules/clickhouse-cli/default.nix
index 170d152393039..15a700f684e1c 100644
--- a/pkgs/development/python-modules/clickhouse-cli/default.nix
+++ b/pkgs/development/python-modules/clickhouse-cli/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonRelaxDepsHook
-, setuptools
-, click
-, prompt-toolkit
-, pygments
-, requests
-, sqlparse
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  click,
+  prompt-toolkit,
+  pygments,
+  requests,
+  sqlparse,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +21,10 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
-  pythonRelaxDeps = [
-    "sqlparse"
-  ];
+  pythonRelaxDeps = [ "sqlparse" ];
 
   propagatedBuildInputs = [
     click
@@ -40,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "clickhouse_cli" ];
 
   meta = with lib; {
-    description = "A third-party client for the Clickhouse DBMS server";
+    description = "Third-party client for the Clickhouse DBMS server";
     mainProgram = "clickhouse-cli";
     homepage = "https://github.com/hatarist/clickhouse-cli";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/clickhouse-connect/default.nix b/pkgs/development/python-modules/clickhouse-connect/default.nix
index e7bf0aa8e036b..d5300b5499a8e 100644
--- a/pkgs/development/python-modules/clickhouse-connect/default.nix
+++ b/pkgs/development/python-modules/clickhouse-connect/default.nix
@@ -1,29 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
   # build_requires
-, cython
+  cython,
   # install_requires
-, certifi
-, importlib-metadata
-, urllib3
-, pytz
-, zstandard
-, lz4
+  certifi,
+  importlib-metadata,
+  urllib3,
+  pytz,
+  zstandard,
+  lz4,
   # extras_require
-, sqlalchemy
-, numpy
-, pandas
-, pyarrow
-, orjson
+  sqlalchemy,
+  numpy,
+  pandas,
+  pyarrow,
+  orjson,
   # not in tests_require, but should be
-, pytest-dotenv
+  pytest-dotenv,
 }:
 buildPythonPackage rec {
   pname = "clickhouse-connect";
-  version = "0.7.8";
+  version = "0.7.12";
 
   format = "setuptools";
 
@@ -33,7 +34,7 @@ buildPythonPackage rec {
     repo = "clickhouse-connect";
     owner = "ClickHouse";
     rev = "refs/tags/v${version}";
-    hash = "sha256-tdf9aYKAFpRyaqGGNxXs4bzmY6mdhKZ5toFBJRmD2VY=";
+    hash = "sha256-UJSg/ADxVsO4xuym8NGjbgQafWmu7J3Is2hKvObYhU8=";
   };
 
   nativeBuildInputs = [ cython ];
@@ -49,9 +50,10 @@ buildPythonPackage rec {
     lz4
   ];
 
-  nativeCheckInputs = [ pytestCheckHook pytest-dotenv ]
-    ++ passthru.optional-dependencies.sqlalchemy
-    ++ passthru.optional-dependencies.numpy;
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-dotenv
+  ] ++ passthru.optional-dependencies.sqlalchemy ++ passthru.optional-dependencies.numpy;
 
   # these tests require a running clickhouse instance
   disabledTestPaths = [
diff --git a/pkgs/development/python-modules/clickhouse-driver/default.nix b/pkgs/development/python-modules/clickhouse-driver/default.nix
index 1ddaa5398d9d9..342b6954958c6 100644
--- a/pkgs/development/python-modules/clickhouse-driver/default.nix
+++ b/pkgs/development/python-modules/clickhouse-driver/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, clickhouse-cityhash
-, cython
-, fetchFromGitHub
-, freezegun
-, lz4
-, mock
-, nose
-, pytestCheckHook
-, pytest-xdist
-, pytz
-, setuptools
-, tzlocal
-, zstd
+{
+  lib,
+  buildPythonPackage,
+  clickhouse-cityhash,
+  cython,
+  fetchFromGitHub,
+  freezegun,
+  lz4,
+  mock,
+  nose,
+  pytestCheckHook,
+  pytest-xdist,
+  pytz,
+  setuptools,
+  tzlocal,
+  zstd,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/cliff/default.nix b/pkgs/development/python-modules/cliff/default.nix
index f36ccba9718ff..cca72fa51ef0d 100644
--- a/pkgs/development/python-modules/cliff/default.nix
+++ b/pkgs/development/python-modules/cliff/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, autopage
-, cmd2
-, importlib-metadata
-, installShellFiles
-, openstackdocstheme
-, pbr
-, prettytable
-, pyparsing
-, pyyaml
-, stevedore
-, sphinx
-, callPackage
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  autopage,
+  cmd2,
+  importlib-metadata,
+  installShellFiles,
+  openstackdocstheme,
+  pbr,
+  prettytable,
+  pyparsing,
+  pyyaml,
+  stevedore,
+  sphinx,
+  callPackage,
 }:
 
 buildPythonPackage rec {
   pname = "cliff";
-  version = "4.6.0";
+  version = "4.7.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LzjOi9HqSVjWbxWwZqxH5l1h9gC5MZuSHhLp6cvNmdA=";
+    hash = "sha256-bKRfjfUZu8ByLGEEnee35EKkZfp/P1Urltc1+ib9WyY=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/cliff/tests.nix b/pkgs/development/python-modules/cliff/tests.nix
index a2738cc590e8c..135cccba658a0 100644
--- a/pkgs/development/python-modules/cliff/tests.nix
+++ b/pkgs/development/python-modules/cliff/tests.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, cliff
-, docutils
-, stestr
-, testscenarios
+{
+  buildPythonPackage,
+  cliff,
+  docutils,
+  stestr,
+  testscenarios,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/clifford/default.nix b/pkgs/development/python-modules/clifford/default.nix
index 6a590af483a75..7c19348d32f0f 100644
--- a/pkgs/development/python-modules/clifford/default.nix
+++ b/pkgs/development/python-modules/clifford/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, h5py
-, ipython
-, numba
-, numpy
-, pytestCheckHook
-, setuptools
-, scipy
-, sparse
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  h5py,
+  ipython,
+  numba,
+  numpy,
+  pytestCheckHook,
+  setuptools,
+  scipy,
+  sparse,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-eVE8FrD0YHoRreY9CrNb8v4v4KrG83ZU0oFz+V+p+Q0=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     h5py
diff --git a/pkgs/development/python-modules/cligj/default.nix b/pkgs/development/python-modules/cligj/default.nix
index 666a143e96207..2b22ba792ca41 100644
--- a/pkgs/development/python-modules/cligj/default.nix
+++ b/pkgs/development/python-modules/cligj/default.nix
@@ -1,5 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, click, pytest, glibcLocales
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  click,
+  pytest,
+  glibcLocales,
 }:
 
 buildPythonPackage rec {
@@ -14,11 +19,12 @@ buildPythonPackage rec {
     hash = "sha256-0f9+I6ozX93Vn0l7+WR0mpddDZymJQ3+Krovt6co22Y=";
   };
 
-  propagatedBuildInputs = [
-    click
-  ];
+  propagatedBuildInputs = [ click ];
 
-  nativeCheckInputs = [ pytest glibcLocales ];
+  nativeCheckInputs = [
+    pytest
+    glibcLocales
+  ];
 
   checkPhase = ''
     LC_ALL=en_US.utf-8 pytest tests
diff --git a/pkgs/development/python-modules/clikit/default.nix b/pkgs/development/python-modules/clikit/default.nix
index 48ed42ffb8e3f..0ecca4ea0fa8b 100644
--- a/pkgs/development/python-modules/clikit/default.nix
+++ b/pkgs/development/python-modules/clikit/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy27
-, pythonAtLeast
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy27,
+  pythonAtLeast,
+  poetry-core,
 
-# propagates
-, pylev
-, pastel
+  # propagates
+  pylev,
+  pastel,
 
-# python36+
-, crashtest
+  # python36+
+  crashtest,
 
-# python2
-, typing
-, enum34
+  # python2
+  typing,
+  enum34,
 
-# tests
-, pytest-mock
-, pytestCheckHook
+  # tests
+  pytest-mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -39,29 +40,29 @@ buildPythonPackage rec {
       'crashtest = { version = "*", python = "^3.6" }'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    pylev
-    pastel
-  ]
-  ++ lib.optionals (pythonAtLeast "3.6") [ crashtest ]
-  ++ lib.optionals isPy27 [ typing enum34 ];
+  propagatedBuildInputs =
+    [
+      pylev
+      pastel
+    ]
+    ++ lib.optionals (pythonAtLeast "3.6") [ crashtest ]
+    ++ lib.optionals isPy27 [
+      typing
+      enum34
+    ];
 
   nativeCheckInputs = [
     pytest-mock
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "clikit"
-  ];
+  pythonImportsCheck = [ "clikit" ];
 
   meta = with lib; {
     homepage = "https://github.com/sdispater/clikit";
-    description = "A group of utilities to build beautiful and testable command line interfaces";
+    description = "Group of utilities to build beautiful and testable command line interfaces";
     license = licenses.mit;
     maintainers = with maintainers; [ jakewaksbaum ];
   };
diff --git a/pkgs/development/python-modules/clint/default.nix b/pkgs/development/python-modules/clint/default.nix
index deb62fbfcb460..87bc6568c5873 100644
--- a/pkgs/development/python-modules/clint/default.nix
+++ b/pkgs/development/python-modules/clint/default.nix
@@ -1,37 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, mock
-, blessings
-, nose
-, pillow
-, args
-, pkgs
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pytestCheckHook,
+  args,
 }:
 
 buildPythonPackage rec {
   pname = "clint";
   version = "0.5.1";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1an5lkkqk1zha47198p42ji3m94xmzx1a03dn7866m87n4r4q8h5";
+    hash = "sha256-BSJMMrEHVWPQsW0AFfqvnaQ6ohTkohQOUfCHieekxao=";
   };
 
-  LC_ALL="en_US.UTF-8";
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [ pillow blessings args ];
+  dependencies = [ args ];
 
-  # nose-progressive and clint are not actively maintained
-  # no longer compatible as behavior demand 2to3, which was removed
-  # in setuptools>=58
-  doCheck  = false;
-  nativeCheckInputs = [ mock nose pkgs.glibcLocales ];
-  checkPhase = ''
-    ${python.interpreter} test_clint.py
-  '';
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "clint" ];
 
@@ -41,5 +31,4 @@ buildPythonPackage rec {
     license = licenses.isc;
     maintainers = with maintainers; [ domenkozar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/clintermission/default.nix b/pkgs/development/python-modules/clintermission/default.nix
index 9b439fa160848..5fed44529a855 100644
--- a/pkgs/development/python-modules/clintermission/default.nix
+++ b/pkgs/development/python-modules/clintermission/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, prompt-toolkit
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  prompt-toolkit,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-e7C9IDr+mhVSfU8lMywjX1BYwFo/qegPNzabak7UPcY=";
   };
 
-  propagatedBuildInputs = [
-    prompt-toolkit
-  ];
+  propagatedBuildInputs = [ prompt-toolkit ];
 
   # repo contains no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "clintermission"
-  ];
+  pythonImportsCheck = [ "clintermission" ];
 
   meta = with lib; {
     description = "Non-fullscreen command-line selection menu";
diff --git a/pkgs/development/python-modules/clip-anytorch/default.nix b/pkgs/development/python-modules/clip-anytorch/default.nix
index d17a1ad088fdb..97070159ef64a 100644
--- a/pkgs/development/python-modules/clip-anytorch/default.nix
+++ b/pkgs/development/python-modules/clip-anytorch/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# dependencies
-, ftfy
-, regex
-, tqdm
-, torch
-, torchvision
-
-# tests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # dependencies
+  ftfy,
+  regex,
+  tqdm,
+  torch,
+  torchvision,
+
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -33,16 +34,12 @@ buildPythonPackage rec {
     torchvision
   ];
 
-  pythonImportsCheck = [
-    "clip"
-  ];
+  pythonImportsCheck = [ "clip" ];
 
   # all tests require network access
   doCheck = false;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export HOME=$TMPDIR
diff --git a/pkgs/development/python-modules/clip/default.nix b/pkgs/development/python-modules/clip/default.nix
index bf10f5be593fc..e5b193c9caa15 100644
--- a/pkgs/development/python-modules/clip/default.nix
+++ b/pkgs/development/python-modules/clip/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, ftfy
-, lib
-, regex
-, torch
-, torchvision
-, tqdm
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  ftfy,
+  lib,
+  regex,
+  torch,
+  torchvision,
+  tqdm,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/clize/default.nix b/pkgs/development/python-modules/clize/default.nix
index d708cd93a4ae0..f87471c62c44e 100644
--- a/pkgs/development/python-modules/clize/default.nix
+++ b/pkgs/development/python-modules/clize/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, attrs
-, buildPythonPackage
-, docutils
-, fetchPypi
-, od
-, pygments
-, pytestCheckHook
-, pythonOlder
-, python-dateutil
-, repeated-test
-, setuptools-scm
-, sigtools
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  docutils,
+  fetchPypi,
+  od,
+  pygments,
+  pytestCheckHook,
+  pythonOlder,
+  python-dateutil,
+  repeated-test,
+  setuptools-scm,
+  sigtools,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-BH9aRHNgJxirG4VnKn4VMDOHF41agcJ13EKd+sHstRA=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     attrs
@@ -37,9 +36,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    datetime = [
-      python-dateutil
-    ];
+    datetime = [ python-dateutil ];
   };
 
   nativeCheckInputs = [
@@ -49,9 +46,7 @@ buildPythonPackage rec {
     repeated-test
   ];
 
-  pythonImportsCheck = [
-    "clize"
-  ];
+  pythonImportsCheck = [ "clize" ];
 
   meta = with lib; {
     description = "Command-line argument parsing for Python";
diff --git a/pkgs/development/python-modules/clldutils/default.nix b/pkgs/development/python-modules/clldutils/default.nix
index f5b975f8467a8..0018a2744d9c7 100644
--- a/pkgs/development/python-modules/clldutils/default.nix
+++ b/pkgs/development/python-modules/clldutils/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, attrs
-, buildPythonPackage
-, colorlog
-, fetchFromGitHub
-, git
-, lxml
-, markdown
-, markupsafe
-, mock
-, postgresql
-, pylatexenc
-, pytest-mock
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, setuptools
-, tabulate
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  colorlog,
+  fetchFromGitHub,
+  git,
+  lxml,
+  markdown,
+  markupsafe,
+  mock,
+  postgresql,
+  pylatexenc,
+  pytest-mock,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  setuptools,
+  tabulate,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
       --replace-fail "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     attrs
diff --git a/pkgs/development/python-modules/cloudevents/default.nix b/pkgs/development/python-modules/cloudevents/default.nix
index d54b20975ca30..04184c4a177ad 100644
--- a/pkgs/development/python-modules/cloudevents/default.nix
+++ b/pkgs/development/python-modules/cloudevents/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, deprecation
-, flask
-, pydantic
-, pytestCheckHook
-, requests
-, sanic
-, sanic-testing
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  deprecation,
+  flask,
+  pydantic,
+  pytestCheckHook,
+  requests,
+  sanic,
+  sanic-testing,
 }:
 
 buildPythonPackage rec {
@@ -41,9 +42,7 @@ buildPythonPackage rec {
     sanic-testing
   ];
 
-  disabledTestPaths = [
-    "samples/http-image-cloudevents/image_sample_test.py"
-  ];
+  disabledTestPaths = [ "samples/http-image-cloudevents/image_sample_test.py" ];
 
   meta = with lib; {
     description = "Python SDK for CloudEvents";
diff --git a/pkgs/development/python-modules/cloudflare/default.nix b/pkgs/development/python-modules/cloudflare/default.nix
index 1bfdafaba5a4a..8765dc9e39f0b 100644
--- a/pkgs/development/python-modules/cloudflare/default.nix
+++ b/pkgs/development/python-modules/cloudflare/default.nix
@@ -1,30 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, requests
-, pyyaml
-, jsonlines
-, pythonOlder
-, pytestCheckHook
-, pytz
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  requests,
+  pyyaml,
+  jsonlines,
+  pythonOlder,
+  pytestCheckHook,
+  pytz,
 }:
 
 buildPythonPackage rec {
   pname = "cloudflare";
-  version = "2.19.2";
+  version = "2.20.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ENS5ayrd7gffo2meChZ9930qjVq3+G5lkOqm6ofW3Bg=";
+    hash = "sha256-Rq78Od+qI2XWObQjzsLNU1CuERU8ckfT6zVFvc8Bpoo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     requests
@@ -35,9 +34,7 @@ buildPythonPackage rec {
   # tests require networking
   doCheck = false;
 
-  pythonImportsCheck = [
-    "CloudFlare"
-  ];
+  pythonImportsCheck = [ "CloudFlare" ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/cloudpathlib/default.nix b/pkgs/development/python-modules/cloudpathlib/default.nix
index 063ba6ce10563..3689a9d0dab46 100644
--- a/pkgs/development/python-modules/cloudpathlib/default.nix
+++ b/pkgs/development/python-modules/cloudpathlib/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, flit-core
-, importlib-metadata
-, typing-extensions
-, cloudpathlib
-, azure-storage-blob
-, google-cloud-storage
-, boto3
-, psutil
-, pydantic
-, pytest7CheckHook
-, pytest-cases
-, pytest-cov
-, pytest-xdist
-, python-dotenv
-, shortuuid
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  flit-core,
+  importlib-metadata,
+  typing-extensions,
+  cloudpathlib,
+  azure-storage-blob,
+  google-cloud-storage,
+  boto3,
+  psutil,
+  pydantic,
+  pytest7CheckHook,
+  pytest-cases,
+  pytest-cov,
+  pytest-xdist,
+  python-dotenv,
+  shortuuid,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
     hash = "sha256-RrdRUqQ3QyMUpTi1FEsSXK6WS37r77SdPBH1oVVvSw0=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     importlib-metadata
@@ -43,18 +42,10 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    all = [
-      cloudpathlib
-    ];
-    azure = [
-      azure-storage-blob
-    ];
-    gs = [
-      google-cloud-storage
-    ];
-    s3 = [
-      boto3
-    ];
+    all = [ cloudpathlib ];
+    azure = [ azure-storage-blob ];
+    gs = [ google-cloud-storage ];
+    s3 = [ boto3 ];
   };
 
   pythonImportsCheck = [ "cloudpathlib" ];
diff --git a/pkgs/development/python-modules/cloudpickle/default.nix b/pkgs/development/python-modules/cloudpickle/default.nix
index fc8f92f3fa8da..b957df2991d18 100644
--- a/pkgs/development/python-modules/cloudpickle/default.nix
+++ b/pkgs/development/python-modules/cloudpickle/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-
-# build-system
-, flit-core
-
-# tests
-, psutil
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # build-system
+  flit-core,
+
+  # tests
+  psutil,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,18 +26,14 @@ buildPythonPackage rec {
     hash = "sha256-UeKVwzT0m4fhEVnG7TvQsFR99JsmwwoXmr+rWnTCeJU=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   nativeCheckInputs = [
     psutil
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "cloudpickle"
-  ];
+  pythonImportsCheck = [ "cloudpickle" ];
 
   disabledTestPaths = [
     # ModuleNotFoundError: No module named 'psutil'
diff --git a/pkgs/development/python-modules/cloudscraper/default.nix b/pkgs/development/python-modules/cloudscraper/default.nix
index b5cb302765c6b..8b20da7c7f457 100644
--- a/pkgs/development/python-modules/cloudscraper/default.nix
+++ b/pkgs/development/python-modules/cloudscraper/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, requests
-, requests-toolbelt
-, pyparsing
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  requests,
+  requests-toolbelt,
+  pyparsing,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
   # nixpkgs yet, and also aren't included in the PyPI bundle.  TODO.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "cloudscraper"
-  ];
+  pythonImportsCheck = [ "cloudscraper" ];
 
   meta = with lib; {
     description = "Python module to bypass Cloudflare's anti-bot page";
diff --git a/pkgs/development/python-modules/cloudsmith-api/default.nix b/pkgs/development/python-modules/cloudsmith-api/default.nix
index e49a0eb5f92f4..bb2499c258bad 100644
--- a/pkgs/development/python-modules/cloudsmith-api/default.nix
+++ b/pkgs/development/python-modules/cloudsmith-api/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, certifi
-, fetchPypi
-, python-dateutil
-, pythonOlder
-, six
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  certifi,
+  fetchPypi,
+  python-dateutil,
+  pythonOlder,
+  six,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
   # Wheels have no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "cloudsmith_api"
-  ];
+  pythonImportsCheck = [ "cloudsmith_api" ];
 
   meta = with lib; {
     description = "Cloudsmith API Client";
diff --git a/pkgs/development/python-modules/cloudsplaining/default.nix b/pkgs/development/python-modules/cloudsplaining/default.nix
index 7c559db4337ae..a2a472836f2f5 100644
--- a/pkgs/development/python-modules/cloudsplaining/default.nix
+++ b/pkgs/development/python-modules/cloudsplaining/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, boto3
-, botocore
-, buildPythonPackage
-, cached-property
-, click
-, click-option-group
-, fetchFromGitHub
-, jinja2
-, markdown
-, policy-sentry
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, schema
+{
+  lib,
+  boto3,
+  botocore,
+  buildPythonPackage,
+  cached-property,
+  click,
+  click-option-group,
+  fetchFromGitHub,
+  jinja2,
+  markdown,
+  policy-sentry,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  schema,
 }:
 
 buildPythonPackage rec {
@@ -42,9 +43,7 @@ buildPythonPackage rec {
     schema
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     # Ignore pinned versions
@@ -56,9 +55,7 @@ buildPythonPackage rec {
     "test_statement_details_for_allow_not_action"
   ];
 
-  pythonImportsCheck = [
-    "cloudsplaining"
-  ];
+  pythonImportsCheck = [ "cloudsplaining" ];
 
   meta = with lib; {
     description = "Python module for AWS IAM security assessment";
diff --git a/pkgs/development/python-modules/cloup/default.nix b/pkgs/development/python-modules/cloup/default.nix
index ad66af8123bf5..3d21118aca376 100644
--- a/pkgs/development/python-modules/cloup/default.nix
+++ b/pkgs/development/python-modules/cloup/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, click
-, setuptools-scm
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  click,
+  setuptools-scm,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -20,23 +21,13 @@ buildPythonPackage rec {
     hash = "sha256-ySsmHHu34TAEkw8/tLPtrY3i0fEplNzdvgW8IZkEQ8U=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    click
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ click ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "cloup"
-  ];
+  pythonImportsCheck = [ "cloup" ];
 
   meta = with lib; {
     homepage = "https://github.com/janLuke/cloup";
@@ -46,6 +37,6 @@ buildPythonPackage rec {
       Enriches Click with option groups, constraints, command aliases, help sections for subcommands, themes for --help and other stuff.
     '';
     license = licenses.bsd3;
-    maintainers = with maintainers; [ friedelino ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/clr-loader/default.nix b/pkgs/development/python-modules/clr-loader/default.nix
index c0122a0d3d9dc..270c68e0fa2fb 100644
--- a/pkgs/development/python-modules/clr-loader/default.nix
+++ b/pkgs/development/python-modules/clr-loader/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pytestCheckHook
-, dotnetCorePackages
-, setuptools
-, setuptools-scm
-, wheel
-, buildDotnetModule
-, cffi
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pytestCheckHook,
+  dotnetCorePackages,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  buildDotnetModule,
+  cffi,
 }:
 
 let
@@ -23,7 +24,10 @@ let
   # build is done in `buildPythonPackage` below.
   dotnet-build = buildDotnetModule {
     inherit pname version src;
-    projectFile = [ "netfx_loader/ClrLoader.csproj" "example/example.csproj" ];
+    projectFile = [
+      "netfx_loader/ClrLoader.csproj"
+      "example/example.csproj"
+    ];
     nugetDeps = ./deps.nix;
   };
 in
@@ -39,13 +43,9 @@ buildPythonPackage {
     dotnetCorePackages.sdk_6_0
   ];
 
-  propagatedBuildInputs = [
-    cffi
-  ];
+  propagatedBuildInputs = [ cffi ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # TODO: mono does not work due to https://github.com/NixOS/nixpkgs/issues/7307
diff --git a/pkgs/development/python-modules/clr-loader/deps.nix b/pkgs/development/python-modules/clr-loader/deps.nix
index df303afaa791f..10d5aa52f3e40 100644
--- a/pkgs/development/python-modules/clr-loader/deps.nix
+++ b/pkgs/development/python-modules/clr-loader/deps.nix
@@ -1,11 +1,36 @@
 # This file was automatically generated by passthru.fetch-deps.
 # Please dont edit it manually, your changes might get overwritten!
 
-{ fetchNuGet }: [
-  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
-  (fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies"; version = "1.0.0"; sha256 = "0na724xhvqm63vq9y18fl9jw9q2v99bdwr353378s5fsi11qzxp9"; })
-  (fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net461"; version = "1.0.0"; sha256 = "00vkn4c6i0rn1l9pv912y0wgb9h6ks76qah8hvk441nari8fqbm1"; })
-  (fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net47"; version = "1.0.0"; sha256 = "00v56phfn01ahf4fq7zanz6hjyzpp00hkkk4a190l0dywrv387i6"; })
-  (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; })
-  (fetchNuGet { pname = "NXPorts"; version = "1.0.0"; sha256 = "02zva596c3vsnlhi1b1391vbfl8a6142dvm61r8j1c70b07916lj"; })
+{ fetchNuGet }:
+[
+  (fetchNuGet {
+    pname = "Microsoft.NETCore.Platforms";
+    version = "1.1.0";
+    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.NETFramework.ReferenceAssemblies";
+    version = "1.0.0";
+    sha256 = "0na724xhvqm63vq9y18fl9jw9q2v99bdwr353378s5fsi11qzxp9";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.NETFramework.ReferenceAssemblies.net461";
+    version = "1.0.0";
+    sha256 = "00vkn4c6i0rn1l9pv912y0wgb9h6ks76qah8hvk441nari8fqbm1";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.NETFramework.ReferenceAssemblies.net47";
+    version = "1.0.0";
+    sha256 = "00v56phfn01ahf4fq7zanz6hjyzpp00hkkk4a190l0dywrv387i6";
+  })
+  (fetchNuGet {
+    pname = "NETStandard.Library";
+    version = "2.0.3";
+    sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y";
+  })
+  (fetchNuGet {
+    pname = "NXPorts";
+    version = "1.0.0";
+    sha256 = "02zva596c3vsnlhi1b1391vbfl8a6142dvm61r8j1c70b07916lj";
+  })
 ]
diff --git a/pkgs/development/python-modules/clustershell/default.nix b/pkgs/development/python-modules/clustershell/default.nix
index c8fbbc7ad9d10..964b2724d07c3 100644
--- a/pkgs/development/python-modules/clustershell/default.nix
+++ b/pkgs/development/python-modules/clustershell/default.nix
@@ -1,13 +1,14 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, pyyaml
-, openssh
-, nose
-, bc
-, hostname
-, bash
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyyaml,
+  openssh,
+  nose,
+  bc,
+  hostname,
+  bash,
 }:
 
 buildPythonPackage rec {
@@ -56,6 +57,8 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "ClusterShell" ];
 
+  doCheck = false; # tests often get stuck
+
   # Many tests want to open network connections
   # https://github.com/cea-hpc/clustershell#test-suite
   #
@@ -68,10 +71,9 @@ buildPythonPackage rec {
     rm tests/TaskDistantPdshMixin.py
     rm tests/TaskDistantPdshTest.py
     rm tests/TaskRLimitsTest.py
+    rm tests/TreeGatewayTest.py
 
     nosetests -v \
-      -e test_channel_ctl_shell_remote1 \
-      -e test_channel_ctl_shell_remote2 \
       -e test_fromall_grouplist \
       -e test_rank_placeholder \
       -e test_engine_on_the_fly_launch \
@@ -91,9 +93,6 @@ buildPythonPackage rec {
       -e testClushConfigSetRlimit  \
       -e testTimerInvalidateInHandler \
       -e testTimerSetNextFireInHandler \
-      -e test_channel_ctl_shell_mlocal1 \
-      -e test_channel_ctl_shell_mlocal2 \
-      -e test_channel_ctl_shell_mlocal3 \
       -e test_node_placeholder \
     tests/*.py
   '';
diff --git a/pkgs/development/python-modules/cma/default.nix b/pkgs/development/python-modules/cma/default.nix
index 82fdcf07153d5..f5bec35c1c5b4 100644
--- a/pkgs/development/python-modules/cma/default.nix
+++ b/pkgs/development/python-modules/cma/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, python
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,18 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-+UJI3hDVbDMfRF4bkwHED3eJCHzxS2hO4YPUzJqcoQI=";
   };
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   checkPhase = ''
     # At least one doctest fails, thus only limited amount of files is tested
     ${python.executable} -m cma.test interfaces.py purecma.py logger.py optimization_tools.py transformations.py
   '';
 
-  pythonImportsCheck = [
-    "cma"
-  ];
+  pythonImportsCheck = [ "cma" ];
 
   meta = with lib; {
     description = "Library for Covariance Matrix Adaptation Evolution Strategy for non-linear numerical optimization";
diff --git a/pkgs/development/python-modules/cmaes/default.nix b/pkgs/development/python-modules/cmaes/default.nix
index 2e0afcf381626..4ed78fff19aeb 100644
--- a/pkgs/development/python-modules/cmaes/default.nix
+++ b/pkgs/development/python-modules/cmaes/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, hypothesis
-, numpy
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  hypothesis,
+  numpy,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-1mXulG/yqNwKQKDFGBh8uxIYOPSsm8+PNp++CSswc50=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   nativeCheckInputs = [
     hypothesis
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "cmaes"
-  ];
+  pythonImportsCheck = [ "cmaes" ];
 
   disabledTests = [
     # Disable time-sensitive test
diff --git a/pkgs/development/python-modules/cmake/default.nix b/pkgs/development/python-modules/cmake/default.nix
index c9ee7d11c8fbc..5a6afc13602b0 100644
--- a/pkgs/development/python-modules/cmake/default.nix
+++ b/pkgs/development/python-modules/cmake/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, flit-core
-, cmake
+{
+  lib,
+  buildPythonPackage,
+  flit-core,
+  cmake,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
 
   inherit (cmake) setupHooks;
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  pythonImportsCheck = [
-    "cmake"
-  ];
+  pythonImportsCheck = [ "cmake" ];
 
   meta = with lib; {
     description = "CMake is an open-source, cross-platform family of tools designed to build, test and package software";
diff --git a/pkgs/development/python-modules/cmarkgfm/default.nix b/pkgs/development/python-modules/cmarkgfm/default.nix
index 1c5e80961d54b..23a38b8377e3e 100644
--- a/pkgs/development/python-modules/cmarkgfm/default.nix
+++ b/pkgs/development/python-modules/cmarkgfm/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, cffi
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  cffi,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,21 +19,13 @@ buildPythonPackage rec {
     hash = "sha256-ogjBcm4SujhRJc7yxtN1xBxd6kzCZzp3r3ErHb8HTpA=";
   };
 
-  propagatedNativeBuildInputs = [
-    cffi
-  ];
+  propagatedNativeBuildInputs = [ cffi ];
 
-  propagatedBuildInputs = [
-    cffi
-  ];
+  propagatedBuildInputs = [ cffi ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "cmarkgfm"
-  ];
+  pythonImportsCheck = [ "cmarkgfm" ];
 
   meta = with lib; {
     description = "Minimal bindings to GitHub's fork of cmark";
diff --git a/pkgs/development/python-modules/cmd2-ext-test/default.nix b/pkgs/development/python-modules/cmd2-ext-test/default.nix
index 4cdf9ccf8dcd8..3f061b7449be4 100644
--- a/pkgs/development/python-modules/cmd2-ext-test/default.nix
+++ b/pkgs/development/python-modules/cmd2-ext-test/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, cmd2
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  cmd2,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -19,21 +20,13 @@ buildPythonPackage rec {
     hash = "sha256-uTc+onurLilwQe0trESR3JGa5WFT1fCt3rRA7rhRpaY=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    cmd2
-  ];
+  propagatedBuildInputs = [ cmd2 ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "cmd2_ext_test"
-  ];
+  pythonImportsCheck = [ "cmd2_ext_test" ];
 
   meta = with lib; {
     description = "Plugin supports testing of a cmd2 application";
diff --git a/pkgs/development/python-modules/cmd2/default.nix b/pkgs/development/python-modules/cmd2/default.nix
index 996c11955b925..c78eda4078714 100644
--- a/pkgs/development/python-modules/cmd2/default.nix
+++ b/pkgs/development/python-modules/cmd2/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, stdenv
-, attrs
-, buildPythonPackage
-, colorama
-, fetchPypi
-, glibcLocales
-, importlib-metadata
-, pyperclip
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
-, typing-extensions
-, wcwidth
+{
+  lib,
+  stdenv,
+  attrs,
+  buildPythonPackage,
+  colorama,
+  fetchPypi,
+  glibcLocales,
+  importlib-metadata,
+  pyperclip,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  typing-extensions,
+  wcwidth,
 }:
 
 buildPythonPackage rec {
@@ -29,19 +30,19 @@ buildPythonPackage rec {
 
   LC_ALL = "en_US.UTF-8";
 
-  buildInputs = [
-    setuptools-scm
-  ];
+  buildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    attrs
-    colorama
-    pyperclip
-    wcwidth
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-    importlib-metadata
-  ];
+  propagatedBuildInputs =
+    [
+      attrs
+      colorama
+      pyperclip
+      wcwidth
+    ]
+    ++ lib.optionals (pythonOlder "3.8") [
+      typing-extensions
+      importlib-metadata
+    ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -55,22 +56,22 @@ buildPythonPackage rec {
     "test_transcript"
   ];
 
-  postPatch = ''
-    sed -i "/--cov/d" setup.cfg
-  '' + lib.optionalString stdenv.isDarwin ''
-    # Fake the impure dependencies pbpaste and pbcopy
-    mkdir bin
-    echo '#!${stdenv.shell}' > bin/pbpaste
-    echo '#!${stdenv.shell}' > bin/pbcopy
-    chmod +x bin/{pbcopy,pbpaste}
-    export PATH=$(realpath bin):$PATH
-  '';
+  postPatch =
+    ''
+      sed -i "/--cov/d" setup.cfg
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      # Fake the impure dependencies pbpaste and pbcopy
+      mkdir bin
+      echo '#!${stdenv.shell}' > bin/pbpaste
+      echo '#!${stdenv.shell}' > bin/pbcopy
+      chmod +x bin/{pbcopy,pbpaste}
+      export PATH=$(realpath bin):$PATH
+    '';
 
   doCheck = !stdenv.isDarwin;
 
-  pythonImportsCheck = [
-    "cmd2"
-  ];
+  pythonImportsCheck = [ "cmd2" ];
 
   meta = with lib; {
     description = "Enhancements for standard library's cmd module";
diff --git a/pkgs/development/python-modules/cmdline/default.nix b/pkgs/development/python-modules/cmdline/default.nix
index a5a03389b8dbf..82b901c1ce72c 100644
--- a/pkgs/development/python-modules/cmdline/default.nix
+++ b/pkgs/development/python-modules/cmdline/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pyyaml }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyyaml,
+}:
 
 buildPythonPackage rec {
   pname = "cmdline";
diff --git a/pkgs/development/python-modules/cmdstanpy/default.nix b/pkgs/development/python-modules/cmdstanpy/default.nix
index 9ca60fe3c88ef..f0de12dcc8b30 100644
--- a/pkgs/development/python-modules/cmdstanpy/default.nix
+++ b/pkgs/development/python-modules/cmdstanpy/default.nix
@@ -1,29 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, substituteAll
-, cmdstan
-, pythonRelaxDepsHook
-, setuptools
-, pandas
-, numpy
-, tqdm
-, stanio
-, xarray
-, pytestCheckHook
-, stdenv
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  substituteAll,
+  cmdstan,
+  setuptools,
+  pandas,
+  numpy,
+  tqdm,
+  stanio,
+  xarray,
+  pytestCheckHook,
+  stdenv,
 }:
 
 buildPythonPackage rec {
   pname = "cmdstanpy";
-  version = "1.2.1";
+  version = "1.2.4";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "stan-dev";
     repo = "cmdstanpy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-q+AFhWEzjYElJpiHT4h6YfZrwZJ56pv+8R+001vREyQ=";
+    hash = "sha256-SKDqLvWbzaBcL13E87kcphBJNIZfdkPp2g4SIDEKA0U=";
   };
 
   patches = [
@@ -31,6 +32,11 @@ buildPythonPackage rec {
       src = ./use-nix-cmdstan-path.patch;
       cmdstan = "${cmdstan}/opt/cmdstan";
     })
+    # Fix seed-dependent tests
+    (fetchpatch {
+      url = "https://github.com/stan-dev/cmdstanpy/commit/c72acd0b8123c02b47d5d583bdd7d8408b04562c.patch";
+      hash = "sha256-cliyDDko4spYa62DMwWBavy5pePkofJo4Kf8I0RzueM=";
+    })
   ];
 
   postPatch = ''
@@ -40,7 +46,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     setuptools
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -60,9 +65,7 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.all;
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.all;
 
   disabledTestPaths = [
     # No need to test these when using Nix
@@ -70,20 +73,25 @@ buildPythonPackage rec {
     "test/test_cxx_installation.py"
   ];
 
-  disabledTests = [
-    "test_serialization" # Pickle class mismatch errors
-    # These tests use the flag -DSTAN_THREADS which doesn't work in cmdstan (missing file)
-    "test_multi_proc_threads"
-    "test_compile_force"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_init_types" # CmdStan error: error during processing Operation not permitted
-  ];
+  disabledTests =
+    [
+      "test_serialization" # Pickle class mismatch errors
+      # These tests use the flag -DSTAN_THREADS which doesn't work in cmdstan (missing file)
+      "test_multi_proc_threads"
+      "test_compile_force"
+      # These tests require a writeable cmdstan source directory
+      "test_pathfinder_threads"
+      "test_save_profile"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      "test_init_types" # CmdStan error: error during processing Operation not permitted
+    ];
 
   pythonImportsCheck = [ "cmdstanpy" ];
 
   meta = {
     homepage = "https://github.com/stan-dev/cmdstanpy";
-    description = "A lightweight interface to Stan for Python users";
+    description = "Lightweight interface to Stan for Python users";
     changelog = "https://github.com/stan-dev/cmdstanpy/releases/tag/v${version}";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ tomasajt ];
diff --git a/pkgs/development/python-modules/cmigemo/default.nix b/pkgs/development/python-modules/cmigemo/default.nix
index 9122954a62d83..599f91f141067 100644
--- a/pkgs/development/python-modules/cmigemo/default.nix
+++ b/pkgs/development/python-modules/cmigemo/default.nix
@@ -1,4 +1,12 @@
-{ stdenv, lib, buildPythonPackage, fetchPypi, six, cmigemo, pytestCheckHook }:
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  cmigemo,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "cmigemo";
@@ -31,7 +39,7 @@ buildPythonPackage rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     homepage = "https://github.com/mooz/python-cmigemo";
-    description = "A pure python binding for C/Migemo";
+    description = "Pure python binding for C/Migemo";
     license = licenses.mit;
     maintainers = with maintainers; [ illustris ];
   };
diff --git a/pkgs/development/python-modules/cmsis-pack-manager/default.nix b/pkgs/development/python-modules/cmsis-pack-manager/default.nix
index 6043f1c155652..85ef05db3e523 100644
--- a/pkgs/development/python-modules/cmsis-pack-manager/default.nix
+++ b/pkgs/development/python-modules/cmsis-pack-manager/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, fetchFromGitHub
-, rustPlatform
-, cffi
-, libiconv
-, stdenv
-, darwin
-, buildPythonPackage
-, appdirs
-, pyyaml
-, hypothesis
-, jinja2
-, pytestCheckHook
-, unzip
+{
+  lib,
+  fetchFromGitHub,
+  rustPlatform,
+  cffi,
+  libiconv,
+  stdenv,
+  darwin,
+  buildPythonPackage,
+  appdirs,
+  pyyaml,
+  hypothesis,
+  jinja2,
+  pytestCheckHook,
+  unzip,
 }:
 
 buildPythonPackage rec {
@@ -31,12 +32,22 @@ buildPythonPackage rec {
     hash = "sha256-dO4qw5Jx0exwb4RuOhu6qvGxQZ+LayHtXDHZKADLTEI=";
   };
 
-  nativeBuildInputs = [ rustPlatform.cargoSetupHook rustPlatform.maturinBuildHook ];
+  nativeBuildInputs = [
+    rustPlatform.cargoSetupHook
+    rustPlatform.maturinBuildHook
+  ];
   propagatedNativeBuildInputs = [ cffi ];
-  buildInputs = [ libiconv ]
-    ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
-  propagatedBuildInputs = [ appdirs pyyaml ];
-  nativeCheckInputs = [ hypothesis jinja2 pytestCheckHook unzip ];
+  buildInputs = [ libiconv ] ++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.Security;
+  propagatedBuildInputs = [
+    appdirs
+    pyyaml
+  ];
+  nativeCheckInputs = [
+    hypothesis
+    jinja2
+    pytestCheckHook
+    unzip
+  ];
 
   # remove cmsis_pack_manager source directory so that binaries can be imported
   # from the installed wheel instead
@@ -53,9 +64,12 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Rust and Python module for handling CMSIS Pack files";
+    description = "Rust and Python module for handling CMSIS Pack files";
     homepage = "https://github.com/pyocd/cmsis-pack-manager";
     license = licenses.asl20;
-    maintainers = with maintainers; [ frogamic sbruder ];
+    maintainers = with maintainers; [
+      frogamic
+      sbruder
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/cmsis-svd/default.nix b/pkgs/development/python-modules/cmsis-svd/default.nix
index 4d60d4039fe60..030b6d2822764 100644
--- a/pkgs/development/python-modules/cmsis-svd/default.nix
+++ b/pkgs/development/python-modules/cmsis-svd/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, six }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "cmsis-svd";
diff --git a/pkgs/development/python-modules/cnvkit/default.nix b/pkgs/development/python-modules/cnvkit/default.nix
index 35195b1db529e..a1a5fb27770bc 100644
--- a/pkgs/development/python-modules/cnvkit/default.nix
+++ b/pkgs/development/python-modules/cnvkit/default.nix
@@ -1,28 +1,28 @@
-{ lib
-, fetchFromGitHub
-, fetchpatch
-, rPackages
-, buildPythonPackage
-, biopython
-, numpy
-, scipy
-, scikit-learn
-, pandas
-, matplotlib
-, reportlab
-, pysam
-, future
-, pillow
-, pomegranate
-, pyfaidx
-, python
-, pythonOlder
-, R
+{
+  lib,
+  fetchFromGitHub,
+  rPackages,
+  buildPythonPackage,
+  biopython,
+  numpy,
+  scipy,
+  scikit-learn,
+  pandas,
+  matplotlib,
+  reportlab,
+  pysam,
+  future,
+  pillow,
+  pomegranate,
+  pyfaidx,
+  python,
+  pythonOlder,
+  R,
 }:
 
 buildPythonPackage rec {
   pname = "cnvkit";
-  version = "0.9.10";
+  version = "0.9.11";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "etal";
     repo = "cnvkit";
     rev = "refs/tags/v${version}";
-    hash = "sha256-mCQXo3abwC06x/g51UBshqUk3dpqEVNUvx+cJ/EdYGQ=";
+    hash = "sha256-tlR1LsR+M1nkzk3CgrkkNcSGP3juv25GXddWDDWJ5ao=";
   };
 
   postPatch = ''
@@ -71,13 +71,11 @@ buildPythonPackage rec {
     popd # test/
   '';
 
-  pythonImportsCheck = [
-    "cnvlib"
-  ];
+  pythonImportsCheck = [ "cnvlib" ];
 
   meta = with lib; {
     homepage = "https://cnvkit.readthedocs.io";
-    description = "A Python library and command-line software toolkit to infer and visualize copy number from high-throughput DNA sequencing data";
+    description = "Python library and command-line software toolkit to infer and visualize copy number from high-throughput DNA sequencing data";
     changelog = "https://github.com/etal/cnvkit/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = [ maintainers.jbedo ];
diff --git a/pkgs/development/python-modules/co2signal/default.nix b/pkgs/development/python-modules/co2signal/default.nix
index 9af604c5dd84f..726e5736a0eac 100644
--- a/pkgs/development/python-modules/co2signal/default.nix
+++ b/pkgs/development/python-modules/co2signal/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -22,7 +23,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "CO2Signal" ];
 
   meta = with lib; {
-    description = "A package to access the CO2 Signal API ";
+    description = "Package to access the CO2 Signal API ";
     homepage = "https://github.com/danielsjf/CO2Signal";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ plabadens ];
diff --git a/pkgs/development/python-modules/coapthon3/default.nix b/pkgs/development/python-modules/coapthon3/default.nix
index cba1de6aab464..b565349584b38 100644
--- a/pkgs/development/python-modules/coapthon3/default.nix
+++ b/pkgs/development/python-modules/coapthon3/default.nix
@@ -1,4 +1,10 @@
-{ buildPythonPackage, cachetools, fetchFromGitHub, isPy27, lib }:
+{
+  buildPythonPackage,
+  cachetools,
+  fetchFromGitHub,
+  isPy27,
+  lib,
+}:
 
 buildPythonPackage rec {
   pname = "coapthon3";
@@ -20,7 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "Python3 library to the CoAP protocol compliant with the RFC.";
+    description = "Python3 library to the CoAP protocol compliant with the RFC";
     license = licenses.mit;
     maintainers = with maintainers; [ urbas ];
   };
diff --git a/pkgs/development/python-modules/cobs/default.nix b/pkgs/development/python-modules/cobs/default.nix
index 6b7df1bd8dd63..89f9a40e1a90b 100644
--- a/pkgs/development/python-modules/cobs/default.nix
+++ b/pkgs/development/python-modules/cobs/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/cock/default.nix b/pkgs/development/python-modules/cock/default.nix
index 62d1b15486908..762521b0c8671 100644
--- a/pkgs/development/python-modules/cock/default.nix
+++ b/pkgs/development/python-modules/cock/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, click, sortedcontainers, pyyaml }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  click,
+  sortedcontainers,
+  pyyaml,
+}:
 
 buildPythonPackage rec {
   pname = "cock";
@@ -10,7 +17,11 @@ buildPythonPackage rec {
     hash = "sha256-Hi8aFxATsYcEO6qNzZnF73V8WLTQjb6Dw2xF4VgT2o4=";
   };
 
-  propagatedBuildInputs = [ click sortedcontainers pyyaml ];
+  propagatedBuildInputs = [
+    click
+    sortedcontainers
+    pyyaml
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/pohmelie/cock";
diff --git a/pkgs/development/python-modules/coconut/default.nix b/pkgs/development/python-modules/coconut/default.nix
index 5e56c2ef139d6..e7c8e70725380 100644
--- a/pkgs/development/python-modules/coconut/default.nix
+++ b/pkgs/development/python-modules/coconut/default.nix
@@ -1,35 +1,34 @@
-{ lib
-, anyio
-, async-generator
-, buildPythonPackage
-, fetchFromGitHub
-, cpyparsing
-, ipykernel
-, mypy
-, pexpect
-, pygments
-, pytestCheckHook
-, prompt-toolkit
-, setuptools
-, tkinter
-, watchdog
+{
+  lib,
+  anyio,
+  async-generator,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cpyparsing,
+  ipykernel,
+  mypy,
+  pexpect,
+  pygments,
+  pytestCheckHook,
+  prompt-toolkit,
+  setuptools,
+  tkinter,
+  watchdog,
 }:
 
 buildPythonPackage rec {
   pname = "coconut";
-  version = "3.1.0";
+  version = "3.1.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "evhub";
     repo = "coconut";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xlA/yryUXZCU56gJ0y7M9JHgWkvXiB09ywyf0sP1o+4=";
+    hash = "sha256-AqKLSghuyha4wSaC/91bfNna7v8xyw8NLRWBjwu5Rjo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     anyio
@@ -50,13 +49,9 @@ buildPythonPackage rec {
   ];
 
   # Currently most tests have performance issues
-  pytestFlagsArray = [
-    "coconut/tests/constants_test.py"
-  ];
+  pytestFlagsArray = [ "coconut/tests/constants_test.py" ];
 
-  pythonImportsCheck = [
-    "coconut"
-  ];
+  pythonImportsCheck = [ "coconut" ];
 
   meta = with lib; {
     description = "Simple, elegant, Pythonic functional programming";
diff --git a/pkgs/development/python-modules/cocotb-bus/default.nix b/pkgs/development/python-modules/cocotb-bus/default.nix
index 40f2dc86c803e..6e10559b35109 100644
--- a/pkgs/development/python-modules/cocotb-bus/default.nix
+++ b/pkgs/development/python-modules/cocotb-bus/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/cocotb/default.nix b/pkgs/development/python-modules/cocotb/default.nix
index 8d996a4ebb043..f65b11c81ce2b 100644
--- a/pkgs/development/python-modules/cocotb/default.nix
+++ b/pkgs/development/python-modules/cocotb/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, cocotb-bus
-, find-libpython
-, pytestCheckHook
-, swig
-, verilog
-, ghdl
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  cocotb-bus,
+  find-libpython,
+  pytestCheckHook,
+  swig,
+  verilog,
+  ghdl,
 }:
 
 buildPythonPackage rec {
@@ -30,24 +31,26 @@ buildPythonPackage rec {
   buildInputs = [ setuptools ];
   propagatedBuildInputs = [ find-libpython ];
 
-  postPatch = ''
-    patchShebangs bin/*.py
+  postPatch =
+    ''
+      patchShebangs bin/*.py
 
-    # POSIX portability (TODO: upstream this)
-    for f in \
-      cocotb/share/makefiles/Makefile.* \
-      cocotb/share/makefiles/simulators/Makefile.*
-    do
-      substituteInPlace $f --replace 'shell which' 'shell command -v'
-    done
+      # POSIX portability (TODO: upstream this)
+      for f in \
+        cocotb/share/makefiles/Makefile.* \
+        cocotb/share/makefiles/simulators/Makefile.*
+      do
+        substituteInPlace $f --replace 'shell which' 'shell command -v'
+      done
 
-    # remove circular dependency cocotb-bus from setup.py
-    substituteInPlace setup.py --replace "'cocotb-bus<1.0'" ""
-  '' + lib.optionalString stdenv.isDarwin ''
-    # disable lto on darwin
-    # https://github.com/NixOS/nixpkgs/issues/19098
-    substituteInPlace cocotb_build_libs.py --replace "-flto" ""
-  '';
+      # remove circular dependency cocotb-bus from setup.py
+      substituteInPlace setup.py --replace "'cocotb-bus<1.0'" ""
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      # disable lto on darwin
+      # https://github.com/NixOS/nixpkgs/issues/19098
+      substituteInPlace cocotb_build_libs.py --replace "-flto" ""
+    '';
 
   patches = [
     # Fix "can't link with bundle (MH_BUNDLE) only dylibs (MH_DYLIB) file" error
@@ -58,7 +61,13 @@ buildPythonPackage rec {
     ./0002-Patch-remove-test_unicode_handle_assignment_deprecated-test.patch
   ];
 
-  nativeCheckInputs = [ cocotb-bus pytestCheckHook swig verilog ghdl ];
+  nativeCheckInputs = [
+    cocotb-bus
+    pytestCheckHook
+    swig
+    verilog
+    ghdl
+  ];
   preCheck = ''
     export PATH=$out/bin:$PATH
     mv cocotb cocotb.hidden
@@ -72,6 +81,9 @@ buildPythonPackage rec {
     mainProgram = "cocotb-config";
     homepage = "https://github.com/cocotb/cocotb";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ matthuszagh jleightcap ];
+    maintainers = with maintainers; [
+      matthuszagh
+      jleightcap
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/codecov/default.nix b/pkgs/development/python-modules/codecov/default.nix
index ccc95b894f39a..8bac2ebf313c2 100644
--- a/pkgs/development/python-modules/codecov/default.nix
+++ b/pkgs/development/python-modules/codecov/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, coverage
-, ddt
-, fetchFromGitHub
-, mock
-, pytestCheckHook
-, requests
+{
+  lib,
+  buildPythonPackage,
+  coverage,
+  ddt,
+  fetchFromGitHub,
+  mock,
+  pytestCheckHook,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/codepy/default.nix b/pkgs/development/python-modules/codepy/default.nix
index 6f6c7d22bc9f8..edcda2857bc3e 100644
--- a/pkgs/development/python-modules/codepy/default.nix
+++ b/pkgs/development/python-modules/codepy/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytools
-, appdirs
-, six
-, cgen
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytools,
+  appdirs,
+  six,
+  cgen,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,11 @@ buildPythonPackage rec {
     hash = "sha256-viMfB/nDrvDA/IGRZEX+yXylxbbmqbh/fgdYXBzK0zM=";
   };
 
-  buildInputs = [ pytools six cgen ];
+  buildInputs = [
+    pytools
+    six
+    cgen
+  ];
   propagatedBuildInputs = [ appdirs ];
 
   pythonImportsCheck = [ "codepy" ];
diff --git a/pkgs/development/python-modules/coffea/default.nix b/pkgs/development/python-modules/coffea/default.nix
index 86090e3b25562..3b4d3f3f1befb 100644
--- a/pkgs/development/python-modules/coffea/default.nix
+++ b/pkgs/development/python-modules/coffea/default.nix
@@ -1,38 +1,47 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, hatchling
-, hatch-vcs
-, awkward
-, cachetools
-, cloudpickle
-, correctionlib
-, dask
-, dask-awkward
-, dask-histogram
-, fsspec-xrootd
-, hist
-, lz4
-, matplotlib
-, mplhep
-, numba
-, numpy
-, packaging
-, pandas
-, pyarrow
-, scipy
-, toml
-, tqdm
-, uproot
-, distributed
-, pyinstrument
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+
+  # build-system
+  hatchling,
+  hatch-vcs,
+
+  # dependencies
+  aiohttp,
+  awkward,
+  cachetools,
+  cloudpickle,
+  correctionlib,
+  dask,
+  dask-awkward,
+  dask-histogram,
+  fsspec-xrootd,
+  hist,
+  lz4,
+  matplotlib,
+  mplhep,
+  numba,
+  numpy,
+  packaging,
+  pandas,
+  pyarrow,
+  requests,
+  scipy,
+  toml,
+  tqdm,
+  uproot,
+
+  # checks
+  distributed,
+  pyinstrument,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "coffea";
-  version = "2024.4.1";
+  version = "2024.6.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -41,20 +50,16 @@ buildPythonPackage rec {
     owner = "CoffeaTeam";
     repo = "coffea";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Iu1GHnLUqdhYO7hoHaf+O/S6KO0P+dvl0wgfRA5vtGI=";
+    hash = "sha256-Z6c8R8B8IrDkXVDx89XVtg3eRgORuHPfUyAPRGwAlrg=";
   };
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace-fail "numba>=0.58.1" "numba"
-  '';
-
-  nativeBuildInputs = [
+  build-system = [
     hatchling
     hatch-vcs
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    aiohttp
     awkward
     cachetools
     cloudpickle
@@ -72,6 +77,7 @@ buildPythonPackage rec {
     packaging
     pandas
     pyarrow
+    requests
     scipy
     toml
     tqdm
@@ -84,15 +90,21 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "coffea"
+  pythonImportsCheck = [ "coffea" ];
+
+  disabledTests = [
+    # Requires internet access
+    # https://github.com/CoffeaTeam/coffea/issues/1094
+    "test_lumimask"
   ];
 
-  meta = with lib; {
+  __darwinAllowLocalNetworking = true;
+
+  meta = {
     description = "Basic tools and wrappers for enabling not-too-alien syntax when running columnar Collider HEP analysis";
     homepage = "https://github.com/CoffeaTeam/coffea";
     changelog = "https://github.com/CoffeaTeam/coffea/releases/tag/v${version}";
-    license = with licenses; [ bsd3 ];
-    maintainers = with maintainers; [ veprbl ];
+    license = with lib.licenses; [ bsd3 ];
+    maintainers = with lib.maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/python-modules/cogapp/default.nix b/pkgs/development/python-modules/cogapp/default.nix
index 7f039aa24faf4..84139b83f2530 100644
--- a/pkgs/development/python-modules/cogapp/default.nix
+++ b/pkgs/development/python-modules/cogapp/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -14,15 +15,13 @@ buildPythonPackage rec {
     sha256 = "sha256-qAbV254xihotP86YgAgXkWjn2xPl5VsZt5dj+budKYI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # there are no tests
   doCheck = false;
 
   meta = with lib; {
-    description = "A code generator for executing Python snippets in source files";
+    description = "Code generator for executing Python snippets in source files";
     homepage = "https://nedbatchelder.com/code/cog";
     license = licenses.mit;
     maintainers = with maintainers; [ lovek323 ];
diff --git a/pkgs/development/python-modules/cohere/default.nix b/pkgs/development/python-modules/cohere/default.nix
index 26deb98e3d451..46aed51be2992 100644
--- a/pkgs/development/python-modules/cohere/default.nix
+++ b/pkgs/development/python-modules/cohere/default.nix
@@ -1,33 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, poetry-core
-, pythonOlder
-, fastavro
-, httpx
-, httpx-sse
-, pydantic
-, requests
-, tokenizers
-, types-requests
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  pythonOlder,
+  fastavro,
+  httpx,
+  httpx-sse,
+  pydantic,
+  requests,
+  tokenizers,
+  types-requests,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "cohere";
-  version = "5.3.3";
+  version = "5.5.8";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+/WcC6sN7U0oCR+gwZOhFtgwPEwLCaQnId2KEjDqJ8M=";
+    hash = "sha256-hM52Zv+PvfT0H7X2ykUqsmOaUUvIiWeihUqbG4INbqA=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     fastavro
@@ -43,9 +42,7 @@ buildPythonPackage rec {
   # tests require CO_API_KEY
   doCheck = false;
 
-  pythonImportsCheck = [
-    "cohere"
-  ];
+  pythonImportsCheck = [ "cohere" ];
 
   meta = with lib; {
     description = "Simplify interfacing with the Cohere API";
diff --git a/pkgs/development/python-modules/coincurve/default.nix b/pkgs/development/python-modules/coincurve/default.nix
index 2cdb2d8f4fe22..6516cfce16878 100644
--- a/pkgs/development/python-modules/coincurve/default.nix
+++ b/pkgs/development/python-modules/coincurve/default.nix
@@ -1,49 +1,63 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, asn1crypto
-, autoconf
-, automake
-, cffi
-, libtool
-, pkg-config
-, pytestCheckHook
-, python
-, pythonOlder
-, secp256k1
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  cmake,
+  hatchling,
+  ninja,
+  pkg-config,
+  setuptools,
+  scikit-build-core,
+
+  # dependencies
+  asn1crypto,
+  cffi,
+  secp256k1,
+
+  # checks
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "coincurve";
-  version = "19.0.1";
-  format = "setuptools";
+  version = "20.0.0";
+  pyproject = true;
+
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "ofek";
     repo = "coincurve";
     rev = "refs/tags/v${version}";
-    hash = "sha256-T60iKRrc8/t86nqf8/R4971SjOw586YNCWWBuLd9MjM=";
+    hash = "sha256-NKx/iLuzFEu1UBuwa14x55Ab3laVAKEtX6dtoWi0dOg=";
   };
 
   postPatch = ''
-    substituteInPlace setup.py \
-      --replace ", 'requests'" ""
-
     # don't try to load .dll files
-    rm coincurve/_windows_libsecp256k1.py
     cp -r --no-preserve=mode ${secp256k1.src} libsecp256k1
     patchShebangs secp256k1/autogen.sh
   '';
 
-  nativeBuildInputs = [
-    autoconf
-    automake
-    libtool
+  build-system = [
+    hatchling
+    cffi
+    cmake
+    ninja
     pkg-config
+    setuptools
+    scikit-build-core
   ];
 
-  propagatedBuildInputs = [
+  dontUseCmakeConfigure = true;
+
+  env.COINCURVE_IGNORE_SYSTEM_LIB = "OFF";
+
+  buildInputs = [ secp256k1 ];
+
+  dependencies = [
     asn1crypto
     cffi
   ];
@@ -56,18 +70,17 @@ buildPythonPackage rec {
     rm tests/test_bench.py
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "coincurve"
-  ];
+  pythonImportsCheck = [ "coincurve" ];
 
   meta = with lib; {
     description = "Cross-platform bindings for libsecp256k1";
     homepage = "https://github.com/ofek/coincurve";
-    license = with licenses; [ asl20 mit ];
+    license = with licenses; [
+      asl20
+      mit
+    ];
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/coinmetrics-api-client/default.nix b/pkgs/development/python-modules/coinmetrics-api-client/default.nix
index 421be646d19e7..fe5bf7716e40c 100644
--- a/pkgs/development/python-modules/coinmetrics-api-client/default.nix
+++ b/pkgs/development/python-modules/coinmetrics-api-client/default.nix
@@ -1,18 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, orjson
-, pandas
-, poetry-core
-, pytest-mock
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
-, tqdm
-, typer
-, websocket-client
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  orjson,
+  pandas,
+  poetry-core,
+  pytest-mock,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  requests,
+  tqdm,
+  typer,
+  websocket-client,
 }:
 
 buildPythonPackage rec {
@@ -30,13 +30,10 @@ buildPythonPackage rec {
     hash = "sha256-rCj8nG7iQFJKs3Mic2wRZKBqx9T0lCPH5Po8k0nLppg=";
   };
 
-  pythonRelaxDeps = [
-    "typer"
-  ];
+  pythonRelaxDeps = [ "typer" ];
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -53,15 +50,11 @@ buildPythonPackage rec {
     pytest-mock
   ] ++ passthru.optional-dependencies.pandas;
 
-  pythonImportsCheck = [
-    "coinmetrics.api_client"
-  ];
+  pythonImportsCheck = [ "coinmetrics.api_client" ];
 
   passthru = {
     optional-dependencies = {
-      pandas = [
-        pandas
-      ];
+      pandas = [ pandas ];
     };
   };
 
diff --git a/pkgs/development/python-modules/colander/default.nix b/pkgs/development/python-modules/colander/default.nix
index 27111e1b267be..e3ddb2cf3c312 100644
--- a/pkgs/development/python-modules/colander/default.nix
+++ b/pkgs/development/python-modules/colander/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, babel
-, translationstring
-, iso8601
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  babel,
+  translationstring,
+  iso8601,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -28,16 +29,12 @@ buildPythonPackage rec {
     iso8601
   ];
 
-  pythonImportsCheck = [
-    "colander"
-  ];
+  pythonImportsCheck = [ "colander" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A simple schema-based serialization and deserialization library";
+    description = "Simple schema-based serialization and deserialization library";
     homepage = "https://github.com/Pylons/colander";
     license = licenses.free; # http://repoze.org/LICENSE.txt
     maintainers = with maintainers; [ domenkozar ];
diff --git a/pkgs/development/python-modules/colanderalchemy/default.nix b/pkgs/development/python-modules/colanderalchemy/default.nix
index 1c45b6b619e25..ca1243078f35e 100644
--- a/pkgs/development/python-modules/colanderalchemy/default.nix
+++ b/pkgs/development/python-modules/colanderalchemy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, colander
-, sqlalchemy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  colander,
+  sqlalchemy,
 }:
 
 buildPythonPackage rec {
@@ -14,7 +15,10 @@ buildPythonPackage rec {
     sha256 = "006wcfch2skwvma9bq3l06dyjnz309pa75h1rviq7i4pd9g463bl";
   };
 
-  propagatedBuildInputs = [ colander sqlalchemy ];
+  propagatedBuildInputs = [
+    colander
+    sqlalchemy
+  ];
 
   # Tests are not included in Pypi
   doCheck = false;
diff --git a/pkgs/development/python-modules/collections-extended/default.nix b/pkgs/development/python-modules/collections-extended/default.nix
index d1545d36b3764..72648a5268d43 100644
--- a/pkgs/development/python-modules/collections-extended/default.nix
+++ b/pkgs/development/python-modules/collections-extended/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hypothesis
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hypothesis,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -23,18 +24,14 @@ buildPythonPackage rec {
     hash = "sha256-cK13+CQUELKSiLpG747+C+RB5b6luu0mWLLXTT+uGH4=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     hypothesis
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "collections_extended"
-  ];
+  pythonImportsCheck = [ "collections_extended" ];
 
   meta = with lib; {
     description = "Extra Python Collections - bags (multisets), setlists (unique list/indexed set), RangeMap and IndexedDict";
diff --git a/pkgs/development/python-modules/collidoscope/default.nix b/pkgs/development/python-modules/collidoscope/default.nix
index 2d446fc9505b0..a8bec5c5cdcdc 100644
--- a/pkgs/development/python-modules/collidoscope/default.nix
+++ b/pkgs/development/python-modules/collidoscope/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, babelfont
-, kurbopy
-, fonttools
-, skia-pathops
-, tqdm
-, uharfbuzz
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  babelfont,
+  kurbopy,
+  fonttools,
+  skia-pathops,
+  tqdm,
+  uharfbuzz,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,10 +31,12 @@ buildPythonPackage rec {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
-    unittestCheckHook
+  nativeCheckInputs = [ unittestCheckHook ];
+  unittestFlagsArray = [
+    "-s"
+    "test"
+    "-v"
   ];
-  unittestFlagsArray = [ "-s" "test" "-v" ];
 
   meta = with lib; {
     description = "Python library to detect glyph collisions in fonts";
diff --git a/pkgs/development/python-modules/color-operations/default.nix b/pkgs/development/python-modules/color-operations/default.nix
new file mode 100644
index 0000000000000..e92bcfe70b70d
--- /dev/null
+++ b/pkgs/development/python-modules/color-operations/default.nix
@@ -0,0 +1,58 @@
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+
+  # build-system
+  cython,
+  oldest-supported-numpy,
+  setuptools,
+
+  # dependencies
+  numpy,
+
+  # checks
+  colormath,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "color-operations";
+  version = "0.1.4";
+  pyproject = true;
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "vincentsarago";
+    repo = "color-operations";
+    rev = "refs/tags/${version}";
+    hash = "sha256-qqOTmVYD3VfjeVJtYvDQw+cxjcTsmqTYQNL1qMX+fL4=";
+  };
+
+  build-system = [
+    cython
+    oldest-supported-numpy
+    setuptools
+  ];
+
+  dependencies = [ numpy ];
+
+  nativeCheckInputs = [
+    colormath
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    python setup.py build_ext --inplace
+  '';
+
+  pythonImportsCheck = [ "color_operations" ];
+
+  meta = {
+    description = "Apply basic color-oriented image operations. Fork of rio-color";
+    homepage = "https://github.com/vincentsarago/color-operations";
+    license = lib.licenses.mit;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/colorama/default.nix b/pkgs/development/python-modules/colorama/default.nix
index 747823f2dd9ef..d907499cafeeb 100644
--- a/pkgs/development/python-modules/colorama/default.nix
+++ b/pkgs/development/python-modules/colorama/default.nix
@@ -1,4 +1,10 @@
-{ lib, fetchPypi, buildPythonPackage, hatchling, pytestCheckHook }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  hatchling,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "colorama";
diff --git a/pkgs/development/python-modules/colorcet/default.nix b/pkgs/development/python-modules/colorcet/default.nix
index 08951a18fc492..dbffade58911a 100644
--- a/pkgs/development/python-modules/colorcet/default.nix
+++ b/pkgs/development/python-modules/colorcet/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, setuptools-scm
-, param
-, pyct
-, pytest-mpl
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  param,
+  pyct,
+  pytest-mpl,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -41,13 +42,9 @@ buildPythonPackage rec {
     ln -s $HOME/.config/matplotlib $HOME/.matplotlib
   '';
 
-  disabledTests = [
-    "matplotlib_default_colormap_plot"
-  ];
+  disabledTests = [ "matplotlib_default_colormap_plot" ];
 
-  pythonImportsCheck = [
-    "colorcet"
-  ];
+  pythonImportsCheck = [ "colorcet" ];
 
   meta = with lib; {
     description = "Collection of perceptually uniform colormaps";
diff --git a/pkgs/development/python-modules/colorclass/default.nix b/pkgs/development/python-modules/colorclass/default.nix
index e524ae49eb3d4..016aaacc1355f 100644
--- a/pkgs/development/python-modules/colorclass/default.nix
+++ b/pkgs/development/python-modules/colorclass/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "colorclass";
diff --git a/pkgs/development/python-modules/colored-traceback/default.nix b/pkgs/development/python-modules/colored-traceback/default.nix
index a2cdfea30b2c3..b0447c66bc12d 100644
--- a/pkgs/development/python-modules/colored-traceback/default.nix
+++ b/pkgs/development/python-modules/colored-traceback/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pygments
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pygments,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/colored/default.nix b/pkgs/development/python-modules/colored/default.nix
index af696f384f158..c9db3719d3f0b 100644
--- a/pkgs/development/python-modules/colored/default.nix
+++ b/pkgs/development/python-modules/colored/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitLab
-, flit-core
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitLab,
+  flit-core,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,21 +18,13 @@ buildPythonPackage rec {
     hash = "sha256-4APFAIN+cmPPd6qbqVC9iU4YntNEjoPbJXZywG1hsBY=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [
-    "unittests"
-  ];
+  unittestFlagsArray = [ "unittests" ];
 
-  pythonImportsCheck = [
-    "colored"
-  ];
+  pythonImportsCheck = [ "colored" ];
 
   meta = with lib; {
     description = "Simple library for color and formatting to terminal";
diff --git a/pkgs/development/python-modules/coloredlogs/default.nix b/pkgs/development/python-modules/coloredlogs/default.nix
index 3f4dd4188040c..348d4080498de 100644
--- a/pkgs/development/python-modules/coloredlogs/default.nix
+++ b/pkgs/development/python-modules/coloredlogs/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, humanfriendly
-, verboselogs
-, capturer
-, pytestCheckHook
-, mock
-, util-linux
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  humanfriendly,
+  verboselogs,
+  capturer,
+  pytestCheckHook,
+  mock,
+  util-linux,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-TodI2Wh8M0qMM2K5jzqlLmUKILa5+5qq4ByLttmAA7E=";
   };
 
-  propagatedBuildInputs = [
-    humanfriendly
-  ];
+  propagatedBuildInputs = [ humanfriendly ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/colorful/default.nix b/pkgs/development/python-modules/colorful/default.nix
index 9deae7c071fc9..4a1a340136f47 100644
--- a/pkgs/development/python-modules/colorful/default.nix
+++ b/pkgs/development/python-modules/colorful/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-8rHJIsHiyfjmjlGiEyrzvEwKgi1kP4Njm731mlFDMIU=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "colorful"
-  ];
+  pythonImportsCheck = [ "colorful" ];
 
   meta = with lib; {
     description = "Library for terminal string styling";
diff --git a/pkgs/development/python-modules/colorlog/default.nix b/pkgs/development/python-modules/colorlog/default.nix
index 1e8cfb0d0d032..8dfb12cf5f846 100644
--- a/pkgs/development/python-modules/colorlog/default.nix
+++ b/pkgs/development/python-modules/colorlog/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -15,17 +16,11 @@ buildPythonPackage rec {
     hash = "sha256-Pj4HmkH+taG2T5eLXqT0YECpTxHw6Lu4Jh49u+ymTUQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "colorlog"
-  ];
+  pythonImportsCheck = [ "colorlog" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Log formatting with colors";
diff --git a/pkgs/development/python-modules/colorlover/default.nix b/pkgs/development/python-modules/colorlover/default.nix
index 1fda9111e6fa4..0befe12cd88db 100644
--- a/pkgs/development/python-modules/colorlover/default.nix
+++ b/pkgs/development/python-modules/colorlover/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/colormath/default.nix b/pkgs/development/python-modules/colormath/default.nix
index 42469056b096a..d13d9a37efe1f 100644
--- a/pkgs/development/python-modules/colormath/default.nix
+++ b/pkgs/development/python-modules/colormath/default.nix
@@ -1,9 +1,12 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, networkx
-, nose
-, numpy
-, lib
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  networkx,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -11,8 +14,10 @@ buildPythonPackage rec {
   # Switch to unstable which fixes an deprecation issue with newer numpy
   # versions, should be included in versions > 3.0
   # https://github.com/gtaylor/python-colormath/issues/104
-  version = "unstable-2021-04-17";
-  format = "setuptools";
+  version = "3.0.0-unstable-2021-04-17";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "gtaylor";
@@ -21,17 +26,21 @@ buildPythonPackage rec {
     hash = "sha256-eACVPIQFgiGiVmQ/PjUxP/UH/hBOsCywz5PlgpA4dk4=";
   };
 
-  propagatedBuildInputs = [ networkx numpy ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [ nose ];
+  dependencies = [
+    networkx
+    numpy
+  ];
 
-  checkPhase = "nosetests";
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "colormath" ];
 
   meta = with lib; {
     description = "Color math and conversion library";
     homepage = "https://github.com/gtaylor/python-colormath";
+    changelog = "https://github.com/gtaylor/python-colormath/releases/tag/${version}";
     license = licenses.bsd2;
     maintainers = with maintainers; [ jonathanreeve ];
   };
diff --git a/pkgs/development/python-modules/colorspacious/default.nix b/pkgs/development/python-modules/colorspacious/default.nix
index d9a83e85ec35e..6e0762a814e0d 100644
--- a/pkgs/development/python-modules/colorspacious/default.nix
+++ b/pkgs/development/python-modules/colorspacious/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -11,13 +15,11 @@ buildPythonPackage rec {
     sha256 = "065n24zbm9ymy2gvf03vx5cggk1258vcjdaw8jn9v26arpl7542y";
   };
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   meta = {
     homepage = "https://github.com/njsmith/colorspacious";
-    description = "A powerful, accurate, and easy-to-use Python library for doing colorspace conversions ";
+    description = "Powerful, accurate, and easy-to-use Python library for doing colorspace conversions ";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ tbenst ];
   };
diff --git a/pkgs/development/python-modules/colorthief/default.nix b/pkgs/development/python-modules/colorthief/default.nix
index 4e0527cbc7040..66fb4f9fe502d 100644
--- a/pkgs/development/python-modules/colorthief/default.nix
+++ b/pkgs/development/python-modules/colorthief/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pillow
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pillow,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     sha256 = "0lzpflal1iqbj4k7hayss5z024qf2sn8c3wxw03a0mgxg06ca2hm";
   };
 
-  propagatedBuildInputs = [
-    pillow
-  ];
+  propagatedBuildInputs = [ pillow ];
 
   # no tests implemented
   doCheck = false;
diff --git a/pkgs/development/python-modules/colorzero/default.nix b/pkgs/development/python-modules/colorzero/default.nix
index e2383dddf4de9..94a7ac6957661 100644
--- a/pkgs/development/python-modules/colorzero/default.nix
+++ b/pkgs/development/python-modules/colorzero/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pkginfo
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pkginfo,
+  pytestCheckHook,
 }:
 
-
 buildPythonPackage rec {
   pname = "colorzero";
   version = "2.0";
@@ -23,17 +23,11 @@ buildPythonPackage rec {
       --replace "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    pkginfo
-  ];
+  nativeBuildInputs = [ pkginfo ];
 
-  pythonImportsCheck = [
-    "colorzero"
-  ];
+  pythonImportsCheck = [ "colorzero" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Yet another Python color library";
diff --git a/pkgs/development/python-modules/colour/default.nix b/pkgs/development/python-modules/colour/default.nix
index 2dd31a02bbe77..de2006bacb2d5 100644
--- a/pkgs/development/python-modules/colour/default.nix
+++ b/pkgs/development/python-modules/colour/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,18 +20,14 @@ buildPythonPackage rec {
     ./remove-unmaintained-d2to1.diff
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [
     "--doctest-glob=\"*.rst\""
     "--doctest-modules"
   ];
 
-  pythonImportsCheck = [
-    "colour"
-  ];
+  pythonImportsCheck = [ "colour" ];
 
   meta = with lib; {
     description = "Converts and manipulates common color representation (RGB, HSV, web, ...)";
diff --git a/pkgs/development/python-modules/colout/default.nix b/pkgs/development/python-modules/colout/default.nix
index 6325b6be5bda9..412f7dd307fe4 100644
--- a/pkgs/development/python-modules/colout/default.nix
+++ b/pkgs/development/python-modules/colout/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, babel
-, buildPythonPackage
-, fetchFromGitHub
-, pygments
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  babel,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pygments,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-7Dtf87erBElqVgqRx8BYHYOWv1uI84JJ0LHrcneczCI=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     babel
     pygments
   ];
 
-  pythonImportsCheck = [
-    "colout"
-  ];
+  pythonImportsCheck = [ "colout" ];
 
   # This project does not have a unit test
   doCheck = false;
diff --git a/pkgs/development/python-modules/cometblue-lite/default.nix b/pkgs/development/python-modules/cometblue-lite/default.nix
index 89af6333ae90e..0c935e9392b8c 100644
--- a/pkgs/development/python-modules/cometblue-lite/default.nix
+++ b/pkgs/development/python-modules/cometblue-lite/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, bleak
-, bleak-retry-connector
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  bleak,
+  bleak-retry-connector,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "cometblue_lite"
-  ];
+  pythonImportsCheck = [ "cometblue_lite" ];
 
   meta = with lib; {
     description = "Module for Eurotronic Comet Blue thermostats";
diff --git a/pkgs/development/python-modules/comicon/default.nix b/pkgs/development/python-modules/comicon/default.nix
index 04382d3ee340a..d42304712ef3d 100644
--- a/pkgs/development/python-modules/comicon/default.nix
+++ b/pkgs/development/python-modules/comicon/default.nix
@@ -1,41 +1,41 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonRelaxDepsHook
-, ebooklib
-, lxml
-, pillow
-, pypdf
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
+  ebooklib,
+  lxml,
+  pillow,
+  pypdf,
+  python-slugify,
 }:
 
 buildPythonPackage rec {
   pname = "comicon";
-  version = "1.0.1";
+  version = "1.1.0";
   pyproject = true;
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "potatoeggy";
     repo = "comicon";
     rev = "v${version}";
-    hash = "sha256-e9YEr8IwttMlj6FOxk+/kw79qiF1N8/e2qusfw3WH00=";
+    hash = "sha256-VP4n2pWXHge2gJ67O2nErJ30gI0vaAMn0VOpX8sLkfs=";
   };
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "lxml"
-    "pillow"
-  ];
+  pythonRelaxDeps = [ "pypdf" ];
 
   propagatedBuildInputs = [
     ebooklib
     lxml
     pillow
     pypdf
+    python-slugify
   ];
 
   pythonImportsCheck = [ "comicon" ];
diff --git a/pkgs/development/python-modules/comm/default.nix b/pkgs/development/python-modules/comm/default.nix
index 9ab4eb2c50081..130b6e908413a 100644
--- a/pkgs/development/python-modules/comm/default.nix
+++ b/pkgs/development/python-modules/comm/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, traitlets
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  traitlets,
+  pytestCheckHook,
 }:
 
 let
@@ -21,17 +22,11 @@ buildPythonPackage {
     hash = "sha256-51HSSULhbKb1NdLJ//b3Vh6sOLWp0B4KW469htpduqM=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = [
-    traitlets
-  ];
+  propagatedBuildInputs = [ traitlets ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc";
@@ -40,4 +35,3 @@ buildPythonPackage {
     maintainers = with maintainers; [ ];
   };
 }
-
diff --git a/pkgs/development/python-modules/command-runner/default.nix b/pkgs/development/python-modules/command-runner/default.nix
index fb8fd94f80308..f50e32abd5f3e 100644
--- a/pkgs/development/python-modules/command-runner/default.nix
+++ b/pkgs/development/python-modules/command-runner/default.nix
@@ -1,17 +1,36 @@
-{ lib, buildPythonPackage, fetchPypi, psutil }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  psutil,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "command-runner";
   version = "1.6.0";
-  format = "setuptools";
+  pyproject = true;
 
-  src = fetchPypi {
-    pname = "command_runner";
-    inherit version;
-    sha256 = "sha256-lzt1UhhrPqQrBKsRmPhqhtOIfFlCteQqo6sZ6rOut0A=";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "netinvent";
+    repo = "command_runner";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-QzqkcF2/YExK/dz+b0Uk0Af/rAXRMuRIeEynyFgDql8=";
   };
 
-  propagatedBuildInputs = [ psutil ];
+  build-system = [ setuptools ];
+
+  dependencies = [ psutil ];
+
+  # Tests are execute ping
+  # ping: socket: Operation not permitted
+  doCheck = false;
+
+  pythonImportsCheck = [ "command_runner" ];
 
   meta = with lib; {
     homepage = "https://github.com/netinvent/command_runner";
@@ -19,6 +38,7 @@ buildPythonPackage rec {
       Platform agnostic command execution, timed background jobs with live
       stdout/stderr output capture, and UAC/sudo elevation
     '';
+    changelog = "https://github.com/netinvent/command_runner/releases/tag/v${version}";
     license = licenses.bsd3;
     maintainers = teams.wdz.members;
   };
diff --git a/pkgs/development/python-modules/commandlines/default.nix b/pkgs/development/python-modules/commandlines/default.nix
index d5eeadcf86dee..b216858a584cd 100644
--- a/pkgs/development/python-modules/commandlines/default.nix
+++ b/pkgs/development/python-modules/commandlines/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
   };
 
   doCheck = true;
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Python library for command line argument parsing";
@@ -29,4 +28,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ danc86 ];
   };
 }
-
diff --git a/pkgs/development/python-modules/commandparse/default.nix b/pkgs/development/python-modules/commandparse/default.nix
index e146649604f02..a7f28dab15636 100644
--- a/pkgs/development/python-modules/commandparse/default.nix
+++ b/pkgs/development/python-modules/commandparse/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # tests only distributed upstream source, not PyPi
   doCheck = false;
 
-  pythonImportsCheck = [
-    "commandparse"
-  ];
+  pythonImportsCheck = [ "commandparse" ];
 
   meta = with lib; {
     description = "Python module to parse command based CLI application";
diff --git a/pkgs/development/python-modules/commentjson/default.nix b/pkgs/development/python-modules/commentjson/default.nix
index bd8d6f3433589..defdc1aa3b059 100644
--- a/pkgs/development/python-modules/commentjson/default.nix
+++ b/pkgs/development/python-modules/commentjson/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchFromGitHub, six, lark, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  six,
+  lark,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "commentjson";
@@ -20,7 +27,10 @@ buildPythonPackage rec {
     rm -r commentjson/tests/test_json
   '';
 
-  propagatedBuildInputs = [ lark six ];
+  propagatedBuildInputs = [
+    lark
+    six
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/commoncode/default.nix b/pkgs/development/python-modules/commoncode/default.nix
index 98c6492194c29..049cc4e09aa1b 100644
--- a/pkgs/development/python-modules/commoncode/default.nix
+++ b/pkgs/development/python-modules/commoncode/default.nix
@@ -1,37 +1,38 @@
-{ lib
-, stdenv
-, attrs
-, beautifulsoup4
-, buildPythonPackage
-, click
-, fetchPypi
-, pytest-xdist
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, requests
-, saneyaml
-, setuptools-scm
-, text-unidecode
+{
+  lib,
+  stdenv,
+  attrs,
+  beautifulsoup4,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  requests,
+  saneyaml,
+  setuptools-scm,
+  text-unidecode,
 }:
 
 buildPythonPackage rec {
   pname = "commoncode";
-  version = "31.0.3";
+  version = "31.2.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-ura55/m/iesqN6kSYmdHB1sbthSHXaFWiQ76wVmyl0E=";
+  src = fetchFromGitHub {
+    owner = "nexB";
+    repo = "commoncode";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-4ZgyNlMj1i1fRru4wgDOyP3qzbne8D2eH/tFI60kgrE=";
   };
 
   dontConfigure = true;
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     attrs
@@ -47,31 +48,36 @@ buildPythonPackage rec {
     pytest-xdist
   ];
 
-  disabledTests = [
-    # chinese character translates different into latin
-    "test_safe_path_posix_style_chinese_char"
-    # OSError: [Errno 84] Invalid or incomplete multibyte or wide character
-    "test_os_walk_can_walk_non_utf8_path_from_unicode_path"
-    "test_resource_iter_can_walk_non_utf8_path_from_unicode_path"
-    "test_walk_can_walk_non_utf8_path_from_unicode_path"
-    "test_resource_iter_can_walk_non_utf8_path_from_unicode_path_with_dirs"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # expected result is tailored towards the quirks of upstream's
-    # CI environment on darwin
-    "test_searchable_paths"
-  ];
+  preCheck = ''
+    # prevent readout of /etc/os-release during tests
+    sed -i "s/is_on_ubuntu_22()/lambda _: False/" src/commoncode/system.py
+  '';
+
+  disabledTests =
+    [
+      # chinese character translates different into latin
+      "test_safe_path_posix_style_chinese_char"
+      # OSError: [Errno 84] Invalid or incomplete multibyte or wide character
+      "test_os_walk_can_walk_non_utf8_path_from_unicode_path"
+      "test_resource_iter_can_walk_non_utf8_path_from_unicode_path"
+      "test_walk_can_walk_non_utf8_path_from_unicode_path"
+      "test_resource_iter_can_walk_non_utf8_path_from_unicode_path_with_dirs"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # expected result is tailored towards the quirks of upstream's
+      # CI environment on darwin
+      "test_searchable_paths"
+    ];
 
   disabledTestPaths = lib.optionals (pythonAtLeast "3.10") [
     # https://github.com/nexB/commoncode/issues/36
     "src/commoncode/fetch.py"
   ];
 
-  pythonImportsCheck = [
-    "commoncode"
-  ];
+  pythonImportsCheck = [ "commoncode" ];
 
   meta = with lib; {
-    description = "A set of common utilities, originally split from ScanCode";
+    description = "Set of common utilities, originally split from ScanCode";
     homepage = "https://github.com/nexB/commoncode";
     changelog = "https://github.com/nexB/commoncode/blob/v${version}/CHANGELOG.rst";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/commonmark/default.nix b/pkgs/development/python-modules/commonmark/default.nix
index a6cf342ba04e2..2d7b83782730a 100644
--- a/pkgs/development/python-modules/commonmark/default.nix
+++ b/pkgs/development/python-modules/commonmark/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, glibcLocales, future }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  glibcLocales,
+  future,
+}:
 
 buildPythonPackage rec {
   pname = "commonmark";
@@ -17,7 +24,7 @@ buildPythonPackage rec {
   # UnicodeEncodeError on Python 2
   doCheck = isPy3k;
 
-  nativeCheckInputs = [  glibcLocales ];
+  nativeCheckInputs = [ glibcLocales ];
   propagatedBuildInputs = [ future ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/compiledb/default.nix b/pkgs/development/python-modules/compiledb/default.nix
index a97db47ffdb74..9843654812853 100644
--- a/pkgs/development/python-modules/compiledb/default.nix
+++ b/pkgs/development/python-modules/compiledb/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
-, bashlex
-, click
-, shutilwhich
-, gcc
-, coreutils
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
+  bashlex,
+  click,
+  shutilwhich,
+  gcc,
+  coreutils,
 }:
 
 buildPythonPackage rec {
@@ -27,8 +28,16 @@ buildPythonPackage rec {
                       --replace /bin/echo ${coreutils}/bin/echo
   '';
 
-  nativeCheckInputs = [ pytest gcc coreutils ];
-  propagatedBuildInputs = [ click bashlex shutilwhich ];
+  nativeCheckInputs = [
+    pytest
+    gcc
+    coreutils
+  ];
+  propagatedBuildInputs = [
+    click
+    bashlex
+    shutilwhich
+  ];
 
   checkPhase = ''
     pytest
diff --git a/pkgs/development/python-modules/complycube/default.nix b/pkgs/development/python-modules/complycube/default.nix
index ee99ae8d28bd3..2ad68d938682d 100644
--- a/pkgs/development/python-modules/complycube/default.nix
+++ b/pkgs/development/python-modules/complycube/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyhumps
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyhumps,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,18 +18,14 @@ buildPythonPackage rec {
     hash = "sha256-hetcn5RX582CRVmtG5dAvr+NXD+7NKJjaqgOo8LlpqM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pyhumps
     requests
   ];
 
-  pythonImportsCheck = [
-    "complycube"
-  ];
+  pythonImportsCheck = [ "complycube" ];
 
   meta = {
     homepage = "https://complycube.com";
diff --git a/pkgs/development/python-modules/compreffor/default.nix b/pkgs/development/python-modules/compreffor/default.nix
index 9ab5590e4e3b9..d318e031fb6d9 100644
--- a/pkgs/development/python-modules/compreffor/default.nix
+++ b/pkgs/development/python-modules/compreffor/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchpatch
-, fetchPypi
-, setuptools-scm
-, fonttools
-, pytestCheckHook
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchpatch,
+  fetchPypi,
+  setuptools-scm,
+  fonttools,
+  pytestCheckHook,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -34,20 +35,14 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    fonttools
-  ];
+  propagatedBuildInputs = [ fonttools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Tests cannot seem to open the cpython module.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "compreffor"
-  ];
+  pythonImportsCheck = [ "compreffor" ];
 
   meta = with lib; {
     description = "CFF table subroutinizer for FontTools";
diff --git a/pkgs/development/python-modules/compressai/default.nix b/pkgs/development/python-modules/compressai/default.nix
index 47487a6f633f4..4848df28167f5 100644
--- a/pkgs/development/python-modules/compressai/default.nix
+++ b/pkgs/development/python-modules/compressai/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pybind11
-, setuptools
-, wheel
-, numpy
-, matplotlib
-, pytorch-msssim
-, scipy
-, torch
-, torchvision
-, ipywidgets
-, jupyter
-, plotly
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pybind11,
+  setuptools,
+  wheel,
+  numpy,
+  matplotlib,
+  pytorch-msssim,
+  scipy,
+  torch,
+  torchvision,
+  ipywidgets,
+  jupyter,
+  plotly,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -81,7 +82,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A PyTorch library and evaluation platform for end-to-end compression research";
+    description = "PyTorch library and evaluation platform for end-to-end compression research";
     homepage = "https://github.com/InterDigitalInc/CompressAI";
     license = licenses.bsd3Clear;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/compressed-rtf/default.nix b/pkgs/development/python-modules/compressed-rtf/default.nix
index 2f149d1aac1fb..7788fe065635f 100644
--- a/pkgs/development/python-modules/compressed-rtf/default.nix
+++ b/pkgs/development/python-modules/compressed-rtf/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-ivvND+cOCAmRyO8yL0+WhFY/2OkrJ+E/o4xWWd7ivHA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "compressed_rtf"
-  ];
+  pythonImportsCheck = [ "compressed_rtf" ];
 
-  pytestFlagsArray = [
-    "tests/tests.py"
-  ];
+  pytestFlagsArray = [ "tests/tests.py" ];
 
   meta = with lib; {
     description = "Compressed Rich Text Format (RTF) compression and decompression";
diff --git a/pkgs/development/python-modules/concurrent-log-handler/default.nix b/pkgs/development/python-modules/concurrent-log-handler/default.nix
index 53586d9bb0c8a..384beaff25dbb 100644
--- a/pkgs/development/python-modules/concurrent-log-handler/default.nix
+++ b/pkgs/development/python-modules/concurrent-log-handler/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatchling
-, portalocker
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatchling,
+  portalocker,
 }:
 
 buildPythonPackage rec {
@@ -16,17 +17,11 @@ buildPythonPackage rec {
     hash = "sha256-HixvAhQU4hTT2sZhB4lIJ6PnjbYwGDBKTynlW6VJrCI=";
   };
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
-  dependencies = [
-    portalocker
-  ];
+  dependencies = [ portalocker ];
 
-  pythonImportsCheck = [
-    "concurrent_log_handler"
-  ];
+  pythonImportsCheck = [ "concurrent_log_handler" ];
 
   doCheck = false; # upstream has no tests
 
diff --git a/pkgs/development/python-modules/conda-libmamba-solver/default.nix b/pkgs/development/python-modules/conda-libmamba-solver/default.nix
index 050b99fe83b05..4c99fc866c5da 100644
--- a/pkgs/development/python-modules/conda-libmamba-solver/default.nix
+++ b/pkgs/development/python-modules/conda-libmamba-solver/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   buildPythonPackage,
-  pythonRelaxDepsHook,
   fetchFromGitHub,
   libmambapy,
   hatchling,
@@ -21,7 +20,6 @@ buildPythonPackage rec {
     hash = "sha256-vsUYrDVNMKHd3mlaAFYCP4uPQ9HxeKsose5O8InaMcE=";
   };
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   build-system = [
     hatchling
@@ -39,7 +37,7 @@ buildPythonPackage rec {
   pythonRemoveDeps = [ "conda" ];
 
   meta = {
-    description = "The libmamba based solver for conda.";
+    description = "Libmamba based solver for conda";
     homepage = "https://github.com/conda/conda-libmamba-solver";
     license = lib.licenses.bsd3;
     maintainers = [ lib.maintainers.ericthemagician ];
diff --git a/pkgs/development/python-modules/conda-package-handling/default.nix b/pkgs/development/python-modules/conda-package-handling/default.nix
index 59736724577bf..75ccc6039fff3 100644
--- a/pkgs/development/python-modules/conda-package-handling/default.nix
+++ b/pkgs/development/python-modules/conda-package-handling/default.nix
@@ -7,12 +7,12 @@
 }:
 buildPythonPackage rec {
   pname = "conda-package-handling";
-  version = "2.2.0";
+  version = "2.3.0";
   src = fetchFromGitHub {
     owner = "conda";
     repo = "conda-package-handling";
-    rev = version;
-    hash = "sha256-WeGfmT6lLwcwhheLBPMFcVMudY+zPsvTuXuOsiEAorQ=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-Mo3qCNA/NtVtrsJmJ96ST6GMt2basSh5KlFBkrJ4pGE=";
   };
 
   pyproject = true;
diff --git a/pkgs/development/python-modules/conda-package-streaming/default.nix b/pkgs/development/python-modules/conda-package-streaming/default.nix
index e849195f8461c..462660cce15fe 100644
--- a/pkgs/development/python-modules/conda-package-streaming/default.nix
+++ b/pkgs/development/python-modules/conda-package-streaming/default.nix
@@ -8,14 +8,14 @@
 }:
 buildPythonPackage rec {
   pname = "conda-package-streaming";
-  version = "0.9.0";
+  version = "0.10.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "conda";
     repo = "conda-package-streaming";
-    rev = "v${version}";
-    hash = "sha256-UTql2M+9eFDuHOwLYYKJ751wEcOfLJYzfU6+WF8Je2g=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-3TSjVISnUTReyKtt58RXCD30VodhiDDfJssM3PkP5Yk=";
   };
 
   build-system = [ flit-core ];
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "conda_package_streaming" ];
 
   meta = {
-    description = "An efficient library to read from new and old format .conda and .tar.bz2 conda packages.";
+    description = "Efficient library to read from new and old format .conda and .tar.bz2 conda packages";
     homepage = "https://github.com/conda/conda-package-streaming";
     license = lib.licenses.bsd3;
     maintainers = [ lib.maintainers.ericthemagician ];
diff --git a/pkgs/development/python-modules/conda/default.nix b/pkgs/development/python-modules/conda/default.nix
index e2ec8bd2d46ef..f9971372197a4 100644
--- a/pkgs/development/python-modules/conda/default.nix
+++ b/pkgs/development/python-modules/conda/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   buildPythonPackage,
-  pythonRelaxDepsHook,
   hostPlatform,
   fetchFromGitHub,
   # build dependencies
@@ -27,18 +26,17 @@
 }:
 buildPythonPackage rec {
   pname = "conda";
-  version = "24.1.2";
+  version = "24.5.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     inherit pname version;
     owner = "conda";
     repo = "conda";
-    rev = version;
-    hash = "sha256-L/Y7Bb3R5YqXbjTN4CRPFnkgymVLrxuFmjVzpvt28dE=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-DbgdTaCMWf0d3MLEMGoWxN3x37tAtoW8T7mm5279yqk=";
   };
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   build-system = [
     hatchling
diff --git a/pkgs/development/python-modules/confection/default.nix b/pkgs/development/python-modules/confection/default.nix
index 2e7b035de4250..7f255c549ae41 100644
--- a/pkgs/development/python-modules/confection/default.nix
+++ b/pkgs/development/python-modules/confection/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pydantic
-, pytestCheckHook
-, pythonOlder
-, srsly
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pydantic,
+  pytestCheckHook,
+  pythonOlder,
+  srsly,
 }:
 
 buildPythonPackage rec {
   pname = "confection";
-  version = "0.1.4";
+  version = "0.1.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -18,7 +19,7 @@ buildPythonPackage rec {
     owner = "explosion";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-PWtxLcnPd7V4yeHfOl1kYPr5UeqkYCfzGE/DoL94tq0=";
+    hash = "sha256-1XIo9Hg4whYS1AkFeX8nVnpv+IvnpmyydHYdVYS0xZc=";
   };
 
   propagatedBuildInputs = [
@@ -26,18 +27,14 @@ buildPythonPackage rec {
     srsly
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "confection"
-  ];
+  pythonImportsCheck = [ "confection" ];
 
   meta = with lib; {
     description = "Library that offers a configuration system";
     homepage = "https://github.com/explosion/confection";
-    changelog  = "https://github.com/explosion/confection/releases/tag/v${version}";
+    changelog = "https://github.com/explosion/confection/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/configargparse/default.nix b/pkgs/development/python-modules/configargparse/default.nix
index 489e6a34144c2..59f89df05231d 100644
--- a/pkgs/development/python-modules/configargparse/default.nix
+++ b/pkgs/development/python-modules/configargparse/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pytestCheckHook
-, pyyaml
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pytestCheckHook,
+  pyyaml,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
   };
 
   passthru.optional-dependencies = {
-    yaml = [
-      pyyaml
-    ];
+    yaml = [ pyyaml ];
   };
 
   nativeCheckInputs = [
@@ -32,12 +31,10 @@ buildPythonPackage rec {
     mock
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "configargparse"
-  ];
+  pythonImportsCheck = [ "configargparse" ];
 
   meta = with lib; {
-    description = "A drop-in replacement for argparse";
+    description = "Drop-in replacement for argparse";
     homepage = "https://github.com/bw2/ConfigArgParse";
     changelog = "https://github.com/bw2/ConfigArgParse/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/configclass/default.nix b/pkgs/development/python-modules/configclass/default.nix
index bb56f3c745da6..8ddca65737d6d 100644
--- a/pkgs/development/python-modules/configclass/default.nix
+++ b/pkgs/development/python-modules/configclass/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, mergedict
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  mergedict,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,7 +23,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "configclass" ];
 
   meta = with lib; {
-    description = "A Python to class to hold configuration values";
+    description = "Python to class to hold configuration values";
     homepage = "https://github.com/schettino72/configclass/";
     license = licenses.mit;
     maintainers = with maintainers; [ onny ];
diff --git a/pkgs/development/python-modules/confight/default.nix b/pkgs/development/python-modules/confight/default.nix
index 718b0614b1113..d3e627b79bb21 100644
--- a/pkgs/development/python-modules/confight/default.nix
+++ b/pkgs/development/python-modules/confight/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, toml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  toml,
 }:
 
 buildPythonPackage rec {
@@ -15,13 +16,9 @@ buildPythonPackage rec {
     hash = "sha256-iodoexnh9tG4dgkjDXCUzWRFDhRlJ3HRgaNhxG2lwPY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    toml
-  ];
+  propagatedBuildInputs = [ toml ];
 
   pythonImportsCheck = [ "confight" ];
 
diff --git a/pkgs/development/python-modules/configobj/default.nix b/pkgs/development/python-modules/configobj/default.nix
index 932e434d923d1..ad3ce46736112 100644
--- a/pkgs/development/python-modules/configobj/default.nix
+++ b/pkgs/development/python-modules/configobj/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pytestCheckHook
-, pythonOlder
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-t3Q0FEBibkAM5PAG4fjXwNH/71RqSSDj/Mn27ri0iDU=";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  checkInputs = [
-    mock
-  ];
+  checkInputs = [ mock ];
 
-  pythonImportsCheck = [
-    "configobj"
-  ];
+  pythonImportsCheck = [ "configobj" ];
 
   meta = with lib; {
     description = "Config file reading, writing and validation";
diff --git a/pkgs/development/python-modules/configparser/default.nix b/pkgs/development/python-modules/configparser/default.nix
index 4495401250a22..efe6362da4803 100644
--- a/pkgs/development/python-modules/configparser/default.nix
+++ b/pkgs/development/python-modules/configparser/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, setuptools
-, setuptools-scm
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "configparser";
-  version = "6.0.1";
+  version = "7.0.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "jaraco";
     repo = "configparser";
     rev = "refs/tags/v${version}";
-    hash = "sha256-r+poK+knBQi48Z1VrNFqUt9Qm9iGERAOTFa4bKfXi0g=";
+    hash = "sha256-OqlmAmBt4x+cJtK89dxsU7+Vn9wmGR9Djc59/ewHSxs=";
   };
 
   nativeBuildInputs = [
@@ -31,7 +32,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "Updated configparser from Python 3.7 for Python 2.6+.";
+    description = "Updated configparser from Python 3.7 for Python 2.6+";
     homepage = "https://github.com/jaraco/configparser";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/configshell/default.nix b/pkgs/development/python-modules/configshell/default.nix
index 922b43ec729cd..cc3c7002a4ec5 100644
--- a/pkgs/development/python-modules/configshell/default.nix
+++ b/pkgs/development/python-modules/configshell/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pyparsing
-, six
-, urwid
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pyparsing,
+  six,
+  urwid,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "configshell"
-  ];
+  pythonImportsCheck = [ "configshell" ];
 
   meta = with lib; {
     description = "Python library for building configuration shells";
diff --git a/pkgs/development/python-modules/configupdater/default.nix b/pkgs/development/python-modules/configupdater/default.nix
index aed19b526715f..9e052140d48fc 100644
--- a/pkgs/development/python-modules/configupdater/default.nix
+++ b/pkgs/development/python-modules/configupdater/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -25,14 +26,15 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "configupdater" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Parser like ConfigParser but for updating configuration files";
     homepage = "https://configupdater.readthedocs.io/en/latest/";
-    license = with licenses; [ mit psfl ];
+    license = with licenses; [
+      mit
+      psfl
+    ];
     maintainers = with maintainers; [ ris ];
   };
 }
diff --git a/pkgs/development/python-modules/confluent-kafka/default.nix b/pkgs/development/python-modules/confluent-kafka/default.nix
index b610f1d405909..95cf2c7bf0b69 100644
--- a/pkgs/development/python-modules/confluent-kafka/default.nix
+++ b/pkgs/development/python-modules/confluent-kafka/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, avro
-, buildPythonPackage
-, fastavro
-, fetchFromGitHub
-, jsonschema
-, protobuf
-, pyflakes
-, pyrsistent
-, pytestCheckHook
-, pythonOlder
-, rdkafka
-, requests
-, requests-mock
+{
+  lib,
+  avro,
+  buildPythonPackage,
+  fastavro,
+  fetchFromGitHub,
+  jsonschema,
+  protobuf,
+  pyflakes,
+  pyrsistent,
+  pytestCheckHook,
+  pythonOlder,
+  rdkafka,
+  requests,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
   pname = "confluent-kafka";
-  version = "2.3.0";
+  version = "2.4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -25,16 +26,12 @@ buildPythonPackage rec {
     owner = "confluentinc";
     repo = "confluent-kafka-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sPlLlp0niR45lQPCvVd6NPtGI1cFbmPeQpIF1RnnY0I=";
+    hash = "sha256-JlPWh46WjY4GHRKtamB+qigVvVzvbRagbigyCol6lfg=";
   };
 
-  buildInputs = [
-    rdkafka
-  ];
+  buildInputs = [ rdkafka ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   passthru.optional-dependencies = {
     avro = [
@@ -45,9 +42,7 @@ buildPythonPackage rec {
       jsonschema
       pyrsistent
     ];
-    protobuf = [
-      protobuf
-    ];
+    protobuf = [ protobuf ];
   };
 
   nativeCheckInputs = [
@@ -56,9 +51,7 @@ buildPythonPackage rec {
     requests-mock
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "confluent_kafka"
-  ];
+  pythonImportsCheck = [ "confluent_kafka" ];
 
   disabledTestPaths = [
     "tests/integration/"
diff --git a/pkgs/development/python-modules/confuse/default.nix b/pkgs/development/python-modules/confuse/default.nix
index a3a979f68f872..59ba5a4b3faf8 100644
--- a/pkgs/development/python-modules/confuse/default.nix
+++ b/pkgs/development/python-modules/confuse/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pyyaml
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pyyaml,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-zdH5DNXnuAfYTuaG9EIKiXL2EbLSfzYjPSkC3G06bU8=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    pyyaml
-  ];
+  propagatedBuildInputs = [ pyyaml ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "confuse"
-  ];
+  pythonImportsCheck = [ "confuse" ];
 
   meta = with lib; {
     description = "Python configuration library for Python that uses YAML";
diff --git a/pkgs/development/python-modules/connect-box/default.nix b/pkgs/development/python-modules/connect-box/default.nix
index 34ca8dbb01df5..9a3a1519db78f 100644
--- a/pkgs/development/python-modules/connect-box/default.nix
+++ b/pkgs/development/python-modules/connect-box/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, attrs
-, buildPythonPackage
-, defusedxml
-, fetchFromGitHub
-, pythonOlder
-, pytest-asyncio
-, pytestCheckHook
-, setuptools
-, pytest-vcr
-, syrupy
+{
+  lib,
+  aiohttp,
+  attrs,
+  buildPythonPackage,
+  defusedxml,
+  fetchFromGitHub,
+  pythonOlder,
+  pytest-asyncio,
+  pytestCheckHook,
+  setuptools,
+  pytest-vcr,
+  syrupy,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-zUvZRnxVzg9izvUbp7QVcyu6Bw3dUXHOr0kOQRWEZVc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -43,13 +42,9 @@ buildPythonPackage rec {
     syrupy
   ];
 
-  pythonImportsCheck = [
-    "connect_box"
-  ];
+  pythonImportsCheck = [ "connect_box" ];
 
-  pytestFlagsArray = [
-    "--vcr-record=none"
-  ];
+  pytestFlagsArray = [ "--vcr-record=none" ];
 
   meta = with lib; {
     description = "Interact with a Compal CH7465LG cable modem/router";
diff --git a/pkgs/development/python-modules/connection-pool/default.nix b/pkgs/development/python-modules/connection-pool/default.nix
index c6785a183f5e1..b9767c7513bab 100644
--- a/pkgs/development/python-modules/connection-pool/default.nix
+++ b/pkgs/development/python-modules/connection-pool/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/connexion/default.nix b/pkgs/development/python-modules/connexion/default.nix
index 46524a80b43c1..0e599c2945c30 100644
--- a/pkgs/development/python-modules/connexion/default.nix
+++ b/pkgs/development/python-modules/connexion/default.nix
@@ -1,39 +1,40 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
 
-# build-system
-, poetry-core
+  # build-system
+  poetry-core,
 
-# dependencies
-, asgiref
-, httpx
-, inflection
-, jsonschema
-, jinja2
-, python-multipart
-, pyyaml
-, requests
-, starlette
-, typing-extensions
-, werkzeug
+  # dependencies
+  asgiref,
+  httpx,
+  inflection,
+  jsonschema,
+  jinja2,
+  python-multipart,
+  pyyaml,
+  requests,
+  starlette,
+  typing-extensions,
+  werkzeug,
 
-# optional-dependencies
-, a2wsgi
-, flask
-, swagger-ui-bundle
-, uvicorn
+  # optional-dependencies
+  a2wsgi,
+  flask,
+  swagger-ui-bundle,
+  uvicorn,
 
-# tests
-, pytest-aiohttp
-, pytestCheckHook
-, testfixtures
+  # tests
+  pytest-aiohttp,
+  pytestCheckHook,
+  testfixtures,
 }:
 
 buildPythonPackage rec {
   pname = "connexion";
-  version = "3.0.6";
+  version = "3.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -42,12 +43,10 @@ buildPythonPackage rec {
     owner = "spec-first";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-0EaJwxT80qLqlrxYk4H7Pf/UKq2pA/8HGL8OiqNA/2s=";
+    hash = "sha256-rngQDU9kXw/Z+Al0SCVnWN8xnphueTtZ0+xPBR5MbEM=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     asgiref
@@ -68,12 +67,8 @@ buildPythonPackage rec {
       a2wsgi
       flask
     ];
-    swagger-ui = [
-      swagger-ui-bundle
-    ];
-    uvicorn = [
-      uvicorn
-    ];
+    swagger-ui = [ swagger-ui-bundle ];
+    uvicorn = [ uvicorn ];
   };
 
   nativeCheckInputs = [
@@ -82,9 +77,7 @@ buildPythonPackage rec {
     testfixtures
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "connexion"
-  ];
+  pythonImportsCheck = [ "connexion" ];
 
   disabledTests = [
     # AssertionError
@@ -102,6 +95,5 @@ buildPythonPackage rec {
     homepage = "https://github.com/spec-first/connexion";
     changelog = "https://github.com/spec-first/connexion/releases/tag/${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/connio/default.nix b/pkgs/development/python-modules/connio/default.nix
index 14574ab9da331..93fe3c0fa5ddf 100644
--- a/pkgs/development/python-modules/connio/default.nix
+++ b/pkgs/development/python-modules/connio/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, serialio
-, sockio
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  serialio,
+  sockio,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "connio"
-  ];
+  pythonImportsCheck = [ "connio" ];
 
   meta = with lib; {
     description = "Library for concurrency agnostic communication";
diff --git a/pkgs/development/python-modules/cons/default.nix b/pkgs/development/python-modules/cons/default.nix
index d08f5deb3c96d..a1a2b3ad856df 100644
--- a/pkgs/development/python-modules/cons/default.nix
+++ b/pkgs/development/python-modules/cons/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, logical-unification
-, py
-, pytestCheckHook
-, pytest-html
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  logical-unification,
+  py,
+  pytestCheckHook,
+  pytest-html,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-XssERKiv4A8x7dZhLeFSciN6RCEfGs0or3PAQiYSPII=";
   };
 
-  propagatedBuildInputs = [
-    logical-unification
-  ];
+  propagatedBuildInputs = [ logical-unification ];
 
   nativeCheckInputs = [
     py
@@ -40,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "cons" ];
 
   meta = with lib; {
-    description = "An implementation of Lisp/Scheme-like cons in Python";
+    description = "Implementation of Lisp/Scheme-like cons in Python";
     homepage = "https://github.com/pythological/python-cons";
     changelog = "https://github.com/pythological/python-cons/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/python-modules/consonance/default.nix b/pkgs/development/python-modules/consonance/default.nix
index e13665cd5dc3e..6b835fd44c567 100644
--- a/pkgs/development/python-modules/consonance/default.nix
+++ b/pkgs/development/python-modules/consonance/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, dissononce
-, python-axolotl-curve25519
-, transitions
-, protobuf
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  dissononce,
+  python-axolotl-curve25519,
+  transitions,
+  protobuf,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -40,17 +41,11 @@ buildPythonPackage rec {
     protobuf
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests/test_handshakes_offline.py"
-  ];
+  pytestFlagsArray = [ "tests/test_handshakes_offline.py" ];
 
-  pythonImportsCheck = [
-    "consonance"
-  ];
+  pythonImportsCheck = [ "consonance" ];
 
   meta = with lib; {
     description = "WhatsApp's handshake implementation using Noise Protocol";
diff --git a/pkgs/development/python-modules/constantly/default.nix b/pkgs/development/python-modules/constantly/default.nix
index a4bce3f399e46..0e0b19ecdd500 100644
--- a/pkgs/development/python-modules/constantly/default.nix
+++ b/pkgs/development/python-modules/constantly/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-
-# build-system
-, setuptools
-, versioneer
-
-# tests
-, twisted
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+  versioneer,
+
+  # tests
+  twisted,
 }:
 
 let
@@ -34,9 +35,7 @@ let
     # would create dependency loop with twisted
     doCheck = false;
 
-    nativeCheckInputs = [
-      twisted
-    ];
+    nativeCheckInputs = [ twisted ];
 
     checkPhase = ''
       runHook preCheck
@@ -44,9 +43,7 @@ let
       runHook postCheck
     '';
 
-    pythonImportsCheck = [
-      "constantly"
-    ];
+    pythonImportsCheck = [ "constantly" ];
 
     passthru.tests.constantly = self.overridePythonAttrs { doCheck = true; };
 
@@ -54,7 +51,7 @@ let
       description = "Module for symbolic constant support";
       homepage = "https://github.com/twisted/constantly";
       license = licenses.mit;
-      maintainers =  with maintainers; [ ];
+      maintainers = with maintainers; [ ];
     };
   };
 in
diff --git a/pkgs/development/python-modules/construct-classes/default.nix b/pkgs/development/python-modules/construct-classes/default.nix
index 386c386ef42f1..14026a1957f1e 100644
--- a/pkgs/development/python-modules/construct-classes/default.nix
+++ b/pkgs/development/python-modules/construct-classes/default.nix
@@ -1,39 +1,36 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, construct
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  construct,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
-  pname   = "construct-classes";
+  pname = "construct-classes";
   version = "0.1.2";
   format = "pyproject";
 
   # no tests in PyPI tarball
   src = fetchFromGitHub {
-    owner  = "matejcik";
-    repo   = "construct-classes";
-    rev    = "v${version}";
+    owner = "matejcik";
+    repo = "construct-classes";
+    rev = "v${version}";
     hash = "sha256-l4sVacKTuQbhXCw2lVHCl1OzpCiKmEAm9nSQ8pxFuTo=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    construct
-  ];
+  propagatedBuildInputs = [ construct ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "construct_classes" ];
 
   meta = with lib; {
-    description = "Parse your binary data into dataclasses.";
+    description = "Parse your binary data into dataclasses";
     homepage = "https://github.com/matejcik/construct-classes";
     license = licenses.mit;
     maintainers = with maintainers; [ prusnak ];
diff --git a/pkgs/development/python-modules/construct/default.nix b/pkgs/development/python-modules/construct/default.nix
index 917a6f4f95dba..729d6df5644d6 100644
--- a/pkgs/development/python-modules/construct/default.nix
+++ b/pkgs/development/python-modules/construct/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, stdenv
-, arrow
-, buildPythonPackage
-, cloudpickle
-, cryptography
-, fetchFromGitHub
-, lz4
-, numpy
-, pytestCheckHook
-, pythonOlder
-, ruamel-yaml
-, setuptools
+{
+  lib,
+  stdenv,
+  arrow,
+  buildPythonPackage,
+  cloudpickle,
+  cryptography,
+  fetchFromGitHub,
+  lz4,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  ruamel-yaml,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-5otjjIyje0+z/Y/C2ivmu08PNm0oJcSSvZkQfGxHDuQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     # Not an explicit dependency, but it's imported by an entrypoint
@@ -50,15 +49,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "construct"
-  ];
+  pythonImportsCheck = [ "construct" ];
 
-  disabledTests = [
-    "test_benchmarks"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_multiprocessing"
-  ];
+  disabledTests = [ "test_benchmarks" ] ++ lib.optionals stdenv.isDarwin [ "test_multiprocessing" ];
 
   meta = with lib; {
     description = "Powerful declarative parser (and builder) for binary data";
diff --git a/pkgs/development/python-modules/consul/default.nix b/pkgs/development/python-modules/consul/default.nix
index a3b92ee725549..56d95aa87d905 100644
--- a/pkgs/development/python-modules/consul/default.nix
+++ b/pkgs/development/python-modules/consul/default.nix
@@ -1,5 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi
-, requests, six, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  six,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "python-consul";
@@ -10,7 +16,11 @@ buildPythonPackage rec {
     sha256 = "168f1fa53948047effe4f14d53fc1dab50192e2a2cf7855703f126f469ea11f4";
   };
 
-  buildInputs = [ requests six pytest ];
+  buildInputs = [
+    requests
+    six
+    pytest
+  ];
 
   # No tests distributed. https://github.com/cablehead/python-consul/issues/133
   doCheck = false;
diff --git a/pkgs/development/python-modules/container-inspector/default.nix b/pkgs/development/python-modules/container-inspector/default.nix
index 4a3f6918b9e8b..430855c6f03e3 100644
--- a/pkgs/development/python-modules/container-inspector/default.nix
+++ b/pkgs/development/python-modules/container-inspector/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, attrs
-, buildPythonPackage
-, click
-, commoncode
-, dockerfile-parse
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  click,
+  commoncode,
+  dockerfile-parse,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "container-inspector";
-  version = "32.0.1";
+  version = "33.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -21,7 +22,7 @@ buildPythonPackage rec {
     owner = "nexB";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-J9glnfs6l36/IQoIvE8a+Cw4B8x/6r5UeAU8+T/OiQg=";
+    hash = "sha256-vtC42yq59vTE+4tF5CSm9zszj8goOP5i6+NMF2n4T1Q=";
   };
 
   dontConfigure = true;
@@ -32,9 +33,7 @@ buildPythonPackage rec {
       --replace ">=3.7.*" ">=3.7"
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     attrs
@@ -43,13 +42,9 @@ buildPythonPackage rec {
     commoncode
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "container_inspector"
-  ];
+  pythonImportsCheck = [ "container_inspector" ];
 
   meta = with lib; {
     description = "Suite of analysis utilities and command line tools for container images";
diff --git a/pkgs/development/python-modules/contexter/default.nix b/pkgs/development/python-modules/contexter/default.nix
index da96829d482ac..5ca090e91901b 100644
--- a/pkgs/development/python-modules/contexter/default.nix
+++ b/pkgs/development/python-modules/contexter/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "contexter";
@@ -10,6 +14,5 @@ buildPythonPackage rec {
     sha256 = "c730890b1a915051414a6350d8ea1cddca7d01d8f756badedb30b9bf305ea0a8";
   };
 
-  meta = with lib; {
-  };
+  meta = with lib; { };
 }
diff --git a/pkgs/development/python-modules/contextlib2/default.nix b/pkgs/development/python-modules/contextlib2/default.nix
index 19c26dbdd21cb..18b18e917d617 100644
--- a/pkgs/development/python-modules/contextlib2/default.nix
+++ b/pkgs/development/python-modules/contextlib2/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, pythonAtLeast
-, pythonOlder
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  pythonAtLeast,
+  pythonOlder,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ unittestCheckHook ];
 
-  pythonImportsCheck = [
-    "contextlib2"
-  ];
+  pythonImportsCheck = [ "contextlib2" ];
 
   meta = with lib; {
     description = "Backports and enhancements for the contextlib module";
diff --git a/pkgs/development/python-modules/contexttimer/default.nix b/pkgs/development/python-modules/contexttimer/default.nix
index f908783fb0b63..1cba5807e96de 100644
--- a/pkgs/development/python-modules/contexttimer/default.nix
+++ b/pkgs/development/python-modules/contexttimer/default.nix
@@ -1,9 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, fetchpatch
-, python
+{
+  lib,
+  buildPythonPackage,
+  pythonAtLeast,
+  fetchFromGitHub,
+  mock,
+  fetchpatch,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -11,6 +13,8 @@ buildPythonPackage rec {
   version = "unstable-2019-03-30";
   format = "setuptools";
 
+  disabled = pythonAtLeast "3.12";
+
   src = fetchFromGitHub {
     owner = "brouberol";
     repo = "contexttimer";
@@ -19,7 +23,7 @@ buildPythonPackage rec {
   };
 
   patches = [
-  # https://github.com/brouberol/contexttimer/pull/16
+    # https://github.com/brouberol/contexttimer/pull/16
     (fetchpatch {
       url = "https://github.com/brouberol/contexttimer/commit/dd65871f3f25a523a47a74f2f5306c57048592b0.patch";
       hash = "sha256-vNBuFXvuvb6hWPzg4W4iyKbd4N+vofhxsKydEkc25E4=";
@@ -36,7 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/brouberol/contexttimer";
-    description = "A timer as a context manager";
+    description = "Timer as a context manager";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ atila ];
   };
diff --git a/pkgs/development/python-modules/contourpy/default.nix b/pkgs/development/python-modules/contourpy/default.nix
index 5e12a4531b33c..652fbbef7207b 100644
--- a/pkgs/development/python-modules/contourpy/default.nix
+++ b/pkgs/development/python-modules/contourpy/default.nix
@@ -1,79 +1,84 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build
-, meson
-, meson-python
-, ninja
-, pybind11
+  # build
+  meson,
+  meson-python,
+  ninja,
+  pybind11,
 
-# propagates
-, numpy
+  # propagates
+  numpy,
 
-# optionals
-, bokeh
-, chromedriver
-, selenium
+  # optionals
+  bokeh,
+  chromedriver,
+  selenium,
 
-# tests
-, matplotlib
-, pillow
-, pytestCheckHook
+  # tests
+  matplotlib,
+  pillow,
+  pytestCheckHook,
 }:
 
-let countourpy = buildPythonPackage rec {
-  pname = "contourpy";
-  version = "1.2.0";
-  format = "pyproject";
+let
+  contourpy = buildPythonPackage rec {
+    pname = "contourpy";
+    version = "1.2.1";
+    format = "pyproject";
 
-  disabled = pythonOlder "3.8";
+    disabled = pythonOlder "3.8";
 
-  src = fetchFromGitHub {
-    owner = "contourpy";
-    repo = "contourpy";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-5yZrIwwe9dL5vtdSJnOhY9X4BdK/cdEY4DkVVjCq1uw=";
-  };
+    src = fetchFromGitHub {
+      owner = "contourpy";
+      repo = "contourpy";
+      rev = "refs/tags/v${version}";
+      hash = "sha256-Qd6FC7SgFyC/BvOPWVkr2ZfKVMVAknLlidNRq3zcWU0=";
+    };
 
-  nativeBuildInputs = [
-    meson
-    meson-python
-    ninja
-    pybind11
-  ];
+    nativeBuildInputs = [
+      meson
+      meson-python
+      ninja
+      pybind11
+    ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+    propagatedBuildInputs = [ numpy ];
 
-  passthru.optional-depdendencies = {
-    bokeh = [ bokeh chromedriver selenium ];
-  };
+    passthru.optional-depdendencies = {
+      bokeh = [
+        bokeh
+        chromedriver
+        selenium
+      ];
+    };
 
-  doCheck = false; # infinite recursion with matplotlib, tests in passthru
+    doCheck = false; # infinite recursion with matplotlib, tests in passthru
 
-  nativeCheckInputs = [
-    matplotlib
-    pillow
-    pytestCheckHook
-  ];
+    nativeCheckInputs = [
+      matplotlib
+      pillow
+      pytestCheckHook
+    ];
 
-  passthru.tests = {
-    check = countourpy.overridePythonAttrs (_: { doCheck = true; });
-  };
+    passthru.tests = {
+      check = contourpy.overridePythonAttrs (_: {
+        doCheck = true;
+      });
+    };
 
-  pythonImportsCheck = [
-    "contourpy"
-  ];
+    pythonImportsCheck = [ "contourpy" ];
 
-  meta = with lib; {
-    changelog = "https://github.com/contourpy/contourpy/releases/tag/v${version}";
-    description = "Python library for calculating contours in 2D quadrilateral grids";
-    homepage = "https://github.com/contourpy/contourpy";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    meta = with lib; {
+      changelog = "https://github.com/contourpy/contourpy/releases/tag/v${version}";
+      description = "Python library for calculating contours in 2D quadrilateral grids";
+      homepage = "https://github.com/contourpy/contourpy";
+      license = licenses.bsd3;
+      maintainers = with maintainers; [ ];
+    };
   };
-};
-in countourpy
+in
+contourpy
diff --git a/pkgs/development/python-modules/controku/default.nix b/pkgs/development/python-modules/controku/default.nix
index 80c4505175f25..e41e38b8ccd4e 100644
--- a/pkgs/development/python-modules/controku/default.nix
+++ b/pkgs/development/python-modules/controku/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, python3Packages
-, fetchFromGitHub
-, setuptools
-, requests
-, ssdpy
-, appdirs
-, pygobject3
-, gobject-introspection
-, gtk3
-, wrapGAppsHook3
-, buildApplication ? false
+{
+  lib,
+  python3Packages,
+  fetchFromGitHub,
+  setuptools,
+  requests,
+  ssdpy,
+  appdirs,
+  pygobject3,
+  gobject-introspection,
+  gtk3,
+  wrapGAppsHook3,
+  buildApplication ? false,
 }:
 
 python3Packages.buildPythonPackage rec {
@@ -24,21 +25,23 @@ python3Packages.buildPythonPackage rec {
     hash = "sha256-sye2GtL3a77pygllZc6ylaIP7faPb+NFbyKKyqJzIXw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ] ++ lib.optionals buildApplication [
-    gobject-introspection
-    wrapGAppsHook3
-  ];
+  nativeBuildInputs =
+    [ setuptools ]
+    ++ lib.optionals buildApplication [
+      gobject-introspection
+      wrapGAppsHook3
+    ];
 
-  propagatedBuildInputs = [
-    requests
-    ssdpy
-  ] ++ lib.optionals buildApplication [
-    gtk3
-    appdirs
-    pygobject3
-  ];
+  propagatedBuildInputs =
+    [
+      requests
+      ssdpy
+    ]
+    ++ lib.optionals buildApplication [
+      gtk3
+      appdirs
+      pygobject3
+    ];
 
   pythonImportsCheck = [ "controku" ];
 
diff --git a/pkgs/development/python-modules/convertdate/default.nix b/pkgs/development/python-modules/convertdate/default.nix
index 39a935e5e8501..e4c2e9bd8ec0a 100644
--- a/pkgs/development/python-modules/convertdate/default.nix
+++ b/pkgs/development/python-modules/convertdate/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pymeeus
-, pytz
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pymeeus,
+  pytz,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     pytz
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "convertdate"
-  ];
+  pythonImportsCheck = [ "convertdate" ];
 
   meta = with lib; {
     description = "Utils for converting between date formats and calculating holidays";
diff --git a/pkgs/development/python-modules/conway-polynomials/default.nix b/pkgs/development/python-modules/conway-polynomials/default.nix
index d5b57a10aa393..c89898e851079 100644
--- a/pkgs/development/python-modules/conway-polynomials/default.nix
+++ b/pkgs/development/python-modules/conway-polynomials/default.nix
@@ -1,17 +1,23 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "conway-polynomials";
-  version = "0.9";
+  version = "0.10";
+  pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-btIwBgm8558BddW4VGhY7sAoVPi+MjfbjRRJzMzBxYE=";
+    pname = "conway_polynomials";
+    inherit version;
+    hash = "sha256-T2GfZPgaPrFsTibFooT+7sJ6b0qtZHZD55ryiYAa4PM=";
   };
 
+  build-system = [ setuptools ];
+
   pythonImportsCheck = [ "conway_polynomials" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/cookiecutter/default.nix b/pkgs/development/python-modules/cookiecutter/default.nix
index 6818f9021a449..5402b1764b00b 100644
--- a/pkgs/development/python-modules/cookiecutter/default.nix
+++ b/pkgs/development/python-modules/cookiecutter/default.nix
@@ -1,11 +1,24 @@
-{ lib, buildPythonPackage, fetchPypi, isPyPy
-, setuptools
-, pytest, pytest-cov, pytest-mock, freezegun, safety, pre-commit
-, jinja2, binaryornot, click, jinja2-time, requests
-, python-slugify
-, pyyaml
-, arrow
-, rich
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  setuptools,
+  pytest,
+  pytest-cov,
+  pytest-mock,
+  freezegun,
+  safety,
+  pre-commit,
+  jinja2,
+  binaryornot,
+  click,
+  jinja2-time,
+  requests,
+  python-slugify,
+  pyyaml,
+  arrow,
+  rich,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +34,7 @@ buildPythonPackage rec {
     hash = "sha256-2yH4Fp6k9P3CQI1IykSFk0neJkf75JSp1sPt/AVCwhw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytest
@@ -53,7 +64,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/audreyr/cookiecutter";
-    description = "A command-line utility that creates projects from project templates";
+    description = "Command-line utility that creates projects from project templates";
     mainProgram = "cookiecutter";
     license = licenses.bsd3;
     maintainers = with maintainers; [ kragniz ];
diff --git a/pkgs/development/python-modules/cookies/default.nix b/pkgs/development/python-modules/cookies/default.nix
index 3f0d64c0c22d9..bd58002178d1a 100644
--- a/pkgs/development/python-modules/cookies/default.nix
+++ b/pkgs/development/python-modules/cookies/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchpatch,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    pytestCheckHook
-  ];
+  nativeBuildInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # https://gitlab.com/sashahart/cookies/-/issues/6
diff --git a/pkgs/development/python-modules/coordinates/default.nix b/pkgs/development/python-modules/coordinates/default.nix
index e699e1b9a015f..454a2b7083cb1 100644
--- a/pkgs/development/python-modules/coordinates/default.nix
+++ b/pkgs/development/python-modules/coordinates/default.nix
@@ -1,33 +1,37 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "coordinates";
   version = "0.4.0";
-  format = "setuptools";
+  pyproject = true;
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "clbarnes";
     repo = "coordinates";
-    rev = "v${version}";
-    sha256 = "1zha594rshjg3qjq9mrai2hfldya282ihasp2i3km7b2j4gjdw2b";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-S/AmH5FinTpHFFcrGAUSyjfqoIgq14QlHk9CnUkqCv4=";
   };
 
-  nativeCheckInputs = [ pytest ];
+  build-system = [ setuptools ];
 
-  checkPhase = ''
-    runHook preCheck
-    pytest tests/
-    runHook postCheck
-  '';
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "coordinates" ];
 
   meta = with lib; {
     description = "Convenience class for doing maths with explicit coordinates";
     homepage = "https://github.com/clbarnes/coordinates";
+    changelog = "https://github.com/clbarnes/coordinates/releases/tag/v${version}";
     license = licenses.mit;
-    maintainers = [ ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/coqpit/default.nix b/pkgs/development/python-modules/coqpit/default.nix
index 48954b7a9117a..52487176f2690 100644
--- a/pkgs/development/python-modules/coqpit/default.nix
+++ b/pkgs/development/python-modules/coqpit/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-FY3PYd8dY5HFKkhD6kBzPt0k1eFugdqsO3yIN4oDk3E=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [
     "coqpit"
@@ -27,13 +26,9 @@ buildPythonPackage rec {
   ];
 
   # https://github.com/coqui-ai/coqpit/issues/40
-  disabledTests = lib.optionals (pythonAtLeast "3.11")[
-    "test_init_argparse_list_and_nested"
-  ];
+  disabledTests = lib.optionals (pythonAtLeast "3.11") [ "test_init_argparse_list_and_nested" ];
 
-  disabledTestPaths = lib.optionals (pythonAtLeast "3.11")[
-    "tests/test_nested_configs.py"
-  ];
+  disabledTestPaths = lib.optionals (pythonAtLeast "3.11") [ "tests/test_nested_configs.py" ];
 
   meta = with lib; {
     description = "Simple but maybe too simple config management through python data classes";
diff --git a/pkgs/development/python-modules/coredis/default.nix b/pkgs/development/python-modules/coredis/default.nix
index 75626ecc07adc..f7e5824544d90 100644
--- a/pkgs/development/python-modules/coredis/default.nix
+++ b/pkgs/development/python-modules/coredis/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, deprecated
-, fetchFromGitHub
-, pympler
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, redis
-, wrapt
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  deprecated,
+  fetchFromGitHub,
+  pympler,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  redis,
+  wrapt,
 }:
 
 buildPythonPackage rec {
@@ -43,9 +44,7 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
-  pythonImportsCheck = [
-    "coredis"
-  ];
+  pythonImportsCheck = [ "coredis" ];
 
   pytestFlagsArray = [
     # All other tests require Docker
@@ -56,7 +55,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "An async redis client with support for redis server, cluster & sentinel";
+    description = "Async redis client with support for redis server, cluster & sentinel";
     homepage = "https://github.com/alisaifee/coredis";
     changelog = "https://github.com/alisaifee/coredis/blob/${src.rev}/HISTORY.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/cornice/default.nix b/pkgs/development/python-modules/cornice/default.nix
index ff6ede5dcf206..639ddcacd4876 100644
--- a/pkgs/development/python-modules/cornice/default.nix
+++ b/pkgs/development/python-modules/cornice/default.nix
@@ -1,26 +1,43 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyramid
-, simplejson
-, six
-, venusian
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pyramid,
+  pytestCheckHook,
+  pytest-cache,
+  webtest,
+  marshmallow,
+  colander,
 }:
 
 buildPythonPackage rec {
   pname = "cornice";
   version = "6.1.0";
-  format = "setuptools";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-v9G2wqmRp8yxsggrbenjuPGYtqK0oHqwgA4F3wWkU2E=";
+  src = fetchFromGitHub {
+    owner = "Cornices";
+    repo = "cornice";
+    rev = version;
+    hash = "sha256-jAf8unDPpr/ZAWkb9LhOW4URjwcRnaYVUKmfnYBStTg=";
   };
 
-  propagatedBuildInputs = [ pyramid simplejson six venusian ];
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
 
-  # tests not packaged with pypi release
-  doCheck = false;
+  dependencies = [ pyramid ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-cache
+    webtest
+    marshmallow
+    colander
+  ];
   pythonImportsCheck = [ "cornice" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/correctionlib/default.nix b/pkgs/development/python-modules/correctionlib/default.nix
index 23a8bee16d218..a4f745f63caae 100644
--- a/pkgs/development/python-modules/correctionlib/default.nix
+++ b/pkgs/development/python-modules/correctionlib/default.nix
@@ -1,33 +1,43 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cmake
-, numpy
-, scikit-build
-, setuptools
-, setuptools-scm
-, wheel
-, packaging
-, pybind11
-, pydantic
-, rich
-, awkward
-, pytestCheckHook
-, scipy
-, zlib
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  cmake,
+  scikit-build,
+  setuptools,
+  setuptools-scm,
+  pybind11,
+
+  zlib,
+
+  # dependencies
+  numpy,
+  packaging,
+  pydantic,
+  rich,
+
+  # checks
+  awkward,
+  pytestCheckHook,
+  scipy,
 }:
 
 buildPythonPackage rec {
   pname = "correctionlib";
-  version = "2.5.0";
+  version = "2.6.0";
   pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-H8QCdU6piBdqJEJOGVbsz+6eyMhFVuwTpIHKUoKaf4A=";
+  src = fetchFromGitHub {
+    owner = "cms-nanoAOD";
+    repo = "correctionlib";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-RI0wL+/6aNCV9PZMY9ZLNFLVYPm9kAyxcvLzLLM/T3Y=";
+    fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [
+  build-system = [
     cmake
     scikit-build
     setuptools
@@ -35,11 +45,9 @@ buildPythonPackage rec {
     pybind11
   ];
 
-  buildInputs = [
-    zlib
-  ];
+  buildInputs = [ zlib ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     numpy
     packaging
     pydantic
@@ -54,15 +62,14 @@ buildPythonPackage rec {
     scipy
   ];
 
-  pythonImportsCheck = [
-    "correctionlib"
-  ];
+  pythonImportsCheck = [ "correctionlib" ];
 
-  meta = with lib; {
+  meta = {
     description = "Provides a well-structured JSON data format for a wide variety of ad-hoc correction factors encountered in a typical HEP analysis";
     mainProgram = "correction";
     homepage = "https://cms-nanoaod.github.io/correctionlib/";
-    license = with licenses; [ bsd3 ];
-    maintainers = with maintainers; [ veprbl ];
+    changelog = "https://github.com/cms-nanoAOD/correctionlib/releases/tag/v${version}";
+    license = with lib.licenses; [ bsd3 ];
+    maintainers = with lib.maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/python-modules/corsair-scan/default.nix b/pkgs/development/python-modules/corsair-scan/default.nix
index 4d7190906b262..59d9bdbfb1298 100644
--- a/pkgs/development/python-modules/corsair-scan/default.nix
+++ b/pkgs/development/python-modules/corsair-scan/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, mock
-, pytestCheckHook
-, pythonOlder
-, requests
-, tldextract
-, urllib3
-, validators
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  tldextract,
+  urllib3,
+  validators,
 }:
 
 buildPythonPackage rec {
@@ -43,9 +44,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "corsair_scan"
-  ];
+  pythonImportsCheck = [ "corsair_scan" ];
 
   disabledTests = [
     # Tests want to download Public Suffix List
diff --git a/pkgs/development/python-modules/cose/default.nix b/pkgs/development/python-modules/cose/default.nix
index c591677b53160..6ddb5676bef6c 100644
--- a/pkgs/development/python-modules/cose/default.nix
+++ b/pkgs/development/python-modules/cose/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-# Python deps
-, attrs
-, cbor2
-, certvalidator
-, cryptography
-, ecdsa
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  # Python deps
+  attrs,
+  cbor2,
+  certvalidator,
+  cryptography,
+  ecdsa,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -35,7 +36,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pycose" ];
 
   meta = with lib; {
-    description = "A Python implementation of the COSE specification";
+    description = "Python implementation of the COSE specification";
     homepage = "https://github.com/TimothyClaeys/pycose";
     license = licenses.bsd3;
     maintainers = with maintainers; [ t4ccer ];
diff --git a/pkgs/development/python-modules/cot/default.nix b/pkgs/development/python-modules/cot/default.nix
index e65bc8577e4b0..a007283c43d65 100644
--- a/pkgs/development/python-modules/cot/default.nix
+++ b/pkgs/development/python-modules/cot/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, colorlog
-, pyvmomi
-, requests
-, verboselogs
-, pyopenssl
-, setuptools
-, mock
-, pytest-mock
-, pytestCheckHook
-, qemu
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  colorlog,
+  pyvmomi,
+  requests,
+  verboselogs,
+  pyopenssl,
+  setuptools,
+  mock,
+  pytest-mock,
+  pytestCheckHook,
+  qemu,
 }:
 
 buildPythonPackage rec {
@@ -70,13 +71,9 @@ buildPythonPackage rec {
     "test_serial_fixup_stubbed"
     "test_serial_fixup_stubbed_create"
     "test_serial_fixup_stubbed_vm_not_found"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_serial_fixup_invalid_host"
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ "test_serial_fixup_invalid_host" ];
 
-  pythonImportsCheck = [
-    "COT"
-  ];
+  pythonImportsCheck = [ "COT" ];
 
   meta = with lib; {
     description = "Common OVF Tool";
diff --git a/pkgs/development/python-modules/courlan/default.nix b/pkgs/development/python-modules/courlan/default.nix
index bd73aad1977d8..96df4e29269e7 100644
--- a/pkgs/development/python-modules/courlan/default.nix
+++ b/pkgs/development/python-modules/courlan/default.nix
@@ -1,56 +1,58 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, langcodes
-, pytestCheckHook
-, tld
-, urllib3
-, pythonOlder
+{
+  lib,
+  babel,
+  buildPythonPackage,
+  fetchPypi,
+  langcodes,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  tld,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "courlan";
-  version = "1.0.0";
-  format = "setuptools";
+  version = "1.2.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-PDVRHDZSXLL5Qc1nCbejp0LtlfC55WyX7sDBb9wDUYM=";
+    hash = "sha256-DLycrIOXDGUbk3p4I6XZLL67a2AUVOoPtstNDuXRhF0=";
   };
 
-  propagatedBuildInputs = [
+  # Tests try to write to /tmp directly. use $TMPDIR instead.
+  postPatch = ''
+    substituteInPlace tests/unit_tests.py \
+      --replace-fail "\"courlan --help\"" "\"$out/bin/courlan --help\"" \
+      --replace-fail "courlan_bin = \"courlan\"" "courlan_bin = \"$out/bin/courlan\"" \
+      --replace-fail "/tmp" "$TMPDIR"
+  '';
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    babel
     langcodes
     tld
     urllib3
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # disable tests that require an internet connection
-  disabledTests = [
-    "test_urlcheck"
-  ];
-
-  # tests try to write to /tmp directly. use $TMPDIR instead.
-  postPatch = ''
-    substituteInPlace tests/unit_tests.py \
-      --replace "\"courlan --help\"" "\"$out/bin/courlan --help\"" \
-      --replace "courlan_bin = \"courlan\"" "courlan_bin = \"$out/bin/courlan\"" \
-      --replace "/tmp" "$TMPDIR"
-  '';
+  disabledTests = [ "test_urlcheck" ];
 
   pythonImportsCheck = [ "courlan" ];
 
   meta = with lib; {
     description = "Clean, filter and sample URLs to optimize data collection";
-    mainProgram = "courlan";
     homepage = "https://github.com/adbar/courlan";
     changelog = "https://github.com/adbar/courlan/blob/v${version}/HISTORY.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ jokatzke ];
+    mainProgram = "courlan";
   };
 }
diff --git a/pkgs/development/python-modules/cov-core/default.nix b/pkgs/development/python-modules/cov-core/default.nix
deleted file mode 100644
index 6a4610fc447ca..0000000000000
--- a/pkgs/development/python-modules/cov-core/default.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi, coverage }:
-
-buildPythonPackage rec {
-  pname = "cov-core";
-  version = "1.15.0";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0k3np9ymh06yv1ib96sb6wfsxjkqhmik8qfsn119vnhga9ywc52a";
-  };
-
-  propagatedBuildInputs = [ coverage ];
-
-  meta = with lib; {
-    description = "Plugin core for use by pytest-cov, nose-cov and nose2-cov";
-  };
-}
diff --git a/pkgs/development/python-modules/coverage/default.nix b/pkgs/development/python-modules/coverage/default.nix
index 43919f97fc2f5..7e366cf497254 100644
--- a/pkgs/development/python-modules/coverage/default.nix
+++ b/pkgs/development/python-modules/coverage/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mock
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "coverage";
-  version = "7.4.4";
+  version = "7.5.3";
   pyproject = true;
 
   # uses f strings
@@ -16,12 +17,10 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-yQHfg9CXZJ4lfoA74iWSrt/VGC8Hs8yH1kC7ua/VD0k=";
+    hash = "sha256-BK78pRkNHcelOkwaWn+FaIETBteo7iMcQvtpIVVxlE8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # No tests in archive
   doCheck = false;
diff --git a/pkgs/development/python-modules/coveralls/default.nix b/pkgs/development/python-modules/coveralls/default.nix
index c1b144109bea8..c59dd631bf089 100644
--- a/pkgs/development/python-modules/coveralls/default.nix
+++ b/pkgs/development/python-modules/coveralls/default.nix
@@ -1,58 +1,62 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
-, isPy27
-, mock
-, pytest
-, pytest-runner
-, sh
-, coverage
-, docopt
-, requests
-, urllib3
-, git
-, isPy3k
+{
+  buildPythonPackage,
+  lib,
+  fetchFromGitHub,
+
+  # build-system
+  poetry-core,
+
+  # checks
+  mock,
+  pytestCheckHook,
+  sh,
+  coverage,
+  docopt,
+  requests,
+  git,
+  responses,
 }:
 
 buildPythonPackage rec {
   pname = "coveralls";
-  version = "3.3.1";
-  format = "setuptools";
-  disabled = isPy27;
+  version = "4.0.1";
+  pyproject = true;
 
-  # wanted by tests
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "b32a8bb5d2df585207c119d6c01567b81fba690c9c10a753bfe27a335bfc43ea";
+  src = fetchFromGitHub {
+    owner = "TheKevJames";
+    repo = "coveralls-python";
+    rev = "refs/tags/${version}";
+    hash = "sha256-1MjP99NykWNDyzWwZopLAzZ93vGX1mXEU+m+zvOBIZA=";
   };
 
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    coverage
+    docopt
+    requests
+  ];
+
   nativeCheckInputs = [
     mock
     sh
-    pytest
+    pytestCheckHook
+    responses
     git
   ];
 
-  buildInputs = [
-    pytest-runner
-  ];
-
-  postPatch = ''
-    sed -i "s/'coverage>=\([^,]\+\),.*',$/'coverage>=\1',/" setup.py
+  preCheck = ''
+    export PATH=${coverage}/bin:$PATH
   '';
 
-  # FIXME: tests requires .git directory to be present
-  doCheck = false;
-
-  checkPhase = ''
-    python setup.py test
-  '';
-
-  propagatedBuildInputs = [
-    coverage
-    docopt
-    requests
-  ] ++ lib.optional (!isPy3k) urllib3;
+  disabledTests = [
+    # requires .git in checkout
+    "test_git"
+    # try to run unwrapped python
+    "test_5"
+    "test_7"
+    "test_11"
+  ];
 
   meta = {
     description = "Show coverage stats online via coveralls.io";
@@ -61,5 +65,3 @@ buildPythonPackage rec {
     license = lib.licenses.mit;
   };
 }
-
-
diff --git a/pkgs/development/python-modules/cppe/default.nix b/pkgs/development/python-modules/cppe/default.nix
index 64e88190dc821..e3b007d480e06 100644
--- a/pkgs/development/python-modules/cppe/default.nix
+++ b/pkgs/development/python-modules/cppe/default.nix
@@ -1,23 +1,29 @@
-{ buildPythonPackage
-, lib
-, stdenv
-, cmake
-, cppe
-, eigen
-, python
-, pybind11
-, numpy
-, h5py
-, numba
-, scipy
-, pandas
-, polarizationsolver
-, pytest
-, llvmPackages
+{
+  buildPythonPackage,
+  lib,
+  stdenv,
+  cmake,
+  cppe,
+  eigen,
+  python,
+  pybind11,
+  numpy,
+  h5py,
+  numba,
+  scipy,
+  pandas,
+  polarizationsolver,
+  pytest,
+  llvmPackages,
 }:
 
 buildPythonPackage rec {
-  inherit (cppe) pname version src meta;
+  inherit (cppe)
+    pname
+    version
+    src
+    meta
+    ;
 
   # The python interface requires eigen3, but builds from a checkout in tree.
   # Using the nixpkgs version instead.
@@ -35,8 +41,7 @@ buildPythonPackage rec {
 
   format = "setuptools";
 
-  buildInputs = [ pybind11 ]
-    ++ lib.optional stdenv.cc.isClang llvmPackages.openmp;
+  buildInputs = [ pybind11 ] ++ lib.optional stdenv.cc.isClang llvmPackages.openmp;
 
   NIX_CFLAGS_LINK = lib.optional stdenv.cc.isClang "-lomp";
 
diff --git a/pkgs/development/python-modules/cppheaderparser/default.nix b/pkgs/development/python-modules/cppheaderparser/default.nix
index cb834b1d48a18..80aea1678ae7c 100644
--- a/pkgs/development/python-modules/cppheaderparser/default.nix
+++ b/pkgs/development/python-modules/cppheaderparser/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, fetchPypi
-, ply
-, lib
+{
+  buildPythonPackage,
+  fetchPypi,
+  ply,
+  lib,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/cppy/default.nix b/pkgs/development/python-modules/cppy/default.nix
index 230925a213e9b..f2fd2f3012cc5 100644
--- a/pkgs/development/python-modules/cppy/default.nix
+++ b/pkgs/development/python-modules/cppy/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pytestCheckHook
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-g7Q78XsQhawVxd69tCFU8Ti5KCNLIURzWJgfadDW/hs=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/cpufeature/default.nix b/pkgs/development/python-modules/cpufeature/default.nix
index cade32a1955bd..13f364fb00ee5 100644
--- a/pkgs/development/python-modules/cpufeature/default.nix
+++ b/pkgs/development/python-modules/cpufeature/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, unittestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  unittestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,21 +21,13 @@ buildPythonPackage rec {
     hash = "sha256-dp569Tp8E5/avQpYvhPNPgS/A+q2e/ie+7BR7h2Ip+I=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  propagatedBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  pythonImportsCheck = [
-    "cpufeature"
-  ];
+  pythonImportsCheck = [ "cpufeature" ];
 
   preCheck = ''
     # Change into the test directory due to a relative resource path
@@ -46,6 +39,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/robbmcleod/cpufeature";
     license = licenses.cc0;
     maintainers = with maintainers; [ fab ];
-    platforms = [ "x86_64-linux" "x86_64-windows" ];
+    platforms = [
+      "x86_64-linux"
+      "x86_64-windows"
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/cpyparsing/default.nix b/pkgs/development/python-modules/cpyparsing/default.nix
index e063e8847d436..c2bb13f67bd58 100644
--- a/pkgs/development/python-modules/cpyparsing/default.nix
+++ b/pkgs/development/python-modules/cpyparsing/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cython
-, pexpect
-, python
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cython,
+  pexpect,
+  python,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "cpyparsing";
-  version = "2.4.7.2.3.2";
+  version = "2.4.7.2.3.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,7 +20,7 @@ buildPythonPackage rec {
     owner = "evhub";
     repo = "cpyparsing";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vnzZdJ7pZz1QxlTqw5UKjxB4GVcXuCfKWX4lu3ORWas=";
+    hash = "sha256-Ob3aSxJXM/J1KQ2dwxew9fH3g2WVU2KI6lynDz31r+Y=";
   };
 
   nativeBuildInputs = [
@@ -27,17 +28,13 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  nativeCheckInputs = [
-    pexpect
-  ];
+  nativeCheckInputs = [ pexpect ];
 
   checkPhase = ''
     ${python.interpreter} tests/cPyparsing_test.py
   '';
 
-  pythonImportsCheck = [
-    "cPyparsing"
-  ];
+  pythonImportsCheck = [ "cPyparsing" ];
 
   meta = with lib; {
     description = "Cython PyParsing implementation";
diff --git a/pkgs/development/python-modules/craft-application-1/default.nix b/pkgs/development/python-modules/craft-application-1/default.nix
index 50685f0c16cee..e47e502e09f25 100644
--- a/pkgs/development/python-modules/craft-application-1/default.nix
+++ b/pkgs/development/python-modules/craft-application-1/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nix-update-script
-, craft-cli
-, craft-parts
-, craft-providers
-, pydantic-yaml-0
-, pyyaml
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, pytest-check
-, pytest-mock
-, hypothesis
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nix-update-script,
+  craft-cli,
+  craft-parts,
+  craft-providers,
+  pydantic-yaml-0,
+  pyyaml,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  pytest-check,
+  pytest-mock,
+  hypothesis,
 }:
 
 buildPythonPackage rec {
@@ -49,9 +50,7 @@ buildPythonPackage rec {
     pyyaml
   ];
 
-  pythonImportsCheck = [
-    "craft_application"
-  ];
+  pythonImportsCheck = [ "craft_application" ];
 
   nativeCheckInputs = [
     hypothesis
@@ -66,14 +65,12 @@ buildPythonPackage rec {
 
   pytestFlagsArray = [ "tests/unit" ];
 
-  disabledTests = [
-    "test_to_yaml_file"
-  ];
+  disabledTests = [ "test_to_yaml_file" ];
 
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "The basis for Canonical craft applications";
+    description = "Basis for Canonical craft applications";
     homepage = "https://github.com/canonical/craft-application";
     changelog = "https://github.com/canonical/craft-application/releases/tag/${version}";
     license = lib.licenses.lgpl3Only;
@@ -81,4 +78,3 @@ buildPythonPackage rec {
     platforms = lib.platforms.linux;
   };
 }
-
diff --git a/pkgs/development/python-modules/craft-application/default.nix b/pkgs/development/python-modules/craft-application/default.nix
index 03753c8c35b83..1d8f388f78815 100644
--- a/pkgs/development/python-modules/craft-application/default.nix
+++ b/pkgs/development/python-modules/craft-application/default.nix
@@ -27,7 +27,7 @@
 
 buildPythonPackage rec {
   pname = "craft-application";
-  version = "2.6.1";
+  version = "2.8.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -36,7 +36,7 @@ buildPythonPackage rec {
     owner = "canonical";
     repo = "craft-application";
     rev = "refs/tags/${version}";
-    hash = "sha256-mWXEc54JsZAl6KD33RF8juzDhFheQOLviJbM1B8RPSo=";
+    hash = "sha256-COcZgl2XzPWknSKMUZgZBEMzkDdwK2PouIEuWKOP8dc=";
   };
 
   postPatch = ''
@@ -44,7 +44,7 @@ buildPythonPackage rec {
       --replace-fail "dev" "${version}"
 
     substituteInPlace pyproject.toml \
-      --replace-fail "setuptools==69.4.0" "setuptools"
+      --replace-fail "setuptools==" "setuptools>="
   '';
 
   build-system = [
@@ -92,21 +92,23 @@ buildPythonPackage rec {
 
   pytestFlagsArray = [ "tests/unit" ];
 
-  disabledTests = [
-    "test_to_yaml_file"
-    # Tests expecting pytest-time
-    "test_monitor_builds_success"
-  ] ++ lib.optionals stdenv.isAarch64 [
-    # These tests have hardcoded "amd64" strings which fail on aarch64
-    "test_process_grammar_build_for"
-    "test_process_grammar_platform"
-    "test_process_grammar_default"
-  ];
+  disabledTests =
+    [
+      "test_to_yaml_file"
+      # Tests expecting pytest-time
+      "test_monitor_builds_success"
+    ]
+    ++ lib.optionals stdenv.isAarch64 [
+      # These tests have hardcoded "amd64" strings which fail on aarch64
+      "test_process_grammar_build_for"
+      "test_process_grammar_platform"
+      "test_process_grammar_default"
+    ];
 
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "The basis for Canonical craft applications";
+    description = "Basis for Canonical craft applications";
     homepage = "https://github.com/canonical/craft-application";
     changelog = "https://github.com/canonical/craft-application/releases/tag/${version}";
     license = lib.licenses.lgpl3Only;
diff --git a/pkgs/development/python-modules/craft-archives/default.nix b/pkgs/development/python-modules/craft-archives/default.nix
index 3fb3b0e9f0fa9..19f0133c69963 100644
--- a/pkgs/development/python-modules/craft-archives/default.nix
+++ b/pkgs/development/python-modules/craft-archives/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nix-update-script
-, launchpadlib
-, lazr-restfulclient
-, overrides
-, pydantic_1
-, setuptools
-, setuptools-scm
-, tabulate
-, pytest-check
-, pytest-mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nix-update-script,
+  launchpadlib,
+  lazr-restfulclient,
+  overrides,
+  pydantic_1,
+  setuptools,
+  setuptools-scm,
+  tabulate,
+  pytest-check,
+  pytest-mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -48,9 +49,7 @@ buildPythonPackage rec {
     tabulate
   ];
 
-  pythonImportsCheck = [
-    "craft_archives"
-  ];
+  pythonImportsCheck = [ "craft_archives" ];
 
   nativeCheckInputs = [
     pytest-check
@@ -63,7 +62,7 @@ buildPythonPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "A library for handling archives/repositories in Canonical craft applications";
+    description = "Library for handling archives/repositories in Canonical craft applications";
     homepage = "https://github.com/canonical/craft-archives";
     changelog = "https://github.com/canonical/craft-archives/releases/tag/${version}";
     license = lib.licenses.lgpl3Only;
@@ -71,4 +70,3 @@ buildPythonPackage rec {
     platforms = lib.platforms.linux;
   };
 }
-
diff --git a/pkgs/development/python-modules/craft-cli/default.nix b/pkgs/development/python-modules/craft-cli/default.nix
index 17537a0c99672..d6900511af7ac 100644
--- a/pkgs/development/python-modules/craft-cli/default.nix
+++ b/pkgs/development/python-modules/craft-cli/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nix-update-script
-, platformdirs
-, pydantic_1
-, pyyaml
-, setuptools
-, setuptools-scm
-, pytest-check
-, pytest-mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nix-update-script,
+  platformdirs,
+  pydantic_1,
+  pyyaml,
+  setuptools,
+  setuptools-scm,
+  pytest-check,
+  pytest-mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -44,9 +45,7 @@ buildPythonPackage rec {
     pyyaml
   ];
 
-  pythonImportsCheck = [
-    "craft_cli"
-  ];
+  pythonImportsCheck = [ "craft_cli" ];
 
   nativeCheckInputs = [
     pytest-check
@@ -59,7 +58,7 @@ buildPythonPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "A CLI builder for Canonical's CLI Guidelines";
+    description = "CLI builder for Canonical's CLI Guidelines";
     homepage = "https://github.com/canonical/craft-cli";
     changelog = "https://github.com/canonical/craft-cli/releases/tag/${version}";
     license = lib.licenses.lgpl3Only;
diff --git a/pkgs/development/python-modules/craft-grammar/default.nix b/pkgs/development/python-modules/craft-grammar/default.nix
index 61a07f4d7c069..82c0fef4b0675 100644
--- a/pkgs/development/python-modules/craft-grammar/default.nix
+++ b/pkgs/development/python-modules/craft-grammar/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nix-update-script
-, overrides
-, setuptools
-, pytest-check
-, pytest-mock
-, pytestCheckHook
-, pydantic_1
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nix-update-script,
+  overrides,
+  setuptools,
+  pytest-check,
+  pytest-mock,
+  pytestCheckHook,
+  pydantic_1,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -24,17 +25,11 @@ buildPythonPackage rec {
     hash = "sha256-YQpxgdmUxYLkhAXDLlkLAK6VpjIEycLFY3nsE/M4o2g=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    overrides
-  ];
+  propagatedBuildInputs = [ overrides ];
 
-  pythonImportsCheck = [
-    "craft_grammar"
-  ];
+  pythonImportsCheck = [ "craft_grammar" ];
 
   nativeCheckInputs = [
     pydantic_1
@@ -55,4 +50,3 @@ buildPythonPackage rec {
     platforms = lib.platforms.linux;
   };
 }
-
diff --git a/pkgs/development/python-modules/craft-parts/default.nix b/pkgs/development/python-modules/craft-parts/default.nix
index d340f784b431c..3a137744d68f8 100644
--- a/pkgs/development/python-modules/craft-parts/default.nix
+++ b/pkgs/development/python-modules/craft-parts/default.nix
@@ -1,32 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nix-update-script
-, overrides
-, pydantic_1
-, pydantic-yaml-0
-, pyxdg
-, pyyaml
-, requests
-, requests-unixsocket
-, types-pyyaml
-, urllib3
-, pytestCheckHook
-, pytest-check
-, pytest-mock
-, pytest-subprocess
-, requests-mock
-, hypothesis
-, git
-, squashfsTools
-, setuptools
-, setuptools-scm
-, stdenv
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nix-update-script,
+  overrides,
+  pydantic_1,
+  pydantic-yaml-0,
+  pyxdg,
+  pyyaml,
+  requests,
+  requests-unixsocket,
+  types-pyyaml,
+  urllib3,
+  pytestCheckHook,
+  pytest-check,
+  pytest-mock,
+  pytest-subprocess,
+  requests-mock,
+  hypothesis,
+  git,
+  squashfsTools,
+  setuptools,
+  setuptools-scm,
+  stdenv,
 }:
 
 buildPythonPackage rec {
   pname = "craft-parts";
-  version = "1.29.0";
+  version = "1.31.0";
 
   pyproject = true;
 
@@ -34,12 +35,10 @@ buildPythonPackage rec {
     owner = "canonical";
     repo = "craft-parts";
     rev = "refs/tags/${version}";
-    hash = "sha256-3AWiuRGUGj6q6ZEnShc64DSL1S6kTsry4Z1IYMelvzg=";
+    hash = "sha256-DohH81xhUfZI3NfmX6aDaOC/QLiddsxPzrc1vgFECTg=";
   };
 
-  patches = [
-    ./bash-path.patch
-  ];
+  patches = [ ./bash-path.patch ];
 
   postPatch = ''
     substituteInPlace setup.py \
@@ -64,9 +63,7 @@ buildPythonPackage rec {
     urllib3
   ];
 
-  pythonImportsCheck = [
-    "craft_parts"
-  ];
+  pythonImportsCheck = [ "craft_parts" ];
 
   nativeCheckInputs = [
     git
@@ -93,22 +90,24 @@ buildPythonPackage rec {
     "test_get_build_packages"
   ];
 
-  disabledTestPaths = [
-    # Relies upon filesystem extended attributes, and suid/guid bits
-    "tests/unit/sources/test_base.py"
-    "tests/unit/packages/test_base.py"
-    "tests/unit/state_manager"
-    "tests/unit/test_xattrs.py"
-    "tests/unit/packages/test_normalize.py"
-    # Relies upon presence of apt/dpkg.
-    "tests/unit/packages/test_apt_cache.py"
-    "tests/unit/packages/test_deb.py"
-    "tests/unit/packages/test_chisel.py"
-  ] ++ lib.optionals stdenv.isAarch64 [
-    # These tests have hardcoded "amd64" strings which fail on aarch64
-    "tests/unit/executor/test_environment.py"
-    "tests/unit/features/overlay/test_executor_environment.py"
-  ];
+  disabledTestPaths =
+    [
+      # Relies upon filesystem extended attributes, and suid/guid bits
+      "tests/unit/sources/test_base.py"
+      "tests/unit/packages/test_base.py"
+      "tests/unit/state_manager"
+      "tests/unit/test_xattrs.py"
+      "tests/unit/packages/test_normalize.py"
+      # Relies upon presence of apt/dpkg.
+      "tests/unit/packages/test_apt_cache.py"
+      "tests/unit/packages/test_deb.py"
+      "tests/unit/packages/test_chisel.py"
+    ]
+    ++ lib.optionals stdenv.isAarch64 [
+      # These tests have hardcoded "amd64" strings which fail on aarch64
+      "tests/unit/executor/test_environment.py"
+      "tests/unit/features/overlay/test_executor_environment.py"
+    ];
 
   passthru.updateScript = nix-update-script { };
 
@@ -121,4 +120,3 @@ buildPythonPackage rec {
     platforms = lib.platforms.linux;
   };
 }
-
diff --git a/pkgs/development/python-modules/craft-providers/default.nix b/pkgs/development/python-modules/craft-providers/default.nix
index 4f463e628bd6a..52954f8f0ddfb 100644
--- a/pkgs/development/python-modules/craft-providers/default.nix
+++ b/pkgs/development/python-modules/craft-providers/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nix-update-script
-, packaging
-, platformdirs
-, pydantic_1
-, pyyaml
-, requests-unixsocket
-, setuptools
-, setuptools-scm
-, urllib3
-, pytest-check
-, pytest-mock
-, pytestCheckHook
-, responses
-, freezegun
-, pytest-subprocess
-, pytest-logdog
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nix-update-script,
+  packaging,
+  platformdirs,
+  pydantic_1,
+  pyyaml,
+  requests-unixsocket,
+  setuptools,
+  setuptools-scm,
+  urllib3,
+  pytest-check,
+  pytest-mock,
+  pytestCheckHook,
+  responses,
+  freezegun,
+  pytest-subprocess,
+  pytest-logdog,
 }:
 
 buildPythonPackage rec {
   pname = "craft-providers";
-  version = "1.23.1";
+  version = "1.24.0";
 
   pyproject = true;
 
@@ -29,7 +30,7 @@ buildPythonPackage rec {
     owner = "canonical";
     repo = "craft-providers";
     rev = "refs/tags/${version}";
-    hash = "sha256-opVgOtbwZD+uQJ10Q8QlgQaS9KjRFnQ4h98Ak7Ze5qQ=";
+    hash = "sha256-CkaJ8taTsnBpCffe/Eu4/FGpMwKcg3yeLVAahCyEsII=";
   };
 
   patches = [
@@ -51,10 +52,12 @@ buildPythonPackage rec {
     # The urllib3 incompat: https://github.com/msabramo/requests-unixsocket/pull/69
     # This is already patched in nixpkgs.
     substituteInPlace pyproject.toml \
-      --replace-fail "setuptools==69.1.1" "setuptools" \
+      --replace-fail "setuptools==" "setuptools>=" \
       --replace-fail "urllib3<2" "urllib3"
   '';
 
+  pythonRelaxDeps = [ "requests" ];
+
   nativeBuildInputs = [
     setuptools
     setuptools-scm
@@ -69,9 +72,7 @@ buildPythonPackage rec {
     urllib3
   ];
 
-  pythonImportsCheck = [
-    "craft_providers"
-  ];
+  pythonImportsCheck = [ "craft_providers" ];
 
   nativeCheckInputs = [
     freezegun
diff --git a/pkgs/development/python-modules/craft-store/default.nix b/pkgs/development/python-modules/craft-store/default.nix
index 637e7ed26a9d7..853df850c02af 100644
--- a/pkgs/development/python-modules/craft-store/default.nix
+++ b/pkgs/development/python-modules/craft-store/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "craft-store";
-  version = "2.6.0";
+  version = "2.6.2";
 
   pyproject = true;
 
@@ -28,12 +28,12 @@ buildPythonPackage rec {
     owner = "canonical";
     repo = "craft-store";
     rev = "refs/tags/${version}";
-    hash = "sha256-VtKOe3IrvGcNWfp1/tg1cO94xtfkP7AbIHh0WTdlfbQ=";
+    hash = "sha256-QKfXOgAWMV1mVm32ZP3HQTJmWKm82dEDmy3fo5d67TU=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace-fail "setuptools==67.7.2" "setuptools"
+      --replace-fail "setuptools==" "setuptools>="
   '';
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/cram/default.nix b/pkgs/development/python-modules/cram/default.nix
index 4efc13b530382..13ed15f5246da 100644
--- a/pkgs/development/python-modules/cram/default.nix
+++ b/pkgs/development/python-modules/cram/default.nix
@@ -1,4 +1,11 @@
-{stdenv, lib, buildPythonPackage, fetchPypi, bash, which}:
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  bash,
+  which,
+}:
 
 buildPythonPackage rec {
   version = "0.7";
@@ -23,7 +30,7 @@ buildPythonPackage rec {
   '';
 
   meta = {
-    description = "A simple testing framework for command line applications";
+    description = "Simple testing framework for command line applications";
     mainProgram = "cram";
     homepage = "https://bitheap.org/cram/";
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/development/python-modules/cramjam/default.nix b/pkgs/development/python-modules/cramjam/default.nix
index 7a799429907ee..e61e75da117f5 100644
--- a/pkgs/development/python-modules/cramjam/default.nix
+++ b/pkgs/development/python-modules/cramjam/default.nix
@@ -1,30 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, rustPlatform
-, stdenv
-, libiconv
-, hypothesis
-, numpy
-, pytest-xdist
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  rustPlatform,
+  stdenv,
+  libiconv,
+  hypothesis,
+  numpy,
+  pytest-xdist,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "cramjam";
-  version = "2.8.2";
+  version = "2.8.3";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "milesgranger";
     repo = "pyrus-cramjam";
     rev = "refs/tags/v${version}";
-    hash = "sha256-BO35s7qOW4+l968I9qn9L1m2BtgRFNYUNlA7W1sctT8=";
+    hash = "sha256-1KD5/oZjfdXav1ZByQoyyiDSzbmY4VJsSJg/FtUFdDE=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
-    hash = "sha256-YWXf+ZDJLq6VxI5sa9G63fCPz2377BVSTmPM0mQSu8M=";
+    hash = "sha256-Bp7EtyuLdLUfU3yvouNVE42klfqYt9QOwt+iGe521yI=";
   };
 
   buildAndTestSubdir = "cramjam-python";
@@ -43,17 +44,17 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "cramjam-python/tests"
-  ];
+  pytestFlagsArray = [ "cramjam-python/tests" ];
 
   disabledTestPaths = [
     "cramjam-python/benchmarks/test_bench.py"
+    # test_variants.py appears to be flaky
+    #
+    # https://github.com/NixOS/nixpkgs/pull/311584#issuecomment-2117656380
+    "cramjam-python/tests/test_variants.py"
   ];
 
-  pythonImportsCheck = [
-    "cramjam"
-  ];
+  pythonImportsCheck = [ "cramjam" ];
 
   meta = with lib; {
     description = "Thin Python bindings to de/compression algorithms in Rust";
diff --git a/pkgs/development/python-modules/crashtest/default.nix b/pkgs/development/python-modules/crashtest/default.nix
index 296c80eae54af..5b0df404ee775 100644
--- a/pkgs/development/python-modules/crashtest/default.nix
+++ b/pkgs/development/python-modules/crashtest/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pythonAtLeast }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
+}:
 
 buildPythonPackage rec {
   pname = "crashtest";
diff --git a/pkgs/development/python-modules/crate/default.nix b/pkgs/development/python-modules/crate/default.nix
index a7e03d3ecad42..ca4b0291ccd11 100644
--- a/pkgs/development/python-modules/crate/default.nix
+++ b/pkgs/development/python-modules/crate/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, fetchpatch
-, dask
-, urllib3
-, geojson
-, verlib2
-, pueblo
-, pandas
-, pythonOlder
-, sqlalchemy
-, pytestCheckHook
-, pytz
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  fetchpatch,
+  dask,
+  urllib3,
+  geojson,
+  verlib2,
+  pueblo,
+  pandas,
+  pythonOlder,
+  sqlalchemy,
+  pytestCheckHook,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -73,7 +74,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/crate/crate-python";
-    description = "A Python client library for CrateDB";
+    description = "Python client library for CrateDB";
     changelog = "https://github.com/crate/crate-python/blob/${version}/CHANGES.txt";
     license = licenses.asl20;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/development/python-modules/crayons/default.nix b/pkgs/development/python-modules/crayons/default.nix
index c52cede171a24..30810bb9d2245 100644
--- a/pkgs/development/python-modules/crayons/default.nix
+++ b/pkgs/development/python-modules/crayons/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchPypi, buildPythonPackage, colorama }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  colorama,
+}:
 
 buildPythonPackage rec {
   pname = "crayons";
diff --git a/pkgs/development/python-modules/crc16/default.nix b/pkgs/development/python-modules/crc16/default.nix
index eda1987a5b076..6ef211c06fba1 100644
--- a/pkgs/development/python-modules/crc16/default.nix
+++ b/pkgs/development/python-modules/crc16/default.nix
@@ -1,19 +1,34 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pythonOlder,
+}:
 
 buildPythonPackage rec {
   pname = "crc16";
   version = "0.1.1";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "15nkx0pa4lskwin84flpk8fsw3jqg6wic6v3s83syjqg76h6my61";
+    hash = "sha256-wfhqoDkPS68H0mMbFrl5WA6uHZqXOoJs5FNToi7o05Y=";
   };
 
+  build-system = [ setuptools ];
+
+  # Tests are outdated
+  doCheck = false;
+
+  pythonImportsCheck = [ "crc16" ];
+
   meta = with lib; {
-    homepage = "https://code.google.com/archive/p/pycrc16/";
     description = "Python library for calculating CRC16";
-    license = licenses.lgpl3;
+    homepage = "https://code.google.com/archive/p/pycrc16/";
+    license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/pkgs/development/python-modules/crc32c/default.nix b/pkgs/development/python-modules/crc32c/default.nix
index 66d77756f780f..f5f44c351c15f 100644
--- a/pkgs/development/python-modules/crc32c/default.nix
+++ b/pkgs/development/python-modules/crc32c/default.nix
@@ -1,9 +1,16 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools
+}:
 
 buildPythonPackage rec {
-  version = "2.3.post0";
+  version = "2.4";
   pname = "crc32c";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.5";
 
@@ -11,9 +18,11 @@ buildPythonPackage rec {
     owner = "ICRAR";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-lPEojWeAhfWpGR+k+Tuo4n68iZOk7lUDxjWXj5vN4I0=";
+    hash = "sha256-rWR2MtTLhqqvgdqEyevg/i8ZHM3OU1bJb27JkBx1J3w=";
   };
 
+  nativeBuildInputs = [ setuptools ];
+
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
diff --git a/pkgs/development/python-modules/crccheck/default.nix b/pkgs/development/python-modules/crccheck/default.nix
index 0a9302b8841dd..2bf31ea69c81a 100644
--- a/pkgs/development/python-modules/crccheck/default.nix
+++ b/pkgs/development/python-modules/crccheck/default.nix
@@ -1,14 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy3k
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy3k,
+  unittestCheckHook,
 }:
 
 let
   pname = "crccheck";
   version = "1.3.0";
-in buildPythonPackage {
+in
+buildPythonPackage {
   inherit pname version;
   format = "setuptools";
 
@@ -21,9 +23,7 @@ in buildPythonPackage {
     hash = "sha256-nujt3RWupvCtk7gORejtSwqqVjW9VwztOVGXBHW9T+k=";
   };
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   meta = with lib; {
     description = "Python library for CRCs and checksums";
diff --git a/pkgs/development/python-modules/crcmod/default.nix b/pkgs/development/python-modules/crcmod/default.nix
index 9bc2c6ac70e11..beff240c986eb 100644
--- a/pkgs/development/python-modules/crcmod/default.nix
+++ b/pkgs/development/python-modules/crcmod/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "crcmod";
diff --git a/pkgs/development/python-modules/credstash/default.nix b/pkgs/development/python-modules/credstash/default.nix
index dd950001c3d0d..930cbedd56cfb 100644
--- a/pkgs/development/python-modules/credstash/default.nix
+++ b/pkgs/development/python-modules/credstash/default.nix
@@ -59,7 +59,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A utility for managing secrets in the cloud using AWS KMS and DynamoDB";
+    description = "Utility for managing secrets in the cloud using AWS KMS and DynamoDB";
     homepage = "https://github.com/LuminalOSS/credstash";
     changelog = "https://github.com/fugue/credstash/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/criticality-score/default.nix b/pkgs/development/python-modules/criticality-score/default.nix
index ffea5ad31dad3..dba803fe81279 100644
--- a/pkgs/development/python-modules/criticality-score/default.nix
+++ b/pkgs/development/python-modules/criticality-score/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, pygithub, python-gitlab }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pygithub,
+  python-gitlab,
+}:
 
 buildPythonPackage rec {
   pname = "criticality_score";
@@ -9,14 +15,17 @@ buildPythonPackage rec {
     hash = "sha256-5XkVT0blnLG158a01jDfQl1Rx9U1LMsqaMjTdN7Q4QQ=";
   };
 
-  propagatedBuildInputs = [ pygithub python-gitlab ];
+  propagatedBuildInputs = [
+    pygithub
+    python-gitlab
+  ];
 
   doCheck = false;
 
   pythonImportsCheck = [ "criticality_score" ];
 
   meta = with lib; {
-    description = "Python tool for computing the Open Source Project Criticality Score.";
+    description = "Python tool for computing the Open Source Project Criticality Score";
     mainProgram = "criticality_score";
     homepage = "https://github.com/ossf/criticality_score";
     changelog = "https://github.com/ossf/criticality_score/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/cron-descriptor/default.nix b/pkgs/development/python-modules/cron-descriptor/default.nix
index d4283b3af6ec1..d98630e3a381d 100644
--- a/pkgs/development/python-modules/cron-descriptor/default.nix
+++ b/pkgs/development/python-modules/cron-descriptor/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, python
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pytestCheckHook
+{
+  lib,
+  python,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     sed -i "/'pep8\|flake8\|pep8-naming',/d" setup.py
   '';
 
-  checkInputs = [
-    mock
-  ];
+  checkInputs = [ mock ];
 
   checkPhase = ''
     ${python.interpreter} setup.py test
diff --git a/pkgs/development/python-modules/croniter/default.nix b/pkgs/development/python-modules/croniter/default.nix
index 8db83b619969c..b92c7cc2ecd39 100644
--- a/pkgs/development/python-modules/croniter/default.nix
+++ b/pkgs/development/python-modules/croniter/default.nix
@@ -1,29 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pytz
-, tzlocal
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  pytz,
+  tzlocal,
 }:
 
 buildPythonPackage rec {
   pname = "croniter";
-  version = "2.0.3";
+  version = "2.0.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-KHY605xAThWRQIdPCAEM/YoY9MKnzqHOc+lQakOAz8E=";
+    hash = "sha256-8fjKCvZCEvvpmxvuEl7lobU6nBtDOWjYvKiBe3nSN/M=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     python-dateutil
@@ -35,9 +34,7 @@ buildPythonPackage rec {
     tzlocal
   ];
 
-  pythonImportsCheck = [
-    "croniter"
-  ];
+  pythonImportsCheck = [ "croniter" ];
 
   meta = with lib; {
     description = "Library to iterate over datetime object with cron like format";
diff --git a/pkgs/development/python-modules/cronsim/default.nix b/pkgs/development/python-modules/cronsim/default.nix
index 098dbe711d9d5..2ecb45c3a73af 100644
--- a/pkgs/development/python-modules/cronsim/default.nix
+++ b/pkgs/development/python-modules/cronsim/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-TSVFkMCMmrMXaPJPPNjIML+z98i1iIYuKH7hHiZnJkg=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "cronsim"
-  ];
+  pythonImportsCheck = [ "cronsim" ];
 
   meta = with lib; {
     description = "Cron expression parser and evaluator";
diff --git a/pkgs/development/python-modules/crontab/default.nix b/pkgs/development/python-modules/crontab/default.nix
index fea3e9909b701..7bb780ab01575 100644
--- a/pkgs/development/python-modules/crontab/default.nix
+++ b/pkgs/development/python-modules/crontab/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, python-dateutil
-, pytz
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  python-dateutil,
+  pytz,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-8vMkgBU1jIluo9+hAvk2KNM+Wn0+PvJqFNwX+JLXD+w=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -32,9 +31,7 @@ buildPythonPackage rec {
     pytz
   ];
 
-  pythonImportsCheck = [
-    "crontab"
-  ];
+  pythonImportsCheck = [ "crontab" ];
 
   meta = with lib; {
     description = "Parse and use crontab schedules in Python";
diff --git a/pkgs/development/python-modules/crossandra/default.nix b/pkgs/development/python-modules/crossandra/default.nix
new file mode 100644
index 0000000000000..423ee0aa3fc8a
--- /dev/null
+++ b/pkgs/development/python-modules/crossandra/default.nix
@@ -0,0 +1,39 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  result,
+  mypy
+}:
+
+buildPythonPackage rec {
+  pname = "crossandra";
+  version = "2.2.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "trag1c";
+    repo = "crossandra";
+    rev = "refs/tags/${version}";
+    hash = "sha256-/JhrjXRH7Rs2bUil9HRneBC9wlVYEyfwivjzb+eyRv8=";
+  };
+
+  build-system = [ setuptools mypy ];
+  dependencies = [ result ];
+
+  pythonImportsCheck = [ "crossandra" ];
+  prePatch = ''
+    # pythonRelaxDepsHook did not work
+    substituteInPlace pyproject.toml \
+      --replace-fail "result ~= 0.9.0" "result >= 0.9.0"
+  '';
+
+  meta = with lib; {
+    changelog = "https://github.com/trag1c/crossandra/blob/${src.rev}/CHANGELOG.md";
+    description = "Fast and simple enum/regex-based tokenizer with decent configurability";
+    license = licenses.mit;
+    homepage = "https://trag1c.github.io/crossandra";
+    maintainers = with maintainers; [ sigmanificient ];
+  };
+}
diff --git a/pkgs/development/python-modules/crossplane/default.nix b/pkgs/development/python-modules/crossplane/default.nix
index d69708b8e212d..fba9c59aa3269 100644
--- a/pkgs/development/python-modules/crossplane/default.nix
+++ b/pkgs/development/python-modules/crossplane/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, pytestCheckHook
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  pytestCheckHook,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-DfIF+JvjIREi7zd5ZQ7Co/CIKC5iUeOgR/VLDPmrtTQ=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "crossplane"
-  ];
+  pythonImportsCheck = [ "crossplane" ];
 
   meta = with lib; {
     description = "NGINX configuration file parser and builder";
diff --git a/pkgs/development/python-modules/crownstone-cloud/default.nix b/pkgs/development/python-modules/crownstone-cloud/default.nix
index d8ee18a090d4b..089d60fceb6f2 100644
--- a/pkgs/development/python-modules/crownstone-cloud/default.nix
+++ b/pkgs/development/python-modules/crownstone-cloud/default.nix
@@ -1,57 +1,42 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, certifi
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  certifi,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "crownstone-cloud";
-  version = "1.4.9";
-  format = "setuptools";
+  version = "1.4.11";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-  src = fetchFromGitHub {
-    owner = "crownstone";
-    repo = "crownstone-lib-python-cloud";
-    rev = "refs/tags/${version}";
-    hash = "sha256-CS1zeQiWPnsGCWixCsN9sz08mPORW5sVqIpSFPh0Qt0=";
+  src = fetchPypi {
+    pname = "crownstone_cloud";
+    inherit version;
+    hash = "sha256-s84pK52uMupxQfdMldV14V3nj+yVku1Vw13CRX4o08U=";
   };
 
-  patches = [
-    # Remove asynctest, https://github.com/crownstone/crownstone-lib-python-cloud/pull/4
-    (fetchpatch {
-      name = "remove-asynctest.patch";
-      url = "https://github.com/crownstone/crownstone-lib-python-cloud/commit/7f22c9b284bf8d7f6f43e205816787dd3bb37e78.patch";
-      hash = "sha256-LS1O9LVB14WyBXfuHf/bs1juJ59zWhJ8pL4aGtVrTG8=";
-    })
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     certifi
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
-
-  postPatch = ''
-    sed -i '/codecov/d' requirements.txt
-  '';
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "crownstone_cloud"
-  ];
+  pythonImportsCheck = [ "crownstone_cloud" ];
 
   meta = with lib; {
     description = "Python module for communicating with Crownstone Cloud and devices";
-    homepage = "https://github.com/crownstone/crownstone-lib-python-cloud";
-    license = with licenses; [ mit ];
+    homepage = "https://github.com/Crownstone-Community/crownstone-lib-python-cloud";
+    license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/crownstone-core/default.nix b/pkgs/development/python-modules/crownstone-core/default.nix
index b03f76f8f8536..7e297cce4f559 100644
--- a/pkgs/development/python-modules/crownstone-core/default.nix
+++ b/pkgs/development/python-modules/crownstone-core/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyaes
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyaes,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-zrlCzx7N3aUcTUNa64jSzDdWgQneX+Hc5n8TTTcZ4ck=";
   };
 
-  propagatedBuildInputs = [
-    pyaes
-  ];
+  propagatedBuildInputs = [ pyaes ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "crownstone_core"
-  ];
+  pythonImportsCheck = [ "crownstone_core" ];
 
   meta = with lib; {
     description = "Python module with shared classes, util functions and definition of Crownstone";
diff --git a/pkgs/development/python-modules/crownstone-sse/default.nix b/pkgs/development/python-modules/crownstone-sse/default.nix
index ca2cd4e0d154d..82f106d8f9ec6 100644
--- a/pkgs/development/python-modules/crownstone-sse/default.nix
+++ b/pkgs/development/python-modules/crownstone-sse/default.nix
@@ -1,26 +1,29 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, certifi
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  certifi,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "crownstone-sse";
-  version = "2.0.4";
-  format = "setuptools";
+  version = "2.0.5";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-  src = fetchFromGitHub {
-    owner = "crownstone";
-    repo = "crownstone-lib-python-sse";
-    rev = version;
-    hash = "sha256-z/z8MmydHkHubwuX02gGbOcOEZ+FHX4i82vAK5gAl+c=";
+  src = fetchPypi {
+    pname = "crownstone_sse";
+    inherit version;
+    hash = "sha256-RUqo68UAVGV+JmauKsGlp7dG8FzixHBDnr3eho/IQdY=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     aiohttp
     certifi
   ];
@@ -28,13 +31,11 @@ buildPythonPackage rec {
   # Tests are only providing coverage
   doCheck = false;
 
-  pythonImportsCheck = [
-    "crownstone_sse"
-  ];
+  pythonImportsCheck = [ "crownstone_sse" ];
 
   meta = with lib; {
     description = "Python module for listening to Crownstone SSE events";
-    homepage = "https://github.com/crownstone/crownstone-lib-python-sse";
+    homepage = "https://github.com/Crownstone-Community/crownstone-lib-python-sse";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/crownstone-uart/default.nix b/pkgs/development/python-modules/crownstone-uart/default.nix
index edfd9dff59e9b..177b319ca4cba 100644
--- a/pkgs/development/python-modules/crownstone-uart/default.nix
+++ b/pkgs/development/python-modules/crownstone-uart/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, crownstone-core
-, buildPythonPackage
-, pyserial
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  crownstone-core,
+  buildPythonPackage,
+  pyserial,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "crownstone_uart"
-  ];
+  pythonImportsCheck = [ "crownstone_uart" ];
 
   meta = with lib; {
     description = "Python module for communicating with Crownstone USB dongles";
diff --git a/pkgs/development/python-modules/cryptacular/default.nix b/pkgs/development/python-modules/cryptacular/default.nix
deleted file mode 100644
index 977de2396f2c0..0000000000000
--- a/pkgs/development/python-modules/cryptacular/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, pythonAtLeast
-, coverage, nose, pbkdf2 }:
-
-buildPythonPackage rec {
-  pname = "cryptacular";
-  version = "1.6.2";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "7b529cb2b8a3c7e5be77921bf1ebc653d4d3a8f791375cc6f971b20db2404176";
-  };
-
-  buildInputs = [ coverage nose ];
-  propagatedBuildInputs = [ pbkdf2 ];
-
-  # TODO: tests fail: TypeError: object of type 'NoneType' has no len()
-  doCheck = false;
-
-  # Python >=2.7.15, >=3.6.5 are incompatible:
-  # https://bitbucket.org/dholth/cryptacular/issues/11
-  disabled = isPy27 || pythonAtLeast "3.6";
-
-  meta = with lib; {
-    maintainers = with maintainers; [ domenkozar ];
-  };
-}
diff --git a/pkgs/development/python-modules/cryptg/default.nix b/pkgs/development/python-modules/cryptg/default.nix
index 52fec2afc231a..43e5ac7e6163b 100644
--- a/pkgs/development/python-modules/cryptg/default.nix
+++ b/pkgs/development/python-modules/cryptg/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, cargo
-, rustPlatform
-, rustc
-, setuptools-rust
-, libiconv
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  cargo,
+  rustPlatform,
+  rustc,
+  setuptools-rust,
+  libiconv,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
     cargo
   ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
-    libiconv
-  ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/cryptodatahub/default.nix b/pkgs/development/python-modules/cryptodatahub/default.nix
index e19a4137e4f3d..2c2bad80e21bf 100644
--- a/pkgs/development/python-modules/cryptodatahub/default.nix
+++ b/pkgs/development/python-modules/cryptodatahub/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, asn1crypto
-, attrs
-, beautifulsoup4
-, buildPythonPackage
-, fetchFromGitLab
-, pathlib2
-, pyfakefs
-, python-dateutil
-, pythonOlder
-, setuptools
-, six
-, unittestCheckHook
-, urllib3
+{
+  lib,
+  asn1crypto,
+  attrs,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitLab,
+  pathlib2,
+  pyfakefs,
+  python-dateutil,
+  pythonOlder,
+  setuptools,
+  six,
+  unittestCheckHook,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "cryptodatahub";
-  version = "0.12.2";
+  version = "0.12.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -25,19 +26,17 @@ buildPythonPackage rec {
     owner = "coroner";
     repo = "cryptodatahub";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zVHHBQYcl26zTtXPAs/AgKOojKQORu08rpkfY0l1zjM=";
+    hash = "sha256-jYMzvh4tgfLS7Za0MYHbWbczptAvENfzfTEV9Drlfto=";
   };
 
   postPatch = ''
     substituteInPlace requirements.txt  \
-      --replace-warn "attrs>=20.3.0,<22.0.1" "attrs>=20.3.0"
+      --replace-fail "attrs>=20.3.0,<22.0.1" "attrs>=20.3.0"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     asn1crypto
     attrs
     pathlib2
@@ -52,10 +51,7 @@ buildPythonPackage rec {
     unittestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "cryptodatahub"
-  ];
-
+  pythonImportsCheck = [ "cryptodatahub" ];
 
   preCheck = ''
     # failing tests
diff --git a/pkgs/development/python-modules/cryptography/default.nix b/pkgs/development/python-modules/cryptography/default.nix
index 838ae389d38fd..0d7cdb92a683d 100644
--- a/pkgs/development/python-modules/cryptography/default.nix
+++ b/pkgs/development/python-modules/cryptography/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, callPackage
-, cargo
-, certifi
-, cffi
-, cryptography-vectors ? (callPackage ./vectors.nix { })
-, fetchPypi
-, fetchpatch2
-, isPyPy
-, libiconv
-, libxcrypt
-, openssl
-, pkg-config
-, pretend
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, rustc
-, rustPlatform
-, Security
-, setuptoolsRustBuildHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  callPackage,
+  cargo,
+  certifi,
+  cffi,
+  cryptography-vectors ? (callPackage ./vectors.nix { }),
+  fetchPypi,
+  fetchpatch2,
+  isPyPy,
+  libiconv,
+  libxcrypt,
+  openssl,
+  pkg-config,
+  pretend,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  rustc,
+  rustPlatform,
+  Security,
+  setuptoolsRustBuildHook,
 }:
 
 buildPythonPackage rec {
@@ -63,22 +64,17 @@ buildPythonPackage rec {
     cargo
     rustc
     pkg-config
-  ] ++ lib.optionals (!isPyPy) [
-    cffi
-  ];
+  ] ++ lib.optionals (!isPyPy) [ cffi ];
 
-  buildInputs = [
-    openssl
-  ] ++ lib.optionals stdenv.isDarwin [
-    Security
-    libiconv
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    libxcrypt
-  ];
+  buildInputs =
+    [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [
+      Security
+      libiconv
+    ]
+    ++ lib.optionals (pythonOlder "3.9") [ libxcrypt ];
 
-  propagatedBuildInputs = lib.optionals (!isPyPy) [
-    cffi
-  ];
+  propagatedBuildInputs = lib.optionals (!isPyPy) [ cffi ];
 
   nativeCheckInputs = [
     certifi
@@ -88,9 +84,7 @@ buildPythonPackage rec {
     pytest-xdist
   ];
 
-  pytestFlagsArray = [
-    "--disable-pytest-warnings"
-  ];
+  pytestFlagsArray = [ "--disable-pytest-warnings" ];
 
   disabledTestPaths = [
     # save compute time by not running benchmarks
@@ -98,16 +92,20 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A package which provides cryptographic recipes and primitives";
+    description = "Package which provides cryptographic recipes and primitives";
     longDescription = ''
       Cryptography includes both high level recipes and low level interfaces to
       common cryptographic algorithms such as symmetric ciphers, message
       digests, and key derivation functions.
     '';
     homepage = "https://github.com/pyca/cryptography";
-    changelog = "https://cryptography.io/en/latest/changelog/#v"
-      + replaceStrings [ "." ] [ "-" ] version;
-    license = with licenses; [ asl20 bsd3 psfl ];
+    changelog =
+      "https://cryptography.io/en/latest/changelog/#v" + replaceStrings [ "." ] [ "-" ] version;
+    license = with licenses; [
+      asl20
+      bsd3
+      psfl
+    ];
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/cryptography/vectors.nix b/pkgs/development/python-modules/cryptography/vectors.nix
index a19ab7579d1f1..85476ca492816 100644
--- a/pkgs/development/python-modules/cryptography/vectors.nix
+++ b/pkgs/development/python-modules/cryptography/vectors.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cryptography
-, flit-core
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cryptography,
+  flit-core,
 }:
 
 buildPythonPackage rec {
@@ -17,22 +18,21 @@ buildPythonPackage rec {
     hash = "sha256-UFzV47DLMtoVJvBwQrf8OKS2w1ZxDLc9K192sDejjtE=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   # No tests included
   doCheck = false;
 
-  pythonImportsCheck = [
-    "cryptography_vectors"
-  ];
+  pythonImportsCheck = [ "cryptography_vectors" ];
 
   meta = with lib; {
     description = "Test vectors for the cryptography package";
     homepage = "https://cryptography.io/en/latest/development/test-vectors/";
     downloadPage = "https://github.com/pyca/cryptography/tree/master/vectors";
-    license = with licenses; [ asl20 bsd3 ];
+    license = with licenses; [
+      asl20
+      bsd3
+    ];
     maintainers = with maintainers; [ SuperSandro2000 ];
   };
 }
diff --git a/pkgs/development/python-modules/cryptolyzer/default.nix b/pkgs/development/python-modules/cryptolyzer/default.nix
index 755f141c75091..472f63c8b0569 100644
--- a/pkgs/development/python-modules/cryptolyzer/default.nix
+++ b/pkgs/development/python-modules/cryptolyzer/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, attrs
-, beautifulsoup4
-, buildPythonPackage
-, certvalidator
-, colorama
-, cryptoparser
-, dnspython
-, fetchPypi
-, pathlib2
-, pyfakefs
-, python-dateutil
-, pythonOlder
-, requests
-, setuptools
-, urllib3
+{
+  lib,
+  attrs,
+  beautifulsoup4,
+  buildPythonPackage,
+  certvalidator,
+  colorama,
+  cryptoparser,
+  dnspython,
+  fetchPypi,
+  pathlib2,
+  pyfakefs,
+  python-dateutil,
+  pythonOlder,
+  requests,
+  setuptools,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "cryptolyzer";
-  version = "0.12.3";
+  version = "0.12.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -26,7 +27,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "CryptoLyzer";
     inherit version;
-    hash = "sha256-UdM0+PkO3K4XshcqaDkEKry6Spny9KMZAHiADxxth+c=";
+    hash = "sha256-Qc1L4F2U/nk37s/mIa2YgJZqC2dkPsB/Si84SEl576Q=";
   };
 
   postPatch = ''
@@ -35,9 +36,7 @@ buildPythonPackage rec {
       --replace-warn "bs4" "beautifulsoup4"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     attrs
@@ -56,9 +55,7 @@ buildPythonPackage rec {
   # Tests require networking
   doCheck = false;
 
-  pythonImportsCheck = [
-    "cryptolyzer"
-  ];
+  pythonImportsCheck = [ "cryptolyzer" ];
 
   meta = with lib; {
     description = "Cryptographic protocol analyzer";
diff --git a/pkgs/development/python-modules/cryptoparser/default.nix b/pkgs/development/python-modules/cryptoparser/default.nix
index fc18fadc3a3a5..c0e28720423a7 100644
--- a/pkgs/development/python-modules/cryptoparser/default.nix
+++ b/pkgs/development/python-modules/cryptoparser/default.nix
@@ -1,36 +1,38 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, attrs
-, asn1crypto
-, cryptodatahub
-, python-dateutil
-, urllib3
-, pytestCheckHook
+{
+  lib,
+  asn1crypto,
+  attrs,
+  buildPythonPackage,
+  cryptodatahub,
+  fetchPypi,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  setuptools,
+  unittestCheckHook,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "cryptoparser";
-  version = "0.12.3";
+  version = "0.12.5";
   pyproject = true;
 
+  disabled = pythonOlder "3.7";
+
   src = fetchPypi {
-    pname = "CryptoParser";
-    inherit version;
-    hash = "sha256-1A0VEpUPsYtEu2aT+ldt/Z/PtV8lvD+9jSx75yGB6Ao=";
+    inherit pname version;
+    hash = "sha256-t8vK7T6nz1iH81fTMEYkQv7E7EjmkTx3u4zUIybEm5E=";
   };
 
   postPatch = ''
     substituteInPlace requirements.txt  \
-      --replace-warn "attrs>=20.3.0,<22.0.1" "attrs>=20.3.0"
+      --replace-fail "attrs>=20.3.0,<22.0.1" "attrs>=20.3.0"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     asn1crypto
     attrs
     cryptodatahub
@@ -38,9 +40,7 @@ buildPythonPackage rec {
     urllib3
   ];
 
-  pythonImportsCheck = [
-    "cryptoparser"
-  ];
+  pythonImportsCheck = [ "cryptoparser" ];
 
   meta = with lib; {
     description = "Security protocol parser and generator";
diff --git a/pkgs/development/python-modules/crysp/default.nix b/pkgs/development/python-modules/crysp/default.nix
index dd8d43eac84bb..d3a555a6d801c 100644
--- a/pkgs/development/python-modules/crysp/default.nix
+++ b/pkgs/development/python-modules/crysp/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, grandalf
-, matplotlib
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  grandalf,
+  matplotlib,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,18 +27,14 @@ buildPythonPackage rec {
     matplotlib
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace setup.py \
       --replace "'pytest-runner'," ""
   '';
 
-  pythonImportsCheck = [
-    "crysp"
-  ];
+  pythonImportsCheck = [ "crysp" ];
 
   meta = with lib; {
     description = "Module that provides crypto-related facilities";
diff --git a/pkgs/development/python-modules/crytic-compile/default.nix b/pkgs/development/python-modules/crytic-compile/default.nix
index 2bcda1d7fd72e..41a3d80a50cee 100644
--- a/pkgs/development/python-modules/crytic-compile/default.nix
+++ b/pkgs/development/python-modules/crytic-compile/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, cbor2
-, fetchFromGitHub
-, pycryptodome
-, pythonOlder
-, setuptools
-, solc-select
-, toml
+{
+  lib,
+  buildPythonPackage,
+  cbor2,
+  fetchFromGitHub,
+  pycryptodome,
+  pythonOlder,
+  setuptools,
+  solc-select,
+  toml,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
   # required for import check to work
   # PermissionError: [Errno 13] Permission denied: '/homeless-shelter'
   env.HOME = "/tmp";
-  pythonImportsCheck = [
-    "crytic_compile"
-  ];
+  pythonImportsCheck = [ "crytic_compile" ];
 
   meta = with lib; {
     description = "Abstraction layer for smart contract build systems";
@@ -47,6 +46,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/crytic/crytic-compile";
     changelog = "https://github.com/crytic/crytic-compile/releases/tag/${version}";
     license = licenses.agpl3Plus;
-    maintainers = with maintainers; [ arturcygan hellwolf ];
+    maintainers = with maintainers; [
+      arturcygan
+      hellwolf
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/cson/default.nix b/pkgs/development/python-modules/cson/default.nix
index b16ee0202b2db..c32adee78e98b 100644
--- a/pkgs/development/python-modules/cson/default.nix
+++ b/pkgs/development/python-modules/cson/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, speg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  speg,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "cson" ];
 
   meta = with lib; {
-    description = "A python parser for the Coffeescript Object Notation (CSON)";
+    description = "Python parser for the Coffeescript Object Notation (CSON)";
     homepage = "https://github.com/avakar/pycson";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ xworld21 ];
diff --git a/pkgs/development/python-modules/csrmesh/default.nix b/pkgs/development/python-modules/csrmesh/default.nix
index 81f3a25b34e51..19302c7090005 100644
--- a/pkgs/development/python-modules/csrmesh/default.nix
+++ b/pkgs/development/python-modules/csrmesh/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, bluepy
-, buildPythonPackage
-, fetchPypi
-, pycryptodomex
+{
+  lib,
+  bluepy,
+  buildPythonPackage,
+  fetchPypi,
+  pycryptodomex,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/css-html-js-minify/default.nix b/pkgs/development/python-modules/css-html-js-minify/default.nix
index f84dfbcaaecb4..a1a26dd9eaa64 100644
--- a/pkgs/development/python-modules/css-html-js-minify/default.nix
+++ b/pkgs/development/python-modules/css-html-js-minify/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -22,7 +23,11 @@ buildPythonPackage rec {
     description = "StandAlone Async cross-platform Minifier for the Web";
     mainProgram = "css-html-js-minify";
     homepage = "https://github.com/juancarlospaco/css-html-js-minify";
-    license = with licenses; [ gpl3Plus lgpl3Plus mit ];
+    license = with licenses; [
+      gpl3Plus
+      lgpl3Plus
+      mit
+    ];
     maintainers = with maintainers; [ FlorianFranzen ];
   };
 }
diff --git a/pkgs/development/python-modules/css-inline/Cargo.lock b/pkgs/development/python-modules/css-inline/Cargo.lock
index de6ff84ce6a47..cbd1794e69948 100644
--- a/pkgs/development/python-modules/css-inline/Cargo.lock
+++ b/pkgs/development/python-modules/css-inline/Cargo.lock
@@ -52,9 +52,9 @@ dependencies = [
 
 [[package]]
 name = "autocfg"
-version = "1.2.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
 
 [[package]]
 name = "backtrace"
@@ -73,15 +73,9 @@ dependencies = [
 
 [[package]]
 name = "base64"
-version = "0.22.0"
+version = "0.22.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9475866fec1451be56a3c2400fd081ff546538961565ccb5b7142cbd22bc7a51"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
 
 [[package]]
 name = "bitflags"
@@ -131,9 +125,9 @@ dependencies = [
 
 [[package]]
 name = "cc"
-version = "1.0.94"
+version = "1.0.96"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17f6e324229dc011159fcc089755d1e2e216a90d43a7dea6853ca740b84f35e7"
+checksum = "065a29261d53ba54260972629f9ca6bffa69bac13cd1fed61420f7fa68b9f8bd"
 
 [[package]]
 name = "cfg-if"
@@ -186,7 +180,7 @@ checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
 
 [[package]]
 name = "css-inline"
-version = "0.14.0"
+version = "0.14.1"
 dependencies = [
  "cssparser",
  "html5ever",
@@ -201,7 +195,7 @@ dependencies = [
 
 [[package]]
 name = "css-inline-python"
-version = "0.14.0"
+version = "0.14.1"
 dependencies = [
  "built",
  "css-inline",
@@ -375,9 +369,9 @@ checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253"
 
 [[package]]
 name = "hashbrown"
-version = "0.14.3"
+version = "0.14.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
 dependencies = [
  "ahash",
  "allocator-api2",
@@ -577,15 +571,15 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.153"
+version = "0.2.154"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
 
 [[package]]
 name = "lock_api"
-version = "0.4.11"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -614,9 +608,9 @@ checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
 
 [[package]]
 name = "markup5ever"
-version = "0.12.0"
+version = "0.12.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c7940b09815a02810a42b9e1bc41c069880a87de68e9b1dcbe754a3ba3b47c20"
+checksum = "16ce3abbeba692c8b8441d036ef91aea6df8da2c6b6e21c7e14d3c18e526be45"
 dependencies = [
  "log",
  "phf 0.11.2",
@@ -675,9 +669,9 @@ checksum = "650eef8c711430f1a879fdd01d4745a7deea475becfb90269c06775983bbf086"
 
 [[package]]
 name = "num-traits"
-version = "0.2.18"
+version = "0.2.19"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841"
 dependencies = [
  "autocfg",
 ]
@@ -709,9 +703,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "parking_lot"
-version = "0.12.1"
+version = "0.12.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb"
 dependencies = [
  "lock_api",
  "parking_lot_core",
@@ -719,15 +713,15 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.9"
+version = "0.9.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
 dependencies = [
  "cfg-if",
  "libc",
  "redox_syscall",
  "smallvec",
- "windows-targets 0.48.5",
+ "windows-targets 0.52.5",
 ]
 
 [[package]]
@@ -915,9 +909,9 @@ dependencies = [
 
 [[package]]
 name = "pyo3-built"
-version = "0.4.7"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "be6d574e0f8cab2cdd1eeeb640cbf845c974519fa9e9b62fa9c08ecece0ca5de"
+checksum = "35ee655adc94166665a1d714b439e27857dd199b947076891d6a17d32d396cde"
 
 [[package]]
 name = "pyo3-ffi"
@@ -1015,18 +1009,18 @@ dependencies = [
 
 [[package]]
 name = "redox_syscall"
-version = "0.4.1"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
 dependencies = [
- "bitflags 1.3.2",
+ "bitflags",
 ]
 
 [[package]]
 name = "reqwest"
-version = "0.12.3"
+version = "0.12.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3e6cc1e89e689536eb5aeede61520e874df5a4707df811cd5da4aa5fbb2aae19"
+checksum = "566cafdd92868e0939d3fb961bd0dc25fcfaaed179291093b3d43e6b3150ea10"
 dependencies = [
  "base64",
  "bytes",
@@ -1093,9 +1087,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
 name = "rustls"
-version = "0.22.3"
+version = "0.22.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99008d7ad0bbbea527ec27bddbc0e432c5b87d8175178cee68d2eec9c4a1813c"
+checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432"
 dependencies = [
  "log",
  "ring",
@@ -1117,15 +1111,15 @@ dependencies = [
 
 [[package]]
 name = "rustls-pki-types"
-version = "1.4.1"
+version = "1.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ecd36cc4259e3e4514335c4a138c6b43171a8d61d8f5c9348f9fc7529416f247"
+checksum = "beb461507cee2c2ff151784c52762cf4d9ff6a61f3e80968600ed24fa837fa54"
 
 [[package]]
 name = "rustls-webpki"
-version = "0.102.2"
+version = "0.102.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "faaa0a62740bedb9b2ef5afa303da42764c012f743917351dc9a237ea1663610"
+checksum = "f3bce581c0dd41bce533ce695a1437fa16a7ab5ac3ccfa99fe1a620a7885eabf"
 dependencies = [
  "ring",
  "rustls-pki-types",
@@ -1150,7 +1144,7 @@ version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "4eb30575f3638fc8f6815f448d50cb1a2e255b0897985c8c59f4d37b72a07b06"
 dependencies = [
- "bitflags 2.5.0",
+ "bitflags",
  "cssparser",
  "derive_more",
  "fxhash",
@@ -1174,18 +1168,18 @@ dependencies = [
 
 [[package]]
 name = "serde"
-version = "1.0.198"
+version = "1.0.200"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9846a40c979031340571da2545a4e5b7c4163bdae79b301d5f86d03979451fcc"
+checksum = "ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.198"
+version = "1.0.200"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e88edab869b01783ba905e7d0153f9fc1a6505a96e4ad3018011eedb838566d9"
+checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1256,9 +1250,9 @@ checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "socket2"
-version = "0.5.6"
+version = "0.5.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "05ffd9c0a93b7543e062e759284fcf5f5e3b098501104bfbdde4d404db792871"
+checksum = "ce305eb0b4296696835b71df73eb912e0f1ffd2556a501fcede6e0c50349191c"
 dependencies = [
  "libc",
  "windows-sys 0.52.0",
@@ -1808,18 +1802,18 @@ dependencies = [
 
 [[package]]
 name = "zerocopy"
-version = "0.7.32"
+version = "0.7.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be"
+checksum = "087eca3c1eaf8c47b94d02790dd086cd594b912d2043d4de4bfdd466b3befb7c"
 dependencies = [
  "zerocopy-derive",
 ]
 
 [[package]]
 name = "zerocopy-derive"
-version = "0.7.32"
+version = "0.7.33"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6"
+checksum = "6f4b6c273f496d8fd4eaf18853e6b448760225dc030ff2c485a786859aea6393"
 dependencies = [
  "proc-macro2",
  "quote",
diff --git a/pkgs/development/python-modules/css-inline/default.nix b/pkgs/development/python-modules/css-inline/default.nix
index e3a35ec65f722..b9faf71842b69 100644
--- a/pkgs/development/python-modules/css-inline/default.nix
+++ b/pkgs/development/python-modules/css-inline/default.nix
@@ -1,31 +1,32 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, rustPlatform
+  # build-system
+  rustPlatform,
 
-# native darwin dependencies
-, libiconv
-, Security
-, SystemConfiguration
+  # native darwin dependencies
+  libiconv,
+  Security,
+  SystemConfiguration,
 
-# tests
-, pytestCheckHook
-, hypothesis
+  # tests
+  pytestCheckHook,
+  hypothesis,
 }:
 
 buildPythonPackage rec {
   pname = "css-inline";
-  version = "0.14.0";
+  version = "0.14.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Stranger6667";
     repo = "css-inline";
     rev = "python-v${version}";
-    hash = "sha256-CdR90GGPWOerXWfVeHrFLAelL+MJ9bfoB4TjKBdRSL0=";
+    hash = "sha256-+hX05y+ii2/wAbcc3SPK3ns4slUKFGqHURb3Z08yhVw=";
   };
 
   postPatch = ''
@@ -42,7 +43,7 @@ buildPythonPackage rec {
       ln -s ${./Cargo.lock} Cargo.lock
     '';
     name = "${pname}-${version}";
-    hash = "sha256-/GO7OcUl0iFgEhr8ZWZQOTNqHn7bt38PpFs0HktmAhE=";
+    hash = "sha256-ogzj8JxiFX2VWEeEnKACycd2Bud9VUpLuF4h35eUls0=";
   };
 
   nativeBuildInputs = [
@@ -56,23 +57,23 @@ buildPythonPackage rec {
     SystemConfiguration
   ];
 
-  pythonImportsCheck = [
-    "css_inline"
-  ];
+  pythonImportsCheck = [ "css_inline" ];
 
   nativeCheckInputs = [
     hypothesis
     pytestCheckHook
   ];
 
-  disabledTests = [
-    # fails to connect to local server
-    "test_cache"
-    "test_remote_stylesheet"
-  ] ++ lib.optionals (stdenv.isDarwin) [
-    # pyo3_runtime.PanicException: event loop thread panicked
-    "test_invalid_href"
-  ];
+  disabledTests =
+    [
+      # fails to connect to local server
+      "test_cache"
+      "test_remote_stylesheet"
+    ]
+    ++ lib.optionals (stdenv.isDarwin) [
+      # pyo3_runtime.PanicException: event loop thread panicked
+      "test_invalid_href"
+    ];
 
   meta = with lib; {
     description = "Inline CSS into style attributes";
diff --git a/pkgs/development/python-modules/css-parser/default.nix b/pkgs/development/python-modules/css-parser/default.nix
index bd2a3258d0b0f..abb1130c702d0 100644
--- a/pkgs/development/python-modules/css-parser/default.nix
+++ b/pkgs/development/python-modules/css-parser/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -17,12 +18,10 @@ buildPythonPackage rec {
   # See https://github.com/ebook-utils/css-parser/pull/2
   doCheck = false;
 
-  pythonImportsCheck = [
-    "css_parser"
-  ];
+  pythonImportsCheck = [ "css_parser" ];
 
   meta = with lib; {
-    description = "A CSS Cascading Style Sheets library for Python";
+    description = "CSS Cascading Style Sheets library for Python";
     homepage = "https://github.com/ebook-utils/css-parser";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ jethro ];
diff --git a/pkgs/development/python-modules/cssbeautifier/default.nix b/pkgs/development/python-modules/cssbeautifier/default.nix
index 1fc1aeed84371..ebb76a8346d3b 100644
--- a/pkgs/development/python-modules/cssbeautifier/default.nix
+++ b/pkgs/development/python-modules/cssbeautifier/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, editorconfig
-, fetchPypi
-, jsbeautifier
-, pythonOlder
-, setuptools
-, six
+{
+  lib,
+  buildPythonPackage,
+  editorconfig,
+  fetchPypi,
+  jsbeautifier,
+  pythonOlder,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-n3BkNirt1VnFXu7Pa2vtZeBfM0iNy+OQRPBAPCbhwAY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     editorconfig
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "cssbeautifier"
-  ];
+  pythonImportsCheck = [ "cssbeautifier" ];
 
   meta = with lib; {
     description = "CSS unobfuscator and beautifier";
diff --git a/pkgs/development/python-modules/csscompressor/default.nix b/pkgs/development/python-modules/csscompressor/default.nix
index 01c649f222c1e..d1a185bc8e435 100644
--- a/pkgs/development/python-modules/csscompressor/default.nix
+++ b/pkgs/development/python-modules/csscompressor/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "csscompressor";
@@ -13,9 +17,9 @@ buildPythonPackage rec {
   doCheck = false; # No tests
 
   meta = with lib; {
-    description = "A python port of YUI CSS Compressor";
+    description = "Python port of YUI CSS Compressor";
     homepage = "https://pypi.python.org/pypi/csscompressor";
     license = licenses.bsd3;
-    maintainers = [];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/cssmin/default.nix b/pkgs/development/python-modules/cssmin/default.nix
index 6ab7f590f6d24..84b4b9fe2964b 100644
--- a/pkgs/development/python-modules/cssmin/default.nix
+++ b/pkgs/development/python-modules/cssmin/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "cssmin";
@@ -14,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Python port of the YUI CSS compression algorithm";
+    description = "Python port of the YUI CSS compression algorithm";
     mainProgram = "cssmin";
     homepage = "https://github.com/zacharyvoase/cssmin";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/cssselect/default.nix b/pkgs/development/python-modules/cssselect/default.nix
index 0accd8c6cbae1..a85aa4345c543 100644
--- a/pkgs/development/python-modules/cssselect/default.nix
+++ b/pkgs/development/python-modules/cssselect/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, pytestCheckHook
-, lxml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  pytestCheckHook,
+  lxml,
 }:
 
 buildPythonPackage rec {
@@ -19,18 +20,14 @@ buildPythonPackage rec {
     sha256 = "666b19839cfaddb9ce9d36bfe4c969132c647b92fc9088c4e23f786b30f1b3dc";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytestCheckHook
     lxml
   ];
 
-  pythonImportsCheck = [
-    "cssselect"
-  ];
+  pythonImportsCheck = [ "cssselect" ];
 
   meta = with lib; {
     description = "CSS Selectors for Python";
diff --git a/pkgs/development/python-modules/cssselect2/default.nix b/pkgs/development/python-modules/cssselect2/default.nix
index 9b58da4fdb21d..0eabd5ca83235 100644
--- a/pkgs/development/python-modules/cssselect2/default.nix
+++ b/pkgs/development/python-modules/cssselect2/default.nix
@@ -1,17 +1,19 @@
-{ lib
-, buildPythonPackage
-, flit-core
-, pythonOlder
-, fetchPypi
-, tinycss2
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  pytestCheckHook,
+  pythonOlder,
+  tinycss2,
 }:
 
 buildPythonPackage rec {
   pname = "cssselect2";
   version = "0.7.0";
-  format = "pyproject";
-  disabled = pythonOlder "3.5";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
@@ -22,11 +24,9 @@ buildPythonPackage rec {
     sed -i '/^addopts/d' pyproject.toml
   '';
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  build-system = [ flit-core ];
 
-  propagatedBuildInputs = [ tinycss2 ];
+  dependencies = [ tinycss2 ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
@@ -35,6 +35,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "CSS selectors for Python ElementTree";
     homepage = "https://github.com/Kozea/cssselect2";
+    changelog = "https://github.com/Kozea/cssselect2/releases/tag/${version}";
     license = licenses.bsd3;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/cssutils/default.nix b/pkgs/development/python-modules/cssutils/default.nix
index 8b8a650defe6b..a442c2c22e144 100644
--- a/pkgs/development/python-modules/cssutils/default.nix
+++ b/pkgs/development/python-modules/cssutils/default.nix
@@ -1,35 +1,33 @@
-{ lib
-, buildPythonPackage
-, pythonAtLeast
-, pythonOlder
-, fetchFromGitHub
-, setuptools-scm
-, cssselect
-, jaraco-test
-, lxml
-, mock
-, pytestCheckHook
-, importlib-resources
+{
+  lib,
+  buildPythonPackage,
+  pythonAtLeast,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools-scm,
+  cssselect,
+  jaraco-test,
+  lxml,
+  mock,
+  pytestCheckHook,
+  importlib-resources,
 }:
 
 buildPythonPackage rec {
   pname = "cssutils";
-  version = "2.10.2";
+  version = "2.11.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-
   src = fetchFromGitHub {
     owner = "jaraco";
     repo = "cssutils";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1sAn6pFwWsnYS1eHQmyDNGTo6kdhL1vJBwUptADvHyo=";
+    hash = "sha256-U9myMfKz1HpYVJXp85izRBpm2wjLHYZj8bUVt3ROTEg=";
   };
 
-  build-system = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
   nativeCheckInputs = [
     cssselect
@@ -37,9 +35,7 @@ buildPythonPackage rec {
     lxml
     mock
     pytestCheckHook
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    importlib-resources
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ];
 
   disabledTests = [
     # access network
@@ -50,7 +46,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "cssutils" ];
 
   meta = with lib; {
-    description = "A CSS Cascading Style Sheets library for Python";
+    description = "CSS Cascading Style Sheets library for Python";
     homepage = "https://github.com/jaraco/cssutils";
     changelog = "https://github.com/jaraco/cssutils/blob/${src.rev}/NEWS.rst";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/python-modules/cstruct/default.nix b/pkgs/development/python-modules/cstruct/default.nix
index 5c0baaf88f204..cc92fa059f3cd 100644
--- a/pkgs/development/python-modules/cstruct/default.nix
+++ b/pkgs/development/python-modules/cstruct/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,9 @@ buildPythonPackage rec {
     hash = "sha256-VDJ0k3cOuHjckujf9yD1GVE+UM/Y9rjqhiq+MqGq2eM=";
   };
 
-  pythonImportsCheck = [
-    "cstruct"
-  ];
+  pythonImportsCheck = [ "cstruct" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "C-style structs for Python";
diff --git a/pkgs/development/python-modules/csv2md/default.nix b/pkgs/development/python-modules/csv2md/default.nix
new file mode 100644
index 0000000000000..43d3c816aa95a
--- /dev/null
+++ b/pkgs/development/python-modules/csv2md/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+}:
+
+buildPythonPackage rec {
+  pname = "csv2md";
+  version = "1.3.0";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "lzakharov";
+    repo = "csv2md";
+    rev = "v${version}";
+    hash = "sha256-INwZRbyJmyDd5SV7PBdqUc/3FO91upTgaxBfP/Giaw4=";
+  };
+
+  pythonImportsCheck = [ "csv2md" ];
+
+  meta = {
+    description = "Command line tool for converting CSV files into Markdown tables";
+    homepage = "https://github.com/lzakharov/csv2md";
+    changelog = "https://github.com/lzakharov/csv2md/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ t4ccer ];
+    mainProgram = "csv2md";
+  };
+}
diff --git a/pkgs/development/python-modules/csvw/default.nix b/pkgs/development/python-modules/csvw/default.nix
index 4e7ad09b0926b..d37d7819ec37c 100644
--- a/pkgs/development/python-modules/csvw/default.nix
+++ b/pkgs/development/python-modules/csvw/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
-, pythonOlder
-, attrs
-, isodate
-, python-dateutil
-, rfc3986
-, uritemplate
-, pytestCheckHook
-, pytest-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  pythonOlder,
+  attrs,
+  isodate,
+  python-dateutil,
+  rfc3986,
+  uritemplate,
+  pytestCheckHook,
+  pytest-mock,
 }:
 
 buildPythonPackage rec {
@@ -44,20 +45,20 @@ buildPythonPackage rec {
       --replace "--cov" ""
   '';
 
-  disabledTests = [
-    # this test is flaky on darwin because it depends on the resolution of filesystem mtimes
-    # https://github.com/cldf/csvw/blob/45584ad63ff3002a9b3a8073607c1847c5cbac58/tests/test_db.py#L257
-    "test_write_file_exists"
-  ] ++ lib.optionals (pythonAtLeast "3.10") [
-    # https://github.com/cldf/csvw/issues/58
-    "test_roundtrip_escapechar"
-    "test_escapequote_escapecharquotechar_final"
-    "test_doubleQuote"
-  ];
+  disabledTests =
+    [
+      # this test is flaky on darwin because it depends on the resolution of filesystem mtimes
+      # https://github.com/cldf/csvw/blob/45584ad63ff3002a9b3a8073607c1847c5cbac58/tests/test_db.py#L257
+      "test_write_file_exists"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.10") [
+      # https://github.com/cldf/csvw/issues/58
+      "test_roundtrip_escapechar"
+      "test_escapequote_escapecharquotechar_final"
+      "test_doubleQuote"
+    ];
 
-  pythonImportsCheck = [
-    "csvw"
-  ];
+  pythonImportsCheck = [ "csvw" ];
 
   meta = with lib; {
     description = "CSV on the Web";
diff --git a/pkgs/development/python-modules/ctap-keyring-device/default.nix b/pkgs/development/python-modules/ctap-keyring-device/default.nix
index 0721167693669..a18241658b01e 100644
--- a/pkgs/development/python-modules/ctap-keyring-device/default.nix
+++ b/pkgs/development/python-modules/ctap-keyring-device/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonRelaxDepsHook
-, setuptools-scm
-# install requirements
-, fido2
-, keyring
-, cryptography
-# test requirements
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  # install requirements
+  fido2,
+  keyring,
+  cryptography,
+  # test requirements
+  pytestCheckHook,
 }:
 
 let
@@ -39,7 +39,6 @@ buildPythonPackage rec {
   '';
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools-scm
   ];
 
diff --git a/pkgs/development/python-modules/ctranslate2/default.nix b/pkgs/development/python-modules/ctranslate2/default.nix
index a86516856fd44..976944c337803 100644
--- a/pkgs/development/python-modules/ctranslate2/default.nix
+++ b/pkgs/development/python-modules/ctranslate2/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
+{
+  lib,
+  buildPythonPackage,
 
-# build-system
-, pybind11
-, setuptools
+  # build-system
+  pybind11,
+  setuptools,
 
-# dependencies
-, ctranslate2-cpp
-, numpy
-, pyyaml
+  # dependencies
+  ctranslate2-cpp,
+  numpy,
+  pyyaml,
 
-# tests
-, pytestCheckHook
-, tensorflow-bin
-, torch
-, transformers
-, wurlitzer
+  # tests
+  pytestCheckHook,
+  tensorflow-bin,
+  torch,
+  transformers,
+  wurlitzer,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  buildInputs = [
-    ctranslate2-cpp
-  ];
+  buildInputs = [ ctranslate2-cpp ];
 
   propagatedBuildInputs = [
     numpy
diff --git a/pkgs/development/python-modules/cu2qu/default.nix b/pkgs/development/python-modules/cu2qu/default.nix
index 67315205b7061..8cc3b4a34bb53 100644
--- a/pkgs/development/python-modules/cu2qu/default.nix
+++ b/pkgs/development/python-modules/cu2qu/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-
-# build
-, cython
-, setuptools-scm
-, setuptools
-
-# propagates
-, defcon
-, fonttools
-
-# tests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+
+  # build
+  cython,
+  setuptools-scm,
+  setuptools,
+
+  # propagates
+  defcon,
+  fonttools,
+
+  # tests
+  pytestCheckHook,
 }:
 
 let
@@ -40,9 +41,7 @@ buildPythonPackage rec {
     fonttools
   ] ++ fonttools.optional-dependencies.ufo;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     changelog = "https://github.com/googlefonts/cu2qu/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/cucumber-tag-expressions/default.nix b/pkgs/development/python-modules/cucumber-tag-expressions/default.nix
index 74ec6c13a5aec..4d09eb4857648 100644
--- a/pkgs/development/python-modules/cucumber-tag-expressions/default.nix
+++ b/pkgs/development/python-modules/cucumber-tag-expressions/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pytestCheckHook
-, pytest-html
-, pyyaml
-, setuptools
- }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pytestCheckHook,
+  pytest-html,
+  pyyaml,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "cucumber-tag-expressions";
   version = "6.1.0";
   pyproject = true;
 
-  src = fetchFromGitHub{
+  src = fetchFromGitHub {
     owner = "cucumber";
     repo = "tag-expressions";
     rev = "refs/tags/v${version}";
@@ -21,9 +22,7 @@ buildPythonPackage rec {
 
   sourceRoot = "${src.name}/python";
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/cufflinks/default.nix b/pkgs/development/python-modules/cufflinks/default.nix
index 4884c2e584bc2..9e2e8df44a003 100644
--- a/pkgs/development/python-modules/cufflinks/default.nix
+++ b/pkgs/development/python-modules/cufflinks/default.nix
@@ -1,44 +1,53 @@
-{ lib, buildPythonPackage, fetchPypi
-, chart-studio
-, colorlover
-, ipython
-, ipywidgets
-, pytest
-, nose
-, numpy
-, pandas
-, six
-, statsmodels
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  colorlover,
+  ipython,
+  ipywidgets,
+  numpy,
+  pandas,
+  plotly,
+  pytestCheckHook,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "cufflinks";
   version = "0.17.3";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0i56062k54dlg5iz3qyl1ykww62mpkp8jr4n450h0c60dm0b7ha8";
+    hash = "sha256-SMGzQG3AMABBIZZkie68VRjOpw/U4/FjebSRMoUBpkQ=";
   };
 
-  propagatedBuildInputs = [
-    chart-studio
+  # replace duplicated pandas method
+  # https://github.com/santosjorge/cufflinks/pull/249#issuecomment-1759619149
+  postPatch = ''
+    substituteInPlace tests.py \
+      --replace-fail "from nose.tools import assert_equals" "def assert_equals(x, y): assert x == y" \
+      --replace-fail "df.ix" "df.loc"
+  '';
+
+  build-system = [ setuptools ];
+
+  dependencies = [
     colorlover
     ipython
     ipywidgets
     numpy
     pandas
+    plotly
     six
-    statsmodels
   ];
 
-  nativeCheckInputs = [ pytest nose ];
+  pythonImportsCheck = [ "cufflinks" ];
 
-  # ignore tests which are incompatible with pandas>=1.0
-  # https://github.com/santosjorge/cufflinks/issues/236
-  checkPhase = ''
-    pytest tests.py -k 'not bar_row'
-  '';
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pytestFlagsArray = [ "tests.py" ];
 
   meta = with lib; {
     description = "Productivity Tools for Plotly + Pandas";
diff --git a/pkgs/development/python-modules/cupy/default.nix b/pkgs/development/python-modules/cupy/default.nix
index 842645597062a..7212e2d379024 100644
--- a/pkgs/development/python-modules/cupy/default.nix
+++ b/pkgs/development/python-modules/cupy/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cython
-, fastrlock
-, numpy
-, wheel
-, pytestCheckHook
-, mock
-, setuptools
-, cudaPackages
-, addOpenGLRunpath
-, pythonOlder
-, symlinkJoin
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cython,
+  fastrlock,
+  numpy,
+  wheel,
+  pytestCheckHook,
+  mock,
+  setuptools,
+  cudaPackages,
+  addOpenGLRunpath,
+  pythonOlder,
+  symlinkJoin,
 }:
 
 let
@@ -40,14 +41,14 @@ let
 in
 buildPythonPackage rec {
   pname = "cupy";
-  version = "13.0.0";
+  version = "13.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LwTnhX9pKnEzYNycOwZwmAarhAT8o5ta+XIcBKKXmq4=";
+    hash = "sha256-5NvSsu1BWaXMDA+YpxCgFJUOssFu60VelWEo87O9DVE=";
   };
 
   # See https://docs.cupy.dev/en/v10.2.0/reference/environment.html. Seting both
@@ -102,7 +103,7 @@ buildPythonPackage rec {
   enableParallelBuilding = true;
 
   meta = with lib; {
-    description = "A NumPy-compatible matrix library accelerated by CUDA";
+    description = "NumPy-compatible matrix library accelerated by CUDA";
     homepage = "https://cupy.chainer.org/";
     changelog = "https://github.com/cupy/cupy/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/curio/default.nix b/pkgs/development/python-modules/curio/default.nix
index 27bcf024aa0bc..087d85405e260 100644
--- a/pkgs/development/python-modules/curio/default.nix
+++ b/pkgs/development/python-modules/curio/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, isPy3k
-, pytestCheckHook
-, sphinx
-, stdenv
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  isPy3k,
+  pytestCheckHook,
+  sphinx,
+  stdenv,
 }:
 
 buildPythonPackage rec {
@@ -35,17 +36,20 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  disabledTests = [
-    "test_aside_basic" # times out
-    "test_write_timeout" # flaky, does not always time out
-    "test_aside_cancel" # fails because modifies PYTHONPATH and cant find pytest
-    "test_ssl_outgoing" # touches network
-    "test_unix_echo" # socket bind error on hydra when built with other packages
-    "test_unix_ssl_server" # socket bind error on hydra when built with other packages
-  ] ++ lib.optionals stdenv.isDarwin [
-    # connects to python.org:1, expects an OsError, hangs in the darwin sandbox
-    "test_create_bad_connection"
-  ];
+  disabledTests =
+    [
+      "test_cpu" # timing sensitive
+      "test_aside_basic" # times out
+      "test_write_timeout" # flaky, does not always time out
+      "test_aside_cancel" # fails because modifies PYTHONPATH and cant find pytest
+      "test_ssl_outgoing" # touches network
+      "test_unix_echo" # socket bind error on hydra when built with other packages
+      "test_unix_ssl_server" # socket bind error on hydra when built with other packages
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # connects to python.org:1, expects an OsError, hangs in the darwin sandbox
+      "test_create_bad_connection"
+    ];
 
   pythonImportsCheck = [ "curio" ];
 
diff --git a/pkgs/development/python-modules/curl-cffi/default.nix b/pkgs/development/python-modules/curl-cffi/default.nix
new file mode 100644
index 0000000000000..82a521898a63d
--- /dev/null
+++ b/pkgs/development/python-modules/curl-cffi/default.nix
@@ -0,0 +1,42 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  curl-impersonate-chrome,
+  cffi,
+  certifi,
+}:
+
+buildPythonPackage rec {
+  pname = "curl-cffi";
+  version = "0.7.0b4";
+
+  src = fetchFromGitHub {
+    owner = "yifeikong";
+    repo = "curl_cffi";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-txrJNUzswAPeH4Iazn0iKJI0Rqk0HHRoDrtTfDHKMoo=";
+  };
+
+  patches = [ ./use-system-libs.patch ];
+  buildInputs = [ curl-impersonate-chrome ];
+
+  format = "pyproject";
+  build-system = [ setuptools ];
+
+  nativeBuildInputs = [ cffi ];
+  propagatedBuildInputs = [
+    cffi
+    certifi
+  ];
+
+  pythonImportsCheck = [ "curl_cffi" ];
+
+  meta = with lib; {
+    description = "Python binding for curl-impersonate via cffi";
+    homepage = "https://curl-cffi.readthedocs.io";
+    license = licenses.mit;
+    maintainers = with maintainers; [ chuangzhu ];
+  };
+}
diff --git a/pkgs/development/python-modules/curl-cffi/use-system-libs.patch b/pkgs/development/python-modules/curl-cffi/use-system-libs.patch
new file mode 100644
index 0000000000000..1d044873e4610
--- /dev/null
+++ b/pkgs/development/python-modules/curl-cffi/use-system-libs.patch
@@ -0,0 +1,23 @@
+diff --git a/scripts/build.py b/scripts/build.py
+index b705a0d..9bfcaab 100644
+--- a/scripts/build.py
++++ b/scripts/build.py
+@@ -105,7 +105,6 @@ def get_curl_libraries():
+ ffibuilder = FFI()
+ system = platform.system()
+ root_dir = Path(__file__).parent.parent
+-download_libcurl()
+ 
+ 
+ ffibuilder.set_source(
+@@ -114,9 +113,7 @@ ffibuilder.set_source(
+         #include "shim.h"
+     """,
+     # FIXME from `curl-impersonate`
+-    libraries=get_curl_libraries(),
+-    extra_objects=get_curl_archives(),
+-    library_dirs=[arch["libdir"]],
++    libraries=["curl-impersonate-chrome"],
+     source_extension=".c",
+     include_dirs=[
+         str(root_dir / "include"),
diff --git a/pkgs/development/python-modules/curlify/default.nix b/pkgs/development/python-modules/curlify/default.nix
index dbe335c71dec3..8dfec88902691 100644
--- a/pkgs/development/python-modules/curlify/default.nix
+++ b/pkgs/development/python-modules/curlify/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, requests }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+}:
 
 buildPythonPackage {
   pname = "curlify";
@@ -12,9 +17,7 @@ buildPythonPackage {
     hash = "sha256-yDHmH35TtQDJB0na1V98RtBuVHX5TmKC72hzzs1DQK8=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   meta = with lib; {
     description = "Convert python requests request object to cURL command";
diff --git a/pkgs/development/python-modules/curtsies/default.nix b/pkgs/development/python-modules/curtsies/default.nix
index 2dd039f00ee2f..b2467a02e09b5 100644
--- a/pkgs/development/python-modules/curtsies/default.nix
+++ b/pkgs/development/python-modules/curtsies/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, stdenv
-, backports-cached-property
-, blessed
-, buildPythonPackage
-, cwcwidth
-, fetchPypi
-, pyte
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  stdenv,
+  backports-cached-property,
+  blessed,
+  buildPythonPackage,
+  cwcwidth,
+  fetchPypi,
+  pyte,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,16 +24,12 @@ buildPythonPackage rec {
     hash = "sha256-br4zIVvXyShRpQYEnHIMykz1wZLBZlwdepigTEcCdg4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     blessed
     cwcwidth
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    backports-cached-property
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ backports-cached-property ];
 
   nativeCheckInputs = [
     pyte
diff --git a/pkgs/development/python-modules/curve25519-donna/default.nix b/pkgs/development/python-modules/curve25519-donna/default.nix
index d098d47e71902..10bd11bc849ca 100644
--- a/pkgs/development/python-modules/curve25519-donna/default.nix
+++ b/pkgs/development/python-modules/curve25519-donna/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "curve25519-donna";
diff --git a/pkgs/development/python-modules/curvefitgui/default.nix b/pkgs/development/python-modules/curvefitgui/default.nix
new file mode 100644
index 0000000000000..5c5f2247e5530
--- /dev/null
+++ b/pkgs/development/python-modules/curvefitgui/default.nix
@@ -0,0 +1,47 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pythonAtLeast,
+  numpy,
+  scipy,
+  pyqt5,
+  matplotlib,
+}:
+
+buildPythonPackage {
+  pname = "curvefitgui";
+  version = "0-unstable-2021-08-25";
+  pyproject = true;
+  # For some reason, importing the main module makes the whole python
+  # interpreter crash! This needs further investigation, possibly the problem
+  # is with one of the dependencies.. See upstream report:
+  # https://github.com/moosepy/curvefitgui/issues/2
+  disabled = pythonAtLeast "3.12";
+
+  src = fetchFromGitHub {
+    owner = "moosepy";
+    repo = "curvefitgui";
+    rev = "5f1e7f3b95cd77d10bd8183c9a501e47ff94fad7";
+    hash = "sha256-oK0ROKxh/91OrHhuufG6pvc2EMBeMP8R5O+ED2thyW8=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [
+    numpy
+    scipy
+    pyqt5
+    matplotlib
+  ];
+
+  pythonImportsCheck = [ "curvefitgui" ];
+
+  meta = {
+    description = "Graphical interface to the non-linear curvefit function scipy.optimise.curve_fit";
+    homepage = "https://github.com/moosepy/curvefitgui";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/customtkinter/default.nix b/pkgs/development/python-modules/customtkinter/default.nix
new file mode 100644
index 0000000000000..9f4f3a27170b4
--- /dev/null
+++ b/pkgs/development/python-modules/customtkinter/default.nix
@@ -0,0 +1,53 @@
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  wheel,
+  tkinter,
+  darkdetect,
+}:
+let
+  pname = "customtkinter";
+  version = "5.2.2";
+in
+buildPythonPackage {
+  inherit pname version;
+  pyproject = true;
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-/Y2zuvqWHJgu5gMNuoC0wuJYWGMHVrUTmG2xkRPY0gc=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+  buildInputs = [ tkinter ];
+  propagatedBuildInputs = [ darkdetect ];
+
+  # No tests
+  doCheck = false;
+  pythonImportsCheck = [ "customtkinter" ];
+
+  meta = {
+    description = "Modern and customizable python UI-library based on Tkinter";
+    homepage = "https://github.com/TomSchimansky/CustomTkinter";
+    license = lib.licenses.mit;
+    longDescription = ''
+      CustomTkinter is a python UI-library based on Tkinter, which provides
+      new, modern and fully customizable widgets. They are created and
+      used like normal Tkinter widgets and can also be used in combination
+      with normal Tkinter elements. The widgets and the window colors
+      either adapt to the system appearance or the manually set mode
+      ('light', 'dark'), and all CustomTkinter widgets and windows support
+      HighDPI scaling (Windows, macOS). With CustomTkinter you'll get
+      a consistent and modern look across all desktop platforms
+      (Windows, macOS, Linux).
+    '';
+    maintainers = with lib.maintainers; [ donteatoreo ];
+  };
+}
diff --git a/pkgs/development/python-modules/cvelib/default.nix b/pkgs/development/python-modules/cvelib/default.nix
index c269c351c1da9..b51d4ea6f64f2 100644
--- a/pkgs/development/python-modules/cvelib/default.nix
+++ b/pkgs/development/python-modules/cvelib/default.nix
@@ -1,48 +1,55 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, jsonschema
-, pytestCheckHook
-, pythonOlder
-, requests
-, testers
-, cve
+{
+  lib,
+  buildPythonPackage,
+  click,
+  cve,
+  fetchFromGitHub,
+  jsonschema,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
+  testers,
 }:
 
 buildPythonPackage rec {
   pname = "cvelib";
-  version = "1.3.0";
-  format = "setuptools";
+  version = "1.4.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "RedHatProductSecurity";
     repo = "cvelib";
-    rev = "tags/${version}";
-    hash = "sha256-PCZUAKgE80PD//4qK8ap55IN9vtx9WdpRZUAC3UdaWM=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-nj5bkep8jYJE1qh2zNxivjKOpHj93UZ8bU+qNs2On8s=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    # collective.checkdocs is unmaintained for over 10 years
+    substituteInPlace pyproject.toml \
+      --replace-fail '"collective.checkdocs",' ""
+  '';
+
+  build-system = [ setuptools ];
+
+  dependencies = [
     click
     jsonschema
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "cvelib"
-  ];
+  pythonImportsCheck = [ "cvelib" ];
 
   passthru.tests.version = testers.testVersion { package = cve; };
 
   meta = with lib; {
     description = "Library and a command line interface for the CVE Services API";
     homepage = "https://github.com/RedHatProductSecurity/cvelib";
+    changelog = "https://github.com/RedHatProductSecurity/cvelib/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ raboof ];
     mainProgram = "cve";
diff --git a/pkgs/development/python-modules/cvss/default.nix b/pkgs/development/python-modules/cvss/default.nix
index 640ad9720c743..c7364e5589a06 100644
--- a/pkgs/development/python-modules/cvss/default.nix
+++ b/pkgs/development/python-modules/cvss/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, jsonschema
-, unittestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jsonschema,
+  unittestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-e/zwOfbt3YLlRiLFObjps3tFFk6BAWBKdanio6sus8c=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     jsonschema
     unittestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "cvss"
-  ];
+  pythonImportsCheck = [ "cvss" ];
 
   preCheck = ''
     cd tests
diff --git a/pkgs/development/python-modules/cvxopt/default.nix b/pkgs/development/python-modules/cvxopt/default.nix
index 0ba23e1510604..a33d19ff31354 100644
--- a/pkgs/development/python-modules/cvxopt/default.nix
+++ b/pkgs/development/python-modules/cvxopt/default.nix
@@ -1,19 +1,20 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, isPyPy
-, python
-, blas
-, lapack
-, suitesparse
-, unittestCheckHook
-, glpk ? null
-, gsl ? null
-, fftw ? null
-, withGlpk ? true
-, withGsl ? true
-, withFftw ? true
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  python,
+  blas,
+  lapack,
+  suitesparse,
+  unittestCheckHook,
+  glpk ? null,
+  gsl ? null,
+  fftw ? null,
+  withGlpk ? true,
+  withGsl ? true,
+  withFftw ? true,
 }:
 
 assert (!blas.isILP64) && (!lapack.isILP64);
@@ -30,33 +31,43 @@ buildPythonPackage rec {
     hash = "sha256-NGH6QsGyJAuk2h2YXKc1A5FBV/xMd0FzJ+1tfYWs2+Y=";
   };
 
-  buildInputs = [ blas lapack ];
+  buildInputs = [
+    blas
+    lapack
+  ];
 
   # similar to Gsl, glpk, fftw there is also a dsdp interface
   # but dsdp is not yet packaged in nixpkgs
-  env = {
-    CVXOPT_BLAS_LIB = "blas";
-    CVXOPT_LAPACK_LIB = "lapack";
-    CVXOPT_BUILD_DSDP = "0";
-    CVXOPT_SUITESPARSE_LIB_DIR = "${lib.getLib suitesparse}/lib";
-    CVXOPT_SUITESPARSE_INC_DIR = "${lib.getDev suitesparse}/include";
-  } // lib.optionalAttrs withGsl {
-    CVXOPT_BUILD_GSL = "1";
-    CVXOPT_GSL_LIB_DIR= "${lib.getLib gsl}/lib";
-    CVXOPT_GSL_INC_DIR= "${lib.getDev gsl}/include";
-  } // lib.optionalAttrs withGlpk {
-    CVXOPT_BUILD_GLPK = "1";
-    CVXOPT_GLPK_LIB_DIR = "${lib.getLib glpk}/lib";
-    CVXOPT_GLPK_INC_DIR = "${lib.getDev glpk}/include";
-  } // lib.optionalAttrs withFftw {
-    CVXOPT_BUILD_FFTW = "1";
-    CVXOPT_FFTW_LIB_DIR = "${lib.getLib fftw}/lib";
-    CVXOPT_FFTW_INC_DIR = "${lib.getDev fftw}/include";
-  };
+  env =
+    {
+      CVXOPT_BLAS_LIB = "blas";
+      CVXOPT_LAPACK_LIB = "lapack";
+      CVXOPT_BUILD_DSDP = "0";
+      CVXOPT_SUITESPARSE_LIB_DIR = "${lib.getLib suitesparse}/lib";
+      CVXOPT_SUITESPARSE_INC_DIR = "${lib.getDev suitesparse}/include";
+    }
+    // lib.optionalAttrs withGsl {
+      CVXOPT_BUILD_GSL = "1";
+      CVXOPT_GSL_LIB_DIR = "${lib.getLib gsl}/lib";
+      CVXOPT_GSL_INC_DIR = "${lib.getDev gsl}/include";
+    }
+    // lib.optionalAttrs withGlpk {
+      CVXOPT_BUILD_GLPK = "1";
+      CVXOPT_GLPK_LIB_DIR = "${lib.getLib glpk}/lib";
+      CVXOPT_GLPK_INC_DIR = "${lib.getDev glpk}/include";
+    }
+    // lib.optionalAttrs withFftw {
+      CVXOPT_BUILD_FFTW = "1";
+      CVXOPT_FFTW_LIB_DIR = "${lib.getLib fftw}/lib";
+      CVXOPT_FFTW_INC_DIR = "${lib.getDev fftw}/include";
+    };
 
   nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [ "-s" "tests" ];
+  unittestFlagsArray = [
+    "-s"
+    "tests"
+  ];
 
   meta = with lib; {
     homepage = "https://cvxopt.org/";
diff --git a/pkgs/development/python-modules/cvxpy/default.nix b/pkgs/development/python-modules/cvxpy/default.nix
index 0d612e3d95a58..d6fce58eaa734 100644
--- a/pkgs/development/python-modules/cvxpy/default.nix
+++ b/pkgs/development/python-modules/cvxpy/default.nix
@@ -1,21 +1,21 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchpatch
-, clarabel
-, cvxopt
-, ecos
-, fetchPypi
-, numpy
-, osqp
-, pytestCheckHook
-, pythonOlder
-, scipy
-, scs
-, setuptools
-, wheel
-, pybind11
-, useOpenmp ? (!stdenv.isDarwin)
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  clarabel,
+  cvxopt,
+  ecos,
+  fetchPypi,
+  numpy,
+  osqp,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
+  scs,
+  setuptools,
+  wheel,
+  pybind11,
+  useOpenmp ? (!stdenv.isDarwin),
 }:
 
 buildPythonPackage rec {
@@ -30,16 +30,6 @@ buildPythonPackage rec {
     hash = "sha256-sbB4yMBZI60Sjn2BSwvhwzesBSYqeLdXqOb5V2SK2VM=";
   };
 
-  patches = [
-    # fix QP tests. remove on next update
-    # https://github.com/cvxpy/cvxpy/pull/2343
-    (fetchpatch {
-      name = "fix-QP-tests.patch";
-      url = "https://github.com/cvxpy/cvxpy/commit/4c8549b9820e64c1b06f5d71c5d3f36528dd4a76.patch";
-      hash = "sha256-43zjS1STEBaGgj1jEOlX3XzMsE4wjoKAk8ApJo98AzY=";
-    })
-  ];
-
   # we need to patch out numpy version caps from upstream
   postPatch = ''
     sed -i 's/\(numpy>=[0-9.]*\),<[0-9.]*;/\1;/g' pyproject.toml
@@ -61,9 +51,7 @@ buildPythonPackage rec {
     scs
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Required flags from https://github.com/cvxpy/cvxpy/releases/tag/v1.1.11
   preBuild = lib.optionalString useOpenmp ''
@@ -71,28 +59,26 @@ buildPythonPackage rec {
     export LDFLAGS="-lgomp"
   '';
 
-  pytestFlagsArray = [
-    "cvxpy"
-  ];
+  pytestFlagsArray = [ "cvxpy" ];
 
-  disabledTests = [
-   # Disable the slowest benchmarking tests, cuts test time in half
-    "test_tv_inpainting"
-    "test_diffcp_sdp_example"
-    "test_huber"
-    "test_partial_problem"
-    # https://github.com/cvxpy/cvxpy/issues/2174
-    "test_scipy_mi_time_limit_reached"
-  ] ++ lib.optionals stdenv.isAarch64 [
-    "test_ecos_bb_mi_lp_2" # https://github.com/cvxpy/cvxpy/issues/1241#issuecomment-780912155
-  ];
+  disabledTests =
+    [
+      # Disable the slowest benchmarking tests, cuts test time in half
+      "test_tv_inpainting"
+      "test_diffcp_sdp_example"
+      "test_huber"
+      "test_partial_problem"
+      # https://github.com/cvxpy/cvxpy/issues/2174
+      "test_scipy_mi_time_limit_reached"
+    ]
+    ++ lib.optionals stdenv.isAarch64 [
+      "test_ecos_bb_mi_lp_2" # https://github.com/cvxpy/cvxpy/issues/1241#issuecomment-780912155
+    ];
 
-  pythonImportsCheck = [
-    "cvxpy"
-  ];
+  pythonImportsCheck = [ "cvxpy" ];
 
   meta = with lib; {
-    description = "A domain-specific language for modeling convex optimization problems in Python";
+    description = "Domain-specific language for modeling convex optimization problems in Python";
     homepage = "https://www.cvxpy.org/";
     downloadPage = "https://github.com/cvxpy/cvxpy//releases";
     changelog = "https://github.com/cvxpy/cvxpy/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/cwcwidth/default.nix b/pkgs/development/python-modules/cwcwidth/default.nix
index 85d20fc6f464b..b01a4f7242711 100644
--- a/pkgs/development/python-modules/cwcwidth/default.nix
+++ b/pkgs/development/python-modules/cwcwidth/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, cython, pytestCheckHook, setuptools }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cython,
+  pytestCheckHook,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "cwcwidth";
@@ -10,7 +17,10 @@ buildPythonPackage rec {
     hash = "sha256-8Z0RoBSNSoys0GTJbpO8qM40FaGGroIEA49F4Qjbdrg=";
   };
 
-  nativeBuildInputs = [ cython setuptools ];
+  nativeBuildInputs = [
+    cython
+    setuptools
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
   preCheck = ''
diff --git a/pkgs/development/python-modules/cwl-upgrader/default.nix b/pkgs/development/python-modules/cwl-upgrader/default.nix
index d3f3978dc0b79..8e5e2d1c3d24d 100644
--- a/pkgs/development/python-modules/cwl-upgrader/default.nix
+++ b/pkgs/development/python-modules/cwl-upgrader/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mypy-extensions
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, ruamel-yaml
-, schema-salad
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mypy-extensions,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  ruamel-yaml,
+  schema-salad,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
       --replace '"schema_salad",' ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     mypy-extensions
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "cwlupgrader"
-  ];
+  pythonImportsCheck = [ "cwlupgrader" ];
 
   meta = with lib; {
     description = "Library to upgrade CWL syntax to a newer version";
diff --git a/pkgs/development/python-modules/cwlformat/default.nix b/pkgs/development/python-modules/cwlformat/default.nix
index 0703175d02752..2433203eda22d 100644
--- a/pkgs/development/python-modules/cwlformat/default.nix
+++ b/pkgs/development/python-modules/cwlformat/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pytestCheckHook
-, pythonOlder
-, ruamel-yaml
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pytestCheckHook,
+  pythonOlder,
+  ruamel-yaml,
 }:
 
 buildPythonPackage rec {
@@ -30,17 +31,11 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
-    ruamel-yaml
-  ];
+  propagatedBuildInputs = [ ruamel-yaml ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "cwlformat"
-  ];
+  pythonImportsCheck = [ "cwlformat" ];
 
   meta = with lib; {
     description = "Code formatter for CWL";
diff --git a/pkgs/development/python-modules/cx-freeze/default.nix b/pkgs/development/python-modules/cx-freeze/default.nix
index 1c147ddbb88b9..bc6ebb6820c88 100644
--- a/pkgs/development/python-modules/cx-freeze/default.nix
+++ b/pkgs/development/python-modules/cx-freeze/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, ncurses
-, importlib-metadata
-, setuptools
-, wheel
-, patchelf
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  ncurses,
+  importlib-metadata,
+  setuptools,
+  wheel,
+  patchelf,
 }:
 
 buildPythonPackage rec {
   pname = "cx-freeze";
-  version = "6.15.16";
+  version = "7.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
-    pname = "cx_Freeze";
+    pname = "cx_freeze";
     inherit version;
-    hash = "sha256-xjmRiG/ypTGfjw0HwDSaa74aZbXzIPi5JDiI5jyaSiI=";
+    hash = "sha256-M1wwutDj5lNlXyMJkzCEWL7cmXuvW3qZXoZB3rousoc=";
   };
 
   nativeBuildInputs = [
@@ -52,7 +53,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A set of scripts and modules for freezing Python scripts into executables";
+    description = "Set of scripts and modules for freezing Python scripts into executables";
     homepage = "https://marcelotduarte.github.io/cx_Freeze/";
     changelog = "https://github.com/marcelotduarte/cx_Freeze/releases/tag/${version}";
     license = licenses.psfl;
diff --git a/pkgs/development/python-modules/cx-oracle/default.nix b/pkgs/development/python-modules/cx-oracle/default.nix
index 040f762c9f21c..aa52a0695abb9 100644
--- a/pkgs/development/python-modules/cx-oracle/default.nix
+++ b/pkgs/development/python-modules/cx-oracle/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, odpic }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  odpic,
+}:
 
 buildPythonPackage rec {
   pname = "cx-oracle";
diff --git a/pkgs/development/python-modules/cxxfilt/default.nix b/pkgs/development/python-modules/cxxfilt/default.nix
index 2bf02c5642569..2d09a5006d4c5 100644
--- a/pkgs/development/python-modules/cxxfilt/default.nix
+++ b/pkgs/development/python-modules/cxxfilt/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, gcc-unwrapped
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  gcc-unwrapped,
 }:
 buildPythonPackage rec {
   pname = "cxxfilt";
@@ -14,19 +15,19 @@ buildPythonPackage rec {
     sha256 = "7df6464ba5e8efbf0d8974c0b2c78b32546676f06059a83515dbdfa559b34214";
   };
 
-  postPatch = let
-    libstdcpp = "${lib.getLib gcc-unwrapped}/lib/libstdc++${stdenv.hostPlatform.extensions.sharedLibrary}";
-  in ''
-    substituteInPlace cxxfilt/__init__.py \
-      --replace "find_any_library('stdc++', 'c++')" '"${libstdcpp}"'
-  '';
+  postPatch =
+    let
+      libstdcpp = "${lib.getLib gcc-unwrapped}/lib/libstdc++${stdenv.hostPlatform.extensions.sharedLibrary}";
+    in
+    ''
+      substituteInPlace cxxfilt/__init__.py \
+        --replace "find_any_library('stdc++', 'c++')" '"${libstdcpp}"'
+    '';
 
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "cxxfilt"
-  ];
+  pythonImportsCheck = [ "cxxfilt" ];
 
   meta = with lib; {
     description = "Demangling C++ symbols in Python / interface to abi::__cxa_demangle ";
diff --git a/pkgs/development/python-modules/cycler/default.nix b/pkgs/development/python-modules/cycler/default.nix
index d7bfe37562733..fae2ae30b3366 100644
--- a/pkgs/development/python-modules/cycler/default.nix
+++ b/pkgs/development/python-modules/cycler/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# tests
-, pytest-xdist
-, pytestCheckHook
+  # tests
+  pytest-xdist,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-5L0APSi/mJ85SuKCVz+c6Fn8zZNpRm6vCeBO0fpGKxg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytest-xdist
diff --git a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
index 10cd64f83e622..4de730f1ff996 100644
--- a/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
+++ b/pkgs/development/python-modules/cyclonedx-python-lib/default.nix
@@ -1,29 +1,29 @@
-{ lib
-, buildPythonPackage
-, ddt
-, fetchFromGitHub
-, importlib-metadata
-, jsonschema
-, license-expression
-, lxml
-, packageurl-python
-, py-serializable
-, pythonRelaxDepsHook
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, requirements-parser
-, sortedcontainers
-, setuptools
-, toml
-, types-setuptools
-, types-toml
-, xmldiff
+{
+  lib,
+  buildPythonPackage,
+  ddt,
+  fetchFromGitHub,
+  importlib-metadata,
+  jsonschema,
+  license-expression,
+  lxml,
+  packageurl-python,
+  py-serializable,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  requirements-parser,
+  sortedcontainers,
+  setuptools,
+  toml,
+  types-setuptools,
+  types-toml,
+  xmldiff,
 }:
 
 buildPythonPackage rec {
   pname = "cyclonedx-python-lib";
-  version = "6.4.4";
+  version = "7.4.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -32,15 +32,13 @@ buildPythonPackage rec {
     owner = "CycloneDX";
     repo = "cyclonedx-python-lib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-PNacp16WZHNblFyA117hSL87IKGMrW0OYNXCSoBoO8Q=";
+    hash = "sha256-ATeSMS8WaJS/2CaeNQgaK/6zyQBw07+6YYTZdhZPJug=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  build-system = [ poetry-core ];
+
 
-  propagatedBuildInputs = [
+  dependencies = [
     importlib-metadata
     license-expression
     packageurl-python
@@ -61,21 +59,15 @@ buildPythonPackage rec {
     xmldiff
   ];
 
-  pythonImportsCheck = [
-    "cyclonedx"
-  ];
+  pythonImportsCheck = [ "cyclonedx" ];
 
-  pythonRelaxDeps = [
-    "py-serializable"
-  ];
+  pythonRelaxDeps = [ "py-serializable" ];
 
   preCheck = ''
     export PYTHONPATH=tests''${PYTHONPATH+:$PYTHONPATH}
   '';
 
-  pytestFlagsArray = [
-    "tests/"
-  ];
+  pytestFlagsArray = [ "tests/" ];
 
   disabledTests = [
     # These tests require network access
diff --git a/pkgs/development/python-modules/cyclopts/default.nix b/pkgs/development/python-modules/cyclopts/default.nix
new file mode 100644
index 0000000000000..56ecdd68354e8
--- /dev/null
+++ b/pkgs/development/python-modules/cyclopts/default.nix
@@ -0,0 +1,64 @@
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  docstring-parser,
+  fetchFromGitHub,
+  importlib-metadata,
+  poetry-core,
+  poetry-dynamic-versioning,
+  pydantic,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  rich,
+  rich-rst,
+  typing-extensions,
+}:
+
+buildPythonPackage rec {
+  pname = "cyclopts";
+  version = "2.7.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "BrianPugh";
+    repo = "cyclopts";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-JnSWKQFPrD8wadgz/4Ulisy6Mjc264JHX3PMOX+msac=";
+  };
+
+  build-system = [
+    poetry-core
+    poetry-dynamic-versioning
+  ];
+
+  dependencies = [
+    attrs
+    docstring-parser
+    importlib-metadata
+    rich
+    rich-rst
+    typing-extensions
+  ];
+
+  nativeCheckInputs = [
+    pydantic
+    pytest-mock
+    pytestCheckHook
+    pyyaml
+  ];
+
+  pythonImportsCheck = [ "cyclopts" ];
+
+  meta = with lib; {
+    description = "Module to create CLIs based on Python type hints";
+    homepage = "https://github.com/BrianPugh/cyclopts";
+    changelog = "https://github.com/BrianPugh/cyclopts/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/cymem/default.nix b/pkgs/development/python-modules/cymem/default.nix
index 52e24928ec229..ef7db6848cbdd 100644
--- a/pkgs/development/python-modules/cymem/default.nix
+++ b/pkgs/development/python-modules/cymem/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, cython
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  cython,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     cython
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     # remove src module, so tests use the installed module instead
@@ -36,9 +35,7 @@ buildPythonPackage rec {
     rm -r ./cymem
   '';
 
-  pythonImportsCheck = [
-    "cymem"
-  ];
+  pythonImportsCheck = [ "cymem" ];
 
   meta = with lib; {
     description = "Cython memory pool for RAII-style memory management";
diff --git a/pkgs/development/python-modules/cypari2/default.nix b/pkgs/development/python-modules/cypari2/default.nix
index 025692de1f740..3910cdd34f25a 100644
--- a/pkgs/development/python-modules/cypari2/default.nix
+++ b/pkgs/development/python-modules/cypari2/default.nix
@@ -1,12 +1,16 @@
-{ lib
-, buildPythonPackage
-, python
-, fetchpatch
-, fetchPypi
-, pari
-, gmp
-, cython
-, cysignals
+{
+  lib,
+  buildPythonPackage,
+  python,
+  fetchpatch,
+  fetchPypi,
+  pari,
+  gmp,
+  cython,
+  cysignals,
+
+  # Reverse dependency
+  sage,
 }:
 
 buildPythonPackage rec {
@@ -35,13 +39,9 @@ buildPythonPackage rec {
     ${python.pythonOnBuildForHost.interpreter} setup.py build_ext --inplace
   '';
 
-  nativeBuildInputs = [
-    pari
-  ];
+  nativeBuildInputs = [ pari ];
 
-  buildInputs = [
-    gmp
-  ];
+  buildInputs = [ gmp ];
 
   propagatedBuildInputs = [
     cysignals
@@ -53,6 +53,10 @@ buildPythonPackage rec {
     make check
   '';
 
+  passthru.tests = {
+    inherit sage;
+  };
+
   meta = with lib; {
     description = "Cython bindings for PARI";
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/python-modules/cypherpunkpay/default.nix b/pkgs/development/python-modules/cypherpunkpay/default.nix
index 9bf5e8fcd85d2..8228274ee1712 100644
--- a/pkgs/development/python-modules/cypherpunkpay/default.nix
+++ b/pkgs/development/python-modules/cypherpunkpay/default.nix
@@ -1,26 +1,26 @@
-{ lib
-, stdenv
-, apscheduler
-, bitstring
-, buildPythonPackage
-, cffi
-, ecdsa
-, fetchFromGitHub
-, monero
-, poetry-core
-, pypng
-, pyqrcode
-, pyramid
-, pyramid-jinja2
-, pysocks
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
-, tzlocal
-, waitress
-, webtest
-, yoyo-migrations
+{
+  lib,
+  stdenv,
+  apscheduler,
+  bitstring,
+  buildPythonPackage,
+  cffi,
+  ecdsa,
+  fetchFromGitHub,
+  monero,
+  poetry-core,
+  pypng,
+  pyqrcode,
+  pyramid,
+  pyramid-jinja2,
+  pysocks,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  tzlocal,
+  waitress,
+  webtest,
+  yoyo-migrations,
 }:
 
 buildPythonPackage rec {
@@ -44,11 +44,11 @@ buildPythonPackage rec {
     "pypng"
     "tzlocal"
     "yoyo-migrations"
+    "waitress"
   ];
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -102,15 +102,16 @@ buildPythonPackage rec {
     "tests/acceptance/views_dummystore"
   ];
 
-  pythonImportsCheck = [
-    "cypherpunkpay"
-  ];
+  pythonImportsCheck = [ "cypherpunkpay" ];
 
   meta = with lib; {
     description = "Modern self-hosted software for accepting Bitcoin";
     homepage = "https://github.com/CypherpunkPay/CypherpunkPay";
     changelog = "https://github.com/CypherpunkPay/CypherpunkPay/releases/tag/v${version}";
-    license = with licenses; [ mit /* or */ unlicense ];
+    license = with licenses; [
+      mit # or
+      unlicense
+    ];
     maintainers = with maintainers; [ prusnak ];
   };
 }
diff --git a/pkgs/development/python-modules/cysignals/default.nix b/pkgs/development/python-modules/cysignals/default.nix
index 62cc3dd30d8af..9e90eaf38f19d 100644
--- a/pkgs/development/python-modules/cysignals/default.nix
+++ b/pkgs/development/python-modules/cysignals/default.nix
@@ -1,9 +1,14 @@
-{ lib
-, autoreconfHook
-, fetchPypi
-, buildPythonPackage
-, cython
-, pariSupport ? true, pari # for interfacing with the PARI/GP signal handler
+{
+  lib,
+  autoreconfHook,
+  fetchPypi,
+  buildPythonPackage,
+  cython,
+  pariSupport ? true,
+  pari, # for interfacing with the PARI/GP signal handler
+
+  # Reverse dependency
+  sage,
 }:
 
 assert pariSupport -> pari != null;
@@ -20,9 +25,7 @@ buildPythonPackage rec {
 
   # explicit check:
   # build/src/cysignals/implementation.c:27:2: error: #error "cysignals must be compiled without _FORTIFY_SOURCE"
-  hardeningDisable = [
-    "fortify"
-  ];
+  hardeningDisable = [ "fortify" ];
 
   # known failure: https://github.com/sagemath/cysignals/blob/582dbf6a7b0f9ade0abe7a7b8720b7fb32435c3c/testgdb.py#L5
   doCheck = false;
@@ -33,19 +36,23 @@ buildPythonPackage rec {
     export PATH="$out/bin:$PATH"
   '';
 
-  propagatedBuildInputs = [
-    cython
-  ] ++ lib.optionals pariSupport [
-    # When cysignals is built with pari, including cysignals into the
-    # buildInputs of another python package will cause cython to link against
-    # pari.
-    pari
-  ];
+  propagatedBuildInputs =
+    [ cython ]
+    ++ lib.optionals pariSupport [
+      # When cysignals is built with pari, including cysignals into the
+      # buildInputs of another python package will cause cython to link against
+      # pari.
+      pari
+    ];
 
   nativeBuildInputs = [ autoreconfHook ];
 
   enableParallelBuilding = true;
 
+  passthru.tests = {
+    inherit sage;
+  };
+
   meta = with lib; {
     description = "Interrupt and signal handling for Cython";
     mainProgram = "cysignals-CSI";
diff --git a/pkgs/development/python-modules/cython-test-exception-raiser/default.nix b/pkgs/development/python-modules/cython-test-exception-raiser/default.nix
index e6f3f8b451b36..66adf36686001 100644
--- a/pkgs/development/python-modules/cython-test-exception-raiser/default.nix
+++ b/pkgs/development/python-modules/cython-test-exception-raiser/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cython
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cython,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -24,15 +25,16 @@ buildPythonPackage rec {
     wheel
   ];
 
-  pythonImportsCheck = [
-    "cython_test_exception_raiser"
-  ];
+  pythonImportsCheck = [ "cython_test_exception_raiser" ];
 
   meta = with lib; {
     description = "Testing only. A cython simple extension which is used as helper for twisted/twisted Failure tests";
     homepage = "https://github.com/twisted/cython-test-exception-raiser";
     changelog = "https://github.com/twisted/cython-test-exception-raiser/blob/${src.rev}/CHANGELOG.rst";
-    license = with licenses; [ publicDomain mit ];
+    license = with licenses; [
+      publicDomain
+      mit
+    ];
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/cython/0.nix b/pkgs/development/python-modules/cython/0.nix
index e0b6c02d8accb..8dc7db31fe3f4 100644
--- a/pkgs/development/python-modules/cython/0.nix
+++ b/pkgs/development/python-modules/cython/0.nix
@@ -1,29 +1,36 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, setuptools
-, python
-, pkg-config
-, gdb
-, numpy
-, ncurses
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  setuptools,
+  python,
+  pkg-config,
+  gdb,
+  numpy,
+  ncurses,
 }:
 
 let
-  excludedTests = [ "reimport_from_subinterpreter" ]
+  excludedTests =
+    [ "reimport_from_subinterpreter" ]
     # cython's testsuite is not working very well with libc++
     # We are however optimistic about things outside of testsuite still working
-    ++ lib.optionals (stdenv.cc.isClang or false) [ "cpdef_extern_func" "libcpp_algo" ]
+    ++ 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
     ++ lib.optionals stdenv.isAarch64 [ "numpy_memoryview" ]
-    ++ lib.optionals stdenv.isi686 [ "future_division" "overflow_check_longlong" ]
-  ;
-
-in buildPythonPackage rec {
+    ++ lib.optionals stdenv.isi686 [
+      "future_division"
+      "overflow_check_longlong"
+    ];
+in
+buildPythonPackage rec {
   pname = "cython";
   version = "0.29.36";
   pyproject = true;
@@ -40,7 +47,9 @@ in buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    gdb numpy ncurses
+    gdb
+    numpy
+    ncurses
   ];
 
   LC_ALL = "en_US.UTF-8";
@@ -68,8 +77,11 @@ in buildPythonPackage rec {
     export HOME="$NIX_BUILD_TOP"
     ${python.interpreter} runtests.py -j$NIX_BUILD_CORES \
       --no-code-style \
-      ${lib.optionalString (builtins.length excludedTests != 0)
-        ''--exclude="(${builtins.concatStringsSep "|" excludedTests})"''}
+      ${
+        lib.optionalString (
+          builtins.length excludedTests != 0
+        ) ''--exclude="(${builtins.concatStringsSep "|" excludedTests})"''
+      }
   '';
 
   # https://github.com/cython/cython/issues/2785
@@ -83,7 +95,7 @@ in buildPythonPackage rec {
 
   meta = {
     changelog = "https://github.com/cython/cython/blob/${version}/CHANGES.rst";
-    description = "An optimising static compiler for both the Python programming language and the extended Cython programming language";
+    description = "Optimising static compiler for both the Python programming language and the extended Cython programming language";
     homepage = "https://cython.org";
     license = lib.licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/cython/default.nix b/pkgs/development/python-modules/cython/default.nix
index e73c09f40b019..1efad920d3447 100644
--- a/pkgs/development/python-modules/cython/default.nix
+++ b/pkgs/development/python-modules/cython/default.nix
@@ -1,28 +1,38 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, python
-, pkg-config
-, gdb
-, numpy
-, ncurses
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  python,
+  pkg-config,
+  gdb,
+  numpy,
+  ncurses,
+
+  # Reverse dependency
+  sage,
 }:
 
 let
-  excludedTests = [ "reimport_from_subinterpreter" ]
+  excludedTests =
+    [ "reimport_from_subinterpreter" ]
     # cython's testsuite is not working very well with libc++
     # We are however optimistic about things outside of testsuite still working
-    ++ lib.optionals (stdenv.cc.isClang or false) [ "cpdef_extern_func" "libcpp_algo" ]
+    ++ 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
     ++ lib.optionals stdenv.isAarch64 [ "numpy_memoryview" ]
-    ++ lib.optionals stdenv.isi686 [ "future_division" "overflow_check_longlong" ]
-  ;
-
-in buildPythonPackage rec {
+    ++ lib.optionals stdenv.isi686 [
+      "future_division"
+      "overflow_check_longlong"
+    ];
+in
+buildPythonPackage rec {
   pname = "cython";
   version = "3.0.10";
   pyproject = true;
@@ -39,7 +49,9 @@ in buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    gdb numpy ncurses
+    gdb
+    numpy
+    ncurses
   ];
 
   env.LC_ALL = "en_US.UTF-8";
@@ -48,8 +60,11 @@ in buildPythonPackage rec {
     export HOME="$NIX_BUILD_TOP"
     ${python.interpreter} runtests.py -j$NIX_BUILD_CORES \
       --no-code-style \
-      ${lib.optionalString (builtins.length excludedTests != 0)
-        ''--exclude="(${builtins.concatStringsSep "|" excludedTests})"''}
+      ${
+        lib.optionalString (
+          builtins.length excludedTests != 0
+        ) ''--exclude="(${builtins.concatStringsSep "|" excludedTests})"''
+      }
   '';
 
   # https://github.com/cython/cython/issues/2785
@@ -57,13 +72,17 @@ in buildPythonPackage rec {
   doCheck = false;
   # doCheck = !stdenv.isDarwin;
 
+  passthru.tests = {
+    inherit sage;
+  };
+
   # force regeneration of generated code in source distributions
   # https://github.com/cython/cython/issues/5089
   setupHook = ./setup-hook.sh;
 
   meta = {
     changelog = "https://github.com/cython/cython/blob/${version}/CHANGES.rst";
-    description = "An optimising static compiler for both the Python programming language and the extended Cython programming language";
+    description = "Optimising static compiler for both the Python programming language and the extended Cython programming language";
     homepage = "https://cython.org";
     license = lib.licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/cytoolz/default.nix b/pkgs/development/python-modules/cytoolz/default.nix
index ddb7b7df0d5e2..befb71963c792 100644
--- a/pkgs/development/python-modules/cytoolz/default.nix
+++ b/pkgs/development/python-modules/cytoolz/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPyPy
-, pytestCheckHook
-, cython
-, setuptools
-, toolz
-, python
-, isPy27
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  pytestCheckHook,
+  cython,
+  setuptools,
+  toolz,
+  python,
+  isPy27,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/dacite/default.nix b/pkgs/development/python-modules/dacite/default.nix
index fca71b11a0e0d..c6c5e01df2132 100644
--- a/pkgs/development/python-modules/dacite/default.nix
+++ b/pkgs/development/python-modules/dacite/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,17 +25,11 @@ buildPythonPackage rec {
       --replace "--benchmark-autosave --benchmark-json=benchmark.json" ""
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dacite"
-  ];
+  pythonImportsCheck = [ "dacite" ];
 
-  disabledTestPaths = [
-    "tests/performance"
-  ];
+  disabledTestPaths = [ "tests/performance" ];
 
   meta = with lib; {
     description = "Python helper to create data classes from dictionaries";
diff --git a/pkgs/development/python-modules/daemonize/default.nix b/pkgs/development/python-modules/daemonize/default.nix
index bdff79e29aa7a..c71b3be587019 100644
--- a/pkgs/development/python-modules/daemonize/default.nix
+++ b/pkgs/development/python-modules/daemonize/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -18,5 +19,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/thesharp/daemonize";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/daemonocle/default.nix b/pkgs/development/python-modules/daemonocle/default.nix
index 5acec6393632e..5e236996bc200 100644
--- a/pkgs/development/python-modules/daemonocle/default.nix
+++ b/pkgs/development/python-modules/daemonocle/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, click
-, psutil
-, pytestCheckHook
-, lsof
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  click,
+  psutil,
+  pytestCheckHook,
+  lsof,
 }:
 
 buildPythonPackage rec {
@@ -40,12 +41,10 @@ buildPythonPackage rec {
     "test_exec_worker"
   ];
 
-  pythonImportsCheck = [
-    "daemonocle"
-  ];
+  pythonImportsCheck = [ "daemonocle" ];
 
   meta = with lib; {
-    description = "A Python library for creating super fancy Unix daemons";
+    description = "Python library for creating super fancy Unix daemons";
     longDescription = ''
       daemonocle is a library for creating your own Unix-style daemons
       written in Python.  It solves many problems that other daemon
diff --git a/pkgs/development/python-modules/daff/default.nix b/pkgs/development/python-modules/daff/default.nix
index 59c2e1bfc38b6..2e4841e70c171 100644
--- a/pkgs/development/python-modules/daff/default.nix
+++ b/pkgs/development/python-modules/daff/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
   # there are no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "daff"
-  ];
+  pythonImportsCheck = [ "daff" ];
 
   meta = with lib; {
     description = "Library for comparing tables, producing a summary of their differences, and using such a summary as a patch file";
diff --git a/pkgs/development/python-modules/dahlia/default.nix b/pkgs/development/python-modules/dahlia/default.nix
new file mode 100644
index 0000000000000..3cb8900d3acb0
--- /dev/null
+++ b/pkgs/development/python-modules/dahlia/default.nix
@@ -0,0 +1,31 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+}:
+
+buildPythonPackage rec {
+  pname = "dahlia";
+  version = "3.0.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "dahlia-lib";
+    repo = "dahlia";
+    rev = "refs/tags/${version}";
+    hash = "sha256-t8m/7TSzVvETvn3Jar29jCh55Ti+B0NA8Az/8GHwQAg=";
+  };
+
+  build-system = [ poetry-core ];
+  pythonImportsCheck = [ "dahlia" ];
+
+  meta = with lib; {
+    changelog = "https://github.com/dahlia-lib/dahlia/blob/${src.rev}/CHANGELOG.md";
+    description = "Simple text formatting package, inspired by the game Minecraft";
+    license = licenses.mit;
+    homepage = "https://github.com/dahlia-lib/dahlia";
+    maintainers = with maintainers; [ sigmanificient ];
+    mainProgram = "dahlia";
+  };
+}
diff --git a/pkgs/development/python-modules/daiquiri/default.nix b/pkgs/development/python-modules/daiquiri/default.nix
index c3e5436de9699..735131d935f7b 100644
--- a/pkgs/development/python-modules/daiquiri/default.nix
+++ b/pkgs/development/python-modules/daiquiri/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, python-json-logger
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  python-json-logger,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    python-json-logger
-  ];
+  propagatedBuildInputs = [ python-json-logger ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "daiquiri" ];
 
diff --git a/pkgs/development/python-modules/dalle-mini/default.nix b/pkgs/development/python-modules/dalle-mini/default.nix
index 0c768ba5dbe14..2ea9b0c2d0c11 100644
--- a/pkgs/development/python-modules/dalle-mini/default.nix
+++ b/pkgs/development/python-modules/dalle-mini/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, einops
-, emoji
-, flax
-, ftfy
-, jax
-, jaxlib
-, pillow
-, transformers
-, unidecode
-, wandb
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  einops,
+  emoji,
+  flax,
+  ftfy,
+  jax,
+  jaxlib,
+  pillow,
+  transformers,
+  unidecode,
+  wandb,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/daphne/default.nix b/pkgs/development/python-modules/daphne/default.nix
index 1cb0a1998493e..0965dacd42326 100644
--- a/pkgs/development/python-modules/daphne/default.nix
+++ b/pkgs/development/python-modules/daphne/default.nix
@@ -1,32 +1,41 @@
-{ lib
-, stdenv
-, asgiref
-, autobahn
-, buildPythonPackage
-, django
-, fetchFromGitHub
-, hypothesis
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, twisted
+{
+  lib,
+  stdenv,
+  asgiref,
+  autobahn,
+  buildPythonPackage,
+  django,
+  fetchFromGitHub,
+  hypothesis,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  twisted,
 }:
 
 buildPythonPackage rec {
   pname = "daphne";
-  version = "4.0.0";
-  format = "setuptools";
+  version = "4.1.2";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "django";
-    repo = pname;
-    rev = version;
-    hash = "sha256-vPMrmC2B0Pcvk8Y1FsJ4PXnzIMtPod7lL2u0IYNVUxc=";
+    repo = "daphne";
+    rev = "refs/tags/${version}";
+    hash = "sha256-RAK2CaKKVmVIv1MBK+9xyADOrHq664MQOry4KaGTNCw=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace-fail "pytest-runner" ""
+  '';
+
+  build-system = [ setuptools ];
+
+  dependencies = [
     asgiref
     autobahn
     twisted
@@ -39,23 +48,17 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "pytest-runner" ""
-  '';
-
   # Most tests fail on darwin
   doCheck = !stdenv.isDarwin;
 
-  pythonImportsCheck = [
-    "daphne"
-  ];
+  pythonImportsCheck = [ "daphne" ];
 
   meta = with lib; {
     description = "Django ASGI (HTTP/WebSocket) server";
-    mainProgram = "daphne";
     homepage = "https://github.com/django/daphne";
+    changelog = "https://github.com/django/daphne/blob/${version}/CHANGELOG.txt";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
+    mainProgram = "daphne";
   };
 }
diff --git a/pkgs/development/python-modules/daqp/default.nix b/pkgs/development/python-modules/daqp/default.nix
index e5ae5e62be901..4497d546714df 100644
--- a/pkgs/development/python-modules/daqp/default.nix
+++ b/pkgs/development/python-modules/daqp/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, unittestCheckHook
-, cython_0
-, setuptools
-, wheel
-, numpy
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  unittestCheckHook,
+  cython_0,
+  setuptools,
+  wheel,
+  numpy,
 }:
 buildPythonPackage rec {
   pname = "daqp";
@@ -28,7 +29,13 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [ "-s" "test" "-p" "'*.py'" "-v" ];
+  unittestFlagsArray = [
+    "-s"
+    "test"
+    "-p"
+    "'*.py'"
+    "-v"
+  ];
 
   nativeBuildInputs = [
     cython_0
@@ -36,14 +43,12 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   pythonImportsCheck = [ "daqp" ];
 
   meta = with lib; {
-    description = "A dual active-set algorithm for convex quadratic programming";
+    description = "Dual active-set algorithm for convex quadratic programming";
     homepage = "https://github.com/darnstrom/daqp";
     license = licenses.mit;
     maintainers = with maintainers; [ renesat ];
diff --git a/pkgs/development/python-modules/darkdetect/default.nix b/pkgs/development/python-modules/darkdetect/default.nix
index 28e3c141a1eee..e8dfaf086b963 100644
--- a/pkgs/development/python-modules/darkdetect/default.nix
+++ b/pkgs/development/python-modules/darkdetect/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, stdenv
-
-, glib
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  stdenv,
+
+  glib,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
     hash = "sha256-OOINgrgjSLr3L07E9zf1+mlTPr+7ZlgN3CfkWE8+LoE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "darkdetect"
-  ];
+  pythonImportsCheck = [ "darkdetect" ];
 
   postPatch = lib.optionalString (stdenv.isLinux) ''
     substituteInPlace darkdetect/_linux_detect.py \
diff --git a/pkgs/development/python-modules/dasbus/default.nix b/pkgs/development/python-modules/dasbus/default.nix
index dceb2e74ca86b..a1bcb45202546 100644
--- a/pkgs/development/python-modules/dasbus/default.nix
+++ b/pkgs/development/python-modules/dasbus/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pygobject3, dbus, hatchling, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pygobject3,
+  dbus,
+  hatchling,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "dasbus";
@@ -14,7 +22,10 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ hatchling ];
   propagatedBuildInputs = [ pygobject3 ];
-  nativeCheckInputs = [ dbus pytestCheckHook ];
+  nativeCheckInputs = [
+    dbus
+    pytestCheckHook
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/rhinstaller/dasbus";
diff --git a/pkgs/development/python-modules/dash-bootstrap-components/default.nix b/pkgs/development/python-modules/dash-bootstrap-components/default.nix
new file mode 100644
index 0000000000000..9e6cfa1daaead
--- /dev/null
+++ b/pkgs/development/python-modules/dash-bootstrap-components/default.nix
@@ -0,0 +1,41 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  dash,
+  setuptools,
+  pythonOlder,
+}:
+
+buildPythonPackage rec {
+  pname = "dash-bootstrap-components";
+  version = "1.6.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "facultyai";
+    repo = "dash-bootstrap-components";
+    rev = "refs/tags/${version}";
+    hash = "sha256-6tx7rOB5FVj44NbTznyZd1Q0HOc8QdxiZOhja5kgpAE=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [ dash ];
+
+  # Tests a additional requirements
+  doCheck = false;
+
+  # Circular import
+  # pythonImportsCheck = [ "dash_bootstrap_components" ];
+
+  meta = with lib; {
+    description = "Bootstrap components for Plotly Dash";
+    homepage = "https://github.com/facultyai/dash-bootstrap-components";
+    changelog = "https://github.com/facultyai/dash-bootstrap-components/releases/tag/${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dash-core-components/default.nix b/pkgs/development/python-modules/dash-core-components/default.nix
index 109facaff4e5e..9d15db47e8bab 100644
--- a/pkgs/development/python-modules/dash-core-components/default.nix
+++ b/pkgs/development/python-modules/dash-core-components/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A dash component starter pack";
+    description = "Dash component starter pack";
     homepage = "https://dash.plot.ly/dash-core-components";
     license = licenses.mit;
     maintainers = [ maintainers.antoinerg ];
diff --git a/pkgs/development/python-modules/dash-html-components/default.nix b/pkgs/development/python-modules/dash-html-components/default.nix
index 9d7f7d4a54ba6..968a6f5bd6151 100644
--- a/pkgs/development/python-modules/dash-html-components/default.nix
+++ b/pkgs/development/python-modules/dash-html-components/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/dash-renderer/default.nix b/pkgs/development/python-modules/dash-renderer/default.nix
index bc489ff8f96c1..46936194b4472 100644
--- a/pkgs/development/python-modules/dash-renderer/default.nix
+++ b/pkgs/development/python-modules/dash-renderer/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/dash-table/default.nix b/pkgs/development/python-modules/dash-table/default.nix
index b40602585ae5b..717ed9acd7d62 100644
--- a/pkgs/development/python-modules/dash-table/default.nix
+++ b/pkgs/development/python-modules/dash-table/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A First-Class Interactive DataTable for Dash";
+    description = "First-Class Interactive DataTable for Dash";
     homepage = "https://dash.plot.ly/datatable";
     license = licenses.mit;
     maintainers = [ maintainers.antoinerg ];
diff --git a/pkgs/development/python-modules/dash/default.nix b/pkgs/development/python-modules/dash/default.nix
index 89601f3f482d5..125c25d8a6b59 100644
--- a/pkgs/development/python-modules/dash/default.nix
+++ b/pkgs/development/python-modules/dash/default.nix
@@ -1,42 +1,43 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-
-, setuptools
-, nodejs
-, yarn
-, fixup-yarn-lock
-, fetchYarnDeps
-
-, flask
-, werkzeug
-, plotly
-, dash-html-components
-, dash-core-components
-, dash-table
-, importlib-metadata
-, typing-extensions
-, requests
-, retrying
-, nest-asyncio
-
-, celery
-, redis
-, diskcache
-, multiprocess
-, psutil
-, flask-compress
-
-, pytestCheckHook
-, pytest-mock
-, mock
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+
+  setuptools,
+  nodejs,
+  yarn,
+  fixup-yarn-lock,
+  fetchYarnDeps,
+
+  flask,
+  werkzeug,
+  plotly,
+  dash-html-components,
+  dash-core-components,
+  dash-table,
+  importlib-metadata,
+  typing-extensions,
+  requests,
+  retrying,
+  nest-asyncio,
+
+  celery,
+  redis,
+  diskcache,
+  multiprocess,
+  psutil,
+  flask-compress,
+
+  pytestCheckHook,
+  pytest-mock,
+  mock,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
   pname = "dash";
-  version = "2.16.1";
+  version = "2.17.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -45,7 +46,7 @@ buildPythonPackage rec {
     owner = "plotly";
     repo = "dash";
     rev = "refs/tags/v${version}";
-    hash = "sha256-IPyGQXrC2FTTSIC4IFGwKTceyzPYAe4jwDoO5C9YeF0=";
+    hash = "sha256-51/nMnXUhb+hTL4xS9x4urI+2eENo/8sEKtk/kt6xTk=";
   };
 
   nativeBuildInputs = [
@@ -102,9 +103,7 @@ buildPythonPackage rec {
       multiprocess
       psutil
     ];
-    compress = [
-      flask-compress
-    ];
+    compress = [ flask-compress ];
   };
 
   nativeCheckInputs = [
@@ -127,6 +126,9 @@ buildPythonPackage rec {
     description = "Python framework for building analytical web applications";
     homepage = "https://dash.plot.ly/";
     license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ antoinerg tomasajt ];
+    maintainers = with lib.maintainers; [
+      antoinerg
+      tomasajt
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/dashing/default.nix b/pkgs/development/python-modules/dashing/default.nix
index 9caa56a87649a..7382adf521b59 100644
--- a/pkgs/development/python-modules/dashing/default.nix
+++ b/pkgs/development/python-modules/dashing/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, blessed
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  blessed,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-JRRgjg8pp3Xb0bERFWEhnOg9U8+kuqL+QQH6uE/Vbxs=";
   };
 
-  propagatedBuildInputs = [
-    blessed
-  ];
+  propagatedBuildInputs = [ blessed ];
 
   meta = with lib; {
     homepage = "https://github.com/FedericoCeratto/dashing";
diff --git a/pkgs/development/python-modules/dask-awkward/default.nix b/pkgs/development/python-modules/dask-awkward/default.nix
index e24b06a23b68c..09d4749c09786 100644
--- a/pkgs/development/python-modules/dask-awkward/default.nix
+++ b/pkgs/development/python-modules/dask-awkward/default.nix
@@ -1,26 +1,26 @@
-{ lib
-, awkward
-, buildPythonPackage
-, cachetools
-, dask
-, dask-histogram
-, distributed
-, fetchFromGitHub
-, hatch-vcs
-, hatchling
-, hist
-, pandas
-, pyarrow
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, typing-extensions
-, uproot
+{
+  lib,
+  awkward,
+  buildPythonPackage,
+  cachetools,
+  dask,
+  dask-histogram,
+  distributed,
+  fetchFromGitHub,
+  hatch-vcs,
+  hatchling,
+  hist,
+  pandas,
+  pyarrow,
+  pytestCheckHook,
+  pythonOlder,
+  typing-extensions,
+  uproot,
 }:
 
 buildPythonPackage rec {
   pname = "dask-awkward";
-  version = "2024.3.0";
+  version = "2024.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -29,20 +29,17 @@ buildPythonPackage rec {
     owner = "dask-contrib";
     repo = "dask-awkward";
     rev = "refs/tags/${version}";
-    hash = "sha256-Lkbp/XrDHOekMpT71pbxtuozgzU9iiGF2GJZ+tuV/yM=";
+    hash = "sha256-m/KvPo4IGn19sA5RcA/+OhLMCDBU+9BbMQtK3gHOoEc=";
   };
 
-  pythonRelaxDeps = [
-    "awkward"
-  ];
+  pythonRelaxDeps = [ "awkward" ];
 
-  nativeBuildInputs = [
+  build-system = [
     hatch-vcs
     hatchling
-    pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     awkward
     cachetools
     dask
@@ -50,9 +47,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    io = [
-      pyarrow
-    ];
+    io = [ pyarrow ];
   };
 
   checkInputs = [
@@ -64,9 +59,7 @@ buildPythonPackage rec {
     uproot
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "dask_awkward"
-  ];
+  pythonImportsCheck = [ "dask_awkward" ];
 
   disabledTests = [
     # Tests require network access
@@ -77,11 +70,13 @@ buildPythonPackage rec {
     "test_basic_root_works"
   ];
 
-  meta = with lib; {
+  __darwinAllowLocalNetworking = true;
+
+  meta = {
     description = "Native Dask collection for awkward arrays, and the library to use it";
     homepage = "https://github.com/dask-contrib/dask-awkward";
     changelog = "https://github.com/dask-contrib/dask-awkward/releases/tag/${version}";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ veprbl ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/python-modules/dask-expr/default.nix b/pkgs/development/python-modules/dask-expr/default.nix
index 68dca5fe42fe0..e5e4a13420517 100644
--- a/pkgs/development/python-modules/dask-expr/default.nix
+++ b/pkgs/development/python-modules/dask-expr/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "dask-expr";
-  version = "1.0.12";
+  version = "1.1.5";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "dask";
     repo = "dask-expr";
     rev = "refs/tags/v${version}";
-    hash = "sha256-B/BkLOZhvUyjinaFKp0ecUfzvLb5S90q+YHmJwS6WSQ=";
+    hash = "sha256-ON2Fyyq5fa0TgS28v6FAbR6MpI1k8EOS8HWchfZyT+g=";
   };
 
   postPatch = ''
@@ -32,13 +32,13 @@ buildPythonPackage rec {
       --replace-fail "versioneer[toml]==0.28" "versioneer[toml]"
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     versioneer
     wheel
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     dask
     pandas
     pyarrow
@@ -51,10 +51,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  meta = with lib; {
-    description = "";
+  __darwinAllowLocalNetworking = true;
+
+  meta = {
+    description = "Rewrite of Dask DataFrame that includes query optimization and generally improved organization";
     homepage = "https://github.com/dask/dask-expr";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ GaetanLepage ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
   };
 }
diff --git a/pkgs/development/python-modules/dask-gateway-server/default.nix b/pkgs/development/python-modules/dask-gateway-server/default.nix
index 98e955894f2ca..9d90d292ea7a6 100644
--- a/pkgs/development/python-modules/dask-gateway-server/default.nix
+++ b/pkgs/development/python-modules/dask-gateway-server/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, colorlog
-, cryptography
-, fetchFromGitHub
-, go
-, pykerberos
-, pythonOlder
-, skein
-, sqlalchemy
-, traitlets
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  colorlog,
+  cryptography,
+  fetchFromGitHub,
+  go,
+  pykerberos,
+  pythonOlder,
+  skein,
+  sqlalchemy,
+  traitlets,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
 
   sourceRoot = "${src.name}/${pname}";
 
-  nativeBuildInputs = [
-    go
-  ];
+  nativeBuildInputs = [ go ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -40,15 +39,9 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    kerberos = [
-      pykerberos
-    ];
-    jobqueue = [
-      sqlalchemy
-    ];
-    local = [
-      sqlalchemy
-    ];
+    kerberos = [ pykerberos ];
+    jobqueue = [ sqlalchemy ];
+    local = [ sqlalchemy ];
     yarn = [
       skein
       sqlalchemy
@@ -62,12 +55,10 @@ buildPythonPackage rec {
   # Tests requires cluster for testing
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dask_gateway_server"
-  ];
+  pythonImportsCheck = [ "dask_gateway_server" ];
 
   meta = with lib; {
-    description = "A multi-tenant server for securely deploying and managing multiple Dask clusters";
+    description = "Multi-tenant server for securely deploying and managing multiple Dask clusters";
     homepage = "https://gateway.dask.org/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/dask-gateway/default.nix b/pkgs/development/python-modules/dask-gateway/default.nix
index 270999b55070f..79a1d54f4dc70 100644
--- a/pkgs/development/python-modules/dask-gateway/default.nix
+++ b/pkgs/development/python-modules/dask-gateway/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, aiohttp
-, dask
-, distributed
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  aiohttp,
+  dask,
+  distributed,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -36,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "dask_gateway" ];
 
   meta = with lib; {
-    description = "A client library for interacting with a dask-gateway server";
+    description = "Client library for interacting with a dask-gateway server";
     homepage = "https://gateway.dask.org/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/dask-glm/default.nix b/pkgs/development/python-modules/dask-glm/default.nix
index dd5cfe0d29811..ec4c90b5de919 100644
--- a/pkgs/development/python-modules/dask-glm/default.nix
+++ b/pkgs/development/python-modules/dask-glm/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, cloudpickle
-, dask
-, distributed
-, fetchPypi
-, multipledispatch
-, pytestCheckHook
-, pythonOlder
-, scikit-learn
-, scipy
-, setuptools-scm
-, sparse
+{
+  lib,
+  buildPythonPackage,
+  cloudpickle,
+  dask,
+  distributed,
+  fetchPypi,
+  multipledispatch,
+  pytestCheckHook,
+  pythonOlder,
+  scikit-learn,
+  scipy,
+  setuptools-scm,
+  sparse,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-yUelZoZmmKAdeZeK5zIzy16DitXq1ghRQ1gsXpMLmko=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     cloudpickle
@@ -43,9 +42,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "dask_glm"
-  ];
+  pythonImportsCheck = [ "dask_glm" ];
 
   disabledTestPaths = [
     # Circular dependency with dask-ml
@@ -59,6 +56,8 @@ buildPythonPackage rec {
     "test_determinism_distributed"
   ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     description = "Generalized Linear Models with Dask";
     homepage = "https://github.com/dask/dask-glm/";
diff --git a/pkgs/development/python-modules/dask-histogram/default.nix b/pkgs/development/python-modules/dask-histogram/default.nix
index a1a7c64197173..26ca90ab020f5 100644
--- a/pkgs/development/python-modules/dask-histogram/default.nix
+++ b/pkgs/development/python-modules/dask-histogram/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, boost-histogram
-, dask
-, hatchling
-, hatch-vcs
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  boost-histogram,
+  dask,
+  hatchling,
+  hatch-vcs,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,13 +31,9 @@ buildPythonPackage rec {
     dask
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dask_histogram"
-  ];
+  pythonImportsCheck = [ "dask_histogram" ];
 
   meta = with lib; {
     description = "Histograms with task scheduling";
diff --git a/pkgs/development/python-modules/dask-image/default.nix b/pkgs/development/python-modules/dask-image/default.nix
index 92c0e9074603f..2a181fa66c156 100644
--- a/pkgs/development/python-modules/dask-image/default.nix
+++ b/pkgs/development/python-modules/dask-image/default.nix
@@ -1,32 +1,43 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, dask
-, fetchPypi
-, numpy
-, pims
-, pytestCheckHook
-, pythonOlder
-, scikit-image
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  dask,
+  numpy,
+  scipy,
+  pandas,
+  pims,
+  pytestCheckHook,
+  scikit-image,
 }:
 
 buildPythonPackage rec {
   pname = "dask-image";
-  version = "2023.8.1";
-  format = "setuptools";
+  version = "2024.5.3";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.9";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-XpqJhbBSehtZQsan50Tg5X0mTiIscFjwW664HDdNBLY=";
+  src = fetchFromGitHub {
+    owner = "dask";
+    repo = "dask-image";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-kXCAqJ2Zgo/2Khvo2YcK+n4oGM219GyQ2Hsq9re1Lac=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  dependencies = [
     dask
     numpy
     scipy
+    pandas
     pims
   ];
 
@@ -35,19 +46,12 @@ buildPythonPackage rec {
     scikit-image
   ];
 
-  postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace "--flake8" ""
-  '';
-
-  pythonImportsCheck = [
-    "dask_image"
-  ];
+  pythonImportsCheck = [ "dask_image" ];
 
-  meta = with lib; {
+  meta = {
     description = "Distributed image processing";
     homepage = "https://github.com/dask/dask-image";
-    license = licenses.bsdOriginal;
-    maintainers = with maintainers; [ ];
+    license = lib.licenses.bsdOriginal;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
   };
 }
diff --git a/pkgs/development/python-modules/dask-jobqueue/default.nix b/pkgs/development/python-modules/dask-jobqueue/default.nix
index dc668ea2639ab..de99d37cfb8f0 100644
--- a/pkgs/development/python-modules/dask-jobqueue/default.nix
+++ b/pkgs/development/python-modules/dask-jobqueue/default.nix
@@ -1,14 +1,16 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, cryptography
-, dask
-, distributed
-, docrep
-, fetchPypi
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  cryptography,
+  dask,
+  distributed,
+  docrep,
+  fetchPypi,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -16,7 +18,8 @@ buildPythonPackage rec {
   version = "0.8.5";
   format = "setuptools";
 
-  disabled = pythonOlder "3.8";
+  # Python 3.12 support should be added in 0.8.6
+  disabled = pythonOlder "3.8" || pythonAtLeast "3.12";
 
   src = fetchPypi {
     inherit pname version;
@@ -73,9 +76,7 @@ buildPythonPackage rec {
     "test_wrong_parameter_error"
   ];
 
-  pythonImportsCheck = [
-    "dask_jobqueue"
-  ];
+  pythonImportsCheck = [ "dask_jobqueue" ];
 
   meta = with lib; {
     broken = stdenv.isDarwin;
diff --git a/pkgs/development/python-modules/dask-ml/default.nix b/pkgs/development/python-modules/dask-ml/default.nix
index 3cb7ed9618b15..2f6ffeff4ecd7 100644
--- a/pkgs/development/python-modules/dask-ml/default.nix
+++ b/pkgs/development/python-modules/dask-ml/default.nix
@@ -1,37 +1,48 @@
-{ lib
-, buildPythonPackage
-, dask
-, dask-glm
-, distributed
-, fetchPypi
-, multipledispatch
-, numba
-, numpy
-, packaging
-, pandas
-, pythonOlder
-, scikit-learn
-, scipy
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  hatch-vcs,
+  hatchling,
+  setuptools-scm,
+  dask,
+  dask-expr,
+  dask-glm,
+  distributed,
+  multipledispatch,
+  numba,
+  numpy,
+  packaging,
+  pandas,
+  scikit-learn,
+  scipy,
+  pytest-mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "dask-ml";
-  version = "2023.3.24";
-  format = "setuptools";
+  version = "2024.4.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-lsCQ220yg2U24/Ccpk3rWZ6GRYeqjj1NLGtK9YhzMwc=";
+  src = fetchFromGitHub {
+    owner = "dask";
+    repo = "dask-ml";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ZiBpCk3b4Tk0Hwb4uapJLEx+Nb/qHFROCnkBTNGDzoU=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
+    hatch-vcs
+    hatchling
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    dask-expr
     dask-glm
     distributed
     multipledispatch
@@ -41,11 +52,7 @@ buildPythonPackage rec {
     pandas
     scikit-learn
     scipy
-  ] ++ dask.optional-dependencies.array
-    ++ dask.optional-dependencies.dataframe;
-
-  # has non-standard build from source, and pypi doesn't include tests
-  doCheck = false;
+  ] ++ dask.optional-dependencies.array ++ dask.optional-dependencies.dataframe;
 
   pythonImportsCheck = [
     "dask_ml"
@@ -54,10 +61,17 @@ buildPythonPackage rec {
     "dask_ml.utils"
   ];
 
+  nativeCheckInputs = [
+    pytest-mock
+    pytestCheckHook
+  ];
+
+  __darwinAllowLocalNetworking = true;
+
   meta = with lib; {
     description = "Scalable Machine Learn with Dask";
     homepage = "https://github.com/dask/dask-ml";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ GaetanLepage ];
   };
 }
diff --git a/pkgs/development/python-modules/dask-mpi/default.nix b/pkgs/development/python-modules/dask-mpi/default.nix
index ea9ff170908c9..2bd7d06003c94 100644
--- a/pkgs/development/python-modules/dask-mpi/default.nix
+++ b/pkgs/development/python-modules/dask-mpi/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, dask
-, distributed
-, mpi4py
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  dask,
+  distributed,
+  mpi4py,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
   # Hardcoded mpirun path in tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dask_mpi"
-  ];
+  pythonImportsCheck = [ "dask_mpi" ];
 
   meta = with lib; {
     description = "Deploy Dask using mpi4py";
diff --git a/pkgs/development/python-modules/dask-yarn/default.nix b/pkgs/development/python-modules/dask-yarn/default.nix
index acea511b24952..8d60496d6a155 100644
--- a/pkgs/development/python-modules/dask-yarn/default.nix
+++ b/pkgs/development/python-modules/dask-yarn/default.nix
@@ -1,20 +1,23 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, dask
-, distributed
-, fetchFromGitHub
-, fetchpatch
-, grpcio
-, pytestCheckHook
-, pythonOlder
-, skein
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  fetchpatch,
+  setuptools,
+  versioneer,
+  dask,
+  distributed,
+  grpcio,
+  skein,
+  pytestCheckHook,
+  stdenv,
 }:
 
 buildPythonPackage rec {
   pname = "dask-yarn";
   version = "0.9";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -26,31 +29,37 @@ buildPythonPackage rec {
   };
 
   patches = [
-    (fetchpatch {  # https://github.com/dask/dask-yarn/pull/150
+    (fetchpatch {
+      # https://github.com/dask/dask-yarn/pull/150
       name = "address-deprecations-introduced-in-distributed-2021-07-0";
       url = "https://github.com/dask/dask-yarn/pull/150/commits/459848afcdc22568905ee98622c74e4071496423.patch";
       hash = "sha256-LS46QBdiAmsp4jQq4DdYdmmk1qzx5JZNTQUlRcRwY5k=";
     })
   ];
 
-  propagatedBuildInputs = [
-    distributed
+  postPatch = ''
+    rm versioneer.py
+  '';
+
+  build-system = [
+    setuptools
+    versioneer
+  ];
+
+  dependencies = [
     dask
+    distributed
     grpcio
     skein
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export HOME=$TMPDIR
   '';
 
-  pythonImportsCheck = [
-    "dask_yarn"
-  ];
+  pythonImportsCheck = [ "dask_yarn" ];
 
   disabledTests = [
     # skein.exceptions.DriverError: Failed to start java process
@@ -66,10 +75,11 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Deploy dask on YARN clusters";
     mainProgram = "dask-yarn";
-    longDescription = ''Dask-Yarn deploys Dask on YARN clusters,
-      such as are found in traditional Hadoop installations.
-      Dask-Yarn provides an easy interface to quickly start,
-      stop, and scale Dask clusters natively from Python.
+    longDescription = ''
+      Dask-Yarn deploys Dask on YARN clusters,
+            such as are found in traditional Hadoop installations.
+            Dask-Yarn provides an easy interface to quickly start,
+            stop, and scale Dask clusters natively from Python.
     '';
     homepage = "https://yarn.dask.org/";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/dask/default.nix b/pkgs/development/python-modules/dask/default.nix
index 0327aebaaf846..c4988b4c8c5b0 100644
--- a/pkgs/development/python-modules/dask/default.nix
+++ b/pkgs/development/python-modules/dask/default.nix
@@ -1,195 +1,196 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-
-# build-system
-, setuptools
-, wheel
-
-# dependencies
-, click
-, cloudpickle
-, fsspec
-, importlib-metadata
-, packaging
-, partd
-, pyyaml
-, toolz
-
-# optional-dependencies
-, numpy
-, pyarrow
-, lz4
-, pandas
-, distributed
-, bokeh
-, jinja2
-
-# tests
-, arrow-cpp
-, dask-expr
-, hypothesis
-, pytest-asyncio
-, pytest-rerunfailures
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+  wheel,
+
+  # dependencies
+  click,
+  cloudpickle,
+  fsspec,
+  importlib-metadata,
+  packaging,
+  partd,
+  pyyaml,
+  toolz,
+
+  # optional-dependencies
+  numpy,
+  pyarrow,
+  lz4,
+  pandas,
+  distributed,
+  bokeh,
+  jinja2,
+
+  # tests
+  arrow-cpp,
+  dask-expr,
+  hypothesis,
+  pytest-asyncio,
+  pytest-rerunfailures,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
-let self = buildPythonPackage rec {
-  pname = "dask";
-  version = "2024.4.2";
-  pyproject = true;
+let
+  self = buildPythonPackage rec {
+    pname = "dask";
+    version = "2024.6.2";
+    pyproject = true;
 
-  disabled = pythonOlder "3.9";
+    disabled = pythonOlder "3.9";
 
-  src = fetchFromGitHub {
-    owner = "dask";
-    repo = "dask";
-    rev = "refs/tags/${version}";
-    hash = "sha256-iD+diwctXaQlOpL0fjOiFoWVONtlMq7AonbC0vCmXc0=";
-  };
+    src = fetchFromGitHub {
+      owner = "dask";
+      repo = "dask";
+      rev = "refs/tags/${version}";
+      hash = "sha256-5jG9hx1tZkqLwjWF73Fm2oJBuejbq4a7GP9fMd8hRJg=";
+    };
 
-  nativeBuildInputs = [
-    setuptools
-    wheel
-  ];
-
-  propagatedBuildInputs = [
-    click
-    cloudpickle
-    fsspec
-    packaging
-    partd
-    pyyaml
-    importlib-metadata
-    toolz
-  ];
-
-  passthru.optional-dependencies = lib.fix (self: {
-    array = [
-      numpy
-    ];
-    complete = [
-      pyarrow
-      lz4
-    ]
-    ++ self.array
-    ++ self.dataframe
-    ++ self.distributed
-    ++ self.diagnostics;
-    dataframe = [
-      # dask-expr -> circular dependency with dask-expr
-      numpy
-      pandas
-    ];
-    distributed = [
-      distributed
+    build-system = [
+      setuptools
+      wheel
     ];
-    diagnostics = [
-      bokeh
-      jinja2
+
+    dependencies = [
+      click
+      cloudpickle
+      fsspec
+      packaging
+      partd
+      pyyaml
+      importlib-metadata
+      toolz
     ];
-  });
-
-  nativeCheckInputs = [
-    dask-expr
-    pytestCheckHook
-    pytest-rerunfailures
-    pytest-xdist
-    # from panda[test]
-    hypothesis
-    pytest-asyncio
-  ]
-  ++ passthru.optional-dependencies.array
-  ++ passthru.optional-dependencies.dataframe
-  ++ lib.optionals (!arrow-cpp.meta.broken) [ # support is sparse on aarch64
-    pyarrow
-  ];
-
-  dontUseSetuptoolsCheck = true;
-
-  postPatch = ''
-    # versioneer hack to set version of GitHub package
-    echo "def get_versions(): return {'dirty': False, 'error': None, 'full-revisionid': None, 'version': '${version}'}" > dask/_version.py
-
-    substituteInPlace setup.py \
-      --replace "import versioneer" "" \
-      --replace "version=versioneer.get_version()," "version='${version}'," \
-      --replace "cmdclass=versioneer.get_cmdclass()," ""
-
-    substituteInPlace pyproject.toml \
-      --replace ', "versioneer[toml]==0.29"' "" \
-      --replace " --durations=10" "" \
-      --replace " --cov-config=pyproject.toml" "" \
-      --replace "\"-v" "\" "
-  '';
-
-  pytestFlagsArray = [
-    # Rerun failed tests up to three times
-    "--reruns 3"
-    # Don't run tests that require network access
-    "-m 'not network'"
-  ];
-
-  disabledTests = lib.optionals stdenv.isDarwin [
-    # Test requires features of python3Packages.psutil that are
-    # blocked in sandboxed-builds
-    "test_auto_blocksize_csv"
-    # AttributeError: 'str' object has no attribute 'decode'
-    "test_read_dir_nometa"
-  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
-    # concurrent.futures.process.BrokenProcessPool: A process in the process pool terminated abpruptly...
-    "test_foldby_tree_reduction"
-    "test_to_bag"
-  ] ++ [
-    # https://github.com/dask/dask/issues/10347#issuecomment-1589683941
-    "test_concat_categorical"
-    # AttributeError: 'ArrowStringArray' object has no attribute 'tobytes'. Did you mean: 'nbytes'?
-    "test_dot"
-    "test_dot_nan"
-    "test_merge_column_with_nulls"
-    # FileNotFoundError: [Errno 2] No such file or directory: '/build/tmp301jryv_/createme/0.part'
-    "test_to_csv_nodir"
-    "test_to_json_results"
-    # FutureWarning: Those tests should be working fine when pandas will have been upgraded to 2.1.1
-    "test_apply"
-    "test_apply_infer_columns"
-  ];
-
-  __darwinAllowLocalNetworking = true;
-
-  pythonImportsCheck = [
-    "dask"
-    "dask.bag"
-    "dask.bytes"
-    "dask.diagnostics"
-  ];
-
-  doCheck = false;
-
-  # Enable tests via passthru to avoid cyclic dependency with dask-expr.
-  passthru.tests = {
-    check = self.overridePythonAttrs (old: {
-      doCheck = true;
-      pythonImportsCheck = [
-        # Requires the `dask.optional-dependencies.array` that are only in `nativeCheckInputs`
-        "dask.array"
-        # Requires the `dask.optional-dependencies.dataframe` that are only in `nativeCheckInputs`
-        "dask.dataframe"
-        "dask.dataframe.io"
-        "dask.dataframe.tseries"
-      ] ++ old.pythonImportsCheck;
+
+    optional-dependencies = lib.fix (self: {
+      array = [ numpy ];
+      complete = [
+        pyarrow
+        lz4
+      ] ++ self.array ++ self.dataframe ++ self.distributed ++ self.diagnostics;
+      dataframe = [
+        # dask-expr -> circular dependency with dask-expr
+        numpy
+        pandas
+      ];
+      distributed = [ distributed ];
+      diagnostics = [
+        bokeh
+        jinja2
+      ];
     });
-  };
 
+    nativeCheckInputs =
+      [
+        dask-expr
+        pytestCheckHook
+        pytest-rerunfailures
+        pytest-xdist
+        # from panda[test]
+        hypothesis
+        pytest-asyncio
+      ]
+      ++ self.optional-dependencies.array
+      ++ self.optional-dependencies.dataframe
+      ++ lib.optionals (!arrow-cpp.meta.broken) [
+        # support is sparse on aarch64
+        pyarrow
+      ];
+
+    dontUseSetuptoolsCheck = true;
+
+    postPatch = ''
+      # versioneer hack to set version of GitHub package
+      echo "def get_versions(): return {'dirty': False, 'error': None, 'full-revisionid': None, 'version': '${version}'}" > dask/_version.py
+
+      substituteInPlace setup.py \
+        --replace-fail "import versioneer" "" \
+        --replace-fail "version=versioneer.get_version()," "version='${version}'," \
+        --replace-fail "cmdclass=versioneer.get_cmdclass()," ""
+
+      substituteInPlace pyproject.toml \
+        --replace-fail ', "versioneer[toml]==0.29"' "" \
+        --replace-fail " --durations=10" "" \
+        --replace-fail " --cov-config=pyproject.toml" "" \
+        --replace-fail "\"-v" "\" "
+    '';
+
+    pytestFlagsArray = [
+      # Rerun failed tests up to three times
+      "--reruns 3"
+      # Don't run tests that require network access
+      "-m 'not network'"
+    ];
+
+    disabledTests =
+      lib.optionals stdenv.isDarwin [
+        # Test requires features of python3Packages.psutil that are
+        # blocked in sandboxed-builds
+        "test_auto_blocksize_csv"
+        # AttributeError: 'str' object has no attribute 'decode'
+        "test_read_dir_nometa"
+      ]
+      ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+        # concurrent.futures.process.BrokenProcessPool: A process in the process pool terminated abpruptly...
+        "test_foldby_tree_reduction"
+        "test_to_bag"
+      ]
+      ++ [
+        # https://github.com/dask/dask/issues/10347#issuecomment-1589683941
+        "test_concat_categorical"
+        # AttributeError: 'ArrowStringArray' object has no attribute 'tobytes'. Did you mean: 'nbytes'?
+        "test_dot"
+        "test_dot_nan"
+        "test_merge_column_with_nulls"
+        # FileNotFoundError: [Errno 2] No such file or directory: '/build/tmp301jryv_/createme/0.part'
+        "test_to_csv_nodir"
+        "test_to_json_results"
+        # FutureWarning: Those tests should be working fine when pandas will have been upgraded to 2.1.1
+        "test_apply"
+        "test_apply_infer_columns"
+      ];
+
+    __darwinAllowLocalNetworking = true;
+
+    pythonImportsCheck = [
+      "dask"
+      "dask.bag"
+      "dask.bytes"
+      "dask.diagnostics"
+    ];
 
-  meta = with lib; {
-    description = "Minimal task scheduling abstraction";
-    mainProgram = "dask";
-    homepage = "https://dask.org/";
-    changelog = "https://docs.dask.org/en/latest/changelog.html";
-    license = licenses.bsd3;
+    doCheck = false;
+
+    # Enable tests via passthru to avoid cyclic dependency with dask-expr.
+    passthru.tests = {
+      check = self.overridePythonAttrs (old: {
+        doCheck = true;
+        pythonImportsCheck = [
+          # Requires the `dask.optional-dependencies.array` that are only in `nativeCheckInputs`
+          "dask.array"
+          # Requires the `dask.optional-dependencies.dataframe` that are only in `nativeCheckInputs`
+          "dask.dataframe"
+          "dask.dataframe.io"
+          "dask.dataframe.tseries"
+        ] ++ old.pythonImportsCheck;
+      });
+    };
+
+    meta = {
+      description = "Minimal task scheduling abstraction";
+      mainProgram = "dask";
+      homepage = "https://dask.org/";
+      changelog = "https://docs.dask.org/en/latest/changelog.html";
+      license = lib.licenses.bsd3;
+      maintainers = with lib.maintainers; [ GaetanLepage ];
+    };
   };
-}; in self
+in
+self
diff --git a/pkgs/development/python-modules/databases/default.nix b/pkgs/development/python-modules/databases/default.nix
index 7cd05be5b8e14..44e356bdf13fe 100644
--- a/pkgs/development/python-modules/databases/default.nix
+++ b/pkgs/development/python-modules/databases/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiomysql
-, aiopg
-, aiosqlite
-, asyncmy
-, asyncpg
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, sqlalchemy
+{
+  lib,
+  aiomysql,
+  aiopg,
+  aiosqlite,
+  asyncmy,
+  asyncpg,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  sqlalchemy,
 }:
 
 buildPythonPackage rec {
@@ -26,44 +27,22 @@ buildPythonPackage rec {
     hash = "sha256-Zf9QqBgDhWAnHdNvzjXtri5rdT00BOjc4YTNzJALldM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    sqlalchemy
-  ];
+  propagatedBuildInputs = [ sqlalchemy ];
 
   passthru.optional-dependencies = {
-    postgresql = [
-      asyncpg
-    ];
-    asyncpg = [
-      asyncpg
-    ];
-    aiopg = [
-      aiopg
-    ];
-    mysql = [
-      aiomysql
-    ];
-    aiomysql = [
-      aiomysql
-    ];
-    asyncmy = [
-      asyncmy
-    ];
-    sqlite = [
-      aiosqlite
-    ];
-    aiosqlite = [
-      aiosqlite
-    ];
+    postgresql = [ asyncpg ];
+    asyncpg = [ asyncpg ];
+    aiopg = [ aiopg ];
+    mysql = [ aiomysql ];
+    aiomysql = [ aiomysql ];
+    asyncmy = [ asyncmy ];
+    sqlite = [ aiosqlite ];
+    aiosqlite = [ aiosqlite ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # circular dependency on starlette
@@ -73,9 +52,7 @@ buildPythonPackage rec {
     "tests/test_connection_options.py"
   ];
 
-  pythonImportsCheck = [
-    "databases"
-  ];
+  pythonImportsCheck = [ "databases" ];
 
   meta = with lib; {
     description = "Async database support for Python";
diff --git a/pkgs/development/python-modules/databricks-cli/default.nix b/pkgs/development/python-modules/databricks-cli/default.nix
index 92d6adf55a11e..4aeaec10aa049 100644
--- a/pkgs/development/python-modules/databricks-cli/default.nix
+++ b/pkgs/development/python-modules/databricks-cli/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, click
-, configparser
-, decorator
-, fetchFromGitHub
-, mock
-, oauthlib
-, pyjwt
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
-, six
-, tabulate
+{
+  lib,
+  buildPythonPackage,
+  click,
+  configparser,
+  decorator,
+  fetchFromGitHub,
+  mock,
+  oauthlib,
+  pyjwt,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
+  six,
+  tabulate,
 }:
 
 buildPythonPackage rec {
@@ -52,9 +53,7 @@ buildPythonPackage rec {
     "integration/workspace/test_integration.py"
   ];
 
-  pythonImportsCheck = [
-    "databricks_cli"
-  ];
+  pythonImportsCheck = [ "databricks_cli" ];
 
   meta = with lib; {
     description = "Command line interface for Databricks";
diff --git a/pkgs/development/python-modules/databricks-connect/default.nix b/pkgs/development/python-modules/databricks-connect/default.nix
index 85e64fea78231..89e85bcd7b0ba 100644
--- a/pkgs/development/python-modules/databricks-connect/default.nix
+++ b/pkgs/development/python-modules/databricks-connect/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, jdk8
-, buildPythonPackage
-, fetchPypi
-, six
-, py4j
-, pythonOlder
+{
+  lib,
+  jdk8,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  py4j,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,11 @@ buildPythonPackage rec {
 
   sourceRoot = ".";
 
-  propagatedBuildInputs = [ py4j six jdk8 ];
+  propagatedBuildInputs = [
+    py4j
+    six
+    jdk8
+  ];
 
   # requires network access
   doCheck = false;
@@ -36,7 +41,11 @@ buildPythonPackage rec {
       --replace find_spark_home.py .find_spark_home.py-wrapped
   '';
 
-  pythonImportsCheck = [ "pyspark" "six" "py4j" ];
+  pythonImportsCheck = [
+    "pyspark"
+    "six"
+    "py4j"
+  ];
 
   meta = with lib; {
     description = "Client for connecting to remote Databricks clusters";
diff --git a/pkgs/development/python-modules/databricks-sql-connector/default.nix b/pkgs/development/python-modules/databricks-sql-connector/default.nix
index b7cb1311b6b49..00a67be185756 100644
--- a/pkgs/development/python-modules/databricks-sql-connector/default.nix
+++ b/pkgs/development/python-modules/databricks-sql-connector/default.nix
@@ -1,24 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, alembic
-, lz4
-, numpy
-, oauthlib
-, openpyxl
-, pandas
-, poetry-core
-, pyarrow
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, sqlalchemy
-, thrift
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  alembic,
+  lz4,
+  numpy,
+  oauthlib,
+  openpyxl,
+  pandas,
+  poetry-core,
+  pyarrow,
+  pytestCheckHook,
+  pythonOlder,
+  sqlalchemy,
+  thrift,
 }:
 
 buildPythonPackage rec {
   pname = "databricks-sql-connector";
-  version = "3.1.0";
+  version = "3.2.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "databricks";
     repo = "databricks-sql-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-LiA+zZuhPPXgBb8B1vZ/PuAYMrBXzxgd1CXwugf0mk8=";
+    hash = "sha256-Sk/tYgFnWWHAsMSHhEUIwUagc6femAzQpQGyzJGXW1E=";
   };
 
   pythonRelaxDeps = [
@@ -37,7 +37,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -52,17 +51,11 @@ buildPythonPackage rec {
     thrift
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests/unit"
-  ];
+  pytestFlagsArray = [ "tests/unit" ];
 
-  pythonImportsCheck = [
-    "databricks"
-  ];
+  pythonImportsCheck = [ "databricks" ];
 
   meta = with lib; {
     description = "Databricks SQL Connector for Python";
diff --git a/pkgs/development/python-modules/dataclass-factory/default.nix b/pkgs/development/python-modules/dataclass-factory/default.nix
index b6ce77a51f00a..83de3f7218324 100644
--- a/pkgs/development/python-modules/dataclass-factory/default.nix
+++ b/pkgs/development/python-modules/dataclass-factory/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nose2
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nose2,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-0BIWgyAV1hJzFX4xYFqswvQi5F1Ce+V9FKSmNYuJfZM=";
   };
 
-  nativeCheckInputs = [
-    nose2
-  ];
+  nativeCheckInputs = [ nose2 ];
 
-  checkInputs = [
-    typing-extensions
-  ];
+  checkInputs = [ typing-extensions ];
 
   pythonImportsCheck = [ "dataclass_factory" ];
 
diff --git a/pkgs/development/python-modules/dataclass-wizard/default.nix b/pkgs/development/python-modules/dataclass-wizard/default.nix
index 0cc0eed0f51fe..39f0f0aa39fa7 100644
--- a/pkgs/development/python-modules/dataclass-wizard/default.nix
+++ b/pkgs/development/python-modules/dataclass-wizard/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
-, pythonAtLeast
-, pytimeparse
-, pyyaml
-, pytestCheckHook
-, pytest-mock
-, typing-extensions
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  pythonAtLeast,
+  pytimeparse,
+  pyyaml,
+  pytestCheckHook,
+  pytest-mock,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -22,41 +23,34 @@ buildPythonPackage rec {
     hash = "sha256-Ufi4lZc+UkM6NZr4bS2OibpOmMjyiBEoVKxmrqauW50=";
   };
 
-  propagatedBuildInputs = [
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ ] ++ lib.optionals (pythonOlder "3.9") [ typing-extensions ];
 
   passthru.optional-dependencies = {
-    timedelta = [
-      pytimeparse
-    ];
-    yaml = [
-      pyyaml
-    ];
+    timedelta = [ pytimeparse ];
+    yaml = [ pyyaml ];
   };
 
   nativeCheckInputs = [
     pytestCheckHook
     pytest-mock
-  ] ++ passthru.optional-dependencies.timedelta
-  ++ passthru.optional-dependencies.yaml;
-
-  disabledTests = [
-  ] ++ lib.optionals (pythonAtLeast "3.11") [
-    # Any/None internal changes, tests need adjusting upstream
-    "without_type_hinting"
-    "default_dict"
-    "test_frozenset"
-    "test_set"
-    "date_times_with_custom_pattern"
-    "from_dict_handles_identical_cased_json_keys"
-  ];
+  ] ++ passthru.optional-dependencies.timedelta ++ passthru.optional-dependencies.yaml;
+
+  disabledTests =
+    [ ]
+    ++ lib.optionals (pythonAtLeast "3.11") [
+      # Any/None internal changes, tests need adjusting upstream
+      "without_type_hinting"
+      "default_dict"
+      "test_frozenset"
+      "test_set"
+      "date_times_with_custom_pattern"
+      "from_dict_handles_identical_cased_json_keys"
+    ];
 
   pythonImportsCheck = [ "dataclass_wizard" ];
 
   meta = with lib; {
-    description = "A set of simple, yet elegant wizarding tools for interacting with the Python dataclasses module";
+    description = "Set of simple, yet elegant wizarding tools for interacting with the Python dataclasses module";
     mainProgram = "wiz";
     homepage = "https://github.com/rnag/dataclass-wizard";
     changelog = "https://github.com/rnag/dataclass-wizard/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/dataclasses-json/default.nix b/pkgs/development/python-modules/dataclasses-json/default.nix
index 202b4ebb6dedb..bb8a949bc8ae2 100644
--- a/pkgs/development/python-modules/dataclasses-json/default.nix
+++ b/pkgs/development/python-modules/dataclasses-json/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hypothesis
-, marshmallow-enum
-, poetry-core
-, poetry-dynamic-versioning
-, pytestCheckHook
-, pythonOlder
-, typing-inspect
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hypothesis,
+  marshmallow,
+  poetry-core,
+  poetry-dynamic-versioning,
+  pytestCheckHook,
+  pythonOlder,
+  typing-inspect,
 }:
 
 buildPythonPackage rec {
   pname = "dataclasses-json";
-  version = "0.6.5";
+  version = "0.6.7";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +22,7 @@ buildPythonPackage rec {
     owner = "lidatong";
     repo = "dataclasses-json";
     rev = "refs/tags/v${version}";
-    hash = "sha256-YkGxUQgnUB7WfpsZz74b3j/TIqJi2ihsk9Ib05S7uPM=";
+    hash = "sha256-AH/T6pa/CHtQNox67fqqs/BBnUcmThvbnSHug2p33qM=";
   };
 
   postPatch = ''
@@ -36,7 +37,7 @@ buildPythonPackage rec {
 
   dependencies = [
     typing-inspect
-    marshmallow-enum
+    marshmallow
   ];
 
   nativeCheckInputs = [
@@ -51,9 +52,7 @@ buildPythonPackage rec {
     "tests/test_annotations.py"
   ];
 
-  pythonImportsCheck = [
-    "dataclasses_json"
-  ];
+  pythonImportsCheck = [ "dataclasses_json" ];
 
   meta = with lib; {
     description = "Simple API for encoding and decoding dataclasses to and from JSON";
diff --git a/pkgs/development/python-modules/dataclasses-serialization/default.nix b/pkgs/development/python-modules/dataclasses-serialization/default.nix
index a52135ddaf6fe..b1e014f0c1630 100644
--- a/pkgs/development/python-modules/dataclasses-serialization/default.nix
+++ b/pkgs/development/python-modules/dataclasses-serialization/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, more-properties
-, typing-inspect
-, toolz
-, toposort
-, bson
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  more-properties,
+  typing-inspect,
+  toolz,
+  toposort,
+  bson,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/datadiff/default.nix b/pkgs/development/python-modules/datadiff/default.nix
index a971509ca823a..b020a279a0fc6 100644
--- a/pkgs/development/python-modules/datadiff/default.nix
+++ b/pkgs/development/python-modules/datadiff/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # Tests are not part of the PyPI releases
   doCheck = false;
 
-  pythonImportsCheck = [
-    "datadiff"
-  ];
+  pythonImportsCheck = [ "datadiff" ];
 
   meta = with lib; {
     description = "Library to provide human-readable diffs of Python data structures";
diff --git a/pkgs/development/python-modules/datadog/default.nix b/pkgs/development/python-modules/datadog/default.nix
index 8b0b0956b89d3..5103cc4df9477 100644
--- a/pkgs/development/python-modules/datadog/default.nix
+++ b/pkgs/development/python-modules/datadog/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchPypi
-, freezegun
-, hatchling
-, mock
-, pytest-vcr
-, pytestCheckHook
-, python-dateutil
-, pythonAtLeast
-, pythonOlder
-, requests
-, vcrpy
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchPypi,
+  freezegun,
+  hatchling,
+  mock,
+  pytest-vcr,
+  pytestCheckHook,
+  python-dateutil,
+  pythonAtLeast,
+  pythonOlder,
+  requests,
+  vcrpy,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     hash = "sha256-TLenmRr2ytuGj+RQzUVkc+ZfEfxni3189hBE/xxgdNg=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   __darwinAllowLocalNetworking = true;
 
@@ -58,12 +55,10 @@ buildPythonPackage rec {
     "TestDogshell"
   ];
 
-  pythonImportsCheck = [
-    "datadog"
-  ];
+  pythonImportsCheck = [ "datadog" ];
 
   meta = with lib; {
-    description = "The Datadog Python library";
+    description = "Datadog Python library";
     homepage = "https://github.com/DataDog/datadogpy";
     changelog = "https://github.com/DataDog/datadogpy/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/datafusion/default.nix b/pkgs/development/python-modules/datafusion/default.nix
index baf905f11fa71..1b968fe500074 100644
--- a/pkgs/development/python-modules/datafusion/default.nix
+++ b/pkgs/development/python-modules/datafusion/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, rustPlatform
-, pytestCheckHook
-, libiconv
-, numpy
-, protobuf
-, pyarrow
-, Security
-, SystemConfiguration
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  rustPlatform,
+  pytestCheckHook,
+  libiconv,
+  numpy,
+  protobuf,
+  pyarrow,
+  Security,
+  SystemConfiguration,
 }:
 
 let
@@ -32,21 +33,21 @@ in
 
 buildPythonPackage rec {
   pname = "datafusion";
-  version = "35.0.0";
-  format = "pyproject";
+  version = "38.0.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     name = "datafusion-source";
     owner = "apache";
     repo = "arrow-datafusion-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-43XY7j/8x+7SCY4W8nysaeWax2nvTTHZXMmy3hSz6pI=";
+    hash = "sha256-rBS6i2HqpdhnhZZfO0ywL/e4a+rnUZkHzezKd8PuG80=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     name = "datafusion-cargo-deps";
     inherit src pname version;
-    hash = "sha256-YWAyEMojw0bc/fu5kIZKMNPEgsAIpWqjVNodWXbgTl4=";
+    hash = "sha256-M2ZNAFWdsnN9C4+YbqFxZVH9fHR10Bimf1Xzrd9oy9E=";
   };
 
   nativeBuildInputs = with rustPlatform; [
@@ -54,17 +55,25 @@ buildPythonPackage rec {
     maturinBuildHook
   ];
 
-  buildInputs = [ protobuf ] ++ lib.optionals stdenv.isDarwin [
-    libiconv
-    Security
-    SystemConfiguration
-  ];
+  buildInputs =
+    [ protobuf ]
+    ++ lib.optionals stdenv.isDarwin [
+      libiconv
+      Security
+      SystemConfiguration
+    ];
 
   propagatedBuildInputs = [ pyarrow ];
 
-  nativeCheckInputs = [ pytestCheckHook numpy ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    numpy
+  ];
   pythonImportsCheck = [ "datafusion" ];
-  pytestFlagsArray = [ "--pyargs" pname ];
+  pytestFlagsArray = [
+    "--pyargs"
+    pname
+  ];
 
   preCheck = ''
     pushd $TMPDIR
diff --git a/pkgs/development/python-modules/datamodeldict/default.nix b/pkgs/development/python-modules/datamodeldict/default.nix
index 3804298098360..8ab7fd4c0bcc0 100644
--- a/pkgs/development/python-modules/datamodeldict/default.nix
+++ b/pkgs/development/python-modules/datamodeldict/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, xmltodict
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
@@ -18,16 +19,12 @@ buildPythonPackage rec {
     hash = "sha256-DadBRsc8qEu9PWgMNllGS2ESKL7kgBLDhg4yDr87WRk=";
   };
 
-  propagatedBuildInputs = [
-    xmltodict
-  ];
+  propagatedBuildInputs = [ xmltodict ];
 
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "DataModelDict"
-  ];
+  pythonImportsCheck = [ "DataModelDict" ];
 
   meta = with lib; {
     description = "Class allowing for data models equivalently represented as Python dictionaries, JSON, and XML";
diff --git a/pkgs/development/python-modules/datapoint/default.nix b/pkgs/development/python-modules/datapoint/default.nix
index 9f9c0b55c2359..aec91a0e548b8 100644
--- a/pkgs/development/python-modules/datapoint/default.nix
+++ b/pkgs/development/python-modules/datapoint/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch2
-, appdirs
-, pytz
-, requests
-, pytestCheckHook
-, requests-mock
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch2,
+  appdirs,
+  pytz,
+  requests,
+  pytestCheckHook,
+  requests-mock,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     appdirs
diff --git a/pkgs/development/python-modules/dataprep-ml/default.nix b/pkgs/development/python-modules/dataprep-ml/default.nix
index 3bb919b6dc100..df952df2bd0a6 100644
--- a/pkgs/development/python-modules/dataprep-ml/default.nix
+++ b/pkgs/development/python-modules/dataprep-ml/default.nix
@@ -1,20 +1,20 @@
-{ lib
-, buildPythonPackage
-, colorlog
-, dataclasses-json
-, fetchPypi
-, nltk-data
-, numpy
-, pandas
-, poetry-core
-, pydantic
-, pydateinfer
-, python-dateutil
-, pythonOlder
-, pythonRelaxDepsHook
-, scipy
-, symlinkJoin
-, type-infer
+{
+  lib,
+  buildPythonPackage,
+  colorlog,
+  dataclasses-json,
+  fetchPypi,
+  nltk-data,
+  numpy,
+  pandas,
+  poetry-core,
+  pydantic,
+  pydateinfer,
+  python-dateutil,
+  pythonOlder,
+  scipy,
+  symlinkJoin,
+  type-infer,
 }:
 let
   testNltkData = symlinkJoin {
@@ -27,7 +27,7 @@ let
 in
 buildPythonPackage rec {
   pname = "dataprep-ml";
-  version = "0.0.23";
+  version = "24.5.1.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -36,16 +36,13 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "dataprep_ml";
     inherit version;
-    hash = "sha256-NYlKLdV2xZPODXpHvaFB8cRFTdCndl3UOd6bCfNbsZo=";
+    hash = "sha256-pZhHlNcQJLBww7ur2Z6Yb2IdbRsBtjzQAzfa4UzGKt4=";
   };
 
-  pythonRelaxDeps = [
-    "pydantic"
-  ];
+  pythonRelaxDeps = [ "pydantic" ];
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dataproperty/default.nix b/pkgs/development/python-modules/dataproperty/default.nix
index 539c3324204e7..b82fa0900fbb4 100644
--- a/pkgs/development/python-modules/dataproperty/default.nix
+++ b/pkgs/development/python-modules/dataproperty/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, loguru
-, mbstrdecoder
-, pytestCheckHook
-, pythonOlder
-, tcolorpy
-, termcolor
-, typepy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  loguru,
+  mbstrdecoder,
+  pytestCheckHook,
+  pythonOlder,
+  tcolorpy,
+  termcolor,
+  typepy,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
   ] ++ typepy.optional-dependencies.datetime;
 
   passthru.optional-dependencies = {
-    logging = [
-      loguru
-    ];
+    logging = [ loguru ];
   };
 
   nativeCheckInputs = [
@@ -41,9 +40,7 @@ buildPythonPackage rec {
     termcolor
   ];
 
-  pythonImportsCheck = [
-    "dataproperty"
-  ];
+  pythonImportsCheck = [ "dataproperty" ];
 
   meta = with lib; {
     description = "Library for extracting properties from data";
diff --git a/pkgs/development/python-modules/dataset/default.nix b/pkgs/development/python-modules/dataset/default.nix
index 9446920d0b051..778082fc276f7 100644
--- a/pkgs/development/python-modules/dataset/default.nix
+++ b/pkgs/development/python-modules/dataset/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, alembic
-, banal
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, sqlalchemy
+{
+  lib,
+  alembic,
+  banal,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  sqlalchemy,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # checks attempt to import nonexistent module 'test.test' and fail
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dataset"
-  ];
+  pythonImportsCheck = [ "dataset" ];
 
   meta = with lib; {
     description = "Toolkit for Python-based database access";
diff --git a/pkgs/development/python-modules/datasets/default.nix b/pkgs/development/python-modules/datasets/default.nix
index 3555387b3ab10..3718c4db7eab4 100644
--- a/pkgs/development/python-modules/datasets/default.nix
+++ b/pkgs/development/python-modules/datasets/default.nix
@@ -1,27 +1,27 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, dill
-, fetchFromGitHub
-, fetchpatch
-, fsspec
-, huggingface-hub
-, importlib-metadata
-, multiprocess
-, numpy
-, packaging
-, pandas
-, pyarrow
-, pythonOlder
-, requests
-, responses
-, tqdm
-, xxhash
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  dill,
+  fetchFromGitHub,
+  fsspec,
+  huggingface-hub,
+  importlib-metadata,
+  multiprocess,
+  numpy,
+  packaging,
+  pandas,
+  pyarrow,
+  pythonOlder,
+  requests,
+  responses,
+  tqdm,
+  xxhash,
 }:
 
 buildPythonPackage rec {
   pname = "datasets";
-  version = "2.18.0";
+  version = "2.20.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-mLiIE1RYUNUhh8nhG7TBr7XUdWlJzeWDuUNvoBk0eyw=";
+    hash = "sha256-9mB4RXJVkmaK+fLEmyZAdf64YKGoAhE3RzMoj4/8K98=";
   };
 
   # remove pyarrow<14.0.1 vulnerability fix
@@ -53,9 +53,7 @@ buildPythonPackage rec {
     responses
     tqdm
     xxhash
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # Tests require pervasive internet access
   doCheck = false;
@@ -63,9 +61,7 @@ buildPythonPackage rec {
   # Module import will attempt to create a cache directory
   postFixup = "export HF_MODULES_CACHE=$TMPDIR";
 
-  pythonImportsCheck = [
-    "datasets"
-  ];
+  pythonImportsCheck = [ "datasets" ];
 
   meta = with lib; {
     description = "Open-access datasets and evaluation metrics for natural language processing";
diff --git a/pkgs/development/python-modules/datasette-publish-fly/default.nix b/pkgs/development/python-modules/datasette-publish-fly/default.nix
index a9c04618ee312..9e20a5fd7849a 100644
--- a/pkgs/development/python-modules/datasette-publish-fly/default.nix
+++ b/pkgs/development/python-modules/datasette-publish-fly/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, cogapp
-, datasette
-, fetchFromGitHub
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  cogapp,
+  datasette,
+  fetchFromGitHub,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-diaxr+fNNgkJvLGkLo+lK0ThTsXYDePFsvTetMbDRMk=";
   };
 
-  propagatedBuildInputs = [
-    datasette
-  ];
+  propagatedBuildInputs = [ datasette ];
 
   nativeCheckInputs = [
     cogapp
@@ -32,9 +31,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "datasette_publish_fly"
-  ];
+  pythonImportsCheck = [ "datasette_publish_fly" ];
 
   meta = with lib; {
     description = "Datasette plugin for publishing data using Fly";
diff --git a/pkgs/development/python-modules/datasette-template-sql/default.nix b/pkgs/development/python-modules/datasette-template-sql/default.nix
index a4ba47add5cf4..ca77a27ca6ce7 100644
--- a/pkgs/development/python-modules/datasette-template-sql/default.nix
+++ b/pkgs/development/python-modules/datasette-template-sql/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, datasette
-, fetchFromGitHub
-, pytest-asyncio
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  datasette,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,16 +21,12 @@ buildPythonPackage rec {
     hash = "sha256-VmdIEDk3iCBFrTPMm6ud00Z5CWqO0Wk707IQ4oVx5ak=";
   };
 
-  propagatedBuildInputs = [
-    datasette
-  ];
+  propagatedBuildInputs = [ datasette ];
 
   # Tests require a running datasette instance
   doCheck = false;
 
-  pythonImportsCheck = [
-    "datasette_template_sql"
-  ];
+  pythonImportsCheck = [ "datasette_template_sql" ];
 
   meta = with lib; {
     description = "Datasette plugin for executing SQL queries from templates";
diff --git a/pkgs/development/python-modules/datasette/default.nix b/pkgs/development/python-modules/datasette/default.nix
index a3c43a528aab3..199634e5c4755 100644
--- a/pkgs/development/python-modules/datasette/default.nix
+++ b/pkgs/development/python-modules/datasette/default.nix
@@ -1,35 +1,36 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, aiofiles
-, asgi-csrf
-, click
-, click-default-group
-, itsdangerous
-, janus
-, jinja2
-, hupper
-, mergedeep
-, pint
-, pluggy
-, python-baseconv
-, pyyaml
-, uvicorn
-, httpx
-, pytestCheckHook
-, pytest-asyncio
-, pytest-timeout
-, aiohttp
-, beautifulsoup4
-, asgiref
-, setuptools
-, trustme
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  aiofiles,
+  asgi-csrf,
+  click,
+  click-default-group,
+  itsdangerous,
+  janus,
+  jinja2,
+  hupper,
+  mergedeep,
+  pint,
+  pluggy,
+  python-baseconv,
+  pyyaml,
+  uvicorn,
+  httpx,
+  pytestCheckHook,
+  pytest-asyncio,
+  pytest-timeout,
+  aiohttp,
+  beautifulsoup4,
+  asgiref,
+  setuptools,
+  trustme,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "datasette";
-  version = "0.64.6";
+  version = "0.64.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -38,7 +39,7 @@ buildPythonPackage rec {
     owner = "simonw";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-chU0AFaVfkJMRwraX/Ky0e6/g3ZSZ2efNIJ15veqFmg=";
+    hash = "sha256-MxTCVgV0xDKXiYOx6rh5v55uQqlf9Wd06wHfnhDS4Hk=";
   };
 
   postPatch = ''
@@ -78,9 +79,7 @@ buildPythonPackage rec {
   # takes 30-180 mins to run entire test suite, not worth the CPU resources, slows down reviews
   # with pytest-xdist, it still takes around 10 mins with 32 cores
   # just run the csv tests, as this should give some indictation of correctness
-  pytestFlagsArray = [
-    "tests/test_csv.py"
-  ];
+  pytestFlagsArray = [ "tests/test_csv.py" ];
 
   disabledTests = [
     "facet"
diff --git a/pkgs/development/python-modules/datashader/default.nix b/pkgs/development/python-modules/datashader/default.nix
index 899da93bfc5d4..1fc9b1e80de05 100644
--- a/pkgs/development/python-modules/datashader/default.nix
+++ b/pkgs/development/python-modules/datashader/default.nix
@@ -1,38 +1,39 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, dask
-, bokeh
-, toolz
-, datashape
-, numba
-, numpy
-, pandas
-, pillow
-, xarray
-, colorcet
-, param
-, pyct
-, scipy
-, pytestCheckHook
-, pythonOlder
-, nbsmoke
-, fastparquet
-, nbconvert
-, pytest-xdist
-, netcdf4
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  dask,
+  bokeh,
+  toolz,
+  datashape,
+  numba,
+  numpy,
+  pandas,
+  pillow,
+  xarray,
+  colorcet,
+  param,
+  pyct,
+  scipy,
+  pytestCheckHook,
+  pythonOlder,
+  nbsmoke,
+  fastparquet,
+  nbconvert,
+  pytest-xdist,
+  netcdf4,
 }:
 
 buildPythonPackage rec {
   pname = "datashader";
-  version = "0.16.0";
+  version = "0.16.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-7UwRGVdXjcs/z/ly2VT3dYba/XGnNF/VzQadn7BQ0NE=";
+    hash = "sha256-eJmXm0wa26a0/S6GyqP175TE5qsjTLtzBspr/iQ/xN8=";
   };
 
   propagatedBuildInputs = [
@@ -72,9 +73,7 @@ buildPythonPackage rec {
     export HOME=$TMPDIR
   '';
 
-  pytestFlagsArray = [
-    "datashader"
-  ];
+  pytestFlagsArray = [ "datashader" ];
 
   disabledTests = [
     # Not compatible with current version of bokeh
@@ -90,11 +89,9 @@ buildPythonPackage rec {
     "datashader/tests/test_datatypes.py"
   ];
 
-  pythonImportsCheck = [
-    "datashader"
-  ];
+  pythonImportsCheck = [ "datashader" ];
 
-  meta = with lib;{
+  meta = with lib; {
     description = "Data visualization toolchain based on aggregating into a grid";
     mainProgram = "datashader";
     homepage = "https://datashader.org";
diff --git a/pkgs/development/python-modules/datashape/default.nix b/pkgs/development/python-modules/datashape/default.nix
index 459fc548463de..7077087d35875 100644
--- a/pkgs/development/python-modules/datashape/default.nix
+++ b/pkgs/development/python-modules/datashape/default.nix
@@ -1,36 +1,62 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
-, mock
-, numpy
-, multipledispatch
-, python-dateutil
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
+  mock,
+  numpy,
+  multipledispatch,
+  python-dateutil,
+  setuptools,
+  versioneer,
 }:
 
 let
   # Fetcher function looks similar to fetchPypi.
   # Allows for easier overriding, without having to know
   # how the source is actually fetched.
-  fetcher = {pname, version, sha256}: fetchFromGitHub {
-    owner = "blaze";
-    repo = pname;
-    rev = version;
-    inherit sha256;
-  };
-
-in buildPythonPackage rec {
+  fetcher =
+    {
+      pname,
+      version,
+      sha256,
+    }:
+    fetchFromGitHub {
+      owner = "blaze";
+      repo = pname;
+      rev = version;
+      inherit sha256;
+    };
+in
+buildPythonPackage rec {
   pname = "datashape";
   version = "0.5.4";
-  format = "setuptools";
+
+  pyproject = true;
+  build-system = [
+    setuptools
+    versioneer
+  ];
 
   src = fetcher {
     inherit pname version;
     sha256 = "0rhlj2kjj1vx5m73wnc5518rd6cs1zsbgpsvzk893n516k69shcf";
   };
 
-  nativeCheckInputs = [ pytest mock ];
-  propagatedBuildInputs = [ numpy multipledispatch python-dateutil ];
+  postPatch = ''
+    # Remove vendorized versioneer.py
+    rm versioneer.py
+  '';
+
+  nativeCheckInputs = [
+    pytest
+    mock
+  ];
+  dependencies = [
+    numpy
+    multipledispatch
+    python-dateutil
+  ];
 
   # Disable several tests
   # https://github.com/blaze/datashape/issues/232
@@ -44,7 +70,7 @@ in buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/ContinuumIO/datashape";
-    description = "A data description language";
+    description = "Data description language";
     license = lib.licenses.bsd2;
   };
 }
diff --git a/pkgs/development/python-modules/datatable/default.nix b/pkgs/development/python-modules/datatable/default.nix
index 599d2e6cec72b..1ecc3d89e102e 100644
--- a/pkgs/development/python-modules/datatable/default.nix
+++ b/pkgs/development/python-modules/datatable/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pipInstallHook
-, writeText
-, blessed
-, docutils
-, libcxx
-, llvm
-, pytestCheckHook
-, typesentry
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pipInstallHook,
+  writeText,
+  blessed,
+  docutils,
+  libcxx,
+  llvm,
+  pytestCheckHook,
+  typesentry,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,18 @@ buildPythonPackage rec {
   '';
   DT_RELEASE = "1";
 
-  propagatedBuildInputs = [ typesentry blessed ];
-  buildInputs = [ llvm pipInstallHook ];
-  nativeCheckInputs = [ docutils pytestCheckHook ];
+  propagatedBuildInputs = [
+    typesentry
+    blessed
+  ];
+  buildInputs = [
+    llvm
+    pipInstallHook
+  ];
+  nativeCheckInputs = [
+    docutils
+    pytestCheckHook
+  ];
 
   LLVM = llvm;
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-isystem ${lib.getDev libcxx}/include/c++/v1";
diff --git a/pkgs/development/python-modules/datauri/default.nix b/pkgs/development/python-modules/datauri/default.nix
index d5ed9bf0525e9..58fec05849684 100644
--- a/pkgs/development/python-modules/datauri/default.nix
+++ b/pkgs/development/python-modules/datauri/default.nix
@@ -1,43 +1,48 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pydantic
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pydantic,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "datauri";
-  version = "2.0.0";
-  format = "pyproject";
+  version = "2.1.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "fcurella";
     repo = "python-datauri";
     rev = "refs/tags/v${version}";
-    hash = "sha256-k4tlWRasGa2oQykCD9QJl65UAoZQMJVdyCfqlUBBgqY=";
+    hash = "sha256-+R1J4IjJ+Vf/+V2kiZyIyAqTAgGLTMJjGePyVRuO5rs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  pythonImportsCheck = [
-    "datauri"
-  ];
+  dependencies = [ typing-extensions ];
 
   nativeCheckInputs = [
     pydantic
     pytestCheckHook
   ];
 
+  pythonImportsCheck = [ "datauri" ];
+
   disabledTests = [
-    "test_pydantic" # incompatible with pydantic v2
+    # Test is incompatible with pydantic >=2
+    "test_pydantic"
   ];
 
   meta = with lib; {
-    description = "Data URI manipulation made easy.";
+    description = "Module for Data URI manipulation";
     homepage = "https://github.com/fcurella/python-datauri";
+    changelog = "https://github.com/fcurella/python-datauri/releases/tag/v${version}";
     license = licenses.unlicense;
     maintainers = with maintainers; [ yuu ];
   };
diff --git a/pkgs/development/python-modules/datefinder/default.nix b/pkgs/development/python-modules/datefinder/default.nix
index 938f25ee1d702..ff7ebf54c6993 100644
--- a/pkgs/development/python-modules/datefinder/default.nix
+++ b/pkgs/development/python-modules/datefinder/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, python-dateutil
-, pytz
-, regex
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  python-dateutil,
+  pytz,
+  regex,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     python-dateutil
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "datefinder" ];
 
diff --git a/pkgs/development/python-modules/dateparser/default.nix b/pkgs/development/python-modules/dateparser/default.nix
index b97dabbc2d918..3f1fec78aeb30 100644
--- a/pkgs/development/python-modules/dateparser/default.nix
+++ b/pkgs/development/python-modules/dateparser/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, python-dateutil
-, pytz
-, regex
-, tzlocal
-, hijri-converter
-, convertdate
-, fasttext
-, langdetect
-, parameterized
-, pytestCheckHook
-, gitpython
-, parsel
-, requests
-, ruamel-yaml
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  python-dateutil,
+  pytz,
+  regex,
+  tzlocal,
+  hijri-converter,
+  convertdate,
+  fasttext,
+  langdetect,
+  parameterized,
+  pytestCheckHook,
+  gitpython,
+  parsel,
+  requests,
+  ruamel-yaml,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     hash = "sha256-mnL44hojebOwP6qtEBHs5QM4uRmLuGlVNr+sM3jZEKE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     python-dateutil
@@ -46,7 +45,10 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    calendars = [ hijri-converter convertdate ];
+    calendars = [
+      hijri-converter
+      convertdate
+    ];
     fasttext = [ fasttext ];
     langdetect = [ langdetect ];
   };
diff --git a/pkgs/development/python-modules/datetime/default.nix b/pkgs/development/python-modules/datetime/default.nix
index 332babd307de9..b782b923dff2c 100644
--- a/pkgs/development/python-modules/datetime/default.nix
+++ b/pkgs/development/python-modules/datetime/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pytz
-, zope-interface
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pytz,
+  zope-interface,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     zope-interface
   ];
 
-  pythonImportsCheck = [
-    "DateTime"
-  ];
+  pythonImportsCheck = [ "DateTime" ];
 
   meta = with lib; {
     description = "DateTime data type, as known from Zope";
diff --git a/pkgs/development/python-modules/dateutils/default.nix b/pkgs/development/python-modules/dateutils/default.nix
index f9efbb47eb053..9dbe3654a4019 100644
--- a/pkgs/development/python-modules/dateutils/default.nix
+++ b/pkgs/development/python-modules/dateutils/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, python-dateutil, pytz }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python-dateutil,
+  pytz,
+}:
 
 buildPythonPackage rec {
   pname = "dateutils";
@@ -18,7 +24,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "dateutils" ];
 
   meta = with lib; {
-    description = "Utilities for working with datetime objects.";
+    description = "Utilities for working with datetime objects";
     homepage = "https://github.com/jmcantrell/python-dateutils";
     license = licenses.bsd0;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/datrie/default.nix b/pkgs/development/python-modules/datrie/default.nix
index 73f4764d742dc..4c6de5beccd94 100644
--- a/pkgs/development/python-modules/datrie/default.nix
+++ b/pkgs/development/python-modules/datrie/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, wheel
-, cython
-, pytestCheckHook
-, hypothesis
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  wheel,
+  cython,
+  pytestCheckHook,
+  hypothesis,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/dawg-python/default.nix b/pkgs/development/python-modules/dawg-python/default.nix
index 015e6a1d5c348..639b8baa21578 100644
--- a/pkgs/development/python-modules/dawg-python/default.nix
+++ b/pkgs/development/python-modules/dawg-python/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/dazl/default.nix b/pkgs/development/python-modules/dazl/default.nix
index 8e26c9194f9ba..7613795fabe9a 100644
--- a/pkgs/development/python-modules/dazl/default.nix
+++ b/pkgs/development/python-modules/dazl/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
 
-, poetry-core
+  poetry-core,
 
-, aiohttp
-, googleapis-common-protos
-, grpcio
-, protobuf
-, requests
-, semver
-, toposort
+  aiohttp,
+  googleapis-common-protos,
+  grpcio,
+  protobuf,
+  requests,
+  semver,
+  toposort,
 
-#, async_exit_stack
-#, dataclasses
-, google-auth
-, oauthlib
-, prometheus-client
-, pygments
-, pyopenssl
-, typing-extensions
+  #, async_exit_stack
+  #, dataclasses
+  google-auth,
+  oauthlib,
+  prometheus-client,
+  pygments,
+  pyopenssl,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -35,16 +36,15 @@ buildPythonPackage rec {
   patches = [
     # Merged, remove this next release
     (fetchpatch {
-      url = "https://github.com/digital-asset/dazl-client/pull/428.patch";
+      name = "428.patch"; # https://github.com/digital-asset/dazl-client/pull/428
+      url = "https://github.com/digital-asset/dazl-client/commit/a68bad0471d22210f0abf31447a7732477de39d4.patch";
       sha256 = "sha256-Gx9W1XkvMPg8FAOAXijDF5QnMbntk5mR0q5+o5i2KAE=";
     })
   ];
 
   format = "pyproject";
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
diff --git a/pkgs/development/python-modules/db-dtypes/default.nix b/pkgs/development/python-modules/db-dtypes/default.nix
index 528134f7349b6..0b6eb890fb601 100644
--- a/pkgs/development/python-modules/db-dtypes/default.nix
+++ b/pkgs/development/python-modules/db-dtypes/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, packaging
-, pandas
-, pyarrow
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  packaging,
+  pandas,
+  pyarrow,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-FVRqh30mYVfC8zuhPteuvqGYGTp3PW+pi1bquUjYFAg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     numpy
@@ -35,13 +34,9 @@ buildPythonPackage rec {
     pyarrow
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "db_dtypes"
-  ];
+  pythonImportsCheck = [ "db_dtypes" ];
 
   meta = with lib; {
     description = "Pandas Data Types for SQL systems (BigQuery, Spanner)";
diff --git a/pkgs/development/python-modules/dbf/default.nix b/pkgs/development/python-modules/dbf/default.nix
index eb64e37959374..ebe64fa28a509 100644
--- a/pkgs/development/python-modules/dbf/default.nix
+++ b/pkgs/development/python-modules/dbf/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, aenum
-, pythonOlder
-, python
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  aenum,
+  pythonOlder,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,13 @@ buildPythonPackage rec {
     hash = "sha256-MFEi1U0RNvrfDtV4HpvPgKTCibAh76z7Gnmj32IubYw=";
   };
 
-  propagatedBuildInputs = [
-    aenum
-  ];
+  propagatedBuildInputs = [ aenum ];
 
   checkPhase = ''
     ${python.interpreter} -m dbf.test
   '';
 
-  pythonImportsCheck = [
-    "dbf"
-  ];
+  pythonImportsCheck = [ "dbf" ];
 
   meta = with lib; {
     description = "Module for reading/writing dBase, FoxPro, and Visual FoxPro .dbf files";
diff --git a/pkgs/development/python-modules/dbfread/default.nix b/pkgs/development/python-modules/dbfread/default.nix
index 2e7f12e0f061c..029ca35d7785f 100644
--- a/pkgs/development/python-modules/dbfread/default.nix
+++ b/pkgs/development/python-modules/dbfread/default.nix
@@ -1,19 +1,23 @@
-{ lib, fetchPypi, buildPythonPackage }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+}:
 
 buildPythonPackage rec {
-    pname = "dbfread";
-    version = "2.0.7";
-    format = "setuptools";
+  pname = "dbfread";
+  version = "2.0.7";
+  format = "setuptools";
 
-    src = fetchPypi {
-      inherit pname version;
-      sha256 = "07c8a9af06ffad3f6f03e8fe91ad7d2733e31a26d2b72c4dd4cfbae07ee3b73d";
-    };
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "07c8a9af06ffad3f6f03e8fe91ad7d2733e31a26d2b72c4dd4cfbae07ee3b73d";
+  };
 
-    meta = with lib; {
-      description = "Read DBF Files with Python";
-      homepage    = "https://dbfread.readthedocs.org/";
-      license     = with licenses; [ mit ];
-      maintainers = with maintainers; [ vrthra ];
-    };
+  meta = with lib; {
+    description = "Read DBF Files with Python";
+    homepage = "https://dbfread.readthedocs.org/";
+    license = with licenses; [ mit ];
+    maintainers = with maintainers; [ vrthra ];
+  };
 }
diff --git a/pkgs/development/python-modules/dbglib/default.nix b/pkgs/development/python-modules/dbglib/default.nix
index c928e5bb71e02..706d5018e2336 100644
--- a/pkgs/development/python-modules/dbglib/default.nix
+++ b/pkgs/development/python-modules/dbglib/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -14,12 +15,8 @@ buildPythonPackage rec {
     inherit pname version;
     sha256 = "7b4fd5c4949af435a7ab558f87b406acd5ddf9dc7f01fc3b3e99ebcec9a4674c";
   };
-  propagatedBuildInputs = [
-    poetry-core
-  ];
-  pythonImportsCheck = [
-    "dbglib"
-  ];
+  propagatedBuildInputs = [ poetry-core ];
+  pythonImportsCheck = [ "dbglib" ];
   meta = with lib; {
     homepage = "https://github.com/savioxavier/dbglib/";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/dbt-bigquery/default.nix b/pkgs/development/python-modules/dbt-bigquery/default.nix
index d6401c6502a0b..d04bf2788b60a 100644
--- a/pkgs/development/python-modules/dbt-bigquery/default.nix
+++ b/pkgs/development/python-modules/dbt-bigquery/default.nix
@@ -1,21 +1,21 @@
-{ lib
-, agate
-, buildPythonPackage
-, dbt-core
-, fetchFromGitHub
-, google-cloud-bigquery
-, google-cloud-dataproc
-, google-cloud-storage
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
-, urllib3
+{
+  lib,
+  agate,
+  buildPythonPackage,
+  dbt-core,
+  fetchFromGitHub,
+  google-cloud-bigquery,
+  google-cloud-dataproc,
+  google-cloud-storage,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "dbt-bigquery";
-  version = "1.7.7";
+  version = "1.8.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -24,15 +24,12 @@ buildPythonPackage rec {
     owner = "dbt-labs";
     repo = "dbt-bigquery";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+UF49ReSxKQ8ouutOv1b9JcU/6CNk7Yw8f1/tlRvwnU=";
+    hash = "sha256-5sqKvYXKBze6t0yNaeYvwyS919CHMXCv3RRzNnBxfec=";
   };
 
-  pythonRelaxDeps = [
-    "agate"
-  ];
+  pythonRelaxDeps = [ "agate" ];
 
   build-system = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -44,17 +41,11 @@ buildPythonPackage rec {
     google-cloud-dataproc
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests/unit"
-  ];
+  pytestFlagsArray = [ "tests/unit" ];
 
-  pythonImportsCheck = [
-    "dbt.adapters.bigquery"
-  ];
+  pythonImportsCheck = [ "dbt.adapters.bigquery" ];
 
   meta = with lib; {
     description = "Plugin enabling dbt to operate on a BigQuery database";
diff --git a/pkgs/development/python-modules/dbt-core/default.nix b/pkgs/development/python-modules/dbt-core/default.nix
index db61698ebfaa0..c742a1ab667e9 100644
--- a/pkgs/development/python-modules/dbt-core/default.nix
+++ b/pkgs/development/python-modules/dbt-core/default.nix
@@ -1,39 +1,39 @@
-{ lib
-, agate
-, buildPythonPackage
-, cffi
-, click
-, colorama
-, dbt-extractor
-, dbt-semantic-interfaces
-, fetchFromGitHub
-, hologram
-, idna
-, isodate
-, jinja2
-, logbook
-, mashumaro
-, minimal-snowplow-tracker
-, networkx
-, packaging
-, pathspec
-, protobuf
-, python3
-, pythonOlder
-, pythonRelaxDepsHook
-, pytz
-, pyyaml
-, requests
-, setuptools
-, sqlparse
-, typing-extensions
-, urllib3
-, werkzeug
+{
+  lib,
+  agate,
+  buildPythonPackage,
+  cffi,
+  click,
+  colorama,
+  dbt-extractor,
+  dbt-semantic-interfaces,
+  fetchFromGitHub,
+  hologram,
+  idna,
+  isodate,
+  jinja2,
+  logbook,
+  mashumaro,
+  minimal-snowplow-tracker,
+  networkx,
+  packaging,
+  pathspec,
+  protobuf,
+  python3,
+  pythonOlder,
+  pytz,
+  pyyaml,
+  requests,
+  setuptools,
+  sqlparse,
+  typing-extensions,
+  urllib3,
+  werkzeug,
 }:
 
 buildPythonPackage rec {
   pname = "dbt-core";
-  version = "1.7.13";
+  version = "1.8.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -42,7 +42,7 @@ buildPythonPackage rec {
     owner = "dbt-labs";
     repo = "dbt-core";
     rev = "refs/tags/v${version}";
-    hash = "sha256-uai1ihdmJpFkQqpx7edWiwwy0ek4dbclR/2OuiNbaXM=";
+    hash = "sha256-W1bD/XUmBYKzx66/rO//lCG+LOwDSlOW/KQPs0+cKTI=";
   };
 
   sourceRoot = "${src.name}/core";
@@ -58,7 +58,6 @@ buildPythonPackage rec {
   ];
 
   build-system = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -117,7 +116,10 @@ buildPythonPackage rec {
     homepage = "https://github.com/dbt-labs/dbt-core";
     changelog = "https://github.com/dbt-labs/dbt-core/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
-    maintainers = with maintainers; [ mausch tjni ];
+    maintainers = with maintainers; [
+      mausch
+      tjni
+    ];
     mainProgram = "dbt";
   };
 }
diff --git a/pkgs/development/python-modules/dbt-core/with-adapters.nix b/pkgs/development/python-modules/dbt-core/with-adapters.nix
index 006f4a96b853b..92bd22dd2f9ff 100644
--- a/pkgs/development/python-modules/dbt-core/with-adapters.nix
+++ b/pkgs/development/python-modules/dbt-core/with-adapters.nix
@@ -1,18 +1,24 @@
-{ python3
-, dbt-bigquery
-, dbt-core
-, dbt-postgres
-, dbt-redshift
-, dbt-snowflake
+{
+  python3,
+  dbt-bigquery,
+  dbt-core,
+  dbt-postgres,
+  dbt-redshift,
+  dbt-snowflake,
 }:
 let
   adapters = {
-    inherit dbt-bigquery dbt-postgres dbt-redshift dbt-snowflake;
+    inherit
+      dbt-bigquery
+      dbt-postgres
+      dbt-redshift
+      dbt-snowflake
+      ;
   };
 in
-adapterFun: (python3.buildEnv.override {
+adapterFun:
+(python3.buildEnv.override {
   extraLibs = [ dbt-core ] ++ (adapterFun adapters);
   ignoreCollisions = true;
-}).overrideAttrs {
-  meta.mainProgram = dbt-core.meta.mainProgram;
-}
+}).overrideAttrs
+  { meta.mainProgram = dbt-core.meta.mainProgram; }
diff --git a/pkgs/development/python-modules/dbt-extractor/default.nix b/pkgs/development/python-modules/dbt-extractor/default.nix
index 74b1bb4d3d24c..2e3eecc5dfcdd 100644
--- a/pkgs/development/python-modules/dbt-extractor/default.nix
+++ b/pkgs/development/python-modules/dbt-extractor/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, libiconv
-, pythonOlder
-, rustPlatform
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  libiconv,
+  pythonOlder,
+  rustPlatform,
 }:
 
 buildPythonPackage rec {
@@ -32,22 +33,21 @@ buildPythonPackage rec {
     rustPlatform.maturinBuildHook
   ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
-    libiconv
-  ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   # no python tests exist
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dbt_extractor"
-  ];
+  pythonImportsCheck = [ "dbt_extractor" ];
 
   meta = with lib; {
-    description = "A tool that processes the most common jinja value templates in dbt model files";
+    description = "Tool that processes the most common jinja value templates in dbt model files";
     homepage = "https://github.com/dbt-labs/dbt-extractor";
     changelog = "https://github.com/dbt-labs/dbt-extractor/blob/main/CHANGELOG.md";
     license = licenses.asl20;
-    maintainers = with maintainers; [ mausch tjni ];
+    maintainers = with maintainers; [
+      mausch
+      tjni
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/dbt-postgres/default.nix b/pkgs/development/python-modules/dbt-postgres/default.nix
index d2669cb2357e4..8cca80c112856 100644
--- a/pkgs/development/python-modules/dbt-postgres/default.nix
+++ b/pkgs/development/python-modules/dbt-postgres/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, agate
-, buildPythonPackage
-, dbt-core
-, psycopg2
-, pythonOlder
-, setuptools
+{
+  lib,
+  agate,
+  buildPythonPackage,
+  dbt-core,
+  psycopg2,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage {
@@ -19,9 +20,7 @@ buildPythonPackage {
 
   env.DBT_PSYCOPG2_NAME = "psycopg2";
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     agate
@@ -32,9 +31,7 @@ buildPythonPackage {
   # tests exist for the dbt tool but not for this package specifically
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dbt.adapters.postgres"
-  ];
+  pythonImportsCheck = [ "dbt.adapters.postgres" ];
 
   meta = with lib; {
     description = "Plugin enabling dbt to work with a Postgres database";
diff --git a/pkgs/development/python-modules/dbt-redshift/default.nix b/pkgs/development/python-modules/dbt-redshift/default.nix
index ea543b6ee4af5..b818182d13b00 100644
--- a/pkgs/development/python-modules/dbt-redshift/default.nix
+++ b/pkgs/development/python-modules/dbt-redshift/default.nix
@@ -1,20 +1,20 @@
-{ lib
-, agate
-, boto3
-, buildPythonPackage
-, dbt-core
-, dbt-postgres
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, redshift-connector
-, setuptools
+{
+  lib,
+  agate,
+  boto3,
+  buildPythonPackage,
+  dbt-core,
+  dbt-postgres,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  redshift-connector,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "dbt-redshift";
-  version = "1.7.7";
+  version = "1.8.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "dbt-labs";
     repo = "dbt-redshift";
     rev = "refs/tags/v${version}";
-    hash = "sha256-DKqJ/8hEPe9O9YrAjrTL2Gh1lj6QrdtHtd7aarZ7GkQ=";
+    hash = "sha256-XTAWCJ+aTFrAuggS3dbR9X08/x9ypXgE8tlWTaOmyRc=";
   };
 
   pythonRelaxDeps = [
@@ -31,13 +31,8 @@ buildPythonPackage rec {
     "redshift-connector"
   ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     agate
@@ -47,17 +42,11 @@ buildPythonPackage rec {
     redshift-connector
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests/unit"
-  ];
+  pytestFlagsArray = [ "tests/unit" ];
 
-  pythonImportsCheck = [
-    "dbt.adapters.redshift"
-  ];
+  pythonImportsCheck = [ "dbt.adapters.redshift" ];
 
   meta = with lib; {
     description = "Plugin enabling dbt to work with Amazon Redshift";
diff --git a/pkgs/development/python-modules/dbt-semantic-interfaces/default.nix b/pkgs/development/python-modules/dbt-semantic-interfaces/default.nix
index d63a0cee0447a..5f6a9d41fc4d3 100644
--- a/pkgs/development/python-modules/dbt-semantic-interfaces/default.nix
+++ b/pkgs/development/python-modules/dbt-semantic-interfaces/default.nix
@@ -1,26 +1,26 @@
-{ lib
-, buildPythonPackage
-, click
-, dateutils
-, dbt-postgres
-, fetchFromGitHub
-, hatchling
-, pythonRelaxDepsHook
-, hypothesis
-, importlib-metadata
-, jinja2
-, jsonschema
-, more-itertools
-, pydantic
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  click,
+  dateutils,
+  dbt-postgres,
+  fetchFromGitHub,
+  hatchling,
+  hypothesis,
+  importlib-metadata,
+  jinja2,
+  jsonschema,
+  more-itertools,
+  pydantic,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "dbt-semantic-interfaces";
-  version = "0.4.4";
+  version = "0.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -29,16 +29,13 @@ buildPythonPackage rec {
     owner = "dbt-labs";
     repo = "dbt-semantic-interfaces";
     rev = "refs/tags/v${version}";
-    hash = "sha256-uvwcnOKjwxEmA+/QRGSRofpoE4jZzmE02mGSDLINrJw=";
+    hash = "sha256-77WKfegchgHIxgzL3Yhtx/4S5pYi6HeVCQH/19YscWA=";
   };
 
-  pythonRelaxDeps = [
-    "importlib-metadata"
-  ];
+  pythonRelaxDeps = [ "importlib-metadata" ];
 
   build-system = [
     hatchling
-    pythonRelaxDepsHook
   ];
 
   dependencies = [
@@ -58,9 +55,7 @@ buildPythonPackage rec {
     hypothesis
   ];
 
-  pythonImportsCheck = [
-    "dbt_semantic_interfaces"
-  ];
+  pythonImportsCheck = [ "dbt_semantic_interfaces" ];
 
   meta = with lib; {
     description = "Shared interfaces used by dbt-core and MetricFlow projects";
diff --git a/pkgs/development/python-modules/dbt-snowflake/default.nix b/pkgs/development/python-modules/dbt-snowflake/default.nix
index a25ffaba5581b..17e9cd092709d 100644
--- a/pkgs/development/python-modules/dbt-snowflake/default.nix
+++ b/pkgs/development/python-modules/dbt-snowflake/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, dbt-core
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, snowflake-connector-python
+{
+  lib,
+  buildPythonPackage,
+  dbt-core,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  snowflake-connector-python,
 }:
 
 buildPythonPackage rec {
   pname = "dbt-snowflake";
-  version = "1.7.3";
+  version = "1.8.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,29 +20,21 @@ buildPythonPackage rec {
     owner = "dbt-labs";
     repo = "dbt-snowflake";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ksnLQdoXR8KVtYTFdlaWT8UYjAsLNyEVVap/QHtm+j8=";
+    hash = "sha256-jvhjf+Ce/oyHXFxMryz5Uy6Hq5Sx6vKgaGEJVAzqSdA=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     dbt-core
     snowflake-connector-python
   ] ++ snowflake-connector-python.optional-dependencies.secure-local-storage;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests/unit"
-  ];
+  pytestFlagsArray = [ "tests/unit" ];
 
-  pythonImportsCheck = [
-    "dbt.adapters.snowflake"
-  ];
+  pythonImportsCheck = [ "dbt.adapters.snowflake" ];
 
   meta = with lib; {
     description = "Plugin enabling dbt to work with Snowflake";
diff --git a/pkgs/development/python-modules/dbus-client-gen/default.nix b/pkgs/development/python-modules/dbus-client-gen/default.nix
index fdc173258e50e..bdc13650ff710 100644
--- a/pkgs/development/python-modules/dbus-client-gen/default.nix
+++ b/pkgs/development/python-modules/dbus-client-gen/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -14,7 +15,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A Python Library for Generating D-Bus Client Code";
+    description = "Python Library for Generating D-Bus Client Code";
     homepage = "https://github.com/stratis-storage/dbus-client-gen";
     license = licenses.mpl20;
     maintainers = with maintainers; [ nickcao ];
diff --git a/pkgs/development/python-modules/dbus-deviation/default.nix b/pkgs/development/python-modules/dbus-deviation/default.nix
index 739c9ba43aca8..c804f94bc1b99 100644
--- a/pkgs/development/python-modules/dbus-deviation/default.nix
+++ b/pkgs/development/python-modules/dbus-deviation/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, lxml
-, setuptools
-, setuptools-git
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  lxml,
+  setuptools,
+  setuptools-git,
 }:
 
 buildPythonPackage rec {
@@ -25,15 +26,13 @@ buildPythonPackage rec {
     setuptools-git
   ];
 
-  propagatedBuildInputs = [
-    lxml
-  ];
+  propagatedBuildInputs = [ lxml ];
 
   pythonImportsCheck = [ "dbusdeviation" ];
 
   meta = with lib; {
     homepage = "https://tecnocode.co.uk/dbus-deviation/";
-    description = "A project for parsing D-Bus introspection XML and processing it in various ways";
+    description = "Project for parsing D-Bus introspection XML and processing it in various ways";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ lilyinstarlight ];
   };
diff --git a/pkgs/development/python-modules/dbus-fast/default.nix b/pkgs/development/python-modules/dbus-fast/default.nix
index d4db4490415b3..e26f2a522e17d 100644
--- a/pkgs/development/python-modules/dbus-fast/default.nix
+++ b/pkgs/development/python-modules/dbus-fast/default.nix
@@ -1,44 +1,43 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "dbus-fast";
-  version = "2.21.1";
-  format = "pyproject";
+  version = "2.21.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "Bluetooth-Devices";
-    repo = pname;
+    repo = "dbus-fast";
     rev = "refs/tags/v${version}";
-    hash = "sha256-L3PZjxbcVfqWktWuN5l8JxfR1GyxuA+1ZtO/W2YqFZA=";
+    hash = "sha256-Wmv6R/aOBFPSzTVEElYsg/CrywB/pAYPWZBsMhpqtFQ=";
   };
 
   # The project can build both an optimized cython version and an unoptimized
   # python version. This ensures we fail if we build the wrong one.
   env.REQUIRE_CYTHON = 1;
 
-  nativeBuildInputs = [
+  build-system = [
     cython
     poetry-core
     setuptools
     wheel
   ];
 
-  propagatedBuildInputs = [
-    async-timeout
-  ];
+  dependencies = [ async-timeout ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -63,6 +62,7 @@ buildPythonPackage rec {
     "test_aio_properties"
     "test_aio_proxy_object"
     "test_bus_disconnect_before_reply"
+    "test_error_handling"
     "test_export_alias"
     "test_export_introspection"
     "test_export_unexport"
diff --git a/pkgs/development/python-modules/dbus-next/default.nix b/pkgs/development/python-modules/dbus-next/default.nix
index 0ce5b2f903948..572fa905e82de 100644
--- a/pkgs/development/python-modules/dbus-next/default.nix
+++ b/pkgs/development/python-modules/dbus-next/default.nix
@@ -1,23 +1,31 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, dbus, pytest, pytest-cov, pytest-asyncio, pytest-timeout
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  setuptools,
+  dbus,
+  pytest,
+  pytest-cov,
+  pytest-asyncio,
+  pytest-timeout,
 }:
 
 buildPythonPackage rec {
   pname = "dbus-next";
   version = "0.2.3";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "altdesktop";
     repo = "python-dbus-next";
-    rev = "v${version}";
+    rev = "refs/tags/v${version}";
     hash = "sha256-EKEQZFRUe+E65Z6DNCJFL5uCI5kbXrN7Tzd4O0X5Cqo=";
   };
 
+  build-system = [ setuptools ];
+
   nativeCheckInputs = [
     dbus
     pytest
@@ -36,7 +44,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A zero-dependency DBus library for Python with asyncio support";
+    description = "Zero-dependency DBus library for Python with asyncio support";
     homepage = "https://github.com/altdesktop/python-dbus-next";
     changelog = "https://github.com/altdesktop/python-dbus-next/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/dbus-python-client-gen/default.nix b/pkgs/development/python-modules/dbus-python-client-gen/default.nix
index 15b696f62bdb8..5b4bd5121d052 100644
--- a/pkgs/development/python-modules/dbus-python-client-gen/default.nix
+++ b/pkgs/development/python-modules/dbus-python-client-gen/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, into-dbus-python
-, dbus-python
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  into-dbus-python,
+  dbus-python,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,14 +27,12 @@ buildPythonPackage rec {
     dbus-python
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "dbus_python_client_gen" ];
 
   meta = with lib; {
-    description = "A Python library for generating dbus-python client code";
+    description = "Python library for generating dbus-python client code";
     homepage = "https://github.com/stratis-storage/dbus-python-client-gen";
     changelog = "https://github.com/stratis-storage/dbus-python-client-gen/blob/v${version}/CHANGES.txt";
     license = licenses.mpl20;
diff --git a/pkgs/development/python-modules/dbus-python/default.nix b/pkgs/development/python-modules/dbus-python/default.nix
index 4e6f67f0a8ec9..937ec9511ef5e 100644
--- a/pkgs/development/python-modules/dbus-python/default.nix
+++ b/pkgs/development/python-modules/dbus-python/default.nix
@@ -1,101 +1,106 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, fetchpatch
-, isPyPy
-, python
-
-# build-system
-, meson
-, meson-python
-, pkg-config
-
-# native dependencies
-, dbus
-, dbus-glib
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  fetchpatch,
+  isPyPy,
+  python,
+
+  # build-system
+  meson,
+  meson-python,
+  pkg-config,
+
+  # native dependencies
+  dbus,
+  dbus-glib,
 }:
 
-buildPythonPackage rec {
-  pname = "dbus-python";
-  version = "1.3.2";
-  pyproject = true;
-
-  disabled = isPyPy;
-
-  outputs = [
-    "out"
-    "dev"
-  ];
-
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-rWeBkwhhi1BpU3viN/jmjKHH/Mle5KEh/mhFsUGCSPg=";
-  };
-
-  patches = [
-    # reduce required dependencies
-    # https://gitlab.freedesktop.org/dbus/dbus-python/-/merge_requests/23
-    (fetchpatch {
-      url = "https://gitlab.freedesktop.org/dbus/dbus-python/-/commit/d5e19698a8d6e1485f05b67a5b2daa2392819aaf.patch";
-      hash = "sha256-Rmj/ByRLiLnIF3JsMBElJugxsG8IARcBdixLhoWgIYU=";
-    })
-  ];
-
-  postPatch = ''
-    # we provide patchelf natively, not through the python package
-    sed -i '/patchelf/d' pyproject.toml
-
-    # dont run autotols configure phase
-    rm configure.ac configure
-
-    patchShebangs test/*.sh
-  '';
-
-  nativeBuildInputs = [
-    meson
-    meson-python
-    pkg-config
-  ];
-
-  buildInputs = [
-    dbus
-    dbus-glib
-  ];
-
-  pypaBuildFlags = [
-    # Don't discard meson build directory, still needed for tests!
-    "-Cbuild-dir=_meson-build"
-  ];
-
-  # workaround bug in meson-python
-  # https://github.com/mesonbuild/meson-python/issues/240
-  postInstall = ''
-    mkdir -p $dev/lib
-    mv $out/${python.sitePackages}/.dbus_python.mesonpy.libs/pkgconfig/ $dev/lib
-  '';
-
-  # make sure the Cflags in the pkgconfig file are correct and make the structure backwards compatible
-  postFixup = ''
-    ln -s $dev/include/*/dbus_python/dbus-1.0/ $dev/include/dbus-1.0
-  '';
-
-  nativeCheckInputs = [
-    dbus.out
-  ];
-
-  checkPhase = ''
-    runHook preCheck
-
-    meson test -C _meson-build --no-rebuild --print-errorlogs
-
-    runHook postCheck
-  '';
-
-  meta = with lib; {
-    description = "Python DBus bindings";
-    homepage = "https://gitlab.freedesktop.org/dbus/dbus-python";
-    license = licenses.mit;
-    platforms = dbus.meta.platforms;
-    maintainers = with maintainers; [ ];
-  };
-}
+lib.fix (
+  finalPackage:
+  buildPythonPackage rec {
+    pname = "dbus-python";
+    version = "1.3.2";
+    pyproject = true;
+
+    disabled = isPyPy;
+
+    outputs = [
+      "out"
+      "dev"
+    ];
+
+    src = fetchPypi {
+      inherit pname version;
+      hash = "sha256-rWeBkwhhi1BpU3viN/jmjKHH/Mle5KEh/mhFsUGCSPg=";
+    };
+
+    patches = [
+      # reduce required dependencies
+      # https://gitlab.freedesktop.org/dbus/dbus-python/-/merge_requests/23
+      (fetchpatch {
+        url = "https://gitlab.freedesktop.org/dbus/dbus-python/-/commit/d5e19698a8d6e1485f05b67a5b2daa2392819aaf.patch";
+        hash = "sha256-Rmj/ByRLiLnIF3JsMBElJugxsG8IARcBdixLhoWgIYU=";
+      })
+    ];
+
+    postPatch = ''
+      # we provide patchelf natively, not through the python package
+      sed -i '/patchelf/d' pyproject.toml
+
+      # dont run autotols configure phase
+      rm configure.ac configure
+
+      patchShebangs test/*.sh
+    '';
+
+    nativeBuildInputs = [
+      dbus # build systems checks for `dbus-run-session` in PATH
+      meson
+      meson-python
+      pkg-config
+    ];
+
+    buildInputs = [
+      dbus
+      dbus-glib
+    ];
+
+    pypaBuildFlags = [
+      # Don't discard meson build directory, still needed for tests!
+      "-Cbuild-dir=_meson-build"
+    ];
+
+    mesonFlags = [ (lib.mesonBool "tests" finalPackage.doInstallCheck) ];
+
+    # workaround bug in meson-python
+    # https://github.com/mesonbuild/meson-python/issues/240
+    postInstall = ''
+      mkdir -p $dev/lib
+      mv $out/${python.sitePackages}/.dbus_python.mesonpy.libs/pkgconfig/ $dev/lib
+    '';
+
+    # make sure the Cflags in the pkgconfig file are correct and make the structure backwards compatible
+    postFixup = ''
+      ln -s $dev/include/*/dbus_python/dbus-1.0/ $dev/include/dbus-1.0
+    '';
+
+    nativeCheckInputs = [ dbus.out ];
+
+    checkPhase = ''
+      runHook preCheck
+
+      meson test -C _meson-build --no-rebuild --print-errorlogs
+
+      runHook postCheck
+    '';
+
+    meta = with lib; {
+      description = "Python DBus bindings";
+      homepage = "https://gitlab.freedesktop.org/dbus/dbus-python";
+      license = licenses.mit;
+      platforms = dbus.meta.platforms;
+      maintainers = with maintainers; [ ];
+    };
+  }
+)
diff --git a/pkgs/development/python-modules/dbus-signature-pyparsing/default.nix b/pkgs/development/python-modules/dbus-signature-pyparsing/default.nix
index 083a4d7dc7dc3..aa3892ee9aaa8 100644
--- a/pkgs/development/python-modules/dbus-signature-pyparsing/default.nix
+++ b/pkgs/development/python-modules/dbus-signature-pyparsing/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyparsing
-, pytestCheckHook
-, hypothesis
-, hs-dbus-signature
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyparsing,
+  pytestCheckHook,
+  hypothesis,
+  hs-dbus-signature,
 }:
 
 buildPythonPackage rec {
@@ -29,7 +30,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "dbus_signature_pyparsing" ];
 
   meta = with lib; {
-    description = "A Parser for a D-Bus Signature";
+    description = "Parser for a D-Bus Signature";
     homepage = "https://github.com/stratis-storage/dbus-signature-pyparsing";
     license = licenses.asl20;
     maintainers = with maintainers; [ nickcao ];
diff --git a/pkgs/development/python-modules/dbutils/default.nix b/pkgs/development/python-modules/dbutils/default.nix
index 6ad3438704700..2995db09d4a67 100644
--- a/pkgs/development/python-modules/dbutils/default.nix
+++ b/pkgs/development/python-modules/dbutils/default.nix
@@ -1,14 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dbutils";
   version = "3.1.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -18,18 +20,17 @@ buildPythonPackage rec {
     hash = "sha256-6lKLoRBjJA7qgjRevG98yTJMBuQulCCwC80kWpW/zCQ=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "dbutils"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  meta = with lib; {
+  pythonImportsCheck = [ "dbutils" ];
+
+  meta = {
     description = "Database connections for multi-threaded environments";
     homepage = "https://webwareforpython.github.io/DBUtils/";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    changelog = "https://webwareforpython.github.io/DBUtils/changelog.html";
+    license = lib.licenses.mit;
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/dcmstack/default.nix b/pkgs/development/python-modules/dcmstack/default.nix
index 8e7b74fc8dd38..fd84640e8d788 100644
--- a/pkgs/development/python-modules/dcmstack/default.nix
+++ b/pkgs/development/python-modules/dcmstack/default.nix
@@ -1,27 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, nibabel
-, pydicom
-, pylibjpeg-libjpeg
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nibabel,
+  pydicom,
+  pylibjpeg-libjpeg,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "dcmstack";
   version = "0.9";
-  format = "setuptools";
+  pyproject = true;
+
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "moloney";
-    repo = pname;
+    repo = "dcmstack";
     rev = "refs/tags/v${version}";
     hash = "sha256-GVzih9H2m2ZGSuZMRuaDG78b95PI3j0WQw5M3l4KNCs=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     nibabel
     pydicom
     pylibjpeg-libjpeg
@@ -29,9 +34,16 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ pytestCheckHook ];
 
+  pythonImportsCheck = [ "dcmstack" ];
+
+  disabledTestPaths = [
+    # AttributeError: 'TestNitoolCli' object has no attribute 'out_dir'
+    "test/test_cli.py"
+  ];
+
   meta = with lib; {
-    homepage = "https://github.com/moloney/dcmstack";
     description = "DICOM to Nifti conversion preserving metadata";
+    homepage = "https://github.com/moloney/dcmstack";
     license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
   };
diff --git a/pkgs/development/python-modules/dctorch/default.nix b/pkgs/development/python-modules/dctorch/default.nix
index d44d00629cffc..90bfbceae4c26 100644
--- a/pkgs/development/python-modules/dctorch/default.nix
+++ b/pkgs/development/python-modules/dctorch/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, poetry-core
-, numpy
-, scipy
-, torch
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  numpy,
+  scipy,
+  torch,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-TmfLAkiofrQNWYBhIlY4zafbZPgFftISCGloO/rlEG4=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     numpy
@@ -27,9 +26,7 @@ buildPythonPackage rec {
     torch
   ];
 
-  pythonImportsCheck = [
-    "dctorch"
-  ];
+  pythonImportsCheck = [ "dctorch" ];
 
   doCheck = false; # no tests
 
diff --git a/pkgs/development/python-modules/ddt/default.nix b/pkgs/development/python-modules/ddt/default.nix
index 1923fb5733c14..cbe1451875073 100644
--- a/pkgs/development/python-modules/ddt/default.nix
+++ b/pkgs/development/python-modules/ddt/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-
-# build-system
-, setuptools
-
-# tests
-, aiounittest
-, mock
-, pytestCheckHook
-, pyyaml
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+
+  # tests
+  aiounittest,
+  mock,
+  pytestCheckHook,
+  pyyaml,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-0hXWsIOWMBPEoZseTc1qlugOQ6t3UZWXpqz88umj4Es=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # aiounittest is not compatible with Python 3.12.
   doCheck = pythonOlder "3.12";
diff --git a/pkgs/development/python-modules/deal-solver/default.nix b/pkgs/development/python-modules/deal-solver/default.nix
index c47d5d1c92b4c..8acefba226a8b 100644
--- a/pkgs/development/python-modules/deal-solver/default.nix
+++ b/pkgs/development/python-modules/deal-solver/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, flit-core
-, z3-solver
-, astroid
-, pytestCheckHook
-, hypothesis
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  flit-core,
+  z3-solver,
+  astroid,
+  pytestCheckHook,
+  hypothesis,
 }:
 
 buildPythonPackage rec {
@@ -26,7 +26,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     flit-core
-    pythonRelaxDepsHook
   ];
 
   # z3 does not provide a dist-info, so python-runtime-deps-check will fail
diff --git a/pkgs/development/python-modules/deal/default.nix b/pkgs/development/python-modules/deal/default.nix
index 7c75c5b0f608f..2af4c31acca75 100644
--- a/pkgs/development/python-modules/deal/default.nix
+++ b/pkgs/development/python-modules/deal/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, astroid
-, buildPythonPackage
-, deal-solver
-, docstring-parser
-, fetchFromGitHub
-, flit-core
-, hypothesis
-, marshmallow
-, pygments
-, pytestCheckHook
-, pythonOlder
-, sphinx
-, typeguard
-, urllib3
-, vaa
+{
+  lib,
+  astroid,
+  buildPythonPackage,
+  deal-solver,
+  docstring-parser,
+  fetchFromGitHub,
+  flit-core,
+  hypothesis,
+  marshmallow,
+  pygments,
+  pytestCheckHook,
+  pythonOlder,
+  sphinx,
+  typeguard,
+  urllib3,
+  vaa,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
       --replace-fail '"--cov-report=term-missing:skip-covered",' ""
   '';
 
-  build-system = [
-    flit-core
-  ];
+  build-system = [ flit-core ];
 
   dependencies = [
     astroid
@@ -89,9 +88,7 @@ buildPythonPackage rec {
     "tests/test_testing.py"
   ];
 
-  pythonImportsCheck = [
-    "deal"
-  ];
+  pythonImportsCheck = [ "deal" ];
 
   meta = with lib; {
     description = "Library for design by contract (DbC) and checking values, exceptions, and side-effects";
diff --git a/pkgs/development/python-modules/deap/default.nix b/pkgs/development/python-modules/deap/default.nix
index aa581062c5f9d..ec804ae1ba936 100644
--- a/pkgs/development/python-modules/deap/default.nix
+++ b/pkgs/development/python-modules/deap/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, matplotlib
-, numpy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  matplotlib,
+  numpy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,19 @@ buildPythonPackage rec {
     hash = "sha256-zAHemJLfp9G8mAPasoiS/q0XfwGCyB20c2CiQOrXeP8=";
   };
 
-  propagatedBuildInputs = [ matplotlib numpy ];
+  propagatedBuildInputs = [
+    matplotlib
+    numpy
+  ];
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A novel evolutionary computation framework for rapid prototyping and testing of ideas";
+    description = "Novel evolutionary computation framework for rapid prototyping and testing of ideas";
     homepage = "https://github.com/DEAP/deap";
     license = licenses.lgpl3Plus;
-    maintainers = with maintainers; [ getpsyched psyanticy ];
+    maintainers = with maintainers; [
+      getpsyched
+      psyanticy
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/debian-inspector/default.nix b/pkgs/development/python-modules/debian-inspector/default.nix
index 0add3d134ec72..571040b89fa0f 100644
--- a/pkgs/development/python-modules/debian-inspector/default.nix
+++ b/pkgs/development/python-modules/debian-inspector/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, chardet
-, attrs
-, commoncode
-, pytestCheckHook
-, setuptools-scm
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  chardet,
+  attrs,
+  commoncode,
+  pytestCheckHook,
+  setuptools-scm,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
 
   dontConfigure = true;
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     chardet
@@ -34,18 +33,18 @@ buildPythonPackage rec {
     commoncode
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "debian_inspector"
-  ];
+  pythonImportsCheck = [ "debian_inspector" ];
 
   meta = with lib; {
     description = "Utilities to parse Debian package, copyright and control files";
     homepage = "https://github.com/nexB/debian-inspector";
-    license = with licenses; [ asl20 bsd3 mit ];
+    license = with licenses; [
+      asl20
+      bsd3
+      mit
+    ];
     maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/debian/default.nix b/pkgs/development/python-modules/debian/default.nix
index 70b33cfa7a3b7..f20370b864989 100644
--- a/pkgs/development/python-modules/debian/default.nix
+++ b/pkgs/development/python-modules/debian/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, chardet
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  chardet,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-jPZ3ow28tL56mVNsF+ETCKgnpNIgKNxZpn9sbdPw9Yw=";
   };
 
-  propagatedBuildInputs = [
-    chardet
-  ];
+  propagatedBuildInputs = [ chardet ];
 
   # No tests in archive
   doCheck = false;
 
-  pythonImportsCheck = [
-    "debian"
-  ];
+  pythonImportsCheck = [ "debian" ];
 
   meta = with lib; {
     description = "Debian package related modules";
diff --git a/pkgs/development/python-modules/debianbts/default.nix b/pkgs/development/python-modules/debianbts/default.nix
index 013f8724067ce..3131f9077d10d 100644
--- a/pkgs/development/python-modules/debianbts/default.nix
+++ b/pkgs/development/python-modules/debianbts/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pysimplesoap
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pysimplesoap,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,20 +23,14 @@ buildPythonPackage rec {
     sed -i "/--cov/d" pyproject.toml
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    pysimplesoap
-  ];
+  propagatedBuildInputs = [ pysimplesoap ];
 
   # Most tests require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "debianbts"
-  ];
+  pythonImportsCheck = [ "debianbts" ];
 
   meta = with lib; {
     description = "Python interface to Debian's Bug Tracking System";
diff --git a/pkgs/development/python-modules/debtcollector/default.nix b/pkgs/development/python-modules/debtcollector/default.nix
index 14fdff4243caf..5174c46c444a8 100644
--- a/pkgs/development/python-modules/debtcollector/default.nix
+++ b/pkgs/development/python-modules/debtcollector/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi, pbr, six, wrapt, callPackage }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pbr,
+  six,
+  wrapt,
+  callPackage,
+}:
 
 buildPythonPackage rec {
   pname = "debtcollector";
@@ -12,7 +20,10 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ pbr ];
 
-  propagatedBuildInputs = [ six wrapt ];
+  propagatedBuildInputs = [
+    six
+    wrapt
+  ];
 
   # check in passthru.tests.pytest to escape infinite recursion with other oslo components
   doCheck = false;
@@ -24,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "debtcollector" ];
 
   meta = with lib; {
-    description = "A collection of Python deprecation patterns and strategies that help you collect your technical debt in a non-destructive manner";
+    description = "Collection of Python deprecation patterns and strategies that help you collect your technical debt in a non-destructive manner";
     homepage = "https://github.com/openstack/debtcollector";
     license = licenses.asl20;
     maintainers = teams.openstack.members;
diff --git a/pkgs/development/python-modules/debtcollector/tests.nix b/pkgs/development/python-modules/debtcollector/tests.nix
index 19386cdb53b8e..846db4f0bf697 100644
--- a/pkgs/development/python-modules/debtcollector/tests.nix
+++ b/pkgs/development/python-modules/debtcollector/tests.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, debtcollector
-, stestr
+{
+  buildPythonPackage,
+  debtcollector,
+  stestr,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/debts/default.nix b/pkgs/development/python-modules/debts/default.nix
index c82a65500451b..36e51d2b4477b 100644
--- a/pkgs/development/python-modules/debts/default.nix
+++ b/pkgs/development/python-modules/debts/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, python
-, buildPythonPackage
-, fetchFromGitLab
-, isPy27
-, jinja2
-, pytest
+{
+  lib,
+  python,
+  buildPythonPackage,
+  fetchFromGitLab,
+  isPy27,
+  jinja2,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -36,7 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "A simple library and cli-tool to help you solve some debts settlement scenarios";
+    description = "Simple library and cli-tool to help you solve some debts settlement scenarios";
     mainProgram = "debts";
     license = licenses.beerware;
     maintainers = [ maintainers.symphorien ];
diff --git a/pkgs/development/python-modules/debuglater/default.nix b/pkgs/development/python-modules/debuglater/default.nix
index 8eabbacf7c863..503dc862497b6 100644
--- a/pkgs/development/python-modules/debuglater/default.nix
+++ b/pkgs/development/python-modules/debuglater/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, colorama
-, dill
-, fetchFromGitHub
-, numpy
-, pandas
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  colorama,
+  dill,
+  fetchFromGitHub,
+  numpy,
+  pandas,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,14 +24,10 @@ buildPythonPackage rec {
     hash = "sha256-o9IAk3EN8ghEft7Y7Xx+sEjWMNgoyiZ0eiBqnCyXkm8=";
   };
 
-  propagatedBuildInputs = [
-    colorama
-  ];
+  propagatedBuildInputs = [ colorama ];
 
   passthru.optional-dependencies = {
-    all = [
-      dill
-    ];
+    all = [ dill ];
   };
 
   nativeCheckInputs = [
@@ -39,9 +36,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ passthru.optional-dependencies.all;
 
-  pythonImportsCheck = [
-    "debuglater"
-  ];
+  pythonImportsCheck = [ "debuglater" ];
 
   meta = with lib; {
     description = "Module for post-mortem debugging of Python programs";
diff --git a/pkgs/development/python-modules/debugpy/default.nix b/pkgs/development/python-modules/debugpy/default.nix
index 4ba770e251c65..92f42bd90d64d 100644
--- a/pkgs/development/python-modules/debugpy/default.nix
+++ b/pkgs/development/python-modules/debugpy/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, substituteAll
-, gdb
-, lldb
-, pytestCheckHook
-, pytest-xdist
-, pytest-timeout
-, importlib-metadata
-, psutil
-, django
-, requests
-, gevent
-, numpy
-, flask
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  substituteAll,
+  gdb,
+  lldb,
+  pytestCheckHook,
+  pytest-xdist,
+  pytest-timeout,
+  importlib-metadata,
+  psutil,
+  django,
+  requests,
+  gevent,
+  numpy,
+  flask,
 }:
 
 buildPythonPackage rec {
@@ -32,57 +33,64 @@ buildPythonPackage rec {
     hash = "sha256-2TkieSQYxnlUroSD9wNKNaHUTLRksFWL/6XmSNGTCA4=";
   };
 
-  patches = [
-    # Use nixpkgs version instead of versioneer
-    (substituteAll {
-      src = ./hardcode-version.patch;
-      inherit version;
-    })
-
-    # Fix importing debugpy in:
-    # - test_nodebug[module-launch(externalTerminal)]
-    # - test_nodebug[module-launch(integratedTerminal)]
-    #
-    # NOTE: The import failures seen in these tests without the patch
-    # will be seen if a user "installs" debugpy by adding it to PYTHONPATH.
-    # To avoid this issue, debugpy should be installed using python.withPackages:
-    # python.withPackages (ps: with ps; [ debugpy ])
-    ./fix-test-pythonpath.patch
-
-    # Attach pid tests are disabled by default on windows & macos,
-    # but are also flaky on linux:
-    # - https://github.com/NixOS/nixpkgs/issues/262000
-    # - https://github.com/NixOS/nixpkgs/issues/251045
-    ./skip-attach-pid-tests.patch
-  ] ++ lib.optionals stdenv.isLinux [
-    # Hard code GDB path (used to attach to process)
-    (substituteAll {
-      src = ./hardcode-gdb.patch;
-      inherit gdb;
-    })
-  ] ++ lib.optionals stdenv.isDarwin [
-    # Hard code LLDB path (used to attach to process)
-    (substituteAll {
-      src = ./hardcode-lldb.patch;
-      inherit lldb;
-    })
-  ];
+  patches =
+    [
+      # Use nixpkgs version instead of versioneer
+      (substituteAll {
+        src = ./hardcode-version.patch;
+        inherit version;
+      })
+
+      # Fix importing debugpy in:
+      # - test_nodebug[module-launch(externalTerminal)]
+      # - test_nodebug[module-launch(integratedTerminal)]
+      #
+      # NOTE: The import failures seen in these tests without the patch
+      # will be seen if a user "installs" debugpy by adding it to PYTHONPATH.
+      # To avoid this issue, debugpy should be installed using python.withPackages:
+      # python.withPackages (ps: with ps; [ debugpy ])
+      ./fix-test-pythonpath.patch
+
+      # Attach pid tests are disabled by default on windows & macos,
+      # but are also flaky on linux:
+      # - https://github.com/NixOS/nixpkgs/issues/262000
+      # - https://github.com/NixOS/nixpkgs/issues/251045
+      ./skip-attach-pid-tests.patch
+    ]
+    ++ lib.optionals stdenv.isLinux [
+      # Hard code GDB path (used to attach to process)
+      (substituteAll {
+        src = ./hardcode-gdb.patch;
+        inherit gdb;
+      })
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # Hard code LLDB path (used to attach to process)
+      (substituteAll {
+        src = ./hardcode-lldb.patch;
+        inherit lldb;
+      })
+    ];
 
   # Remove pre-compiled "attach" libraries and recompile for host platform
   # Compile flags taken from linux_and_mac/compile_linux.sh & linux_and_mac/compile_mac.sh
-  preBuild = ''(
-    set -x
-    cd src/debugpy/_vendored/pydevd/pydevd_attach_to_process
-    rm *.so *.dylib *.dll *.exe *.pdb
-    $CXX linux_and_mac/attach.cpp -Ilinux_and_mac -std=c++11 -fPIC -nostartfiles ${{
-      "x86_64-linux"   = "-shared -o attach_linux_amd64.so";
-      "i686-linux"     = "-shared -o attach_linux_x86.so";
-      "aarch64-linux"  = "-shared -o attach_linux_arm64.so";
-      "x86_64-darwin"  = "-D_REENTRANT -dynamiclib -lc -o attach_x86_64.dylib";
-      "i686-darwin"    = "-D_REENTRANT -dynamiclib -lc -o attach_x86.dylib";
-      "aarch64-darwin" = "-D_REENTRANT -dynamiclib -lc -o attach_arm64.dylib";
-    }.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}")}
-  )'';
+  preBuild = ''
+    (
+        set -x
+        cd src/debugpy/_vendored/pydevd/pydevd_attach_to_process
+        rm *.so *.dylib *.dll *.exe *.pdb
+        $CXX linux_and_mac/attach.cpp -Ilinux_and_mac -std=c++11 -fPIC -nostartfiles ${
+          {
+            "x86_64-linux" = "-shared -o attach_linux_amd64.so";
+            "i686-linux" = "-shared -o attach_linux_x86.so";
+            "aarch64-linux" = "-shared -o attach_linux_arm64.so";
+            "x86_64-darwin" = "-D_REENTRANT -dynamiclib -lc -o attach_x86_64.dylib";
+            "i686-darwin" = "-D_REENTRANT -dynamiclib -lc -o attach_x86.dylib";
+            "aarch64-darwin" = "-D_REENTRANT -dynamiclib -lc -o attach_arm64.dylib";
+          }
+          .${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}")
+        }
+      )'';
 
   nativeCheckInputs = [
     ## Used to run the tests:
@@ -102,36 +110,41 @@ buildPythonPackage rec {
     requests
   ];
 
-  preCheck = ''
-    export DEBUGPY_PROCESS_SPAWN_TIMEOUT=0
-    export DEBUGPY_PROCESS_EXIT_TIMEOUT=0
-  '' + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
-    # https://github.com/python/cpython/issues/74570#issuecomment-1093748531
-    export no_proxy='*';
-  '';
+  preCheck =
+    ''
+      export DEBUGPY_PROCESS_SPAWN_TIMEOUT=0
+      export DEBUGPY_PROCESS_EXIT_TIMEOUT=0
+    ''
+    + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
+      # https://github.com/python/cpython/issues/74570#issuecomment-1093748531
+      export no_proxy='*';
+    '';
 
   postCheck = lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
     unset no_proxy
   '';
 
   # Override default arguments in pytest.ini
-  pytestFlagsArray = [
-    "--timeout=0"
-  ];
+  pytestFlagsArray = [ "--timeout=0" ];
 
   # Fixes hanging tests on Darwin
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [
-    "debugpy"
-  ];
+  pythonImportsCheck = [ "debugpy" ];
 
   meta = with lib; {
-    description = "An implementation of the Debug Adapter Protocol for Python";
+    description = "Implementation of the Debug Adapter Protocol for Python";
     homepage = "https://github.com/microsoft/debugpy";
     changelog = "https://github.com/microsoft/debugpy/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ kira-bruneau ];
-    platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "i686-darwin" "aarch64-darwin" ];
+    platforms = [
+      "x86_64-linux"
+      "i686-linux"
+      "aarch64-linux"
+      "x86_64-darwin"
+      "i686-darwin"
+      "aarch64-darwin"
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/decli/default.nix b/pkgs/development/python-modules/decli/default.nix
index a1d6e0db2eadc..0298d04cf2476 100644
--- a/pkgs/development/python-modules/decli/default.nix
+++ b/pkgs/development/python-modules/decli/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-FZYKNKkQExx/YBn5y/W0+0aMlenuwEctYTL7LAXMZGE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "decli"
-  ];
+  pythonImportsCheck = [ "decli" ];
 
   meta = with lib; {
     description = "Minimal, easy to use, declarative command line interface tool";
diff --git a/pkgs/development/python-modules/decopatch/default.nix b/pkgs/development/python-modules/decopatch/default.nix
index 71e302a8b538a..ec263a48aa090 100644
--- a/pkgs/development/python-modules/decopatch/default.nix
+++ b/pkgs/development/python-modules/decopatch/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, makefun
-, setuptools-scm
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  makefun,
+  setuptools-scm,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,22 +19,16 @@ buildPythonPackage rec {
     hash = "sha256-lX9JyT9BUBgsI/j7UdE7syE+DxenngnIzKcFdZi1VyA=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    makefun
-  ];
+  propagatedBuildInputs = [ makefun ];
 
   postPatch = ''
     substituteInPlace setup.cfg \
       --replace "pytest-runner" ""
   '';
 
-  pythonImportsCheck = [
-    "decopatch"
-  ];
+  pythonImportsCheck = [ "decopatch" ];
 
   # Tests would introduce multiple cirucular dependencies
   # Affected: makefun, pytest-cases
diff --git a/pkgs/development/python-modules/decorator/default.nix b/pkgs/development/python-modules/decorator/default.nix
index c86721f9c7362..0836e284a9081 100644
--- a/pkgs/development/python-modules/decorator/default.nix
+++ b/pkgs/development/python-modules/decorator/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -14,17 +15,11 @@ buildPythonPackage rec {
     hash = "sha256-Y3mWIRA2tjhe+RQ15PriKYlHL51XH6uoknuoJTrLwzA=";
   };
 
-  pythonImportsCheck = [
-    "decorator"
-  ];
+  pythonImportsCheck = [ "decorator" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "src/tests/test.py"
-  ];
+  pytestFlagsArray = [ "src/tests/test.py" ];
 
   meta = with lib; {
     homepage = "https://github.com/micheles/decorator";
diff --git a/pkgs/development/python-modules/deebot-client/default.nix b/pkgs/development/python-modules/deebot-client/default.nix
index 31c5b2d4e9596..697758093fef3 100644
--- a/pkgs/development/python-modules/deebot-client/default.nix
+++ b/pkgs/development/python-modules/deebot-client/default.nix
@@ -21,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "deebot-client";
-  version = "7.0.0";
+  version = "8.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.12";
@@ -30,7 +30,7 @@ buildPythonPackage rec {
     owner = "DeebotUniverse";
     repo = "client.py";
     rev = "refs/tags/${version}";
-    hash = "sha256-RlLWC1TLjrwQ7t727WpjePJA1zGj4460Ioj6efm/jSw=";
+    hash = "sha256-iAUGk7ErRG7ZgvjbmEZRLAOFlMHKZ/iM8pkwAtFla2E=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/deemix/default.nix b/pkgs/development/python-modules/deemix/default.nix
index d9eaddb7bf4a2..6e2c89df3a19b 100644
--- a/pkgs/development/python-modules/deemix/default.nix
+++ b/pkgs/development/python-modules/deemix/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, spotipy
-, click
-, pycryptodomex
-, mutagen
-, requests
-, deezer-py
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  spotipy,
+  click,
+  pycryptodomex,
+  mutagen,
+  requests,
+  deezer-py,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "deezer"
-  ];
+  pythonImportsCheck = [ "deezer" ];
 
   meta = with lib; {
     description = "Deezer downloader built from the ashes of Deezloader Remix";
diff --git a/pkgs/development/python-modules/deep-chainmap/default.nix b/pkgs/development/python-modules/deep-chainmap/default.nix
index 9a6d7eaee693c..15238b0f5f17c 100644
--- a/pkgs/development/python-modules/deep-chainmap/default.nix
+++ b/pkgs/development/python-modules/deep-chainmap/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,7 @@ buildPythonPackage rec {
 
   # See the guide for more information: https://nixos.org/nixpkgs/manual/#chap-meta
   meta = with lib; {
-    description = "A recursive subclass of ChainMap";
+    description = "Recursive subclass of ChainMap";
     homepage = "https://github.com/neutrinoceros/deep-chainmap";
     license = licenses.mit;
     maintainers = with maintainers; [ rehno-lindeque ];
diff --git a/pkgs/development/python-modules/deep-translator/default.nix b/pkgs/development/python-modules/deep-translator/default.nix
index 614affcc3fcb8..a0bbfd89d8e02 100644
--- a/pkgs/development/python-modules/deep-translator/default.nix
+++ b/pkgs/development/python-modules/deep-translator/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, beautifulsoup4
-, requests
-, click
-, pythonOlder
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  beautifulsoup4,
+  requests,
+  click,
+  pythonOlder,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-gBJgxpIxE4cH6oiglV5ITbfUDiEMngrg93Ny/9pfS/U=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     beautifulsoup4
@@ -45,6 +44,6 @@ buildPythonPackage rec {
     homepage = "https://deep-translator.readthedocs.io";
     changelog = "https://github.com/nidhaloff/deep-translator/releases/tag/v${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/deepdiff/default.nix b/pkgs/development/python-modules/deepdiff/default.nix
index 350ce76eca49e..af4500ffd5806 100644
--- a/pkgs/development/python-modules/deepdiff/default.nix
+++ b/pkgs/development/python-modules/deepdiff/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, click
-, ordered-set
-, orjson
-, clevercsv
-, jsonpickle
-, numpy
-, pytestCheckHook
-, python-dateutil
-, pyyaml
-, toml
-, tomli-w
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  click,
+  ordered-set,
+  orjson,
+  clevercsv,
+  jsonpickle,
+  numpy,
+  pytestCheckHook,
+  python-dateutil,
+  pyyaml,
+  toml,
+  tomli-w,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "deepdiff";
-  version = "6.7.1";
+  version = "7.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -26,7 +27,7 @@ buildPythonPackage rec {
     owner = "seperman";
     repo = "deepdiff";
     rev = "refs/tags/${version}";
-    hash = "sha256-YGYprSC5j06Ozg0dUJN5xnba0HUgiXa+d9Ci3czGWoY=";
+    hash = "sha256-HqmAE5sLwyjyUahIUeRIJW0c5eliq/qEzE2FydHwc70=";
   };
 
   postPatch = ''
@@ -35,6 +36,7 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [
+    click
     ordered-set
     orjson
   ];
@@ -62,9 +64,7 @@ buildPythonPackage rec {
     "test_pydantic2"
   ];
 
-  pythonImportsCheck = [
-    "deepdiff"
-  ];
+  pythonImportsCheck = [ "deepdiff" ];
 
   meta = with lib; {
     description = "Deep Difference and Search of any Python object/data";
diff --git a/pkgs/development/python-modules/deepdish/default.nix b/pkgs/development/python-modules/deepdish/default.nix
index 7033e2f9f851d..04062db872a79 100644
--- a/pkgs/development/python-modules/deepdish/default.nix
+++ b/pkgs/development/python-modules/deepdish/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, numpy
-, scipy
-, tables
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  numpy,
+  scipy,
+  tables,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     tables
   ];
 
-  pythonImportsCheck = [
-    "deepdish"
-  ];
+  pythonImportsCheck = [ "deepdish" ];
 
   # nativeCheckInputs = [
   #   pandas
@@ -34,7 +33,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "Flexible HDF5 saving/loading and other data science tools from the University of Chicago.";
+    description = "Flexible HDF5 saving/loading and other data science tools from the University of Chicago";
     mainProgram = "ddls";
     homepage = "https://github.com/uchicago-cs/deepdish";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/deepl/default.nix b/pkgs/development/python-modules/deepl/default.nix
index cf934f75b70f5..aaa294f39ecbf 100644
--- a/pkgs/development/python-modules/deepl/default.nix
+++ b/pkgs/development/python-modules/deepl/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
-, poetry-core
-, keyring
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  poetry-core,
+  keyring,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-WuQXY5OUQe28p2QP00QoDL7kfUkGQc41IGkQqLAed44=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     requests
@@ -28,12 +27,10 @@ buildPythonPackage rec {
   # Requires internet access and an API key
   doCheck = false;
 
-  pythonImportsCheck = [
-    "deepl"
-  ];
+  pythonImportsCheck = [ "deepl" ];
 
   meta = with lib; {
-    description = "A language translation API that allows other computer programs to send texts and documents to DeepL's servers and receive high-quality translations";
+    description = "Language translation API that allows other computer programs to send texts and documents to DeepL's servers and receive high-quality translations";
     mainProgram = "deepl";
     homepage = "https://github.com/DeepLcom/deepl-python";
     changelog = "https://github.com/DeepLcom/deepl-python/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/deepmerge/default.nix b/pkgs/development/python-modules/deepmerge/default.nix
index 0a22573e2dfab..4dffa0322f1e4 100644
--- a/pkgs/development/python-modules/deepmerge/default.nix
+++ b/pkgs/development/python-modules/deepmerge/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, setuptools
-, setuptools-scm
+  # build-system
+  setuptools,
+  setuptools-scm,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,17 +26,13 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "deepmerge"
-  ];
+  pythonImportsCheck = [ "deepmerge" ];
 
   meta = with lib; {
     changelog = "https://github.com/toumorokoshi/deepmerge/releases/tag/v${version}";
-    description = "A toolset to deeply merge python dictionaries.";
+    description = "Toolset to deeply merge python dictionaries";
     downloadPage = "https://github.com/toumorokoshi/deepmerge";
     homepage = "http://deepmerge.readthedocs.io/en/latest/";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/deeptoolsintervals/default.nix b/pkgs/development/python-modules/deeptoolsintervals/default.nix
index 7f78a92877a7d..d3003ee0dc2b0 100644
--- a/pkgs/development/python-modules/deeptoolsintervals/default.nix
+++ b/pkgs/development/python-modules/deeptoolsintervals/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
-, zlib
-, xz
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  zlib,
+  xz,
 }:
 
 buildPythonPackage rec {
@@ -16,7 +17,10 @@ buildPythonPackage rec {
     sha256 = "1xnl80nblysj6dylj4683wgrfa425rkx4dp5k65hvwdns9pw753x";
   };
 
-  buildInputs = [ zlib xz ];
+  buildInputs = [
+    zlib
+    xz
+  ];
 
   nativeCheckInputs = [ pytest ];
 
diff --git a/pkgs/development/python-modules/deepwave/default.nix b/pkgs/development/python-modules/deepwave/default.nix
index 6f3018aba4320..56b9765686e84 100644
--- a/pkgs/development/python-modules/deepwave/default.nix
+++ b/pkgs/development/python-modules/deepwave/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, torch
-, ninja
-, scipy
-, which
-, pybind11
-, pytest-xdist
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  torch,
+  ninja,
+  scipy,
+  which,
+  pybind11,
+  pytest-xdist,
+  pytestCheckHook,
 }:
 
 let
@@ -48,7 +49,10 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  propagatedBuildInputs = [ torch pybind11 ];
+  propagatedBuildInputs = [
+    torch
+    pybind11
+  ];
 
   nativeCheckInputs = [
     which
diff --git a/pkgs/development/python-modules/deezer-py/default.nix b/pkgs/development/python-modules/deezer-py/default.nix
index 109f873138c66..48228fcace341 100644
--- a/pkgs/development/python-modules/deezer-py/default.nix
+++ b/pkgs/development/python-modules/deezer-py/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,7 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://gitlab.com/RemixDev/deezer-py";
-    description = "A wrapper for all Deezer's APIs";
+    description = "Wrapper for all Deezer's APIs";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ natto1784 ];
   };
diff --git a/pkgs/development/python-modules/deezer-python/default.nix b/pkgs/development/python-modules/deezer-python/default.nix
index 84c7972ccd120..0bd136e6fcebb 100644
--- a/pkgs/development/python-modules/deezer-python/default.nix
+++ b/pkgs/development/python-modules/deezer-python/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, environs
-, fetchFromGitHub
-, poetry-core
-, pytest-mock
-, pytest-vcr
-, pytestCheckHook
-, pythonOlder
-, requests
-, tornado
+{
+  lib,
+  buildPythonPackage,
+  environs,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-mock,
+  pytest-vcr,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  tornado,
 }:
 
 buildPythonPackage rec {
   pname = "deezer-python";
-  version = "6.1.1";
+  version = "6.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -22,16 +23,19 @@ buildPythonPackage rec {
     owner = "browniebroke";
     repo = "deezer-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pzEXiWKMP2Wqme/pqfTMHxWH/4YcCS6u865wslHrUqI=";
+    hash = "sha256-Y1y8FBxpGpNIWCZbel9fdGLGC9VM9h1BvHtUxCZxp/A=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace " --cov=deezer" ""
+      --replace-fail " --cov=deezer" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    requests
+    tornado
   ];
 
   nativeCheckInputs = [
@@ -41,14 +45,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  propagatedBuildInputs = [
-    requests
-    tornado
-  ];
-
-  pythonImportsCheck = [
-    "deezer"
-  ];
+  pythonImportsCheck = [ "deezer" ];
 
   disabledTests = [
     # JSONDecodeError issue
diff --git a/pkgs/development/python-modules/defang/default.nix b/pkgs/development/python-modules/defang/default.nix
index d51573c0dc4ff..ea9bfe22478c9 100644
--- a/pkgs/development/python-modules/defang/default.nix
+++ b/pkgs/development/python-modules/defang/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromBitbucket
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromBitbucket,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-OJfayJeVf2H1/jg7/fu2NiHhRHNCaLGI29SY8BnJyxI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "defang"
-  ];
+  pythonImportsCheck = [ "defang" ];
 
   meta = with lib; {
     description = "Module to defang and refang malicious URLs";
diff --git a/pkgs/development/python-modules/defcon/default.nix b/pkgs/development/python-modules/defcon/default.nix
index 3203f0bb973e9..309b02d14fa1b 100644
--- a/pkgs/development/python-modules/defcon/default.nix
+++ b/pkgs/development/python-modules/defcon/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools-scm
-, fonttools
-, fontpens
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools-scm,
+  fonttools,
+  fontpens,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,23 +22,15 @@ buildPythonPackage rec {
     extension = "zip";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     fonttools
-  ]
-  ++ fonttools.optional-dependencies.ufo
-  ++ fonttools.optional-dependencies.unicode;
+  ] ++ fonttools.optional-dependencies.ufo ++ fonttools.optional-dependencies.unicode;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "defcon"
-  ];
+  pythonImportsCheck = [ "defcon" ];
 
   passthru.optional-dependencies = {
     pens = [ fontpens ];
@@ -45,7 +38,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A set of UFO based objects for use in font editing applications";
+    description = "Set of UFO based objects for use in font editing applications";
     homepage = "https://github.com/robotools/defcon";
     changelog = "https://github.com/robotools/defcon/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/deform/default.nix b/pkgs/development/python-modules/deform/default.nix
index b094b46c663af..c30add3f1edcc 100644
--- a/pkgs/development/python-modules/deform/default.nix
+++ b/pkgs/development/python-modules/deform/default.nix
@@ -1,6 +1,20 @@
-{ lib, buildPythonPackage, fetchPypi
-, chameleon, colander, iso8601, peppercorn, translationstring, zope-deprecation
-, nose, coverage, beautifulsoup4, flaky, pyramid, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  chameleon,
+  colander,
+  iso8601,
+  peppercorn,
+  translationstring,
+  zope-deprecation,
+  nose,
+  coverage,
+  beautifulsoup4,
+  flaky,
+  pyramid,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "deform";
diff --git a/pkgs/development/python-modules/defusedcsv/default.nix b/pkgs/development/python-modules/defusedcsv/default.nix
index 5e44ce731748a..bb62a9a7f997c 100644
--- a/pkgs/development/python-modules/defusedcsv/default.nix
+++ b/pkgs/development/python-modules/defusedcsv/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "defusedcsv";
-  version =  "2.0.0";
+  version = "2.0.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     hash = "sha256-y8qLVfdkxRrDjtrTOLK5Zvi/1Vyv8eOnCueUkaRp4sQ=";
   };
 
-  pythonImportsCheck = [
-    "defusedcsv.csv"
-  ];
+  pythonImportsCheck = [ "defusedcsv.csv" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Python library to protect your users from Excel injections in CSV-format exports, drop-in replacement for standard library's csv module";
diff --git a/pkgs/development/python-modules/defusedxml/default.nix b/pkgs/development/python-modules/defusedxml/default.nix
index e2e7de205c8ce..ce997d1fcb820 100644
--- a/pkgs/development/python-modules/defusedxml/default.nix
+++ b/pkgs/development/python-modules/defusedxml/default.nix
@@ -1,26 +1,38 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  lxml,
+  python,
 }:
 
 buildPythonPackage rec {
   pname = "defusedxml";
-  version = "0.7.1";
-  format = "setuptools";
+  version = "0.8.0rc2";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1bb3032db185915b62d7c6209c5a8792be6a32ab2fedacc84e01b52c51aa3e69";
+  src = fetchFromGitHub {
+    owner = "tiran";
+    repo = "defusedxml";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-X88A5V9uXP3wJQ+olK6pZJT66LP2uCXLK8goa5bPARA=";
   };
 
+  build-system = [ setuptools ] ;
+
+  nativeCheckInputs = [ lxml ];
+
   checkPhase = ''
+    runHook preCheck
     ${python.interpreter} tests.py
+    runHook postCheck
   '';
 
   pythonImportsCheck = [ "defusedxml" ];
 
   meta = with lib; {
+    changelog = "https://github.com/tiran/defusedxml/blob/v${version}/CHANGES.txt";
     description = "Python module to defuse XML issues";
     homepage = "https://github.com/tiran/defusedxml";
     license = licenses.psfl;
diff --git a/pkgs/development/python-modules/dehinter/default.nix b/pkgs/development/python-modules/dehinter/default.nix
index 276959b84b329..e621b2979bcc4 100644
--- a/pkgs/development/python-modules/dehinter/default.nix
+++ b/pkgs/development/python-modules/dehinter/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fonttools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fonttools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,14 +19,10 @@ buildPythonPackage rec {
     hash = "sha256-l988SW6OWKXzJK0WGAJZR/QDFvgnSir+5TwMMvFcOxg=";
   };
 
-  propagatedBuildInputs = [
-    fonttools
-  ];
+  propagatedBuildInputs = [ fonttools ];
 
   doCheck = true;
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Utility for removing hinting data from TrueType and OpenType fonts";
@@ -35,4 +32,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ danc86 ];
   };
 }
-
diff --git a/pkgs/development/python-modules/deid/default.nix b/pkgs/development/python-modules/deid/default.nix
index 5edfd4afc3417..180b7a8e2947d 100644
--- a/pkgs/development/python-modules/deid/default.nix
+++ b/pkgs/development/python-modules/deid/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, matplotlib
-, pydicom
-, python-dateutil
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  matplotlib,
+  pydicom,
+  python-dateutil,
+  setuptools,
 }:
 
 let
@@ -61,9 +62,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "deid"
-  ];
+  pythonImportsCheck = [ "deid" ];
 
   meta = with lib; {
     description = "Best-effort anonymization for medical images";
diff --git a/pkgs/development/python-modules/dek/default.nix b/pkgs/development/python-modules/dek/default.nix
index 147cc40e316b2..811c406480a15 100644
--- a/pkgs/development/python-modules/dek/default.nix
+++ b/pkgs/development/python-modules/dek/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, xmod
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  xmod,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,24 +19,16 @@ buildPythonPackage rec {
     hash = "sha256-DYODdImTRCukGmGbkZ+9TQeI9DYaeRd/EHS6VND5IDs=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    xmod
-  ];
+  dependencies = [ xmod ];
 
-  nativeBuildInputs = [
-    pytestCheckHook
-  ];
+  nativeBuildInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dek"
-  ];
+  pythonImportsCheck = [ "dek" ];
 
   meta = with lib; {
-    description = "The decorator-decorator";
+    description = "Decorator-decorator";
     homepage = "https://github.com/rec/dek";
     changelog = "https://github.com/rec/dek/blob/${src.rev}/CHANGELOG";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/delegator-py/default.nix b/pkgs/development/python-modules/delegator-py/default.nix
index 89cbd991a6631..4cb4ea6f4cf88 100644
--- a/pkgs/development/python-modules/delegator-py/default.nix
+++ b/pkgs/development/python-modules/delegator-py/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, lib
-, fetchFromGitHub
-, pexpect
+{
+  buildPythonPackage,
+  lib,
+  fetchFromGitHub,
+  pexpect,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/delorean/default.nix b/pkgs/development/python-modules/delorean/default.nix
index 81f1a1e44469c..f056cde2a6e81 100644
--- a/pkgs/development/python-modules/delorean/default.nix
+++ b/pkgs/development/python-modules/delorean/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, babel
-, humanize
-, python-dateutil
-, pytz
-, tzlocal
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  babel,
+  humanize,
+  python-dateutil,
+  pytz,
+  tzlocal,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     tzlocal
   ];
 
-  pythonImportsCheck = [
-    "delorean"
-  ];
+  pythonImportsCheck = [ "delorean" ];
 
   # test data not included
   doCheck = false;
diff --git a/pkgs/development/python-modules/deltachat/default.nix b/pkgs/development/python-modules/deltachat/default.nix
index 4b5b0d8f73627..2ea42160a8920 100644
--- a/pkgs/development/python-modules/deltachat/default.nix
+++ b/pkgs/development/python-modules/deltachat/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, pkg-config
-, pkgconfig
-, setuptools-scm
-, libdeltachat
-, cffi
-, imap-tools
-, requests
-, pluggy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  pkg-config,
+  pkgconfig,
+  setuptools-scm,
+  libdeltachat,
+  cffi,
+  imap-tools,
+  requests,
+  pluggy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  buildInputs = [
-    libdeltachat
-  ];
+  buildInputs = [ libdeltachat ];
 
   propagatedBuildInputs = [
     cffi
@@ -38,9 +37,7 @@ buildPythonPackage rec {
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [
     "deltachat"
diff --git a/pkgs/development/python-modules/deltachat2/default.nix b/pkgs/development/python-modules/deltachat2/default.nix
new file mode 100644
index 0000000000000..78d10679a3079
--- /dev/null
+++ b/pkgs/development/python-modules/deltachat2/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, fetchFromGitHub
+, buildPythonPackage
+, deltachat-rpc-server
+, libdeltachat
+, setuptools-scm
+, substituteAll
+}:
+
+buildPythonPackage rec {
+  pname = "deltachat2";
+  version = "0.6.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "adbenitez";
+    repo = "deltachat2";
+    rev = "refs/tags/${version}";
+    hash = "sha256-bp4bi+EeMaWP8zOaPp0eaPKn71F055QgMOOSDzIJUH4=";
+  };
+
+  patches = [
+    (substituteAll {
+      src = ./paths.patch;
+      deltachatrpcserver = lib.getExe deltachat-rpc-server;
+    })
+  ];
+
+  build-system = [
+    setuptools-scm
+  ];
+
+  pythonImportsCheck = [ "deltachat2" ];
+
+  meta = {
+    description = "Client library for Delta Chat core JSON-RPC interface";
+    homepage = "https://github.com/adbenitez/deltachat2";
+    license = lib.licenses.mpl20;
+    mainProgram = "deltachat2";
+    inherit (libdeltachat.meta) maintainers;
+  };
+}
diff --git a/pkgs/development/python-modules/deltachat2/paths.patch b/pkgs/development/python-modules/deltachat2/paths.patch
new file mode 100644
index 0000000000000..92cfe11fc6f0e
--- /dev/null
+++ b/pkgs/development/python-modules/deltachat2/paths.patch
@@ -0,0 +1,13 @@
+diff --git a/deltachat2/transport.py b/deltachat2/transport.py
+index a93dc7e..251947b 100644
+--- a/deltachat2/transport.py
++++ b/deltachat2/transport.py
+@@ -71,7 +71,7 @@ class IOTransport:
+             # `process_group` is not supported before Python 3.11.
+             kwargs = {"preexec_fn": os.setpgrp, **self._kwargs}  # noqa: PLW1509
+         self.process = subprocess.Popen(  # noqa: R1732
+-            "deltachat-rpc-server",
++            "@deltachatrpcserver@",
+             stdin=subprocess.PIPE,
+             stdout=subprocess.PIPE,
+             **kwargs,
diff --git a/pkgs/development/python-modules/deluge-client/default.nix b/pkgs/development/python-modules/deluge-client/default.nix
index 219ebf5143b5c..f03a347450d2f 100644
--- a/pkgs/development/python-modules/deluge-client/default.nix
+++ b/pkgs/development/python-modules/deluge-client/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-OIGu48Tgyp3YpWtxAEe4N+HQh6g+QhY2oHR3H5Kp8bU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # it will try to connect to a running instance
   doCheck = false;
 
-  pythonImportsCheck = [
-    "deluge_client"
-  ];
+  pythonImportsCheck = [ "deluge_client" ];
 
   meta = with lib; {
     description = "Lightweight pure-python rpc client for deluge";
diff --git a/pkgs/development/python-modules/demes/default.nix b/pkgs/development/python-modules/demes/default.nix
index 522b075d2a6e2..658acdb8156fd 100644
--- a/pkgs/development/python-modules/demes/default.nix
+++ b/pkgs/development/python-modules/demes/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, ruamel-yaml
-, attrs
-, pythonOlder
-, pytest7CheckHook
-, pytest-xdist
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  ruamel-yaml,
+  attrs,
+  pythonOlder,
+  pytest7CheckHook,
+  pytest-xdist,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-nmE7ZbR126J3vKdR3h83qJ/V602Fa6J3M6IJnIqCNhc=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     ruamel-yaml
@@ -41,13 +40,9 @@ buildPythonPackage rec {
     numpy
   ];
 
-  disabledTestPaths = [
-    "tests/test_spec.py"
-  ];
+  disabledTestPaths = [ "tests/test_spec.py" ];
 
-  pythonImportsCheck = [
-    "demes"
-  ];
+  pythonImportsCheck = [ "demes" ];
 
   meta = with lib; {
     description = "Tools for describing and manipulating demographic models";
diff --git a/pkgs/development/python-modules/demesdraw/default.nix b/pkgs/development/python-modules/demesdraw/default.nix
index 2672f87146854..d4fe828315d38 100644
--- a/pkgs/development/python-modules/demesdraw/default.nix
+++ b/pkgs/development/python-modules/demesdraw/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, demes
-, matplotlib
-, numpy
-, scipy
-, pythonOlder
-, pytestCheckHook
-, pytest-xdist
-, mpmath
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  demes,
+  matplotlib,
+  numpy,
+  scipy,
+  pythonOlder,
+  pytestCheckHook,
+  pytest-xdist,
+  mpmath,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-n7dz+kYf2yyr66TBx452W6z4qT6bT81u0J4aMAYuGCc=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     demes
@@ -50,9 +49,7 @@ buildPythonPackage rec {
     mpmath
   ];
 
-  pythonImportsCheck = [
-    "demesdraw"
-  ];
+  pythonImportsCheck = [ "demesdraw" ];
 
   meta = with lib; {
     description = "Drawing functions for Demes demographic models";
diff --git a/pkgs/development/python-modules/demetriek/default.nix b/pkgs/development/python-modules/demetriek/default.nix
index 68f2660f6bb7b..2a9a466c9ab06 100644
--- a/pkgs/development/python-modules/demetriek/default.nix
+++ b/pkgs/development/python-modules/demetriek/default.nix
@@ -1,18 +1,18 @@
-{ lib
-, aiohttp
-, aresponses
-, awesomeversion
-, backoff
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, pydantic
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  awesomeversion,
+  backoff,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  poetry-core,
+  pydantic,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -34,7 +34,10 @@ buildPythonPackage rec {
     (fetchpatch {
       name = "pydantic_2-compatibility.patch";
       url = "https://github.com/frenck/python-demetriek/commit/e677fe5b735b6b28572e3e5fd6aab56fc056f5e6.patch";
-      excludes = [ "pyproject.toml" "poetry.lock" ];
+      excludes = [
+        "pyproject.toml"
+        "poetry.lock"
+      ];
       hash = "sha256-oMVR45KHDhcPId/0X9obJXCPE8s1gk5IgsGsgZesdZw=";
     })
   ];
@@ -46,13 +49,10 @@ buildPythonPackage rec {
       --replace "--cov" ""
   '';
 
-  pythonRelaxDeps = [
-    "pydantic"
-  ];
+  pythonRelaxDeps = [ "pydantic" ];
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -69,9 +69,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "demetriek"
-  ];
+  pythonImportsCheck = [ "demetriek" ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/demjson3/default.nix b/pkgs/development/python-modules/demjson3/default.nix
index 6e83b001e6e1d..091a80cf81845 100644
--- a/pkgs/development/python-modules/demjson3/default.nix
+++ b/pkgs/development/python-modules/demjson3/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     ${python.interpreter} test/test_demjson3.py
   '';
 
-  pythonImportsCheck = [
-    "demjson3"
-  ];
+  pythonImportsCheck = [ "demjson3" ];
 
   meta = with lib; {
     description = "Encoder/decoder and lint/validator for JSON (JavaScript Object Notation)";
diff --git a/pkgs/development/python-modules/demoji/default.nix b/pkgs/development/python-modules/demoji/default.nix
index f8ce40a77de16..4538f6c9c8be5 100644
--- a/pkgs/development/python-modules/demoji/default.nix
+++ b/pkgs/development/python-modules/demoji/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pythonOlder
-, pytestCheckHook
-, ujson
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pythonOlder,
+  pytestCheckHook,
+  ujson,
 }:
 
 buildPythonPackage rec {
@@ -26,23 +27,15 @@ buildPythonPackage rec {
       --replace-fail "pytest-runner" ""
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   passthru.optional-dependencies = {
-    ujson = [
-      ujson
-    ];
+    ujson = [ ujson ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "demoji"
-  ];
+  pythonImportsCheck = [ "demoji" ];
 
   meta = with lib; {
     description = "Module to find/replace/remove emojis in text strings";
diff --git a/pkgs/development/python-modules/dendropy/default.nix b/pkgs/development/python-modules/dendropy/default.nix
index d37d188a257a3..f17acbdc4b95d 100644
--- a/pkgs/development/python-modules/dendropy/default.nix
+++ b/pkgs/development/python-modules/dendropy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-FP0+fJkkFtSysPxoHXjyMgF8pPin7aRyzmHe9bH8LlM=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # FileNotFoundError: [Errno 2] No such file or directory: 'paup'
@@ -35,9 +34,7 @@ buildPythonPackage rec {
     "test_findall_multiple"
   ];
 
-  pythonImportsCheck = [
-    "dendropy"
-  ];
+  pythonImportsCheck = [ "dendropy" ];
 
   meta = with lib; {
     description = "Python library for phylogenetic computing";
diff --git a/pkgs/development/python-modules/denonavr/default.nix b/pkgs/development/python-modules/denonavr/default.nix
index 61930b92818cb..5f113865c388b 100644
--- a/pkgs/development/python-modules/denonavr/default.nix
+++ b/pkgs/development/python-modules/denonavr/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, async-timeout
-, asyncstdlib
-, attrs
-, buildPythonPackage
-, defusedxml
-, fetchFromGitHub
-, ftfy
-, httpx
-, netifaces
-, pytest-asyncio
-, pytestCheckHook
-, pytest-httpx
-, pytest-timeout
-, pythonOlder
-, setuptools
+{
+  lib,
+  async-timeout,
+  asyncstdlib,
+  attrs,
+  buildPythonPackage,
+  defusedxml,
+  fetchFromGitHub,
+  ftfy,
+  httpx,
+  netifaces,
+  pytest-asyncio,
+  pytestCheckHook,
+  pytest-httpx,
+  pytest-timeout,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,9 @@ buildPythonPackage rec {
     hash = "sha256-VxoRK1qeGrIunsiCzeZJUHxW/sxk+PFpntInL+G/yI8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  pythonRelaxDeps = [ "defusedxml" ];
+
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     asyncstdlib
@@ -41,9 +42,7 @@ buildPythonPackage rec {
     ftfy
     httpx
     netifaces
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    async-timeout
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -52,9 +51,7 @@ buildPythonPackage rec {
     pytest-timeout
   ];
 
-  pythonImportsCheck = [
-    "denonavr"
-  ];
+  pythonImportsCheck = [ "denonavr" ];
 
   meta = with lib; {
     description = "Automation Library for Denon AVR receivers";
diff --git a/pkgs/development/python-modules/dep-logic/default.nix b/pkgs/development/python-modules/dep-logic/default.nix
index b8c27334a868b..19c85bddc8584 100644
--- a/pkgs/development/python-modules/dep-logic/default.nix
+++ b/pkgs/development/python-modules/dep-logic/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pdm-backend
-, packaging
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pdm-backend,
+  packaging,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-NB0TR7fCtjSm4cAl+Fy+6c+z1ZBDiRw7nXux/s6ON/c=";
   };
 
-  nativeBuildInputs = [
-    pdm-backend
-  ];
+  nativeBuildInputs = [ pdm-backend ];
 
-  propagatedBuildInputs = [
-    packaging
-  ];
+  propagatedBuildInputs = [ packaging ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dep_logic"
-  ];
+  pythonImportsCheck = [ "dep_logic" ];
 
   meta = {
     changelog = "https://github.com/pdm-project/dep-logic/releases/tag/${src.rev}";
diff --git a/pkgs/development/python-modules/dependency-injector/default.nix b/pkgs/development/python-modules/dependency-injector/default.nix
index 0b575412e8541..be655a971dd49 100644
--- a/pkgs/development/python-modules/dependency-injector/default.nix
+++ b/pkgs/development/python-modules/dependency-injector/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fastapi
-, fetchFromGitHub
-, flask
-, httpx
-, mypy-boto3-s3
-, numpy
-, pydantic
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, scipy
-, six
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fastapi,
+  fetchFromGitHub,
+  flask,
+  httpx,
+  mypy-boto3-s3,
+  numpy,
+  pydantic,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  scipy,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -30,41 +31,31 @@ buildPythonPackage rec {
     hash = "sha256-U3U/L8UuYrfpm4KwVNmViTbam7QdZd2vp1p+ENtOJlw=";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   passthru.optional-dependencies = {
-    aiohttp = [
-      aiohttp
-    ];
-    pydantic = [
-      pydantic
-    ];
-    flask = [
-      flask
-    ];
-    yaml = [
-      pyyaml
-    ];
+    aiohttp = [ aiohttp ];
+    pydantic = [ pydantic ];
+    flask = [ flask ];
+    yaml = [ pyyaml ];
   };
 
-  nativeCheckInputs = [
-    fastapi
-    httpx
-    mypy-boto3-s3
-    numpy
-    pytest-asyncio
-    pytestCheckHook
-    scipy
-  ] ++ passthru.optional-dependencies.aiohttp
-  ++ passthru.optional-dependencies.pydantic
-  ++ passthru.optional-dependencies.yaml
-  ++ passthru.optional-dependencies.flask;
+  nativeCheckInputs =
+    [
+      fastapi
+      httpx
+      mypy-boto3-s3
+      numpy
+      pytest-asyncio
+      pytestCheckHook
+      scipy
+    ]
+    ++ passthru.optional-dependencies.aiohttp
+    ++ passthru.optional-dependencies.pydantic
+    ++ passthru.optional-dependencies.yaml
+    ++ passthru.optional-dependencies.flask;
 
-  pythonImportsCheck = [
-    "dependency_injector"
-  ];
+  pythonImportsCheck = [ "dependency_injector" ];
 
   disabledTestPaths = [
     # Exclude tests for EOL Python releases
diff --git a/pkgs/development/python-modules/deploykit/default.nix b/pkgs/development/python-modules/deploykit/default.nix
index 9668ec25c3591..01183b27a8d7d 100644
--- a/pkgs/development/python-modules/deploykit/default.nix
+++ b/pkgs/development/python-modules/deploykit/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, bash
-, openssh
-, pytestCheckHook
-, pythonOlder
-, stdenv
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  bash,
+  openssh,
+  pytestCheckHook,
+  pythonOlder,
+  stdenv,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-7PiXq1bQJ1jswLHNqCDSYZabgfp8HRuRt5YPGzd5Ej0=";
   };
 
-  buildInputs = [
-    setuptools
-  ];
+  buildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     bash
@@ -38,16 +37,17 @@ buildPythonPackage rec {
   # don't swallow stdout/stderr
   pytestFlagsArray = [ "-s" ];
 
-  pythonImportsCheck = [
-    "deploykit"
-  ];
+  pythonImportsCheck = [ "deploykit" ];
 
   meta = with lib; {
     description = "Execute commands remote via ssh and locally in parallel with python";
     homepage = "https://github.com/numtide/deploykit";
     changelog = "https://github.com/numtide/deploykit/releases/tag/${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ mic92 zowoq ];
+    maintainers = with maintainers; [
+      mic92
+      zowoq
+    ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/deprecat/default.nix b/pkgs/development/python-modules/deprecat/default.nix
index a87394dea289b..62c05168c2cb3 100644
--- a/pkgs/development/python-modules/deprecat/default.nix
+++ b/pkgs/development/python-modules/deprecat/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
-, wrapt
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  wrapt,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-uAabZAtZDhcX6TfiM0LnrAzxxS64ys+vdodmxO//0x8=";
   };
 
-  build-system = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
-  dependencies = [
-    wrapt
-  ];
+  dependencies = [ wrapt ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "deprecat"
-  ];
+  pythonImportsCheck = [ "deprecat" ];
 
   disabledTestPaths = [
     # https://github.com/mjhajharia/deprecat/issues/13
diff --git a/pkgs/development/python-modules/deprecated/default.nix b/pkgs/development/python-modules/deprecated/default.nix
index 09664f977a051..e32aab6be8a27 100644
--- a/pkgs/development/python-modules/deprecated/default.nix
+++ b/pkgs/development/python-modules/deprecated/default.nix
@@ -1,16 +1,20 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, wrapt
-, pytestCheckHook
-, sphinxHook
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  wrapt,
+  pytestCheckHook,
+  sphinxHook,
 }:
 
 buildPythonPackage rec {
   pname = "deprecated";
   version = "1.2.14";
   format = "setuptools";
-  outputs = [ "out" "doc" ];
+  outputs = [
+    "out"
+    "doc"
+  ];
 
   src = fetchFromGitHub {
     owner = "tantale";
@@ -19,17 +23,11 @@ buildPythonPackage rec {
     hash = "sha256-H5Gp2F/ChMeEH4fSYXIB34syDIzDymfN949ksJnS0k4=";
   };
 
-  nativeBuildInputs = [
-    sphinxHook
-  ];
+  nativeBuildInputs = [ sphinxHook ];
 
-  propagatedBuildInputs = [
-    wrapt
-  ];
+  propagatedBuildInputs = [ wrapt ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "deprecated" ];
 
diff --git a/pkgs/development/python-modules/deprecation/default.nix b/pkgs/development/python-modules/deprecation/default.nix
index 3fccbde6e8b65..7c3715cbfe785 100644
--- a/pkgs/development/python-modules/deprecation/default.nix
+++ b/pkgs/development/python-modules/deprecation/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, packaging
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  packaging,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,7 +31,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ unittestCheckHook ];
 
   meta = with lib; {
-    description = "A library to handle automated deprecations";
+    description = "Library to handle automated deprecations";
     homepage = "https://deprecation.readthedocs.io/";
     license = licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/derpconf/default.nix b/pkgs/development/python-modules/derpconf/default.nix
index b3a4dd9d35d81..c7e67c6eaaf5f 100644
--- a/pkgs/development/python-modules/derpconf/default.nix
+++ b/pkgs/development/python-modules/derpconf/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-66MOqcWIiqJrORJDgAH5iUblHyqJvuf9DIBN56XjKwU=";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  pythonImportsCheck = [
-    "derpconf"
-  ];
+  pythonImportsCheck = [ "derpconf" ];
 
   meta = with lib; {
     description = "Module to abstract loading configuration files for your app";
diff --git a/pkgs/development/python-modules/desktop-entry-lib/default.nix b/pkgs/development/python-modules/desktop-entry-lib/default.nix
index 5a6d3c00e7f03..6582d0fd283a5 100644
--- a/pkgs/development/python-modules/desktop-entry-lib/default.nix
+++ b/pkgs/development/python-modules/desktop-entry-lib/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, pytestCheckHook
-, fetchFromGitea
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  pytestCheckHook,
+  fetchFromGitea,
+  setuptools,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/desktop-notifier/default.nix b/pkgs/development/python-modules/desktop-notifier/default.nix
index 708c971943ec8..a614a4feb9356 100644
--- a/pkgs/development/python-modules/desktop-notifier/default.nix
+++ b/pkgs/development/python-modules/desktop-notifier/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, stdenv
-, packaging
-, setuptools
-, dbus-next
-, rubicon-objc
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  stdenv,
+  packaging,
+  setuptools,
+  dbus-next,
+  rubicon-objc,
 }:
 
 buildPythonPackage rec {
   pname = "desktop-notifier";
-  version = "3.5.6";
-  format = "pyproject";
+  version = "4.0.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -20,27 +21,20 @@ buildPythonPackage rec {
     owner = "SamSchott";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-txUWRCWLQ6jWrdEJ/D5+CsflNad5Onr/wLycENri1z8=";
+    hash = "sha256-6FtxfY0vjCbCueeXdAXOy6XSjne4I7brQ5OvJ+Q1KsQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    packaging
-  ] ++ lib.optionals stdenv.isLinux [
-    dbus-next
-  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
-    rubicon-objc
-  ];
+  dependencies =
+    [ packaging ]
+    ++ lib.optionals stdenv.isLinux [ dbus-next ]
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [ rubicon-objc ];
 
   # no tests available, do the imports check instead
   doCheck = false;
 
-  pythonImportsCheck = [
-    "desktop_notifier"
-  ];
+  pythonImportsCheck = [ "desktop_notifier" ];
 
   meta = with lib; {
     description = "Python library for cross-platform desktop notifications";
diff --git a/pkgs/development/python-modules/detect-secrets/default.nix b/pkgs/development/python-modules/detect-secrets/default.nix
index ae0e2c4cda2d0..a678a2bb69dec 100644
--- a/pkgs/development/python-modules/detect-secrets/default.nix
+++ b/pkgs/development/python-modules/detect-secrets/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, gibberish-detector
-, mock
-, pkgs
-, pyahocorasick
-, pytest7CheckHook
-, pythonOlder
-, pyyaml
-, requests
-, responses
-, unidiff
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gibberish-detector,
+  mock,
+  pkgs,
+  pyahocorasick,
+  pytest7CheckHook,
+  pythonOlder,
+  pyyaml,
+  requests,
+  responses,
+  unidiff,
 }:
 
 buildPythonPackage rec {
   pname = "detect-secrets";
-  version = "1.4.0";
+  version = "1.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -23,8 +24,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "Yelp";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-6EmL6XPySqcA3EA+FFkfw7Dkxl5LvyBorIw0hesV5eU=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-pNLAZUJhjZ3b01XaltJUJ9O7Blv6/pHQrRvURe7MJ5A=";
     leaveDotGit = true;
   };
 
@@ -60,12 +61,10 @@ buildPythonPackage rec {
     "test_start_halfway"
   ];
 
-  pythonImportsCheck = [
-    "detect_secrets"
-  ];
+  pythonImportsCheck = [ "detect_secrets" ];
 
   meta = with lib; {
-    description = "An enterprise friendly way of detecting and preventing secrets in code";
+    description = "Enterprise friendly way of detecting and preventing secrets in code";
     homepage = "https://github.com/Yelp/detect-secrets";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/detectron2/default.nix b/pkgs/development/python-modules/detectron2/default.nix
index badf5bb087713..2247b4581a4d2 100644
--- a/pkgs/development/python-modules/detectron2/default.nix
+++ b/pkgs/development/python-modules/detectron2/default.nix
@@ -1,42 +1,42 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonRelaxDepsHook
-, ninja
-, which
-# build inputs
-, pillow
-, matplotlib
-, pycocotools
-, termcolor
-, yacs
-, tabulate
-, cloudpickle
-, tqdm
-, tensorboard
-, fvcore
-, iopath
-, omegaconf
-, hydra-core
-, packaging
-, torch
-, pydot
-, black
-# optional dependencies
-, fairscale
-, timm
-, scipy
-, shapely
-, pygments
-, psutil
-# check inputs
-, pytestCheckHook
-, torchvision
-, av
-, opencv4
-, pytest-mock
-, pybind11
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ninja,
+  which,
+  # build inputs
+  pillow,
+  matplotlib,
+  pycocotools,
+  termcolor,
+  yacs,
+  tabulate,
+  cloudpickle,
+  tqdm,
+  tensorboard,
+  fvcore,
+  iopath,
+  omegaconf,
+  hydra-core,
+  packaging,
+  torch,
+  pydot,
+  black,
+  # optional dependencies
+  fairscale,
+  timm,
+  scipy,
+  shapely,
+  pygments,
+  psutil,
+  # check inputs
+  pytestCheckHook,
+  torchvision,
+  av,
+  opencv4,
+  pytest-mock,
+  pybind11,
 }:
 
 let
@@ -71,16 +71,13 @@ buildPythonPackage {
   '';
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     ninja
     which
   ];
 
   buildInputs = [ pybind11 ];
 
-  pythonRelaxDeps = [
-    "black"
-  ];
+  pythonRelaxDeps = [ "black" ];
 
   propagatedBuildInputs = [
     pillow
@@ -136,40 +133,42 @@ buildPythonPackage {
     "tests/data/test_coco_evaluation.py"
   ];
 
-  disabledTests = [
-    # fails for some reason
-    "test_checkpoint_resume"
-    "test_map_style"
-    # requires shapely
-    "test_resize_and_crop"
-    # require caffe2
-    "test_predict_boxes_tracing"
-    "test_predict_probs_tracing"
-    "testMaskRCNN"
-    "testRetinaNet"
-    # require coco dataset
-    "test_default_trainer"
-    "test_unknown_category"
-    "test_build_dataloader_train"
-    "test_build_iterable_dataloader_train"
-    # require network access
-    "test_opencv_exif_orientation"
-    "test_read_exif_orientation"
-    # use deprecated api, numpy.bool
-    "test_BWmode_nomask"
-    "test_draw_binary_mask"
-    "test_draw_empty_mask_predictions"
-    "test_draw_instance_predictions"
-    "test_draw_no_metadata"
-    "test_overlay_instances"
-    "test_overlay_instances_no_boxes"
-    "test_get_bounding_box"
-  ] ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
-    "test_build_batch_dataloader_inference"
-    "test_build_dataloader_inference"
-    "test_build_iterable_dataloader_inference"
-    "test_to_iterable"
-  ];
+  disabledTests =
+    [
+      # fails for some reason
+      "test_checkpoint_resume"
+      "test_map_style"
+      # requires shapely
+      "test_resize_and_crop"
+      # require caffe2
+      "test_predict_boxes_tracing"
+      "test_predict_probs_tracing"
+      "testMaskRCNN"
+      "testRetinaNet"
+      # require coco dataset
+      "test_default_trainer"
+      "test_unknown_category"
+      "test_build_dataloader_train"
+      "test_build_iterable_dataloader_train"
+      # require network access
+      "test_opencv_exif_orientation"
+      "test_read_exif_orientation"
+      # use deprecated api, numpy.bool
+      "test_BWmode_nomask"
+      "test_draw_binary_mask"
+      "test_draw_empty_mask_predictions"
+      "test_draw_instance_predictions"
+      "test_draw_no_metadata"
+      "test_overlay_instances"
+      "test_overlay_instances_no_boxes"
+      "test_get_bounding_box"
+    ]
+    ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
+      "test_build_batch_dataloader_inference"
+      "test_build_dataloader_inference"
+      "test_build_iterable_dataloader_inference"
+      "test_to_iterable"
+    ];
 
   pythonImportsCheck = [ "detectron2" ];
 
diff --git a/pkgs/development/python-modules/devgoldyutils/default.nix b/pkgs/development/python-modules/devgoldyutils/default.nix
new file mode 100644
index 0000000000000..fb70dba6d40c3
--- /dev/null
+++ b/pkgs/development/python-modules/devgoldyutils/default.nix
@@ -0,0 +1,30 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+}:
+
+buildPythonPackage rec {
+  pname = "devgoldyutils";
+  version = "3.0.0";
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "2kGu9QPP5WqKv2gO9DAkE9SNDerzNaEDRt5DrrYD9nQ=";
+  };
+
+  doCheck = false;
+
+  nativeBuildInputs = [ setuptools-scm ];
+
+  pythonImportsCheck = [ "devgoldyutils" ];
+
+  meta = {
+    description = "Collection of utility functions for Python used by mov-cli";
+    homepage = "https://github.com/THEGOLDENPRO/devgoldyutils";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ roshaen ];
+  };
+}
diff --git a/pkgs/development/python-modules/devialet/default.nix b/pkgs/development/python-modules/devialet/default.nix
index 60f57090f40bb..a9490581ce348 100644
--- a/pkgs/development/python-modules/devialet/default.nix
+++ b/pkgs/development/python-modules/devialet/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-oGa5tRCJAWBg/877UmmXnX7fkFLoxhyuG6gpXmyhRKo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "devialet"
-  ];
+  pythonImportsCheck = [ "devialet" ];
 
   meta = with lib; {
     description = "Library to interact with the Devialet API";
diff --git a/pkgs/development/python-modules/devito/default.nix b/pkgs/development/python-modules/devito/default.nix
index 064899b8e78eb..50e1b0dd5868c 100644
--- a/pkgs/development/python-modules/devito/default.nix
+++ b/pkgs/development/python-modules/devito/default.nix
@@ -1,32 +1,31 @@
-{ lib
-, stdenv
-, anytree
-, buildPythonPackage
-, cached-property
-, cgen
-, click
-, codepy
-, distributed
-, fetchFromGitHub
-, gcc
-, llvmPackages
-, matplotlib
-, multidict
-, nbval
-, psutil
-, py-cpuinfo
-, pyrevolve
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, scipy
-, sympy
+{
+  lib,
+  stdenv,
+  anytree,
+  buildPythonPackage,
+  cached-property,
+  cgen,
+  click,
+  codepy,
+  distributed,
+  fetchFromGitHub,
+  gcc,
+  llvmPackages,
+  matplotlib,
+  multidict,
+  nbval,
+  psutil,
+  py-cpuinfo,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
+  sympy,
 }:
 
 buildPythonPackage rec {
   pname = "devito";
-  version = "4.8.3";
+  version = "4.8.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -35,7 +34,7 @@ buildPythonPackage rec {
     owner = "devitocodes";
     repo = "devito";
     rev = "refs/tags/v${version}";
-    hash = "sha256-g9rRJF1JrZ6+s3tj4RZHuGOjt5LJjtK9I5CJmq4CJL4=";
+    hash = "sha256-UEj3WXRBaEOMX+wIDUjE6AP30QSSBUJHzNh3Kp/2AkE=";
   };
 
   pythonRemoveDeps = [
@@ -47,11 +46,8 @@ buildPythonPackage rec {
 
   pythonRelaxDeps = true;
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     anytree
     cached-property
     cgen
@@ -62,12 +58,9 @@ buildPythonPackage rec {
     multidict
     psutil
     py-cpuinfo
-    pyrevolve
     scipy
     sympy
-  ] ++ lib.optionals stdenv.cc.isClang [
-    llvmPackages.openmp
-  ];
+  ] ++ lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ];
 
   nativeCheckInputs = [
     gcc
@@ -80,46 +73,66 @@ buildPythonPackage rec {
 
   # I've had to disable the following tests since they fail while using nix-build, but they do pass
   # outside the build. They mostly related to the usage of MPI in a sandboxed environment.
-  disabledTests = [
-    "test_assign_parallel"
-    "test_cache_blocking_structure_distributed"
-    "test_codegen_quality0"
-    "test_coefficients_w_xreplace"
-    "test_docstrings"
-    "test_docstrings[finite_differences.coefficients]"
-    "test_gs_parallel"
-    "test_if_halo_mpi"
-    "test_if_parallel"
-    "test_init_omp_env_w_mpi"
-    "test_loop_bounds_forward"
-    "test_mpi_nocomms"
-    "test_mpi"
-    "test_index_derivative"
-    "test_new_distributor"
-    "test_setupWOverQ"
-    "test_shortcuts"
-    "test_subdomainset_mpi"
-  ];
+  disabledTests =
+    [
+      "test_assign_parallel"
+      "test_cache_blocking_structure_distributed"
+      "test_codegen_quality0"
+      "test_coefficients_w_xreplace"
+      "test_docstrings"
+      "test_docstrings[finite_differences.coefficients]"
+      "test_gs_parallel"
+      "test_if_halo_mpi"
+      "test_if_parallel"
+      "test_index_derivative"
+      "test_init_omp_env_w_mpi"
+      "test_loop_bounds_forward"
+      "test_min_max_mpi"
+      "test_mpi"
+      "test_mpi_nocomms"
+      "test_new_distributor"
+      "test_setupWOverQ"
+      "test_shortcuts"
+      "test_stability_mpi"
+      "test_subdomainset_mpi"
+      "test_subdomains_mpi"
+    ]
+    ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
+      # FAILED tests/test_unexpansion.py::Test2Pass::test_v0 - assert False
+      "test_v0"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # FAILED tests/test_caching.py::TestCaching::test_special_symbols - ValueError: not enough values to unpack (expected 3, got 2)
+      "test_special_symbols"
 
-  disabledTestPaths = [
-    "tests/test_pickle.py"
-    "tests/test_benchmark.py"
-    "tests/test_mpi.py"
-    "tests/test_autotuner.py"
-    "tests/test_data.py"
-    "tests/test_dse.py"
-    "tests/test_gradient.py"
-  ];
+      # FAILED tests/test_unexpansion.py::Test2Pass::test_v0 - codepy.CompileError: module compilation failed
+      "test_v0"
+    ]
+    ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+      # Numerical tests
+      "test_lm_fb"
+      "test_lm_ds"
+    ];
 
-  pythonImportsCheck = [
-    "devito"
-  ];
+  disabledTestPaths =
+    [
+      "tests/test_pickle.py"
+      "tests/test_benchmark.py"
+      "tests/test_mpi.py"
+      "tests/test_autotuner.py"
+      "tests/test_data.py"
+      "tests/test_dse.py"
+      "tests/test_gradient.py"
+    ]
+    ++ lib.optionals ((stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin) [ "tests/test_dle.py" ];
+
+  pythonImportsCheck = [ "devito" ];
 
-  meta = with lib; {
+  meta = {
     description = "Code generation framework for automated finite difference computation";
     homepage = "https://www.devitoproject.org/";
     changelog = "https://github.com/devitocodes/devito/releases/tag/v${version}";
-    license = licenses.mit;
-    maintainers = with maintainers; [ atila ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ atila ];
   };
 }
diff --git a/pkgs/development/python-modules/devolo-home-control-api/default.nix b/pkgs/development/python-modules/devolo-home-control-api/default.nix
index 8d06b409d5781..b4f3ea395e0f9 100644
--- a/pkgs/development/python-modules/devolo-home-control-api/default.nix
+++ b/pkgs/development/python-modules/devolo-home-control-api/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools-scm
-, websocket-client
-, zeroconf
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools-scm,
+  websocket-client,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-4AyC1DDYtKl8SwJf75BbzoOAhbZXmBZ05ma9YmLzksM=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     requests
diff --git a/pkgs/development/python-modules/devolo-plc-api/default.nix b/pkgs/development/python-modules/devolo-plc-api/default.nix
index ad34b49280f6b..da12ca39dbd0d 100644
--- a/pkgs/development/python-modules/devolo-plc-api/default.nix
+++ b/pkgs/development/python-modules/devolo-plc-api/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, httpx
-, protobuf
-, pytest-asyncio
-, pytest-httpx
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, segno
-, setuptools-scm
-, syrupy
-, zeroconf
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpx,
+  protobuf,
+  pytest-asyncio,
+  pytest-httpx,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  segno,
+  setuptools-scm,
+  syrupy,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
       --replace "protobuf>=4.22.0" "protobuf"
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     httpx
@@ -54,9 +53,7 @@ buildPythonPackage rec {
     syrupy
   ];
 
-  pythonImportsCheck = [
-    "devolo_plc_api"
-  ];
+  pythonImportsCheck = [ "devolo_plc_api" ];
 
   meta = with lib; {
     description = "Module to interact with Devolo PLC devices";
diff --git a/pkgs/development/python-modules/devpi-common/default.nix b/pkgs/development/python-modules/devpi-common/default.nix
index 19b6b43f311f6..e83e9d88d7241 100644
--- a/pkgs/development/python-modules/devpi-common/default.nix
+++ b/pkgs/development/python-modules/devpi-common/default.nix
@@ -1,23 +1,27 @@
-{ lib, buildPythonPackage, fetchPypi
-, pythonOlder
-, setuptools
-, setuptools-changelog-shortener
-, requests
-, tomli
-, pytestCheckHook
-, lazy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  setuptools-changelog-shortener,
+  requests,
+  tomli,
+  pytestCheckHook,
+  lazy,
 }:
 
 buildPythonPackage rec {
   pname = "devpi-common";
-  version = "4.0.3";
+  version = "4.0.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-+OAbT23wgPYihMzljFuxzh6GmwwjSqx60TVgl0X8Fz0=";
+    pname = "devpi_common";
+    inherit version;
+    hash = "sha256-I1oKmkXJblTGC6a6L3fYVs+Q8aacG+6UmIfp7cA6Qcw=";
   };
 
   nativeBuildInputs = [
@@ -31,19 +35,18 @@ buildPythonPackage rec {
     tomli
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "devpi_common"
-  ];
+  pythonImportsCheck = [ "devpi_common" ];
 
   meta = with lib; {
     homepage = "https://github.com/devpi/devpi";
     description = "Utilities jointly used by devpi-server and devpi-client";
     changelog = "https://github.com/devpi/devpi/blob/common-${version}/common/CHANGELOG";
     license = licenses.mit;
-    maintainers = with maintainers; [ lewo makefu ];
+    maintainers = with maintainers; [
+      lewo
+      makefu
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/devtools/default.nix b/pkgs/development/python-modules/devtools/default.nix
index a36da40bece4c..03cec87fef30b 100644
--- a/pkgs/development/python-modules/devtools/default.nix
+++ b/pkgs/development/python-modules/devtools/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, asttokens
-, buildPythonPackage
-, executing
-, hatchling
-, fetchFromGitHub
-, pygments
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  asttokens,
+  buildPythonPackage,
+  executing,
+  hatchling,
+  fetchFromGitHub,
+  pygments,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-1HFbNswdKa/9cQX0Gf6lLW1V5Kt/N4X6/5kQDdzp1Wo=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     asttokens
@@ -53,9 +52,7 @@ buildPythonPackage rec {
     "tests/test_insert_assert.py"
   ];
 
-  pythonImportsCheck = [
-    "devtools"
-  ];
+  pythonImportsCheck = [ "devtools" ];
 
   meta = with lib; {
     description = "Python's missing debug print command and other development tools";
diff --git a/pkgs/development/python-modules/dfdiskcache/default.nix b/pkgs/development/python-modules/dfdiskcache/default.nix
index d7a7de367a286..6008180900245 100644
--- a/pkgs/development/python-modules/dfdiskcache/default.nix
+++ b/pkgs/development/python-modules/dfdiskcache/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pandas
-, setuptools
-, simplesqlite
-, typing-extensions
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pandas,
+  setuptools,
+  simplesqlite,
+  typing-extensions,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/diagrams/default.nix b/pkgs/development/python-modules/diagrams/default.nix
index 963161e7c77eb..85eafa12893b6 100644
--- a/pkgs/development/python-modules/diagrams/default.nix
+++ b/pkgs/development/python-modules/diagrams/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, jinja2
-, poetry-core
-, round
-, graphviz
-, inkscape
-, imagemagick
-, pytestCheckHook
-, typed-ast
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  jinja2,
+  poetry-core,
+  round,
+  graphviz,
+  inkscape,
+  imagemagick,
+  pytestCheckHook,
+  typed-ast,
 }:
 
 buildPythonPackage rec {
@@ -45,7 +46,8 @@ buildPythonPackage rec {
   # Despite living in 'tool.poetry.dependencies',
   # these are only used at build time to process the image resource files
   nativeBuildInputs = [
-    inkscape imagemagick
+    inkscape
+    imagemagick
     jinja2
     poetry-core
     round
@@ -56,13 +58,9 @@ buildPythonPackage rec {
     typed-ast
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "diagrams"
-  ];
+  pythonImportsCheck = [ "diagrams" ];
 
   meta = with lib; {
     description = "Diagram as Code";
diff --git a/pkgs/development/python-modules/diceware/default.nix b/pkgs/development/python-modules/diceware/default.nix
index 4f4094e2cf9c5..7780fd5327bdf 100644
--- a/pkgs/development/python-modules/diceware/default.nix
+++ b/pkgs/development/python-modules/diceware/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,22 +24,16 @@ buildPythonPackage rec {
       --replace "'pytest_runner'," ""
   '';
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  propagatedBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [
     # see https://github.com/ulif/diceware/commit/a7d844df76cd4b95a717f21ef5aa6167477b6733
     "-m 'not packaging'"
   ];
 
-  pythonImportsCheck = [
-    "diceware"
-  ];
+  pythonImportsCheck = [ "diceware" ];
 
   meta = with lib; {
     description = "Generates passphrases by concatenating words randomly picked from wordlists";
diff --git a/pkgs/development/python-modules/dicom-numpy/default.nix b/pkgs/development/python-modules/dicom-numpy/default.nix
index 84ec407606b66..aeb867e0a019c 100644
--- a/pkgs/development/python-modules/dicom-numpy/default.nix
+++ b/pkgs/development/python-modules/dicom-numpy/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, numpy
-, pydicom
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  numpy,
+  pydicom,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     pydicom
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dicom_numpy"
-  ];
+  pythonImportsCheck = [ "dicom_numpy" ];
 
   meta = with lib; {
     description = "Read DICOM files into Numpy arrays";
diff --git a/pkgs/development/python-modules/dicom2nifti/default.nix b/pkgs/development/python-modules/dicom2nifti/default.nix
index f6dc8cd20a687..0e12fe09c775b 100644
--- a/pkgs/development/python-modules/dicom2nifti/default.nix
+++ b/pkgs/development/python-modules/dicom2nifti/default.nix
@@ -1,38 +1,49 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, gdcm
-, nibabel
-, numpy
-, pydicom
-, scipy
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  gdcm,
+  nibabel,
+  numpy,
+  pydicom,
+  scipy,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "dicom2nifti";
-  version = "2.4.8";
-  format = "setuptools";
+  version = "2.4.11";
+  pyproject = true;
+
   disabled = pythonOlder "3.6";
 
   # no tests in PyPI dist
   src = fetchFromGitHub {
     owner = "icometrix";
     repo = pname;
-    rev = version;
-    hash = "sha256-2Pspxdeu3pHwXpbjS6bQQnvdeMuITRwYarPuLlmNcv8";
+    rev = "refs/tags/${version}";
+    hash = "sha256-/JauQZcCQDl1ukcSE3YPbf1SyhVxDNJUlqnFwdlwYQY=";
   };
 
-  propagatedBuildInputs = [ gdcm nibabel numpy pydicom scipy setuptools ];
+  build-system = [ setuptools ];
+
+  propagatedBuildInputs = [
+    gdcm
+    nibabel
+    numpy
+    pydicom
+    scipy
+  ];
 
   # python-gdcm just builds the python interface provided by the "gdcm" package, so
   # we should be able to replace "python-gdcm" with "gdcm" but this doesn't work
   # (similar to https://github.com/NixOS/nixpkgs/issues/84774)
   postPatch = ''
-    substituteInPlace setup.py --replace "python-gdcm" ""
-    substituteInPlace tests/test_generic.py --replace "from common" "from dicom2nifti.common"
+    substituteInPlace setup.py --replace-fail "python-gdcm" ""
+    substituteInPlace tests/test_generic.py --replace-fail "from common" "from dicom2nifti.common"
+    substituteInPlace tests/test_ge.py --replace-fail "import convert_generic" "import dicom2nifti.convert_generic as convert_generic"
   '';
 
   nativeCheckInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/dicomweb-client/default.nix b/pkgs/development/python-modules/dicomweb-client/default.nix
index 1a4f528ec11e9..c5624deaf46e2 100644
--- a/pkgs/development/python-modules/dicomweb-client/default.nix
+++ b/pkgs/development/python-modules/dicomweb-client/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, pytest-localserver
-, numpy
-, pillow
-, pydicom
-, requests
-, retrying
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  pytest-localserver,
+  numpy,
+  pillow,
+  pydicom,
+  requests,
+  retrying,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
     pytest-localserver
   ];
 
-  pythonImportsCheck = [
-    "dicomweb_client"
-  ];
+  pythonImportsCheck = [ "dicomweb_client" ];
 
   meta = with lib; {
     description = "Python client for DICOMweb RESTful services";
diff --git a/pkgs/development/python-modules/dict2xml/default.nix b/pkgs/development/python-modules/dict2xml/default.nix
index 6a68a695fbbb1..6887f8a13ac73 100644
--- a/pkgs/development/python-modules/dict2xml/default.nix
+++ b/pkgs/development/python-modules/dict2xml/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, hatchling
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  hatchling,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-GNvG1VFz/qkkTrKleMrq8n6kcIYtfhUlQMyCqH9uQzw=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   # Tests are inplemented in a custom DSL (RSpec)
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dict2xml"
-  ];
+  pythonImportsCheck = [ "dict2xml" ];
 
   meta = with lib; {
     description = "Library to convert a Python dictionary into an XML string";
diff --git a/pkgs/development/python-modules/dictdiffer/default.nix b/pkgs/development/python-modules/dictdiffer/default.nix
index acbc3996fbc6b..496c3d51af71f 100644
--- a/pkgs/development/python-modules/dictdiffer/default.nix
+++ b/pkgs/development/python-modules/dictdiffer/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -20,13 +21,9 @@ buildPythonPackage rec {
     hash = "sha256-lQyPs3lQWtsvNPuvvwJUTDzrFaOX5uwGuRHe3yWUheU=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace setup.py \
@@ -35,9 +32,7 @@ buildPythonPackage rec {
       --replace ' --isort --pydocstyle --pycodestyle --doctest-glob="*.rst" --doctest-modules --cov=dictdiffer --cov-report=term-missing' ""
   '';
 
-  pythonImportsCheck = [
-    "dictdiffer"
-  ];
+  pythonImportsCheck = [ "dictdiffer" ];
 
   meta = with lib; {
     description = "Module to diff and patch dictionaries";
diff --git a/pkgs/development/python-modules/dictionaries/default.nix b/pkgs/development/python-modules/dictionaries/default.nix
index 0395c7796d9f4..1574d2e9e7e7a 100644
--- a/pkgs/development/python-modules/dictionaries/default.nix
+++ b/pkgs/development/python-modules/dictionaries/default.nix
@@ -1,4 +1,9 @@
-{ buildPythonPackage, fetchPypi, lib, six }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "dictionaries";
diff --git a/pkgs/development/python-modules/dicttoxml/default.nix b/pkgs/development/python-modules/dicttoxml/default.nix
index d205aa0cd4714..43ef9df098207 100644
--- a/pkgs/development/python-modules/dicttoxml/default.nix
+++ b/pkgs/development/python-modules/dicttoxml/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/dicttoxml2/default.nix b/pkgs/development/python-modules/dicttoxml2/default.nix
index 8730634985354..d056efe699195 100644
--- a/pkgs/development/python-modules/dicttoxml2/default.nix
+++ b/pkgs/development/python-modules/dicttoxml2/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,11 +20,9 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dicttoxml2"
-  ];
+  pythonImportsCheck = [ "dicttoxml2" ];
 
-  meta = with lib;{
+  meta = with lib; {
     description = "Converts a Python dictionary or other native data type into a valid XML string";
     homepage = "https://pypi.org/project/dicttoxml2/";
     license = licenses.gpl2Only;
diff --git a/pkgs/development/python-modules/diff-cover/default.nix b/pkgs/development/python-modules/diff-cover/default.nix
index 9ca63fd2b533e..ff1ef2e64b420 100644
--- a/pkgs/development/python-modules/diff-cover/default.nix
+++ b/pkgs/development/python-modules/diff-cover/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, chardet
-, fetchPypi
-, jinja2
-, jinja2-pluralize
-, pluggy
-, poetry-core
-, pycodestyle
-, pyflakes
-, pygments
-, pylint
-, pytest-datadir
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, tomli
+{
+  lib,
+  buildPythonPackage,
+  chardet,
+  fetchPypi,
+  jinja2,
+  jinja2-pluralize,
+  pluggy,
+  poetry-core,
+  pycodestyle,
+  pyflakes,
+  pygments,
+  pylint,
+  pytest-datadir,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  tomli,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     hash = "sha256-HchR0/PzIMBI0DYY5MDZhh+koVBrQl0tCaVksgyVZ0o=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     chardet
@@ -59,9 +58,7 @@ buildPythonPackage rec {
     "console"
   ];
 
-  pythonImportsCheck = [
-    "diff_cover"
-  ];
+  pythonImportsCheck = [ "diff_cover" ];
 
   meta = with lib; {
     description = "Automatically find diff lines that need test coverage";
diff --git a/pkgs/development/python-modules/diff-match-patch/default.nix b/pkgs/development/python-modules/diff-match-patch/default.nix
index 93d9e3288ddae..93ce2b7de1386 100644
--- a/pkgs/development/python-modules/diff-match-patch/default.nix
+++ b/pkgs/development/python-modules/diff-match-patch/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -15,13 +16,9 @@ buildPythonPackage rec {
     hash = "sha256-lTAZzbnJ0snke1sSvP889HRvxFmOtAYHb6H8J+ah8Vw=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   meta = with lib; {
     homepage = "https://github.com/diff-match-patch-python/diff-match-patch";
diff --git a/pkgs/development/python-modules/diffimg/default.nix b/pkgs/development/python-modules/diffimg/default.nix
index c1769d118f90b..4136041f7d82e 100644
--- a/pkgs/development/python-modules/diffimg/default.nix
+++ b/pkgs/development/python-modules/diffimg/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pillow
-, unittestCheckHook
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pillow,
+  unittestCheckHook,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -20,23 +21,21 @@ buildPythonPackage rec {
 
   # it imports the wrong diff,
   # fix offered to upstream https://github.com/nicolashahn/diffimg/pull/6
-  postPatch = ''
-    substituteInPlace diffimg/test.py \
-      --replace-warn "from diff import diff" "from diffimg.diff import diff"
-  '' + lib.optionalString (pythonAtLeast "3.12") ''
-    substituteInPlace diffimg/test.py \
-      --replace-warn "3503192421617232" "3503192421617233"
-  '';
+  postPatch =
+    ''
+      substituteInPlace diffimg/test.py \
+        --replace-warn "from diff import diff" "from diffimg.diff import diff"
+    ''
+    + lib.optionalString (pythonAtLeast "3.12") ''
+      substituteInPlace diffimg/test.py \
+        --replace-warn "3503192421617232" "3503192421617233"
+    '';
 
-  propagatedBuildInputs = [
-    pillow
-  ];
+  propagatedBuildInputs = [ pillow ];
 
   pythonImportsCheck = [ "diffimg" ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   meta = with lib; {
     description = "Differentiate images in python - get a ratio or percentage difference, and generate a diff image";
diff --git a/pkgs/development/python-modules/diffsync/default.nix b/pkgs/development/python-modules/diffsync/default.nix
index ff96650b920f2..28ea4eb3a9f52 100644
--- a/pkgs/development/python-modules/diffsync/default.nix
+++ b/pkgs/development/python-modules/diffsync/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, buildPythonPackage
-, colorama
-, fetchFromGitHub
-, packaging
-, poetry-core
-, pydantic
-, pythonRelaxDepsHook
-, redis
-, structlog
+{
+  lib,
+  buildPythonPackage,
+  colorama,
+  fetchFromGitHub,
+  packaging,
+  poetry-core,
+  pydantic,
+  redis,
+  structlog,
 }:
 
 buildPythonPackage rec {
@@ -24,7 +24,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = [
@@ -40,9 +39,7 @@ buildPythonPackage rec {
     structlog
   ];
 
-  pythonImportsCheck = [
-    "diffsync"
-  ];
+  pythonImportsCheck = [ "diffsync" ];
 
   meta = with lib; {
     description = "Utility library for comparing and synchronizing different datasets";
diff --git a/pkgs/development/python-modules/diffusers/default.nix b/pkgs/development/python-modules/diffusers/default.nix
index 39464efe47fdb..3eb3f6137ab7d 100644
--- a/pkgs/development/python-modules/diffusers/default.nix
+++ b/pkgs/development/python-modules/diffusers/default.nix
@@ -1,45 +1,46 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, writeText
-, setuptools
-, wheel
-, filelock
-, huggingface-hub
-, importlib-metadata
-, numpy
-, pillow
-, regex
-, requests
-, safetensors
-# optional dependencies
-, accelerate
-, datasets
-, flax
-, jax
-, jaxlib
-, jinja2
-, peft
-, protobuf
-, tensorboard
-, torch
-# test dependencies
-, parameterized
-, pytest-timeout
-, pytest-xdist
-, pytestCheckHook
-, requests-mock
-, scipy
-, sentencepiece
-, torchsde
-, transformers
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  writeText,
+  setuptools,
+  filelock,
+  huggingface-hub,
+  importlib-metadata,
+  numpy,
+  pillow,
+  regex,
+  requests,
+  safetensors,
+  # optional dependencies
+  accelerate,
+  datasets,
+  flax,
+  jax,
+  jaxlib,
+  jinja2,
+  peft,
+  protobuf,
+  tensorboard,
+  torch,
+  # test dependencies
+  parameterized,
+  pytest-timeout,
+  pytest-xdist,
+  pytestCheckHook,
+  requests-mock,
+  scipy,
+  sentencepiece,
+  torchsde,
+  transformers,
+  pythonAtLeast,
+  diffusers,
 }:
 
 buildPythonPackage rec {
   pname = "diffusers";
-  version = "0.27.2";
+  version = "0.29.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -48,15 +49,12 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "diffusers";
     rev = "refs/tags/v${version}";
-    hash = "sha256-aRnbU3jN40xaCsoMFyRt1XB+hyIYMJP2b/T1yZho90c=";
+    hash = "sha256-sC/vstc7347ofNWESiUnvRsfAu/sKzlNV3lTPTuqUkY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-    wheel
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     filelock
     huggingface-hub
     importlib-metadata
@@ -87,12 +85,12 @@ buildPythonPackage rec {
     ];
   };
 
-  pythonImportsCheck = [
-    "diffusers"
-  ];
+  pythonImportsCheck = [ "diffusers" ];
 
-  # tests crash due to torch segmentation fault
-  doCheck = !(stdenv.isLinux && stdenv.isAarch64);
+  # it takes a few hours
+  doCheck = false;
+
+  passthru.tests.pytest = diffusers.overridePythonAttrs { doCheck = true; };
 
   nativeCheckInputs = [
     parameterized
@@ -106,44 +104,50 @@ buildPythonPackage rec {
     transformers
   ] ++ passthru.optional-dependencies.torch;
 
-  preCheck = let
-    # This pytest hook mocks and catches attempts at accessing the network
-    # tests that try to access the network will raise, get caught, be marked as skipped and tagged as xfailed.
-    # cf. python3Packages.shap
-    conftestSkipNetworkErrors = writeText "conftest.py" ''
-      from _pytest.runner import pytest_runtest_makereport as orig_pytest_runtest_makereport
-      import urllib3
-
-      class NetworkAccessDeniedError(RuntimeError): pass
-      def deny_network_access(*a, **kw):
-        raise NetworkAccessDeniedError
-
-      urllib3.connection.HTTPSConnection._new_conn = deny_network_access
-
-      def pytest_runtest_makereport(item, call):
-        tr = orig_pytest_runtest_makereport(item, call)
-        if call.excinfo is not None and call.excinfo.type is NetworkAccessDeniedError:
-            tr.outcome = 'skipped'
-            tr.wasxfail = "reason: Requires network access."
-        return tr
+  preCheck =
+    let
+      # This pytest hook mocks and catches attempts at accessing the network
+      # tests that try to access the network will raise, get caught, be marked as skipped and tagged as xfailed.
+      # cf. python3Packages.shap
+      conftestSkipNetworkErrors = writeText "conftest.py" ''
+        from _pytest.runner import pytest_runtest_makereport as orig_pytest_runtest_makereport
+        import urllib3
+
+        class NetworkAccessDeniedError(RuntimeError): pass
+        def deny_network_access(*a, **kw):
+          raise NetworkAccessDeniedError
+
+        urllib3.connection.HTTPSConnection._new_conn = deny_network_access
+
+        def pytest_runtest_makereport(item, call):
+          tr = orig_pytest_runtest_makereport(item, call)
+          if call.excinfo is not None and call.excinfo.type is NetworkAccessDeniedError:
+              tr.outcome = 'skipped'
+              tr.wasxfail = "reason: Requires network access."
+          return tr
+      '';
+    in
+    ''
+      export HOME=$TMPDIR
+      cat ${conftestSkipNetworkErrors} >> tests/conftest.py
     '';
-  in ''
-    export HOME=$TMPDIR
-    cat ${conftestSkipNetworkErrors} >> tests/conftest.py
-  '';
 
-  pytestFlagsArray = [
-    "tests/"
-  ];
-
-  disabledTests = [
-    # depends on current working directory
-    "test_deprecate_stacklevel"
-    # fails due to precision of floating point numbers
-    "test_model_cpu_offload_forward_pass"
-    # tries to run ruff which we have intentionally removed from nativeCheckInputs
-    "test_is_copy_consistent"
-  ];
+  pytestFlagsArray = [ "tests/" ];
+
+  disabledTests =
+    [
+      # depends on current working directory
+      "test_deprecate_stacklevel"
+      # fails due to precision of floating point numbers
+      "test_model_cpu_offload_forward_pass"
+      # tries to run ruff which we have intentionally removed from nativeCheckInputs
+      "test_is_copy_consistent"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+
+      # RuntimeError: Dynamo is not supported on Python 3.12+
+      "test_from_save_pretrained_dynamo"
+    ];
 
   meta = with lib; {
     description = "State-of-the-art diffusion models for image and audio generation in PyTorch";
diff --git a/pkgs/development/python-modules/digi-xbee/default.nix b/pkgs/development/python-modules/digi-xbee/default.nix
index 7514ba8609d00..8ba90f4d8ac57 100644
--- a/pkgs/development/python-modules/digi-xbee/default.nix
+++ b/pkgs/development/python-modules/digi-xbee/default.nix
@@ -1,4 +1,11 @@
-{ buildPythonPackage, fetchPypi, isPy27, pyserial, srp, lib }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  pyserial,
+  srp,
+  lib,
+}:
 
 buildPythonPackage rec {
   pname = "digi-xbee";
@@ -11,7 +18,10 @@ buildPythonPackage rec {
     sha256 = "3b10e749431f406d80c189d872f4673b8d3cd510f7b411f817780a0e72499cd2";
   };
 
-  propagatedBuildInputs = [ pyserial srp ];
+  propagatedBuildInputs = [
+    pyserial
+    srp
+  ];
 
   # Upstream doesn't contain unit tests, only functional tests which require specific hardware
   doCheck = false;
diff --git a/pkgs/development/python-modules/dill/default.nix b/pkgs/development/python-modules/dill/default.nix
index cdfdb401e94d4..790cb9ce0cd63 100644
--- a/pkgs/development/python-modules/dill/default.nix
+++ b/pkgs/development/python-modules/dill/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, pythonOlder
-, setuptools
-
-# passthru tests
-, apache-beam
-, datasets
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  pythonOlder,
+  setuptools,
+
+  # passthru tests
+  apache-beam,
+  datasets,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-r65JgQH+5raiRX8NYELUB9B0zLy4z606EkFJaNpapNc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/dinghy/default.nix b/pkgs/development/python-modules/dinghy/default.nix
index f7f099b3bb1a7..451f4c6578f67 100644
--- a/pkgs/development/python-modules/dinghy/default.nix
+++ b/pkgs/development/python-modules/dinghy/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, aiofiles
-, aiohttp
-, backports-datetime-fromisoformat
-, click
-, click-log
-, emoji
-, glom
-, jinja2
-, pyyaml
-, freezegun
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  aiofiles,
+  aiohttp,
+  backports-datetime-fromisoformat,
+  click,
+  click-log,
+  emoji,
+  glom,
+  jinja2,
+  pyyaml,
+  freezegun,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     hash = "sha256-0U08QHQuNm7qaxhU8sNxeN0fZ4S8N0RYRsWjFUqhZSU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiofiles
@@ -51,16 +50,17 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "dinghy.cli"
-  ];
+  pythonImportsCheck = [ "dinghy.cli" ];
 
   meta = with lib; {
-    description = "A GitHub activity digest tool";
+    description = "GitHub activity digest tool";
     mainProgram = "dinghy";
     homepage = "https://github.com/nedbat/dinghy";
     changelog = "https://github.com/nedbat/dinghy/blob/${version}/CHANGELOG.rst";
     license = licenses.asl20;
-    maintainers = with maintainers; [ trundle veehaitch ];
+    maintainers = with maintainers; [
+      trundle
+      veehaitch
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/dingz/default.nix b/pkgs/development/python-modules/dingz/default.nix
index 10354264861e0..9f8d8a4a551f1 100644
--- a/pkgs/development/python-modules/dingz/default.nix
+++ b/pkgs/development/python-modules/dingz/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dingz"
-  ];
+  pythonImportsCheck = [ "dingz" ];
 
   meta = with lib; {
     description = "Python API for interacting with Dingz devices";
diff --git a/pkgs/development/python-modules/diofant/default.nix b/pkgs/development/python-modules/diofant/default.nix
index 303d00bbff297..9fa09e0df0704 100644
--- a/pkgs/development/python-modules/diofant/default.nix
+++ b/pkgs/development/python-modules/diofant/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchpatch
-, fetchPypi
-, gmpy2
-, mpmath
-, numpy
-, pythonOlder
-, scipy
-, setuptools-scm
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchpatch,
+  fetchPypi,
+  gmpy2,
+  mpmath,
+  numpy,
+  pythonOlder,
+  scipy,
+  setuptools-scm,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    mpmath
-  ];
+  propagatedBuildInputs = [ mpmath ];
 
   passthru.optional-dependencies = {
     exports = [
@@ -47,9 +46,7 @@ buildPythonPackage rec {
       numpy
       scipy
     ];
-    gmpy = [
-      gmpy2
-    ];
+    gmpy = [ gmpy2 ];
   };
 
   # tests take ~1h
@@ -58,7 +55,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "diofant" ];
 
   meta = with lib; {
-    description = "A Python CAS library";
+    description = "Python CAS library";
     homepage = "https://diofant.readthedocs.io/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ suhr ];
diff --git a/pkgs/development/python-modules/dipy/default.nix b/pkgs/development/python-modules/dipy/default.nix
index 22290b692240c..d1f9fdd4209cc 100644
--- a/pkgs/development/python-modules/dipy/default.nix
+++ b/pkgs/development/python-modules/dipy/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, packaging
-, cython
-, numpy
-, scipy
-, h5py
-, nibabel
-, tqdm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  packaging,
+  cython,
+  numpy,
+  scipy,
+  h5py,
+  nibabel,
+  tqdm,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/directv/default.nix b/pkgs/development/python-modules/directv/default.nix
index d8aaa9b7df677..66526a2d09754 100644
--- a/pkgs/development/python-modules/directv/default.nix
+++ b/pkgs/development/python-modules/directv/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, aiohttp
-, yarl
-, aresponses
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  aiohttp,
+  yarl,
+  aresponses,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/dirigera/default.nix b/pkgs/development/python-modules/dirigera/default.nix
index 36789741f83aa..7b5f5d536601e 100644
--- a/pkgs/development/python-modules/dirigera/default.nix
+++ b/pkgs/development/python-modules/dirigera/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "dirigera";
-  version = "1.1.6";
+  version = "1.1.7";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "Leggin";
     repo = "dirigera";
     rev = "refs/tags/v${version}";
-    hash = "sha256-OXq8eJyZQBsJEK81GxstfMHqDShlZyOWSXLwP9Zfpqw=";
+    hash = "sha256-KAwXpcs0EvmaxBVgZ7TlT1hDI0m7f8hJigUTluVATsw=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/dirty-equals/default.nix b/pkgs/development/python-modules/dirty-equals/default.nix
index 8ef6259761678..aa3434a050891 100644
--- a/pkgs/development/python-modules/dirty-equals/default.nix
+++ b/pkgs/development/python-modules/dirty-equals/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, pydantic
-, pytest-examples
-, pytestCheckHook
-, pythonOlder
-, pytz
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  pydantic,
+  pytest-examples,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
 }:
 
 let
@@ -24,13 +25,9 @@ let
       hash = "sha256-U6DNluthDgxzh6IOaKrN/JhX4u+ztY/jVp9IKh0iP34=";
     };
 
-    nativeBuildInputs = [
-      hatchling
-    ];
+    nativeBuildInputs = [ hatchling ];
 
-    propagatedBuildInputs = [
-      pytz
-    ];
+    propagatedBuildInputs = [ pytz ];
 
     doCheck = false;
     passthru.tests.pytest = dirty-equals.overrideAttrs { doCheck = true; };
@@ -41,9 +38,7 @@ let
       pytestCheckHook
     ];
 
-    pythonImportsCheck = [
-      "dirty_equals"
-    ];
+    pythonImportsCheck = [ "dirty_equals" ];
 
     meta = with lib; {
       description = "Module for doing dirty (but extremely useful) things with equals";
@@ -53,4 +48,5 @@ let
       maintainers = with maintainers; [ fab ];
     };
   };
-in dirty-equals
+in
+dirty-equals
diff --git a/pkgs/development/python-modules/dirtyjson/default.nix b/pkgs/development/python-modules/dirtyjson/default.nix
index 7cd4fce0e6509..3519d8ff4a568 100644
--- a/pkgs/development/python-modules/dirtyjson/default.nix
+++ b/pkgs/development/python-modules/dirtyjson/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,22 +19,19 @@ buildPythonPackage rec {
     hash = "sha256-kMpKGPP/MM6EnRANz0oAOVPHnTojSO8Fbx2cIiMaJf0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dirtyjson"
-  ];
+  pythonImportsCheck = [ "dirtyjson" ];
 
   meta = with lib; {
     description = "JSON decoder for Python that can extract data from the muck";
     homepage = "https://github.com/codecobblers/dirtyjson";
-    license = with licenses; [ afl21 /* and */ mit];
+    license = with licenses; [
+      afl21 # and
+      mit
+    ];
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/discid/default.nix b/pkgs/development/python-modules/discid/default.nix
index ec921be17ddb3..83cc31223521c 100644
--- a/pkgs/development/python-modules/discid/default.nix
+++ b/pkgs/development/python-modules/discid/default.nix
@@ -1,4 +1,10 @@
-{ lib, stdenv, libdiscid, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  stdenv,
+  libdiscid,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "discid";
@@ -11,7 +17,9 @@ buildPythonPackage rec {
   };
 
   patchPhase =
-    let extension = stdenv.hostPlatform.extensions.sharedLibrary; in
+    let
+      extension = stdenv.hostPlatform.extensions.sharedLibrary;
+    in
     ''
       substituteInPlace discid/libdiscid.py \
         --replace "_open_library(_LIB_NAME)" \
@@ -20,7 +28,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python binding of libdiscid";
-    homepage    = "https://python-discid.readthedocs.org/";
-    license     = licenses.lgpl3Plus;
+    homepage = "https://python-discid.readthedocs.org/";
+    license = licenses.lgpl3Plus;
   };
 }
diff --git a/pkgs/development/python-modules/discogs-client/default.nix b/pkgs/development/python-modules/discogs-client/default.nix
index ad4268b8f7121..cf7e28c54c3a9 100644
--- a/pkgs/development/python-modules/discogs-client/default.nix
+++ b/pkgs/development/python-modules/discogs-client/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, oauthlib
-, python-dateutil
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  oauthlib,
+  python-dateutil,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +29,9 @@ buildPythonPackage rec {
     python-dateutil
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "discogs_client"
-  ];
+  pythonImportsCheck = [ "discogs_client" ];
 
   meta = with lib; {
     description = "Unofficial Python API client for Discogs";
diff --git a/pkgs/development/python-modules/discordpy/default.nix b/pkgs/development/python-modules/discordpy/default.nix
index a13eba26b7e12..ff9771798860b 100644
--- a/pkgs/development/python-modules/discordpy/default.nix
+++ b/pkgs/development/python-modules/discordpy/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, libopus
-, pynacl
-, pythonOlder
-, withVoice ? true
-, ffmpeg
+{
+  lib,
+  stdenv,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  libopus,
+  pynacl,
+  pythonOlder,
+  withVoice ? true,
+  ffmpeg,
 }:
 
 buildPythonPackage rec {
@@ -24,21 +25,23 @@ buildPythonPackage rec {
     hash = "sha256-bZoYdDpk34x+Vw1pAZ3EcTFp2JJ/Ow0Jfof/XjqeRmY=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ] ++ lib.optionals withVoice [
-    libopus
-    pynacl
-    ffmpeg
-  ];
+  propagatedBuildInputs =
+    [ aiohttp ]
+    ++ lib.optionals withVoice [
+      libopus
+      pynacl
+      ffmpeg
+    ];
 
-  patchPhase = ''
-    substituteInPlace "discord/opus.py" \
-      --replace "ctypes.util.find_library('opus')" "'${libopus}/lib/libopus${stdenv.hostPlatform.extensions.sharedLibrary}'"
-  '' + lib.optionalString withVoice ''
-    substituteInPlace "discord/player.py" \
-      --replace "executable='ffmpeg'" "executable='${ffmpeg}/bin/ffmpeg'"
-  '';
+  patchPhase =
+    ''
+      substituteInPlace "discord/opus.py" \
+        --replace "ctypes.util.find_library('opus')" "'${libopus}/lib/libopus${stdenv.hostPlatform.extensions.sharedLibrary}'"
+    ''
+    + lib.optionalString withVoice ''
+      substituteInPlace "discord/player.py" \
+        --replace "executable='ffmpeg'" "executable='${ffmpeg}/bin/ffmpeg'"
+    '';
 
   # Only have integration tests with discord
   doCheck = false;
diff --git a/pkgs/development/python-modules/discovery30303/default.nix b/pkgs/development/python-modules/discovery30303/default.nix
index fb3904046b8b7..823207a087af4 100644
--- a/pkgs/development/python-modules/discovery30303/default.nix
+++ b/pkgs/development/python-modules/discovery30303/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,27 +23,21 @@ buildPythonPackage rec {
     hash = "sha256-WSVMhiJxASxAkxs6RGuAVvEFS8TPxDKE9M99Rp8HKGM=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "--asyncio-mode=auto"
-  ];
+  pytestFlagsArray = [ "--asyncio-mode=auto" ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace " --cov=discovery30303" ""
   '';
 
-  pythonImportsCheck = [
-    "discovery30303"
-  ];
+  pythonImportsCheck = [ "discovery30303" ];
 
   meta = with lib; {
     description = "Module to discover devices that respond on port 30303";
diff --git a/pkgs/development/python-modules/diskcache/default.nix b/pkgs/development/python-modules/diskcache/default.nix
index 328777370782f..4fe4bad03abc6 100644
--- a/pkgs/development/python-modules/diskcache/default.nix
+++ b/pkgs/development/python-modules/diskcache/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-django
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-django,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -47,9 +48,7 @@ buildPythonPackage rec {
     "test_cache_write_unpicklable_object"
   ];
 
-  pythonImportsCheck = [
-    "diskcache"
-  ];
+  pythonImportsCheck = [ "diskcache" ];
 
   meta = with lib; {
     description = "Disk and file backed persistent cache";
diff --git a/pkgs/development/python-modules/dissect-archive/default.nix b/pkgs/development/python-modules/dissect-archive/default.nix
new file mode 100644
index 0000000000000..864e6eb1ff180
--- /dev/null
+++ b/pkgs/development/python-modules/dissect-archive/default.nix
@@ -0,0 +1,45 @@
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+}:
+
+buildPythonPackage rec {
+  pname = "dissect-archive";
+  version = "1.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "fox-it";
+    repo = "dissect.archive";
+    rev = "refs/tags/${version}";
+    hash = "sha256-DUAJUbG3k6sbO7mqvNzQQns+4l8XHDUh0xZ/RA5LWEY=";
+  };
+
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  dependencies = [
+    dissect-cstruct
+    dissect-util
+  ];
+
+  pythonImportsCheck = [ "dissect.archive" ];
+
+  meta = with lib; {
+    description = "Dissect module implementing parsers for various archive and backup formats";
+    homepage = "https://github.com/fox-it/dissect.archive";
+    changelog = "https://github.com/fox-it/dissect.archive/releases/tag/${version}";
+    license = licenses.agpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/dissect-btrfs/default.nix b/pkgs/development/python-modules/dissect-btrfs/default.nix
index 8b492ae66701d..02271c9bf43b7 100644
--- a/pkgs/development/python-modules/dissect-btrfs/default.nix
+++ b/pkgs/development/python-modules/dissect-btrfs/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, google-crc32c
-, python-lzo
-, pythonOlder
-, setuptools
-, setuptools-scm
-, zstandard
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  google-crc32c,
+  python-lzo,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  zstandard,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-btrfs";
-  version = "1.2";
+  version = "1.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -22,7 +23,7 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.btrfs";
     rev = "refs/tags/${version}";
-    hash = "sha256-nWgeChHHCAjD5I98h2/1HrO5688aZUM4j2PJiD1xP0g=";
+    hash = "sha256-Xn7y9om/IuCaPR77lSuC0peF5umIxu2BS9esMPXsv+Y=";
   };
 
   nativeBuildInputs = [
@@ -40,17 +41,13 @@ buildPythonPackage rec {
       python-lzo
       zstandard
     ];
-    gcrc32 = [
-      google-crc32c
-    ];
+    gcrc32 = [ google-crc32c ];
   };
 
   # Issue with the test file handling
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dissect.btrfs"
-  ];
+  pythonImportsCheck = [ "dissect.btrfs" ];
 
   meta = with lib; {
     description = "Dissect module implementing a parser for the BTRFS file system";
diff --git a/pkgs/development/python-modules/dissect-cim/default.nix b/pkgs/development/python-modules/dissect-cim/default.nix
index c9aef3e961ec9..9073873f148db 100644
--- a/pkgs/development/python-modules/dissect-cim/default.nix
+++ b/pkgs/development/python-modules/dissect-cim/default.nix
@@ -1,45 +1,42 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-cim";
-  version = "3.8";
-  format = "pyproject";
+  version = "3.9";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "fox-it";
     repo = "dissect.cim";
     rev = "refs/tags/${version}";
-    hash = "sha256-NbGI6d1C3X7PbTsbDSCS4AUK6ueCBOuQDTNhkULrLYc=";
+    hash = "sha256-UZ4mlshaKqZKoysvnGfcaoMOrMwfsN/qOJ8hrpMcQL0=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     dissect-cstruct
     dissect-util
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dissect.cim"
-  ];
+  pythonImportsCheck = [ "dissect.cim" ];
 
   meta = with lib; {
     description = "Dissect module implementing a parser for the Windows Common Information Model (CIM) database";
diff --git a/pkgs/development/python-modules/dissect-clfs/default.nix b/pkgs/development/python-modules/dissect-clfs/default.nix
index 1007dcc07c62b..287896b2448dd 100644
--- a/pkgs/development/python-modules/dissect-clfs/default.nix
+++ b/pkgs/development/python-modules/dissect-clfs/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-clfs";
-  version = "1.7";
+  version = "1.8";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -19,25 +20,19 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.clfs";
     rev = "refs/tags/${version}";
-    hash = "sha256-DBnZlyk7rjuTpOjgFUmSNxqvIZk8OxACNqyFDcENFHM=";
+    hash = "sha256-C1a85OLMkj0vjnRpenfC/xyxJ1TjYSlHPOq0jIrA/Ng=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    dissect-cstruct
-  ];
+  dependencies = [ dissect-cstruct ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dissect.clfs"
-  ];
+  pythonImportsCheck = [ "dissect.clfs" ];
 
   meta = with lib; {
     description = "Dissect module implementing a parser for the CLFS (Common Log File System) file system";
diff --git a/pkgs/development/python-modules/dissect-cobaltstrike/default.nix b/pkgs/development/python-modules/dissect-cobaltstrike/default.nix
index 7b25a817aa649..3924f0c5164b4 100644
--- a/pkgs/development/python-modules/dissect-cobaltstrike/default.nix
+++ b/pkgs/development/python-modules/dissect-cobaltstrike/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, flow-record
-, httpx
-, lark
-, pycryptodome
-, pyshark
-, pytest-httpserver
-, pytestCheckHook
-, pythonOlder
-, rich
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  flow-record,
+  httpx,
+  lark,
+  pycryptodome,
+  pyshark,
+  pytest-httpserver,
+  pytestCheckHook,
+  pythonOlder,
+  rich,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-cobaltstrike";
   version = "1.0.0";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -30,12 +31,12 @@ buildPythonPackage rec {
     hash = "sha256-CS50c3r7sdxp3CRS6XJ4QUmUFtmhFg6rSdKfYzJSOV4=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     dissect-cstruct
     dissect-util
     lark
@@ -69,9 +70,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "dissect.cobaltstrike"
-  ];
+  pythonImportsCheck = [ "dissect.cobaltstrike" ];
 
   meta = with lib; {
     description = "Dissect module implementing a parser for Cobalt Strike related data";
diff --git a/pkgs/development/python-modules/dissect-cstruct/default.nix b/pkgs/development/python-modules/dissect-cstruct/default.nix
index a1ed699aef371..04a64d8a9e7bb 100644
--- a/pkgs/development/python-modules/dissect-cstruct/default.nix
+++ b/pkgs/development/python-modules/dissect-cstruct/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-cstruct";
-  version = "3.13";
+  version = "3.14";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -18,21 +19,17 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.cstruct";
     rev = "refs/tags/${version}";
-    hash = "sha256-QfnvWCI67y8GdCfXIRaehzb26IVZ8N0muUnNpr1NGJo=";
+    hash = "sha256-Et6Pb7iRVlxcrR4gZf+5h7mVikf7CyDd7N+q4TH18vg=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dissect.cstruct"
-  ];
+  pythonImportsCheck = [ "dissect.cstruct" ];
 
   meta = with lib; {
     description = "Dissect module implementing a parser for C-like structures";
diff --git a/pkgs/development/python-modules/dissect-esedb/default.nix b/pkgs/development/python-modules/dissect-esedb/default.nix
index 0a6810749b6d7..f2cf84f2c8346 100644
--- a/pkgs/development/python-modules/dissect-esedb/default.nix
+++ b/pkgs/development/python-modules/dissect-esedb/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-esedb";
-  version = "3.12";
+  version = "3.13";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -20,7 +21,7 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.esedb";
     rev = "refs/tags/${version}";
-    hash = "sha256-s3ZIK4ZtHU5B3f9ojVTC2Aqn3G7CosTvdV6U3cwEatY=";
+    hash = "sha256-GdHMKLO44hR+H3fQ9h3t6sL8ACMwIVeg4nrg9brYmsU=";
   };
 
   nativeBuildInputs = [
@@ -33,13 +34,9 @@ buildPythonPackage rec {
     dissect-util
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dissect.esedb"
-  ];
+  pythonImportsCheck = [ "dissect.esedb" ];
 
   meta = with lib; {
     description = "Dissect module implementing a parser for Microsofts Extensible Storage Engine Database (ESEDB)";
diff --git a/pkgs/development/python-modules/dissect-etl/default.nix b/pkgs/development/python-modules/dissect-etl/default.nix
index c7b9236c75c33..10ceff3e6eeff 100644
--- a/pkgs/development/python-modules/dissect-etl/default.nix
+++ b/pkgs/development/python-modules/dissect-etl/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-etl";
-  version = "3.8";
+  version = "3.9";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -20,26 +21,22 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.etl";
     rev = "refs/tags/${version}";
-    hash = "sha256-yGpDZAaw11Sr5OPWxbY/NpZAV3jJUIgtTgDykCvYDtM=";
+    hash = "sha256-gLxBVHhtQS4Ep64H4jvndGyjUW1cQ68f346utVI9eC4=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     dissect-cstruct
     dissect-util
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dissect.etl"
-  ];
+  pythonImportsCheck = [ "dissect.etl" ];
 
   meta = with lib; {
     description = "Dissect module implementing a parser for Event Trace Log (ETL) files";
diff --git a/pkgs/development/python-modules/dissect-eventlog/default.nix b/pkgs/development/python-modules/dissect-eventlog/default.nix
index d8ace92854349..1752640a65047 100644
--- a/pkgs/development/python-modules/dissect-eventlog/default.nix
+++ b/pkgs/development/python-modules/dissect-eventlog/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-eventlog";
-  version = "3.7";
+  version = "3.8";
   format = "pyproject";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "fox-it";
     repo = "dissect.eventlog";
     rev = "refs/tags/${version}";
-    hash = "sha256-YiWW1olaIKoBfiZfr4TfIEsnj/C4cmn6sYosvjeiEfM=";
+    hash = "sha256-MvCHeeuwwE/EOK5rh5vtwTtMrSO/BtfFenQZn5VTgb0=";
   };
 
   nativeBuildInputs = [
@@ -33,13 +34,9 @@ buildPythonPackage rec {
     dissect-util
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dissect.eventlog"
-  ];
+  pythonImportsCheck = [ "dissect.eventlog" ];
 
   meta = with lib; {
     description = "Dissect module implementing parsers for the Windows EVT, EVTX and WEVT log file formats";
diff --git a/pkgs/development/python-modules/dissect-evidence/default.nix b/pkgs/development/python-modules/dissect-evidence/default.nix
index d8f9823634f47..6f617db679a38 100644
--- a/pkgs/development/python-modules/dissect-evidence/default.nix
+++ b/pkgs/development/python-modules/dissect-evidence/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-evidence";
-  version = "3.8";
+  version = "3.9";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -20,26 +21,22 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.evidence";
     rev = "refs/tags/${version}";
-    hash = "sha256-/zmMPSVR6F6SIU7xuotErmU2SsKEV43rs/4oTVKAWz0=";
+    hash = "sha256-0WLX5mD+opJoRdnk4w8mMySn41473PcRod4YxEk3S2s=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     dissect-cstruct
     dissect-util
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dissect.evidence"
-  ];
+  pythonImportsCheck = [ "dissect.evidence" ];
 
   meta = with lib; {
     description = "Dissect module implementing a parsers for various forensic evidence file containers";
diff --git a/pkgs/development/python-modules/dissect-executable/default.nix b/pkgs/development/python-modules/dissect-executable/default.nix
index 8511b2df94485..c8d9c456fa990 100644
--- a/pkgs/development/python-modules/dissect-executable/default.nix
+++ b/pkgs/development/python-modules/dissect-executable/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-executable";
-  version = "1.5";
+  version = "1.6";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,22 +20,20 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.executable";
     rev = "refs/tags/${version}";
-    hash = "sha256-aAalU0TUqXc13WnxJvirG3QzQyMstecOfnXMdFT8IzU=";
+    hash = "sha256-b8xPOIUMn6JdYlvuoV5UeBdyISh6CC2Gh6E6U5ZZ7qY=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     dissect-cstruct
     dissect-util
   ];
 
-  pythonImportsCheck = [
-    "dissect.executable"
-  ];
+  pythonImportsCheck = [ "dissect.executable" ];
 
   meta = with lib; {
     description = "Dissect module implementing a parser for various executable formats such as PE, ELF and Macho-O";
diff --git a/pkgs/development/python-modules/dissect-extfs/default.nix b/pkgs/development/python-modules/dissect-extfs/default.nix
index 6838350cb8dee..a0697189f1a31 100644
--- a/pkgs/development/python-modules/dissect-extfs/default.nix
+++ b/pkgs/development/python-modules/dissect-extfs/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-extfs";
-  version = "3.9";
+  version = "3.10";
   format = "pyproject";
 
-  disabled = pythonOlder "3.9";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "fox-it";
     repo = "dissect.extfs";
     rev = "refs/tags/${version}";
-    hash = "sha256-xZEULUm0I754f9MEIUZEua76SaY/WMFp4Q5BMNZ8fWU=";
+    hash = "sha256-EIM2kS5V2+e7/bvuB8ezBZQl3XopdlzZ7Cmwr+Ns/Us=";
   };
 
   nativeBuildInputs = [
@@ -33,13 +34,9 @@ buildPythonPackage rec {
     dissect-util
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dissect.extfs"
-  ];
+  pythonImportsCheck = [ "dissect.extfs" ];
 
   # Archive files seems to be corrupt
   doCheck = false;
diff --git a/pkgs/development/python-modules/dissect-fat/default.nix b/pkgs/development/python-modules/dissect-fat/default.nix
index 636265f4129c6..6e14afb3f1e00 100644
--- a/pkgs/development/python-modules/dissect-fat/default.nix
+++ b/pkgs/development/python-modules/dissect-fat/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-fat";
-  version = "3.8";
+  version = "3.9";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -19,15 +20,15 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.fat";
     rev = "refs/tags/${version}";
-    hash = "sha256-xFfB7QOZ3KjsOPQ1cPTRkqb0hgD4waOq8kkSTJStQ+E=";
+    hash = "sha256-U7SSLvEK6IYZjjUIGT9n1w7oLdB8Q2/msQ/EBJfatJY=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     dissect-cstruct
     dissect-util
   ];
@@ -35,9 +36,7 @@ buildPythonPackage rec {
   # dissect.fat.exceptions.InvalidBPB: Invalid BS_jmpBoot
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dissect.fat"
-  ];
+  pythonImportsCheck = [ "dissect.fat" ];
 
   meta = with lib; {
     description = "Dissect module implementing a parser for the FAT file system";
diff --git a/pkgs/development/python-modules/dissect-ffs/default.nix b/pkgs/development/python-modules/dissect-ffs/default.nix
index f95319ade1353..fac9898633bc1 100644
--- a/pkgs/development/python-modules/dissect-ffs/default.nix
+++ b/pkgs/development/python-modules/dissect-ffs/default.nix
@@ -1,45 +1,42 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-ffs";
-  version = "3.7";
-  format = "pyproject";
+  version = "3.8";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "fox-it";
     repo = "dissect.ffs";
     rev = "refs/tags/${version}";
-    hash = "sha256-f7lXYJ2U8M+rZXrlbrAXAjizCVz6rAAZbeSg+iOmKdo=";
+    hash = "sha256-L2LL+Er5nSYpRBW5CO9EBkYY85vnDkuvaOP0kbkH2T4=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     dissect-cstruct
     dissect-util
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dissect.ffs"
-  ];
+  pythonImportsCheck = [ "dissect.ffs" ];
 
   meta = with lib; {
     description = "Dissect module implementing a parser for the FFS file system";
diff --git a/pkgs/development/python-modules/dissect-hypervisor/default.nix b/pkgs/development/python-modules/dissect-hypervisor/default.nix
index 27bf9056e258f..b24f1e69f8671 100644
--- a/pkgs/development/python-modules/dissect-hypervisor/default.nix
+++ b/pkgs/development/python-modules/dissect-hypervisor/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, defusedxml
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, pycryptodome
-, pytestCheckHook
-, pythonOlder
-, rich
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  defusedxml,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  pycryptodome,
+  pytestCheckHook,
+  pythonOlder,
+  rich,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-hypervisor";
-  version = "3.12";
+  version = "3.13";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,15 +24,15 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.hypervisor";
     rev = "refs/tags/${version}";
-    hash = "sha256-uQt+oyETjZHPa1QZfswpUX92ZCdzkR5x9deo15J+Fxo=";
+    hash = "sha256-6sjRkhZOmAckzu/lUA4Sw48cmKfMOGLGgB5dB6M06qQ=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     defusedxml
     dissect-cstruct
     dissect-util
@@ -44,13 +45,9 @@ buildPythonPackage rec {
     ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dissect.hypervisor"
-  ];
+  pythonImportsCheck = [ "dissect.hypervisor" ];
 
   meta = with lib; {
     description = "Dissect module implementing parsers for various hypervisor disk, backup and configuration files";
diff --git a/pkgs/development/python-modules/dissect-jffs/default.nix b/pkgs/development/python-modules/dissect-jffs/default.nix
index 234f61e007e33..ecaab632fafab 100644
--- a/pkgs/development/python-modules/dissect-jffs/default.nix
+++ b/pkgs/development/python-modules/dissect-jffs/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-jffs";
-  version = "1.1";
+  version = "1.2";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -19,7 +20,7 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.jffs";
     rev = "refs/tags/${version}";
-    hash = "sha256-jzSPR4pkvXRQ3Q/qL7Oa3mLX3hW2IhbXuuO0jTc8Gvg=";
+    hash = "sha256-aElQR9QDC2110QZdk+PKkBky6FUXz9pSTJV7weTBvAE=";
   };
 
   nativeBuildInputs = [
@@ -35,9 +36,7 @@ buildPythonPackage rec {
   # Test file handling fails
   doCheck = true;
 
-  pythonImportsCheck = [
-    "dissect.jffs"
-  ];
+  pythonImportsCheck = [ "dissect.jffs" ];
 
   meta = with lib; {
     description = "Dissect module implementing a parser for the JFFS2 file system";
diff --git a/pkgs/development/python-modules/dissect-ntfs/default.nix b/pkgs/development/python-modules/dissect-ntfs/default.nix
index 61f3eaa645606..046eec0aa74e2 100644
--- a/pkgs/development/python-modules/dissect-ntfs/default.nix
+++ b/pkgs/development/python-modules/dissect-ntfs/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-ntfs";
-  version = "3.9";
+  version = "3.10";
   format = "pyproject";
 
-  disabled = pythonOlder "3.9";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "fox-it";
     repo = "dissect.ntfs";
     rev = "refs/tags/${version}";
-    hash = "sha256-gjmxoxz4Qf2FsCP72siEpVLeqlZfvhuFZHSGr1n+cY0=";
+    hash = "sha256-7D+5Btvm9fWwtVjVpKNc0VU7seyZXFxR7tEh7CAh7io=";
   };
 
   nativeBuildInputs = [
@@ -33,13 +34,9 @@ buildPythonPackage rec {
     dissect-util
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dissect.ntfs"
-  ];
+  pythonImportsCheck = [ "dissect.ntfs" ];
 
   disabledTestPaths = [
     # Test is very time consuming
diff --git a/pkgs/development/python-modules/dissect-ole/default.nix b/pkgs/development/python-modules/dissect-ole/default.nix
index 1d527d33ab08d..cb84b16aa8fe8 100644
--- a/pkgs/development/python-modules/dissect-ole/default.nix
+++ b/pkgs/development/python-modules/dissect-ole/default.nix
@@ -1,33 +1,34 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-ole";
-  version = "3.7";
-  format = "pyproject";
+  version = "3.8";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "fox-it";
     repo = "dissect.ole";
     rev = "refs/tags/${version}";
-    hash = "sha256-Df6OU1vVsQl7d119W8+8YmUiy2+m6Dw3LpKnMVSRRR4=";
+    hash = "sha256-VWbgQhKV1vJBRQROrJXbJ7qDIVOfZwvjsRwUbm7q7OQ=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     dissect-cstruct
     dissect-util
   ];
@@ -35,9 +36,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dissect.ole"
-  ];
+  pythonImportsCheck = [ "dissect.ole" ];
 
   meta = with lib; {
     description = "Dissect module implementing a parser for the Object Linking & Embedding (OLE) format";
diff --git a/pkgs/development/python-modules/dissect-regf/default.nix b/pkgs/development/python-modules/dissect-regf/default.nix
index 8f8ae56b383d7..4705900e19ca6 100644
--- a/pkgs/development/python-modules/dissect-regf/default.nix
+++ b/pkgs/development/python-modules/dissect-regf/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-regf";
-  version = "3.9";
+  version = "3.10";
   pyproject = true;
 
-  disabled = pythonOlder "3.9";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "fox-it";
     repo = "dissect.regf";
     rev = "refs/tags/${version}";
-    hash = "sha256-NLhZnStcJCtXMBkayLjvuG7aK2aN3sWGZaPKVXIoRew=";
+    hash = "sha256-uMC5av4NAzDF5JRUz4L8/jTLrBv9blNMYtM6dOuHe5s=";
   };
 
   nativeBuildInputs = [
@@ -33,13 +34,9 @@ buildPythonPackage rec {
     dissect-util
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dissect.regf"
-  ];
+  pythonImportsCheck = [ "dissect.regf" ];
 
   meta = with lib; {
     description = "Dissect module implementing a parser for Windows registry file format";
diff --git a/pkgs/development/python-modules/dissect-shellitem/default.nix b/pkgs/development/python-modules/dissect-shellitem/default.nix
index 6ee624cc4256b..4546141996142 100644
--- a/pkgs/development/python-modules/dissect-shellitem/default.nix
+++ b/pkgs/development/python-modules/dissect-shellitem/default.nix
@@ -1,45 +1,42 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-shellitem";
-  version = "3.7";
-  format = "pyproject";
+  version = "3.8";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "fox-it";
     repo = "dissect.shellitem";
     rev = "refs/tags/${version}";
-    hash = "sha256-E5v7WuAd47X/1LSeaje4EUv+GuFq5Ksg4ndOScFreYE=";
+    hash = "sha256-zoq42Au2dNJTryj3GNXJrEGvE0az8psPuMXoJNc74QM=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     dissect-cstruct
     dissect-util
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dissect.shellitem"
-  ];
+  pythonImportsCheck = [ "dissect.shellitem" ];
 
   meta = with lib; {
     description = "Dissect module implementing a parser for the Shellitem structures";
diff --git a/pkgs/development/python-modules/dissect-sql/default.nix b/pkgs/development/python-modules/dissect-sql/default.nix
index 275e1a2913d38..6c61796409ec0 100644
--- a/pkgs/development/python-modules/dissect-sql/default.nix
+++ b/pkgs/development/python-modules/dissect-sql/default.nix
@@ -1,45 +1,42 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-sql";
-  version = "3.8";
-  format = "pyproject";
+  version = "3.9";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "fox-it";
     repo = "dissect.sql";
     rev = "refs/tags/${version}";
-    hash = "sha256-f19l1NxIdkQRaqEAgeTIuloPY079TmnNZ/DLQEXFQIA=";
+    hash = "sha256-aq/p6oa+6C2BS2TV8YYXwGP580tIHYZqO455bYm0yeo=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     dissect-cstruct
     dissect-util
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dissect.sql"
-  ];
+  pythonImportsCheck = [ "dissect.sql" ];
 
   meta = with lib; {
     description = "Dissect module implementing a parsers for the SQLite database file format";
diff --git a/pkgs/development/python-modules/dissect-squashfs/default.nix b/pkgs/development/python-modules/dissect-squashfs/default.nix
index 9deecad417732..6303663d2b073 100644
--- a/pkgs/development/python-modules/dissect-squashfs/default.nix
+++ b/pkgs/development/python-modules/dissect-squashfs/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, lz4
-, python-lzo
-, pythonOlder
-, setuptools
-, setuptools-scm
-, zstandard
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  lz4,
+  python-lzo,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  zstandard,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-squashfs";
-  version = "1.4";
-  format = "pyproject";
+  version = "1.5";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -22,15 +23,15 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.squashfs";
     rev = "refs/tags/${version}";
-    hash = "sha256-y6RXtHJev83m7mYdNLG640TRUPEGbi6l942zlMWXky0=";
+    hash = "sha256-eylLBPim3dmo8h95lRmlh8O9m458K07TH2uK+hn3nKs=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     dissect-cstruct
     dissect-util
   ];
@@ -43,9 +44,7 @@ buildPythonPackage rec {
     ];
   };
 
-  pythonImportsCheck = [
-    "dissect.squashfs"
-  ];
+  pythonImportsCheck = [ "dissect.squashfs" ];
 
   meta = with lib; {
     description = "Dissect module implementing a parser for the SquashFS file system";
diff --git a/pkgs/development/python-modules/dissect-target/default.nix b/pkgs/development/python-modules/dissect-target/default.nix
index 0e6e14be7239c..593e821394655 100644
--- a/pkgs/development/python-modules/dissect-target/default.nix
+++ b/pkgs/development/python-modules/dissect-target/default.nix
@@ -1,45 +1,50 @@
-{ lib
-, stdenv
-, asn1crypto
-, buildPythonPackage
-, defusedxml
-, dissect-cim
-, dissect-clfs
-, dissect-cstruct
-, dissect-esedb
-, dissect-etl
-, dissect-eventlog
-, dissect-evidence
-, dissect-extfs
-, dissect-fat
-, dissect-ffs
-, dissect-hypervisor
-, dissect-ntfs
-, dissect-regf
-, dissect-sql
-, dissect-shellitem
-, dissect-thumbcache
-, dissect-util
-, dissect-volume
-, dissect-xfs
-, fetchFromGitHub
-, flow-record
-, fusepy
-, ipython
-, pycryptodome
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, setuptools
-, setuptools-scm
-, structlog
-, yara-python
-, zstandard
+{
+  lib,
+  stdenv,
+  asn1crypto,
+  buildPythonPackage,
+  defusedxml,
+  dissect-btrfs,
+  dissect-cim,
+  dissect-clfs,
+  dissect-cstruct,
+  dissect-esedb,
+  dissect-etl,
+  dissect-eventlog,
+  dissect-evidence,
+  dissect-extfs,
+  dissect-fat,
+  dissect-ffs,
+  dissect-hypervisor,
+  dissect-ntfs,
+  dissect-regf,
+  dissect-shellitem,
+  dissect-sql,
+  dissect-thumbcache,
+  dissect-util,
+  dissect-volume,
+  dissect-xfs,
+  fetchFromGitHub,
+  flow-record,
+  fusepy,
+  impacket,
+  ipython,
+  paho-mqtt,
+  pycryptodome,
+  pytestCheckHook,
+  pythonOlder,
+  ruamel-yaml,
+  setuptools,
+  setuptools-scm,
+  structlog,
+  tomli,
+  yara-python,
+  zstandard,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-target";
-  version = "3.16";
+  version = "3.17";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -48,20 +53,20 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.target";
     rev = "refs/tags/${version}";
-    hash = "sha256-2c8OFwbgSc7zwbjQm2g8y1ZyiYM0KPFjTEUrk06c174=";
+    hash = "sha256-UIgHjSTHaxo8jCqe+R6rRxQXX8RUFKAI5+zscInAtgg=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace-warn "flow.record~=" "flow.record>="
+      --replace-fail "flow.record~=" "flow.record>="
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     defusedxml
     dissect-cstruct
     dissect-eventlog
@@ -78,6 +83,7 @@ buildPythonPackage rec {
   passthru.optional-dependencies = {
     full = [
       asn1crypto
+      dissect-btrfs
       dissect-cim
       dissect-clfs
       dissect-esedb
@@ -92,47 +98,64 @@ buildPythonPackage rec {
       fusepy
       ipython
       pycryptodome
-      pyyaml
+      ruamel-yaml
       yara-python
       zstandard
-    ];
+    ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
+    yara = [ yara-python ] ++ passthru.optional-dependencies.full;
+    smb = [ impacket ] ++ passthru.optional-dependencies.full;
+    mqtt = [ paho-mqtt ] ++ passthru.optional-dependencies.full;
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.full;
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.full;
 
-  pythonImportsCheck = [
-    "dissect.target"
-  ];
+  pythonImportsCheck = [ "dissect.target" ];
 
-  disabledTests = [
-    "test_cpio"
-    # Test requires rdump
-    "test_exec_target_command"
-    # Issue with tar file
-    "test_dpapi_decrypt_blob"
-    "test_md"
-    "test_nested_md_lvm"
-    "test_notifications_appdb"
-    "test_notifications_wpndatabase"
-    "test_tar_anonymous_filesystems"
-    "test_tar_sensitive_drive_letter"
-    # Tests compare dates and times
-    "yum"
-    # Filesystem access, windows defender tests
-    "test_defender_quarantine_recovery"
-  ] ++
-  # test is broken on Darwin
-  lib.optional stdenv.hostPlatform.isDarwin "test_fs_attrs_no_os_listxattr";
+  disabledTests =
+    [
+      "test_cpio"
+      # Test requires rdump
+      "test_exec_target_command"
+      # Issue with tar file
+      "test_dpapi_decrypt_blob"
+      "test_md"
+      "test_nested_md_lvm"
+      "test_notifications_appdb"
+      "test_notifications_wpndatabase"
+      "test_tar_anonymous_filesystems"
+      "test_tar_sensitive_drive_letter"
+      # Tests compare dates and times
+      "yum"
+      # Filesystem access, windows defender tests
+      "test_config_tree_plugin"
+      "test_defender_quarantine_recovery"
+      "test_execute_pipeline"
+      "test_keychain_register_keychain_file"
+      "test_plugins_child_docker"
+      "test_plugins_child_wsl"
+      "test_reg_output"
+      "test_regflex"
+      "test_systemd_basic_syntax"
+      "test_target_cli_unicode_argparse"
+      "test_target_query"
+    ]
+    ++
+    # test is broken on Darwin
+    lib.optional stdenv.hostPlatform.isDarwin "test_fs_attrs_no_os_listxattr";
 
   disabledTestPaths = [
-    # Tests are using Windows paths
-    "tests/plugins/apps/browser/"
+    # Tests are using Windows paths, missing test files
+    "tests/plugins/apps/"
     # ValueError: Invalid Locate file magic. Expected /x00LOCATE02/x00
     "tests/plugins/os/unix/locate/"
     # Missing plugin support
-    "tests/tools/test_reg.py"
+    "tests/tools/test_dump.py"
+    "tests/plugins/os/"
+    "tests/plugins/filesystem/"
+    "tests/test_registration.py"
+    "tests/filesystems/"
+    "tests/test_filesystem.py"
+    "tests/loaders/"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/dissect-thumbcache/default.nix b/pkgs/development/python-modules/dissect-thumbcache/default.nix
index 6c1a68b64785d..60091bb178230 100644
--- a/pkgs/development/python-modules/dissect-thumbcache/default.nix
+++ b/pkgs/development/python-modules/dissect-thumbcache/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-thumbcache";
-  version = "1.7";
+  version = "1.8";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -20,26 +21,22 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.thumbcache";
     rev = "refs/tags/${version}";
-    hash = "sha256-t5LovLS+YMWQWMCFP6jh3SNiLb/Jy9we4FX6MmsIJmY=";
+    hash = "sha256-LcuuRVSnZVFtht03MD8qVNNPljVUzGa8vXu9GQPOgjs=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     dissect-cstruct
     dissect-util
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dissect.thumbcache"
-  ];
+  pythonImportsCheck = [ "dissect.thumbcache" ];
 
   disabledTests = [
     # Don't run Windows related tests
diff --git a/pkgs/development/python-modules/dissect-util/default.nix b/pkgs/development/python-modules/dissect-util/default.nix
index d085d842b7119..b7ae3a54ae1cd 100644
--- a/pkgs/development/python-modules/dissect-util/default.nix
+++ b/pkgs/development/python-modules/dissect-util/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-util";
-  version = "3.15";
+  version = "3.16";
   format = "pyproject";
 
   disabled = pythonOlder "3.9";
@@ -18,7 +19,7 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect.util";
     rev = "refs/tags/${version}";
-    hash = "sha256-JIrk6YRuW5B30d9fNaRFesO01ajcSy8ErkpFtM1Coaw=";
+    hash = "sha256-OHlWOWB476KERerEo2ZYLMIIO+eIpKlNLOHMCiE5jdE=";
   };
 
   nativeBuildInputs = [
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dissect.util"
-  ];
+  pythonImportsCheck = [ "dissect.util" ];
 
   meta = with lib; {
     description = "Dissect module implementing various utility functions for the other Dissect modules";
diff --git a/pkgs/development/python-modules/dissect-vmfs/default.nix b/pkgs/development/python-modules/dissect-vmfs/default.nix
index 147b048aee7d2..ba7d93b747789 100644
--- a/pkgs/development/python-modules/dissect-vmfs/default.nix
+++ b/pkgs/development/python-modules/dissect-vmfs/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-vmfs";
-  version = "3.7";
+  version = "3.8";
   format = "pyproject";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "fox-it";
     repo = "dissect.vmfs";
     rev = "refs/tags/${version}";
-    hash = "sha256-HJV7cwNMFvHURt2dk/c1YbgFaHXRESREJ5ucmUsuS78=";
+    hash = "sha256-AcVWKUgykgTgP0haBOtWR+wNWzc/PN9qIwVJMqNg8hg=";
   };
 
   nativeBuildInputs = [
@@ -33,13 +34,9 @@ buildPythonPackage rec {
     dissect-util
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dissect.vmfs"
-  ];
+  pythonImportsCheck = [ "dissect.vmfs" ];
 
   meta = with lib; {
     description = "Dissect module implementing a parser for the VMFS file system";
diff --git a/pkgs/development/python-modules/dissect-volume/default.nix b/pkgs/development/python-modules/dissect-volume/default.nix
index abddcf5d1d611..811793f6a6954 100644
--- a/pkgs/development/python-modules/dissect-volume/default.nix
+++ b/pkgs/development/python-modules/dissect-volume/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-volume";
-  version = "3.9";
+  version = "3.10";
   pyproject = true;
 
-  disabled = pythonOlder "3.9";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "fox-it";
     repo = "dissect.volume";
     rev = "refs/tags/${version}";
-    hash = "sha256-Bhi3p0joTNx1y/yBhehhG06WmM7gUJhIJbmqZY4DzLQ=";
+    hash = "sha256-tQNmSnQBchj3SUq2XPsK/LWrKiCw4MFKmopHbxnzMxg=";
   };
 
   nativeBuildInputs = [
@@ -33,13 +34,9 @@ buildPythonPackage rec {
     dissect-util
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dissect.volume"
-  ];
+  pythonImportsCheck = [ "dissect.volume" ];
 
   disabledTests = [
     # gzip.BadGzipFile: Not a gzipped file
diff --git a/pkgs/development/python-modules/dissect-xfs/default.nix b/pkgs/development/python-modules/dissect-xfs/default.nix
index 1843ff00f8e0b..cc137632f7d7c 100644
--- a/pkgs/development/python-modules/dissect-xfs/default.nix
+++ b/pkgs/development/python-modules/dissect-xfs/default.nix
@@ -1,45 +1,42 @@
-{ lib
-, buildPythonPackage
-, dissect-cstruct
-, dissect-util
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dissect-cstruct,
+  dissect-util,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dissect-xfs";
-  version = "3.8";
-  format = "pyproject";
+  version = "3.9";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "fox-it";
     repo = "dissect.xfs";
     rev = "refs/tags/${version}";
-    hash = "sha256-U/VDFeCyOPlefFL/QVRVknpCBDLuVYvVHI49QSe+QFM=";
+    hash = "sha256-jUNstyHVPJazf4idXNe9xICpi0MKkz8q0rWUEHjk2ZA=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     dissect-cstruct
     dissect-util
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dissect.xfs"
-  ];
+  pythonImportsCheck = [ "dissect.xfs" ];
 
   # Archive files seems to be corrupt
   doCheck = false;
diff --git a/pkgs/development/python-modules/dissect/default.nix b/pkgs/development/python-modules/dissect/default.nix
index 6827b7e5f701f..7102f03e869ab 100644
--- a/pkgs/development/python-modules/dissect/default.nix
+++ b/pkgs/development/python-modules/dissect/default.nix
@@ -1,41 +1,42 @@
-{ lib
-, buildPythonPackage
-, dissect-btrfs
-, dissect-cim
-, dissect-clfs
-, dissect-cobaltstrike
-, dissect-cstruct
-, dissect-esedb
-, dissect-etl
-, dissect-eventlog
-, dissect-evidence
-, dissect-executable
-, dissect-extfs
-, dissect-fat
-, dissect-ffs
-, dissect-hypervisor
-, dissect-jffs
-, dissect-ntfs
-, dissect-ole
-, dissect-regf
-, dissect-shellitem
-, dissect-sql
-, dissect-squashfs
-, dissect-target
-, dissect-util
-, dissect-vmfs
-, dissect-volume
-, dissect-xfs
-, fetchFromGitHub
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  dissect-archive,
+  dissect-btrfs,
+  dissect-cim,
+  dissect-clfs,
+  dissect-cobaltstrike,
+  dissect-cstruct,
+  dissect-esedb,
+  dissect-etl,
+  dissect-eventlog,
+  dissect-evidence,
+  dissect-executable,
+  dissect-extfs,
+  dissect-fat,
+  dissect-ffs,
+  dissect-hypervisor,
+  dissect-jffs,
+  dissect-ntfs,
+  dissect-ole,
+  dissect-regf,
+  dissect-shellitem,
+  dissect-sql,
+  dissect-squashfs,
+  dissect-target,
+  dissect-util,
+  dissect-vmfs,
+  dissect-volume,
+  dissect-xfs,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "dissect";
-  version = "3.13";
+  version = "3.14";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -44,18 +45,19 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "dissect";
     rev = "refs/tags/${version}";
-    hash = "sha256-cnNaqXECePP2DmLRAm/Fi9m88rYSsVVMrpcqYd0iL1E=";
+    hash = "sha256-wHLpysvOkJ1t0KKJXwfeRp/7mSom5WvrJ0lyRGoDwJM=";
   };
 
   pythonRelaxDeps = true;
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+
+  dependencies = [
+    dissect-archive
     dissect-btrfs
     dissect-cim
     dissect-clfs
@@ -87,9 +89,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dissect"
-  ];
+  pythonImportsCheck = [ "dissect" ];
 
   meta = with lib; {
     description = "Dissect meta module";
diff --git a/pkgs/development/python-modules/dissononce/default.nix b/pkgs/development/python-modules/dissononce/default.nix
index da783408efd81..b4745c059465c 100644
--- a/pkgs/development/python-modules/dissononce/default.nix
+++ b/pkgs/development/python-modules/dissononce/default.nix
@@ -1,4 +1,11 @@
-{ buildPythonPackage, fetchFromGitHub, lib, pytest, cryptography, transitions }:
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  pytest,
+  cryptography,
+  transitions,
+}:
 
 buildPythonPackage rec {
   pname = "dissononce";
@@ -17,11 +24,14 @@ buildPythonPackage rec {
     HOME=$(mktemp -d) py.test tests/
   '';
 
-  propagatedBuildInputs = [ cryptography transitions ];
+  propagatedBuildInputs = [
+    cryptography
+    transitions
+  ];
 
   meta = with lib; {
     homepage = "https://pypi.org/project/dissononce/";
     license = licenses.mit;
-    description = "A python implementation for Noise Protocol Framework";
+    description = "Python implementation for Noise Protocol Framework";
   };
 }
diff --git a/pkgs/development/python-modules/distlib/default.nix b/pkgs/development/python-modules/distlib/default.nix
index 1f2d17395065b..f9da72b61c3f6 100644
--- a/pkgs/development/python-modules/distlib/default.nix
+++ b/pkgs/development/python-modules/distlib/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     hash = "sha256-FTDqE+NQAxtjEthYDdtrJ6EEJ1oxEGUjuPEjeH9JT2Q=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   postFixup = lib.optionalString (!stdenv.hostPlatform.isWindows) ''
     find $out -name '*.exe' -delete
diff --git a/pkgs/development/python-modules/distorm3/default.nix b/pkgs/development/python-modules/distorm3/default.nix
index 0471855b79d34..d069c9470ced1 100644
--- a/pkgs/development/python-modules/distorm3/default.nix
+++ b/pkgs/development/python-modules/distorm3/default.nix
@@ -1,25 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, yasm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
+  yasm,
 }:
 
 buildPythonPackage rec {
   pname = "distorm3";
   version = "3.5.2";
-  format = "setuptools";
+  pyproject = true;
 
-  disabled = pythonOlder "3.5";
+  # Still uses distutils, https://github.com/gdabah/distorm/issues/191
+  disabled = pythonOlder "3.5" || pythonAtLeast "3.12";
 
   src = fetchFromGitHub {
     owner = "gdabah";
     repo = "distorm";
-    rev = version;
-    sha256 = "012bh1l2w7i9q8rcnznj3x0lra09d5yxd3r42cbrqdwl1mmg26qn";
+    rev = "refs/tags/${version}";
+    hash = "sha256-Fhvxag2UN5wXEySP1n1pCahMQR/SfssywikeLmiASwQ=";
   };
 
+  build-system = [ setuptools ];
+
   nativeCheckInputs = [
     pytestCheckHook
     yasm
@@ -35,6 +41,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Disassembler library for x86/AMD64";
     homepage = "https://github.com/gdabah/distorm";
+    changelog = "https://github.com/gdabah/distorm/releases/tag/${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/distrax/default.nix b/pkgs/development/python-modules/distrax/default.nix
index bdd443356a8cf..83a4a16d650ee 100644
--- a/pkgs/development/python-modules/distrax/default.nix
+++ b/pkgs/development/python-modules/distrax/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, chex
-, jaxlib
-, numpy
-, tensorflow-probability
-, dm-haiku
-, pytest-xdist
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  chex,
+  jaxlib,
+  numpy,
+  tensorflow-probability,
+  dm-haiku,
+  pytest-xdist,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "distrax"
-  ];
+  pythonImportsCheck = [ "distrax" ];
 
   disabledTests = [
     # AssertionError on numerical values
diff --git a/pkgs/development/python-modules/distributed/default.nix b/pkgs/development/python-modules/distributed/default.nix
index 890f579207cac..0778fcc9543b4 100644
--- a/pkgs/development/python-modules/distributed/default.nix
+++ b/pkgs/development/python-modules/distributed/default.nix
@@ -1,31 +1,31 @@
-{ lib
-, buildPythonPackage
-, click
-, cloudpickle
-, dask
-, fetchFromGitHub
-, jinja2
-, locket
-, msgpack
-, packaging
-, psutil
-, pythonOlder
-, pythonRelaxDepsHook
-, pyyaml
-, setuptools
-, setuptools-scm
-, sortedcontainers
-, tblib
-, toolz
-, tornado
-, urllib3
-, versioneer
-, zict
+{
+  lib,
+  buildPythonPackage,
+  click,
+  cloudpickle,
+  dask,
+  fetchFromGitHub,
+  jinja2,
+  locket,
+  msgpack,
+  packaging,
+  psutil,
+  pythonOlder,
+  pyyaml,
+  setuptools,
+  setuptools-scm,
+  sortedcontainers,
+  tblib,
+  toolz,
+  tornado,
+  urllib3,
+  versioneer,
+  zict,
 }:
 
 buildPythonPackage rec {
   pname = "distributed";
-  version = "2024.4.2";
+  version = "2024.6.2";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -34,27 +34,24 @@ buildPythonPackage rec {
     owner = "dask";
     repo = "distributed";
     rev = "refs/tags/${version}";
-    hash = "sha256-xoQ+b7qzstZl9gRNs4jssNOsGQHDdvTXU7pTjBSuyWs=";
+    hash = "sha256-GgW9BtTqjac+olAGg+LOO+lTopuUukVUmQ0ZWsMJOc8=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "versioneer[toml]==" "versioneer[toml]>=" \
-      --replace 'dynamic = ["version"]' 'version = "${version}"'
+      --replace-fail "versioneer[toml]==" "versioneer[toml]>=" \
+      --replace-fail 'dynamic = ["version"]' 'version = "${version}"'
   '';
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
+  build-system = [
     setuptools
     setuptools-scm
     versioneer
   ] ++ versioneer.optional-dependencies.toml;
 
-  pythonRelaxDeps = [
-    "dask"
-  ];
+  pythonRelaxDeps = [ "dask" ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     click
     cloudpickle
     dask
@@ -75,15 +72,13 @@ buildPythonPackage rec {
   # When tested random tests would fail and not repeatably
   doCheck = false;
 
-  pythonImportsCheck = [
-    "distributed"
-  ];
+  pythonImportsCheck = [ "distributed" ];
 
-  meta = with lib; {
+  meta = {
     description = "Distributed computation in Python";
     homepage = "https://distributed.readthedocs.io/";
     changelog = "https://github.com/dask/distributed/blob/${version}/docs/source/changelog.rst";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ teh ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ teh ];
   };
 }
diff --git a/pkgs/development/python-modules/distro/default.nix b/pkgs/development/python-modules/distro/default.nix
index 9aab5f47e4300..9c4a7a9e70ab3 100644
--- a/pkgs/development/python-modules/distro/default.nix
+++ b/pkgs/development/python-modules/distro/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, setuptools
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-L6d8b9iUDxFu4da5Si+QsTteqNAZuYvIuv3KvN2b2+0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # tests are very targeted at individual linux distributions
   doCheck = false;
@@ -25,7 +24,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/nir0s/distro";
-    description = "Linux Distribution - a Linux OS platform information API.";
+    description = "Linux Distribution - a Linux OS platform information API";
     mainProgram = "distro";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/distutils-cfg/default.nix b/pkgs/development/python-modules/distutils-cfg/default.nix
index fb616c65d036c..89bd841560604 100644
--- a/pkgs/development/python-modules/distutils-cfg/default.nix
+++ b/pkgs/development/python-modules/distutils-cfg/default.nix
@@ -1,22 +1,32 @@
 # global distutils configuration, see http://docs.python.org/2/install/index.html#distutils-configuration-files
 
-{ stdenv, python, writeText, extraCfg ? "", overrideCfg ? "" }:
-
+{
+  stdenv,
+  python,
+  writeText,
+  extraCfg ? "",
+  overrideCfg ? "",
+}:
 
 let
   distutilsCfg = writeText "distutils.cfg" (
-  if overrideCfg != "" then overrideCfg else ''
-    [easy_install]
-
-    # don't allow network connections during build to ensure purity
-    allow-hosts = None
-
-    # make sure we always unzip installed packages otherwise setup hooks won't work
-    zip_ok = 0
-
-    ${extraCfg}
-  '');
-in stdenv.mkDerivation {
+    if overrideCfg != "" then
+      overrideCfg
+    else
+      ''
+        [easy_install]
+
+        # don't allow network connections during build to ensure purity
+        allow-hosts = None
+
+        # make sure we always unzip installed packages otherwise setup hooks won't work
+        zip_ok = 0
+
+        ${extraCfg}
+      ''
+  );
+in
+stdenv.mkDerivation {
   name = "${python.libPrefix}-distutils.cfg";
 
   buildInputs = [ python ];
diff --git a/pkgs/development/python-modules/distutils-extra/default.nix b/pkgs/development/python-modules/distutils-extra/default.nix
index 37ef77947b3f6..013ab75d37c3c 100644
--- a/pkgs/development/python-modules/distutils-extra/default.nix
+++ b/pkgs/development/python-modules/distutils-extra/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchurl
+{
+  lib,
+  buildPythonPackage,
+  fetchurl,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
   # Tests are out-dated as the last upstream release is from 2016
   doCheck = false;
 
-  pythonImportsCheck = [
-    "DistUtilsExtra"
-  ];
+  pythonImportsCheck = [ "DistUtilsExtra" ];
 
   meta = with lib; {
     description = "Enhancements to Python's distutils";
diff --git a/pkgs/development/python-modules/dj-database-url/default.nix b/pkgs/development/python-modules/dj-database-url/default.nix
index 6ac924227f1ad..aec84b9102911 100644
--- a/pkgs/development/python-modules/dj-database-url/default.nix
+++ b/pkgs/development/python-modules/dj-database-url/default.nix
@@ -1,32 +1,38 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, django
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "dj-database-url";
-  version = "2.1.0";
-  format = "setuptools";
+  version = "2.2.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-8gQs7+EIblOcnaOfrVrX9hFzv3lmXmm/fk3lX6iLE18=";
+  src = fetchFromGitHub {
+    owner = "jazzband";
+    repo = "dj-database-url";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-i2btutob+5R+FFPlGwRSNF01MTfxVop8xaePDHxnqLE=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     django
+    typing-extensions
   ];
 
   # Tests access a DB via network
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dj_database_url"
-  ];
+  pythonImportsCheck = [ "dj_database_url" ];
 
   meta = with lib; {
     description = "Use Database URLs in your Django Application";
diff --git a/pkgs/development/python-modules/dj-email-url/default.nix b/pkgs/development/python-modules/dj-email-url/default.nix
index 5f043f008e16c..e557c9992717b 100644
--- a/pkgs/development/python-modules/dj-email-url/default.nix
+++ b/pkgs/development/python-modules/dj-email-url/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/dj-rest-auth/default.nix b/pkgs/development/python-modules/dj-rest-auth/default.nix
index e415977d86374..49e0c49e75bb1 100644
--- a/pkgs/development/python-modules/dj-rest-auth/default.nix
+++ b/pkgs/development/python-modules/dj-rest-auth/default.nix
@@ -1,61 +1,46 @@
-{ lib
-, buildPythonPackage
-, django
-, django-allauth
-, djangorestframework
-, djangorestframework-simplejwt
-, fetchFromGitHub
-, fetchpatch
-, python
-, pythonOlder
-, responses
-, setuptools
-, unittest-xml-reporting
+{
+  lib,
+  buildPythonPackage,
+  django,
+  django-allauth,
+  djangorestframework,
+  djangorestframework-simplejwt,
+  fetchFromGitHub,
+  python,
+  pythonOlder,
+  responses,
+  setuptools,
+  unittest-xml-reporting,
 }:
 
 buildPythonPackage rec {
   pname = "dj-rest-auth";
-  version = "5.0.2";
+  version = "6.0.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "iMerica";
     repo = "dj-rest-auth";
     rev = "refs/tags/${version}";
-    hash = "sha256-TqeNpxXn+v89fEiJ4AVNhp8blCfYQKFQfYmZ6/QlRbQ=";
+    hash = "sha256-fNy1uN3oH54Wd9+EqYpiV0ot1MbSSC7TZoAARQeR81s=";
   };
 
-  patches = [
-    # https://github.com/iMerica/dj-rest-auth/pull/597
-    (fetchpatch {
-      name = "disable-email-confirmation-ratelimit-in-tests-to-support-new-allauth.patch";
-      url = "https://github.com/iMerica/dj-rest-auth/commit/c8f19e18a93f4959da875f9c5cdd32f7d9363bba.patch";
-      hash = "sha256-Y/YBjV+c5Gw1wMR5r/4VnyV/ewUVG0z4pjY/MB4ca9Y=";
-    })
-  ];
-
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "==" ">="
+      --replace-fail "==" ">="
+    substituteInPlace dj_rest_auth/tests/test_api.py \
+      --replace-fail "assertEquals" "assertEqual"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  buildInputs = [
-    django
-  ];
+  buildInputs = [ django ];
 
-  propagatedBuildInputs = [
-    djangorestframework
-  ];
+  dependencies = [ djangorestframework ];
 
-  passthru.optional-dependencies.with_social = [
-    django-allauth
-  ];
+  passthru.optional-dependencies.with_social = [ django-allauth ];
 
   nativeCheckInputs = [
     djangorestframework-simplejwt
@@ -66,7 +51,7 @@ buildPythonPackage rec {
   preCheck = ''
     # Test connects to graph.facebook.com
     substituteInPlace dj_rest_auth/tests/test_serializers.py \
-      --replace "def test_http_error" "def dont_test_http_error"
+      --replace-fail "def test_http_error" "def dont_test_http_error"
   '';
 
   checkPhase = ''
@@ -75,9 +60,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "dj_rest_auth"
-  ];
+  pythonImportsCheck = [ "dj_rest_auth" ];
 
   meta = with lib; {
     description = "Authentication for Django Rest Framework";
diff --git a/pkgs/development/python-modules/dj-search-url/default.nix b/pkgs/development/python-modules/dj-search-url/default.nix
index 057d2c6acdaca..e57e66be59b84 100644
--- a/pkgs/development/python-modules/dj-search-url/default.nix
+++ b/pkgs/development/python-modules/dj-search-url/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -19,5 +20,4 @@ buildPythonPackage rec {
     license = licenses.bsd0;
     maintainers = [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/dj-static/default.nix b/pkgs/development/python-modules/dj-static/default.nix
index 167fbf88bd51f..83e07a45bc045 100644
--- a/pkgs/development/python-modules/dj-static/default.nix
+++ b/pkgs/development/python-modules/dj-static/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, static3
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  static3,
 }:
 
 buildPythonPackage rec {
@@ -17,17 +18,11 @@ buildPythonPackage rec {
     hash = "sha256-B6TydlezbDkmfFgJjdFniZIYo/JjzPvFj43co+HYCdc=";
   };
 
-  buildInputs = [
-    django
-  ];
+  buildInputs = [ django ];
 
-  propagatedBuildInputs = [
-    static3
-  ];
+  propagatedBuildInputs = [ static3 ];
 
-  pythonImportsCheck = [
-    "dj_static"
-  ];
+  pythonImportsCheck = [ "dj_static" ];
 
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/django-admin-datta/default.nix b/pkgs/development/python-modules/django-admin-datta/default.nix
index 44be722da51aa..8b12a79aea2e6 100644
--- a/pkgs/development/python-modules/django-admin-datta/default.nix
+++ b/pkgs/development/python-modules/django-admin-datta/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, django
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  django,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-VV7mb3501aZVuXUqzVqQYUttvkYa4pAECYWn7HksOmI=";
   };
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "admin_datta"
-  ];
+  pythonImportsCheck = [ "admin_datta" ];
 
   meta = with lib; {
     description = "Modern template for Django that covers Admin Section";
diff --git a/pkgs/development/python-modules/django-admin-sortable2/default.nix b/pkgs/development/python-modules/django-admin-sortable2/default.nix
index d9987f5b5decd..22ef40ac2f694 100644
--- a/pkgs/development/python-modules/django-admin-sortable2/default.nix
+++ b/pkgs/development/python-modules/django-admin-sortable2/default.nix
@@ -1,29 +1,27 @@
-{ lib
-, buildPythonPackage
-, django_4
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  django_4,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "django-admin-sortable2";
-  version = "2.1.10";
+  version = "2.2.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit version pname;
-    hash = "sha256-N1awLH0JxbN+/mV3GNWq4rdfRv0Bu/4cOdTmBlEBnXk=";
+    pname = "django_admin_sortable2";
+    inherit version;
+    hash = "sha256-MKlSf5P8YbeixZVNtX2EKJMeN/Riw7RssQEFPcX1F1E=";
   };
 
-  propagatedBuildInputs = [
-    django_4
-  ];
+  propagatedBuildInputs = [ django_4 ];
 
-  pythonImportsCheck = [
-    "adminsortable2"
-  ];
+  pythonImportsCheck = [ "adminsortable2" ];
 
   # Tests are very slow (end-to-end with playwright)
   doCheck = false;
diff --git a/pkgs/development/python-modules/django-allauth-2fa/default.nix b/pkgs/development/python-modules/django-allauth-2fa/default.nix
index 60a2d61bac275..b04d760d39b30 100644
--- a/pkgs/development/python-modules/django-allauth-2fa/default.nix
+++ b/pkgs/development/python-modules/django-allauth-2fa/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, django
-, django-allauth
-, django-otp
-, fetchFromGitHub
-, pythonOlder
-, qrcode
-, hatchling
+{
+  lib,
+  buildPythonPackage,
+  django,
+  django-allauth,
+  django-otp,
+  fetchFromGitHub,
+  pythonOlder,
+  qrcode,
+  hatchling,
 }:
 
 buildPythonPackage rec {
@@ -23,10 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-bm2RwhvX2nfhYs74MM0iZl9U2gHgm0lLlh2tuRRcGso=";
   };
 
-
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     django
@@ -35,9 +33,7 @@ buildPythonPackage rec {
     qrcode
   ];
 
-  pythonImportsCheck = [
-    "allauth_2fa"
-  ];
+  pythonImportsCheck = [ "allauth_2fa" ];
 
   meta = with lib; {
     description = "django-allauth-2fa adds two-factor authentication to django-allauth";
diff --git a/pkgs/development/python-modules/django-allauth/default.nix b/pkgs/development/python-modules/django-allauth/default.nix
index 8a1f6dc8ac06f..fb7eb5ffac844 100644
--- a/pkgs/development/python-modules/django-allauth/default.nix
+++ b/pkgs/development/python-modules/django-allauth/default.nix
@@ -1,29 +1,34 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-
-# build-system
-, setuptools
-
-# dependencies
-, django
-, python3-openid
-, requests
-, requests-oauthlib
-, pyjwt
-
-# optional-dependencies
-, python3-saml
-, qrcode
-
-# tests
-, pillow
-, pytestCheckHook
-, pytest-django
-
-# passthru tests
-, dj-rest-auth
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  python,
+
+  # build-system
+  setuptools,
+
+  # build-time dependencies
+  gettext,
+
+  # dependencies
+  django,
+  python3-openid,
+  requests,
+  requests-oauthlib,
+  pyjwt,
+
+  # optional-dependencies
+  python3-saml,
+  qrcode,
+
+  # tests
+  pillow,
+  pytestCheckHook,
+  pytest-django,
+
+  # passthru tests
+  dj-rest-auth,
 }:
 
 buildPythonPackage rec {
@@ -41,6 +46,7 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
+    gettext
     setuptools
   ];
 
@@ -52,18 +58,14 @@ buildPythonPackage rec {
     requests-oauthlib
   ] ++ pyjwt.optional-dependencies.crypto;
 
+  preBuild = "${python.interpreter} -m django compilemessages";
+
   passthru.optional-dependencies = {
-    saml = [
-      python3-saml
-    ];
-    mfa = [
-      qrcode
-    ];
+    saml = [ python3-saml ];
+    mfa = [ qrcode ];
   };
 
-  pythonImportsCheck = [
-    "allauth"
-  ];
+  pythonImportsCheck = [ "allauth" ];
 
   nativeCheckInputs = [
     pillow
diff --git a/pkgs/development/python-modules/django-annoying/default.nix b/pkgs/development/python-modules/django-annoying/default.nix
index 5259a974d6483..bfe0d6f944ba6 100644
--- a/pkgs/development/python-modules/django-annoying/default.nix
+++ b/pkgs/development/python-modules/django-annoying/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, django
-, six
-, pytest-django
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  django,
+  six,
+  pytest-django,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -41,7 +42,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A django application that tries to eliminate annoying things in the Django framework";
+    description = "Django application that tries to eliminate annoying things in the Django framework";
     homepage = "https://skorokithakis.github.io/django-annoying/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ambroisie ];
diff --git a/pkgs/development/python-modules/django-anymail/default.nix b/pkgs/development/python-modules/django-anymail/default.nix
index 1e619035bd054..7b0c771648298 100644
--- a/pkgs/development/python-modules/django-anymail/default.nix
+++ b/pkgs/development/python-modules/django-anymail/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, boto3
-, buildPythonPackage
-, django
-, fetchFromGitHub
-, hatchling
-, mock
-, python
-, pythonOlder
-, requests
-, responses
-, urllib3
+{
+  lib,
+  boto3,
+  buildPythonPackage,
+  django,
+  fetchFromGitHub,
+  hatchling,
+  mock,
+  python,
+  pythonOlder,
+  requests,
+  responses,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-5uSpPeXpMkpuzMXzsGE6uQJWP/Dt/oqakB8Xb5G1eZY=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     django
@@ -42,9 +41,7 @@ buildPythonPackage rec {
   ] ++ passthru.optional-dependencies.amazon-ses;
 
   passthru.optional-dependencies = {
-    amazon-ses = [
-      boto3
-    ];
+    amazon-ses = [ boto3 ];
   };
 
   checkPhase = ''
@@ -53,9 +50,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "anymail"
-  ];
+  pythonImportsCheck = [ "anymail" ];
 
   meta = with lib; {
     description = "Django email backends and webhooks for Mailgun";
diff --git a/pkgs/development/python-modules/django-appconf/default.nix b/pkgs/development/python-modules/django-appconf/default.nix
index 66eef9d472886..c7dae9135674a 100644
--- a/pkgs/development/python-modules/django-appconf/default.nix
+++ b/pkgs/development/python-modules/django-appconf/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, django
-, six
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  django,
+  six,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-nS4Hwp/NYg1XGvZO1tiE9mzJA7WFifyvgAjyp3YpqS4=";
   };
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   preCheck = ''
     # prove we're running tests against installed package, not build dir
@@ -37,7 +36,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A helper class for handling configuration defaults of packaged apps gracefully";
+    description = "Helper class for handling configuration defaults of packaged apps gracefully";
     homepage = "https://django-appconf.readthedocs.org/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ desiderius ];
diff --git a/pkgs/development/python-modules/django-auditlog/default.nix b/pkgs/development/python-modules/django-auditlog/default.nix
index 4a176b0b14ec3..387250090dedf 100644
--- a/pkgs/development/python-modules/django-auditlog/default.nix
+++ b/pkgs/development/python-modules/django-auditlog/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, django
-, python-dateutil
-, freezegun
-, psycopg2
-, postgresql
-, postgresqlTestHook
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  django,
+  python-dateutil,
+  freezegun,
+  psycopg2,
+  postgresql,
+  postgresqlTestHook,
+  python,
 }:
 
 buildPythonPackage rec {
   pname = "django-auditlog";
-  version = "2.2.2";
+  version = "3.0.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "jazzband";
-    repo = pname;
+    repo = "django-auditlog";
     rev = "v${version}";
-    hash = "sha256-QHSGqtpkOgltAg+RlG/Ik3DfEjtSWt45sqlD+Zw4Bh0=";
+    hash = "sha256-SJ4GJp/gVIxiLbdAj3ZS+weevqIDZCMQnW/pqc5liJU=";
   };
 
   nativeBuildInputs = [
@@ -46,9 +47,11 @@ buildPythonPackage rec {
   checkPhase = ''
     runHook preCheck
 
+    # strip escape codes otherwise tests fail
+    # see https://github.com/jazzband/django-auditlog/issues/644
     TEST_DB_USER=$PGUSER \
     TEST_DB_HOST=$PGHOST \
-    ${python.interpreter} runtests.py
+    ${python.interpreter} runtests.py | cat
 
     runHook postCheck
   '';
@@ -57,7 +60,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/jazzband/django-auditlog/blob/v${version}/CHANGELOG.md";
-    description = "A Django app that keeps a log of changes made to an object";
+    description = "Django app that keeps a log of changes made to an object";
     downloadPage = "https://github.com/jazzband/django-auditlog";
     license = licenses.mit;
     maintainers = with maintainers; [ leona ];
diff --git a/pkgs/development/python-modules/django-auth-ldap/default.nix b/pkgs/development/python-modules/django-auth-ldap/default.nix
index b2f5fa74b41c5..0abd5d344e413 100644
--- a/pkgs/development/python-modules/django-auth-ldap/default.nix
+++ b/pkgs/development/python-modules/django-auth-ldap/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-
-# buildtime
-, setuptools-scm
-
-# runtime
-, django
-, python-ldap
-
-# tests
-, python
-, pkgs
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+
+  # buildtime
+  setuptools-scm,
+
+  # runtime
+  django,
+  python-ldap,
+
+  # tests
+  python,
+  pkgs,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-YEJQk43cn9phnyR8elmwsvBuU6fT9GoVbyiqMN1xpzg=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     django
diff --git a/pkgs/development/python-modules/django-autocomplete-light/default.nix b/pkgs/development/python-modules/django-autocomplete-light/default.nix
index 08390b00efd0e..eb83b99d8befb 100644
--- a/pkgs/development/python-modules/django-autocomplete-light/default.nix
+++ b/pkgs/development/python-modules/django-autocomplete-light/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, six
-, pytestCheckHook
-, django-debug-toolbar
-, django-extensions
-, django-taggit
-, django-tagging
-, mock
-, pytest-django
-, selenium
-, splinter
-, sqlparse
-, tenacity
-, whitenoise
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  six,
+  pytestCheckHook,
+  django-debug-toolbar,
+  django-extensions,
+  django-taggit,
+  django-tagging,
+  mock,
+  pytest-django,
+  selenium,
+  splinter,
+  sqlparse,
+  tenacity,
+  whitenoise,
 }:
 
 buildPythonPackage rec {
@@ -66,7 +67,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "dal" ];
 
   meta = with lib; {
-    description = "A fresh approach to autocomplete implementations, specially for Django";
+    description = "Fresh approach to autocomplete implementations, specially for Django";
     homepage = "https://django-autocomplete-light.readthedocs.io";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ambroisie ];
diff --git a/pkgs/development/python-modules/django-bootstrap3/default.nix b/pkgs/development/python-modules/django-bootstrap3/default.nix
index 4ac4695bd16c3..a20b282c6450a 100644
--- a/pkgs/development/python-modules/django-bootstrap3/default.nix
+++ b/pkgs/development/python-modules/django-bootstrap3/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
-, setuptools-scm
+  # build-system
+  setuptools,
+  setuptools-scm,
 
-# non-propagates
-, django
+  # non-propagates
+  django,
 
-# tests
-, pytest-django
-, pytestCheckHook
+  # tests
+  pytest-django,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -31,13 +32,9 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  buildInputs = [
-    django
-  ];
+  buildInputs = [ django ];
 
-  pythonImportsCheck = [
-    "bootstrap3"
-  ];
+  pythonImportsCheck = [ "bootstrap3" ];
 
   nativeCheckInputs = [
     pytest-django
@@ -54,5 +51,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ hexa ];
   };
 }
-
-
diff --git a/pkgs/development/python-modules/django-bootstrap4/default.nix b/pkgs/development/python-modules/django-bootstrap4/default.nix
index d148162b9ab09..e34ce0f4b6249 100644
--- a/pkgs/development/python-modules/django-bootstrap4/default.nix
+++ b/pkgs/development/python-modules/django-bootstrap4/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
-, setuptools-scm
+  # build-system
+  setuptools,
+  setuptools-scm,
 
-# non-propagates
-, django
+  # non-propagates
+  django,
 
-# dependencies
-, beautifulsoup4
+  # dependencies
+  beautifulsoup4,
 
-# tests
-, python
+  # tests
+  python,
 }:
 
 buildPythonPackage rec {
@@ -33,17 +34,11 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    beautifulsoup4
-  ];
+  propagatedBuildInputs = [ beautifulsoup4 ];
 
-  pythonImportsCheck = [
-    "bootstrap4"
-  ];
+  pythonImportsCheck = [ "bootstrap4" ];
 
-  nativeCheckInputs = [
-    (django.override { withGdal = true; })
-  ];
+  nativeCheckInputs = [ (django.override { withGdal = true; }) ];
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/django-bootstrap5/default.nix b/pkgs/development/python-modules/django-bootstrap5/default.nix
index ac983c5ac5e4d..b35c586efa360 100644
--- a/pkgs/development/python-modules/django-bootstrap5/default.nix
+++ b/pkgs/development/python-modules/django-bootstrap5/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build-system
-, setuptools
-, setuptools-scm
+  # build-system
+  setuptools,
+  setuptools-scm,
 
-# dependencies
-, django
+  # dependencies
+  django,
 
-# tests
-, beautifulsoup4
-, pillow
-, pytest-django
-, pytestCheckHook
+  # tests
+  beautifulsoup4,
+  pillow,
+  pytest-django,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -53,9 +54,7 @@ buildPythonPackage rec {
     "test_get_bootstrap_setting"
   ];
 
-  pythonImportsCheck = [
-    "django_bootstrap5"
-  ];
+  pythonImportsCheck = [ "django_bootstrap5" ];
 
   meta = with lib; {
     description = "Bootstrap 5 integration with Django";
diff --git a/pkgs/development/python-modules/django-cachalot/default.nix b/pkgs/development/python-modules/django-cachalot/default.nix
index eca0cff7c8d30..9632291b2a105 100644
--- a/pkgs/development/python-modules/django-cachalot/default.nix
+++ b/pkgs/development/python-modules/django-cachalot/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, django-debug-toolbar
-, psycopg2
-, beautifulsoup4
-, python
-, pytz
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  django-debug-toolbar,
+  psycopg2,
+  beautifulsoup4,
+  python,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     ./disable-unsupported-tests.patch
   ];
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   checkInputs = [
     beautifulsoup4
diff --git a/pkgs/development/python-modules/django-cache-url/default.nix b/pkgs/development/python-modules/django-cache-url/default.nix
index d2167350874c7..89fdb9df9d83f 100644
--- a/pkgs/development/python-modules/django-cache-url/default.nix
+++ b/pkgs/development/python-modules/django-cache-url/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/django-cacheops/default.nix b/pkgs/development/python-modules/django-cacheops/default.nix
index 5416cf359f354..85b44d4523a94 100644
--- a/pkgs/development/python-modules/django-cacheops/default.nix
+++ b/pkgs/development/python-modules/django-cacheops/default.nix
@@ -1,21 +1,21 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, pythonRelaxDepsHook
-, django
-, funcy
-, redis
-, six
-, pytestCheckHook
-, pytest-django
-, mock
-, dill
-, jinja2
-, before-after
-, pythonOlder
-, nettools
-, pkgs
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  django,
+  funcy,
+  redis,
+  six,
+  pytestCheckHook,
+  pytest-django,
+  mock,
+  dill,
+  jinja2,
+  before-after,
+  pythonOlder,
+  nettools,
+  pkgs,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +30,6 @@ buildPythonPackage rec {
     hash = "sha256-d6N8c9f6z8cpk2XtZqEr56SH3XRd2GwdM8ouv9OzKHg=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
   pythonRelaxDeps = [ "funcy" ];
 
   propagatedBuildInputs = [
@@ -71,7 +68,7 @@ buildPythonPackage rec {
   DJANGO_SETTINGS_MODULE = "tests.settings";
 
   meta = with lib; {
-    description = "A slick ORM cache with automatic granular event-driven invalidation for Django";
+    description = "Slick ORM cache with automatic granular event-driven invalidation for Django";
     homepage = "https://github.com/Suor/django-cacheops";
     changelog = "https://github.com/Suor/django-cacheops/blob/${version}/CHANGELOG";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/django-celery-beat/default.nix b/pkgs/development/python-modules/django-celery-beat/default.nix
index 2ed27afb27ad7..f46ce7c36b9d2 100644
--- a/pkgs/development/python-modules/django-celery-beat/default.nix
+++ b/pkgs/development/python-modules/django-celery-beat/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, case
-, celery
-, cron-descriptor
-, django-timezone-field
-, ephem
-, fetchPypi
-, pytest-django
-, pytest-timeout
-, pytestCheckHook
-, python-crontab
-, pythonOlder
-, setuptools
-, tzdata
+{
+  lib,
+  buildPythonPackage,
+  case,
+  celery,
+  cron-descriptor,
+  django-timezone-field,
+  ephem,
+  fetchPypi,
+  pytest-django,
+  pytest-timeout,
+  pytestCheckHook,
+  python-crontab,
+  pythonOlder,
+  setuptools,
+  tzdata,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-91stEpcx8SFL6Dg+GPrmv+rNtV3/shFs6EkiLAEG+a0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cron-descriptor
@@ -52,9 +51,7 @@ buildPythonPackage rec {
     "t/unit/test_schedulers.py"
   ];
 
-  pythonImportsCheck = [
-    "django_celery_beat"
-  ];
+  pythonImportsCheck = [ "django_celery_beat" ];
 
   meta = with lib; {
     description = "Celery Periodic Tasks backed by the Django ORM";
diff --git a/pkgs/development/python-modules/django-celery-email/default.nix b/pkgs/development/python-modules/django-celery-email/default.nix
index d403ee8d41037..ea7608ffca476 100644
--- a/pkgs/development/python-modules/django-celery-email/default.nix
+++ b/pkgs/development/python-modules/django-celery-email/default.nix
@@ -1,12 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, django-appconf
-, celery
-, pytest-django
-, pytestCheckHook
-, python }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  django-appconf,
+  celery,
+  pytest-django,
+  pytestCheckHook,
+  python,
+}:
 
 buildPythonPackage rec {
   pname = "django-celery-email";
diff --git a/pkgs/development/python-modules/django-celery-results/default.nix b/pkgs/development/python-modules/django-celery-results/default.nix
index 080d63b75bff8..92d2bf2355603 100644
--- a/pkgs/development/python-modules/django-celery-results/default.nix
+++ b/pkgs/development/python-modules/django-celery-results/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, celery
-, django
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  celery,
+  django,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -37,6 +38,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/celery/django-celery-results";
     changelog = "https://github.com/celery/django-celery-results/blob/v{version}/Changelog";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ babariviere ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/django-ckeditor/default.nix b/pkgs/development/python-modules/django-ckeditor/default.nix
index 530efc2a56140..4b7a5ee3303b9 100644
--- a/pkgs/development/python-modules/django-ckeditor/default.nix
+++ b/pkgs/development/python-modules/django-ckeditor/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, django
-, django-extensions
-, django-js-asset
-, fetchFromGitHub
-, pillow
-, python
-, pythonOlder
-, selenium
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  django,
+  django-extensions,
+  django-js-asset,
+  fetchFromGitHub,
+  pillow,
+  python,
+  pythonOlder,
+  selenium,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-mZQ5s3YbumYmT0zRWPFIvzt2TbtDLvVcJjZVAwn31E8=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     django
@@ -48,9 +47,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "ckeditor"
-  ];
+  pythonImportsCheck = [ "ckeditor" ];
 
   meta = with lib; {
     description = " Django admin CKEditor integration";
diff --git a/pkgs/development/python-modules/django-classy-tags/default.nix b/pkgs/development/python-modules/django-classy-tags/default.nix
index a4d363f8bc57c..3f4fd07ae08b4 100644
--- a/pkgs/development/python-modules/django-classy-tags/default.nix
+++ b/pkgs/development/python-modules/django-classy-tags/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, django
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  django,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-yNnRqi+m5xxNhm303RHSOmm40lu7dQskkKF7Fhd07lk=";
   };
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   # pypi version doesn't include runtest.py, needed to run tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "classytags"
-  ];
+  pythonImportsCheck = [ "classytags" ];
 
   meta = with lib; {
     description = "Class based template tags for Django";
diff --git a/pkgs/development/python-modules/django-cleanup/default.nix b/pkgs/development/python-modules/django-cleanup/default.nix
index a465ffefc6a6b..b2a5a737f3bf8 100644
--- a/pkgs/development/python-modules/django-cleanup/default.nix
+++ b/pkgs/development/python-modules/django-cleanup/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, django
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  django,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-cN+QUHakTnoRGzEZgZmvYz3uCIduGZ5tzjbKjda4sQ8=";
   };
 
-  nativeCheckInputs = [
-    django
-  ];
+  nativeCheckInputs = [ django ];
 
   meta = with lib; {
     description = "Automatically deletes old file for FileField and ImageField. It also deletes files on models instance deletion";
diff --git a/pkgs/development/python-modules/django-colorful/default.nix b/pkgs/development/python-modules/django-colorful/default.nix
index 093be1ab607ea..6318cc8d99bd1 100644
--- a/pkgs/development/python-modules/django-colorful/default.nix
+++ b/pkgs/development/python-modules/django-colorful/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, django
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  django,
 }:
 
 buildPythonPackage rec {
@@ -25,5 +26,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/charettes/django-colorful";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/django-compression-middleware/default.nix b/pkgs/development/python-modules/django-compression-middleware/default.nix
index c26ee8434dd8e..ca893d0f9223a 100644
--- a/pkgs/development/python-modules/django-compression-middleware/default.nix
+++ b/pkgs/development/python-modules/django-compression-middleware/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, django
-, zstandard
-, brotli
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  django,
+  zstandard,
+  brotli,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/django-compressor/default.nix b/pkgs/development/python-modules/django-compressor/default.nix
index 543c483023df2..668c36f5deda1 100644
--- a/pkgs/development/python-modules/django-compressor/default.nix
+++ b/pkgs/development/python-modules/django-compressor/default.nix
@@ -1,42 +1,41 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, calmjs
-, django-appconf
-, jinja2
-, rcssmin
-, rjsmin
+  # dependencies
+  calmjs,
+  django-appconf,
+  jinja2,
+  rcssmin,
+  rjsmin,
 
-# tests
-, beautifulsoup4
-, brotli
-, csscompressor
-, django-sekizai
-, pytestCheckHook
-, pytest-django
+  # tests
+  beautifulsoup4,
+  brotli,
+  csscompressor,
+  django-sekizai,
+  pytestCheckHook,
+  pytest-django,
 
 }:
 
 buildPythonPackage rec {
   pname = "django-compressor";
-  version = "4.4";
+  version = "4.5";
   pyproject = true;
 
   src = fetchPypi {
     pname = "django_compressor";
     inherit version;
-    hash = "sha256-GwrMnPup9pvDjnxB2psNcKILyVWHtkP/75YJz0YGT2c=";
+    hash = "sha256-nZjJBbdBvmywmtgowdIqn/kkTdCII+KSavjd0YccPGU=";
   };
 
   build-system = [
     setuptools
-    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = [
@@ -67,9 +66,7 @@ buildPythonPackage rec {
   # Getting error: compressor.exceptions.OfflineGenerationError: You have
   # offline compression enabled but key "..." is missing from offline manifest.
   # You may need to run "python manage.py compress"
-  disabledTestPaths = [
-    "compressor/tests/test_offline.py"
-  ];
+  disabledTestPaths = [ "compressor/tests/test_offline.py" ];
 
   pythonImportsCheck = [ "compressor" ];
 
diff --git a/pkgs/development/python-modules/django-configurations/default.nix b/pkgs/development/python-modules/django-configurations/default.nix
index 53d75bed9bfa1..5200ef0afc07e 100644
--- a/pkgs/development/python-modules/django-configurations/default.nix
+++ b/pkgs/development/python-modules/django-configurations/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, dj-database-url
-, dj-email-url
-, dj-search-url
-, django
-, django-cache-url
-, fetchPypi
-, importlib-metadata
-, mock
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  dj-database-url,
+  dj-email-url,
+  dj-search-url,
+  django,
+  django-cache-url,
+  fetchPypi,
+  importlib-metadata,
+  mock,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -24,15 +25,9 @@ buildPythonPackage rec {
     hash = "sha256-blCDdX4rvfm7eFBWdTa5apNRX2sXUD10ko/2KNsuDpQ=";
   };
 
-  buildInputs = [
-    setuptools-scm
-  ];
+  buildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    django
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  propagatedBuildInputs = [ django ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   nativeCheckInputs = [
     mock
@@ -52,12 +47,10 @@ buildPythonPackage rec {
   # django.core.exceptions.ImproperlyConfigured: django-configurations settings importer wasn't correctly installed
   doCheck = false;
 
-  pythonImportsCheck = [
-    "configurations"
-  ];
+  pythonImportsCheck = [ "configurations" ];
 
   meta = with lib; {
-    description = "A helper for organizing Django settings";
+    description = "Helper for organizing Django settings";
     mainProgram = "django-cadmin";
     homepage = "https://django-configurations.readthedocs.io/";
     license = licenses.bsd0;
diff --git a/pkgs/development/python-modules/django-context-decorator/default.nix b/pkgs/development/python-modules/django-context-decorator/default.nix
index 00f4a80e95267..e1c6d17259fb7 100644
--- a/pkgs/development/python-modules/django-context-decorator/default.nix
+++ b/pkgs/development/python-modules/django-context-decorator/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, django
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  django,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     hash = "sha256-lNmZDsguOu2+gtMVjbwr709sbLCQOQ1sAePN7UJQbcw=";
   };
 
-  build-system = [
-    flit-core
-  ];
+  build-system = [ flit-core ];
 
-  pythonImportsCheck = [
-    "django_context_decorator"
-  ];
+  pythonImportsCheck = [ "django_context_decorator" ];
 
   nativeCheckInputs = [
     django
diff --git a/pkgs/development/python-modules/django-contrib-comments/default.nix b/pkgs/development/python-modules/django-contrib-comments/default.nix
index fe0ce82b52a0e..ae5872b120b73 100644
--- a/pkgs/development/python-modules/django-contrib-comments/default.nix
+++ b/pkgs/development/python-modules/django-contrib-comments/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, django
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  django,
 }:
 
 buildPythonPackage rec {
@@ -18,8 +19,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/django/django-contrib-comments";
-    description = "The code formerly known as django.contrib.comments";
+    description = "Code formerly known as django.contrib.comments";
     license = licenses.bsd0;
   };
-
 }
diff --git a/pkgs/development/python-modules/django-cors-headers/default.nix b/pkgs/development/python-modules/django-cors-headers/default.nix
index a3b79ca10a3f6..a198b7dfff035 100644
--- a/pkgs/development/python-modules/django-cors-headers/default.nix
+++ b/pkgs/development/python-modules/django-cors-headers/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, django
-, pytest-django
-, pytestCheckHook
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  django,
+  pytest-django,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-pIyf4poW8/slxj4PVvmXpuYp//v5w00yU0Vz6Jiy2yM=";
   };
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   nativeCheckInputs = [
     pytest-django
diff --git a/pkgs/development/python-modules/django-countries/default.nix b/pkgs/development/python-modules/django-countries/default.nix
index 69262c0840626..761d9edc8fc70 100644
--- a/pkgs/development/python-modules/django-countries/default.nix
+++ b/pkgs/development/python-modules/django-countries/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# build-system
-, setuptools
-
-# dependencies
-, asgiref
-, typing-extensions
-
-# tests
-, django
-, djangorestframework
-, graphene-django
-, pytestCheckHook
-, pytest-django
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  asgiref,
+  typing-extensions,
+
+  # tests
+  django,
+  djangorestframework,
+  graphene-django,
+  pytestCheckHook,
+  pytest-django,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     hash = "sha256-IR9cJbDVkZrcF3Ti70mV8VeXINQDK8OpwUTWVjD4Zn0=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     asgiref
diff --git a/pkgs/development/python-modules/django-crispy-bootstrap4/default.nix b/pkgs/development/python-modules/django-crispy-bootstrap4/default.nix
index d1a66ed8f704d..7db68ffc9ccda 100644
--- a/pkgs/development/python-modules/django-crispy-bootstrap4/default.nix
+++ b/pkgs/development/python-modules/django-crispy-bootstrap4/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, setuptools
-, pytestCheckHook
-, pytest-django
-, django-crispy-forms
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  setuptools,
+  pytestCheckHook,
+  pytest-django,
+  django-crispy-forms,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/django-crispy-bootstrap5/default.nix b/pkgs/development/python-modules/django-crispy-bootstrap5/default.nix
index 4d14ce5129a72..6fc014bcb38a7 100644
--- a/pkgs/development/python-modules/django-crispy-bootstrap5/default.nix
+++ b/pkgs/development/python-modules/django-crispy-bootstrap5/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, setuptools
-, pytestCheckHook
-, pytest-django
-, django-crispy-forms
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  setuptools,
+  pytestCheckHook,
+  pytest-django,
+  django-crispy-forms,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/django-crispy-forms/default.nix b/pkgs/development/python-modules/django-crispy-forms/default.nix
index 81aecd208ae84..823bf6efd9940 100644
--- a/pkgs/development/python-modules/django-crispy-forms/default.nix
+++ b/pkgs/development/python-modules/django-crispy-forms/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, setuptools
-, pytestCheckHook
-, pytest-django
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  setuptools,
+  pytestCheckHook,
+  pytest-django,
 }:
 
 buildPythonPackage rec {
   pname = "django-crispy-forms";
-  version = "2.1";
+  version = "2.2";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "django-crispy-forms";
     repo = "django-crispy-forms";
     rev = "refs/tags/${version}";
-    hash = "sha256-UQ5m0JWir20TdLgS+DVVLcMBlIEIfmzv8pkMJtaC0LA=";
+    hash = "sha256-6S/Pscwi6AEQnmJf6JTT5Q5vxoZ3PC65ZjT2XszwVZM=";
   };
 
   propagatedBuildInputs = [
@@ -40,7 +41,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "crispy_forms" ];
 
   meta = with lib; {
-    description = "The best way to have DRY Django forms.";
+    description = "Best way to have DRY Django forms";
     homepage = "https://django-crispy-forms.readthedocs.io/en/latest/";
     license = licenses.mit;
     maintainers = with maintainers; [ ambroisie ];
diff --git a/pkgs/development/python-modules/django-crontab/default.nix b/pkgs/development/python-modules/django-crontab/default.nix
index 27ecce4a1ddb8..9322697eb3f86 100644
--- a/pkgs/development/python-modules/django-crontab/default.nix
+++ b/pkgs/development/python-modules/django-crontab/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, setuptools
-, pytestCheckHook
-, pytest-django
-, mock
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  setuptools,
+  pytestCheckHook,
+  pytest-django,
+  mock,
+  nose,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/django-cryptography/default.nix b/pkgs/development/python-modules/django-cryptography/default.nix
index a49a519394032..ffa5efa39aa55 100644
--- a/pkgs/development/python-modules/django-cryptography/default.nix
+++ b/pkgs/development/python-modules/django-cryptography/default.nix
@@ -1,13 +1,13 @@
-{ buildPythonPackage
-, cryptography
-, django
-, django-appconf
-, fetchFromGitHub
-, fetchpatch
-, lib
-, python
-, pythonOlder
-, setuptools
+{
+  buildPythonPackage,
+  cryptography,
+  django,
+  django-appconf,
+  fetchFromGitHub,
+  lib,
+  python,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-C3E2iT9JdLvF+1g+xhZ8dPDjjh25JUxLAtTMnalIxPk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cryptography
@@ -48,7 +46,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/georgemarshall/django-cryptography";
-    description = "A set of primitives for performing cryptography in Django";
+    description = "Set of primitives for performing cryptography in Django";
     license = licenses.bsd3;
     maintainers = with maintainers; [ centromere ];
   };
diff --git a/pkgs/development/python-modules/django-csp/default.nix b/pkgs/development/python-modules/django-csp/default.nix
index e8f04f188a54f..5c5920404fbc8 100644
--- a/pkgs/development/python-modules/django-csp/default.nix
+++ b/pkgs/development/python-modules/django-csp/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, django
+  # dependencies
+  django,
 
-# tests
-, jinja2
-, pytest-django
-, pytestCheckHook
+  # tests
+  jinja2,
+  pytest-django,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -29,13 +30,9 @@ buildPythonPackage rec {
     sed -i "/addopts =/d" pyproject.toml
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    django
-  ];
+  dependencies = [ django ];
 
   nativeCheckInputs = [
     jinja2
diff --git a/pkgs/development/python-modules/django-currentuser/default.nix b/pkgs/development/python-modules/django-currentuser/default.nix
index 1b1c5a3f33deb..7325793966c4b 100644
--- a/pkgs/development/python-modules/django-currentuser/default.nix
+++ b/pkgs/development/python-modules/django-currentuser/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python3
-, pythonOlder
-, django
-, hatchling
-, pyhamcrest
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python3,
+  pythonOlder,
+  django,
+  hatchling,
+  pyhamcrest,
 }:
 let
   version = "0.6.1";
diff --git a/pkgs/development/python-modules/django-debug-toolbar/default.nix b/pkgs/development/python-modules/django-debug-toolbar/default.nix
index ee1a557b8eb06..99bb0afb9178b 100644
--- a/pkgs/development/python-modules/django-debug-toolbar/default.nix
+++ b/pkgs/development/python-modules/django-debug-toolbar/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, fetchFromGitHub
-, pythonOlder
-, buildPythonPackage
-, python
-, hatchling
-, django
-, jinja2
-, sqlparse
-, html5lib
+{
+  lib,
+  fetchFromGitHub,
+  pythonOlder,
+  buildPythonPackage,
+  python,
+  hatchling,
+  django,
+  jinja2,
+  sqlparse,
+  html5lib,
 }:
 
 buildPythonPackage rec {
   pname = "django-debug-toolbar";
-  version = "4.3";
+  version = "4.4.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -21,12 +22,10 @@ buildPythonPackage rec {
     owner = "jazzband";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-8rwEM+YSO9TtkC1UWS4JrzFH+TlGOHzL+WmxNwMJIWQ=";
+    hash = "sha256-ZfGDXyrHwlFpeGK1QTD4nlGWdbEK7+hurOVkAAp/LyA=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     django
@@ -39,9 +38,7 @@ buildPythonPackage rec {
   TEST_ARGS = "tests";
   DJANGO_SETTINGS_MODULE = "tests.settings";
 
-  nativeCheckInputs = [
-    html5lib
-  ];
+  nativeCheckInputs = [ html5lib ];
 
   checkPhase = ''
     runHook preCheck
@@ -49,9 +46,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "debug_toolbar"
-  ];
+  pythonImportsCheck = [ "debug_toolbar" ];
 
   meta = with lib; {
     description = "Configurable set of panels that display debug information about the current request/response";
diff --git a/pkgs/development/python-modules/django-dynamic-preferences/default.nix b/pkgs/development/python-modules/django-dynamic-preferences/default.nix
index bdb6c1d8229c5..28f9368de776b 100644
--- a/pkgs/development/python-modules/django-dynamic-preferences/default.nix
+++ b/pkgs/development/python-modules/django-dynamic-preferences/default.nix
@@ -1,16 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# dependencies
-, django
-, persisting-theory
-, six
-
-# tests
-, djangorestframework
-, pytest-django
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # dependencies
+  django,
+  persisting-theory,
+  six,
+
+  # tests
+  djangorestframework,
+  pytest-django,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-S0PAlSrMOQ68mX548pZzARfau/lytXWC4S5uVO1rUmo=";
   };
 
-  buildInputs = [
-    django
-  ];
+  buildInputs = [ django ];
 
   propagatedBuildInputs = [
     six
@@ -40,6 +40,11 @@ buildPythonPackage rec {
     pytest-django
   ];
 
+  pythonImportsCheck = [ "dynamic_preferences" ];
+
+  # Remove once https://github.com/agateblue/django-dynamic-preferences/issues/309 is fixed
+  doCheck = pythonOlder "3.12";
+
   env.DJANGO_SETTINGS = "tests.settings";
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/django-encrypted-model-fields/default.nix b/pkgs/development/python-modules/django-encrypted-model-fields/default.nix
index 242d173db68a1..52109a7a529be 100644
--- a/pkgs/development/python-modules/django-encrypted-model-fields/default.nix
+++ b/pkgs/development/python-modules/django-encrypted-model-fields/default.nix
@@ -1,10 +1,12 @@
-{ buildPythonPackage
-, cryptography
-, django
-, fetchPypi
-, lib
-, poetry-core
-, pythonOlder }:
+{
+  buildPythonPackage,
+  cryptography,
+  django,
+  fetchPypi,
+  lib,
+  poetry-core,
+  pythonOlder,
+}:
 buildPythonPackage rec {
   pname = "django-encrypted-model-fields";
   version = "0.6.5";
@@ -16,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-i9IcVWXA1k7E29N1rTT+potNotuHHew/px/nteQiHJk=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     cryptography
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "encrypted_model_fields" ];
 
   meta = with lib; {
-    description = "A set of fields that wrap standard Django fields with encryption provided by the python cryptography library";
+    description = "Set of fields that wrap standard Django fields with encryption provided by the python cryptography library";
     homepage = "https://gitlab.com/lansharkconsulting/django/django-encrypted-model-fields";
     license = licenses.mit;
     maintainers = with maintainers; [ centromere ];
diff --git a/pkgs/development/python-modules/django-environ/default.nix b/pkgs/development/python-modules/django-environ/default.nix
index c9c6b99717443..4820a064658e3 100644
--- a/pkgs/development/python-modules/django-environ/default.nix
+++ b/pkgs/development/python-modules/django-environ/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, django
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  django,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -17,12 +18,14 @@ buildPythonPackage rec {
 
   # The testsuite fails to modify the base environment
   doCheck = false;
-  propagatedBuildInputs = [ django six ];
+  propagatedBuildInputs = [
+    django
+    six
+  ];
 
   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/pkgs/development/python-modules/django-extensions/default.nix b/pkgs/development/python-modules/django-extensions/default.nix
index 5e77c5bfc5902..8e10c4c1f567e 100644
--- a/pkgs/development/python-modules/django-extensions/default.nix
+++ b/pkgs/development/python-modules/django-extensions/default.nix
@@ -1,37 +1,64 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, factory-boy
-, mock
-, pip
-, pygments
-, pytest-django
-, pytestCheckHook
-, shortuuid
-, vobject
-, werkzeug
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch2,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  aiosmtpd,
+  django,
+  looseversion,
+
+  # tests
+  factory-boy,
+  mock,
+  pip,
+  pygments,
+  pytestCheckHook,
+  pytest-django,
+  shortuuid,
+  vobject,
+  werkzeug,
 }:
 
 buildPythonPackage rec {
   pname = "django-extensions";
   version = "3.2.3";
-  format = "setuptools";
+  pyproject = true;
 
-  src = fetchFromGitHub {
+   src = fetchFromGitHub {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
     hash = "sha256-A2+5FBv0IhTJPkwgd7je+B9Ac64UHJEa3HRBbWr2FxM=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      # Replace dead asyncore, smtp implementation with aiosmtpd
+      name = "django-extensions-aiosmtpd.patch";
+      url = "https://github.com/django-extensions/django-extensions/commit/37d56c4a4704c823ac6a4ef7c3de4c0232ceee64.patch";
+      hash = "sha256-49UeJQKO0epwY/7tqoiHgOXdgPcB/JBIZaCn3ulaHTg=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace setup.cfg \
-      --replace "--cov=django_extensions --cov-report html --cov-report term" ""
+      --replace-fail "--cov=django_extensions --cov-report html --cov-report term" ""
+
+    substituteInPlace django_extensions/management/commands/pipchecker.py \
+      --replace-fail "from distutils.version" "from looseversion"
   '';
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
+    aiosmtpd
     django
+    looseversion
   ];
 
   __darwinAllowLocalNetworking = true;
@@ -48,16 +75,20 @@ buildPythonPackage rec {
     werkzeug
   ];
 
+  disabledTests = [
+    # Mismatch in expectation of exception message
+    "test_installed_apps_no_resolve_conflicts_function"
+  ];
+
   disabledTestPaths = [
     # requires network access
     "tests/management/commands/test_pipchecker.py"
     # django.db.utils.OperationalError: no such table: django_extensions_permmodel
     "tests/test_dumpscript.py"
-
   ];
 
   meta = with lib; {
-    description = "A collection of custom extensions for the Django Framework";
+    description = "Collection of custom extensions for the Django Framework";
     homepage = "https://github.com/django-extensions/django-extensions";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/django-filter/default.nix b/pkgs/development/python-modules/django-filter/default.nix
index 926851b7fe005..27ba6d8cf68fe 100644
--- a/pkgs/development/python-modules/django-filter/default.nix
+++ b/pkgs/development/python-modules/django-filter/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, django
-, djangorestframework
-, pytestCheckHook
-, pytest-django
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  django,
+  djangorestframework,
+  pytestCheckHook,
+  pytest-django,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
 
   dependencies = [ django ];
 
-  pythonImportsCheck = [
-    "django_filters"
-  ];
+  pythonImportsCheck = [ "django_filters" ];
 
   nativeCheckInputs = [
     djangorestframework
diff --git a/pkgs/development/python-modules/django-formset-js-improved/default.nix b/pkgs/development/python-modules/django-formset-js-improved/default.nix
index b14306f06f788..0f3a54b688e48 100644
--- a/pkgs/development/python-modules/django-formset-js-improved/default.nix
+++ b/pkgs/development/python-modules/django-formset-js-improved/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, django-jquery-js
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  django-jquery-js,
 }:
 
 buildPythonPackage rec {
@@ -17,22 +18,16 @@ buildPythonPackage rec {
     hash = "sha256-bOM24ldXk9WeV0jl6LIJB3BJ5hVWLA1PJTBBnJBoprU=";
   };
 
-  buildInputs = [
-    django
-  ];
+  buildInputs = [ django ];
 
-  propagatedBuildInputs = [
-    django-jquery-js
-  ];
+  propagatedBuildInputs = [ django-jquery-js ];
 
-  pythonImportsCheck = [
-    "djangoformsetjs"
-  ];
+  pythonImportsCheck = [ "djangoformsetjs" ];
 
   doCheck = false; # no tests
 
   meta = with lib; {
-    description = "A wrapper for a JavaScript formset helper";
+    description = "Wrapper for a JavaScript formset helper";
     homepage = "https://github.com/pretix/django-formset-js";
     license = licenses.bsd2;
     maintainers = with maintainers; [ hexa ];
diff --git a/pkgs/development/python-modules/django-formtools/default.nix b/pkgs/development/python-modules/django-formtools/default.nix
index 94dd9f3708825..0bd2d30e34133 100644
--- a/pkgs/development/python-modules/django-formtools/default.nix
+++ b/pkgs/development/python-modules/django-formtools/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, django
-, fetchPypi
-, python
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  django,
+  fetchPypi,
+  python,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-R8s0VSxu/KCIhj1pMoTQT8NuqvNQ6yHhodk14N9SPJM=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   checkPhase = ''
     runHook preCheck
@@ -35,15 +32,16 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "formtools"
-  ];
+  pythonImportsCheck = [ "formtools" ];
 
   meta = with lib; {
-    description = "A set of high-level abstractions for Django forms";
+    description = "Set of high-level abstractions for Django forms";
     homepage = "https://github.com/jazzband/django-formtools";
     changelog = "https://github.com/jazzband/django-formtools/blob/master/docs/changelog.rst";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ greizgh schmittlauch ];
+    maintainers = with maintainers; [
+      greizgh
+      schmittlauch
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/django-google-analytics-app/default.nix b/pkgs/development/python-modules/django-google-analytics-app/default.nix
index ad9262f844a5e..8dd5cda3ee744 100644
--- a/pkgs/development/python-modules/django-google-analytics-app/default.nix
+++ b/pkgs/development/python-modules/django-google-analytics-app/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, celery
-, django
-, fetchFromGitHub
-, importlib-metadata
-, python
-, pythonOlder
-, requests
-, structlog
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  celery,
+  django,
+  fetchFromGitHub,
+  importlib-metadata,
+  python,
+  pythonOlder,
+  requests,
+  structlog,
 }:
 
 buildPythonPackage rec {
@@ -40,9 +41,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "google_analytics"
-  ];
+  pythonImportsCheck = [ "google_analytics" ];
 
   meta = with lib; {
     description = "Django Google Analytics brings the power of server side/non-js Google Analytics to your Django projects";
diff --git a/pkgs/development/python-modules/django-graphiql-debug-toolbar/default.nix b/pkgs/development/python-modules/django-graphiql-debug-toolbar/default.nix
index 26a82254a7a67..60a3ed0de63eb 100644
--- a/pkgs/development/python-modules/django-graphiql-debug-toolbar/default.nix
+++ b/pkgs/development/python-modules/django-graphiql-debug-toolbar/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, django
-, django-debug-toolbar
-, graphene-django
-, python
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  django,
+  django-debug-toolbar,
+  graphene-django,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     sha256 = "0fikr7xl786jqfkjdifymqpqnxy4qj8g3nlkgfm24wwq0za719dw";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     django
@@ -32,9 +31,7 @@ buildPythonPackage rec {
     graphene-django
   ];
 
-  pythonImportsCheck = [
-    "graphiql_debug_toolbar"
-  ];
+  pythonImportsCheck = [ "graphiql_debug_toolbar" ];
 
   DB_BACKEND = "sqlite";
   DB_NAME = ":memory:";
diff --git a/pkgs/development/python-modules/django-gravatar2/default.nix b/pkgs/development/python-modules/django-gravatar2/default.nix
index d43748448c51d..214a5ed4ddd0b 100644
--- a/pkgs/development/python-modules/django-gravatar2/default.nix
+++ b/pkgs/development/python-modules/django-gravatar2/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "django-gravatar2";
diff --git a/pkgs/development/python-modules/django-guardian/default.nix b/pkgs/development/python-modules/django-guardian/default.nix
index 968e82b5849db..c9111e8be76cd 100644
--- a/pkgs/development/python-modules/django-guardian/default.nix
+++ b/pkgs/development/python-modules/django-guardian/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, django-environ
-, mock
-, django
-, pytestCheckHook
-, pytest-django
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  django-environ,
+  mock,
+  django,
+  pytestCheckHook,
+  pytest-django,
 }:
 
 buildPythonPackage rec {
@@ -32,7 +33,10 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Per object permissions for Django";
     homepage = "https://github.com/django-guardian/django-guardian";
-    license = with licenses; [ mit bsd2 ];
+    license = with licenses; [
+      mit
+      bsd2
+    ];
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/django-haystack/default.nix b/pkgs/development/python-modules/django-haystack/default.nix
index d9d6fb8ecd6fc..8b49b0014b928 100644
--- a/pkgs/development/python-modules/django-haystack/default.nix
+++ b/pkgs/development/python-modules/django-haystack/default.nix
@@ -1,68 +1,57 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
 
-# build dependencies
-, setuptools
-, setuptools-scm
+  # build dependencies
+  setuptools,
+  setuptools-scm,
 
-# dependencies
-, django
+  # dependencies
+  django,
 
-# tests
-, elasticsearch
-, geopy
-, nose
-, pysolr
-, python-dateutil
-, requests
-, whoosh
+  # tests
+  elasticsearch,
+  geopy,
+  pysolr,
+  python-dateutil,
+  requests,
+  whoosh,
 }:
 
 buildPythonPackage rec {
   pname = "django-haystack";
-  version = "3.2.1";
+  version = "3.3.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-l+MZeu/CJf5AW28XYAolNL+CfLTWdDEwwgvBoG9yk6Q=";
+    pname = "django_haystack";
+    inherit version;
+    hash = "sha256-487ta4AAYl2hTUCetNrGmJSQXirIrBj5v9tZMjygLqs=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "geopy==" "geopy>="
-  '';
-
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  buildInputs = [
-    django
-  ];
+  buildInputs = [ django ];
 
-  passthru.optional-dependencies = {
-    elasticsearch = [
-      elasticsearch
-    ];
+  optional-dependencies = {
+    elasticsearch = [ elasticsearch ];
   };
 
-  doCheck = lib.versionOlder django.version "4";
-
   nativeCheckInputs = [
     geopy
-    nose
     pysolr
     python-dateutil
     requests
     whoosh
-  ]
-  ++ passthru.optional-dependencies.elasticsearch;
+  ] ++ optional-dependencies.elasticsearch;
+
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/django-hcaptcha/default.nix b/pkgs/development/python-modules/django-hcaptcha/default.nix
index 9daf8330331c7..7f0eff2377007 100644
--- a/pkgs/development/python-modules/django-hcaptcha/default.nix
+++ b/pkgs/development/python-modules/django-hcaptcha/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, django
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  django,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     hash = "sha256-slGerwzJeGWscvglMBEixc9h4eSFLWiVmUFgIirLbBo=";
   };
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   # No tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/django-health-check/default.nix b/pkgs/development/python-modules/django-health-check/default.nix
index 6716c1f003a2f..420475a54e8a3 100644
--- a/pkgs/development/python-modules/django-health-check/default.nix
+++ b/pkgs/development/python-modules/django-health-check/default.nix
@@ -1,26 +1,30 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, sphinx
-, setuptools-scm
-, django
-, redis
-, celery
-, pytest-django
-, pytestCheckHook
-, mock
-, gitMinimal }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  sphinx,
+  setuptools-scm,
+  django,
+  redis,
+  celery,
+  boto3,
+  django-storages,
+  pytest-django,
+  pytestCheckHook,
+  mock,
+  gitMinimal,
+}:
 
 buildPythonPackage rec {
   pname = "django-health-check";
-  version = "3.18.1";
+  version = "3.18.2";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "KristianOellegaard";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-4fl7x0pleI1yL+tEWGt5Gmcl6ZKETQz2AsNQDVIAwy8=";
+    hash = "sha256-c0JOfbuVIiTqZo/alJWPN7AB8a3nNdG7euS3scwGHaY=";
   };
 
   buildInputs = [
@@ -34,6 +38,8 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
+    boto3
+    django-storages
     pytest-django
     pytestCheckHook
     mock
diff --git a/pkgs/development/python-modules/django-hierarkey/default.nix b/pkgs/development/python-modules/django-hierarkey/default.nix
index 77f33f0b526c5..488783094f54f 100644
--- a/pkgs/development/python-modules/django-hierarkey/default.nix
+++ b/pkgs/development/python-modules/django-hierarkey/default.nix
@@ -1,36 +1,37 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# propagates
-, python-dateutil
+  # build-system
+  setuptools,
 
-# tests
-, django-extensions
-, pytest-django
-, pytestCheckHook
+  # propagates
+  python-dateutil,
+
+  # tests
+  django-extensions,
+  pytest-django,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "django-hierarkey";
-  version = "1.1.0";
-  format = "setuptools";
+  version = "1.2.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "raphaelm";
     repo = "django-hierarkey";
-    # https://github.com/raphaelm/django-hierarkey/commit/c81ace02ca404a8756e2931bb6faf55b6365e140
-    rev = "c81ace02ca404a8756e2931bb6faf55b6365e140";
-    hash = "sha256-sCARyTjuuAUptlOsFmApnsQpcksP+uYnq0lukXDMcuk=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-1LSH9GwoNF3NrDVNUIHDAVsktyKIprDgB5XlIHeM3fM=";
   };
 
-  propagatedBuildInputs = [
-    python-dateutil
-  ];
+  build-system = [ setuptools ];
 
-  pythonImportsCheck = [
-    "hierarkey"
-  ];
+  dependencies = [ python-dateutil ];
+
+  pythonImportsCheck = [ "hierarkey" ];
 
   nativeCheckInputs = [
     django-extensions
@@ -40,9 +41,7 @@ buildPythonPackage rec {
 
   DJANGO_SETTINGS_MODULE = "tests.settings";
 
-  pytestFlagsArray = [
-    "tests"
-  ];
+  pytestFlagsArray = [ "tests" ];
 
   meta = with lib; {
     description = "Flexible and powerful hierarchical key-value store for your Django models";
diff --git a/pkgs/development/python-modules/django-hijack/default.nix b/pkgs/development/python-modules/django-hijack/default.nix
index 427a8e2311398..d071d35be1528 100644
--- a/pkgs/development/python-modules/django-hijack/default.nix
+++ b/pkgs/development/python-modules/django-hijack/default.nix
@@ -1,33 +1,34 @@
-{ lib
-, fetchFromGitHub
-, fetchNpmDeps
-, buildPythonPackage
-, nix-update-script
+{
+  lib,
+  fetchFromGitHub,
+  fetchNpmDeps,
+  buildPythonPackage,
+  nix-update-script,
 
-# build-system
-, gettext
-, nodejs
-, npmHooks
-, setuptools-scm
+  # build-system
+  gettext,
+  nodejs,
+  npmHooks,
+  setuptools-scm,
 
-# dependencies
-, django
+  # dependencies
+  django,
 
-# tests
-, pytest-django
-, pytestCheckHook
+  # tests
+  pytest-django,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "django-hijack";
-  version = "3.4.5";
+  version = "3.5.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "django-hijack";
     repo = "django-hijack";
     rev = "refs/tags/${version}";
-    hash = "sha256-FXh5OFMTjsKgjEeIS+CiOwyGOs4AisJA+g49rCILDsQ=";
+    hash = "sha256-JY0y1Jf5dPCuycH6K4hb2yK4CYcA8i2GpkAF1zlXzVU=";
   };
 
   postPatch = ''
@@ -50,9 +51,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -62,8 +61,10 @@ buildPythonPackage rec {
   env.DJANGO_SETTINGS_MODULE = "hijack.tests.test_app.settings";
 
   pytestFlagsArray = [
-    "--pyargs" "hijack"
-    "-W" "ignore::DeprecationWarning"
+    "--pyargs"
+    "hijack"
+    "-W"
+    "ignore::DeprecationWarning"
   ];
 
   # needed for npmDeps update
diff --git a/pkgs/development/python-modules/django-i18nfield/default.nix b/pkgs/development/python-modules/django-i18nfield/default.nix
index 62d0770a693ad..0e9d109712935 100644
--- a/pkgs/development/python-modules/django-i18nfield/default.nix
+++ b/pkgs/development/python-modules/django-i18nfield/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# tests
-, djangorestframework
-, html5lib
-, lxml
-, pytest-django
-, pytestCheckHook
-, pyyaml
+  # tests
+  djangorestframework,
+  html5lib,
+  lxml,
+  pytest-django,
+  pytestCheckHook,
+  pyyaml,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/django-import-export/default.nix b/pkgs/development/python-modules/django-import-export/default.nix
index 50e60202dc975..6cde0dae20cb7 100644
--- a/pkgs/development/python-modules/django-import-export/default.nix
+++ b/pkgs/development/python-modules/django-import-export/default.nix
@@ -1,41 +1,58 @@
-{ lib
-, buildPythonPackage
-, chardet
-, diff-match-patch
-, django
-, fetchFromGitHub
-, psycopg2
-, python
-, pythonOlder
-, pytz
-, tablib
+{
+  lib,
+  buildPythonPackage,
+  chardet,
+  diff-match-patch,
+  django,
+  fetchFromGitHub,
+  psycopg2,
+  python,
+  pythonOlder,
+  pytz,
+  setuptools-scm,
+  tablib,
 }:
 
 buildPythonPackage rec {
   pname = "django-import-export";
-  version = "3.3.8";
-  format = "setuptools";
+  version = "4.0.9";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "django-import-export";
-    repo = pname;
+    repo = "django-import-export";
     rev = "refs/tags/${version}";
-    hash = "sha256-9BsaYLAkd6UvQxMtwk+pI7HyOWNU4rUmingkyemRCz4=";
+    hash = "sha256-T7XnPxvqnLI3rd0xSZb2iOsgcOqiA/JrRh3rjCm5gG4=";
   };
 
-  propagatedBuildInputs = [
+  pythonRelaxDeps = [ "tablib" ];
+
+  build-system = [ setuptools-scm ];
+
+
+  dependencies = [
     diff-match-patch
     django
     tablib
-  ] ++ (with tablib.optional-dependencies; html ++ ods ++ xls ++ xlsx ++ yaml);
+  ];
+
+  passthru.optional-dependencies = {
+    all = [ tablib ] ++ tablib.optional-dependencies.all;
+    cli = [ tablib ] ++ tablib.optional-dependencies.cli;
+    ods = [ tablib ] ++ tablib.optional-dependencies.ods;
+    pandas = [ tablib ] ++ tablib.optional-dependencies.pandas;
+    xls = [ tablib ] ++ tablib.optional-dependencies.xls;
+    xlsx = [ tablib ] ++ tablib.optional-dependencies.xlsx;
+    yaml = [ tablib ] ++ tablib.optional-dependencies.yaml;
+  };
 
   nativeCheckInputs = [
     chardet
     psycopg2
     pytz
-  ];
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
   checkPhase = ''
     runHook preCheck
@@ -43,9 +60,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "import_export"
-  ];
+  pythonImportsCheck = [ "import_export" ];
 
   meta = with lib; {
     description = "Django application and library for importing and exporting data with admin integration";
diff --git a/pkgs/development/python-modules/django-ipware/default.nix b/pkgs/development/python-modules/django-ipware/default.nix
index 26b4cc7308b82..c786de25abceb 100644
--- a/pkgs/development/python-modules/django-ipware/default.nix
+++ b/pkgs/development/python-modules/django-ipware/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, django
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  django,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "django-ipware";
-  version = "6.0.5";
+  version = "7.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-s54nQDKH1r6wUT5pQCQBfbpY0Sn9QQoQFKyKFYTnP84=";
+    hash = "sha256-2exD0r983yFv7Y1JSghN61dhpUhgpTsudDRqTzhM/0c=";
   };
 
   propagatedBuildInputs = [ django ];
@@ -26,7 +27,7 @@ buildPythonPackage rec {
   # django.core.exceptions.ImproperlyConfigured: Requested setting IPWARE_META_PRECEDENCE_ORDER, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
 
   meta = with lib; {
-    description = "A Django application to retrieve user's IP address";
+    description = "Django application to retrieve user's IP address";
     homepage = "https://github.com/un33k/django-ipware";
     changelog = "https://github.com/un33k/django-ipware/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/django-jinja2/default.nix b/pkgs/development/python-modules/django-jinja2/default.nix
index 77d50b65ce6fc..69168c6e80579 100644
--- a/pkgs/development/python-modules/django-jinja2/default.nix
+++ b/pkgs/development/python-modules/django-jinja2/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, django
-, jinja2
-, python
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  django,
+  jinja2,
+  python,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/django-jquery-js/default.nix b/pkgs/development/python-modules/django-jquery-js/default.nix
index 2487dc61e0fc6..ed2441f312820 100644
--- a/pkgs/development/python-modules/django-jquery-js/default.nix
+++ b/pkgs/development/python-modules/django-jquery-js/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromBitbucket
-, django
+{
+  lib,
+  buildPythonPackage,
+  fetchFromBitbucket,
+  django,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,9 @@ buildPythonPackage rec {
     hash = "sha256-TzMo31jFhcvlrmq2TJgQyds9n8eATaChnyhnQ7bwdzs=";
   };
 
-  buildInputs = [
-    django
-  ];
+  buildInputs = [ django ];
 
-  pythonImportsCheck = [
-    "jquery"
-  ];
+  pythonImportsCheck = [ "jquery" ];
 
   doCheck = false; # no tests
 
diff --git a/pkgs/development/python-modules/django-js-asset/default.nix b/pkgs/development/python-modules/django-js-asset/default.nix
index 54c4c4b90eb45..7b1390ffbcbfa 100644
--- a/pkgs/development/python-modules/django-js-asset/default.nix
+++ b/pkgs/development/python-modules/django-js-asset/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, django
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  django,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-qAkE5ubzfTNO1LuMQXMW2Sot1cn/bhuXlWa/J/wD5SI=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
-  pythonImportsCheck = [
-    "js_asset"
-  ];
+  pythonImportsCheck = [ "js_asset" ];
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/django-js-reverse/default.nix b/pkgs/development/python-modules/django-js-reverse/default.nix
index a30330fcd9e49..3e344f881395d 100644
--- a/pkgs/development/python-modules/django-js-reverse/default.nix
+++ b/pkgs/development/python-modules/django-js-reverse/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonAtLeast
-, fetchpatch
-, fetchFromGitHub
-, python
-, django
-, packaging
-, nodejs
-, js2py
-, six
+{
+  lib,
+  buildPythonPackage,
+  pythonAtLeast,
+  fetchFromGitHub,
+  python,
+  django,
+  packaging,
+  nodejs,
+  js2py,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -23,11 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-i78UsxVwxyDAc8LrOVEXLG0tdidoQhvUx7GvPDaH0KY=";
   };
 
-  propagatedBuildInputs = [
-    django
-  ] ++ lib.optionals (pythonAtLeast "3.7") [
-    packaging
-  ];
+  propagatedBuildInputs = [ django ] ++ lib.optionals (pythonAtLeast "3.7") [ packaging ];
 
   nativeCheckInputs = [
     nodejs
diff --git a/pkgs/development/python-modules/django-leaflet/default.nix b/pkgs/development/python-modules/django-leaflet/default.nix
index aeb37f5aa99a5..7d96ad4be6db3 100644
--- a/pkgs/development/python-modules/django-leaflet/default.nix
+++ b/pkgs/development/python-modules/django-leaflet/default.nix
@@ -1,25 +1,28 @@
-{ pkgs
-, buildPythonPackage
-, django
-, fetchPypi
-, pythonOlder
+{
+  pkgs,
+  buildPythonPackage,
+  django,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "django-leaflet";
-  version = "0.29.1";
-  format = "setuptools";
+  version = "0.30.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-ECtocPJHYR1DsFLeVMVdtlia4UNOJyNMsU1CrX1aVsQ=";
+    pname = "django_leaflet";
+    inherit version;
+    hash = "sha256-jsG2RcUe0Zob9GAZVKSIr8iPPubqqsh679uhUioNR0Y=";
   };
 
-  propagatedBuildInputs = [
-    django
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ django ];
 
   # The tests seem to be impure.
   # They are throwing a error about unset configs:
diff --git a/pkgs/development/python-modules/django-libsass/default.nix b/pkgs/development/python-modules/django-libsass/default.nix
index 181abfafd148f..ee6631cd3a000 100644
--- a/pkgs/development/python-modules/django-libsass/default.nix
+++ b/pkgs/development/python-modules/django-libsass/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# dependencies
-, django-compressor
-, libsass
-
-# tests
-, django
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # dependencies
+  django-compressor,
+  libsass,
+
+  # tests
+  django,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     libsass
   ];
 
-  nativeCheckInputs = [
-    django
-  ];
+  nativeCheckInputs = [ django ];
 
   checkPhase = ''
     runHook preCheck
@@ -39,7 +38,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A django-compressor filter to compile SASS files using libsass";
+    description = "Django-compressor filter to compile SASS files using libsass";
     homepage = "https://github.com/torchbox/django-libsass";
     changelog = "https://github.com/torchbox/django-libsass/blob/${src.rev}/CHANGELOG.txt";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/django-localflavor/default.nix b/pkgs/development/python-modules/django-localflavor/default.nix
index 5f63532ad96e7..0a2575d87a361 100644
--- a/pkgs/development/python-modules/django-localflavor/default.nix
+++ b/pkgs/development/python-modules/django-localflavor/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# bring your own
-, django
+  # bring your own
+  django,
 
-# propagates
-, python-stdnum
+  # propagates
+  python-stdnum,
 
-# tests
-, pytest-django
-, pytestCheckHook
+  # tests
+  pytest-django,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,13 +26,9 @@ buildPythonPackage rec {
     hash = "sha256-UWp3ei1VlEsEfjbJIE+MpffSzYF4X1HEQw+z+5kZoP0=";
   };
 
-  buildInputs = [
-    django
-  ];
+  buildInputs = [ django ];
 
-  propagatedBuildInputs = [
-    python-stdnum
-  ];
+  propagatedBuildInputs = [ python-stdnum ];
 
   pythonImportsCheck = [
     # samples
diff --git a/pkgs/development/python-modules/django-logentry-admin/default.nix b/pkgs/development/python-modules/django-logentry-admin/default.nix
index af208427a63a4..8a8f7a8effe99 100644
--- a/pkgs/development/python-modules/django-logentry-admin/default.nix
+++ b/pkgs/development/python-modules/django-logentry-admin/default.nix
@@ -1,4 +1,11 @@
-{ lib, fetchFromGitHub, buildPythonPackage, django, pytest, pytest-django }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  django,
+  pytest,
+  pytest-django,
+}:
 
 buildPythonPackage rec {
   pname = "django-logentry-admin";
@@ -12,7 +19,10 @@ buildPythonPackage rec {
     sha256 = "1bndxgvisw8kk52zfdifvly6dl4833wqilxf77pg473172yaf5gq";
   };
 
-  nativeCheckInputs = [ pytest pytest-django ];
+  nativeCheckInputs = [
+    pytest
+    pytest-django
+  ];
   checkPhase = ''
     rm -r logentry_admin __init__.py
     pytest
@@ -27,4 +37,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ mrmebelman ];
   };
 }
-
diff --git a/pkgs/development/python-modules/django-login-required-middleware/default.nix b/pkgs/development/python-modules/django-login-required-middleware/default.nix
index b288e79290599..7dbbbcd9a411a 100644
--- a/pkgs/development/python-modules/django-login-required-middleware/default.nix
+++ b/pkgs/development/python-modules/django-login-required-middleware/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, django
-, djangorestframework
-, fetchFromGitHub
-, python
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  django,
+  djangorestframework,
+  fetchFromGitHub,
+  python,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -19,21 +20,13 @@ buildPythonPackage rec {
     hash = "sha256-WFQ/JvKh6gkUxPV27QBd2TzwFS8hfQGmcTInTnmh6iA=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
-  checkInputs = [
-    djangorestframework
-  ];
+  checkInputs = [ djangorestframework ];
 
-  pythonImportsCheck = [
-    "login_required"
-  ];
+  pythonImportsCheck = [ "login_required" ];
 
   checkPhase = ''
     ${python.interpreter} -m django test --settings tests.settings
diff --git a/pkgs/development/python-modules/django-mailman3/default.nix b/pkgs/development/python-modules/django-mailman3/default.nix
index 094ca8a6d91da..d139e4666842b 100644
--- a/pkgs/development/python-modules/django-mailman3/default.nix
+++ b/pkgs/development/python-modules/django-mailman3/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, pdm-backend
+  # build-system
+  pdm-backend,
 
-# dependencies
-, django-gravatar2
-, django-allauth
-, mailmanclient
-, pytz
+  # dependencies
+  django-gravatar2,
+  django-allauth,
+  mailmanclient,
+  pytz,
 
-# tests
-, django
-, pytest-django
-, pytestCheckHook
-, nixosTests
+  # tests
+  django,
+  pytest-django,
+  pytestCheckHook,
+  nixosTests,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     hash = "sha256-MnQlT5ElNnStLUKyOXnI7ZDDaBwfp+h9tbOC+cwB0es=";
   };
 
-  build-system = [
-    pdm-backend
-  ];
+  build-system = [ pdm-backend ];
 
   dependencies = [
     django-allauth
@@ -50,11 +49,11 @@ buildPythonPackage rec {
     export DJANGO_SETTINGS_MODULE=django_mailman3.tests.settings_test
   '';
 
-  pythonImportsCheck = [
-    "django_mailman3"
-  ];
+  pythonImportsCheck = [ "django_mailman3" ];
 
-  passthru.tests = { inherit (nixosTests) mailman; };
+  passthru.tests = {
+    inherit (nixosTests) mailman;
+  };
 
   meta = with lib; {
     description = "Django library for Mailman UIs";
diff --git a/pkgs/development/python-modules/django-maintenance-mode/default.nix b/pkgs/development/python-modules/django-maintenance-mode/default.nix
index 6b0dbb8d3b9d8..8e278b607ae21 100644
--- a/pkgs/development/python-modules/django-maintenance-mode/default.nix
+++ b/pkgs/development/python-modules/django-maintenance-mode/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, django
-, fetchFromGitHub
-, python
-, python-fsutil
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  django,
+  fetchFromGitHub,
+  python,
+  python-fsutil,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-rZo0yru+y5TkdULBQDMGAVb494PSLtbnNX/7cuphKNk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     django
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "maintenance_mode"
-  ];
+  pythonImportsCheck = [ "maintenance_mode" ];
 
   meta = with lib; {
     description = "Shows a 503 error page when maintenance-mode is on";
diff --git a/pkgs/development/python-modules/django-markdownx/default.nix b/pkgs/development/python-modules/django-markdownx/default.nix
index e6275ee50441f..a40aa21c5915c 100644
--- a/pkgs/development/python-modules/django-markdownx/default.nix
+++ b/pkgs/development/python-modules/django-markdownx/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, django
-, fetchFromGitHub
-, markdown
-, pillow
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  django,
+  fetchFromGitHub,
+  markdown,
+  pillow,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-FZPUlogVd3FMGeH1vfKHA3tXVps0ET+UCQJflpiV2lE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     django
@@ -35,9 +34,7 @@ buildPythonPackage rec {
   # tests only executeable in vagrant
   doCheck = false;
 
-  pythonImportsCheck = [
-    "markdownx"
-  ];
+  pythonImportsCheck = [ "markdownx" ];
 
   meta = with lib; {
     description = "Comprehensive Markdown plugin built for Django";
diff --git a/pkgs/development/python-modules/django-markup/default.nix b/pkgs/development/python-modules/django-markup/default.nix
index ed33d09372365..6d7dd7f594535 100644
--- a/pkgs/development/python-modules/django-markup/default.nix
+++ b/pkgs/development/python-modules/django-markup/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, django
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  django,
 
-# optionals
-, bleach
-, docutils
-, markdown
-, pygments
-, python-creole
-, smartypants
-, textile
+  # optionals
+  bleach,
+  docutils,
+  markdown,
+  pygments,
+  python-creole,
+  smartypants,
+  textile,
 
-# tests
-, pytest-django
-, pytestCheckHook
+  # tests
+  pytest-django,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
     sed -i "/--cov/d" pyproject.toml
   '';
 
-  buildInputs = [
-    django
-  ];
+  buildInputs = [ django ];
 
   passthru.optional-dependencies = {
     all_filter_dependencies = [
@@ -52,9 +51,7 @@ buildPythonPackage rec {
     ];
   };
 
-  pythonImportsCheck = [
-    "django_markup"
-  ];
+  pythonImportsCheck = [ "django_markup" ];
 
   nativeCheckInputs = [
     pytest-django
@@ -64,7 +61,7 @@ buildPythonPackage rec {
   env.DJANGO_SETTINGS_MODULE = "django_markup.tests";
 
   meta = with lib; {
-    description = "Generic Django application to convert text with specific markup to html.";
+    description = "Generic Django application to convert text with specific markup to html";
     homepage = "https://github.com/bartTC/django-markup";
     changelog = "https://github.com/bartTC/django-markup/blob/v${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/django-mdeditor/default.nix b/pkgs/development/python-modules/django-mdeditor/default.nix
index dc58e3cd665d0..96b5c93bae2d5 100644
--- a/pkgs/development/python-modules/django-mdeditor/default.nix
+++ b/pkgs/development/python-modules/django-mdeditor/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
 }:
 let
   version = "0.1.20";
diff --git a/pkgs/development/python-modules/django-model-utils/default.nix b/pkgs/development/python-modules/django-model-utils/default.nix
index 38d03dca20105..14b53943eb90f 100644
--- a/pkgs/development/python-modules/django-model-utils/default.nix
+++ b/pkgs/development/python-modules/django-model-utils/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-GaBTCrEwEkJyVeY5YVptPioYcmivyQtBKjs+TgC9IqA=";
   };
 
-  build-system = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
-  dependencies = [
-    django
-  ];
+  dependencies = [ django ];
 
   # Test requires postgres database
   doCheck = false;
 
-  pythonImportsCheck = [
-    "model_utils"
-  ];
+  pythonImportsCheck = [ "model_utils" ];
 
   meta = with lib; {
     homepage = "https://github.com/jazzband/django-model-utils";
diff --git a/pkgs/development/python-modules/django-modelcluster/default.nix b/pkgs/development/python-modules/django-modelcluster/default.nix
index 6d8776a9528ff..a7efa70261fbc 100644
--- a/pkgs/development/python-modules/django-modelcluster/default.nix
+++ b/pkgs/development/python-modules/django-modelcluster/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-
-# dependencies
-, django
-, pytz
-
-# optionals
-, django-taggit
-
-# tests
-, pytest-django
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # dependencies
+  django,
+  pytz,
+
+  # optionals
+  django-taggit,
+
+  # tests
+  pytest-django,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     pytz
   ];
 
-  passthru.optional-dependencies.taggit = [
-    django-taggit
-  ];
+  passthru.optional-dependencies.taggit = [ django-taggit ];
 
   env.DJANGO_SETTINGS_MODULE = "tests.settings";
 
@@ -56,5 +55,4 @@ buildPythonPackage rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ desiderius ];
   };
-
 }
diff --git a/pkgs/development/python-modules/django-modeltranslation/default.nix b/pkgs/development/python-modules/django-modeltranslation/default.nix
index f57dc25640e08..e32886c600f5b 100644
--- a/pkgs/development/python-modules/django-modeltranslation/default.nix
+++ b/pkgs/development/python-modules/django-modeltranslation/default.nix
@@ -1,16 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, django
-, pytestCheckHook
-, pytest-django
-, parameterized
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  django,
+  django-stubs,
+  pytestCheckHook,
+  pytest-django,
+  parameterized,
 }:
 let
   # 0.18.12 was yanked from PyPI, it refers to this issue:
   # https://github.com/deschler/django-modeltranslation/issues/701
-  version = "0.18.12";
+  version = "0.19.3";
 in
 buildPythonPackage {
   pname = "django-modeltranslation";
@@ -20,7 +22,7 @@ buildPythonPackage {
     owner = "deschler";
     repo = "django-modeltranslation";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6rAAu3Fd4D93rX8kvkcqhykzBu/lDByQ6zpjWq7J8mg=";
+    hash = "sha256-tCj3+9iQ5DBf0fxAHgHkgcARFDfZTV/o6wvQ7ASUJWQ=";
   };
 
   # Remove all references to pytest-cov
@@ -35,7 +37,12 @@ buildPythonPackage {
 
   propagatedBuildInputs = [ django ];
 
-  nativeCheckInputs = [ pytestCheckHook pytest-django parameterized ];
+  nativeCheckInputs = [
+    django-stubs
+    pytestCheckHook
+    pytest-django
+    parameterized
+  ];
 
   meta = with lib; {
     description = "Translates Django models using a registration approach";
diff --git a/pkgs/development/python-modules/django-mptt/default.nix b/pkgs/development/python-modules/django-mptt/default.nix
index 53dac2a781f40..419bb9c8eebc9 100644
--- a/pkgs/development/python-modules/django-mptt/default.nix
+++ b/pkgs/development/python-modules/django-mptt/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, django-js-asset
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  django-js-asset,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     django-js-asset
   ];
 
-  pythonImportsCheck = [
-    "mptt"
-  ];
+  pythonImportsCheck = [ "mptt" ];
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/django-multiselectfield/default.nix b/pkgs/development/python-modules/django-multiselectfield/default.nix
index 6864d0c8f9f19..9e7da31291a7b 100644
--- a/pkgs/development/python-modules/django-multiselectfield/default.nix
+++ b/pkgs/development/python-modules/django-multiselectfield/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, django
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  django,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/django-mysql/default.nix b/pkgs/development/python-modules/django-mysql/default.nix
index 9db6be33ed0dc..9cb828f9b247b 100644
--- a/pkgs/development/python-modules/django-mysql/default.nix
+++ b/pkgs/development/python-modules/django-mysql/default.nix
@@ -1,39 +1,34 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, django
-, mysqlclient
+  # dependencies
+  django,
 
-# tests
-, pytest-django
-, pytestCheckHook
+  # tests
+  pytest-django,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "django-mysql";
-  version = "4.12.0";
+  version = "4.13.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "adamchainz";
     repo = "django-mysql";
     rev = "refs/tags/${version}";
-    hash = "sha256-AieI6zUPFXQsrvoms5bu/Bb3J+DvfLA4rCCsjhYBEZQ=";
+    hash = "sha256-hIvkLLv9R23u+JC6t/zwbMvmgLMstYp0ytuSqNiohJg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  buildInputs = [
-    django
-    mysqlclient
-  ];
+  dependencies = [ django ];
 
   doCheck = false; # requires mysql/mariadb server
 
@@ -44,6 +39,8 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  pythonImportsCheck = [ "django_mysql" ];
+
   meta = with lib; {
     changelog = "https://github.com/adamchainz/django-mysql/blob/${version}/docs/changelog.rst";
     description = "Extensions to Django for use with MySQL/MariaD";
diff --git a/pkgs/development/python-modules/django-ninja/default.nix b/pkgs/development/python-modules/django-ninja/default.nix
index a39fc17429036..cc6d7ce153888 100644
--- a/pkgs/development/python-modules/django-ninja/default.nix
+++ b/pkgs/development/python-modules/django-ninja/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, django
-, fetchFromGitHub
-, flit-core
-, psycopg2
-, pydantic
-, pytest-asyncio
-, pytest-django
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  django,
+  fetchFromGitHub,
+  flit-core,
+  psycopg2,
+  pydantic,
+  pytest-asyncio,
+  pytest-django,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,7 +26,10 @@ buildPythonPackage rec {
     hash = "sha256-pvpYDuUZi0Gr5RbBWc91LzgmRLhihrhsKaD/AWN5+Bo=";
   };
 
-  propagatedBuildInputs = [ django pydantic ];
+  propagatedBuildInputs = [
+    django
+    pydantic
+  ];
 
   nativeBuildInputs = [ flit-core ];
 
diff --git a/pkgs/development/python-modules/django-nose/default.nix b/pkgs/development/python-modules/django-nose/default.nix
deleted file mode 100644
index 86aa7b3a4e4a5..0000000000000
--- a/pkgs/development/python-modules/django-nose/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-, django
-}:
-
-buildPythonPackage rec {
-  pname = "django-nose";
-  version = "1.4.7";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "a4885cd002d65fd2de96e2bb2563ef477c3fbe207009360c015fca5c3b5561b7";
-  };
-
-  # vast dependency list
-  doCheck = false;
-
-  propagatedBuildInputs = [ django nose ];
-
-  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/pkgs/development/python-modules/django-oauth-toolkit/default.nix b/pkgs/development/python-modules/django-oauth-toolkit/default.nix
index ce03a1330f5f5..139a0d022c159 100644
--- a/pkgs/development/python-modules/django-oauth-toolkit/default.nix
+++ b/pkgs/development/python-modules/django-oauth-toolkit/default.nix
@@ -1,32 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# propagates
-, django
-, jwcrypto
-, requests
-, oauthlib
+  # propagates
+  django,
+  jwcrypto,
+  requests,
+  oauthlib,
 
-# tests
-, djangorestframework
-, pytest-django
-, pytest-xdist
-, pytest-mock
-, pytestCheckHook
+  # tests
+  djangorestframework,
+  pytest-django,
+  pytest-xdist,
+  pytest-mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "django-oauth-toolkit";
-  version = "2.3.0";
+  version = "2.4.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "jazzband";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-oGg5MD9p4PSUVkt5pGLwjAF4SHHf4Aqr+/3FsuFaybY=";
+    hash = "sha256-nfLjjVp+6OsjFdJHUZ2gzZic/E/sCklj+YeFyb/EZdw=";
   };
 
   postPatch = ''
@@ -40,10 +40,7 @@ buildPythonPackage rec {
     requests
   ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
-  pythonRelaxDeps = [
-    "django"
-  ];
+  pythonRelaxDeps = [ "django" ];
 
   DJANGO_SETTINGS_MODULE = "tests.settings";
 
diff --git a/pkgs/development/python-modules/django-otp/default.nix b/pkgs/development/python-modules/django-otp/default.nix
index c1078160b6ebc..67395fa588e88 100644
--- a/pkgs/development/python-modules/django-otp/default.nix
+++ b/pkgs/development/python-modules/django-otp/default.nix
@@ -1,29 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, django
-, freezegun
-, qrcode
-, pytest
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  django,
+  freezegun,
+  qrcode,
+  pytest,
+  python,
 }:
 
 buildPythonPackage rec {
   pname = "django-otp";
-  version = "1.3.0post1";
+  version = "1.5.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "django-otp";
     repo = "django-otp";
     rev = "v${version}";
-    hash = "sha256-Q8YTCYERyoAXenSiDabxuxaWiD6ZeJKKKgaR/Rg3y20=";
+    hash = "sha256-c0Yr41S1LFBzcDIK2etOP3rYcCPaThDs+XGiw4WP/ks=";
   };
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   dependencies = [
     django
@@ -47,13 +46,9 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pytestFlagsArray = [
-    "src/django_otp/test.py"
-  ];
+  pytestFlagsArray = [ "src/django_otp/test.py" ];
 
-  pythonImportsCheck = [
-    "django_otp"
-  ];
+  pythonImportsCheck = [ "django_otp" ];
 
   meta = with lib; {
     homepage = "https://github.com/django-otp/django-otp";
diff --git a/pkgs/development/python-modules/django-paintstore/default.nix b/pkgs/development/python-modules/django-paintstore/default.nix
index edafdf1649116..6d4dd2d365355 100644
--- a/pkgs/development/python-modules/django-paintstore/default.nix
+++ b/pkgs/development/python-modules/django-paintstore/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "django-paintstore";
diff --git a/pkgs/development/python-modules/django-parler/default.nix b/pkgs/development/python-modules/django-parler/default.nix
index 3afaa8ae262c6..8f444bd88fb36 100644
--- a/pkgs/development/python-modules/django-parler/default.nix
+++ b/pkgs/development/python-modules/django-parler/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, django
-, fetchFromGitHub
-, pytest
-, pytest-django
-, pythonOlder
-, python
+{
+  lib,
+  buildPythonPackage,
+  django,
+  fetchFromGitHub,
+  pytest,
+  pytest-django,
+  pythonOlder,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-tRGifFPCXF3aa3PQWKw3tl1H1TY+lgcChUP1VdwG1cE=";
   };
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/django-pattern-library/default.nix b/pkgs/development/python-modules/django-pattern-library/default.nix
index 12a229ce9da8f..0aaa35f940dc0 100644
--- a/pkgs/development/python-modules/django-pattern-library/default.nix
+++ b/pkgs/development/python-modules/django-pattern-library/default.nix
@@ -1,20 +1,20 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, lib
-
-# build-system
-, poetry-core
-
-# dependencies
-, django
-, markdown
-, pyyaml
-
-# tests
-, beautifulsoup4
-, pytestCheckHook
-, pytest-django
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+
+  # build-system
+  poetry-core,
+
+  # dependencies
+  django,
+  markdown,
+  pyyaml,
+
+  # tests
+  beautifulsoup4,
+  pytestCheckHook,
+  pytest-django,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +29,7 @@ buildPythonPackage rec {
     hash = "sha256-hrdJYVioY6y9D29DuKPMZjdWj92GcbHXANWiEHadimI=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     django
diff --git a/pkgs/development/python-modules/django-payments/default.nix b/pkgs/development/python-modules/django-payments/default.nix
index d470bb57a2e50..714bc0253bfec 100644
--- a/pkgs/development/python-modules/django-payments/default.nix
+++ b/pkgs/development/python-modules/django-payments/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, braintree
-, cryptography
-, django
-, django-phonenumber-field
-, fetchFromGitHub
-, mercadopago
-, pythonOlder
-, requests
-, setuptools-scm
-, sphinx-rtd-theme
-, stripe
-, xmltodict
+{
+  lib,
+  buildPythonPackage,
+  braintree,
+  cryptography,
+  django,
+  django-phonenumber-field,
+  fetchFromGitHub,
+  mercadopago,
+  pythonOlder,
+  requests,
+  setuptools-scm,
+  sphinx-rtd-theme,
+  stripe,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
       --replace "django-phonenumber-field[phonenumberslite]" "django-phonenumber-field"
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     django
@@ -46,14 +45,20 @@ buildPythonPackage rec {
   # require internet connection
   doCheck = false;
 
-  pythonImportsCheck = [
-    "payments"
-  ];
+  pythonImportsCheck = [ "payments" ];
 
   passthru.optional-dependencies = {
-    all = [ braintree /* suds-community */ mercadopago cryptography xmltodict stripe ];
+    all = [
+      braintree # suds-community
+      mercadopago
+      cryptography
+      xmltodict
+      stripe
+    ];
     braintree = [ braintree ];
-    cybersource = [ /* suds-community */ ];
+    cybersource = [
+      # suds-community
+    ];
     docs = [ sphinx-rtd-theme ];
     mercadopago = [ mercadopago ];
     sagepay = [ cryptography ];
@@ -62,7 +67,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "Universal payment handling for Django.";
+    description = "Universal payment handling for Django";
     homepage = "https://github.com/jazzband/django-payments/";
     changelog = "https://github.com/jazzband/django-payments/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/django-pglocks/default.nix b/pkgs/development/python-modules/django-pglocks/default.nix
index dae4fd2ad0ecd..0142c0d5bcef4 100644
--- a/pkgs/development/python-modules/django-pglocks/default.nix
+++ b/pkgs/development/python-modules/django-pglocks/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, django, six }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  django,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "django-pglocks";
@@ -6,7 +12,7 @@ buildPythonPackage rec {
   format = "setuptools";
 
   meta = {
-    description = "PostgreSQL locking context managers and functions for Django.";
+    description = "PostgreSQL locking context managers and functions for Django";
     homepage = "https://github.com/Xof/django-pglocks";
     license = lib.licenses.mit;
   };
@@ -17,7 +23,10 @@ buildPythonPackage rec {
   };
 
   buildInputs = [ django ];
-  propagatedBuildInputs = [ django six ];
+  propagatedBuildInputs = [
+    django
+    six
+  ];
 
   # tests need a postgres database
   doCheck = false;
diff --git a/pkgs/development/python-modules/django-phonenumber-field/default.nix b/pkgs/development/python-modules/django-phonenumber-field/default.nix
index 6f952c9865a9e..e58bb4e81cffa 100644
--- a/pkgs/development/python-modules/django-phonenumber-field/default.nix
+++ b/pkgs/development/python-modules/django-phonenumber-field/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, babel
-, buildPythonPackage
-, django
-, djangorestframework
-, fetchPypi
-, phonenumbers
-, python
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  babel,
+  buildPythonPackage,
+  django,
+  djangorestframework,
+  fetchPypi,
+  phonenumbers,
+  python,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-+c2z3ghfmcJJMoKTo7k9Tl+kQMDI47mesND1R0hil5c=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    django
-  ] ++ passthru.optional-dependencies.phonenumbers;
+  propagatedBuildInputs = [ django ] ++ passthru.optional-dependencies.phonenumbers;
 
   nativeCheckInputs = [
     babel
     djangorestframework
   ];
 
-  pythonImportsCheck = [
-    "phonenumber_field"
-  ];
+  pythonImportsCheck = [ "phonenumber_field" ];
 
   checkPhase = ''
     ${python.interpreter} -m django test --settings tests.settings
@@ -48,7 +43,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A django model and form field for normalised phone numbers using python-phonenumbers";
+    description = "Django model and form field for normalised phone numbers using python-phonenumbers";
     homepage = "https://github.com/stefanfoulis/django-phonenumber-field/";
     changelog = "https://github.com/stefanfoulis/django-phonenumber-field/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/django-picklefield/default.nix b/pkgs/development/python-modules/django-picklefield/default.nix
index b1dab2e73c917..fc9f0964259fa 100644
--- a/pkgs/development/python-modules/django-picklefield/default.nix
+++ b/pkgs/development/python-modules/django-picklefield/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchFromGitHub, django, pytest, pytest-django, python }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  pytest,
+  pytest-django,
+  python,
+}:
 
 buildPythonPackage rec {
   pname = "django-picklefield";
@@ -26,7 +34,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A pickled object field for Django";
+    description = "Pickled object field for Django";
     homepage = "https://github.com/gintas/django-picklefield";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/django-polymorphic/default.nix b/pkgs/development/python-modules/django-polymorphic/default.nix
index 4df2a1406ef72..9030630a784a1 100644
--- a/pkgs/development/python-modules/django-polymorphic/default.nix
+++ b/pkgs/development/python-modules/django-polymorphic/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchFromGitHub, python, django, dj-database-url }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  django,
+  dj-database-url,
+}:
 
 buildPythonPackage rec {
   pname = "django-polymorphic";
diff --git a/pkgs/development/python-modules/django-postgresql-netfields/default.nix b/pkgs/development/python-modules/django-postgresql-netfields/default.nix
index 1f0600b68a84f..e1282e8802d01 100644
--- a/pkgs/development/python-modules/django-postgresql-netfields/default.nix
+++ b/pkgs/development/python-modules/django-postgresql-netfields/default.nix
@@ -1,18 +1,19 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, django
-, netaddr
-, six
-, fetchFromGitHub
-, pythonOlder
-, djangorestframework
-# required for tests
-, postgresql
-, postgresqlTestHook
-, psycopg2
-, pytestCheckHook
-, pytest-django
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  django,
+  netaddr,
+  six,
+  fetchFromGitHub,
+  pythonOlder,
+  djangorestframework,
+  # required for tests
+  postgresql,
+  postgresqlTestHook,
+  psycopg2,
+  pytestCheckHook,
+  pytest-django,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/django-prometheus/default.nix b/pkgs/development/python-modules/django-prometheus/default.nix
index 40bdf4e57ff79..e15174d56ae42 100644
--- a/pkgs/development/python-modules/django-prometheus/default.nix
+++ b/pkgs/development/python-modules/django-prometheus/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, prometheus-client
-, pytest-django
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  prometheus-client,
+  pytest-django,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,22 +21,16 @@ buildPythonPackage rec {
     hash = "sha256-JiLH+4mmNdb9BN81J5YFiMPna/3gaKUK6ARjmCa3fE8=";
   };
 
-  patches = [
-    ./drop-untestable-database-backends.patch
-  ];
+  patches = [ ./drop-untestable-database-backends.patch ];
 
   postPatch = ''
     substituteInPlace setup.py \
       --replace '"pytest-runner"' ""
   '';
 
-  propagatedBuildInputs = [
-    prometheus-client
-  ];
+  propagatedBuildInputs = [ prometheus-client ];
 
-  pythonImportsCheck = [
-    "django_prometheus"
-  ];
+  pythonImportsCheck = [ "django_prometheus" ];
 
   nativeCheckInputs = [
     pytest-django
diff --git a/pkgs/development/python-modules/django-pwa/default.nix b/pkgs/development/python-modules/django-pwa/default.nix
index 91a216f0ac5cd..134a84852f661 100644
--- a/pkgs/development/python-modules/django-pwa/default.nix
+++ b/pkgs/development/python-modules/django-pwa/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, django
-, fetchFromGitHub
-, python
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  django,
+  fetchFromGitHub,
+  python,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,17 +22,11 @@ buildPythonPackage rec {
     hash = "sha256-tP1+Jm9hdvN/ZliuVHN8tqy24/tOK1LUUiJv1xUqRrY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
-  pyImportCheck = [
-    "pwa"
-  ];
+  pyImportCheck = [ "pwa" ];
 
   checkPhase = ''
     runHook preCheck
@@ -40,7 +35,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Django app to include a manifest.json and Service Worker instance to enable progressive web app behavoir";
+    description = "Django app to include a manifest.json and Service Worker instance to enable progressive web app behavoir";
     homepage = "https://github.com/silviolleite/django-pwa";
     changelog = "https://github.com/silviolleite/django-pwa/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/django-q/default.nix b/pkgs/development/python-modules/django-q/default.nix
index 7ce4d4b6b7d9c..99b8aec53a36d 100644
--- a/pkgs/development/python-modules/django-q/default.nix
+++ b/pkgs/development/python-modules/django-q/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, stdenv
-, arrow
-, blessed
-, buildPythonPackage
-, croniter
-, django
-, django-picklefield
-, django-redis
-, fetchFromGitHub
-, future
-, pkgs
-, poetry-core
-, pytest-django
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, redis
-, setuptools
+{
+  lib,
+  stdenv,
+  arrow,
+  blessed,
+  buildPythonPackage,
+  croniter,
+  django,
+  django-picklefield,
+  django-redis,
+  fetchFromGitHub,
+  future,
+  pkgs,
+  poetry-core,
+  pytest-django,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  redis,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -35,9 +36,7 @@ buildPythonPackage rec {
 
   # fixes empty version string
   # analog to https://github.com/NixOS/nixpkgs/pull/171200
-  patches = [
-    ./pep-621.patch
-  ];
+  patches = [ ./pep-621.patch ];
 
   nativeBuildInputs = [
     poetry-core
@@ -60,9 +59,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ django-redis.optional-dependencies.hiredis;
 
-  pythonImportsCheck = [
-    "django_q"
-  ];
+  pythonImportsCheck = [ "django_q" ];
 
   preCheck = ''
     ${pkgs.redis}/bin/redis-server &
@@ -82,7 +79,7 @@ buildPythonPackage rec {
   doCheck = !stdenv.isDarwin;
 
   meta = with lib; {
-    description = "A multiprocessing distributed task queue for Django";
+    description = "Multiprocessing distributed task queue for Django";
     homepage = "https://django-q.readthedocs.org";
     changelog = "https://github.com/Koed00/django-q/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/django-ranged-response/default.nix b/pkgs/development/python-modules/django-ranged-response/default.nix
index 35f4bb2a7e836..6391b3eb2091a 100644
--- a/pkgs/development/python-modules/django-ranged-response/default.nix
+++ b/pkgs/development/python-modules/django-ranged-response/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchPypi, buildPythonPackage, django }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  django,
+}:
 
 buildPythonPackage rec {
   pname = "django-ranged-response";
@@ -16,7 +21,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ django ];
 
   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";
+    description = "Modified FileResponse that returns `Content-Range` headers with the HTTP response, so browsers (read Safari 9+) that request the file, can stream the response properly";
     homepage = "https://github.com/wearespindle/django-ranged-fileresponse";
     license = licenses.mit;
     maintainers = with maintainers; [ mrmebelman ];
diff --git a/pkgs/development/python-modules/django-raster/default.nix b/pkgs/development/python-modules/django-raster/default.nix
index d5a01cd195dae..fc59c21893e79 100644
--- a/pkgs/development/python-modules/django-raster/default.nix
+++ b/pkgs/development/python-modules/django-raster/default.nix
@@ -1,6 +1,17 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k,
-  numpy, django-colorful, pillow, psycopg2,
-  pyparsing, django, celery, boto3, importlib-metadata
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  numpy,
+  django-colorful,
+  pillow,
+  psycopg2,
+  pyparsing,
+  django,
+  celery,
+  boto3,
+  importlib-metadata,
 }:
 
 buildPythonPackage rec {
@@ -18,8 +29,17 @@ buildPythonPackage rec {
   # Tests require a postgresql + postgis server
   doCheck = false;
 
-  propagatedBuildInputs = [ numpy django-colorful pillow psycopg2
-                            pyparsing django celery boto3 importlib-metadata ];
+  propagatedBuildInputs = [
+    numpy
+    django-colorful
+    pillow
+    psycopg2
+    pyparsing
+    django
+    celery
+    boto3
+    importlib-metadata
+  ];
 
   meta = with lib; {
     description = "Basic raster data integration for Django";
diff --git a/pkgs/development/python-modules/django-ratelimit/default.nix b/pkgs/development/python-modules/django-ratelimit/default.nix
new file mode 100644
index 0000000000000..ca0216a9de5c3
--- /dev/null
+++ b/pkgs/development/python-modules/django-ratelimit/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonPackage
+, django
+, django-redis
+, fetchFromGitHub
+, pymemcache
+, pythonOlder
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "django-ratelimit";
+  version = "4.1.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "jsocol";
+    repo = "django-ratelimit";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ZMtZSKOIIRSqH6eyC7bBeua7YLKyWW6NOXN/MDv9fy4=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    django
+    django-redis
+    pymemcache
+  ];
+
+  pythonImportsCheck = [
+    "django_ratelimit"
+  ];
+
+  checkPhase = ''
+    runHook preCheck
+
+    export DJANGO_SETTINGS_MODULE=test_settings
+    python -m django test django_ratelimit
+
+    runHook postCheck
+  '';
+
+
+  meta = with lib; {
+    description = "Cache-based rate-limiting for Django";
+    homepage = "https://github.com/jsocol/django-ratelimit";
+    changelog = "https://github.com/jsocol/django-ratelimit/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ derdennisop ];
+  };
+}
diff --git a/pkgs/development/python-modules/django-redis/default.nix b/pkgs/development/python-modules/django-redis/default.nix
index eeb845d095638..95996d0afa6a7 100644
--- a/pkgs/development/python-modules/django-redis/default.nix
+++ b/pkgs/development/python-modules/django-redis/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, fetchFromGitHub
-, pythonOlder
-, buildPythonPackage
-, setuptools
-
-# propagated
-, django
-, hiredis
-, lz4
-, msgpack
-, redis
-
-# testing
-, pkgs
-, pytest-django
-, pytest-mock
-, pytestCheckHook
+{
+  lib,
+  fetchFromGitHub,
+  pythonOlder,
+  buildPythonPackage,
+  setuptools,
+
+  # propagated
+  django,
+  hiredis,
+  lz4,
+  msgpack,
+  redis,
+
+  # testing
+  pkgs,
+  pytest-django,
+  pytest-mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
     sed -i '/-cov/d' setup.cfg
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     django
@@ -48,14 +47,10 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    hiredis = [
-      redis
-    ] ++ redis.optional-dependencies.hiredis;
+    hiredis = [ redis ] ++ redis.optional-dependencies.hiredis;
   };
 
-  pythonImportsCheck = [
-    "django_redis"
-  ];
+  pythonImportsCheck = [ "django_redis" ];
 
   DJANGO_SETTINGS_MODULE = "tests.settings.sqlite";
 
diff --git a/pkgs/development/python-modules/django-rest-auth/default.nix b/pkgs/development/python-modules/django-rest-auth/default.nix
index eb14a6a3c316e..3757f96c672b9 100644
--- a/pkgs/development/python-modules/django-rest-auth/default.nix
+++ b/pkgs/development/python-modules/django-rest-auth/default.nix
@@ -1,12 +1,13 @@
-{ lib
- , buildPythonPackage
-, fetchFromGitHub
-, django
-, django-allauth
-, djangorestframework
-, drf-jwt
-, responses
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  django-allauth,
+  djangorestframework,
+  drf-jwt,
+  responses,
+  six,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/django-rest-polymorphic/default.nix b/pkgs/development/python-modules/django-rest-polymorphic/default.nix
index 5cf6f84ad5546..8430161948225 100644
--- a/pkgs/development/python-modules/django-rest-polymorphic/default.nix
+++ b/pkgs/development/python-modules/django-rest-polymorphic/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, django-polymorphic
-, djangorestframework
-, pytest-django
-, pytest-mock
-, pytestCheckHook
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  django-polymorphic,
+  djangorestframework,
+  pytest-django,
+  pytest-mock,
+  pytestCheckHook,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,7 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "apirobot";
     repo = "django-rest-polymorphic";
-     # https://github.com/denisorehovsky/django-rest-polymorphic/issues/42
+    # https://github.com/denisorehovsky/django-rest-polymorphic/issues/42
     rev = "9d920eb91ef13144094426f9ebc0ca80247c0fe3";
     hash = "sha256-k7Cl2QYkaGOZaTo8v5Wg9Wqh8x0WC5i9Sggqj8eeECY=";
   };
diff --git a/pkgs/development/python-modules/django-rest-registration/default.nix b/pkgs/development/python-modules/django-rest-registration/default.nix
index 7c5f0b455c6dc..eb6fcafac1d04 100644
--- a/pkgs/development/python-modules/django-rest-registration/default.nix
+++ b/pkgs/development/python-modules/django-rest-registration/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, django
-, djangorestframework
-, fetchFromGitHub
-, pytest-django
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  django,
+  djangorestframework,
+  fetchFromGitHub,
+  pytest-django,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     pytest-django
   ];
 
-  pythonImportsCheck = [
-    "rest_registration"
-  ];
+  pythonImportsCheck = [ "rest_registration" ];
 
   disabledTests = [
     # This test fails on Python 3.10
diff --git a/pkgs/development/python-modules/django-reversion/default.nix b/pkgs/development/python-modules/django-reversion/default.nix
index 35d54194f07d4..4513056064aa4 100644
--- a/pkgs/development/python-modules/django-reversion/default.nix
+++ b/pkgs/development/python-modules/django-reversion/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, django
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  django,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -13,28 +14,22 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.7";
 
-src = fetchPypi {
+  src = fetchPypi {
     inherit pname version;
     hash = "sha256-wEfMmanxukqubbicOsJDR41t6Y7Ipgxwc/zIddicXNs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   # Tests assume the availability of a mysql/postgresql database
   doCheck = false;
 
-  pythonImportsCheck = [
-    "reversion"
-  ];
+  pythonImportsCheck = [ "reversion" ];
 
   meta = with lib; {
-    description = "An extension to the Django web framework that provides comprehensive version control facilities";
+    description = "Extension to the Django web framework that provides comprehensive version control facilities";
     homepage = "https://github.com/etianen/django-reversion";
     changelog = "https://github.com/etianen/django-reversion/blob/v${version}/CHANGELOG.rst";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/django-rosetta/default.nix b/pkgs/development/python-modules/django-rosetta/default.nix
index d9337081ba3e3..a2ae0c0b34aef 100644
--- a/pkgs/development/python-modules/django-rosetta/default.nix
+++ b/pkgs/development/python-modules/django-rosetta/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, django
-, fetchFromGitHub
-, polib
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  django,
+  fetchFromGitHub,
+  polib,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # require internet connection
   doCheck = false;
 
-  pythonImportsCheck = [
-    "rosetta"
-  ];
+  pythonImportsCheck = [ "rosetta" ];
 
   meta = with lib; {
     description = "Rosetta is a Django application that facilitates the translation process of your Django projects";
@@ -42,4 +41,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ derdennisop ];
   };
 }
-
diff --git a/pkgs/development/python-modules/django-rq/default.nix b/pkgs/development/python-modules/django-rq/default.nix
index 4d4a63aeb6245..3e37822ed5cc2 100644
--- a/pkgs/development/python-modules/django-rq/default.nix
+++ b/pkgs/development/python-modules/django-rq/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, isPy27
-, fetchFromGitHub
-, django
-, redis
-, rq
-, sentry-sdk
+{
+  lib,
+  buildPythonPackage,
+  isPy27,
+  fetchFromGitHub,
+  django,
+  redis,
+  rq,
+  sentry-sdk,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     sentry-sdk
   ];
 
-  pythonImportsCheck = [
-    "django_rq"
-  ];
+  pythonImportsCheck = [ "django_rq" ];
 
   doCheck = false; # require redis-server
 
diff --git a/pkgs/development/python-modules/django-scheduler/default.nix b/pkgs/development/python-modules/django-scheduler/default.nix
index d8db8c596173f..0635f69631a22 100644
--- a/pkgs/development/python-modules/django-scheduler/default.nix
+++ b/pkgs/development/python-modules/django-scheduler/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, django
-, fetchFromGitHub
-, icalendar
-, pytest
-, pytest-django
-, python
-, python-dateutil
-, pythonOlder
-, pytz
+{
+  lib,
+  buildPythonPackage,
+  django,
+  fetchFromGitHub,
+  icalendar,
+  pytest,
+  pytest-django,
+  python,
+  python-dateutil,
+  pythonOlder,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -38,12 +39,10 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "schedule"
-  ];
+  pythonImportsCheck = [ "schedule" ];
 
   meta = with lib; {
-    description = "A calendar app for Django";
+    description = "Calendar app for Django";
     homepage = "https://github.com/llazzaro/django-scheduler";
     changelog = "https://github.com/llazzaro/django-scheduler/releases/tag/${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/django-scim2/default.nix b/pkgs/development/python-modules/django-scim2/default.nix
index d4eab102d719c..2c9c2922f4812 100644
--- a/pkgs/development/python-modules/django-scim2/default.nix
+++ b/pkgs/development/python-modules/django-scim2/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# build-system
-, poetry-core
-
-# propagates
-, django
-, scim2-filter-parser
-
-# tests
-, mock
-, pytest-django
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  poetry-core,
+
+  # propagates
+  django,
+  scim2-filter-parser,
+
+  # tests
+  mock,
+  pytest-django,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -34,18 +35,14 @@ buildPythonPackage rec {
       --replace "poetry.masonry.api" "poetry.core.masonry.api"
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     django
     scim2-filter-parser
   ];
 
-  pythonImportsCheck = [
-    "django_scim"
-  ];
+  pythonImportsCheck = [ "django_scim" ];
 
   nativeCheckInputs = [
     mock
@@ -55,7 +52,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/15five/django-scim2/blob/${src.rev}/CHANGES.txt";
-    description = "A SCIM 2.0 Service Provider Implementation (for Django)";
+    description = "SCIM 2.0 Service Provider Implementation (for Django)";
     homepage = "https://github.com/15five/django-scim2";
     license = licenses.mit;
     maintainers = with maintainers; [ s1341 ];
diff --git a/pkgs/development/python-modules/django-scopes/default.nix b/pkgs/development/python-modules/django-scopes/default.nix
index df4cd3599fac5..108d95a815346 100644
--- a/pkgs/development/python-modules/django-scopes/default.nix
+++ b/pkgs/development/python-modules/django-scopes/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, pytestCheckHook
-, pytest-django
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  pytestCheckHook,
+  pytest-django,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-CtToztLVvSb91pMpPNL8RysQJzlRkeXuQbpvbkX3jfM=";
   };
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   nativeCheckInputs = [
     pytest-django
diff --git a/pkgs/development/python-modules/django-sekizai/default.nix b/pkgs/development/python-modules/django-sekizai/default.nix
index 5c040ee026bac..0cfe0fae0222c 100644
--- a/pkgs/development/python-modules/django-sekizai/default.nix
+++ b/pkgs/development/python-modules/django-sekizai/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, django-classy-tags
-, pytestCheckHook
-, pytest-django
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  django-classy-tags,
+  pytestCheckHook,
+  pytest-django,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     sha256 = "sha256-Kso2y64LXAzv7ZVlQW7EQjNXZ/sxRb/xHlhiL8ZTza0=";
   };
 
-  propagatedBuildInputs = [
-    django-classy-tags
-  ];
+  propagatedBuildInputs = [ django-classy-tags ];
 
   checkInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/django-sesame/default.nix b/pkgs/development/python-modules/django-sesame/default.nix
index a8953369304a4..5aad0ccdc321d 100644
--- a/pkgs/development/python-modules/django-sesame/default.nix
+++ b/pkgs/development/python-modules/django-sesame/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, django
-, fetchFromGitHub
-, poetry-core
-, python
-, pythonOlder
-, ua-parser
+{
+  lib,
+  buildPythonPackage,
+  django,
+  fetchFromGitHub,
+  poetry-core,
+  python,
+  pythonOlder,
+  ua-parser,
 }:
 
 buildPythonPackage rec {
@@ -22,18 +23,14 @@ buildPythonPackage rec {
     hash = "sha256-8jbYhD/PfPnutJZonmdrqLIQdXiUHF12w0M9tuyyDz0=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     django
     ua-parser
   ];
 
-  pythonImportsCheck = [
-    "sesame"
-  ];
+  pythonImportsCheck = [ "sesame" ];
 
   checkPhase = ''
     runHook preCheck
@@ -48,6 +45,5 @@ buildPythonPackage rec {
     homepage = "https://github.com/aaugustin/django-sesame";
     changelog = "https://github.com/aaugustin/django-sesame/blob/${version}/docs/changelog.rst";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/django-shortuuidfield/default.nix b/pkgs/development/python-modules/django-shortuuidfield/default.nix
index dd999963a1150..fe2580e205037 100644
--- a/pkgs/development/python-modules/django-shortuuidfield/default.nix
+++ b/pkgs/development/python-modules/django-shortuuidfield/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, django
-, fetchPypi
-, shortuuid
-, six
+{
+  lib,
+  buildPythonPackage,
+  django,
+  fetchPypi,
+  shortuuid,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "shortuuidfield"
-  ];
+  pythonImportsCheck = [ "shortuuidfield" ];
 
   meta = with lib; {
     description = "Short UUIDField for Django. Good for use in urls & file names";
diff --git a/pkgs/development/python-modules/django-silk/default.nix b/pkgs/development/python-modules/django-silk/default.nix
index 5cb38385284c8..796e07c93a3e6 100644
--- a/pkgs/development/python-modules/django-silk/default.nix
+++ b/pkgs/development/python-modules/django-silk/default.nix
@@ -1,26 +1,26 @@
-{ lib
-, autopep8
-, buildPythonPackage
-, django
-, factory-boy
-, fetchFromGitHub
-, fetchpatch
-, freezegun
-, gprof2dot
-, jinja2
-, mock
-, networkx
-, pillow
-, pydot
-, pygments
-, python
-, python-dateutil
-, pythonOlder
-, pytz
-, requests
-, setuptools-scm
-, simplejson
-, sqlparse
+{
+  lib,
+  autopep8,
+  buildPythonPackage,
+  django,
+  factory-boy,
+  fetchFromGitHub,
+  freezegun,
+  gprof2dot,
+  jinja2,
+  mock,
+  networkx,
+  pillow,
+  pydot,
+  pygments,
+  python,
+  python-dateutil,
+  pythonOlder,
+  pytz,
+  requests,
+  setuptools-scm,
+  simplejson,
+  sqlparse,
 }:
 
 buildPythonPackage rec {
@@ -47,13 +47,9 @@ buildPythonPackage rec {
       --replace 'use_scm_version=True' 'version="${version}"'
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    mock
-  ];
+  buildInputs = [ mock ];
 
   propagatedBuildInputs = [
     autopep8
@@ -76,9 +72,7 @@ buildPythonPackage rec {
     factory-boy
   ];
 
-  pythonImportsCheck = [
-    "silk"
-  ];
+  pythonImportsCheck = [ "silk" ];
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/django-simple-captcha/default.nix b/pkgs/development/python-modules/django-simple-captcha/default.nix
index 11c3e862804ad..2e6d9b8727f30 100644
--- a/pkgs/development/python-modules/django-simple-captcha/default.nix
+++ b/pkgs/development/python-modules/django-simple-captcha/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, testfixtures
-, django
-, django-ranged-response
-, pillow
-, withTTS ? true
-, flite
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  testfixtures,
+  django,
+  django-ranged-response,
+  pillow,
+  withTTS ? true,
+  flite,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-0YhRbTJvrdLVrQduuJZJ1VwCyrr+P9zCFUrBjp9tS5c=";
   };
 
-  nativeCheckInputs = [
-    testfixtures
-  ];
+  nativeCheckInputs = [ testfixtures ];
 
   checkPhase = ''
     cd testproject
@@ -40,6 +39,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/mbi/django-simple-captcha";
     changelog = "https://github.com/mbi/django-simple-captcha/blob/v${version}/CHANGES";
     license = licenses.mit;
-    maintainers = with maintainers; [ mrmebelman schmittlauch ];
+    maintainers = with maintainers; [
+      mrmebelman
+      schmittlauch
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/django-simple-history/default.nix b/pkgs/development/python-modules/django-simple-history/default.nix
index 4c31b8725763d..0179760be698e 100644
--- a/pkgs/development/python-modules/django-simple-history/default.nix
+++ b/pkgs/development/python-modules/django-simple-history/default.nix
@@ -1,16 +1,18 @@
-{ lib
-, buildPythonPackage
-, django
-, fetchFromGitHub
-, pytest-django
-, python
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  django,
+  fetchFromGitHub,
+  hatch-fancy-pypi-readme,
+  hatchling,
+  hatch-vcs,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "django-simple-history";
-  version = "3.5.0";
+  version = "3.7.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -19,24 +21,24 @@ buildPythonPackage rec {
     owner = "jazzband";
     repo = "django-simple-history";
     rev = "refs/tags/${version}";
-    hash = "sha256-BW/F+RBf1KvwGRY9IK00+n69Jtx/ndEuvpHSi8/odSE=";
+    hash = "sha256-bPdMdtiEDRvRD00ZBwUQkeCDKCx2SW65+FsbuMwVdK0=";
   };
 
   nativeBuildInputs = [
-    setuptools-scm
+    hatch-fancy-pypi-readme
+    hatchling
+    hatch-vcs
   ];
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   checkPhase = ''
+    runHook preCheck
     ${python.interpreter} runtests.py
+    runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "simple_history"
-  ];
+  pythonImportsCheck = [ "simple_history" ];
 
   meta = with lib; {
     description = "django-simple-history stores Django model state on every create/update/delete";
diff --git a/pkgs/development/python-modules/django-sites/default.nix b/pkgs/development/python-modules/django-sites/default.nix
index 52c78b8f5e3db..e83ab1239f453 100644
--- a/pkgs/development/python-modules/django-sites/default.nix
+++ b/pkgs/development/python-modules/django-sites/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, django-jinja
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  django-jinja,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     hash = "sha256-MQtQC+9DyS1ICXXovbqPpkKIQ5wpuJDgq3Lcd/1kORU=";
   };
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
-  nativeCheckInputs = [
-    django-jinja
-  ];
+  nativeCheckInputs = [ django-jinja ];
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/django-soft-delete/default.nix b/pkgs/development/python-modules/django-soft-delete/default.nix
new file mode 100644
index 0000000000000..05f2ebeb1c274
--- /dev/null
+++ b/pkgs/development/python-modules/django-soft-delete/default.nix
@@ -0,0 +1,31 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  django,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "django-soft-delete";
+  version = "1.0.13";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-RDwApUwG0jb/iAbDJgJD13XMU2WB1zd8J4UICxBBzh0=";
+  };
+
+  dependencies = [ django ];
+
+  build-system = [ setuptools ];
+
+  # No tests
+  doCheck = false;
+
+  meta = {
+    description = "Soft delete models, managers, queryset for Django";
+    homepage = "https://github.com/san4ezy/django_softdelete";
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/django-sr/default.nix b/pkgs/development/python-modules/django-sr/default.nix
deleted file mode 100644
index d14935d414bdf..0000000000000
--- a/pkgs/development/python-modules/django-sr/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi, django, nose }:
-
-buildPythonPackage rec {
-  pname = "django-sr";
-  version = "0.0.4";
-  format = "setuptools";
-
-  meta = {
-    description = "Django settings resolver";
-    homepage = "https://github.com/jespino/django-sr";
-    license = lib.licenses.bsd3;
-  };
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0d3yqppi1q3crcn9nxx58wzm4yw61d5m7435g6rb9wcamr9bi1im";
-  };
-
-  buildInputs = [ django nose ];
-  propagatedBuildInputs = [ django ];
-}
diff --git a/pkgs/development/python-modules/django-statici18n/default.nix b/pkgs/development/python-modules/django-statici18n/default.nix
index 8ce7bc0340a94..88f4994c91b6e 100644
--- a/pkgs/development/python-modules/django-statici18n/default.nix
+++ b/pkgs/development/python-modules/django-statici18n/default.nix
@@ -1,44 +1,40 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, django
-, django-appconf
+  # dependencies
+  django,
+  django-appconf,
 
-# tests
-, pytest-django
-, pytestCheckHook
+  # tests
+  pytest-django,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "django-statici18n";
-  version = "2.4.0";
+  version = "2.5.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "zyegfryed";
     repo = "django-statici18n";
-    # https://github.com/zyegfryed/django-statici18n/issues/59
-    rev = "9b83a8f0f2e625dd5f56d53cfe4e07aca9479ab6";
-    hash = "sha256-KrIlWmN7um9ad2avfANOza579bjYkxTo9F0UFpvLu3A=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-n6HqHcXvz2ihwN+gJr5P+/Yt4RpuOu2yAjo9fiNZB54=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     django
     django-appconf
   ];
 
-  pythonImportsCheck = [
-    "statici18n"
-  ];
+  pythonImportsCheck = [ "statici18n" ];
 
   env.DJANGO_SETTINGS_MODULE = "tests.test_project.project.settings";
 
@@ -51,6 +47,9 @@ buildPythonPackage rec {
     description = "Helper for generating Javascript catalog to static files";
     homepage = "https://github.com/zyegfryed/django-statici18n";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ greizgh schmittlauch ];
+    maintainers = with maintainers; [
+      greizgh
+      schmittlauch
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/django-storages/default.nix b/pkgs/development/python-modules/django-storages/default.nix
index b835a6fb0766b..f7524810f4a13 100644
--- a/pkgs/development/python-modules/django-storages/default.nix
+++ b/pkgs/development/python-modules/django-storages/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, azure-storage-blob
-, boto3
-, buildPythonPackage
-, cryptography
-, django
-, dropbox
-, fetchFromGitHub
-, google-cloud-storage
-, libcloud
-, moto
-, paramiko
-, pytestCheckHook
-, pythonOlder
-, rsa
-, setuptools
+{
+  lib,
+  azure-storage-blob,
+  boto3,
+  buildPythonPackage,
+  cryptography,
+  django,
+  dropbox,
+  fetchFromGitHub,
+  google-cloud-storage,
+  libcloud,
+  moto,
+  paramiko,
+  pytestCheckHook,
+  pythonOlder,
+  rsa,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -30,36 +31,18 @@ buildPythonPackage rec {
     hash = "sha256-V0uFZvnBi0B31b/j/u3Co6dd9XcdVefiSkl3XmCTJG4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   passthru.optional-dependencies = {
-    azure = [
-      azure-storage-blob
-    ];
-    boto3 = [
-      boto3
-    ];
-    dropbox = [
-      dropbox
-    ];
-    google = [
-      google-cloud-storage
-    ];
-    libcloud = [
-      libcloud
-    ];
-    s3 = [
-      boto3
-    ];
-    sftp = [
-      paramiko
-    ];
+    azure = [ azure-storage-blob ];
+    boto3 = [ boto3 ];
+    dropbox = [ dropbox ];
+    google = [ google-cloud-storage ];
+    libcloud = [ libcloud ];
+    s3 = [ boto3 ];
+    sftp = [ paramiko ];
   };
 
   nativeCheckInputs = [
@@ -69,9 +52,7 @@ buildPythonPackage rec {
     rsa
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "storages"
-  ];
+  pythonImportsCheck = [ "storages" ];
 
   env.DJANGO_SETTINGS_MODULE = "tests.settings";
 
diff --git a/pkgs/development/python-modules/django-stubs-ext/default.nix b/pkgs/development/python-modules/django-stubs-ext/default.nix
index e863e3ebc47bd..1176f2ba09c79 100644
--- a/pkgs/development/python-modules/django-stubs-ext/default.nix
+++ b/pkgs/development/python-modules/django-stubs-ext/default.nix
@@ -1,41 +1,37 @@
-{ lib
-, buildPythonPackage
-, django
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  django,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "django-stubs-ext";
-  version = "4.2.7";
+  version = "5.0.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-UZNCrAhJzaFVl0bJpWPwP/mfY2sOvnwUt16BagDf3cM=";
+    pname = "django_stubs_ext";
+    inherit version;
+    hash = "sha256-QJxiWF1/mWzvXHYObifqP/KflhyUN0fmdRnIN0IsrTI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     django
     typing-extensions
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "django_stubs_ext"
-  ];
+  pythonImportsCheck = [ "django_stubs_ext" ];
 
   meta = with lib; {
     description = "Extensions and monkey-patching for django-stubs";
diff --git a/pkgs/development/python-modules/django-stubs/default.nix b/pkgs/development/python-modules/django-stubs/default.nix
index a0b8d8128a769..72adac752285a 100644
--- a/pkgs/development/python-modules/django-stubs/default.nix
+++ b/pkgs/development/python-modules/django-stubs/default.nix
@@ -1,33 +1,33 @@
-{ lib
-, buildPythonPackage
-, django
-, django-stubs-ext
-, fetchPypi
-, mypy
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, tomli
-, types-pytz
-, types-pyyaml
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  django,
+  django-stubs-ext,
+  fetchPypi,
+  mypy,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  tomli,
+  types-pytz,
+  types-pyyaml,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "django-stubs";
-  version = "4.2.7";
+  version = "5.0.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-jM0v9O5a3yK547expRbS4cIZHp2U5nLDXMK8PdYeD2s=";
+    pname = "django_stubs";
+    inherit version;
+    hash = "sha256-I2vFYG5WB8uWj5K2SEcfntqkYad0vAE7+ea/+HMPa98=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     django
@@ -35,23 +35,17 @@ buildPythonPackage rec {
     types-pytz
     types-pyyaml
     typing-extensions
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   passthru.optional-dependencies = {
-    compatible-mypy = [
-      mypy
-    ];
+    compatible-mypy = [ mypy ];
   };
 
   nativeCheckInputs = [
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "django-stubs"
-  ];
+  pythonImportsCheck = [ "django-stubs" ];
 
   meta = with lib; {
     description = "PEP-484 stubs for Django";
diff --git a/pkgs/development/python-modules/django-tables2/default.nix b/pkgs/development/python-modules/django-tables2/default.nix
index a6a873bee00ef..cb1f2307d527e 100644
--- a/pkgs/development/python-modules/django-tables2/default.nix
+++ b/pkgs/development/python-modules/django-tables2/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, django
-, tablib
+  # dependencies
+  django,
+  tablib,
 
-# tests
-, lxml
-, openpyxl
-, psycopg2
-, pytz
-, pyyaml
-, pytest-django
-, pytestCheckHook
+  # tests
+  lxml,
+  openpyxl,
+  psycopg2,
+  pytz,
+  pyyaml,
+  pytest-django,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -34,20 +35,12 @@ buildPythonPackage rec {
     hash = "sha256-VB7xmcBncTUYllzKS4o7G7u+KoivMiiEQGZ4x+Rnces=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   passthru.optional-dependencies = {
-    tablib = [
-      tablib
-    ]
-    ++ tablib.optional-dependencies.xls
-    ++ tablib.optional-dependencies.yaml;
+    tablib = [ tablib ] ++ tablib.optional-dependencies.xls ++ tablib.optional-dependencies.yaml;
   };
 
   env.DJANGO_SETTINGS_MODULE = "tests.app.settings";
diff --git a/pkgs/development/python-modules/django-tagging/default.nix b/pkgs/development/python-modules/django-tagging/default.nix
index ba62d65825e37..405e7c8069745 100644
--- a/pkgs/development/python-modules/django-tagging/default.nix
+++ b/pkgs/development/python-modules/django-tagging/default.nix
@@ -1,4 +1,8 @@
-{ buildPythonPackage, fetchPypi, django }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  django,
+}:
 
 buildPythonPackage rec {
   pname = "django-tagging";
@@ -16,7 +20,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ django ];
 
   meta = {
-    description = "A generic tagging application for Django projects";
+    description = "Generic tagging application for Django projects";
     homepage = "https://github.com/Fantomas42/django-tagging";
   };
 }
diff --git a/pkgs/development/python-modules/django-taggit/default.nix b/pkgs/development/python-modules/django-taggit/default.nix
index eb1f4a994e12e..20f65e36f4657 100644
--- a/pkgs/development/python-modules/django-taggit/default.nix
+++ b/pkgs/development/python-modules/django-taggit/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, django
-, djangorestframework
-, python
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  django,
+  djangorestframework,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -19,17 +20,11 @@ buildPythonPackage rec {
     hash = "sha256-7c19seDzXDBOCCovYx3awuFu9SlgKVJOt5KvdDDKtMw=";
   };
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
-  pythonImportsCheck = [
-    "taggit"
-  ];
+  pythonImportsCheck = [ "taggit" ];
 
-  nativeCheckInputs = [
-    djangorestframework
-  ];
+  nativeCheckInputs = [ djangorestframework ];
 
   checkPhase = ''
     # prove we're running tests against installed package, not build dir
diff --git a/pkgs/development/python-modules/django-timezone-field/default.nix b/pkgs/development/python-modules/django-timezone-field/default.nix
index cfca863be096c..c111c4aff6d4a 100644
--- a/pkgs/development/python-modules/django-timezone-field/default.nix
+++ b/pkgs/development/python-modules/django-timezone-field/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, django
-, djangorestframework
-, pytz
-, pytest
-, pytest-lazy-fixture
-, python
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  django,
+  djangorestframework,
+  pytz,
+  pytest,
+  pytest-lazy-fixture,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-FAYO8OEE/h4rsbC4Oc57ylWV7TqQ6DOd6/2M+mb/AsM=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     django
@@ -34,9 +33,7 @@ buildPythonPackage rec {
     pytz
   ];
 
-  pythonImportsCheck = [
-    "timezone_field"
-  ];
+  pythonImportsCheck = [ "timezone_field" ];
 
   # Uses pytest.lazy_fixture directly which is broken in pytest-lazy-fixture
   # https://github.com/TvoroG/pytest-lazy-fixture/issues/22
diff --git a/pkgs/development/python-modules/django-treebeard/default.nix b/pkgs/development/python-modules/django-treebeard/default.nix
index 6b26ece7dd50e..fa687c99549f5 100644
--- a/pkgs/development/python-modules/django-treebeard/default.nix
+++ b/pkgs/development/python-modules/django-treebeard/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, django
-, fetchPypi
-, pytest-django
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  django,
+  fetchPypi,
+  pytest-django,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,18 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-hG5GKQS0NxVfduBJB7pOSEgHFoVfiLiY30Eivc+9bpg=";
   };
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   nativeCheckInputs = [
     pytest-django
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "treebeard"
-  ];
+  pythonImportsCheck = [ "treebeard" ];
 
   meta = with lib; {
     description = "Efficient tree implementations for Django";
diff --git a/pkgs/development/python-modules/django-two-factor-auth/default.nix b/pkgs/development/python-modules/django-two-factor-auth/default.nix
index dfb726a55b016..718d2206700b4 100644
--- a/pkgs/development/python-modules/django-two-factor-auth/default.nix
+++ b/pkgs/development/python-modules/django-two-factor-auth/default.nix
@@ -1,18 +1,18 @@
-{ lib
-, buildPythonPackage
-, django
-, django-formtools
-, django-otp
-, django-phonenumber-field
-, fetchFromGitHub
-, phonenumbers
-, pydantic
-, pythonOlder
-, pythonRelaxDepsHook
-, qrcode
-, setuptools-scm
-, twilio
-, webauthn
+{
+  lib,
+  buildPythonPackage,
+  django,
+  django-formtools,
+  django-otp,
+  django-phonenumber-field,
+  fetchFromGitHub,
+  phonenumbers,
+  pydantic,
+  pythonOlder,
+  qrcode,
+  setuptools-scm,
+  twilio,
+  webauthn,
 }:
 
 buildPythonPackage rec {
@@ -30,13 +30,10 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools-scm
   ];
 
-  pythonRelaxDeps = [
-    "django-phonenumber-field"
-  ];
+  pythonRelaxDeps = [ "django-phonenumber-field" ];
 
   propagatedBuildInputs = [
     django
@@ -47,12 +44,8 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    call = [
-      twilio
-    ];
-    sms = [
-      twilio
-    ];
+    call = [ twilio ];
+    sms = [ twilio ];
     webauthn = [
       pydantic
       webauthn
@@ -60,9 +53,7 @@ buildPythonPackage rec {
     # yubikey = [
     #   django-otp-yubikey
     # ];
-    phonenumbers = [
-      phonenumbers
-    ];
+    phonenumbers = [ phonenumbers ];
     # phonenumberslite = [
     #   phonenumberslite
     # ];
@@ -71,9 +62,7 @@ buildPythonPackage rec {
   # Tests require internet connection
   doCheck = false;
 
-  pythonImportsCheck = [
-    "two_factor"
-  ];
+  pythonImportsCheck = [ "two_factor" ];
 
   meta = with lib; {
     description = "Complete Two-Factor Authentication for Django";
diff --git a/pkgs/development/python-modules/django-types/default.nix b/pkgs/development/python-modules/django-types/default.nix
index 908fb1bd0ed1f..523e155a68c5c 100644
--- a/pkgs/development/python-modules/django-types/default.nix
+++ b/pkgs/development/python-modules/django-types/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, poetry-core
-, types-psycopg2
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  types-psycopg2,
 }:
 
 buildPythonPackage rec {
@@ -16,18 +17,14 @@ buildPythonPackage rec {
     hash = "sha256-WueYhhLPb7w1ewGLvDs6h4tl4EJ1zEbg011mpwja/xI=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    types-psycopg2
-  ];
+  propagatedBuildInputs = [ types-psycopg2 ];
 
   meta = with lib; {
     description = "Type stubs for Django";
     homepage = "https://github.com/sbdchd/django-types";
     license = licenses.mit;
-    maintainers = with maintainers; [ thubrecht ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/django-versatileimagefield/default.nix b/pkgs/development/python-modules/django-versatileimagefield/default.nix
index 89fd6e85c954c..3545f011407c2 100644
--- a/pkgs/development/python-modules/django-versatileimagefield/default.nix
+++ b/pkgs/development/python-modules/django-versatileimagefield/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, django
-, pillow
-, python-magic
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  django,
+  pillow,
+  python-magic,
 }:
 
 buildPythonPackage rec {
@@ -15,7 +16,10 @@ buildPythonPackage rec {
     inherit pname version;
     hash = "sha256-M5DiAEgJjol78pmwNgdj0QzQiWZbeu+OupAO7Lrq0Ng=";
   };
-  propagatedBuildInputs = [ pillow python-magic ];
+  propagatedBuildInputs = [
+    pillow
+    python-magic
+  ];
 
   nativeCheckInputs = [ django ];
 
@@ -31,4 +35,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ mmai ];
   };
 }
-
diff --git a/pkgs/development/python-modules/django-vite/default.nix b/pkgs/development/python-modules/django-vite/default.nix
index b3527b9176b85..236d1f60935a2 100644
--- a/pkgs/development/python-modules/django-vite/default.nix
+++ b/pkgs/development/python-modules/django-vite/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, django
-, pythonOlder
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  django,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-rIT4WA45v353vSV56fBOa0euiuwnXWmhbxniAWPAkMo=";
   };
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   # Package doesn’t have any tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "django_vite"
-  ];
+  pythonImportsCheck = [ "django_vite" ];
 
   meta = with lib; {
     description = "Integration of ViteJS in a Django project";
diff --git a/pkgs/development/python-modules/django-webpush/default.nix b/pkgs/development/python-modules/django-webpush/default.nix
index 5f04dccb1ca64..0c9b0ac657878 100644
--- a/pkgs/development/python-modules/django-webpush/default.nix
+++ b/pkgs/development/python-modules/django-webpush/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, django
-, fetchFromGitHub
-, pythonOlder
-, pythonRelaxDepsHook
-, pywebpush
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  django,
+  fetchFromGitHub,
+  pythonOlder,
+  pywebpush,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -22,12 +22,9 @@ buildPythonPackage rec {
     hash = "sha256-Mwp53apdPpBcn7VfDbyDlvLAVAG65UUBhT0w9OKjKbU=";
   };
 
-  pythonRelaxDeps = [
-    "pywebpush"
-  ];
+  pythonRelaxDeps = [ "pywebpush" ];
 
   build-system = [
-    pythonRelaxDepsHook
     setuptools-scm
   ];
 
@@ -39,9 +36,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "webpush"
-  ];
+  pythonImportsCheck = [ "webpush" ];
 
   meta = with lib; {
     description = "Module for integrating and sending Web Push Notification in Django Application";
diff --git a/pkgs/development/python-modules/django-widget-tweaks/default.nix b/pkgs/development/python-modules/django-widget-tweaks/default.nix
index 547df7c7fdfbd..36fff55d31ce3 100644
--- a/pkgs/development/python-modules/django-widget-tweaks/default.nix
+++ b/pkgs/development/python-modules/django-widget-tweaks/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools-scm
-, django
-, python
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools-scm,
+  django,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +22,9 @@ buildPythonPackage rec {
     hash = "sha256-/3UIsg75X3R9YGv9cEcoPw3IN2vkhUb+HCy68813d2E=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   checkPhase = ''
     ${python.interpreter} -m django test --settings=tests.settings
diff --git a/pkgs/development/python-modules/django/3.nix b/pkgs/development/python-modules/django/3.nix
index af4f123ee01e2..b4d478e3d8bd4 100644
--- a/pkgs/development/python-modules/django/3.nix
+++ b/pkgs/development/python-modules/django/3.nix
@@ -1,16 +1,17 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, substituteAll
-, geos_3_9
-, gdal
-, asgiref
-, pytz
-, sqlparse
-, tzdata
-, pythonOlder
-, withGdal ? false
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  substituteAll,
+  geos_3_9,
+  gdal,
+  asgiref,
+  pytz,
+  sqlparse,
+  tzdata,
+  pythonOlder,
+  withGdal ? false,
 }:
 
 buildPythonPackage rec {
@@ -25,13 +26,14 @@ buildPythonPackage rec {
     hash = "sha256-fKOKeGVK7nI3hZTWPlFjbAS44oV09VBd/2MIlbVHJ3c=";
   };
 
-  patches = [
-    (substituteAll {
-      src = ./django_3_set_zoneinfo_dir.patch;
-      zoneinfo = tzdata + "/share/zoneinfo";
-    })
-  ] ++ lib.optional withGdal
-    (substituteAll {
+  patches =
+    [
+      (substituteAll {
+        src = ./django_3_set_zoneinfo_dir.patch;
+        zoneinfo = tzdata + "/share/zoneinfo";
+      })
+    ]
+    ++ lib.optional withGdal (substituteAll {
       src = ./django_3_set_geos_gdal_lib.patch;
       inherit geos_3_9;
       inherit gdal;
@@ -50,9 +52,12 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "django" ];
 
   meta = with lib; {
-    description = "A high-level Python Web framework";
+    description = "High-level Python Web framework";
     homepage = "https://www.djangoproject.com/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ georgewhewell ];
+    knownVulnerabilities = [
+      "Support for Django 3.2 ended on 2024-04-01, see https://www.djangoproject.com/download/#supported-versions."
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/django/4.nix b/pkgs/development/python-modules/django/4.nix
index bc1fcbdfe9c8d..2bc86f7579cce 100644
--- a/pkgs/development/python-modules/django/4.nix
+++ b/pkgs/development/python-modules/django/4.nix
@@ -1,98 +1,93 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, fetchpatch2
-, pythonAtLeast
-, pythonOlder
-, substituteAll
-
-# build
-, setuptools
-
-# patched in
-, geos
-, gdal
-, withGdal ? false
-
-# propagates
-, asgiref
-, sqlparse
-
-# extras
-, argon2-cffi
-, bcrypt
-
-# tests
-, aiosmtpd
-, docutils
-, geoip2
-, jinja2
-, numpy
-, pillow
-, pylibmc
-, pymemcache
-, python
-, pywatchman
-, pyyaml
-, pytz
-, redis
-, selenium
-, tblib
-, tzdata
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  pythonOlder,
+  substituteAll,
+
+  # build
+  setuptools,
+
+  # patched in
+  geos,
+  gdal,
+  withGdal ? false,
+
+  # propagates
+  asgiref,
+  sqlparse,
+
+  # extras
+  argon2-cffi,
+  bcrypt,
+
+  # tests
+  aiosmtpd,
+  docutils,
+  geoip2,
+  jinja2,
+  numpy,
+  pillow,
+  pylibmc,
+  pymemcache,
+  python,
+  pywatchman,
+  pyyaml,
+  pytz,
+  redis,
+  selenium,
+  tblib,
+  tzdata,
 }:
 
 buildPythonPackage rec {
   pname = "django";
-  version = "4.2.11";
+  version = "4.2.12";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    pname = "Django";
-    inherit version;
-    hash = "sha256-bm/z2y2N0MmGtO7IVUyOT5GbXB/2KltDkMF6/y7W5cQ=";
+  src = fetchFromGitHub {
+    owner = "django";
+    repo = "django";
+    rev = "refs/tags/${version}";
+    hash = "sha256-n6esWUpZpCP4J4bNckNKJ9E61qFjTPS7XF+WgxNS2JE=";
   };
 
-  patches = [
-    (substituteAll {
-      src = ./django_4_set_zoneinfo_dir.patch;
-      zoneinfo = tzdata + "/share/zoneinfo";
-    })
-    # make sure the tests don't remove packages from our pythonpath
-    # and disable failing tests
-    ./django_4_tests.patch
-
-    (fetchpatch2 {
-      # https://github.com/django/django/pull/17979
-      name = "django-mime-utf8-surrogates.patch";
-      url = "https://github.com/django/django/commit/0d3ddcaf2c74638a32781f361d467af572ced95f.patch";
-      hash = "sha256-AoIFvehBsXIrzIlCsqOZ++RqtDFl/H+zXqA25OMQr7g=";
-    })
-
-  ] ++ lib.optionals withGdal [
-    (substituteAll {
-      src = ./django_4_set_geos_gdal_lib.patch;
-      geos = geos;
-      gdal = gdal;
-      extension = stdenv.hostPlatform.extensions.sharedLibrary;
-    })
-  ];
+  patches =
+    [
+      (substituteAll {
+        src = ./django_4_set_zoneinfo_dir.patch;
+        zoneinfo = tzdata + "/share/zoneinfo";
+      })
+      # make sure the tests don't remove packages from our pythonpath
+      # and disable failing tests
+      ./django_4_tests.patch
+    ]
+    ++ lib.optionals withGdal [
+      (substituteAll {
+        src = ./django_4_set_geos_gdal_lib.patch;
+        geos = geos;
+        gdal = gdal;
+        extension = stdenv.hostPlatform.extensions.sharedLibrary;
+      })
+    ];
 
-  postPatch = ''
-    substituteInPlace tests/utils_tests/test_autoreload.py \
-      --replace "/usr/bin/python" "${python.interpreter}"
-  '' + lib.optionalString (pythonAtLeast "3.12" && stdenv.hostPlatform.system == "aarch64-linux") ''
-    # Test regression after xz was reverted from 5.6.0 to 5.4.6
-    # https://hydra.nixos.org/build/254630990
-    substituteInPlace tests/view_tests/tests/test_debug.py \
-      --replace-fail "test_files" "dont_test_files"
-  '';
+  postPatch =
+    ''
+      substituteInPlace tests/utils_tests/test_autoreload.py \
+        --replace "/usr/bin/python" "${python.interpreter}"
+    ''
+    + lib.optionalString (pythonAtLeast "3.12" && stdenv.hostPlatform.system == "aarch64-linux") ''
+      # Test regression after xz was reverted from 5.6.0 to 5.4.6
+      # https://hydra.nixos.org/build/254630990
+      substituteInPlace tests/view_tests/tests/test_debug.py \
+        --replace-fail "test_files" "dont_test_files"
+    '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     asgiref
@@ -100,12 +95,8 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    argon2 = [
-      argon2-cffi
-    ];
-    bcrypt = [
-      bcrypt
-    ];
+    argon2 = [ argon2-cffi ];
+    bcrypt = [ bcrypt ];
   };
 
   nativeCheckInputs = [
@@ -151,7 +142,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://docs.djangoproject.com/en/${lib.versions.majorMinor version}/releases/${version}/";
-    description = "A high-level Python Web framework that encourages rapid development and clean, pragmatic design.";
+    description = "High-level Python Web framework that encourages rapid development and clean, pragmatic design";
     mainProgram = "django-admin";
     homepage = "https://www.djangoproject.com";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/django/5.nix b/pkgs/development/python-modules/django/5.nix
index fc4ba20245fce..6bb8432f149d6 100644
--- a/pkgs/development/python-modules/django/5.nix
+++ b/pkgs/development/python-modules/django/5.nix
@@ -1,99 +1,94 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, fetchpatch2
-, pythonAtLeast
-, pythonOlder
-, substituteAll
-
-# build-system
-, setuptools
-
-# patched in
-, geos
-, gdal
-, withGdal ? false
-
-# dependencies
-, asgiref
-, sqlparse
-
-# optional-dependencies
-, argon2-cffi
-, bcrypt
-
-# tests
-, aiosmtpd
-, docutils
-, geoip2
-, jinja2
-, numpy
-, pillow
-, pylibmc
-, pymemcache
-, python
-, pywatchman
-, pyyaml
-, pytz
-, redis
-, selenium
-, tblib
-, tzdata
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  pythonOlder,
+  substituteAll,
+
+  # build-system
+  setuptools,
+
+  # patched in
+  geos,
+  gdal,
+  withGdal ? false,
+
+  # dependencies
+  asgiref,
+  sqlparse,
+
+  # optional-dependencies
+  argon2-cffi,
+  bcrypt,
+
+  # tests
+  aiosmtpd,
+  docutils,
+  geoip2,
+  jinja2,
+  numpy,
+  pillow,
+  pylibmc,
+  pymemcache,
+  python,
+  pywatchman,
+  pyyaml,
+  pytz,
+  redis,
+  selenium,
+  tblib,
+  tzdata,
 }:
 
 buildPythonPackage rec {
   pname = "django";
-  version = "5.0.4";
+  version = "5.0.5";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
 
-  src = fetchPypi {
-    pname = "Django";
-    inherit version;
-    hash = "sha256-S9AajIMLt3qKOw59iyW4h+U2rReoG6Lc5UdhNcczEr0=";
+  src = fetchFromGitHub {
+    owner = "django";
+    repo = "django";
+    rev = "refs/tags/${version}";
+    hash = "sha256-0/AbPmTl38E9BpHVKs0r79fISjEa1d4XO/se1pA7zxg=";
   };
 
-  patches = [
-    (substituteAll {
-      src = ./django_5_set_zoneinfo_dir.patch;
-      zoneinfo = tzdata + "/share/zoneinfo";
-    })
-    # prevent tests from messing with our pythonpath
-    ./django_5_tests_pythonpath.patch
-    # disable test that excpects timezone issues
-    ./django_5_disable_failing_tests.patch
-
-    (fetchpatch2 {
-      # https://github.com/django/django/pull/17979
-      name = "django-mime-utf8-surrogates.patch";
-      url = "https://github.com/django/django/commit/b231bcd19e57267ce1fc21d42d46f0b65fdcfcf8.patch";
-      hash = "sha256-HhmRwi24VkoPoh+NygAThCoMywoMwrLijU4ZsDfVU34=";
-    })
-
-  ] ++ lib.optionals withGdal [
-    (substituteAll {
-      src = ./django_5_set_geos_gdal_lib.patch;
-      geos = geos;
-      gdal = gdal;
-      extension = stdenv.hostPlatform.extensions.sharedLibrary;
-    })
-  ];
+  patches =
+    [
+      (substituteAll {
+        src = ./django_5_set_zoneinfo_dir.patch;
+        zoneinfo = tzdata + "/share/zoneinfo";
+      })
+      # prevent tests from messing with our pythonpath
+      ./django_5_tests_pythonpath.patch
+      # disable test that excpects timezone issues
+      ./django_5_disable_failing_tests.patch
+    ]
+    ++ lib.optionals withGdal [
+      (substituteAll {
+        src = ./django_5_set_geos_gdal_lib.patch;
+        geos = geos;
+        gdal = gdal;
+        extension = stdenv.hostPlatform.extensions.sharedLibrary;
+      })
+    ];
 
-  postPatch = ''
-    substituteInPlace tests/utils_tests/test_autoreload.py \
-      --replace "/usr/bin/python" "${python.interpreter}"
-  '' + lib.optionalString (pythonAtLeast "3.12" && stdenv.hostPlatform.system == "aarch64-linux") ''
-    # Test regression after xz was reverted from 5.6.0 to 5.4.6
-    # https://hydra.nixos.org/build/254532197
-    substituteInPlace tests/view_tests/tests/test_debug.py \
-      --replace-fail "test_files" "dont_test_files"
-  '';
+  postPatch =
+    ''
+      substituteInPlace tests/utils_tests/test_autoreload.py \
+        --replace "/usr/bin/python" "${python.interpreter}"
+    ''
+    + lib.optionalString (pythonAtLeast "3.12" && stdenv.hostPlatform.system == "aarch64-linux") ''
+      # Test regression after xz was reverted from 5.6.0 to 5.4.6
+      # https://hydra.nixos.org/build/254532197
+      substituteInPlace tests/view_tests/tests/test_debug.py \
+        --replace-fail "test_files" "dont_test_files"
+    '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     asgiref
@@ -101,12 +96,8 @@ buildPythonPackage rec {
   ];
 
   optional-dependencies = {
-    argon2 = [
-      argon2-cffi
-    ];
-    bcrypt = [
-      bcrypt
-    ];
+    argon2 = [ argon2-cffi ];
+    bcrypt = [ bcrypt ];
   };
 
   nativeCheckInputs = [
@@ -152,7 +143,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://docs.djangoproject.com/en/${lib.versions.majorMinor version}/releases/${version}/";
-    description = "A high-level Python Web framework that encourages rapid development and clean, pragmatic design.";
+    description = "High-level Python Web framework that encourages rapid development and clean, pragmatic design";
     homepage = "https://www.djangoproject.com";
     license = licenses.bsd3;
     maintainers = with maintainers; [ hexa ];
diff --git a/pkgs/development/python-modules/djangoql/default.nix b/pkgs/development/python-modules/djangoql/default.nix
index 52316ee4444ec..198dea2ec53b5 100644
--- a/pkgs/development/python-modules/djangoql/default.nix
+++ b/pkgs/development/python-modules/djangoql/default.nix
@@ -1,5 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, python
-, django, ply }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  django,
+  ply,
+}:
 
 buildPythonPackage rec {
   pname = "djangoql";
diff --git a/pkgs/development/python-modules/djangorestframework-camel-case/default.nix b/pkgs/development/python-modules/djangorestframework-camel-case/default.nix
index c9bfc512b7386..3e036dfe98a92 100644
--- a/pkgs/development/python-modules/djangorestframework-camel-case/default.nix
+++ b/pkgs/development/python-modules/djangorestframework-camel-case/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, djangorestframework
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  djangorestframework,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -15,13 +16,9 @@ buildPythonPackage rec {
     hash = "sha256-za51hGZIq7ZYXHRwY5odL7Bk3EX46LYqqlC+fxp6YfQ=";
   };
 
-  propagatedBuildInputs = [
-    djangorestframework
-  ];
+  propagatedBuildInputs = [ djangorestframework ];
 
-  nativeCheckInputs = [
-    six
-  ];
+  nativeCheckInputs = [ six ];
 
   # tests are only on GitHub but there are no tags
   # https://github.com/vbabiy/djangorestframework-camel-case/issues/116
diff --git a/pkgs/development/python-modules/djangorestframework-dataclasses/default.nix b/pkgs/development/python-modules/djangorestframework-dataclasses/default.nix
index 69dc84e0c1993..51c169ab929cb 100644
--- a/pkgs/development/python-modules/djangorestframework-dataclasses/default.nix
+++ b/pkgs/development/python-modules/djangorestframework-dataclasses/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, djangorestframework
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  djangorestframework,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,20 +18,16 @@ buildPythonPackage rec {
     hash = "sha256-12EdSaGpsX0qDXgJ2QWYj6qAUbsrITQjWowk+gJFwwY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   postPatch = ''
     patchShebangs manage.py
   '';
 
-  propagatedBuildInputs = [
-    djangorestframework
-  ];
+  propagatedBuildInputs = [ djangorestframework ];
 
   checkPhase = ''
-   ./manage.py test
+    ./manage.py test
   '';
 
   pythonImportsCheck = [ "rest_framework_dataclasses" ];
diff --git a/pkgs/development/python-modules/djangorestframework-guardian/default.nix b/pkgs/development/python-modules/djangorestframework-guardian/default.nix
index 4e8a941d411f1..d04cd24f54f9b 100644
--- a/pkgs/development/python-modules/djangorestframework-guardian/default.nix
+++ b/pkgs/development/python-modules/djangorestframework-guardian/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, django-guardian
-, djangorestframework
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  django-guardian,
+  djangorestframework,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/djangorestframework-guardian2/default.nix b/pkgs/development/python-modules/djangorestframework-guardian2/default.nix
index d2e7ea08af8ae..4356d82262351 100644
--- a/pkgs/development/python-modules/djangorestframework-guardian2/default.nix
+++ b/pkgs/development/python-modules/djangorestframework-guardian2/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django-guardian
-, djangorestframework
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django-guardian,
+  djangorestframework,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/djangorestframework-recursive/default.nix b/pkgs/development/python-modules/djangorestframework-recursive/default.nix
index e51fa173a8036..909a1d167d296 100644
--- a/pkgs/development/python-modules/djangorestframework-recursive/default.nix
+++ b/pkgs/development/python-modules/djangorestframework-recursive/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, django
-, djangorestframework
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  django,
+  djangorestframework,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
   # incompatible with newer django versions
   doCheck = false;
 
-  pythonImportsCheck = [
-    "rest_framework_recursive"
-  ];
+  pythonImportsCheck = [ "rest_framework_recursive" ];
 
   meta = with lib; {
     description = " Recursive Serialization for Django REST framework ";
diff --git a/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix b/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix
index 043731f0054c4..abf6c29ed81b2 100644
--- a/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix
+++ b/pkgs/development/python-modules/djangorestframework-simplejwt/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, django
-, djangorestframework
-, fetchPypi
-, pyjwt
-, python-jose
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  django,
+  djangorestframework,
+  fetchPypi,
+  pyjwt,
+  python-jose,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-bEvTdTdEC8Q5Vk6/fWCF50xUEUhRlwc/UI69+jS8n64=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     django
@@ -34,20 +33,14 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    python-jose = [
-      python-jose
-    ];
-    crypto = [
-      cryptography
-    ];
+    python-jose = [ python-jose ];
+    crypto = [ cryptography ];
   };
 
   # Test raises django.core.exceptions.ImproperlyConfigured
   doCheck = false;
 
-  pythonImportsCheck = [
-    "rest_framework_simplejwt"
-  ];
+  pythonImportsCheck = [ "rest_framework_simplejwt" ];
 
   meta = with lib; {
     description = "JSON Web Token authentication plugin for Django REST Framework";
diff --git a/pkgs/development/python-modules/djangorestframework-stubs/default.nix b/pkgs/development/python-modules/djangorestframework-stubs/default.nix
index 6cb2e76e857ca..140168e8260c5 100644
--- a/pkgs/development/python-modules/djangorestframework-stubs/default.nix
+++ b/pkgs/development/python-modules/djangorestframework-stubs/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, buildPythonPackage
-, django-stubs
-, fetchFromGitHub
-, mypy
-, py
-, coreapi
-, pytest-mypy-plugins
-, pytestCheckHook
-, pythonOlder
-, requests
-, types-pyyaml
-, setuptools
-, types-markdown
-, types-requests
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  django-stubs,
+  fetchFromGitHub,
+  mypy,
+  py,
+  coreapi,
+  pytest-mypy-plugins,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  types-pyyaml,
+  setuptools,
+  types-markdown,
+  types-requests,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "djangorestframework-stubs";
-  version = "3.14.5";
+  version = "3.15.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,12 +28,10 @@ buildPythonPackage rec {
     owner = "typeddjango";
     repo = "djangorestframework-stubs";
     rev = "refs/tags/${version}";
-    hash = "sha256-AOhNlhTZ6Upevb/7Z1sUQoIkIlwYlIcf1CC+Ag7H4bg=";
+    hash = "sha256-5fZzSRn59ii41QKOqkZUXTDnm70Um9SY445Vfoo8sgg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     django-stubs
@@ -43,15 +42,9 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    compatible-mypy = [
-      mypy
-    ] ++ django-stubs.optional-dependencies.compatible-mypy;
-    coreapi = [
-      coreapi
-    ];
-    markdown = [
-      types-markdown
-    ];
+    compatible-mypy = [ mypy ] ++ django-stubs.optional-dependencies.compatible-mypy;
+    coreapi = [ coreapi ];
+    markdown = [ types-markdown ];
   };
 
   nativeCheckInputs = [
@@ -63,9 +56,7 @@ buildPythonPackage rec {
   # Upstream recommends mypy > 1.7 which we don't have yet, thus all testsare failing with 3.14.5 and below
   doCheck = false;
 
-  pythonImportsCheck = [
-    "rest_framework-stubs"
-  ];
+  pythonImportsCheck = [ "rest_framework-stubs" ];
 
   meta = with lib; {
     description = "PEP-484 stubs for Django REST Framework";
@@ -75,4 +66,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ elohmeier ];
   };
 }
-
diff --git a/pkgs/development/python-modules/djangorestframework/default.nix b/pkgs/development/python-modules/djangorestframework/default.nix
index 8bec94e665198..184307a5a2e40 100644
--- a/pkgs/development/python-modules/djangorestframework/default.nix
+++ b/pkgs/development/python-modules/djangorestframework/default.nix
@@ -1,20 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, coreapi
-, django
-, django-guardian
-, pythonOlder
-, pytest-django
-, pytest7CheckHook
-, pytz
-, pyyaml
-, uritemplate
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  django,
+  pytz,
+
+  # tests
+  coreapi,
+  coreschema,
+  django-guardian,
+  inflection,
+  psycopg2,
+  pytestCheckHook,
+  pytest-django,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
   pname = "djangorestframework";
-  version = "3.14.0";
+  version = "3.15.1";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
@@ -22,28 +32,40 @@ buildPythonPackage rec {
     owner = "encode";
     repo = "django-rest-framework";
     rev = version;
-    hash = "sha256-Fnj0n3NS3SetOlwSmGkLE979vNJnYE6i6xwVBslpNz4=";
+    hash = "sha256-G914NvxRmKGkxrozoWNUIoI74YkYRbeNcQwIG4iSeXU=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     django
     pytz
   ];
 
   nativeCheckInputs = [
     pytest-django
-    pytest7CheckHook
+    pytestCheckHook
 
     # optional tests
     coreapi
+    coreschema
     django-guardian
+    inflection
+    psycopg2
     pyyaml
-    uritemplate
+  ];
+
+  disabledTests = [
+    # https://github.com/encode/django-rest-framework/issues/9422
+    "test_urlpatterns"
   ];
 
   pythonImportsCheck = [ "rest_framework" ];
 
   meta = with lib; {
+    changelog = "https://github.com/encode/django-rest-framework/releases/tag/3.15.1";
     description = "Web APIs for Django, made easy";
     homepage = "https://www.django-rest-framework.org/";
     maintainers = with maintainers; [ desiderius ];
diff --git a/pkgs/development/python-modules/djmail/default.nix b/pkgs/development/python-modules/djmail/default.nix
index 28e9b88d3c32b..432e09e41aeee 100644
--- a/pkgs/development/python-modules/djmail/default.nix
+++ b/pkgs/development/python-modules/djmail/default.nix
@@ -1,6 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi
-, glibcLocales
-, celery, django, psycopg2
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  glibcLocales,
+  celery,
+  django,
+  psycopg2,
 }:
 
 buildPythonPackage rec {
@@ -23,7 +28,11 @@ buildPythonPackage rec {
 
   LC_ALL = "en_US.UTF-8";
 
-  propagatedBuildInputs = [ celery django psycopg2 ];
+  propagatedBuildInputs = [
+    celery
+    django
+    psycopg2
+  ];
 
   # 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;
diff --git a/pkgs/development/python-modules/dkimpy/default.nix b/pkgs/development/python-modules/dkimpy/default.nix
index 541c3bef56e92..b061554987c4c 100644
--- a/pkgs/development/python-modules/dkimpy/default.nix
+++ b/pkgs/development/python-modules/dkimpy/default.nix
@@ -1,5 +1,14 @@
-{ lib, fetchPypi, openssl, buildPythonPackage
-, pytest, dnspython, pynacl, authres, python }:
+{
+  lib,
+  fetchPypi,
+  openssl,
+  buildPythonPackage,
+  pytest,
+  dnspython,
+  pynacl,
+  authres,
+  python,
+}:
 
 buildPythonPackage rec {
   pname = "dkimpy";
@@ -9,10 +18,15 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-DOctlh9EPo+fBWlLNUVC3uU04I4rjFtgxi1drKfB2g8=";
-};
+  };
 
   nativeCheckInputs = [ pytest ];
-  propagatedBuildInputs =  [ openssl dnspython pynacl authres ];
+  propagatedBuildInputs = [
+    openssl
+    dnspython
+    pynacl
+    authres
+  ];
 
   patchPhase = ''
     substituteInPlace dkim/dknewkey.py --replace \
diff --git a/pkgs/development/python-modules/dlib/build-cores.patch b/pkgs/development/python-modules/dlib/build-cores.patch
index eebc69a330fa0..072519975c433 100644
--- a/pkgs/development/python-modules/dlib/build-cores.patch
+++ b/pkgs/development/python-modules/dlib/build-cores.patch
@@ -1,15 +1,17 @@
 diff --git a/setup.py b/setup.py
-index 0c8d8f16..565ef8ef 100644
+index 219583b..3ca5f88 100644
 --- a/setup.py
 +++ b/setup.py
-@@ -172,21 +172,7 @@ class CMakeBuild(build_ext):
+@@ -170,23 +170,7 @@ class CMakeBuild(build_ext):
          subprocess.check_call(cmake_build, cwd=build_folder)
  
  def num_available_cpu_cores(ram_per_build_process_in_gb):
 -    if 'TRAVIS' in os.environ and os.environ['TRAVIS']=='true':
 -        # When building on travis-ci, just use 2 cores since travis-ci limits
 -        # you to that regardless of what the hardware might suggest.
--        return 2 
+-        return 2
+-    elif 'CMAKE_BUILD_PARALLEL_LEVEL' in os.environ and os.environ['CMAKE_BUILD_PARALLEL_LEVEL'].isnumeric():
+-        return int(os.environ['CMAKE_BUILD_PARALLEL_LEVEL'])
 -    try:
 -        mem_bytes = os.sysconf('SC_PAGE_SIZE') * os.sysconf('SC_PHYS_PAGES')  
 -        mem_gib = mem_bytes/(1024.**3)
diff --git a/pkgs/development/python-modules/dlib/default.nix b/pkgs/development/python-modules/dlib/default.nix
index 224c8ccd4e15c..f66fe4bf484f2 100644
--- a/pkgs/development/python-modules/dlib/default.nix
+++ b/pkgs/development/python-modules/dlib/default.nix
@@ -1,18 +1,32 @@
-{ stdenv, buildPythonPackage, dlib, python, pytest, more-itertools
-, sse4Support ? stdenv.hostPlatform.sse4_1Support
-, avxSupport ? stdenv.hostPlatform.avxSupport
+{
+  stdenv,
+  buildPythonPackage,
+  dlib,
+  python,
+  pytest,
+  more-itertools,
+  sse4Support ? stdenv.hostPlatform.sse4_1Support,
+  avxSupport ? stdenv.hostPlatform.avxSupport,
 }:
 
 buildPythonPackage {
-  inherit (dlib) pname version src nativeBuildInputs buildInputs meta;
+  inherit (dlib)
+    pname
+    version
+    src
+    nativeBuildInputs
+    buildInputs
+    meta
+    ;
 
   format = "setuptools";
 
-  patches = [
-    ./build-cores.patch
-  ];
+  patches = [ ./build-cores.patch ];
 
-  nativeCheckInputs = [ pytest more-itertools ];
+  nativeCheckInputs = [
+    pytest
+    more-itertools
+  ];
 
   postPatch = ''
     substituteInPlace setup.py \
diff --git a/pkgs/development/python-modules/dlinfo/default.nix b/pkgs/development/python-modules/dlinfo/default.nix
index b51c71913f5f0..bb9c849592dd4 100644
--- a/pkgs/development/python-modules/dlinfo/default.nix
+++ b/pkgs/development/python-modules/dlinfo/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     sha256 = "5f6f43b47f3aa5fe12bd347cf536dc8fca6068c61a0a260e408bec7f6eb4bd38";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "dlinfo" ];
 
diff --git a/pkgs/development/python-modules/dllogger/default.nix b/pkgs/development/python-modules/dllogger/default.nix
index 2ae7bd683e01e..df0b7cec7906b 100644
--- a/pkgs/development/python-modules/dllogger/default.nix
+++ b/pkgs/development/python-modules/dllogger/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -38,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "dllogger" ];
 
   meta = with lib; {
-    description = "A logging tool for deep learning";
+    description = "Logging tool for deep learning";
     homepage = "https://github.com/NVIDIA/dllogger";
     changelog = "https://github.com/NVIDIA/dllogger/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/dlms-cosem/default.nix b/pkgs/development/python-modules/dlms-cosem/default.nix
index a285a538fa08f..18a1031abb636 100644
--- a/pkgs/development/python-modules/dlms-cosem/default.nix
+++ b/pkgs/development/python-modules/dlms-cosem/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, asn1crypto
-, attrs
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, pyserial
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, setuptools
-, structlog
-, typing-extensions
+{
+  lib,
+  asn1crypto,
+  attrs,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  pyserial,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  setuptools,
+  structlog,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-NeTaU8i18Zb39Y2JnYzr87Ozt7Rj074xusL4xaNe0q0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     asn1crypto
@@ -41,13 +40,9 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dlms_cosem"
-  ];
+  pythonImportsCheck = [ "dlms_cosem" ];
 
   meta = with lib; {
     description = "Python module to parse DLMS/COSEM";
diff --git a/pkgs/development/python-modules/dlx/default.nix b/pkgs/development/python-modules/dlx/default.nix
index c8f89b7db7c1b..3917dd4540ccd 100644
--- a/pkgs/development/python-modules/dlx/default.nix
+++ b/pkgs/development/python-modules/dlx/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/dm-control/default.nix b/pkgs/development/python-modules/dm-control/default.nix
new file mode 100644
index 0000000000000..af8c7bdbee7f8
--- /dev/null
+++ b/pkgs/development/python-modules/dm-control/default.nix
@@ -0,0 +1,95 @@
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  absl-py,
+  mujoco,
+  pyparsing,
+  setuptools,
+  wheel,
+  dm-env,
+  dm-tree,
+  fsspec,
+  glfw,
+  h5py,
+  lxml,
+  mock,
+  nose,
+  nose-xunitmp,
+  numpy,
+  pillow,
+  protobuf,
+  pyopengl,
+  requests,
+  scipy,
+  tqdm,
+  etils,
+}:
+
+buildPythonPackage rec {
+  pname = "dm-control";
+  version = "1.0.20";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "google-deepmind";
+    repo = "dm_control";
+    rev = "refs/tags/${version}";
+    hash = "sha256-huXvfQz7E+OCqRrhLC5dUaG/A2PQXrPBzseIFx7ZIeE=";
+  };
+
+  build-system = [
+    absl-py
+    mujoco
+    pyparsing
+    setuptools
+    wheel
+  ];
+
+  pythonRemoveDeps = [
+    # Unpackaged
+    "labmaze"
+  ];
+
+  dependencies = [
+    absl-py
+    dm-env
+    dm-tree
+    fsspec
+    glfw
+    h5py
+    lxml
+    mock
+    mujoco
+    nose
+    nose-xunitmp
+    numpy
+    pillow
+    protobuf
+    pyopengl
+    pyparsing
+    requests
+    scipy
+    setuptools
+    tqdm
+  ] ++ etils.optional-dependencies.epath;
+
+  pythonImportsCheck = [ "dm_control" ];
+
+  # The installed library clashes with the `dm_control` directory remaining in the source path.
+  # Usually, we get around this by `rm -rf` the python source files to ensure that the installed package is used.
+  # Here, we cannot do that as it would also remove the tests which are also in the `dm_control` directory.
+  # See https://github.com/google-deepmind/dm_control/issues/6
+  doCheck = false;
+
+  meta = {
+    changelog = "https://github.com/google-deepmind/dm_control/releases/tag/${version}";
+    description = "Google DeepMind's software stack for physics-based simulation and Reinforcement Learning environments, using MuJoCo";
+    homepage = "https://github.com/google-deepmind/dm_control";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/pkgs/development/python-modules/dm-env/default.nix b/pkgs/development/python-modules/dm-env/default.nix
index a11d35495575e..2b751b345cf88 100644
--- a/pkgs/development/python-modules/dm-env/default.nix
+++ b/pkgs/development/python-modules/dm-env/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, dm-tree
-, numpy
-, absl-py
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  dm-tree,
+  numpy,
+  absl-py,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     numpy
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dm_env"
-  ];
+  pythonImportsCheck = [ "dm_env" ];
 
   meta = with lib; {
     description = "Pure Python client for Apache Kafka";
diff --git a/pkgs/development/python-modules/dm-haiku/default.nix b/pkgs/development/python-modules/dm-haiku/default.nix
index e35baffb40669..e5f44feb69c56 100644
--- a/pkgs/development/python-modules/dm-haiku/default.nix
+++ b/pkgs/development/python-modules/dm-haiku/default.nix
@@ -1,116 +1,117 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, absl-py
-, flax
-, jaxlib
-, jmp
-, numpy
-, tabulate
-, pytest-xdist
-, pytestCheckHook
-, bsuite
-, chex
-, cloudpickle
-, dill
-, dm-env
-, dm-tree
-, optax
-, rlax
-, tensorflow
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  absl-py,
+  flax,
+  jaxlib,
+  jmp,
+  numpy,
+  tabulate,
+  pytest-xdist,
+  pytestCheckHook,
+  bsuite,
+  chex,
+  cloudpickle,
+  dill,
+  dm-env,
+  dm-tree,
+  optax,
+  rlax,
+  tensorflow,
 }:
 
-let dm-haiku = buildPythonPackage rec {
-  pname = "dm-haiku";
-  version = "0.0.12";
-  format = "setuptools";
+let
+  dm-haiku = buildPythonPackage rec {
+    pname = "dm-haiku";
+    version = "0.0.12";
+    format = "setuptools";
 
-  src = fetchFromGitHub {
-    owner = "deepmind";
-    repo = "dm-haiku";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-aJRXlMq4CNMH3ZSTDP8MgnVltdSc8l5raw4//KccL48=";
-  };
+    src = fetchFromGitHub {
+      owner = "deepmind";
+      repo = "dm-haiku";
+      rev = "refs/tags/v${version}";
+      hash = "sha256-aJRXlMq4CNMH3ZSTDP8MgnVltdSc8l5raw4//KccL48=";
+    };
 
-  patches = [
-    # https://github.com/deepmind/dm-haiku/pull/672
-    (fetchpatch {
-      name = "fix-find-namespace-packages.patch";
-      url = "https://github.com/deepmind/dm-haiku/commit/728031721f77d9aaa260bba0eddd9200d107ba5d.patch";
-      hash = "sha256-qV94TdJnphlnpbq+B0G3KTx5CFGPno+8FvHyu/aZeQE=";
-    })
-  ];
+    patches = [
+      # https://github.com/deepmind/dm-haiku/pull/672
+      (fetchpatch {
+        name = "fix-find-namespace-packages.patch";
+        url = "https://github.com/deepmind/dm-haiku/commit/728031721f77d9aaa260bba0eddd9200d107ba5d.patch";
+        hash = "sha256-qV94TdJnphlnpbq+B0G3KTx5CFGPno+8FvHyu/aZeQE=";
+      })
+    ];
 
-  propagatedBuildInputs = [
-    absl-py
-    flax
-    jaxlib
-    jmp
-    numpy
-    tabulate
-  ];
+    propagatedBuildInputs = [
+      absl-py
+      flax
+      jaxlib
+      jmp
+      numpy
+      tabulate
+    ];
 
-  pythonImportsCheck = [
-    "haiku"
-  ];
+    pythonImportsCheck = [ "haiku" ];
 
-  nativeCheckInputs = [
-    bsuite
-    chex
-    cloudpickle
-    dill
-    dm-env
-    dm-haiku
-    dm-tree
-    jaxlib
-    optax
-    pytest-xdist
-    pytestCheckHook
-    rlax
-    tensorflow
-  ];
+    nativeCheckInputs = [
+      bsuite
+      chex
+      cloudpickle
+      dill
+      dm-env
+      dm-haiku
+      dm-tree
+      jaxlib
+      optax
+      pytest-xdist
+      pytestCheckHook
+      rlax
+      tensorflow
+    ];
 
-  disabledTests = [
-    # See https://github.com/deepmind/dm-haiku/issues/366.
-    "test_jit_Recurrent"
+    disabledTests = [
+      # See https://github.com/deepmind/dm-haiku/issues/366.
+      "test_jit_Recurrent"
 
-    # Assertion errors
-    "testShapeChecking0"
-    "testShapeChecking1"
+      # Assertion errors
+      "testShapeChecking0"
+      "testShapeChecking1"
 
-    # This test requires a more recent version of tensorflow. The current one (2.13) is not enough.
-    "test_reshape_convert"
+      # This test requires a more recent version of tensorflow. The current one (2.13) is not enough.
+      "test_reshape_convert"
 
-    # This test requires JAX support for double precision (64bit), but enabling this causes several
-    # other tests to fail.
-    # https://jax.readthedocs.io/en/latest/notebooks/Common_Gotchas_in_JAX.html#double-64bit-precision
-    "test_doctest_haiku.experimental"
-  ];
+      # This test requires JAX support for double precision (64bit), but enabling this causes several
+      # other tests to fail.
+      # https://jax.readthedocs.io/en/latest/notebooks/Common_Gotchas_in_JAX.html#double-64bit-precision
+      "test_doctest_haiku.experimental"
+    ];
 
-  disabledTestPaths = [
-    # Those tests requires a more recent version of tensorflow. The current one (2.13) is not enough.
-    "haiku/_src/integration/jax2tf_test.py"
-  ];
+    disabledTestPaths = [
+      # Those tests requires a more recent version of tensorflow. The current one (2.13) is not enough.
+      "haiku/_src/integration/jax2tf_test.py"
+    ];
 
-  doCheck = false;
+    doCheck = false;
 
-  # check in passthru.tests.pytest to escape infinite recursion with bsuite
-  passthru.tests.pytest = dm-haiku.overridePythonAttrs (_: {
-    pname = "${pname}-tests";
-    doCheck = true;
+    # check in passthru.tests.pytest to escape infinite recursion with bsuite
+    passthru.tests.pytest = dm-haiku.overridePythonAttrs (_: {
+      pname = "${pname}-tests";
+      doCheck = true;
 
-    # We don't have to install because the only purpose
-    # of this passthru test is to, well, test.
-    # This fixes having to set `catchConflicts` to false.
-    dontInstall = true;
-  });
+      # We don't have to install because the only purpose
+      # of this passthru test is to, well, test.
+      # This fixes having to set `catchConflicts` to false.
+      dontInstall = true;
+    });
 
-  meta = with lib; {
-    description = "Haiku is a simple neural network library for JAX developed by some of the authors of Sonnet.";
-    homepage = "https://github.com/deepmind/dm-haiku";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ ndl ];
+    meta = with lib; {
+      description = "Haiku is a simple neural network library for JAX developed by some of the authors of Sonnet";
+      homepage = "https://github.com/deepmind/dm-haiku";
+      license = licenses.asl20;
+      maintainers = with maintainers; [ ndl ];
+    };
   };
-};
-in dm-haiku
+in
+dm-haiku
diff --git a/pkgs/development/python-modules/dm-sonnet/default.nix b/pkgs/development/python-modules/dm-sonnet/default.nix
index 457ad4de643d1..7290b31b7f37b 100644
--- a/pkgs/development/python-modules/dm-sonnet/default.nix
+++ b/pkgs/development/python-modules/dm-sonnet/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, click
-, dm-tree
-, docutils
-, etils
-, fetchFromGitHub
-, fetchpatch
-, numpy
-, pythonOlder
-, tabulate
-, tensorflow
-, tensorflow-datasets
-, wrapt
+{
+  lib,
+  buildPythonPackage,
+  click,
+  dm-tree,
+  docutils,
+  etils,
+  fetchFromGitHub,
+  fetchpatch,
+  numpy,
+  pythonOlder,
+  tabulate,
+  tensorflow,
+  tensorflow-datasets,
+  wrapt,
 }:
 
 buildPythonPackage rec {
@@ -45,9 +46,7 @@ buildPythonPackage rec {
   ] ++ etils.optional-dependencies.epath;
 
   passthru.optional-dependencies = {
-    tensorflow = [
-      tensorflow
-    ];
+    tensorflow = [ tensorflow ];
   };
 
   nativeCheckInputs = [
@@ -57,9 +56,7 @@ buildPythonPackage rec {
     tensorflow-datasets
   ];
 
-  pythonImportsCheck = [
-    "sonnet"
-  ];
+  pythonImportsCheck = [ "sonnet" ];
 
   meta = with lib; {
     description = "Library for building neural networks in TensorFlow";
diff --git a/pkgs/development/python-modules/dm-tree/default.nix b/pkgs/development/python-modules/dm-tree/default.nix
index 071a0fee432e6..0cf64bc5da029 100644
--- a/pkgs/development/python-modules/dm-tree/default.nix
+++ b/pkgs/development/python-modules/dm-tree/default.nix
@@ -1,14 +1,15 @@
-{ stdenv
-, abseil-cpp
-, absl-py
-, attrs
-, buildPythonPackage
-, cmake
-, fetchFromGitHub
-, lib
-, numpy
-, pybind11
-, wrapt
+{
+  stdenv,
+  abseil-cpp,
+  absl-py,
+  attrs,
+  buildPythonPackage,
+  cmake,
+  fetchFromGitHub,
+  lib,
+  numpy,
+  pybind11,
+  wrapt,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-VvSJTuEYjIz/4TTibSLkbg65YmcYqHImTHOomeorMJc=";
   };
 
-  patches = [
-    ./cmake.patch
-  ];
+  patches = [ ./cmake.patch ];
 
   dontUseCmakeConfigure = true;
 
@@ -50,9 +49,12 @@ buildPythonPackage rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "Tree is a library for working with nested data structures.";
+    description = "Tree is a library for working with nested data structures";
     homepage = "https://github.com/deepmind/tree";
     license = licenses.asl20;
-    maintainers = with maintainers; [ samuela ndl ];
+    maintainers = with maintainers; [
+      samuela
+      ndl
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/dmenu/default.nix b/pkgs/development/python-modules/dmenu/default.nix
index 130110173eedc..747c666a94639 100644
--- a/pkgs/development/python-modules/dmenu/default.nix
+++ b/pkgs/development/python-modules/dmenu/default.nix
@@ -1,4 +1,9 @@
-{ buildPythonPackage, lib, fetchPypi, dmenu }:
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+  dmenu,
+}:
 
 buildPythonPackage rec {
   pname = "dmenu-python";
@@ -16,7 +21,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "A Python wrapper for dmenu";
+    description = "Python wrapper for dmenu";
     homepage = "https://dmenu.readthedocs.io";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.nico202 ];
diff --git a/pkgs/development/python-modules/dnachisel/default.nix b/pkgs/development/python-modules/dnachisel/default.nix
index 5a70ae1c16df6..c931f25fcf988 100644
--- a/pkgs/development/python-modules/dnachisel/default.nix
+++ b/pkgs/development/python-modules/dnachisel/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, biopython
-, docopt
-, flametree
-, numpy
-, proglog
-, pytestCheckHook
-, pythonOlder
-, python-codon-tables
-, primer3
-, genome-collector
-, matplotlib
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  biopython,
+  docopt,
+  flametree,
+  numpy,
+  proglog,
+  pytestCheckHook,
+  pythonOlder,
+  python-codon-tables,
+  primer3,
+  genome-collector,
+  matplotlib,
 }:
 
 buildPythonPackage rec {
@@ -56,9 +57,7 @@ buildPythonPackage rec {
     "test_avoid_matches_with_phage"
   ];
 
-  pythonImportsCheck = [
-    "dnachisel"
-  ];
+  pythonImportsCheck = [ "dnachisel" ];
 
   meta = with lib; {
     homepage = "https://github.com/Edinburgh-Genome-Foundry/DnaChisel";
diff --git a/pkgs/development/python-modules/dnf-plugins-core/default.nix b/pkgs/development/python-modules/dnf-plugins-core/default.nix
index 3a9c062679253..8c518bfe4f93f 100644
--- a/pkgs/development/python-modules/dnf-plugins-core/default.nix
+++ b/pkgs/development/python-modules/dnf-plugins-core/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
   # dependencies
-, cmake
-, python-dateutil
-, dbus-python
-, dnf4
-, gettext
-, libcomps
-, libdnf
-, python
-, rpm
-, sphinx
-, systemd
+  cmake,
+  python-dateutil,
+  dbus-python,
+  dnf4,
+  gettext,
+  libcomps,
+  libdnf,
+  python,
+  rpm,
+  sphinx,
+  systemd,
 }:
 
 let
@@ -22,21 +23,22 @@ in
 
 buildPythonPackage rec {
   pname = "dnf-plugins-core";
-  version = "4.7.0";
+  version = "4.8.0";
   format = "other";
 
-  outputs = [ "out" "man" ];
+  outputs = [
+    "out"
+    "man"
+  ];
 
   src = fetchFromGitHub {
     owner = "rpm-software-management";
     repo = "dnf-plugins-core";
     rev = "refs/tags/${version}";
-    hash = "sha256-AQnnXjkUajztbyoKzKhxiKxZsb2o2+7C15fsrxGkWcM=";
+    hash = "sha256-8RkTSO+F5fc3T8r79PRoW5KfEG2DmIzN2ylC9Np6LrQ=";
   };
 
-  patches = [
-    ./fix-python-install-dir.patch
-  ];
+  patches = [ ./fix-python-install-dir.patch ];
 
   postPatch = ''
     substituteInPlace CMakeLists.txt \
@@ -108,9 +110,7 @@ buildPythonPackage rec {
     done
   '';
 
-  makeWrapperArgs = [
-    ''--add-flags "--setopt=pluginpath=$out/${python.sitePackages}/dnf-plugins"''
-  ];
+  makeWrapperArgs = [ ''--add-flags "--setopt=pluginpath=$out/${python.sitePackages}/dnf-plugins"'' ];
 
   meta = with lib; {
     description = "Core plugins to use with DNF package manager";
diff --git a/pkgs/development/python-modules/dnf4/default.nix b/pkgs/development/python-modules/dnf4/default.nix
index 31d617d613448..3696087cd5afb 100644
--- a/pkgs/development/python-modules/dnf4/default.nix
+++ b/pkgs/development/python-modules/dnf4/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, cmake
-, fetchFromGitHub
-, gettext
-, libcomps
-, libdnf
-, python
-, rpm
-, sphinx
-, nix-update-script
+{
+  lib,
+  buildPythonPackage,
+  cmake,
+  fetchFromGitHub,
+  gettext,
+  libcomps,
+  libdnf,
+  python,
+  rpm,
+  sphinx,
+  nix-update-script,
 }:
 
 let
@@ -17,21 +18,23 @@ in
 
 buildPythonPackage rec {
   pname = "dnf4";
-  version = "4.20.0";
+  version = "4.21.0";
   format = "other";
 
-  outputs = [ "out" "man" "py" ];
+  outputs = [
+    "out"
+    "man"
+    "py"
+  ];
 
   src = fetchFromGitHub {
     owner = "rpm-software-management";
     repo = "dnf";
     rev = version;
-    hash = "sha256-0BwnUb0ZORjJmB70Jca/CnyysIOGB7azVzUUIGplmso=";
+    hash = "sha256-iDSjhAwas2ZljWN42/jG//Mu0HJYijCRqVTdnunjxkI=";
   };
 
-  patches = [
-    ./fix-python-install-dir.patch
-  ];
+  patches = [ ./fix-python-install-dir.patch ];
 
   postPatch = ''
     substituteInPlace CMakeLists.txt \
@@ -59,9 +62,7 @@ buildPythonPackage rec {
     rpm
   ];
 
-  cmakeFlags = [
-    "-DPYTHON_DESIRED=${pyMajor}"
-  ];
+  cmakeFlags = [ "-DPYTHON_DESIRED=${pyMajor}" ];
 
   dontWrapPythonPrograms = true;
 
diff --git a/pkgs/development/python-modules/dnf4/wrapper.nix b/pkgs/development/python-modules/dnf4/wrapper.nix
index 254bd7f27d2ae..79a3fd835912a 100644
--- a/pkgs/development/python-modules/dnf4/wrapper.nix
+++ b/pkgs/development/python-modules/dnf4/wrapper.nix
@@ -1,9 +1,10 @@
-{ lib
-, wrapPython
-, python3
-, stdenv
-, dnf-plugins-core
-, plugins ? [ dnf-plugins-core ]
+{
+  lib,
+  wrapPython,
+  python3,
+  stdenv,
+  dnf-plugins-core,
+  plugins ? [ dnf-plugins-core ],
 }:
 let
   pluginPaths = map (p: "${p}/${python3.sitePackages}/dnf-plugins") plugins;
@@ -15,19 +16,21 @@ stdenv.mkDerivation {
   pname = "dnf4";
   inherit (dnf4-unwrapped) version;
 
-  outputs = [ "out" "man" "py" ];
+  outputs = [
+    "out"
+    "man"
+    "py"
+  ];
 
   dontUnpack = true;
 
-  nativeBuildInputs = [
-    wrapPython
-  ];
+  nativeBuildInputs = [ wrapPython ];
 
-  propagatedBuildInputs = [
-    dnf4-unwrapped
-  ] ++ plugins;
+  propagatedBuildInputs = [ dnf4-unwrapped ] ++ plugins;
 
-  makeWrapperArgs = lib.optional (plugins != [ ]) ''--add-flags "--setopt=pluginpath=${lib.concatStringsSep "," pluginPaths}"'';
+  makeWrapperArgs = lib.optional (
+    plugins != [ ]
+  ) ''--add-flags "--setopt=pluginpath=${lib.concatStringsSep "," pluginPaths}"'';
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/development/python-modules/dnfile/default.nix b/pkgs/development/python-modules/dnfile/default.nix
index 40b97b6b6d8ac..e9bff0525de3c 100644
--- a/pkgs/development/python-modules/dnfile/default.nix
+++ b/pkgs/development/python-modules/dnfile/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pefile
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pefile,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,25 +23,17 @@ buildPythonPackage rec {
     fetchSubmodules = true;
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    pefile
-  ];
+  dependencies = [ pefile ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dnfile"
-  ];
+  pythonImportsCheck = [ "dnfile" ];
 
   meta = with lib; {
     description = "Module to parse .NET executable files";
-    homepage = "hhttps://github.com/malwarefrank/dnfile";
+    homepage = "https://github.com/malwarefrank/dnfile";
     changelog = "https://github.com/malwarefrank/dnfile/blob/v${version}/HISTORY.rst";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/dns-lexicon/default.nix b/pkgs/development/python-modules/dns-lexicon/default.nix
index b9647c5ed804d..225a04ee5342b 100644
--- a/pkgs/development/python-modules/dns-lexicon/default.nix
+++ b/pkgs/development/python-modules/dns-lexicon/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, beautifulsoup4
-, boto3
-, buildPythonPackage
-, cryptography
-, dnspython
-, fetchFromGitHub
-, importlib-metadata
-, localzone
-, oci
-, poetry-core
-, pyotp
-, pytest-vcr
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, requests
-, softlayer
-, tldextract
-, zeep
+{
+  lib,
+  beautifulsoup4,
+  boto3,
+  buildPythonPackage,
+  cryptography,
+  dnspython,
+  fetchFromGitHub,
+  importlib-metadata,
+  localzone,
+  oci,
+  poetry-core,
+  pyotp,
+  pytest-vcr,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  requests,
+  softlayer,
+  tldextract,
+  zeep,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     hash = "sha256-79/zz0TOCpx26TEo6gi9JDBQeVW2azWnxAjWr/FGRLA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     beautifulsoup4
@@ -45,29 +44,15 @@ buildPythonPackage rec {
     pyyaml
     requests
     tldextract
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
   passthru.optional-dependencies = {
-    route53 = [
-      boto3
-    ];
-    localzone = [
-      localzone
-    ];
-    softlayer = [
-      softlayer
-    ];
-    ddns = [
-      dnspython
-    ];
-    duckdns = [
-      dnspython
-    ];
-    oci = [
-      oci
-    ];
+    route53 = [ boto3 ];
+    localzone = [ localzone ];
+    softlayer = [ softlayer ];
+    ddns = [ dnspython ];
+    duckdns = [ dnspython ];
+    oci = [ oci ];
     full = [
       boto3
       dnspython
@@ -83,9 +68,7 @@ buildPythonPackage rec {
     pytest-vcr
   ] ++ passthru.optional-dependencies.full;
 
-  pytestFlagsArray = [
-    "tests/"
-  ];
+  pytestFlagsArray = [ "tests/" ];
 
   disabledTestPaths = [
     # Needs network access
@@ -104,9 +87,7 @@ buildPythonPackage rec {
     "action_is_correctly"
   ];
 
-  pythonImportsCheck = [
-    "lexicon"
-  ];
+  pythonImportsCheck = [ "lexicon" ];
 
   meta = with lib; {
     description = "Manipulate DNS records on various DNS providers in a standardized way";
diff --git a/pkgs/development/python-modules/dnslib/default.nix b/pkgs/development/python-modules/dnslib/default.nix
index 63bf4634cf09c..7153ea8fd4a26 100644
--- a/pkgs/development/python-modules/dnslib/default.nix
+++ b/pkgs/development/python-modules/dnslib/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, python
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  python,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     VERSIONS=${python.interpreter} ./run_tests.sh
   '';
 
-  pythonImportsCheck = [
-    "dnslib"
-  ];
+  pythonImportsCheck = [ "dnslib" ];
 
   meta = with lib; {
     description = "Simple library to encode/decode DNS wire-format packets";
diff --git a/pkgs/development/python-modules/dnspython/default.nix b/pkgs/development/python-modules/dnspython/default.nix
index 5c359635ba5ab..56098c6250c5b 100644
--- a/pkgs/development/python-modules/dnspython/default.nix
+++ b/pkgs/development/python-modules/dnspython/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, aioquic
-, buildPythonPackage
-, cacert
-, cryptography
-, curio
-, fetchPypi
-, h2
-, httpcore
-, httpx
-, idna
-, hatchling
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-toolbelt
-, sniffio
-, trio
+{
+  lib,
+  aioquic,
+  buildPythonPackage,
+  cacert,
+  cryptography,
+  curio,
+  fetchPypi,
+  h2,
+  httpcore,
+  httpx,
+  idna,
+  hatchling,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-toolbelt,
+  sniffio,
+  trio,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     hash = "sha256-6PD5wjp7fLmd7WTmw6bz5wHXj1DFXgArg53qciXP98w=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   passthru.optional-dependencies = {
     DOH = [
@@ -42,43 +41,29 @@ buildPythonPackage rec {
       requests-toolbelt
       httpcore
     ];
-    IDNA = [
-      idna
-    ];
-    DNSSEC = [
-      cryptography
-    ];
-    trio = [
-      trio
-    ];
+    IDNA = [ idna ];
+    DNSSEC = [ cryptography ];
+    trio = [ trio ];
     curio = [
       curio
       sniffio
     ];
-    DOQ = [
-      aioquic
-    ];
+    DOQ = [ aioquic ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  checkInputs = [
-    cacert
-  ] ++ passthru.optional-dependencies.DNSSEC;
+  checkInputs = [ cacert ] ++ passthru.optional-dependencies.DNSSEC;
 
   disabledTests = [
     # dns.exception.SyntaxError: protocol not found
     "test_misc_good_WKS_text"
   ];
 
-  pythonImportsCheck = [
-    "dns"
-  ];
+  pythonImportsCheck = [ "dns" ];
 
   meta = with lib; {
-    description = "A DNS toolkit for Python";
+    description = "DNS toolkit for Python";
     homepage = "https://www.dnspython.org";
     changelog = "https://github.com/rthalley/dnspython/blob/v${version}/doc/whatsnew.rst";
     license = with licenses; [ isc ];
diff --git a/pkgs/development/python-modules/doc8/default.nix b/pkgs/development/python-modules/doc8/default.nix
index 48c00b0d5cc3f..bd47412044f6b 100644
--- a/pkgs/development/python-modules/doc8/default.nix
+++ b/pkgs/development/python-modules/doc8/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, chardet
-, docutils
-, fetchpatch
-, fetchPypi
-, pbr
-, pygments
-, pytestCheckHook
-, pythonOlder
-, restructuredtext-lint
-, setuptools-scm
-, stevedore
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  chardet,
+  docutils,
+  fetchpatch,
+  fetchPypi,
+  pbr,
+  pygments,
+  pytestCheckHook,
+  pythonOlder,
+  restructuredtext-lint,
+  setuptools-scm,
+  stevedore,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -40,9 +41,7 @@ buildPythonPackage rec {
     wheel
   ];
 
-  buildInputs = [
-    pbr
-  ];
+  buildInputs = [ pbr ];
 
   propagatedBuildInputs = [
     docutils
@@ -52,13 +51,9 @@ buildPythonPackage rec {
     pygments
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "doc8"
-  ];
+  pythonImportsCheck = [ "doc8" ];
 
   meta = with lib; {
     description = "Style checker for Sphinx (or other) RST documentation";
diff --git a/pkgs/development/python-modules/docformatter/default.nix b/pkgs/development/python-modules/docformatter/default.nix
index 517b777735d78..d6cd2f308ec06 100644
--- a/pkgs/development/python-modules/docformatter/default.nix
+++ b/pkgs/development/python-modules/docformatter/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, charset-normalizer
-, tomli
-, untokenize
-, mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  charset-normalizer,
+  tomli,
+  untokenize,
+  mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-QUjeG84KwI5Y3MU1wrmjHBXU2tEJ0CuiR3Y/S+dX7Gs=";
   };
 
-  patches = [
-    ./test-path.patch
-  ];
+  patches = [ ./test-path.patch ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
@@ -36,9 +35,7 @@ buildPythonPackage rec {
       --subst-var-by docformatter $out/bin/docformatter
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     charset-normalizer
@@ -51,6 +48,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  # Disable failing tests until https://github.com/PyCQA/docformatter/issues/274 is fixed upstream
+  disabledTests = [
+    "test_do_format_code.py"
+    "test_docformatter.py"
+  ];
+
   pythonImportsCheck = [ "docformatter" ];
 
   meta = {
diff --git a/pkgs/development/python-modules/docker-py/default.nix b/pkgs/development/python-modules/docker-py/default.nix
deleted file mode 100644
index 392e4767e8c3a..0000000000000
--- a/pkgs/development/python-modules/docker-py/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi, six, requests, websocket-client, docker-pycreds }:
-
-buildPythonPackage rec {
-  version = "1.10.6";
-  format = "setuptools";
-  pname = "docker-py";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "05f49f6hnl7npmi7kigg0ibqk8s3fhzx1ivvz1kqvlv4ay3paajc";
-  };
-
-  # The tests access the network.
-  doCheck = false;
-
-  propagatedBuildInputs = [
-    six
-    requests
-    websocket-client
-    docker-pycreds
-  ];
-
-  meta = {
-    description = "Python library for the Docker Remote API";
-    homepage = "https://github.com/docker/docker-py/";
-    license = lib.licenses.asl20;
-    maintainers = [ lib.maintainers.pmiddend ];
-  };
-}
diff --git a/pkgs/development/python-modules/docker-pycreds/default.nix b/pkgs/development/python-modules/docker-pycreds/default.nix
index 2c6c0ad2038d8..16b8a420f4a7f 100644
--- a/pkgs/development/python-modules/docker-pycreds/default.nix
+++ b/pkgs/development/python-modules/docker-pycreds/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, six }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "docker-pycreds";
@@ -16,7 +21,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ six ];
 
   meta = with lib; {
-    description = "Python bindings for the docker credentials store API.";
+    description = "Python bindings for the docker credentials store API";
     homepage = "https://github.com/shin-/dockerpy-creds";
     license = licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/docker/default.nix b/pkgs/development/python-modules/docker/default.nix
index 579584c531049..93d09f2cfced3 100644
--- a/pkgs/development/python-modules/docker/default.nix
+++ b/pkgs/development/python-modules/docker/default.nix
@@ -1,69 +1,65 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build-system
-, setuptools
-, setuptools-scm
+  # build-system
+  hatchling,
+  hatch-vcs,
 
-# dependencies
-, packaging
-, requests
-, urllib3
+  # dependencies
+  packaging,
+  requests,
+  urllib3,
 
-# optional-dependenices
-, paramiko
-, websocket-client
+  # optional-dependenices
+  paramiko,
+  websocket-client,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "docker";
-  version = "7.0.0";
-  format = "pyproject";
+  version = "7.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-Mjc2+5LNlBj8XnEzvJU+EanaBPRIP4KLUn21U/Hn5aM=";
+  src = fetchFromGitHub {
+    owner = "docker";
+    repo = "docker-py";
+    rev = "refs/tags/${version}";
+    hash = "sha256-sk6TZLek+fRkKq7kG9g6cR9lvfPC8v8qUXKb7Tq4pLU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-    setuptools-scm
+  build-system = [
+    hatchling
+    hatch-vcs
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     packaging
     requests
     urllib3
   ];
 
-  passthru.optional-dependencies = {
-    ssh = [
-      paramiko
-    ];
-    websockets = [
-      websocket-client
-    ];
+  optional-dependencies = {
+    ssh = [ paramiko ];
+    tls = [];
+    websockets = [ websocket-client ];
   };
 
-  pythonImportsCheck = [
-    "docker"
-  ];
+  pythonImportsCheck = [ "docker" ];
 
   nativeCheckInputs = [
     pytestCheckHook
-  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
+  ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
-  pytestFlagsArray = [
-    "tests/unit"
-  ];
+  pytestFlagsArray = [ "tests/unit" ];
 
   # Deselect socket tests on Darwin because it hits the path length limit for a Unix domain socket
   disabledTests = lib.optionals stdenv.isDarwin [
@@ -74,7 +70,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/docker/docker-py/releases/tag/${version}";
-    description = "An API client for docker written in Python";
+    description = "API client for docker written in Python";
     homepage = "https://github.com/docker/docker-py";
     license = licenses.asl20;
     maintainers = with maintainers; [ jonringer ];
diff --git a/pkgs/development/python-modules/dockerfile-parse/default.nix b/pkgs/development/python-modules/dockerfile-parse/default.nix
index 88a568ed258b3..ae829a65e71dc 100644
--- a/pkgs/development/python-modules/dockerfile-parse/default.nix
+++ b/pkgs/development/python-modules/dockerfile-parse/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-MYTM3FEyIZg+UDrADhqlBKKqj4Tl3mc8RrC27umex7w=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dockerfile_parse"
-  ];
+  pythonImportsCheck = [ "dockerfile_parse" ];
 
   disabledTests = [
     # python-dockerfile-parse.spec is not present
diff --git a/pkgs/development/python-modules/dockerpty/default.nix b/pkgs/development/python-modules/dockerpty/default.nix
index 1dc5ff6a83165..0e4fe12546df9 100644
--- a/pkgs/development/python-modules/dockerpty/default.nix
+++ b/pkgs/development/python-modules/dockerpty/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, six }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "dockerpty";
diff --git a/pkgs/development/python-modules/dockerspawner/default.nix b/pkgs/development/python-modules/dockerspawner/default.nix
index 44f269d50c642..199f73afeefed 100644
--- a/pkgs/development/python-modules/dockerspawner/default.nix
+++ b/pkgs/development/python-modules/dockerspawner/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, jupyterhub
-, escapism
-, docker
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  jupyterhub,
+  escapism,
+  docker,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-POlTZ9luS9wQ/vt9w8VMfTEqGzg/DhfB45ePfvnyito=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     jupyterhub
@@ -30,12 +29,10 @@ buildPythonPackage rec {
   # tests require docker
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dockerspawner"
-  ];
+  pythonImportsCheck = [ "dockerspawner" ];
 
   meta = with lib; {
-    description = "A custom spawner for Jupyterhub";
+    description = "Custom spawner for Jupyterhub";
     homepage = "https://github.com/jupyterhub/dockerspawner";
     changelog = "https://github.com/jupyterhub/dockerspawner/blob/${version}/docs/source/changelog.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/docloud/default.nix b/pkgs/development/python-modules/docloud/default.nix
index 9e30ea3899549..5c7c57811543e 100644
--- a/pkgs/development/python-modules/docloud/default.nix
+++ b/pkgs/development/python-modules/docloud/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -25,7 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "docloud" ];
 
   meta = with lib; {
-    description = "The IBM Decision Optimization on Cloud Python client";
+    description = "IBM Decision Optimization on Cloud Python client";
     homepage = "https://onboarding-oaas.docloud.ibmcloud.com/software/analytics/docloud/";
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
diff --git a/pkgs/development/python-modules/docopt-ng/default.nix b/pkgs/development/python-modules/docopt-ng/default.nix
index cdeda778e0dc0..5fde32a380bbc 100644
--- a/pkgs/development/python-modules/docopt-ng/default.nix
+++ b/pkgs/development/python-modules/docopt-ng/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pdm-backend
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pdm-backend,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     hash = "sha256-kcbaELW7by6eJTRYKfuCeMeK8Bn2/ECIetSbBgSDsdc=";
   };
 
-  nativeBuildInputs = [
-    pdm-backend
-  ];
+  nativeBuildInputs = [ pdm-backend ];
 
   pythonImportsCheck = [ "docopt" ];
   doCheck = false; # no tests in the package
diff --git a/pkgs/development/python-modules/docopt/default.nix b/pkgs/development/python-modules/docopt/default.nix
index d909162d7f188..3f7c7c7a0ece2 100644
--- a/pkgs/development/python-modules/docopt/default.nix
+++ b/pkgs/development/python-modules/docopt/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "docopt";
diff --git a/pkgs/development/python-modules/docplex/default.nix b/pkgs/development/python-modules/docplex/default.nix
index 29395e91a5f1d..464552809ddb9 100644
--- a/pkgs/development/python-modules/docplex/default.nix
+++ b/pkgs/development/python-modules/docplex/default.nix
@@ -1,16 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, futures ? null
-, docloud
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  setuptools,
+  futures ? null,
+  docloud,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "docplex";
   version = "2.27.239";
-  format = "setuptools";
+  pyproject = true;
 
   # No source available from official repo
   src = fetchPypi {
@@ -18,6 +20,13 @@ buildPythonPackage rec {
     hash = "sha256-Ug5+jDBBbamqd0JebzHvjLZoTRRPYWQiJl6g8BK0aMQ=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "setuptools~=68.2.2" "setuptools>=68.2.2"
+  '';
+
+  build-system = [ setuptools ];
+
   propagatedBuildInputs = [
     docloud
     requests
diff --git a/pkgs/development/python-modules/docrep/default.nix b/pkgs/development/python-modules/docrep/default.nix
index e507b8d022b46..20b77a521e410 100644
--- a/pkgs/development/python-modules/docrep/default.nix
+++ b/pkgs/development/python-modules/docrep/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  six,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/docstr-coverage/default.nix b/pkgs/development/python-modules/docstr-coverage/default.nix
index b9a6080fa7df8..2310ac6ffab70 100644
--- a/pkgs/development/python-modules/docstr-coverage/default.nix
+++ b/pkgs/development/python-modules/docstr-coverage/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, click
-, pyyaml
-, tqdm
-, pytestCheckHook
-, pytest-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  click,
+  pyyaml,
+  tqdm,
+  pytestCheckHook,
+  pytest-mock,
 }:
 let
-  version = "2.3.1";
+  version = "2.3.2";
 in
 buildPythonPackage {
   pname = "docstr-coverage";
@@ -18,12 +19,19 @@ buildPythonPackage {
     owner = "HunterMcGushion";
     repo = "docstr_coverage";
     rev = "refs/tags/v${version}";
-    hash = "sha256-QmQE6KZ2NdXKQun+uletxYPktWvfkrj6NPAVl/mmpAY=";
+    hash = "sha256-k1ny4fWS+CmgLNWPlYPsscjei2UZ6h8QJrZSay5abck=";
   };
 
-  propagatedBuildInputs = [ click pyyaml tqdm ];
+  propagatedBuildInputs = [
+    click
+    pyyaml
+    tqdm
+  ];
 
-  nativeCheckInputs = [ pytestCheckHook pytest-mock ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-mock
+  ];
 
   disabledTests = [
     # AssertionError: assert 'docstr_coverage' in '/build/source/tests'
diff --git a/pkgs/development/python-modules/docstring-parser/default.nix b/pkgs/development/python-modules/docstring-parser/default.nix
index e3e47d1c90794..d1a06935e0fd9 100644
--- a/pkgs/development/python-modules/docstring-parser/default.nix
+++ b/pkgs/development/python-modules/docstring-parser/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-rnDitZn/xI0I9KMQv6gxzVYevWUymDgyFETjAnRlEHw=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "docstring_parser"
-  ];
+  pythonImportsCheck = [ "docstring_parser" ];
 
   meta = with lib; {
     description = "Parse Python docstrings in various flavors";
diff --git a/pkgs/development/python-modules/docstring-to-markdown/default.nix b/pkgs/development/python-modules/docstring-to-markdown/default.nix
index 5a720d1954ddf..2595c6d6d1544 100644
--- a/pkgs/development/python-modules/docstring-to-markdown/default.nix
+++ b/pkgs/development/python-modules/docstring-to-markdown/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     sed -i -E '/--(cov|flake8)/d' setup.cfg
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "docstring_to_markdown"
-  ];
+  pythonImportsCheck = [ "docstring_to_markdown" ];
 
   meta = with lib; {
     homepage = "https://github.com/python-lsp/docstring-to-markdown";
diff --git a/pkgs/development/python-modules/doctest-ignore-unicode/default.nix b/pkgs/development/python-modules/doctest-ignore-unicode/default.nix
deleted file mode 100644
index 0ca439d9dcb64..0000000000000
--- a/pkgs/development/python-modules/doctest-ignore-unicode/default.nix
+++ /dev/null
@@ -1,20 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi, nose }:
-
-buildPythonPackage rec {
-  pname = "doctest-ignore-unicode";
-  version = "0.1.2";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1m9aa4qnyj21lbq4sbvmv1vcz7zksss4rz37ddf2hxv4hk8b547w";
-  };
-
-  propagatedBuildInputs = [ nose ];
-
-  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/pkgs/development/python-modules/docutils/default.nix b/pkgs/development/python-modules/docutils/default.nix
index 161e5361c1c14..cdfb53572213d 100644
--- a/pkgs/development/python-modules/docutils/default.nix
+++ b/pkgs/development/python-modules/docutils/default.nix
@@ -1,54 +1,65 @@
-{ stdenv
-, lib
-, fetchgit
-, buildPythonPackage
-, flit-core
-, pillow
-, python
-, pythonOlder
+{
+  stdenv,
+  lib,
+  fetchFromRepoOrCz,
+  buildPythonPackage,
+  flit-core,
+  pillow,
+  python,
+  pythonOlder,
 }:
 
-let self = buildPythonPackage rec {
-  pname = "docutils";
-  version = "0.21.1";
-  pyproject = true;
+# Note: this package is used to build LLVM’s documentation, which is part of the Darwin stdenv.
+# It cannot use `fetchgit` because that would pull curl into the bootstrap, which is disallowed.
 
-  disabled = pythonOlder "3.7";
+let
+  self = buildPythonPackage rec {
+    pname = "docutils";
+    version = "0.21.2";
+    pyproject = true;
 
-  src = fetchgit {
-    url = "git://repo.or.cz/docutils.git";
-    rev = "docutils-${version}";
-    hash = "sha256-ahnj6iKjyUCDxhgxJdwEb8huFIGpbuuLQBHDzKj6O9E=";
-  };
+    disabled = pythonOlder "3.7";
+
+    src = fetchFromRepoOrCz {
+      repo = "docutils";
+      rev = "docutils-${version}";
+      hash = "sha256-Q+9yW+BYUEvPYV504368JsAoKKoaTZTeKh4tVeiNv5Y=";
+    };
+
+    build-system = [ flit-core ];
+
+    # infinite recursion via sphinx and pillow
+    doCheck = false;
+    passthru.tests.pytest = self.overridePythonAttrs { doCheck = true; };
+
+    nativeCheckInputs = [ pillow ];
+
+    # Only Darwin needs LANG, but we could set it in general.
+    # It's done here conditionally to prevent mass-rebuilds.
+    checkPhase =
+      lib.optionalString stdenv.isDarwin ''LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" ''
+      + ''
+        ${python.interpreter} test/alltests.py
+      '';
+
+    # Create symlinks lacking a ".py" suffix, many programs depend on these names
+    postFixup = ''
+      for f in $out/bin/*.py; do
+        ln -s $(basename $f) $out/bin/$(basename $f .py)
+      done
+    '';
 
-  build-system = [ flit-core ];
-
-  # infinite recursion via sphinx and pillow
-  doCheck = false;
-  passthru.tests.pytest = self.overridePythonAttrs { doCheck = true; };
-
-  nativeCheckInputs = [
-    pillow
-  ];
-
-  # Only Darwin needs LANG, but we could set it in general.
-  # It's done here conditionally to prevent mass-rebuilds.
-  checkPhase = lib.optionalString stdenv.isDarwin ''LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" '' + ''
-    ${python.interpreter} test/alltests.py
-  '';
-
-  # Create symlinks lacking a ".py" suffix, many programs depend on these names
-  postFixup = ''
-    for f in $out/bin/*.py; do
-      ln -s $(basename $f) $out/bin/$(basename $f .py)
-    done
-  '';
-
-  meta = with lib; {
-    description = "Python Documentation Utilities";
-    homepage = "http://docutils.sourceforge.net/";
-    license = with licenses; [ publicDomain bsd2 psfl gpl3Plus ];
-    maintainers = with maintainers; [ AndersonTorres ];
+    meta = with lib; {
+      description = "Python Documentation Utilities";
+      homepage = "http://docutils.sourceforge.net/";
+      license = with licenses; [
+        publicDomain
+        bsd2
+        psfl
+        gpl3Plus
+      ];
+      maintainers = with maintainers; [ AndersonTorres ];
+    };
   };
-};
-in self
+in
+self
diff --git a/pkgs/development/python-modules/docx2python/default.nix b/pkgs/development/python-modules/docx2python/default.nix
index f65f4f7c9075e..4a646d45026b1 100644
--- a/pkgs/development/python-modules/docx2python/default.nix
+++ b/pkgs/development/python-modules/docx2python/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, poetry-core
-, lxml
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  poetry-core,
+  lxml,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +22,9 @@ buildPythonPackage rec {
     hash = "sha256-SavRYnNbESRQh9Elk8qCt/qdI2x+sYZJFMYy+Gojg2k=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    lxml
-  ];
+  propagatedBuildInputs = [ lxml ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/docx2txt/default.nix b/pkgs/development/python-modules/docx2txt/default.nix
index 97c7f2b77692d..75969bc1da3ff 100644
--- a/pkgs/development/python-modules/docx2txt/default.nix
+++ b/pkgs/development/python-modules/docx2txt/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -13,12 +14,10 @@ buildPythonPackage rec {
     hash = "sha256-LAbZjXz+LTlH5XYKV9kk4/8HdFs3nIc3cjki5wCSNuU=";
   };
 
-  pythonImportsCheck = [
-    "docx2txt"
-  ];
+  pythonImportsCheck = [ "docx2txt" ];
 
   meta = with lib; {
-    description = "A pure python-based utility to extract text and images from docx files";
+    description = "Pure python-based utility to extract text and images from docx files";
     mainProgram = "docx2txt";
     homepage = "https://github.com/ankushshah89/python-docx2txt";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/dodgy/default.nix b/pkgs/development/python-modules/dodgy/default.nix
index ada91ac3181e4..2e08bfc613413 100644
--- a/pkgs/development/python-modules/dodgy/default.nix
+++ b/pkgs/development/python-modules/dodgy/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, isPy3k
-, lib
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy3k,
+  lib,
 
-# pythonPackages
-, mock
-, nose
+  # pythonPackages
+  mock,
+  nose,
 }:
 
 buildPythonPackage rec {
@@ -35,8 +36,6 @@ buildPythonPackage rec {
     mainProgram = "dodgy";
     homepage = "https://github.com/landscapeio/dodgy";
     license = licenses.mit;
-    maintainers = with maintainers; [
-      kamadorueda
-    ];
+    maintainers = with maintainers; [ kamadorueda ];
   };
 }
diff --git a/pkgs/development/python-modules/dogpile-cache/default.nix b/pkgs/development/python-modules/dogpile-cache/default.nix
index 51d799b90f13f..8fa2509927bc3 100644
--- a/pkgs/development/python-modules/dogpile-cache/default.nix
+++ b/pkgs/development/python-modules/dogpile-cache/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, pytestCheckHook
-, mako
-, decorator
-, stevedore
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  pytestCheckHook,
+  mako,
+  decorator,
+  stevedore,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "dogpile-cache";
-  version = "1.3.2";
+  version = "1.3.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -20,12 +21,10 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "dogpile.cache";
     inherit version;
-    hash = "sha256-T3HcAzOtNRycb3BPW6Kje/Ucbu0EN9Gt9W4HWVmv5js=";
+    hash = "sha256-+EuO0LD7KX0VEFVEf6jcr3uuVm1Nve/s3MHzdmKrWIs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     decorator
@@ -39,7 +38,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A caching front-end based on the Dogpile lock";
+    description = "Caching front-end based on the Dogpile lock";
     homepage = "https://github.com/sqlalchemy/dogpile.cache";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/dogtag-pki/default.nix b/pkgs/development/python-modules/dogtag-pki/default.nix
index 53e49e7d7608d..f2077050314fb 100644
--- a/pkgs/development/python-modules/dogtag-pki/default.nix
+++ b/pkgs/development/python-modules/dogtag-pki/default.nix
@@ -1,5 +1,13 @@
-{ stdenv, lib, fetchPypi, buildPythonPackage, cryptography,
-python-ldap, requests, six }:
+{
+  stdenv,
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  cryptography,
+  python-ldap,
+  requests,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "dogtag-pki";
@@ -11,14 +19,20 @@ buildPythonPackage rec {
     sha256 = "sha256-rQSnQPNYr5SyeNbKoFAbnGb2X/8utrfWLa8gu93hy2w=";
   };
 
-  buildInputs = [ cryptography python-ldap ];
+  buildInputs = [
+    cryptography
+    python-ldap
+  ];
   pythonImportsCheck = [ "pki" ];
-  propagatedBuildInputs = [ requests six ];
+  propagatedBuildInputs = [
+    requests
+    six
+  ];
 
   meta = with lib; {
-    description = "An enterprise-class Certificate Authority";
-    homepage    = "https://github.com/dogtagpki/pki";
-    license     = licenses.gpl2;
+    description = "Enterprise-class Certificate Authority";
+    homepage = "https://github.com/dogtagpki/pki";
+    license = licenses.gpl2;
     maintainers = with maintainers; [ s1341 ];
   };
 }
diff --git a/pkgs/development/python-modules/dogtail/default.nix b/pkgs/development/python-modules/dogtail/default.nix
index 5186d95670584..ae4babf0c222d 100644
--- a/pkgs/development/python-modules/dogtail/default.nix
+++ b/pkgs/development/python-modules/dogtail/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, python
-, pygobject3
-, pyatspi
-, pycairo
-, at-spi2-core
-, gobject-introspection
-, gtk3
-, gsettings-desktop-schemas
-, fetchurl
-, dbus
-, xvfb-run
-, wrapGAppsHook3
+{
+  lib,
+  buildPythonPackage,
+  python,
+  pygobject3,
+  pyatspi,
+  pycairo,
+  at-spi2-core,
+  gobject-introspection,
+  gtk3,
+  gsettings-desktop-schemas,
+  fetchurl,
+  dbus,
+  xvfb-run,
+  wrapGAppsHook3,
 # , fetchPypi
 }:
 
@@ -20,7 +21,10 @@ buildPythonPackage {
   version = "0.9.11";
   format = "setuptools";
 
-  outputs = [ "out" "dev" ];
+  outputs = [
+    "out"
+    "dev"
+  ];
 
   # https://gitlab.com/dogtail/dogtail/issues/1
   # src = fetchPypi {
@@ -32,12 +36,21 @@ buildPythonPackage {
     sha256 = "EGyxYopupfXPYtTL9mm9ujZorvh8AGaNXVKBPWsGy3c=";
   };
 
-  patches = [
-    ./nix-support.patch
-  ];
+  patches = [ ./nix-support.patch ];
 
-  nativeBuildInputs = [ gobject-introspection dbus xvfb-run wrapGAppsHook3 ]; # for setup hooks
-  propagatedBuildInputs = [ at-spi2-core gtk3 pygobject3 pyatspi pycairo ];
+  nativeBuildInputs = [
+    gobject-introspection
+    dbus
+    xvfb-run
+    wrapGAppsHook3
+  ]; # for setup hooks
+  propagatedBuildInputs = [
+    at-spi2-core
+    gtk3
+    pygobject3
+    pyatspi
+    pycairo
+  ];
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/doit-py/default.nix b/pkgs/development/python-modules/doit-py/default.nix
index ee10af6396e70..8ebaadbcf2e76 100644
--- a/pkgs/development/python-modules/doit-py/default.nix
+++ b/pkgs/development/python-modules/doit-py/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, doit
-, configclass
-, mergedict
-, pytestCheckHook
-, hunspell
-, hunspellDicts
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  doit,
+  configclass,
+  mergedict,
+  pytestCheckHook,
+  hunspell,
+  hunspellDicts,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/doit/default.nix b/pkgs/development/python-modules/doit/default.nix
index f855de38ffa2a..4b49ba50fe470 100644
--- a/pkgs/development/python-modules/doit/default.nix
+++ b/pkgs/development/python-modules/doit/default.nix
@@ -1,72 +1,76 @@
-{ lib
-, stdenv
-, fetchPypi
-, buildPythonPackage
-, importlib-metadata
-, isPy3k
-, mock
-, pytestCheckHook
-, cloudpickle
-, pyinotify
-, macfsevents
-, toml
-, doit-py
-, pyflakes
-, configclass
-, mergedict
+{
+  lib,
+  stdenv,
+  fetchPypi,
+  buildPythonPackage,
+  importlib-metadata,
+  isPy3k,
+  mock,
+  pytestCheckHook,
+  cloudpickle,
+  pyinotify,
+  macfsevents,
+  toml,
+  doit-py,
+  pyflakes,
+  configclass,
+  mergedict,
 }:
 
-let doit = buildPythonPackage rec {
-  pname = "doit";
-  version = "0.36.0";
-  format = "setuptools";
+let
+  doit = buildPythonPackage rec {
+    pname = "doit";
+    version = "0.36.0";
+    format = "setuptools";
 
-  disabled = !isPy3k;
+    disabled = !isPy3k;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-cdB8zJUUyyL+WdmJmVd2ZeqrV+FvZE0EM2rgtLriNLw=";
-  };
+    src = fetchPypi {
+      inherit pname version;
+      hash = "sha256-cdB8zJUUyyL+WdmJmVd2ZeqrV+FvZE0EM2rgtLriNLw=";
+    };
 
-  propagatedBuildInputs = [
-    cloudpickle
-    importlib-metadata
-    toml
-  ] ++ lib.optional stdenv.isLinux pyinotify
-    ++ lib.optional stdenv.isDarwin macfsevents;
+    propagatedBuildInputs = [
+      cloudpickle
+      importlib-metadata
+      toml
+    ] ++ lib.optional stdenv.isLinux pyinotify ++ lib.optional stdenv.isDarwin macfsevents;
 
-  nativeCheckInputs = [
-    configclass
-    doit-py
-    mergedict
-    mock
-    pyflakes
-    pytestCheckHook
-  ];
+    nativeCheckInputs = [
+      configclass
+      doit-py
+      mergedict
+      mock
+      pyflakes
+      pytestCheckHook
+    ];
 
-  # escape infinite recursion with doit-py
-  doCheck = false;
+    # escape infinite recursion with doit-py
+    doCheck = false;
 
-  passthru.tests = {
-    # hangs on darwin
-    check = doit.overridePythonAttrs (_: { doCheck = !stdenv.isDarwin; });
-  };
+    passthru.tests = {
+      # hangs on darwin
+      check = doit.overridePythonAttrs (_: {
+        doCheck = !stdenv.isDarwin;
+      });
+    };
 
-  pythonImportsCheck = [ "doit" ];
+    pythonImportsCheck = [ "doit" ];
 
-  meta = with lib; {
-    homepage = "https://pydoit.org/";
-    description = "A task management & automation tool";
-    mainProgram = "doit";
-    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 ];
+    meta = with lib; {
+      homepage = "https://pydoit.org/";
+      description = "Task management & automation tool";
+      mainProgram = "doit";
+      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 ];
+    };
   };
-
-}; in doit
+in
+doit
diff --git a/pkgs/development/python-modules/dokuwiki/default.nix b/pkgs/development/python-modules/dokuwiki/default.nix
index 0d221c3b73b00..698c370ce8e7b 100644
--- a/pkgs/development/python-modules/dokuwiki/default.nix
+++ b/pkgs/development/python-modules/dokuwiki/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
 }:
 
 buildPythonPackage rec {
@@ -13,13 +14,11 @@ buildPythonPackage rec {
     hash = "sha256-gtTyO6jmjQT0ZwmxvH+RAe1v5aruNStfP1qz1+AqYXs=";
   };
 
-  pythonImportsCheck = [
-    "dokuwiki"
-  ];
+  pythonImportsCheck = [ "dokuwiki" ];
 
   meta = with lib; {
     homepage = "https://github.com/fmenabe/python-dokuwiki";
-    description = "A python module that aims to manage DokuWiki wikis by using the provided XML-RPC API";
+    description = "Python module that aims to manage DokuWiki wikis by using the provided XML-RPC API";
     license = licenses.mit;
     maintainers = with maintainers; [ netali ];
   };
diff --git a/pkgs/development/python-modules/domeneshop/default.nix b/pkgs/development/python-modules/domeneshop/default.nix
index 8778dfc6aa935..a099301f52262 100644
--- a/pkgs/development/python-modules/domeneshop/default.nix
+++ b/pkgs/development/python-modules/domeneshop/default.nix
@@ -1,13 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, urllib3
-, pyopenssl
-, cryptography
-, idna
-, certifi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  urllib3,
+  certifi,
 }:
 
 buildPythonPackage rec {
@@ -15,16 +12,12 @@ buildPythonPackage rec {
   version = "0.4.4";
   pyproject = true;
 
-  disabled = pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-UCxIDnhIAkxZ1oQXYRyAMdGgUsUZ6AlYXwsxL49TFAg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   dependencies = [
     certifi
diff --git a/pkgs/development/python-modules/dominate/default.nix b/pkgs/development/python-modules/dominate/default.nix
index 2e1f9b7b3559a..5e1db9ff7559e 100644
--- a/pkgs/development/python-modules/dominate/default.nix
+++ b/pkgs/development/python-modules/dominate/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-VYKEaH2biq4ZBOPWBRrRMt1KjAz1UbN+pOfkKjHRncQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dominate"
-  ];
+  pythonImportsCheck = [ "dominate" ];
 
   meta = with lib; {
     description = "Library for creating and manipulating HTML documents using an elegant DOM API";
diff --git a/pkgs/development/python-modules/doorbirdpy/default.nix b/pkgs/development/python-modules/doorbirdpy/default.nix
index c06ab09a4d6fe..b673e19ca4833 100644
--- a/pkgs/development/python-modules/doorbirdpy/default.nix
+++ b/pkgs/development/python-modules/doorbirdpy/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitLab
-, requests
-, pytestCheckHook
-, requests-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitLab,
+  requests,
+  pytestCheckHook,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
@@ -18,18 +19,14 @@ buildPythonPackage rec {
     hash = "sha256-pgL4JegD1gANefp7jLYb74N9wgpkDgQc/Fe+NyLBrkA=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     pytestCheckHook
     requests-mock
   ];
 
-  pythonImportsCheck = [
-    "doorbirdpy"
-  ];
+  pythonImportsCheck = [ "doorbirdpy" ];
 
   meta = with lib; {
     description = "Python wrapper for the DoorBird LAN API";
diff --git a/pkgs/development/python-modules/dopy/default.nix b/pkgs/development/python-modules/dopy/default.nix
index 036a7658fa387..684f4c17ad459 100644
--- a/pkgs/development/python-modules/dopy/default.nix
+++ b/pkgs/development/python-modules/dopy/default.nix
@@ -1,7 +1,8 @@
-{ pkgs
-, buildPythonPackage
-, requests
-, six
+{
+  pkgs,
+  buildPythonPackage,
+  requests,
+  six,
 }:
 
 buildPythonPackage {
@@ -16,7 +17,10 @@ buildPythonPackage {
     sha256 = "0ams289qcgna96aak96jbz6wybs6qb95h2gn8lb4lmx2p5sq4q56";
   };
 
-  propagatedBuildInputs = [ requests six ];
+  propagatedBuildInputs = [
+    requests
+    six
+  ];
 
   # contains no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/dot2tex/default.nix b/pkgs/development/python-modules/dot2tex/default.nix
index fdf7705469eee..acd9bbc34a1f9 100644
--- a/pkgs/development/python-modules/dot2tex/default.nix
+++ b/pkgs/development/python-modules/dot2tex/default.nix
@@ -1,12 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, substituteAll
-, pyparsing
-, graphviz
-, pytestCheckHook
-, texliveSmall
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  substituteAll,
+  pyparsing,
+  graphviz,
+  pytestCheckHook,
+  texliveSmall,
 }:
 
 buildPythonPackage rec {
@@ -30,13 +30,16 @@ buildPythonPackage rec {
     ./remove-duplicate-script.patch
   ];
 
-  propagatedBuildInputs = [
-    pyparsing
-  ];
+  propagatedBuildInputs = [ pyparsing ];
 
   nativeCheckInputs = [
     pytestCheckHook
-    (texliveSmall.withPackages (ps: with ps; [ preview pstricks ]))
+    (texliveSmall.withPackages (
+      ps: with ps; [
+        preview
+        pstricks
+      ]
+    ))
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/dotmap/default.nix b/pkgs/development/python-modules/dotmap/default.nix
index 2300ac013a248..dcac1f08ae5a0 100644
--- a/pkgs/development/python-modules/dotmap/default.nix
+++ b/pkgs/development/python-modules/dotmap/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,17 +18,11 @@ buildPythonPackage rec {
     hash = "sha256-WCGnkz8HX7R1Y0F8DpLgt8AxFYtMmmp+VhY0ebZYs2g=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "dotmap/test.py"
-  ];
+  pytestFlagsArray = [ "dotmap/test.py" ];
 
-  pythonImportsCheck = [
-    "dotmap"
-  ];
+  pythonImportsCheck = [ "dotmap" ];
 
   meta = with lib; {
     description = "Python for dot-access dictionaries";
diff --git a/pkgs/development/python-modules/dotty-dict/default.nix b/pkgs/development/python-modules/dotty-dict/default.nix
index 69da618a5a494..166f3cac9705b 100644
--- a/pkgs/development/python-modules/dotty-dict/default.nix
+++ b/pkgs/development/python-modules/dotty-dict/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, setuptools-scm
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/dotwiz/default.nix b/pkgs/development/python-modules/dotwiz/default.nix
index f7fcd7847b760..2c6b588cbb935 100644
--- a/pkgs/development/python-modules/dotwiz/default.nix
+++ b/pkgs/development/python-modules/dotwiz/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyheck
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyheck,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-ABmkwpJ40JceNJieW5bhg0gqWNrR6Wxj84nLCjKU11A=";
   };
 
-  propagatedBuildInputs = [
-    pyheck
-  ];
+  propagatedBuildInputs = [ pyheck ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dotwiz"
-  ];
+  pythonImportsCheck = [ "dotwiz" ];
 
   pytestFlagsArray = [
     "--ignore=benchmarks"
diff --git a/pkgs/development/python-modules/downloader-cli/default.nix b/pkgs/development/python-modules/downloader-cli/default.nix
index 248bafca3967d..719d84d00888f 100644
--- a/pkgs/development/python-modules/downloader-cli/default.nix
+++ b/pkgs/development/python-modules/downloader-cli/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, urllib3
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  urllib3,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-E2K3n9qCQofm4gXu1l7/0iMoJsniuzhsBUplr4aZ39s=";
   };
 
-  propagatedBuildInputs = [
-    urllib3
-  ];
+  propagatedBuildInputs = [ urllib3 ];
 
   # Disable checks due to networking (Errno 101)
   doCheck = false;
 
-  pythonImportsCheck = [
-    "downloader_cli"
-  ];
+  pythonImportsCheck = [ "downloader_cli" ];
 
   meta = with lib; {
     description = "Downloader with an awesome customizable progressbar";
diff --git a/pkgs/development/python-modules/dparse/default.nix b/pkgs/development/python-modules/dparse/default.nix
index 44649dd0e991a..59a19b30caeba 100644
--- a/pkgs/development/python-modules/dparse/default.nix
+++ b/pkgs/development/python-modules/dparse/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, fetchpatch2
-, setuptools
-, packaging
-, tomli
-, pyyaml
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  fetchpatch2,
+  setuptools,
+  packaging,
+  tomli,
+  pyyaml,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,15 +31,9 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    packaging
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  propagatedBuildInputs = [ packaging ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   passthru.optional-dependencies = {
     # FIXME pipenv = [ pipenv ];
@@ -49,9 +44,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "dparse"
-  ];
+  pythonImportsCheck = [ "dparse" ];
 
   disabledTests = [
     # requires unpackaged dependency pipenv
@@ -59,7 +52,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A parser for Python dependency files";
+    description = "Parser for Python dependency files";
     homepage = "https://github.com/pyupio/dparse";
     changelog = "https://github.com/pyupio/dparse/blob/${version}/HISTORY.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/dparse2/default.nix b/pkgs/development/python-modules/dparse2/default.nix
index 9d6cb9b085f2e..5b5848d28a752 100644
--- a/pkgs/development/python-modules/dparse2/default.nix
+++ b/pkgs/development/python-modules/dparse2/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, toml
-, pyyaml
-, packvers
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  toml,
+  pyyaml,
+  packvers,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -28,18 +29,14 @@ buildPythonPackage rec {
     packvers
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # Requries pipenv
     "tests/test_parse.py"
   ];
 
-  pythonImportsCheck = [
-    "dparse2"
-  ];
+  pythonImportsCheck = [ "dparse2" ];
 
   meta = with lib; {
     description = "Module to parse Python dependency files";
diff --git a/pkgs/development/python-modules/dpath/default.nix b/pkgs/development/python-modules/dpath/default.nix
index 7ef15b2379c62..808a83238c36b 100644
--- a/pkgs/development/python-modules/dpath/default.nix
+++ b/pkgs/development/python-modules/dpath/default.nix
@@ -1,29 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hypothesis
-, pythonOlder
-, mock
-, nose2
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hypothesis,
+  pythonOlder,
+  mock,
+  nose2,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "dpath";
-  version = "2.1.6";
+  version = "2.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-8eB8cuhgXGqegLZLyPQnFN4Ip4nH3kF+ScP4ehlpLkc=";
+    hash = "sha256-NPfmMNxV6j8hnlVXJvXaS0sl8iADGcjmkCw5Qljdaj4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     hypothesis
@@ -32,9 +31,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "dpath"
-  ];
+  pythonImportsCheck = [ "dpath" ];
 
   meta = with lib; {
     description = "Python library for accessing and searching dictionaries via /slashed/paths ala xpath";
diff --git a/pkgs/development/python-modules/dpcontracts/default.nix b/pkgs/development/python-modules/dpcontracts/default.nix
index 5a6491b7ee094..df423a46d4784 100644
--- a/pkgs/development/python-modules/dpcontracts/default.nix
+++ b/pkgs/development/python-modules/dpcontracts/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/dpkt/default.nix b/pkgs/development/python-modules/dpkt/default.nix
index 0e339ac00c9f9..564a1aade8923 100644
--- a/pkgs/development/python-modules/dpkt/default.nix
+++ b/pkgs/development/python-modules/dpkt/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/dploot/default.nix b/pkgs/development/python-modules/dploot/default.nix
index d8afa8317043f..4cb0a90c0f0f4 100644
--- a/pkgs/development/python-modules/dploot/default.nix
+++ b/pkgs/development/python-modules/dploot/default.nix
@@ -8,19 +8,18 @@
   poetry-core,
   pyasn1,
   pythonOlder,
-  pythonRelaxDepsHook,
 }:
 
 buildPythonPackage rec {
   pname = "dploot";
-  version = "2.7.1";
+  version = "2.7.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-vNL5xrZkfYO11i8ERqD9637vrMb3Gkmo3RjvQ1ONXbY=";
+    hash = "sha256-Vbaghcomf9gRso4DN/cpJ4j7t6AU2vg2OhucKbfS1hc=";
   };
 
   pythonRelaxDeps = [
@@ -29,7 +28,6 @@ buildPythonPackage rec {
     "pyasn1"
   ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   build-system = [ poetry-core ];
 
diff --git a/pkgs/development/python-modules/draftjs-exporter/default.nix b/pkgs/development/python-modules/draftjs-exporter/default.nix
index dd03080277b53..29205e3d5dd4b 100644
--- a/pkgs/development/python-modules/draftjs-exporter/default.nix
+++ b/pkgs/development/python-modules/draftjs-exporter/default.nix
@@ -1,10 +1,11 @@
-{ beautifulsoup4
-, buildPythonPackage
-, fetchFromGitHub
-, html5lib
-, lib
-, lxml
-, python
+{
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitHub,
+  html5lib,
+  lib,
+  lxml,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,10 @@ buildPythonPackage rec {
 
   passthru.optional-dependencies = {
     lxml = [ lxml ];
-    html5lib = [ beautifulsoup4 html5lib ];
+    html5lib = [
+      beautifulsoup4
+      html5lib
+    ];
   };
 
   checkInputs = passthru.optional-dependencies.lxml ++ passthru.optional-dependencies.html5lib;
diff --git a/pkgs/development/python-modules/dragonfly/default.nix b/pkgs/development/python-modules/dragonfly/default.nix
index 57b10f4a7c9de..1940c43ed06df 100644
--- a/pkgs/development/python-modules/dragonfly/default.nix
+++ b/pkgs/development/python-modules/dragonfly/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, decorator
-, packaging
-, pynput
-, regex
-, lark
-, enum34
-, pyperclip
-, six
-, requests
-, psutil
-, json-rpc
-, werkzeug
-, kaldi-active-grammar
-, sounddevice
-, webrtcvad
-, setuptools
-, xdotool
-, wmctrl
-, xorg
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  decorator,
+  packaging,
+  pynput,
+  regex,
+  lark,
+  enum34,
+  pyperclip,
+  six,
+  requests,
+  psutil,
+  json-rpc,
+  werkzeug,
+  kaldi-active-grammar,
+  sounddevice,
+  webrtcvad,
+  setuptools,
+  xdotool,
+  wmctrl,
+  xorg,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/dramatiq/default.nix b/pkgs/development/python-modules/dramatiq/default.nix
index 35c2b79c438dd..b44873e99f9a6 100644
--- a/pkgs/development/python-modules/dramatiq/default.nix
+++ b/pkgs/development/python-modules/dramatiq/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, gevent
-, pika
-, prometheus-client
-, pylibmc
-, pytestCheckHook
-, redis
-, watchdog
-, watchdog-gevent
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  gevent,
+  pika,
+  prometheus-client,
+  pylibmc,
+  pytestCheckHook,
+  redis,
+  watchdog,
+  watchdog-gevent,
 }:
 
 buildPythonPackage rec {
   pname = "dramatiq";
-  version = "1.16.0";
+  version = "1.17.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -24,12 +25,10 @@ buildPythonPackage rec {
     owner = "Bogdanp";
     repo = "dramatiq";
     rev = "refs/tags/v${version}";
-    hash = "sha256-gC1vWnG3zDuFT61i2VgDrP/qIwmGN5GkGv6EVxqUf4U=";
+    hash = "sha256-xKHTBo2AirxDXe/CLSqo++3AgxP4pVkGTNdgS5CCZ3c=";
   };
 
-  propagatedBuildInputs = [
-    prometheus-client
-  ];
+  propagatedBuildInputs = [ prometheus-client ];
 
   passthru.optional-dependencies = {
     all = [
@@ -40,25 +39,22 @@ buildPythonPackage rec {
       watchdog
       watchdog-gevent
     ];
-    gevent = [
-      gevent
-    ];
-    memcached = [
-      pylibmc
-    ];
-    rabbitmq = [
-      pika
-    ];
-    redis = [
-      redis
-    ];
+    gevent = [ gevent ];
+    memcached = [ pylibmc ];
+    rabbitmq = [ pika ];
+    redis = [ redis ];
     watch = [
       watchdog
       watchdog-gevent
     ];
   };
 
-  nativeCheckInputs = [ pytestCheckHook pika redis pylibmc ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    pika
+    redis
+    pylibmc
+  ];
 
   postPatch = ''
     sed -i ./setup.cfg \
@@ -68,32 +64,34 @@ buildPythonPackage rec {
       -e 's:--benchmark-compare::' \
   '';
 
-  disabledTests = [
-    # Requires a running redis
-    "test_after_process_boot_call_has_no_blocked_signals"
-    "test_cli_can_be_reloaded_on_sighup"
-    "test_cli_can_watch_for_source_code_changes"
-    "test_cli_fork_functions_have_no_blocked_signals"
-    "test_consumer_threads_have_no_blocked_signals"
-    "test_middleware_fork_functions_have_no_blocked_signals"
-    "test_redis_broker_can_connect_via_client"
-    "test_redis_broker_can_connect_via_url"
-    "test_redis_process_100k_messages_with_cli"
-    "test_redis_process_10k_fib_with_cli"
-    "test_redis_process_1k_latency_with_cli"
-    "test_worker_threads_have_no_blocked_signals"
-    # Requires a running rabbitmq
-    "test_rabbitmq_broker_can_be_passed_a_list_of_parameters_for_failover"
-    "test_rabbitmq_broker_can_be_passed_a_list_of_uri_for_failover"
-    "test_rabbitmq_broker_can_be_passed_a_semicolon_separated_list_of_uris"
-    "test_rabbitmq_broker_connections_are_lazy"
-    "test_rabbitmq_process_100k_messages_with_cli"
-    "test_rabbitmq_process_10k_fib_with_cli"
-    "test_rabbitmq_process_1k_latency_with_cli"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # Takes too long for darwin ofborg
-    "test_retry_exceptions_can_specify_a_delay"
-  ];
+  disabledTests =
+    [
+      # Requires a running redis
+      "test_after_process_boot_call_has_no_blocked_signals"
+      "test_cli_can_be_reloaded_on_sighup"
+      "test_cli_can_watch_for_source_code_changes"
+      "test_cli_fork_functions_have_no_blocked_signals"
+      "test_consumer_threads_have_no_blocked_signals"
+      "test_middleware_fork_functions_have_no_blocked_signals"
+      "test_redis_broker_can_connect_via_client"
+      "test_redis_broker_can_connect_via_url"
+      "test_redis_process_100k_messages_with_cli"
+      "test_redis_process_10k_fib_with_cli"
+      "test_redis_process_1k_latency_with_cli"
+      "test_worker_threads_have_no_blocked_signals"
+      # Requires a running rabbitmq
+      "test_rabbitmq_broker_can_be_passed_a_list_of_parameters_for_failover"
+      "test_rabbitmq_broker_can_be_passed_a_list_of_uri_for_failover"
+      "test_rabbitmq_broker_can_be_passed_a_semicolon_separated_list_of_uris"
+      "test_rabbitmq_broker_connections_are_lazy"
+      "test_rabbitmq_process_100k_messages_with_cli"
+      "test_rabbitmq_process_10k_fib_with_cli"
+      "test_rabbitmq_process_1k_latency_with_cli"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # Takes too long for darwin ofborg
+      "test_retry_exceptions_can_specify_a_delay"
+    ];
 
   pythonImportsCheck = [ "dramatiq" ];
 
diff --git a/pkgs/development/python-modules/drawille/default.nix b/pkgs/development/python-modules/drawille/default.nix
index a00b0b16892b2..dbb88dc6fe37b 100644
--- a/pkgs/development/python-modules/drawille/default.nix
+++ b/pkgs/development/python-modules/drawille/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
 
   doCheck = false; # pypi package has no tests, git has no tags
 
-  pythonImportsCheck = [
-    "drawille"
-  ];
+  pythonImportsCheck = [ "drawille" ];
 
   meta = with lib; {
     description = "Drawing in terminal with unicode braille characters";
diff --git a/pkgs/development/python-modules/drawilleplot/default.nix b/pkgs/development/python-modules/drawilleplot/default.nix
index 1ed452c1d1090..b1efda4769455 100644
--- a/pkgs/development/python-modules/drawilleplot/default.nix
+++ b/pkgs/development/python-modules/drawilleplot/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, drawille
-, matplotlib
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  drawille,
+  matplotlib,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     matplotlib
   ];
 
-  pythonImportsCheck = [
-    "drawilleplot"
-  ];
+  pythonImportsCheck = [ "drawilleplot" ];
 
   meta = with lib; {
     description = "matplotlib backend for graph output in unicode terminals using drawille";
diff --git a/pkgs/development/python-modules/drawsvg/default.nix b/pkgs/development/python-modules/drawsvg/default.nix
index 84fd89373ffcd..8feb1a1151ea6 100644
--- a/pkgs/development/python-modules/drawsvg/default.nix
+++ b/pkgs/development/python-modules/drawsvg/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "drawsvg";
-  version = "2.3.0";
+  version = "2.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "cduck";
     repo = "drawsvg";
     rev = "refs/tags/${version}";
-    hash = "sha256-LoA5yYeHO4GqS3dk7EMg1ZC42HBgmM6rSfigWMc4yUQ=";
+    hash = "sha256-JC7u6bEB7RCJVLeYnNqACmddLI5F5PyaaBxaAZ+N/5s=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/dremel3dpy/default.nix b/pkgs/development/python-modules/dremel3dpy/default.nix
index 628b765768603..d2bcddbe180b2 100644
--- a/pkgs/development/python-modules/dremel3dpy/default.nix
+++ b/pkgs/development/python-modules/dremel3dpy/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, decorator
-, fetchPypi
-, imageio
-, imutils
-, pythonOlder
-, requests
-, urllib3
-, tqdm
-, validators
-, yarl
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  decorator,
+  fetchPypi,
+  imageio,
+  imutils,
+  pythonOlder,
+  requests,
+  urllib3,
+  tqdm,
+  validators,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -40,9 +41,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dremel3dpy"
-  ];
+  pythonImportsCheck = [ "dremel3dpy" ];
 
   meta = with lib; {
     description = "Module for interacting with Dremel 3D printers";
diff --git a/pkgs/development/python-modules/drf-jwt/default.nix b/pkgs/development/python-modules/drf-jwt/default.nix
index f4d70949c67aa..5e49603858032 100644
--- a/pkgs/development/python-modules/drf-jwt/default.nix
+++ b/pkgs/development/python-modules/drf-jwt/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyjwt
-, djangorestframework
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyjwt,
+  djangorestframework,
 }:
 
 buildPythonPackage rec {
@@ -20,8 +21,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     pyjwt
     djangorestframework
-  ]
-  ++ pyjwt.optional-dependencies.crypto;
+  ] ++ pyjwt.optional-dependencies.crypto;
 
   # requires setting up a django instance
   doCheck = false;
diff --git a/pkgs/development/python-modules/drf-nested-routers/default.nix b/pkgs/development/python-modules/drf-nested-routers/default.nix
index 849fe8bb130c4..0cdf185fac680 100644
--- a/pkgs/development/python-modules/drf-nested-routers/default.nix
+++ b/pkgs/development/python-modules/drf-nested-routers/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, django
-, djangorestframework
-, pytestCheckHook
-, pytest-django
-, ipdb
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  django,
+  djangorestframework,
+  pytestCheckHook,
+  pytest-django,
+  ipdb,
 }:
 
 buildPythonPackage rec {
@@ -37,13 +38,9 @@ buildPythonPackage rec {
     })
   ];
 
-  buildInputs = [
-    django
-  ];
+  buildInputs = [ django ];
 
-  propagatedBuildInputs = [
-    djangorestframework
-  ];
+  propagatedBuildInputs = [ djangorestframework ];
 
   nativeCheckInputs = [
     ipdb
diff --git a/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix b/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix
index 2ce7b3e92074e..af9246717692b 100644
--- a/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix
+++ b/pkgs/development/python-modules/drf-spectacular-sidecar/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-EoQKbxzXEuKC50/W1/tBB2wASJZmNNwg9r1qhIB4Ws8=";
   };
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   # no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/drf-spectacular/default.nix b/pkgs/development/python-modules/drf-spectacular/default.nix
index f38a2fbf86bc7..9b957b53d4a0c 100644
--- a/pkgs/development/python-modules/drf-spectacular/default.nix
+++ b/pkgs/development/python-modules/drf-spectacular/default.nix
@@ -1,42 +1,47 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, dj-rest-auth
-, django
-, django-allauth
-, django-filter
-, django-oauth-toolkit
-, django-polymorphic
-, django-rest-auth
-, django-rest-polymorphic
-, djangorestframework
-, djangorestframework-camel-case
-, djangorestframework-dataclasses
-, djangorestframework-recursive
-, djangorestframework-simplejwt
-, drf-jwt
-, drf-nested-routers
-, drf-spectacular-sidecar
-, inflection
-, jsonschema
-, psycopg2
-, pytest-django
-, pytestCheckHook
-, pyyaml
-, uritemplate
+{
+  lib,
+  buildPythonPackage,
+  dj-rest-auth,
+  django,
+  django-allauth,
+  django-filter,
+  django-oauth-toolkit,
+  django-polymorphic,
+  django-rest-auth,
+  django-rest-polymorphic,
+  djangorestframework,
+  djangorestframework-camel-case,
+  djangorestframework-dataclasses,
+  djangorestframework-recursive,
+  djangorestframework-simplejwt,
+  drf-jwt,
+  drf-nested-routers,
+  drf-spectacular-sidecar,
+  fetchFromGitHub,
+  fetchpatch,
+  inflection,
+  jsonschema,
+  psycopg2,
+  pytest-django,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  setuptools,
+  uritemplate,
 }:
 
 buildPythonPackage rec {
   pname = "drf-spectacular";
-  version = "0.27.1";
-  format = "setuptools";
+  version = "0.27.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "tfranzel";
     repo = "drf-spectacular";
     rev = "refs/tags/${version}";
-    hash = "sha256-R6rxEo9SNNziXRWB+01UUInParpGcFDIkDZtN4k+dFE=";
+    hash = "sha256-lOgFDkAY+PqSeyLSvWFT7KPVicSJZxd6yl17GAGHbRs=";
   };
 
   patches = [
@@ -47,7 +52,9 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     django
     djangorestframework
     inflection
@@ -77,10 +84,11 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # requires django with gdal
+    # Test requires django with gdal
     "test_rest_framework_gis"
-    # outdated test artifact
+    # Outdated test artifact
     "test_pydantic_decoration"
+    "test_knox_auth_token"
   ];
 
   pythonImportsCheck = [ "drf_spectacular" ];
diff --git a/pkgs/development/python-modules/drf-ujson2/default.nix b/pkgs/development/python-modules/drf-ujson2/default.nix
index 58277fca7ed61..bf500258a0252 100644
--- a/pkgs/development/python-modules/drf-ujson2/default.nix
+++ b/pkgs/development/python-modules/drf-ujson2/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# dependencies
-, django
-, djangorestframework
-, ujson
-
-# tests
-, pytest-django
-, pytest-mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # dependencies
+  django,
+  djangorestframework,
+  ujson,
+
+  # tests
+  pytest-django,
+  pytest-mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     sed -i '/--cov/d' setup.cfg
   '';
 
-  buildInputs = [
-    django
-  ];
+  buildInputs = [ django ];
 
   propagatedBuildInputs = [
     djangorestframework
diff --git a/pkgs/development/python-modules/drf-writable-nested/default.nix b/pkgs/development/python-modules/drf-writable-nested/default.nix
index 2368c584a457c..2211073b3235f 100644
--- a/pkgs/development/python-modules/drf-writable-nested/default.nix
+++ b/pkgs/development/python-modules/drf-writable-nested/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, djangorestframework
-, pytestCheckHook
-, pytest-django
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  djangorestframework,
+  pytestCheckHook,
+  pytest-django,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/drf-yasg/default.nix b/pkgs/development/python-modules/drf-yasg/default.nix
index a8665ecc126f0..d6692b1f78b59 100644
--- a/pkgs/development/python-modules/drf-yasg/default.nix
+++ b/pkgs/development/python-modules/drf-yasg/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, inflection
-, ruamel-yaml
-, setuptools-scm
-, six
-, coreapi
-, djangorestframework
-, pytestCheckHook
-, pytest-django
-, datadiff
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  inflection,
+  ruamel-yaml,
+  setuptools-scm,
+  six,
+  coreapi,
+  djangorestframework,
+  pytestCheckHook,
+  pytest-django,
+  datadiff,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     sed -i "/packaging/d" requirements/base.txt
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     six
diff --git a/pkgs/development/python-modules/drivelib/default.nix b/pkgs/development/python-modules/drivelib/default.nix
index 5125be5a418da..ff378520cdde2 100644
--- a/pkgs/development/python-modules/drivelib/default.nix
+++ b/pkgs/development/python-modules/drivelib/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, expiringdict
-, google-auth-httplib2
-, google-auth-oauthlib
-, google-api-python-client
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  expiringdict,
+  google-auth-httplib2,
+  google-auth-oauthlib,
+  google-api-python-client,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/drms/default.nix b/pkgs/development/python-modules/drms/default.nix
index 8615edf31338f..3ab19124eb8ae 100644
--- a/pkgs/development/python-modules/drms/default.nix
+++ b/pkgs/development/python-modules/drms/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, pandas
-, six
-, astropy
-, oldest-supported-numpy
-, pytestCheckHook
-, pytest-doctestplus
-, pythonOlder
-, setuptools-scm
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  pandas,
+  six,
+  astropy,
+  oldest-supported-numpy,
+  pytestCheckHook,
+  pytest-doctestplus,
+  pythonOlder,
+  setuptools-scm,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -43,13 +44,9 @@ buildPythonPackage rec {
     pytest-doctestplus
   ];
 
-  disabledTests = [
-    "test_query_hexadecimal_strings"
-  ];
+  disabledTests = [ "test_query_hexadecimal_strings" ];
 
-  disabledTestPaths = [
-    "docs/tutorial.rst"
-  ];
+  disabledTestPaths = [ "docs/tutorial.rst" ];
 
   pythonImportsCheck = [ "drms" ];
 
diff --git a/pkgs/development/python-modules/dronecan/default.nix b/pkgs/development/python-modules/dronecan/default.nix
index 49c5dbb51db42..fc0c3e5e15f1b 100644
--- a/pkgs/development/python-modules/dronecan/default.nix
+++ b/pkgs/development/python-modules/dronecan/default.nix
@@ -1,28 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "dronecan";
   version = "1.0.26";
   format = "setuptools";
-  disabled = pythonOlder "3.3";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-D2odxa9ADswrg6rgKLTyQulHpGec1r0lWRUZDV5YvyE=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dronecan"
-  ];
+  pythonImportsCheck = [ "dronecan" ];
 
   meta = with lib; {
     description = "Python implementation of the DroneCAN v1 protocol stack";
diff --git a/pkgs/development/python-modules/dropbox/default.nix b/pkgs/development/python-modules/dropbox/default.nix
index 762b9b7ff8cf2..73a551a5c278a 100644
--- a/pkgs/development/python-modules/dropbox/default.nix
+++ b/pkgs/development/python-modules/dropbox/default.nix
@@ -1,35 +1,42 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, requests
-, setuptools
-, six
-, stone
-, mock
-, pytest-mock
-, pytestCheckHook
-, sphinxHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  requests,
+  six,
+  stone,
+  mock,
+  pytest-mock,
+  pytestCheckHook,
+  sphinxHook,
+  sphinx-rtd-theme,
 }:
 
 buildPythonPackage rec {
   pname = "dropbox";
-  version = "11.36.2";
-  format = "setuptools";
+  version = "12.0.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
-  outputs = ["out" "doc"];
+
+  outputs = [
+    "out"
+    "doc"
+  ];
 
   src = fetchFromGitHub {
     owner = "dropbox";
     repo = "dropbox-sdk-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-d++lxsbwPxnz1JPguWkImHXB+GQpMa9Uo3JNIxIe2ok=";
+    hash = "sha256-9Fsh06V226vIyJhrlLkh9Xr4UGoEIISnIFCtuKqI218=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     requests
-    setuptools
     six
     stone
   ];
@@ -42,16 +49,24 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "'pytest-runner == 5.2.0'," ""
+      --replace "'pytest-runner==5.2.0'," ""
   '';
 
   doCheck = true;
 
-  pythonImportsCheck = [
-    "dropbox"
+  pythonImportsCheck = [ "dropbox" ];
+
+  nativeBuildInputs = [
+    sphinxHook
+    sphinx-rtd-theme
   ];
 
-  nativeBuildInputs = [ sphinxHook ];
+  # Version 12.0.0 re-introduced Python 2 support and set some very restrictive version bounds
+  # https://github.com/dropbox/dropbox-sdk-python/commit/75596daf316b4a806f18057e2797a15bdf83cf6d
+  # This will be the last major version to support Python 2, so version bounds might be more reasonable again in the future.
+  pythonRelaxDeps = [
+    "stone"
+  ];
 
   # Set SCOPED_USER_DROPBOX_TOKEN environment variable to a valid value.
   disabledTests = [
@@ -73,6 +88,8 @@ buildPythonPackage rec {
     "test_as_user"
     "test_as_admin"
     "test_clone_when_team_linked"
+    "test_bad_pins"
+    "test_bad_pins_session"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/ds-store/default.nix b/pkgs/development/python-modules/ds-store/default.nix
index 70fc1198916d1..0e2986b3a8a6c 100644
--- a/pkgs/development/python-modules/ds-store/default.nix
+++ b/pkgs/development/python-modules/ds-store/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mac-alias
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mac-alias,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-45lmkE61uXVCBUMyVVzowTJoALY1m9JI68s7Yb0vCks=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    mac-alias
-  ];
+  propagatedBuildInputs = [ mac-alias ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ds_store"
-  ];
+  pythonImportsCheck = [ "ds_store" ];
 
   meta = with lib; {
     homepage = "https://github.com/al45tair/ds_store";
diff --git a/pkgs/development/python-modules/ds4drv/default.nix b/pkgs/development/python-modules/ds4drv/default.nix
index ab08f7b9c2ed8..d4ebc468f9ef5 100644
--- a/pkgs/development/python-modules/ds4drv/default.nix
+++ b/pkgs/development/python-modules/ds4drv/default.nix
@@ -1,12 +1,19 @@
-{ lib, fetchFromGitHub, buildPythonPackage
-, evdev, pyudev
-, bluez
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  evdev,
+  pyudev,
+  bluez,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "ds4drv";
   version = "0.5.1";
-  format = "setuptools";
+
+  pyproject = true;
+  build-system = [ setuptools ];
 
   # PyPi only carries py3 wheel
   src = fetchFromGitHub {
@@ -16,7 +23,15 @@ buildPythonPackage rec {
     sha256 = "0vinpla0apizzykcyfis79mrm1i6fhns83nkzw85svypdhkx2g8v";
   };
 
-  propagatedBuildInputs = [ evdev pyudev ];
+  postPatch = ''
+    substituteInPlace ds4drv/config.py \
+      --replace-fail SafeConfigParser ConfigParser
+  '';
+
+  dependencies = [
+    evdev
+    pyudev
+  ];
 
   buildInputs = [ bluez ];
 
diff --git a/pkgs/development/python-modules/dscribe/default.nix b/pkgs/development/python-modules/dscribe/default.nix
new file mode 100644
index 0000000000000..0df77d3e68058
--- /dev/null
+++ b/pkgs/development/python-modules/dscribe/default.nix
@@ -0,0 +1,47 @@
+{ buildPythonPackage
+, lib
+, fetchFromGitHub
+, numpy
+, scipy
+, ase
+, joblib
+, sparse
+, pybind11
+, scikit-learn
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  name = "dscribe";
+  version = "2.1.1";
+
+  src = fetchFromGitHub {
+    owner = "singroup";
+    repo = "dscribe";
+    rev = "v${version}";
+    fetchSubmodules = true; # Bundles a specific version of Eigen
+    hash = "sha256-2JY24cR2ie4+4svVWC4rm3Iy6Wfg0n2vkINz032kPWc=";
+  };
+
+  pyproject = true;
+
+  build-system = [
+    pybind11
+  ];
+
+  dependencies = [
+    numpy
+    scipy
+    ase
+    joblib
+    sparse
+    scikit-learn
+  ];
+
+  meta = with lib; {
+    description = "Machine learning descriptors for atomistic systems";
+    homepage = "https://github.com/SINGROUP/dscribe";
+    license = licenses.asl20;
+    maintainers = [ maintainers.sheepforce ];
+  };
+}
diff --git a/pkgs/development/python-modules/dsinternals/default.nix b/pkgs/development/python-modules/dsinternals/default.nix
index 93b600c04484d..ef827f13ba158 100644
--- a/pkgs/development/python-modules/dsinternals/default.nix
+++ b/pkgs/development/python-modules/dsinternals/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pycryptodomex
-, pyopenssl
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pycryptodomex,
+  pyopenssl,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,17 +27,11 @@ buildPythonPackage rec {
     pycryptodomex
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "dsinternals"
-  ];
+  pythonImportsCheck = [ "dsinternals" ];
 
-  pytestFlagsArray = [
-    "tests/*.py"
-  ];
+  pytestFlagsArray = [ "tests/*.py" ];
 
   meta = with lib; {
     description = "Module to interact with Windows Active Directory";
diff --git a/pkgs/development/python-modules/dsl2html/default.nix b/pkgs/development/python-modules/dsl2html/default.nix
index c3c2621ca2a9e..258f7a389a94d 100644
--- a/pkgs/development/python-modules/dsl2html/default.nix
+++ b/pkgs/development/python-modules/dsl2html/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-, setuptools
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     hash = "sha256-LUtTMqQuwahIeMm9QvMe6rdHEw5LEjMQdyZFZvf/HRU=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   pythonImportsCheck = [ "dsl" ];
 
diff --git a/pkgs/development/python-modules/dsmr-parser/default.nix b/pkgs/development/python-modules/dsmr-parser/default.nix
index 22e76d6036cb0..70cc28459df35 100644
--- a/pkgs/development/python-modules/dsmr-parser/default.nix
+++ b/pkgs/development/python-modules/dsmr-parser/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, dlms-cosem
-, fetchFromGitHub
-, pyserial
-, pyserial-asyncio
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, pytz
-, tailer
+{
+  lib,
+  buildPythonPackage,
+  dlms-cosem,
+  fetchFromGitHub,
+  pyserial,
+  pyserial-asyncio,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  pytz,
+  tailer,
 }:
 
 buildPythonPackage rec {
   pname = "dsmr-parser";
-  version = "1.4.0";
+  version = "1.4.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -22,7 +23,7 @@ buildPythonPackage rec {
     owner = "ndokter";
     repo = "dsmr_parser";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4L7hLDd/hYYdhnkcPRK48FnHutbyDXpnhQoVXUQLoDo=";
+    hash = "sha256-lP4KU3k7dGYHv24uNffTNe60u11Xg7YG05F/joVZu/Q=";
   };
 
   propagatedBuildInputs = [
@@ -33,17 +34,11 @@ buildPythonPackage rec {
     tailer
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = lib.optionals (pythonAtLeast "3.12") [
-    "test_receive_packet"
-  ];
+  disabledTests = lib.optionals (pythonAtLeast "3.12") [ "test_receive_packet" ];
 
-  pythonImportsCheck = [
-    "dsmr_parser"
-  ];
+  pythonImportsCheck = [ "dsmr_parser" ];
 
   meta = with lib; {
     description = "Python module to parse Dutch Smart Meter Requirements (DSMR)";
diff --git a/pkgs/development/python-modules/dtlssocket/default.nix b/pkgs/development/python-modules/dtlssocket/default.nix
index bad1a6c733777..589785da7bc37 100644
--- a/pkgs/development/python-modules/dtlssocket/default.nix
+++ b/pkgs/development/python-modules/dtlssocket/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, autoconf
-, cython_0
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  autoconf,
+  cython_0,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "dtlssocket";
-  version = "0.1.16";
+  version = "0.1.18";
 
   format = "pyproject";
 
   src = fetchPypi {
     pname = "DTLSSocket";
     inherit version;
-    hash = "sha256-MLEIrkX84cAz4+9sLd1+dBgGKuN0Io46f6lpslQ2ajk=";
+    hash = "sha256-TnS2LYe6CeAlezc83bGpRqOpQbPJMQHzJn6PnXon4FI=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/dtschema/default.nix b/pkgs/development/python-modules/dtschema/default.nix
index 4647dbbb3002b..d4875e0da8aa8 100644
--- a/pkgs/development/python-modules/dtschema/default.nix
+++ b/pkgs/development/python-modules/dtschema/default.nix
@@ -1,13 +1,14 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, jsonschema
-, pythonOlder
-, rfc3987
-, ruamel-yaml
-, setuptools-scm
-, libfdt
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jsonschema,
+  pythonOlder,
+  rfc3987,
+  ruamel-yaml,
+  setuptools-scm,
+  libfdt,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     ./fix_libfdt_name.patch
   ];
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     jsonschema
@@ -43,24 +42,25 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dtschema"
-  ];
+  pythonImportsCheck = [ "dtschema" ];
 
   meta = with lib; {
     description = "Tooling for devicetree validation using YAML and jsonschema";
     homepage = "https://github.com/devicetree-org/dt-schema/";
     changelog = "https://github.com/devicetree-org/dt-schema/releases/tag/v${version}";
-    license = with licenses; [ bsd2 /* or */ gpl2Only ];
+    license = with licenses; [
+      bsd2 # or
+      gpl2Only
+    ];
     maintainers = with maintainers; [ sorki ];
 
     broken = (
       # Library not loaded: @rpath/libfdt.1.dylib
-      stdenv.isDarwin ||
+      stdenv.isDarwin
+      ||
 
-      # see https://github.com/devicetree-org/dt-schema/issues/108
-      versionAtLeast jsonschema.version "4.18"
+        # see https://github.com/devicetree-org/dt-schema/issues/108
+        versionAtLeast jsonschema.version "4.18"
     );
   };
 }
-
diff --git a/pkgs/development/python-modules/dtw-python/default.nix b/pkgs/development/python-modules/dtw-python/default.nix
index 02e4176e9b978..a8481e78c7440 100644
--- a/pkgs/development/python-modules/dtw-python/default.nix
+++ b/pkgs/development/python-modules/dtw-python/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cython
-, oldest-supported-numpy
-, setuptools
-, wheel
-, scipy
-, numpy
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cython,
+  oldest-supported-numpy,
+  setuptools,
+  wheel,
+  scipy,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "dtw-python";
-  version = "1.4.2";
+  version = "1.4.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -22,7 +23,7 @@ buildPythonPackage rec {
     owner = "DynamicTimeWarping";
     repo = "dtw-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Y0XzAPc2iJIp799gXTO7bUcHuOrDyqkd64DulLbdcAg=";
+    hash = "sha256-9+0NxQAvhVeH9RcBPTr1CjIjTqTsiUz68UIne5dErvw=";
   };
 
   nativeBuildInputs = [
@@ -41,9 +42,7 @@ buildPythonPackage rec {
   preCheck = "cd $out";
   nativeCheckInputs = [ pytestCheckHook ];
   # tests/ are not included to output package, so we have to set path explicitly
-  pytestFlagsArray = [
-    "$src/tests"
-  ];
+  pytestFlagsArray = [ "$src/tests" ];
 
   pythonImportsCheck = [ "dtw" ];
 
diff --git a/pkgs/development/python-modules/duckdb-engine/default.nix b/pkgs/development/python-modules/duckdb-engine/default.nix
index be851c7e16fa9..c0f0db8e20230 100644
--- a/pkgs/development/python-modules/duckdb-engine/default.nix
+++ b/pkgs/development/python-modules/duckdb-engine/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, duckdb
-, hypothesis
-, ipython-sql
-, pandas
-, poetry-core
-, pytest-remotedata
-, snapshottest
-, sqlalchemy
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  duckdb,
+  hypothesis,
+  ipython-sql,
+  pandas,
+  poetry-core,
+  pytest-remotedata,
+  snapshottest,
+  sqlalchemy,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "duckdb-engine";
-  version = "0.12.0";
+  version = "0.13.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,12 +26,10 @@ buildPythonPackage rec {
     repo = "duckdb_engine";
     owner = "Mause";
     rev = "refs/tags/v${version}";
-    hash = "sha256-cm0vbz0VZ2Ws6FDWJO16q4KZW2obs0CBNrfY9jmR+6A=";
+    hash = "sha256-XbO9LyweJ+pYQvEbdmiUJnVNr2BQAgwu9Imq7rAFEYg=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     duckdb
@@ -46,9 +45,7 @@ buildPythonPackage rec {
     "test_commit"
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   checkInputs = [
     hypothesis
@@ -60,12 +57,11 @@ buildPythonPackage rec {
   ];
 
   pytestFlagsArray = [
-    "-m" "'not remote_data'"
+    "-m"
+    "'not remote_data'"
   ];
 
-  pythonImportsCheck = [
-    "duckdb_engine"
-  ];
+  pythonImportsCheck = [ "duckdb_engine" ];
 
   meta = with lib; {
     description = "SQLAlchemy driver for duckdb";
diff --git a/pkgs/development/python-modules/duckdb/default.nix b/pkgs/development/python-modules/duckdb/default.nix
index 34f20998ef3d5..132f72d70ee5f 100644
--- a/pkgs/development/python-modules/duckdb/default.nix
+++ b/pkgs/development/python-modules/duckdb/default.nix
@@ -1,37 +1,46 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, duckdb
-, fsspec
-, google-cloud-storage
-, numpy
-, openssl
-, pandas
-, psutil
-, pybind11
-, setuptools-scm
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  duckdb,
+  fsspec,
+  google-cloud-storage,
+  numpy,
+  openssl,
+  pandas,
+  psutil,
+  pybind11,
+  setuptools-scm,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
-  inherit (duckdb) patches pname rev src version;
+  inherit (duckdb)
+    patches
+    pname
+    rev
+    src
+    version
+    ;
   pyproject = true;
 
-  postPatch = (duckdb.postPatch or "") + ''
-    # we can't use sourceRoot otherwise patches don't apply, because the patches apply to the C++ library
-    cd tools/pythonpkg
+  postPatch =
+    (duckdb.postPatch or "")
+    + ''
+      # we can't use sourceRoot otherwise patches don't apply, because the patches apply to the C++ library
+      cd tools/pythonpkg
 
-    # 1. let nix control build cores
-    # 2. default to extension autoload & autoinstall disabled
-    substituteInPlace setup.py \
-      --replace-fail "ParallelCompile()" 'ParallelCompile("NIX_BUILD_CORES")' \
-      --replace-fail "define_macros.extend([('DUCKDB_EXTENSION_AUTOLOAD_DEFAULT', '1'), ('DUCKDB_EXTENSION_AUTOINSTALL_DEFAULT', '1')])" "pass"
-  '';
+      # 1. let nix control build cores
+      # 2. default to extension autoload & autoinstall disabled
+      substituteInPlace setup.py \
+        --replace-fail "ParallelCompile()" 'ParallelCompile("NIX_BUILD_CORES")' \
+        --replace-fail "define_macros.extend([('DUCKDB_EXTENSION_AUTOLOAD_DEFAULT', '1'), ('DUCKDB_EXTENSION_AUTOINSTALL_DEFAULT', '1')])" "pass"
+    '';
 
   env = {
     BUILD_HTTPFS = 1;
     DUCKDB_BUILD_UNITY = 1;
-    OVERRIDE_GIT_DESCRIBE="v${version}-0-g${rev}";
+    OVERRIDE_GIT_DESCRIBE = "v${version}-0-g${rev}";
   };
 
   nativeBuildInputs = [
@@ -54,11 +63,7 @@ buildPythonPackage rec {
   ];
 
   # test flags from .github/workflows/Python.yml
-  pytestFlagsArray = [
-    "--verbose"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "tests/fast"
-  ];
+  pytestFlagsArray = [ "--verbose" ] ++ lib.optionals stdenv.isDarwin [ "tests/fast" ];
 
   disabledTestPaths = [
     # avoid dependency on mypy
@@ -69,6 +74,9 @@ buildPythonPackage rec {
     # tries to make http request
     "test_install_non_existent_extension"
 
+    # test is flaky https://github.com/duckdb/duckdb/issues/11961
+    "test_fetchmany"
+
     # https://github.com/duckdb/duckdb/issues/10702
     # tests are racy and interrupt can be delivered before or after target point
     # causing a later test to fail with a spurious KeyboardInterrupt
@@ -82,9 +90,7 @@ buildPythonPackage rec {
     rm -rf duckdb
   '';
 
-  pythonImportsCheck = [
-    "duckdb"
-  ];
+  pythonImportsCheck = [ "duckdb" ];
 
   meta = with lib; {
     description = "Python binding for DuckDB";
diff --git a/pkgs/development/python-modules/duckduckgo-search/default.nix b/pkgs/development/python-modules/duckduckgo-search/default.nix
index 708762bb2622f..db9e071dadfc8 100644
--- a/pkgs/development/python-modules/duckduckgo-search/default.nix
+++ b/pkgs/development/python-modules/duckduckgo-search/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, aiofiles
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, h2
-, httpx
-, lxml
-, pythonOlder
-, requests
-, setuptools
-, socksio
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  orjson,
+  pyreqwest-impersonate,
+  curl-cffi,
+
+  # Optional dependencies
+  lxml,
 }:
 
 buildPythonPackage rec {
   pname = "duckduckgo-search";
-  version = "5.0";
+  version = "6.1.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,35 +24,32 @@ buildPythonPackage rec {
     owner = "deedy5";
     repo = "duckduckgo_search";
     rev = "refs/tags/v${version}";
-    hash = "sha256-OZFkSFyXC2MFP2MbKwF/qR8zvCFzPKgLmX+nuIztOpw=";
+    hash = "sha256-CKZgrUm1kRuD/wqDjE8psDjOJ1nA1nnt3ZutU8LMaoI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    aiofiles
+  dependencies = [
     click
-    h2
-    httpx
-    lxml
-    requests
-    socksio
-  ] ++ httpx.optional-dependencies.brotli
-    ++ httpx.optional-dependencies.http2
-    ++ httpx.optional-dependencies.socks;
-
-  pythonImportsCheck = [
-    "duckduckgo_search"
+    curl-cffi
+    orjson
+    pyreqwest-impersonate
   ];
 
-  meta = with lib; {
+  passthru.optional-dependencies = {
+    lxml = [ lxml ];
+  };
+
+  doCheck = false; # tests require network access
+
+  pythonImportsCheck = [ "duckduckgo_search" ];
+
+  meta = {
     description = "Python CLI and library for searching for words, documents, images, videos, news, maps and text translation using the DuckDuckGo.com search engine";
     mainProgram = "ddgs";
     homepage = "https://github.com/deedy5/duckduckgo_search";
-    changelog = "https://github.com/deedy5/duckduckgo_search/releases/tag/v${version}";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    changelog = "https://github.com/deedy5/duckduckgo_search/releases/tag/${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ drawbu ];
   };
 }
diff --git a/pkgs/development/python-modules/duct-py/default.nix b/pkgs/development/python-modules/duct-py/default.nix
index 6a79305e90b5b..2d9b7ca504ce8 100644
--- a/pkgs/development/python-modules/duct-py/default.nix
+++ b/pkgs/development/python-modules/duct-py/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "duct" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # This test completely empties the environment then tries to run a Python command.
@@ -30,7 +29,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python library for running child processes";
+    description = "Python library for running child processes";
     homepage = "https://github.com/oconnor663/duct.py";
     license = licenses.mit;
     maintainers = with maintainers; [ zmitchell ];
diff --git a/pkgs/development/python-modules/duden/default.nix b/pkgs/development/python-modules/duden/default.nix
index 6381da7271eee..a4da49d62f179 100644
--- a/pkgs/development/python-modules/duden/default.nix
+++ b/pkgs/development/python-modules/duden/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, crayons
-, fetchFromGitHub
-, poetry-core
-, pyxdg
-, pyyaml
-, requests
-, setuptools
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  crayons,
+  fetchFromGitHub,
+  poetry-core,
+  pyxdg,
+  pyyaml,
+  requests,
+  setuptools,
 }:
 
 let
@@ -23,9 +24,7 @@ let
       hash = "sha256-c6IItrjFVbsdYg3sDrExcxv7aRcKhd/M5hiZD+wBZ2Y=";
     };
 
-    nativeBuildInputs = [
-      poetry-core
-    ];
+    nativeBuildInputs = [ poetry-core ];
 
     propagatedBuildInputs = [
       beautifulsoup4
@@ -49,7 +48,10 @@ let
       '';
       license = with lib.licenses; [ mit ];
       mainProgram = "duden";
-      maintainers = with lib.maintainers; [ AndersonTorres linuxissuper ];
+      maintainers = with lib.maintainers; [
+        AndersonTorres
+        linuxissuper
+      ];
     };
   };
 in
diff --git a/pkgs/development/python-modules/duecredit/default.nix b/pkgs/development/python-modules/duecredit/default.nix
index 582d572a44203..5aa4505b91961 100644
--- a/pkgs/development/python-modules/duecredit/default.nix
+++ b/pkgs/development/python-modules/duecredit/default.nix
@@ -1,31 +1,46 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, pytestCheckHook
-, vcrpy
-, citeproc-py
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  pytestCheckHook,
+  vcrpy,
+  citeproc-py,
+  looseversion,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "duecredit";
-  version = "0.9.3";
+  version = "0.10.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+DeOqQ0R+XUlkuSHySFj2oDZqf85mT64PAi/LtTso3I=";
+    hash = "sha256-/nOiDk+7LZcroB7fN97BsLoeZG7+XvTMrwxnJMoofUI=";
   };
 
-  nativeBuildInputs = [ setuptools ];
-  propagatedBuildInputs = [ citeproc-py requests ];
+  postPatch = ''
+    substituteInPlace tox.ini  \
+      --replace-fail "--cov=duecredit" ""  \
+      --replace-fail "--cov-config=tox.ini" ""
+  '';
 
-  nativeCheckInputs = [ pytestCheckHook vcrpy ];
-  disabledTests = [ "test_import_doi" ];  # tries to access network
+  nativeBuildInputs = [ setuptools ];
+  propagatedBuildInputs = [
+    citeproc-py
+    looseversion
+    requests
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    vcrpy
+  ];
+  disabledTests = [ "test_import_doi" ]; # tries to access network
 
   preCheck = ''
     export HOME=$(mktemp -d)
@@ -33,12 +48,12 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "duecredit" ];
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/duecredit/duecredit";
     description = "Simple framework to embed references in code";
     mainProgram = "duecredit";
     changelog = "https://github.com/duecredit/duecredit/releases/tag/${version}";
-    license = licenses.bsd2;
-    maintainers = with maintainers; [ bcdarwin ];
+    license = lib.licenses.bsd2;
+    maintainers = [ lib.maintainers.bcdarwin ];
   };
 }
diff --git a/pkgs/development/python-modules/duet/default.nix b/pkgs/development/python-modules/duet/default.nix
index 1bde4c0f65fce..de9685345ba1d 100644
--- a/pkgs/development/python-modules/duet/default.nix
+++ b/pkgs/development/python-modules/duet/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -22,7 +23,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A simple future-based async library for python";
+    description = "Simple future-based async library for python";
     homepage = "https://github.com/google/duet";
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/pkgs/development/python-modules/dufte/default.nix b/pkgs/development/python-modules/dufte/default.nix
index b112e481a9cc9..53ef911b8814e 100644
--- a/pkgs/development/python-modules/dufte/default.nix
+++ b/pkgs/development/python-modules/dufte/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, importlib-metadata
-, matplotlib
-, numpy
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  importlib-metadata,
+  matplotlib,
+  numpy,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,16 +23,12 @@ buildPythonPackage rec {
     hash = "sha256:0ccsmpj160xj6w503a948aw8icj55mw9414xnmijmmjvlwhm0p48";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     matplotlib
     numpy
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   preCheck = ''
     export HOME=$(mktemp -d)
@@ -40,9 +37,7 @@ buildPythonPackage rec {
     ln -s $HOME/.config/matplotlib $HOME/.matplotlib
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "dufte" ];
 
diff --git a/pkgs/development/python-modules/dugong/default.nix b/pkgs/development/python-modules/dugong/default.nix
index 7cfc29c9ff813..95939d5ad8e5a 100644
--- a/pkgs/development/python-modules/dugong/default.nix
+++ b/pkgs/development/python-modules/dugong/default.nix
@@ -1,16 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pythonAtLeast
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "dugong";
   version = "3.8.1";
   format = "setuptools";
-  disabled = pythonOlder "3.3";
 
   src = fetchFromGitHub {
     owner = "python-dugong";
@@ -19,9 +18,7 @@ buildPythonPackage rec {
     sha256 = "1063c1779idc5nrjzfv5w1xqvyy3crapb2a2xll9y6xphxclnkjc";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Lots of tests hang during teardown with:
   #   ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:2396)
@@ -32,7 +29,10 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "HTTP 1.1 client designed for REST-ful APIs";
     homepage = "https://github.com/python-dugong/python-dugong/";
-    license = with licenses; [ psfl asl20 ];
+    license = with licenses; [
+      psfl
+      asl20
+    ];
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/dulwich/default.nix b/pkgs/development/python-modules/dulwich/default.nix
index 65a4eb19d88d9..436dae6ee78fa 100644
--- a/pkgs/development/python-modules/dulwich/default.nix
+++ b/pkgs/development/python-modules/dulwich/default.nix
@@ -1,26 +1,26 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, certifi
-, fastimport
-, fetchFromGitHub
-, gevent
-, geventhttpclient
-, git
-, glibcLocales
-, gnupg
-, gpgme
-, paramiko
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-rust
-, urllib3
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fastimport,
+  fetchFromGitHub,
+  fetchpatch2,
+  gevent,
+  geventhttpclient,
+  git,
+  glibcLocales,
+  gnupg,
+  gpgme,
+  paramiko,
+  unittestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-rust,
+  urllib3,
 }:
 
 buildPythonPackage rec {
-  version = "0.21.7";
+  version = "0.22.1";
   pname = "dulwich";
   format = "setuptools";
 
@@ -29,67 +29,58 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "jelmer";
     repo = "dulwich";
-    rev = "refs/tags/${pname}-${version}";
-    hash = "sha256-iP+6KtaQ8tfOobovSLSJZogS/XWW0LuHgE2oV8uQW/8=";
+    rev = "refs/tags/dulwich-${version}";
+    hash = "sha256-bf3ZUMX4afpdTBpFnx0HMyzCNG6V/p4eOl36djxGbtk=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      name = "dulwich-geventhttpclient-api-breakage.patch";
+      url = "https://github.com/jelmer/dulwich/commit/5f0497de9c37ac4f4e8f27bed8decce13765d3df.patch";
+      hash = "sha256-0GgDgmYuLCsMc9nRRLNL2W6WYrkZ/1ZnZBQusEAzLKI=";
+    })
+  ];
+
   build-system = [
     setuptools
     setuptools-rust
   ];
 
   propagatedBuildInputs = [
-    certifi
     urllib3
   ];
 
-  passthru.optional-dependencies = {
-    fastimport = [
-      fastimport
-    ];
+  optional-dependencies = {
+    fastimport = [ fastimport ];
+    https = [ urllib3 ];
     pgp = [
       gpgme
       gnupg
     ];
-    paramiko = [
-      paramiko
-    ];
+    paramiko = [ paramiko ];
   };
 
-  nativeCheckInputs = [
-    gevent
-    geventhttpclient
-    git
-    glibcLocales
-    pytest-xdist
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.fastimport
-  ++ passthru.optional-dependencies.pgp
-  ++ passthru.optional-dependencies.paramiko;
+  nativeCheckInputs =
+    [
+      gevent
+      geventhttpclient
+      git
+      glibcLocales
+      unittestCheckHook
+    ]
+    ++ lib.flatten (lib.attrValues optional-dependencies);
 
-  doCheck = !stdenv.isDarwin;
+  preCheck = ''
+    # requires swift config file
+    rm tests/contrib/test_swift_smoke.py
 
-  disabledTests = [
-    # OSError: [Errno 84] Invalid or incomplete multibyte or wide character: b'/build/tmpsqwlbpd1/\xc0'
-    "test_no_decode_encode"
-    # OSError: [Errno 84] Invalid or incomplete multibyte or wide character: b'/build/tmpwmtfyvo2/refs.git/refs/heads/\xcd\xee\xe2\xe0\xff\xe2\xe5\xf2\xea\xe01'
-    "test_cyrillic"
-    # OSError: [Errno 84] Invalid or incomplete multibyte or wide character: b'/build/tmpfseetobk/test/\xc0'
-    "test_commit_no_encode_decode"
-    # https://github.com/jelmer/dulwich/issues/1279
-    "test_init_connector"
-  ];
+    # ImportError: attempted relative import beyond top-level package
+    rm tests/test_greenthreads.py
+  '';
 
-  disabledTestPaths = [
-    # missing test inputs
-    "dulwich/contrib/test_swift_smoke.py"
-    # flaky on high core count >4
-    "dulwich/tests/compat/test_client.py"
-  ];
+  doCheck = !stdenv.isDarwin;
 
-  pythonImportsCheck = [
-    "dulwich"
-  ];
+  pythonImportsCheck = [ "dulwich" ];
 
   meta = with lib; {
     description = "Implementation of the Git file formats and protocols";
@@ -99,7 +90,10 @@ buildPythonPackage rec {
     '';
     homepage = "https://www.dulwich.io/";
     changelog = "https://github.com/jelmer/dulwich/blob/dulwich-${version}/NEWS";
-    license = with licenses; [ asl20 gpl2Plus ];
+    license = with licenses; [
+      asl20
+      gpl2Plus
+    ];
     maintainers = with maintainers; [ koral ];
   };
 }
diff --git a/pkgs/development/python-modules/dunamai/default.nix b/pkgs/development/python-modules/dunamai/default.nix
index f4929849869eb..3ee9866f98c57 100644
--- a/pkgs/development/python-modules/dunamai/default.nix
+++ b/pkgs/development/python-modules/dunamai/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, poetry-core
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, importlib-metadata
-, packaging
-, pytestCheckHook
-, git
+{
+  lib,
+  poetry-core,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  importlib-metadata,
+  packaging,
+  pytestCheckHook,
+  git,
 }:
 
 buildPythonPackage rec {
   pname = "dunamai";
-  version = "1.19.2";
-  format = "pyproject";
+  version = "1.21.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -20,18 +21,12 @@ buildPythonPackage rec {
     owner = "mtkennerly";
     repo = "dunamai";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oLJlBytdp9uVdKEdYDMz/IYnPP7XVnCUcThKO3IiW10=";
+    hash = "sha256-dsL1MhlL1Yjj06D0z2FzZ53Frfp4U+5dXA9vPjU+pvY=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    packaging
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  propagatedBuildInputs = [ packaging ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # needs to be able to run dunami from PATH
   preCheck = ''
@@ -52,9 +47,7 @@ buildPythonPackage rec {
     "test__version__from_git__shallow"
   ];
 
-  pythonImportsCheck = [
-    "dunamai"
-  ];
+  pythonImportsCheck = [ "dunamai" ];
 
   meta = with lib; {
     description = "Dynamic version generation";
diff --git a/pkgs/development/python-modules/dungeon-eos/default.nix b/pkgs/development/python-modules/dungeon-eos/default.nix
index 9f357168b0b5e..d4282575c88b2 100644
--- a/pkgs/development/python-modules/dungeon-eos/default.nix
+++ b/pkgs/development/python-modules/dungeon-eos/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchFromGitHub }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+}:
 
 buildPythonPackage rec {
   pname = "dungeon-eos";
@@ -17,7 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/SkyTemple/dungeon-eos";
-    description = "A package that simulates PMD EoS dungeon generation";
+    description = "Package that simulates PMD EoS dungeon generation";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ marius851000 ];
   };
diff --git a/pkgs/development/python-modules/duo-client/default.nix b/pkgs/development/python-modules/duo-client/default.nix
index 38b83c7b131f7..1c71b925e99c6 100644
--- a/pkgs/development/python-modules/duo-client/default.nix
+++ b/pkgs/development/python-modules/duo-client/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, freezegun
-, mock
-, pytestCheckHook
-, pythonOlder
-, pytz
-, setuptools
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  freezegun,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -30,13 +31,9 @@ buildPythonPackage rec {
       --replace-fail "flake8" ""
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    six
-  ];
+  dependencies = [ six ];
 
   nativeCheckInputs = [
     freezegun
@@ -45,9 +42,7 @@ buildPythonPackage rec {
     pytz
   ];
 
-  pythonImportsCheck = [
-    "duo_client"
-  ];
+  pythonImportsCheck = [ "duo_client" ];
 
   disabledTests = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/durus/default.nix b/pkgs/development/python-modules/durus/default.nix
index 43884551c7314..3c7fd696fa998 100644
--- a/pkgs/development/python-modules/durus/default.nix
+++ b/pkgs/development/python-modules/durus/default.nix
@@ -1,4 +1,9 @@
-{ stdenv, lib, buildPythonPackage, fetchPypi }:
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "durus";
diff --git a/pkgs/development/python-modules/dvc-azure/default.nix b/pkgs/development/python-modules/dvc-azure/default.nix
index dc166c55027ec..7aada9f9e75ac 100644
--- a/pkgs/development/python-modules/dvc-azure/default.nix
+++ b/pkgs/development/python-modules/dvc-azure/default.nix
@@ -1,12 +1,12 @@
-{ lib
-, adlfs
-, azure-identity
-, buildPythonPackage
-, dvc-objects
-, fetchPypi
-, knack
-, pythonRelaxDepsHook
-, setuptools-scm
+{
+  lib,
+  adlfs,
+  azure-identity,
+  buildPythonPackage,
+  dvc-objects,
+  fetchPypi,
+  knack,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -20,13 +20,10 @@ buildPythonPackage rec {
   };
 
   # Prevent circular dependency
-  pythonRemoveDeps = [
-    "dvc"
-  ];
+  pythonRemoveDeps = [ "dvc" ];
 
   nativeBuildInputs = [
     setuptools-scm
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dvc-data/default.nix b/pkgs/development/python-modules/dvc-data/default.nix
index d4a9573f9a9b7..6cbd0b1b71d83 100644
--- a/pkgs/development/python-modules/dvc-data/default.nix
+++ b/pkgs/development/python-modules/dvc-data/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, dictdiffer
-, diskcache
-, dvc-objects
-, fetchFromGitHub
-, funcy
-, pygtrie
-, pythonOlder
-, setuptools-scm
-, shortuuid
-, sqltrie
+{
+  lib,
+  buildPythonPackage,
+  dictdiffer,
+  diskcache,
+  dvc-objects,
+  fetchFromGitHub,
+  funcy,
+  pygtrie,
+  pythonOlder,
+  setuptools-scm,
+  shortuuid,
+  sqltrie,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-pr5RtVlGKKtpcmmCNGqcLiBFzJcajpqtPjBbzeCCHF8=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     dictdiffer
@@ -43,9 +42,7 @@ buildPythonPackage rec {
   # Tests depend on upath which is unmaintained and only available as wheel
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dvc_data"
-  ];
+  pythonImportsCheck = [ "dvc_data" ];
 
   meta = with lib; {
     description = "DVC's data management subsystem";
diff --git a/pkgs/development/python-modules/dvc-gdrive/default.nix b/pkgs/development/python-modules/dvc-gdrive/default.nix
index e7b2b0d7c499c..1cecf014856d7 100644
--- a/pkgs/development/python-modules/dvc-gdrive/default.nix
+++ b/pkgs/development/python-modules/dvc-gdrive/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, dvc
-, fetchFromGitHub
-, pydrive2
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  dvc,
+  fetchFromGitHub,
+  pydrive2,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -35,9 +36,7 @@ buildPythonPackage rec {
   # Circular dependency with dvc
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dvc_gdrive"
-  ];
+  pythonImportsCheck = [ "dvc_gdrive" ];
 
   meta = with lib; {
     description = "Google Drive plugin for DVC";
diff --git a/pkgs/development/python-modules/dvc-gs/default.nix b/pkgs/development/python-modules/dvc-gs/default.nix
index fa01c64c8daf5..f457d2e1d3e82 100644
--- a/pkgs/development/python-modules/dvc-gs/default.nix
+++ b/pkgs/development/python-modules/dvc-gs/default.nix
@@ -1,10 +1,10 @@
-{ lib
-, buildPythonPackage
-, dvc-objects
-, fetchPypi
-, gcsfs
-, pythonRelaxDepsHook
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  dvc-objects,
+  fetchPypi,
+  gcsfs,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +18,10 @@ buildPythonPackage rec {
   };
 
   # Prevent circular dependency
-  pythonRemoveDeps = [
-    "dvc"
-  ];
+  pythonRemoveDeps = [ "dvc" ];
 
   nativeBuildInputs = [
     setuptools-scm
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dvc-hdfs/default.nix b/pkgs/development/python-modules/dvc-hdfs/default.nix
index b532941e42ba5..7047f832c0458 100644
--- a/pkgs/development/python-modules/dvc-hdfs/default.nix
+++ b/pkgs/development/python-modules/dvc-hdfs/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, dvc
-, fetchFromGitHub
-, fsspec
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  dvc,
+  fetchFromGitHub,
+  fsspec,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -35,9 +36,7 @@ buildPythonPackage rec {
   # Circular dependency with dvc
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dvc_hdfs"
-  ];
+  pythonImportsCheck = [ "dvc_hdfs" ];
 
   meta = with lib; {
     description = "HDFS/WebHDFS plugin for dvc";
diff --git a/pkgs/development/python-modules/dvc-http/default.nix b/pkgs/development/python-modules/dvc-http/default.nix
index 48fb723cbc54e..ddd707736ae42 100644
--- a/pkgs/development/python-modules/dvc-http/default.nix
+++ b/pkgs/development/python-modules/dvc-http/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, aiohttp-retry
-, buildPythonPackage
-, fetchFromGitHub
-, dvc-objects
-, fsspec
-, funcy
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools-scm
+{
+  lib,
+  aiohttp-retry,
+  buildPythonPackage,
+  fetchFromGitHub,
+  dvc-objects,
+  fsspec,
+  funcy,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-ru/hOFv/RcS/7SBpTJU8xFxdllmaiH4dV1ouS6GGKkY=";
   };
 
-  build-system = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
   dependencies = [
     aiohttp-retry
@@ -39,9 +37,7 @@ buildPythonPackage rec {
   # ModuleNotFoundError: No module named 'dvc.testing'
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dvc_http"
-  ];
+  pythonImportsCheck = [ "dvc_http" ];
 
   meta = with lib; {
     description = "HTTP plugin for dvc";
diff --git a/pkgs/development/python-modules/dvc-objects/default.nix b/pkgs/development/python-modules/dvc-objects/default.nix
index 7911c1c411ad3..91e2ca8b7807e 100644
--- a/pkgs/development/python-modules/dvc-objects/default.nix
+++ b/pkgs/development/python-modules/dvc-objects/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fsspec
-, funcy
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, reflink
-, setuptools-scm
-, shortuuid
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fsspec,
+  funcy,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  reflink,
+  setuptools-scm,
+  shortuuid,
 }:
 
 buildPythonPackage rec {
@@ -31,15 +32,9 @@ buildPythonPackage rec {
       --replace " --benchmark-skip" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    fsspec
-  ]  ++ lib.optionals (pythonOlder "3.12") [
-    funcy
-  ];
+  propagatedBuildInputs = [ fsspec ] ++ lib.optionals (pythonOlder "3.12") [ funcy ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -49,9 +44,7 @@ buildPythonPackage rec {
     shortuuid
   ];
 
-  pythonImportsCheck = [
-    "dvc_objects"
-  ];
+  pythonImportsCheck = [ "dvc_objects" ];
 
   disabledTestPaths = [
     # Disable benchmarking
diff --git a/pkgs/development/python-modules/dvc-s3/default.nix b/pkgs/development/python-modules/dvc-s3/default.nix
index e112eca578c73..90a4e888a1e34 100644
--- a/pkgs/development/python-modules/dvc-s3/default.nix
+++ b/pkgs/development/python-modules/dvc-s3/default.nix
@@ -1,29 +1,28 @@
-{ lib
-, aiobotocore
-, boto3
-, buildPythonPackage
-, dvc-objects
-, fetchPypi
-, flatten-dict
-, pythonRelaxDepsHook
-, s3fs
-, setuptools-scm
+{
+  lib,
+  aiobotocore,
+  boto3,
+  buildPythonPackage,
+  dvc-objects,
+  fetchPypi,
+  flatten-dict,
+  s3fs,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "dvc-s3";
-  version = "3.1.0";
+  version = "3.2.0";
   pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-0yD5FsinQat3cbmY5teClFS0KEGUvED2Ah/JCbTtZ/s=";
+    pname = "dvc_s3";
+    inherit version;
+    hash = "sha256-HQEqwdzkdlmYb5GBI7SJMc+bNCmrC0oi/UsCRIGFzrY=";
   };
 
   # Prevent circular dependency
-  pythonRemoveDeps = [
-    "dvc"
-  ];
+  pythonRemoveDeps = [ "dvc" ];
 
   # dvc-s3 uses boto3 directly, we add in propagatedBuildInputs
   postPatch = ''
@@ -32,14 +31,14 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     setuptools-scm
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
     aiobotocore
     boto3
     dvc-objects
-    flatten-dict s3fs
+    flatten-dict
+    s3fs
   ];
 
   # Network access is needed for tests
diff --git a/pkgs/development/python-modules/dvc-ssh/default.nix b/pkgs/development/python-modules/dvc-ssh/default.nix
index 3a1ef111c0cd5..3578e1b572ebe 100644
--- a/pkgs/development/python-modules/dvc-ssh/default.nix
+++ b/pkgs/development/python-modules/dvc-ssh/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, bcrypt
-, buildPythonPackage
-, dvc-objects
-, fetchPypi
-, pythonRelaxDepsHook
-, setuptools-scm
-, sshfs
+{
+  lib,
+  bcrypt,
+  buildPythonPackage,
+  dvc-objects,
+  fetchPypi,
+  setuptools-scm,
+  sshfs,
 }:
 
 buildPythonPackage rec {
@@ -25,7 +25,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     setuptools-scm
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/dvc-studio-client/default.nix b/pkgs/development/python-modules/dvc-studio-client/default.nix
index c336f5a3cc74b..63187c72342c3 100644
--- a/pkgs/development/python-modules/dvc-studio-client/default.nix
+++ b/pkgs/development/python-modules/dvc-studio-client/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, dulwich
-, fetchFromGitHub
-, gitpython
-, pythonOlder
-, requests
-, setuptools-scm
-, voluptuous
+{
+  lib,
+  buildPythonPackage,
+  dulwich,
+  fetchFromGitHub,
+  gitpython,
+  pythonOlder,
+  requests,
+  setuptools-scm,
+  voluptuous,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-JLrsbgifoUnN1Mwml9tO3/SkA6miE14AGjxrFwEcRks=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     dulwich
@@ -34,9 +33,7 @@ buildPythonPackage rec {
     voluptuous
   ];
 
-  pythonImportsCheck = [
-    "dvc_studio_client"
-  ];
+  pythonImportsCheck = [ "dvc_studio_client" ];
 
   # Tests try to access network
   doCheck = false;
diff --git a/pkgs/development/python-modules/dvc-task/default.nix b/pkgs/development/python-modules/dvc-task/default.nix
index b84a19b494acf..cbdc820633900 100644
--- a/pkgs/development/python-modules/dvc-task/default.nix
+++ b/pkgs/development/python-modules/dvc-task/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools-scm
-, kombu
-, shortuuid
-, celery
-, funcy
-, pytest-celery
-, pytest-mock
-, pytest-test-utils
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools-scm,
+  kombu,
+  shortuuid,
+  celery,
+  funcy,
+  pytest-celery,
+  pytest-mock,
+  pytest-test-utils,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-zSPv+eMGSsGXKtgi9r4EiGY1ZURXeJXWBKvR2GnfP8I=";
   };
 
-  build-system = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
   dependencies = [
     kombu
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "dvc_task"
-  ];
+  pythonImportsCheck = [ "dvc_task" ];
 
   meta = with lib; {
     description = "Celery task queue used in DVC";
diff --git a/pkgs/development/python-modules/dvc/default.nix b/pkgs/development/python-modules/dvc/default.nix
index f9190e727a1da..85c817f2f4fc1 100644
--- a/pkgs/development/python-modules/dvc/default.nix
+++ b/pkgs/development/python-modules/dvc/default.nix
@@ -36,7 +36,6 @@
   pygtrie,
   pyparsing,
   pythonOlder,
-  pythonRelaxDepsHook,
   requests,
   rich,
   ruamel-yaml,
@@ -58,7 +57,7 @@
 
 buildPythonPackage rec {
   pname = "dvc";
-  version = "3.50.0";
+  version = "3.51.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -67,7 +66,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = "dvc";
     rev = "refs/tags/${version}";
-    hash = "sha256-/MvKWpJzKWLj1+y8nPMQiAwdktmQyJNM+s6ctYNk9u0=";
+    hash = "sha256-MjzunpPWzGfa62Jr+krEdm+i+N10QNmW7qRWaU/58OM=";
   };
 
   pythonRelaxDeps = [
@@ -84,7 +83,6 @@ buildPythonPackage rec {
 
   build-system = [ setuptools-scm ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies =
     [
diff --git a/pkgs/development/python-modules/dvclive/default.nix b/pkgs/development/python-modules/dvclive/default.nix
index 7090433431a9e..45cdd3c924d20 100644
--- a/pkgs/development/python-modules/dvclive/default.nix
+++ b/pkgs/development/python-modules/dvclive/default.nix
@@ -1,38 +1,39 @@
-{ lib
-, buildPythonPackage
-, datasets
-, dvc
-, dvc-render
-, dvc-studio-client
-, fastai
-, fetchFromGitHub
-, funcy
-, gto
-, jsonargparse
-, lightgbm
-, lightning
-, matplotlib
-, mmcv
-, numpy
-, optuna
-, pandas
-, pillow
-, psutil
-, pynvml
-, pythonOlder
-, ruamel-yaml
-, scikit-learn
-, scmrepo
-, setuptools-scm
-, tensorflow
-, torch
-, transformers
-, xgboost
+{
+  lib,
+  buildPythonPackage,
+  datasets,
+  dvc,
+  dvc-render,
+  dvc-studio-client,
+  fastai,
+  fetchFromGitHub,
+  funcy,
+  gto,
+  jsonargparse,
+  lightgbm,
+  lightning,
+  matplotlib,
+  mmcv,
+  numpy,
+  optuna,
+  pandas,
+  pillow,
+  psutil,
+  pynvml,
+  pythonOlder,
+  ruamel-yaml,
+  scikit-learn,
+  scmrepo,
+  setuptools-scm,
+  tensorflow,
+  torch,
+  transformers,
+  xgboost,
 }:
 
 buildPythonPackage rec {
   pname = "dvclive";
-  version = "3.45.0";
+  version = "3.46.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -41,12 +42,10 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = "dvclive";
     rev = "refs/tags/${version}";
-    hash = "sha256-76PjBPr3m1y5osW024dkhuvuXl2FiZ5oxlJ1Ucq8msI=";
+    hash = "sha256-ifr8gsGSOIBPC07JcFcV97yV4Io5J2uiMf2ucmySiWc=";
   };
 
-  build-system = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
   dependencies = [
     dvc
@@ -81,29 +80,17 @@ buildPythonPackage rec {
       numpy
       pillow
     ];
-    sklearn = [
-      scikit-learn
-    ];
+    sklearn = [ scikit-learn ];
     plots = [
       pandas
       scikit-learn
       numpy
     ];
-    markdown = [
-      matplotlib
-    ];
-    mmcv = [
-      mmcv
-    ];
-    tf = [
-      tensorflow
-    ];
-    xgb = [
-      xgboost
-    ];
-    lgbm = [
-      lightgbm
-    ];
+    markdown = [ matplotlib ];
+    mmcv = [ mmcv ];
+    tf = [ tensorflow ];
+    xgb = [ xgboost ];
+    lgbm = [ lightgbm ];
     huggingface = [
       datasets
       transformers
@@ -111,25 +98,19 @@ buildPythonPackage rec {
     # catalyst = [
     #   catalyst
     # ];
-    fastai = [
-      fastai
-    ];
+    fastai = [ fastai ];
     lightning = [
       lightning
       torch
       jsonargparse
     ] ++ jsonargparse.optional-dependencies.signatures;
-    optuna = [
-      optuna
-    ];
+    optuna = [ optuna ];
   };
 
   # Circular dependency with dvc
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dvclive"
-  ];
+  pythonImportsCheck = [ "dvclive" ];
 
   meta = with lib; {
     description = "Library for logging machine learning metrics and other metadata in simple file formats";
diff --git a/pkgs/development/python-modules/dwdwfsapi/default.nix b/pkgs/development/python-modules/dwdwfsapi/default.nix
index 824d23cbe23ea..8f72d8c974b77 100644
--- a/pkgs/development/python-modules/dwdwfsapi/default.nix
+++ b/pkgs/development/python-modules/dwdwfsapi/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatchling
-, requests
-, ciso8601
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatchling,
+  requests,
+  ciso8601,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-7dIVD+4MiYtsjAM5j67MlbiUN2Q5DpK6bUU0ZuHN2rk=";
   };
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   dependencies = [
     requests
@@ -31,15 +30,12 @@ buildPythonPackage rec {
   # All tests require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dwdwfsapi"
-  ];
+  pythonImportsCheck = [ "dwdwfsapi" ];
 
   meta = with lib; {
     description = "Python client to retrieve data provided by DWD via their geoserver WFS API";
     homepage = "https://github.com/stephan192/dwdwfsapi";
     changelog = "https://github.com/stephan192/dwdwfsapi/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/dyn/default.nix b/pkgs/development/python-modules/dyn/default.nix
index c391250d95179..f16d9d4d55d74 100644
--- a/pkgs/development/python-modules/dyn/default.nix
+++ b/pkgs/development/python-modules/dyn/default.nix
@@ -1,33 +1,35 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, pytest-cov, mock
-, pytest-xdist, cov-core, glibcLocales }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "dyn";
   version = "1.8.6";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-933etYrKRgSqJfOMIuIDL4Uv4/RdSEFMNWFtW5qiPpA=";
+    hash = "sha256-933etYrKRgSqJfOMIuIDL4Uv4/RdSEFMNWFtW5qiPpA=";
   };
 
-  buildInputs = [ glibcLocales ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytest
-    pytest-cov
-    mock
-    pytest-xdist
-    cov-core
-  ];
-  # Disable checks because they are not stateless and require internet access.
+  # Module has no tests
   doCheck = false;
 
-  LC_ALL="en_US.UTF-8";
+  pythonImportsCheck = [ "dyn" ];
 
   meta = with lib; {
     description = "Dynect dns lib";
-    homepage = "https://dyn.readthedocs.org/en/latest/intro.html";
+    homepage = "https://dyn.readthedocs.org";
+    changelog = "https://github.com/dyninc/dyn-python/blob/${version}/HISTORY.rst";
     license = licenses.bsd3;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/dynalite-devices/default.nix b/pkgs/development/python-modules/dynalite-devices/default.nix
index e07190f981045..e1ede4c3046b7 100644
--- a/pkgs/development/python-modules/dynalite-devices/default.nix
+++ b/pkgs/development/python-modules/dynalite-devices/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,28 +26,22 @@ buildPythonPackage rec {
     sed -i '/^addopts/d' setup.cfg
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "--asyncio-mode=auto"
-  ];
+  pytestFlagsArray = [ "--asyncio-mode=auto" ];
 
-  pythonImportsCheck = [
-    "dynalite_devices_lib"
-  ];
+  pythonImportsCheck = [ "dynalite_devices_lib" ];
 
   # it would use the erroneous tag v0.47
   passthru.skipBulkUpdate = true;
 
   meta = with lib; {
-    description = "An unofficial Dynalite DyNET interface creating devices";
+    description = "Unofficial Dynalite DyNET interface creating devices";
     homepage = "https://github.com/ziv1234/python-dynalite-devices";
     changelog = "https://github.com/ziv1234/python-dynalite-devices/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/dynalite-panel/default.nix b/pkgs/development/python-modules/dynalite-panel/default.nix
index 33be58906c750..8b0f711a571a1 100644
--- a/pkgs/development/python-modules/dynalite-panel/default.nix
+++ b/pkgs/development/python-modules/dynalite-panel/default.nix
@@ -1,8 +1,8 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -10,8 +10,6 @@ buildPythonPackage rec {
   version = "0.0.4";
   pyproject = true;
 
-  disabled = pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-m7nQzbxRe2qXUWAMeQlDZtc9F01DsbTzF/kI0ci3TFE=";
@@ -22,9 +20,7 @@ buildPythonPackage rec {
       --replace "~=" ">="
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   pythonImportsCheck = [ "dynalite_panel" ];
 
diff --git a/pkgs/development/python-modules/dynd/default.nix b/pkgs/development/python-modules/dynd/default.nix
index ff9364207c76d..b60e57b34c9c4 100644
--- a/pkgs/development/python-modules/dynd/default.nix
+++ b/pkgs/development/python-modules/dynd/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, cython
-, numpy
-, libdynd
-, fetchpatch
-, cmake
-, fetchFromGitHub
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  numpy,
+  libdynd,
+  fetchpatch,
+  cmake,
+  fetchFromGitHub,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -65,5 +66,4 @@ buildPythonPackage rec {
     description = "Python exposure of dynd";
     maintainers = with maintainers; [ teh ];
   };
-
 }
diff --git a/pkgs/development/python-modules/e3-core/default.nix b/pkgs/development/python-modules/e3-core/default.nix
index ef0b31b177ab2..2701b845234e7 100644
--- a/pkgs/development/python-modules/e3-core/default.nix
+++ b/pkgs/development/python-modules/e3-core/default.nix
@@ -1,67 +1,68 @@
-{ autoPatchelfHook
-, buildPythonPackage
-, colorama
-, coverage
-, distro
-, fetchFromGitHub
-, httpretty
-, lib
-, mock
-, packaging
-, psutil
-, pytest
-, pytest-socket
-, python-dateutil
-, pyyaml
-, requests
-, requests-cache
-, requests-toolbelt
-, stdenv
-, setuptools
-, stevedore
-, tomlkit
-, tox
-, tqdm
-, typeguard
+{
+  autoPatchelfHook,
+  buildPythonPackage,
+  colorama,
+  coverage,
+  distro,
+  fetchFromGitHub,
+  httpretty,
+  lib,
+  mock,
+  packaging,
+  psutil,
+  pytest,
+  pytest-socket,
+  python-dateutil,
+  pyyaml,
+  requests,
+  requests-cache,
+  requests-toolbelt,
+  stdenv,
+  setuptools,
+  stevedore,
+  tomlkit,
+  tox,
+  tqdm,
+  typeguard,
 }:
 
 buildPythonPackage rec {
   pname = "e3-core";
-  version = "22.4.0";
+  version = "22.5.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "AdaCore";
     repo = "e3-core";
-    rev = "v${version}";
-    hash = "sha256-dgEk2/qRfAYwUz+e5TWKUy/aPLpmyWZ32OV1i7QM9Fs=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-7csZYohU89uavSMPOKGJ8HClmtiweGSghyR7QgFfSY8=";
   };
 
-  patches = [
-    ./0001-use-distro-over-ld.patch
-  ];
+  patches = [ ./0001-use-distro-over-ld.patch ];
 
   nativeBuildInputs = [
     autoPatchelfHook
     setuptools
   ];
 
-  propagatedBuildInputs = [
-    colorama
-    packaging
-    pyyaml
-    python-dateutil
-    requests
-    requests-cache
-    requests-toolbelt
-    tqdm
-    stevedore
-  ] ++ lib.optional stdenv.isLinux [
-    # See setup.py:24. These are required only on Linux. Darwin has its own set
-    # of requirements.
-    psutil
-    distro
-  ];
+  propagatedBuildInputs =
+    [
+      colorama
+      packaging
+      pyyaml
+      python-dateutil
+      requests
+      requests-cache
+      requests-toolbelt
+      tqdm
+      stevedore
+    ]
+    ++ lib.optional stdenv.isLinux [
+      # See setup.py:24. These are required only on Linux. Darwin has its own set
+      # of requirements.
+      psutil
+      distro
+    ];
 
   pythonImportsCheck = [ "e3" ];
 
diff --git a/pkgs/development/python-modules/e3-testsuite/default.nix b/pkgs/development/python-modules/e3-testsuite/default.nix
index 6c13bbb5a08e3..c0f3f2af57cdf 100644
--- a/pkgs/development/python-modules/e3-testsuite/default.nix
+++ b/pkgs/development/python-modules/e3-testsuite/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, e3-core
-, fetchFromGitHub
-, lib
-, setuptools
-, stdenv
+{
+  buildPythonPackage,
+  e3-core,
+  fetchFromGitHub,
+  lib,
+  setuptools,
+  stdenv,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     hash = "sha256-V20tX0zi2DRHO42udUcW/CDMyBxh1uSTgac0zZGubsI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    e3-core
-  ];
+  propagatedBuildInputs = [ e3-core ];
 
   pythonImportsCheck = [ "e3" ];
 
diff --git a/pkgs/development/python-modules/eagle100/default.nix b/pkgs/development/python-modules/eagle100/default.nix
index 9d5e5d795028f..6d1bf6b349382 100644
--- a/pkgs/development/python-modules/eagle100/default.nix
+++ b/pkgs/development/python-modules/eagle100/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-eyYY1x8IjIfUx5OiaOomiWunsO1++seFwXlI/iKDDLw=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "eagle100"
-  ];
+  pythonImportsCheck = [ "eagle100" ];
 
   meta = with lib; {
     description = "Python library for interacting with Rainforest EAGLE devices";
diff --git a/pkgs/development/python-modules/easy-thumbnails/default.nix b/pkgs/development/python-modules/easy-thumbnails/default.nix
index 97afb19058f13..4fa457481c75f 100644
--- a/pkgs/development/python-modules/easy-thumbnails/default.nix
+++ b/pkgs/development/python-modules/easy-thumbnails/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, django
-, fetchPypi
-, pillow
-, pytestCheckHook
-, pythonOlder
-, reportlab
-, svglib
+{
+  lib,
+  buildPythonPackage,
+  django,
+  fetchPypi,
+  pillow,
+  pytestCheckHook,
+  pythonOlder,
+  reportlab,
+  svglib,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
   # Tests require a Django instance which is setup
   doCheck = false;
 
-  pythonImportsCheck = [
-    "easy_thumbnails"
-  ];
+  pythonImportsCheck = [ "easy_thumbnails" ];
 
   meta = with lib; {
     description = "Easy thumbnails for Django";
diff --git a/pkgs/development/python-modules/easydict/default.nix b/pkgs/development/python-modules/easydict/default.nix
index 14aae92ef5c4f..2194fcf112469 100644
--- a/pkgs/development/python-modules/easydict/default.nix
+++ b/pkgs/development/python-modules/easydict/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
 
   doCheck = false; # No tests in archive
 
-  pythonImportsCheck = [
-    "easydict"
-  ];
+  pythonImportsCheck = [ "easydict" ];
 
   meta = with lib; {
     homepage = "https://github.com/makinacorpus/easydict";
diff --git a/pkgs/development/python-modules/easyenergy/default.nix b/pkgs/development/python-modules/easyenergy/default.nix
index 5e3cc6b94f5cb..654227e0e059a 100644
--- a/pkgs/development/python-modules/easyenergy/default.nix
+++ b/pkgs/development/python-modules/easyenergy/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytest-freezer
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytest-freezer,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
       --replace 'addopts = "--cov"' ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -47,9 +46,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "easyenergy"
-  ];
+  pythonImportsCheck = [ "easyenergy" ];
 
   disabledTests = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/easygui/default.nix b/pkgs/development/python-modules/easygui/default.nix
index 96b1dbb16a24f..18e720fbc20ec 100644
--- a/pkgs/development/python-modules/easygui/default.nix
+++ b/pkgs/development/python-modules/easygui/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchPypi, buildPythonPackage, tkinter }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  tkinter,
+}:
 
 buildPythonPackage rec {
   pname = "easygui";
@@ -10,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-1lP/ee4fQvY7WgkPL5jOAjNdhq2JY7POJmGAXK/pmgQ=";
   };
 
-  propagatedBuildInputs = [
-    tkinter
-  ];
+  propagatedBuildInputs = [ tkinter ];
 
   doCheck = false; # No tests available
 
diff --git a/pkgs/development/python-modules/easyocr/default.nix b/pkgs/development/python-modules/easyocr/default.nix
index 18d76f8e67663..170ff96c35c8a 100644
--- a/pkgs/development/python-modules/easyocr/default.nix
+++ b/pkgs/development/python-modules/easyocr/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hdf5
-, numpy
-, onnx
-, opencv4
-, pillow
-, pyaml
-, pyclipper
-, python-bidi
-, pythonOlder
-, scikit-image
-, scipy
-, shapely
-, torch
-, torchvision
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hdf5,
+  numpy,
+  onnx,
+  opencv4,
+  pillow,
+  pyaml,
+  pyclipper,
+  python-bidi,
+  pythonOlder,
+  scikit-image,
+  scipy,
+  shapely,
+  torch,
+  torchvision,
 }:
 
 buildPythonPackage rec {
@@ -52,13 +53,9 @@ buildPythonPackage rec {
     torchvision
   ];
 
-  nativeCheckInputs = [
-    onnx
-  ];
+  nativeCheckInputs = [ onnx ];
 
-  pythonImportsCheck = [
-    "easyocr"
-  ];
+  pythonImportsCheck = [ "easyocr" ];
 
   meta = with lib; {
     description = "Ready-to-use OCR with 80+ supported languages and all popular writing scripts";
diff --git a/pkgs/development/python-modules/easyprocess/default.nix b/pkgs/development/python-modules/easyprocess/default.nix
index 7a82d78a1dbd8..17d20b2b65dce 100644
--- a/pkgs/development/python-modules/easyprocess/default.nix
+++ b/pkgs/development/python-modules/easyprocess/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "easyprocess";
diff --git a/pkgs/development/python-modules/easywatch/default.nix b/pkgs/development/python-modules/easywatch/default.nix
index ecc7cc068ff7a..b51b4c5e8d78c 100644
--- a/pkgs/development/python-modules/easywatch/default.nix
+++ b/pkgs/development/python-modules/easywatch/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, watchdog
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  watchdog,
 }:
 
 buildPythonPackage rec {
@@ -27,4 +28,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ fgaz ];
   };
 }
-
diff --git a/pkgs/development/python-modules/ebaysdk/default.nix b/pkgs/development/python-modules/ebaysdk/default.nix
index 27b3f8a29fbb3..dcaa761e8d238 100644
--- a/pkgs/development/python-modules/ebaysdk/default.nix
+++ b/pkgs/development/python-modules/ebaysdk/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, lxml
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  lxml,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/ebcdic/default.nix b/pkgs/development/python-modules/ebcdic/default.nix
index 430ebfe24c58b..8bf1308939f2a 100644
--- a/pkgs/development/python-modules/ebcdic/default.nix
+++ b/pkgs/development/python-modules/ebcdic/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
 
   sourceRoot = "${src.name}/${pname}";
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # https://github.com/roskakori/CodecMapper/issues/18
@@ -38,9 +35,7 @@ buildPythonPackage rec {
     "test_has_ignored_codec_names"
   ];
 
-  pythonImportsCheck = [
-    "ebcdic"
-  ];
+  pythonImportsCheck = [ "ebcdic" ];
 
   meta = with lib; {
     description = "Additional EBCDIC codecs";
diff --git a/pkgs/development/python-modules/ebooklib/default.nix b/pkgs/development/python-modules/ebooklib/default.nix
index 63ea0b4d06d20..67e00275f3b97 100644
--- a/pkgs/development/python-modules/ebooklib/default.nix
+++ b/pkgs/development/python-modules/ebooklib/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, lxml
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxml,
+  six,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/ecdsa/default.nix b/pkgs/development/python-modules/ecdsa/default.nix
index 3380d0f096167..85eee5a8a953b 100644
--- a/pkgs/development/python-modules/ecdsa/default.nix
+++ b/pkgs/development/python-modules/ecdsa/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pkgs
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pkgs,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -24,5 +25,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/warner/python-ecdsa";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/echo/default.nix b/pkgs/development/python-modules/echo/default.nix
index abf6c957b0479..b72a85ea9b03b 100644
--- a/pkgs/development/python-modules/echo/default.nix
+++ b/pkgs/development/python-modules/echo/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, setuptools-scm
-, libxcrypt
-, numpy
-, qt6
-, qtpy
-, pyqt6
-, pytestCheckHook
-, pytest-cov
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  libxcrypt,
+  numpy,
+  qt6,
+  qtpy,
+  pyqt6,
+  pytestCheckHook,
+  pytest-cov,
 }:
 
 buildPythonPackage rec {
@@ -27,12 +28,14 @@ buildPythonPackage rec {
     sha256 = "sha256-0FmUA7kOFSRZXwbj8d7asujBPOjE2pFhu6TDNSGD4r0=";
   };
 
-  nativeBuildInputs = [ setuptools setuptools-scm qt6.wrapQtAppsHook ];
-
-  buildInputs = lib.optionals (pythonOlder "3.9") [
-    libxcrypt
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+    qt6.wrapQtAppsHook
   ];
 
+  buildInputs = lib.optionals (pythonOlder "3.9") [ libxcrypt ];
+
   propagatedBuildInputs = [
     qt6.qtconnectivity
     qt6.qtbase
diff --git a/pkgs/development/python-modules/ecoaliface/default.nix b/pkgs/development/python-modules/ecoaliface/default.nix
index 1764eceeaf461..5906455093047 100644
--- a/pkgs/development/python-modules/ecoaliface/default.nix
+++ b/pkgs/development/python-modules/ecoaliface/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     sha256 = "f17b3452cfd31bb8c3509d59b846889c81db5fb85082c061c32703162cbe9083";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/ecos/default.nix b/pkgs/development/python-modules/ecos/default.nix
index 0327845506b87..6daec8eb775d7 100644
--- a/pkgs/development/python-modules/ecos/default.nix
+++ b/pkgs/development/python-modules/ecos/default.nix
@@ -1,48 +1,44 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nose
-, numpy
-, pythonOlder
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  oldest-supported-numpy,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "ecos";
-  version = "2.0.11";
-  format = "setuptools";
+  version = "2.0.13";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "embotech";
     repo = "ecos-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jflmXR7fuGRSyI6NoQrHFvkKqF/D4iq47StNSCdLbqQ=";
+    hash = "sha256-3NcZBZ7fnwiMelGssa74b5PgmXmNZhP4etNRpyrCkpo=";
     fetchSubmodules = true;
   };
 
-  propagatedBuildInputs = [
-    numpy
-    scipy
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    nose
+  dependencies = [
+    oldest-supported-numpy
+    scipy
   ];
 
-  checkPhase = ''
-    cd ./src
-    nosetests test_interface.py test_interface_bb.py
-  '';
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ecos"
-  ];
+  pythonImportsCheck = [ "ecos" ];
 
   meta = with lib; {
     description = "Python interface for ECOS";
     homepage = "https://github.com/embotech/ecos-python";
+    changelog = "https://github.com/embotech/ecos-python/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ drewrisinger ];
   };
diff --git a/pkgs/development/python-modules/ecpy/default.nix b/pkgs/development/python-modules/ecpy/default.nix
index 5f18e814cfe7f..208ff118c83b3 100644
--- a/pkgs/development/python-modules/ecpy/default.nix
+++ b/pkgs/development/python-modules/ecpy/default.nix
@@ -1,4 +1,10 @@
-{ lib, fetchPypi, buildPythonPackage, isPy3k, future }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  isPy3k,
+  future,
+}:
 
 buildPythonPackage rec {
   pname = "ecpy";
diff --git a/pkgs/development/python-modules/ecs-logging/default.nix b/pkgs/development/python-modules/ecs-logging/default.nix
index cd55d1c4c2b9c..86caf047fa80b 100644
--- a/pkgs/development/python-modules/ecs-logging/default.nix
+++ b/pkgs/development/python-modules/ecs-logging/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,16 +21,12 @@ buildPythonPackage rec {
     hash = "sha256-Gf44bT3/gmHy+yaQ1+bhCFB33ym2G14tzNqTQyC3BJU=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   # Circular dependency elastic-apm
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ecs_logging"
-  ];
+  pythonImportsCheck = [ "ecs_logging" ];
 
   meta = with lib; {
     description = "Logging formatters for the Elastic Common Schema (ECS) in Python";
diff --git a/pkgs/development/python-modules/ed25519-blake2b/default.nix b/pkgs/development/python-modules/ed25519-blake2b/default.nix
index 1260261adf46f..a034bbb6424b8 100644
--- a/pkgs/development/python-modules/ed25519-blake2b/default.nix
+++ b/pkgs/development/python-modules/ed25519-blake2b/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-cx6fk80awaZGSVdfNRmpn/4LseTPe/X18L5ROjnfc2M=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "ed25519_blake2b"
-  ];
+  pythonImportsCheck = [ "ed25519_blake2b" ];
 
   meta = with lib; {
     description = "Ed25519 public-key signatures (BLAKE2b fork)";
@@ -31,6 +28,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/Matoking/python-ed25519-blake2b";
     changelog = "https://github.com/Matoking/python-ed25519-blake2b/releases/tag/${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ onny stargate01 ];
+    maintainers = with maintainers; [
+      onny
+      stargate01
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/ed25519/default.nix b/pkgs/development/python-modules/ed25519/default.nix
index 80e405313cbc0..1f10b9be005d8 100644
--- a/pkgs/development/python-modules/ed25519/default.nix
+++ b/pkgs/development/python-modules/ed25519/default.nix
@@ -2,7 +2,6 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   pythonOlder,
   setuptools,
   versioneer,
@@ -31,9 +30,7 @@ buildPythonPackage rec {
     versioneer
   ];
 
-  pythonImportsCheck = [
-    "ed25519"
-  ];
+  pythonImportsCheck = [ "ed25519" ];
 
   meta = with lib; {
     description = "Ed25519 public-key signatures";
diff --git a/pkgs/development/python-modules/edalize/default.nix b/pkgs/development/python-modules/edalize/default.nix
index 33cf25b0305a2..e710689aaa26e 100644
--- a/pkgs/development/python-modules/edalize/default.nix
+++ b/pkgs/development/python-modules/edalize/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, coreutils
-, jinja2
-, pandas
-, pyparsing
-, pytestCheckHook
-, pythonOlder
-, which
-, yosys
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  coreutils,
+  jinja2,
+  pandas,
+  pyparsing,
+  pytestCheckHook,
+  pythonOlder,
+  which,
+  yosys,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    jinja2
-  ];
+  propagatedBuildInputs = [ jinja2 ];
 
   passthru.optional-dependencies = {
     reporting = [
@@ -55,9 +54,7 @@ buildPythonPackage rec {
     yosys
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "edalize"
-  ];
+  pythonImportsCheck = [ "edalize" ];
 
   disabledTests = [
     # disable failures related to pandas 2.1.0 apply(...,errors="ignore")
diff --git a/pkgs/development/python-modules/editables/default.nix b/pkgs/development/python-modules/editables/default.nix
index f3db3a96d26fd..32030cff7d467 100644
--- a/pkgs/development/python-modules/editables/default.nix
+++ b/pkgs/development/python-modules/editables/default.nix
@@ -1,37 +1,35 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "editables";
   version = "0.5";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-MJYn2bXErcDmaNjG+nusG6fIxdQVwtJ/YPCB+OgNHeI=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  build-system = [ flit-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Tests not included in archive.
   doCheck = false;
 
   pythonImportsCheck = [ "editables" ];
 
-  meta = with lib; {
+  meta = {
     description = "Editable installations";
-    maintainers = with maintainers; [ ];
     homepage = "https://github.com/pfmoore/editables";
-    license = licenses.mit;
+    changelog = "https://github.com/pfmoore/editables/blob/${version}/CHANGELOG.md";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ getchoo ];
   };
 }
diff --git a/pkgs/development/python-modules/editdistance-s/default.nix b/pkgs/development/python-modules/editdistance-s/default.nix
index b6eca2e0242c9..e0ae8a91703db 100644
--- a/pkgs/development/python-modules/editdistance-s/default.nix
+++ b/pkgs/development/python-modules/editdistance-s/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, cffi
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  cffi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/editdistance/default.nix b/pkgs/development/python-modules/editdistance/default.nix
index b4f62dd6e8239..acfc12fb1ff83 100644
--- a/pkgs/development/python-modules/editdistance/default.nix
+++ b/pkgs/development/python-modules/editdistance/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, cython
-, pdm-backend
-, setuptools
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  cython,
+  pdm-backend,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "editdistance";
   version = "0.8.1";
-  pyproject =true;
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -28,13 +29,9 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "editdistance"
-  ];
+  pythonImportsCheck = [ "editdistance" ];
 
   meta = with lib; {
     description = "Python implementation of the edit distance (Levenshtein distance)";
diff --git a/pkgs/development/python-modules/editdistpy/default.nix b/pkgs/development/python-modules/editdistpy/default.nix
index 5a53b3e868008..f6b18b372149b 100644
--- a/pkgs/development/python-modules/editdistpy/default.nix
+++ b/pkgs/development/python-modules/editdistpy/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-, pytestCheckHook
+  pytestCheckHook,
 
-, pythonOlder
+  pythonOlder,
 
-, setuptools
-, cython
+  setuptools,
+  cython,
 
-, symspellpy
-, numpy
-, editdistpy
+  symspellpy,
+  numpy,
+  editdistpy,
 }:
 
 buildPythonPackage rec {
@@ -47,23 +48,18 @@ buildPythonPackage rec {
   '';
 
   passthru.tests = {
-    check = editdistpy.overridePythonAttrs (
-      _: {
-        doCheck = true;
-      }
-    );
+    check = editdistpy.overridePythonAttrs (_: {
+      doCheck = true;
+    });
   };
 
-  pythonImportsCheck = [
-    "editdistpy"
-  ];
+  pythonImportsCheck = [ "editdistpy" ];
 
-  meta = with lib;
-    {
-      description = "Fast Levenshtein and Damerau optimal string alignment algorithms";
-      homepage = "https://github.com/mammothb/editdistpy";
-      changelog = "https://github.com/mammothb/editdistpy/releases/tag/v${version}";
-      license = licenses.mit;
-      maintainers = with maintainers; [ vizid ];
-    };
+  meta = with lib; {
+    description = "Fast Levenshtein and Damerau optimal string alignment algorithms";
+    homepage = "https://github.com/mammothb/editdistpy";
+    changelog = "https://github.com/mammothb/editdistpy/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ vizid ];
+  };
 }
diff --git a/pkgs/development/python-modules/editor/default.nix b/pkgs/development/python-modules/editor/default.nix
index 3cbc44cc5dff6..d2256da39545b 100644
--- a/pkgs/development/python-modules/editor/default.nix
+++ b/pkgs/development/python-modules/editor/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, runs
-, xmod
-, pytestCheckHook
-, tdir
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  runs,
+  xmod,
+  pytestCheckHook,
+  tdir,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-FVtat3gUsK5Lv6XSkVXj0hY6NkMGw6LxRWMJrZ/cIis=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     runs
@@ -34,9 +33,7 @@ buildPythonPackage rec {
     tdir
   ];
 
-  pythonImportsCheck = [
-    "editor"
-  ];
+  pythonImportsCheck = [ "editor" ];
 
   meta = with lib; {
     description = "Open the default text editor";
diff --git a/pkgs/development/python-modules/editorconfig/default.nix b/pkgs/development/python-modules/editorconfig/default.nix
index f074fcc4634af..d31b0717f09b3 100644
--- a/pkgs/development/python-modules/editorconfig/default.nix
+++ b/pkgs/development/python-modules/editorconfig/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, cmake
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  cmake,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    cmake
-  ];
+  nativeCheckInputs = [ cmake ];
 
   dontUseCmakeConfigure = true;
 
diff --git a/pkgs/development/python-modules/edk2-pytool-library/default.nix b/pkgs/development/python-modules/edk2-pytool-library/default.nix
index 20e417950b12a..1be006d1c05bd 100644
--- a/pkgs/development/python-modules/edk2-pytool-library/default.nix
+++ b/pkgs/development/python-modules/edk2-pytool-library/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pyasn1
-, pyasn1-modules
-, cryptography
-, joblib
-, gitpython
-, sqlalchemy
-, pygount
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pyasn1,
+  pyasn1-modules,
+  cryptography,
+  joblib,
+  gitpython,
+  sqlalchemy,
+  pygount,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "edk2-pytool-library";
-  version = "0.21.5";
+  version = "0.21.7";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     owner = "tianocore";
     repo = "edk2-pytool-library";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4Sb8Lu/nYUXgGt9gVv+j32cwW7TjXfH8z+fwzKaOeM8=";
+    hash = "sha256-BWA0Irf6OpUGX/NkHMuxQ45QUr3PRdWLSEs9Bavk8RM=";
   };
 
   build-system = [
@@ -43,18 +44,14 @@ buildPythonPackage rec {
     pygount
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # requires network access
     "test_basic_parse"
   ];
 
-  pythonImportsCheck = [
-    "edk2toollib"
-  ];
+  pythonImportsCheck = [ "edk2toollib" ];
 
   meta = with lib; {
     description = "Python library package that supports UEFI development";
diff --git a/pkgs/development/python-modules/edlib/default.nix b/pkgs/development/python-modules/edlib/default.nix
index b451480d3be10..64f9f96db4078 100644
--- a/pkgs/development/python-modules/edlib/default.nix
+++ b/pkgs/development/python-modules/edlib/default.nix
@@ -1,10 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, edlib
-, cython
-, python
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  edlib,
+  cython,
+  python,
 }:
 
 buildPythonPackage {
@@ -33,5 +33,4 @@ buildPythonPackage {
   '';
 
   pythonImportsCheck = [ "edlib" ];
-
 }
diff --git a/pkgs/development/python-modules/eduvpn-common/default.nix b/pkgs/development/python-modules/eduvpn-common/default.nix
index 8dfce8d9ebb28..8c17edcf2df64 100644
--- a/pkgs/development/python-modules/eduvpn-common/default.nix
+++ b/pkgs/development/python-modules/eduvpn-common/default.nix
@@ -1,10 +1,10 @@
-{ lib
-, buildPythonPackage
-, callPackage
-, fetchurl
-, libeduvpn-common
-, selenium
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  callPackage,
+  libeduvpn-common,
+  selenium,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +27,7 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  nativeCheckInputs = [
-    selenium
-  ];
+  nativeCheckInputs = [ selenium ];
 
   pythonImportsCheck = [ "eduvpn_common" ];
 
diff --git a/pkgs/development/python-modules/eduvpn-common/use-nix-lib.patch b/pkgs/development/python-modules/eduvpn-common/use-nix-lib.patch
index a8f4975280c2f..ea40fe496e963 100644
--- a/pkgs/development/python-modules/eduvpn-common/use-nix-lib.patch
+++ b/pkgs/development/python-modules/eduvpn-common/use-nix-lib.patch
@@ -1,25 +1,10 @@
-diff --git a/eduvpn_common/loader.py b/eduvpn_common/loader.py
-index 673d180..195f8c1 100644
 --- a/eduvpn_common/loader.py
 +++ b/eduvpn_common/loader.py
-@@ -21,6 +21,7 @@ def load_lib() -> CDLL:
+@@ -22,6 +22,7 @@ def load_lib() -> CDLL:
      :return: The Go shared library loaded with cdll.LoadLibrary from ctypes
      :rtype: CDLL
      """
 +    return cdll.LoadLibrary("@libeduvpn-common@")
-     lib_prefixes = defaultdict(
-         lambda: "lib",
-         {
-diff --git a/setup.py b/setup.py
-index 0d23379..a9d7926 100755
---- a/setup.py
-+++ b/setup.py
-@@ -92,4 +92,6 @@ class bdist_wheel(_bdist_wheel):
-         self.exports_lib_path = "../../exports/lib"  # default
-
-     def run(self):
-+        _bdist_wheel.run(self)
-+        return
-         self.plat_name_supplied = True  # Force use platform
-
-         libpath = getlibpath(self.plat_name)
+     libfile = f"libeduvpn_common-{__version__}.so"
+ 
+     lib = None
diff --git a/pkgs/development/python-modules/edward/default.nix b/pkgs/development/python-modules/edward/default.nix
index 1343bbc51d739..84a0b03b16e8f 100644
--- a/pkgs/development/python-modules/edward/default.nix
+++ b/pkgs/development/python-modules/edward/default.nix
@@ -1,5 +1,15 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, pythonAtLeast
-, keras, numpy, scipy, six, tensorflow }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  pythonAtLeast,
+  keras,
+  numpy,
+  scipy,
+  six,
+  tensorflow,
+}:
 
 buildPythonPackage rec {
   pname = "edward";
@@ -16,7 +26,13 @@ buildPythonPackage rec {
   # disabled for now due to Tensorflow trying to create files in $HOME:
   doCheck = false;
 
-  propagatedBuildInputs = [ keras numpy scipy six tensorflow ];
+  propagatedBuildInputs = [
+    keras
+    numpy
+    scipy
+    six
+    tensorflow
+  ];
 
   meta = with lib; {
     description = "Probabilistic programming language using Tensorflow";
diff --git a/pkgs/development/python-modules/effdet/default.nix b/pkgs/development/python-modules/effdet/default.nix
index e6a7945ae0be6..30fcee96fb76c 100644
--- a/pkgs/development/python-modules/effdet/default.nix
+++ b/pkgs/development/python-modules/effdet/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-# build inputs
-, torch
-, torchvision
-, timm
-, pycocotools
-, omegaconf
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  # build inputs
+  torch,
+  torchvision,
+  timm,
+  pycocotools,
+  omegaconf,
 }:
 let
   pname = "effdet";
@@ -35,7 +36,7 @@ buildPythonPackage {
   pythonImportsCheck = [ "effdet" ];
 
   meta = {
-    description = "A PyTorch implementation of EfficientDet";
+    description = "PyTorch implementation of EfficientDet";
     homepage = "https://pypi.org/project/effdet";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ happysalada ];
diff --git a/pkgs/development/python-modules/effect/default.nix b/pkgs/development/python-modules/effect/default.nix
index b9c49e30a560e..8de9fda503670 100644
--- a/pkgs/development/python-modules/effect/default.nix
+++ b/pkgs/development/python-modules/effect/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, attrs
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, six
-, testtools
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  six,
+  testtools,
 }:
 
 buildPythonPackage rec {
@@ -30,17 +31,11 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  checkInputs = [
-    testtools
-  ];
+  checkInputs = [ testtools ];
 
-  pythonImportsCheck = [
-    "effect"
-  ];
+  pythonImportsCheck = [ "effect" ];
 
   meta = with lib; {
     description = "Pure effects for Python";
diff --git a/pkgs/development/python-modules/eggdeps/default.nix b/pkgs/development/python-modules/eggdeps/default.nix
index 5ce1552c519c1..474c5fa036f7c 100644
--- a/pkgs/development/python-modules/eggdeps/default.nix
+++ b/pkgs/development/python-modules/eggdeps/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, zope-interface
-, zope-testing
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  zope-interface,
+  zope-testing,
 }:
 
 buildPythonPackage rec {
@@ -15,16 +16,18 @@ buildPythonPackage rec {
     sha256 = "a094ed7961a3dd38fcaaa69cf7a58670038acdff186360166d9e3d964b7a7323";
   };
 
-  propagatedBuildInputs = [ zope-interface zope-testing ];
+  propagatedBuildInputs = [
+    zope-interface
+    zope-testing
+  ];
 
   # tests fail, see https://hydra.nixos.org/build/4316603/log/raw
   doCheck = false;
 
   meta = with lib; {
-    description = "A tool which computes a dependency graph between active Python eggs";
+    description = "Tool which computes a dependency graph between active Python eggs";
     mainProgram = "eggdeps";
     homepage = "http://thomas-lotze.de/en/software/eggdeps/";
     license = licenses.zpl20;
   };
-
 }
diff --git a/pkgs/development/python-modules/eigenpy/default.nix b/pkgs/development/python-modules/eigenpy/default.nix
index 6a87f879db898..f1a67cc0ff750 100644
--- a/pkgs/development/python-modules/eigenpy/default.nix
+++ b/pkgs/development/python-modules/eigenpy/default.nix
@@ -1,6 +1,6 @@
 {
   lib,
-  stdenv,
+  buildPythonPackage,
   fetchFromGitHub,
   cmake,
   doxygen,
@@ -11,15 +11,16 @@
   scipy,
 }:
 
-stdenv.mkDerivation (finalAttrs: {
+buildPythonPackage rec {
   pname = "eigenpy";
-  version = "3.5.1";
+  version = "3.7.0";
+  pyproject = false; # Built with cmake
 
   src = fetchFromGitHub {
     owner = "stack-of-tasks";
     repo = "eigenpy";
-    rev = "v${finalAttrs.version}";
-    hash = "sha256-nTS9FNXGrak5g83BHHNSsk5V5khpOpRz5zWE8D1gDUo=";
+    rev = "v${version}";
+    hash = "sha256-D/k/ka500EZch5Ydym2WYtd5vciGkd9rdBUSjTsZ0w4=";
   };
 
   outputs = [
@@ -55,7 +56,7 @@ stdenv.mkDerivation (finalAttrs: {
   meta = with lib; {
     description = "Bindings between Numpy and Eigen using Boost.Python";
     homepage = "https://github.com/stack-of-tasks/eigenpy";
-    changelog = "https://github.com/stack-of-tasks/eigenpy/releases/tag/v${finalAttrs.version}";
+    changelog = "https://github.com/stack-of-tasks/eigenpy/releases/tag/v${version}";
     license = licenses.bsd2;
     maintainers = with maintainers; [
       nim65s
@@ -63,4 +64,4 @@ stdenv.mkDerivation (finalAttrs: {
     ];
     platforms = platforms.unix;
   };
-})
+}
diff --git a/pkgs/development/python-modules/einops/default.nix b/pkgs/development/python-modules/einops/default.nix
index 9c2de1bad9cef..4a6dfc6ab777e 100644
--- a/pkgs/development/python-modules/einops/default.nix
+++ b/pkgs/development/python-modules/einops/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, jupyter
-, nbconvert
-, numpy
-, parameterized
-, pillow
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  jupyter,
+  nbconvert,
+  numpy,
+  parameterized,
+  pillow,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "einops";
-  version = "0.7.0";
+  version = "0.8.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -22,7 +23,7 @@ buildPythonPackage rec {
     owner = "arogozhnikov";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-wCs3rMnYCk07kJ3iPItxwCQATflKBYHk6tfBCjiF+bc=";
+    hash = "sha256-6x9AttvSvgYrHaS5ESKOwyEnXxD2BitYTGtqqSKur+0=";
   };
 
   nativeBuildInputs = [ hatchling ];
@@ -42,9 +43,7 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d);
   '';
 
-  pythonImportsCheck = [
-    "einops"
-  ];
+  pythonImportsCheck = [ "einops" ];
 
   disabledTests = [
     # Tests are failing as mxnet is not pulled-in
@@ -54,9 +53,9 @@ buildPythonPackage rec {
     "test_backends_installed"
   ];
 
-  disabledTestPaths = [
-    "tests/test_layers.py"
-  ];
+  disabledTestPaths = [ "tests/test_layers.py" ];
+
+  __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
     description = "Flexible and powerful tensor operations for readable and reliable code";
@@ -65,4 +64,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ yl3dy ];
   };
 }
-
diff --git a/pkgs/development/python-modules/eiswarnung/default.nix b/pkgs/development/python-modules/eiswarnung/default.nix
index c4a3cf9339cb7..0806d423a4b83 100644
--- a/pkgs/development/python-modules/eiswarnung/default.nix
+++ b/pkgs/development/python-modules/eiswarnung/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, pytz
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
       --replace 'pytz = ">=2022.7.1,<2024.0.0"' 'pytz = "*"'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -50,9 +49,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "eiswarnung"
-  ];
+  pythonImportsCheck = [ "eiswarnung" ];
 
   meta = with lib; {
     description = "Module for getting Eiswarning API forecasts";
diff --git a/pkgs/development/python-modules/elastic-apm/default.nix b/pkgs/development/python-modules/elastic-apm/default.nix
index 25ef39efea064..113898825f5dc 100644
--- a/pkgs/development/python-modules/elastic-apm/default.nix
+++ b/pkgs/development/python-modules/elastic-apm/default.nix
@@ -19,7 +19,6 @@
   pytest-random-order,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
   sanic,
   sanic-testing,
   setuptools,
@@ -33,7 +32,7 @@
 
 buildPythonPackage rec {
   pname = "elastic-apm";
-  version = "6.22.0";
+  version = "6.22.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -42,14 +41,13 @@ buildPythonPackage rec {
     owner = "elastic";
     repo = "apm-agent-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VuVx+QUiV4M/ebyv2uF/YZwfvcaPDJAEi55fXfoIttU=";
+    hash = "sha256-nA+c2ycSVVJyfcNcj5W7Z2VSVcCzyCtoi3B/T4QZWnw=";
   };
 
   pythonRelaxDeps = [ "wrapt" ];
 
   build-system = [ setuptools ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     aiohttp
diff --git a/pkgs/development/python-modules/elastic-transport/default.nix b/pkgs/development/python-modules/elastic-transport/default.nix
index c4f6b0435e84e..4f569fc29a53e 100644
--- a/pkgs/development/python-modules/elastic-transport/default.nix
+++ b/pkgs/development/python-modules/elastic-transport/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, certifi
-, fetchFromGitHub
-, mock
-, opentelemetry-api
-, opentelemetry-sdk
-, orjson
-, pytest-asyncio
-, pytest-httpserver
-, pytestCheckHook
-, pythonOlder
-, requests
-, respx
-, setuptools
-, trustme
-, urllib3
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  certifi,
+  fetchFromGitHub,
+  mock,
+  opentelemetry-api,
+  opentelemetry-sdk,
+  orjson,
+  pytest-asyncio,
+  pytest-httpserver,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  respx,
+  setuptools,
+  trustme,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "elastic-transport";
-  version = "8.13.0";
+  version = "8.13.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,7 +30,7 @@ buildPythonPackage rec {
     owner = "elastic";
     repo = "elastic-transport-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-KmZCaAbzbfqbPwFuF43ckwgVhZVbPvwjF7uqPKHml9Q=";
+    hash = "sha256-zxx5BvqQf5ipaOANKpThWUTsfhDkNMJqUejAWH68wpo=";
   };
 
   postPatch = ''
@@ -37,9 +38,7 @@ buildPythonPackage rec {
       --replace " --cov-report=term-missing --cov=elastic_transport" ""
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   propagatedBuildInputs = [
     urllib3
@@ -60,9 +59,7 @@ buildPythonPackage rec {
     trustme
   ];
 
-  pythonImportsCheck = [
-    "elastic_transport"
-  ];
+  pythonImportsCheck = [ "elastic_transport" ];
 
   disabledTests = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/elasticsearch-dsl/default.nix b/pkgs/development/python-modules/elasticsearch-dsl/default.nix
index 53778ce0b4e1f..45476eaf04186 100644
--- a/pkgs/development/python-modules/elasticsearch-dsl/default.nix
+++ b/pkgs/development/python-modules/elasticsearch-dsl/default.nix
@@ -1,22 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, elasticsearch
-, python-dateutil
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  elasticsearch,
+  python-dateutil,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "elasticsearch-dsl";
-  version = "8.13.0";
+  version = "8.14.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-cy/IEae7B2O8P7WJLk6nzwbTG7o1XoezM1PpLfrNebQ=";
+    sha256 = "sha256-MmxtzPMvH/PUyEiJOIWQd4REuhj3cK3uUvJHIcuXxMc=";
   };
 
-  propagatedBuildInputs = [ elasticsearch python-dateutil six ];
+  propagatedBuildInputs = [
+    elasticsearch
+    python-dateutil
+    six
+  ];
 
   # ImportError: No module named test_elasticsearch_dsl
   # Tests require a local instance of elasticsearch
diff --git a/pkgs/development/python-modules/elasticsearch/default.nix b/pkgs/development/python-modules/elasticsearch/default.nix
index 12aac19267e8c..e33c98782bb46 100644
--- a/pkgs/development/python-modules/elasticsearch/default.nix
+++ b/pkgs/development/python-modules/elasticsearch/default.nix
@@ -1,29 +1,28 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, certifi
-, elastic-transport
-, fetchPypi
-, pythonOlder
-, requests
-, urllib3
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  certifi,
+  elastic-transport,
+  fetchPypi,
+  pythonOlder,
+  requests,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "elasticsearch";
-  version = "8.13.0";
+  version = "8.14.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-5Ovrsi0J8O+DnCa2qpjhnM1ja8t38IwStWKwLKzV50Q=";
+    sha256 = "sha256-qiSQAp3Zb0AVszPBgnqiH9bApNIjsA37D+kzuNCaURs=";
   };
 
-  nativeBuildInputs = [
-    elastic-transport
-  ];
+  nativeBuildInputs = [ elastic-transport ];
 
   propagatedBuildInputs = [
     urllib3
@@ -31,17 +30,11 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    requests = [
-      requests
-    ];
-    async = [
-      aiohttp
-    ];
+    requests = [ requests ];
+    async = [ aiohttp ];
   };
 
-  pythonImportsCheck = [
-    "elasticsearch"
-  ];
+  pythonImportsCheck = [ "elasticsearch" ];
 
   # Check is disabled because running them destroy the content of the local cluster!
   # https://github.com/elasticsearch/elasticsearch-py/tree/master/test_elasticsearch
diff --git a/pkgs/development/python-modules/elasticsearch8/default.nix b/pkgs/development/python-modules/elasticsearch8/default.nix
index c1fa2c91372cc..8c36c4af08d6e 100644
--- a/pkgs/development/python-modules/elasticsearch8/default.nix
+++ b/pkgs/development/python-modules/elasticsearch8/default.nix
@@ -1,46 +1,43 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, elastic-transport
-, fetchPypi
-, pythonOlder
-, requests
-, urllib3
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  elastic-transport,
+  fetchPypi,
+  orjson,
+  pythonOlder,
+  requests,
+  setuptools,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "elasticsearch8";
-  version = "8.13.0";
-  format = "setuptools";
+  version = "8.14.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-NWg+/dr8jXCCLeXBAXY1yL6/2CB0xCO5tswY4y/5erw=";
+    hash = "sha256-JiiJSjdWAocHvQ9RCGTUJD05hoSE23LYxvzMlELJUfM=";
   };
 
-  nativeBuildInputs = [
-    elastic-transport
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  dependencies = [ elastic-transport ];
 
   passthru.optional-dependencies = {
-    async = [
-      aiohttp
-    ];
+    async = [ aiohttp ];
+    requests = [ requests ];
+    orjson = [ orjson ];
   };
 
   # Check is disabled because running them destroy the content of the local cluster!
   # https://github.com/elasticsearch/elasticsearch-py/tree/main/test_elasticsearch
   doCheck = false;
 
-  pythonImportsCheck = [
-    "elasticsearch8"
-  ];
+  pythonImportsCheck = [ "elasticsearch8" ];
 
   meta = with lib; {
     description = "Official low-level client for Elasticsearch";
diff --git a/pkgs/development/python-modules/elegy/default.nix b/pkgs/development/python-modules/elegy/default.nix
index 14b87970537ca..966b8731f2429 100644
--- a/pkgs/development/python-modules/elegy/default.nix
+++ b/pkgs/development/python-modules/elegy/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, cloudpickle
-, deepdish
-, deepmerge
-, dm-haiku
-, fetchFromGitHub
-, fetchpatch
-, jaxlib
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, sh
-, tables
-, tabulate
-, tensorboardx
-, tensorflow
-, toolz
-, torch
-, treex
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  cloudpickle,
+  deepdish,
+  deepmerge,
+  dm-haiku,
+  fetchFromGitHub,
+  fetchpatch,
+  jaxlib,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  sh,
+  tables,
+  tabulate,
+  tensorboardx,
+  tensorflow,
+  toolz,
+  torch,
+  treex,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -54,13 +55,9 @@ buildPythonPackage rec {
       --replace 'wandb = { version = "^0.12.10", optional = true }' ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  buildInputs = [
-    jaxlib
-  ];
+  buildInputs = [ jaxlib ];
 
   propagatedBuildInputs = [
     cloudpickle
@@ -76,9 +73,7 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  pythonImportsCheck = [
-    "elegy"
-  ];
+  pythonImportsCheck = [ "elegy" ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/elevate/default.nix b/pkgs/development/python-modules/elevate/default.nix
index 4a8bf40e30fc8..0db78266d3208 100644
--- a/pkgs/development/python-modules/elevate/default.nix
+++ b/pkgs/development/python-modules/elevate/default.nix
@@ -1,4 +1,10 @@
-{ lib, fetchPypi, buildPythonPackage, fetchpatch, setuptools-scm }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  fetchpatch,
+  setuptools-scm,
+}:
 
 buildPythonPackage rec {
   pname = "elevate";
@@ -12,15 +18,13 @@ buildPythonPackage rec {
 
   patches = [
     (fetchpatch {
-    # This is for not calling shell wrappers through Python, which fails.
-    url = "https://github.com/rkitover/elevate/commit/148b2bf698203ea39c9fe5d635ecd03cd94051af.patch";
-    sha256 = "1ky3z1jxl1g28wbwbx8qq8jgx8sa8pr8s3fdcpdhdx1blw28cv61";
+      # This is for not calling shell wrappers through Python, which fails.
+      url = "https://github.com/rkitover/elevate/commit/148b2bf698203ea39c9fe5d635ecd03cd94051af.patch";
+      sha256 = "1ky3z1jxl1g28wbwbx8qq8jgx8sa8pr8s3fdcpdhdx1blw28cv61";
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   # No tests included
   doCheck = false;
diff --git a/pkgs/development/python-modules/elgato/default.nix b/pkgs/development/python-modules/elgato/default.nix
index f17b502826ceb..40dc9b740c79f 100644
--- a/pkgs/development/python-modules/elgato/default.nix
+++ b/pkgs/development/python-modules/elgato/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, mashumaro
-, orjson
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mashumaro,
+  orjson,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
       --replace "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -50,9 +49,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "elgato"
-  ];
+  pythonImportsCheck = [ "elgato" ];
 
   meta = with lib; {
     description = "Python client for Elgato Key Lights";
diff --git a/pkgs/development/python-modules/eliot/default.nix b/pkgs/development/python-modules/eliot/default.nix
index 4bf4f45a29cbd..6c522d9413873 100644
--- a/pkgs/development/python-modules/eliot/default.nix
+++ b/pkgs/development/python-modules/eliot/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, aiocontextvars
-, boltons
-, hypothesis
-, pyrsistent
-, pytestCheckHook
-, setuptools
-, six
-, testtools
-, zope-interface
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  aiocontextvars,
+  boltons,
+  hypothesis,
+  pyrsistent,
+  pytestCheckHook,
+  setuptools,
+  six,
+  testtools,
+  zope-interface,
 }:
 
 buildPythonPackage rec {
@@ -40,9 +41,7 @@ buildPythonPackage rec {
     testtools
   ];
 
-  pythonImportsCheck = [
-    "eliot"
-  ];
+  pythonImportsCheck = [ "eliot" ];
 
   # Tests run eliot-prettyprint in out/bin.
   preCheck = ''
diff --git a/pkgs/development/python-modules/eliqonline/default.nix b/pkgs/development/python-modules/eliqonline/default.nix
index 3d3261071bbc1..2b9b0e53c0bf5 100644
--- a/pkgs/development/python-modules/eliqonline/default.nix
+++ b/pkgs/development/python-modules/eliqonline/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, docopt
-, fetchPypi
-, pythonOlder
-, pyyaml
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  docopt,
+  fetchPypi,
+  pythonOlder,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "eliqonline"
-  ];
+  pythonImportsCheck = [ "eliqonline" ];
 
   meta = with lib; {
     description = "Python client to the Eliq Online API";
diff --git a/pkgs/development/python-modules/elkm1-lib/default.nix b/pkgs/development/python-modules/elkm1-lib/default.nix
index cf8c39c308dd9..a1c04262a5bb8 100644
--- a/pkgs/development/python-modules/elkm1-lib/default.nix
+++ b/pkgs/development/python-modules/elkm1-lib/default.nix
@@ -3,7 +3,6 @@
   async-timeout,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   poetry-core,
   pyserial-asyncio-fast,
   pytest-asyncio,
diff --git a/pkgs/development/python-modules/elmax-api/default.nix b/pkgs/development/python-modules/elmax-api/default.nix
index b3e94cca5f02e..ad963e7e3d3f9 100644
--- a/pkgs/development/python-modules/elmax-api/default.nix
+++ b/pkgs/development/python-modules/elmax-api/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, httpx
-, pyjwt
-, pythonOlder
-, yarl
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpx,
+  pyjwt,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Test require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "elmax_api"
-  ];
+  pythonImportsCheck = [ "elmax_api" ];
 
   meta = with lib; {
     description = "Python library for interacting with the Elmax cloud";
diff --git a/pkgs/development/python-modules/elmax/default.nix b/pkgs/development/python-modules/elmax/default.nix
index a538be01ae9dd..30bcb15c21066 100644
--- a/pkgs/development/python-modules/elmax/default.nix
+++ b/pkgs/development/python-modules/elmax/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, httpx
-, poetry-core
-, pythonOlder
-, pytest-asyncio
-, pytest-httpx
-, pytestCheckHook
-, yarl
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpx,
+  poetry-core,
+  pythonOlder,
+  pytest-asyncio,
+  pytest-httpx,
+  pytestCheckHook,
+  yarl,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/email-validator/default.nix b/pkgs/development/python-modules/email-validator/default.nix
index eea86196c2290..735496b676457 100644
--- a/pkgs/development/python-modules/email-validator/default.nix
+++ b/pkgs/development/python-modules/email-validator/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, dnspython
-, fetchPypi
-, idna
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dnspython,
+  fetchPypi,
+  idna,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "email-validator";
-  version = "2.1.1";
+  version = "2.1.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -17,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "email_validator";
     inherit version;
-    hash = "sha256-IApwaAugiQS+bR7vcpIFzA1odjQ5mlkk2EJTPvuCS4Q=";
+    hash = "sha256-FMDz00PEvto3QAQhs5+kEbvjOnXfIIJd9zrVPgap8Ew=";
   };
 
   propagatedBuildInputs = [
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     idna
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # dns.resolver.NoResolverConfiguration: cannot open /etc/resolv.conf
@@ -35,9 +34,7 @@ buildPythonPackage rec {
     "tests/test_main.py"
   ];
 
-  pythonImportsCheck = [
-    "email_validator"
-  ];
+  pythonImportsCheck = [ "email_validator" ];
 
   meta = with lib; {
     description = "Email syntax and deliverability validation library";
diff --git a/pkgs/development/python-modules/emailthreads/default.nix b/pkgs/development/python-modules/emailthreads/default.nix
index 236ab931f939d..44ea2d3aa87ef 100644
--- a/pkgs/development/python-modules/emailthreads/default.nix
+++ b/pkgs/development/python-modules/emailthreads/default.nix
@@ -1,5 +1,11 @@
-{ lib, fetchFromGitHub, buildPythonPackage
-, python, isPy3k, unittestCheckHook }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  python,
+  isPy3k,
+  unittestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "emailthreads";
diff --git a/pkgs/development/python-modules/embedding-reader/default.nix b/pkgs/development/python-modules/embedding-reader/default.nix
index 9a1a8a0b1dfc6..0f4d3c54a34b9 100644
--- a/pkgs/development/python-modules/embedding-reader/default.nix
+++ b/pkgs/development/python-modules/embedding-reader/default.nix
@@ -1,12 +1,12 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, fsspec
-, lib
-, numpy
-, pandas
-, pyarrow
-, pytestCheckHook
-, pythonRelaxDepsHook
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  fsspec,
+  lib,
+  numpy,
+  pandas,
+  pyarrow,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,11 +21,15 @@ buildPythonPackage rec {
     hash = "sha256-paN6rAyH3L7qCfWPr5kXo9Xl57gRMhdcDnoyLJ7II2w=";
   };
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   pythonRelaxDeps = [ "pyarrow" ];
 
-  propagatedBuildInputs = [ fsspec numpy pandas pyarrow ];
+  propagatedBuildInputs = [
+    fsspec
+    numpy
+    pandas
+    pyarrow
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/emborg/default.nix b/pkgs/development/python-modules/emborg/default.nix
index d20a7ea6e246b..5d244fb9a322f 100644
--- a/pkgs/development/python-modules/emborg/default.nix
+++ b/pkgs/development/python-modules/emborg/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, flit-core
-, pytestCheckHook
-, pythonOlder
-, borgbackup
-, appdirs
-, arrow
-, docopt
-, inform
-, nestedtext
-, parametrize-from-file
-, quantiphy
-, requests
-, shlib
-, voluptuous
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  flit-core,
+  pytestCheckHook,
+  pythonOlder,
+  borgbackup,
+  appdirs,
+  arrow,
+  docopt,
+  inform,
+  nestedtext,
+  parametrize-from-file,
+  quantiphy,
+  requests,
+  shlib,
+  voluptuous,
 }:
 
 buildPythonPackage rec {
   pname = "emborg";
-  version = "1.38";
+  version = "1.39";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -29,12 +30,10 @@ buildPythonPackage rec {
     owner = "KenKundert";
     repo = "emborg";
     rev = "refs/tags/v${version}";
-    hash = "sha256-dK/6y1cjegomiy3fta2grUm4T0ZrylmstXfkJo4mDCE=";
+    hash = "sha256-DK98VAYSwN+UKuwwbd2O+gF2PDQPosbXo9D2Zrwe/yU=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     appdirs
@@ -69,9 +68,7 @@ buildPythonPackage rec {
     })
   ];
 
-  pythonImportsCheck = [
-    "emborg"
-  ];
+  pythonImportsCheck = [ "emborg" ];
 
   meta = with lib; {
     description = "Interactive command line interface to Borg Backup";
diff --git a/pkgs/development/python-modules/embrace/default.nix b/pkgs/development/python-modules/embrace/default.nix
index 3c51a01ca816e..7572e77728b21 100644
--- a/pkgs/development/python-modules/embrace/default.nix
+++ b/pkgs/development/python-modules/embrace/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromSourcehut
-, pytestCheckHook
-, pythonOlder
-, sqlparse
-, wrapt
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromSourcehut,
+  pytestCheckHook,
+  pythonOlder,
+  sqlparse,
+  wrapt,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +29,9 @@ buildPythonPackage rec {
     wrapt
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "embrace"
-  ];
+  pythonImportsCheck = [ "embrace" ];
 
   # Some test for hot-reload fails on Darwin, but the rest of the library
   # should remain usable. (https://todo.sr.ht/~olly/embrace-sql/4)
diff --git a/pkgs/development/python-modules/emcee/default.nix b/pkgs/development/python-modules/emcee/default.nix
index 624faffed8efb..be4fd02424677 100644
--- a/pkgs/development/python-modules/emcee/default.nix
+++ b/pkgs/development/python-modules/emcee/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, pytestCheckHook
-, setuptools-scm
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  pytestCheckHook,
+  setuptools-scm,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "emcee";
-  version = "3.1.5";
+  version = "3.1.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,24 +19,16 @@ buildPythonPackage rec {
     owner = "dfm";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-83v7O/eo8LQux75IkLWU8moj3rYiyRjZdNeAwtjrJ60=";
+    hash = "sha256-JVZK3kvDwWENho0OxZ9OxATcm3XpGmX+e7alPclRsHY=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "emcee"
-  ];
+  pythonImportsCheck = [ "emcee" ];
 
   meta = with lib; {
     description = "Kick ass affine-invariant ensemble MCMC sampling";
diff --git a/pkgs/development/python-modules/emoji/default.nix b/pkgs/development/python-modules/emoji/default.nix
index f2c036f7be024..d6f1fd2459313 100644
--- a/pkgs/development/python-modules/emoji/default.nix
+++ b/pkgs/development/python-modules/emoji/default.nix
@@ -1,14 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  typing-extensions,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "emoji";
-  version = "2.10.1";
-  format = "setuptools";
+  version = "2.12.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -16,20 +19,18 @@ buildPythonPackage rec {
     owner = "carpedm20";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-cCYZ+0IFHIR9++RfUbFTRMKYB9nC5dBaPMH6dSiAXK0=";
+    hash = "sha256-m9V9ryIE2U+KsyzFhAoMCGYMkPCBUl/ex1Ue5OUwslc=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  build-system = [ setuptools ];
 
-  disabledTests = [
-    "test_emojize_name_only"
-  ];
+  dependencies = [ typing-extensions ];
 
-  pythonImportsCheck = [
-    "emoji"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  disabledTests = [ "test_emojize_name_only" ];
+
+  pythonImportsCheck = [ "emoji" ];
 
   meta = with lib; {
     description = "Emoji for Python";
diff --git a/pkgs/development/python-modules/empty-files/default.nix b/pkgs/development/python-modules/empty-files/default.nix
index 264e4543a20f6..249cbf6d83586 100644
--- a/pkgs/development/python-modules/empty-files/default.nix
+++ b/pkgs/development/python-modules/empty-files/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-P/woyAN9cYdxryX1iM36C53c9dL6lo4eoTzBWT2cd3A=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # cyclic dependency with approvaltests
   doCheck = false;
diff --git a/pkgs/development/python-modules/empy/default.nix b/pkgs/development/python-modules/empy/default.nix
index 0d49b0a8a21a8..ea80513816439 100644
--- a/pkgs/development/python-modules/empy/default.nix
+++ b/pkgs/development/python-modules/empy/default.nix
@@ -1,4 +1,8 @@
-{ lib, fetchPypi, buildPythonPackage }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+}:
 
 buildPythonPackage rec {
   pname = "empy";
@@ -11,7 +15,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "em" ];
   meta = with lib; {
     homepage = "http://www.alcyone.com/software/empy/";
-    description = "A templating system for Python.";
+    description = "Templating system for Python";
     mainProgram = "em.py";
     maintainers = with maintainers; [ nkalupahana ];
     license = licenses.lgpl21Only;
diff --git a/pkgs/development/python-modules/emulated-roku/default.nix b/pkgs/development/python-modules/emulated-roku/default.nix
index 90807521cde82..1e29bead57fbd 100644
--- a/pkgs/development/python-modules/emulated-roku/default.nix
+++ b/pkgs/development/python-modules/emulated-roku/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, aiohttp
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  aiohttp,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-7DbJl1e1ESWPCNuQX7m/ggXNDyPYZ5eNGwSz+jnxZj0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # no tests implemented
   doCheck = false;
diff --git a/pkgs/development/python-modules/emv/default.nix b/pkgs/development/python-modules/emv/default.nix
index c7be7ba9e7fa6..69d3a9ef910e8 100644
--- a/pkgs/development/python-modules/emv/default.nix
+++ b/pkgs/development/python-modules/emv/default.nix
@@ -1,58 +1,59 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, click
-, pyscard
-, pycountry
-, terminaltables
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  click,
+  pyscard,
+  pycountry,
+  terminaltables,
+  pytestCheckHook,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "emv";
   version = "1.0.14";
-  format = "setuptools";
+  pyproject = true;
 
-  disabled = pythonOlder "3.4";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "russss";
     repo = "python-emv";
-    rev = "v${version}";
+    rev = "refs/tags/v${version}";
     hash = "sha256-MnaeQZ0rA3i0CoUA6HgJQpwk5yo4rm9e+pc5XzRd1eg=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace-fail '"enum-compat==0.0.3",' "" \
+      --replace-fail '"argparse==1.4.0",' "" \
+      --replace-fail "click==7.1.2" "click" \
+      --replace-fail "pyscard==2.0.0" "pyscard" \
+      --replace-fail "pycountry==20.7.3" "pycountry" \
+      --replace-fail "terminaltables==3.1.0" "terminaltables"
+  '';
+
+  build-system = [ setuptools ];
+
+  dependencies = [
     click
     pyscard
     pycountry
     terminaltables
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace '"enum-compat==0.0.3",' "" \
-      --replace '"argparse==1.4.0",' "" \
-      --replace "click==7.1.2" "click" \
-      --replace "pyscard==2.0.0" "pyscard" \
-      --replace "pycountry==20.7.3" "pycountry" \
-      --replace "terminaltables==3.1.0" "terminaltables"
-  '';
-
-  pythonImportsCheck = [
-    "emv"
-  ];
+  pythonImportsCheck = [ "emv" ];
 
   meta = with lib; {
     description = "Implementation of the EMV chip-and-pin smartcard protocol";
-    mainProgram = "emvtool";
     homepage = "https://github.com/russss/python-emv";
+    changelog = "https://github.com/russss/python-emv/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ lukegb ];
+    mainProgram = "emvtool";
   };
 }
diff --git a/pkgs/development/python-modules/enaml/default.nix b/pkgs/development/python-modules/enaml/default.nix
index 4479f50659279..d08c69cee9e57 100644
--- a/pkgs/development/python-modules/enaml/default.nix
+++ b/pkgs/development/python-modules/enaml/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, atom
-, buildPythonPackage
-, bytecode
-, cppy
-, fetchFromGitHub
-, kiwisolver
-, pegen
-, ply
-, qtpy
-, setuptools
-, setuptools-scm
-, pythonOlder
-, sip
+{
+  lib,
+  atom,
+  buildPythonPackage,
+  bytecode,
+  cppy,
+  fetchFromGitHub,
+  kiwisolver,
+  pegen,
+  ply,
+  qtpy,
+  setuptools,
+  setuptools-scm,
+  pythonOlder,
+  sip,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/enamlx/default.nix b/pkgs/development/python-modules/enamlx/default.nix
index 7c90d8a4b9717..2cc2522c0d9d5 100644
--- a/pkgs/development/python-modules/enamlx/default.nix
+++ b/pkgs/development/python-modules/enamlx/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, enaml
-, pyqtgraph
-, pythonocc-core
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  enaml,
+  pyqtgraph,
+  pythonocc-core,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/encodec/default.nix b/pkgs/development/python-modules/encodec/default.nix
index 179ab69aa9ff8..6c8c363e75ec8 100644
--- a/pkgs/development/python-modules/encodec/default.nix
+++ b/pkgs/development/python-modules/encodec/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# dependencies
-, einops
-, numpy
-, torch-bin
-, torchaudio-bin
+  # dependencies
+  einops,
+  numpy,
+  torch-bin,
+  torchaudio-bin,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/energyflip-client/default.nix b/pkgs/development/python-modules/energyflip-client/default.nix
index 50cb9e1884e8a..ae25755ec26de 100644
--- a/pkgs/development/python-modules/energyflip-client/default.nix
+++ b/pkgs/development/python-modules/energyflip-client/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "energyflip"
-  ];
+  pythonImportsCheck = [ "energyflip" ];
 
   meta = with lib; {
     description = "Library to communicate with the API behind EnergyFlip";
diff --git a/pkgs/development/python-modules/energyflow/default.nix b/pkgs/development/python-modules/energyflow/default.nix
index 7308d0289023f..4c6ce4df58dd3 100644
--- a/pkgs/development/python-modules/energyflow/default.nix
+++ b/pkgs/development/python-modules/energyflow/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, h5py
-, numpy
-, six
-, wasserstein
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  h5py,
+  numpy,
+  six,
+  wasserstein,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -32,12 +33,8 @@ buildPythonPackage rec {
     wasserstein
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
-  pytestFlagsArray = [
-    "energyflow/tests"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
+  pytestFlagsArray = [ "energyflow/tests" ];
   disabledTestPaths = [
     "energyflow/tests/test_archs.py" # requires tensorflow
     "energyflow/tests/test_emd.py" # requires "ot"
diff --git a/pkgs/development/python-modules/energyzero/default.nix b/pkgs/development/python-modules/energyzero/default.nix
index 0c99ced94a138..a5ebbbf936785 100644
--- a/pkgs/development/python-modules/energyzero/default.nix
+++ b/pkgs/development/python-modules/energyzero/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytest-freezer
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytest-freezer,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
       --replace 'addopts = "--cov"' ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -47,9 +46,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "energyzero"
-  ];
+  pythonImportsCheck = [ "energyzero" ];
 
   meta = with lib; {
     description = "Module for getting the dynamic prices from EnergyZero";
diff --git a/pkgs/development/python-modules/enlighten/default.nix b/pkgs/development/python-modules/enlighten/default.nix
index 713370bbb786c..826e9fbe78051 100644
--- a/pkgs/development/python-modules/enlighten/default.nix
+++ b/pkgs/development/python-modules/enlighten/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, blessed
-, prefixed
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  blessed,
+  prefixed,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,24 +26,22 @@ buildPythonPackage rec {
     prefixed
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
-
-  pythonImportsCheck = [
-    "enlighten"
-  ];
-
-  disabledTests = [
-    # AssertionError: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'> is not...
-    "test_init"
-    # AssertionError: Invalid format specifier (deprecated since prefixed 0.4.0)
-    "test_floats_prefixed"
-    "test_subcounter_prefixed"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # https://github.com/Rockhopper-Technologies/enlighten/issues/44
-    "test_autorefresh"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "enlighten" ];
+
+  disabledTests =
+    [
+      # AssertionError: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'> is not...
+      "test_init"
+      # AssertionError: Invalid format specifier (deprecated since prefixed 0.4.0)
+      "test_floats_prefixed"
+      "test_subcounter_prefixed"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # https://github.com/Rockhopper-Technologies/enlighten/issues/44
+      "test_autorefresh"
+    ];
 
   meta = with lib; {
     description = "Enlighten Progress Bar for Python Console Apps";
diff --git a/pkgs/development/python-modules/enocean/default.nix b/pkgs/development/python-modules/enocean/default.nix
index 925c87ed3f8eb..61c2ca0e1b206 100644
--- a/pkgs/development/python-modules/enocean/default.nix
+++ b/pkgs/development/python-modules/enocean/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, beautifulsoup4
-, enum-compat
-, pyserial
-, pynose
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  beautifulsoup4,
+  enum-compat,
+  pyserial,
+  pynose,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     pyserial
   ];
 
-  nativeCheckInputs = [
-    pynose
-  ];
+  nativeCheckInputs = [ pynose ];
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/enochecker-core/default.nix b/pkgs/development/python-modules/enochecker-core/default.nix
index 806bd4a14e9f0..eb4971e7a88f8 100644
--- a/pkgs/development/python-modules/enochecker-core/default.nix
+++ b/pkgs/development/python-modules/enochecker-core/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,10 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-N41p2XRCp55rcPXLpA4rPIARsva/dQzK8qafjzXtavI=";
   };
 
-
-  pythonImportsCheck = [
-    "enochecker_core"
-  ];
+  pythonImportsCheck = [ "enochecker_core" ];
 
   # no tests upstream
   doCheck = false;
diff --git a/pkgs/development/python-modules/enrich/default.nix b/pkgs/development/python-modules/enrich/default.nix
index 71e1cd1b2e59f..4210283b3e251 100644
--- a/pkgs/development/python-modules/enrich/default.nix
+++ b/pkgs/development/python-modules/enrich/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, setuptools-scm, rich, pytest-mock }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  setuptools-scm,
+  rich,
+  pytest-mock,
+}:
 
 buildPythonPackage rec {
   pname = "enrich";
@@ -14,7 +22,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ rich ];
 
-  nativeCheckInputs = [ pytestCheckHook pytest-mock ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-mock
+  ];
 
   disabledTests = [
     # console output order is racy
diff --git a/pkgs/development/python-modules/enterpriseattack/default.nix b/pkgs/development/python-modules/enterpriseattack/default.nix
index 745cc331c6043..96ebfdf12f57f 100644
--- a/pkgs/development/python-modules/enterpriseattack/default.nix
+++ b/pkgs/development/python-modules/enterpriseattack/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
-, setuptools
-, ujson
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
+  setuptools,
+  ujson,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-cxbGc9iQe94Th6MSUldI17oVCclFhUM78h1w+6KXzm4=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     requests
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Tests require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "enterpriseattack"
-  ];
+  pythonImportsCheck = [ "enterpriseattack" ];
 
   meta = with lib; {
     description = "Module to interact with the Mitre Att&ck Enterprise dataset";
diff --git a/pkgs/development/python-modules/entrance/default.nix b/pkgs/development/python-modules/entrance/default.nix
index aa6c06e5bf5e7..121c57a89106e 100644
--- a/pkgs/development/python-modules/entrance/default.nix
+++ b/pkgs/development/python-modules/entrance/default.nix
@@ -1,19 +1,36 @@
-{ lib, fetchPypi, buildPythonPackage, pythonOlder, routerFeatures
-, janus, ncclient, paramiko, pyyaml, sanic }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  routerFeatures,
+  janus,
+  ncclient,
+  paramiko,
+  pyyaml,
+  sanic,
+}:
 
 let
   # The `routerFeatures` flag optionally brings in some somewhat heavy
   # dependencies, in order to enable interacting with routers
-  opts = if routerFeatures then {
-      prePatch = ''
-        substituteInPlace ./setup.py --replace "extra_deps = []" "extra_deps = router_feature_deps"
-      '';
-      extraBuildInputs = [ janus ncclient paramiko ];
-    } else {
-      prePatch = "";
-      extraBuildInputs = [];
-    };
-
+  opts =
+    if routerFeatures then
+      {
+        prePatch = ''
+          substituteInPlace ./setup.py --replace "extra_deps = []" "extra_deps = router_feature_deps"
+        '';
+        extraBuildInputs = [
+          janus
+          ncclient
+          paramiko
+        ];
+      }
+    else
+      {
+        prePatch = "";
+        extraBuildInputs = [ ];
+      };
 in
 
 buildPythonPackage rec {
@@ -32,15 +49,17 @@ buildPythonPackage rec {
   # No useful tests
   doCheck = false;
 
-  propagatedBuildInputs = [ pyyaml sanic ] ++ opts.extraBuildInputs;
+  propagatedBuildInputs = [
+    pyyaml
+    sanic
+  ] ++ opts.extraBuildInputs;
 
   prePatch = opts.prePatch;
 
   meta = with lib; {
-    description = "A server framework for web apps with an Elm frontend";
+    description = "Server framework for web apps with an Elm frontend";
     homepage = "https://github.com/ensoft/entrance";
     license = licenses.mit;
     maintainers = with maintainers; [ simonchatts ];
   };
 }
-
diff --git a/pkgs/development/python-modules/entry-points-txt/default.nix b/pkgs/development/python-modules/entry-points-txt/default.nix
index cac8c41f16f26..5d921495e731a 100644
--- a/pkgs/development/python-modules/entry-points-txt/default.nix
+++ b/pkgs/development/python-modules/entry-points-txt/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,22 +21,16 @@ buildPythonPackage rec {
     hash = "sha256-klFSt3Od7xYgenpMP4DBFoZeQanGrmtJxDm5qeZ1Psc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace tox.ini \
       --replace " --cov=entry_points_txt --no-cov-on-fail" ""
   '';
 
-  pythonImportsCheck = [
-    "entry_points_txt"
-  ];
+  pythonImportsCheck = [ "entry_points_txt" ];
 
   meta = with lib; {
     description = "Read & write entry_points.txt files";
diff --git a/pkgs/development/python-modules/entrypoint2/default.nix b/pkgs/development/python-modules/entrypoint2/default.nix
index 6e81b70f5991f..2e6ecc1a0bbd6 100644
--- a/pkgs/development/python-modules/entrypoint2/default.nix
+++ b/pkgs/development/python-modules/entrypoint2/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, easyprocess
-, path
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  easyprocess,
+  path,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "entrypoint2"
-  ];
+  pythonImportsCheck = [ "entrypoint2" ];
 
   meta = with lib; {
     description = "Easy to use command-line interface for python modules";
diff --git a/pkgs/development/python-modules/entrypoints/default.nix b/pkgs/development/python-modules/entrypoints/default.nix
index fe83e797d97aa..20b44c5fbd88e 100644
--- a/pkgs/development/python-modules/entrypoints/default.nix
+++ b/pkgs/development/python-modules/entrypoints/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, flit-core
-, configparser
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  flit-core,
+  configparser,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-twbt2qkhihnrzWe1aBjwW7J1ibHKno15e3Sv+tTMrNQ=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Discover and load entry points from installed packages";
diff --git a/pkgs/development/python-modules/enturclient/default.nix b/pkgs/development/python-modules/enturclient/default.nix
index 7140ded8bc4a8..1b62fc88ef50f 100644
--- a/pkgs/development/python-modules/enturclient/default.nix
+++ b/pkgs/development/python-modules/enturclient/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-Y2sBPikCAxumylP1LUy8XgjBRCWaNryn5XHSrRjJIIo=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -38,9 +37,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "enturclient"
-  ];
+  pythonImportsCheck = [ "enturclient" ];
 
   meta = with lib; {
     description = "Python library for interacting with the Entur.org API";
diff --git a/pkgs/development/python-modules/enum-compat/default.nix b/pkgs/development/python-modules/enum-compat/default.nix
index a8409353d4897..fcf14cf94e722 100644
--- a/pkgs/development/python-modules/enum-compat/default.nix
+++ b/pkgs/development/python-modules/enum-compat/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, enum34 }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  enum34,
+}:
 
 buildPythonPackage rec {
   pname = "enum-compat";
diff --git a/pkgs/development/python-modules/enum34/default.nix b/pkgs/development/python-modules/enum34/default.nix
index 8ec22fc1cd730..940fe7af28d30 100644
--- a/pkgs/development/python-modules/enum34/default.nix
+++ b/pkgs/development/python-modules/enum34/default.nix
@@ -1,25 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonAtLeast
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
+  unittestCheckHook,
 }:
 
-if pythonAtLeast "3.4" then null else buildPythonPackage rec {
-  pname = "enum34";
-  version = "1.1.10";
+if pythonAtLeast "3.4" then
+  null
+else
+  buildPythonPackage rec {
+    pname = "enum34";
+    version = "1.1.10";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "cce6a7477ed816bd2542d03d53db9f0db935dd013b70f336a95c73979289f248";
-  };
+    src = fetchPypi {
+      inherit pname version;
+      sha256 = "cce6a7477ed816bd2542d03d53db9f0db935dd013b70f336a95c73979289f248";
+    };
 
-  nativeCheckInputs = [ unittestCheckHook ];
+    nativeCheckInputs = [ unittestCheckHook ];
 
-  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;
-  };
-
-}
+    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/pkgs/development/python-modules/env-canada/default.nix b/pkgs/development/python-modules/env-canada/default.nix
index 4b0fab97e95f7..a8784aacb5dc2 100644
--- a/pkgs/development/python-modules/env-canada/default.nix
+++ b/pkgs/development/python-modules/env-canada/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, geopy
-, imageio
-, lxml
-, pandas
-, pillow
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, setuptools
-, voluptuous
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  geopy,
+  imageio,
+  lxml,
+  pandas,
+  pillow,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  setuptools,
+  voluptuous,
 }:
 
 buildPythonPackage rec {
   pname = "env-canada";
-  version = "0.6.2";
+  version = "0.7.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,12 +26,10 @@ buildPythonPackage rec {
     owner = "michaeldavie";
     repo = "env_canada";
     rev = "refs/tags/v${version}";
-    hash = "sha256-2lrZpjOdijE/udGRzUXT63xI+f9yI+04arfWdt6fMSA=";
+    hash = "sha256-ND1QObDdn6tBGNlnnVadNv6ibYYpOoo2HZEXIMlfwyc=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     aiohttp
@@ -43,9 +42,7 @@ buildPythonPackage rec {
     voluptuous
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Tests require network access
@@ -60,9 +57,7 @@ buildPythonPackage rec {
     "test_ecradar"
   ];
 
-  pythonImportsCheck = [
-    "env_canada"
-  ];
+  pythonImportsCheck = [ "env_canada" ];
 
   meta = with lib; {
     description = "Python library to get Environment Canada weather data";
diff --git a/pkgs/development/python-modules/environmental-override/default.nix b/pkgs/development/python-modules/environmental-override/default.nix
index 3418f4169666f..c61823ff7a19d 100644
--- a/pkgs/development/python-modules/environmental-override/default.nix
+++ b/pkgs/development/python-modules/environmental-override/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/environs/default.nix b/pkgs/development/python-modules/environs/default.nix
index 67bca70171e4a..34620e3b52f13 100644
--- a/pkgs/development/python-modules/environs/default.nix
+++ b/pkgs/development/python-modules/environs/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, dj-database-url
-, dj-email-url
-, django-cache-url
-, fetchFromGitHub
-, flit-core
-, marshmallow
-, pytestCheckHook
-, python-dotenv
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dj-database-url,
+  dj-email-url,
+  django-cache-url,
+  fetchFromGitHub,
+  flit-core,
+  marshmallow,
+  pytestCheckHook,
+  python-dotenv,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-9BqIlA2HcUlBiyTB7zxaLO0CzBRkx5mKMMdhvdr2Uqg=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     marshmallow
@@ -41,9 +40,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "environs"
-  ];
+  pythonImportsCheck = [ "environs" ];
 
   meta = with lib; {
     description = "Python modle for environment variable parsing";
diff --git a/pkgs/development/python-modules/envisage/default.nix b/pkgs/development/python-modules/envisage/default.nix
index 74f70ee4979b3..94964c9a581a8 100644
--- a/pkgs/development/python-modules/envisage/default.nix
+++ b/pkgs/development/python-modules/envisage/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, apptools
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, ipython
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, setuptools
-, traits
+{
+  lib,
+  apptools,
+  buildPythonPackage,
+  fetchPypi,
+  ipython,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
+  traits,
 }:
 
 buildPythonPackage rec {
@@ -46,9 +46,7 @@ buildPythonPackage rec {
     "envisage/tests/test_egg_plugin_manager.py"
   ];
 
-  pythonImportsCheck = [
-    "envisage"
-  ];
+  pythonImportsCheck = [ "envisage" ];
 
   meta = with lib; {
     description = "Framework for building applications whose functionalities can be extended by adding plug-ins";
diff --git a/pkgs/development/python-modules/envoy-reader/default.nix b/pkgs/development/python-modules/envoy-reader/default.nix
index 15603b59d23d9..3f91c0c69e6a7 100644
--- a/pkgs/development/python-modules/envoy-reader/default.nix
+++ b/pkgs/development/python-modules/envoy-reader/default.nix
@@ -1,16 +1,16 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, envoy-utils
-, fetchFromGitHub
-, fetchpatch
-, httpx
-, pyjwt
-, pytest-asyncio
-, pytestCheckHook
-, pytest-raises
-, pythonOlder
-, respx
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  envoy-utils,
+  fetchFromGitHub,
+  httpx,
+  pyjwt,
+  pytest-asyncio,
+  pytestCheckHook,
+  pytest-raises,
+  pythonOlder,
+  respx,
 }:
 
 buildPythonPackage rec {
@@ -47,9 +47,7 @@ buildPythonPackage rec {
       --replace "pyjwt==2.1.0" "pyjwt>=2.1.0"
   '';
 
-  pythonImportsCheck = [
-    "envoy_reader"
-  ];
+  pythonImportsCheck = [ "envoy_reader" ];
 
   meta = with lib; {
     description = "Python module to read from Enphase Envoy units";
diff --git a/pkgs/development/python-modules/envoy-utils/default.nix b/pkgs/development/python-modules/envoy-utils/default.nix
index ff795aa62e3de..6827f97271820 100644
--- a/pkgs/development/python-modules/envoy-utils/default.nix
+++ b/pkgs/development/python-modules/envoy-utils/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, zeroconf
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "13zn0d6k2a4nls9vp8cs0w07bgg4138vz18cadjadhm8p6r3bi0c";
   };
 
-  propagatedBuildInputs = [
-    zeroconf
-  ];
+  propagatedBuildInputs = [ zeroconf ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/envs/default.nix b/pkgs/development/python-modules/envs/default.nix
index b22660efb6f67..3d113a4f2dfde 100644
--- a/pkgs/development/python-modules/envs/default.nix
+++ b/pkgs/development/python-modules/envs/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchPypi
-, jinja2
-, mock
-, pynose
-, poetry-core
-, pythonOlder
-, terminaltables
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchPypi,
+  jinja2,
+  mock,
+  pynose,
+  poetry-core,
+  pythonOlder,
+  terminaltables,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-nYQ1xphdHN1oKZ4ExY4r24rmz2ayWWqAeeb5qT8qA5g=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     click
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "envs"
-  ];
+  pythonImportsCheck = [ "envs" ];
 
   meta = with lib; {
     description = "Easy access to environment variables from Python";
diff --git a/pkgs/development/python-modules/enzyme/default.nix b/pkgs/development/python-modules/enzyme/default.nix
index 9e043782585fc..47c2abb01ed27 100644
--- a/pkgs/development/python-modules/enzyme/default.nix
+++ b/pkgs/development/python-modules/enzyme/default.nix
@@ -1,4 +1,8 @@
-{ lib, fetchPypi, buildPythonPackage }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+}:
 
 buildPythonPackage rec {
   pname = "enzyme";
diff --git a/pkgs/development/python-modules/epc/default.nix b/pkgs/development/python-modules/epc/default.nix
index b9d96558bb6f5..81864a3de9f1c 100644
--- a/pkgs/development/python-modules/epc/default.nix
+++ b/pkgs/development/python-modules/epc/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, sexpdata
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  sexpdata,
 }:
 
 buildPythonPackage rec {
@@ -22,5 +23,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/tkf/python-epc";
     license = licenses.gpl3;
   };
-
 }
diff --git a/pkgs/development/python-modules/ephem/default.nix b/pkgs/development/python-modules/ephem/default.nix
index 3b9f4fba9f505..6b0b760b978f9 100644
--- a/pkgs/development/python-modules/ephem/default.nix
+++ b/pkgs/development/python-modules/ephem/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, glibcLocales
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  glibcLocales,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     LC_ALL="en_US.UTF-8" pytest --pyargs ephem.tests -k "not JPLTest"
   '';
 
-  pythonImportsCheck = [
-    "ephem"
-  ];
+  pythonImportsCheck = [ "ephem" ];
 
   meta = with lib; {
     description = "Compute positions of the planets and stars";
diff --git a/pkgs/development/python-modules/ephemeral-port-reserve/default.nix b/pkgs/development/python-modules/ephemeral-port-reserve/default.nix
index 09db4df764d64..2a7e328f978b9 100644
--- a/pkgs/development/python-modules/ephemeral-port-reserve/default.nix
+++ b/pkgs/development/python-modules/ephemeral-port-reserve/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 let
@@ -20,9 +21,7 @@ buildPythonPackage {
     hash = "sha256-R6NRpfaT05PO/cTWgCakiGfCuCyucjVOXbAezn5x1cU=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = lib.optionals stdenv.isDarwin [
     # can't find hostname in our darwin build environment
@@ -31,9 +30,7 @@ buildPythonPackage {
 
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [
-    "ephemeral_port_reserve"
-  ];
+  pythonImportsCheck = [ "ephemeral_port_reserve" ];
 
   meta = with lib; {
     description = "Find an unused port, reliably";
diff --git a/pkgs/development/python-modules/epion/default.nix b/pkgs/development/python-modules/epion/default.nix
index 69afe290652ad..293917b954daf 100644
--- a/pkgs/development/python-modules/epion/default.nix
+++ b/pkgs/development/python-modules/epion/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, docopt
-, fetchFromGitHub
-, pythonOlder
-, pytz
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  docopt,
+  fetchFromGitHub,
+  pythonOlder,
+  pytz,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-9tE/SqR+GHZXeE+bOtXkLu+4jy1vO8WoiLjb6MJazxQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     docopt
@@ -35,9 +34,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "epion"
-  ];
+  pythonImportsCheck = [ "epion" ];
 
   meta = with lib; {
     description = "Module to access Epion sensor data";
diff --git a/pkgs/development/python-modules/epitran/default.nix b/pkgs/development/python-modules/epitran/default.nix
index 8495d81d97237..f512ff0d0ccbb 100644
--- a/pkgs/development/python-modules/epitran/default.nix
+++ b/pkgs/development/python-modules/epitran/default.nix
@@ -1,7 +1,6 @@
 {
   lib,
   buildPythonPackage,
-  fetchPypi,
   fetchFromGitHub,
 
   unittestCheckHook,
diff --git a/pkgs/development/python-modules/epson-projector/default.nix b/pkgs/development/python-modules/epson-projector/default.nix
index 30e021842e76f..93afde3804c58 100644
--- a/pkgs/development/python-modules/epson-projector/default.nix
+++ b/pkgs/development/python-modules/epson-projector/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, aiohttp
-, async-timeout
-, pyserial-asyncio
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  aiohttp,
+  async-timeout,
+  pyserial-asyncio,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/equinox/default.nix b/pkgs/development/python-modules/equinox/default.nix
index 976406b399b1e..d89a041be864f 100644
--- a/pkgs/development/python-modules/equinox/default.nix
+++ b/pkgs/development/python-modules/equinox/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, hatchling
-, jax
-, jaxlib
-, jaxtyping
-, typing-extensions
-, beartype
-, optax
-, pytest-xdist
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  hatchling,
+  jax,
+  jaxlib,
+  jaxtyping,
+  typing-extensions,
+  beartype,
+  optax,
+  pytest-xdist,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-3OwHND1YEdg/SppqiB7pCdp6v+lYwTbtX07tmyEMWDo=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     jax
@@ -48,12 +47,25 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "equinox" ];
 
   disabledTests = [
-    # Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emitted.
-    "test_tracetime"
+    # For simplicity, JAX has removed its internal frames from the traceback of the following exception.
+    # https://github.com/patrick-kidger/equinox/issues/716
+    "test_abstract"
+    "test_complicated"
+    "test_grad"
+    "test_jvp"
+    "test_mlp"
+    "test_num_traces"
+    "test_pytree_in"
+    "test_simple"
+    "test_vmap"
+
+    # AssertionError: assert 'foo:\n   pri...pe=float32)\n' == 'foo:\n   pri...pe=float32)\n'
+    # Also reported in patrick-kidger/equinox#716
+    "test_backward_nan"
   ];
 
   meta = with lib; {
-    description = "A JAX library based around a simple idea: represent parameterised functions (such as neural networks) as PyTrees";
+    description = "JAX library based around a simple idea: represent parameterised functions (such as neural networks) as PyTrees";
     changelog = "https://github.com/patrick-kidger/equinox/releases/tag/v${version}";
     homepage = "https://github.com/patrick-kidger/equinox";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/eradicate/default.nix b/pkgs/development/python-modules/eradicate/default.nix
index 10fed495d6eae..b3586d07432db 100644
--- a/pkgs/development/python-modules/eradicate/default.nix
+++ b/pkgs/development/python-modules/eradicate/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,17 +20,11 @@ buildPythonPackage rec {
     hash = "sha256-ikiqNe1a+OeRraNBbtAx6v3LsTajWlgxm4wR2Tcbmjk=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "eradicate"
-  ];
+  pythonImportsCheck = [ "eradicate" ];
 
-  pytestFlagsArray = [
-    "test_eradicate.py"
-  ];
+  pytestFlagsArray = [ "test_eradicate.py" ];
 
   meta = with lib; {
     description = "Library to remove commented-out code from Python files";
diff --git a/pkgs/development/python-modules/es-client/default.nix b/pkgs/development/python-modules/es-client/default.nix
index 3204da1d5a977..ce5f362675bc8 100644
--- a/pkgs/development/python-modules/es-client/default.nix
+++ b/pkgs/development/python-modules/es-client/default.nix
@@ -12,7 +12,6 @@
   pytest-asyncio,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
   pyyaml,
   requests,
   six,
@@ -21,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "es-client";
-  version = "8.13.1";
+  version = "8.14.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -30,14 +29,13 @@ buildPythonPackage rec {
     owner = "untergeek";
     repo = "es_client";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4v9SRWVG9p4kCob4C3by2JxNqX6L3yMHpbnMYEAM7A0=";
+    hash = "sha256-CJhiSDmIlhTWV7LLWd2ZCzuj5cWXwgh0lkKJvhmaDFw=";
   };
 
   pythonRelaxDeps = true;
 
   build-system = [ hatchling ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     certifi
diff --git a/pkgs/development/python-modules/escapism/default.nix b/pkgs/development/python-modules/escapism/default.nix
index 484a608ba910f..1146c3cb67d91 100644
--- a/pkgs/development/python-modules/escapism/default.nix
+++ b/pkgs/development/python-modules/escapism/default.nix
@@ -1,6 +1,7 @@
-{ pkgs
-, buildPythonPackage
-, fetchPypi
+{
+  pkgs,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/esig/default.nix b/pkgs/development/python-modules/esig/default.nix
index f0183917c2c69..68af34c82e3a4 100644
--- a/pkgs/development/python-modules/esig/default.nix
+++ b/pkgs/development/python-modules/esig/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cmake
-, ninja
-, oldest-supported-numpy
-, scikit-build
-, setuptools
-, numpy
-, iisignature
-, boost
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cmake,
+  ninja,
+  oldest-supported-numpy,
+  scikit-build,
+  setuptools,
+  numpy,
+  iisignature,
+  boost,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-BGZaJSrpNSwZMHBYFDmDVPZOtgam/EVyh5Y5FAB8e1o=";
   };
 
-  buildInputs = [
-    boost
-  ];
+  buildInputs = [ boost ];
 
   dontUseCmakeConfigure = true;
 
@@ -35,14 +34,10 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   passthru.optional-dependencies = {
-    iisignature = [
-      iisignature
-    ];
+    iisignature = [ iisignature ];
   };
 
   # PyPI tarball has no tests
diff --git a/pkgs/development/python-modules/espeak-phonemizer/default.nix b/pkgs/development/python-modules/espeak-phonemizer/default.nix
index 5b9352905374e..ff25558aee93b 100644
--- a/pkgs/development/python-modules/espeak-phonemizer/default.nix
+++ b/pkgs/development/python-modules/espeak-phonemizer/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, substituteAll
-, espeak-ng
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  substituteAll,
+  espeak-ng,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     changelog = "https://github.com/rhasspy/espeak-phonemizer/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/esper/default.nix b/pkgs/development/python-modules/esper/default.nix
new file mode 100644
index 0000000000000..5a284970e74fa
--- /dev/null
+++ b/pkgs/development/python-modules/esper/default.nix
@@ -0,0 +1,33 @@
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  lib,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "esper";
+  version = "3.3";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "benmoran56";
+    repo = "esper";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-DZAF2B40ulSn2MQadklT32Svcm1j0e/hIxrxISO07TI=";
+  };
+
+  build-system = [ flit-core ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [ "esper" ];
+
+  meta = {
+    description = "ECS (Entity Component System) for Python";
+    homepage = "https://github.com/benmoran56/esper";
+    changelog = "https://github.com/benmoran56/esper/blob/${src.rev}/RELEASE_NOTES";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ sigmanificient ];
+  };
+}
diff --git a/pkgs/development/python-modules/esphome-dashboard-api/default.nix b/pkgs/development/python-modules/esphome-dashboard-api/default.nix
index 0cb49cd6486ee..9f45c3460ee92 100644
--- a/pkgs/development/python-modules/esphome-dashboard-api/default.nix
+++ b/pkgs/development/python-modules/esphome-dashboard-api/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, aiohttp
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  aiohttp,
 }:
 
 buildPythonPackage rec {
@@ -29,15 +30,11 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   doCheck = false; # no tests
 
-  pythonImportsCheck = [
-    "esphome_dashboard_api"
-  ];
+  pythonImportsCheck = [ "esphome_dashboard_api" ];
 
   meta = with lib; {
     description = "API to interact with ESPHome Dashboard";
diff --git a/pkgs/development/python-modules/esprima/default.nix b/pkgs/development/python-modules/esprima/default.nix
index 774288c699438..8969ec7922821 100644
--- a/pkgs/development/python-modules/esprima/default.nix
+++ b/pkgs/development/python-modules/esprima/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,17 +20,11 @@ buildPythonPackage rec {
     sha256 = "WtkPCReXhxyr6pOzE9gsdIeBlLk+nSnbxkS3OowEaHo=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "test/__main__.py::TestEsprima"
-  ];
+  pytestFlagsArray = [ "test/__main__.py::TestEsprima" ];
 
-  pythonImportsCheck = [
-    "esprima"
-  ];
+  pythonImportsCheck = [ "esprima" ];
 
   meta = with lib; {
     description = "Python parser for standard-compliant ECMAScript";
diff --git a/pkgs/development/python-modules/essentials-openapi/default.nix b/pkgs/development/python-modules/essentials-openapi/default.nix
index 5fc8251476566..f63b1dfa7a2d8 100644
--- a/pkgs/development/python-modules/essentials-openapi/default.nix
+++ b/pkgs/development/python-modules/essentials-openapi/default.nix
@@ -14,7 +14,7 @@
   pythonImportsCheckHook,
   pyyaml,
   rich,
-  setuptools
+  setuptools,
 }:
 buildPythonPackage rec {
   pname = "essentials-openapi";
@@ -28,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-/NYv0NrE8+0kQg5G3Qf2DtesMHlmKQYczNT8pFlNFZE=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   nativeCheckInputs = [
     flask
@@ -48,18 +46,24 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    full = [ click jinja2 rich httpx ];
+    full = [
+      click
+      jinja2
+      rich
+      httpx
+    ];
   };
 
-  pythonImportsCheck = [
-    "openapidocs"
-  ];
+  pythonImportsCheck = [ "openapidocs" ];
 
   meta = with lib; {
     homepage = "https://github.com/Neoteroi/essentials-openapi";
     description = "Functions to handle OpenAPI Documentation";
     changelog = "https://github.com/Neoteroi/essentials-openapi/releases/v${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [aldoborrero zimbatm];
+    maintainers = with maintainers; [
+      aldoborrero
+      zimbatm
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/essentials/default.nix b/pkgs/development/python-modules/essentials/default.nix
index 69a494a0eb5de..7dd8adcccd71d 100644
--- a/pkgs/development/python-modules/essentials/default.nix
+++ b/pkgs/development/python-modules/essentials/default.nix
@@ -20,19 +20,18 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "essentials"
-  ];
+  pythonImportsCheck = [ "essentials" ];
 
   meta = with lib; {
     homepage = "https://github.com/Neoteroi/essentials";
     description = "General purpose classes and functions";
     changelog = "https://github.com/Neoteroi/essentials/releases/v${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [aldoborrero zimbatm];
+    maintainers = with maintainers; [
+      aldoborrero
+      zimbatm
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/et-xmlfile/default.nix b/pkgs/development/python-modules/et-xmlfile/default.nix
index b744d2a693dd4..8d647852dfc3c 100644
--- a/pkgs/development/python-modules/et-xmlfile/default.nix
+++ b/pkgs/development/python-modules/et-xmlfile/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitLab
-, lxml
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitLab,
+  lxml,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,12 +27,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "et_xmlfile"
-  ];
+  pythonImportsCheck = [ "et_xmlfile" ];
 
   meta = with lib; {
-    description = "An implementation of lxml.xmlfile for the standard library";
+    description = "Implementation of lxml.xmlfile for the standard library";
     longDescription = ''
       et_xmlfile is a low memory library for creating large XML files.
 
diff --git a/pkgs/development/python-modules/etcd/default.nix b/pkgs/development/python-modules/etcd/default.nix
index 3cc989636f1b2..355d6cd4fbaec 100644
--- a/pkgs/development/python-modules/etcd/default.nix
+++ b/pkgs/development/python-modules/etcd/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, simplejson
-, pytz
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  simplejson,
+  pytz,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,17 @@ buildPythonPackage rec {
     sed -i -e '13,14d;37d' setup.py
   '';
 
-  propagatedBuildInputs = [ simplejson pytz requests ];
+  propagatedBuildInputs = [
+    simplejson
+    pytz
+    requests
+  ];
 
   # No proper tests are available
   doCheck = false;
 
   meta = with lib; {
-    description = "A Python etcd client that just works";
+    description = "Python etcd client that just works";
     homepage = "https://github.com/dsoprea/PythonEtcdClient";
     license = licenses.gpl2;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/etcd3/default.nix b/pkgs/development/python-modules/etcd3/default.nix
index 494f70ddf4da6..31ff0eb6dcc84 100644
--- a/pkgs/development/python-modules/etcd3/default.nix
+++ b/pkgs/development/python-modules/etcd3/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, etcd
-, fetchFromGitHub
-, grpcio
-, hypothesis
-, mock
-, pifpaf
-, protobuf
-, pytestCheckHook
-, six
-, tenacity
+{
+  lib,
+  buildPythonPackage,
+  etcd,
+  fetchFromGitHub,
+  grpcio,
+  hypothesis,
+  mock,
+  pifpaf,
+  protobuf,
+  pytestCheckHook,
+  six,
+  tenacity,
 }:
 
 buildPythonPackage rec {
@@ -46,9 +47,7 @@ buildPythonPackage rec {
     pifpaf -e PYTHON run etcd --cluster
   '';
 
-  pythonImportsCheck = [
-    "etcd3"
-  ];
+  pythonImportsCheck = [ "etcd3" ];
 
   meta = with lib; {
     description = "Python client for the etcd API v3";
diff --git a/pkgs/development/python-modules/ete3/default.nix b/pkgs/development/python-modules/ete3/default.nix
index f36128784dad6..54864226c75ea 100644
--- a/pkgs/development/python-modules/ete3/default.nix
+++ b/pkgs/development/python-modules/ete3/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-, numpy
-, six
-, withTreeVisualization ? false
-, lxml
-, withXmlSupport ? false
-, pyqt5
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  numpy,
+  six,
+  withTreeVisualization ? false,
+  lxml,
+  withXmlSupport ? false,
+  pyqt5,
 }:
 
 buildPythonPackage rec {
@@ -20,16 +21,16 @@ buildPythonPackage rec {
     sha256 = "sha256-BqO3+o7ZAYewdqjbvlsbYqzulCAdPG6CL1X0SWAe9vI=";
   };
 
-
   doCheck = false; # Tests are (i) not 3.x compatible, (ii) broken under 2.7
   pythonImportsCheck = [ "ete3" ];
 
-  propagatedBuildInputs = [ six numpy ]
-    ++ lib.optional withTreeVisualization pyqt5
-    ++ lib.optional withXmlSupport lxml;
+  propagatedBuildInputs = [
+    six
+    numpy
+  ] ++ lib.optional withTreeVisualization pyqt5 ++ lib.optional withXmlSupport lxml;
 
   meta = with lib; {
-    description = "A Python framework for the analysis and visualization of trees";
+    description = "Python framework for the analysis and visualization of trees";
     mainProgram = "ete3";
     homepage = "http://etetoolkit.org/";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/python-modules/etebase/default.nix b/pkgs/development/python-modules/etebase/default.nix
index 15815f33ee4fd..bb23e85534b8a 100644
--- a/pkgs/development/python-modules/etebase/default.nix
+++ b/pkgs/development/python-modules/etebase/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, buildPythonPackage
-, rustPlatform
-, cargo
-, pkg-config
-, rustc
-, rustfmt
-, setuptools-rust
-, openssl
-, Security
-, msgpack
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  rustPlatform,
+  cargo,
+  pkg-config,
+  rustc,
+  rustfmt,
+  setuptools-rust,
+  openssl,
+  Security,
+  msgpack,
 }:
 
 buildPythonPackage rec {
@@ -43,9 +44,7 @@ buildPythonPackage rec {
 
   buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
 
-  propagatedBuildInputs = [
-    msgpack
-  ];
+  propagatedBuildInputs = [ msgpack ];
 
   postPatch = ''
     # Use system OpenSSL, which gets security updates.
@@ -55,11 +54,10 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "etebase" ];
 
-
   meta = with lib; {
     broken = stdenv.isDarwin;
     homepage = "https://www.etebase.com/";
-    description = "A Python client library for Etebase";
+    description = "Python client library for Etebase";
     license = licenses.bsd3;
     maintainers = with maintainers; [ _3699n ];
   };
diff --git a/pkgs/development/python-modules/etelemetry/default.nix b/pkgs/development/python-modules/etelemetry/default.nix
index a3b9008fc1caa..c61159a4e1e7c 100644
--- a/pkgs/development/python-modules/etelemetry/default.nix
+++ b/pkgs/development/python-modules/etelemetry/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, ci-info
-, ci-py
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  ci-info,
+  ci-py,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/eternalegypt/default.nix b/pkgs/development/python-modules/eternalegypt/default.nix
index 2065d603fae14..ef6c599625c85 100644
--- a/pkgs/development/python-modules/eternalegypt/default.nix
+++ b/pkgs/development/python-modules/eternalegypt/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, attrs
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  attrs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "eternalegypt"
-  ];
+  pythonImportsCheck = [ "eternalegypt" ];
 
   meta = with lib; {
     description = "Python API for Netgear LTE modems";
diff --git a/pkgs/development/python-modules/etesync/default.nix b/pkgs/development/python-modules/etesync/default.nix
index d65698c07ad66..a871f3fb3a910 100644
--- a/pkgs/development/python-modules/etesync/default.nix
+++ b/pkgs/development/python-modules/etesync/default.nix
@@ -1,8 +1,28 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27,
-  appdirs, asn1crypto, cffi, cryptography, furl, idna, orderedmultidict,
-  packaging, peewee, py, pyasn1, pycparser, pyparsing, pyscrypt,
-  python-dateutil, pytz, requests, six, vobject,
-  pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  appdirs,
+  asn1crypto,
+  cffi,
+  cryptography,
+  furl,
+  idna,
+  orderedmultidict,
+  packaging,
+  peewee,
+  py,
+  pyasn1,
+  pycparser,
+  pyparsing,
+  pyscrypt,
+  python-dateutil,
+  pytz,
+  requests,
+  six,
+  vobject,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +58,7 @@ buildPythonPackage rec {
     vobject
   ];
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
   checkPhase = ''
     pytest tests/test_collections.py
@@ -49,7 +67,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://www.etesync.com/";
-    description = "A python API to interact with an EteSync server.";
+    description = "Python API to interact with an EteSync server";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ valodim ];
   };
diff --git a/pkgs/development/python-modules/eth-abi/default.nix b/pkgs/development/python-modules/eth-abi/default.nix
index 8e45e945218fd..61ba458104597 100644
--- a/pkgs/development/python-modules/eth-abi/default.nix
+++ b/pkgs/development/python-modules/eth-abi/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, eth-hash
-, eth-typing
-, eth-utils
-, hypothesis
-, parsimonious
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  eth-hash,
+  eth-typing,
+  eth-utils,
+  hypothesis,
+  parsimonious,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/eth-account/default.nix b/pkgs/development/python-modules/eth-account/default.nix
index a56ad36be6398..059fd610cb9a7 100644
--- a/pkgs/development/python-modules/eth-account/default.nix
+++ b/pkgs/development/python-modules/eth-account/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, bitarray
-, eth-abi
-, eth-keyfile
-, eth-keys
-, eth-rlp
-, eth-utils
-, websockets
-, hexbytes
-, pythonOlder
-, rlp
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  bitarray,
+  eth-abi,
+  eth-keyfile,
+  eth-keys,
+  eth-rlp,
+  eth-utils,
+  websockets,
+  hexbytes,
+  pythonOlder,
+  rlp,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/eth-hash/default.nix b/pkgs/development/python-modules/eth-hash/default.nix
index 991bd28aff18a..7d75ccf1655e4 100644
--- a/pkgs/development/python-modules/eth-hash/default.nix
+++ b/pkgs/development/python-modules/eth-hash/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pythonAtLeast
-, pythonOlder
-, pytest
-, safe-pysha3
-, pycryptodome
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonAtLeast,
+  pythonOlder,
+  pytest,
+  safe-pysha3,
+  pycryptodome,
 }:
 
 buildPythonPackage rec {
@@ -21,19 +22,21 @@ buildPythonPackage rec {
     hash = "sha256-6UN+kvLjjAtkmLgUaovjZC/6n3FZtXCwyXZH7ijQObU=";
   };
 
-  nativeCheckInputs = [
-    pytest
-  ] ++ passthru.optional-dependencies.pycryptodome
-  # eth-hash can use either safe-pysha3 or pycryptodome;
-  # safe-pysha3 requires Python 3.9+ while pycryptodome does not.
-  # https://github.com/ethereum/eth-hash/issues/46#issuecomment-1314029211
-  ++ lib.optional (pythonAtLeast "3.9") passthru.optional-dependencies.pysha3;
+  nativeCheckInputs =
+    [ pytest ]
+    ++ passthru.optional-dependencies.pycryptodome
+    # eth-hash can use either safe-pysha3 or pycryptodome;
+    # safe-pysha3 requires Python 3.9+ while pycryptodome does not.
+    # https://github.com/ethereum/eth-hash/issues/46#issuecomment-1314029211
+    ++ lib.optional (pythonAtLeast "3.9") passthru.optional-dependencies.pysha3;
 
-  checkPhase = ''
-    pytest tests/backends/pycryptodome/
-  '' + lib.optionalString (pythonAtLeast "3.9") ''
-    pytest tests/backends/pysha3/
-  '';
+  checkPhase =
+    ''
+      pytest tests/backends/pycryptodome/
+    ''
+    + lib.optionalString (pythonAtLeast "3.9") ''
+      pytest tests/backends/pysha3/
+    '';
 
   passthru.optional-dependencies = {
     pycryptodome = [ pycryptodome ];
@@ -41,7 +44,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "The Ethereum hashing function keccak256";
+    description = "Ethereum hashing function keccak256";
     homepage = "https://github.com/ethereum/eth-hash";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/eth-keyfile/default.nix b/pkgs/development/python-modules/eth-keyfile/default.nix
index e8e42a56c60fe..8ed0657104717 100644
--- a/pkgs/development/python-modules/eth-keyfile/default.nix
+++ b/pkgs/development/python-modules/eth-keyfile/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, eth-keys
-, eth-utils
-, pycryptodome
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  eth-keys,
+  eth-utils,
+  pycryptodome,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,7 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-797yhHuU9/lm96YKxl3SZ5IQAwDxDSYkLkiBdAHh0Uk=";
   };
 
-  build-system = [ setuptools];
+  build-system = [ setuptools ];
 
   propagatedBuildInputs = [
     eth-keys
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     pycryptodome
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "eth_keyfile" ];
 
diff --git a/pkgs/development/python-modules/eth-keys/default.nix b/pkgs/development/python-modules/eth-keys/default.nix
index edf83f0657019..e599a21546f0a 100644
--- a/pkgs/development/python-modules/eth-keys/default.nix
+++ b/pkgs/development/python-modules/eth-keys/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, asn1tools
-, coincurve
-, eth-hash
-, eth-typing
-, eth-utils
-, factory-boy
-, hypothesis
-, isPyPy
-, pyasn1
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  asn1tools,
+  coincurve,
+  eth-hash,
+  eth-typing,
+  eth-utils,
+  factory-boy,
+  hypothesis,
+  isPyPy,
+  pyasn1,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,22 +29,24 @@ buildPythonPackage rec {
     hash = "sha256-vyyaLCG2uIHXX0t93DmFq8/u0rZL+nsBsH2gfgjziyo=";
   };
 
-  build-system = [ setuptools];
+  build-system = [ setuptools ];
 
   propagatedBuildInputs = [
     eth-typing
     eth-utils
   ];
 
-  nativeCheckInputs = [
-    asn1tools
-    factory-boy
-    hypothesis
-    pyasn1
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.coincurve
-  ++ lib.optional (!isPyPy) eth-hash.optional-dependencies.pysha3
-  ++ lib.optional isPyPy eth-hash.optional-dependencies.pycryptodome;
+  nativeCheckInputs =
+    [
+      asn1tools
+      factory-boy
+      hypothesis
+      pyasn1
+      pytestCheckHook
+    ]
+    ++ passthru.optional-dependencies.coincurve
+    ++ lib.optional (!isPyPy) eth-hash.optional-dependencies.pysha3
+    ++ lib.optional isPyPy eth-hash.optional-dependencies.pycryptodome;
 
   disabledTests = [
     # tests are broken
diff --git a/pkgs/development/python-modules/eth-rlp/default.nix b/pkgs/development/python-modules/eth-rlp/default.nix
index 081abf233ef91..d70ede6773ca8 100644
--- a/pkgs/development/python-modules/eth-rlp/default.nix
+++ b/pkgs/development/python-modules/eth-rlp/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, eth-hash
-, eth-utils
-, hexbytes
-, pytestCheckHook
-, pythonOlder
-, rlp
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  eth-hash,
+  eth-utils,
+  hexbytes,
+  pytestCheckHook,
+  pythonOlder,
+  rlp,
 }:
 
 buildPythonPackage rec {
@@ -23,7 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-FTqIutndf+epmO5XNEUoRAUEmn299aTLIZNe5SMcxAQ=";
   };
 
-  build-system = [ setuptools];
+  build-system = [ setuptools ];
 
   propagatedBuildInputs = [
     hexbytes
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     rlp
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ eth-hash.optional-dependencies.pycryptodome;
+  nativeCheckInputs = [ pytestCheckHook ] ++ eth-hash.optional-dependencies.pycryptodome;
 
   pythonImportsCheck = [ "eth_rlp" ];
 
diff --git a/pkgs/development/python-modules/eth-typing/default.nix b/pkgs/development/python-modules/eth-typing/default.nix
index 60bafffaea2ab..6e437a5418985 100644
--- a/pkgs/development/python-modules/eth-typing/default.nix
+++ b/pkgs/development/python-modules/eth-typing/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-JT/2bCPYFSRNt3V7QnHSAJR7HrZ1JpRKdU7gQpoYIn0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "eth_typing"
-  ];
+  pythonImportsCheck = [ "eth_typing" ];
 
   meta = with lib; {
     description = "Common type annotations for Ethereum Python packages";
diff --git a/pkgs/development/python-modules/eth-utils/default.nix b/pkgs/development/python-modules/eth-utils/default.nix
index 8686da98d92a9..c45aec172690f 100644
--- a/pkgs/development/python-modules/eth-utils/default.nix
+++ b/pkgs/development/python-modules/eth-utils/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, eth-hash
-, eth-typing
-, cytoolz
-, hypothesis
-, isPyPy
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, toolz
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  eth-hash,
+  eth-typing,
+  cytoolz,
+  hypothesis,
+  isPyPy,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  toolz,
 }:
 
 buildPythonPackage rec {
@@ -25,15 +26,12 @@ buildPythonPackage rec {
     hash = "sha256-k2pHM1eKPzoGxZlU6yT7bZMv4CCWGaZaSnFHSbT76Zo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     eth-hash
     eth-typing
-  ] ++ lib.optional (!isPyPy) cytoolz
-  ++ lib.optional isPyPy toolz;
+  ] ++ lib.optional (!isPyPy) cytoolz ++ lib.optional isPyPy toolz;
 
   nativeCheckInputs = [
     hypothesis
@@ -42,9 +40,7 @@ buildPythonPackage rec {
 
   # Removing a poorly written test case from test suite.
   # TODO work with the upstream
-  disabledTestPaths = [
-    "tests/functional-utils/test_type_inference.py"
-  ];
+  disabledTestPaths = [ "tests/functional-utils/test_type_inference.py" ];
 
   pythonImportsCheck = [ "eth_utils" ];
 
diff --git a/pkgs/development/python-modules/etils/default.nix b/pkgs/development/python-modules/etils/default.nix
index fd1d034138e95..f1df16ed59337 100644
--- a/pkgs/development/python-modules/etils/default.nix
+++ b/pkgs/development/python-modules/etils/default.nix
@@ -1,67 +1,88 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, flit-core
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  flit-core,
 
   # tests
-, chex
-, jaxlib
-, pytest-subtests
-, pytest-xdist
-, pytestCheckHook
-, yapf
+  chex,
+  jaxlib,
+  pytest-subtests,
+  pytest-xdist,
+  pytestCheckHook,
+  yapf,
 
   # optional
-, jupyter
-, mediapy
-, numpy
-, importlib-resources
-, typing-extensions
-, zipp
-, absl-py
-, tqdm
-, dm-tree
-, jax
-, tensorflow
+  jupyter,
+  mediapy,
+  numpy,
+  importlib-resources,
+  typing-extensions,
+  zipp,
+  absl-py,
+  tqdm,
+  dm-tree,
+  jax,
+  tensorflow,
 }:
 
 buildPythonPackage rec {
   pname = "etils";
-  version = "1.8.0";
+  version = "1.9.2";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+0ePV/7CAuJg5UyRkrMXaS/WPbLRHZk+cLzf+inMzVg=";
+    hash = "sha256-FdzTWsDAzCQEtGrAhGrzzE6Hb9PYDzb1eVHifoudY3k=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   passthru.optional-dependencies = rec {
     array-types = enp;
-    eapp = [ absl-py /* FIXME package simple-parsing */ ] ++ epy;
-    ecolab = [ jupyter numpy mediapy ] ++ enp ++ epy;
+    eapp = [
+      absl-py # FIXME package simple-parsing
+    ] ++ epy;
+    ecolab = [
+      jupyter
+      numpy
+      mediapy
+    ] ++ enp ++ epy;
     edc = epy;
     enp = [ numpy ] ++ epy;
-    epath = [ importlib-resources typing-extensions zipp ] ++ epy;
+    epath = [
+      importlib-resources
+      typing-extensions
+      zipp
+    ] ++ epy;
     epy = [ typing-extensions ];
-    etqdm = [ absl-py tqdm ] ++ epy;
+    etqdm = [
+      absl-py
+      tqdm
+    ] ++ epy;
     etree = array-types ++ epy ++ enp ++ etqdm;
     etree-dm = [ dm-tree ] ++ etree;
     etree-jax = [ jax ] ++ etree;
     etree-tf = [ tensorflow ] ++ etree;
-    all = array-types ++ eapp ++ ecolab ++ edc ++ enp ++ epath ++ epy ++ etqdm
-      ++ etree ++ etree-dm ++ etree-jax ++ etree-tf;
+    all =
+      array-types
+      ++ eapp
+      ++ ecolab
+      ++ edc
+      ++ enp
+      ++ epath
+      ++ epy
+      ++ etqdm
+      ++ etree
+      ++ etree-dm
+      ++ etree-jax
+      ++ etree-tf;
   };
 
-  pythonImportsCheck = [
-    "etils"
-  ];
+  pythonImportsCheck = [ "etils" ];
 
   nativeCheckInputs = [
     chex
@@ -70,8 +91,7 @@ buildPythonPackage rec {
     pytest-xdist
     pytestCheckHook
     yapf
-  ]
-  ++ passthru.optional-dependencies.all;
+  ] ++ passthru.optional-dependencies.all;
 
   disabledTests = [
     "test_public_access" # requires network access
diff --git a/pkgs/development/python-modules/etuples/default.nix b/pkgs/development/python-modules/etuples/default.nix
index a78cb3dc98977..d1a122162d2b0 100644
--- a/pkgs/development/python-modules/etuples/default.nix
+++ b/pkgs/development/python-modules/etuples/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cons
-, multipledispatch
-, py
-, pytestCheckHook
-, pytest-html
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cons,
+  multipledispatch,
+  py,
+  pytestCheckHook,
+  pytest-html,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
     "--self-contained-html"
   ];
 
-  pythonImportsCheck = [
-    "etuples"
-  ];
+  pythonImportsCheck = [ "etuples" ];
 
   meta = with lib; {
     description = "Python S-expression emulation using tuple-like objects";
diff --git a/pkgs/development/python-modules/euclid3/default.nix b/pkgs/development/python-modules/euclid3/default.nix
index 3d723eca56584..f929b4b7c0a1b 100644
--- a/pkgs/development/python-modules/euclid3/default.nix
+++ b/pkgs/development/python-modules/euclid3/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
 }:
 buildPythonPackage rec {
   pname = "euclid3";
@@ -12,14 +13,15 @@ buildPythonPackage rec {
     hash = "sha256-JbgnpXrb/Zo/qGJeQ6vD6Qf2HeYiND5+U4SC75tG/Qs=";
   };
 
-  pythonImportsCheck = [
-    "euclid3"
-  ];
+  pythonImportsCheck = [ "euclid3" ];
 
   meta = with lib; {
-    description = "2D and 3D vector, matrix, quaternion and geometry module.";
+    description = "2D and 3D vector, matrix, quaternion and geometry module";
     homepage = "http://code.google.com/p/pyeuclid/";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ jfly matusf ];
+    maintainers = with maintainers; [
+      jfly
+      matusf
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/eufylife-ble-client/default.nix b/pkgs/development/python-modules/eufylife-ble-client/default.nix
index d6216634232a2..88c488907e282 100644
--- a/pkgs/development/python-modules/eufylife-ble-client/default.nix
+++ b/pkgs/development/python-modules/eufylife-ble-client/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, bleak
-, bleak-retry-connector
-, buildPythonPackage
-, cryptography
-, fetchPypi
-, poetry-core
-, pythonOlder
+{
+  lib,
+  bleak,
+  bleak-retry-connector,
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-1pnT5B+m2/IDqHqOIZdDx8WwBdZpJe1Bj/HaxY+VW1Y=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bleak
@@ -34,9 +33,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "eufylife_ble_client"
-  ];
+  pythonImportsCheck = [ "eufylife_ble_client" ];
 
   meta = with lib; {
     description = "Module for parsing data from Eufy smart scales";
diff --git a/pkgs/development/python-modules/eval-type-backport/default.nix b/pkgs/development/python-modules/eval-type-backport/default.nix
index 1231d106fa58e..d74d24b58ac0e 100644
--- a/pkgs/development/python-modules/eval-type-backport/default.nix
+++ b/pkgs/development/python-modules/eval-type-backport/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,12 +23,10 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
-    description = "Like `typing._eval_type`, but lets older Python versions use newer typing features.";
+    description = "Like `typing._eval_type`, but lets older Python versions use newer typing features";
     homepage = "https://github.com/alexmojaki/eval_type_backport";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ perchun ];
diff --git a/pkgs/development/python-modules/evaluate/default.nix b/pkgs/development/python-modules/evaluate/default.nix
index fa9a894b032a7..9eeb02422a47d 100644
--- a/pkgs/development/python-modules/evaluate/default.nix
+++ b/pkgs/development/python-modules/evaluate/default.nix
@@ -1,44 +1,40 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pythonRelaxDepsHook
-, cookiecutter
-, datasets
-, dill
-, fsspec
-, huggingface-hub
-, importlib-metadata
-, multiprocess
-, numpy
-, packaging
-, pandas
-, pyarrow
-, requests
-, responses
-, tqdm
-, xxhash
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  datasets,
+  dill,
+  fsspec,
+  huggingface-hub,
+  importlib-metadata,
+  multiprocess,
+  numpy,
+  packaging,
+  pandas,
+  requests,
+  setuptools,
+  tqdm,
+  xxhash,
 }:
 
 buildPythonPackage rec {
   pname = "evaluate";
-  version = "0.4.1";
-  format = "setuptools";
+  version = "0.4.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "huggingface";
-    repo = pname;
+    repo = "evaluate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-axcJg0ZalEd4FOySCiFReKL7wmTCtLaw71YqyLHq8fc=";
+    hash = "sha256-CGBluY7wFr+RdUW4QTUN18z1WKAB104ayrkzzPZHZ/w=";
   };
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
-  pythonRelaxDeps = [ "responses" ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    cookiecutter
+  dependencies = [
     datasets
     numpy
     dill
@@ -50,18 +46,12 @@ buildPythonPackage rec {
     fsspec
     huggingface-hub
     packaging
-    pyarrow
-    responses
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # most tests require internet access.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "evaluate"
-  ];
+  pythonImportsCheck = [ "evaluate" ];
 
   meta = with lib; {
     homepage = "https://huggingface.co/docs/evaluate/index";
diff --git a/pkgs/development/python-modules/evdev/default.nix b/pkgs/development/python-modules/evdev/default.nix
index fd34a11241cff..bf3eee9692f15 100644
--- a/pkgs/development/python-modules/evdev/default.nix
+++ b/pkgs/development/python-modules/evdev/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, linuxHeaders
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  linuxHeaders,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "evdev";
-  version = "1.7.0";
+  version = "1.7.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-lb0qHgxs4s16LsxubNlzb/eUs61ctU2B2MvC5BTQuHA=";
+    hash = "sha256-DHLDcL2inYV+GI2TEBnDJlGpweqXfAjI2TmxztFjf94=";
   };
 
   patchPhase = ''
@@ -23,19 +24,13 @@ buildPythonPackage rec {
       --replace-fail /usr/include ${linuxHeaders}/include
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  buildInputs = [
-    linuxHeaders
-  ];
+  buildInputs = [ linuxHeaders ];
 
   doCheck = false;
 
-  pythonImportsCheck = [
-    "evdev"
-  ];
+  pythonImportsCheck = [ "evdev" ];
 
   meta = with lib; {
     description = "Provides bindings to the generic input event interface in Linux";
diff --git a/pkgs/development/python-modules/eve/default.nix b/pkgs/development/python-modules/eve/default.nix
index f6ed465c48cdc..ef664651a542e 100644
--- a/pkgs/development/python-modules/eve/default.nix
+++ b/pkgs/development/python-modules/eve/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, flask
-, events
-, pymongo
-, simplejson
-, cerberus
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  flask,
+  events,
+  pymongo,
+  simplejson,
+  cerberus,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
       --replace "events>=0.3,<0.4" "events>=0.3"
   '';
 
-  pythonImportsCheck = [
-    "eve"
-  ];
+  pythonImportsCheck = [ "eve" ];
 
   # tests call a running mongodb instance
   doCheck = false;
diff --git a/pkgs/development/python-modules/eventkit/default.nix b/pkgs/development/python-modules/eventkit/default.nix
index f0bda6bf4d0f0..fb25e87fd953f 100644
--- a/pkgs/development/python-modules/eventkit/default.nix
+++ b/pkgs/development/python-modules/eventkit/default.nix
@@ -1,18 +1,18 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
-, numpy
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+  numpy,
 }:
 let
   pname = "eventkit";
   version = "1.0.3";
   hash = "sha256-mUl/bzxjilD/dhby+M2Iexi7/zdl3BvYaBVU2xRnyTM=";
-in buildPythonPackage {
+in
+buildPythonPackage {
   inherit pname version;
 
-  src = fetchPypi {
-    inherit pname version hash;
-  };
+  src = fetchPypi { inherit pname version hash; };
 
   propagatedBuildInputs = [ numpy ];
   dontUseSetuptoolsCheck = true;
diff --git a/pkgs/development/python-modules/eventlet/default.nix b/pkgs/development/python-modules/eventlet/default.nix
index dbdc82bd35acb..c73cb2a049516 100644
--- a/pkgs/development/python-modules/eventlet/default.nix
+++ b/pkgs/development/python-modules/eventlet/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
 
-# build-system
-, hatch-vcs
-, hatchling
+  # build-system
+  hatch-vcs,
+  hatchling,
 
-# dependencies
-, dnspython
-, greenlet
-, isPyPy
-, six
+  # dependencies
+  dnspython,
+  greenlet,
+  isPyPy,
+  six,
 
-# tests
-, iana-etc
-, pytestCheckHook
-, libredirect
+  # tests
+  iana-etc,
+  pytestCheckHook,
+  libredirect,
 }:
 
 buildPythonPackage rec {
@@ -43,9 +44,7 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # libredirect is not available on darwin
   # tests hang on pypy indefinitely
@@ -71,7 +70,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/eventlet/eventlet/blob/v${version}/NEWS";
-    description = "A concurrent networking library for Python";
+    description = "Concurrent networking library for Python";
     homepage = "https://github.com/eventlet/eventlet/";
     license = licenses.mit;
     maintainers = with maintainers; [ SuperSandro2000 ];
diff --git a/pkgs/development/python-modules/events/default.nix b/pkgs/development/python-modules/events/default.nix
index f4e9dcd250f0f..8b2be689737a2 100644
--- a/pkgs/development/python-modules/events/default.nix
+++ b/pkgs/development/python-modules/events/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,17 +20,11 @@ buildPythonPackage rec {
     hash = "sha256-GGhIKHbJ31IN0Uoe689X9V/MZvtseE47qx2CmM4MYUs=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "events"
-  ];
+  pythonImportsCheck = [ "events" ];
 
-  pytestFlagsArray = [
-    "events/tests/tests.py"
-  ];
+  pytestFlagsArray = [ "events/tests/tests.py" ];
 
   meta = with lib; {
     description = "Bringing the elegance of C# EventHanlder to Python";
diff --git a/pkgs/development/python-modules/evernote/default.nix b/pkgs/development/python-modules/evernote/default.nix
index aac789909199e..9d9b9cc9ad02e 100644
--- a/pkgs/development/python-modules/evernote/default.nix
+++ b/pkgs/development/python-modules/evernote/default.nix
@@ -1,28 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, oauth2
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  oauth2,
 }:
 
 buildPythonPackage rec {
   pname = "evernote";
   version = "1.25.3";
   format = "setuptools";
-  disabled = ! isPy27; #some dependencies do not work with py3
+  disabled = !isPy27; # some dependencies do not work with py3
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "796847e0b7517e729041c5187fa1665c3f6fc0491cb4d71fb95a62c4f22e64eb";
   };
 
-   propagatedBuildInputs = [ oauth2 ];
+  propagatedBuildInputs = [ oauth2 ];
 
-   meta = with lib; {
+  meta = with lib; {
     description = "Evernote SDK for Python";
     homepage = "https://dev.evernote.com";
     license = licenses.asl20;
     maintainers = with maintainers; [ hbunke ];
-   };
-
+  };
 }
diff --git a/pkgs/development/python-modules/evohome-async/default.nix b/pkgs/development/python-modules/evohome-async/default.nix
index b2f512ea973c3..5544151686fb8 100644
--- a/pkgs/development/python-modules/evohome-async/default.nix
+++ b/pkgs/development/python-modules/evohome-async/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, hatchling
-, pythonOlder
-, voluptuous
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  hatchling,
+  pythonOlder,
+  voluptuous,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-B7LvGXAZO1pd9iCuZjW/bRWdB5PEzfcQjZWokGzMN70=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -35,9 +34,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "evohomeasync2"
-  ];
+  pythonImportsCheck = [ "evohomeasync2" ];
 
   meta = with lib; {
     description = "Python client for connecting to Honeywell's TCC RESTful API";
diff --git a/pkgs/development/python-modules/evtx/default.nix b/pkgs/development/python-modules/evtx/default.nix
index b949864dc7aaf..afa4969732490 100644
--- a/pkgs/development/python-modules/evtx/default.nix
+++ b/pkgs/development/python-modules/evtx/default.nix
@@ -1,16 +1,17 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, rustPlatform
-, libiconv
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  rustPlatform,
+  libiconv,
 }:
 
 buildPythonPackage rec {
   pname = "evtx";
-  version = "0.8.2";
+  version = "0.8.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -19,13 +20,13 @@ buildPythonPackage rec {
     owner = "omerbenamram";
     repo = "pyevtx-rs";
     rev = "refs/tags/${version}";
-    hash = "sha256-t//oNvD+7wnv5KkriKBX4xgGS8pQpZgCsKxAEXsj0X8=";
+    hash = "sha256-s94KCUIJplrkMvFsFxPokTucB5TwVYD1xxcoJyvk5NU=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-DPEL36cYNV5v4iW3+Fg1eEeuBuK9S7Qe78xOzZs8aJw=";
+    hash = "sha256-i16FNFbYrF2BONahLP7APMi9RPaLGmbnBH4hBPnHWzg=";
   };
 
   nativeBuildInputs = with rustPlatform; [
@@ -33,17 +34,11 @@ buildPythonPackage rec {
     maturinBuildHook
   ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
-    libiconv
-  ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "evtx"
-  ];
+  pythonImportsCheck = [ "evtx" ];
 
   meta = with lib; {
     description = "Bindings for evtx";
diff --git a/pkgs/development/python-modules/ewmh/default.nix b/pkgs/development/python-modules/ewmh/default.nix
index c1fc19e13d1bc..9819f036887b7 100644
--- a/pkgs/development/python-modules/ewmh/default.nix
+++ b/pkgs/development/python-modules/ewmh/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, xlib }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  xlib,
+}:
 
 buildPythonPackage rec {
   pname = "ewmh";
@@ -17,7 +22,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/parkouss/pyewmh";
-    description = "An implementation of EWMH (Extended Window Manager Hints), based on Xlib";
+    description = "Implementation of EWMH (Extended Window Manager Hints), based on Xlib";
     license = lib.licenses.lgpl3Plus;
     maintainers = with lib.maintainers; [ bandresen ];
   };
diff --git a/pkgs/development/python-modules/exceptiongroup/default.nix b/pkgs/development/python-modules/exceptiongroup/default.nix
index 2dca56aa91763..7dc9c78852ea1 100644
--- a/pkgs/development/python-modules/exceptiongroup/default.nix
+++ b/pkgs/development/python-modules/exceptiongroup/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-scm
-, pytestCheckHook
-, pythonOlder
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-scm,
+  pytestCheckHook,
+  pythonOlder,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
   pname = "exceptiongroup";
-  version = "1.2.0";
+  version = "1.2.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -18,28 +19,16 @@ buildPythonPackage rec {
     owner = "agronholm";
     repo = "exceptiongroup";
     rev = version;
-    hash = "sha256-iGeaRVJeFAWfJpwr7N4kST7d8YxpX3WgDqQemlR0cLU=";
+    hash = "sha256-87HmZsbsoV7QPHux50sYsFY2RaIc3627dH3WAwqXfQU=";
   };
 
-  nativeBuildInputs = [
-    flit-scm
-  ];
+  nativeBuildInputs = [ flit-scm ];
 
   doCheck = pythonAtLeast "3.11"; # infinite recursion with pytest
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = if pythonAtLeast "3.12" then [
-    # https://github.com/agronholm/exceptiongroup/issues/116
-    "test_deep_split"
-    "test_deep_subgroup"
-  ] else null;
-
-  pythonImportsCheck = [
-    "exceptiongroup"
-  ];
+  pythonImportsCheck = [ "exceptiongroup" ];
 
   meta = with lib; {
     description = "Backport of PEP 654 (exception groups)";
diff --git a/pkgs/development/python-modules/exchangelib/default.nix b/pkgs/development/python-modules/exchangelib/default.nix
index c41a7da3a8075..1ee6dcfb3215e 100644
--- a/pkgs/development/python-modules/exchangelib/default.nix
+++ b/pkgs/development/python-modules/exchangelib/default.nix
@@ -29,7 +29,7 @@
 
 buildPythonPackage rec {
   pname = "exchangelib";
-  version = "5.3.0";
+  version = "5.4.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -38,7 +38,7 @@ buildPythonPackage rec {
     owner = "ecederstrand";
     repo = "exchangelib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-rcXQJYjyWLPrlMci/j8IY7EbDEyyc+5uSOOXo0YwjKo=";
+    hash = "sha256-FPn2l+PkTXFqzjqF4kQ8KE49BXZUzDDIcFI3UqoxqQM=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/exdown/default.nix b/pkgs/development/python-modules/exdown/default.nix
index 937e90250a863..4d303a64c256b 100644
--- a/pkgs/development/python-modules/exdown/default.nix
+++ b/pkgs/development/python-modules/exdown/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, isPy27
-, fetchPypi
-, pythonOlder
-, setuptools
-, importlib-metadata
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  isPy27,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  importlib-metadata,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,15 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-r0SCigkUpOiba4MDf80+dLjOjjruVNILh/raWfvjXA0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "exdown" ];
 
diff --git a/pkgs/development/python-modules/execnb/default.nix b/pkgs/development/python-modules/execnb/default.nix
index 56b1bf1388ed9..bd3d91a10e513 100644
--- a/pkgs/development/python-modules/execnb/default.nix
+++ b/pkgs/development/python-modules/execnb/default.nix
@@ -1,34 +1,45 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fastcore
-, traitlets
-, ipython
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fastcore,
+  fetchPypi,
+  ipython,
+  pythonOlder,
+  setuptools,
+  traitlets,
 }:
 
 buildPythonPackage rec {
   pname = "execnb";
-  version = "0.1.5";
-  format = "setuptools";
+  version = "0.1.6";
+  pyproject = true;
+
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-nuAp4OMAfA3u3DJyORjFw7y7ZLsLCKEfxSFIXqNh+k0=";
+    hash = "sha256-KJ2XEHqFY0SxbAiVPWBFO0cyC0EWgGDso8wt7lBLTgU=";
   };
 
-  propagatedBuildInputs = [ fastcore traitlets ipython ];
+  build-system = [ setuptools ];
+
+  dependencies = [
+    fastcore
+    ipython
+    traitlets
+  ];
 
   # no real tests
   doCheck = false;
+
   pythonImportsCheck = [ "execnb" ];
 
   meta = with lib; {
-    homepage = "https://github.com/fastai/execnb";
     description = "Execute a jupyter notebook, fast, without needing jupyter";
-    mainProgram = "exec_nb";
+    homepage = "https://github.com/fastai/execnb";
+    changelog = "https://github.com/fastai/execnb/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ rxiao ];
+    mainProgram = "exec_nb";
   };
 }
diff --git a/pkgs/development/python-modules/execnet/default.nix b/pkgs/development/python-modules/execnet/default.nix
index 76f9b9b4df651..5c67eb0444646 100644
--- a/pkgs/development/python-modules/execnet/default.nix
+++ b/pkgs/development/python-modules/execnet/default.nix
@@ -1,34 +1,37 @@
-{ lib
-, buildPythonPackage
-, isPyPy
-, fetchPypi
-, hatchling
-, hatch-vcs
-, gevent
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  isPyPy,
+  fetchPypi,
+  hatchling,
+  hatch-vcs,
+  gevent,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "execnet";
   version = "2.1.1";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-UYm1LGEhwk/q4ogWarQbMlScfiNIZSc2VAuebn1OcuM=";
   };
 
-  postPatch = ''
-    # remove vbox tests
-    rm testing/test_termination.py
-    rm testing/test_channel.py
-    rm testing/test_xspec.py
-    rm testing/test_gateway.py
-  '' + lib.optionalString isPyPy ''
-    rm testing/test_multi.py
-  '';
+  postPatch =
+    ''
+      # remove vbox tests
+      rm testing/test_termination.py
+      rm testing/test_channel.py
+      rm testing/test_xspec.py
+      rm testing/test_gateway.py
+    ''
+    + lib.optionalString isPyPy ''
+      rm testing/test_multi.py
+    '';
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
     hatch-vcs
   ];
@@ -50,17 +53,15 @@ buildPythonPackage rec {
 
   pytestFlagsArray = [ "-vvv" ];
 
-  pythonImportsCheck = [
-    "execnet"
-  ];
+  pythonImportsCheck = [ "execnet" ];
 
   __darwinAllowLocalNetworking = true;
 
-  meta = with lib; {
-    changelog = "https://github.com/pytest-dev/execnet/blob/v${version}/CHANGELOG.rst";
+  meta = {
     description = "Distributed Python deployment and communication";
     homepage = "https://execnet.readthedocs.io/";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    changelog = "https://github.com/pytest-dev/execnet/blob/v${version}/CHANGELOG.rst";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ getchoo ];
   };
 }
diff --git a/pkgs/development/python-modules/executing/default.nix b/pkgs/development/python-modules/executing/default.nix
index aad9455156d1f..6c225d2679f71 100644
--- a/pkgs/development/python-modules/executing/default.nix
+++ b/pkgs/development/python-modules/executing/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
-, pythonOlder
-
-# build-system
-, setuptools
-, setuptools-scm
-
-# tests
-, asttokens
-, littleutils
-, rich
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+  setuptools-scm,
+
+  # tests
+  asttokens,
+  littleutils,
+  rich,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -38,19 +39,20 @@ buildPythonPackage rec {
     asttokens
     littleutils
     pytestCheckHook
-  ] ++ lib.optionals (pythonAtLeast "3.11") [
-    rich
-  ];
+  ] ++ lib.optionals (pythonAtLeast "3.11") [ rich ];
 
   disabledTests = [
     # requires ipython, which causes a circular dependency
     "test_two_statement_lookups"
-  ];
 
-  pythonImportsCheck = [
-    "executing"
+    # Asserts against time passed using time.time() to estimate
+    # if the test runs fast enough. That makes the test flaky when
+    # running on slow systems or cross- / emulated building
+    "test_many_source_for_filename_calls"
   ];
 
+  pythonImportsCheck = [ "executing" ];
+
   meta = with lib; {
     description = "Get information about what a frame is currently doing, particularly the AST node being executed";
     homepage = "https://github.com/alexmojaki/executing";
diff --git a/pkgs/development/python-modules/executor/default.nix b/pkgs/development/python-modules/executor/default.nix
index 40d15a9fa594d..e51249e49fd1a 100644
--- a/pkgs/development/python-modules/executor/default.nix
+++ b/pkgs/development/python-modules/executor/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy27
-, coloredlogs
-, humanfriendly
-, property-manager
-, fasteners
-, six
-, pytestCheckHook
-, mock
-, virtualenv
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy27,
+  coloredlogs,
+  humanfriendly,
+  property-manager,
+  fasteners,
+  six,
+  pytestCheckHook,
+  mock,
+  virtualenv,
 }:
 
 buildPythonPackage rec {
@@ -47,7 +48,7 @@ buildPythonPackage rec {
     "ssh"
     "foreach"
     "local_context"
-    "release"  # meant to be ran on ubuntu to succeed
+    "release" # meant to be ran on ubuntu to succeed
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/exif/default.nix b/pkgs/development/python-modules/exif/default.nix
index c1619436477a8..129e6e2863f3c 100644
--- a/pkgs/development/python-modules/exif/default.nix
+++ b/pkgs/development/python-modules/exif/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitLab
-, pythonOlder
-, plum-py
-, pytestCheckHook
-, baseline
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitLab,
+  pythonOlder,
+  plum-py,
+  pytestCheckHook,
+  baseline,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-uiHL3m0C6+YnAHRLwzMCSzffrQsSyVcuem6FBtTLxek=";
   };
 
-  propagatedBuildInputs = [
-    plum-py
-  ];
+  propagatedBuildInputs = [ plum-py ];
 
   nativeCheckInputs = [
     pytestCheckHook
     baseline
   ];
 
-  pythonImportsCheck = [
-    "exif"
-  ];
+  pythonImportsCheck = [ "exif" ];
 
   meta = with lib; {
     description = "Read and modify image EXIF metadata using Python";
diff --git a/pkgs/development/python-modules/exifread/default.nix b/pkgs/development/python-modules/exifread/default.nix
index 31edf9707eba2..16497817b44e5 100644
--- a/pkgs/development/python-modules/exifread/default.nix
+++ b/pkgs/development/python-modules/exifread/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Easy to use Python module to extract Exif metadata from tiff and jpeg files";
     mainProgram = "EXIF.py";
-    homepage    = "https://github.com/ianare/exif-py";
-    license     = licenses.bsd0;
+    homepage = "https://github.com/ianare/exif-py";
+    license = licenses.bsd0;
     maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/exitcode/default.nix b/pkgs/development/python-modules/exitcode/default.nix
index e3d91f53de874..1127a42abdcdb 100644
--- a/pkgs/development/python-modules/exitcode/default.nix
+++ b/pkgs/development/python-modules/exitcode/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-MZeLwU1gODqH752y/nc9WkUArl48pyq9Vun7tX620No=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "exitcode"
-  ];
+  pythonImportsCheck = [ "exitcode" ];
 
   meta = with lib; {
     description = "Preferred system exit codes as defined by sysexits.h";
diff --git a/pkgs/development/python-modules/expandvars/default.nix b/pkgs/development/python-modules/expandvars/default.nix
index 14d637fa63cec..b295a8c6640eb 100644
--- a/pkgs/development/python-modules/expandvars/default.nix
+++ b/pkgs/development/python-modules/expandvars/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# build-system
-, hatchling
+  # build-system
+  hatchling,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,18 +23,11 @@ buildPythonPackage rec {
     hash = "sha256-fRrfpVcoz0tdgS7OPQh3A/rqlT4MChp4QV3p31Ak2EQ=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  pythonImportsCheck = [
-    "expandvars"
-  ];
-
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  pythonImportsCheck = [ "expandvars" ];
 
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Expand system variables Unix style";
diff --git a/pkgs/development/python-modules/expects/default.nix b/pkgs/development/python-modules/expects/default.nix
index df9b06590981f..a36769259e365 100644
--- a/pkgs/development/python-modules/expects/default.nix
+++ b/pkgs/development/python-modules/expects/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/expecttest/default.nix b/pkgs/development/python-modules/expecttest/default.nix
index 5c1a27751e070..e9cdcf3f57451 100644
--- a/pkgs/development/python-modules/expecttest/default.nix
+++ b/pkgs/development/python-modules/expecttest/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, hypothesis
-, lib
-, poetry-core
-, pytestCheckHook
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  hypothesis,
+  lib,
+  poetry-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,10 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ poetry-core ];
 
-  nativeCheckInputs = [ hypothesis pytestCheckHook ];
+  nativeCheckInputs = [
+    hypothesis
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [ "expecttest" ];
 
diff --git a/pkgs/development/python-modules/experiment-utilities/default.nix b/pkgs/development/python-modules/experiment-utilities/default.nix
index a984a95de8258..816133f0b4a4b 100644
--- a/pkgs/development/python-modules/experiment-utilities/default.nix
+++ b/pkgs/development/python-modules/experiment-utilities/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, cloudpickle
-, dill
-, fasteners
-, fetchFromGitLab
-, qgrid
-, ipynbname
-, ipywidgets
-, odfpy
-, scipy
-, plotly
-, pytestCheckHook
-, pyyaml
-, tabulate
-, tensorboard
-, torch
+{
+  lib,
+  buildPythonPackage,
+  cloudpickle,
+  dill,
+  fasteners,
+  fetchFromGitLab,
+  qgrid,
+  ipynbname,
+  ipywidgets,
+  odfpy,
+  scipy,
+  plotly,
+  pytestCheckHook,
+  pyyaml,
+  tabulate,
+  tensorboard,
+  torch,
 }:
 
 buildPythonPackage rec {
@@ -57,14 +58,12 @@ buildPythonPackage rec {
     torch
   ];
 
-  disabledTests = [
-    "test_experimentstarter"
-  ];
+  disabledTests = [ "test_experimentstarter" ];
 
   pythonImportsCheck = [ "exputils" ];
 
   meta = with lib; {
-    description = "Various tools to run scientific computer experiments.";
+    description = "Various tools to run scientific computer experiments";
     homepage = "https://gitlab.inria.fr/creinke/exputils";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/expiring-dict/default.nix b/pkgs/development/python-modules/expiring-dict/default.nix
index be2b5c875d20c..59608910e50fa 100644
--- a/pkgs/development/python-modules/expiring-dict/default.nix
+++ b/pkgs/development/python-modules/expiring-dict/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, sortedcontainers
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  sortedcontainers,
 }:
 
 buildPythonPackage rec {
@@ -14,13 +15,9 @@ buildPythonPackage rec {
     hash = "sha256-PEBK2x5DaUaMt+Ub+8nEcNfi6GPv4qHHXU7XBtDc4aY=";
   };
 
-  propagatedBuildInputs = [
-    sortedcontainers
-  ];
+  propagatedBuildInputs = [ sortedcontainers ];
 
-  pythonImportsCheck = [
-    "expiring_dict"
-  ];
+  pythonImportsCheck = [ "expiring_dict" ];
 
   meta = with lib; {
     description = "Python dict with TTL support for auto-expiring caches";
diff --git a/pkgs/development/python-modules/expiringdict/default.nix b/pkgs/development/python-modules/expiringdict/default.nix
index e4e6dd8b7824d..772b3d6363357 100644
--- a/pkgs/development/python-modules/expiringdict/default.nix
+++ b/pkgs/development/python-modules/expiringdict/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, dill
-, coverage
-, coveralls
-, mock
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  dill,
+  coverage,
+  coveralls,
+  mock,
+  nose,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "expiringdict"
-  ];
+  pythonImportsCheck = [ "expiringdict" ];
 
   meta = with lib; {
     description = "Dictionary with auto-expiring values for caching purposes";
diff --git a/pkgs/development/python-modules/explorerscript/default.nix b/pkgs/development/python-modules/explorerscript/default.nix
index 4adc91b25dbae..391881204e29a 100644
--- a/pkgs/development/python-modules/explorerscript/default.nix
+++ b/pkgs/development/python-modules/explorerscript/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, antlr4
-, antlr4-python3-runtime
-, igraph
-, pygments
-, pytestCheckHook
-, pythonRelaxDepsHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  antlr4,
+  antlr4-python3-runtime,
+  igraph,
+  pygments,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,7 +24,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     antlr4
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -48,21 +47,15 @@ buildPythonPackage rec {
     igraph
   ];
 
-  passthru.optional-dependencies.pygments = [
-    pygments
-  ];
+  passthru.optional-dependencies.pygments = [ pygments ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.pygments;
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.pygments;
 
-  pythonImportsCheck = [
-    "explorerscript"
-  ];
+  pythonImportsCheck = [ "explorerscript" ];
 
   meta = with lib; {
     homepage = "https://github.com/SkyTemple/explorerscript";
-    description = "A programming language + compiler/decompiler for creating scripts for Pokémon Mystery Dungeon Explorers of Sky";
+    description = "Programming language + compiler/decompiler for creating scripts for Pokémon Mystery Dungeon Explorers of Sky";
     license = licenses.mit;
     maintainers = with maintainers; [ marius851000 ];
   };
diff --git a/pkgs/development/python-modules/exrex/default.nix b/pkgs/development/python-modules/exrex/default.nix
index fd7982ee778c3..ab54bd684f6fd 100644
--- a/pkgs/development/python-modules/exrex/default.nix
+++ b/pkgs/development/python-modules/exrex/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,18 +26,14 @@ buildPythonPackage rec {
       --replace "version=about['__version__']," "version='${version}',"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   dontWrapPythonPrograms = true;
 
   # Projec thas no released tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "exrex"
-  ];
+  pythonImportsCheck = [ "exrex" ];
 
   meta = with lib; {
     description = "Irregular methods on regular expressions";
diff --git a/pkgs/development/python-modules/extension-helpers/default.nix b/pkgs/development/python-modules/extension-helpers/default.nix
new file mode 100644
index 0000000000000..56f6a8f4d0a8d
--- /dev/null
+++ b/pkgs/development/python-modules/extension-helpers/default.nix
@@ -0,0 +1,57 @@
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  pip,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  setuptools,
+  tomli,
+  wheel,
+}:
+
+buildPythonPackage rec {
+  pname = "extension-helpers";
+  version = "1.1.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "astropy";
+    repo = "extension-helpers";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-pYCSLb6uuQ9ZtMZOQH0DxLlfgFv3tgH+AL35IN71cNI=";
+  };
+
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  dependencies = [ setuptools ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pip
+  ];
+
+  pythonImportsCheck = [ "extension_helpers" ];
+
+  pytestFlagsArray = [ "extension_helpers/tests" ];
+
+  disabledTests = [
+    # Test require network access
+    "test_only_pyproject"
+  ];
+
+  meta = with lib; {
+    description = "Helpers to assist with building Python packages with compiled C/Cython extensions";
+    homepage = "https://github.com/astropy/extension-helpers";
+    changelog = "https://github.com/astropy/extension-helpers/blob/${version}/CHANGES.md";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/extract-msg/default.nix b/pkgs/development/python-modules/extract-msg/default.nix
index c687ef3272f7b..27faad2695cae 100644
--- a/pkgs/development/python-modules/extract-msg/default.nix
+++ b/pkgs/development/python-modules/extract-msg/default.nix
@@ -8,7 +8,6 @@
   olefile,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
   red-black-tree-mod,
   rtfde,
   setuptools,
@@ -35,7 +34,6 @@ buildPythonPackage rec {
   ];
 
   build-system = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
diff --git a/pkgs/development/python-modules/extractcode/7z.nix b/pkgs/development/python-modules/extractcode/7z.nix
index 89a0bd110d4b1..bc1ae9e07ab99 100644
--- a/pkgs/development/python-modules/extractcode/7z.nix
+++ b/pkgs/development/python-modules/extractcode/7z.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, plugincode
-, p7zip
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  plugincode,
+  p7zip,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
 
   sourceRoot = "${src.name}/builtins/extractcode_7z-linux";
 
-  propagatedBuildInputs = [
-    plugincode
-  ];
+  propagatedBuildInputs = [ plugincode ];
 
   preBuild = ''
     pushd src/extractcode_7z/bin
@@ -35,14 +34,15 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "extractcode_7z"
-  ];
+  pythonImportsCheck = [ "extractcode_7z" ];
 
   meta = with lib; {
-    description = "A ScanCode Toolkit plugin to provide pre-built binary libraries and utilities and their locations";
+    description = "ScanCode Toolkit plugin to provide pre-built binary libraries and utilities and their locations";
     homepage = "https://github.com/nexB/scancode-plugins/tree/main/builtins/extractcode_7z-linux";
-    license = with licenses; [ asl20 lgpl21 ];
+    license = with licenses; [
+      asl20
+      lgpl21
+    ];
     maintainers = [ ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/development/python-modules/extractcode/default.nix b/pkgs/development/python-modules/extractcode/default.nix
index 55027f8813c14..350ff622f6c25 100644
--- a/pkgs/development/python-modules/extractcode/default.nix
+++ b/pkgs/development/python-modules/extractcode/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, extractcode-7z
-, extractcode-libarchive
-, fetchPypi
-, patch
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
-, six
-, typecode
+{
+  lib,
+  buildPythonPackage,
+  extractcode-7z,
+  extractcode-libarchive,
+  fetchPypi,
+  patch,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  six,
+  typecode,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
 
   dontConfigure = true;
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     typecode
@@ -70,9 +69,7 @@ buildPythonPackage rec {
     "test_patch_info_patch_patches_misc_linux_st710x_patches_motorola_rootdisk_c_patch"
   ];
 
-  pythonImportsCheck = [
-    "extractcode"
-  ];
+  pythonImportsCheck = [ "extractcode" ];
 
   meta = with lib; {
     description = "Universal archive extractor using z7zip, libarchive, other libraries and the Python standard library";
diff --git a/pkgs/development/python-modules/extractcode/libarchive.nix b/pkgs/development/python-modules/extractcode/libarchive.nix
index 0031c7a279413..2168fc0f3b7a5 100644
--- a/pkgs/development/python-modules/extractcode/libarchive.nix
+++ b/pkgs/development/python-modules/extractcode/libarchive.nix
@@ -1,15 +1,16 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, libarchive
-, libb2
-, bzip2
-, expat
-, lz4
-, xz
-, zlib
-, zstd
-, plugincode
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  libarchive,
+  libb2,
+  bzip2,
+  expat,
+  lz4,
+  xz,
+  zlib,
+  zstd,
+  plugincode,
 }:
 
 buildPythonPackage rec {
@@ -41,21 +42,20 @@ buildPythonPackage rec {
     popd
   '';
 
-  propagatedBuildInputs = [
-    plugincode
-  ];
+  propagatedBuildInputs = [ plugincode ];
 
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "extractcode_libarchive"
-  ];
+  pythonImportsCheck = [ "extractcode_libarchive" ];
 
   meta = with lib; {
-    description = "A ScanCode Toolkit plugin to provide pre-built binary libraries and utilities and their locations";
+    description = "ScanCode Toolkit plugin to provide pre-built binary libraries and utilities and their locations";
     homepage = "https://github.com/nexB/scancode-plugins/tree/main/builtins/extractcode_libarchive-linux";
-    license = with licenses; [ asl20 bsd2 ];
+    license = with licenses; [
+      asl20
+      bsd2
+    ];
     maintainers = [ ];
     platforms = platforms.linux;
   };
diff --git a/pkgs/development/python-modules/extras/default.nix b/pkgs/development/python-modules/extras/default.nix
index db076ea95d9cf..d73a0c050ea71 100644
--- a/pkgs/development/python-modules/extras/default.nix
+++ b/pkgs/development/python-modules/extras/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/extruct/default.nix b/pkgs/development/python-modules/extruct/default.nix
index 0673643de0db5..f7ede71841122 100644
--- a/pkgs/development/python-modules/extruct/default.nix
+++ b/pkgs/development/python-modules/extruct/default.nix
@@ -1,19 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, html-text
-, jstyleson
-, lxml
-, mf2py
-, mock
-, pyrdfa3
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, rdflib
-, setuptools
-, six
-, w3lib
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  html-text,
+  jstyleson,
+  lxml,
+  mf2py,
+  mock,
+  pyrdfa3,
+  pytestCheckHook,
+  pythonOlder,
+  rdflib,
+  setuptools,
+  six,
+  w3lib,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +30,7 @@ buildPythonPackage rec {
     hash = "sha256-6lAb17EoR0FKyIOb9hk1jcpmPtZ7vClfuCrDZ83XBeg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     html-text
@@ -50,9 +48,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "extruct"
-  ];
+  pythonImportsCheck = [ "extruct" ];
 
   disabledTests = [
     # AssertionError: Lists differ
diff --git a/pkgs/development/python-modules/eyed3/default.nix b/pkgs/development/python-modules/eyed3/default.nix
index 46678654f25e4..3b9c528b85b19 100644
--- a/pkgs/development/python-modules/eyed3/default.nix
+++ b/pkgs/development/python-modules/eyed3/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, isPyPy
-, six
-, filetype
-, deprecation
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  isPyPy,
+  six,
+  filetype,
+  deprecation,
 }:
 
 buildPythonPackage rec {
   version = "0.9.7";
-  pname    = "eyeD3";
+  pname = "eyeD3";
   disabled = isPyPy;
 
   src = fetchPypi {
@@ -29,12 +30,12 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python module and command line program for processing ID3 tags";
+    description = "Python module and command line program for processing ID3 tags";
     mainProgram = "eyeD3";
-    homepage    = "https://eyed3.nicfit.net/";
-    license     = licenses.gpl2;
+    homepage = "https://eyed3.nicfit.net/";
+    license = licenses.gpl2;
     maintainers = with maintainers; [ lovek323 ];
-    platforms   = platforms.unix;
+    platforms = platforms.unix;
     longDescription = ''
       eyeD3 is a Python module and command line program for processing ID3
       tags. Information about mp3 files (i.e bit rate, sample frequency, play
diff --git a/pkgs/development/python-modules/ezdxf/default.nix b/pkgs/development/python-modules/ezdxf/default.nix
index 3619db37b8129..a25d4c865ec3c 100644
--- a/pkgs/development/python-modules/ezdxf/default.nix
+++ b/pkgs/development/python-modules/ezdxf/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pyparsing
-, typing-extensions
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pyparsing,
+  typing-extensions,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # requires geomdl dependency
diff --git a/pkgs/development/python-modules/ezyrb/default.nix b/pkgs/development/python-modules/ezyrb/default.nix
index ee9b16acdbe11..51addca7efbf6 100644
--- a/pkgs/development/python-modules/ezyrb/default.nix
+++ b/pkgs/development/python-modules/ezyrb/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, future
-, numpy
-, scipy
-, matplotlib
-, scikit-learn
-, torch
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  future,
+  numpy,
+  scipy,
+  matplotlib,
+  scikit-learn,
+  torch,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -35,13 +36,9 @@ buildPythonPackage rec {
     torch
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ezyrb"
-  ];
+  pythonImportsCheck = [ "ezyrb" ];
 
   disabledTestPaths = [
     # Exclude long tests
diff --git a/pkgs/development/python-modules/f5-icontrol-rest/default.nix b/pkgs/development/python-modules/f5-icontrol-rest/default.nix
index f5dde3911546d..81390efdbc8ae 100644
--- a/pkgs/development/python-modules/f5-icontrol-rest/default.nix
+++ b/pkgs/development/python-modules/f5-icontrol-rest/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
   # needs to be updated to newer pytest version and requires physical device
   doCheck = false;
 
-  pytestFlags = [
-    "icontrol/test"
-  ];
+  pytestFlags = [ "icontrol/test" ];
 
   pythonImportsCheck = [ "icontrol" ];
 
diff --git a/pkgs/development/python-modules/f5-sdk/default.nix b/pkgs/development/python-modules/f5-sdk/default.nix
index b73afcec0fab3..09aded01c5ae1 100644
--- a/pkgs/development/python-modules/f5-sdk/default.nix
+++ b/pkgs/development/python-modules/f5-sdk/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, f5-icontrol-rest
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  f5-icontrol-rest,
+  six,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/f90nml/default.nix b/pkgs/development/python-modules/f90nml/default.nix
index ad2d1c8c604d0..2657ae73d4202 100644
--- a/pkgs/development/python-modules/f90nml/default.nix
+++ b/pkgs/development/python-modules/f90nml/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, python, setuptools-scm }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  setuptools-scm,
+}:
 
 buildPythonPackage rec {
   pname = "f90nml";
diff --git a/pkgs/development/python-modules/faadelays/default.nix b/pkgs/development/python-modules/faadelays/default.nix
index e19b3192e3503..a0d13daecdca5 100644
--- a/pkgs/development/python-modules/faadelays/default.nix
+++ b/pkgs/development/python-modules/faadelays/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,20 +19,14 @@ buildPythonPackage rec {
     hash = "sha256-ngMFd+BE3hKeaeGEX4xHpzDIrtGFDsSwxBbrc4ZMFas=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "faadelays"
-  ];
+  pythonImportsCheck = [ "faadelays" ];
 
   meta = with lib; {
     changelog = "https://github.com/ntilley905/faadelays/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/fabric/default.nix b/pkgs/development/python-modules/fabric/default.nix
index 3494c89517122..001abb7883a86 100644
--- a/pkgs/development/python-modules/fabric/default.nix
+++ b/pkgs/development/python-modules/fabric/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cryptography
-, decorator
-, invoke
-, mock
-, paramiko
-, pytestCheckHook
-, pytest-relaxed
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cryptography,
+  decorator,
+  invoke,
+  mock,
+  paramiko,
+  pytestCheckHook,
+  pytest-relaxed,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,18 @@ buildPythonPackage rec {
         --replace ', "pathlib2"' ' '
   '';
 
-  propagatedBuildInputs = [ invoke paramiko cryptography decorator ];
-
-  nativeCheckInputs = [ pytestCheckHook pytest-relaxed mock ];
+  propagatedBuildInputs = [
+    invoke
+    paramiko
+    cryptography
+    decorator
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-relaxed
+    mock
+  ];
 
   # ==================================== ERRORS ====================================
   # ________________________ ERROR collecting test session _________________________
diff --git a/pkgs/development/python-modules/fabulous/default.nix b/pkgs/development/python-modules/fabulous/default.nix
index eba74ab121bee..075f01ee64061 100644
--- a/pkgs/development/python-modules/fabulous/default.nix
+++ b/pkgs/development/python-modules/fabulous/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pillow
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pillow,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-hchlxuB5QP+VxCx+QZ2739/mR5SQmYyE+9kXLKJ2ij4=";
   };
 
-  patches = [
-    ./relative_import.patch
-  ];
+  patches = [ ./relative_import.patch ];
 
-  propagatedBuildInputs = [
-    pillow
-  ];
+  propagatedBuildInputs = [ pillow ];
 
   checkPhase = ''
     for i in tests/*.py; do
diff --git a/pkgs/development/python-modules/face-recognition/default.nix b/pkgs/development/python-modules/face-recognition/default.nix
index ef1d57e3eb67a..ff50cce91dad0 100644
--- a/pkgs/development/python-modules/face-recognition/default.nix
+++ b/pkgs/development/python-modules/face-recognition/default.nix
@@ -1,18 +1,19 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
 
   # propagates
-, click
-, dlib
-, face-recognition-models
-, numpy
-, pillow
+  click,
+  dlib,
+  face-recognition-models,
+  numpy,
+  pillow,
 
   # tests
-, pytestCheckHook
-, config
-, cudaSupport ? config.cudaSupport
+  pytestCheckHook,
+  config,
+  cudaSupport ? config.cudaSupport,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     pillow
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Disables tests when running with cuda due to https://github.com/NixOS/nixpkgs/issues/225912
   doCheck = !config.cudaSupport;
@@ -45,6 +44,6 @@ buildPythonPackage rec {
     license = licenses.mit;
     homepage = "https://github.com/ageitgey/face_recognition";
     maintainers = with maintainers; [ ];
-    description = "The world's simplest facial recognition api for Python and the command line";
+    description = "World's simplest facial recognition api for Python and the command line";
   };
 }
diff --git a/pkgs/development/python-modules/face-recognition/models.nix b/pkgs/development/python-modules/face-recognition/models.nix
index 9df1ac0605899..ba704dbbeb043 100644
--- a/pkgs/development/python-modules/face-recognition/models.nix
+++ b/pkgs/development/python-modules/face-recognition/models.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
-, setuptools
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -15,16 +16,12 @@ buildPythonPackage rec {
     hash = "sha256-t5vSAKiMh8mp1EbJkK5xxaYm0fNzAXTm1XAVf/HYls8=";
   };
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  propagatedBuildInputs = [ setuptools ];
 
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "face_recognition_models"
-  ];
+  pythonImportsCheck = [ "face_recognition_models" ];
 
   meta = with lib; {
     homepage = "https://github.com/ageitgey/face_recognition_models";
diff --git a/pkgs/development/python-modules/face/default.nix b/pkgs/development/python-modules/face/default.nix
index cd024c1fb22b2..731479b3bf4b1 100644
--- a/pkgs/development/python-modules/face/default.nix
+++ b/pkgs/development/python-modules/face/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, boltons
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  boltons,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-1daS+QvI9Zh7Y25H42OEubvaSZqvCneqCwu+g0x2kj0=";
   };
 
-  propagatedBuildInputs = [
-    boltons
-  ];
+  propagatedBuildInputs = [ boltons ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "face"
-  ];
+  pythonImportsCheck = [ "face" ];
 
   disabledTests = [
     # Assertion error as we take the Python release into account
@@ -36,7 +31,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A command-line interface parser and framework";
+    description = "Command-line interface parser and framework";
     longDescription = ''
       A command-line interface parser and framework, friendly for
       users, full-featured for developers.
diff --git a/pkgs/development/python-modules/facebook-sdk/default.nix b/pkgs/development/python-modules/facebook-sdk/default.nix
index 2789829da57a4..7ef73d1a1fa6d 100644
--- a/pkgs/development/python-modules/facebook-sdk/default.nix
+++ b/pkgs/development/python-modules/facebook-sdk/default.nix
@@ -1,8 +1,9 @@
-{ pkgs
-, buildPythonPackage
-, fetchPypi
-, requests
-, python
+{
+  pkgs,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -27,7 +28,7 @@ buildPythonPackage rec {
   meta = with pkgs.lib; {
     description = "Client library that supports the Facebook Graph API and the official Facebook JavaScript SDK";
     homepage = "https://github.com/pythonforfacebook/facebook-sdk";
-    license = licenses.asl20 ;
+    license = licenses.asl20;
     maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/facedancer/default.nix b/pkgs/development/python-modules/facedancer/default.nix
index 1db882a86bb65..516eb08e4f46c 100644
--- a/pkgs/development/python-modules/facedancer/default.nix
+++ b/pkgs/development/python-modules/facedancer/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, pyusb, pyserial }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  pyusb,
+  pyserial,
+}:
 
 buildPythonPackage rec {
   pname = "facedancer";
@@ -12,7 +19,10 @@ buildPythonPackage rec {
 
   disabled = !isPy3k;
 
-  propagatedBuildInputs = [ pyusb pyserial ];
+  propagatedBuildInputs = [
+    pyusb
+    pyserial
+  ];
 
   preBuild = ''
     echo "$version" > VERSION
diff --git a/pkgs/development/python-modules/facenet-pytorch/default.nix b/pkgs/development/python-modules/facenet-pytorch/default.nix
index 153408761c0af..191818bc6b3d1 100644
--- a/pkgs/development/python-modules/facenet-pytorch/default.nix
+++ b/pkgs/development/python-modules/facenet-pytorch/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, fetchPypi
-, pillow
-, torchvision
-, lib
+{
+  buildPythonPackage,
+  fetchPypi,
+  pillow,
+  torchvision,
+  lib,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,12 @@ buildPythonPackage rec {
 
   doCheck = false; # pypi version doesn't ship with tests
 
-  pythonImportsCheck = ["facenet_pytorch"];
+  pythonImportsCheck = [ "facenet_pytorch" ];
 
-  propagatedBuildInputs = [ pillow torchvision ];
+  propagatedBuildInputs = [
+    pillow
+    torchvision
+  ];
 
   meta = {
     description = "Pretrained Pytorch face detection (MTCNN) and facial recognition (InceptionResnet) models";
diff --git a/pkgs/development/python-modules/factory-boy/default.nix b/pkgs/development/python-modules/factory-boy/default.nix
index 2269445282bdf..8b93fec4f8d98 100644
--- a/pkgs/development/python-modules/factory-boy/default.nix
+++ b/pkgs/development/python-modules/factory-boy/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, django
-, faker
-, fetchPypi
-, flask
-, flask-sqlalchemy
-, mongoengine
-, pytestCheckHook
-, pythonOlder
-, sqlalchemy
-, sqlalchemy-utils
+{
+  lib,
+  buildPythonPackage,
+  django,
+  faker,
+  fetchPypi,
+  flask,
+  flask-sqlalchemy,
+  mongoengine,
+  pytestCheckHook,
+  pythonOlder,
+  sqlalchemy,
+  sqlalchemy-utils,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
       --replace '"3.2.1.dev0")' '"${version}")'
   '';
 
-  propagatedBuildInputs = [
-    faker
-  ];
+  propagatedBuildInputs = [ faker ];
 
   nativeCheckInputs = [
     django
@@ -45,18 +44,14 @@ buildPythonPackage rec {
   ];
 
   # Checks for MongoDB requires an a running DB
-  disabledTests = [
-    "MongoEngineTestCase"
-  ];
+  disabledTests = [ "MongoEngineTestCase" ];
 
   disabledTestPaths = [
     # incompatible with latest flask-sqlalchemy
     "examples/flask_alchemy/test_demoapp.py"
   ];
 
-  pythonImportsCheck = [
-    "factory"
-  ];
+  pythonImportsCheck = [ "factory" ];
 
   meta = with lib; {
     description = "Python package to create factories for complex objects";
diff --git a/pkgs/development/python-modules/fairscale/default.nix b/pkgs/development/python-modules/fairscale/default.nix
index 3041ac51de6aa..4472d6e24a4fd 100644
--- a/pkgs/development/python-modules/fairscale/default.nix
+++ b/pkgs/development/python-modules/fairscale/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-# build inputs
-, torch
-, numpy
-, ninja
-# check inputs
-, pytestCheckHook
-, parameterized
-, pytest-cov
-, pytest-timeout
-, remote-pdb
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  # build inputs
+  torch,
+  numpy,
+  ninja,
+  # check inputs
+  pytestCheckHook,
+  parameterized,
+  pytest-cov,
+  pytest-timeout,
+  remote-pdb,
 }:
 let
   pname = "fairscale";
@@ -58,16 +59,18 @@ buildPythonPackage {
   # Some tests try to build distributed models, which doesn't work in the sandbox.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "fairscale"
-  ];
+  pythonImportsCheck = [ "fairscale" ];
 
   meta = with lib; {
     description = "PyTorch extensions for high performance and large scale training";
     mainProgram = "wgit";
     homepage = "https://github.com/facebookresearch/fairscale";
     changelog = "https://github.com/facebookresearch/fairscale/releases/tag/v${version}";
-    license = with licenses; [ mit asl20 bsd3 ];
+    license = with licenses; [
+      mit
+      asl20
+      bsd3
+    ];
     maintainers = with maintainers; [ happysalada ];
   };
 }
diff --git a/pkgs/development/python-modules/fairseq/default.nix b/pkgs/development/python-modules/fairseq/default.nix
index e784f8ec0b0d4..5cea23e2bda6a 100644
--- a/pkgs/development/python-modules/fairseq/default.nix
+++ b/pkgs/development/python-modules/fairseq/default.nix
@@ -1,32 +1,32 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, fetchpatch
-
-# Native build inputs
-, cython
-, pythonRelaxDepsHook
-, which
-
-# Propagated build inputs
-, cffi
-, hydra-core
-, omegaconf
-, sacrebleu
-, numpy
-, regex
-, torch
-, tqdm
-, bitarray
-, torchaudio
-, scikit-learn
-, packaging
-
-# Check inputs
-, expecttest
-, hypothesis
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  fetchpatch,
+
+  # Native build inputs
+  cython,
+  which,
+
+  # Propagated build inputs
+  cffi,
+  hydra-core,
+  omegaconf,
+  sacrebleu,
+  numpy,
+  regex,
+  torch,
+  tqdm,
+  bitarray,
+  torchaudio,
+  scikit-learn,
+  packaging,
+
+  # Check inputs
+  expecttest,
+  hypothesis,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -52,7 +52,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     cython
-    pythonRelaxDepsHook
     which
   ];
 
@@ -89,9 +88,7 @@ buildPythonPackage rec {
     cd tests
   '';
 
-  pytestFlagsArray = [
-    "--import-mode append"
-  ];
+  pytestFlagsArray = [ "--import-mode append" ];
 
   disabledTests = [
     # this test requires xformers
@@ -120,7 +117,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/pytorch/fairseq";
     license = licenses.mit;
     platforms = platforms.linux;
-    hydraPlatforms = [];
+    hydraPlatforms = [ ];
     maintainers = with maintainers; [ happysalada ];
   };
 }
diff --git a/pkgs/development/python-modules/fake-useragent/default.nix b/pkgs/development/python-modules/fake-useragent/default.nix
index 7e6d5c76cfb25..138c7ab0980d3 100644
--- a/pkgs/development/python-modules/fake-useragent/default.nix
+++ b/pkgs/development/python-modules/fake-useragent/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, importlib-metadata
-, importlib-resources
-, setuptools
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  importlib-metadata,
+  importlib-resources,
+  setuptools,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,24 +27,16 @@ buildPythonPackage rec {
     sed -i '/addopts/d' pytest.ini
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-resources
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  propagatedBuildInputs =
+    [ ]
+    ++ lib.optionals (pythonOlder "3.10") [ importlib-resources ]
+    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "fake_useragent"
-  ];
+  pythonImportsCheck = [ "fake_useragent" ];
 
   meta = with lib; {
     description = "Up to date simple useragent faker with real world database";
diff --git a/pkgs/development/python-modules/faker/default.nix b/pkgs/development/python-modules/faker/default.nix
index c0944e473fe7a..babcc2423d358 100644
--- a/pkgs/development/python-modules/faker/default.nix
+++ b/pkgs/development/python-modules/faker/default.nix
@@ -1,30 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, freezegun
-, pillow
-, pytestCheckHook
-, python-dateutil
-, setuptools
-, text-unidecode
-, ukpostcodeparser
-, validators
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  freezegun,
+  pillow,
+  pytestCheckHook,
+  python-dateutil,
+  setuptools,
+  text-unidecode,
+  ukpostcodeparser,
+  validators,
 }:
 
 buildPythonPackage rec {
   pname = "faker";
-  version = "24.11.0";
+  version = "25.8.0";
   pyproject = true;
 
   src = fetchPypi {
     pname = "Faker";
     inherit version;
-    hash = "sha256-NLlHWBwrztNAw5s1+J2/rE81aTLP/4/ok73oVJA/Dm4=";
+    hash = "sha256-vexfL7BX0kTr724O0xj+pNy98yw6GgEHZvxF9daPxo0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     python-dateutil
@@ -40,9 +39,7 @@ buildPythonPackage rec {
   ];
 
   # avoid tests which import random2, an abandoned library
-  pytestFlagsArray = [
-    "--ignore=tests/providers/test_ssn.py"
-  ];
+  pytestFlagsArray = [ "--ignore=tests/providers/test_ssn.py" ];
   pythonImportsCheck = [ "faker" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/fakeredis/default.nix b/pkgs/development/python-modules/fakeredis/default.nix
index 45a2a512d5137..515597eca0368 100644
--- a/pkgs/development/python-modules/fakeredis/default.nix
+++ b/pkgs/development/python-modules/fakeredis/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hypothesis
-, jsonpath-ng
-, lupa
-, poetry-core
-, pybloom-live
-, pyprobables
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, redis
-, sortedcontainers
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hypothesis,
+  jsonpath-ng,
+  lupa,
+  poetry-core,
+  pybloom-live,
+  pyprobables,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  redis,
+  sortedcontainers,
 }:
 
 buildPythonPackage rec {
   pname = "fakeredis";
-  version = "2.21.3";
+  version = "2.23.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -26,14 +27,12 @@ buildPythonPackage rec {
     owner = "dsoftwareinc";
     repo = "fakeredis-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GIg+a8G5S0dmbvMKqS/Vn+wzNM6iNIs3bKPqhecsQt4=";
+    hash = "sha256-/nuBj9h5MMz1YvJozhl4Fq/OkLckesnQHHTUWfz06sA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     redis
     sortedcontainers
   ];
@@ -46,25 +45,18 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    lua = [
-      lupa
-    ];
-    json = [
-      jsonpath-ng
-    ];
-    bf = [
-      pyprobables
-    ];
-    cf = [
-      pyprobables
-    ];
-    probabilistic = [
-      pyprobables
-    ];
+    lua = [ lupa ];
+    json = [ jsonpath-ng ];
+    bf = [ pyprobables ];
+    cf = [ pyprobables ];
+    probabilistic = [ pyprobables ];
   };
 
-  pythonImportsCheck = [
-    "fakeredis"
+  pythonImportsCheck = [ "fakeredis" ];
+
+  disabledTests = [
+    # AssertionError
+    "test_command"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/falcon/default.nix b/pkgs/development/python-modules/falcon/default.nix
index 51f9bfd79a358..cb2ff6942eb24 100644
--- a/pkgs/development/python-modules/falcon/default.nix
+++ b/pkgs/development/python-modules/falcon/default.nix
@@ -1,30 +1,31 @@
-{ lib
-, buildPythonPackage
-, pythonAtLeast
-, pythonOlder
-, isPyPy
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  pythonAtLeast,
+  pythonOlder,
+  isPyPy,
+  fetchFromGitHub,
 
-# build
-, cython
-, setuptools
+  # build
+  cython,
+  setuptools,
 
-# tests
-, aiofiles
-, cbor2
-, httpx
-, msgpack
-, mujson
-, orjson
-, pytest-asyncio
-, pytest7CheckHook
-, pyyaml
-, rapidjson
-, requests
-, testtools
-, ujson
-, uvicorn
-, websockets
+  # tests
+  aiofiles,
+  cbor2,
+  httpx,
+  msgpack,
+  mujson,
+  orjson,
+  pytest-asyncio,
+  pytest7CheckHook,
+  pyyaml,
+  rapidjson,
+  requests,
+  testtools,
+  ujson,
+  uvicorn,
+  websockets,
 }:
 
 buildPythonPackage rec {
@@ -40,11 +41,7 @@ buildPythonPackage rec {
     hash = "sha256-7719gOM8WQVjODwOSo7HpH3HMFFeCGQQYBKktBAevig=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ] ++ lib.optionals (!isPyPy) [
-    cython
-  ];
+  nativeBuildInputs = [ setuptools ] ++ lib.optionals (!isPyPy) [ cython ];
 
   __darwinAllowLocalNetworking = true;
 
@@ -78,27 +75,24 @@ buildPythonPackage rec {
     msgpack
     mujson
     ujson
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    testtools
-  ];
+  ] ++ lib.optionals (pythonOlder "3.10") [ testtools ];
 
-  pytestFlagsArray = [
-    "tests"
-  ];
+  pytestFlagsArray = [ "tests" ];
 
-  disabledTestPaths = [
-    # needs a running server
-    "tests/asgi/test_asgi_servers.py"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    # ModuleNotFoundError: No module named 'distutils'
-    "tests/asgi/test_cythonized_asgi.py"
-  ];
+  disabledTestPaths =
+    [
+      # needs a running server
+      "tests/asgi/test_asgi_servers.py"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # ModuleNotFoundError: No module named 'distutils'
+      "tests/asgi/test_cythonized_asgi.py"
+    ];
 
   meta = with lib; {
-    description = "An unladen web framework for building APIs and app backends";
+    description = "Unladen web framework for building APIs and app backends";
     homepage = "https://falconframework.org/";
     license = licenses.asl20;
     maintainers = with maintainers; [ desiderius ];
   };
-
 }
diff --git a/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix b/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix
index b906a22bea572..ac88fb2249be4 100644
--- a/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix
+++ b/pkgs/development/python-modules/faraday-agent-parameters-types/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, marshmallow
-, packaging
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  marshmallow,
+  packaging,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "faraday-agent-parameters-types";
-  version = "1.5.1";
+  version = "1.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "faraday_agent_parameters_types";
     inherit version;
-    hash = "sha256-Bh1s0IeUEa4EnGElQn5ruBxFSbcOqsrDqbw1nVjdi5s=";
+    hash = "sha256-yw4u1xhfY9WYLSf9CNAsiDpY7y2Llf8j4gDoNZjACw0=";
   };
 
   postPatch = ''
@@ -26,18 +27,14 @@ buildPythonPackage rec {
       --replace-warn '"pytest-runner",' ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     marshmallow
     packaging
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [
     "faraday_agent_parameters_types"
@@ -53,7 +50,7 @@ buildPythonPackage rec {
     description = "Collection of Faraday agent parameters types";
     homepage = "https://github.com/infobyte/faraday_agent_parameters_types";
     changelog = "https://github.com/infobyte/faraday_agent_parameters_types/blob/${version}/CHANGELOG.md";
-    license = with licenses; [ gpl3Plus ];
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/faraday-plugins/default.nix b/pkgs/development/python-modules/faraday-plugins/default.nix
index 6919123258da7..7668dd48da547 100644
--- a/pkgs/development/python-modules/faraday-plugins/default.nix
+++ b/pkgs/development/python-modules/faraday-plugins/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, click
-, colorama
-, fetchFromGitHub
-, html2text
-, lxml
-, markdown
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pytz
-, requests
-, setuptools
-, simplejson
-, tabulate
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  click,
+  colorama,
+  fetchFromGitHub,
+  html2text,
+  lxml,
+  markdown,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  pytz,
+  requests,
+  setuptools,
+  simplejson,
+  tabulate,
 }:
 
 buildPythonPackage rec {
   pname = "faraday-plugins";
-  version = "1.17.0";
+  version = "1.18.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -28,19 +29,17 @@ buildPythonPackage rec {
     owner = "infobyte";
     repo = "faraday_plugins";
     rev = "refs/tags/${version}";
-    hash = "sha256-EE61RPantD1u9NNhyPRjoRkBifM3u16b0BC2aQC8UBA=";
+    hash = "sha256-oYE7Iik0+CbOfxF9IeeZotpGqV8TTz15MxJEC4VBrhk=";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace-warn "version=version," "version='${version}',"
+      --replace-fail "version=version," "version='${version}',"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     beautifulsoup4
     click
     colorama
@@ -54,9 +53,7 @@ buildPythonPackage rec {
     tabulate
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # faraday itself is currently not available
@@ -72,16 +69,14 @@ buildPythonPackage rec {
     "test_process_report_tags"
   ];
 
-  pythonImportsCheck = [
-    "faraday_plugins"
-  ];
+  pythonImportsCheck = [ "faraday_plugins" ];
 
   meta = with lib; {
     description = "Security tools report parsers for Faraday";
-    mainProgram = "faraday-plugins";
     homepage = "https://github.com/infobyte/faraday_plugins";
     changelog = "https://github.com/infobyte/faraday_plugins/releases/tag/${version}";
-    license = with licenses; [ gpl3Only ];
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "faraday-plugins";
   };
 }
diff --git a/pkgs/development/python-modules/farama-notifications/default.nix b/pkgs/development/python-modules/farama-notifications/default.nix
index eb449b53c1c91..1fc964a560178 100644
--- a/pkgs/development/python-modules/farama-notifications/default.nix
+++ b/pkgs/development/python-modules/farama-notifications/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  setuptools,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/farm-haystack/default.nix b/pkgs/development/python-modules/farm-haystack/default.nix
index e090778735d31..f2139a61bc254 100644
--- a/pkgs/development/python-modules/farm-haystack/default.nix
+++ b/pkgs/development/python-modules/farm-haystack/default.nix
@@ -1,109 +1,108 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonRelaxDepsHook
-, hatchling
-, boilerpy3
-, events
-, httpx
-, jsonschema
-, lazy-imports
-, more-itertools
-, networkx
-, pandas
-, pillow
-, platformdirs
-, posthog
-, prompthub-py
-, pydantic
-, quantulum3
-, rank-bm25
-, requests
-, requests-cache
-, scikit-learn
-, sseclient-py
-, tenacity
-, tiktoken
-, tqdm
-, transformers
-, openai-whisper
-, boto3
-, botocore
-# , beir
-, selenium
-, coverage
-, dulwich
-# , jupytercontrib
-, mkdocs
-, mypy
-, pre-commit
-, psutil
-# , pydoc-markdown
-, pylint
-, pytest
-, pytest-asyncio
-, pytest-cov
-# , pytest-custom-exit-code
-, python-multipart
-, reno
-, responses
-, toml
-, tox
-, watchdog
-, elastic-transport
-, elasticsearch
-# , azure-ai-formrecognizer
-, beautifulsoup4
-, markdown
-, python-docx
-, python-frontmatter
-, python-magic
-, tika
-, black
-, huggingface-hub
-, sentence-transformers
-, mlflow
-, rapidfuzz
-, scipy
-, seqeval
-, pdf2image
-, pytesseract
-, faiss
-# , faiss-gpu
-, pinecone-client
-, onnxruntime
-, onnxruntime-tools
-# , onnxruntime-gpu
-, opensearch-py
-, pymupdf
-, langdetect
-, nltk
-, canals
-, jinja2
-, openai
-, aiorwlock
-, ray
-, psycopg2
-, sqlalchemy
-, sqlalchemy-utils
-, weaviate-client
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  boilerpy3,
+  events,
+  httpx,
+  jsonschema,
+  lazy-imports,
+  more-itertools,
+  networkx,
+  pandas,
+  pillow,
+  platformdirs,
+  posthog,
+  prompthub-py,
+  pydantic,
+  quantulum3,
+  rank-bm25,
+  requests,
+  requests-cache,
+  scikit-learn,
+  sseclient-py,
+  tenacity,
+  tiktoken,
+  tqdm,
+  transformers,
+  openai-whisper,
+  boto3,
+  botocore,
+  # , beir
+  selenium,
+  coverage,
+  dulwich,
+  # , jupytercontrib
+  mkdocs,
+  mypy,
+  pre-commit,
+  psutil,
+  # , pydoc-markdown
+  pylint,
+  pytest,
+  pytest-asyncio,
+  pytest-cov,
+  # , pytest-custom-exit-code
+  python-multipart,
+  reno,
+  responses,
+  toml,
+  tox,
+  watchdog,
+  elastic-transport,
+  elasticsearch,
+  # , azure-ai-formrecognizer
+  beautifulsoup4,
+  markdown,
+  python-docx,
+  python-frontmatter,
+  python-magic,
+  tika,
+  black,
+  huggingface-hub,
+  sentence-transformers,
+  mlflow,
+  rapidfuzz,
+  scipy,
+  seqeval,
+  pdf2image,
+  pytesseract,
+  faiss,
+  # , faiss-gpu
+  pinecone-client,
+  onnxruntime,
+  onnxruntime-tools,
+  # , onnxruntime-gpu
+  opensearch-py,
+  pymupdf,
+  langdetect,
+  nltk,
+  canals,
+  jinja2,
+  openai,
+  aiorwlock,
+  ray,
+  psycopg2,
+  sqlalchemy,
+  sqlalchemy-utils,
+  weaviate-client,
 }:
 
 buildPythonPackage rec {
   pname = "farm-haystack";
-  version = "1.25.0";
+  version = "2.2.3";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "deepset-ai";
     repo = "haystack";
     rev = "refs/tags/v${version}";
-    hash = "sha256-lAXzWnHpOBVjgleFTYqlZ34hmZkcrPJ/h1kk4iVVvec=";
+    hash = "sha256-vaZ8bn36Eezf3/SnJ6ao0CvFZaHrpgbX+nM0IOqG2oo=";
   };
 
   nativeBuildInputs = [
     hatchling
-    pythonRelaxDepsHook
   ];
 
   pythonRemoveDeps = [
@@ -146,9 +145,7 @@ buildPythonPackage rec {
     # all-gpu = [
     #   farm-haystack
     # ];
-    audio = [
-      openai-whisper
-    ];
+    audio = [ openai-whisper ];
     aws = [
       boto3
       botocore
@@ -156,12 +153,8 @@ buildPythonPackage rec {
     # beir = [
     #   beir
     # ];
-    colab = [
-      pillow
-    ];
-    crawler = [
-      selenium
-    ];
+    colab = [ pillow ];
+    crawler = [ selenium ];
     dev = [
       coverage
       dulwich
@@ -201,9 +194,7 @@ buildPythonPackage rec {
       # python-magic-bin
       tika
     ];
-    formatting = [
-      black
-    ];
+    formatting = [ black ];
     inference = [
       huggingface-hub
       sentence-transformers
@@ -219,15 +210,11 @@ buildPythonPackage rec {
       pdf2image
       pytesseract
     ];
-    only-faiss = [
-      faiss
-    ];
+    only-faiss = [ faiss ];
     # only-faiss-gpu = [
     #   faiss-gpu
     # ];
-    only-pinecone = [
-      pinecone-client
-    ];
+    only-pinecone = [ pinecone-client ];
     onnx = [
       onnxruntime
       onnxruntime-tools
@@ -236,12 +223,8 @@ buildPythonPackage rec {
     #   onnxruntime-gpu
     #   onnxruntime-tools
     # ];
-    opensearch = [
-      opensearch-py
-    ];
-    pdf = [
-      pymupdf
-    ];
+    opensearch = [ opensearch-py ];
+    pdf = [ pymupdf ];
     preprocessing = [
       langdetect
       nltk
@@ -266,21 +249,18 @@ buildPythonPackage rec {
       sqlalchemy
       sqlalchemy-utils
     ];
-    weaviate = [
-      weaviate-client
-    ];
+    weaviate = [ weaviate-client ];
   };
 
   # the setup for test is intensive, hopefully can be done at some point
   doCheck = false;
 
-
   pythonImportsCheck = [ "haystack" ];
 
   meta = with lib; {
     description = "LLM orchestration framework to build customizable, production-ready LLM applications";
     longDescription = ''
-    LLM orchestration framework to build customizable, production-ready LLM applications. Connect components (models, vector DBs, file converters) to pipelines or agents that can interact with your data. With advanced retrieval methods, it's best suited for building RAG, question answering, semantic search or conversational agent chatbots
+      LLM orchestration framework to build customizable, production-ready LLM applications. Connect components (models, vector DBs, file converters) to pipelines or agents that can interact with your data. With advanced retrieval methods, it's best suited for building RAG, question answering, semantic search or conversational agent chatbots
     '';
     changelog = "https://github.com/deepset-ai/haystack/releases/tag/${src.rev}";
     homepage = "https://github.com/deepset-ai/haystack";
diff --git a/pkgs/development/python-modules/fast-histogram/default.nix b/pkgs/development/python-modules/fast-histogram/default.nix
index d3e4e3eb67207..d0621c1b539ef 100644
--- a/pkgs/development/python-modules/fast-histogram/default.nix
+++ b/pkgs/development/python-modules/fast-histogram/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, pytestCheckHook
-, fetchFromGitHub
-, python
-, pythonOlder
-, setuptools
-, setuptools-scm
-, numpy
-, wheel
-, hypothesis
-, pytest-cov
+{
+  lib,
+  buildPythonPackage,
+  pytestCheckHook,
+  fetchFromGitHub,
+  python,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  numpy,
+  wheel,
+  hypothesis,
+  pytest-cov,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/fastai/default.nix b/pkgs/development/python-modules/fastai/default.nix
index cd4bcc9f4b671..884c51f65efc2 100644
--- a/pkgs/development/python-modules/fastai/default.nix
+++ b/pkgs/development/python-modules/fastai/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fastprogress
-, fastcore
-, fastdownload
-, torch
-, torchvision
-, matplotlib
-, pillow
-, scikit-learn
-, scipy
-, spacy
-, pandas
-, requests
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fastprogress,
+  fastcore,
+  fastdownload,
+  torch,
+  torchvision,
+  matplotlib,
+  pillow,
+  scikit-learn,
+  scipy,
+  spacy,
+  pandas,
+  requests,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -47,7 +48,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/fastai/fastai";
-    description = "The fastai deep learning library";
+    description = "Fastai deep learning library";
     mainProgram = "configure_accelerate";
     changelog = "https://github.com/fastai/fastai/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/fastapi-cli/default.nix b/pkgs/development/python-modules/fastapi-cli/default.nix
new file mode 100644
index 0000000000000..f717ccee0428e
--- /dev/null
+++ b/pkgs/development/python-modules/fastapi-cli/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pdm-backend
+, typer
+, fastapi
+, uvicorn
+
+# checks
+, pytestCheckHook
+, rich
+}:
+
+let self = buildPythonPackage rec {
+  pname = "fastapi-cli";
+  version = "0.0.4";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "tiangolo";
+    repo = "fastapi-cli";
+    rev = version;
+    hash = "sha256-eWvZn7ZeLnQZAvGOzY77o6oO5y+QV2cx+peBov9YpJE=";
+  };
+
+  build-system = [ pdm-backend ];
+
+  dependencies = [ typer ];
+
+  optional-dependencies = {
+    standard = [
+      fastapi
+      uvicorn
+    ];
+  };
+
+  doCheck = false;
+
+  passthru.tests.pytest = self.overridePythonAttrs { doCheck = true; };
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    rich
+  ] ++ optional-dependencies.standard;
+
+  # coverage
+  disabledTests = [ "test_script" ];
+
+  pythonImportsCheck = [ "fastapi_cli" ];
+
+  meta = with lib; {
+    description = "Run and manage FastAPI apps from the command line with FastAPI CLI";
+    homepage = "https://github.com/tiangolo/fastapi-cli";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+};
+in self
diff --git a/pkgs/development/python-modules/fastapi-mail/default.nix b/pkgs/development/python-modules/fastapi-mail/default.nix
index 258425e35f852..feb52ac8b3f1f 100644
--- a/pkgs/development/python-modules/fastapi-mail/default.nix
+++ b/pkgs/development/python-modules/fastapi-mail/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, aioredis
-, aiosmtplib
-, blinker
-, buildPythonPackage
-, email-validator
-, fakeredis
-, fastapi
-, fetchFromGitHub
-, httpx
-, jinja2
-, poetry-core
-, pydantic
-, pydantic-settings
-, pytest-asyncio
-, pytestCheckHook
-, python-multipart
-, pythonOlder
+{
+  lib,
+  aioredis,
+  aiosmtplib,
+  blinker,
+  buildPythonPackage,
+  email-validator,
+  fakeredis,
+  fastapi,
+  fetchFromGitHub,
+  httpx,
+  jinja2,
+  poetry-core,
+  pydantic,
+  pydantic-settings,
+  pytest-asyncio,
+  pytestCheckHook,
+  python-multipart,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
       --replace 'pydantic = "^2.0"' 'pydantic = "*"' \
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aioredis
@@ -68,9 +67,7 @@ buildPythonPackage rec {
     "test_redis_checker"
   ];
 
-  pythonImportsCheck = [
-    "fastapi_mail"
-  ];
+  pythonImportsCheck = [ "fastapi_mail" ];
 
   meta = with lib; {
     description = "Module for sending emails and attachments";
diff --git a/pkgs/development/python-modules/fastapi-sso/default.nix b/pkgs/development/python-modules/fastapi-sso/default.nix
index fa4342cf170b6..c5ca2e98e2b0d 100644
--- a/pkgs/development/python-modules/fastapi-sso/default.nix
+++ b/pkgs/development/python-modules/fastapi-sso/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "fastapi-sso";
-  version = "0.14.2";
+  version = "0.15.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "tomasvotava";
     repo = "fastapi-sso";
     rev = "refs/tags/${version}";
-    hash = "sha256-mkaQY+fIc4zw+ESe3ybxAMgMQOOpjCIJDv+dDj76oAg=";
+    hash = "sha256-jSUogf2Dup8k4BOQAXJwg8R96Blgieg82/X/n1TLnL0=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/fastapi/default.nix b/pkgs/development/python-modules/fastapi/default.nix
index 92850c336bba7..83f0eb95438a0 100644
--- a/pkgs/development/python-modules/fastapi/default.nix
+++ b/pkgs/development/python-modules/fastapi/default.nix
@@ -1,44 +1,45 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pythonRelaxDepsHook
-
-# build-system
-, hatchling
-
-# dependencies
-, starlette
-, pydantic
-, typing-extensions
-
-# tests
-, dirty-equals
-, flask
-, passlib
-, pytest-asyncio
-, pytestCheckHook
-, python-jose
-, sqlalchemy
-, trio
-
-# optional-dependencies
-, httpx
-, jinja2
-, python-multipart
-, itsdangerous
-, pyyaml
-, ujson
-, orjson
-, email-validator
-, uvicorn
-, pydantic-settings
-, pydantic-extra-types
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # build-system
+  pdm-backend,
+
+  # dependencies
+  fastapi-cli,
+  starlette,
+  pydantic,
+  typing-extensions,
+
+  # tests
+  dirty-equals,
+  flask,
+  passlib,
+  pytest-asyncio,
+  pytestCheckHook,
+  python-jose,
+  sqlalchemy,
+  trio,
+
+  # optional-dependencies
+  httpx,
+  jinja2,
+  python-multipart,
+  itsdangerous,
+  pyyaml,
+  ujson,
+  orjson,
+  email-validator,
+  uvicorn,
+  pydantic-settings,
+  pydantic-extra-types,
 }:
 
 buildPythonPackage rec {
   pname = "fastapi";
-  version = "0.110.2";
+  version = "0.111.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -47,40 +48,40 @@ buildPythonPackage rec {
     owner = "tiangolo";
     repo = "fastapi";
     rev = "refs/tags/${version}";
-    hash = "sha256-qUh5exkXVRcKIO0t4KIOZhhpsftj3BrWaL2asf8RqUI=";
+    hash = "sha256-DQYjK1dZuL7cF6quyNkgdd/GYmWm7k6YlF7YEjObQlI=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-    pythonRelaxDepsHook
-  ];
+  build-system = [ pdm-backend ];
 
   pythonRelaxDeps = [
     "anyio"
-    # https://github.com/tiangolo/fastapi/pull/9636
     "starlette"
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    fastapi-cli
     starlette
     pydantic
     typing-extensions
   ];
 
-  passthru.optional-dependencies.all = [
-    httpx
-    jinja2
-    python-multipart
-    itsdangerous
-    pyyaml
-    ujson
-    orjson
-    email-validator
-    uvicorn
-  ] ++ lib.optionals (lib.versionAtLeast pydantic.version "2") [
-    pydantic-settings
-    pydantic-extra-types
-  ] ++ uvicorn.optional-dependencies.standard;
+  optional-dependencies.all =
+    [
+      httpx
+      jinja2
+      python-multipart
+      itsdangerous
+      pyyaml
+      ujson
+      orjson
+      email-validator
+      uvicorn
+    ]
+    ++ lib.optionals (lib.versionAtLeast pydantic.version "2") [
+      pydantic-settings
+      pydantic-extra-types
+    ]
+    ++ uvicorn.optional-dependencies.standard;
 
   nativeCheckInputs = [
     dirty-equals
@@ -91,8 +92,7 @@ buildPythonPackage rec {
     python-jose
     trio
     sqlalchemy
-  ] ++ passthru.optional-dependencies.all
-  ++ python-jose.optional-dependencies.cryptography;
+  ] ++ optional-dependencies.all ++ python-jose.optional-dependencies.cryptography;
 
   pytestFlagsArray = [
     # ignoring deprecation warnings to avoid test failure from
@@ -108,9 +108,7 @@ buildPythonPackage rec {
     "tests/test_tutorial/test_sql_databases"
   ];
 
-  pythonImportsCheck = [
-    "fastapi"
-  ];
+  pythonImportsCheck = [ "fastapi" ];
 
   meta = with lib; {
     changelog = "https://github.com/tiangolo/fastapi/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/fastavro/default.nix b/pkgs/development/python-modules/fastavro/default.nix
index fed754d72945d..7b84824404947 100644
--- a/pkgs/development/python-modules/fastavro/default.nix
+++ b/pkgs/development/python-modules/fastavro/default.nix
@@ -1,17 +1,18 @@
-{ buildPythonPackage
-, cython
-, fetchFromGitHub
-, isPy38
-, lib
-, lz4
-, numpy
-, pandas
-, pytestCheckHook
-, python-dateutil
-, python-snappy
-, pythonOlder
-, zlib-ng
-, zstandard
+{
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  isPy38,
+  lib,
+  lz4,
+  numpy,
+  pandas,
+  pytestCheckHook,
+  python-dateutil,
+  python-snappy,
+  pythonOlder,
+  zlib-ng,
+  zstandard,
 }:
 
 buildPythonPackage rec {
@@ -40,15 +41,9 @@ buildPythonPackage rec {
       python-snappy
       zstandard
     ];
-    snappy = [
-      python-snappy
-    ];
-    zstandard = [
-      zstandard
-    ];
-    lz4 = [
-      lz4
-    ];
+    snappy = [ python-snappy ];
+    zstandard = [ zstandard ];
+    lz4 = [ lz4 ];
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/fastbencode/default.nix b/pkgs/development/python-modules/fastbencode/default.nix
index 369d991aaa939..92eb19e0a0eec 100644
--- a/pkgs/development/python-modules/fastbencode/default.nix
+++ b/pkgs/development/python-modules/fastbencode/default.nix
@@ -1,30 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, pythonOlder
-, cython
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchPypi,
+  python,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "fastbencode";
-  version = "0.2";
-  format = "setuptools";
+  version = "0.3.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-V465xHANZwXXH7yNfVe8os2Yfsos7B2ed7ngcC2x5W8=";
+    hash = "sha256-X+DLfRc2iRr2HSreQM6UiUHUbpCLFvU4P1XxJ4SNoZc=";
   };
 
-  nativeBuildInputs = [
-    cython
-  ];
+  build-system = [ setuptools ];
 
-  pythonImportsCheck = [
-    "fastbencode"
-  ];
+  nativeBuildInputs = [ cython ];
+
+  pythonImportsCheck = [ "fastbencode" ];
 
   checkPhase = ''
     ${python.interpreter} -m unittest fastbencode.tests.test_suite
@@ -33,6 +33,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Fast implementation of bencode";
     homepage = "https://github.com/breezy-team/fastbencode";
+    changelog = "https://github.com/breezy-team/fastbencode/releases/tag/v${version}";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/fastcache/default.nix b/pkgs/development/python-modules/fastcache/default.nix
index b29b45e87821f..ac411b4c06255 100644
--- a/pkgs/development/python-modules/fastcache/default.nix
+++ b/pkgs/development/python-modules/fastcache/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "fastcache";
diff --git a/pkgs/development/python-modules/fastcore/default.nix b/pkgs/development/python-modules/fastcore/default.nix
index 544bb26936d6f..57eebb7d6180b 100644
--- a/pkgs/development/python-modules/fastcore/default.nix
+++ b/pkgs/development/python-modules/fastcore/default.nix
@@ -1,35 +1,35 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, packaging
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  packaging,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "fastcore";
-  version = "1.5.29";
-  format = "setuptools";
+  version = "1.5.47";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "fastai";
-    repo = pname;
+    repo = "fastcore";
     rev = "refs/tags/${version}";
-    hash = "sha256-yCPOF150TdkPHfLl8Jo2oow+91IzRKgnXo3eQMn5wK0=";
+    hash = "sha256-kQUVYOHMR6R2o5rROpwBeVW4lqKqkcYT3O9BRyKDNmE=";
   };
 
-  propagatedBuildInputs = [
-    packaging
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ packaging ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "fastcore"
-  ];
+  pythonImportsCheck = [ "fastcore" ];
 
   meta = with lib; {
     description = "Python module for Fast AI";
diff --git a/pkgs/development/python-modules/fastdiff/default.nix b/pkgs/development/python-modules/fastdiff/default.nix
index 42418076ba356..9ddf94d5020aa 100644
--- a/pkgs/development/python-modules/fastdiff/default.nix
+++ b/pkgs/development/python-modules/fastdiff/default.nix
@@ -1,12 +1,13 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, wasmer
-, wasmer-compiler-cranelift
-, py
-, pytestCheckHook
-, pytest-benchmark
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  wasmer,
+  wasmer-compiler-cranelift,
+  py,
+  pytestCheckHook,
+  pytest-benchmark,
 }:
 
 buildPythonPackage rec {
@@ -37,16 +38,12 @@ buildPythonPackage rec {
     pytest-benchmark
   ];
 
-  pytestFlagsArray = [
-    "--benchmark-skip"
-  ];
+  pytestFlagsArray = [ "--benchmark-skip" ];
 
-  pythonImportsCheck = [
-    "fastdiff"
-  ];
+  pythonImportsCheck = [ "fastdiff" ];
 
   meta = with lib; {
-    description = "A fast native implementation of diff algorithm with a pure Python fallback";
+    description = "Fast native implementation of diff algorithm with a pure Python fallback";
     homepage = "https://github.com/syrusakbary/fastdiff";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/fastdownload/default.nix b/pkgs/development/python-modules/fastdownload/default.nix
index 934ce6861ad6c..82e9281dbf437 100644
--- a/pkgs/development/python-modules/fastdownload/default.nix
+++ b/pkgs/development/python-modules/fastdownload/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fastprogress
-, fastcore
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fastprogress,
+  fastcore,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,10 @@ buildPythonPackage rec {
     sha256 = "sha256-IFB+246JQGofvXd15uKj2BpN1jPdUGsOnPDhYT6DHWo=";
   };
 
-  propagatedBuildInputs = [ fastprogress fastcore ];
+  propagatedBuildInputs = [
+    fastprogress
+    fastcore
+  ];
 
   # no real tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/fastdtw/default.nix b/pkgs/development/python-modules/fastdtw/default.nix
index ce973d218417a..09c03c5b433c5 100644
--- a/pkgs/development/python-modules/fastdtw/default.nix
+++ b/pkgs/development/python-modules/fastdtw/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, cython
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  cython,
+  numpy,
   # Check Inputs
-, pytestCheckHook
-, python
+  pytestCheckHook,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -30,17 +31,13 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   pythonImportsCheck = [ "fastdtw.fastdtw" ];
   nativeCheckInputs = [ pytestCheckHook ];
-  dontUseSetuptoolsCheck = true;  # looks for pytest-runner
+  dontUseSetuptoolsCheck = true; # looks for pytest-runner
   preCheck = ''
     echo "Temporarily moving tests to $OUT to find cython modules"
     export PACKAGEDIR=$out/${python.sitePackages}
@@ -52,7 +49,6 @@ buildPythonPackage rec {
     popd
   '';
 
-
   meta = with lib; {
     description = "Python implementation of FastDTW (Dynamic Time Warping)";
     longDescription = ''
diff --git a/pkgs/development/python-modules/fastecdsa/default.nix b/pkgs/development/python-modules/fastecdsa/default.nix
index d46bf58d861c2..53968a07b40ba 100644
--- a/pkgs/development/python-modules/fastecdsa/default.nix
+++ b/pkgs/development/python-modules/fastecdsa/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, gmp
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  gmp,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     hash = "sha256-81JVptPkEQkWa11LCIZtWsu5ny4eZNOn50x3RmTNqEI=";
   };
 
-  buildInputs = [
-    gmp
-  ];
+  buildInputs = [ gmp ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # skip tests which require being online to download test vectors
@@ -37,9 +34,7 @@ buildPythonPackage rec {
   # but the installed package works just fine
   doCheck = false;
 
-  pythonImportsCheck = [
-    "fastecdsa"
-  ];
+  pythonImportsCheck = [ "fastecdsa" ];
 
   meta = with lib; {
     description = "Fast elliptic curve digital signatures";
diff --git a/pkgs/development/python-modules/fastembed/default.nix b/pkgs/development/python-modules/fastembed/default.nix
index a2c8173fe42a6..2767700af20b6 100644
--- a/pkgs/development/python-modules/fastembed/default.nix
+++ b/pkgs/development/python-modules/fastembed/default.nix
@@ -1,21 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, huggingface-hub
-, pythonOlder
-, pythonRelaxDepsHook
-, poetry-core
-, onnx
-, onnxruntime
-, requests
-, tokenizers
-, tqdm
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+
+  # build-system
+  poetry-core,
+
+  # dependencies
+  huggingface-hub,
+  loguru,
+  mmh3,
+  numpy,
+  onnx,
+  onnxruntime,
+  pillow,
+  pystemmer,
+  requests,
+  snowballstemmer,
+  tokenizers,
+  tqdm,
 }:
 
 buildPythonPackage rec {
   pname = "fastembed";
-  version = "0.2.2";
+  version = "0.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,42 +33,41 @@ buildPythonPackage rec {
     owner = "qdrant";
     repo = "fastembed";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ufgco5wPBG19GM99rZV7LKQqEzzCv24I8026SMz0CH4=";
+    hash = "sha256-bFIikLogTxrwLNR+NOnnRjKGneZ63N7CBuu81z85xZo=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  build-system = [ poetry-core ];
+
 
-  propagatedBuildInputs = [
+  dependencies = [
     huggingface-hub
+    loguru
+    mmh3
+    numpy
     onnx
     onnxruntime
+    pillow
+    pystemmer
     requests
+    snowballstemmer
     tokenizers
     tqdm
   ];
 
-  pythonImportsCheck = [
-    "fastembed"
-  ];
-
-  pythonRelaxDeps = [
-    "huggingface-hub"
-  ];
+  pythonImportsCheck = [ "fastembed" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  pythonRelaxDeps = [ "onnxruntime" ];
 
   # there is one test and it requires network
   doCheck = false;
 
-  meta = with lib; {
+  meta = {
     description = "Fast, Accurate, Lightweight Python library to make State of the Art Embedding";
     homepage = "https://github.com/qdrant/fastembed";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ happysalada ];
+    changelog = "https://github.com/qdrant/fastembed/releases/tag/v${version}";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ happysalada ];
+    # terminate called after throwing an instance of 'onnxruntime::OnnxRuntimeException'
+    badPlatforms = [ "aarch64-linux" ];
   };
 }
diff --git a/pkgs/development/python-modules/fasteners/default.nix b/pkgs/development/python-modules/fasteners/default.nix
index 3dcdb073aeea6..494a384849b9d 100644
--- a/pkgs/development/python-modules/fasteners/default.nix
+++ b/pkgs/development/python-modules/fasteners/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, diskcache
-, eventlet
-, fetchFromGitHub
-, more-itertools
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  diskcache,
+  eventlet,
+  fetchFromGitHub,
+  more-itertools,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-XFa1ItFqkSYE940p/imWFp5e9gS6n+D1uM6Cj+Vzmmg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     diskcache
@@ -34,13 +33,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "fasteners"
-  ];
+  pythonImportsCheck = [ "fasteners" ];
 
-  pytestFlagsArray = [
-    "tests/"
-  ];
+  pytestFlagsArray = [ "tests/" ];
 
   meta = with lib; {
     description = "Module that provides useful locks";
diff --git a/pkgs/development/python-modules/fastentrypoints/default.nix b/pkgs/development/python-modules/fastentrypoints/default.nix
index 5e18509e79fda..1c6de8a70c8d9 100644
--- a/pkgs/development/python-modules/fastentrypoints/default.nix
+++ b/pkgs/development/python-modules/fastentrypoints/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "fastentrypoints";
diff --git a/pkgs/development/python-modules/faster-fifo/default.nix b/pkgs/development/python-modules/faster-fifo/default.nix
index 1d77707b6aa55..1b6d4a0ce90d2 100644
--- a/pkgs/development/python-modules/faster-fifo/default.nix
+++ b/pkgs/development/python-modules/faster-fifo/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# build-system
-, cython
-, setuptools
-
-# tests
-, numpy
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  cython,
+  setuptools,
+
+  # tests
+  numpy,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "faster-fifo";
-  version = "1.4.5";
+  version = "1.4.6";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "alex-petrenko";
     repo = "faster-fifo";
     rev = "v${version}";
-    hash = "sha256-35kD+RWXwUXHG5leTVj4wY6hJAjDka69YczgSTIbCeg=";
+    hash = "sha256-vgaaIJTtNg2XqEZ9TB7tTMPJ9yMyWjtfdgNU/lcNLcg=";
   };
 
   nativeBuildInputs = [
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  pythonImportsCheck = [
-    "faster_fifo"
-  ];
+  pythonImportsCheck = [ "faster_fifo" ];
 
   nativeCheckInputs = [
     numpy
diff --git a/pkgs/development/python-modules/faster-whisper/default.nix b/pkgs/development/python-modules/faster-whisper/default.nix
index 2fe0b785cea6e..0160b772b7c87 100644
--- a/pkgs/development/python-modules/faster-whisper/default.nix
+++ b/pkgs/development/python-modules/faster-whisper/default.nix
@@ -1,42 +1,39 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, av
-, ctranslate2
-, huggingface-hub
-, onnxruntime
-, tokenizers
+  # dependencies
+  av,
+  ctranslate2,
+  huggingface-hub,
+  onnxruntime,
+  tokenizers,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "faster-whisper";
-  version = "1.0.1";
+  version = "1.0.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "SYSTRAN";
     repo = "faster-whisper";
     rev = "refs/tags/v${version}";
-    hash = "sha256-b8P9fI32ubOrdayA0vnjLhpZ4qffB6W+8TEOA1YLKqo=";
+    hash = "sha256-O2RRwb+omgSpfckHh3oPu454g2ULT4gyolrg5olHcRc=";
   };
 
   build-system = [
     setuptools
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "tokenizers"
-  ];
+  pythonRelaxDeps = [ "tokenizers" ];
 
   dependencies = [
     av
@@ -46,25 +43,21 @@ buildPythonPackage rec {
     tokenizers
   ];
 
-  pythonImportsCheck = [
-    "faster_whisper"
-  ];
+  pythonImportsCheck = [ "faster_whisper" ];
 
   # all tests require downloads
   doCheck = false;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export HOME=$TMPDIR
   '';
 
   meta = with lib; {
-    changelog = "https://github.com/guillaumekln/faster-whisper/releases/tag/${version}";
+    changelog = "https://github.com/SYSTRAN/faster-whisper/releases/tag/v${version}";
     description = "Faster Whisper transcription with CTranslate2";
-    homepage = "https://github.com/guillaumekln/faster-whisper";
+    homepage = "https://github.com/SYSTRAN/faster-whisper";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
   };
diff --git a/pkgs/development/python-modules/fastimport/default.nix b/pkgs/development/python-modules/fastimport/default.nix
index 904aac3069c65..93ce891c7d958 100644
--- a/pkgs/development/python-modules/fastimport/default.nix
+++ b/pkgs/development/python-modules/fastimport/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, pythonOlder
-, buildPythonPackage
-, fetchPypi
-, unittestCheckHook
+{
+  lib,
+  pythonOlder,
+  buildPythonPackage,
+  fetchPypi,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/fastjsonschema/default.nix b/pkgs/development/python-modules/fastjsonschema/default.nix
index 330bf096b2cee..e3f69aad972ce 100644
--- a/pkgs/development/python-modules/fastjsonschema/default.nix
+++ b/pkgs/development/python-modules/fastjsonschema/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch2
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch2,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,24 +31,22 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   dontUseSetuptoolsCheck = true;
 
-  disabledTests = [
-    "benchmark"
-    # these tests require network access
-    "remote ref"
-    "definitions"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_compile_to_code_custom_format"  # cannot import temporary module created during test
-  ];
-
-  pythonImportsCheck = [
-    "fastjsonschema"
-  ];
+  disabledTests =
+    [
+      "benchmark"
+      # these tests require network access
+      "remote ref"
+      "definitions"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      "test_compile_to_code_custom_format" # cannot import temporary module created during test
+    ];
+
+  pythonImportsCheck = [ "fastjsonschema" ];
 
   meta = with lib; {
     description = "JSON schema validator for Python";
diff --git a/pkgs/development/python-modules/fastnumbers/default.nix b/pkgs/development/python-modules/fastnumbers/default.nix
index 69cdd4c3e3782..9bdbd7dfd6684 100644
--- a/pkgs/development/python-modules/fastnumbers/default.nix
+++ b/pkgs/development/python-modules/fastnumbers/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, hypothesis
-, numpy
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hypothesis,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +25,9 @@ buildPythonPackage rec {
     hash = "sha256-TC9+xOvskABpChlrSJcHy6O7D7EnIKL6Ekt/vaLBX2E=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ typing-extensions ];
 
   # Tests fail due to numeric precision differences on ARM
   # See https://github.com/SethMMorton/fastnumbers/issues/28
@@ -42,13 +39,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "--hypothesis-profile=standard"
-  ];
+  pytestFlagsArray = [ "--hypothesis-profile=standard" ];
 
-  pythonImportsCheck = [
-    "fastnumbers"
-  ];
+  pythonImportsCheck = [ "fastnumbers" ];
 
   meta = with lib; {
     description = "Python module for number conversion";
diff --git a/pkgs/development/python-modules/fastparquet/default.nix b/pkgs/development/python-modules/fastparquet/default.nix
index 1ceeecafb6384..4add91da09261 100644
--- a/pkgs/development/python-modules/fastparquet/default.nix
+++ b/pkgs/development/python-modules/fastparquet/default.nix
@@ -1,72 +1,68 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, cython
-, oldest-supported-numpy
-, setuptools
-, setuptools-scm
-, numpy
-, pandas
-, cramjam
-, fsspec
-, thrift
-, python-lzo
-, pytestCheckHook
-, pythonOlder
-, packaging
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  cramjam,
+  cython,
+  fetchFromGitHub,
+  fsspec,
+  git,
+  numpy,
+  oldest-supported-numpy,
+  packaging,
+  pandas,
+  pytestCheckHook,
+  python-lzo,
+  python,
+  pythonOlder,
+  setuptools-scm,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "fastparquet";
-  version = "2024.2.0";
+  version = "2024.5.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "dask";
     repo = "fastparquet";
     rev = "refs/tags/${version}";
-    hash = "sha256-e0gnC/HMYdrYdEwy6qNOD1J52xgN2x81oCG03YNsYjg=";
+    hash = "sha256-YiaVkpPzH8ZmTiEtCom9xLbKzByIt7Ilig/WlmGrYH4=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace-fail '"pytest-runner"' ""
-
-    sed -i \
-      -e "/pytest-runner/d" \
-      -e '/"git", "status"/d' setup.py
+      --replace-fail "numpy>=2.0.0rc1" "oldest-supported-numpy"
   '';
 
-  nativeBuildInputs = [
-    cython
-    oldest-supported-numpy
+  build-system = [
     setuptools
     setuptools-scm
     wheel
   ];
 
-  propagatedBuildInputs = [
+  nativeBuildInputs = [
+    cython
+    git
+    oldest-supported-numpy
+  ];
+
+  dependencies = [
     cramjam
     fsspec
     numpy
-    pandas
-    thrift
     packaging
+    pandas
   ];
 
   passthru.optional-dependencies = {
-    lzo = [
-      python-lzo
-    ];
+    lzo = [ python-lzo ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Workaround https://github.com/NixOS/nixpkgs/issues/123561
   preCheck = ''
@@ -80,14 +76,13 @@ buildPythonPackage rec {
     rm "$fastparquet_test"
   '';
 
-  pythonImportsCheck = [
-    "fastparquet"
-  ];
+  pythonImportsCheck = [ "fastparquet" ];
 
   meta = with lib; {
     description = "Implementation of the parquet format";
     homepage = "https://github.com/dask/fastparquet";
-    license = with licenses; [ asl20 ];
+    changelog = "https://github.com/dask/fastparquet/blob/${version}/docs/source/releasenotes.rst";
+    license = licenses.asl20;
     maintainers = with maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/python-modules/fastpbkdf2/default.nix b/pkgs/development/python-modules/fastpbkdf2/default.nix
index 99ad26f0e7352..2d6d68a3842d0 100644
--- a/pkgs/development/python-modules/fastpbkdf2/default.nix
+++ b/pkgs/development/python-modules/fastpbkdf2/default.nix
@@ -1,5 +1,12 @@
-{ lib, fetchFromGitHub, buildPythonPackage
-, openssl, pytest, cffi, six }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  openssl,
+  pytest,
+  cffi,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "fastpbkdf2";
@@ -8,15 +15,18 @@ buildPythonPackage rec {
 
   # Fetching from GitHub as tests are missing in PyPI
   src = fetchFromGitHub {
-    owner  = "Ayrx";
-    repo   = "python-fastpbkdf2";
-    rev    = "v${version}";
+    owner = "Ayrx";
+    repo = "python-fastpbkdf2";
+    rev = "v${version}";
     sha256 = "1hvvlk3j28i6nswb6gy3mq7278nq0mgfnpxh1rv6jvi7xhd7qmlc";
   };
 
   buildInputs = [ openssl ];
   nativeCheckInputs = [ pytest ];
-  propagatedBuildInputs = [ cffi six ];
+  propagatedBuildInputs = [
+    cffi
+    six
+  ];
   propagatedNativeBuildInputs = [ cffi ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/fastprogress/default.nix b/pkgs/development/python-modules/fastprogress/default.nix
index 3a1dc5a30c43c..576a9784a0558 100644
--- a/pkgs/development/python-modules/fastprogress/default.nix
+++ b/pkgs/development/python-modules/fastprogress/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,5 +29,4 @@ buildPythonPackage rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ ris ];
   };
-
 }
diff --git a/pkgs/development/python-modules/fastrlock/default.nix b/pkgs/development/python-modules/fastrlock/default.nix
index 26da544933d0f..547ab78b759e4 100644
--- a/pkgs/development/python-modules/fastrlock/default.nix
+++ b/pkgs/development/python-modules/fastrlock/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-2h+rhP/EVMG3IkJVkE74p4GeBTwV3BS7fUkKpwedr2k=";
   };
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
   # Todo: Check why the tests have an import error
   doCheck = false;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "fastrlock"
-  ];
+  pythonImportsCheck = [ "fastrlock" ];
 
   meta = with lib; {
     description = "RLock implementation for CPython";
diff --git a/pkgs/development/python-modules/fasttext-predict/default.nix b/pkgs/development/python-modules/fasttext-predict/default.nix
index f1d56ef7185fc..1a700111593ab 100644
--- a/pkgs/development/python-modules/fasttext-predict/default.nix
+++ b/pkgs/development/python-modules/fasttext-predict/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pybind11
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pybind11,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     hash = "sha256-rMbf09pCHvVYI9g/aq74+PcsuU2LezpmDz4b/w9vRyc=";
   };
 
-  nativeBuildInputs = [
-    pybind11
-  ];
+  nativeBuildInputs = [ pybind11 ];
 
   # tests are removed from fork
   doCheck = false;
diff --git a/pkgs/development/python-modules/fasttext/default.nix b/pkgs/development/python-modules/fasttext/default.nix
index 71db9277ab2c8..0b54f1022f05d 100644
--- a/pkgs/development/python-modules/fasttext/default.nix
+++ b/pkgs/development/python-modules/fasttext/default.nix
@@ -1,4 +1,10 @@
-{lib, buildPythonPackage, numpy, pkgs, pybind11 }:
+{
+  lib,
+  buildPythonPackage,
+  numpy,
+  pkgs,
+  pybind11,
+}:
 
 buildPythonPackage rec {
   inherit (pkgs.fasttext) pname version src;
diff --git a/pkgs/development/python-modules/faust-cchardet/default.nix b/pkgs/development/python-modules/faust-cchardet/default.nix
index 6a1c8ad2ed818..b845389006940 100644
--- a/pkgs/development/python-modules/faust-cchardet/default.nix
+++ b/pkgs/development/python-modules/faust-cchardet/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, cython
-, pkgconfig
-, setuptools
-, wheel
-, pytestCheckHook
-, python
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cython,
+  pkgconfig,
+  setuptools,
+  wheel,
+  pytestCheckHook,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -36,13 +37,9 @@ buildPythonPackage rec {
     ln -s $out/${python.sitePackages}/{faust_,}cchardet-${version}.dist-info
   '';
 
-  pythonImportsCheck = [
-    "cchardet"
-  ];
+  pythonImportsCheck = [ "cchardet" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
     changelog = "https://github.com/faust-streaming/cChardet/blob/${src.rev}/CHANGES.rst";
@@ -50,6 +47,9 @@ buildPythonPackage rec {
     mainProgram = "cchardetect";
     homepage = "https://github.com/faust-streaming/cChardet";
     license = lib.licenses.mpl11;
-    maintainers = with lib.maintainers; [ dotlambda ivan ];
+    maintainers = with lib.maintainers; [
+      dotlambda
+      ivan
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/favicon/default.nix b/pkgs/development/python-modules/favicon/default.nix
index db6b70cbf8932..46c9517337104 100644
--- a/pkgs/development/python-modules/favicon/default.nix
+++ b/pkgs/development/python-modules/favicon/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchPypi
-, pytest7CheckHook
-, pythonOlder
-, requests
-, requests-mock
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchPypi,
+  pytest7CheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
@@ -34,15 +35,12 @@ buildPythonPackage rec {
     requests-mock
   ];
 
-  pythonImportsCheck = [
-    "favicon"
-  ];
+  pythonImportsCheck = [ "favicon" ];
 
   meta = with lib; {
     description = "Find a website's favicon";
     homepage = "https://github.com/scottwernervt/favicon";
     changelog = "https://github.com/scottwernervt/favicon/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/fb-re2/default.nix b/pkgs/development/python-modules/fb-re2/default.nix
index e5f41003495be..11defafe39539 100644
--- a/pkgs/development/python-modules/fb-re2/default.nix
+++ b/pkgs/development/python-modules/fb-re2/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, re2
+{
+  lib,
+  buildPythonPackage,
+  fetchpatch,
+  fetchPypi,
+  re2,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/fe25519/default.nix b/pkgs/development/python-modules/fe25519/default.nix
index 819c7cc34df66..4f47b634030e2 100644
--- a/pkgs/development/python-modules/fe25519/default.nix
+++ b/pkgs/development/python-modules/fe25519/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, bitlist
-, buildPythonPackage
-, fetchPypi
-, fountains
-, parts
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  bitlist,
+  buildPythonPackage,
+  fetchPypi,
+  fountains,
+  parts,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -33,18 +34,14 @@ buildPythonPackage rec {
     parts
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace "--doctest-modules --ignore=docs --cov=fe25519 --cov-report term-missing" ""
   '';
 
-  pythonImportsCheck = [
-    "fe25519"
-  ];
+  pythonImportsCheck = [ "fe25519" ];
 
   meta = with lib; {
     description = "Python field operations for Curve25519's prime";
diff --git a/pkgs/development/python-modules/feedfinder2/default.nix b/pkgs/development/python-modules/feedfinder2/default.nix
index bb5528815294f..0858653d8f16a 100644
--- a/pkgs/development/python-modules/feedfinder2/default.nix
+++ b/pkgs/development/python-modules/feedfinder2/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-, setuptools
+  setuptools,
 
-, six
-, requests
-, beautifulsoup4
+  six,
+  requests,
+  beautifulsoup4,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-NwHuAabIX4uGWgScMLoLRgiFjIA/6OMNHSif2+idDv4=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     six
@@ -35,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "feedfinder2" ];
 
   meta = with lib; {
-    description = "A Python library for finding feed links on websites";
+    description = "Python library for finding feed links on websites";
     homepage = "https://github.com/dfm/feedfinder2";
     license = licenses.mit;
     maintainers = with maintainers; [ vizid ];
diff --git a/pkgs/development/python-modules/feedgen/default.nix b/pkgs/development/python-modules/feedgen/default.nix
index 46e51c49bda18..5dba169171d6b 100644
--- a/pkgs/development/python-modules/feedgen/default.nix
+++ b/pkgs/development/python-modules/feedgen/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, python-dateutil, lxml }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python-dateutil,
+  lxml,
+}:
 
 buildPythonPackage rec {
   pname = "feedgen";
@@ -10,16 +16,22 @@ buildPythonPackage rec {
     sha256 = "sha256-2b1Rw7XpVqKlKZjDcIxNLHKfL8wxEYjh5dO5cmOTVGo=";
   };
 
-  propagatedBuildInputs = [ python-dateutil lxml ];
+  propagatedBuildInputs = [
+    python-dateutil
+    lxml
+  ];
 
   # No tests in archive
   doCheck = false;
 
   meta = with lib; {
-    description = "Python module to generate ATOM feeds, RSS feeds and Podcasts.";
+    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";
-    license = with licenses; [ bsd2 lgpl3 ];
+    license = with licenses; [
+      bsd2
+      lgpl3
+    ];
     maintainers = with maintainers; [ casey ];
   };
 }
diff --git a/pkgs/development/python-modules/feedgenerator/default.nix b/pkgs/development/python-modules/feedgenerator/default.nix
index 4fd5808aa236f..5b76a3ca74445 100644
--- a/pkgs/development/python-modules/feedgenerator/default.nix
+++ b/pkgs/development/python-modules/feedgenerator/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, glibcLocales
-, pytestCheckHook
-, pythonOlder
-, pytz
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  glibcLocales,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     sed -i '/cov/d' setup.cfg
   '';
 
-  buildInputs = [
-    glibcLocales
-  ];
+  buildInputs = [ glibcLocales ];
 
   LC_ALL = "en_US.UTF-8";
 
@@ -34,9 +33,7 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "feedgenerator" ];
 
diff --git a/pkgs/development/python-modules/feedparser/default.nix b/pkgs/development/python-modules/feedparser/default.nix
index 0367e1e8a1063..3d1bd3f4ee3ba 100644
--- a/pkgs/development/python-modules/feedparser/default.nix
+++ b/pkgs/development/python-modules/feedparser/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, pythonOlder
-, setuptools
-, sgmllib3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  pythonOlder,
+  setuptools,
+  sgmllib3k,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-ydBAe2TG8qBl0OuyksKzXAEFDMDcM3V0Yaqr3ExBhNU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    sgmllib3k
-  ];
+  propagatedBuildInputs = [ sgmllib3k ];
 
   __darwinAllowLocalNetworking = true;
 
@@ -36,9 +33,7 @@ buildPythonPackage rec {
     ${python.interpreter} -Wd tests/runtests.py
   '';
 
-  pythonImportsCheck = [
-    "feedparser"
-  ];
+  pythonImportsCheck = [ "feedparser" ];
 
   meta = with lib; {
     description = "Universal feed parser";
diff --git a/pkgs/development/python-modules/fenics/default.nix b/pkgs/development/python-modules/fenics/default.nix
index e9aa27bd9e21a..a5b9902fecf8b 100644
--- a/pkgs/development/python-modules/fenics/default.nix
+++ b/pkgs/development/python-modules/fenics/default.nix
@@ -1,32 +1,34 @@
-{ lib, stdenv
-, fetchurl
-, fetchpatch
-, blas
-, boost
-, cmake
-, doxygen
-, eigen
-, gtest
-, hdf5
-, lapack
-, mpi
-, mpi4py
-, numpy
-, pkg-config
-, ply
-, pybind11
-, pytest
-, python
-, pythonPackages
-, scotch
-, setuptools
-, six
-, sphinx
-, suitesparse
-, swig
-, sympy
-, zlib
-, nixosTests
+{
+  lib,
+  stdenv,
+  fetchurl,
+  fetchpatch,
+  blas,
+  boost,
+  cmake,
+  doxygen,
+  eigen,
+  gtest,
+  hdf5,
+  lapack,
+  mpi,
+  mpi4py,
+  numpy,
+  pkg-config,
+  ply,
+  pybind11,
+  pytest,
+  python,
+  pythonPackages,
+  scotch,
+  setuptools,
+  six,
+  sphinx,
+  suitesparse,
+  swig,
+  sympy,
+  zlib,
+  nixosTests,
 }:
 
 let
@@ -39,7 +41,10 @@ let
       url = "https://bitbucket.org/fenics-project/dijitso/downloads/dijitso-${version}.tar.gz";
       sha256 = "1ncgbr0bn5cvv16f13g722a0ipw6p9y6p4iasxjziwsp8kn5x97a";
     };
-    propagatedBuildInputs = [ numpy six ];
+    propagatedBuildInputs = [
+      numpy
+      six
+    ];
     nativeCheckInputs = [ pytest ];
     preCheck = ''
       export HOME=$PWD
@@ -64,7 +69,11 @@ let
       url = "https://bitbucket.org/fenics-project/fiat/downloads/fiat-${version}.tar.gz";
       sha256 = "1sbi0fbr7w9g9ajr565g3njxrc3qydqjy3334vmz5xg0rd3106il";
     };
-    propagatedBuildInputs = [ numpy six sympy ];
+    propagatedBuildInputs = [
+      numpy
+      six
+      sympy
+    ];
     nativeCheckInputs = [ pytest ];
 
     preCheck = ''
@@ -100,7 +109,10 @@ let
       url = "https://bitbucket.org/fenics-project/ufl/downloads/ufl-${version}.tar.gz";
       sha256 = "04daxwg4y9c51sdgvwgmlc82nn0fjw7i2vzs15ckdc7dlazmcfi1";
     };
-    propagatedBuildInputs = [ numpy six ];
+    propagatedBuildInputs = [
+      numpy
+      six
+    ];
     nativeCheckInputs = [ pytest ];
     checkPhase = ''
       runHook preCheck
@@ -108,7 +120,7 @@ let
       runHook postCheck
     '';
     meta = {
-      description = "A domain-specific language for finite element variational forms";
+      description = "Domain-specific language for finite element variational forms";
       homepage = "https://fenicsproject.org/";
       platforms = lib.platforms.all;
       license = lib.licenses.lgpl3;
@@ -122,9 +134,7 @@ let
       url = "https://bitbucket.org/fenics-project/ffc/downloads/ffc-${version}.tar.gz";
       sha256 = "1zdg6pziss4va74pd7jjl8sc3ya2gmhpypccmyd8p7c66ji23y2g";
     };
-    nativeBuildInputs = [
-      pybind11
-    ];
+    nativeBuildInputs = [ pybind11 ];
     propagatedBuildInputs = [
       dijitso
       fiat
@@ -145,7 +155,7 @@ let
       runHook postCheck
     '';
     meta = {
-      description = "A compiler for finite element variational forms";
+      description = "Compiler for finite element variational forms";
       homepage = "https://fenicsproject.org/";
       platforms = lib.platforms.all;
       license = lib.licenses.lgpl3;
@@ -231,7 +241,7 @@ let
       make runtests
     '';
     meta = {
-      description = "The FEniCS Problem Solving Environment in Python and C++";
+      description = "FEniCS Problem Solving Environment in Python and C++";
       homepage = "https://fenicsproject.org/";
       license = lib.licenses.lgpl3;
     };
@@ -269,7 +279,9 @@ let
       pythonPackages.pybind11
     ];
     doCheck = false; # Tries to orte_ess_init and call ssh to localhost
-    passthru.tests = { inherit (nixosTests) fenics; };
+    passthru.tests = {
+      inherit (nixosTests) fenics;
+    };
     meta = {
       description = "Python bindings for the DOLFIN FEM compiler";
       homepage = "https://fenicsproject.org/";
@@ -277,4 +289,5 @@ let
       license = lib.licenses.lgpl3;
     };
   };
-in python-dolfin
+in
+python-dolfin
diff --git a/pkgs/development/python-modules/ffcv/default.nix b/pkgs/development/python-modules/ffcv/default.nix
index a3dd531c1285f..05750d9baed31 100644
--- a/pkgs/development/python-modules/ffcv/default.nix
+++ b/pkgs/development/python-modules/ffcv/default.nix
@@ -1,14 +1,15 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, libjpeg
-, numba
-, opencv4
-, pandas
-, pkg-config
-, pytorch-pfn-extras
-, terminaltables
-, tqdm
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  libjpeg,
+  numba,
+  opencv4,
+  pandas,
+  pkg-config,
+  pytorch-pfn-extras,
+  terminaltables,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -37,7 +38,14 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ pkg-config ];
   buildInputs = [ libjpeg ];
-  propagatedBuildInputs = [ opencv4 numba pandas pytorch-pfn-extras terminaltables tqdm ];
+  propagatedBuildInputs = [
+    opencv4
+    numba
+    pandas
+    pytorch-pfn-extras
+    terminaltables
+    tqdm
+  ];
 
   # `ffcv._libffcv*.so` cannot be loaded in the nix build environment for some
   # reason. See https://github.com/NixOS/nixpkgs/pull/160441#issuecomment-1045204722.
diff --git a/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix b/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix
index fc3cad7892e3b..288389dea8372 100644
--- a/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix
+++ b/pkgs/development/python-modules/ffmpeg-progress-yield/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, colorama
-, tqdm
-, pytestCheckHook
-, pythonOlder
-, ffmpeg
-, procps
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  colorama,
+  tqdm,
+  pytestCheckHook,
+  pythonOlder,
+  ffmpeg,
+  procps,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,16 @@ buildPythonPackage rec {
     hash = "sha256-muauX4Mq58ew9lGPE0H+bu4bqPydNADLocujjy6qRh4=";
   };
 
-  propagatedBuildInputs = [ colorama tqdm ];
+  propagatedBuildInputs = [
+    colorama
+    tqdm
+  ];
 
-  nativeCheckInputs = [ pytestCheckHook ffmpeg procps ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    ffmpeg
+    procps
+  ];
 
   disabledTests = [
     "test_quit"
diff --git a/pkgs/development/python-modules/ffmpeg-python/default.nix b/pkgs/development/python-modules/ffmpeg-python/default.nix
index 0fb0c68d4cba5..c7e5507cd8ee1 100644
--- a/pkgs/development/python-modules/ffmpeg-python/default.nix
+++ b/pkgs/development/python-modules/ffmpeg-python/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, ffmpeg_4
-, future
-, pytest-mock
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, substituteAll
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ffmpeg_4,
+  future,
+  pytest-mock,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  substituteAll,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-Dk3nHuYVlIiFF6nORZ5TVFkBXdoZUxLfoiz68V1tvlY=";
   };
 
-  propagatedBuildInputs = [
-    future
-  ];
+  propagatedBuildInputs = [ future ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -45,13 +44,9 @@ buildPythonPackage rec {
       --replace "'pytest-runner'" ""
   '';
 
-  pythonImportsCheck = [
-    "ffmpeg"
-  ];
+  pythonImportsCheck = [ "ffmpeg" ];
 
-  disabledTests = lib.optionals (pythonAtLeast "3.10") [
-    "test__output__video_size"
-  ];
+  disabledTests = lib.optionals (pythonAtLeast "3.10") [ "test__output__video_size" ];
 
   meta = with lib; {
     description = "Python bindings for FFmpeg - with complex filtering support";
diff --git a/pkgs/development/python-modules/ffmpy/default.nix b/pkgs/development/python-modules/ffmpy/default.nix
index 974e2bcd8fdac..a14d17776dd40 100644
--- a/pkgs/development/python-modules/ffmpy/default.nix
+++ b/pkgs/development/python-modules/ffmpy/default.nix
@@ -1,11 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, pytestCheckHook
-, go
-, ffmpeg-headless
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  pytestCheckHook,
+  go,
+  ffmpeg-headless,
 }:
 
 buildPythonPackage rec {
@@ -35,15 +37,18 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "ffmpy" ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytestCheckHook
     go
   ];
 
+  disabledTests = lib.optionals stdenv.isDarwin [
+    # expects a FFExecutableNotFoundError, gets a NotADirectoryError raised by os
+    "test_invalid_executable_path"
+  ];
+
   # the vendored ffmpeg mock binary assumes FHS
   preCheck = ''
     rm -v tests/ffmpeg/ffmpeg
@@ -52,7 +57,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A simple python interface for FFmpeg/FFprobe";
+    description = "Simple python interface for FFmpeg/FFprobe";
     homepage = "https://github.com/Ch00k/ffmpy";
     license = licenses.mit;
     maintainers = with maintainers; [ pbsds ];
diff --git a/pkgs/development/python-modules/fhir-py/default.nix b/pkgs/development/python-modules/fhir-py/default.nix
index e4072aaf4633c..6e156e7da72ba 100644
--- a/pkgs/development/python-modules/fhir-py/default.nix
+++ b/pkgs/development/python-modules/fhir-py/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, flit-core
-, aiohttp
-, pytz
-, requests
-, pytestCheckHook
-, pytest-asyncio
-, responses
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  flit-core,
+  aiohttp,
+  pytz,
+  requests,
+  pytestCheckHook,
+  pytest-asyncio,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
       --replace "--cov-report=xml" ""
   '';
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     aiohttp
diff --git a/pkgs/development/python-modules/fiblary3-fork/default.nix b/pkgs/development/python-modules/fiblary3-fork/default.nix
index 99413e54d6342..ac7d3215593b4 100644
--- a/pkgs/development/python-modules/fiblary3-fork/default.nix
+++ b/pkgs/development/python-modules/fiblary3-fork/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, isPy3k
-, fetchPypi
-, fixtures
-, jsonpatch
-, netaddr
-, prettytable
-, python-dateutil
-, pytestCheckHook
-, requests
-, requests-mock
-, six
-, sphinx
-, testtools
+{
+  lib,
+  buildPythonPackage,
+  isPy3k,
+  fetchPypi,
+  fixtures,
+  jsonpatch,
+  netaddr,
+  prettytable,
+  python-dateutil,
+  pytestCheckHook,
+  requests,
+  requests-mock,
+  six,
+  sphinx,
+  testtools,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/fido2/default.nix b/pkgs/development/python-modules/fido2/default.nix
index 82d635d8d0f60..8b5a06c4a1fc5 100644
--- a/pkgs/development/python-modules/fido2/default.nix
+++ b/pkgs/development/python-modules/fido2/default.nix
@@ -1,49 +1,39 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchPypi
-, mock
-, poetry-core
-, pyfakefs
-, pythonOlder
-, six
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  poetry-core,
+  pyscard,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "fido2";
   version = "1.1.3";
-  format = "pyproject";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-JhAPIm0SztYhymGYUozhft9nt430KHruEoX+481aqfw=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    cryptography
-    six
-  ];
+  dependencies = [ cryptography ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-    mock
-    pyfakefs
-  ];
+  passthru.optional-dependencies = {
+    pcsc = [ pyscard ];
+  };
+
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  unittestFlagsArray = [
-    "-v"
-  ];
+  unittestFlagsArray = [ "-v" ];
 
-  pythonImportsCheck = [
-    "fido2"
-  ];
+  pythonImportsCheck = [ "fido2" ];
 
   meta = with lib; {
     description = "Provides library functionality for FIDO 2.0, including communication with a device over USB";
diff --git a/pkgs/development/python-modules/fields/default.nix b/pkgs/development/python-modules/fields/default.nix
index bbe14dd638d76..de8a7250da958 100644
--- a/pkgs/development/python-modules/fields/default.nix
+++ b/pkgs/development/python-modules/fields/default.nix
@@ -1,4 +1,8 @@
-{ buildPythonPackage, lib, fetchPypi }:
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "fields";
diff --git a/pkgs/development/python-modules/file-read-backwards/default.nix b/pkgs/development/python-modules/file-read-backwards/default.nix
index 9317021f45069..ddb141b8ac7cf 100644
--- a/pkgs/development/python-modules/file-read-backwards/default.nix
+++ b/pkgs/development/python-modules/file-read-backwards/default.nix
@@ -1,22 +1,39 @@
-{ lib, buildPythonPackage, fetchPypi, mock }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  pythonOlder,
+  setuptools,
+  unittestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "file-read-backwards";
-  version = "3.0.0";
-  format = "setuptools";
+  version = "3.1.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     pname = "file_read_backwards";
     inherit version;
-    sha256 = "sha256-USw+U0BDUnqPrioLcVGqJV8towPnf9QPfc9CoeCRzCY=";
+    hash = "sha256-vQRZO8GTigAyJL5FHV1zXx9EkOHnClaM6NMwu3ZSpoQ=";
   };
 
-  nativeCheckInputs = [ mock ];
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [
+    mock
+    unittestCheckHook
+  ];
+
   pythonImportsCheck = [ "file_read_backwards" ];
 
   meta = with lib; {
-    homepage = "https://github.com/RobinNil/file_read_backwards";
     description = "Memory efficient way of reading files line-by-line from the end of file";
+    homepage = "https://github.com/RobinNil/file_read_backwards";
+    changelog = "https://github.com/RobinNil/file_read_backwards/blob/v${version}/HISTORY.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ j0hax ];
   };
diff --git a/pkgs/development/python-modules/filebrowser-safe/default.nix b/pkgs/development/python-modules/filebrowser-safe/default.nix
index ab6840c832bf4..6e9d84b1763ed 100644
--- a/pkgs/development/python-modules/filebrowser-safe/default.nix
+++ b/pkgs/development/python-modules/filebrowser-safe/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, django
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  django,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,15 +19,13 @@ buildPythonPackage rec {
     sha256 = "499c5dbd9e112dfc436cae7713b2fb664a59015021f6c9d131e3b7980aeb5c94";
   };
 
-  buildInputs = [
-    django
-  ];
+  buildInputs = [ django ];
 
   # There is no test embedded
   doCheck = false;
 
   meta = with lib; {
-    description = "A snapshot of django-filebrowser for the Mezzanine CMS";
+    description = "Snapshot of django-filebrowser for the Mezzanine CMS";
     longDescription = ''
       filebrowser-safe was created to provide a snapshot of the
       FileBrowser asset manager for Django, to be referenced as a
@@ -38,5 +37,4 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ prikhi ];
     platforms = platforms.unix;
   };
-
 }
diff --git a/pkgs/development/python-modules/filebytes/default.nix b/pkgs/development/python-modules/filebytes/default.nix
index 9dd04c3c4cb70..edfe2556fa748 100644
--- a/pkgs/development/python-modules/filebytes/default.nix
+++ b/pkgs/development/python-modules/filebytes/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -19,5 +20,4 @@ buildPythonPackage rec {
     description = "Scripts to parse ELF, PE, Mach-O and OAT (Android Runtime)";
     maintainers = with maintainers; [ bennofs ];
   };
-
 }
diff --git a/pkgs/development/python-modules/filecheck/default.nix b/pkgs/development/python-modules/filecheck/default.nix
index 2ce3e7c1fe8a6..a42c824a92f01 100644
--- a/pkgs/development/python-modules/filecheck/default.nix
+++ b/pkgs/development/python-modules/filecheck/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,17 +18,11 @@ buildPythonPackage rec {
     hash = "sha256-VbMlCqGd3MVpj0jEKjSGC2L0s/3e/d53b+2eZcXZneo=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "filecheck"
-  ];
+  pythonImportsCheck = [ "filecheck" ];
 
   meta = with lib; {
     changelog = "https://github.com/mull-project/FileCheck.py/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/filedate/default.nix b/pkgs/development/python-modules/filedate/default.nix
new file mode 100644
index 0000000000000..5317169caa68c
--- /dev/null
+++ b/pkgs/development/python-modules/filedate/default.nix
@@ -0,0 +1,59 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  python-dateutil,
+  setuptools,
+}:
+buildPythonPackage rec {
+  pname = "filedate";
+  version = "3.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "kubinka0505";
+    repo = "filedate";
+    rev = version;
+    hash = "sha256-HvuGP+QlUlfAUfFmaVVvtPHGdrbWVxghQipnqTTvAQc=";
+  };
+
+  sourceRoot = "${src.name}/Files";
+
+  # The repo stores everything in "src" and uses setup.py to move "src" ->
+  # "filedate" before calling setup() and then tries to rename "filedate" back
+  # to "src" after.
+  postPatch = ''
+    mv src filedate
+    substituteInPlace setup.py \
+      --replace-fail "__title__ = os.path.basename(os.path.dirname(os.path.dirname(__file__)))" '__title__ = "filedate"'
+    substituteInPlace setup.py \
+      --replace-fail "cleanup = True" "cleanup = False"
+
+    # Disable renaming "filedate" dir back to "src"
+    substituteInPlace setup.py \
+      --replace-fail "if os.path.exists(__title__):" ""
+    substituteInPlace setup.py \
+      --replace-fail "	os.rename(__title__, directory)" ""
+  '';
+
+  build-system = [ setuptools ];
+
+  dependencies = [ python-dateutil ];
+
+  pythonImportsCheck = [ "filedate" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pytestFlagsArray = [ "tests/unit.py" ];
+
+  disabledTests = [ "test_created" ];
+
+  meta = {
+    description = "Simple, convenient and cross-platform file date changing library";
+    homepage = "https://github.com/kubinka0505/filedate";
+    changelog = "https://github.com/kubinka0505/filedate/blob/${src.rev}/Documents/ChangeLog.md";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [ thornycrackers ];
+  };
+}
diff --git a/pkgs/development/python-modules/filedepot/default.nix b/pkgs/development/python-modules/filedepot/default.nix
index b567a3d8322a7..1b5d554045d8a 100644
--- a/pkgs/development/python-modules/filedepot/default.nix
+++ b/pkgs/development/python-modules/filedepot/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, anyascii
-, buildPythonPackage
-, fetchFromGitHub
-, flaky
-, google-cloud-storage
-, mock
-, pillow
-, pymongo
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
-, sqlalchemy
+{
+  lib,
+  anyascii,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flaky,
+  google-cloud-storage,
+  mock,
+  pillow,
+  pymongo,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
+  sqlalchemy,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     hash = "sha256-693H/u+Wg2G9sdoUkC6DQo9WkmIlKnh8NKv3ufK/eyQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     anyascii
@@ -57,9 +56,7 @@ buildPythonPackage rec {
     "tests/test_wsgi_middleware.py"
   ];
 
-  pythonImportsCheck = [
-    "depot"
-  ];
+  pythonImportsCheck = [ "depot" ];
 
   meta = with lib; {
     description = "Toolkit for storing files and attachments in web applications";
diff --git a/pkgs/development/python-modules/filelock/default.nix b/pkgs/development/python-modules/filelock/default.nix
index 5b739bcc8fda4..7edfa503f2e94 100644
--- a/pkgs/development/python-modules/filelock/default.nix
+++ b/pkgs/development/python-modules/filelock/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatch-vcs
-, hatchling
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatch-vcs,
+  hatchling,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "filelock";
-  version = "3.13.4";
+  version = "3.15.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0T9GZhi/3nK9LBglXiafclQsbnDnusg6AjLWscxcjPQ=";
+    hash = "sha256-WKJUmv354C4Qcg6qTURw9WOG16b3Lt19BZYzevjtetg=";
   };
 
   nativeBuildInputs = [
@@ -32,7 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/tox-dev/py-filelock/releases/tag/${version}";
-    description = "A platform independent file lock for Python";
+    description = "Platform independent file lock for Python";
     homepage = "https://github.com/benediktschmitt/py-filelock";
     license = licenses.unlicense;
     maintainers = with maintainers; [ hyphon81 ];
diff --git a/pkgs/development/python-modules/filetype/default.nix b/pkgs/development/python-modules/filetype/default.nix
index b4479e61baa33..99292c8668cd2 100644
--- a/pkgs/development/python-modules/filetype/default.nix
+++ b/pkgs/development/python-modules/filetype/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-ZrVs1kdL9B2MVGYDR9N6/MP30ZcGSN42XBAu93VIqts=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "filetype"
-  ];
+  pythonImportsCheck = [ "filetype" ];
 
   disabledTests = [
     # https://github.com/h2non/filetype.py/issues/119
diff --git a/pkgs/development/python-modules/filterpy/default.nix b/pkgs/development/python-modules/filterpy/default.nix
index 7d45d7f979b47..039c2e863ac75 100644
--- a/pkgs/development/python-modules/filterpy/default.nix
+++ b/pkgs/development/python-modules/filterpy/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, scipy
-, matplotlib
-, pytestCheckHook
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  scipy,
+  matplotlib,
+  pytestCheckHook,
+  isPy3k,
 }:
 
 buildPythonPackage {
@@ -22,9 +23,7 @@ buildPythonPackage {
     hash = "sha256-KuuVu0tqrmQuNKYmDmdy+TU6BnnhDxh4G8n9BGzjGag=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   propagatedBuildInputs = [
     numpy
diff --git a/pkgs/development/python-modules/finalfusion/default.nix b/pkgs/development/python-modules/finalfusion/default.nix
index 14b13d7184be8..17dde1d6701f2 100644
--- a/pkgs/development/python-modules/finalfusion/default.nix
+++ b/pkgs/development/python-modules/finalfusion/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, isPy3k
-, cython
-, numpy
-, toml
-, pytest
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  isPy3k,
+  cython,
+  numpy,
+  toml,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -22,18 +23,14 @@ buildPythonPackage rec {
     sha256 = "0pwzflamxqvpl1wcz0zbhhd6aa4xn18rmza6rggaic3ckidhyrh4";
   };
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
   propagatedBuildInputs = [
     numpy
     toml
   ];
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
   postPatch = ''
     patchShebangs tests/integration
diff --git a/pkgs/development/python-modules/find-libpython/default.nix b/pkgs/development/python-modules/find-libpython/default.nix
index 33dcb7e812a6d..f247e9c22d9c7 100644
--- a/pkgs/development/python-modules/find-libpython/default.nix
+++ b/pkgs/development/python-modules/find-libpython/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "find_libpython"
-  ];
+  pythonImportsCheck = [ "find_libpython" ];
 
   meta = with lib; {
     description = "Finds the libpython associated with your environment, wherever it may be hiding";
diff --git a/pkgs/development/python-modules/findimports/default.nix b/pkgs/development/python-modules/findimports/default.nix
index edd442729237b..7eb31b29b69bc 100644
--- a/pkgs/development/python-modules/findimports/default.nix
+++ b/pkgs/development/python-modules/findimports/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "findimports";
-  version = "2.4.0";
+  version = "2.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     owner = "mgedmin";
     repo = "findimports";
     rev = "refs/tags/${version}";
-    hash = "sha256-ar05DYSc/raYC1RJyLCxDYnd7Zjx20aczywlb6wc67Y=";
+    hash = "sha256-kHm0TiLe7zvUnU6+MR1M0xOt0gpMDJ5FJ5+HgY0LPeo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "findimports"
-  ];
+  pythonImportsCheck = [ "findimports" ];
 
   checkPhase = ''
     # Tests fails
@@ -42,7 +39,10 @@ buildPythonPackage rec {
     mainProgram = "findimports";
     homepage = "https://github.com/mgedmin/findimports";
     changelog = "https://github.com/mgedmin/findimports/blob/${version}/CHANGES.rst";
-    license = with licenses; [ gpl2Only /* or */ gpl3Only ];
+    license = with licenses; [
+      gpl2Only # or
+      gpl3Only
+    ];
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/findpython/default.nix b/pkgs/development/python-modules/findpython/default.nix
index 702f3b77bd895..140c912543edb 100644
--- a/pkgs/development/python-modules/findpython/default.nix
+++ b/pkgs/development/python-modules/findpython/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# build time
-, pdm-backend
+  # build time
+  pdm-backend,
 
-# runtime
-, packaging
+  # runtime
+  packaging,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 let
@@ -28,24 +29,16 @@ buildPythonPackage {
     hash = "sha256-VuUrQJqSvL1JXPmByFrPE387PlHMdptG66IZuxq3Uzw=";
   };
 
-  nativeBuildInputs = [
-    pdm-backend
-  ];
+  nativeBuildInputs = [ pdm-backend ];
 
-  propagatedBuildInputs = [
-    packaging
-  ];
+  propagatedBuildInputs = [ packaging ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "findpython"
-  ];
+  pythonImportsCheck = [ "findpython" ];
 
   meta = with lib; {
-    description = "A utility to find python versions on your system";
+    description = "Utility to find python versions on your system";
     mainProgram = "findpython";
     homepage = "https://github.com/frostming/findpython";
     changelog = "https://github.com/frostming/findpython/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/fingerprints/default.nix b/pkgs/development/python-modules/fingerprints/default.nix
index a4e3be44b06fa..cf12acd2ade1d 100644
--- a/pkgs/development/python-modules/fingerprints/default.nix
+++ b/pkgs/development/python-modules/fingerprints/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, normality
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  normality,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,24 +22,16 @@ buildPythonPackage rec {
     hash = "sha256-U2UslCy1OagVTtllCKsEBX4zI/qIczbxs2Cxzy+/Xys=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    normality
-  ];
+  propagatedBuildInputs = [ normality ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "fingerprints"
-  ];
+  pythonImportsCheck = [ "fingerprints" ];
 
   meta = with lib; {
-    description = "A library to generate entity fingerprints";
+    description = "Library to generate entity fingerprints";
     homepage = "https://github.com/alephdata/fingerprints";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/finitude/default.nix b/pkgs/development/python-modules/finitude/default.nix
index d7f1af78750f0..cf2e80928f060 100644
--- a/pkgs/development/python-modules/finitude/default.nix
+++ b/pkgs/development/python-modules/finitude/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, prometheus-client
-, pyserial
-, pythonOlder
-, pyyaml
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  prometheus-client,
+  pyserial,
+  pythonOlder,
+  pyyaml,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-yCI5UCRDhw+dJoTKyjmHbAGBm3by2AyxHKlqCywnLcs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pyserial
@@ -35,9 +34,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "finitude"
-  ];
+  pythonImportsCheck = [ "finitude" ];
 
   meta = with lib; {
     description = "Python module to get data from ABCD bus (RS-485) used by Carrier Infinity and Bryant Evolution HVAC systems";
diff --git a/pkgs/development/python-modules/fints/default.nix b/pkgs/development/python-modules/fints/default.nix
index 5cb94f04c61f5..098cbce956fec 100644
--- a/pkgs/development/python-modules/fints/default.nix
+++ b/pkgs/development/python-modules/fints/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, bleach
-, mt-940
-, requests
-, sepaxml
-, pytestCheckHook
-, pytest-mock
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  bleach,
+  mt-940,
+  requests,
+  sepaxml,
+  pytestCheckHook,
+  pytest-mock,
 }:
 
 buildPythonPackage rec {
@@ -24,14 +25,24 @@ buildPythonPackage rec {
     hash = "sha256-SREprcrIdeKVpL22IViexwiKmFfbT2UbKEmxtVm6iu0=";
   };
 
-  propagatedBuildInputs = [ requests mt-940 sepaxml bleach ];
+  propagatedBuildInputs = [
+    requests
+    mt-940
+    sepaxml
+    bleach
+  ];
 
-  nativeCheckInputs = [ pytestCheckHook pytest-mock ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-mock
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/raphaelm/python-fints/";
     description = "Pure-python FinTS (formerly known as HBCI) implementation";
     license = licenses.lgpl3Only;
-    maintainers = with maintainers; [ elohmeier dotlambda ];
+    maintainers = with maintainers; [
+      dotlambda
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/finvizfinance/default.nix b/pkgs/development/python-modules/finvizfinance/default.nix
index a953795b86637..9d09ace0f5785 100644
--- a/pkgs/development/python-modules/finvizfinance/default.nix
+++ b/pkgs/development/python-modules/finvizfinance/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, beautifulsoup4
-, datetime
-, lxml
-, pandas
-, pytest-mock
-, pytestCheckHook
-, requests
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  beautifulsoup4,
+  datetime,
+  lxml,
+  pandas,
+  pytest-mock,
+  pytestCheckHook,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "finvizfinance";
-  version = "0.14.7";
+  version = "1.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
@@ -22,7 +23,7 @@ buildPythonPackage rec {
     owner = "lit26";
     repo = "finvizfinance";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ht1bez04MAgugsQqa47q2ED7z8xpiXmzkOYBR7/PZHU=";
+    hash = "sha256-cdQdpQWPnMJ69VxOrn8SvNWTRcGt3S/PwoClGO9uh5I=";
   };
 
   postPatch = ''
@@ -43,9 +44,7 @@ buildPythonPackage rec {
     requests
   ];
 
-  pythonImportsCheck = [
-    "finvizfinance"
-  ];
+  pythonImportsCheck = [ "finvizfinance" ];
 
   disabledTests = [
     # Tests require network access
@@ -68,4 +67,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ icyrockcom ];
   };
 }
-
diff --git a/pkgs/development/python-modules/fiona/default.nix b/pkgs/development/python-modules/fiona/default.nix
index 35c9b57ce5555..753bcc32278c9 100644
--- a/pkgs/development/python-modules/fiona/default.nix
+++ b/pkgs/development/python-modules/fiona/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, cython
-, gdal
-, oldest-supported-numpy
-, setuptools
-, wheel
-, attrs
-, certifi
-, click
-, click-plugins
-, cligj
-, munch
-, shapely
-, boto3
-, pytestCheckHook
-, pytz
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  cython,
+  gdal,
+  oldest-supported-numpy,
+  setuptools,
+  wheel,
+  attrs,
+  certifi,
+  click,
+  click-plugins,
+  cligj,
+  munch,
+  shapely,
+  boto3,
+  pytestCheckHook,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -41,9 +42,7 @@ buildPythonPackage rec {
     wheel
   ];
 
-  buildInputs = [
-    gdal
-  ];
+  buildInputs = [ gdal ];
 
   propagatedBuildInputs = [
     attrs
@@ -84,9 +83,7 @@ buildPythonPackage rec {
     "test_append_memoryfile_drivers"
   ];
 
-  pythonImportsCheck = [
-    "fiona"
-  ];
+  pythonImportsCheck = [ "fiona" ];
 
   doInstallCheck = true;
 
diff --git a/pkgs/development/python-modules/fipy/default.nix b/pkgs/development/python-modules/fipy/default.nix
index d8f7c808a9aff..a78c772c74a24 100644
--- a/pkgs/development/python-modules/fipy/default.nix
+++ b/pkgs/development/python-modules/fipy/default.nix
@@ -1,19 +1,21 @@
-{ lib
-, buildPythonPackage
-, numpy
-, scipy
-, pyamg
-, future
-, matplotlib
-, tkinter
-, mpi4py
-, scikit-fmm
-, gmsh
-, python
-, stdenv
-, openssh
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  numpy,
+  scipy,
+  pyamg,
+  future,
+  matplotlib,
+  tkinter,
+  mpi4py,
+  scikit-fmm,
+  gmsh,
+  python,
+  stdenv,
+  openssh,
+  fetchFromGitHub,
+  pythonAtLeast,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +23,10 @@ buildPythonPackage rec {
   version = "3.4.4";
   format = "setuptools";
 
-  disabled = pythonOlder "3.7";
+  # Python 3.12 is not yet supported.
+  # https://github.com/usnistgov/fipy/issues/997
+  # https://github.com/usnistgov/fipy/pull/1023
+  disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
 
   src = fetchFromGitHub {
     owner = "usnistgov";
@@ -40,26 +45,26 @@ buildPythonPackage rec {
     future
     scikit-fmm
     openssh
-  ] ++ lib.optionals (!stdenv.isDarwin) [
-    gmsh
-  ];
+  ] ++ lib.optionals (!stdenv.isDarwin) [ gmsh ];
 
-  nativeCheckInputs = lib.optionals (!stdenv.isDarwin) [
-    gmsh
-  ];
+  nativeCheckInputs = lib.optionals (!stdenv.isDarwin) [ gmsh ];
+
+  # NOTE: Two of the doctests in fipy.matrices.scipyMatrix._ScipyMatrix.CSR fail, and there is no
+  # clean way to disable them.
+  doCheck = false;
 
   checkPhase = ''
     export OMPI_MCA_plm_rsh_agent=${openssh}/bin/ssh
     ${python.interpreter} setup.py test --modules
   '';
 
-  pythonImportsCheck = [
-    "fipy"
-  ];
+  # NOTE: Importing fipy within the sandbox will fail because plm_rsh_agent isn't set and the process isn't able
+  # to start a daemon on the builder.
+  # pythonImportsCheck = [ "fipy" ];
 
   meta = with lib; {
     homepage = "https://www.ctcms.nist.gov/fipy/";
-    description = "A Finite Volume PDE Solver Using Python";
+    description = "Finite Volume PDE Solver Using Python";
     changelog = "https://github.com/usnistgov/fipy/blob/${version}/CHANGELOG.rst";
     license = licenses.free;
     maintainers = with maintainers; [ wd15 ];
diff --git a/pkgs/development/python-modules/fire/default.nix b/pkgs/development/python-modules/fire/default.nix
index 1055bada787e4..05a94d1f2dc37 100644
--- a/pkgs/development/python-modules/fire/default.nix
+++ b/pkgs/development/python-modules/fire/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, six
-, hypothesis
-, mock
-, levenshtein
-, pytestCheckHook
-, termcolor
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  six,
+  hypothesis,
+  mock,
+  levenshtein,
+  pytestCheckHook,
+  termcolor,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "fire";
-  version = "0.5.0";
-  format = "setuptools";
+  version = "0.6.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -22,19 +23,12 @@ buildPythonPackage rec {
     owner = "google";
     repo = "python-fire";
     rev = "refs/tags/v${version}";
-    hash = "sha256-cwY1RRNtpAn6LnBASQLTNf4XXSPnfhOa1WgglGEM2/s=";
+    hash = "sha256-tBmsy0MuJu0Ei+4lUy/XfKoOU+OuH4xqmjPv/uKVuwg=";
   };
 
-  patches = [
-    # https://github.com/google/python-fire/pull/440
-    (fetchpatch {
-      name = "remove-asyncio-coroutine.patch";
-      url = "https://github.com/google/python-fire/pull/440/commits/30b775a7b36ce7fbc04656c7eec4809f99d3e178.patch";
-      hash = "sha256-GDAAlvZKbJl3OhajsEO0SZvWIXcPDi3eNKKVgbwSNKk=";
-    })
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     six
     termcolor
   ];
@@ -46,12 +40,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "fire"
-  ];
+  pythonImportsCheck = [ "fire" ];
 
   meta = with lib; {
-    description = "A library for automatically generating command line interfaces";
+    description = "Library for automatically generating command line interfaces";
     longDescription = ''
       Python Fire is a library for automatically generating command line
       interfaces (CLIs) from absolutely any Python object.
diff --git a/pkgs/development/python-modules/firebase-messaging/default.nix b/pkgs/development/python-modules/firebase-messaging/default.nix
index 5acd1ff480225..dc9bee90b3cb6 100644
--- a/pkgs/development/python-modules/firebase-messaging/default.nix
+++ b/pkgs/development/python-modules/firebase-messaging/default.nix
@@ -1,26 +1,29 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, http-ece
-, poetry-core
-, protobuf
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
-, sphinx
-, sphinx-autodoc-typehints
-, sphinx-rtd-theme
-, sphinxHook
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  async-timeout,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  http-ece,
+  poetry-core,
+  protobuf,
+  pytest-asyncio,
+  pytest-mock,
+  pytest-socket,
+  pytestCheckHook,
+  pythonOlder,
+  requests-mock,
+  sphinx,
+  sphinx-autodoc-typehints,
+  sphinx-rtd-theme,
+  sphinxHook,
 }:
 
 buildPythonPackage rec {
   pname = "firebase-messaging";
-  version = "0.2.1";
+  version = "0.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -29,7 +32,7 @@ buildPythonPackage rec {
     owner = "sdb9696";
     repo = "firebase-messaging";
     rev = "refs/tags/${version}";
-    hash = "sha256-8e+S12ZMqAmK7OR7O45QsRa0UKQq6cngeaqz2ugi6iY=";
+    hash = "sha256-pZpnekJ11yx3L8l56vZOa4uS+jJMxUkYODgNAqysVeY=";
   };
 
   outputs = [
@@ -43,10 +46,10 @@ buildPythonPackage rec {
   ] ++ passthru.optional-dependencies.docs;
 
   propagatedBuildInputs = [
+    aiohttp
     cryptography
     http-ece
     protobuf
-    requests
   ];
 
   passthru.optional-dependencies = {
@@ -57,15 +60,15 @@ buildPythonPackage rec {
     ];
   };
 
-  pythonImportsCheck = [
-    "firebase_messaging"
-  ];
+  pythonImportsCheck = [ "firebase_messaging" ];
 
   nativeCheckInputs = [
+    aioresponses
     async-timeout
     requests-mock
     pytest-asyncio
     pytest-mock
+    pytest-socket
     pytestCheckHook
   ];
 
diff --git a/pkgs/development/python-modules/fireflyalgorithm/default.nix b/pkgs/development/python-modules/fireflyalgorithm/default.nix
index 2a51a96f114fd..9185b5a696861 100644
--- a/pkgs/development/python-modules/fireflyalgorithm/default.nix
+++ b/pkgs/development/python-modules/fireflyalgorithm/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,24 +22,16 @@ buildPythonPackage rec {
     hash = "sha256-xsTgSHBtN4gGw+9YvprcLubnCXSNRdn4abcz391cMEE=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "fireflyalgorithm"
-  ];
+  pythonImportsCheck = [ "fireflyalgorithm" ];
 
   meta = with lib; {
-    description = "An implementation of the stochastic nature-inspired algorithm for optimization";
+    description = "Implementation of the stochastic nature-inspired algorithm for optimization";
     mainProgram = "firefly-algorithm";
     homepage = "https://github.com/firefly-cpp/FireflyAlgorithm";
     changelog = "https://github.com/firefly-cpp/FireflyAlgorithm/blob/${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/firetv/default.nix b/pkgs/development/python-modules/firetv/default.nix
index 71525fe802f7e..baba36b127aad 100644
--- a/pkgs/development/python-modules/firetv/default.nix
+++ b/pkgs/development/python-modules/firetv/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, adb-homeassistant
-, flask
-, pure-python-adb-homeassistant
-, pycryptodome
-, pyyaml
-, rsa
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  adb-homeassistant,
+  flask,
+  pure-python-adb-homeassistant,
+  pycryptodome,
+  pyyaml,
+  rsa,
 }:
 buildPythonPackage rec {
   pname = "firetv";
diff --git a/pkgs/development/python-modules/first/default.nix b/pkgs/development/python-modules/first/default.nix
index 0e75f61a9f706..70edb11145427 100644
--- a/pkgs/development/python-modules/first/default.nix
+++ b/pkgs/development/python-modules/first/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,12 +19,10 @@ buildPythonPackage rec {
 
   doCheck = false; # no tests
 
-  pythonImportsCheck = [
-    "first"
-  ];
+  pythonImportsCheck = [ "first" ];
 
   meta = with lib; {
-    description = "The function you always missed in Python";
+    description = "Function you always missed in Python";
     homepage = "https://github.com/hynek/first/";
     changelog = "https://github.com/hynek/first/blob/${version}/HISTORY.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/fitbit/default.nix b/pkgs/development/python-modules/fitbit/default.nix
index 439d74a26a3df..a479e66246fd1 100644
--- a/pkgs/development/python-modules/fitbit/default.nix
+++ b/pkgs/development/python-modules/fitbit/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, freezegun
-, mock
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, requests-mock
-, requests-oauthlib
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  freezegun,
+  mock,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  requests-mock,
+  requests-oauthlib,
 }:
 
 buildPythonPackage rec {
@@ -41,9 +42,7 @@ buildPythonPackage rec {
     requests-mock
   ];
 
-  pythonImportsCheck = [
-    "fitbit"
-  ];
+  pythonImportsCheck = [ "fitbit" ];
 
   meta = with lib; {
     description = "Fitbit API Python Client Implementation";
diff --git a/pkgs/development/python-modules/fivem-api/default.nix b/pkgs/development/python-modules/fivem-api/default.nix
index aef6fc342129f..747509a838680 100644
--- a/pkgs/development/python-modules/fivem-api/default.nix
+++ b/pkgs/development/python-modules/fivem-api/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -18,20 +19,14 @@ buildPythonPackage rec {
     hash = "sha256-6llrMGWbDRmysEw+B6B115hLS5xlktQEXiSHzPLbV5s=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "fivem"
-  ];
+  pythonImportsCheck = [ "fivem" ];
 
   meta = with lib; {
     description = "Module for interacting with FiveM servers";
diff --git a/pkgs/development/python-modules/fixerio/default.nix b/pkgs/development/python-modules/fixerio/default.nix
index 56ba061b42331..5501817652631 100644
--- a/pkgs/development/python-modules/fixerio/default.nix
+++ b/pkgs/development/python-modules/fixerio/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, pytestCheckHook
-, httpretty
-, responses
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  pytestCheckHook,
+  httpretty,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     sha256 = "009h1mys175xdyznn5bl980vly40544s4ph1zcgqwg2i2ic93gvb";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     httpretty
diff --git a/pkgs/development/python-modules/fixtures/default.nix b/pkgs/development/python-modules/fixtures/default.nix
index 2570b1a274b64..a14f24cb8e5fd 100644
--- a/pkgs/development/python-modules/fixtures/default.nix
+++ b/pkgs/development/python-modules/fixtures/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pbr
-, setuptools
-, testtools
-, mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pbr,
+  setuptools,
+  testtools,
+  mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,14 +24,10 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  propagatedBuildInputs = [
-    pbr
-  ];
+  propagatedBuildInputs = [ pbr ];
 
   passthru.optional-dependencies = {
-    streams = [
-      testtools
-    ];
+    streams = [ testtools ];
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/fjaraskupan/default.nix b/pkgs/development/python-modules/fjaraskupan/default.nix
index 533847786c891..0763fa17b1f5e 100644
--- a/pkgs/development/python-modules/fjaraskupan/default.nix
+++ b/pkgs/development/python-modules/fjaraskupan/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, bleak
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  bleak,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-3jw42lsCwNkFptMNpnhtbrPIkZP/8lUCcMigzq8Hbc4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  dependencies = [
-    bleak
-  ];
+  dependencies = [ bleak ];
 
   nativeCheckInputs = [
     pytest-mock
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "fjaraskupan"
-  ];
+  pythonImportsCheck = [ "fjaraskupan" ];
 
   meta = with lib; {
     description = "Module for controlling Fjäråskupan kitchen fans";
diff --git a/pkgs/development/python-modules/flake8-blind-except/default.nix b/pkgs/development/python-modules/flake8-blind-except/default.nix
index c25985e16819d..b3fe8f160cb84 100644
--- a/pkgs/development/python-modules/flake8-blind-except/default.nix
+++ b/pkgs/development/python-modules/flake8-blind-except/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pycodestyle
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pycodestyle,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,19 +18,15 @@ buildPythonPackage rec {
     hash = "sha256-8lpXWp3LPus8dgv5wi22C4taIxICJO0fqppD913X3RY=";
   };
 
-  propagatedBuildInputs = [
-    pycodestyle
-  ];
+  propagatedBuildInputs = [ pycodestyle ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "flake8_blind_except"
-  ];
+  pythonImportsCheck = [ "flake8_blind_except" ];
 
   meta = with lib; {
-    description = "A flake8 extension that checks for blind except: statements";
+    description = "Flake8 extension that checks for blind except: statements";
     homepage = "https://github.com/elijahandrews/flake8-blind-except";
     license = licenses.mit;
     maintainers = with maintainers; [ johbo ];
diff --git a/pkgs/development/python-modules/flake8-bugbear/default.nix b/pkgs/development/python-modules/flake8-bugbear/default.nix
index 5a6305744dbd8..b90ad54cbcfba 100644
--- a/pkgs/development/python-modules/flake8-bugbear/default.nix
+++ b/pkgs/development/python-modules/flake8-bugbear/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, attrs
-, flake8
-, pytestCheckHook
-, pythonOlder
-, hypothesis
-, hypothesmith
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  attrs,
+  flake8,
+  pytestCheckHook,
+  pythonOlder,
+  hypothesis,
+  hypothesmith,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/flake8-debugger/default.nix b/pkgs/development/python-modules/flake8-debugger/default.nix
index 32885570ba764..aa7e23ecd8df3 100644
--- a/pkgs/development/python-modules/flake8-debugger/default.nix
+++ b/pkgs/development/python-modules/flake8-debugger/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flake8
-, pycodestyle
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flake8,
+  pycodestyle,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +25,9 @@ buildPythonPackage rec {
     pycodestyle
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "flake8_debugger"
-  ];
+  pythonImportsCheck = [ "flake8_debugger" ];
 
   meta = with lib; {
     description = "ipdb/pdb statement checker plugin for flake8";
diff --git a/pkgs/development/python-modules/flake8-docstrings/default.nix b/pkgs/development/python-modules/flake8-docstrings/default.nix
index c3a08f9315573..3cd84284a1c41 100644
--- a/pkgs/development/python-modules/flake8-docstrings/default.nix
+++ b/pkgs/development/python-modules/flake8-docstrings/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flake8
-, pydocstyle
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flake8,
+  pydocstyle,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "flake8_docstrings"
-  ];
+  pythonImportsCheck = [ "flake8_docstrings" ];
 
   meta = with lib; {
     description = "Extension for flake8 which uses pydocstyle to check docstrings";
diff --git a/pkgs/development/python-modules/flake8-future-import/default.nix b/pkgs/development/python-modules/flake8-future-import/default.nix
index 7b58dddb853a5..88d7f959b89a4 100644
--- a/pkgs/development/python-modules/flake8-future-import/default.nix
+++ b/pkgs/development/python-modules/flake8-future-import/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy27
-, isPy38
-, isPy39
-, pythonAtLeast
-, flake8
-, six
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy27,
+  isPy38,
+  isPy39,
+  pythonAtLeast,
+  flake8,
+  six,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -23,16 +24,15 @@ buildPythonPackage rec {
     hash = "sha256-2EcCOx3+PCk9LYpQjHCFNpQVI2Pdi+lWL8R6bNadFe0=";
   };
 
-  patches = lib.optionals (pythonAtLeast "3.10") [
-    ./fix-annotations-version-11.patch
-  ] ++ lib.optionals (isPy38 || isPy39) [
-    ./fix-annotations-version-10.patch
-  ] ++ lib.optionals isPy27 [
-    # Upstream disables this test case naturally on python 3, but it also fails
-    # inside NixPkgs for python 2. Since it's going to be deleted, we just skip it
-    # on py2 as well.
-    ./skip-test.patch
-  ];
+  patches =
+    lib.optionals (pythonAtLeast "3.10") [ ./fix-annotations-version-11.patch ]
+    ++ lib.optionals (isPy38 || isPy39) [ ./fix-annotations-version-10.patch ]
+    ++ lib.optionals isPy27 [
+      # Upstream disables this test case naturally on python 3, but it also fails
+      # inside NixPkgs for python 2. Since it's going to be deleted, we just skip it
+      # on py2 as well.
+      ./skip-test.patch
+    ];
 
   postPatch = ''
     substituteInPlace "test_flake8_future_import.py" \
@@ -52,7 +52,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A flake8 extension to check for the imported __future__ modules to make it easier to have a consistent code base";
+    description = "Flake8 extension to check for the imported __future__ modules to make it easier to have a consistent code base";
     homepage = "https://github.com/xZise/flake8-future-import";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/flake8-import-order/default.nix b/pkgs/development/python-modules/flake8-import-order/default.nix
index 51c9b9eb569ed..476491873e4f9 100644
--- a/pkgs/development/python-modules/flake8-import-order/default.nix
+++ b/pkgs/development/python-modules/flake8-import-order/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flake8
-, pycodestyle
-, pylama
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flake8,
+  pycodestyle,
+  pylama,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-4jlB+JLaPgwJ1xG6u7DHO8c1JC6bIWtyZhZ1ipINkA4=";
   };
 
-  propagatedBuildInputs = [
-    pycodestyle
-  ];
+  propagatedBuildInputs = [ pycodestyle ];
 
   nativeCheckInputs = [
     flake8
@@ -31,15 +30,16 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "flake8_import_order"
-  ];
+  pythonImportsCheck = [ "flake8_import_order" ];
 
   meta = with lib; {
     description = "Flake8 and pylama plugin that checks the ordering of import statements";
     homepage = "https://github.com/PyCQA/flake8-import-order";
     changelog = "https://github.com/PyCQA/flake8-import-order/blob/${version}/CHANGELOG.rst";
-    license = with licenses; [ lgpl3 mit ];
+    license = with licenses; [
+      lgpl3
+      mit
+    ];
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/flake8-length/default.nix b/pkgs/development/python-modules/flake8-length/default.nix
index 9214a92ce5171..1e88a0280cc8b 100644
--- a/pkgs/development/python-modules/flake8-length/default.nix
+++ b/pkgs/development/python-modules/flake8-length/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flake8
-, flit-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flake8,
+  flit-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,25 +20,15 @@ buildPythonPackage rec {
     hash = "sha256-Dr1hTCU2G1STczXJsUPMGFYs1NpIAk1I95vxXsRTtRA=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    flake8
-  ];
+  propagatedBuildInputs = [ flake8 ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "flake8_length"
-  ];
+  pythonImportsCheck = [ "flake8_length" ];
 
-  pytestFlagsArray = [
-    "tests/"
-  ];
+  pytestFlagsArray = [ "tests/" ];
 
   meta = with lib; {
     description = "Flake8 plugin for a smart line length validation";
diff --git a/pkgs/development/python-modules/flake8-polyfill/default.nix b/pkgs/development/python-modules/flake8-polyfill/default.nix
index aef7cab9d1fc9..0c912cd7005b9 100644
--- a/pkgs/development/python-modules/flake8-polyfill/default.nix
+++ b/pkgs/development/python-modules/flake8-polyfill/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, flake8
-, mock
-, pep8
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchpatch,
+  fetchPypi,
+  flake8,
+  mock,
+  pep8,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "1nlf1mkqw856vi6782qcglqhaacb23khk9wkcgn55npnjxshhjz4";
   };
 
-  propagatedBuildInputs = [
-    flake8
-  ];
+  propagatedBuildInputs = [ flake8 ];
 
   nativeCheckInputs = [
     mock
@@ -43,9 +42,7 @@ buildPythonPackage rec {
       --replace pytest 'tool:pytest'
   '';
 
-  pythonImportsCheck = [
-    "flake8_polyfill"
-  ];
+  pythonImportsCheck = [ "flake8_polyfill" ];
 
   meta = with lib; {
     homepage = "https://gitlab.com/pycqa/flake8-polyfill";
diff --git a/pkgs/development/python-modules/flake8/default.nix b/pkgs/development/python-modules/flake8/default.nix
index 9efb1fab948c7..8fa7a8fa99a94 100644
--- a/pkgs/development/python-modules/flake8/default.nix
+++ b/pkgs/development/python-modules/flake8/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, mccabe
-, pycodestyle
-, pyflakes
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  mccabe,
+  pycodestyle,
+  pyflakes,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "flake8";
-  version = "7.0.0";
+  version = "7.1.0";
 
   disabled = pythonOlder "3.8";
 
@@ -21,12 +22,10 @@ buildPythonPackage rec {
     owner = "PyCQA";
     repo = "flake8";
     rev = version;
-    hash = "sha256-2oVvchDhH3cX90RTIquYLyr+rzHxzQgYA4k4ReTxpH8=";
+    hash = "sha256-jkRr/k/XjiKOkcd4jlOQTnnFun7/hMHdVUWBlS1QZ1E=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     mccabe
@@ -34,12 +33,10 @@ buildPythonPackage rec {
     pyflakes
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "The modular source code checker: pep8, pyflakes and co";
+    description = "Modular source code checker: pep8, pyflakes and co";
     homepage = "https://github.com/PyCQA/flake8";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/flaky/default.nix b/pkgs/development/python-modules/flaky/default.nix
index 884593dbabfa8..ef6b8d64655cf 100644
--- a/pkgs/development/python-modules/flaky/default.nix
+++ b/pkgs/development/python-modules/flaky/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, mock
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  mock,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-RyBKgeyQXz1az71h2uq8raj51AMWFtm8sGGEYXKWmfU=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   nativeCheckInputs = [
     mock
@@ -39,5 +38,4 @@ buildPythonPackage rec {
     description = "Plugin for nose or py.test that automatically reruns flaky tests";
     license = licenses.asl20;
   };
-
 }
diff --git a/pkgs/development/python-modules/flametree/default.nix b/pkgs/development/python-modules/flametree/default.nix
index 2a3ff69235c39..84d8a5370a092 100644
--- a/pkgs/development/python-modules/flametree/default.nix
+++ b/pkgs/development/python-modules/flametree/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fontconfig
-, matplotlib
-, pandas
-, pytestCheckHook
-, weasyprint
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fontconfig,
+  matplotlib,
+  pandas,
+  pytestCheckHook,
+  weasyprint,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/flammkuchen/default.nix b/pkgs/development/python-modules/flammkuchen/default.nix
index 61758ae482b86..8af55dfe7c028 100644
--- a/pkgs/development/python-modules/flammkuchen/default.nix
+++ b/pkgs/development/python-modules/flammkuchen/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, pandas
-, pytestCheckHook
-, scipy
-, setuptools
-, tables
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  pandas,
+  pytestCheckHook,
+  scipy,
+  setuptools,
+  tables,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-z68HBsU9J6oe8+YL4OOQiMYQRs3TZUDM+e2ssqo6BFI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     numpy
diff --git a/pkgs/development/python-modules/flasgger/default.nix b/pkgs/development/python-modules/flasgger/default.nix
index 1be41854b52ea..be5b422f1402b 100644
--- a/pkgs/development/python-modules/flasgger/default.nix
+++ b/pkgs/development/python-modules/flasgger/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
 
-# dependencies
-, flask
-, jsonschema
-, mistune
-, pyyaml
-, six
-, werkzeug
+  # dependencies
+  flask,
+  jsonschema,
+  mistune,
+  pyyaml,
+  six,
+  werkzeug,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -49,13 +50,9 @@ buildPythonPackage rec {
     werkzeug
   ];
 
-  pythonImportsCheck = [
-    "flasgger"
-  ];
+  pythonImportsCheck = [ "flasgger" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   doCheck = false; # missing flex dependency
 
diff --git a/pkgs/development/python-modules/flashtext/default.nix b/pkgs/development/python-modules/flashtext/default.nix
index e4aa3a60c7eb5..7988af840628a 100644
--- a/pkgs/development/python-modules/flashtext/default.nix
+++ b/pkgs/development/python-modules/flashtext/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/flask-admin/default.nix b/pkgs/development/python-modules/flask-admin/default.nix
index ae12e6353e2b8..38ab5efc74703 100644
--- a/pkgs/development/python-modules/flask-admin/default.nix
+++ b/pkgs/development/python-modules/flask-admin/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, azure-storage-blob
-, boto
-, buildPythonPackage
-, fetchpatch
-, fetchFromGitHub
-, flask
-, flask-mongoengine
-, flask-sqlalchemy
-, geoalchemy2
-, mongoengine
-, pillow
-, psycopg2
-, pymongo
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, shapely
-, sqlalchemy
-, wtf-peewee
-, wtforms
+{
+  lib,
+  azure-storage-blob,
+  boto,
+  buildPythonPackage,
+  fetchpatch,
+  fetchFromGitHub,
+  flask,
+  flask-mongoengine,
+  flask-sqlalchemy,
+  geoalchemy2,
+  mongoengine,
+  pillow,
+  psycopg2,
+  pymongo,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  shapely,
+  sqlalchemy,
+  wtf-peewee,
+  wtforms,
 }:
 
 buildPythonPackage rec {
@@ -44,9 +45,7 @@ buildPythonPackage rec {
     })
   ];
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     flask
@@ -91,9 +90,7 @@ buildPythonPackage rec {
     "flask_admin/tests/peeweemodel/test_basic.py"
   ];
 
-  pythonImportsCheck = [
-    "flask_admin"
-  ];
+  pythonImportsCheck = [ "flask_admin" ];
 
   meta = with lib; {
     description = "Admin interface framework for Flask";
diff --git a/pkgs/development/python-modules/flask-api/default.nix b/pkgs/development/python-modules/flask-api/default.nix
index e837dc71df379..7b15e047ae19e 100644
--- a/pkgs/development/python-modules/flask-api/default.nix
+++ b/pkgs/development/python-modules/flask-api/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, fetchpatch
-
-# build-system
-, setuptools
-
-# dependencies
-, flask
-
-# tests
-, markdown
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  fetchpatch,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  flask,
+
+  # tests
+  markdown,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -37,13 +38,9 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    flask
-  ];
+  propagatedBuildInputs = [ flask ];
 
   nativeCheckInputs = [
     markdown
diff --git a/pkgs/development/python-modules/flask-appbuilder/default.nix b/pkgs/development/python-modules/flask-appbuilder/default.nix
index 3598500e37f56..b35020f88ee28 100644
--- a/pkgs/development/python-modules/flask-appbuilder/default.nix
+++ b/pkgs/development/python-modules/flask-appbuilder/default.nix
@@ -1,33 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, apispec
-, colorama
-, click
-, email-validator
-, flask
-, flask-babel
-, flask-limiter
-, flask-login
-, flask-openid
-, flask-sqlalchemy
-, flask-wtf
-, flask-jwt-extended
-, jsonschema
-, marshmallow
-, marshmallow-enum
-, marshmallow-sqlalchemy
-, python-dateutil
-, pythonOlder
-, prison
-, pyjwt
-, pyyaml
-, sqlalchemy-utils
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  apispec,
+  colorama,
+  click,
+  email-validator,
+  flask,
+  flask-babel,
+  flask-limiter,
+  flask-login,
+  flask-openid,
+  flask-sqlalchemy,
+  flask-wtf,
+  flask-jwt-extended,
+  jsonschema,
+  marshmallow,
+  marshmallow-sqlalchemy,
+  python-dateutil,
+  pythonOlder,
+  prison,
+  pyjwt,
+  pyyaml,
+  sqlalchemy-utils,
 }:
 
 buildPythonPackage rec {
   pname = "flask-appbuilder";
-  version = "4.4.1";
+  version = "4.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "Flask-AppBuilder";
     inherit version;
-    hash = "sha256-pk1MO1GXVHdEx8QffrD+Aga6Fnc2nOR5A90Iw8m3U70=";
+    hash = "sha256-CoQ5/pOR1xy71koUm1uwTJDLTDROTjJQMW9ZcgtzV50=";
   };
 
   propagatedBuildInputs = [
@@ -53,7 +53,6 @@ buildPythonPackage rec {
     flask-jwt-extended
     jsonschema
     marshmallow
-    marshmallow-enum
     marshmallow-sqlalchemy
     python-dateutil
     prison
@@ -74,9 +73,7 @@ buildPythonPackage rec {
   # Majority of tests require network access or mongo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "flask_appbuilder"
-  ];
+  pythonImportsCheck = [ "flask_appbuilder" ];
 
   meta = with lib; {
     description = "Application development framework, built on top of Flask";
diff --git a/pkgs/development/python-modules/flask-assets/default.nix b/pkgs/development/python-modules/flask-assets/default.nix
index def8f7b7754fb..966d7db267db3 100644
--- a/pkgs/development/python-modules/flask-assets/default.nix
+++ b/pkgs/development/python-modules/flask-assets/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, flask
-, webassets
-, flask-script
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  flask,
+  webassets,
+  flask-script,
+  nose,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     substituteInPlace tests/test_integration.py --replace "'/foo'" "'/x/foo'"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     flask
diff --git a/pkgs/development/python-modules/flask-babel/default.nix b/pkgs/development/python-modules/flask-babel/default.nix
index f8a6d3b31000a..dfeda89807aaf 100644
--- a/pkgs/development/python-modules/flask-babel/default.nix
+++ b/pkgs/development/python-modules/flask-babel/default.nix
@@ -1,24 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, poetry-core
+  # build-system
+  poetry-core,
 
-# docs
-, furo
-, sphinxHook
+  # docs
+  furo,
+  sphinxHook,
 
-# runtime
-, babel
-, flask
-, jinja2
-, pytz
+  # runtime
+  babel,
+  flask,
+  jinja2,
+  pytz,
 
-# tests
-, pytest-mock
-, pytestCheckHook
+  # tests
+  pytest-mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -51,9 +51,7 @@ buildPythonPackage rec {
     pytz
   ];
 
-  pythonImportsCheck = [
-    "flask_babel"
-  ];
+  pythonImportsCheck = [ "flask_babel" ];
 
   checkInputs = [
     pytest-mock
diff --git a/pkgs/development/python-modules/flask-babelex/default.nix b/pkgs/development/python-modules/flask-babelex/default.nix
index 7d3679e8f5881..6fc4381c602fa 100644
--- a/pkgs/development/python-modules/flask-babelex/default.nix
+++ b/pkgs/development/python-modules/flask-babelex/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flask
-, babel
-, speaklater
-, jinja2
-, pytestCheckHook
-, pytz
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flask,
+  babel,
+  speaklater,
+  jinja2,
+  pytestCheckHook,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     pytz
   ];
 
-  pytestFlagsArray = [
-    "tests/tests.py"
-  ];
+  pytestFlagsArray = [ "tests/tests.py" ];
 
   disabledTests = [
     # Disabled 3 tests failing due to string representations of dates:
diff --git a/pkgs/development/python-modules/flask-bcrypt/default.nix b/pkgs/development/python-modules/flask-bcrypt/default.nix
index 1d9db3cb22f24..da98864cf818a 100644
--- a/pkgs/development/python-modules/flask-bcrypt/default.nix
+++ b/pkgs/development/python-modules/flask-bcrypt/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flask
-, bcrypt
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+  bcrypt,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ unittestCheckHook ];
 
-  pythonImportsCheck = [
-    "flask_bcrypt"
-  ];
+  pythonImportsCheck = [ "flask_bcrypt" ];
 
   meta = with lib; {
     description = "Brcrypt hashing for Flask";
diff --git a/pkgs/development/python-modules/flask-bootstrap/default.nix b/pkgs/development/python-modules/flask-bootstrap/default.nix
index 3088e7392a484..a34a1c2673b36 100644
--- a/pkgs/development/python-modules/flask-bootstrap/default.nix
+++ b/pkgs/development/python-modules/flask-bootstrap/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, flask, visitor, dominate }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flask,
+  visitor,
+  dominate,
+}:
 
 buildPythonPackage rec {
   pname = "flask-bootstrap";
@@ -10,11 +17,15 @@ buildPythonPackage rec {
     sha256 = "1j1s2bplaifsnmr8vfxa3czca4rz78xyhrg4chx39xl306afs26b";
   };
 
-  propagatedBuildInputs = [ flask visitor dominate ];
+  propagatedBuildInputs = [
+    flask
+    visitor
+    dominate
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/mbr/flask-bootstrap";
-    description = "Ready-to-use Twitter-bootstrap for use in Flask.";
+    description = "Ready-to-use Twitter-bootstrap for use in Flask";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/flask-caching/default.nix b/pkgs/development/python-modules/flask-caching/default.nix
index 7ac2830bcf185..e679bf16e8ebf 100644
--- a/pkgs/development/python-modules/flask-caching/default.nix
+++ b/pkgs/development/python-modules/flask-caching/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, cachelib
-, flask
-, asgiref
-, pytest-asyncio
-, pytest-xprocess
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  cachelib,
+  flask,
+  asgiref,
+  pytest-asyncio,
+  pytest-xprocess,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "flask-caching";
-  version = "2.1.0";
+  version = "2.3.0";
   format = "setuptools";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    pname = "Flask-Caching";
+    pname = "flask_caching";
     inherit version;
-    hash = "sha256-t1AMFFE1g2qVLj3jqAiB2WVOMnopyFLJJlYH9cRJI1w=";
+    hash = "sha256-1+TKZKM7Sf6zOfzdF+a6JfXgEWjPiF5TeQ6IX4Ok0s8=";
   };
 
   postPatch = ''
@@ -40,20 +41,22 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = [
-    # backend_cache relies on pytest-cache, which is a stale package from 2013
-    "backend_cache"
-    # optional backends
-    "Redis"
-    "Memcache"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # ignore flaky test
-    "test_cache_timeout_dynamic"
-    "test_cached_view_class"
-  ];
+  disabledTests =
+    [
+      # backend_cache relies on pytest-cache, which is a stale package from 2013
+      "backend_cache"
+      # optional backends
+      "Redis"
+      "Memcache"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # ignore flaky test
+      "test_cache_timeout_dynamic"
+      "test_cached_view_class"
+    ];
 
   meta = with lib; {
-    description = "A caching extension for Flask";
+    description = "Caching extension for Flask";
     homepage = "https://github.com/pallets-eco/flask-caching";
     changelog = "https://github.com/pallets-eco/flask-caching/blob/v${version}/CHANGES.rst";
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/flask-common/default.nix b/pkgs/development/python-modules/flask-common/default.nix
index 54c8ef95e5a0b..00881d7d8fe56 100644
--- a/pkgs/development/python-modules/flask-common/default.nix
+++ b/pkgs/development/python-modules/flask-common/default.nix
@@ -1,5 +1,15 @@
-{ lib, fetchPypi, buildPythonPackage
-, crayons, flask, flask-caching, gunicorn, maya, meinheld, whitenoise }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  crayons,
+  flask,
+  flask-caching,
+  gunicorn,
+  maya,
+  meinheld,
+  whitenoise,
+}:
 
 buildPythonPackage rec {
   pname = "flask-common";
@@ -11,7 +21,15 @@ buildPythonPackage rec {
     sha256 = "13d99f2dbc0a332b8bc4b2cc394d3e48f89672c266868e372cd9d7b433d921a9";
   };
 
-  propagatedBuildInputs = [ crayons flask flask-caching gunicorn maya meinheld whitenoise ];
+  propagatedBuildInputs = [
+    crayons
+    flask
+    flask-caching
+    gunicorn
+    maya
+    meinheld
+    whitenoise
+  ];
 
   meta = with lib; {
     description = "Flask extension with lots of common time-savers";
diff --git a/pkgs/development/python-modules/flask-compress/default.nix b/pkgs/development/python-modules/flask-compress/default.nix
index 2810ab2270081..6e6fb8d2b437e 100644
--- a/pkgs/development/python-modules/flask-compress/default.nix
+++ b/pkgs/development/python-modules/flask-compress/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, isPyPy
-, setuptools
-, setuptools-scm
-, flask
-, brotli
-, brotlicffi
-, pytestCheckHook
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  isPyPy,
+  setuptools,
+  setuptools-scm,
+  flask,
+  brotli,
+  brotlicffi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -29,19 +30,11 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     flask
-  ] ++ lib.optionals (!isPyPy) [
-    brotli
-  ] ++ lib.optionals isPyPy [
-    brotlicffi
-  ];
+  ] ++ lib.optionals (!isPyPy) [ brotli ] ++ lib.optionals isPyPy [ brotlicffi ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "flask_compress"
-  ];
+  pythonImportsCheck = [ "flask_compress" ];
 
   meta = with lib; {
     description = "Compress responses in your Flask app with gzip, deflate or brotli";
diff --git a/pkgs/development/python-modules/flask-cors/default.nix b/pkgs/development/python-modules/flask-cors/default.nix
index abc90cdbb0e39..2456aa9ab52a1 100644
--- a/pkgs/development/python-modules/flask-cors/default.nix
+++ b/pkgs/development/python-modules/flask-cors/default.nix
@@ -1,31 +1,28 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, flask
-, packaging
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  flask,
+  packaging,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "flask-cors";
-  version = "4.0.0";
+  version = "4.0.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "corydolphin";
     repo = "flask-cors";
     rev = "refs/tags/${version}";
-    hash = "sha256-o//ulROKKBv/CBJIGPBFP/+T0TpMHUVjr23Y5g1V05g=";
+    hash = "sha256-ISot5KglCjfbJNsnveDLK44vVaapHRAFdS+1tOd08pw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    flask
-  ];
+  propagatedBuildInputs = [ flask ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -33,7 +30,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Flask extension adding a decorator for CORS support";
+    description = "Flask extension adding a decorator for CORS support";
     homepage = "https://github.com/corydolphin/flask-cors";
     changelog = "https://github.com/corydolphin/flask-cors/releases/tag/v${version}";
     license = with licenses; [ mit ];
diff --git a/pkgs/development/python-modules/flask-dramatiq/default.nix b/pkgs/development/python-modules/flask-dramatiq/default.nix
index 6f8884516f498..df943b1d8ed10 100644
--- a/pkgs/development/python-modules/flask-dramatiq/default.nix
+++ b/pkgs/development/python-modules/flask-dramatiq/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitLab
-, poetry-core
-, dramatiq
-, flask
-, requests
-, pytestCheckHook
-, flask-migrate
-, periodiq
-, postgresql
-, postgresqlTestHook
-, psycopg2
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitLab,
+  poetry-core,
+  dramatiq,
+  flask,
+  requests,
+  pytestCheckHook,
+  flask-migrate,
+  periodiq,
+  postgresql,
+  postgresqlTestHook,
+  psycopg2,
 }:
 
 buildPythonPackage {
@@ -40,13 +41,9 @@ buildPythonPackage {
       -e 's:--cov-report=term-missing::'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    dramatiq
-  ];
+  propagatedBuildInputs = [ dramatiq ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -66,7 +63,11 @@ buildPythonPackage {
     python3 ./example.py db upgrade
   '';
 
-  pytestFlagsArray = [ "-x" "tests/func/" "tests/unit"];
+  pytestFlagsArray = [
+    "-x"
+    "tests/func/"
+    "tests/unit"
+  ];
 
   pythonImportsCheck = [ "flask_dramatiq" ];
 
diff --git a/pkgs/development/python-modules/flask-elastic/default.nix b/pkgs/development/python-modules/flask-elastic/default.nix
index ea7bcb557b98a..6697a9f714ef6 100644
--- a/pkgs/development/python-modules/flask-elastic/default.nix
+++ b/pkgs/development/python-modules/flask-elastic/default.nix
@@ -1,5 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi
-, flask, elasticsearch }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flask,
+  elasticsearch,
+}:
 
 buildPythonPackage rec {
   pname = "flask-elastic";
@@ -12,7 +17,10 @@ buildPythonPackage rec {
     hash = "sha256-XwGm/FQbXSV2qbAlHyAbT4DLcQnIseDm1Qqdb5zjE0M=";
   };
 
-  propagatedBuildInputs = [ flask elasticsearch ];
+  propagatedBuildInputs = [
+    flask
+    elasticsearch
+  ];
   doCheck = false; # no tests
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/flask-expects-json/default.nix b/pkgs/development/python-modules/flask-expects-json/default.nix
index fd608b5044514..a0598642d4971 100644
--- a/pkgs/development/python-modules/flask-expects-json/default.nix
+++ b/pkgs/development/python-modules/flask-expects-json/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flask
-, jsonschema
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+  jsonschema,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     jsonschema
   ] ++ flask.optional-dependencies.async;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "flask_expects_json"
-  ];
+  pythonImportsCheck = [ "flask_expects_json" ];
 
   disabledTests = [
     # https://github.com/Fischerfredl/flask-expects-json/issues/26
@@ -46,8 +43,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/fischerfredl/flask-expects-json";
-    description = "Decorator for REST endpoints in flask. Validate JSON request data.";
+    description = "Decorator for REST endpoints in flask. Validate JSON request data";
     license = licenses.mit;
-    maintainers = [];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/flask-gravatar/default.nix b/pkgs/development/python-modules/flask-gravatar/default.nix
index 1a305f017cee3..9194a9436ac67 100644
--- a/pkgs/development/python-modules/flask-gravatar/default.nix
+++ b/pkgs/development/python-modules/flask-gravatar/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, flask
+  # dependencies
+  flask,
 
-# tests
-, pytestCheckHook
-, pygments
+  # tests
+  pytestCheckHook,
+  pygments,
 }:
 
 buildPythonPackage rec {
@@ -44,22 +45,16 @@ buildPythonPackage rec {
      --replace "--cov=flask_gravatar --cov-report=term-missing" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    flask
-  ];
+  propagatedBuildInputs = [ flask ];
 
   nativeCheckInputs = [
     pytestCheckHook
     pygments
   ];
 
-  pythonImportsCheck = [
-    "flask_gravatar"
-  ];
+  pythonImportsCheck = [ "flask_gravatar" ];
 
   meta = with lib; {
     homepage = "https://github.com/zzzsochi/Flask-Gravatar";
diff --git a/pkgs/development/python-modules/flask-httpauth/default.nix b/pkgs/development/python-modules/flask-httpauth/default.nix
index 71e5d2bcfc6ae..f44384247552e 100644
--- a/pkgs/development/python-modules/flask-httpauth/default.nix
+++ b/pkgs/development/python-modules/flask-httpauth/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, setuptools
-, flask
-, pythonOlder
- }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  setuptools,
+  flask,
+  pythonOlder,
+}:
 
 buildPythonPackage rec {
   pname = "flask-httpauth";
@@ -20,21 +21,13 @@ buildPythonPackage rec {
     hash = "sha256-ZlaKBbxzlCxl8eIgGudGKVgW3ACe3YS0gsRMdY11CXo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    flask
-  ];
+  propagatedBuildInputs = [ flask ];
 
-  pythonImportsCheck = [
-    "flask_httpauth"
-  ];
+  pythonImportsCheck = [ "flask_httpauth" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ flask.optional-dependencies.async;
+  nativeCheckInputs = [ pytestCheckHook ] ++ flask.optional-dependencies.async;
 
   meta = with lib; {
     description = "Extension that provides HTTP authentication for Flask routes";
diff --git a/pkgs/development/python-modules/flask-jwt-extended/default.nix b/pkgs/development/python-modules/flask-jwt-extended/default.nix
index ba7d9dcf18321..d05524e905fb0 100644
--- a/pkgs/development/python-modules/flask-jwt-extended/default.nix
+++ b/pkgs/development/python-modules/flask-jwt-extended/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cryptography
-, flask
-, pyjwt
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, werkzeug
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cryptography,
+  flask,
+  pyjwt,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  werkzeug,
 }:
 
 buildPythonPackage rec {
@@ -30,18 +31,13 @@ buildPythonPackage rec {
     werkzeug
   ];
 
-  passthru.optional-dependencies.asymmetric_crypto = [
-    cryptography
-  ];
+  passthru.optional-dependencies.asymmetric_crypto = [ cryptography ];
 
   nativeCheckInputs = [
     pytestCheckHook
-  ]
-  ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
+  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "flask_jwt_extended"
-  ];
+  pythonImportsCheck = [ "flask_jwt_extended" ];
 
   meta = with lib; {
     changelog = "https://github.com/vimalloc/flask-jwt-extended/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/flask-limiter/default.nix b/pkgs/development/python-modules/flask-limiter/default.nix
index 3aab9046cdc8e..3ccf3d41fcbb4 100644
--- a/pkgs/development/python-modules/flask-limiter/default.nix
+++ b/pkgs/development/python-modules/flask-limiter/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, asgiref
-, buildPythonPackage
-, fetchFromGitHub
-, flask
-, hiro
-, limits
-, ordered-set
-, pymemcache
-, pymongo
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, redis
-, rich
-, setuptools
-, typing-extensions
+{
+  lib,
+  asgiref,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+  hiro,
+  limits,
+  ordered-set,
+  pymemcache,
+  pymongo,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  redis,
+  rich,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "flask-limiter";
-  version = "3.5.1";
+  version = "3.7.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -28,7 +29,7 @@ buildPythonPackage rec {
     owner = "alisaifee";
     repo = "flask-limiter";
     rev = "refs/tags/${version}";
-    hash = "sha256-U7qgl8yg0ddKDPXqYE2Vqyc2ofxSP+6liWs5j4qD6fM=";
+    hash = "sha256-W40zuQ/xkoV35DXehwMUJwbX0grJMfRXawiPfpRKL/g=";
   };
 
   postPatch = ''
@@ -38,9 +39,7 @@ buildPythonPackage rec {
     sed -i "/import flask_restful/d" tests/test_views.py
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     flask
@@ -85,9 +84,7 @@ buildPythonPackage rec {
     "tests/test_storage.py"
   ];
 
-  pythonImportsCheck = [
-    "flask_limiter"
-  ];
+  pythonImportsCheck = [ "flask_limiter" ];
 
   meta = with lib; {
     description = "Rate limiting for flask applications";
diff --git a/pkgs/development/python-modules/flask-login/default.nix b/pkgs/development/python-modules/flask-login/default.nix
index 134dc8f2e44b4..ce9da8b158dc4 100644
--- a/pkgs/development/python-modules/flask-login/default.nix
+++ b/pkgs/development/python-modules/flask-login/default.nix
@@ -1,47 +1,45 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-
-# build-system
-, setuptools
-
-# dependencies
-, flask
-, werkzeug
-
-# tests
-, asgiref
-, blinker
-, pytestCheckHook
-, semantic-version
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # build-system
+  flit-core,
+
+  # dependencies
+  flask,
+  werkzeug,
+
+  # tests
+  asgiref,
+  blinker,
+  pytestCheckHook,
+  semantic-version,
 }:
 
 buildPythonPackage rec {
   pname = "flask-login";
-  version = "0.6.3";
+  version = "0.7.0dev0-2024-06-18";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    pname = "Flask-Login";
-    inherit version;
-    hash = "sha256-XiPRSmB+8SgGxplZC4nQ8ODWe67sWZ11lHv5wUczAzM=";
+  src = fetchFromGitHub {
+    owner = "maxcountryman";
+    repo = "flask-login";
+    rev = "30675c56b651389d47b47eeb1ad114decb35b8fc";
+    hash = "sha256-mIEYZnYWerjCetQuV2HRcmerMh2uLWNvHV7tfo5j4PU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ flit-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     flask
     werkzeug
   ];
 
-  pythonImportsCheck = [
-    "flask_login"
-  ];
+  pythonImportsCheck = [ "flask_login" ];
 
   nativeCheckInputs = [
     asgiref
diff --git a/pkgs/development/python-modules/flask-mail/default.nix b/pkgs/development/python-modules/flask-mail/default.nix
index 16e02683495f3..104d6f3da2b03 100644
--- a/pkgs/development/python-modules/flask-mail/default.nix
+++ b/pkgs/development/python-modules/flask-mail/default.nix
@@ -1,26 +1,40 @@
-{ lib, buildPythonPackage, fetchPypi,
-  blinker, flask, mock, nose, speaklater
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  blinker,
+  flit-core,
+  flask,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "flask-mail";
-  version = "0.9.1";
-  format = "setuptools";
+  version = "0.10.0";
+  pyproject = true;
 
-  meta = {
-    description = "Flask-Mail is a Flask extension providing simple email sending capabilities.";
-    homepage = "https://pypi.python.org/pypi/Flask-Mail";
-    license = lib.licenses.bsd3;
+  src = fetchFromGitHub {
+    owner = "pallets-eco";
+    repo = "flask-mail";
+    rev = "refs/tags/${version}";
+    hash = "sha256-G2Z8dj1/IuLsZoNJVrL6LYu0XjTEHtWB9Z058aqG9Ic=";
   };
 
-  src = fetchPypi {
-    pname = "Flask-Mail";
-    inherit version;
-    hash = "sha256-IuXrmpQL9Ae88wQQ7MNwjzxWzESynDThcm/oUAaTX0E=";
-  };
+  build-system = [ flit-core ];
+
+  dependencies = [
+    blinker
+    flask
+  ];
 
-  propagatedBuildInputs = [ blinker flask ];
-  buildInputs = [ blinker mock nose speaklater ];
+  pythonImportsCheck = [ "flask_mail" ];
 
-  doCheck = false;
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  meta = {
+    description = "Flask extension providing simple email sending capabilities";
+    homepage = "https://github.com/pallets-eco/flask-mail";
+    changelog = "https://github.com/pallets-eco/flask-mail/blob/${src.rev}/CHANGES.md";
+    license = lib.licenses.bsd3;
+  };
 }
diff --git a/pkgs/development/python-modules/flask-mailman/default.nix b/pkgs/development/python-modules/flask-mailman/default.nix
index 035005545ec45..2403e436266ed 100644
--- a/pkgs/development/python-modules/flask-mailman/default.nix
+++ b/pkgs/development/python-modules/flask-mailman/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, mkdocs-material-extensions
-, flask
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  mkdocs-material-extensions,
+  flask,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "flask-mailman";
-  version = "1.0.0";
+  version = "1.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -19,27 +20,23 @@ buildPythonPackage rec {
     owner = "waynerv";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-wfbMz9k9cy9m95mc0Y0lqmpJczrfjhmumO31gRQy704=";
+    hash = "sha256-2ll5+D35dQN3r7gDpY1iSOuJBlqMorhjhFohPug8GK8=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     flask
     mkdocs-material-extensions
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "flask_mailman" ];
 
   meta = with lib; {
     homepage = "https://github.com/waynerv/flask-mailman";
-    description = "Flask extension providing simple email sending capabilities.";
+    description = "Flask extension providing simple email sending capabilities";
     license = licenses.bsd3;
     maintainers = with maintainers; [ gador ];
   };
diff --git a/pkgs/development/python-modules/flask-marshmallow/default.nix b/pkgs/development/python-modules/flask-marshmallow/default.nix
index 9d1c889dda4c2..69ad443789edd 100644
--- a/pkgs/development/python-modules/flask-marshmallow/default.nix
+++ b/pkgs/development/python-modules/flask-marshmallow/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flask
-, flask-sqlalchemy
-, flit-core
-, marshmallow
-, marshmallow-sqlalchemy
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+  flask-sqlalchemy,
+  flit-core,
+  marshmallow,
+  marshmallow-sqlalchemy,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-GQLkt/CJf/QI8emvlW8xSRziGnncwfMSxBccW0Bb8I0=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     flask
@@ -40,13 +39,9 @@ buildPythonPackage rec {
     ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.sqlalchemy;
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.sqlalchemy;
 
-  pythonImportsCheck = [
-    "flask_marshmallow"
-  ];
+  pythonImportsCheck = [ "flask_marshmallow" ];
 
   pytestFlagsArray = [
     "-W"
diff --git a/pkgs/development/python-modules/flask-migrate/default.nix b/pkgs/development/python-modules/flask-migrate/default.nix
index 804eed53ab04f..2809af9a4ac74 100644
--- a/pkgs/development/python-modules/flask-migrate/default.nix
+++ b/pkgs/development/python-modules/flask-migrate/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, alembic
-, flask
-, flask-script
-, flask-sqlalchemy
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  alembic,
+  flask,
+  flask-script,
+  flask-sqlalchemy,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-TnihrZ+JQ1XCBlFp6k8lrNpZr4P2/Z6AmFwWZbabz+8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     alembic
@@ -34,9 +33,7 @@ buildPythonPackage rec {
     flask-sqlalchemy
   ];
 
-  pythonImportsCheck = [
-    "flask_migrate"
-  ];
+  pythonImportsCheck = [ "flask_migrate" ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/flask-mongoengine/default.nix b/pkgs/development/python-modules/flask-mongoengine/default.nix
index dad4b6ddb8716..32f8642212728 100644
--- a/pkgs/development/python-modules/flask-mongoengine/default.nix
+++ b/pkgs/development/python-modules/flask-mongoengine/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, email-validator
-, fetchFromGitHub
-, flask
-, flask-wtf
-, markupsafe
-, mongoengine
-, pythonOlder
-, setuptools
-, setuptools-scm
-, typing-extensions
-, wtforms
+{
+  lib,
+  buildPythonPackage,
+  email-validator,
+  fetchFromGitHub,
+  flask,
+  flask-wtf,
+  markupsafe,
+  mongoengine,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  typing-extensions,
+  wtforms,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
     flask
     flask-wtf
     mongoengine
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   passthru.optional-dependencies = {
     wtf = [
@@ -51,17 +50,13 @@ buildPythonPackage rec {
     # toolbar = [
     #   flask-debugtoolbar
     # ];
-    legacy = [
-      markupsafe
-    ];
+    legacy = [ markupsafe ];
   };
 
   # Tests require working mongodb connection
   doCheck = false;
 
-  pythonImportsCheck = [
-    "flask_mongoengine"
-  ];
+  pythonImportsCheck = [ "flask_mongoengine" ];
 
   meta = with lib; {
     description = "Flask extension that provides integration with MongoEngine and WTF model forms";
diff --git a/pkgs/development/python-modules/flask-mysqldb/default.nix b/pkgs/development/python-modules/flask-mysqldb/default.nix
index f0b7d59206feb..995d44efcc578 100644
--- a/pkgs/development/python-modules/flask-mysqldb/default.nix
+++ b/pkgs/development/python-modules/flask-mysqldb/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, flask
-, mysqlclient
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  flask,
+  mysqlclient,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-RHAB9WGRzojH6eAOG61QguwF+4LssO9EcFjbWxoOtF4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     flask
     mysqlclient
   ];
 
-  pythonImportsCheck = [
-    "flask_mysqldb"
-  ];
+  pythonImportsCheck = [ "flask_mysqldb" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "MySQL connection support for Flask";
diff --git a/pkgs/development/python-modules/flask-openid/default.nix b/pkgs/development/python-modules/flask-openid/default.nix
index 9d65a5cab26e0..6fbcb0b29c8d7 100644
--- a/pkgs/development/python-modules/flask-openid/default.nix
+++ b/pkgs/development/python-modules/flask-openid/default.nix
@@ -1,23 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flask
-, python3-openid
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  flask,
+  python3-openid,
 }:
 
 buildPythonPackage rec {
   pname = "flask-openid";
-  version = "1.3.0";
-  format = "setuptools";
+  version = "1.3.1";
+  pyproject = true;
 
   src = fetchPypi {
-    pname = "Flask-OpenID";
+    pname = "flask_openid";
     inherit version;
-    sha256 = "539289ed2d19af61ae38d8fe46aec9e4de2b56f9f8b46da0b98c0d387f1d975a";
+    hash = "sha256-J2KLwKN+ZTCUiCMZPgaNeQNa2Ulth7dAQEQ+xITHZXo=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     flask
     python3-openid
   ];
diff --git a/pkgs/development/python-modules/flask-paranoid/default.nix b/pkgs/development/python-modules/flask-paranoid/default.nix
index 5e200137941bb..0e4d49127ae95 100644
--- a/pkgs/development/python-modules/flask-paranoid/default.nix
+++ b/pkgs/development/python-modules/flask-paranoid/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flask
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
     substituteInPlace tests/test_paranoid.py --replace "01-Jan-1970" "01 Jan 1970"
   '';
 
-  propagatedBuildInputs = [
-    flask
-  ];
+  propagatedBuildInputs = [ flask ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "flask_paranoid" ];
 
diff --git a/pkgs/development/python-modules/flask-principal/default.nix b/pkgs/development/python-modules/flask-principal/default.nix
index 7343a15398dbb..5fe11b282c0d6 100644
--- a/pkgs/development/python-modules/flask-principal/default.nix
+++ b/pkgs/development/python-modules/flask-principal/default.nix
@@ -1,24 +1,42 @@
-{ lib, buildPythonPackage, fetchPypi, flask, blinker, nose }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  blinker,
+  flask,
+  pytestCheckHook,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "flask-principal";
   version = "0.4.0";
-  format = "setuptools";
+  pyproject = true;
 
-  src = fetchPypi {
-    pname = "Flask-Principal";
-    inherit version;
-    hash = "sha256-9dYTS1yuv9u4bzLVbRjuRLCAh2onJpVgqW6jX3XJlFM=";
+  src = fetchFromGitHub {
+    owner = "pallets-eco";
+    repo = "flask-principal";
+    rev = "refs/tags/${version}";
+    hash = "sha256-E9urzZc7/QtzAohSNAJsQtykrplb+MC189VGZI5kmEE=";
   };
 
-  propagatedBuildInputs = [ flask blinker ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [ nose ];
+  dependencies = [
+    flask
+    blinker
+  ];
+
+  pythonImportsCheck = [ "flask_principal" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pytestFlagsArray = [ "test_principal.py" ];
 
   meta = with lib; {
     homepage = "http://packages.python.org/Flask-Principal/";
     description = "Identity management for flask";
-    license = licenses.bsd2;
+    license = licenses.mit;
     maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/pkgs/development/python-modules/flask-pymongo/default.nix b/pkgs/development/python-modules/flask-pymongo/default.nix
index 721de186417f6..6a6ae8f31d3bf 100644
--- a/pkgs/development/python-modules/flask-pymongo/default.nix
+++ b/pkgs/development/python-modules/flask-pymongo/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, vcversioner
-, flask
-, pymongo
-, six
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  vcversioner,
+  flask,
+  pymongo,
+  six,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "flask_pymongo" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # requires running MongoDB
   doCheck = false;
diff --git a/pkgs/development/python-modules/flask-restful/default.nix b/pkgs/development/python-modules/flask-restful/default.nix
index 3107d4c7f5bc2..e1f15d6fad0c1 100644
--- a/pkgs/development/python-modules/flask-restful/default.nix
+++ b/pkgs/development/python-modules/flask-restful/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, aniso8601
-, blinker
-, buildPythonPackage
-, fetchPypi
-, flask
-, mock
-, nose
-, pytestCheckHook
-, pythonOlder
-, pytz
-, six
-, werkzeug
+{
+  lib,
+  aniso8601,
+  blinker,
+  buildPythonPackage,
+  fetchPypi,
+  flask,
+  mock,
+  nose,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  six,
+  werkzeug,
 }:
 
 buildPythonPackage rec {
@@ -27,11 +28,9 @@ buildPythonPackage rec {
   };
 
   # conditional so that overrides are easier for web applications
-  patches = lib.optionals (lib.versionAtLeast werkzeug.version "2.1.0") [
-    ./werkzeug-2.1.0-compat.patch
-  ] ++ lib.optionals (lib.versionAtLeast flask.version "3.0.0") [
-    ./flask-3.0-compat.patch
-  ];
+  patches =
+    lib.optionals (lib.versionAtLeast werkzeug.version "2.1.0") [ ./werkzeug-2.1.0-compat.patch ]
+    ++ lib.optionals (lib.versionAtLeast flask.version "3.0.0") [ ./flask-3.0-compat.patch ];
 
   propagatedBuildInputs = [
     aniso8601
@@ -55,9 +54,7 @@ buildPythonPackage rec {
     "test_media_types_q"
   ];
 
-  pythonImportsCheck = [
-    "flask_restful"
-  ];
+  pythonImportsCheck = [ "flask_restful" ];
 
   meta = with lib; {
     description = "Framework for creating REST APIs";
diff --git a/pkgs/development/python-modules/flask-restx/default.nix b/pkgs/development/python-modules/flask-restx/default.nix
index 052bf4ac5da31..55f41f6f77375 100644
--- a/pkgs/development/python-modules/flask-restx/default.nix
+++ b/pkgs/development/python-modules/flask-restx/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, aniso8601
-, jsonschema
-, flask
-, importlib-resources
-, werkzeug
-, pytz
-, faker
-, mock
-, blinker
-, py
-, pytest-flask
-, pytest-mock
-, pytest-benchmark
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  aniso8601,
+  jsonschema,
+  flask,
+  importlib-resources,
+  werkzeug,
+  pytz,
+  faker,
+  mock,
+  blinker,
+  py,
+  pytest-flask,
+  pytest-mock,
+  pytest-benchmark,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -35,9 +36,7 @@ buildPythonPackage rec {
     hash = "sha256-CBReP/u96fsr28lMV1BfLjjdBMXEvsD03wvsxkIcteI=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     aniso8601
@@ -59,14 +58,16 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "--benchmark-disable"
-    "--deselect=tests/test_inputs.py::URLTest::test_check"
-    "--deselect=tests/test_inputs.py::EmailTest::test_valid_value_check"
-    "--deselect=tests/test_logging.py::LoggingTest::test_override_app_level"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "--deselect=tests/test_inputs.py::EmailTest::test_invalid_values_check"
-  ];
+  pytestFlagsArray =
+    [
+      "--benchmark-disable"
+      "--deselect=tests/test_inputs.py::URLTest::test_check"
+      "--deselect=tests/test_inputs.py::EmailTest::test_valid_value_check"
+      "--deselect=tests/test_logging.py::LoggingTest::test_override_app_level"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      "--deselect=tests/test_inputs.py::EmailTest::test_invalid_values_check"
+    ];
 
   disabledTests = [
     # broken in werkzeug 2.3 upgrade
@@ -74,9 +75,7 @@ buildPythonPackage rec {
     "test_media_types_q"
   ];
 
-  pythonImportsCheck = [
-    "flask_restx"
-  ];
+  pythonImportsCheck = [ "flask_restx" ];
 
   meta = with lib; {
     description = "Fully featured framework for fast, easy and documented API development with Flask";
diff --git a/pkgs/development/python-modules/flask-reverse-proxy-fix/default.nix b/pkgs/development/python-modules/flask-reverse-proxy-fix/default.nix
index 6d079b66f149d..a4ea585c909ca 100644
--- a/pkgs/development/python-modules/flask-reverse-proxy-fix/default.nix
+++ b/pkgs/development/python-modules/flask-reverse-proxy-fix/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flask
-, werkzeug
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+  werkzeug,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/flask-script/default.nix b/pkgs/development/python-modules/flask-script/default.nix
index afd56302a562c..3a7a8693385ee 100644
--- a/pkgs/development/python-modules/flask-script/default.nix
+++ b/pkgs/development/python-modules/flask-script/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, flask, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flask,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "flask-script";
diff --git a/pkgs/development/python-modules/flask-seasurf/default.nix b/pkgs/development/python-modules/flask-seasurf/default.nix
index 1764e2762059a..4ea3134fefa8a 100644
--- a/pkgs/development/python-modules/flask-seasurf/default.nix
+++ b/pkgs/development/python-modules/flask-seasurf/default.nix
@@ -1,4 +1,13 @@
-{ lib, fetchFromGitHub, fetchpatch, buildPythonPackage, isPy3k, flask, mock, unittestCheckHook }:
+{
+  lib,
+  fetchFromGitHub,
+  fetchpatch,
+  buildPythonPackage,
+  isPy3k,
+  flask,
+  mock,
+  unittestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "flask-seasurf";
@@ -36,7 +45,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "flask_seasurf" ];
 
   meta = with lib; {
-    description = "A Flask extension for preventing cross-site request forgery";
+    description = "Flask extension for preventing cross-site request forgery";
     homepage = "https://github.com/maxcountryman/flask-seasurf";
     license = licenses.bsd3;
     maintainers = with maintainers; [ zhaofengli ];
diff --git a/pkgs/development/python-modules/flask-security-too/default.nix b/pkgs/development/python-modules/flask-security-too/default.nix
index 29947460055b1..e02bb99626df6 100644
--- a/pkgs/development/python-modules/flask-security-too/default.nix
+++ b/pkgs/development/python-modules/flask-security-too/default.nix
@@ -1,48 +1,49 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-
-# extras: babel
-, babel
-, flask-babel
-
-# extras: common
-, bcrypt
-, bleach
-, flask-mailman
-
-# extras: fsqla
-, flask-sqlalchemy
-, sqlalchemy
-, sqlalchemy-utils
-
-# extras: mfa
-, cryptography
-, phonenumbers
-, webauthn
-, qrcode
-
-# propagates
-, email-validator
-, flask
-, flask-login
-, flask-principal
-, flask-wtf
-, passlib
-, importlib-resources
-, wtforms
-
-# tests
-, argon2-cffi
-, freezegun
-, mongoengine
-, mongomock
-, peewee
-, pony
-, pytestCheckHook
-, zxcvbn
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+
+  # extras: babel
+  babel,
+  flask-babel,
+
+  # extras: common
+  bcrypt,
+  bleach,
+  flask-mailman,
+
+  # extras: fsqla
+  flask-sqlalchemy,
+  sqlalchemy,
+  sqlalchemy-utils,
+
+  # extras: mfa
+  cryptography,
+  phonenumbers,
+  webauthn,
+  qrcode,
+
+  # propagates
+  email-validator,
+  flask,
+  flask-login,
+  flask-principal,
+  flask-wtf,
+  passlib,
+  importlib-resources,
+  wtforms,
+
+  # tests
+  argon2-cffi,
+  freezegun,
+  mongoengine,
+  mongomock,
+  peewee,
+  pony,
+  pytestCheckHook,
+  zxcvbn,
 }:
 
 buildPythonPackage rec {
@@ -58,9 +59,7 @@ buildPythonPackage rec {
     hash = "sha256-YrGTl+jXGo1MuNwNRAnMehSXmCVJAwOWlgruUYdV5YM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     email-validator
@@ -96,31 +95,29 @@ buildPythonPackage rec {
     ];
   };
 
-  nativeCheckInputs = [
-    argon2-cffi
-    freezegun
-    mongoengine
-    mongomock
-    peewee
-    pony
-    pytestCheckHook
-    zxcvbn
-    freezegun
-  ]
-  ++ passthru.optional-dependencies.babel
-  ++ passthru.optional-dependencies.common
-  ++ passthru.optional-dependencies.fsqla
-  ++ passthru.optional-dependencies.mfa;
-
+  nativeCheckInputs =
+    [
+      argon2-cffi
+      freezegun
+      mongoengine
+      mongomock
+      peewee
+      pony
+      pytestCheckHook
+      zxcvbn
+      freezegun
+    ]
+    ++ passthru.optional-dependencies.babel
+    ++ passthru.optional-dependencies.common
+    ++ passthru.optional-dependencies.fsqla
+    ++ passthru.optional-dependencies.mfa;
 
   disabledTests = [
     # needs /etc/resolv.conf
     "test_login_email_whatever"
   ];
 
-  pythonImportsCheck = [
-    "flask_security"
-  ];
+  pythonImportsCheck = [ "flask_security" ];
 
   meta = with lib; {
     changelog = "https://github.com/Flask-Middleware/flask-security/blob/${version}/CHANGES.rst";
diff --git a/pkgs/development/python-modules/flask-session-captcha/default.nix b/pkgs/development/python-modules/flask-session-captcha/default.nix
index 115867f1c63cc..675afdcb2b384 100644
--- a/pkgs/development/python-modules/flask-session-captcha/default.nix
+++ b/pkgs/development/python-modules/flask-session-captcha/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "flask_session_captcha" ];
 
   meta = with lib; {
-    description = "A captcha implemention for flask";
+    description = "Captcha implemention for flask";
     homepage = "https://github.com/Tethik/flask-session-captcha";
     changelog = "https://github.com/Tethik/flask-session-captcha/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/flask-session/default.nix b/pkgs/development/python-modules/flask-session/default.nix
index e3c4abf8da8a0..dcfb8bfe4a36d 100644
--- a/pkgs/development/python-modules/flask-session/default.nix
+++ b/pkgs/development/python-modules/flask-session/default.nix
@@ -1,49 +1,75 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, flit-core
-, flask
-, cachelib
-, pytestCheckHook
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+
+  # build-system
+  flit-core,
+
+  # dependencies
+  flask,
+  cachelib,
+  msgspec,
+
+  # checks
+  boto3,
+  flask-sqlalchemy,
+  pytestCheckHook,
+  redis,
+  pymongo,
+  pymemcache,
+  python-memcached,
+  pkgs,
 }:
 
 buildPythonPackage rec {
   pname = "flask-session";
-  version = "0.5.0";
-  format = "pyproject";
+  version = "0.8.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pallets-eco";
     repo = "flask-session";
     rev = "refs/tags/${version}";
-    hash = "sha256-t8w6ZS4gBDpnnKvL3DLtn+rRLQNJbrT2Hxm4f3+a3Xc=";
+    hash = "sha256-QLtsM0MFgZbuLJPLc5/mUwyYc3bYxildNKNxOF8Z/3Y=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  build-system = [ flit-core ];
 
-  propagatedBuildInputs = [
-    flask
+  dependencies = [
     cachelib
+    flask
+    msgspec
   ];
 
   nativeCheckInputs = [
+    flask-sqlalchemy
     pytestCheckHook
+    redis
+    pymongo
+    pymemcache
+    python-memcached
+    boto3
   ];
 
-  # The rest of the tests require database servers and optional db connector dependencies
-  pytestFlagsArray = [
-    "-k"
-    "'null_session or filesystem_session'"
-  ];
+  preCheck = ''
+    ${pkgs.redis}/bin/redis-server &
+    ${pkgs.memcached}/bin/memcached &
+  '';
 
-  pythonImportsCheck = [
-    "flask_session"
-  ];
+  postCheck = ''
+    kill %%
+    kill %%
+  '';
+
+  disabledTests = [ "test_mongo_default" ]; # unfree
+
+  disabledTestPaths = [ "tests/test_dynamodb.py" ];
+
+  pythonImportsCheck = [ "flask_session" ];
 
   meta = with lib; {
-    description = "A Flask extension that adds support for server-side sessions";
+    description = "Flask extension that adds support for server-side sessions";
     homepage = "https://github.com/pallets-eco/flask-session";
     changelog = "https://github.com/pallets-eco/flask-session/releases/tag/${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/flask-silk/default.nix b/pkgs/development/python-modules/flask-silk/default.nix
index ddee5077970da..db54dcf8ef791 100644
--- a/pkgs/development/python-modules/flask-silk/default.nix
+++ b/pkgs/development/python-modules/flask-silk/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flask
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
 }:
 
 buildPythonPackage {
@@ -17,9 +18,7 @@ buildPythonPackage {
     sha256 = "0mplziqw52jfspas6vsm210lmxqqzgj0dxm8y0i3gpbyyykwcmh0";
   };
 
-  propagatedBuildInputs = [
-    flask
-  ];
+  propagatedBuildInputs = [ flask ];
 
   meta = with lib; {
     description = "Adds silk icons to your Flask application or module, or extension";
diff --git a/pkgs/development/python-modules/flask-sock/default.nix b/pkgs/development/python-modules/flask-sock/default.nix
index 36ef8a093e1e3..bb5f82925cfb1 100644
--- a/pkgs/development/python-modules/flask-sock/default.nix
+++ b/pkgs/development/python-modules/flask-sock/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pytestCheckHook
-, pythonOlder
-, fetchFromGitHub
-, flask
-, setuptools
-, simple-websocket
+{
+  lib,
+  buildPythonPackage,
+  pytestCheckHook,
+  pythonOlder,
+  fetchFromGitHub,
+  flask,
+  setuptools,
+  simple-websocket,
 }:
 
 buildPythonPackage rec {
@@ -22,24 +23,18 @@ buildPythonPackage rec {
     hash = "sha256-GKfOVdeLPag2IKGCWrMjQp4NTL1/9GiyLhXhf9jQKhQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     flask
     simple-websocket
   ];
 
-  pytestFlagsArray = [
-    "tests/test_flask_sock.py"
-  ];
+  pytestFlagsArray = [ "tests/test_flask_sock.py" ];
 
   pythonImportsCheck = [ "flask_sock" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "WebSocket support for Flask";
diff --git a/pkgs/development/python-modules/flask-socketio/default.nix b/pkgs/development/python-modules/flask-socketio/default.nix
index 7460bf2309d47..7bfda242546c8 100644
--- a/pkgs/development/python-modules/flask-socketio/default.nix
+++ b/pkgs/development/python-modules/flask-socketio/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, flask
-, pytestCheckHook
-, python-socketio
-, pythonOlder
-, redis
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  flask,
+  pytestCheckHook,
+  python-socketio,
+  pythonOlder,
+  redis,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-YjCe34Mvt7tvp3w5yH52lrq4bWi7aIYAUssNqxlQ8CA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     flask
@@ -37,13 +36,9 @@ buildPythonPackage rec {
     redis
   ];
 
-  pytestFlagsArray = [
-    "test_socketio.py"
-  ];
+  pytestFlagsArray = [ "test_socketio.py" ];
 
-  pythonImportsCheck = [
-    "flask_socketio"
-  ];
+  pythonImportsCheck = [ "flask_socketio" ];
 
   meta = with lib; {
     description = "Socket.IO integration for Flask applications";
diff --git a/pkgs/development/python-modules/flask-sockets/default.nix b/pkgs/development/python-modules/flask-sockets/default.nix
index aa29fd4fbc943..6879b64fdb75f 100644
--- a/pkgs/development/python-modules/flask-sockets/default.nix
+++ b/pkgs/development/python-modules/flask-sockets/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flask
-, gevent
-, gevent-websocket
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flask,
+  gevent,
+  gevent-websocket,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
   # upstream doesn't have any tests, single file
   doCheck = false;
 
-  pythonImportsCheck = [
-    "flask_sockets"
-  ];
+  pythonImportsCheck = [ "flask_sockets" ];
 
   meta = with lib; {
     description = "Elegant WebSockets for your Flask apps";
diff --git a/pkgs/development/python-modules/flask-sqlalchemy/default.nix b/pkgs/development/python-modules/flask-sqlalchemy/default.nix
index 7f1775418f1c1..4a9de0f4dd6d1 100644
--- a/pkgs/development/python-modules/flask-sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/flask-sqlalchemy/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flask
-, mock
-, flit-core
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, sqlalchemy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flask,
+  mock,
+  flit-core,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  sqlalchemy,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-5LaLuIGALdoafYeLL8hMBtHuV/tAuHTT3Jfav6NrgxI=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     flask
@@ -46,12 +45,11 @@ buildPythonPackage rec {
 
   pytestFlagsArray = lib.optionals (pythonAtLeast "3.12") [
     # datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version.
-    "-W" "ignore::DeprecationWarning"
+    "-W"
+    "ignore::DeprecationWarning"
   ];
 
-  pythonImportsCheck = [
-    "flask_sqlalchemy"
-  ];
+  pythonImportsCheck = [ "flask_sqlalchemy" ];
 
   meta = with lib; {
     description = "SQLAlchemy extension for Flask";
diff --git a/pkgs/development/python-modules/flask-sslify/default.nix b/pkgs/development/python-modules/flask-sslify/default.nix
index bb3ef6c8cd1a7..f384c875a7704 100644
--- a/pkgs/development/python-modules/flask-sslify/default.nix
+++ b/pkgs/development/python-modules/flask-sslify/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchPypi, buildPythonPackage, flask }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  flask,
+}:
 
 buildPythonPackage rec {
   pname = "flask-sslify";
@@ -16,7 +21,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "flask_sslify" ];
 
   meta = with lib; {
-    description = "A Flask extension that redirects all incoming requests to HTTPS";
+    description = "Flask extension that redirects all incoming requests to HTTPS";
     homepage = "https://github.com/kennethreitz42/flask-sslify";
     license = licenses.bsd2;
     maintainers = with maintainers; [ zhaofengli ];
diff --git a/pkgs/development/python-modules/flask-swagger-ui/default.nix b/pkgs/development/python-modules/flask-swagger-ui/default.nix
index 8fa18aecc924d..b8fbada07ee9f 100644
--- a/pkgs/development/python-modules/flask-swagger-ui/default.nix
+++ b/pkgs/development/python-modules/flask-swagger-ui/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, flask }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flask,
+}:
 
 buildPythonPackage rec {
   pname = "flask-swagger-ui";
@@ -10,11 +15,9 @@ buildPythonPackage rec {
     hash = "sha256-o3AZmngNZ4sy448b4Q1Nge+g7mPp/i+3Zv8aS2w32sg=";
   };
 
-  doCheck = false;  # there are no tests
+  doCheck = false; # there are no tests
 
-  propagatedBuildInputs = [
-    flask
-  ];
+  propagatedBuildInputs = [ flask ];
 
   meta = with lib; {
     homepage = "https://github.com/sveint/flask-swagger-ui";
diff --git a/pkgs/development/python-modules/flask-swagger/default.nix b/pkgs/development/python-modules/flask-swagger/default.nix
index 4f968505edaa5..e71d148cb4652 100644
--- a/pkgs/development/python-modules/flask-swagger/default.nix
+++ b/pkgs/development/python-modules/flask-swagger/default.nix
@@ -1,5 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi
-, flask, pyyaml }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flask,
+  pyyaml,
+}:
 
 buildPythonPackage rec {
   version = "0.2.14";
diff --git a/pkgs/development/python-modules/flask-talisman/default.nix b/pkgs/development/python-modules/flask-talisman/default.nix
index 76a79e5f09111..ba46319e52106 100644
--- a/pkgs/development/python-modules/flask-talisman/default.nix
+++ b/pkgs/development/python-modules/flask-talisman/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flask
-, six
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flask,
+  six,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,17 +17,11 @@ buildPythonPackage rec {
     hash = "sha256-xfSG9fVEIHKfhLPDhQzWP5bosDOpYpvuZsUk6jY3l/8=";
   };
 
-  buildInputs = [
-    flask
-  ];
+  buildInputs = [ flask ];
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  nativeBuildInputs = [
-    pytestCheckHook
-  ];
+  nativeBuildInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "HTTP security headers for Flask";
diff --git a/pkgs/development/python-modules/flask-testing/default.nix b/pkgs/development/python-modules/flask-testing/default.nix
index cb1c3cf79bd18..6574dcf1613e8 100644
--- a/pkgs/development/python-modules/flask-testing/default.nix
+++ b/pkgs/development/python-modules/flask-testing/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, blinker
-, pytestCheckHook
-, buildPythonPackage
-, fetchPypi
-, flask
-, pythonOlder
+{
+  lib,
+  stdenv,
+  blinker,
+  pytestCheckHook,
+  buildPythonPackage,
+  fetchPypi,
+  flask,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-CnNNe2jmOpQQtBPNex+WRW+ahYvQmmIi1GVlDMeC6wE=";
   };
 
-  propagatedBuildInputs = [
-    flask
-  ];
+  propagatedBuildInputs = [ flask ];
 
   nativeCheckInputs = [
     blinker
@@ -47,9 +46,7 @@ buildPythonPackage rec {
     "tests/test_twill.py"
   ];
 
-  pythonImportsCheck = [
-    "flask_testing"
-  ];
+  pythonImportsCheck = [ "flask_testing" ];
 
   meta = with lib; {
     description = "Extension provides unit testing utilities for Flask";
diff --git a/pkgs/development/python-modules/flask-themes2/default.nix b/pkgs/development/python-modules/flask-themes2/default.nix
index b4cd08bdcf09b..745e1e91655eb 100644
--- a/pkgs/development/python-modules/flask-themes2/default.nix
+++ b/pkgs/development/python-modules/flask-themes2/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools
-, flask
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  flask,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-gsMgQQXjhDfQRhm7H0kBy8jKxd75WY+PhHR6Rk/PUPs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    flask
-  ];
+  propagatedBuildInputs = [ flask ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Easily theme your Flask app";
diff --git a/pkgs/development/python-modules/flask-versioned/default.nix b/pkgs/development/python-modules/flask-versioned/default.nix
index 1d54e49e417d2..9541e74148ca6 100644
--- a/pkgs/development/python-modules/flask-versioned/default.nix
+++ b/pkgs/development/python-modules/flask-versioned/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, flask }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+}:
 
 buildPythonPackage rec {
   pname = "flask-versioned";
diff --git a/pkgs/development/python-modules/flask-wtf/default.nix b/pkgs/development/python-modules/flask-wtf/default.nix
index a106945df060c..487c2c997b8ee 100644
--- a/pkgs/development/python-modules/flask-wtf/default.nix
+++ b/pkgs/development/python-modules/flask-wtf/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, hatchling
-, flask
-, itsdangerous
-, wtforms
-, email-validator
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  hatchling,
+  flask,
+  itsdangerous,
+  wtforms,
+  email-validator,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -39,18 +40,20 @@ buildPythonPackage rec {
     email = [ email-validator ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [
-    "-W" "ignore::DeprecationWarning"
+    "-W"
+    "ignore::DeprecationWarning"
   ];
 
   meta = with lib; {
-    description = "Simple integration of Flask and WTForms.";
+    description = "Simple integration of Flask and WTForms";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ mic92 anthonyroussel ];
+    maintainers = with maintainers; [
+      mic92
+      anthonyroussel
+    ];
     homepage = "https://github.com/lepture/flask-wtf/";
     changelog = "https://github.com/wtforms/flask-wtf/releases/tag/v${version}";
   };
diff --git a/pkgs/development/python-modules/flask/default.nix b/pkgs/development/python-modules/flask/default.nix
index 77d26dc24b824..d8effec2045e5 100644
--- a/pkgs/development/python-modules/flask/default.nix
+++ b/pkgs/development/python-modules/flask/default.nix
@@ -1,32 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# build-system
-, flit-core
+  # build-system
+  flit-core,
 
-# dependencies
-, blinker
-, click
-, importlib-metadata
-, itsdangerous
-, jinja2
-, werkzeug
+  # dependencies
+  blinker,
+  click,
+  importlib-metadata,
+  itsdangerous,
+  jinja2,
+  werkzeug,
 
-# optional-dependencies
-, asgiref
-, python-dotenv
+  # optional-dependencies
+  asgiref,
+  python-dotenv,
 
-# tests
-, greenlet
-, pytestCheckHook
+  # tests
+  greenlet,
+  pytestCheckHook,
 
-# reverse dependencies
-, flask-limiter
-, flask-restful
-, flask-restx
-, moto
+  # reverse dependencies
+  flask-limiter,
+  flask-restful,
+  flask-restx,
+  moto,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
     hash = "sha256-zrJ7CvOCPqJzeSik2Z0SWgYXW4USxEXL2anOIA73aEI=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     click
@@ -49,33 +48,33 @@ buildPythonPackage rec {
     itsdangerous
     jinja2
     werkzeug
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
   passthru.optional-dependencies = {
-    async = [
-      asgiref
-    ];
-    dotenv = [
-      python-dotenv
-    ];
+    async = [ asgiref ];
+    dotenv = [ python-dotenv ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    greenlet
-  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+  nativeCheckInputs =
+    [ pytestCheckHook ]
+    ++ lib.optionals (pythonOlder "3.11") [ greenlet ]
+    ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
   passthru.tests = {
-    inherit flask-limiter flask-restful flask-restx moto;
+    inherit
+      flask-limiter
+      flask-restful
+      flask-restx
+      moto
+      ;
   };
 
   meta = with lib; {
-    changelog = "https://flask.palletsprojects.com/en/${versions.majorMinor version}.x/changes/#version-${replaceStrings [ "." ] [ "-" ] version}";
+    changelog = "https://flask.palletsprojects.com/en/${versions.majorMinor version}.x/changes/#version-${
+      replaceStrings [ "." ] [ "-" ] version
+    }";
     homepage = "https://flask.palletsprojects.com/";
-    description = "The Python micro framework for building web applications";
+    description = "Python micro framework for building web applications";
     mainProgram = "flask";
     longDescription = ''
       Flask is a lightweight WSGI web application framework. It is
diff --git a/pkgs/development/python-modules/flatbuffers/default.nix b/pkgs/development/python-modules/flatbuffers/default.nix
index 74719b2415865..db0405cc34d11 100644
--- a/pkgs/development/python-modules/flatbuffers/default.nix
+++ b/pkgs/development/python-modules/flatbuffers/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, flatbuffers
+{
+  lib,
+  buildPythonPackage,
+  flatbuffers,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/flatdict/default.nix b/pkgs/development/python-modules/flatdict/default.nix
index c96d905860269..d0aacabfbbca1 100644
--- a/pkgs/development/python-modules/flatdict/default.nix
+++ b/pkgs/development/python-modules/flatdict/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     hash = "sha256-CWsTiCNdIKSQtjpQC07lhZoU1hXT/MGpXdj649x2GlU=";
   };
 
-  pythonImportsCheck = [
-    "flatdict"
-  ];
+  pythonImportsCheck = [ "flatdict" ];
 
   meta = with lib; {
     description = "Python module for interacting with nested dicts as a single level dict with delimited keys";
diff --git a/pkgs/development/python-modules/flatten-dict/default.nix b/pkgs/development/python-modules/flatten-dict/default.nix
index 41929f9f671f0..9f50f2c7dab92 100644
--- a/pkgs/development/python-modules/flatten-dict/default.nix
+++ b/pkgs/development/python-modules/flatten-dict/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-uHenKoD4eLm9sMREVuV0BB/oUgh4NMiuj+IWd0hlxNQ=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "flatten_dict"
-  ];
+  pythonImportsCheck = [ "flatten_dict" ];
 
   meta = with lib; {
     description = "Module for flattening and unflattening dict-like objects";
diff --git a/pkgs/development/python-modules/flax/default.nix b/pkgs/development/python-modules/flax/default.nix
index ce41f8e561394..6587ca7d3b67b 100644
--- a/pkgs/development/python-modules/flax/default.nix
+++ b/pkgs/development/python-modules/flax/default.nix
@@ -1,31 +1,31 @@
-{ lib
-, buildPythonPackage
-, cloudpickle
-, einops
-, fetchFromGitHub
-, jax
-, jaxlib
-, keras
-, matplotlib
-, msgpack
-, numpy
-, optax
-, orbax-checkpoint
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, pyyaml
-, rich
-, setuptools-scm
-, tensorflow
-, tensorstore
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  cloudpickle,
+  einops,
+  fetchFromGitHub,
+  jax,
+  jaxlib,
+  keras,
+  matplotlib,
+  msgpack,
+  numpy,
+  optax,
+  orbax-checkpoint,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  rich,
+  setuptools-scm,
+  tensorflow,
+  tensorstore,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "flax";
-  version = "0.8.2";
+  version = "0.8.4";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -34,16 +34,15 @@ buildPythonPackage rec {
     owner = "google";
     repo = "flax";
     rev = "refs/tags/v${version}";
-    hash = "sha256-UABgJGe1grUSkwOJpjeIoFqhXsqG//HlC1YyYPxXV+g=";
+    hash = "sha256-ZwqKZdJ9LOfWTav5nE9xMsMw/DbryqQUuu5fqeugBzY=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     jaxlib
-    pythonRelaxDepsHook
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     jax
     msgpack
     numpy
@@ -59,9 +58,7 @@ buildPythonPackage rec {
     all = [ matplotlib ];
   };
 
-  pythonImportsCheck = [
-    "flax"
-  ];
+  pythonImportsCheck = [ "flax" ];
 
   nativeCheckInputs = [
     cloudpickle
@@ -87,7 +84,7 @@ buildPythonPackage rec {
     # `tensorflow_datasets`, `vocabulary`) so the benefits of trying to run them
     # would be limited anyway.
     "examples/*"
-    "flax/experimental/nnx/examples/*"
+    "flax/nnx/examples/*"
     # See https://github.com/google/flax/issues/3232.
     "tests/jax_utils_test.py"
     # Requires tree
@@ -99,11 +96,11 @@ buildPythonPackage rec {
     "test_overwrite_checkpoints0"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "Neural network library for JAX";
     homepage = "https://github.com/google/flax";
     changelog = "https://github.com/google/flax/releases/tag/v${version}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ ndl ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ ndl ];
   };
 }
diff --git a/pkgs/development/python-modules/fleep/default.nix b/pkgs/development/python-modules/fleep/default.nix
index f41cb01094029..4f178a836c22f 100644
--- a/pkgs/development/python-modules/fleep/default.nix
+++ b/pkgs/development/python-modules/fleep/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-TaU7njx98nxkhZawGMFqWj4g+yCtIX9aPWQHoamzfMY=";
   };
 
-  patches = [
-    ./0001-Fixing-paths-on-tests.patch
-  ];
+  patches = [ ./0001-Fixing-paths-on-tests.patch ];
 
   checkPhase = ''
     ${python.interpreter} tests/maintest.py
@@ -32,6 +31,6 @@ buildPythonPackage rec {
     description = "File format determination library";
     homepage = "https://github.com/floyernick/fleep-py";
     license = licenses.mit;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/flet-core/default.nix b/pkgs/development/python-modules/flet-core/default.nix
index 99612c52b5adc..dd65e60e13297 100644
--- a/pkgs/development/python-modules/flet-core/default.nix
+++ b/pkgs/development/python-modules/flet-core/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, flet-client-flutter
+{
+  lib,
+  buildPythonPackage,
+  flet-client-flutter,
 
-# build-system
-, poetry-core
+  # build-system
+  poetry-core,
 
-# propagates
-, typing-extensions
-, repath
+  # propagates
+  typing-extensions,
+  repath,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
 
   sourceRoot = "${src.name}/sdk/python/packages/flet-core";
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     repath
@@ -30,9 +29,12 @@ buildPythonPackage rec {
 
   meta = {
     changelog = "https://github.com/flet-dev/flet/releases/tag/v${version}";
-    description = "The library is the foundation of Flet framework and is not intended to be used directly";
+    description = "Library is the foundation of Flet framework and is not intended to be used directly";
     homepage = "https://flet.dev/";
     license = lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ heyimnova lucasew ];
+    maintainers = with lib.maintainers; [
+      heyimnova
+      lucasew
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/flet-runtime/default.nix b/pkgs/development/python-modules/flet-runtime/default.nix
index 585fba6795c15..d9679fdc4f45f 100644
--- a/pkgs/development/python-modules/flet-runtime/default.nix
+++ b/pkgs/development/python-modules/flet-runtime/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, flet-client-flutter
-, poetry-core
-, pythonRelaxDepsHook
-, flet-core
-, httpx
-, oauthlib
+{
+  lib,
+  buildPythonPackage,
+  flet-client-flutter,
+  poetry-core,
+  flet-core,
+  httpx,
+  oauthlib,
 }:
 
 buildPythonPackage rec {
@@ -25,12 +25,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "httpx"
-  ];
+  pythonRelaxDeps = [ "httpx" ];
 
   propagatedBuildInputs = [
     flet-core
@@ -38,13 +35,11 @@ buildPythonPackage rec {
     oauthlib
   ];
 
-  pythonImportsCheck = [
-    "flet_runtime"
-  ];
+  pythonImportsCheck = [ "flet_runtime" ];
 
   meta = {
     changelog = "https://github.com/flet-dev/flet/releases/tag/v${version}";
-    description = "A base package for Flet desktop and Flet mobile";
+    description = "Base package for Flet desktop and Flet mobile";
     homepage = "https://flet.dev/";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ lucasew ];
diff --git a/pkgs/development/python-modules/flet/default.nix b/pkgs/development/python-modules/flet/default.nix
index 3e9a7d1f7bf0e..314d0a72c7767 100644
--- a/pkgs/development/python-modules/flet/default.nix
+++ b/pkgs/development/python-modules/flet/default.nix
@@ -1,24 +1,24 @@
-{ lib
-, buildPythonPackage
-, flet-client-flutter
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  flet-client-flutter,
 
-# build-system
-, poetry-core
+  # build-system
+  poetry-core,
 
-# propagates
-, fastapi
-, flet-core
-, flet-runtime
-, httpx
-, oauthlib
-, packaging
-, qrcode
-, cookiecutter
-, uvicorn
-, watchdog
-, websocket-client
-, websockets
+  # propagates
+  fastapi,
+  flet-core,
+  flet-runtime,
+  httpx,
+  oauthlib,
+  packaging,
+  qrcode,
+  cookiecutter,
+  uvicorn,
+  watchdog,
+  websocket-client,
+  websockets,
 
 }:
 
@@ -32,7 +32,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = [
@@ -61,16 +60,17 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  pythonImportsCheck = [
-    "flet"
-  ];
+  pythonImportsCheck = [ "flet" ];
 
   meta = {
-    description = "A framework that enables you to easily build realtime web, mobile, and desktop apps in Python";
+    description = "Framework that enables you to easily build realtime web, mobile, and desktop apps in Python";
     homepage = "https://flet.dev/";
     changelog = "https://github.com/flet-dev/flet/releases/tag/v${version}";
     license = lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ heyimnova lucasew ];
+    maintainers = with lib.maintainers; [
+      heyimnova
+      lucasew
+    ];
     mainProgram = "flet";
   };
 }
diff --git a/pkgs/development/python-modules/flexcache/default.nix b/pkgs/development/python-modules/flexcache/default.nix
new file mode 100644
index 0000000000000..18572f62c0503
--- /dev/null
+++ b/pkgs/development/python-modules/flexcache/default.nix
@@ -0,0 +1,55 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+  setuptools-scm,
+  wheel,
+
+  # dependencies
+  typing-extensions,
+
+  # checks
+  pytestCheckHook,
+  pytest-mpl,
+  pytest-subtests,
+}:
+
+buildPythonPackage rec {
+  pname = "flexcache";
+  version = "0.3";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "hgrecco";
+    repo = "flexcache";
+    rev = version;
+    hash = "sha256-MAbTe7NxzfRPzo/Wnb5SnPJvJWf6zVeYsaw/g9OJYSE=";
+  };
+
+  build-system = [
+    setuptools
+    setuptools-scm
+    wheel
+  ];
+
+  dependencies = [ typing-extensions ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-mpl
+    pytest-subtests
+  ];
+
+  pythonImportsCheck = [ "flexcache" ];
+
+  meta = with lib; {
+    description = "An robust and extensible package to cache on disk the result of expensive calculations";
+    homepage = "https://github.com/hgrecco/flexcache";
+    changelog = "https://github.com/hgrecco/flexcache/blob/${src.rev}/CHANGES";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/flexmock/default.nix b/pkgs/development/python-modules/flexmock/default.nix
index 7ec46f29da6f5..154c9f97ecc41 100644
--- a/pkgs/development/python-modules/flexmock/default.nix
+++ b/pkgs/development/python-modules/flexmock/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, poetry-core
-, teamcity-messages
-, testtools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  poetry-core,
+  teamcity-messages,
+  testtools,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-ILaQr6T/jG8xVI2JbW1BzKH8kFCkz2KLll6kNOxUjuM=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -30,9 +29,7 @@ buildPythonPackage rec {
     testtools
   ];
 
-  pythonImportsCheck = [
-    "flexmock"
-  ];
+  pythonImportsCheck = [ "flexmock" ];
 
   meta = with lib; {
     description = "Testing library that makes it easy to create mocks,stubs and fakes";
diff --git a/pkgs/development/python-modules/flexparser/default.nix b/pkgs/development/python-modules/flexparser/default.nix
new file mode 100644
index 0000000000000..ebbbdf67f35e5
--- /dev/null
+++ b/pkgs/development/python-modules/flexparser/default.nix
@@ -0,0 +1,55 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+  setuptools-scm,
+  wheel,
+
+  # dependencies
+  typing-extensions,
+
+  # checks
+  pytestCheckHook,
+  pytest-mpl,
+  pytest-subtests,
+}:
+
+buildPythonPackage rec {
+  pname = "flexparser";
+  version = "0.3.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "hgrecco";
+    repo = "flexparser";
+    rev = version;
+    hash = "sha256-9ImG8uh1SZ+pAbqzWBkTVn+3EBAGzzdP8vqqP59IgIw=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+    wheel
+  ];
+
+  propagatedBuildInputs = [ typing-extensions ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-mpl
+    pytest-subtests
+  ];
+
+  pythonImportsCheck = [ "flexparser" ];
+
+  meta = with lib; {
+    description = "Parsing made fun ... using typing";
+    homepage = "https://github.com/hgrecco/flexparser";
+    changelog = "https://github.com/hgrecco/flexparser/blob/${src.rev}/CHANGES";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/flickrapi/default.nix b/pkgs/development/python-modules/flickrapi/default.nix
index ca04c9110eef2..9f55251a2c991 100644
--- a/pkgs/development/python-modules/flickrapi/default.nix
+++ b/pkgs/development/python-modules/flickrapi/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, requests-toolbelt
-, requests-oauthlib
-, six
-, pytestCheckHook
-, responses
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  requests-toolbelt,
+  requests-oauthlib,
+  six,
+  pytestCheckHook,
+  responses,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -55,12 +56,10 @@ buildPythonPackage rec {
     "test_xmlnode_format_error"
   ];
 
-  pythonImportsCheck = [
-    "flickrapi"
-  ];
+  pythonImportsCheck = [ "flickrapi" ];
 
   meta = with lib; {
-    description = "A Python interface to the Flickr API";
+    description = "Python interface to the Flickr API";
     homepage = "https://stuvel.eu/flickrapi";
     license = licenses.psfl;
     maintainers = with maintainers; [ obadz ];
diff --git a/pkgs/development/python-modules/flipr-api/default.nix b/pkgs/development/python-modules/flipr-api/default.nix
index 650573d73fc5a..336e16e811ed3 100644
--- a/pkgs/development/python-modules/flipr-api/default.nix
+++ b/pkgs/development/python-modules/flipr-api/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, requests-mock
-, pythonOlder
-, pytest-asyncio
-, pytestCheckHook
-, python-dateutil
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  requests-mock,
+  pythonOlder,
+  pytest-asyncio,
+  pytestCheckHook,
+  python-dateutil,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-xgLi2lH+EPPNlMixqOzdBGVLuoJh5dhZ2tHZ0UH+lOk=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     python-dateutil
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "flipr_api"
-  ];
+  pythonImportsCheck = [ "flipr_api" ];
 
   meta = with lib; {
     description = "Python client for Flipr API";
diff --git a/pkgs/development/python-modules/flit-core/default.nix b/pkgs/development/python-modules/flit-core/default.nix
index a4e0716cf344a..05157efb8648f 100644
--- a/pkgs/development/python-modules/flit-core/default.nix
+++ b/pkgs/development/python-modules/flit-core/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, flit
+{
+  lib,
+  buildPythonPackage,
+  flit,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/flit-scm/default.nix b/pkgs/development/python-modules/flit-scm/default.nix
index 24075891c61e9..0592be831f6d8 100644
--- a/pkgs/development/python-modules/flit-scm/default.nix
+++ b/pkgs/development/python-modules/flit-scm/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitLab
-, pythonOlder
-, flit-core
-, setuptools-scm
-, tomli
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitLab,
+  pythonOlder,
+  flit-core,
+  setuptools-scm,
+  tomli,
 }:
 
 buildPythonPackage rec {
@@ -22,26 +23,19 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     flit-core
     setuptools-scm
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   propagatedBuildInputs = [
     flit-core
     setuptools-scm
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
-
-  pythonImportsCheck = [
-    "flit_scm"
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
+  pythonImportsCheck = [ "flit_scm" ];
 
   doCheck = false; # no tests
 
   meta = with lib; {
-    description = "A PEP 518 build backend that uses setuptools_scm to generate a version file from your version control system, then flit to build the package.";
+    description = "PEP 518 build backend that uses setuptools_scm to generate a version file from your version control system, then flit to build the package";
     homepage = "https://gitlab.com/WillDaSilva/flit_scm";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/development/python-modules/flit/default.nix b/pkgs/development/python-modules/flit/default.nix
index b623d1ec26ecc..9284de7d11844 100644
--- a/pkgs/development/python-modules/flit/default.nix
+++ b/pkgs/development/python-modules/flit/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, docutils
-, requests
-, pytestCheckHook
-, testpath
-, responses
-, flit-core
-, tomli-w
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  docutils,
+  requests,
+  pytestCheckHook,
+  testpath,
+  responses,
+  flit-core,
+  tomli-w,
 }:
 
 # Flit is actually an application to build universal wheels.
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-yl2+PcKr7xRW4oIBWl+gzh/nKhSNu5GH9fWKRGgaNHU=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     docutils
@@ -38,7 +37,11 @@ buildPythonPackage rec {
     tomli-w
   ];
 
-  nativeCheckInputs = [ pytestCheckHook testpath responses ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    testpath
+    responses
+  ];
 
   disabledTests = [
     # needs some ini file.
@@ -52,7 +55,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/pypa/flit/blob/${version}/doc/history.rst";
-    description = "A simple packaging tool for simple packages";
+    description = "Simple packaging tool for simple packages";
     mainProgram = "flit";
     homepage = "https://github.com/pypa/flit";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/floret/default.nix b/pkgs/development/python-modules/floret/default.nix
index 6ca020ac81df1..b2e1099e20158 100644
--- a/pkgs/development/python-modules/floret/default.nix
+++ b/pkgs/development/python-modules/floret/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pybind11
-, setuptools
-, wheel
-, numpy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pybind11,
+  setuptools,
+  wheel,
+  numpy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,7 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-7vkw6H0ZQoHEwNusY6QWh/vPbSCdP1ZaaqABHsZH6hQ=";
   };
 
-  patches = [./cstdint.patch ];
+  patches = [ ./cstdint.patch ];
 
   nativeBuildInputs = [
     pybind11
@@ -38,9 +39,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "floret" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "FastText + Bloom embeddings for compact, full-coverage vectors with spaCy";
diff --git a/pkgs/development/python-modules/flow-record/default.nix b/pkgs/development/python-modules/flow-record/default.nix
index 3e836772aa851..d9c61a791615b 100644
--- a/pkgs/development/python-modules/flow-record/default.nix
+++ b/pkgs/development/python-modules/flow-record/default.nix
@@ -1,21 +1,21 @@
-{ lib
-, buildPythonPackage
-, elasticsearch
-, fastavro
-, fetchFromGitHub
-, lz4
-, msgpack
-, pytest7CheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
-, wheel
-, zstandard
+{
+  lib,
+  buildPythonPackage,
+  elasticsearch,
+  fastavro,
+  fetchFromGitHub,
+  lz4,
+  msgpack,
+  pytest7CheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  zstandard,
 }:
 
 buildPythonPackage rec {
   pname = "flow-record";
-  version = "3.14";
+  version = "3.15";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,48 +24,37 @@ buildPythonPackage rec {
     owner = "fox-it";
     repo = "flow.record";
     rev = "refs/tags/${version}";
-    hash = "sha256-8XQeXfrgTk+jHR1ABlEEIn3E/MkUkGnvkgzePws4qhQ=";
+    hash = "sha256-j5N66p7feB9Ae+Fu5RhVzh8XCHiq55jJMg0Fe+C6Jvg=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
-    wheel
   ];
 
-  propagatedBuildInputs = [
-    msgpack
-  ];
+  dependencies = [ msgpack ];
 
   passthru.optional-dependencies = {
     compression = [
       lz4
       zstandard
     ];
-    elastic = [
-      elasticsearch
-    ];
-    avro = [
-      fastavro
-    ] ++ fastavro.optional-dependencies.snappy;
+    elastic = [ elasticsearch ];
+    avro = [ fastavro ] ++ fastavro.optional-dependencies.snappy;
   };
 
   nativeCheckInputs = [
     pytest7CheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "flow.record"
-  ];
+  pythonImportsCheck = [ "flow.record" ];
 
   disabledTestPaths = [
     # Test requires rdump
     "tests/test_rdump.py"
   ];
 
-  disabledTests = [
-    "test_rdump_fieldtype_path_json"
-  ];
+  disabledTests = [ "test_rdump_fieldtype_path_json" ];
 
   meta = with lib; {
     description = "Library for defining and creating structured data";
diff --git a/pkgs/development/python-modules/flower/default.nix b/pkgs/development/python-modules/flower/default.nix
index a7d69d06fd783..b6af9c7564f8f 100644
--- a/pkgs/development/python-modules/flower/default.nix
+++ b/pkgs/development/python-modules/flower/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, celery
-, humanize
-, pytz
-, tornado
-, prometheus-client
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  celery,
+  humanize,
+  pytz,
+  tornado,
+  prometheus-client,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -35,13 +36,9 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "flower"
-  ];
+  pythonImportsCheck = [ "flower" ];
 
   meta = with lib; {
     description = "Real-time monitor and web admin for Celery distributed task queue";
diff --git a/pkgs/development/python-modules/flowlogs-reader/default.nix b/pkgs/development/python-modules/flowlogs-reader/default.nix
index 7769bdcb427b1..ee7d9f4cc2152 100644
--- a/pkgs/development/python-modules/flowlogs-reader/default.nix
+++ b/pkgs/development/python-modules/flowlogs-reader/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, boto3
-, botocore
-, buildPythonPackage
-, fetchFromGitHub
-, parquet
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
+{
+  lib,
+  boto3,
+  botocore,
+  buildPythonPackage,
+  fetchFromGitHub,
+  parquet,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -31,13 +32,9 @@ buildPythonPackage rec {
     python-dateutil
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "flowlogs_reader"
-  ];
+  pythonImportsCheck = [ "flowlogs_reader" ];
 
   meta = with lib; {
     description = "Python library to make retrieving Amazon VPC Flow Logs from CloudWatch Logs a bit easier";
diff --git a/pkgs/development/python-modules/fluent-logger/default.nix b/pkgs/development/python-modules/fluent-logger/default.nix
index 8d9610d2d4483..320cb1343f461 100644
--- a/pkgs/development/python-modules/fluent-logger/default.nix
+++ b/pkgs/development/python-modules/fluent-logger/default.nix
@@ -1,40 +1,35 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, hatchling
+  # build-system
+  hatchling,
 
-# dependencies
-, msgpack
+  # dependencies
+  msgpack,
 
-# tests
-, pytestCheckHook,
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "fluent-logger";
-  version = "0.11.0";
+  version = "0.11.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "fluent";
     repo = "fluent-logger-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-PfyjJZT5K/IMsyyWNZdh/CZf+uZHeJGfhyAPuu0IhJk=";
+    hash = "sha256-i6S5S2ZUwC5gQPdVjefUXrKj43iLIqxd8tdXbMBJNnA=";
   };
 
-  build-system  = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
-  dependencies = [
-    msgpack
-  ];
+  dependencies = [ msgpack ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [
     "fluent"
@@ -44,7 +39,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A structured logger for Fluentd (Python)";
+    description = "Structured logger for Fluentd (Python)";
     homepage = "https://github.com/fluent/fluent-logger-python";
     license = licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/flufl/bounce.nix b/pkgs/development/python-modules/flufl/bounce.nix
index 7c6738bc3cd65..b514947d8e3bf 100644
--- a/pkgs/development/python-modules/flufl/bounce.nix
+++ b/pkgs/development/python-modules/flufl/bounce.nix
@@ -1,10 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, atpublic
-, zope-interface
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch2,
+  setuptools,
+  atpublic,
+  zope-interface,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,26 +20,26 @@ buildPythonPackage rec {
     hash = "sha256-JVBK65duwP5aGc1sQTo0EMtRT9zb3Kn5tdjTQ6hgODE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
+  patches = [
+    (fetchpatch2 {
+      # Replace deprecated failIf with assertFalse for Python 3.12 compatibility.
+      url = "https://gitlab.com/warsaw/flufl.bounce/-/commit/e0b9fd0f24572e024a8d0484a3c9fb4542337d18.patch";
+      hash = "sha256-HJHEbRVjiiP5Z7W0sQCj6elUMyaWOTqQw6UpYOYCVZM=";
+    })
   ];
 
+  nativeBuildInputs = [ setuptools ];
+
   propagatedBuildInputs = [
     atpublic
     zope-interface
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "flufl.bounce"
-  ];
+  pythonImportsCheck = [ "flufl.bounce" ];
 
-  pythonNamespaces = [
-    "flufl"
-  ];
+  pythonNamespaces = [ "flufl" ];
 
   meta = with lib; {
     description = "Email bounce detectors";
diff --git a/pkgs/development/python-modules/flufl/i18n.nix b/pkgs/development/python-modules/flufl/i18n.nix
index bd5bcb62fe6c7..a592c4a4ddb0b 100644
--- a/pkgs/development/python-modules/flufl/i18n.nix
+++ b/pkgs/development/python-modules/flufl/i18n.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, atpublic
-, pdm-pep517
-, pytestCheckHook
-, sybil
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  atpublic,
+  pdm-pep517,
+  pytestCheckHook,
+  sybil,
 }:
 
 buildPythonPackage rec {
@@ -37,12 +38,10 @@ buildPythonPackage rec {
     sybil
   ];
 
-  pythonNamespaces = [
-    "flufl"
-  ];
+  pythonNamespaces = [ "flufl" ];
 
   meta = with lib; {
-    description = "A high level API for internationalizing Python libraries and applications";
+    description = "High level API for internationalizing Python libraries and applications";
     homepage = "https://gitlab.com/warsaw/flufl.i18n";
     changelog = "https://gitlab.com/warsaw/flufl.i18n/-/raw/${version}/docs/NEWS.rst";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/flufl/lock.nix b/pkgs/development/python-modules/flufl/lock.nix
index 8a3e391fee15d..8926badb3e631 100644
--- a/pkgs/development/python-modules/flufl/lock.nix
+++ b/pkgs/development/python-modules/flufl/lock.nix
@@ -1,6 +1,14 @@
-{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, pythonOlder
-, atpublic, psutil, pytest-cov, sybil
-, pdm-pep517
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  atpublic,
+  psutil,
+  pytest-cov,
+  sybil,
+  pdm-pep517,
 }:
 
 buildPythonPackage rec {
@@ -17,21 +25,24 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [ pdm-pep517 ];
-  propagatedBuildInputs = [ atpublic psutil ];
-  nativeCheckInputs = [ pytestCheckHook pytest-cov sybil ];
+  propagatedBuildInputs = [
+    atpublic
+    psutil
+  ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-cov
+    sybil
+  ];
 
   # disable code coverage checks for all OS. Upstream does not enforce these
   # checks on Darwin, and code coverage cannot be improved downstream nor is it
   # relevant to the user.
   pytestFlagsArray = [ "--no-cov" ];
 
-  pythonImportsCheck = [
-    "flufl.lock"
-  ];
+  pythonImportsCheck = [ "flufl.lock" ];
 
-  pythonNamespaces = [
-    "flufl"
-  ];
+  pythonNamespaces = [ "flufl" ];
 
   meta = with lib; {
     homepage = "https://flufllock.readthedocs.io/";
diff --git a/pkgs/development/python-modules/flux-led/default.nix b/pkgs/development/python-modules/flux-led/default.nix
index d33e21a43a24d..291b56d32cb6c 100644
--- a/pkgs/development/python-modules/flux-led/default.nix
+++ b/pkgs/development/python-modules/flux-led/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, webcolors
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  webcolors,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,22 +27,16 @@ buildPythonPackage rec {
     webcolors
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace setup.py \
       --replace '"pytest-runner>=5.2",' ""
   '';
 
-  pytestFlagsArray = [
-    "tests.py"
-  ];
+  pytestFlagsArray = [ "tests.py" ];
 
-  pythonImportsCheck = [
-    "flux_led"
-  ];
+  pythonImportsCheck = [ "flux_led" ];
 
   meta = with lib; {
     description = "Python library to communicate with the flux_led smart bulbs";
diff --git a/pkgs/development/python-modules/flyingsquid/default.nix b/pkgs/development/python-modules/flyingsquid/default.nix
index dcaf664e4acf5..2fe656646db35 100644
--- a/pkgs/development/python-modules/flyingsquid/default.nix
+++ b/pkgs/development/python-modules/flyingsquid/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pgmpy
-, torch
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pgmpy,
+  torch,
 }:
 let
   pname = "flyingsquid";
diff --git a/pkgs/development/python-modules/fn/default.nix b/pkgs/development/python-modules/fn/default.nix
index 71608387b4faa..186937474c9fa 100644
--- a/pkgs/development/python-modules/fn/default.nix
+++ b/pkgs/development/python-modules/fn/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchpatch,
+  fetchPypi,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     (fetchpatch {
       url = "https://github.com/kachayev/fn.py/commit/a54fc0bd8aeae277de2db726131d249ce607c0c2.patch";
       hash = "sha256-I0ZISOgVibsc1k7gwSfeW6qV9PspQqdaHlRLr/IusQ8=";
-      excludes = [
-        "fn/monad.py"
-      ];
+      excludes = [ "fn/monad.py" ];
     })
   ];
 
diff --git a/pkgs/development/python-modules/fnv-hash-fast/default.nix b/pkgs/development/python-modules/fnv-hash-fast/default.nix
index 01e57845d3bb1..0f25cc83eac21 100644
--- a/pkgs/development/python-modules/fnv-hash-fast/default.nix
+++ b/pkgs/development/python-modules/fnv-hash-fast/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cython
-, poetry-core
-, setuptools
-, wheel
-, fnvhash
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cython,
+  poetry-core,
+  setuptools,
+  wheel,
+  fnvhash,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -33,20 +34,14 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    fnvhash
-  ];
+  propagatedBuildInputs = [ fnvhash ];
 
-  pythonImportsCheck = [
-    "fnv_hash_fast"
-  ];
+  pythonImportsCheck = [ "fnv_hash_fast" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A fast version of fnv1a";
+    description = "Fast version of fnv1a";
     homepage = "https://github.com/bdraco/fnv-hash-fast";
     changelog = "https://github.com/bdraco/fnv-hash-fast/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/fnvhash/default.nix b/pkgs/development/python-modules/fnvhash/default.nix
index ac80ac564fa17..76ec4ed770b43 100644
--- a/pkgs/development/python-modules/fnvhash/default.nix
+++ b/pkgs/development/python-modules/fnvhash/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/folium/default.nix b/pkgs/development/python-modules/folium/default.nix
index 1478e274c8c3d..ccc8a300095c9 100644
--- a/pkgs/development/python-modules/folium/default.nix
+++ b/pkgs/development/python-modules/folium/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, branca
-, buildPythonPackage
-, fetchFromGitHub
-, geopandas
-, jinja2
-, nbconvert
-, numpy
-, pandas
-, pillow
-, pytestCheckHook
-, pythonOlder
-, requests
-, selenium
-, setuptools
-, setuptools-scm
-, wheel
-, xyzservices
+{
+  lib,
+  branca,
+  buildPythonPackage,
+  fetchFromGitHub,
+  geopandas,
+  jinja2,
+  nbconvert,
+  numpy,
+  pandas,
+  pillow,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  selenium,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  xyzservices,
 }:
 
 buildPythonPackage rec {
   pname = "folium";
-  version = "0.16.0";
+  version = "0.17.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,7 +30,7 @@ buildPythonPackage rec {
     owner = "python-visualization";
     repo = "folium";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ADDqjZUQVI4K/Bf38905g1K9TD2/e1RYvYWddvFtdrU=";
+    hash = "sha256-uKT6WqT3pI3rqfV/3CA+mXBk3F7h4RWW1h2FPIy0JH4=";
   };
 
   nativeBuildInputs = [
@@ -66,9 +67,7 @@ buildPythonPackage rec {
     "test_valid_png"
   ];
 
-  pythonImportsCheck = [
-    "folium"
-  ];
+  pythonImportsCheck = [ "folium" ];
 
   meta = {
     description = "Make beautiful maps with Leaflet.js & Python";
diff --git a/pkgs/development/python-modules/font-v/default.nix b/pkgs/development/python-modules/font-v/default.nix
index 09ed7270ebd36..4f1a22a640d0a 100644
--- a/pkgs/development/python-modules/font-v/default.nix
+++ b/pkgs/development/python-modules/font-v/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fonttools
-, git
-, gitpython
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fonttools,
+  git,
+  gitpython,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -52,4 +53,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ danc86 ];
   };
 }
-
diff --git a/pkgs/development/python-modules/fontawesomefree/default.nix b/pkgs/development/python-modules/fontawesomefree/default.nix
index dea884ab0b30b..0c3e0123befd9 100644
--- a/pkgs/development/python-modules/fontawesomefree/default.nix
+++ b/pkgs/development/python-modules/fontawesomefree/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -16,14 +17,15 @@ buildPythonPackage rec {
     hash = "sha256-jexKLuN7+OUzeeu/DTjO/sTgbHySJ/Wa8527exYygXs=";
   };
 
-  pythonImportsCheck = [
-    "fontawesomefree"
-  ];
+  pythonImportsCheck = [ "fontawesomefree" ];
 
   meta = with lib; {
     homepage = "https://github.com/FortAwesome/Font-Awesome";
     description = "Icon library and toolkit";
-    license = with licenses; [ ofl cc-by-40 ];
+    license = with licenses; [
+      ofl
+      cc-by-40
+    ];
     maintainers = with maintainers; [ netali ];
   };
 }
diff --git a/pkgs/development/python-modules/fontbakery/default.nix b/pkgs/development/python-modules/fontbakery/default.nix
index 7ac5f86b1ee2a..5d0f5d6dcaefc 100644
--- a/pkgs/development/python-modules/fontbakery/default.nix
+++ b/pkgs/development/python-modules/fontbakery/default.nix
@@ -1,57 +1,56 @@
-{ lib
-, buildPythonPackage
-, callPackage
-, fetchpatch
-, fetchPypi
-, axisregistry
-, babelfont
-, beautifulsoup4
-, beziers
-, cmarkgfm
-, collidoscope
-, defcon
-, dehinter
-, fonttools
-, font-v
-, freetype-py
-, gflanguages
-, gfsubsets
-, git
-, glyphsets
-, lxml
-, installShellFiles
-, jinja2
-, munkres
-, opentypespec
-, ots-python
-, packaging
-, pip-api
-, protobuf
-, pytestCheckHook
-, pytest-xdist
-, pythonRelaxDepsHook
-, pyyaml
-, requests
-, requests-mock
-, rich
-, setuptools
-, setuptools-scm
-, shaperglot
-, stringbrewer
-, toml
-, unicodedata2
-, ufo2ft
-, ufolint
-, vharfbuzz
+{
+  lib,
+  buildPythonPackage,
+  callPackage,
+  fetchPypi,
+  axisregistry,
+  babelfont,
+  beautifulsoup4,
+  beziers,
+  cmarkgfm,
+  collidoscope,
+  defcon,
+  dehinter,
+  fonttools,
+  font-v,
+  freetype-py,
+  gflanguages,
+  gfsubsets,
+  git,
+  glyphsets,
+  lxml,
+  installShellFiles,
+  jinja2,
+  munkres,
+  opentypespec,
+  ots-python,
+  packaging,
+  pip-api,
+  protobuf,
+  pytestCheckHook,
+  pytest-xdist,
+  pyyaml,
+  requests,
+  requests-mock,
+  rich,
+  setuptools,
+  setuptools-scm,
+  shaperglot,
+  stringbrewer,
+  toml,
+  unicodedata2,
+  ufo2ft,
+  ufolint,
+  vharfbuzz,
 }:
 
 buildPythonPackage rec {
   pname = "fontbakery";
-  version = "0.12.2";
+  version = "0.12.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-sHkTxu8TdPXbUZvpJH46SF8U4JNIzfFb5HJEXCqomOI=";
+    hash = "sha256-7cZeazEyAyU+WDop2n7wneg2wzh+9U9atKSRcreJpGw=";
   };
 
   pyproject = true;
@@ -96,7 +95,6 @@ buildPythonPackage rec {
   ];
   nativeBuildInputs = [
     installShellFiles
-    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = [
@@ -151,4 +149,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ danc86 ];
   };
 }
-
diff --git a/pkgs/development/python-modules/fontbakery/tests.nix b/pkgs/development/python-modules/fontbakery/tests.nix
index 4725b1fee3e31..5fdebb6f3aa80 100644
--- a/pkgs/development/python-modules/fontbakery/tests.nix
+++ b/pkgs/development/python-modules/fontbakery/tests.nix
@@ -1,6 +1,4 @@
-{ runCommand
-, fontbakery
-}:
+{ runCommand, fontbakery }:
 
 let
   inherit (fontbakery) pname version src;
@@ -10,13 +8,10 @@ runCommand "${pname}-tests" { meta.timeout = 5; } ''
   # Check the version matches what we packaged.
   ${fontbakery}/bin/fontbakery --version | grep -q "${version}"
 
-  # Can it list its own subcommands?
-  ${fontbakery}/bin/fontbakery --list-subcommands >>$out
-
   # Unpack src to get some test fonts.
   tar -xzf ${src} --strip-components=1 ${pname}-${version}/data/test
 
   # Run some font checks.
-  ${fontbakery}/bin/fontbakery check-ufo-sources --no-progress --no-colors data/test/test.ufo >>$out
+  ${fontbakery}/bin/fontbakery check-ufo --no-progress --no-colors data/test/test.ufo >>$out
   # TODO add more
 ''
diff --git a/pkgs/development/python-modules/fontfeatures/default.nix b/pkgs/development/python-modules/fontfeatures/default.nix
index 17ea4ec4813cd..b6a4482b4ba40 100644
--- a/pkgs/development/python-modules/fontfeatures/default.nix
+++ b/pkgs/development/python-modules/fontfeatures/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, beziers
-, fonttools
-, fs
-, glyphtools
-, lxml
-, pytestCheckHook
-, youseedee
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  beziers,
+  fonttools,
+  fs,
+  glyphtools,
+  lxml,
+  pytestCheckHook,
+  youseedee,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +32,7 @@ buildPythonPackage rec {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
   disabledTestPaths = [
     # These tests require babelfont but we have to leave it out and skip them
     # to break the cyclic dependency with babelfont.
diff --git a/pkgs/development/python-modules/fontmake/default.nix b/pkgs/development/python-modules/fontmake/default.nix
index d46083361e80a..2829e4f1242db 100644
--- a/pkgs/development/python-modules/fontmake/default.nix
+++ b/pkgs/development/python-modules/fontmake/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, glyphslib
-, setuptools-scm
-, ufo2ft
-, fonttools
-, fontmath
-, lxml
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  glyphslib,
+  setuptools-scm,
+  ufo2ft,
+  fonttools,
+  fontmath,
+  lxml,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "fontmake";
   version = "3.9.0";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/fontmath/default.nix b/pkgs/development/python-modules/fontmath/default.nix
index 81e70c51fee38..e37bdd0ade4d1 100644
--- a/pkgs/development/python-modules/fontmath/default.nix
+++ b/pkgs/development/python-modules/fontmath/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fonttools
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fonttools,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,20 +22,14 @@ buildPythonPackage rec {
     extension = "zip";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    fonttools
-  ];
+  propagatedBuildInputs = [ fonttools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A collection of objects that implement fast font, glyph, etc. math";
+    description = "Collection of objects that implement fast font, glyph, etc. math";
     homepage = "https://github.com/robotools/fontMath/";
     changelog = "https://github.com/robotools/fontMath/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/fontparts/default.nix b/pkgs/development/python-modules/fontparts/default.nix
index d543220c4b25d..d8eb655b49240 100644
--- a/pkgs/development/python-modules/fontparts/default.nix
+++ b/pkgs/development/python-modules/fontparts/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch2
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch2,
+  pythonOlder,
 
-# build-system
-, setuptools
-, setuptools-scm
+  # build-system
+  setuptools,
+  setuptools-scm,
 
-# dependencies
-, fonttools
-, defcon
-, fontmath
-, booleanoperations
+  # dependencies
+  fonttools,
+  defcon,
+  fontmath,
+  booleanoperations,
 
-# tests
-, python
+  # tests
+  python,
 }:
 
 buildPythonPackage rec {
@@ -46,16 +47,17 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    booleanoperations
-    defcon
-    fontmath
-    fonttools
-  ]
-  ++ defcon.optional-dependencies.pens
-  ++ fonttools.optional-dependencies.ufo
-  ++ fonttools.optional-dependencies.lxml
-  ++ fonttools.optional-dependencies.unicode;
+  propagatedBuildInputs =
+    [
+      booleanoperations
+      defcon
+      fontmath
+      fonttools
+    ]
+    ++ defcon.optional-dependencies.pens
+    ++ fonttools.optional-dependencies.ufo
+    ++ fonttools.optional-dependencies.lxml
+    ++ fonttools.optional-dependencies.unicode;
 
   checkPhase = ''
     runHook preCheck
@@ -64,7 +66,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "An API for interacting with the parts of fonts during the font development process.";
+    description = "API for interacting with the parts of fonts during the font development process";
     homepage = "https://github.com/robotools/fontParts";
     changelog = "https://github.com/robotools/fontParts/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/fontpens/default.nix b/pkgs/development/python-modules/fontpens/default.nix
index aaa1d119111c9..f7cd8e7de47da 100644
--- a/pkgs/development/python-modules/fontpens/default.nix
+++ b/pkgs/development/python-modules/fontpens/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, fonttools }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fonttools,
+}:
 
 buildPythonPackage rec {
   pname = "fontpens";
@@ -15,23 +20,25 @@ buildPythonPackage rec {
 
   # can't run normal tests due to circular dependency with fontParts
   doCheck = false;
-  pythonImportsCheck = [ "fontPens" ] ++ (builtins.map (s: "fontPens." + s) [
-    "angledMarginPen"
-    "digestPointPen"
-    "flattenPen"
-    "guessSmoothPointPen"
-    "marginPen"
-    "penTools"
-    "printPen"
-    "printPointPen"
-    "recordingPointPen"
-    "thresholdPen"
-    "thresholdPointPen"
-    "transformPointPen"
-  ]);
+  pythonImportsCheck =
+    [ "fontPens" ]
+    ++ (builtins.map (s: "fontPens." + s) [
+      "angledMarginPen"
+      "digestPointPen"
+      "flattenPen"
+      "guessSmoothPointPen"
+      "marginPen"
+      "penTools"
+      "printPen"
+      "printPointPen"
+      "recordingPointPen"
+      "thresholdPen"
+      "thresholdPointPen"
+      "transformPointPen"
+    ]);
 
   meta = with lib; {
-    description = "A collection of classes implementing the pen protocol for manipulating glyphs";
+    description = "Collection of classes implementing the pen protocol for manipulating glyphs";
     homepage = "https://github.com/robotools/fontPens";
     license = licenses.bsd3;
     maintainers = [ maintainers.sternenseemann ];
diff --git a/pkgs/development/python-modules/fonttools/default.nix b/pkgs/development/python-modules/fonttools/default.nix
index be573a627e99e..419124aea28c0 100644
--- a/pkgs/development/python-modules/fonttools/default.nix
+++ b/pkgs/development/python-modules/fonttools/default.nix
@@ -1,41 +1,42 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, isPyPy
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, fs
-, lxml
-, brotli
-, brotlicffi
-, zopfli
-, unicodedata2
-, lz4
-, scipy
-, munkres
-, pycairo
-, matplotlib
-, sympy
-, xattr
-, skia-pathops
-, uharfbuzz
-, pytest7CheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  isPyPy,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  fs,
+  lxml,
+  brotli,
+  brotlicffi,
+  zopfli,
+  unicodedata2,
+  lz4,
+  scipy,
+  munkres,
+  pycairo,
+  matplotlib,
+  sympy,
+  xattr,
+  skia-pathops,
+  uharfbuzz,
+  pytest7CheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "fonttools";
-  version = "4.49.0";
+  version = "4.53.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
-    owner  = pname;
-    repo   = pname;
+    owner = pname;
+    repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-8xQVuAnIS/mwYKwI+ow0YArIP8wFTKWGLZ+NCgIFYok=";
+    hash = "sha256-eWN5QcdiQIDfjn7Hrqk0f5jMaADpqNa/kExncjcWXFw=";
   };
 
   build-system = [
@@ -43,37 +44,49 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  optional-dependencies = let
-    extras = {
-      ufo = [ fs ];
-      lxml = [ lxml ];
-      woff = [ (if isPyPy then brotlicffi else brotli) zopfli ];
-      unicode = lib.optional (pythonOlder "3.11") unicodedata2;
-      graphite = [ lz4 ];
-      interpolatable = [ pycairo (if isPyPy then munkres else scipy) ];
-      plot = [ matplotlib ];
-      symfont = [ sympy ];
-      type1 = lib.optional stdenv.isDarwin xattr;
-      pathops = [ skia-pathops ];
-      repacker = [ uharfbuzz ];
-    };
-  in extras // {
-    all = lib.concatLists (lib.attrValues extras);
-  };
+  optional-dependencies =
+    let
+      extras = {
+        ufo = [ fs ];
+        lxml = [ lxml ];
+        woff = [
+          (if isPyPy then brotlicffi else brotli)
+          zopfli
+        ];
+        unicode = lib.optional (pythonOlder "3.11") unicodedata2;
+        graphite = [ lz4 ];
+        interpolatable = [
+          pycairo
+          (if isPyPy then munkres else scipy)
+        ];
+        plot = [ matplotlib ];
+        symfont = [ sympy ];
+        type1 = lib.optional stdenv.isDarwin xattr;
+        pathops = [ skia-pathops ];
+        repacker = [ uharfbuzz ];
+      };
+    in
+    extras // { all = lib.concatLists (lib.attrValues extras); };
 
-  nativeCheckInputs = [
-    # test suite fails with pytest>=8.0.1
-    # https://github.com/fonttools/fonttools/issues/3458
-    pytest7CheckHook
-  ] ++ lib.concatLists (lib.attrVals ([
-    "woff"
-    # "interpolatable" is not included because it only contains 2 tests at the time of writing but adds 270 extra dependencies
-    "ufo"
-  ] ++ lib.optionals (!skia-pathops.meta.broken) [
-    "pathops" # broken
-  ] ++ [
-    "repacker"
-  ]) optional-dependencies);
+  nativeCheckInputs =
+    [
+      # test suite fails with pytest>=8.0.1
+      # https://github.com/fonttools/fonttools/issues/3458
+      pytest7CheckHook
+    ]
+    ++ lib.concatLists (
+      lib.attrVals (
+        [
+          "woff"
+          # "interpolatable" is not included because it only contains 2 tests at the time of writing but adds 270 extra dependencies
+          "ufo"
+        ]
+        ++ lib.optionals (!skia-pathops.meta.broken) [
+          "pathops" # broken
+        ]
+        ++ [ "repacker" ]
+      ) optional-dependencies
+    );
 
   pythonImportsCheck = [ "fontTools" ];
 
@@ -105,7 +118,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/fonttools/fonttools";
-    description = "A library to manipulate font files from Python";
+    description = "Library to manipulate font files from Python";
     changelog = "https://github.com/fonttools/fonttools/blob/${version}/NEWS.rst";
     license = licenses.mit;
     maintainers = [ maintainers.sternenseemann ];
diff --git a/pkgs/development/python-modules/foobot-async/default.nix b/pkgs/development/python-modules/foobot-async/default.nix
index 50029f232a1c2..895bccb33137b 100644
--- a/pkgs/development/python-modules/foobot-async/default.nix
+++ b/pkgs/development/python-modules/foobot-async/default.nix
@@ -1,27 +1,31 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, aiohttp
-, async-timeout
-, aioresponses
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  aiohttp,
+  async-timeout,
+  aioresponses,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "foobot-async";
   version = "1.0.0";
-  format = "setuptools";
+  pyproject = true;
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     pname = "foobot_async";
     inherit version;
-    sha256 = "fa557a22de925139cb4a21034ffdbcd01d28bf166c0e680eaf84a99206327f40";
+    hash = "sha256-+lV6It6SUTnLSiEDT/280B0ovxZsDmgOr4SpkgYyf0A=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     aiohttp
     async-timeout
   ];
diff --git a/pkgs/development/python-modules/foolscap/default.nix b/pkgs/development/python-modules/foolscap/default.nix
index 2da82762195bc..5db308aa20cd5 100644
--- a/pkgs/development/python-modules/foolscap/default.nix
+++ b/pkgs/development/python-modules/foolscap/default.nix
@@ -1,31 +1,42 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mock
-, pyopenssl
-, pytestCheckHook
-, pythonOlder
-, service-identity
-, six
-, twisted
-, txi2p-tahoe
-, txtorcon
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  mock,
+  pyopenssl,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  six,
+  twisted,
+  txi2p-tahoe,
+  txtorcon,
+  versioneer,
 }:
 
 buildPythonPackage rec {
   pname = "foolscap";
   version = "23.3.0";
 
-  disabled = pythonOlder "3.7";
+  pyproject = true;
+  build-system = [
+    setuptools
+    versioneer
+  ];
 
-  format = "setuptools";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-Vu7oXC1brsgBwr2q59TAgx8j1AFRbi5mjRNIWZTbkUU=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    # Remove vendorized versioneer.py
+    rm versioneer.py
+  '';
+
+  dependencies = [
     six
     twisted
     pyopenssl
diff --git a/pkgs/development/python-modules/forbiddenfruit/default.nix b/pkgs/development/python-modules/forbiddenfruit/default.nix
index 838dc60d0db0a..178f97c0f3d61 100644
--- a/pkgs/development/python-modules/forbiddenfruit/default.nix
+++ b/pkgs/development/python-modules/forbiddenfruit/default.nix
@@ -1,37 +1,49 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pynose,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   version = "0.1.4";
-  format = "setuptools";
   pname = "forbiddenfruit";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "clarete";
     repo = "forbiddenfruit";
-    rev = version;
-    sha256 = "16chhrxbbmg6lfbzm532fq0v00z8qihcsj0kg2b5jlgnb6qijwn8";
+    rev = "refs/tags/${version}";
+    hash = "sha256-yHIZsVn2UVmWeBNIzWDE6AOwAXZilPqXo+bVtXqGkJk=";
   };
 
-  nativeCheckInputs = [ nose ];
+  build-system = [ setuptools ];
 
-  preBuild = ''
-    export FFRUIT_EXTENSION="true";
-  '';
+  env.FFRUIT_EXTENSION = "true";
+
+  pythonImportsCheck = [ "forbiddenfruit" ];
+
+  nativeCheckInputs = [ pynose ];
 
   # https://github.com/clarete/forbiddenfruit/pull/47 required to switch to pytest
   checkPhase = ''
+    runHook preCheck
+
     find ./build -name '*.so' -exec mv {} tests/unit \;
     nosetests
+
+    runHook postCheck
   '';
 
   meta = with lib; {
     description = "Patch python built-in objects";
     homepage = "https://github.com/clarete/forbiddenfruit";
-    license = licenses.mit;
+    changelog = "https://github.com/clarete/forbiddenfruit/releases/tag/${version}";
+    license = with licenses; [
+      mit
+      gpl3Plus
+    ];
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/fordpass/default.nix b/pkgs/development/python-modules/fordpass/default.nix
index 3ddef9d172c37..0a7d9f68e6ec3 100644
--- a/pkgs/development/python-modules/fordpass/default.nix
+++ b/pkgs/development/python-modules/fordpass/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, requests
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  requests,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "0i1dlswxc2bv1smc5d4r1adbxbl7sgr1swh2cjfajp73vs43xa0m";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/forecast-solar/default.nix b/pkgs/development/python-modules/forecast-solar/default.nix
index 4e329a100c8e4..8543662edbd74 100644
--- a/pkgs/development/python-modules/forecast-solar/default.nix
+++ b/pkgs/development/python-modules/forecast-solar/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pythonOlder
-, aiodns
-, aiohttp
-, backports-zoneinfo
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pythonOlder,
+  aiodns,
+  aiohttp,
+  backports-zoneinfo,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,24 +22,18 @@ buildPythonPackage rec {
     hash = "sha256-iol0XtfPZI95o/uEyBcXgeQjcfl2kI+4mugtywa6BXI=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   env.PACKAGE_VERSION = version;
 
   dependencies = [
     aiodns
     aiohttp
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    backports-zoneinfo
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ backports-zoneinfo ];
 
   pythonImportsCheck = [ "forecast_solar" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     changelog = "https://github.com/home-assistant-libs/forecast_solar/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/formbox/default.nix b/pkgs/development/python-modules/formbox/default.nix
index 7f825cb251e35..f3f1ce44febb9 100644
--- a/pkgs/development/python-modules/formbox/default.nix
+++ b/pkgs/development/python-modules/formbox/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, pythonOlder, fetchzip, flit-core, mistune, nh3 }:
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchzip,
+  flit-core,
+  mistune,
+  nh3,
+}:
 
 buildPythonPackage rec {
   pname = "formbox";
@@ -12,12 +20,15 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [ flit-core ];
-  propagatedBuildInputs = [ mistune nh3 ];
+  propagatedBuildInputs = [
+    mistune
+    nh3
+  ];
   doCheck = false; # there's no test
   pythonImportsCheck = [ "formbox" ];
 
   meta = with lib; {
-    description = "A script to format mbox as HTML/XML";
+    description = "Script to format mbox as HTML/XML";
     mainProgram = "formbox";
     homepage = "https://trong.loang.net/~cnx/formbox";
     license = licenses.agpl3Plus;
diff --git a/pkgs/development/python-modules/formencode/default.nix b/pkgs/development/python-modules/formencode/default.nix
index 9cccd8d9f39bb..b6be8e6158f6d 100644
--- a/pkgs/development/python-modules/formencode/default.nix
+++ b/pkgs/development/python-modules/formencode/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, isPy27
-, fetchPypi
-, setuptools-scm
-, six
-, dnspython
-, pycountry
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  isPy27,
+  fetchPypi,
+  setuptools-scm,
+  six,
+  dnspython,
+  pycountry,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/formulae/default.nix b/pkgs/development/python-modules/formulae/default.nix
index 02dcfd0fbd6e1..526be820c131b 100644
--- a/pkgs/development/python-modules/formulae/default.nix
+++ b/pkgs/development/python-modules/formulae/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, numpy
-, pandas
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  numpy,
+  pandas,
+  scipy,
 }:
 
 buildPythonPackage rec {
@@ -37,7 +38,10 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ pytestCheckHook ];
   # use assertions of form `assert pytest.approx(...)`, which is now disallowed:
-  disabledTests = [ "test_basic" "test_degree" ];
+  disabledTests = [
+    "test_basic"
+    "test_degree"
+  ];
   pythonImportsCheck = [
     "formulae"
     "formulae.matrices"
diff --git a/pkgs/development/python-modules/formulaic/default.nix b/pkgs/development/python-modules/formulaic/default.nix
index bf448a42c95bc..ae9ccc02c36c9 100644
--- a/pkgs/development/python-modules/formulaic/default.nix
+++ b/pkgs/development/python-modules/formulaic/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, astor
-, buildPythonPackage
-, fetchFromGitHub
-, git
-, hatch-vcs
-, hatchling
-, interface-meta
-, numpy
-, pandas
-, pytestCheckHook
-, pythonOlder
-, scipy
-, sympy
-, typing-extensions
-, wrapt
+{
+  lib,
+  astor,
+  buildPythonPackage,
+  fetchFromGitHub,
+  git,
+  hatch-vcs,
+  hatchling,
+  interface-meta,
+  numpy,
+  pandas,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
+  sympy,
+  typing-extensions,
+  wrapt,
 }:
 
 buildPythonPackage rec {
@@ -48,17 +49,11 @@ buildPythonPackage rec {
     sympy
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "formulaic"
-  ];
+  pythonImportsCheck = [ "formulaic" ];
 
-  disabledTestPaths = [
-    "tests/transforms/test_poly.py"
-  ];
+  disabledTestPaths = [ "tests/transforms/test_poly.py" ];
 
   meta = with lib; {
     description = "High-performance implementation of Wilkinson formulas";
diff --git a/pkgs/development/python-modules/fortiosapi/default.nix b/pkgs/development/python-modules/fortiosapi/default.nix
index 5b6bce687ea3f..233ebce089dee 100644
--- a/pkgs/development/python-modules/fortiosapi/default.nix
+++ b/pkgs/development/python-modules/fortiosapi/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, oyaml
-, packaging
-, paramiko
-, pexpect
-, pythonOlder
-, requests
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  oyaml,
+  packaging,
+  paramiko,
+  pexpect,
+  pythonOlder,
+  requests,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
   # Tests require a local VM
   doCheck = false;
 
-  pythonImportsCheck = [
-    "fortiosapi"
-  ];
+  pythonImportsCheck = [ "fortiosapi" ];
 
   meta = with lib; {
     description = "Python module to work with Fortigate/Fortios devices";
diff --git a/pkgs/development/python-modules/fountains/default.nix b/pkgs/development/python-modules/fountains/default.nix
index d6efde228fbdc..8a5e4e923dfe6 100644
--- a/pkgs/development/python-modules/fountains/default.nix
+++ b/pkgs/development/python-modules/fountains/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, wheel
-, bitlist
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  wheel,
+  bitlist,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,16 +25,12 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    bitlist
-  ];
+  propagatedBuildInputs = [ bitlist ];
 
   # Module has no test
   doCheck = false;
 
-  pythonImportsCheck = [
-    "fountains"
-  ];
+  pythonImportsCheck = [ "fountains" ];
 
   meta = with lib; {
     description = "Python library for generating and embedding data for unit testing";
diff --git a/pkgs/development/python-modules/foxdot/default.nix b/pkgs/development/python-modules/foxdot/default.nix
index faa6bedd47998..af7edb24ae95b 100644
--- a/pkgs/development/python-modules/foxdot/default.nix
+++ b/pkgs/development/python-modules/foxdot/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, tkinter
-, supercollider
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  tkinter,
+  supercollider,
 }:
 
 buildPythonPackage rec {
@@ -16,7 +17,8 @@ buildPythonPackage rec {
     sha256 = "528999da55ad630e540a39c0eaeacd19c58c36f49d65d24ea9704d0781e18c90";
   };
 
-  propagatedBuildInputs = [ tkinter ]
+  propagatedBuildInputs =
+    [ tkinter ]
     # we currently build SuperCollider only on Linux
     # but FoxDot is totally usable on macOS with the official SuperCollider binary
     ++ lib.optionals stdenv.isLinux [ supercollider ];
diff --git a/pkgs/development/python-modules/fpdf/default.nix b/pkgs/development/python-modules/fpdf/default.nix
index 091757160e163..4ceac163a46ed 100644
--- a/pkgs/development/python-modules/fpdf/default.nix
+++ b/pkgs/development/python-modules/fpdf/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "fpdf";
diff --git a/pkgs/development/python-modules/fpdf2/default.nix b/pkgs/development/python-modules/fpdf2/default.nix
index fdd43f1ca5c84..2cd654ded25ae 100644
--- a/pkgs/development/python-modules/fpdf2/default.nix
+++ b/pkgs/development/python-modules/fpdf2/default.nix
@@ -1,30 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-, setuptools
+  setuptools,
 
-, defusedxml
-, pillow
-, fonttools
+  defusedxml,
+  pillow,
+  fonttools,
 
-, pytestCheckHook
-, qrcode
-, camelot
-, uharfbuzz
-, lxml
+  pytestCheckHook,
+  qrcode,
+  camelot,
+  uharfbuzz,
+  lxml,
 }:
 
 buildPythonPackage rec {
   pname = "fpdf2";
-  version = "2.7.8";
+  version = "2.7.9";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "py-pdf";
     repo = "fpdf2";
     rev = "refs/tags/${version}";
-    hash = "sha256-6aedXr8Yhes1aYIslBvw2HzRc4BwYDIiGJvEdp1tFSc=";
+    hash = "sha256-8CuK8ZFn4msOSNIdgOFjD3ygVeiBUw4/Bc3w1J6Kn9U=";
   };
 
   postPatch = ''
@@ -57,6 +58,9 @@ buildPythonPackage rec {
     "test_png_url" # tries to download file
     "test_page_background" # tries to download file
     "test_share_images_cache" # uses timing functions
+    "test_bidi_character" # tries to download file
+    "test_bidi_conformance" # tries to download file
+    "test_insert_jpg_jpxdecode" # JPEG2000 is broken
   ];
 
   meta = {
diff --git a/pkgs/development/python-modules/fpylll/default.nix b/pkgs/development/python-modules/fpylll/default.nix
index 95358d5f4aaf9..c1fcae710db87 100644
--- a/pkgs/development/python-modules/fpylll/default.nix
+++ b/pkgs/development/python-modules/fpylll/default.nix
@@ -1,22 +1,26 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, fetchpatch
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  fetchpatch,
 
-# build-system
-, cysignals
-, cython
-, pkgconfig
-, setuptools
+  # build-system
+  cysignals,
+  cython,
+  pkgconfig,
+  setuptools,
 
-, gmp
-, pari
-, mpfr
-, fplll
-, numpy
+  gmp,
+  pari,
+  mpfr,
+  fplll,
+  numpy,
 
-# tests
-, pytestCheckHook
+  # Reverse dependency
+  sage,
+
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -56,13 +60,9 @@ buildPythonPackage rec {
     fplll
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     # Since upstream introduced --doctest-modules in
@@ -72,8 +72,12 @@ buildPythonPackage rec {
     export PY_IGNORE_IMPORTMISMATCH=1
   '';
 
+  passthru.tests = {
+    inherit sage;
+  };
+
   meta = with lib; {
-    description = "A Python interface for fplll";
+    description = "Python interface for fplll";
     changelog = "https://github.com/fplll/fpylll/releases/tag/${version}";
     homepage = "https://github.com/fplll/fpylll";
     maintainers = teams.sage.members;
diff --git a/pkgs/development/python-modules/fpyutils/default.nix b/pkgs/development/python-modules/fpyutils/default.nix
index a81067e1ffb3b..7b867da840c6b 100644
--- a/pkgs/development/python-modules/fpyutils/default.nix
+++ b/pkgs/development/python-modules/fpyutils/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, atomicwrites
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  atomicwrites,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,31 +23,23 @@ buildPythonPackage rec {
     hash = "sha256-VVR1zsejO6kHlMjqqlftDKu3/SyDzgPov9f48HYL/Bk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     atomicwrites
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "fpyutils/tests/*.py"
-  ];
+  pytestFlagsArray = [ "fpyutils/tests/*.py" ];
 
   disabledTests = [
     # Don't run test which requires bash
     "test_execute_command_live_output"
   ];
 
-  pythonImportsCheck = [
-    "fpyutils"
-  ];
+  pythonImportsCheck = [ "fpyutils" ];
 
   meta = with lib; {
     description = "Collection of useful non-standard Python functions";
diff --git a/pkgs/development/python-modules/fqdn/default.nix b/pkgs/development/python-modules/fqdn/default.nix
index 2b7182569b299..dd8f5b8d8ca8a 100644
--- a/pkgs/development/python-modules/fqdn/default.nix
+++ b/pkgs/development/python-modules/fqdn/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-T0CdWWr8p3JVhp3nol5hyxsrD3951JE2EDpFt+m+3bE=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "fqdn"
-  ];
+  pythonImportsCheck = [ "fqdn" ];
 
   meta = with lib; {
     description = "RFC-compliant FQDN validation and manipulation";
diff --git a/pkgs/development/python-modules/freebox-api/default.nix b/pkgs/development/python-modules/freebox-api/default.nix
index cb56a789dedab..ec5df36417374 100644
--- a/pkgs/development/python-modules/freebox-api/default.nix
+++ b/pkgs/development/python-modules/freebox-api/default.nix
@@ -1,12 +1,12 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, urllib3
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -25,25 +25,18 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "urllib3"
-  ];
+  pythonRelaxDeps = [ "urllib3" ];
 
   propagatedBuildInputs = [
     aiohttp
     urllib3
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "freebox_api"
-  ];
+  pythonImportsCheck = [ "freebox_api" ];
 
   meta = with lib; {
     description = "Python module to interact with the Freebox OS API";
diff --git a/pkgs/development/python-modules/freetype-py/default.nix b/pkgs/development/python-modules/freetype-py/default.nix
index 172225968218a..5ec8f6c1b0ffc 100644
--- a/pkgs/development/python-modules/freetype-py/default.nix
+++ b/pkgs/development/python-modules/freetype-py/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, substituteAll
-, setuptools-scm
-, freetype
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  substituteAll,
+  setuptools-scm,
+  freetype,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -33,11 +34,9 @@ buildPythonPackage rec {
     cd tests
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck =  [ "freetype" ];
+  pythonImportsCheck = [ "freetype" ];
 
   meta = with lib; {
     homepage = "https://github.com/rougier/freetype-py";
diff --git a/pkgs/development/python-modules/freezegun/default.nix b/pkgs/development/python-modules/freezegun/default.nix
index 2279e70ada6a8..cc15733d053b6 100644
--- a/pkgs/development/python-modules/freezegun/default.nix
+++ b/pkgs/development/python-modules/freezegun/default.nix
@@ -1,40 +1,41 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  python-dateutil,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "freezegun";
-  version = "1.4.0";
+  version = "1.5.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-EJObC6D/Wtrs87BqXC9zBx2WeOUHxertsjx2HVasd0s=";
+    hash = "sha256-sp3t/NptXo4IPOcbK1QnU61Iz+xEA3s/x5cC4pgKiek=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    python-dateutil
-  ];
+  propagatedBuildInputs = [ python-dateutil ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "freezegun"
+  disabledTests = lib.optionals (pythonAtLeast "3.13") [
+    # https://github.com/spulec/freezegun/issues/547
+    "test_method_decorator_works_on_unittest_kwarg_frozen_time"
+    "test_method_decorator_works_on_unittest_kwarg_frozen_time_with_func"
+    "test_method_decorator_works_on_unittest_kwarg_hello"
   ];
 
+  pythonImportsCheck = [ "freezegun" ];
+
   meta = with lib; {
     description = "Library that allows your Python tests to travel through time";
     homepage = "https://github.com/spulec/freezegun";
diff --git a/pkgs/development/python-modules/frelatage/default.nix b/pkgs/development/python-modules/frelatage/default.nix
index 519e981b69998..1203cab94216d 100644
--- a/pkgs/development/python-modules/frelatage/default.nix
+++ b/pkgs/development/python-modules/frelatage/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, timeout-decorator
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  timeout-decorator,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-eHVqp6govBV9FvSQyaZuEEImHQRs/mbLaW86RCvtDbM=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     numpy
     timeout-decorator
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "frelatage"
-  ];
+  pythonImportsCheck = [ "frelatage" ];
 
   meta = with lib; {
     description = "Greybox and Coverage-based library to fuzz Python applications";
diff --git a/pkgs/development/python-modules/freud/default.nix b/pkgs/development/python-modules/freud/default.nix
new file mode 100644
index 0000000000000..49a25ed500e36
--- /dev/null
+++ b/pkgs/development/python-modules/freud/default.nix
@@ -0,0 +1,90 @@
+{ lib
+, stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, cmake
+, cython
+, oldest-supported-numpy
+, scikit-build
+, setuptools
+, tbb
+, numpy
+, rowan
+, scipy
+, pytest
+, gsd
+, matplotlib
+, sympy
+}:
+
+buildPythonPackage rec {
+  pname = "freud";
+  version = "3.1.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "glotzerlab";
+    repo = "freud";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-jlscEHQ1q4oqxE06NhVWCOlPRcjDcJVrvy4h6iYrkz0=";
+    fetchSubmodules = true;
+  };
+  # Because we prefer to not `leaveDotGit`, we need to fool upstream into
+  # thinking we left the .git files in the submodules, so cmake won't think we
+  # didn't initialize them. Upstream doesn't support using the system wide
+  # installed version of these libraries, and it's probably aint's worth the
+  # hassle, because upstream also doesn't distribute all of these dependencies'
+  # libraries, and probably it uses only what it needs.
+  preConfigure = ''
+    touch extern/{voro++,fsph,Eigen}/.git
+  '';
+
+  nativeBuildInputs = [
+    cmake
+    cython
+    oldest-supported-numpy
+    scikit-build
+    setuptools
+  ];
+  dontUseCmakeConfigure = true;
+  buildInputs = [
+    tbb
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+    rowan
+    scipy
+  ];
+
+  nativeCheckInputs = [
+    # Encountering circular ImportError issues with pytestCheckHook, see also:
+    # https://github.com/NixOS/nixpkgs/issues/255262
+    pytest
+    gsd
+    matplotlib
+    sympy
+  ];
+  checkPhase = ''
+    runHook preCheck
+
+    pytest
+
+    runHook postCheck
+  '';
+  # Some tests fail on aarch64. If we could have used pytestCheckHook, we would
+  # have disabled only the tests that fail with the disabledTests attribute.
+  # But that is not possible unfortunately. See upstream report for the
+  # failure: https://github.com/glotzerlab/freud/issues/961
+  doCheck = !stdenv.isAarch64;
+
+  pythonImportsCheck = [ "freud" ];
+
+  meta = with lib; {
+    description = "Powerful, efficient particle trajectory analysis in scientific Python";
+    homepage = "https://github.com/glotzerlab/freud";
+    changelog = "https://github.com/glotzerlab/freud/blob/${src.rev}/ChangeLog.md";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/frida-python/default.nix b/pkgs/development/python-modules/frida-python/default.nix
index 144d88cc80b82..0ef08b77d371d 100644
--- a/pkgs/development/python-modules/frida-python/default.nix
+++ b/pkgs/development/python-modules/frida-python/default.nix
@@ -1,4 +1,11 @@
-{ lib, stdenv, fetchurl, fetchPypi, buildPythonPackage, typing-extensions }:
+{
+  lib,
+  stdenv,
+  fetchurl,
+  fetchPypi,
+  buildPythonPackage,
+  typing-extensions,
+}:
 let
   version = "16.0.19";
   format = "setuptools";
@@ -6,7 +13,8 @@ let
     url = "https://github.com/frida/frida/releases/download/${version}/frida-core-devkit-${version}-linux-x86_64.tar.xz";
     hash = "sha256-yNXNqv8eCbpdQKFShpAh6rUCEuItrOSNNLOjESimPdk=";
   };
-in buildPythonPackage rec {
+in
+buildPythonPackage rec {
   pname = "frida-python";
   inherit version;
 
@@ -28,7 +36,9 @@ in buildPythonPackage rec {
 
   pythonImportsCheck = [ "frida" ];
 
-  passthru = { inherit devkit; };
+  passthru = {
+    inherit devkit;
+  };
 
   meta = {
     description = "Dynamic instrumentation toolkit for developers, reverse-engineers, and security researchers (Python bindings)";
diff --git a/pkgs/development/python-modules/frigidaire/default.nix b/pkgs/development/python-modules/frigidaire/default.nix
index e33581ed0ac52..89140e97a432e 100644
--- a/pkgs/development/python-modules/frigidaire/default.nix
+++ b/pkgs/development/python-modules/frigidaire/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, certifi
-, chardet
-, fetchFromGitHub
-, idna
-, pythonOlder
-, requests
-, setuptools
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  certifi,
+  chardet,
+  fetchFromGitHub,
+  idna,
+  pythonOlder,
+  requests,
+  setuptools,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "frigidaire";
-  version = "0.18.16";
+  version = "0.18.19";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +22,7 @@ buildPythonPackage rec {
     owner = "bm1549";
     repo = "frigidaire";
     rev = "refs/tags/${version}";
-    hash = "sha256-PQrQM9AuudDmmsmMcZJjBm+rLA/juDgr3+SORuVurqQ=";
+    hash = "sha256-wbYijFiMk+EIAjD6+mKt/c6JwN9oQLfeL1Pk30RbKKs=";
   };
 
   postPatch = ''
@@ -29,9 +30,7 @@ buildPythonPackage rec {
       --replace-warn 'version = "SNAPSHOT"' 'version = "${version}"'
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     certifi
@@ -44,9 +43,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "frigidaire"
-  ];
+  pythonImportsCheck = [ "frigidaire" ];
 
   meta = with lib; {
     description = "Python API for the Frigidaire devices";
diff --git a/pkgs/development/python-modules/frilouz/default.nix b/pkgs/development/python-modules/frilouz/default.nix
index 3f5ea414129fd..962c0bc458849 100644
--- a/pkgs/development/python-modules/frilouz/default.nix
+++ b/pkgs/development/python-modules/frilouz/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, astunparse
-, buildPythonPackage
-, fetchFromGitHub
-, isPy3k
+{
+  lib,
+  astunparse,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/fritzconnection/default.nix b/pkgs/development/python-modules/fritzconnection/default.nix
index 36d4dbd5b1923..4ed60bd8a704f 100644
--- a/pkgs/development/python-modules/fritzconnection/default.nix
+++ b/pkgs/development/python-modules/fritzconnection/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pytestCheckHook
-, requests
-, segno
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pytestCheckHook,
+  requests,
+  segno,
 }:
 
 buildPythonPackage rec {
@@ -21,27 +22,19 @@ buildPythonPackage rec {
     hash = "sha256-nWXtXhF2pUBxHdrivi4DA7+bFiZPyxb2nqsiN3j4HdI=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   passthru.optional-dependencies = {
-    qr = [
-      segno
-    ];
+    qr = [ segno ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export HOME=$TEMP
   '';
 
-  pythonImportsCheck = [
-    "fritzconnection"
-  ];
+  pythonImportsCheck = [ "fritzconnection" ];
 
   disabledTestPaths = [
     # Functional tests require network access
@@ -53,6 +46,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/kbr/fritzconnection";
     changelog = "https://fritzconnection.readthedocs.io/en/${version}/sources/version_history.html";
     license = licenses.mit;
-    maintainers = with maintainers; [ dotlambda valodim ];
+    maintainers = with maintainers; [
+      dotlambda
+      valodim
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/frozendict/default.nix b/pkgs/development/python-modules/frozendict/default.nix
index 5405e570ed8dc..fa2441e82923c 100644
--- a/pkgs/development/python-modules/frozendict/default.nix
+++ b/pkgs/development/python-modules/frozendict/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "frozendict";
-  version = "2.4.2";
+  version = "2.4.4";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -18,7 +19,7 @@ buildPythonPackage rec {
     owner = "Marco-Sulla";
     repo = "python-frozendict";
     rev = "refs/tags/v${version}";
-    hash = "sha256-SXUPzFDVw8+CmD/Jxm/EB70UBdOmauQs69hNr0l3l90=";
+    hash = "sha256-TgXhffUvx74fU2SgDV04R1yS9xGbiP/ksQ+3KGT5bdQ=";
   };
 
   # build C version if it exists
@@ -33,17 +34,11 @@ buildPythonPackage rec {
     fi
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "frozendict"
-  ];
+  pythonImportsCheck = [ "frozendict" ];
 
   meta = with lib; {
     description = "Module for immutable dictionary";
diff --git a/pkgs/development/python-modules/frozenlist/default.nix b/pkgs/development/python-modules/frozenlist/default.nix
index 73860b6f79ff1..c4c4613163ed0 100644
--- a/pkgs/development/python-modules/frozenlist/default.nix
+++ b/pkgs/development/python-modules/frozenlist/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, cython
-, expandvars
-, fetchFromGitHub
-, pep517
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  expandvars,
+  fetchFromGitHub,
+  pep517,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -36,17 +37,13 @@ buildPythonPackage rec {
     wheel
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preBuild = ''
     cython frozenlist/_frozenlist.pyx
   '';
 
-  pythonImportsCheck = [
-    "frozenlist"
-  ];
+  pythonImportsCheck = [ "frozenlist" ];
 
   meta = with lib; {
     description = "Python module for list-like structure";
diff --git a/pkgs/development/python-modules/frozenlist2/default.nix b/pkgs/development/python-modules/frozenlist2/default.nix
index 2cbac731c577e..ca7ab067ea064 100644
--- a/pkgs/development/python-modules/frozenlist2/default.nix
+++ b/pkgs/development/python-modules/frozenlist2/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, setuptools
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,14 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-fF0oFZ2q1wRH7IKBlCjm3Za4xtEMSHyEaGL09rHgtTY=";
   };
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  propagatedBuildInputs = [ setuptools ];
 
   pythonImportsCheck = [ "frozenlist2" ];
 
   meta = with lib; {
-    description = "An immutable list for Python";
+    description = "Immutable list for Python";
     homepage = "https://github.com/rohanpm/frozenlist2";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ t4ccer ];
diff --git a/pkgs/development/python-modules/fs-s3fs/default.nix b/pkgs/development/python-modules/fs-s3fs/default.nix
index 9310e46e82d45..5913bb656e8a1 100644
--- a/pkgs/development/python-modules/fs-s3fs/default.nix
+++ b/pkgs/development/python-modules/fs-s3fs/default.nix
@@ -1,4 +1,11 @@
-{ buildPythonPackage, fetchPypi, lib, fs, six, boto3 }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  fs,
+  six,
+  boto3,
+}:
 
 buildPythonPackage rec {
   pname = "fs-s3fs";
@@ -10,7 +17,11 @@ buildPythonPackage rec {
     sha256 = "b57f8c7664460ff7b451b4b44ca2ea9623a374d74e1284c2d5e6df499dc7976c";
   };
 
-  propagatedBuildInputs = [ fs six boto3 ];
+  propagatedBuildInputs = [
+    fs
+    six
+    boto3
+  ];
 
   # tests try to integrate an s3 bucket which can't be tested properly in an isolated environment.
   doCheck = false;
diff --git a/pkgs/development/python-modules/fs/default.nix b/pkgs/development/python-modules/fs/default.nix
index da03c963bd754..5941243645ef1 100644
--- a/pkgs/development/python-modules/fs/default.nix
+++ b/pkgs/development/python-modules/fs/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, glibcLocales
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, six
-, appdirs
-, scandir ? null
-, backports_os ? null
-, typing ? null
-, pytz
-, enum34
-, pyftpdlib
-, psutil
-, mock
-, pythonAtLeast
-, isPy3k
-, pytestCheckHook
-, stdenv
+{
+  lib,
+  glibcLocales,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  six,
+  appdirs,
+  scandir ? null,
+  backports_os ? null,
+  typing ? null,
+  pytz,
+  enum34,
+  pyftpdlib,
+  psutil,
+  mock,
+  pythonAtLeast,
+  isPy3k,
+  pytestCheckHook,
+  stdenv,
 }:
 
 buildPythonPackage rec {
@@ -33,14 +34,25 @@ buildPythonPackage rec {
 
   # strong cycle with parameterized
   doCheck = false;
-  nativeCheckInputs = [ pyftpdlib mock psutil pytestCheckHook ];
-  propagatedBuildInputs = [ six appdirs pytz setuptools ]
+  nativeCheckInputs = [
+    pyftpdlib
+    mock
+    psutil
+    pytestCheckHook
+  ];
+  propagatedBuildInputs =
+    [
+      six
+      appdirs
+      pytz
+      setuptools
+    ]
     ++ lib.optionals (!isPy3k) [ backports_os ]
     ++ lib.optionals (!pythonAtLeast "3.6") [ typing ]
     ++ lib.optionals (!pythonAtLeast "3.5") [ scandir ]
     ++ lib.optionals (!pythonAtLeast "3.5") [ enum34 ];
 
-  LC_ALL="en_US.utf-8";
+  LC_ALL = "en_US.utf-8";
 
   preCheck = ''
     HOME=$(mktemp -d)
@@ -48,24 +60,25 @@ buildPythonPackage rec {
 
   pytestFlagsArray = [ "--ignore=tests/test_opener.py" ];
 
-  disabledTests = [
-    "user_data_repr"
-  ] ++ lib.optionals (stdenv.isDarwin) [ # remove if https://github.com/PyFilesystem/pyfilesystem2/issues/430#issue-707878112 resolved
-    "test_ftpfs"
-  ] ++ lib.optionals (pythonAtLeast "3.9") [
-    # update friend version of this commit: https://github.com/PyFilesystem/pyfilesystem2/commit/3e02968ce7da7099dd19167815c5628293e00040
-    # merged into master, able to be removed after >2.4.1
-    "test_copy_sendfile"
-  ];
+  disabledTests =
+    [ "user_data_repr" ]
+    ++ lib.optionals (stdenv.isDarwin) [
+      # remove if https://github.com/PyFilesystem/pyfilesystem2/issues/430#issue-707878112 resolved
+      "test_ftpfs"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.9") [
+      # update friend version of this commit: https://github.com/PyFilesystem/pyfilesystem2/commit/3e02968ce7da7099dd19167815c5628293e00040
+      # merged into master, able to be removed after >2.4.1
+      "test_copy_sendfile"
+    ];
 
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
     description = "Filesystem abstraction";
-    homepage    = "https://github.com/PyFilesystem/pyfilesystem2";
-    license     = licenses.bsd3;
+    homepage = "https://github.com/PyFilesystem/pyfilesystem2";
+    license = licenses.bsd3;
     maintainers = with maintainers; [ lovek323 ];
-    platforms   = platforms.unix;
+    platforms = platforms.unix;
   };
-
 }
diff --git a/pkgs/development/python-modules/fschat/default.nix b/pkgs/development/python-modules/fschat/default.nix
index 5f9c4b3532b48..d086073f1a4d0 100644
--- a/pkgs/development/python-modules/fschat/default.nix
+++ b/pkgs/development/python-modules/fschat/default.nix
@@ -1,32 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, aiohttp
-, fastapi
-, httpx
-, markdown2
-, nh3
-, numpy
-, prompt-toolkit
-, pydantic
-, requests
-, rich
-, shortuuid
-, tiktoken
-, uvicorn
-, anthropic
-, openai
-, ray
-, wandb
-, einops
-, gradio
-, accelerate
-, peft
-, sentencepiece
-, torch
-, transformers
-, protobuf
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  aiohttp,
+  fastapi,
+  httpx,
+  markdown2,
+  nh3,
+  numpy,
+  prompt-toolkit,
+  pydantic,
+  requests,
+  rich,
+  shortuuid,
+  tiktoken,
+  uvicorn,
+  anthropic,
+  openai,
+  ray,
+  wandb,
+  einops,
+  gradio,
+  accelerate,
+  peft,
+  sentencepiece,
+  torch,
+  transformers,
+  protobuf,
 }:
 let
   version = "0.2.36";
@@ -43,9 +44,7 @@ buildPythonPackage {
     hash = "sha256-tQuvQXzQbQjU16DfS1o55VHW6eklngEvIigzZGgrKB8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -61,7 +60,7 @@ buildPythonPackage {
     shortuuid
     tiktoken
     uvicorn
-  # ] ++ markdown2.optional-dependencies.all;
+    # ] ++ markdown2.optional-dependencies.all;
   ];
 
   passthru.optional-dependencies = {
@@ -75,9 +74,7 @@ buildPythonPackage {
       wandb
       einops
     ];
-    webui = [
-      gradio
-    ];
+    webui = [ gradio ];
     model_worker = [
       accelerate
       peft
@@ -94,7 +91,7 @@ buildPythonPackage {
   doCheck = false;
 
   meta = with lib; {
-    description = "An open platform for training, serving, and evaluating large language models. Release repo for Vicuna and Chatbot Arena";
+    description = "Open platform for training, serving, and evaluating large language models. Release repo for Vicuna and Chatbot Arena";
     homepage = "https://github.com/lm-sys/FastChat";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/development/python-modules/fsspec-xrootd/default.nix b/pkgs/development/python-modules/fsspec-xrootd/default.nix
index d2d72257100eb..9876b51a4ec6a 100644
--- a/pkgs/development/python-modules/fsspec-xrootd/default.nix
+++ b/pkgs/development/python-modules/fsspec-xrootd/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, fsspec
-, xrootd
-, pkgs
-, pytestCheckHook
-, stdenv
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  fsspec,
+  xrootd,
+  pkgs,
+  pytestCheckHook,
+  stdenv,
 }:
 
 buildPythonPackage rec {
@@ -35,9 +36,7 @@ buildPythonPackage rec {
     xrootd
   ];
 
-  pythonImportsCheck = [
-    "fsspec_xrootd"
-  ];
+  pythonImportsCheck = [ "fsspec_xrootd" ];
 
   nativeCheckInputs = [
     pkgs.xrootd
@@ -51,12 +50,10 @@ buildPythonPackage rec {
   ];
 
   # Timeout related tests hang indifinetely
-  disabledTestPaths = lib.optionals stdenv.hostPlatform.isDarwin [
-    "tests/test_basicio.py"
-  ];
+  disabledTestPaths = lib.optionals stdenv.hostPlatform.isDarwin [ "tests/test_basicio.py" ];
 
   meta = with lib; {
-    description = "An XRootD implementation for fsspec";
+    description = "XRootD implementation for fsspec";
     homepage = "https://github.com/CoffeaTeam/fsspec-xrootd";
     changelog = "https://github.com/CoffeaTeam/fsspec-xrootd/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/fsspec/default.nix b/pkgs/development/python-modules/fsspec/default.nix
index 648879ec85cbc..735d0b115cd64 100644
--- a/pkgs/development/python-modules/fsspec/default.nix
+++ b/pkgs/development/python-modules/fsspec/default.nix
@@ -1,30 +1,31 @@
-{ lib
-, stdenv
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, paramiko
-, pytest-asyncio
-, pytest-mock
-, pytest-vcr
-, pytestCheckHook
-, pythonOlder
-, requests
-, smbprotocol
-, tqdm
-, adlfs
-, dask
-, distributed
-, dropbox
-, fusepy
-, gcsfs
-, libarchive-c
-, ocifs
-, panel
-, pyarrow
-, pygit2
-, s3fs
+{
+  lib,
+  stdenv,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  paramiko,
+  pytest-asyncio,
+  pytest-mock,
+  pytest-vcr,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  smbprotocol,
+  tqdm,
+  adlfs,
+  dask,
+  distributed,
+  dropbox,
+  fusepy,
+  gcsfs,
+  libarchive-c,
+  ocifs,
+  panel,
+  pyarrow,
+  pygit2,
+  s3fs,
 }:
 
 buildPythonPackage rec {
@@ -50,14 +51,9 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    entrypoints = [
-    ];
-    abfs = [
-      adlfs
-    ];
-    adl = [
-      adlfs
-    ];
+    entrypoints = [ ];
+    abfs = [ adlfs ];
+    adl = [ adlfs ];
     dask = [
       dask
       distributed
@@ -67,55 +63,25 @@ buildPythonPackage rec {
       requests
       dropbox
     ];
-    gcs = [
-      gcsfs
-    ];
-    git = [
-      pygit2
-    ];
-    github = [
-      requests
-    ];
-    gs = [
-      gcsfs
-    ];
-    hdfs = [
-      pyarrow
-    ];
-    arrow = [
-      pyarrow
-    ];
+    gcs = [ gcsfs ];
+    git = [ pygit2 ];
+    github = [ requests ];
+    gs = [ gcsfs ];
+    hdfs = [ pyarrow ];
+    arrow = [ pyarrow ];
     http = [
       aiohttp
       requests
     ];
-    sftp = [
-      paramiko
-    ];
-    s3 = [
-      s3fs
-    ];
-    oci = [
-      ocifs
-    ];
-    smb = [
-      smbprotocol
-    ];
-    ssh = [
-      paramiko
-    ];
-    fuse = [
-      fusepy
-    ];
-    libarchive = [
-      libarchive-c
-    ];
-    gui = [
-      panel
-    ];
-    tqdm = [
-      tqdm
-    ];
+    sftp = [ paramiko ];
+    s3 = [ s3fs ];
+    oci = [ ocifs ];
+    smb = [ smbprotocol ];
+    ssh = [ paramiko ];
+    fuse = [ fusepy ];
+    libarchive = [ libarchive-c ];
+    gui = [ panel ];
+    tqdm = [ tqdm ];
   };
 
   nativeCheckInputs = [
@@ -132,37 +98,37 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  disabledTests = [
-    # Test assumes user name is part of $HOME
-    # AssertionError: assert 'nixbld' in '/homeless-shelter/foo/bar'
-    "test_strip_protocol_expanduser"
-    # test accesses this remote ftp server:
-    # https://ftp.fau.de/debian-cd/current/amd64/log/success
-    "test_find"
-    # Tests want to access S3
-    "test_urlpath_inference_errors"
-    "test_mismatch"
-  ] ++ lib.optionals (stdenv.isDarwin) [
-    # works locally on APFS, fails on hydra with AssertionError comparing timestamps
-    # darwin hydra builder uses HFS+ and has only one second timestamp resolution
-    # this two tests however, assume nanosecond resolution
-    "test_modified"
-    "test_touch"
-    # tries to access /home, ignores $HOME
-    "test_directories"
-  ];
+  disabledTests =
+    [
+      # Test assumes user name is part of $HOME
+      # AssertionError: assert 'nixbld' in '/homeless-shelter/foo/bar'
+      "test_strip_protocol_expanduser"
+      # test accesses this remote ftp server:
+      # https://ftp.fau.de/debian-cd/current/amd64/log/success
+      "test_find"
+      # Tests want to access S3
+      "test_urlpath_inference_errors"
+      "test_mismatch"
+    ]
+    ++ lib.optionals (stdenv.isDarwin) [
+      # works locally on APFS, fails on hydra with AssertionError comparing timestamps
+      # darwin hydra builder uses HFS+ and has only one second timestamp resolution
+      # this two tests however, assume nanosecond resolution
+      "test_modified"
+      "test_touch"
+      # tries to access /home, ignores $HOME
+      "test_directories"
+    ];
 
   disabledTestPaths = [
     # JSON decoding issues
     "fsspec/implementations/tests/test_dbfs.py"
   ];
 
-  pythonImportsCheck = [
-    "fsspec"
-  ];
+  pythonImportsCheck = [ "fsspec" ];
 
   meta = with lib; {
-    description = "A specification that Python filesystems should adhere to";
+    description = "Specification that Python filesystems should adhere to";
     homepage = "https://github.com/fsspec/filesystem_spec";
     changelog = "https://github.com/fsspec/filesystem_spec/raw/${version}/docs/source/changelog.rst";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/fst-pso/default.nix b/pkgs/development/python-modules/fst-pso/default.nix
index 00bcf551b5b1b..3096bb743d11c 100644
--- a/pkgs/development/python-modules/fst-pso/default.nix
+++ b/pkgs/development/python-modules/fst-pso/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, miniful
-, numpy
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  miniful,
+  numpy,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "fstpso"
-  ];
+  pythonImportsCheck = [ "fstpso" ];
 
   meta = with lib; {
     description = "Fuzzy Self-Tuning PSO global optimization library";
diff --git a/pkgs/development/python-modules/ftfy/default.nix b/pkgs/development/python-modules/ftfy/default.nix
index c05b375424173..a52c326146577 100644
--- a/pkgs/development/python-modules/ftfy/default.nix
+++ b/pkgs/development/python-modules/ftfy/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# build-system
-, poetry-core
+  # build-system
+  poetry-core,
 
-# dependencies
-, wcwidth
+  # dependencies
+  wcwidth,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,17 +26,11 @@ buildPythonPackage rec {
     hash = "sha256-XkIUPHAl75eUTKJhnWthsGGfxmVPmHcdOehiwUJMdcA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    wcwidth
-  ];
+  propagatedBuildInputs = [ wcwidth ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export PATH=$out/bin:$PATH
@@ -46,7 +41,6 @@ buildPythonPackage rec {
     "tests/test_cli.py"
   ];
 
-
   meta = with lib; {
     description = "Given Unicode text, make its representation consistent and possibly less broken";
     mainProgram = "ftfy";
diff --git a/pkgs/development/python-modules/ftputil/default.nix b/pkgs/development/python-modules/ftputil/default.nix
index 9c143389928fd..bc4e43e29c393 100644
--- a/pkgs/development/python-modules/ftputil/default.nix
+++ b/pkgs/development/python-modules/ftputil/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, freezegun
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  freezegun,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     "test_upload"
   ];
 
-  pythonImportsCheck = [
-    "ftputil"
-  ];
+  pythonImportsCheck = [ "ftputil" ];
 
   meta = with lib; {
     description = "High-level FTP client library (virtual file system and more)";
diff --git a/pkgs/development/python-modules/fugashi/default.nix b/pkgs/development/python-modules/fugashi/default.nix
index 64f5ef9afcdb8..99c0853b461c6 100644
--- a/pkgs/development/python-modules/fugashi/default.nix
+++ b/pkgs/development/python-modules/fugashi/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, buildPythonPackage
-, cython_0
-, mecab
-, setuptools-scm
-, ipadic
-, unidic
-, unidic-lite
+{
+  lib,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  buildPythonPackage,
+  cython_0,
+  mecab,
+  setuptools-scm,
+  ipadic,
+  unidic,
+  unidic-lite,
 }:
 
 buildPythonPackage rec {
@@ -24,10 +25,16 @@ buildPythonPackage rec {
     hash = "sha256-4i7Q+TtXTQNSJ1EIcS8KHrVPdCJAgZh86Y6lB8772XU=";
   };
 
-  nativeBuildInputs = [ cython_0 mecab setuptools-scm ];
+  nativeBuildInputs = [
+    cython_0
+    mecab
+    setuptools-scm
+  ];
 
-  nativeCheckInputs = [ ipadic pytestCheckHook ]
-    ++ passthru.optional-dependencies.unidic-lite;
+  nativeCheckInputs = [
+    ipadic
+    pytestCheckHook
+  ] ++ passthru.optional-dependencies.unidic-lite;
 
   passthru.optional-dependencies = {
     unidic-lite = [ unidic-lite ];
@@ -41,7 +48,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "fugashi" ];
 
   meta = with lib; {
-    description = "A Cython MeCab wrapper for fast, pythonic Japanese tokenization and morphological analysis";
+    description = "Cython MeCab wrapper for fast, pythonic Japanese tokenization and morphological analysis";
     homepage = "https://github.com/polm/fugashi";
     changelog = "https://github.com/polm/fugashi/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/func-timeout/default.nix b/pkgs/development/python-modules/func-timeout/default.nix
index 654b950b48d89..4c3c342f32d60 100644
--- a/pkgs/development/python-modules/func-timeout/default.nix
+++ b/pkgs/development/python-modules/func-timeout/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     sha256 = "74cd3c428ec94f4edfba81f9b2f14904846d5ffccc27c92433b8b5939b5575dd";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "func_timeout" ];
 
diff --git a/pkgs/development/python-modules/funcparserlib/default.nix b/pkgs/development/python-modules/funcparserlib/default.nix
index e8f5f10b45338..abe8fb25d68e0 100644
--- a/pkgs/development/python-modules/funcparserlib/default.nix
+++ b/pkgs/development/python-modules/funcparserlib/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, python
-, pytestCheckHook
-, pythonOlder
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  python,
+  pytestCheckHook,
+  pythonOlder,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -22,18 +23,14 @@ buildPythonPackage rec {
     hash = "sha256-LE9ItCaEzEGeahpM3M3sSnDBXEr6uX5ogEkO5x2Jgzc=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     pytestCheckHook
     six
   ];
 
-  pythonImportsCheck = [
-    "funcparserlib"
-  ];
+  pythonImportsCheck = [ "funcparserlib" ];
 
   meta = with lib; {
     description = "Recursive descent parsing library based on functional combinators";
diff --git a/pkgs/development/python-modules/funcsigs/default.nix b/pkgs/development/python-modules/funcsigs/default.nix
index 4def50699d840..63fcb2052237a 100644
--- a/pkgs/development/python-modules/funcsigs/default.nix
+++ b/pkgs/development/python-modules/funcsigs/default.nix
@@ -1,5 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi
-, isPyPy, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/functiontrace/default.nix b/pkgs/development/python-modules/functiontrace/default.nix
index 0b34da111b36d..0982baa619e27 100644
--- a/pkgs/development/python-modules/functiontrace/default.nix
+++ b/pkgs/development/python-modules/functiontrace/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, toml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  toml,
 }:
 
 buildPythonPackage rec {
@@ -24,7 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://functiontrace.com";
-    description = "The Python module for Functiontrace";
+    description = "Python module for Functiontrace";
     license = licenses.prosperity30;
     maintainers = with maintainers; [ mathiassven ];
   };
diff --git a/pkgs/development/python-modules/functools32/default.nix b/pkgs/development/python-modules/functools32/default.nix
deleted file mode 100644
index be907e963c100..0000000000000
--- a/pkgs/development/python-modules/functools32/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-}:
-
-if isPy3k then null else buildPythonPackage rec {
-  pname = "functools32";
-  version = "3.2.3-2";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0v8ya0b58x47wp216n1zamimv4iw57cxz3xxhzix52jkw3xks9gn";
-  };
-
-  meta = with lib; {
-    description = "This is a backport of the functools standard library module from";
-    homepage = "https://github.com/MiCHiLU/python-functools32";
-    license = licenses.psfl;
-  };
-
-}
diff --git a/pkgs/development/python-modules/funcy/default.nix b/pkgs/development/python-modules/funcy/default.nix
index bafaf0fdb1f10..a6bb66a173569 100644
--- a/pkgs/development/python-modules/funcy/default.nix
+++ b/pkgs/development/python-modules/funcy/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,5 +27,4 @@ buildPythonPackage rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/funsor/default.nix b/pkgs/development/python-modules/funsor/default.nix
index dcd3c67a394bb..f854e5833bfc4 100644
--- a/pkgs/development/python-modules/funsor/default.nix
+++ b/pkgs/development/python-modules/funsor/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, makefun
-, multipledispatch
-, numpy
-, opt-einsum
-, typing-extensions
-, pyro-ppl
-, torch
-, pandas
-, pillow
-, pyro-api
-, pytest
-, pytest-xdist
-, requests
-, scipy
-, torchvision
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  makefun,
+  multipledispatch,
+  numpy,
+  opt-einsum,
+  typing-extensions,
+  pyro-ppl,
+  torch,
+  pandas,
+  pillow,
+  pyro-api,
+  pytest,
+  pytest-xdist,
+  requests,
+  scipy,
+  torchvision,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
   };
 
   # Disable the tests that rely on downloading assets from the internet as well as the linting checks.
-  patches = [
-    ./patch-makefile-for-tests.patch
-  ];
+  patches = [ ./patch-makefile-for-tests.patch ];
 
   propagatedBuildInputs = [
     makefun
diff --git a/pkgs/development/python-modules/furl/default.nix b/pkgs/development/python-modules/furl/default.nix
index 062ab8aebe081..4b4f81d1a2aad 100644
--- a/pkgs/development/python-modules/furl/default.nix
+++ b/pkgs/development/python-modules/furl/default.nix
@@ -1,10 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flake8
-, orderedmultidict
-, pytestCheckHook
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
+  flake8,
+  orderedmultidict,
+  pytestCheckHook,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -34,6 +36,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = lib.optionals (pythonAtLeast "3.12") [
+    # AssertionError: assert '//////path' == '////path'
+    "test_odd_urls"
+  ];
+
   pythonImportsCheck = [ "furl" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/furo/default.nix b/pkgs/development/python-modules/furo/default.nix
index fb024e18c4f6b..26eab2292967e 100644
--- a/pkgs/development/python-modules/furo/default.nix
+++ b/pkgs/development/python-modules/furo/default.nix
@@ -1,16 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, pythonRelaxDepsHook
-, sphinx
-, beautifulsoup4
-, sphinx-basic-ng
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  sphinx,
+  beautifulsoup4,
+  sphinx-basic-ng,
 }:
 
 buildPythonPackage rec {
   pname = "furo";
-  version = "2024.1.29";
+  version = "2024.5.6";
   format = "wheel";
 
   disabled = pythonOlder "3.8";
@@ -19,16 +19,11 @@ buildPythonPackage rec {
     inherit pname version format;
     dist = "py3";
     python = "py3";
-    hash = "sha256-NUi+LO9Foy+M3AJy1BX8s+X6ag603f4h3z7PH+RaE88=";
+    hash = "sha256-SQoA0IwKN+zJDeA66SJ+jrXW9/dQ7fmAfzmKK98jWN4=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
-  pythonRelaxDeps = [
-    "sphinx"
-  ];
+  pythonRelaxDeps = [ "sphinx" ];
 
   propagatedBuildInputs = [
     sphinx
@@ -47,12 +42,10 @@ buildPythonPackage rec {
     cd -
   '';
 
-  pythonImportsCheck = [
-    "furo"
-  ];
+  pythonImportsCheck = [ "furo" ];
 
   meta = with lib; {
-    description = "A clean customizable documentation theme for Sphinx";
+    description = "Clean customizable documentation theme for Sphinx";
     homepage = "https://github.com/pradyunsg/furo";
     changelog = "https://github.com/pradyunsg/furo/blob/${version}/docs/changelog.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/fuse-python/default.nix b/pkgs/development/python-modules/fuse-python/default.nix
index 8bcb486a6311c..ddd6d394cd0ce 100644
--- a/pkgs/development/python-modules/fuse-python/default.nix
+++ b/pkgs/development/python-modules/fuse-python/default.nix
@@ -1,4 +1,11 @@
-{ stdenv, lib, buildPythonPackage, fetchPypi, pkg-config, fuse }:
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pkg-config,
+  fuse,
+}:
 
 buildPythonPackage rec {
   pname = "fuse-python";
diff --git a/pkgs/development/python-modules/fusepy/default.nix b/pkgs/development/python-modules/fusepy/default.nix
index 8c51fcebe559d..35718a54d635a 100644
--- a/pkgs/development/python-modules/fusepy/default.nix
+++ b/pkgs/development/python-modules/fusepy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pkgs
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pkgs,
 }:
 
 buildPythonPackage rec {
@@ -37,5 +38,4 @@ buildPythonPackage rec {
     license = licenses.isc;
     platforms = platforms.unix;
   };
-
 }
diff --git a/pkgs/development/python-modules/future-fstrings/default.nix b/pkgs/development/python-modules/future-fstrings/default.nix
index 57cf42f38ab58..b9c347e647c43 100644
--- a/pkgs/development/python-modules/future-fstrings/default.nix
+++ b/pkgs/development/python-modules/future-fstrings/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+}:
 
 buildPythonPackage rec {
   pname = "future-fstrings";
@@ -16,7 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/asottile/future-fstrings";
-    description = "A backport of fstrings to python<3.6";
+    description = "Backport of fstrings to python<3.6";
     mainProgram = "future-fstrings-show";
     license = licenses.mit;
     maintainers = with maintainers; [ nyanloutre ];
diff --git a/pkgs/development/python-modules/future-typing/default.nix b/pkgs/development/python-modules/future-typing/default.nix
index 04d4af30e07a4..ef2c18fda510f 100644
--- a/pkgs/development/python-modules/future-typing/default.nix
+++ b/pkgs/development/python-modules/future-typing/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/future/default.nix b/pkgs/development/python-modules/future/default.nix
index cc54a7744292a..47ed954e1b1a1 100644
--- a/pkgs/development/python-modules/future/default.nix
+++ b/pkgs/development/python-modules/future/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-vSloMJMHhh7a4UWKT4pPNZjAO+Q7l1IQdq6/XZTAewU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   pythonImportsCheck = [
     "future.builtins"
diff --git a/pkgs/development/python-modules/fuzzyfinder/default.nix b/pkgs/development/python-modules/fuzzyfinder/default.nix
index 76f7e977cc32e..7d183d471c73d 100644
--- a/pkgs/development/python-modules/fuzzyfinder/default.nix
+++ b/pkgs/development/python-modules/fuzzyfinder/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     sha256 = "c56d86f110866becad6690c7518f7036c20831c0f82fc87eba8fdb943132f04b";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "fuzzyfinder" ];
 
diff --git a/pkgs/development/python-modules/fuzzytm/default.nix b/pkgs/development/python-modules/fuzzytm/default.nix
index e7dae0d02ee19..3a86d0c553974 100644
--- a/pkgs/development/python-modules/fuzzytm/default.nix
+++ b/pkgs/development/python-modules/fuzzytm/default.nix
@@ -1,28 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, gensim
-, numpy
-, pandas
-, pyfume
-, scipy
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  gensim,
+  numpy,
+  pandas,
+  pyfume,
+  setuptools,
+  scipy,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "fuzzytm";
-  version = "2.0.5";
-  format = "setuptools";
+  version = "2.0.9";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     pname = "FuzzyTM";
     inherit version;
-    hash = "sha256-IELkjd3/yc2lBYsLP6mms9LEcXOfVtNNooEKCMf9BtU=";
+    hash = "sha256-z0ESYtB7BqssxIHlrd0F+/qapOM1nrDi3Zih5SvgDGY=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     gensim
     numpy
     pandas
@@ -33,9 +37,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "FuzzyTM"
-  ];
+  pythonImportsCheck = [ "FuzzyTM" ];
 
   meta = with lib; {
     description = "Library for Fuzzy Topic Models";
diff --git a/pkgs/development/python-modules/fuzzywuzzy/default.nix b/pkgs/development/python-modules/fuzzywuzzy/default.nix
index 79754a30a078b..c3681fb1da832 100644
--- a/pkgs/development/python-modules/fuzzywuzzy/default.nix
+++ b/pkgs/development/python-modules/fuzzywuzzy/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi, levenshtein, pycodestyle, hypothesis, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  levenshtein,
+  pycodestyle,
+  hypothesis,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "fuzzywuzzy";
@@ -11,7 +19,11 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ levenshtein ];
-  nativeCheckInputs = [ pycodestyle hypothesis pytest ];
+  nativeCheckInputs = [
+    pycodestyle
+    hypothesis
+    pytest
+  ];
 
   meta = with lib; {
     description = "Fuzzy string matching for Python";
diff --git a/pkgs/development/python-modules/fvcore/default.nix b/pkgs/development/python-modules/fvcore/default.nix
index 884f50a0cb4ad..6d00d662b0550 100644
--- a/pkgs/development/python-modules/fvcore/default.nix
+++ b/pkgs/development/python-modules/fvcore/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-# build inputs
-, numpy
-, yacs
-, pyyaml
-, tqdm
-, termcolor
-, pillow
-, tabulate
-, iopath
-, shapely
-# check inputs
-, torch
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  # build inputs
+  numpy,
+  yacs,
+  pyyaml,
+  tqdm,
+  termcolor,
+  pillow,
+  tabulate,
+  iopath,
+  shapely,
+  # check inputs
+  torch,
 }:
 let
   pname = "fvcore";
@@ -44,20 +45,16 @@ buildPythonPackage {
     iopath
   ];
 
-  nativeCheckInputs = [
-    torch
-  ];
+  nativeCheckInputs = [ torch ];
 
   # TypeError: flop_count() missing 2 required positional arguments: 'model' and 'inputs'
   doCheck = false;
 
-  pythonImportsCheck = [
-    "fvcore"
-  ];
+  pythonImportsCheck = [ "fvcore" ];
 
   passthru.optional-dependencies = optional-dependencies;
 
-   meta = with lib; {
+  meta = with lib; {
     description = "Collection of common code that's shared among different research projects in FAIR computer vision team";
     homepage = "https://github.com/facebookresearch/fvcore";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/fvs/default.nix b/pkgs/development/python-modules/fvs/default.nix
index 8a8df6b325ace..5298a51a84403 100644
--- a/pkgs/development/python-modules/fvs/default.nix
+++ b/pkgs/development/python-modules/fvs/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, orjson}:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  orjson,
+}:
 
 buildPythonPackage rec {
   pname = "fvs";
@@ -12,16 +17,12 @@ buildPythonPackage rec {
     hash = "sha256-yYd0HzdwbqB9kexJjBRRYmdsoWtZtcjCNRz0ZJVM5CI=";
   };
 
-  propagatedBuildInputs = [
-    orjson
-  ];
+  propagatedBuildInputs = [ orjson ];
 
   # no tests in src
   doCheck = false;
 
-  pythonImportsCheck = [
-    "fvs"
-  ];
+  pythonImportsCheck = [ "fvs" ];
 
   meta = with lib; {
     description = "File Versioning System with hash comparison and data storage to create unlinked states that can be deleted";
diff --git a/pkgs/development/python-modules/fx2/default.nix b/pkgs/development/python-modules/fx2/default.nix
index 3fa79dbe3f1c7..52711cead2d0b 100644
--- a/pkgs/development/python-modules/fx2/default.nix
+++ b/pkgs/development/python-modules/fx2/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, python
-, fetchFromGitHub
-, sdcc
-, libusb1
-, crcmod
+{
+  lib,
+  buildPythonPackage,
+  python,
+  fetchFromGitHub,
+  sdcc,
+  libusb1,
+  crcmod,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,10 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ sdcc ];
 
-  propagatedBuildInputs = [ libusb1 crcmod ];
+  propagatedBuildInputs = [
+    libusb1
+    crcmod
+  ];
 
   preBuild = ''
     make -C firmware
@@ -42,6 +46,6 @@ buildPythonPackage rec {
     mainProgram = "fx2tool";
     homepage = "https://github.com/whitequark/libfx2";
     license = licenses.bsd0;
-    maintainers = with maintainers; [ emily ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/fyta-cli/default.nix b/pkgs/development/python-modules/fyta-cli/default.nix
index 7e0b2971be508..6251d39ac2d0f 100644
--- a/pkgs/development/python-modules/fyta-cli/default.nix
+++ b/pkgs/development/python-modules/fyta-cli/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "fyta-cli";
-  version = "0.4.0";
+  version = "0.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "dontinelli";
     repo = "fyta_cli";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ThxC+s0vkvFQw9FKMWO+cHJB1ci+USdxQa4PRqHrKLM=";
+    hash = "sha256-v89rgchfrPa0gOCBLOUK+BalnfpXD1Yt877WuBbkH3Y=";
   };
 
   build-system = [ hatchling ];
diff --git a/pkgs/development/python-modules/g2pkk/default.nix b/pkgs/development/python-modules/g2pkk/default.nix
index 98e03806d2ff2..31246604cfb8e 100644
--- a/pkgs/development/python-modules/g2pkk/default.nix
+++ b/pkgs/development/python-modules/g2pkk/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jamo
-, nltk
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jamo,
+  nltk,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     nltk
   ];
 
-  pythonImportsCheck = [
-    "g2pkk"
-  ];
+  pythonImportsCheck = [ "g2pkk" ];
 
   doCheck = false;
 
@@ -33,4 +32,3 @@ buildPythonPackage rec {
     maintainers = teams.tts.members;
   };
 }
-
diff --git a/pkgs/development/python-modules/galois/default.nix b/pkgs/development/python-modules/galois/default.nix
index 8c927b96019f4..819e4d7e6c071 100644
--- a/pkgs/development/python-modules/galois/default.nix
+++ b/pkgs/development/python-modules/galois/default.nix
@@ -1,19 +1,19 @@
-{ lib
-, buildPythonPackage
-, setuptools-scm
-, pythonOlder
-, pythonRelaxDepsHook
-, fetchFromGitHub
-, pytestCheckHook
-, pytest-xdist
-, numpy
-, numba
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  setuptools-scm,
+  pythonOlder,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pytest-xdist,
+  numpy,
+  numba,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "galois";
-  version = "0.3.8";
+  version = "0.3.9";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,12 +22,11 @@ buildPythonPackage rec {
     owner = "mhostetter";
     repo = "galois";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Nfr9gD2FLZ+KvHh1mcpReUWnzFr/NxpvperzZPoFeT4=";
+    hash = "sha256-vgOsFEocgBvYba9Aq4HDYsnK1w+iQm1QDTzln68Tqss=";
   };
 
   nativeBuildInputs = [
     setuptools-scm
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -41,7 +40,10 @@ buildPythonPackage rec {
     pytest-xdist
   ];
 
-  pythonRelaxDeps = [ "numpy" "numba" ];
+  pythonRelaxDeps = [
+    "numpy"
+    "numba"
+  ];
 
   pythonImportsCheck = [ "galois" ];
 
diff --git a/pkgs/development/python-modules/gamble/default.nix b/pkgs/development/python-modules/gamble/default.nix
index c4bb320271023..088e253def72e 100644
--- a/pkgs/development/python-modules/gamble/default.nix
+++ b/pkgs/development/python-modules/gamble/default.nix
@@ -1,29 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
   pname = "gamble";
   version = "0.13";
-  format = "setuptools";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-P0w1Q1Kus742Yu/MpqheEbp1+Pt21f163JWZfKJj3SA=";
+  src = fetchFromGitHub {
+    owner = "jpetrucciani";
+    repo = "gamble";
+    rev = "refs/tags/${version}";
+    hash = "sha256-eHosY/JfJr317S7WI8phy7DNHf3cZzs6c5MMfw7yzAE=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  build-system = [ poetry-core ];
 
-  pythonImportsCheck = [
-    "gamble"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "gamble" ];
 
   meta = with lib; {
     description = "Collection of gambling classes/tools";
diff --git a/pkgs/development/python-modules/gaphas/default.nix b/pkgs/development/python-modules/gaphas/default.nix
index 479d51683023e..c0aeebe3d9469 100644
--- a/pkgs/development/python-modules/gaphas/default.nix
+++ b/pkgs/development/python-modules/gaphas/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, poetry-core
-, gobject-introspection
-, gtk3
-, pycairo
-, pygobject3
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  poetry-core,
+  gobject-introspection,
+  gtk3,
+  pycairo,
+  pygobject3,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     gobject-introspection
   ];
 
-  buildInputs = [
-    gtk3
-  ];
+  buildInputs = [ gtk3 ];
 
   propagatedBuildInputs = [
     pycairo
@@ -37,15 +36,13 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  pythonImportsCheck = [
-    "gaphas"
-  ];
+  pythonImportsCheck = [ "gaphas" ];
 
   meta = with lib; {
     description = "GTK+ based diagramming widget";
     homepage = "https://github.com/gaphor/gaphas";
     changelog = "https://github.com/gaphor/gaphas/releases/tag/${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/gardena-bluetooth/default.nix b/pkgs/development/python-modules/gardena-bluetooth/default.nix
index fb71990c99dfb..d637618255275 100644
--- a/pkgs/development/python-modules/gardena-bluetooth/default.nix
+++ b/pkgs/development/python-modules/gardena-bluetooth/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, asyncclick
-, bleak
-, bleak-retry-connector
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, tzlocal
+{
+  lib,
+  asyncclick,
+  bleak,
+  bleak-retry-connector,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  tzlocal,
 }:
 
 buildPythonPackage rec {
   pname = "gardena-bluetooth";
-  version = "1.4.1";
+  version = "1.4.2";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -22,12 +23,10 @@ buildPythonPackage rec {
     owner = "elupus";
     repo = "gardena-bluetooth";
     rev = "refs/tags/${version}";
-    hash = "sha256-WnurxoSzzNTNxz6S1HSKb/lTuOyox6fG2I0Hlj95Ub0=";
+    hash = "sha256-eze99JvNSwhot8t43oy30iaFrrkpeMNFyHvfQcA56IM=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bleak
@@ -36,9 +35,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    cli = [
-      asyncclick
-     ];
+    cli = [ asyncclick ];
   };
 
   nativeCheckInputs = [
@@ -46,9 +43,7 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
-  pythonImportsCheck = [
-    "gardena_bluetooth"
-  ];
+  pythonImportsCheck = [ "gardena_bluetooth" ];
 
   meta = with lib; {
     description = "Module for interacting with Gardena Bluetooth";
diff --git a/pkgs/development/python-modules/garminconnect-aio/default.nix b/pkgs/development/python-modules/garminconnect-aio/default.nix
index abdd1f9f2f26b..362ffd393e4e6 100644
--- a/pkgs/development/python-modules/garminconnect-aio/default.nix
+++ b/pkgs/development/python-modules/garminconnect-aio/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, brotlipy
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  brotlipy,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "garminconnect_aio"
-  ];
+  pythonImportsCheck = [ "garminconnect_aio" ];
 
   meta = with lib; {
     description = "Python module to interact with Garmin Connect";
diff --git a/pkgs/development/python-modules/garminconnect/default.nix b/pkgs/development/python-modules/garminconnect/default.nix
index 8ca9ec7ba7d38..6bba760ec1c4d 100644
--- a/pkgs/development/python-modules/garminconnect/default.nix
+++ b/pkgs/development/python-modules/garminconnect/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "garminconnect";
-  version = "0.2.17";
+  version = "0.2.18";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "cyberjunky";
     repo = "python-garminconnect";
     rev = "refs/tags/${version}";
-    hash = "sha256-F853wLzcqD+cQdPdvgGcItL+v8nBPoRYSyLgOJ5ld1A=";
+    hash = "sha256-ElgSL4NuEYv/VHPZIQlDWehS4B03/PCM6uk3OhvnNjA=";
   };
 
   build-system = [ pdm-backend ];
diff --git a/pkgs/development/python-modules/garth/default.nix b/pkgs/development/python-modules/garth/default.nix
index c3e6bae9ed42c..5ab18ebb69054 100644
--- a/pkgs/development/python-modules/garth/default.nix
+++ b/pkgs/development/python-modules/garth/default.nix
@@ -1,32 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pdm-backend
-, pydantic
-, pytest-vcr
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-oauthlib
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pdm-backend,
+  pydantic,
+  pytest-vcr,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-oauthlib,
 }:
 
 buildPythonPackage rec {
   pname = "garth";
-  version = "0.4.45";
+  version = "0.4.46";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dN4WQZ2FLkyqCGYFBICodHR7yBdrLvx4NE6OqB0SgZo=";
+    hash = "sha256-WuGeZ2EggyhbEDIbjg4ffIFaj2DyHi8Tvowhoi5k2Os=";
   };
 
-  nativeBuildInputs = [
-    pdm-backend
-  ];
+  pythonRelaxDeps = [ "requests-oauthlib" ];
+
+  build-system = [ pdm-backend ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     pydantic
     requests
     requests-oauthlib
@@ -37,9 +38,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "garth"
-  ];
+  pythonImportsCheck = [ "garth" ];
 
   disabledTests = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/gassist-text/default.nix b/pkgs/development/python-modules/gassist-text/default.nix
index a8e7b14de8925..bbd02fd31a54f 100644
--- a/pkgs/development/python-modules/gassist-text/default.nix
+++ b/pkgs/development/python-modules/gassist-text/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchFromGitHub
-, google-auth
-, grpcio
-, protobuf
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitHub,
+  google-auth,
+  grpcio,
+  protobuf,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-XFHyI48TuPBJjHA4dLSpYv62Y5zK0knrIqNKBoWnEeU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     beautifulsoup4
@@ -37,13 +36,9 @@ buildPythonPackage rec {
     requests
   ];
 
-  checkInputs = [
-    pytestCheckHook
-  ];
+  checkInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "gassist_text"
-  ];
+  pythonImportsCheck = [ "gassist_text" ];
 
   meta = with lib; {
     description = "Module for interacting with Google Assistant API via text";
diff --git a/pkgs/development/python-modules/gast/default.nix b/pkgs/development/python-modules/gast/default.nix
index 32e4df0ae1976..e275cc3170c2a 100644
--- a/pkgs/development/python-modules/gast/default.nix
+++ b/pkgs/development/python-modules/gast/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, astunparse
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  astunparse,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,14 +26,15 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "gast"
-  ];
+  pythonImportsCheck = [ "gast" ];
 
   meta = with lib; {
     description = "Compatibility layer between the AST of various Python versions";
     homepage = "https://github.com/serge-sans-paille/gast/";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ jyp cpcloud ];
+    maintainers = with maintainers; [
+      jyp
+      cpcloud
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/gatt/default.nix b/pkgs/development/python-modules/gatt/default.nix
index 9543aa6a5e04c..6437deacd4904 100644
--- a/pkgs/development/python-modules/gatt/default.nix
+++ b/pkgs/development/python-modules/gatt/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, dbus-python
-, pygobject3
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  dbus-python,
+  pygobject3,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/gattlib/default.nix b/pkgs/development/python-modules/gattlib/default.nix
index c7450d6b6b5b8..370b773c8934c 100644
--- a/pkgs/development/python-modules/gattlib/default.nix
+++ b/pkgs/development/python-modules/gattlib/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, substituteAll
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  substituteAll,
 
-# build
-, pkg-config
-, glibc
-, python
+  # build
+  pkg-config,
+  glibc,
+  python,
 
-# runtime
-, bluez
-, boost
-, glib
+  # runtime
+  bluez,
+  boost,
+  glib,
 
 }:
 
@@ -23,7 +24,6 @@ buildPythonPackage {
   inherit pname version;
   format = "setuptools";
 
-
   src = fetchFromGitHub {
     owner = "oscaracena";
     repo = "pygattlib";
@@ -34,9 +34,10 @@ buildPythonPackage {
   patches = [
     (substituteAll {
       src = ./setup.patch;
-      boost_version = let
-        pythonVersion = with lib.versions; "${major python.version}${minor python.version}";
-      in
+      boost_version =
+        let
+          pythonVersion = with lib.versions; "${major python.version}${minor python.version}";
+        in
         "boost_python${pythonVersion}";
     })
   ];
@@ -55,9 +56,7 @@ buildPythonPackage {
   # has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "gattlib"
-  ];
+  pythonImportsCheck = [ "gattlib" ];
 
   meta = with lib; {
     description = "Python library to use the GATT Protocol for Bluetooth LE devices";
diff --git a/pkgs/development/python-modules/gawd/default.nix b/pkgs/development/python-modules/gawd/default.nix
index 3fee09a5d5b56..b3afe56d9daf1 100644
--- a/pkgs/development/python-modules/gawd/default.nix
+++ b/pkgs/development/python-modules/gawd/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, ruamel-yaml
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  ruamel-yaml,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +25,9 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    ruamel-yaml
-  ];
+  propagatedBuildInputs = [ ruamel-yaml ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "gawd" ];
 
diff --git a/pkgs/development/python-modules/gb-io/default.nix b/pkgs/development/python-modules/gb-io/default.nix
index ab12d42d77c4a..72504c986d2ef 100644
--- a/pkgs/development/python-modules/gb-io/default.nix
+++ b/pkgs/development/python-modules/gb-io/default.nix
@@ -1,12 +1,13 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, buildPythonPackage
-, rustPlatform
-, cargo
-, rustc
-, setuptools-rust
-, unittestCheckHook
+{
+  stdenv,
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  rustPlatform,
+  cargo,
+  rustc,
+  setuptools-rust,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -43,7 +44,7 @@ buildPythonPackage rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     homepage = "https://github.com/althonos/gb-io.py";
-    description = "A Python interface to gb-io, a fast GenBank parser written in Rust";
+    description = "Python interface to gb-io, a fast GenBank parser written in Rust";
     license = licenses.mit;
     maintainers = with lib.maintainers; [ dlesl ];
   };
diff --git a/pkgs/development/python-modules/gbinder-python/default.nix b/pkgs/development/python-modules/gbinder-python/default.nix
index bb64e0c5e6a89..d5ba3d6ad82c0 100644
--- a/pkgs/development/python-modules/gbinder-python/default.nix
+++ b/pkgs/development/python-modules/gbinder-python/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, cython_0
-, pkg-config
-, libgbinder
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  cython_0,
+  pkg-config,
+  libgbinder,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "1X9gAux9w/mCEVmE3Yqvvq3kU7hu4iAFaZWNZZZxt3E=";
   };
 
-  buildInputs = [
-    libgbinder
-  ];
+  buildInputs = [ libgbinder ];
 
   nativeBuildInputs = [
     cython_0
diff --git a/pkgs/development/python-modules/gbulb/default.nix b/pkgs/development/python-modules/gbulb/default.nix
index d36d1182f55ff..4c192b43f666e 100644
--- a/pkgs/development/python-modules/gbulb/default.nix
+++ b/pkgs/development/python-modules/gbulb/default.nix
@@ -1,23 +1,24 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, pygobject3
-, pytestCheckHook
-, gtk3
-, gobject-introspection
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pygobject3,
+  pytestCheckHook,
+  gtk3,
+  gobject-introspection,
 }:
 
 buildPythonPackage rec {
   pname = "gbulb";
-  version = "0.6.4";
+  version = "0.6.5";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "beeware";
     repo = "gbulb";
     rev = "refs/tags/v${version}";
-    hash = "sha256-AdZSvxix0cpoFQSrslGl+hB/s6Nh0EsWMQmXZAJVJOg=";
+    hash = "sha256-03Ott+V3Y4+Y72Llsug5coqG3C+pjAdLkPYbaY/6Uow=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/gcal-sync/default.nix b/pkgs/development/python-modules/gcal-sync/default.nix
index 7a2ce7e511971..95b6db3b9a297 100644
--- a/pkgs/development/python-modules/gcal-sync/default.nix
+++ b/pkgs/development/python-modules/gcal-sync/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, freezegun
-, ical
-, pydantic
-, pytest-aiohttp
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  freezegun,
+  ical,
+  pydantic,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "gcal-sync";
-  version = "6.0.4";
+  version = "6.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -23,12 +24,10 @@ buildPythonPackage rec {
     owner = "allenporter";
     repo = "gcal_sync";
     rev = "refs/tags/${version}";
-    hash = "sha256-ufoe9+4zhlixcSGMAhuhJx2Y2vrN036N8UvyP3xuTRQ=";
+    hash = "sha256-mZn/3oROIUSv6cCxXs3rBJtlmKsqNflTW2pcER8GisE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "gcal_sync"
-  ];
+  pythonImportsCheck = [ "gcal_sync" ];
 
   meta = with lib; {
     description = "Library for syncing Google Calendar to local storage";
diff --git a/pkgs/development/python-modules/gcodepy/default.nix b/pkgs/development/python-modules/gcodepy/default.nix
index 51f32d2022414..6e62d9bb3bf67 100644
--- a/pkgs/development/python-modules/gcodepy/default.nix
+++ b/pkgs/development/python-modules/gcodepy/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,9 @@ buildPythonPackage rec {
     hash = "sha256-+amBkwwISPyes8ABdqgCw50Zg5ioDa46WZgQsZZgl+8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "gcodepy"
-  ];
+  pythonImportsCheck = [ "gcodepy" ];
 
   meta = with lib; {
     description = "G-code generator for 3D printers that use Marlin Firmware";
diff --git a/pkgs/development/python-modules/gcovr/default.nix b/pkgs/development/python-modules/gcovr/default.nix
index 7b8b32b2c5de2..5bf66cdb24192 100644
--- a/pkgs/development/python-modules/gcovr/default.nix
+++ b/pkgs/development/python-modules/gcovr/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, colorlog
-, jinja2
-, lxml
-, pygments
-, pythonOlder
-, tomli
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  colorlog,
+  jinja2,
+  lxml,
+  pygments,
+  pythonOlder,
+  tomli,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     jinja2
     lxml
     pygments
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   # There are no unit tests in the pypi tarball. Most of the unit tests on the
   # github repository currently only work with gcc5, so we just disable them.
@@ -46,6 +45,6 @@ buildPythonPackage rec {
     homepage = "https://www.gcovr.com/";
     changelog = "https://github.com/gcovr/gcovr/blob/${version}/CHANGELOG.rst";
     license = licenses.bsd0;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ sigmanificient ];
   };
 }
diff --git a/pkgs/development/python-modules/gcs-oauth2-boto-plugin/default.nix b/pkgs/development/python-modules/gcs-oauth2-boto-plugin/default.nix
index 85e18fb12499a..87f9e361feaae 100644
--- a/pkgs/development/python-modules/gcs-oauth2-boto-plugin/default.nix
+++ b/pkgs/development/python-modules/gcs-oauth2-boto-plugin/default.nix
@@ -1,19 +1,19 @@
-{ lib
-, boto
-, buildPythonPackage
-, fasteners
-, fetchFromGitHub
-, freezegun
-, google-reauth
-, httplib2
-, oauth2client
-, pyopenssl
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, retry-decorator
-, rsa
-, six
+{
+  lib,
+  boto,
+  buildPythonPackage,
+  fasteners,
+  fetchFromGitHub,
+  freezegun,
+  google-reauth,
+  httplib2,
+  oauth2client,
+  pyopenssl,
+  pytestCheckHook,
+  pythonOlder,
+  retry-decorator,
+  rsa,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -48,13 +48,9 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "gcs_oauth2_boto_plugin"
-  ];
+  pythonImportsCheck = [ "gcs_oauth2_boto_plugin" ];
 
   meta = with lib; {
     description = "Auth plugin allowing use the use of OAuth 2.0 credentials for Google Cloud Storage";
diff --git a/pkgs/development/python-modules/gcsa/default.nix b/pkgs/development/python-modules/gcsa/default.nix
index c4ffcabeb94de..c487881f92b45 100644
--- a/pkgs/development/python-modules/gcsa/default.nix
+++ b/pkgs/development/python-modules/gcsa/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, pyfakefs
-, tzlocal
-, google-api-python-client
-, google-auth-httplib2
-, google-auth-oauthlib
-, python-dateutil
-, beautiful-date
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  pyfakefs,
+  tzlocal,
+  google-api-python-client,
+  google-auth-httplib2,
+  google-auth-oauthlib,
+  python-dateutil,
+  beautiful-date,
 }:
 
 buildPythonPackage rec {
@@ -34,7 +35,10 @@ buildPythonPackage rec {
     beautiful-date
   ];
 
-  nativeCheckInputs = [ pytestCheckHook pyfakefs ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    pyfakefs
+  ];
   pythonImportsCheck = [ "gcsa" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/gcsfs/default.nix b/pkgs/development/python-modules/gcsfs/default.nix
index 71d52947b0c4f..2cc70ba25e1bf 100644
--- a/pkgs/development/python-modules/gcsfs/default.nix
+++ b/pkgs/development/python-modules/gcsfs/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, google-auth
-, google-auth-oauthlib
-, google-cloud-storage
-, requests
-, decorator
-, fsspec
-, ujson
-, aiohttp
-, crcmod
-, pytest-timeout
-, pytest-vcr
-, vcrpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  google-auth,
+  google-auth-oauthlib,
+  google-cloud-storage,
+  requests,
+  decorator,
+  fsspec,
+  ujson,
+  aiohttp,
+  crcmod,
+  pytest-timeout,
+  pytest-vcr,
+  vcrpy,
 }:
 
 buildPythonPackage rec {
@@ -50,7 +51,7 @@ buildPythonPackage rec {
     vcrpy
   ];
 
-  disabledTests =[
+  disabledTests = [
     # Cannot connect to host storage.googleapis.com:443
     "test_credentials_from_raw_token"
   ];
@@ -64,13 +65,9 @@ buildPythonPackage rec {
     "gcsfs/tests/test_inventory_report_listing.py"
   ];
 
-  pytestFlagsArray = [
-    "-x"
-  ];
+  pytestFlagsArray = [ "-x" ];
 
-  pythonImportsCheck = [
-    "gcsfs"
-  ];
+  pythonImportsCheck = [ "gcsfs" ];
 
   meta = with lib; {
     description = "Convenient Filesystem interface over GCS";
diff --git a/pkgs/development/python-modules/gdata/default.nix b/pkgs/development/python-modules/gdata/default.nix
index bb334d63435b7..e572a20f30f63 100644
--- a/pkgs/development/python-modules/gdata/default.nix
+++ b/pkgs/development/python-modules/gdata/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchurl
+{
+  lib,
+  buildPythonPackage,
+  fetchurl,
 }:
 
 buildPythonPackage rec {
@@ -21,5 +22,4 @@ buildPythonPackage rec {
     description = "Python client library for Google data APIs";
     license = licenses.asl20;
   };
-
 }
diff --git a/pkgs/development/python-modules/gdb-pt-dump/default.nix b/pkgs/development/python-modules/gdb-pt-dump/default.nix
index 5687828e9e503..591583510cd8c 100644
--- a/pkgs/development/python-modules/gdb-pt-dump/default.nix
+++ b/pkgs/development/python-modules/gdb-pt-dump/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/gdown/default.nix b/pkgs/development/python-modules/gdown/default.nix
index 1b0b3aa70b92a..610a99aeaf894 100644
--- a/pkgs/development/python-modules/gdown/default.nix
+++ b/pkgs/development/python-modules/gdown/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchPypi
-, hatchling
-, hatch-vcs
-, hatch-fancy-pypi-readme
-, filelock
-, requests
-, tqdm
-, setuptools
-, six
-, pythonOlder
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchPypi,
+  hatchling,
+  hatch-vcs,
+  hatch-fancy-pypi-readme,
+  filelock,
+  requests,
+  tqdm,
+  setuptools,
+  six,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "gdown";
-  version = "5.1.0";
+  version = "5.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-VQpy3FyigZ/kvMFdgNBdfJjAuQ5XJWJUt30CVrnfRoM=";
+    hash = "sha256-IUUWUGLYVSCjzZizVsntUixeeYTUCFNUCf1G+U3vx4c=";
   };
 
   build-system = [
@@ -44,12 +45,10 @@ buildPythonPackage rec {
     $out/bin/gdown --help > /dev/null
   '';
 
-  pythonImportsCheck = [
-    "gdown"
-  ];
+  pythonImportsCheck = [ "gdown" ];
 
   meta = with lib; {
-    description = "A CLI tool for downloading large files from Google Drive";
+    description = "CLI tool for downloading large files from Google Drive";
     mainProgram = "gdown";
     homepage = "https://github.com/wkentaro/gdown";
     changelog = "https://github.com/wkentaro/gdown/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/ge25519/default.nix b/pkgs/development/python-modules/ge25519/default.nix
index 60bc2b5dbba13..d3e92913b1283 100644
--- a/pkgs/development/python-modules/ge25519/default.nix
+++ b/pkgs/development/python-modules/ge25519/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, bitlist
-, buildPythonPackage
-, fe25519
-, fetchPypi
-, fountains
-, parts
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  bitlist,
+  buildPythonPackage,
+  fe25519,
+  fetchPypi,
+  fountains,
+  parts,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -35,18 +36,14 @@ buildPythonPackage rec {
     fountains
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace "--doctest-modules --ignore=docs --cov=ge25519 --cov-report term-missing" ""
   '';
 
-  pythonImportsCheck = [
-    "ge25519"
-  ];
+  pythonImportsCheck = [ "ge25519" ];
 
   meta = with lib; {
     description = "Python implementation of Ed25519 group elements and operations";
diff --git a/pkgs/development/python-modules/geeknote/default.nix b/pkgs/development/python-modules/geeknote/default.nix
index a0ee274beabb5..1aeeabd92f295 100644
--- a/pkgs/development/python-modules/geeknote/default.nix
+++ b/pkgs/development/python-modules/geeknote/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy27
-, thrift
-, beautifulsoup4
-, markdown2
-, sqlalchemy
-, html2text
-, evernote
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy27,
+  thrift,
+  beautifulsoup4,
+  markdown2,
+  sqlalchemy,
+  html2text,
+  evernote,
 }:
 
 buildPythonPackage {
   version = "2015-05-11";
   format = "setuptools";
   pname = "geeknote";
-  disabled = ! isPy27;
+  disabled = !isPy27;
 
   src = fetchFromGitHub {
     owner = "VitaliyRodnenko";
@@ -23,11 +24,20 @@ buildPythonPackage {
     sha256 = "0l16v4xnyqnsf84b1pma0jmdyxvmfwcv3sm8slrv3zv7zpmcm3lf";
   };
 
-  /* build with tests fails with "Can not create application dirictory :
-   /homeless-shelter/.geeknotebuilder". */
+  /*
+    build with tests fails with "Can not create application dirictory :
+    /homeless-shelter/.geeknotebuilder".
+  */
   doCheck = false;
 
-  propagatedBuildInputs = [ thrift beautifulsoup4 markdown2 sqlalchemy html2text evernote ];
+  propagatedBuildInputs = [
+    thrift
+    beautifulsoup4
+    markdown2
+    sqlalchemy
+    html2text
+    evernote
+  ];
 
   meta = with lib; {
     description = "Work with Evernote from command line";
@@ -35,5 +45,4 @@ buildPythonPackage {
     license = licenses.gpl1Only;
     maintainers = with maintainers; [ hbunke ];
   };
-
 }
diff --git a/pkgs/development/python-modules/gehomesdk/default.nix b/pkgs/development/python-modules/gehomesdk/default.nix
index 62fca9823a12c..84e5eea815831 100644
--- a/pkgs/development/python-modules/gehomesdk/default.nix
+++ b/pkgs/development/python-modules/gehomesdk/default.nix
@@ -1,34 +1,33 @@
-{ lib
-, aiohttp
-, bidict
-, buildPythonPackage
-, fetchPypi
-, humanize
-, lxml
-, pythonOlder
-, requests
-, setuptools
-, slixmpp
-, websockets
+{
+  lib,
+  aiohttp,
+  bidict,
+  buildPythonPackage,
+  fetchPypi,
+  humanize,
+  lxml,
+  pythonOlder,
+  requests,
+  setuptools,
+  slixmpp,
+  websockets,
 }:
 
 buildPythonPackage rec {
   pname = "gehomesdk";
-  version = "0.5.27";
+  version = "0.5.28";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-H76y784lYzETgq5XSsQOSGka/kvM+hyMHzUHEJuXTuk=";
+    hash = "sha256-TAPuP0VFhKuWDzko/+Upq6GDGZJO9y6GuuV6GsSqi2I=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     bidict
     humanize
@@ -42,16 +41,14 @@ buildPythonPackage rec {
   # https://github.com/simbaja/gehome/issues/32
   doCheck = false;
 
-  pythonImportsCheck = [
-    "gehomesdk"
-  ];
+  pythonImportsCheck = [ "gehomesdk" ];
 
   meta = with lib; {
     description = "Python SDK for GE smart appliances";
-    mainProgram = "gehome-appliance-data";
     homepage = "https://github.com/simbaja/gehome";
     changelog = "https://github.com/simbaja/gehome/blob/master/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "gehome-appliance-data";
   };
 }
diff --git a/pkgs/development/python-modules/gekitchen/default.nix b/pkgs/development/python-modules/gekitchen/default.nix
index a06dada36dc77..615be02d17858 100644
--- a/pkgs/development/python-modules/gekitchen/default.nix
+++ b/pkgs/development/python-modules/gekitchen/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, bidict
-, buildPythonPackage
-, fetchFromGitHub
-, humanize
-, lxml
-, pytestCheckHook
-, pythonOlder
-, requests
-, slixmpp
-, websockets
+{
+  lib,
+  aiohttp,
+  bidict,
+  buildPythonPackage,
+  fetchFromGitHub,
+  humanize,
+  lxml,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  slixmpp,
+  websockets,
 }:
 
 buildPythonPackage rec {
@@ -36,13 +37,9 @@ buildPythonPackage rec {
     websockets
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "gekitchen"
-  ];
+  pythonImportsCheck = [ "gekitchen" ];
 
   meta = with lib; {
     description = "Python SDK for GE smart appliances";
diff --git a/pkgs/development/python-modules/gekko/default.nix b/pkgs/development/python-modules/gekko/default.nix
index d62c1f3dbfd1b..1fb6123f0133f 100644
--- a/pkgs/development/python-modules/gekko/default.nix
+++ b/pkgs/development/python-modules/gekko/default.nix
@@ -9,14 +9,14 @@
 
 buildPythonPackage rec {
   pname = "gekko";
-  version = "1.1.1";
+  version = "1.1.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-xc6NfPCvkEYjUG82QmFqDuu02QNwKfoS6DDpkdaMWJ8=";
+    hash = "sha256-JN7CWOR7CcWzmKDNlUXm/6ilrTJ3vLa8h2TNnmALhfk=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/gemfileparser/default.nix b/pkgs/development/python-modules/gemfileparser/default.nix
index e6b91d24f804e..b1b7d034ff591 100644
--- a/pkgs/development/python-modules/gemfileparser/default.nix
+++ b/pkgs/development/python-modules/gemfileparser/default.nix
@@ -1,31 +1,38 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
+
 buildPythonPackage rec {
   pname = "gemfileparser";
   version = "0.8.0";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "839592e49ea3fd985cec003ef58f8e77009a69ed7644a0c0acc94cf6dd9b8d6e";
+    hash = "sha256-g5WS5J6j/Zhc7AA+9Y+OdwCaae12RKDArMlM9t2bjW4=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "gemfileparser"
-  ];
+  pythonImportsCheck = [ "gemfileparser" ];
 
   meta = with lib; {
-    description = "A library to parse Ruby Gemfile, .gemspec and Cocoapod .podspec file using Python";
-    mainProgram = "parsegemfile";
+    description = "Library to parse Ruby Gemfile, .gemspec and Cocoapod .podspec file using Python";
     homepage = "https://github.com/gemfileparser/gemfileparser";
-    license = with licenses; [ gpl3Plus /* or */ mit ];
-    maintainers = [ ];
+    license = with licenses; [
+      gpl3Plus
+      mit
+    ];
+    maintainers = with maintainers; [ ];
+    mainProgram = "parsegemfile";
   };
 }
diff --git a/pkgs/development/python-modules/gemfileparser2/default.nix b/pkgs/development/python-modules/gemfileparser2/default.nix
index 4a24fb07d7b11..1f92395c8a293 100644
--- a/pkgs/development/python-modules/gemfileparser2/default.nix
+++ b/pkgs/development/python-modules/gemfileparser2/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -26,23 +27,20 @@ buildPythonPackage rec {
       --replace ">=3.6.*" ">=3.6"
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "gemfileparser2"
-  ];
+  pythonImportsCheck = [ "gemfileparser2" ];
 
   meta = with lib; {
     description = "Library to parse Rubygem gemspec and Gemfile files";
     homepage = "https://github.com/nexB/gemfileparser2";
     changelog = "https://github.com/nexB/gemfileparser2/blob/v${version}/CHANGELOG.rst";
-    license = with licenses; [ mit /* or */ gpl3Plus ];
+    license = with licenses; [
+      mit # or
+      gpl3Plus
+    ];
     maintainers = with maintainers; [ harvidsen ];
   };
 }
diff --git a/pkgs/development/python-modules/genanki/default.nix b/pkgs/development/python-modules/genanki/default.nix
index 64159dd7b755f..0d3371813e5db 100644
--- a/pkgs/development/python-modules/genanki/default.nix
+++ b/pkgs/development/python-modules/genanki/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, cached-property
-, chevron
-, fetchPypi
-, frozendict
-, pystache
-, pythonOlder
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  cached-property,
+  chevron,
+  fetchPypi,
+  frozendict,
+  pystache,
+  pythonOlder,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
   # relies on upstream anki
   doCheck = false;
 
-  pythonImportsCheck = [
-    "genanki"
-  ];
+  pythonImportsCheck = [ "genanki" ];
 
   meta = with lib; {
     description = "Generate Anki decks programmatically";
diff --git a/pkgs/development/python-modules/generic/default.nix b/pkgs/development/python-modules/generic/default.nix
index 77952b5046b47..30674f2090526 100644
--- a/pkgs/development/python-modules/generic/default.nix
+++ b/pkgs/development/python-modules/generic/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, exceptiongroup
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  exceptiongroup,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -18,19 +19,15 @@ buildPythonPackage rec {
     hash = "sha256-NfUvmkUIAdm+UZqmBWh0MZTViLJSkeRonPNSnVd+RbA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    exceptiongroup
-  ];
+  propagatedBuildInputs = [ exceptiongroup ];
 
   pythonImportsCheck = [ "generic" ];
 
   meta = with lib; {
     description = "Generic programming (Multiple dispatch) library for Python";
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
     homepage = "https://github.com/gaphor/generic";
     changelog = "https://github.com/gaphor/generic/releases/tag/${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/genie-partner-sdk/default.nix b/pkgs/development/python-modules/genie-partner-sdk/default.nix
new file mode 100644
index 0000000000000..f55cff75cd6e4
--- /dev/null
+++ b/pkgs/development/python-modules/genie-partner-sdk/default.nix
@@ -0,0 +1,38 @@
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  hatchling,
+  aiohttp,
+  fetchPypi,
+}:
+
+buildPythonPackage rec {
+  pname = "genie-partner-sdk";
+  version = "1.0.4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.11";
+
+  src = fetchPypi {
+    inherit version;
+    pname = "genie_partner_sdk";
+    hash = "sha256-DwbIe1pq1YKAA3hRlhYCVJ9xtvfxvoqLLjDSQicUKuw=";
+  };
+
+  nativeBuildInputs = [ hatchling ];
+
+  propagatedBuildInputs = [ aiohttp ];
+
+  # No tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "genie_partner_sdk" ];
+
+  meta = with lib; {
+    description = "An SDK to interact with the AladdinConnect (or OHD) partner API";
+    homepage = "https://github.com/Genie-Garage/aladdin-python-sdk";
+    license = licenses.unfree;
+    maintainers = with maintainers; [ jamiemagee ];
+  };
+}
diff --git a/pkgs/development/python-modules/geniushub-client/default.nix b/pkgs/development/python-modules/geniushub-client/default.nix
index 54b36c7de608f..50a1013bc1085 100644
--- a/pkgs/development/python-modules/geniushub-client/default.nix
+++ b/pkgs/development/python-modules/geniushub-client/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,17 +27,11 @@ buildPythonPackage rec {
       --replace "version=VERSION," 'version="${version}",'
   '';
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "geniushubclient"
-  ];
+  pythonImportsCheck = [ "geniushubclient" ];
 
   meta = with lib; {
     description = "Module to interact with Genius Hub systems";
diff --git a/pkgs/development/python-modules/genome-collector/default.nix b/pkgs/development/python-modules/genome-collector/default.nix
index 70589912520ae..84f34bedd80ed 100644
--- a/pkgs/development/python-modules/genome-collector/default.nix
+++ b/pkgs/development/python-modules/genome-collector/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, appdirs
-, biopython
-, fetchPypi
-, proglog
+{
+  lib,
+  buildPythonPackage,
+  appdirs,
+  biopython,
+  fetchPypi,
+  proglog,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/genpy/default.nix b/pkgs/development/python-modules/genpy/default.nix
index d89efc6b4b405..90686b3ec4704 100644
--- a/pkgs/development/python-modules/genpy/default.nix
+++ b/pkgs/development/python-modules/genpy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytools
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytools,
+  numpy,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/genshi/default.nix b/pkgs/development/python-modules/genshi/default.nix
index 67c66eea90708..78ee38cfa32ac 100644
--- a/pkgs/development/python-modules/genshi/default.nix
+++ b/pkgs/development/python-modules/genshi/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "genshi";
-  version = "0.7.7";
+  version = "0.7.9";
 
   src = fetchPypi {
     pname = "Genshi";
     inherit version;
-    hash = "sha256-wQBSCGLNaQhdEO4ah+kSief1n2s9m9Yiv1iygE5rmqs=";
+    hash = "sha256-x2FwqLLcGJROCRUQPChMuInfzuNODhQLozY8gPdUGtI=";
   };
 
   # FAIL: test_sanitize_remove_script_elem (genshi.filters.tests.html.HTMLSanitizerTestCase)
@@ -20,7 +21,8 @@ buildPythonPackage rec {
   doCheck = false;
 
   propagatedBuildInputs = [
-    setuptools six
+    setuptools
+    six
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/gensim/default.nix b/pkgs/development/python-modules/gensim/default.nix
index f43bfb518cfb8..c005662068ca9 100644
--- a/pkgs/development/python-modules/gensim/default.nix
+++ b/pkgs/development/python-modules/gensim/default.nix
@@ -1,15 +1,17 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchPypi
-, mock
-, numpy
-, scipy
-, smart-open
-, testfixtures
-, pyemd
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchPypi,
+  fetchpatch,
+  mock,
+  numpy,
+  scipy,
+  smart-open,
+  testfixtures,
+  pyemd,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,10 +26,18 @@ buildPythonPackage rec {
     hash = "sha256-maxq9v/UBoLnAVXtn5Lsv0OE1Z+1CvEg00PqXuGzCKs=";
   };
 
-  nativeBuildInputs = [
-    cython
+  patches = [
+    # https://github.com/piskvorky/gensim/pull/3524
+    # Import deprecated scipy.linalg.triu from numpy.triu. remove on next update
+    (fetchpatch {
+      name = "scipi-linalg-triu-fix.patch";
+      url = "https://github.com/piskvorky/gensim/commit/ad68ee3f105fc37cf8db333bfb837fe889ff74ac.patch";
+      hash = "sha256-Ij6HvVD8M2amzcjihu5bo8Lk0iCPl3iIq0lcOnI6G2s=";
+    })
   ];
 
+  nativeBuildInputs = [ cython ];
+
   propagatedBuildInputs = [
     smart-open
     numpy
@@ -40,16 +50,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "gensim"
-  ];
+  pythonImportsCheck = [ "gensim" ];
 
   # Test setup takes several minutes
   doCheck = false;
 
-  pytestFlagsArray = [
-    "gensim/test"
-  ];
+  pytestFlagsArray = [ "gensim/test" ];
 
   meta = with lib; {
     description = "Topic-modelling library";
diff --git a/pkgs/development/python-modules/gentools/default.nix b/pkgs/development/python-modules/gentools/default.nix
index 7dd95925f4ba2..8ecaecbee4722 100644
--- a/pkgs/development/python-modules/gentools/default.nix
+++ b/pkgs/development/python-modules/gentools/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, importlib-metadata
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  importlib-metadata,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-+6KTFxOpwvGOCqy6JU87gOZmDa6MvjR10qES5wIfrjI=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "gentools"
-  ];
+  pythonImportsCheck = [ "gentools" ];
 
   meta = with lib; {
     description = "Tools for generators, generator functions, and generator-based coroutines";
diff --git a/pkgs/development/python-modules/genzshcomp/default.nix b/pkgs/development/python-modules/genzshcomp/default.nix
index 7ab4c747f21d2..58e267927773c 100644
--- a/pkgs/development/python-modules/genzshcomp/default.nix
+++ b/pkgs/development/python-modules/genzshcomp/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,5 +23,4 @@ buildPythonPackage rec {
     homepage = "https://bitbucket.org/hhatto/genzshcomp/";
     license = licenses.bsd0;
   };
-
 }
diff --git a/pkgs/development/python-modules/geoalchemy2/default.nix b/pkgs/development/python-modules/geoalchemy2/default.nix
index 8e49a7d14b71e..35969322e75e8 100644
--- a/pkgs/development/python-modules/geoalchemy2/default.nix
+++ b/pkgs/development/python-modules/geoalchemy2/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, packaging
-, setuptools
-, setuptools-scm
-, shapely
-, sqlalchemy
-, alembic
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  packaging,
+  setuptools,
+  setuptools-scm,
+  shapely,
+  sqlalchemy,
+  alembic,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "geoalchemy2";
-  version = "0.15.0";
+  version = "0.15.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -22,7 +23,7 @@ buildPythonPackage rec {
     owner = "geoalchemy";
     repo = "geoalchemy2";
     rev = "refs/tags/${version}";
-    hash = "sha256-cQixNLtjHPQrnNcxg0MrIdzvun2f1BqKY/2SxfcM2Nc=";
+    hash = "sha256-EMsaB6VDDDvXg9LKa9ms0+AfzX1rG+yeR898EK59DDs=";
   };
 
   build-system = [
@@ -56,9 +57,7 @@ buildPythonPackage rec {
     "tests/test_pickle.py"
   ];
 
-  pythonImportsCheck = [
-    "geoalchemy2"
-  ];
+  pythonImportsCheck = [ "geoalchemy2" ];
 
   optional-dependencies = {
     shapely = [ shapely ];
diff --git a/pkgs/development/python-modules/geocachingapi/default.nix b/pkgs/development/python-modules/geocachingapi/default.nix
index d7ad9cb5fd8a0..55e817ce2748c 100644
--- a/pkgs/development/python-modules/geocachingapi/default.nix
+++ b/pkgs/development/python-modules/geocachingapi/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, backoff
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools-scm
-, yarl
+{
+  lib,
+  aiohttp,
+  backoff,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools-scm,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-C4nj4KFEwsY5V5f0Q1x+9sD8Ihz5m7b3jg2pOyB/pDg=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -35,9 +34,7 @@ buildPythonPackage rec {
   # Tests require a token and network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "geocachingapi"
-  ];
+  pythonImportsCheck = [ "geocachingapi" ];
 
   meta = with lib; {
     description = "Python API to control the Geocaching API";
diff --git a/pkgs/development/python-modules/geocoder/default.nix b/pkgs/development/python-modules/geocoder/default.nix
index d3152b6a63c54..8703ba774d461 100644
--- a/pkgs/development/python-modules/geocoder/default.nix
+++ b/pkgs/development/python-modules/geocoder/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchPypi
-, future
-, pythonOlder
-, ratelim
-, requests
-, setuptools
-, six
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchPypi,
+  future,
+  pythonOlder,
+  ratelim,
+  requests,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-yZJTdMlhV30K7kA7Ceb46hlx2RPwEfAMpwx2vq96d+c=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     click
@@ -34,9 +33,7 @@ buildPythonPackage rec {
     six
   ];
 
-  pythonImportsCheck = [
-    "geocoder"
-  ];
+  pythonImportsCheck = [ "geocoder" ];
 
   meta = with lib; {
     description = "Module for geocoding";
diff --git a/pkgs/development/python-modules/geodatasets/default.nix b/pkgs/development/python-modules/geodatasets/default.nix
new file mode 100644
index 0000000000000..306c152dffa9f
--- /dev/null
+++ b/pkgs/development/python-modules/geodatasets/default.nix
@@ -0,0 +1,54 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  geopandas,
+  pooch,
+  pyogrio,
+  setuptools-scm,
+}:
+
+buildPythonPackage rec {
+  pname = "geodatasets";
+  version = "2023.12.0";
+  pyproject = true;
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "geopandas";
+    repo = "geodatasets";
+    rev = version;
+    hash = "sha256-yecAky3lCKcSgW4kkYTBNnyKyIWnGSBL600wVgGN8CE=";
+  };
+
+  build-system = [ setuptools-scm ];
+
+  propagatedBuildInputs = [ pooch ];
+
+  nativeCheckInputs = [
+    geopandas
+    pyogrio
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export HOME=$TMPDIR
+  '';
+
+  pytestFlagsArray = [
+    # disable tests which require network access
+    "-m 'not request'"
+  ];
+
+  pythonImportsCheck = [ "geodatasets" ];
+
+  meta = {
+    description = "Spatial data examples";
+    homepage = "https://geodatasets.readthedocs.io/";
+    license = lib.licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/geographiclib/default.nix b/pkgs/development/python-modules/geographiclib/default.nix
index d9f7211a820d8..14433fe94f3f9 100644
--- a/pkgs/development/python-modules/geographiclib/default.nix
+++ b/pkgs/development/python-modules/geographiclib/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-9/Qchdw+HC09k17IZmDcOyyEjIPhf5qeUbqdUUahWFk=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "geographiclib" ];
 
diff --git a/pkgs/development/python-modules/geoip/default.nix b/pkgs/development/python-modules/geoip/default.nix
index 6f66b3d67e1f8..d2af48f5049f8 100644
--- a/pkgs/development/python-modules/geoip/default.nix
+++ b/pkgs/development/python-modules/geoip/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, libgeoip
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  libgeoip,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,9 @@ buildPythonPackage rec {
     sha256 = "1rphxf3vrn8wywjgr397f49s0s22m83lpwcq45lm0h2p45mdm458";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    libgeoip
-  ];
+  propagatedBuildInputs = [ libgeoip ];
 
   # Tests cannot be run because they require data that isn't included in the
   # release tarball.
diff --git a/pkgs/development/python-modules/geoip2/default.nix b/pkgs/development/python-modules/geoip2/default.nix
index 4a0bec9476e8b..179ed9888c74b 100644
--- a/pkgs/development/python-modules/geoip2/default.nix
+++ b/pkgs/development/python-modules/geoip2/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, setuptools-scm
-, maxminddb
-, mocket
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, requests
-, requests-mock
-, urllib3
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  maxminddb,
+  mocket,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  requests,
+  requests-mock,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -44,16 +45,14 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "geoip2"
-  ];
+  pythonImportsCheck = [ "geoip2" ];
 
-  disabledTests = lib.optionals (pythonAtLeast "3.11") [
-    # https://github.com/maxmind/GeoIP2-python/pull/136
-    "TestAsyncClient"
-  ] ++ lib.optionals (pythonAtLeast "3.10") [
-    "test_request"
-  ];
+  disabledTests =
+    lib.optionals (pythonAtLeast "3.11") [
+      # https://github.com/maxmind/GeoIP2-python/pull/136
+      "TestAsyncClient"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.10") [ "test_request" ];
 
   meta = with lib; {
     description = "GeoIP2 webservice client and database reader";
diff --git a/pkgs/development/python-modules/geojson-client/default.nix b/pkgs/development/python-modules/geojson-client/default.nix
index f315d99d8dd8b..694a27dcfc11d 100644
--- a/pkgs/development/python-modules/geojson-client/default.nix
+++ b/pkgs/development/python-modules/geojson-client/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, geojson
-, haversine
-, pytz
-, requests
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  geojson,
+  haversine,
+  pytz,
+  requests,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,13 +31,9 @@ buildPythonPackage rec {
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "geojson_client"
-  ];
+  pythonImportsCheck = [ "geojson_client" ];
 
   meta = with lib; {
     description = "Python module for convenient access to GeoJSON feeds";
diff --git a/pkgs/development/python-modules/geojson/default.nix b/pkgs/development/python-modules/geojson/default.nix
index 28e05315861da..a8c1ea9990776 100644
--- a/pkgs/development/python-modules/geojson/default.nix
+++ b/pkgs/development/python-modules/geojson/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, unittestCheckHook
- }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  unittestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "geojson";
@@ -17,17 +18,11 @@ buildPythonPackage rec {
     hash = "sha256-OL+7ntgzpA63ALQ8whhKRePsKxcp81PLuU1bHJvxN9U=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "geojson"
-  ];
+  pythonImportsCheck = [ "geojson" ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   meta = {
     homepage = "https://github.com/jazzband/geojson";
diff --git a/pkgs/development/python-modules/geomet/default.nix b/pkgs/development/python-modules/geomet/default.nix
index 622027f8aff7d..58eb57fe6856c 100644
--- a/pkgs/development/python-modules/geomet/default.nix
+++ b/pkgs/development/python-modules/geomet/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, click
-, setuptools
-, six
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  click,
+  setuptools,
+  six,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-YfI29925nffzRBMJb6Gm3muvlpwP3zSw2YJ2vWcf+Bo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     click
     six
   ];
 
-  pythonImportsCheck = [
-    "geomet"
-  ];
+  pythonImportsCheck = [ "geomet" ];
 
   meta = with lib; {
     description = "Convert GeoJSON to WKT/WKB (Well-Known Text/Binary) and vice versa";
@@ -40,6 +37,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/geomet/geomet";
     changelog = "https://github.com/geomet/geomet/releases/tag/${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [ turion ris ];
+    maintainers = with maintainers; [
+      turion
+      ris
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/geometric/default.nix b/pkgs/development/python-modules/geometric/default.nix
index becd876ee8606..6abdda570d8b3 100644
--- a/pkgs/development/python-modules/geometric/default.nix
+++ b/pkgs/development/python-modules/geometric/default.nix
@@ -1,12 +1,13 @@
-{ buildPythonPackage
-, lib
-, fetchFromGitHub
-, fetchpatch
-, networkx
-, numpy
-, scipy
-, six
-, pytestCheckHook
+{
+  buildPythonPackage,
+  lib,
+  fetchFromGitHub,
+  fetchpatch,
+  networkx,
+  numpy,
+  scipy,
+  six,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,11 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-DmrKLVQrPQDzTMxqEImnvRr3Wb2R3+hxtDVCN9XUcFM=";
   };
 
-  patches = [ (fetchpatch {
-    name = "ase-is-optional";
-    url = "https://github.com/leeping/geomeTRIC/commit/aff6e4411980ac9cbe112a050c3a34ba7e305a43.patch";
-    hash = "sha256-JGGPX+JwkQ8Imgmyx+ReRTV+k6mxHYgm+Nd8WUjbFEg=";
-  }) ];
+  patches = [
+    (fetchpatch {
+      name = "ase-is-optional";
+      url = "https://github.com/leeping/geomeTRIC/commit/aff6e4411980ac9cbe112a050c3a34ba7e305a43.patch";
+      hash = "sha256-JGGPX+JwkQ8Imgmyx+ReRTV+k6mxHYgm+Nd8WUjbFEg=";
+    })
+  ];
 
   propagatedBuildInputs = [
     networkx
@@ -48,4 +51,3 @@ buildPythonPackage rec {
     maintainers = [ maintainers.markuskowa ];
   };
 }
-
diff --git a/pkgs/development/python-modules/geopandas/default.nix b/pkgs/development/python-modules/geopandas/default.nix
index f786d3b252938..e4b958d424618 100644
--- a/pkgs/development/python-modules/geopandas/default.nix
+++ b/pkgs/development/python-modules/geopandas/default.nix
@@ -1,17 +1,19 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 
-, fiona
-, packaging
-, pandas
-, pyproj
-, rtree
-, shapely
+  fiona,
+  packaging,
+  pandas,
+  pyproj,
+  rtree,
+  shapely,
 }:
 
 buildPythonPackage rec {
@@ -28,10 +30,22 @@ buildPythonPackage rec {
     hash = "sha256-FBhPcae8bnNnsfr14I1p22VhoOf9USF9DAcrAqx+zso=";
   };
 
-  build-system = [
-    setuptools
+  patches = [
+    # GDAL 3.9 compat for boolean array in shp
+    (fetchpatch {
+      url = "https://github.com/geopandas/geopandas/commit/f1be60532bed31cb410ce4db2da6b733bc8713c9.patch";
+      sha256 = "sha256-DZhC7sSOki0XTcojSRvVVSlsnYnxCw/Ee7vHBmDCsbA=";
+    })
+
+    # GDAL 3.9 compat for boolean array in shp for fiona
+    (fetchpatch {
+      url = "https://github.com/geopandas/geopandas/commit/1e08422d8aee4877752047a8a08f41e3a67188f2.patch";
+      sha256 = "sha256-SpNqe7jL1rA79YhhSUfEzt30plt56Tux5v1h7IHp31I=";
+    })
   ];
 
+  build-system = [ setuptools ];
+
   propagatedBuildInputs = [
     fiona
     packaging
@@ -56,13 +70,9 @@ buildPythonPackage rec {
     "test_read_file_url"
   ];
 
-  pytestFlagsArray = [
-    "geopandas"
-  ];
+  pytestFlagsArray = [ "geopandas" ];
 
-  pythonImportsCheck = [
-    "geopandas"
-  ];
+  pythonImportsCheck = [ "geopandas" ];
 
   meta = with lib; {
     description = "Python geospatial data analysis framework";
diff --git a/pkgs/development/python-modules/geopy/default.nix b/pkgs/development/python-modules/geopy/default.nix
index 4616dd3866c8d..2634edb0d856a 100644
--- a/pkgs/development/python-modules/geopy/default.nix
+++ b/pkgs/development/python-modules/geopy/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, docutils
-, fetchFromGitHub
-, geographiclib
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, pytz
+{
+  lib,
+  buildPythonPackage,
+  docutils,
+  fetchFromGitHub,
+  geographiclib,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-mlOXDEtYry1IUAZWrP2FuY/CGliUnCPYLULnLNN0n4Y=";
   };
 
-  propagatedBuildInputs = [
-    geographiclib
-  ];
+  propagatedBuildInputs = [ geographiclib ];
 
   nativeCheckInputs = [
     docutils
@@ -37,9 +36,7 @@ buildPythonPackage rec {
     "test_user_agent_default"
   ];
 
-  disabledTestPaths = lib.optionals (pythonAtLeast "3.12") [
-    "test/test_init.py"
-  ];
+  disabledTestPaths = lib.optionals (pythonAtLeast "3.12") [ "test/test_init.py" ];
 
   pytestFlagsArray = [ "--skip-tests-requiring-internet" ];
 
diff --git a/pkgs/development/python-modules/georss-client/default.nix b/pkgs/development/python-modules/georss-client/default.nix
index 51d895456da34..dfd4531c283d3 100644
--- a/pkgs/development/python-modules/georss-client/default.nix
+++ b/pkgs/development/python-modules/georss-client/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, dateparser
-, fetchFromGitHub
-, haversine
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
-, xmltodict
+{
+  lib,
+  buildPythonPackage,
+  dateparser,
+  fetchFromGitHub,
+  haversine,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-DvQifO/jirpacWZccK4WPxnm/iYs1qT5nAYQUDoleO4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     haversine
@@ -35,13 +34,9 @@ buildPythonPackage rec {
     dateparser
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "georss_client"
-  ];
+  pythonImportsCheck = [ "georss_client" ];
 
   meta = with lib; {
     description = "Python library for accessing GeoRSS feeds";
diff --git a/pkgs/development/python-modules/georss-generic-client/default.nix b/pkgs/development/python-modules/georss-generic-client/default.nix
index b3679a93a2fd3..d0ac06cf8122c 100644
--- a/pkgs/development/python-modules/georss-generic-client/default.nix
+++ b/pkgs/development/python-modules/georss-generic-client/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, georss-client
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  georss-client,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-Y19zMHL6DjAqiDi47Lmst8m9d9kEtTgyRiECKo6CqZY=";
   };
 
-  propagatedBuildInputs = [
-    georss-client
-  ];
+  propagatedBuildInputs = [ georss-client ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "georss_generic_client" ];
 
diff --git a/pkgs/development/python-modules/georss-ign-sismologia-client/default.nix b/pkgs/development/python-modules/georss-ign-sismologia-client/default.nix
index 5c3b095a2c3f2..133a68ba06e14 100644
--- a/pkgs/development/python-modules/georss-ign-sismologia-client/default.nix
+++ b/pkgs/development/python-modules/georss-ign-sismologia-client/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, dateparser
-, fetchFromGitHub
-, georss-client
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  dateparser,
+  fetchFromGitHub,
+  georss-client,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-geIxF4GumxRoetJ6mIZCzI3pAvWjJJoY66aQYd2Mzik=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     dateparser
     georss-client
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "georss_ign_sismologia_client"
-  ];
+  pythonImportsCheck = [ "georss_ign_sismologia_client" ];
 
   meta = with lib; {
     description = "Python library for accessing the IGN Sismologia GeoRSS feed";
diff --git a/pkgs/development/python-modules/georss-ingv-centro-nazionale-terremoti-client/default.nix b/pkgs/development/python-modules/georss-ingv-centro-nazionale-terremoti-client/default.nix
index e74f3670f223a..83f1e307cf262 100644
--- a/pkgs/development/python-modules/georss-ingv-centro-nazionale-terremoti-client/default.nix
+++ b/pkgs/development/python-modules/georss-ingv-centro-nazionale-terremoti-client/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, georss-client
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  georss-client,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-J72yd1D4mKCOsBRLMUXKnxmjr6g0IQApTTrWjklczN8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    georss-client
-  ];
+  propagatedBuildInputs = [ georss-client ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "georss_ingv_centro_nazionale_terremoti_client"
-  ];
+  pythonImportsCheck = [ "georss_ingv_centro_nazionale_terremoti_client" ];
 
   meta = with lib; {
     description = "Python library for accessing the INGV Centro Nazionale Terremoti GeoRSS feed";
diff --git a/pkgs/development/python-modules/georss-nrcan-earthquakes-client/default.nix b/pkgs/development/python-modules/georss-nrcan-earthquakes-client/default.nix
index ef8ea220e9e1f..299d78bd3c825 100644
--- a/pkgs/development/python-modules/georss-nrcan-earthquakes-client/default.nix
+++ b/pkgs/development/python-modules/georss-nrcan-earthquakes-client/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, georss-client
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  georss-client,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-FFm37+dCkdoZXgvAjYhcHOYFf0oQ37bxJb7vzbWDTro=";
   };
 
-  propagatedBuildInputs = [
-    georss-client
-  ];
+  propagatedBuildInputs = [ georss-client ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "georss_nrcan_earthquakes_client"
-  ];
+  pythonImportsCheck = [ "georss_nrcan_earthquakes_client" ];
 
   meta = with lib; {
     description = "Python library for accessing Natural Resources Canada Earthquakes feed";
diff --git a/pkgs/development/python-modules/georss-qld-bushfire-alert-client/default.nix b/pkgs/development/python-modules/georss-qld-bushfire-alert-client/default.nix
index 6e346b402c723..9ec61acb00d5d 100644
--- a/pkgs/development/python-modules/georss-qld-bushfire-alert-client/default.nix
+++ b/pkgs/development/python-modules/georss-qld-bushfire-alert-client/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, georss-client
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  georss-client,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-ajCw1m7Qm1kZE/hOsBzFXPWAxl/pFD8pOOQo6qvachE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    georss-client
-  ];
+  propagatedBuildInputs = [ georss-client ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "georss_qld_bushfire_alert_client"
-  ];
+  pythonImportsCheck = [ "georss_qld_bushfire_alert_client" ];
 
   meta = with lib; {
     description = "Python library for accessing Queensland Bushfire Alert feed";
diff --git a/pkgs/development/python-modules/georss-tfs-incidents-client/default.nix b/pkgs/development/python-modules/georss-tfs-incidents-client/default.nix
index adb89685d9bf3..764fc3fc92f86 100644
--- a/pkgs/development/python-modules/georss-tfs-incidents-client/default.nix
+++ b/pkgs/development/python-modules/georss-tfs-incidents-client/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, georss-client
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  georss-client,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-Cz0PRcGReAE0mg04ktCUaoLqPTjvyU1TiB/Pdz7o7zo=";
   };
 
-  propagatedBuildInputs = [
-    georss-client
-  ];
+  propagatedBuildInputs = [ georss-client ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "georss_tfs_incidents_client"
-  ];
+  pythonImportsCheck = [ "georss_tfs_incidents_client" ];
 
   meta = with lib; {
     description = "Python library for accessing Tasmania Fire Service Incidents feed";
diff --git a/pkgs/development/python-modules/georss-wa-dfes-client/default.nix b/pkgs/development/python-modules/georss-wa-dfes-client/default.nix
index 170bae63567cd..d686f5049aefc 100644
--- a/pkgs/development/python-modules/georss-wa-dfes-client/default.nix
+++ b/pkgs/development/python-modules/georss-wa-dfes-client/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, georss-client
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  georss-client,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,20 +18,14 @@ buildPythonPackage rec {
     owner = "exxamalte";
     repo = "python-georss-wa-dfes-client";
     rev = "v${version}";
-     hash = "sha256-s7qGTlWFdOtw0eMK7idld7HPOxO8CjODCmUi0WmRLdI=";
+    hash = "sha256-s7qGTlWFdOtw0eMK7idld7HPOxO8CjODCmUi0WmRLdI=";
   };
 
-  propagatedBuildInputs = [
-    georss-client
-  ];
+  propagatedBuildInputs = [ georss-client ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "georss_wa_dfes_client"
-  ];
+  pythonImportsCheck = [ "georss_wa_dfes_client" ];
 
   meta = with lib; {
     description = "Python library for accessing WA Department of Fire and Emergency Services (DFES) feed";
diff --git a/pkgs/development/python-modules/gerbonara/default.nix b/pkgs/development/python-modules/gerbonara/default.nix
index 15ec60ccc3856..480a7dc239280 100644
--- a/pkgs/development/python-modules/gerbonara/default.nix
+++ b/pkgs/development/python-modules/gerbonara/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytest
-, click
-, numpy
-, scipy
-, rtree
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytest,
+  click,
+  numpy,
+  scipy,
+  rtree,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
 
   format = "setuptools";
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     click
diff --git a/pkgs/development/python-modules/get-video-properties/default.nix b/pkgs/development/python-modules/get-video-properties/default.nix
index 98fe8e9b1d424..70b2c568f6b70 100644
--- a/pkgs/development/python-modules/get-video-properties/default.nix
+++ b/pkgs/development/python-modules/get-video-properties/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, ffmpeg-headless
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ffmpeg-headless,
 }:
 
 buildPythonPackage rec {
@@ -35,5 +36,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ globin ];
   };
-
 }
diff --git a/pkgs/development/python-modules/getjump/default.nix b/pkgs/development/python-modules/getjump/default.nix
index 4d3851c913c40..62f6e49ec63d7 100644
--- a/pkgs/development/python-modules/getjump/default.nix
+++ b/pkgs/development/python-modules/getjump/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchPypi
-, pillow
-, poetry-core
-, requests
-, rich
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchPypi,
+  pillow,
+  poetry-core,
+  requests,
+  rich,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-WSLfhVCqP+N+2Rs2PUXOknnlNx3UtWdFYrK1lTW1fqQ=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     beautifulsoup4
@@ -29,9 +28,7 @@ buildPythonPackage rec {
     rich
   ];
 
-  pythonImportsCheck = [
-    "getjump"
-  ];
+  pythonImportsCheck = [ "getjump" ];
 
   # all the tests talk to the internet
   doCheck = false;
diff --git a/pkgs/development/python-modules/getkey/default.nix b/pkgs/development/python-modules/getkey/default.nix
index a5adb534e3e77..98863e84816a6 100644
--- a/pkgs/development/python-modules/getkey/default.nix
+++ b/pkgs/development/python-modules/getkey/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, flake8
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  flake8,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/getmac/default.nix b/pkgs/development/python-modules/getmac/default.nix
index a62f47c2ece59..141a6c44d27d5 100644
--- a/pkgs/development/python-modules/getmac/default.nix
+++ b/pkgs/development/python-modules/getmac/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, py
-, pytest-benchmark
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  py,
+  pytest-benchmark,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -41,9 +42,7 @@ buildPythonPackage rec {
     "test_initialize_method_cache_valid_types"
   ];
 
-  pythonImportsCheck = [
-    "getmac"
-  ];
+  pythonImportsCheck = [ "getmac" ];
 
   meta = with lib; {
     description = "Python package to get the MAC address of network interfaces and hosts on the local network";
diff --git a/pkgs/development/python-modules/gevent-socketio/default.nix b/pkgs/development/python-modules/gevent-socketio/default.nix
index 3383987144945..29f1714039f55 100644
--- a/pkgs/development/python-modules/gevent-socketio/default.nix
+++ b/pkgs/development/python-modules/gevent-socketio/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, gevent
-, gevent-websocket
-, mock
-, versiontools
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  gevent,
+  gevent-websocket,
+  mock,
+  versiontools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,24 +21,16 @@ buildPythonPackage rec {
     hash = "sha256-UzlKuT+9hNnbuyvvhTSfalA7/FPYapvoZTJQ8aBBKv8=";
   };
 
-  nativeBuildInputs = [
-    versiontools
-  ];
+  nativeBuildInputs = [ versiontools ];
 
-  buildInputs = [
-    gevent-websocket
-  ];
+  buildInputs = [ gevent-websocket ];
 
-  propagatedBuildInputs = [
-    gevent
-  ];
+  propagatedBuildInputs = [ gevent ];
 
   # Tests are not ported to Python 3
   doCheck = false;
 
-  pythonImportsCheck = [
-    "socketio"
-  ];
+  pythonImportsCheck = [ "socketio" ];
 
   meta = with lib; {
     description = "SocketIO server based on the Gevent pywsgi server";
diff --git a/pkgs/development/python-modules/gevent-websocket/default.nix b/pkgs/development/python-modules/gevent-websocket/default.nix
index 66709d8fafa58..9fad31860ef11 100644
--- a/pkgs/development/python-modules/gevent-websocket/default.nix
+++ b/pkgs/development/python-modules/gevent-websocket/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, gevent
-, gunicorn
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  gevent,
+  gunicorn,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
   # Module has no test
   doCheck = false;
 
-  pythonImportsCheck = [
-    "geventwebsocket"
-  ];
+  pythonImportsCheck = [ "geventwebsocket" ];
 
   meta = with lib; {
     description = "Websocket handler for the gevent pywsgi server";
diff --git a/pkgs/development/python-modules/gevent/default.nix b/pkgs/development/python-modules/gevent/default.nix
index cee0b07bdf8f2..1e38def4560ec 100644
--- a/pkgs/development/python-modules/gevent/default.nix
+++ b/pkgs/development/python-modules/gevent/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, isPyPy
-, python
-, libev
-, cffi
-, cython
-, greenlet
-, importlib-metadata
-, setuptools
-, wheel
-, zope-event
-, zope-interface
-, pythonOlder
-, c-ares
-, libuv
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  isPyPy,
+  python,
+  libev,
+  cffi,
+  cython,
+  greenlet,
+  importlib-metadata,
+  setuptools,
+  wheel,
+  zope-event,
+  zope-interface,
+  pythonOlder,
+  c-ares,
+  libuv,
 
-# for passthru.tests
-, dulwich
-, gunicorn
-, opentracing
-, pika
+  # for passthru.tests
+  dulwich,
+  gunicorn,
+  opentracing,
+  pika,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
     cython
     setuptools
     wheel
-  ] ++ lib.optionals (!isPyPy) [
-    cffi
-  ];
+  ] ++ lib.optionals (!isPyPy) [ cffi ];
 
   buildInputs = [
     libev
@@ -53,9 +52,7 @@ buildPythonPackage rec {
     importlib-metadata
     zope-event
     zope-interface
-  ] ++ lib.optionals (!isPyPy) [
-    greenlet
-  ];
+  ] ++ lib.optionals (!isPyPy) [ greenlet ];
 
   # Bunch of failures.
   doCheck = false;
@@ -70,7 +67,8 @@ buildPythonPackage rec {
       dulwich
       gunicorn
       opentracing
-      pika;
+      pika
+      ;
   } // lib.filterAttrs (k: v: lib.hasInfix "gevent" k) python.pkgs;
 
   GEVENTSETUP_EMBED = "0";
diff --git a/pkgs/development/python-modules/geventhttpclient/default.nix b/pkgs/development/python-modules/geventhttpclient/default.nix
index d61e390135c3d..478faeaeb3c33 100644
--- a/pkgs/development/python-modules/geventhttpclient/default.nix
+++ b/pkgs/development/python-modules/geventhttpclient/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, brotli
-, buildPythonPackage
-, certifi
-, dpkt
-, fetchFromGitHub
-, gevent
-, llhttp
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, six
-, stdenv
-, urllib3
+{
+  lib,
+  brotli,
+  buildPythonPackage,
+  certifi,
+  dpkt,
+  fetchFromGitHub,
+  gevent,
+  llhttp,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  six,
+  stdenv,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     hash = "sha256-uOGnwPbvTam14SFTUT0UrwxHfP4a5cn3a7EhLoGBUrA=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     brotli
@@ -55,13 +54,9 @@ buildPythonPackage rec {
     rm -rf geventhttpclient
   '';
 
-  pytestFlagsArray = [
-    "-m 'not network'"
-  ];
+  pytestFlagsArray = [ "-m 'not network'" ];
 
-  pythonImportsCheck = [
-    "geventhttpclient"
-  ];
+  pythonImportsCheck = [ "geventhttpclient" ];
 
   meta = with lib; {
     homepage = "https://github.com/geventhttpclient/geventhttpclient";
diff --git a/pkgs/development/python-modules/gfal2-python/default.nix b/pkgs/development/python-modules/gfal2-python/default.nix
index d9ffbe8a23e7c..52cb5ad1b2274 100644
--- a/pkgs/development/python-modules/gfal2-python/default.nix
+++ b/pkgs/development/python-modules/gfal2-python/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cmake
-, pkg-config
-, boost
-, gfal2
-, glib
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cmake,
+  pkg-config,
+  boost,
+  gfal2,
+  glib,
+  pythonAtLeast,
   # For tests
-, gfal2-util ? null
+  gfal2-util ? null,
 }:
 buildPythonPackage rec {
   pname = "gfal2-python";
@@ -31,15 +32,12 @@ buildPythonPackage rec {
   # We don't want setup.py to (re-)execute cmake in buildPhase
   # Besides, this package is totally handled by CMake, which means no additional configuration is needed.
   dontConfigure = true;
-  pythonImportsCheck = [
-    "gfal2"
-  ];
+  pythonImportsCheck = [ "gfal2" ];
   passthru = {
     inherit gfal2;
     tests = {
       inherit gfal2-util;
-    }
-    // lib.optionalAttrs (gfal2-util != null) gfal2-util.tests or { };
+    } // lib.optionalAttrs (gfal2-util != null) gfal2-util.tests or { };
   };
   meta = with lib; {
     description = "Python binding for gfal2";
diff --git a/pkgs/development/python-modules/gfal2-util/default.nix b/pkgs/development/python-modules/gfal2-util/default.nix
index 2aabf3b43e88d..4294aa48b741c 100644
--- a/pkgs/development/python-modules/gfal2-util/default.nix
+++ b/pkgs/development/python-modules/gfal2-util/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, callPackage
-, fetchFromGitHub
-, runCommandLocal
+{
+  lib,
+  buildPythonPackage,
+  callPackage,
+  fetchFromGitHub,
+  runCommandLocal,
   # Build inputs
-, gfal2-python
+  gfal2-python,
   # For tests
-, xrootd # pkgs.xrootd
+  xrootd, # pkgs.xrootd
 }:
 (buildPythonPackage rec {
   pname = "gfal2-util";
@@ -27,13 +28,9 @@
     done
   '';
 
-  propagatedBuildInputs = [
-    gfal2-python
-  ];
+  propagatedBuildInputs = [ gfal2-python ];
 
-  pythonImportsCheck = [
-    "gfal2_util"
-  ];
+  pythonImportsCheck = [ "gfal2_util" ];
 
   meta = with lib; {
     description = "CLI for gfal2";
@@ -41,63 +38,74 @@
     license = licenses.asl20;
     maintainers = with maintainers; [ ShamrockLee ];
   };
-}).overrideAttrs (finalAttrs: previousAttrs: lib.recursiveUpdate previousAttrs {
-  passthru = {
-    inherit (gfal2-python) gfal2;
+}).overrideAttrs
+  (
+    finalAttrs: previousAttrs:
+    lib.recursiveUpdate previousAttrs {
+      passthru = {
+        inherit (gfal2-python) gfal2;
 
-    fetchGfal2 = lib.makeOverridable (callPackage ./fetchgfal2.nix { gfal2-util = finalAttrs.finalPackage; });
+        fetchGfal2 = lib.makeOverridable (
+          callPackage ./fetchgfal2.nix { gfal2-util = finalAttrs.finalPackage; }
+        );
 
-    # With these functionality tests, it should be safe to merge version bumps once all the tests are passed.
-    tests =
-      let
-        # Use the the bin output hash of gfal2-util as version to ensure that
-        # the test gets rebuild everytime gfal2-util gets rebuild
-        versionFODTests = finalAttrs.version + "-" + lib.substring (lib.stringLength builtins.storeDir + 1) 32 "${self}";
-        self = finalAttrs.finalPackage;
-      in
-      lib.optionalAttrs gfal2-python.gfal2.enablePluginStatus.xrootd (
-        let
-          # Test against a real-world dataset from CERN Open Data
-          # borrowed from `xrootd.tests`.
-          urlTestFile = xrootd.tests.test-xrdcp.url;
-          hashTestFile = xrootd.tests.test-xrdcp.outputHash;
-          urlTestDir = dirOf urlTestFile;
-        in
-        {
-          test-copy-file-xrootd = finalAttrs.passthru.fetchGfal2 {
-            url = urlTestFile;
-            hash = hashTestFile;
-            extraGfalCopyFlags = [ "--verbose" ];
-            pname = "gfal2-util-test-copy-file-xrootd";
-            version = versionFODTests;
-            allowSubstitutes = false;
-          };
+        # With these functionality tests, it should be safe to merge version bumps once all the tests are passed.
+        tests =
+          let
+            # Use the the bin output hash of gfal2-util as version to ensure that
+            # the test gets rebuild everytime gfal2-util gets rebuild
+            versionFODTests =
+              finalAttrs.version + "-" + lib.substring (lib.stringLength builtins.storeDir + 1) 32 "${self}";
+            self = finalAttrs.finalPackage;
+          in
+          lib.optionalAttrs gfal2-python.gfal2.enablePluginStatus.xrootd (
+            let
+              # Test against a real-world dataset from CERN Open Data
+              # borrowed from `xrootd.tests`.
+              urlTestFile = xrootd.tests.test-xrdcp.url;
+              hashTestFile = xrootd.tests.test-xrdcp.outputHash;
+              urlTestDir = dirOf urlTestFile;
+            in
+            {
+              test-copy-file-xrootd = finalAttrs.passthru.fetchGfal2 {
+                url = urlTestFile;
+                hash = hashTestFile;
+                extraGfalCopyFlags = [ "--verbose" ];
+                pname = "gfal2-util-test-copy-file-xrootd";
+                version = versionFODTests;
+                allowSubstitutes = false;
+              };
 
-          test-copy-dir-xrootd = finalAttrs.passthru.fetchGfal2 {
-            url = urlTestDir;
-            hash = "sha256-vOahIhvx1oE9sfkqANMGUvGeLHS737wyfYWo4rkvrxw=";
-            recursive = true;
-            extraGfalCopyFlags = [ "--verbose" ];
-            pname = "gfal2-util-test-copy-dir-xrootd";
-            version = versionFODTests;
-            allowSubstitutes = false;
-          };
+              test-copy-dir-xrootd = finalAttrs.passthru.fetchGfal2 {
+                url = urlTestDir;
+                hash = "sha256-vOahIhvx1oE9sfkqANMGUvGeLHS737wyfYWo4rkvrxw=";
+                recursive = true;
+                extraGfalCopyFlags = [ "--verbose" ];
+                pname = "gfal2-util-test-copy-dir-xrootd";
+                version = versionFODTests;
+                allowSubstitutes = false;
+              };
 
-          test-ls-dir-xrootd = (runCommandLocal "test-gfal2-util-ls-dir-xrootd" { } ''
-            set -eu -o pipefail
-            gfal-ls "$url" | grep "$baseNameExpected" | tee "$out"
-          '').overrideAttrs (finalAttrs: previousAttrs: {
-            pname = previousAttrs.name;
-            version = versionFODTests;
-            name = "${finalAttrs.pname}-${finalAttrs.version}";
-            nativeBuildInputs = [ self ];
-            url = urlTestDir;
-            baseNameExpected = baseNameOf urlTestFile;
-            outputHashMode = "flat";
-            outputHashAlgo = "sha256";
-            outputHash = builtins.hashString finalAttrs.outputHashAlgo (finalAttrs.baseNameExpected + "\n");
-          });
-        }
-      );
-  };
-})
+              test-ls-dir-xrootd =
+                (runCommandLocal "test-gfal2-util-ls-dir-xrootd" { } ''
+                  set -eu -o pipefail
+                  gfal-ls "$url" | grep "$baseNameExpected" | tee "$out"
+                '').overrideAttrs
+                  (
+                    finalAttrs: previousAttrs: {
+                      pname = previousAttrs.name;
+                      version = versionFODTests;
+                      name = "${finalAttrs.pname}-${finalAttrs.version}";
+                      nativeBuildInputs = [ self ];
+                      url = urlTestDir;
+                      baseNameExpected = baseNameOf urlTestFile;
+                      outputHashMode = "flat";
+                      outputHashAlgo = "sha256";
+                      outputHash = builtins.hashString finalAttrs.outputHashAlgo (finalAttrs.baseNameExpected + "\n");
+                    }
+                  );
+            }
+          );
+      };
+    }
+  )
diff --git a/pkgs/development/python-modules/gfal2-util/fetchgfal2.nix b/pkgs/development/python-modules/gfal2-util/fetchgfal2.nix
index ab5ae45ef160a..d92cb9b96c064 100644
--- a/pkgs/development/python-modules/gfal2-util/fetchgfal2.nix
+++ b/pkgs/development/python-modules/gfal2-util/fetchgfal2.nix
@@ -1,19 +1,21 @@
-{ lib
-, runCommandLocal
-, gfal2-util
+{
+  lib,
+  runCommandLocal,
+  gfal2-util,
 }:
 
 # `url` and `urls` should only be overriden via `<pkg>.override`, but not `<pkg>.overrideAttrs`.
-{ name ? ""
-, pname ? ""
-, version ? ""
-, urls ? [ ]
-, url ? if urls == [ ] then abort "Expect either non-empty `urls` or `url`" else lib.head urls
-, hash ? lib.fakeHash
-, recursive ? false
-, intermediateDestUrls ? [ ]
-, extraGfalCopyFlags ? [ ]
-, allowSubstitutes ? true
+{
+  name ? "",
+  pname ? "",
+  version ? "",
+  urls ? [ ],
+  url ? if urls == [ ] then abort "Expect either non-empty `urls` or `url`" else lib.head urls,
+  hash ? lib.fakeHash,
+  recursive ? false,
+  intermediateDestUrls ? [ ],
+  extraGfalCopyFlags ? [ ],
+  allowSubstitutes ? true,
 }:
 
 (runCommandLocal name { } ''
@@ -26,23 +28,28 @@
     echo "gfal-copy failed trying to download from any of the urls" >&2
     exit "$ret"
   fi
-'').overrideAttrs (finalAttrs: previousAttrs:
-{
-  __structuredAttrs = true;
-  inherit allowSubstitutes;
-  nativeBuildInputs = [ gfal2-util ];
-  outputHashAlgo = null;
-  outputHashMode = if finalAttrs.recursive then "recursive" else "flat";
-  outputHash = hash;
-  inherit url;
-  urls = if urls == [ ] then lib.singleton url else urls;
-  gfalCopyFlags = extraGfalCopyFlags
-  ++ lib.optional finalAttrs.recursive "--recursive"
-  ;
-  inherit recursive intermediateDestUrls;
-} // (if (pname != "" && version != "") then {
-  inherit pname version;
-  name = "${finalAttrs.pname}-${finalAttrs.version}";
-} else {
-  name = if (name != "") then name else (baseNameOf url);
-}))
+'').overrideAttrs
+  (
+    finalAttrs: previousAttrs:
+    {
+      __structuredAttrs = true;
+      inherit allowSubstitutes;
+      nativeBuildInputs = [ gfal2-util ];
+      outputHashAlgo = null;
+      outputHashMode = if finalAttrs.recursive then "recursive" else "flat";
+      outputHash = hash;
+      inherit url;
+      urls = if urls == [ ] then lib.singleton url else urls;
+      gfalCopyFlags = extraGfalCopyFlags ++ lib.optional finalAttrs.recursive "--recursive";
+      inherit recursive intermediateDestUrls;
+    }
+    // (
+      if (pname != "" && version != "") then
+        {
+          inherit pname version;
+          name = "${finalAttrs.pname}-${finalAttrs.version}";
+        }
+      else
+        { name = if (name != "") then name else (baseNameOf url); }
+    )
+  )
diff --git a/pkgs/development/python-modules/gflags/default.nix b/pkgs/development/python-modules/gflags/default.nix
index 2cef0c11a900c..7e205f85f8811 100644
--- a/pkgs/development/python-modules/gflags/default.nix
+++ b/pkgs/development/python-modules/gflags/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, six, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  pytest,
+}:
 
 buildPythonPackage rec {
   version = "3.1.2";
@@ -21,7 +27,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/google/python-gflags";
-    description = "A module for command line handling, similar to Google's gflags for C++";
+    description = "Module for command line handling, similar to Google's gflags for C++";
     license = lib.licenses.bsd3;
   };
 }
diff --git a/pkgs/development/python-modules/gflanguages/default.nix b/pkgs/development/python-modules/gflanguages/default.nix
index 9a3f77f957c02..0d7ce6908c80e 100644
--- a/pkgs/development/python-modules/gflanguages/default.nix
+++ b/pkgs/development/python-modules/gflanguages/default.nix
@@ -1,25 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, protobuf
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
-, setuptools-scm
-, uharfbuzz
-, youseedee
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  protobuf,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  uharfbuzz,
+  youseedee,
 }:
 
 buildPythonPackage rec {
   pname = "gflanguages";
-  version = "0.5.17";
+  version = "0.6.1";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dScgRQ6usjSqV0FqDyP+KGvHL06wlTFVcO+MmZ2NMAs=";
+    hash = "sha256-mlRNzrAgeEt1/VbQEXWIxCD9NkULMOnkFsALO5H+1SY=";
   };
 
   pyproject = true;
@@ -28,21 +28,16 @@ buildPythonPackage rec {
   # ecosystem have begun upgrading from protobuf 3 to protobuf 4,
   # so we need to use protobuf 4 here as well to avoid a conflict
   # in the closure of fontbakery. It seems to be compatible enough.
-  pythonRelaxDeps = [
-    "protobuf"
-  ];
+  pythonRelaxDeps = [ "protobuf" ];
 
   build-system = [
     setuptools
     setuptools-scm
   ];
 
-  dependencies = [
-    protobuf
-  ];
+  dependencies = [ protobuf ];
 
   nativeCheckInputs = [
-    pythonRelaxDepsHook
     pytestCheckHook
     uharfbuzz
     youseedee
diff --git a/pkgs/development/python-modules/gfsubsets/default.nix b/pkgs/development/python-modules/gfsubsets/default.nix
index 31aa36151644b..ff2db29a1eb26 100644
--- a/pkgs/development/python-modules/gfsubsets/default.nix
+++ b/pkgs/development/python-modules/gfsubsets/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fonttools
-, importlib-resources
-, setuptools
-, setuptools-scm
-, youseedee
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fonttools,
+  importlib-resources,
+  setuptools,
+  setuptools-scm,
+  youseedee,
 }:
 
 buildPythonPackage rec {
   pname = "gfsubsets";
-  version = "2024.2.5";
+  version = "2024.5.9";
   gitTag = "v2024.02.05";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-g9QxLa3B1MMTs+jmj4CyJySZRU0zoFNYdbOZwHjKPaQ=";
+    hash = "sha256-OgpdcOJWX0o0Hy6LjRsxsZMAVWgKziM+bqe/FfJniZY=";
   };
 
   pyproject = true;
@@ -33,9 +34,7 @@ buildPythonPackage rec {
 
   # Package has no unit tests.
   doCheck = false;
-  pythonImportsCheck = [
-    "gfsubsets"
-  ];
+  pythonImportsCheck = [ "gfsubsets" ];
 
   meta = with lib; {
     description = "Codepoint definitions for the Google Fonts subsetter";
diff --git a/pkgs/development/python-modules/gguf/default.nix b/pkgs/development/python-modules/gguf/default.nix
new file mode 100644
index 0000000000000..f0edfa48049fa
--- /dev/null
+++ b/pkgs/development/python-modules/gguf/default.nix
@@ -0,0 +1,34 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  poetry-core,
+  pythonOlder,
+}:
+buildPythonPackage rec {
+  pname = "gguf";
+  version = "0.6.0";
+  format = "pyproject";
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-suIuq6KhBsGtFIGGoUrZ8pxCk1Fob+nXzhbfOaBgfmU=";
+  };
+
+  dependencies = [
+    numpy
+    poetry-core
+  ];
+
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Module for writing binary files in the GGUF format";
+    homepage = "https://ggml.ai/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ mitchmindtree ];
+  };
+}
diff --git a/pkgs/development/python-modules/ghapi/default.nix b/pkgs/development/python-modules/ghapi/default.nix
index c613809b347d1..5e163ec21c05a 100644
--- a/pkgs/development/python-modules/ghapi/default.nix
+++ b/pkgs/development/python-modules/ghapi/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, fastcore
-, packaging
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  fastcore,
+  packaging,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ghapi"
-  ];
+  pythonImportsCheck = [ "ghapi" ];
 
   meta = with lib; {
     description = "Python interface to GitHub's API";
diff --git a/pkgs/development/python-modules/ghdiff/default.nix b/pkgs/development/python-modules/ghdiff/default.nix
index 4bcde153ba326..6930655869d08 100644
--- a/pkgs/development/python-modules/ghdiff/default.nix
+++ b/pkgs/development/python-modules/ghdiff/default.nix
@@ -1,5 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi
-, zope-testrunner, six, chardet}:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  zope-testrunner,
+  six,
+  chardet,
+}:
 
 buildPythonPackage rec {
   pname = "ghdiff";
@@ -12,12 +18,15 @@ buildPythonPackage rec {
   };
 
   nativeCheckInputs = [ zope-testrunner ];
-  propagatedBuildInputs = [ six chardet ];
+  propagatedBuildInputs = [
+    six
+    chardet
+  ];
 
   meta = with lib; {
-    homepage =  "https://github.com/kilink/ghdiff";
+    homepage = "https://github.com/kilink/ghdiff";
     license = licenses.mit;
-    description = "Generate Github-style HTML for unified diffs.";
+    description = "Generate Github-style HTML for unified diffs";
     mainProgram = "ghdiff";
     maintainers = [ maintainers.mic92 ];
   };
diff --git a/pkgs/development/python-modules/ghp-import/default.nix b/pkgs/development/python-modules/ghp-import/default.nix
index 8d7ec98b13c75..f0e3938081325 100644
--- a/pkgs/development/python-modules/ghp-import/default.nix
+++ b/pkgs/development/python-modules/ghp-import/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python-dateutil
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python-dateutil,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-nFNcTGEZPC34hxIiVn1/1+UBTYNfl9x7dDkGniQT00M=";
   };
 
-  propagatedBuildInputs = [
-    python-dateutil
-  ];
+  propagatedBuildInputs = [ python-dateutil ];
 
   # Does not include any unit tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ghp_import"
-  ];
+  pythonImportsCheck = [ "ghp_import" ];
 
   meta = with lib; {
     description = "Copy your docs directly to the gh-pages branch";
diff --git a/pkgs/development/python-modules/ghrepo-stats/default.nix b/pkgs/development/python-modules/ghrepo-stats/default.nix
index 18bd6124b1529..e3532c3825a73 100644
--- a/pkgs/development/python-modules/ghrepo-stats/default.nix
+++ b/pkgs/development/python-modules/ghrepo-stats/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchFromGitHub
-, matplotlib
-, pygithub
-, pythonOlder
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitHub,
+  matplotlib,
+  pygithub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ghrepo_stats"
-  ];
+  pythonImportsCheck = [ "ghrepo_stats" ];
 
   meta = with lib; {
     description = "Python module and CLI tool for GitHub repo statistics";
diff --git a/pkgs/development/python-modules/gibberish-detector/default.nix b/pkgs/development/python-modules/gibberish-detector/default.nix
index b9d06fc34ccee..d03703b37e965 100644
--- a/pkgs/development/python-modules/gibberish-detector/default.nix
+++ b/pkgs/development/python-modules/gibberish-detector/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy27
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy27,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "1si0fkpnk9vjkwl31sq5jkyv3rz8a5f2nh3xq7591j9wv2b6dn0b";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "gibberish_detector" ];
 
diff --git a/pkgs/development/python-modules/gidgethub/default.nix b/pkgs/development/python-modules/gidgethub/default.nix
index e109f4fa04871..ac7549c9891e6 100644
--- a/pkgs/development/python-modules/gidgethub/default.nix
+++ b/pkgs/development/python-modules/gidgethub/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, flit
-, uritemplate
-, pyjwt
-, pytestCheckHook
-, aiohttp
-, httpx
-, importlib-resources
-, pytest-asyncio
-, pytest-tornasync
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  flit,
+  uritemplate,
+  pyjwt,
+  pytestCheckHook,
+  aiohttp,
+  httpx,
+  importlib-resources,
+  pytest-asyncio,
+  pytest-tornasync,
 }:
 
 buildPythonPackage rec {
@@ -25,15 +26,12 @@ buildPythonPackage rec {
     hash = "sha256-ns59N/vOuBm4BWDn7Vj5NuSKZdN+xfVtt5FFFWtCaiU=";
   };
 
-  nativeBuildInputs = [
-    flit
-  ];
+  nativeBuildInputs = [ flit ];
 
   propagatedBuildInputs = [
     uritemplate
     pyjwt
-  ]
-  ++ pyjwt.optional-dependencies.crypto;
+  ] ++ pyjwt.optional-dependencies.crypto;
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -51,7 +49,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "An async GitHub API library";
+    description = "Async GitHub API library";
     homepage = "https://github.com/brettcannon/gidgethub";
     license = licenses.asl20;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/gin-config/default.nix b/pkgs/development/python-modules/gin-config/default.nix
index 1f3105a8a8820..a64a1683d3730 100644
--- a/pkgs/development/python-modules/gin-config/default.nix
+++ b/pkgs/development/python-modules/gin-config/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
-, enum34
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  enum34,
 }:
 
 buildPythonPackage rec {
@@ -13,17 +14,19 @@ buildPythonPackage rec {
   src = fetchPypi {
     inherit pname version;
     sha256 = "0c6ea5026ded927c8c93c990b01c695257c1df446e45e549a158cfbc79e19ed6";
-
   };
 
-  propagatedBuildInputs = [ six enum34 ];
+  propagatedBuildInputs = [
+    six
+    enum34
+  ];
 
   # PyPI archive does not ship with tests
-  doCheck= false;
+  doCheck = false;
 
   meta = with lib; {
     homepage = "https://github.com/google/gin-config";
-    description = "Gin provides a lightweight configuration framework for Python, based on dependency injection.";
+    description = "Gin provides a lightweight configuration framework for Python, based on dependency injection";
     license = licenses.asl20;
     maintainers = with maintainers; [ jethro ];
   };
diff --git a/pkgs/development/python-modules/gios/default.nix b/pkgs/development/python-modules/gios/default.nix
index 1d972641d3923..0a5632ad31de0 100644
--- a/pkgs/development/python-modules/gios/default.nix
+++ b/pkgs/development/python-modules/gios/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, dacite
-, fetchFromGitHub
-, pytest-asyncio
-, pytest-error-for-skips
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, syrupy
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  dacite,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytest-error-for-skips,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  syrupy,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-rjC4zWWtaPxuBcjiO9dVsXD4dTa47iwkKuSFx+QXeXw=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     aiohttp
@@ -48,9 +47,7 @@ buildPythonPackage rec {
     "test_invalid_station_id"
   ];
 
-  pythonImportsCheck = [
-    "gios"
-  ];
+  pythonImportsCheck = [ "gios" ];
 
   meta = with lib; {
     description = "Python client for getting air quality data from GIOS";
diff --git a/pkgs/development/python-modules/gipc/default.nix b/pkgs/development/python-modules/gipc/default.nix
index 297b6c9865dec..7a0529cc89af3 100644
--- a/pkgs/development/python-modules/gipc/default.nix
+++ b/pkgs/development/python-modules/gipc/default.nix
@@ -1,33 +1,56 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, gevent
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gevent,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "gipc";
-  version = "1.4.0";
-  format = "setuptools";
+  version = "1.6.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "jgehrcke";
     repo = "gipc";
     rev = "refs/tags/${version}";
-    hash = "sha256-T5TqLanODyzJGyjDZz+75bbz3THxoobYnfJFQxAB76E=";
+    hash = "sha256-eYE7A1VDJ0NSshvdJKxPwGyVdW6BnyWoRSR1i1iTr8Y=";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "gevent>=1.5,<=21.12.0" "gevent>=1.5"
+      --replace-fail "gevent>=1.5,<=23.9.1" "gevent>=1.5"
   '';
 
-  propagatedBuildInputs = [
-    gevent
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ gevent ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "gipc" ];
+
+  disabledTests = [
+    # AttributeError
+    "test_all_handles_length"
+    "test_child"
+    "test_closeread"
+    "test_closewrite"
+    "test_early_readchild_exit"
+    "test_handlecount"
+    "test_handler"
+    "test_onewriter"
+    "test_readclose"
+    "test_singlemsg"
+    "test_twochannels_singlemsg"
+    "test_twoclose"
+    "test_twowriters"
+    "test_write_closewrite_read"
   ];
 
   meta = with lib; {
@@ -41,7 +64,8 @@ buildPythonPackage rec {
       anywhere within your gevent-powered application.
     '';
     homepage = "http://gehrcke.de/gipc";
+    changelog = "https://github.com/jgehrcke/gipc/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/gistyc/default.nix b/pkgs/development/python-modules/gistyc/default.nix
index 923f2069d052d..eaa216ee63c60 100644
--- a/pkgs/development/python-modules/gistyc/default.nix
+++ b/pkgs/development/python-modules/gistyc/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, certifi
-, click
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  certifi,
+  click,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,11 @@ buildPythonPackage rec {
     requests
   ];
 
-  pythonImportsCheck = [
-    "gistyc"
-  ];
+  pythonImportsCheck = [ "gistyc" ];
 
   meta = with lib; {
     homepage = "https://github.com/ThomasAlbin/gistyc";
-    description = "A Python based GitHub GIST management tool";
+    description = "Python based GitHub GIST management tool";
     longDescription = ''
       gistyc is a Python-based library that enables developers to create, update
       and delete their GitHub GISTs. CLI capabilities allow you to execute the
diff --git a/pkgs/development/python-modules/git-annex-adapter/default.nix b/pkgs/development/python-modules/git-annex-adapter/default.nix
index 8af128e895a0c..07f546d41571a 100644
--- a/pkgs/development/python-modules/git-annex-adapter/default.nix
+++ b/pkgs/development/python-modules/git-annex-adapter/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, cacert
-, fetchFromGitHub
-, fetchpatch
-, git-annex
-, gitMinimal
-, pygit2
-, pytestCheckHook
-, python
-, pythonOlder
-, setuptools
-, substituteAll
-, util-linux
+{
+  lib,
+  buildPythonPackage,
+  cacert,
+  fetchFromGitHub,
+  fetchpatch,
+  git-annex,
+  gitMinimal,
+  pygit2,
+  pytestCheckHook,
+  python,
+  pythonOlder,
+  setuptools,
+  substituteAll,
+  util-linux,
 }:
 
 buildPythonPackage rec {
@@ -48,9 +49,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pygit2
@@ -63,9 +62,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "git_annex_adapter"
-  ];
+  pythonImportsCheck = [ "git_annex_adapter" ];
 
   disabledTests = [
     # KeyError and AssertionError
diff --git a/pkgs/development/python-modules/git-filter-repo/default.nix b/pkgs/development/python-modules/git-filter-repo/default.nix
index fa0fa0148b8d3..ceb49c027fb4b 100644
--- a/pkgs/development/python-modules/git-filter-repo/default.nix
+++ b/pkgs/development/python-modules/git-filter-repo/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchPypi
-, fetchpatch
-, installShellFiles
-, pythonOlder
-, setuptools-scm
-, writeScript
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchPypi,
+  fetchpatch,
+  installShellFiles,
+  pythonOlder,
+  setuptools-scm,
+  writeScript,
 }:
 
 buildPythonPackage rec {
@@ -51,16 +52,20 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "git_filter_repo"
-  ];
+  pythonImportsCheck = [ "git_filter_repo" ];
 
   meta = with lib; {
     description = "Quickly rewrite git repository history";
     mainProgram = "git-filter-repo";
     homepage = "https://github.com/newren/git-filter-repo";
-    license = with licenses; [ mit /* or */ gpl2Plus ];
-    maintainers = with maintainers; [ aiotter fab ];
+    license = with licenses; [
+      mit # or
+      gpl2Plus
+    ];
+    maintainers = with maintainers; [
+      aiotter
+      fab
+    ];
   };
 
   passthru.updateScript = writeScript "update-${pname}" ''
diff --git a/pkgs/development/python-modules/git-find-repos/default.nix b/pkgs/development/python-modules/git-find-repos/default.nix
new file mode 100644
index 0000000000000..d97d153ee6c11
--- /dev/null
+++ b/pkgs/development/python-modules/git-find-repos/default.nix
@@ -0,0 +1,28 @@
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  setuptools-scm,
+}:
+buildPythonPackage rec {
+  pname = "git-find-repos";
+  version = "2.1.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "acroz";
+    repo = "git-find-repos";
+    rev = version;
+    sha256 = "sha256-4TuZlt6XH4//DBHPuIMl/i3Tp6Uft62dGCTAuZ2rseE=";
+  };
+
+  build-system = [ setuptools-scm ];
+
+  meta = {
+    description = "Simple CLI tool for finding git repositories";
+    homepage = "https://github.com/acroz/git-find-repos";
+    license = lib.licenses.mit;
+    mainProgram = "git-find-repos";
+    maintainers = [ lib.maintainers.yajo ];
+  };
+}
diff --git a/pkgs/development/python-modules/git-revise/default.nix b/pkgs/development/python-modules/git-revise/default.nix
index f64e4afa61ada..78fdc254baaab 100644
--- a/pkgs/development/python-modules/git-revise/default.nix
+++ b/pkgs/development/python-modules/git-revise/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, git
-, gnupg
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  git,
+  gnupg,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,7 +23,11 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.8";
 
-  nativeCheckInputs = [ git gnupg pytestCheckHook ];
+  nativeCheckInputs = [
+    git
+    gnupg
+    pytestCheckHook
+  ];
 
   meta = with lib; {
     description = "Efficiently update, split, and rearrange git commits";
diff --git a/pkgs/development/python-modules/git-sweep/default.nix b/pkgs/development/python-modules/git-sweep/default.nix
index ac18f2604f83d..2adc0a2c9ed02 100644
--- a/pkgs/development/python-modules/git-sweep/default.nix
+++ b/pkgs/development/python-modules/git-sweep/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, gitpython
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  gitpython,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,19 +18,15 @@ buildPythonPackage rec {
     hash = "sha256-zSnxw3JHsFru9fOZSJZX+XOu144uJ0DaIKYlAtoHV7M=";
   };
 
-  propagatedBuildInputs = [
-    gitpython
-  ];
+  propagatedBuildInputs = [ gitpython ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "gitsweep"
-  ];
+  pythonImportsCheck = [ "gitsweep" ];
 
   meta = with lib; {
-    description = "A command-line tool that helps you clean up Git branches";
+    description = "Command-line tool that helps you clean up Git branches";
     mainProgram = "git-sweep";
     homepage = "https://github.com/arc90/git-sweep";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/git-url-parse/default.nix b/pkgs/development/python-modules/git-url-parse/default.nix
index b0c4c2077faf0..f49bf677ecc84 100644
--- a/pkgs/development/python-modules/git-url-parse/default.nix
+++ b/pkgs/development/python-modules/git-url-parse/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pbr
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pbr,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,27 +23,21 @@ buildPythonPackage rec {
       --replace " --cov giturlparse --cov-report term-missing" ""
   '';
 
-
   # Manually set version because prb wants to get it from the git
   # upstream repository (and we are installing from tarball instead)
   env.PBR_VERSION = version;
 
-  propagatedBuildInputs = [
-    pbr
-  ];
+  propagatedBuildInputs = [ pbr ];
 
   pythonImportsCheck = [ "giturlparse" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A simple GIT URL parser";
+    description = "Simple GIT URL parser";
     homepage = "https://github.com/coala/git-url-parse";
     changelog = "https://github.com/coala/git-url-parse/blob/${src.rev}/CHANGELOG.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ blaggacao ];
   };
 }
-
diff --git a/pkgs/development/python-modules/git-versioner/default.nix b/pkgs/development/python-modules/git-versioner/default.nix
index 564bf1af9f610..ed2fc5ec732ee 100644
--- a/pkgs/development/python-modules/git-versioner/default.nix
+++ b/pkgs/development/python-modules/git-versioner/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, setuptools-scm
-, fetchFromGitLab
+{
+  lib,
+  buildPythonPackage,
+  setuptools-scm,
+  fetchFromGitLab,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,9 @@ buildPythonPackage rec {
     hash = "sha256-bnpuFJSd4nBXJA75V61kiB+nU5pUzdEAIScfKx7aaGU=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  pythonImportsCheck = [
-    "__version__"
-  ];
+  pythonImportsCheck = [ "__version__" ];
 
   meta = with lib; {
     description = "Manage current / next version for project";
@@ -30,5 +27,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ slotThe ];
   };
-
 }
diff --git a/pkgs/development/python-modules/gitdb/default.nix b/pkgs/development/python-modules/gitdb/default.nix
index 996387f45135c..422b7b52c3c56 100644
--- a/pkgs/development/python-modules/gitdb/default.nix
+++ b/pkgs/development/python-modules/gitdb/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
-, smmap
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  smmap,
 }:
 
 buildPythonPackage rec {
@@ -22,24 +22,15 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     setuptools
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "smmap"
-  ];
+  pythonRelaxDeps = [ "smmap" ];
 
-  propagatedBuildInputs = [
-    smmap
-  ];
+  propagatedBuildInputs = [ smmap ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "gitdb"
-  ];
+  pythonImportsCheck = [ "gitdb" ];
 
   disabledTests = [
     # Tests need part which are not shipped with PyPI releases
diff --git a/pkgs/development/python-modules/github-to-sqlite/default.nix b/pkgs/development/python-modules/github-to-sqlite/default.nix
index 67ec970bda7b6..20ca2879ae3f8 100644
--- a/pkgs/development/python-modules/github-to-sqlite/default.nix
+++ b/pkgs/development/python-modules/github-to-sqlite/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy3k
-, pytestCheckHook
-, pyyaml
-, requests
-, requests-mock
-, sqlite-utils
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy3k,
+  pytestCheckHook,
+  pyyaml,
+  requests,
+  requests-mock,
+  sqlite-utils,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
     requests-mock
   ];
 
-  disabledTests = [
-    "test_scrape_dependents"
-  ];
+  disabledTests = [ "test_scrape_dependents" ];
 
   meta = with lib; {
     description = "Save data from GitHub to a SQLite database";
diff --git a/pkgs/development/python-modules/github-webhook/default.nix b/pkgs/development/python-modules/github-webhook/default.nix
index 9f05b74a2202a..5f01cdb0536f1 100644
--- a/pkgs/development/python-modules/github-webhook/default.nix
+++ b/pkgs/development/python-modules/github-webhook/default.nix
@@ -1,6 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi
-, flask
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flask,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -13,13 +16,16 @@ buildPythonPackage rec {
     sha256 = "b2444dbfd03deda35792bd00ebd1692597c2605c61445da79da6322afaca7a8d";
   };
 
-  propagatedBuildInputs = [ flask six ];
+  propagatedBuildInputs = [
+    flask
+    six
+  ];
 
   # touches network
   doCheck = false;
 
   meta = with lib; {
-    description = "A framework for writing webhooks for GitHub";
+    description = "Framework for writing webhooks for GitHub";
     homepage = "https://github.com/bloomberg/python-github-webhook";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/github3-py/default.nix b/pkgs/development/python-modules/github3-py/default.nix
index 72fd8108f0c47..59535eb25a70e 100644
--- a/pkgs/development/python-modules/github3-py/default.nix
+++ b/pkgs/development/python-modules/github3-py/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, requests
-, uritemplate
-, python-dateutil
-, pyjwt
-, pytestCheckHook
-, betamax
-, betamax-matchers
-, hatchling
-, fetchpatch
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  requests,
+  uritemplate,
+  python-dateutil,
+  pyjwt,
+  pytestCheckHook,
+  betamax,
+  betamax-matchers,
+  hatchling,
+  fetchpatch,
 }:
 
 buildPythonPackage rec {
@@ -25,17 +26,14 @@ buildPythonPackage rec {
     hash = "sha256-MNVxB2dT78OJ7cf5qu8zik/LJLVNiWjV85sTQvRd3TY=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     pyjwt
     python-dateutil
     requests
     uritemplate
-  ]
-  ++ pyjwt.optional-dependencies.crypto;
+  ] ++ pyjwt.optional-dependencies.crypto;
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -63,7 +61,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github3py.readthedocs.org/en/master/";
-    description = "A wrapper for the GitHub API written in python";
+    description = "Wrapper for the GitHub API written in python";
     license = licenses.bsd3;
     maintainers = with maintainers; [ pSub ];
   };
diff --git a/pkgs/development/python-modules/githubkit/default.nix b/pkgs/development/python-modules/githubkit/default.nix
index 3a8f62f6a02d6..85e581200fdef 100644
--- a/pkgs/development/python-modules/githubkit/default.nix
+++ b/pkgs/development/python-modules/githubkit/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "githubkit";
-  version = "0.11.4";
+  version = "0.11.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "yanyongyu";
     repo = "githubkit";
     rev = "refs/tags/v${version}";
-    hash = "sha256-uxXRDavp5c3e1MOZR2B4wUxEHh6K81avTeaIVsOdup8=";
+    hash = "sha256-bcQUms4nZ4BUowcF3YxTQPc6Ts6VoRumEA0DuCPQpfg=";
   };
 
   postPatch = ''
@@ -33,8 +33,11 @@ buildPythonPackage rec {
       --replace-fail "--cov=githubkit --cov-append --cov-report=term-missing" ""
   '';
 
+  pythonRelaxDeps = [ "hishel" ];
+
   build-system = [ poetry-core ];
 
+
   dependencies = [
     hishel
     httpx
diff --git a/pkgs/development/python-modules/gitignore-parser/default.nix b/pkgs/development/python-modules/gitignore-parser/default.nix
index 50239a9b26532..2db2f54c9094c 100644
--- a/pkgs/development/python-modules/gitignore-parser/default.nix
+++ b/pkgs/development/python-modules/gitignore-parser/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-y8A8OLgJccYWvKTJs7um8RwFFM0CswbwRojknBmk3TY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  pythonImportsCheck = [
-    "gitignore_parser"
-  ];
+  pythonImportsCheck = [ "gitignore_parser" ];
 
   meta = with lib; {
-    description = "A spec-compliant gitignore parser";
+    description = "Spec-compliant gitignore parser";
     homepage = "https://github.com/mherrmann/gitignore_parser";
     changelog = "https://github.com/mherrmann/gitignore_parser/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/gitlike-commands/default.nix b/pkgs/development/python-modules/gitlike-commands/default.nix
index c5e8ab506696f..1f1b7dbe3bf29 100644
--- a/pkgs/development/python-modules/gitlike-commands/default.nix
+++ b/pkgs/development/python-modules/gitlike-commands/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-Z0l8nCKov1iMJvI3YTHvg0ey+oPju3rgaKtmk6OX44g=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   # Module has no real tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "gitlike_commands"
-  ];
+  pythonImportsCheck = [ "gitlike_commands" ];
 
   meta = with lib; {
     description = "Easy python module for creating git-style subcommand handling";
diff --git a/pkgs/development/python-modules/gitpython/default.nix b/pkgs/development/python-modules/gitpython/default.nix
index eca3c326d0eba..a7f45bd7b3dbc 100644
--- a/pkgs/development/python-modules/gitpython/default.nix
+++ b/pkgs/development/python-modules/gitpython/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, ddt
-, fetchFromGitHub
-, gitdb
-, pkgs
-, pythonOlder
-, substituteAll
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  ddt,
+  fetchFromGitHub,
+  gitdb,
+  pkgs,
+  pythonOlder,
+  substituteAll,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     ddt
     gitdb
     pkgs.gitMinimal
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ];
 
   postPatch = ''
     substituteInPlace git/cmd.py \
@@ -39,9 +38,7 @@ buildPythonPackage rec {
   # Tests require a git repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "git"
-  ];
+  pythonImportsCheck = [ "git" ];
 
   meta = with lib; {
     description = "Python Git Library";
diff --git a/pkgs/development/python-modules/glad/default.nix b/pkgs/development/python-modules/glad/default.nix
index def3766765e89..56eeb3f9047e7 100644
--- a/pkgs/development/python-modules/glad/default.nix
+++ b/pkgs/development/python-modules/glad/default.nix
@@ -1,4 +1,8 @@
-{ buildPythonPackage, fetchPypi, lib }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+}:
 
 buildPythonPackage rec {
   pname = "glad";
diff --git a/pkgs/development/python-modules/glad2/default.nix b/pkgs/development/python-modules/glad2/default.nix
index f38c944f64034..f5aeb99254317 100644
--- a/pkgs/development/python-modules/glad2/default.nix
+++ b/pkgs/development/python-modules/glad2/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jinja2
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jinja2,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-CGFa7TIZ6hx3WEvVlh2CO6sib4rDgx0JrfZcb6h3+Ow=";
   };
 
-  propagatedBuildInputs = [
-    jinja2
-  ];
+  propagatedBuildInputs = [ jinja2 ];
 
   # no python tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/glances-api/default.nix b/pkgs/development/python-modules/glances-api/default.nix
index 40c8d0698f186..bceb44eb0b6fd 100644
--- a/pkgs/development/python-modules/glances-api/default.nix
+++ b/pkgs/development/python-modules/glances-api/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "glances-api";
-  version = "0.6.0";
+  version = "0.8.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "home-assistant-ecosystem";
     repo = "python-glances-api";
     rev = "refs/tags/${version}";
-    hash = "sha256-k/F4q1+bO6p/PW8iEiiCX6yXKbS8SHXVR8mEGezOrRE=";
+    hash = "sha256-QAnwFX53jf7yWWa308/XTARNw5Qeo9K2zfD+6+HiFuM=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/glcontext/default.nix b/pkgs/development/python-modules/glcontext/default.nix
index 4014de18e12b5..4ad9fa3060900 100644
--- a/pkgs/development/python-modules/glcontext/default.nix
+++ b/pkgs/development/python-modules/glcontext/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy3k
-, libGL
-, libX11
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy3k,
+  libGL,
+  libX11,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,10 @@ buildPythonPackage rec {
 
   disabled = !isPy3k;
 
-  buildInputs = [ libGL libX11 ];
+  buildInputs = [
+    libGL
+    libX11
+  ];
 
   postPatch = ''
     substituteInPlace glcontext/x11.cpp \
@@ -43,6 +47,6 @@ buildPythonPackage rec {
     description = "OpenGL implementation for ModernGL";
     license = licenses.mit;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ friedelino ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/glean-parser/default.nix b/pkgs/development/python-modules/glean-parser/default.nix
index 86a4c6248f5d4..bf22e5bce9196 100644
--- a/pkgs/development/python-modules/glean-parser/default.nix
+++ b/pkgs/development/python-modules/glean-parser/default.nix
@@ -1,21 +1,23 @@
-{ lib
-, appdirs
-, buildPythonPackage
-, click
-, diskcache
-, fetchPypi
-, jinja2
-, jsonschema
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, setuptools-scm
-, yamllint
+{
+  lib,
+  appdirs,
+  buildPythonPackage,
+  click,
+  diskcache,
+  fetchPypi,
+  jinja2,
+  jsonschema,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  setuptools,
+  setuptools-scm,
+  yamllint,
 }:
 
 buildPythonPackage rec {
   pname = "glean-parser";
-  version = "13.0.1";
+  version = "14.1.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -23,7 +25,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "glean_parser";
     inherit version;
-    hash = "sha256-/urUy+xpMO04pI31uunrTuSGu0Am3fLzIGuF+AJ50ec=";
+    hash = "sha256-OL59Tg+rD4M0DjQnkU4IqGMcf6sIioxg6bVDyrbqgww=";
   };
 
   postPatch = ''
@@ -32,9 +34,7 @@ buildPythonPackage rec {
       --replace "MarkupSafe>=1.1.1,<=2.0.1" "MarkupSafe>=1.1.1"
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     appdirs
@@ -43,12 +43,11 @@ buildPythonPackage rec {
     jinja2
     jsonschema
     pyyaml
+    setuptools
     yamllint
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export HOME=$TMPDIR
@@ -62,9 +61,7 @@ buildPythonPackage rec {
     "test_yaml_lint"
   ];
 
-  pythonImportsCheck = [
-    "glean_parser"
-  ];
+  pythonImportsCheck = [ "glean_parser" ];
 
   meta = with lib; {
     description = "Tools for parsing the metadata for Mozilla's glean telemetry SDK";
@@ -72,6 +69,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/mozilla/glean_parser";
     changelog = "https://github.com/mozilla/glean_parser/blob/v${version}/CHANGELOG.md";
     license = licenses.mpl20;
-    maintainers = with maintainers; [];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/glean-sdk/default.nix b/pkgs/development/python-modules/glean-sdk/default.nix
index 83abb1089e30e..6a577a000f60b 100644
--- a/pkgs/development/python-modules/glean-sdk/default.nix
+++ b/pkgs/development/python-modules/glean-sdk/default.nix
@@ -1,21 +1,22 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, cargo
-, cffi
-, fetchPypi
-, glean-parser
-, iso8601
-, lmdb
-, pkg-config
-, pytest-localserver
-, pytestCheckHook
-, python
-, pythonOlder
-, rustc
-, rustPlatform
-, semver
-, setuptools-rust
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  cargo,
+  cffi,
+  fetchPypi,
+  glean-parser,
+  iso8601,
+  lmdb,
+  pkg-config,
+  pytest-localserver,
+  pytestCheckHook,
+  python,
+  pythonOlder,
+  rustc,
+  rustPlatform,
+  semver,
+  setuptools-rust,
 }:
 
 buildPythonPackage rec {
@@ -44,9 +45,7 @@ buildPythonPackage rec {
     setuptools-rust
   ];
 
-  buildInputs = [
-    lmdb
-  ];
+  buildInputs = [ lmdb ];
 
   propagatedBuildInputs = [
     cffi
@@ -70,9 +69,7 @@ buildPythonPackage rec {
     readelf -a $out/${python.sitePackages}/glean/libglean_ffi.so | grep -F 'Shared library: [liblmdb.so'
   '';
 
-  pythonImportsCheck = [
-    "glean"
-  ];
+  pythonImportsCheck = [ "glean" ];
 
   meta = with lib; {
     broken = stdenv.isDarwin;
diff --git a/pkgs/development/python-modules/glfw/default.nix b/pkgs/development/python-modules/glfw/default.nix
index 16b4d2d21cfc1..56bb2a091748f 100644
--- a/pkgs/development/python-modules/glfw/default.nix
+++ b/pkgs/development/python-modules/glfw/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, glfw3
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  glfw3,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,16 +25,12 @@ buildPythonPackage rec {
     substituteInPlace glfw/library.py --replace "_get_library_search_paths()," "[ '${glfw3}/lib' ],"
   '';
 
-  propagatedBuildInputs = [
-    glfw3
-  ];
+  propagatedBuildInputs = [ glfw3 ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "glfw"
-  ];
+  pythonImportsCheck = [ "glfw" ];
 
   meta = with lib; {
     description = "Python bindings for GLFW";
diff --git a/pkgs/development/python-modules/glob2/default.nix b/pkgs/development/python-modules/glob2/default.nix
index 5d75da953ed59..2dcae7a38566e 100644
--- a/pkgs/development/python-modules/glob2/default.nix
+++ b/pkgs/development/python-modules/glob2/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -22,6 +23,6 @@ buildPythonPackage rec {
     description = "Version of the glob module that can capture patterns and supports recursive wildcards";
     homepage = "https://github.com/miracle2k/python-glob2/";
     license = licenses.bsd3;
-    maintainers = [ ];
+    maintainers = with lib.maintainers; [ sigmanificient ];
   };
 }
diff --git a/pkgs/development/python-modules/globre/default.nix b/pkgs/development/python-modules/globre/default.nix
deleted file mode 100644
index a270a2b4c430c..0000000000000
--- a/pkgs/development/python-modules/globre/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib
-, pythonAtLeast
-, buildPythonPackage
-, fetchPypi
-, nose
-, coverage
-}:
-
-buildPythonPackage rec {
-  pname = "globre";
-  version = "0.1.5";
-  format = "setuptools";
-  # https://github.com/metagriffin/globre/issues/7
-  disabled = pythonAtLeast "3.7";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1qhjpg0722871dm5m7mmldf6c7mx58fbdvk1ix5i3s9py82448gf";
-  };
-
-  nativeCheckInputs = [ nose coverage ];
-
-  meta = with lib; {
-    homepage = "https://github.com/metagriffin/globre";
-    description = "A python glob-like regular expression generation library.";
-    maintainers = with maintainers; [ glittershark ];
-    license = licenses.gpl3;
-  };
-}
diff --git a/pkgs/development/python-modules/globus-sdk/default.nix b/pkgs/development/python-modules/globus-sdk/default.nix
index cd8528125780a..6f62566508727 100644
--- a/pkgs/development/python-modules/globus-sdk/default.nix
+++ b/pkgs/development/python-modules/globus-sdk/default.nix
@@ -1,19 +1,22 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, pyjwt
-, pytestCheckHook
-, pythonOlder
-, requests
-, responses
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  flaky,
+  pyjwt,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  responses,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "globus-sdk";
-  version = "3.39.0";
-  format = "setuptools";
+  version = "3.41.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -21,39 +24,29 @@ buildPythonPackage rec {
     owner = "globus";
     repo = "globus-sdk-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-DjGwwpXzYRq5/hiUs/l8kD/yA58vbhvrKirKDlWoAmY=";
+    hash = "sha256-FQO1D960mg0G/zYMo4J5MtJbPID4oE8UWNpTPKWtsic=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     cryptography
     requests
     pyjwt
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-    responses
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-    --replace "pyjwt[crypto]>=2.0.0,<3.0.0" "pyjwt[crypto]>=2.0.0,<3.0.0"
-  '';
-
-  pytestFlagsArray = [
-    "-W"
-    "ignore::DeprecationWarning"
+  checkInputs = [
+    flaky
+    responses
   ];
 
-  pythonImportsCheck = [
-    "globus_sdk"
-  ];
+  pythonImportsCheck = [ "globus_sdk" ];
 
   meta = with lib; {
     description = "Interface to Globus REST APIs, including the Transfer API and the Globus Auth API";
-    homepage =  "https://github.com/globus/globus-sdk-python";
+    homepage = "https://github.com/globus/globus-sdk-python";
     changelog = "https://github.com/globus/globus-sdk-python/releases/tag/${version}";
     license = licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/glom/default.nix b/pkgs/development/python-modules/glom/default.nix
index eb770051f09df..366f75e3bfedc 100644
--- a/pkgs/development/python-modules/glom/default.nix
+++ b/pkgs/development/python-modules/glom/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, attrs
-, boltons
-, buildPythonPackage
-, face
-, fetchPypi
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, pyyaml
+{
+  lib,
+  attrs,
+  boltons,
+  buildPythonPackage,
+  face,
+  fetchPypi,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -43,17 +44,17 @@ buildPythonPackage rec {
     export PATH=$out/bin:$PATH
   '';
 
-  disabledTests = [
-    # Test is outdated (was made for PyYAML 3.x)
-    "test_main_yaml_target"
-  ] ++ lib.optionals (pythonAtLeast "3.11") [
-    "test_regular_error_stack"
-    "test_long_target_repr"
-  ];
+  disabledTests =
+    [
+      # Test is outdated (was made for PyYAML 3.x)
+      "test_main_yaml_target"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.11") [
+      "test_regular_error_stack"
+      "test_long_target_repr"
+    ];
 
-  pythonImportsCheck = [
-    "glom"
-  ];
+  pythonImportsCheck = [ "glom" ];
 
   meta = with lib; {
     description = "Restructuring data, the Python way";
diff --git a/pkgs/development/python-modules/glueviz/default.nix b/pkgs/development/python-modules/glueviz/default.nix
index bb25d2edd3a91..1db27a1d72823 100644
--- a/pkgs/development/python-modules/glueviz/default.nix
+++ b/pkgs/development/python-modules/glueviz/default.nix
@@ -1,35 +1,36 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, dill
-, astropy
-, numpy
-, pandas
-, qt6
-, pyqt6
-, pyqt-builder
-, qtconsole
-, setuptools
-, setuptools-scm
-, scipy
-, ipython
-, ipykernel
-, h5py
-, matplotlib
-, xlrd
-, mpl-scatter-density
-, pvextractor
-, openpyxl
-, echo
-, pytest
-, pytest-flakes
-, pytest-cov
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  dill,
+  astropy,
+  numpy,
+  pandas,
+  qt6,
+  pyqt6,
+  pyqt-builder,
+  qtconsole,
+  setuptools,
+  setuptools-scm,
+  scipy,
+  ipython,
+  ipykernel,
+  h5py,
+  matplotlib,
+  xlrd,
+  mpl-scatter-density,
+  pvextractor,
+  openpyxl,
+  echo,
+  pytest,
+  pytest-flakes,
+  pytest-cov,
 }:
 
 buildPythonPackage rec {
   pname = "glueviz";
-  version = "1.17.1";
+  version = "1.21.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -38,11 +39,15 @@ buildPythonPackage rec {
     owner = "glue-viz";
     repo = "glue";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-nr84GJAGnpKzjZEFNsQujPysSQENwGxdNfPIYUCJkK4=";
+    sha256 = "sha256-C9UqDdhPcaznidiDlQO27Vgct2MT9gVlH740hoYg3Bc=";
   };
 
   buildInputs = [ pyqt-builder ];
-  nativeBuildInputs = [ setuptools setuptools-scm qt6.wrapQtAppsHook ];
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+    qt6.wrapQtAppsHook
+  ];
   propagatedBuildInputs = [
     astropy
     dill
@@ -69,7 +74,11 @@ buildPythonPackage rec {
   # qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
   doCheck = false;
 
-  nativeCheckInputs = [ pytest pytest-flakes pytest-cov ];
+  nativeCheckInputs = [
+    pytest
+    pytest-flakes
+    pytest-cov
+  ];
 
   pythonImportsCheck = [ "glue" ];
 
diff --git a/pkgs/development/python-modules/glymur/default.nix b/pkgs/development/python-modules/glymur/default.nix
index 4ff23443e40d2..611c87e1fe3a9 100644
--- a/pkgs/development/python-modules/glymur/default.nix
+++ b/pkgs/development/python-modules/glymur/default.nix
@@ -1,66 +1,78 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, lxml
-, numpy
-, openjpeg
-, pytestCheckHook
-, pythonOlder
-, scikit-image
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  substituteAll,
+  glibc,
+  libtiff,
+  openjpeg,
+  fetchFromGitHub,
+  lxml,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  scikit-image,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "glymur";
-  version = "0.12.5";
-  format = "pyproject";
+  version = "0.13.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "quintusdias";
-    repo = pname;
+    repo = "glymur";
     rev = "refs/tags/v${version}";
-    hash = "sha256-9NMSAt5yFRnlCUDP37/ozhDsS8FTdRkfjUz8kQwWzVc=";
+    hash = "sha256-GUqe9mdMm2O/cbZw8Reohh4X1kO+xOMWHb83PjNvdu8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
+  patches = [
+    (substituteAll {
+      src = ./set-lib-paths.patch;
+      openjp2_lib = "${lib.getLib openjpeg}/lib/libopenjp2${stdenv.hostPlatform.extensions.sharedLibrary}";
+      tiff_lib = "${lib.getLib libtiff}/lib/libtiff${stdenv.hostPlatform.extensions.sharedLibrary}";
+    })
   ];
 
-  propagatedBuildInputs = [
+  postPatch = lib.optionalString (!stdenv.isDarwin) ''
+    substituteInPlace glymur/lib/tiff.py \
+        --replace-fail "glymur_config('c')" "ctypes.CDLL('${lib.getLib glibc}/lib/libc.so.6')"
+  '';
+
+  __propagatedImpureHostDeps = lib.optional stdenv.isDarwin "/usr/lib/libc.dylib";
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    lxml
     numpy
   ];
 
   nativeCheckInputs = [
-    lxml
     pytestCheckHook
     scikit-image
   ];
 
-  postConfigure = ''
-    substituteInPlace glymur/config.py \
-    --replace "path = read_config_file(libname)" "path = '${openjpeg}/lib/lib' + libname + ${if stdenv.isDarwin then "'.dylib'" else "'.so'"}"
+  preCheck = ''
+    export PATH="$out/bin:$PATH"
   '';
 
   disabledTestPaths = [
     # this test involves glymur's different ways of finding the openjpeg path on
     # fsh systems by reading an .rc file and such, and is obviated by the patch
-    # in postConfigure
     "tests/test_config.py"
-    "tests/test_tiff2jp2.py"
   ];
 
-  pythonImportsCheck = [
-    "glymur"
-  ];
+  pythonImportsCheck = [ "glymur" ];
 
-  meta = with lib; {
+  meta = {
     description = "Tools for accessing JPEG2000 files";
     homepage = "https://github.com/quintusdias/glymur";
     changelog = "https://github.com/quintusdias/glymur/blob/v${version}/CHANGES.txt";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ tomasajt ];
   };
 }
diff --git a/pkgs/development/python-modules/glymur/set-lib-paths.patch b/pkgs/development/python-modules/glymur/set-lib-paths.patch
new file mode 100644
index 0000000000000..4ae7b58b1cdc0
--- /dev/null
+++ b/pkgs/development/python-modules/glymur/set-lib-paths.patch
@@ -0,0 +1,16 @@
+diff --git a/glymur/config.py b/glymur/config.py
+index 962e299..dab44ba 100644
+--- a/glymur/config.py
++++ b/glymur/config.py
+@@ -53,6 +53,11 @@ def _determine_full_path(libname):
+     if path is not None:
+         return path
+ 
++    if libname == "openjp2":
++        return "@openjp2_lib@"
++    if libname == "tiff":
++        return "@tiff_lib@"
++
+     # No joy on config file.  Cygwin?  Cygwin is a bit of an odd case.
+     if platform.system().startswith('CYGWIN'):
+         g = pathlib.Path('/usr/bin').glob('cygopenjp2*.dll')
diff --git a/pkgs/development/python-modules/glyphsets/default.nix b/pkgs/development/python-modules/glyphsets/default.nix
index 5decc00464a32..e918de58ae85a 100644
--- a/pkgs/development/python-modules/glyphsets/default.nix
+++ b/pkgs/development/python-modules/glyphsets/default.nix
@@ -1,47 +1,55 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, defcon
-, fonttools
-, gflanguages
-, glyphslib
-, pytestCheckHook
-, requests
-, setuptools
-, setuptools-scm
-, unicodedata2
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  defcon,
+  fonttools,
+  gflanguages,
+  glyphslib,
+  pytestCheckHook,
+  pyyaml,
+  requests,
+  setuptools,
+  setuptools-scm,
+  unicodedata2,
 }:
 
 buildPythonPackage rec {
   pname = "glyphsets";
-  version = "0.6.19";
+  version = "1.0.0";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-vO9gzMCXPlkkM9MtRhlulAnQi6uZMtJU1NqcP8w6tCo=";
+    hash = "sha256-fa+W1IGIZcn1P1xNKm1Yb/TOuf4QdDVnIvlDkOLOcLY=";
   };
 
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace-fail "setuptools_scm>=8.0.4,<8.1" "setuptools_scm"
+  '';
+
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
   dependencies = [
     defcon
     fonttools
     gflanguages
     glyphslib
+    pyyaml
     requests
-    setuptools
     unicodedata2
   ];
-  build-system = [
-    setuptools-scm
-  ];
 
-  doCheck = true;
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
+
   preCheck = ''
     export PATH="$out/bin:$PATH"
   '';
+
   disabledTests = [
     # This "test" just tries to connect to PyPI and look for newer releases. Not needed.
     "test_dependencies"
diff --git a/pkgs/development/python-modules/glyphslib/default.nix b/pkgs/development/python-modules/glyphslib/default.nix
index 37f527f29e1b1..d58f39b9c633a 100644
--- a/pkgs/development/python-modules/glyphslib/default.nix
+++ b/pkgs/development/python-modules/glyphslib/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fonttools
-, openstep-plist
-, ufolib2
-, pytestCheckHook
-, unicodedata2
-, setuptools-scm
-, ufonormalizer
-, xmldiff
-, defcon
-, ufo2ft
-, skia-pathops
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fonttools,
+  openstep-plist,
+  ufolib2,
+  pytestCheckHook,
+  unicodedata2,
+  setuptools-scm,
+  ufonormalizer,
+  xmldiff,
+  defcon,
+  ufo2ft,
+  skia-pathops,
 }:
 
 buildPythonPackage rec {
   pname = "glyphslib";
-  version = "6.7.0";
+  version = "6.7.1";
 
   format = "pyproject";
 
@@ -24,7 +25,7 @@ buildPythonPackage rec {
     owner = "googlefonts";
     repo = "glyphsLib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Fhp/2nK1LFgpJ3J7ZTxl2jKT6sCDyqT5qlLCtbnUejM=";
+    hash = "sha256-mUwbUGLhxwoYEwjbT558rTA8dtWxQXyqWYNEVy/WpIU=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/glyphtools/default.nix b/pkgs/development/python-modules/glyphtools/default.nix
index 0f1f2066c02b4..c5c407ed9767d 100644
--- a/pkgs/development/python-modules/glyphtools/default.nix
+++ b/pkgs/development/python-modules/glyphtools/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, beziers
-, glyphslib
-, numpy
-, setuptoolsCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  beziers,
+  glyphslib,
+  numpy,
+  setuptoolsCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/gmpy/default.nix b/pkgs/development/python-modules/gmpy/default.nix
index 072ef985dc01c..d68f038ec3b96 100644
--- a/pkgs/development/python-modules/gmpy/default.nix
+++ b/pkgs/development/python-modules/gmpy/default.nix
@@ -1,28 +1,39 @@
-{ buildPythonPackage, fetchurl, isPyPy, gmp, pythonAtLeast } :
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPyPy,
+  pythonAtLeast,
+  setuptools,
+  gmp,
+}:
 
-let
+buildPythonPackage rec {
   pname = "gmpy";
   version = "1.17";
-  format = "setuptools";
-in
-
-buildPythonPackage {
-  inherit pname version;
+  pyproject = true;
 
   # Python 3.11 has finally made changes to its C API for which gmpy 1.17,
   # published in 2013, would require patching. It seems unlikely that any
   # patches will be forthcoming.
   disabled = isPyPy || pythonAtLeast "3.11";
 
-  src = fetchurl {
-    url = "mirror://pypi/g/gmpy/${pname}-${version}.zip";
-    sha256 = "1a79118a5332b40aba6aa24b051ead3a31b9b3b9642288934da754515da8fa14";
+  src = fetchFromGitHub {
+    owner = "aleaxit";
+    repo = "gmpy";
+    rev = "refs/tags/gmpy_${lib.replaceStrings [ "." ] [ "_" ] version}";
+    hash = "sha256-kMidOjhKJlDRu2qaiq9c+XcwD1tNAoPhRTvvGcOJe8I=";
   };
 
+  build-system = [ setuptools ];
+
   buildInputs = [ gmp ];
 
+  pythonImportsCheck = [ "gmpy" ];
+
   meta = {
     description = "GMP or MPIR interface to Python 2.4+ and 3.x";
     homepage = "https://github.com/aleaxit/gmpy/";
+    license = lib.licenses.lgpl21Plus;
   };
 }
diff --git a/pkgs/development/python-modules/gmpy2/default.nix b/pkgs/development/python-modules/gmpy2/default.nix
index b5a602d4f222f..58f4cc08f6720 100644
--- a/pkgs/development/python-modules/gmpy2/default.nix
+++ b/pkgs/development/python-modules/gmpy2/default.nix
@@ -1,37 +1,79 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPyPy
-, gmp
-, mpfr
-, libmpc
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPyPy,
+  pythonOlder,
+  setuptools,
+  gmp,
+  mpfr,
+  libmpc,
+  pytestCheckHook,
+  hypothesis,
+  cython,
+  mpmath,
+  # Reverse dependency
+  sage,
 }:
 
-let
+buildPythonPackage rec {
   pname = "gmpy2";
-  version = "2.1.2";
-  format = "setuptools";
-in
+  version = "2.2.0a2";
+  pyproject = true;
 
-buildPythonPackage {
-  inherit pname version;
-
-  disabled = isPyPy;
+  disabled = isPyPy || pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "aleaxit";
     repo = "gmpy";
-    rev = "gmpy2-${version}";
-    hash = "sha256-ARCttNzRA+Ji2j2NYaSCDXgvoEg01T9BnYadyqON2o0=";
+    rev = "refs/tags/gmpy2-${version}";
+    hash = "sha256-luLEDEY1cezhzZo4fXmM/MUg2YyAaz7n0HwSpbNayP8=";
   };
 
-  buildInputs = [ gmp mpfr libmpc ];
+  build-system = [ setuptools ];
+
+  buildInputs = [
+    gmp
+    mpfr
+    libmpc
+  ];
+
+  # make relative imports in tests work properly
+  preCheck = ''
+    rm gmpy2 -r
+  '';
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    hypothesis
+    cython
+    mpmath
+  ];
+
+  disabledTests =
+    lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
+      # issue with some overflow logic
+      "test_mpz_to_bytes"
+      "test_mpz_from_bytes"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # TypeError: mpq() requires numeric or string argument
+      # not sure why it only fails on Darwin
+      "test_mpq_from_Decimal"
+    ];
 
   pythonImportsCheck = [ "gmpy2" ];
 
-  meta = with lib; {
-    description = "GMP/MPIR, MPFR, and MPC interface to Python 2.6+ and 3.x";
+  passthru.tests = {
+    inherit sage;
+  };
+
+  meta = {
+    changelog = "https://github.com/aleaxit/gmpy/blob/${src.rev}/docs/history.rst";
+    description = "Interface to GMP, MPFR, and MPC for Python 3.7+";
     homepage = "https://github.com/aleaxit/gmpy/";
-    license = licenses.gpl3Plus;
+    license = lib.licenses.lgpl3Plus;
+    maintainers = with lib.maintainers; [ tomasajt ];
   };
 }
diff --git a/pkgs/development/python-modules/gntp/default.nix b/pkgs/development/python-modules/gntp/default.nix
index 4376a03782239..2f2661700d925 100644
--- a/pkgs/development/python-modules/gntp/default.nix
+++ b/pkgs/development/python-modules/gntp/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "gntp";
@@ -10,7 +14,10 @@ buildPythonPackage rec {
     sha256 = "1q6scs8lp84v0aph6b5c9jhv51rhq2vmzpdd38db92ybkq0g597l";
   };
 
-  pythonImportsCheck = [ "gntp" "gntp.notifier" ];
+  pythonImportsCheck = [
+    "gntp"
+    "gntp.notifier"
+  ];
 
   # requires a growler service to be running
   doCheck = false;
diff --git a/pkgs/development/python-modules/gnureadline/default.nix b/pkgs/development/python-modules/gnureadline/default.nix
index c3a2434eeea68..f0db91f45cc09 100644
--- a/pkgs/development/python-modules/gnureadline/default.nix
+++ b/pkgs/development/python-modules/gnureadline/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPyPy
-, pkgs
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  pkgs,
 }:
 
 buildPythonPackage rec {
-  version = "8.1.2";
+  version = "8.2.10";
   format = "setuptools";
   pname = "gnureadline";
   disabled = isPyPy;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-QmKmqjVqsi72QvQ6f5TrQqctbwxTLttOjGuTP1cwVtI=";
+    hash = "sha256-p0a6mNTeN7B55C2Um3BMM8FoswvR+QcaHSXJ2ppEmZc=";
   };
 
   buildInputs = [ pkgs.ncurses ];
@@ -22,9 +23,8 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "The standard Python readline extension statically linked against the GNU readline library";
+    description = "Standard Python readline extension statically linked against the GNU readline library";
     homepage = "https://github.com/ludwigschwardt/python-gnureadline";
     license = licenses.gpl3;
   };
-
 }
diff --git a/pkgs/development/python-modules/goalzero/default.nix b/pkgs/development/python-modules/goalzero/default.nix
index 806d486d79cd9..21cdfcdc594db 100644
--- a/pkgs/development/python-modules/goalzero/default.nix
+++ b/pkgs/development/python-modules/goalzero/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-h/EaEOe0zvnO5BYfcIyC3Vq8sPED6ts1IeI/GM+vm7c=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # no tests implemented
   doCheck = false;
 
-  pythonImportsCheck = [
-    "goalzero"
-  ];
+  pythonImportsCheck = [ "goalzero" ];
 
   meta = with lib; {
     description = "Goal Zero Yeti REST Api Library";
diff --git a/pkgs/development/python-modules/gocardless-pro/default.nix b/pkgs/development/python-modules/gocardless-pro/default.nix
index a1c5cff80ddab..8ae218aaa9227 100644
--- a/pkgs/development/python-modules/gocardless-pro/default.nix
+++ b/pkgs/development/python-modules/gocardless-pro/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, six
-, pytestCheckHook
-, responses
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  six,
+  pytestCheckHook,
+  responses,
+  nose,
 }:
 
 buildPythonPackage rec {
   pname = "gocardless-pro";
-  version = "1.51.0";
+  version = "1.52.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "gocardless";
     repo = "gocardless-pro-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4pyVcyEa8iex7ngTibxWYu4HeW+6V5OASkxqjHIOe2Y=";
+    hash = "sha256-Oi68s4x/rS8ahvJ9TsniYfDidCxtvcvsMwYhJirYlP0=";
   };
 
   propagatedBuildInputs = [
@@ -34,11 +35,10 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A client library for the GoCardless Pro API";
+    description = "Client library for the GoCardless Pro API";
     homepage = "https://github.com/gocardless/gocardless-pro-python";
     changelog = "https://github.com/gocardless/gocardless-pro-python/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ blaggacao ];
   };
 }
-
diff --git a/pkgs/development/python-modules/goobook/default.nix b/pkgs/development/python-modules/goobook/default.nix
index 2f3884aa07ff0..921c08f8bbec9 100644
--- a/pkgs/development/python-modules/goobook/default.nix
+++ b/pkgs/development/python-modules/goobook/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitLab
-, pythonOlder
-, docutils
-, installShellFiles
-, poetry-core
-, google-api-python-client
-, simplejson
-, oauth2client
-, setuptools
-, pyxdg
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitLab,
+  pythonOlder,
+  docutils,
+  installShellFiles,
+  poetry-core,
+  google-api-python-client,
+  simplejson,
+  oauth2client,
+  setuptools,
+  pyxdg,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/goocalendar/default.nix b/pkgs/development/python-modules/goocalendar/default.nix
index a9d69447c2cee..75111fd1bc78e 100644
--- a/pkgs/development/python-modules/goocalendar/default.nix
+++ b/pkgs/development/python-modules/goocalendar/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, gobject-introspection
-, goocanvas2
-, gtk3
-, pkg-config
-, pygobject3
-, pythonOlder
- }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  gobject-introspection,
+  goocanvas2,
+  gtk3,
+  pkg-config,
+  pygobject3,
+  pythonOlder,
+}:
 
 buildPythonPackage rec {
   pname = "goocalendar";
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     gobject-introspection
   ];
 
-  propagatedBuildInputs = [
-    pygobject3
-  ];
+  propagatedBuildInputs = [ pygobject3 ];
 
   buildInputs = [
     gtk3
@@ -39,12 +38,10 @@ buildPythonPackage rec {
   # No upstream tests available
   doCheck = false;
 
-  pythonImportsCheck = [
-    "goocalendar"
-  ];
+  pythonImportsCheck = [ "goocalendar" ];
 
   meta = with lib; {
-    description = "A calendar widget for GTK using PyGoocanvas";
+    description = "Calendar widget for GTK using PyGoocanvas";
     homepage = "https://goocalendar.tryton.org/";
     changelog = "https://foss.heptapod.net/tryton/goocalendar/-/blob/${version}/CHANGELOG";
     license = licenses.gpl2Only;
diff --git a/pkgs/development/python-modules/goodwe/default.nix b/pkgs/development/python-modules/goodwe/default.nix
index 8e4eb71a97dc3..2bc0b940952a4 100644
--- a/pkgs/development/python-modules/goodwe/default.nix
+++ b/pkgs/development/python-modules/goodwe/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "goodwe";
-  version = "0.3.3";
+  version = "0.4.8";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "marcelblijleven";
     repo = "goodwe";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CIEv3srjyVWQ1UGKVRwPXpzrND/8hTbw6HSlko9+AIk=";
+    hash = "sha256-EsMv4hzGsAV9OTFo2b/omM4hx7XxUcdO6rrMzQ3DmNQ=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/google-ai-generativelanguage/default.nix b/pkgs/development/python-modules/google-ai-generativelanguage/default.nix
index f19df6658fd22..1ee6497fd1817 100644
--- a/pkgs/development/python-modules/google-ai-generativelanguage/default.nix
+++ b/pkgs/development/python-modules/google-ai-generativelanguage/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "google-ai-generativelanguage";
-  version = "0.6.2";
+  version = "0.6.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MIeRrDudrQFbNZFylwc5qjdT3VQhQqQW0H+foEfiI4Y=";
+    hash = "sha256-xAicJ3+k4mci92qwPuMDnyi+i/HJvigpSLlYOhVMbXk=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/google-api-core/default.nix b/pkgs/development/python-modules/google-api-core/default.nix
index 3a9b0f17c9a8b..cbff06c5d889f 100644
--- a/pkgs/development/python-modules/google-api-core/default.nix
+++ b/pkgs/development/python-modules/google-api-core/default.nix
@@ -1,36 +1,35 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-auth
-, googleapis-common-protos
-, grpcio
-, grpcio-gcp
-, grpcio-status
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-auth,
+  googleapis-common-protos,
+  grpcio,
+  grpcio-gcp,
+  grpcio-status,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "google-api-core";
-  version = "2.18.0";
+  version = "2.19.0";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Ytl0F7/GdNbO8lHlxNY5qWVeAMRVKMQ2T7/rtHjOcqk=";
+    hash = "sha256-zxt8JpQEeIbSrxEooDrpnjkRCKCIBPh8/TWXDknJzRA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     googleapis-common-protos
@@ -45,12 +44,8 @@ buildPythonPackage rec {
       grpcio
       grpcio-status
     ];
-    grpcgcp = [
-      grpcio-gcp
-    ];
-    grpcio-gcp = [
-      grpcio-gcp
-    ];
+    grpcgcp = [ grpcio-gcp ];
+    grpcio-gcp = [ grpcio-gcp ];
   };
 
   nativeCheckInputs = [
@@ -79,9 +74,7 @@ buildPythonPackage rec {
     "test_exception_with_error_code"
   ];
 
-  pythonImportsCheck = [
-    "google.api_core"
-  ];
+  pythonImportsCheck = [ "google.api_core" ];
 
   meta = with lib; {
     description = "Core Library for Google Client Libraries";
diff --git a/pkgs/development/python-modules/google-api-python-client/default.nix b/pkgs/development/python-modules/google-api-python-client/default.nix
index e88ee4650f060..1a6ef5e6c9cff 100644
--- a/pkgs/development/python-modules/google-api-python-client/default.nix
+++ b/pkgs/development/python-modules/google-api-python-client/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "google-api-python-client";
-  version = "2.126.0";
+  version = "2.133.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-l8BBBjDivr0ZTZnpG9Yg2rW8a27AvwM/mpEJtwC4Oss=";
+    hash = "sha256-KTCSkFtmoEbTGHqZrEVOErAMwscERPJusvH5wagnILQ=";
   };
 
   build-system = [ setuptools ];
@@ -41,7 +41,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "googleapiclient" ];
 
   meta = with lib; {
-    description = "The official Python client library for Google's discovery based APIs";
+    description = "Official Python client library for Google's discovery based APIs";
     longDescription = ''
       These client libraries are officially supported by Google. However, the
       libraries are considered complete and are in maintenance mode. This means
diff --git a/pkgs/development/python-modules/google-auth-httplib2/default.nix b/pkgs/development/python-modules/google-auth-httplib2/default.nix
index daf7a64de53a3..cfa2a0ba47a6f 100644
--- a/pkgs/development/python-modules/google-auth-httplib2/default.nix
+++ b/pkgs/development/python-modules/google-auth-httplib2/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flask
-, google-auth
-, httplib2
-, mock
-, pytest-localserver
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flask,
+  google-auth,
+  httplib2,
+  mock,
+  pytest-localserver,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/google-auth-oauthlib/default.nix b/pkgs/development/python-modules/google-auth-oauthlib/default.nix
index 84693b839de93..863cf6bb6dfcf 100644
--- a/pkgs/development/python-modules/google-auth-oauthlib/default.nix
+++ b/pkgs/development/python-modules/google-auth-oauthlib/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, click
-, mock
-, pytestCheckHook
-, google-auth
-, requests-oauthlib
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  click,
+  mock,
+  pytestCheckHook,
+  google-auth,
+  requests-oauthlib,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-KS0tN4M0nysHNKCgIHseHjIqwZPCwJ2PfGE/t8xQHqg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-auth
@@ -41,17 +40,17 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ passthru.optional-dependencies.tool;
 
-  disabledTests = [
-    # Flaky test. See https://github.com/NixOS/nixpkgs/issues/288424#issuecomment-1941609973.
-    "test_run_local_server_occupied_port"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # This test fails if the hostname is not associated with an IP (e.g., in `/etc/hosts`).
-    "test_run_local_server_bind_addr"
-  ];
-
-  pythonImportsCheck = [
-    "google_auth_oauthlib"
-  ];
+  disabledTests =
+    [
+      # Flaky test. See https://github.com/NixOS/nixpkgs/issues/288424#issuecomment-1941609973.
+      "test_run_local_server_occupied_port"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # This test fails if the hostname is not associated with an IP (e.g., in `/etc/hosts`).
+      "test_run_local_server_bind_addr"
+    ];
+
+  pythonImportsCheck = [ "google_auth_oauthlib" ];
 
   meta = with lib; {
     changelog = "https://github.com/googleapis/google-auth-library-python-oauthlib/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/google-auth/default.nix b/pkgs/development/python-modules/google-auth/default.nix
index b8ff0805b01e8..d086f02de5c00 100644
--- a/pkgs/development/python-modules/google-auth/default.nix
+++ b/pkgs/development/python-modules/google-auth/default.nix
@@ -1,44 +1,43 @@
-{ lib
-, stdenv
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, cachetools
-, cryptography
-, fetchPypi
-, flask
-, freezegun
-, grpcio
-, mock
-, oauth2client
-, pyasn1-modules
-, pyopenssl
-, pytest-asyncio
-, pytest-localserver
-, pytestCheckHook
-, pythonOlder
-, pyu2f
-, requests
-, responses
-, rsa
-, setuptools
+{
+  lib,
+  stdenv,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  cachetools,
+  cryptography,
+  fetchPypi,
+  flask,
+  freezegun,
+  grpcio,
+  mock,
+  oauth2client,
+  pyasn1-modules,
+  pyopenssl,
+  pytest-asyncio,
+  pytest-localserver,
+  pytestCheckHook,
+  pythonOlder,
+  pyu2f,
+  requests,
+  responses,
+  rsa,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "google-auth";
-  version = "2.29.0";
+  version = "2.30.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Zy3/My0HMidVD/x0V4aKxCGNbFALFV/mzBfSsTYCw2A=";
+    hash = "sha256-q2MKEyD2cgkJrXan29toQc31xmsyjWkAJ+SGe9+xZog=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cachetools
@@ -59,28 +58,26 @@ buildPythonPackage rec {
       cryptography
       pyopenssl
     ];
-    reauth = [
-      pyu2f
-    ];
-    requests = [
-      requests
-    ];
+    reauth = [ pyu2f ];
+    requests = [ requests ];
   };
 
-  nativeCheckInputs = [
-    aioresponses
-    flask
-    freezegun
-    grpcio
-    mock
-    oauth2client
-    pytest-asyncio
-    pytest-localserver
-    pytestCheckHook
-    responses
-  ] ++ passthru.optional-dependencies.aiohttp
-  ++ passthru.optional-dependencies.enterprise_cert
-  ++ passthru.optional-dependencies.reauth;
+  nativeCheckInputs =
+    [
+      aioresponses
+      flask
+      freezegun
+      grpcio
+      mock
+      oauth2client
+      pytest-asyncio
+      pytest-localserver
+      pytestCheckHook
+      responses
+    ]
+    ++ passthru.optional-dependencies.aiohttp
+    ++ passthru.optional-dependencies.enterprise_cert
+    ++ passthru.optional-dependencies.reauth;
 
   pythonImportsCheck = [
     "google.auth"
diff --git a/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix b/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix
index 409cfc2bc4a47..83a6a8ffe478b 100644
--- a/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix
+++ b/pkgs/development/python-modules/google-cloud-access-context-manager/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, pythonOlder
-, protobuf
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  pythonOlder,
+  protobuf,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-pbQkMSwISwK2+Ywev7avKBMvwB5dcZgX+kmeeMh+BLc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
@@ -31,9 +30,7 @@ buildPythonPackage rec {
   # No tests in repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "google.identity.accesscontextmanager"
-  ];
+  pythonImportsCheck = [ "google.identity.accesscontextmanager" ];
 
   meta = with lib; {
     description = "Protobufs for Google Access Context Manager";
diff --git a/pkgs/development/python-modules/google-cloud-appengine-logging/default.nix b/pkgs/development/python-modules/google-cloud-appengine-logging/default.nix
index d9f5f38c36ece..08770d71976d7 100644
--- a/pkgs/development/python-modules/google-cloud-appengine-logging/default.nix
+++ b/pkgs/development/python-modules/google-cloud-appengine-logging/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, grpc-google-iam-v1
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  grpc-google-iam-v1,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-+1BOYZn+jehbqp0xzs9ndod4Uf5Yhn3mAzF+x8xzmYc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-artifact-registry/default.nix b/pkgs/development/python-modules/google-cloud-artifact-registry/default.nix
index 07e965918652c..494e8bae5252f 100644
--- a/pkgs/development/python-modules/google-cloud-artifact-registry/default.nix
+++ b/pkgs/development/python-modules/google-cloud-artifact-registry/default.nix
@@ -1,14 +1,15 @@
-{ buildPythonPackage
-, fetchPypi
-, google-api-core
-, google-auth
-, grpc-google-iam-v1
-, lib
-, proto-plus
-, protobuf
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  google-auth,
+  grpc-google-iam-v1,
+  lib,
+  proto-plus,
+  protobuf,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-wsSeFbtZHWXeoiyC2lUUjFE09xkZuu+OtNNb4dHLIM0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
@@ -35,9 +34,7 @@ buildPythonPackage rec {
     protobuf
   ] ++ google-api-core.optional-dependencies.grpc;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [
     "google.cloud.artifactregistry"
diff --git a/pkgs/development/python-modules/google-cloud-audit-log/default.nix b/pkgs/development/python-modules/google-cloud-audit-log/default.nix
index 60515a9c65dc2..93907bcf7eafd 100644
--- a/pkgs/development/python-modules/google-cloud-audit-log/default.nix
+++ b/pkgs/development/python-modules/google-cloud-audit-log/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, googleapis-common-protos
-, protobuf
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  googleapis-common-protos,
+  protobuf,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,14 +19,15 @@ buildPythonPackage rec {
     hash = "sha256-huL6ujODrcj9BKW9f9T5YLPkrtqn7ZUPL4kc4WkC62s=";
   };
 
-  propagatedBuildInputs = [ googleapis-common-protos protobuf ];
+  propagatedBuildInputs = [
+    googleapis-common-protos
+    protobuf
+  ];
 
   # tests are a bit wonky to setup and are not very deep either
   doCheck = false;
 
-  pythonImportsCheck = [
-    "google.cloud.audit"
-  ];
+  pythonImportsCheck = [ "google.cloud.audit" ];
 
   meta = with lib; {
     description = "Google Cloud Audit Protos";
diff --git a/pkgs/development/python-modules/google-cloud-automl/default.nix b/pkgs/development/python-modules/google-cloud-automl/default.nix
index 34b49c9b19990..a8240580d12e8 100644
--- a/pkgs/development/python-modules/google-cloud-automl/default.nix
+++ b/pkgs/development/python-modules/google-cloud-automl/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, google-cloud-storage
-, google-cloud-testutils
-, libcst
-, mock
-, pandas
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  google-cloud-storage,
+  google-cloud-testutils,
+  libcst,
+  mock,
+  pandas,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-iRqQgurt6xe8W7ck/BULdwLGhNdCD58irj98X8YRxxo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
@@ -38,15 +37,9 @@ buildPythonPackage rec {
   ] ++ google-api-core.optional-dependencies.grpc;
 
   passthru.optional-dependencies = {
-    libcst = [
-      libcst
-    ];
-    pandas = [
-      pandas
-    ];
-    storage = [
-      google-cloud-storage
-    ];
+    libcst = [ libcst ];
+    pandas = [ pandas ];
+    storage = [ google-cloud-storage ];
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix b/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
index e7eaf3bd595e5..fbec33fc371c6 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery-datatransfer/default.nix
@@ -16,14 +16,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery-datatransfer";
-  version = "3.15.2";
+  version = "3.15.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-oX4E3G3PB9qqCo5ZWt+p702oV5KUzlIdXNczthJ73Q0=";
+    hash = "sha256-5MhO7TEgnEO0PwjdpzB+7AZmokMdjAh6z0poKtQfOrE=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/google-cloud-bigquery-logging/default.nix b/pkgs/development/python-modules/google-cloud-bigquery-logging/default.nix
index da43db7a3cc44..b89159c5838e0 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery-logging/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery-logging/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, grpc-google-iam-v1
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  grpc-google-iam-v1,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-7RqwaSthQcwGebhi5F/V//WxBIp5upVS0ToDDsjyURY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix b/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
index 1cda61e137576..2326fb680467e 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery-storage/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, buildPythonPackage
-, fastavro
-, fetchPypi
-, google-api-core
-, google-auth
-, google-cloud-bigquery
-, pandas
-, protobuf
-, pyarrow
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fastavro,
+  fetchPypi,
+  google-api-core,
+  google-auth,
+  google-cloud-bigquery,
+  pandas,
+  protobuf,
+  pyarrow,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery-storage";
-  version = "2.24.0";
+  version = "2.25.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-tK9bmqzYOWuEB9G4d2AaN22O6m0ZKCOop4gb0v3Ads4=";
+    hash = "sha256-GV/9KxgOnqoivqs+QKC2Hs0UbssyZnz0Immo1xEbTUg=";
   };
 
   propagatedBuildInputs = [
@@ -30,15 +31,9 @@ buildPythonPackage rec {
   ] ++ google-api-core.optional-dependencies.grpc;
 
   passthru.optional-dependencies = {
-    fastavro = [
-      fastavro
-    ];
-    pandas = [
-      pandas
-    ];
-    pyarrow = [
-      pyarrow
-    ];
+    fastavro = [ fastavro ];
+    pandas = [ pandas ];
+    pyarrow = [ pyarrow ];
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-bigquery/default.nix b/pkgs/development/python-modules/google-cloud-bigquery/default.nix
index a079fffd2510c..35de32bea6c51 100644
--- a/pkgs/development/python-modules/google-cloud-bigquery/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigquery/default.nix
@@ -30,14 +30,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigquery";
-  version = "3.21.0";
+  version = "3.24.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-YmXDn51b31DxHLganCoGBdKF3zSsE53g0jM7ElCt0P8=";
+    hash = "sha256-6V5vbgqjLmxFPUTisymJMf3XlHwwnqMpoxtv8fk54X4=";
   };
 
   build-system = [ setuptools ];
@@ -93,8 +93,10 @@ buildPythonPackage rec {
     "test_arrow_extension_types_same_for_storage_and_REST_APIs_894"
     "test_list_rows_empty_table"
     "test_list_rows_page_size"
-    "test_list_rows_scalars"
+    "test_list_rows_range_csv"
+    "test_list_rows_range"
     "test_list_rows_scalars_extreme"
+    "test_list_rows_scalars"
     "test_dry_run"
     "test_session"
     # Mocking of _ensure_bqstorage_client fails
diff --git a/pkgs/development/python-modules/google-cloud-bigtable/default.nix b/pkgs/development/python-modules/google-cloud-bigtable/default.nix
index dd6485aa5d24a..30c5087f0d4a2 100644
--- a/pkgs/development/python-modules/google-cloud-bigtable/default.nix
+++ b/pkgs/development/python-modules/google-cloud-bigtable/default.nix
@@ -17,14 +17,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-bigtable";
-  version = "2.23.1";
+  version = "2.24.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-FHWiK/zhY7XELN9O717AUyPuozWFUpT5zk4j+qIk8Cg=";
+    hash = "sha256-rOdfYso8UtZhnU/3rtmCEpyuUIuvd22BszMT9PnqXtQ=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/google-cloud-compute/default.nix b/pkgs/development/python-modules/google-cloud-compute/default.nix
index e3f504e500931..b7f89a66dd6da 100644
--- a/pkgs/development/python-modules/google-cloud-compute/default.nix
+++ b/pkgs/development/python-modules/google-cloud-compute/default.nix
@@ -1,33 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, google-api-core
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  google-api-core,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-compute";
-  version = "1.18.0";
+  version = "1.19.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-QSI3GDh36yg4qm4Izaps8X85lFGhZuOpqjOuiUzBWh0=";
+    hash = "sha256-oHs0CLP3d4bcsZZmn/N2e8UQgHGKfC0/13ne/I2Be00=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     google-api-core
     proto-plus
     protobuf
diff --git a/pkgs/development/python-modules/google-cloud-container/default.nix b/pkgs/development/python-modules/google-cloud-container/default.nix
index 5283cb448d264..5ec6a9d49cd06 100644
--- a/pkgs/development/python-modules/google-cloud-container/default.nix
+++ b/pkgs/development/python-modules/google-cloud-container/default.nix
@@ -1,32 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, libcst
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  libcst,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-container";
-  version = "2.45.0";
+  version = "2.47.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-8vaSLR+cIKohDpbC679cKydLsnBKhewtTpdBDymxjss=";
+    hash = "sha256-tvzOKTu2n5b9JDo9EJw48BUrJuOwOR9JK6PQyi44HfI=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-core/default.nix b/pkgs/development/python-modules/google-cloud-core/default.nix
index 84168c911f28e..3213156bb49ac 100644
--- a/pkgs/development/python-modules/google-cloud-core/default.nix
+++ b/pkgs/development/python-modules/google-cloud-core/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, google-auth
-, grpcio
-, mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  google-auth,
+  grpcio,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    grpc = [
-      grpcio
-    ];
+    grpc = [ grpcio ];
   };
 
   nativeCheckInputs = [
@@ -42,9 +41,7 @@ buildPythonPackage rec {
     rm -r google
   '';
 
-  pythonImportsCheck = [
-    "google.cloud"
-  ];
+  pythonImportsCheck = [ "google.cloud" ];
 
   meta = with lib; {
     description = "API Client library for Google Cloud: Core Helpers";
diff --git a/pkgs/development/python-modules/google-cloud-datacatalog/default.nix b/pkgs/development/python-modules/google-cloud-datacatalog/default.nix
index 4248a857bb48b..afdb8dcf4eb24 100644
--- a/pkgs/development/python-modules/google-cloud-datacatalog/default.nix
+++ b/pkgs/development/python-modules/google-cloud-datacatalog/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, grpc-google-iam-v1
-, libcst
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  grpc-google-iam-v1,
+  libcst,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-Oo0O94fw7dRwPn4nyRobX4W9vgTWFgkTLsdyaffVJpI=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     google-api-core
@@ -43,9 +42,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "google.cloud.datacatalog"
-  ];
+  pythonImportsCheck = [ "google.cloud.datacatalog" ];
 
   meta = with lib; {
     description = "Google Cloud Data Catalog API API client library";
diff --git a/pkgs/development/python-modules/google-cloud-dataproc/default.nix b/pkgs/development/python-modules/google-cloud-dataproc/default.nix
index 6e22cb60c2672..7353e61ad5d43 100644
--- a/pkgs/development/python-modules/google-cloud-dataproc/default.nix
+++ b/pkgs/development/python-modules/google-cloud-dataproc/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, grpc-google-iam-v1
-, mock
-, libcst
-, proto-plus
-, protobuf
-, pytestCheckHook
-, pytest-asyncio
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  grpc-google-iam-v1,
+  mock,
+  libcst,
+  proto-plus,
+  protobuf,
+  pytestCheckHook,
+  pytest-asyncio,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-l9ZHiR5/TNJfa4Oa5XzTVYCd8so5ZlPtJK9itO8C9BI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-datastore/default.nix b/pkgs/development/python-modules/google-cloud-datastore/default.nix
index 00e07713a6351..fbce5713a507f 100644
--- a/pkgs/development/python-modules/google-cloud-datastore/default.nix
+++ b/pkgs/development/python-modules/google-cloud-datastore/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, google-cloud-core
-, google-cloud-testutils
-, libcst
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  google-cloud-core,
+  google-cloud-testutils,
+  libcst,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
   ] ++ google-api-core.optional-dependencies.grpc;
 
   passthru.optional-dependencies = {
-    libcst = [
-      libcst
-    ];
+    libcst = [ libcst ];
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/google-cloud-dlp/default.nix b/pkgs/development/python-modules/google-cloud-dlp/default.nix
index f3895b8e3ef17..3772f823e92ae 100644
--- a/pkgs/development/python-modules/google-cloud-dlp/default.nix
+++ b/pkgs/development/python-modules/google-cloud-dlp/default.nix
@@ -1,32 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, google-cloud-testutils
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  google-cloud-testutils,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-dlp";
-  version = "3.16.0";
+  version = "3.18.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-DWmh96XviHVsmeVrivTDnq5A0hBog/DieUxcs2QmltU=";
+    hash = "sha256-R0CMx16DmMfc6Tw/YqPthYKyDxJcyODdMxAVrj62L34=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-dns/default.nix b/pkgs/development/python-modules/google-cloud-dns/default.nix
index f076591c02de0..0ab6d3f677e9f 100644
--- a/pkgs/development/python-modules/google-cloud-dns/default.nix
+++ b/pkgs/development/python-modules/google-cloud-dns/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, google-cloud-core
-, mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  google-cloud-core,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -40,9 +41,7 @@ buildPythonPackage rec {
     "test_quota"
   ];
 
-  pythonImportsCheck = [
-    "google.cloud.dns"
-  ];
+  pythonImportsCheck = [ "google.cloud.dns" ];
 
   meta = with lib; {
     description = "Google Cloud DNS API client library";
diff --git a/pkgs/development/python-modules/google-cloud-error-reporting/default.nix b/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
index 7705598e80971..5c60a79bd6133 100644
--- a/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
+++ b/pkgs/development/python-modules/google-cloud-error-reporting/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, google-cloud-logging
-, google-cloud-testutils
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-,setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  google-cloud-logging,
+  google-cloud-testutils,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-+oeVT/ag00BEObbqzkC/EazEwnrWvRURnz3gnCBbn4k=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-firestore/default.nix b/pkgs/development/python-modules/google-cloud-firestore/default.nix
index 71bcfd699dc13..66de0b03ad00f 100644
--- a/pkgs/development/python-modules/google-cloud-firestore/default.nix
+++ b/pkgs/development/python-modules/google-cloud-firestore/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, aiounittest
-, buildPythonPackage
-, fetchPypi
-, freezegun
-, google-api-core
-, google-cloud-core
-, google-cloud-testutils
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiounittest,
+  buildPythonPackage,
+  fetchPypi,
+  freezegun,
+  google-api-core,
+  google-cloud-core,
+  google-cloud-testutils,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-5hrnAimm5TLkOcjRZEejICREfy7kojA/xNBUwljWh38=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-iam-logging/default.nix b/pkgs/development/python-modules/google-cloud-iam-logging/default.nix
index bea85e0283890..13e45e3f02d61 100644
--- a/pkgs/development/python-modules/google-cloud-iam-logging/default.nix
+++ b/pkgs/development/python-modules/google-cloud-iam-logging/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, grpc-google-iam-v1
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  grpc-google-iam-v1,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-99YYGGrI8zg+cwdVKqFVneL0jTzO7GJq91O/Kk0lGJM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-iam/default.nix b/pkgs/development/python-modules/google-cloud-iam/default.nix
index c5b192169bef4..0b3f31b643b7a 100644
--- a/pkgs/development/python-modules/google-cloud-iam/default.nix
+++ b/pkgs/development/python-modules/google-cloud-iam/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, libcst
-, mock
-, proto-plus
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  libcst,
+  mock,
+  proto-plus,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -34,7 +35,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTestPaths =[
+  disabledTestPaths = [
     # unmaintained, reference wrong import path for google.cloud.iam.v1
     "tests/unit/gapic/iam_admin_v1/test_iam.py"
   ];
diff --git a/pkgs/development/python-modules/google-cloud-iot/default.nix b/pkgs/development/python-modules/google-cloud-iot/default.nix
index 3cd2f397a6b8d..7fe73ddf3c916 100644
--- a/pkgs/development/python-modules/google-cloud-iot/default.nix
+++ b/pkgs/development/python-modules/google-cloud-iot/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, grpc-google-iam-v1
-, libcst
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  grpc-google-iam-v1,
+  libcst,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/google-cloud-kms/default.nix b/pkgs/development/python-modules/google-cloud-kms/default.nix
index 2dec1cea50a31..5a9c25bfc20ff 100644
--- a/pkgs/development/python-modules/google-cloud-kms/default.nix
+++ b/pkgs/development/python-modules/google-cloud-kms/default.nix
@@ -1,32 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, grpc-google-iam-v1
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  grpc-google-iam-v1,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-kms";
-  version = "2.21.4";
+  version = "2.23.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-AQW8FKOYt/05GUO766/VkY8+NAaCepiXObLcOInMEhg=";
+    hash = "sha256-UrX8b3CxY1FvrWEKr8CI++eI9QHVu+HV9FjNw/y6/Sw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     grpc-google-iam-v1
diff --git a/pkgs/development/python-modules/google-cloud-language/default.nix b/pkgs/development/python-modules/google-cloud-language/default.nix
index 98f4355facbd6..75c88a69744be 100644
--- a/pkgs/development/python-modules/google-cloud-language/default.nix
+++ b/pkgs/development/python-modules/google-cloud-language/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-Vp01Jgr5Bt4luOKna2Nk4FgJuEU6/Ynac41KT8uQhG8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-logging/default.nix b/pkgs/development/python-modules/google-cloud-logging/default.nix
index 546ab8cb544e4..95b237af99848 100644
--- a/pkgs/development/python-modules/google-cloud-logging/default.nix
+++ b/pkgs/development/python-modules/google-cloud-logging/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, django
-, fetchPypi
-, flask
-, google-api-core
-, google-cloud-appengine-logging
-, google-cloud-audit-log
-, google-cloud-core
-, google-cloud-testutils
-, grpc-google-iam-v1
-, mock
-, pandas
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, rich
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  django,
+  fetchPypi,
+  flask,
+  google-api-core,
+  google-cloud-appengine-logging,
+  google-cloud-audit-log,
+  google-cloud-core,
+  google-cloud-testutils,
+  grpc-google-iam-v1,
+  mock,
+  pandas,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  rich,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     hash = "sha256-2T00c1EkDdsUz+IBmHotMs+df0eLiy+r7TAVtCWzJ08=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-netapp/default.nix b/pkgs/development/python-modules/google-cloud-netapp/default.nix
index 6f9162b757a78..75cdea2190971 100644
--- a/pkgs/development/python-modules/google-cloud-netapp/default.nix
+++ b/pkgs/development/python-modules/google-cloud-netapp/default.nix
@@ -1,32 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, google-auth
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  google-auth,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-netapp";
-  version = "0.3.9";
+  version = "0.3.10";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Vohliy9W+fkY4YmSIvw6WiWVlLBk+Fo9CvZG/VKeU1o=";
+    hash = "sha256-Bau1Xqb+lmG6aCoWm93mtfOII7CbnnaeZ5vmLp6n0Zs=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-org-policy/default.nix b/pkgs/development/python-modules/google-cloud-org-policy/default.nix
index d7365d31aa069..ebc945eb848a4 100644
--- a/pkgs/development/python-modules/google-cloud-org-policy/default.nix
+++ b/pkgs/development/python-modules/google-cloud-org-policy/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-3BJDTwbIDhscHDR8rcjLQP/JYZrktcW+tcK9WFyV2X8=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     google-api-core
@@ -42,9 +41,7 @@ buildPythonPackage rec {
     rm -r google
   '';
 
-  pythonImportsCheck = [
-    "google.cloud.orgpolicy"
-  ];
+  pythonImportsCheck = [ "google.cloud.orgpolicy" ];
 
   meta = with lib; {
     description = "Protobufs for Google Cloud Organization Policy";
diff --git a/pkgs/development/python-modules/google-cloud-os-config/default.nix b/pkgs/development/python-modules/google-cloud-os-config/default.nix
index 7abcde5174c0c..ca1b446f92320 100644
--- a/pkgs/development/python-modules/google-cloud-os-config/default.nix
+++ b/pkgs/development/python-modules/google-cloud-os-config/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, protobuf
-, proto-plus
-, pytestCheckHook
-, pytest-asyncio
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  protobuf,
+  proto-plus,
+  pytestCheckHook,
+  pytest-asyncio,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-oKOqWVmAP14dKpbVDlcX2KSRceTqVES/UGlLsYtnWHA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
@@ -37,9 +36,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "google.cloud.osconfig"
-  ];
+  pythonImportsCheck = [ "google.cloud.osconfig" ];
 
   disabledTests = [
     # Test requires a project ID
diff --git a/pkgs/development/python-modules/google-cloud-pubsub/default.nix b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
index 079d482b35e7a..8ba2f84e072f3 100644
--- a/pkgs/development/python-modules/google-cloud-pubsub/default.nix
+++ b/pkgs/development/python-modules/google-cloud-pubsub/default.nix
@@ -18,14 +18,14 @@
 
 buildPythonPackage rec {
   pname = "google-cloud-pubsub";
-  version = "2.21.1";
+  version = "2.21.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MfzwdES3+BOmFsS2UOH78dyZigiP4AWadhZIVawX8Fw=";
+    hash = "sha256-LLjHaYrb/qBEjbbIm3iqchf84HweN7RtPlNfoWM/OuY=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/google-cloud-redis/default.nix b/pkgs/development/python-modules/google-cloud-redis/default.nix
index 588a156d745dc..5dd7405a8d114 100644
--- a/pkgs/development/python-modules/google-cloud-redis/default.nix
+++ b/pkgs/development/python-modules/google-cloud-redis/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-5qIx5FEHA4z+SY360fba0sp73KOpMTI3ML4Dq3oACo8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-resource-manager/default.nix b/pkgs/development/python-modules/google-cloud-resource-manager/default.nix
index 299f2f1f3a804..5e7f3530cb5ee 100644
--- a/pkgs/development/python-modules/google-cloud-resource-manager/default.nix
+++ b/pkgs/development/python-modules/google-cloud-resource-manager/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, google-cloud-core
-, grpc-google-iam-v1
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  google-cloud-core,
+  grpc-google-iam-v1,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-gJhRgkEZg05PIxCyxPOGIcHRayuxTVufEy5px501Xn8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix b/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
index 915f00961bcad..82cd2b45ecbbf 100644
--- a/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
+++ b/pkgs/development/python-modules/google-cloud-runtimeconfig/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, google-cloud-core
-, mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  google-cloud-core,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -31,18 +32,14 @@ buildPythonPackage rec {
   ];
 
   # Client tests require credentials
-  disabledTests = [
-    "client_options"
-  ];
+  disabledTests = [ "client_options" ];
 
   # prevent google directory from shadowing google imports
   preCheck = ''
     rm -r google
   '';
 
-  pythonImportsCheck = [
-    "google.cloud.runtimeconfig"
-  ];
+  pythonImportsCheck = [ "google.cloud.runtimeconfig" ];
 
   meta = with lib; {
     description = "Google Cloud RuntimeConfig API client library";
diff --git a/pkgs/development/python-modules/google-cloud-shell/default.nix b/pkgs/development/python-modules/google-cloud-shell/default.nix
index e2dd38444b563..ae5b9b7483082 100644
--- a/pkgs/development/python-modules/google-cloud-shell/default.nix
+++ b/pkgs/development/python-modules/google-cloud-shell/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, google-auth
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  google-auth,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-33TZcRsOWP8PBAXFHy9DQn20bVECwD2wv7hcaYl0E8Y=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-speech/default.nix b/pkgs/development/python-modules/google-cloud-speech/default.nix
index 2780b5bdfc7fe..e1875f677afaa 100644
--- a/pkgs/development/python-modules/google-cloud-speech/default.nix
+++ b/pkgs/development/python-modules/google-cloud-speech/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-0xVqeElq6s/0A0KUCKGxPv6ZbabwVEolVnkErYAWcdU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-storage/default.nix b/pkgs/development/python-modules/google-cloud-storage/default.nix
index 1c17e2a0867d9..3d47efcfcfbb6 100644
--- a/pkgs/development/python-modules/google-cloud-storage/default.nix
+++ b/pkgs/development/python-modules/google-cloud-storage/default.nix
@@ -1,41 +1,38 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-auth
-, google-cloud-core
-, google-cloud-iam
-, google-cloud-kms
-, google-cloud-testutils
-, google-resumable-media
-, mock
-, protobuf
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-auth,
+  google-cloud-core,
+  google-cloud-iam,
+  google-cloud-kms,
+  google-cloud-testutils,
+  google-resumable-media,
+  mock,
+  protobuf,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "google-cloud-storage";
-  version = "2.16.0";
+  version = "2.17.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-3aSF+lA3EKgo0BJGvRbOnbCCPcUbvKdCzpamgX1YZp8=";
+    hash = "sha256-STeKv/VO9la1Lcpe8PLrqaqD3CsscseHFLA6GpX+k4g=";
   };
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
-  pythonRelaxDeps = [
-    "google-auth"
-  ];
+  pythonRelaxDeps = [ "google-auth" ];
 
   propagatedBuildInputs = [
     google-auth
@@ -45,9 +42,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    protobuf = [
-      protobuf
-    ];
+    protobuf = [ protobuf ];
   };
 
   nativeCheckInputs = [
@@ -92,9 +87,7 @@ buildPythonPackage rec {
     rm tests/conformance/test_conformance.py
   '';
 
-  pythonImportsCheck = [
-    "google.cloud.storage"
-  ];
+  pythonImportsCheck = [ "google.cloud.storage" ];
 
   meta = with lib; {
     description = "Google Cloud Storage API client library";
diff --git a/pkgs/development/python-modules/google-cloud-tasks/default.nix b/pkgs/development/python-modules/google-cloud-tasks/default.nix
index a76e4e50f7f00..215fe74b66cff 100644
--- a/pkgs/development/python-modules/google-cloud-tasks/default.nix
+++ b/pkgs/development/python-modules/google-cloud-tasks/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, grpc-google-iam-v1
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  grpc-google-iam-v1,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-2JH+cAbbTWEig4qm3krKbgB3urIk7crmhGZq4+MDxF8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-testutils/default.nix b/pkgs/development/python-modules/google-cloud-testutils/default.nix
index 146f4c726d1c9..15d8d226d50bd 100644
--- a/pkgs/development/python-modules/google-cloud-testutils/default.nix
+++ b/pkgs/development/python-modules/google-cloud-testutils/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchPypi
-, google-auth
-, packaging
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchPypi,
+  google-auth,
+  packaging,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,15 +29,13 @@ buildPythonPackage rec {
   # does not contain tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "test_utils"
-  ];
+  pythonImportsCheck = [ "test_utils" ];
 
   meta = with lib; {
     description = "System test utilities for google-cloud-python";
     mainProgram = "lower-bound-checker";
     homepage = "https://github.com/googleapis/python-test-utils";
-    changelog  ="https://github.com/googleapis/python-test-utils/blob/v${version}/CHANGELOG.md";
+    changelog = "https://github.com/googleapis/python-test-utils/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/google-cloud-texttospeech/default.nix b/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
index 76b0c2a1f269c..7adb663194b91 100644
--- a/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
+++ b/pkgs/development/python-modules/google-cloud-texttospeech/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-+rwxUDLRN9oHELtMJoc00zYhLY+oMWsjsnfdOoTOchw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-trace/default.nix b/pkgs/development/python-modules/google-cloud-trace/default.nix
index 4a276b5f05a72..9bfed30a71b63 100644
--- a/pkgs/development/python-modules/google-cloud-trace/default.nix
+++ b/pkgs/development/python-modules/google-cloud-trace/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, google-cloud-testutils
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  google-cloud-testutils,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-NqwuM94NsBf/0vY9jWTct1vpETzPpN5JYvRzfv1srIA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-translate/default.nix b/pkgs/development/python-modules/google-cloud-translate/default.nix
index 2eb65c2a61a23..919a21471a8b6 100644
--- a/pkgs/development/python-modules/google-cloud-translate/default.nix
+++ b/pkgs/development/python-modules/google-cloud-translate/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, google-cloud-core
-, google-cloud-testutils
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  google-cloud-core,
+  google-cloud-testutils,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-7Vh6HmDPhHw7Gt1rKCVuLRci+nOkKFM09excqTPmFvI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-videointelligence/default.nix b/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
index d7d39587fe5a0..22182e2500a81 100644
--- a/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
+++ b/pkgs/development/python-modules/google-cloud-videointelligence/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, google-cloud-testutils
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  google-cloud-testutils,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-FGByHYEgZhxHfAGvDt09sDhFhX9SFGpKOfFrSs+zb20=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-vision/default.nix b/pkgs/development/python-modules/google-cloud-vision/default.nix
index a771cba345074..3213316718597 100644
--- a/pkgs/development/python-modules/google-cloud-vision/default.nix
+++ b/pkgs/development/python-modules/google-cloud-vision/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-BEMwrWGMgQMz/yKWzSf/0UXySWONGzWycN5rRgsA6NI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-vpc-access/default.nix b/pkgs/development/python-modules/google-cloud-vpc-access/default.nix
index 0c6bbf6ace671..c29a042394478 100644
--- a/pkgs/development/python-modules/google-cloud-vpc-access/default.nix
+++ b/pkgs/development/python-modules/google-cloud-vpc-access/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, google-auth
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  google-auth,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-mkDYB4HFJEu1ZRKo58s5a9lZjQ0pUs6nOBMnm27ajeM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-webrisk/default.nix b/pkgs/development/python-modules/google-cloud-webrisk/default.nix
index 8457ab9180d03..aaeab75a44c85 100644
--- a/pkgs/development/python-modules/google-cloud-webrisk/default.nix
+++ b/pkgs/development/python-modules/google-cloud-webrisk/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, google-auth
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  google-auth,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-VrfIVy3qGEMfFUiJ27zZPjBaWIPZX/qraga/+FfJol4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix b/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
index 4703ba3aadb0e..624ce66ed720f 100644
--- a/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
+++ b/pkgs/development/python-modules/google-cloud-websecurityscanner/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-Wp88cJqlAaAkaemHzkgKuhU4v4dFpgn5Sf+uqGKTeWQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-workflows/default.nix b/pkgs/development/python-modules/google-cloud-workflows/default.nix
index bc54419923f33..95bf8d056e257 100644
--- a/pkgs/development/python-modules/google-cloud-workflows/default.nix
+++ b/pkgs/development/python-modules/google-cloud-workflows/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-IUC5f3gDe5Z9QYVXaIZ3L+F7530q6ZltIHozTtWnf/4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-cloud-workstations/default.nix b/pkgs/development/python-modules/google-cloud-workstations/default.nix
index 1341eae06f2aa..88ccbf44d9aae 100644
--- a/pkgs/development/python-modules/google-cloud-workstations/default.nix
+++ b/pkgs/development/python-modules/google-cloud-workstations/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-api-core
-, google-auth
-, grpc-google-iam-v1
-, mock
-, proto-plus
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-api-core,
+  google-auth,
+  grpc-google-iam-v1,
+  mock,
+  proto-plus,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-K6Qq243bX3waymyGcirLAANqmP0UAUgFS3kidwCFYBE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-api-core
diff --git a/pkgs/development/python-modules/google-crc32c/default.nix b/pkgs/development/python-modules/google-crc32c/default.nix
index 38c6eea798fa5..fc6bcf95b4a27 100644
--- a/pkgs/development/python-modules/google-crc32c/default.nix
+++ b/pkgs/development/python-modules/google-crc32c/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchFromGitHub, cffi, crc32c, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cffi,
+  crc32c,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "google-crc32c";
@@ -19,7 +26,10 @@ buildPythonPackage rec {
   LDFLAGS = "-L${crc32c}/lib";
   CFLAGS = "-I${crc32c}/include";
 
-  nativeCheckInputs = [ pytestCheckHook crc32c ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    crc32c
+  ];
 
   pythonImportsCheck = [ "google_crc32c" ];
 
diff --git a/pkgs/development/python-modules/google-generativeai/default.nix b/pkgs/development/python-modules/google-generativeai/default.nix
index 4425966a00638..e24b153c37465 100644
--- a/pkgs/development/python-modules/google-generativeai/default.nix
+++ b/pkgs/development/python-modules/google-generativeai/default.nix
@@ -9,7 +9,6 @@
   protobuf,
   pydantic,
   pythonOlder,
-  pythonRelaxDepsHook,
   setuptools,
   tqdm,
   typing-extensions,
@@ -17,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "google-generativeai";
-  version = "0.5.2";
+  version = "0.7.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -26,14 +25,13 @@ buildPythonPackage rec {
     owner = "google";
     repo = "generative-ai-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-R1ndVzGKXWRNkWvvuP4HFBXbuk54bCZZvMJY+yalJGU=";
+    hash = "sha256-cK5Go5mFy+dC5/B4aMLDjZytNZn79r+ZvOEwAW0FPrI=";
   };
 
   pythonRelaxDeps = [ "google-ai-generativelanguage" ];
 
   build-system = [ setuptools ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     google-ai-generativelanguage
diff --git a/pkgs/development/python-modules/google-i18n-address/default.nix b/pkgs/development/python-modules/google-i18n-address/default.nix
index 88c60e45e134c..47355a45ffdf2 100644
--- a/pkgs/development/python-modules/google-i18n-address/default.nix
+++ b/pkgs/development/python-modules/google-i18n-address/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, requests
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  requests,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-dW/1wwnFDjYpym1ZaSZ7mOLpkHxsvuAHC8zBRekxWaw=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "i18naddress"
-  ];
+  pythonImportsCheck = [ "i18naddress" ];
 
   meta = with lib; {
     description = "Google's i18n address data packaged for Python";
diff --git a/pkgs/development/python-modules/google-nest-sdm/default.nix b/pkgs/development/python-modules/google-nest-sdm/default.nix
index 2fb82e23543f4..c7f48ed25d50a 100644
--- a/pkgs/development/python-modules/google-nest-sdm/default.nix
+++ b/pkgs/development/python-modules/google-nest-sdm/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, coreutils
-, fetchFromGitHub
-, google-auth
-, google-auth-oauthlib
-, google-cloud-pubsub
-, pydantic
-, pytest-aiohttp
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, requests-oauthlib
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  coreutils,
+  fetchFromGitHub,
+  google-auth,
+  google-auth-oauthlib,
+  google-cloud-pubsub,
+  mashumaro,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  requests-oauthlib,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "google-nest-sdm";
-  version = "3.0.4";
+  version = "4.0.5";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -26,19 +27,17 @@ buildPythonPackage rec {
     owner = "allenporter";
     repo = "python-google-nest-sdm";
     rev = "refs/tags/${version}";
-    hash = "sha256-zYHrS9y15dcyDhOoky7sB2BYkpTL3PoyNbNewKKl19E=";
+    hash = "sha256-SA2PlHiqvvbXmCg0WqehLDiIGEMDbzwbzbCX1klMHis=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     aiohttp
     google-auth
     google-auth-oauthlib
     google-cloud-pubsub
-    pydantic
+    mashumaro
     requests-oauthlib
   ];
 
@@ -51,9 +50,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "google_nest_sdm"
-  ];
+  pythonImportsCheck = [ "google_nest_sdm" ];
 
   disabledTests = [
     "test_clip_preview_transcode"
diff --git a/pkgs/development/python-modules/google-pasta/default.nix b/pkgs/development/python-modules/google-pasta/default.nix
index 99a2a98f1fdbf..d9692217a5207 100644
--- a/pkgs/development/python-modules/google-pasta/default.nix
+++ b/pkgs/development/python-modules/google-pasta/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,14 @@ buildPythonPackage rec {
       --replace-fail assertRaisesRegexp assertRaisesRegex
   '';
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   meta = {
-    description = "An AST-based Python refactoring library";
-    homepage    = "https://github.com/google/pasta";
+    description = "AST-based Python refactoring library";
+    homepage = "https://github.com/google/pasta";
     # Usually the tag message contains a one-line summary of the changes.
-    changelog   = "https://github.com/google/pasta/releases/tag/v${version}";
-    license     = lib.licenses.asl20;
+    changelog = "https://github.com/google/pasta/releases/tag/v${version}";
+    license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ timokau ];
   };
 }
diff --git a/pkgs/development/python-modules/google-re2/default.nix b/pkgs/development/python-modules/google-re2/default.nix
index 1528cb1a59e1c..bcfbd6744dd6f 100644
--- a/pkgs/development/python-modules/google-re2/default.nix
+++ b/pkgs/development/python-modules/google-re2/default.nix
@@ -1,33 +1,35 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, pybind11
-, re2
-, six
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  pybind11,
+  re2,
 }:
 
 buildPythonPackage rec {
   pname = "google-re2";
-  version = "1.1";
-  format = "setuptools";
+  version = "1.1.20240601";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-06lGfuUrRqx3ypKPbQy+rM/ZLwPKDw9lud9qlRhPOhw=";
+    pname = "google_re2";
+    inherit version;
+    hash = "sha256-MYf2iFUwd1TUnzmOWDhT1bCNeD0/5mL2kWuZkHX34JU=";
   };
 
-  propagatedBuildInputs = [
-    pybind11
-    re2
-    six
-  ];
+  build-system = [ setuptools ];
 
-  pythonImportsCheck = [
-    "re2"
-  ];
+  buildInputs = [ re2 ];
+
+  dependencies = [ pybind11 ];
+
+  doCheck = false; # no tests in sdist
+
+  pythonImportsCheck = [ "re2" ];
 
   meta = with lib; {
     description = "RE2 Python bindings";
diff --git a/pkgs/development/python-modules/google-reauth/default.nix b/pkgs/development/python-modules/google-reauth/default.nix
index 5a4524926d4dc..854fee0506970 100644
--- a/pkgs/development/python-modules/google-reauth/default.nix
+++ b/pkgs/development/python-modules/google-reauth/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, oauth2client
-, pytestCheckHook
-, pythonOlder
-, pyu2f
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  oauth2client,
+  pytestCheckHook,
+  pythonOlder,
+  pyu2f,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "google_reauth"
-  ];
+  pythonImportsCheck = [ "google_reauth" ];
 
   meta = with lib; {
     description = "Auth plugin allowing use the use of OAuth 2.0 credentials for Google Cloud Storage";
diff --git a/pkgs/development/python-modules/google-resumable-media/default.nix b/pkgs/development/python-modules/google-resumable-media/default.nix
index e740bc4048670..f5975586735c6 100644
--- a/pkgs/development/python-modules/google-resumable-media/default.nix
+++ b/pkgs/development/python-modules/google-resumable-media/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, google-auth
-, google-cloud-testutils
-, google-crc32c
-, mock
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, requests
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  google-auth,
+  google-cloud-testutils,
+  google-crc32c,
+  mock,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "google-resumable-media";
-  version = "2.7.0";
+  version = "2.7.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Xxj1+pg29LCDFiBkocLJjBcjm/2pylCtlwzPkF8+Yls=";
+    hash = "sha256-6uRRp7LizbqqD9LrAMyKHuXpXha1VZc1nLw9J9fZDjM=";
   };
 
   propagatedBuildInputs = [
@@ -30,12 +31,8 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    requests = [
-      requests
-    ];
-    aiohttp = [
-      aiohttp
-    ];
+    requests = [ requests ];
+    aiohttp = [ aiohttp ];
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/google-search-results/default.nix b/pkgs/development/python-modules/google-search-results/default.nix
index 9130ad9ddb05c..7a982370ec867 100644
--- a/pkgs/development/python-modules/google-search-results/default.nix
+++ b/pkgs/development/python-modules/google-search-results/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -18,16 +19,12 @@ buildPythonPackage rec {
     hash = "sha256-YDow7K4q+OYAsiY1dXpt8nXa1Lk0+XXmeHjM1kC3gkU=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # almost all tests require an API key or network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "serpapi"
-  ];
+  pythonImportsCheck = [ "serpapi" ];
 
   meta = with lib; {
     description = "Scrape and search localized results from Google, Bing, Baidu, Yahoo, Yandex, Ebay, Homedepot, youtube at scale using SerpApi.com";
diff --git a/pkgs/development/python-modules/google/default.nix b/pkgs/development/python-modules/google/default.nix
index 3dc2cdb345148..8d55893002793 100644
--- a/pkgs/development/python-modules/google/default.nix
+++ b/pkgs/development/python-modules/google/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, beautifulsoup4
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  beautifulsoup4,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-FDUwEi7lEwUJrV6YnwUS98shiy1O3br7rUD9EOjYzL4=";
   };
 
-  propagatedBuildInputs = [
-    beautifulsoup4
-  ];
+  propagatedBuildInputs = [ beautifulsoup4 ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "googlesearch"
-  ];
+  pythonImportsCheck = [ "googlesearch" ];
 
   meta = with lib; {
     description = "Python bindings to the Google search engine";
diff --git a/pkgs/development/python-modules/googleapis-common-protos/default.nix b/pkgs/development/python-modules/googleapis-common-protos/default.nix
index 4efc119a01254..9e62755a0e111 100644
--- a/pkgs/development/python-modules/googleapis-common-protos/default.nix
+++ b/pkgs/development/python-modules/googleapis-common-protos/default.nix
@@ -1,24 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, grpc
-, protobuf
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  grpc,
+  protobuf,
 }:
 
 buildPythonPackage rec {
   pname = "googleapis-common-protos";
-  version = "1.63.0";
+  version = "1.63.1";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-F60BsR1fHQFxwG07pcBMVEdOiDtmuUlyK0k47iaU704=";
+    hash = "sha256-xkQvegprKoA2lFfXnmZyu33LqriOCEgwJJfj7IB4Cmo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     grpc
diff --git a/pkgs/development/python-modules/googlemaps/default.nix b/pkgs/development/python-modules/googlemaps/default.nix
index d2e67e4676e79..0e936dd7e1836 100644
--- a/pkgs/development/python-modules/googlemaps/default.nix
+++ b/pkgs/development/python-modules/googlemaps/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-cov
-, pytestCheckHook
-, pythonOlder
-, requests
-, responses
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-cov,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-8oGZEMKUGaDHKq4qIZy10cbLNMmVclJnQE/dx877pNQ=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     pytest-cov
@@ -38,9 +37,7 @@ buildPythonPackage rec {
     "test_transit_without_time"
   ];
 
-  pythonImportsCheck = [
-    "googlemaps"
-  ];
+  pythonImportsCheck = [ "googlemaps" ];
 
   meta = with lib; {
     description = "Python client library for Google Maps API Web Services";
diff --git a/pkgs/development/python-modules/googletrans/default.nix b/pkgs/development/python-modules/googletrans/default.nix
index 3ffd029c26926..1ed302a6c0908 100644
--- a/pkgs/development/python-modules/googletrans/default.nix
+++ b/pkgs/development/python-modules/googletrans/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, requests }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+}:
 
 buildPythonPackage rec {
   pname = "googletrans";
diff --git a/pkgs/development/python-modules/gophish/default.nix b/pkgs/development/python-modules/gophish/default.nix
new file mode 100644
index 0000000000000..48b4e880e5fcf
--- /dev/null
+++ b/pkgs/development/python-modules/gophish/default.nix
@@ -0,0 +1,63 @@
+{
+  lib,
+  appdirs,
+  buildPythonPackage,
+  certifi,
+  chardet,
+  fetchFromGitHub,
+  idna,
+  packaging,
+  pyparsing,
+  python-dateutil,
+  pythonOlder,
+  requests,
+  setuptools,
+  six,
+  urllib3,
+}:
+
+buildPythonPackage rec {
+  pname = "gophish";
+  version = "0.5.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "gophish";
+    repo = "api-client-python";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ITwwU/Xixyi9JSWbYf606HB7S5E4jiI0lEYcOdNg3mo=";
+  };
+
+  pythonRelaxDeps = true;
+
+  build-system = [ setuptools ];
+
+
+  dependencies = [
+    appdirs
+    certifi
+    chardet
+    idna
+    packaging
+    pyparsing
+    python-dateutil
+    requests
+    six
+    urllib3
+  ];
+
+  pythonImportsCheck = [ "gophish" ];
+
+  # Module has no test
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Module to interact with Gophish";
+    homepage = "https://github.com/gophish/api-client-python";
+    changelog = "https://github.com/gophish/api-client-python/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/gotailwind/default.nix b/pkgs/development/python-modules/gotailwind/default.nix
index f1ae7880a2799..8593c49ddc115 100644
--- a/pkgs/development/python-modules/gotailwind/default.nix
+++ b/pkgs/development/python-modules/gotailwind/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, aiohttp
-, aresponses
-, awesomeversion
-, backoff
-, buildPythonPackage
-, fetchFromGitHub
-, mashumaro
-, orjson
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, syrupy
-, typer
-, yarl
-, zeroconf
+{
+  lib,
+  aiohttp,
+  aresponses,
+  awesomeversion,
+  backoff,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mashumaro,
+  orjson,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  syrupy,
+  typer,
+  yarl,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
   pname = "gotailwind";
-  version = "0.2.2";
+  version = "0.2.3";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -28,21 +29,19 @@ buildPythonPackage rec {
     owner = "frenck";
     repo = "python-gotailwind";
     rev = "refs/tags/v${version}";
-    hash = "sha256-JtMBud3iON4xLc9dQdXniv51EBqs7zkat8cYm3q0uEE=";
+    hash = "sha256-FRFcFn5aRg+H9M6ZwEfLO1Dwcybvs0ODQv2ruCG+4v0=";
   };
 
   postPatch = ''
     # Upstream doesn't set a version for the pyproject.toml
     substituteInPlace pyproject.toml \
-      --replace "0.0.0" "${version}" \
-      --replace "--cov" ""
+      --replace-fail "0.0.0" "${version}" \
+      --replace-fail "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     awesomeversion
     backoff
@@ -53,9 +52,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    cli = [
-      typer
-    ];
+    cli = [ typer ];
   };
 
   nativeCheckInputs = [
@@ -65,16 +62,14 @@ buildPythonPackage rec {
     syrupy
   ];
 
-  pythonImportsCheck = [
-    "gotailwind"
-  ];
+  pythonImportsCheck = [ "gotailwind" ];
 
   meta = with lib; {
     description = "Modul to communicate with Tailwind garage door openers";
-    mainProgram = "tailwind";
     homepage = "https://github.com/frenck/python-gotailwind";
     changelog = "https://github.com/frenck/python-gotailwind/releases/tag/v$version";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "tailwind";
   };
 }
diff --git a/pkgs/development/python-modules/gotenberg-client/default.nix b/pkgs/development/python-modules/gotenberg-client/default.nix
index 947936616fd18..e86eb4e6e0e48 100644
--- a/pkgs/development/python-modules/gotenberg-client/default.nix
+++ b/pkgs/development/python-modules/gotenberg-client/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, hatchling
-, httpx
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  hatchling,
+  httpx,
+  typing-extensions,
 }:
 buildPythonPackage rec {
   pname = "gotenberg-client";
-  version = "0.5.0";
+  version = "0.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,25 +18,19 @@ buildPythonPackage rec {
     owner = "stumpylog";
     repo = "gotenberg-client";
     rev = "refs/tags/${version}";
-    hash = "sha256-38s7XLCh55uXxu/Go04Ku/m4xeqAAa2sRe4SiqIXolU=";
+    hash = "sha256-rF4msWYWgNUtOnMAB11vdAPNWZeAoeglnzMPWEM503I=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     httpx
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    typing-extensions
-  ] ++ httpx.optional-dependencies.http2;
+  ] ++ lib.optionals (pythonOlder "3.11") [ typing-extensions ] ++ httpx.optional-dependencies.http2;
 
-  pythonImportsCheck = [
-    "gotenberg_client"
-  ];
+  pythonImportsCheck = [ "gotenberg_client" ];
 
   meta = with lib; {
-    description = "A Python client for interfacing with the Gotenberg API";
+    description = "Python client for interfacing with the Gotenberg API";
     homepage = "https://github.com/stumpylog/gotenberg-client";
     changelog = "https://github.com/stumpylog/gotenberg-client/blob/${version}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/pkgs/development/python-modules/govee-led-wez/default.nix b/pkgs/development/python-modules/govee-led-wez/default.nix
index 727be405b2163..25b60113a8da7 100644
--- a/pkgs/development/python-modules/govee-led-wez/default.nix
+++ b/pkgs/development/python-modules/govee-led-wez/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aiohttp
-, bleak
-, bleak-retry-connector
-, buildPythonPackage
-, certifi
-, fetchFromGitHub
-, hatchling
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  bleak,
+  bleak-retry-connector,
+  buildPythonPackage,
+  certifi,
+  fetchFromGitHub,
+  hatchling,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage {
@@ -26,9 +27,7 @@ buildPythonPackage {
     hash = "sha256-VMH7sot9e2SYMyBNutyW6oCCjp2N+EKukxn1Dla3AlY=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -42,9 +41,7 @@ buildPythonPackage {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "govee_led_wez"
-  ];
+  pythonImportsCheck = [ "govee_led_wez" ];
 
   meta = with lib; {
     description = "Control Govee Lights from Python";
diff --git a/pkgs/development/python-modules/govee-local-api/default.nix b/pkgs/development/python-modules/govee-local-api/default.nix
index 6cf2fa9b29c20..fee6555d378f8 100644
--- a/pkgs/development/python-modules/govee-local-api/default.nix
+++ b/pkgs/development/python-modules/govee-local-api/default.nix
@@ -3,14 +3,13 @@
   buildPythonPackage,
   fetchFromGitHub,
   poetry-core,
-  poetry-dynamic-versioning,
   pytestCheckHook,
   pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "govee-local-api";
-  version = "1.4.4";
+  version = "1.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -19,13 +18,10 @@ buildPythonPackage rec {
     owner = "Galorhallen";
     repo = "govee-local-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-J4SG4n6LIZ/G6pEXAzliV7uTWzqsH7rtFe3Y7BJ2dWE=";
+    hash = "sha256-L9c/58B50E5Kk44j9tvtDZ0+ncJZ4KubTz/U9FI71+E=";
   };
 
-  build-system = [
-    poetry-core
-    poetry-dynamic-versioning
-  ];
+  build-system = [ poetry-core ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/goveelights/default.nix b/pkgs/development/python-modules/goveelights/default.nix
index 254ae57d32f62..f12caa93c6be3 100644
--- a/pkgs/development/python-modules/goveelights/default.nix
+++ b/pkgs/development/python-modules/goveelights/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-A7tfY+aFzhfruCZ43usj1/CsTejbPMzHM8SYrY/TU1s=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "goveelights"
-  ];
+  pythonImportsCheck = [ "goveelights" ];
 
   meta = with lib; {
     description = "Python module for interacting with the Govee API";
diff --git a/pkgs/development/python-modules/gpapi/default.nix b/pkgs/development/python-modules/gpapi/default.nix
index 307e8dfb63b80..da55f64055d59 100644
--- a/pkgs/development/python-modules/gpapi/default.nix
+++ b/pkgs/development/python-modules/gpapi/default.nix
@@ -1,18 +1,17 @@
-{ buildPythonPackage
-, cryptography
-, fetchPypi
-, lib
-, pythonOlder
-, protobuf
-, pycryptodome
-, requests
+{
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  lib,
+  protobuf,
+  pycryptodome,
+  requests,
 }:
 
 buildPythonPackage rec {
   version = "0.4.4";
   format = "setuptools";
   pname = "gpapi";
-  disabled = pythonOlder "3.3"; # uses shutil.which(), added in 3.3
 
   src = fetchPypi {
     inherit version pname;
@@ -25,7 +24,12 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "gpapi.googleplay" ];
 
-  propagatedBuildInputs = [ cryptography protobuf pycryptodome requests ];
+  propagatedBuildInputs = [
+    cryptography
+    protobuf
+    pycryptodome
+    requests
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/NoMore201/googleplay-api";
diff --git a/pkgs/development/python-modules/gpaw/default.nix b/pkgs/development/python-modules/gpaw/default.nix
index 37b12c6f5ed49..9b647af6e2b18 100644
--- a/pkgs/development/python-modules/gpaw/default.nix
+++ b/pkgs/development/python-modules/gpaw/default.nix
@@ -1,27 +1,29 @@
-{ buildPythonPackage
-, lib
-, fetchFromGitLab
-, writeTextFile
-, fetchurl
-, blas
-, lapack
-, mpi
-, scalapack
-, libxc
-, libvdwxc
-, which
-, ase
-, numpy
-, scipy
-, pyyaml
-, inetutils
+{
+  buildPythonPackage,
+  lib,
+  fetchFromGitLab,
+  writeTextFile,
+  fetchurl,
+  blas,
+  lapack,
+  mpi,
+  fftw,
+  scalapack,
+  libxc,
+  libvdwxc,
+  which,
+  ase,
+  numpy,
+  scipy,
+  pyyaml,
+  inetutils,
 }:
 
-assert lib.asserts.assertMsg (!blas.isILP64)
-  "A 32 bit integer implementation of BLAS is required.";
+assert lib.asserts.assertMsg (!blas.isILP64) "A 32 bit integer implementation of BLAS is required.";
 
-assert lib.asserts.assertMsg (!lapack.isILP64)
-  "A 32 bit integer implementation of LAPACK is required.";
+assert lib.asserts.assertMsg (
+  !lapack.isILP64
+) "A 32 bit integer implementation of LAPACK is required.";
 
 let
   gpawConfig = writeTextFile {
@@ -71,8 +73,8 @@ let
     url = "https://wiki.fysik.dtu.dk/gpaw-files/gpaw-setups-${setupVersion}.tar.gz";
     sha256 = "07yldxnn38gky39fxyv3rfzag9p4lb0xfpzn15wy2h9aw4mnhwbc";
   };
-
-in buildPythonPackage rec {
+in
+buildPythonPackage rec {
   pname = "gpaw";
   version = "24.1.0";
   format = "setuptools";
@@ -87,11 +89,26 @@ in buildPythonPackage rec {
   # `inetutils` is required because importing `gpaw`, as part of
   # pythonImportsCheck, tries to execute its binary, which in turn tries to
   # execute `rsh` as a side-effect.
-  nativeBuildInputs = [ which inetutils ];
-
-  buildInputs = [ blas scalapack libxc libvdwxc ];
-
-  propagatedBuildInputs = [ ase scipy numpy mpi pyyaml ];
+  nativeBuildInputs = [
+    which
+    inetutils
+  ];
+
+  buildInputs = [
+    blas
+    scalapack
+    libxc
+    libvdwxc
+    fftw
+  ];
+
+  propagatedBuildInputs = [
+    ase
+    scipy
+    numpy
+    (lib.getBin mpi)
+    pyyaml
+  ];
 
   patches = [ ./SetupPath.patch ];
 
@@ -117,7 +134,9 @@ in buildPythonPackage rec {
   doCheck = false; # Requires MPI runtime to work in the sandbox
   pythonImportsCheck = [ "gpaw" ];
 
-  passthru = { inherit mpi; };
+  passthru = {
+    inherit mpi;
+  };
 
   meta = with lib; {
     description = "Density functional theory and beyond within the projector-augmented wave method";
diff --git a/pkgs/development/python-modules/gphoto2/default.nix b/pkgs/development/python-modules/gphoto2/default.nix
index 6ea7744cab6dc..a7535c813b6ff 100644
--- a/pkgs/development/python-modules/gphoto2/default.nix
+++ b/pkgs/development/python-modules/gphoto2/default.nix
@@ -1,8 +1,12 @@
-{ lib, fetchPypi, fetchpatch, buildPythonPackage
-, pkg-config
-, libgphoto2
-, setuptools
-, toml
+{
+  lib,
+  fetchPypi,
+  fetchpatch,
+  buildPythonPackage,
+  pkg-config,
+  libgphoto2,
+  setuptools,
+  toml,
 }:
 
 buildPythonPackage rec {
@@ -22,7 +26,11 @@ buildPythonPackage rec {
     hash = "sha256-EXtXlhBx2jCKtMl7HmN87liqiHVAFSeXr11y830AlpY=";
   };
 
-  nativeBuildInputs = [ pkg-config setuptools toml ];
+  nativeBuildInputs = [
+    pkg-config
+    setuptools
+    toml
+  ];
 
   buildInputs = [ libgphoto2 ];
 
diff --git a/pkgs/development/python-modules/gpib-ctypes/default.nix b/pkgs/development/python-modules/gpib-ctypes/default.nix
index 42c07a9ef4218..98feeb7749fa4 100644
--- a/pkgs/development/python-modules/gpib-ctypes/default.nix
+++ b/pkgs/development/python-modules/gpib-ctypes/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, pytestCheckHook
-, linux-gpib
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  pytestCheckHook,
+  linux-gpib,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-c9l6TNmM4PtbvopnnFi5R1dQ9o3MI39BHHHPSGqfjCY=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace gpib_ctypes/gpib/gpib.py \
@@ -30,9 +29,7 @@ buildPythonPackage rec {
       --replace "'pytest-runner'," ""
   '';
 
-  pythonImportsCheck = [
-    "gpib_ctypes.gpib"
-  ];
+  pythonImportsCheck = [ "gpib_ctypes.gpib" ];
 
   meta = with lib; {
     description = "Cross-platform Python bindings for the NI GPIB and linux-gpib C interfaces";
diff --git a/pkgs/development/python-modules/gpiozero/default.nix b/pkgs/development/python-modules/gpiozero/default.nix
index 3aaa5ba775067..f8314696f9fa4 100644
--- a/pkgs/development/python-modules/gpiozero/default.nix
+++ b/pkgs/development/python-modules/gpiozero/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# docs
-, sphinx-rtd-theme
-, sphinxHook
+  # docs
+  sphinx-rtd-theme,
+  sphinxHook,
 
-# dependencies
-, colorzero
+  # dependencies
+  colorzero,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -47,13 +48,9 @@ buildPythonPackage rec {
     sphinxHook
   ];
 
-  propagatedBuildInputs = [
-    colorzero
-  ];
+  propagatedBuildInputs = [ colorzero ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [
     "gpiozero"
@@ -66,7 +63,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A simple interface to GPIO devices with Raspberry Pi";
+    description = "Simple interface to GPIO devices with Raspberry Pi";
     homepage = "https://github.com/gpiozero/gpiozero";
     changelog = "https://github.com/gpiozero/gpiozero/blob/v${version}/docs/changelog.rst";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/gplaycli/default.nix b/pkgs/development/python-modules/gplaycli/default.nix
index 1c70d37b0dbb3..cf427d0560c29 100644
--- a/pkgs/development/python-modules/gplaycli/default.nix
+++ b/pkgs/development/python-modules/gplaycli/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, args
-, buildPythonPackage
-, clint
-, fetchFromGitHub
-, libffi
-, matlink-gpapi
-, ndg-httpsclient
-, protobuf
-, pyasn1
-, pyaxmlparser
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  args,
+  buildPythonPackage,
+  clint,
+  fetchFromGitHub,
+  libffi,
+  matlink-gpapi,
+  ndg-httpsclient,
+  protobuf,
+  pyasn1,
+  pyaxmlparser,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -42,13 +43,9 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "gplaycli"
-  ];
+  pythonImportsCheck = [ "gplaycli" ];
 
   preCheck = ''
     export PATH="$PATH:$out/bin";
diff --git a/pkgs/development/python-modules/gprof2dot/default.nix b/pkgs/development/python-modules/gprof2dot/default.nix
index f9823ffbdfdb8..e12d999dd82c4 100644
--- a/pkgs/development/python-modules/gprof2dot/default.nix
+++ b/pkgs/development/python-modules/gprof2dot/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, python
-, graphviz
-, pythonOlder
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  python,
+  graphviz,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "gprof2dot";
-  version = "2022.07.29";
+  version = "2024.06.06";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,17 +18,13 @@ buildPythonPackage rec {
     owner = "jrfonseca";
     repo = "gprof2dot";
     rev = "refs/tags/${version}";
-    hash = "sha256-nIsBO6KTyG2VZZRXrkU/T/a9Ki1x6hda5Vv3rZv/mJM=";
+    hash = "sha256-6TTshVbfYh/2Ss1uysGW0nxmNQdIiAhe4LldMS7hpCo=";
   };
 
-  makeWrapperArgs = [
-    "--prefix PATH : ${lib.makeBinPath [ graphviz ]}"
-  ];
+  makeWrapperArgs = [ "--prefix PATH : ${lib.makeBinPath [ graphviz ]}" ];
 
   # Needed so dot is on path of the test script
-  nativeCheckInputs = [
-    graphviz
-  ];
+  nativeCheckInputs = [ graphviz ];
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/gps3/default.nix b/pkgs/development/python-modules/gps3/default.nix
index 4d4182063b404..4f5cfb5d5b866 100644
--- a/pkgs/development/python-modules/gps3/default.nix
+++ b/pkgs/development/python-modules/gps3/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/gpsoauth/default.nix b/pkgs/development/python-modules/gpsoauth/default.nix
index 08fdfa6d01c0b..d40d2f3c61747 100644
--- a/pkgs/development/python-modules/gpsoauth/default.nix
+++ b/pkgs/development/python-modules/gpsoauth/default.nix
@@ -1,27 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, poetry-core
-, pycryptodomex
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  pycryptodomex,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "gpsoauth";
-  version = "1.1.0";
+  version = "1.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-BA+2aFxpFpi6cWGl4yepba7s7BmZ1ijvSBhtS23v3QM=";
+    hash = "sha256-WCAu0wM5fSkntGTcleJxS///haGw+Iv2jzrWOFnr5DU=";
   };
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     poetry-core
   ];
 
@@ -30,9 +29,7 @@ buildPythonPackage rec {
     requests
   ];
 
-  pythonRelaxDeps = [
-    "urllib3"
-  ];
+  pythonRelaxDeps = [ "urllib3" ];
 
   # upstream tests are not very comprehensive
   doCheck = false;
diff --git a/pkgs/development/python-modules/gpt-2-simple/default.nix b/pkgs/development/python-modules/gpt-2-simple/default.nix
index aae6dfbfbc400..d8561bf346e97 100644
--- a/pkgs/development/python-modules/gpt-2-simple/default.nix
+++ b/pkgs/development/python-modules/gpt-2-simple/default.nix
@@ -1,10 +1,20 @@
-{ lib, buildPythonPackage, fetchFromGitHub, regex, requests, tqdm, numpy
-, toposort, tensorflow }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  regex,
+  requests,
+  setuptools,
+  tqdm,
+  numpy,
+  toposort,
+  tensorflow,
+}:
 
 buildPythonPackage rec {
   pname = "gpt-2-simple";
   version = "0.8.1";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "minimaxir";
@@ -13,13 +23,21 @@ buildPythonPackage rec {
     hash = "sha256-WwD4sDcc28zXEOISJsq8e+rgaNrrgIy79Wa4J3E7Ovc=";
   };
 
-  propagatedBuildInputs = [ regex requests tqdm numpy toposort tensorflow ];
+  build-system = [ setuptools ];
 
-  dontCheck = true; # no tests in upstream
+  propagatedBuildInputs = [
+    regex
+    requests
+    tqdm
+    numpy
+    toposort
+    tensorflow
+  ];
+
+  doCheck = false; # no tests in upstream
 
   meta = with lib; {
-    description =
-      "Easily retrain OpenAI's GPT-2 text-generating model on new texts";
+    description = "Easily retrain OpenAI's GPT-2 text-generating model on new texts";
     homepage = "https://github.com/minimaxir/gpt-2-simple";
     license = licenses.mit;
     maintainers = with maintainers; [ ckie ];
diff --git a/pkgs/development/python-modules/gptcache/default.nix b/pkgs/development/python-modules/gptcache/default.nix
index 8b54055072928..bd7e8276ef989 100644
--- a/pkgs/development/python-modules/gptcache/default.nix
+++ b/pkgs/development/python-modules/gptcache/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cachetools
-, numpy
-, pythonOlder
-, redis
-, redis-om
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cachetools,
+  numpy,
+  pythonOlder,
+  redis,
+  redis-om,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/gpuctypes/default.nix b/pkgs/development/python-modules/gpuctypes/default.nix
index e5987f78ee07e..32a61a6550934 100644
--- a/pkgs/development/python-modules/gpuctypes/default.nix
+++ b/pkgs/development/python-modules/gpuctypes/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, config
-, buildPythonPackage
-, fetchFromGitHub
-, substituteAll
-, addDriverRunpath
-, cudaSupport ? config.cudaSupport
-, rocmSupport ? config.rocmSupport
-, cudaPackages
-, setuptools
-, ocl-icd
-, rocmPackages
-, pytestCheckHook
-, gpuctypes
-, testCudaRuntime ? false
-, testOpenclRuntime ? false
-, testRocmRuntime ? false
+{
+  lib,
+  config,
+  buildPythonPackage,
+  fetchFromGitHub,
+  substituteAll,
+  addDriverRunpath,
+  cudaSupport ? config.cudaSupport,
+  rocmSupport ? config.rocmSupport,
+  cudaPackages,
+  setuptools,
+  ocl-icd,
+  rocmPackages,
+  pytestCheckHook,
+  gpuctypes,
+  testCudaRuntime ? false,
+  testOpenclRuntime ? false,
+  testRocmRuntime ? false,
 }:
 assert testCudaRuntime -> cudaSupport;
 assert testRocmRuntime -> rocmSupport;
@@ -36,75 +37,68 @@ buildPythonPackage rec {
       src = ./0001-fix-dlopen-cuda.patch;
       inherit (addDriverRunpath) driverLink;
       libnvrtc =
-        if cudaSupport
-        then "${lib.getLib cudaPackages.cuda_nvrtc}/lib/libnvrtc.so"
-        else "Please import nixpkgs with `config.cudaSupport = true`";
+        if cudaSupport then
+          "${lib.getLib cudaPackages.cuda_nvrtc}/lib/libnvrtc.so"
+        else
+          "Please import nixpkgs with `config.cudaSupport = true`";
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  postPatch = ''
-    substituteInPlace gpuctypes/opencl.py \
-      --replace "ctypes.util.find_library('OpenCL')" "'${ocl-icd}/lib/libOpenCL.so'"
-  ''
-  # hipGetDevicePropertiesR0600 is a symbol from rocm-6. We are currently at rocm-5.
-  # We are not sure that this works. Remove when rocm gets updated to version 6.
-  + lib.optionalString rocmSupport ''
-    substituteInPlace gpuctypes/hip.py \
-      --replace "/opt/rocm/lib/libamdhip64.so" "${rocmPackages.clr}/lib/libamdhip64.so" \
-      --replace "/opt/rocm/lib/libhiprtc.so" "${rocmPackages.clr}/lib/libhiprtc.so" \
-      --replace "hipGetDevicePropertiesR0600" "hipGetDeviceProperties"
+  postPatch =
+    ''
+      substituteInPlace gpuctypes/opencl.py \
+        --replace "ctypes.util.find_library('OpenCL')" "'${ocl-icd}/lib/libOpenCL.so'"
+    ''
+    # hipGetDevicePropertiesR0600 is a symbol from rocm-6. We are currently at rocm-5.
+    # We are not sure that this works. Remove when rocm gets updated to version 6.
+    + lib.optionalString rocmSupport ''
+      substituteInPlace gpuctypes/hip.py \
+        --replace "/opt/rocm/lib/libamdhip64.so" "${rocmPackages.clr}/lib/libamdhip64.so" \
+        --replace "/opt/rocm/lib/libhiprtc.so" "${rocmPackages.clr}/lib/libhiprtc.so" \
+        --replace "hipGetDevicePropertiesR0600" "hipGetDeviceProperties"
 
-    substituteInPlace gpuctypes/comgr.py \
-      --replace "/opt/rocm/lib/libamd_comgr.so" "${rocmPackages.rocm-comgr}/lib/libamd_comgr.so"
-  '';
+      substituteInPlace gpuctypes/comgr.py \
+        --replace "/opt/rocm/lib/libamd_comgr.so" "${rocmPackages.rocm-comgr}/lib/libamd_comgr.so"
+    '';
 
   pythonImportsCheck = [ "gpuctypes" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTestPaths = lib.optionals (!testOpenclRuntime) [
-    "test/test_opencl.py"
-  ] ++ lib.optionals (!rocmSupport) [
-    "test/test_hip.py"
-  ] ++ lib.optionals (!cudaSupport) [
-    "test/test_cuda.py"
-  ];
+  disabledTestPaths =
+    lib.optionals (!testOpenclRuntime) [ "test/test_opencl.py" ]
+    ++ lib.optionals (!rocmSupport) [ "test/test_hip.py" ]
+    ++ lib.optionals (!cudaSupport) [ "test/test_cuda.py" ];
 
   # Require GPU access to run (not available in the sandbox)
-  pytestFlagsArray = lib.optionals (!testCudaRuntime) [
-    "-k" "'not TestCUDADevice'"
-  ] ++ lib.optionals (!testRocmRuntime) [
-    "-k" "'not TestHIPDevice'"
-  ] ++ lib.optionals (testCudaRuntime || testOpenclRuntime || testRocmRuntime) [
-    "-v"
-  ];
+  pytestFlagsArray =
+    lib.optionals (!testCudaRuntime) [
+      "-k"
+      "'not TestCUDADevice'"
+    ]
+    ++ lib.optionals (!testRocmRuntime) [
+      "-k"
+      "'not TestHIPDevice'"
+    ]
+    ++ lib.optionals (testCudaRuntime || testOpenclRuntime || testRocmRuntime) [ "-v" ];
 
   # Running these tests requires special configuration on the builder.
   # e.g. https://github.com/NixOS/nixpkgs/pull/256230 implements a nix
   # pre-build hook which exposes the devices and the drivers in the sandbox
   # based on requiredSystemFeatures:
-  requiredSystemFeatures = lib.optionals testCudaRuntime [
-    "cuda"
-  ] ++ lib.optionals testOpenclRuntime [
-    "opencl"
-  ] ++ lib.optionals testRocmRuntime [
-    "rocm"
-  ];
+  requiredSystemFeatures =
+    lib.optionals testCudaRuntime [ "cuda" ]
+    ++ lib.optionals testOpenclRuntime [ "opencl" ]
+    ++ lib.optionals testRocmRuntime [ "rocm" ];
 
   passthru.gpuChecks = {
     cuda = gpuctypes.override {
       cudaSupport = true;
       testCudaRuntime = true;
     };
-    opencl = gpuctypes.override {
-      testOpenclRuntime = true;
-    };
+    opencl = gpuctypes.override { testOpenclRuntime = true; };
     rocm = gpuctypes.override {
       rocmSupport = true;
       testRocmRuntime = true;
@@ -122,6 +116,10 @@ buildPythonPackage rec {
     description = "Ctypes wrappers for HIP, CUDA, and OpenCL";
     homepage = "https://github.com/tinygrad/gpuctypes";
     license = licenses.mit;
-    maintainers = with maintainers; [ GaetanLepage matthewcroughan wozeparrot ];
+    maintainers = with maintainers; [
+      GaetanLepage
+      matthewcroughan
+      wozeparrot
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/gpustat/default.nix b/pkgs/development/python-modules/gpustat/default.nix
index e6a35531f55f4..d3a06d7f89003 100644
--- a/pkgs/development/python-modules/gpustat/default.nix
+++ b/pkgs/development/python-modules/gpustat/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, blessed
-, buildPythonPackage
-, fetchPypi
-, mockito
-, nvidia-ml-py
-, psutil
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools-scm
+{
+  lib,
+  blessed,
+  buildPythonPackage,
+  fetchPypi,
+  mockito,
+  nvidia-ml-py,
+  psutil,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -23,12 +23,9 @@ buildPythonPackage rec {
     hash = "sha256-wY0+1VGPwWMAxC1pTevHCuuzvlXK6R8dtk1jtfqK+dg=";
   };
 
-  pythonRelaxDeps = [
-    "nvidia-ml-py"
-  ];
+  pythonRelaxDeps = [ "nvidia-ml-py" ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools-scm
   ];
 
@@ -43,12 +40,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "gpustat"
-  ];
+  pythonImportsCheck = [ "gpustat" ];
 
   meta = with lib; {
-    description = "A simple command-line utility for querying and monitoring GPU status";
+    description = "Simple command-line utility for querying and monitoring GPU status";
     mainProgram = "gpustat";
     homepage = "https://github.com/wookayin/gpustat";
     changelog = "https://github.com/wookayin/gpustat/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/gpxpy/default.nix b/pkgs/development/python-modules/gpxpy/default.nix
index 2f8e07cccf45d..640f2b4d6fe17 100644
--- a/pkgs/development/python-modules/gpxpy/default.nix
+++ b/pkgs/development/python-modules/gpxpy/default.nix
@@ -1,4 +1,11 @@
-{ lib, fetchFromGitHub, buildPythonPackage, python, lxml, pythonOlder }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  python,
+  lxml,
+  pythonOlder,
+}:
 
 buildPythonPackage rec {
   pname = "gpxpy";
diff --git a/pkgs/development/python-modules/gpy/default.nix b/pkgs/development/python-modules/gpy/default.nix
index 33da65d155cc2..161c364694e3a 100644
--- a/pkgs/development/python-modules/gpy/default.nix
+++ b/pkgs/development/python-modules/gpy/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, setuptools
-, numpy
-, scipy
-, six
-, paramz
-, matplotlib
-, cython
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
+  numpy,
+  scipy,
+  six,
+  paramz,
+  matplotlib,
+  cython,
 }:
 
 buildPythonPackage rec {
   pname = "gpy";
-  version = "1.13.0";
+  version = "1.13.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -24,8 +25,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "SheffieldML";
     repo = "GPy";
-    rev = "refs/tags/v.${version}";
-    hash = "sha256-2HKKKBD/JFSeLQGvvgObxqxv9IHEKFnpaejdKbYZbmY=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ykoGdXy1uagKrP9Nqn74mDESZwKVPq6wQgnHlCznevM=";
   };
 
   nativeBuildInputs = [ setuptools ];
diff --git a/pkgs/development/python-modules/gpytorch/default.nix b/pkgs/development/python-modules/gpytorch/default.nix
index c4664bc04ee7a..5c82e860ed5a3 100644
--- a/pkgs/development/python-modules/gpytorch/default.nix
+++ b/pkgs/development/python-modules/gpytorch/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, linear-operator
-, scikit-learn
-, setuptools
-, setuptools-scm
-, wheel
-, torch
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  linear-operator,
+  scikit-learn,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  torch,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     torch
   ];
 
-  checkInputs = [
-    pytestCheckHook
-  ];
+  checkInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "gpytorch" ];
 
@@ -51,7 +50,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A highly efficient and modular implementation of Gaussian Processes, with GPU acceleration";
+    description = "Highly efficient and modular implementation of Gaussian Processes, with GPU acceleration";
     homepage = "https://gpytorch.ai";
     license = licenses.mit;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/development/python-modules/gql/default.nix b/pkgs/development/python-modules/gql/default.nix
index 25b5ed25bae42..1a664c0e936e4 100644
--- a/pkgs/development/python-modules/gql/default.nix
+++ b/pkgs/development/python-modules/gql/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, aiofiles
-, aiohttp
-, anyio
-, backoff
-, botocore
-, buildPythonPackage
-, fetchFromGitHub
-, graphql-core
-, httpx
-, mock
-, parse
-, pytest-asyncio
-, pytest-console-scripts
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-toolbelt
-, setuptools
-, urllib3
-, vcrpy
-, websockets
-, yarl
+{
+  lib,
+  aiofiles,
+  aiohttp,
+  anyio,
+  backoff,
+  botocore,
+  buildPythonPackage,
+  fetchFromGitHub,
+  graphql-core,
+  httpx,
+  mock,
+  parse,
+  pytest-asyncio,
+  pytest-console-scripts,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-toolbelt,
+  setuptools,
+  urllib3,
+  vcrpy,
+  websockets,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -43,9 +44,7 @@ buildPythonPackage rec {
       "websockets>=10,<12;python_version>'3.6'"
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     anyio
@@ -74,32 +73,22 @@ buildPythonPackage rec {
       urllib3
       websockets
     ];
-    aiohttp = [
-      aiohttp
-    ];
-    httpx = [
-      httpx
-    ];
+    aiohttp = [ aiohttp ];
+    httpx = [ httpx ];
     requests = [
       requests
       requests-toolbelt
       urllib3
     ];
-    websockets = [
-      websockets
-    ];
-    botocore = [
-      botocore
-    ];
+    websockets = [ websockets ];
+    botocore = [ botocore ];
   };
 
   preCheck = ''
     export PATH=$out/bin:$PATH
   '';
 
-  pytestFlagsArray = [
-    "--asyncio-mode=auto"
-  ];
+  pytestFlagsArray = [ "--asyncio-mode=auto" ];
 
   disabledTests = [
     # Tests requires network access
@@ -129,9 +118,7 @@ buildPythonPackage rec {
     "tests/test_websocket_subscription.py"
   ];
 
-  pythonImportsCheck = [
-    "gql"
-  ];
+  pythonImportsCheck = [ "gql" ];
 
   meta = with lib; {
     description = "GraphQL client in Python";
diff --git a/pkgs/development/python-modules/grad-cam/default.nix b/pkgs/development/python-modules/grad-cam/default.nix
index 42d65ae433b7b..e632650a40a63 100644
--- a/pkgs/development/python-modules/grad-cam/default.nix
+++ b/pkgs/development/python-modules/grad-cam/default.nix
@@ -1,29 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, matplotlib
-, numpy
-, opencv4
-, pillow
-, scikit-learn
-, setuptools
-, torch
-, torchvision
-, ttach
-, tqdm
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  matplotlib,
+  numpy,
+  opencv4,
+  pillow,
+  scikit-learn,
+  torch,
+  torchvision,
+  ttach,
+  tqdm,
 }:
 
 buildPythonPackage rec {
   pname = "grad-cam";
-  version = "1.5.0";
+  version = "1.5.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-aw7Z/6/AMKH2PVBcOr8HxsmRDa6c3v8Xd4xa8HTiFGA=";
+    hash = "sha256-WhC3QjMDh4E8NnO8SyCtg9rFgDJkYP6/xdWNcTvlKFU=";
   };
 
   postPatch = ''
@@ -32,10 +33,17 @@ buildPythonPackage rec {
   '';
 
   nativeBuildInputs = [
+  ];
+
+  pythonRelaxDeps = [
+    "torchvision"
+  ];
+
+  build-system = [
     setuptools
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     matplotlib
     numpy
     opencv4
@@ -47,11 +55,9 @@ buildPythonPackage rec {
   ];
 
   # Let the user bring their own instance (as with torchmetrics)
-  buildInputs = [
-    torch
-  ];
+  buildInputs = [ torch ];
 
-  doCheck = false;  # every nontrivial test tries to download a pretrained model
+  doCheck = false; # every nontrivial test tries to download a pretrained model
 
   pythonImportsCheck = [
     "pytorch_grad_cam"
@@ -63,10 +69,10 @@ buildPythonPackage rec {
     "pytorch_grad_cam.utils.model_targets"
   ];
 
-  meta = with lib; {
-    description = "Advanced AI explainability for computer vision.";
+  meta = {
+    description = "Advanced AI explainability for computer vision";
     homepage = "https://jacobgil.github.io/pytorch-gradcam-book";
-    license = licenses.mit;
-    maintainers = with maintainers; [ bcdarwin ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ bcdarwin ];
   };
 }
diff --git a/pkgs/development/python-modules/gradient-statsd/default.nix b/pkgs/development/python-modules/gradient-statsd/default.nix
index d7c5c258ab5e6..4e6dc0f1424d4 100644
--- a/pkgs/development/python-modules/gradient-statsd/default.nix
+++ b/pkgs/development/python-modules/gradient-statsd/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, certifi
-, chardet
-, datadog
-, decorator
-, fetchPypi
-, idna
-, requests
-, urllib3
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  certifi,
+  chardet,
+  datadog,
+  decorator,
+  fetchPypi,
+  idna,
+  requests,
+  urllib3,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     urllib3
   ];
 
-  pythonImportsCheck = [
-    "gradient_statsd"
-  ];
+  pythonImportsCheck = [ "gradient_statsd" ];
 
   # Pypi does not contain tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/gradient-utils/default.nix b/pkgs/development/python-modules/gradient-utils/default.nix
index 3d3cd47cf41eb..b384b85e0f229 100644
--- a/pkgs/development/python-modules/gradient-utils/default.nix
+++ b/pkgs/development/python-modules/gradient-utils/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hyperopt
-, mock
-, numpy
-, poetry-core
-, prometheus-client
-, pytestCheckHook
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hyperopt,
+  mock,
+  numpy,
+  poetry-core,
+  prometheus-client,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-swnl0phdOsBSP8AX/OySI/aYI9z60Ss3SsJox/mb9KY=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     hyperopt
@@ -59,9 +58,7 @@ buildPythonPackage rec {
     "tests/integration/test_metrics.py"
   ];
 
-  pythonImportsCheck = [
-    "gradient_utils"
-  ];
+  pythonImportsCheck = [ "gradient_utils" ];
 
   meta = with lib; {
     description = "Python utils and helpers library for Gradient";
diff --git a/pkgs/development/python-modules/gradient/default.nix b/pkgs/development/python-modules/gradient/default.nix
index 584de835e0d07..36c3e2d82495d 100644
--- a/pkgs/development/python-modules/gradient/default.nix
+++ b/pkgs/development/python-modules/gradient/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, attrs
-, boto3
-, buildPythonPackage
-, click-completion
-, click-didyoumean
-, click-help-colors
-, colorama
-, fetchPypi
-, gradient-statsd
-, gradient-utils
-, gql
-, halo
-, marshmallow
-, progressbar2
-, pyopenssl
-, pyyaml
-, requests
-, requests-toolbelt
-, terminaltables
-, websocket-client
+{
+  lib,
+  attrs,
+  boto3,
+  buildPythonPackage,
+  click-completion,
+  click-didyoumean,
+  click-help-colors,
+  colorama,
+  fetchPypi,
+  gradient-statsd,
+  gradient-utils,
+  gql,
+  halo,
+  marshmallow,
+  progressbar2,
+  pyopenssl,
+  pyyaml,
+  requests,
+  requests-toolbelt,
+  terminaltables,
+  websocket-client,
 }:
 
 buildPythonPackage rec {
@@ -72,7 +73,7 @@ buildPythonPackage rec {
   # ];
 
   meta = with lib; {
-    description = "The command line interface for Gradient";
+    description = "Command line interface for Gradient";
     mainProgram = "gradient";
     homepage = "https://github.com/Paperspace/gradient-cli";
     license = licenses.isc;
diff --git a/pkgs/development/python-modules/gradio-pdf/default.nix b/pkgs/development/python-modules/gradio-pdf/default.nix
index 4a5128455e6d5..fc32e80a8c1bf 100644
--- a/pkgs/development/python-modules/gradio-pdf/default.nix
+++ b/pkgs/development/python-modules/gradio-pdf/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatch-fancy-pypi-readme
-, hatch-requirements-txt
-, hatchling
-, gradio
-, gradio-client
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatch-fancy-pypi-readme,
+  hatch-requirements-txt,
+  hatchling,
+  gradio,
+  gradio-client,
 }:
 
 buildPythonPackage rec {
   pname = "gradio-pdf";
-  version = "0.0.7";
+  version = "0.0.11";
   format = "pyproject";
 
   src = fetchPypi {
     pname = "gradio_pdf";
     inherit version;
-    hash = "sha256-3OJiBnp79woCUtiNiaePwfJCAS42WYkv9GFeScesFv8=";
+    hash = "sha256-HCfjJdd9DIRqm/dS00xlU9AYGM7U/b3zNo2IgZHtasc=";
   };
 
   nativeBuildInputs = [
@@ -25,16 +26,10 @@ buildPythonPackage rec {
     hatchling
   ];
 
-  dependencies = [
-    gradio-client
-  ];
+  dependencies = [ gradio-client ];
 
-  buildInputs = [
-    gradio.sans-reverse-dependencies
-  ];
-  disallowedReferences = [
-    gradio.sans-reverse-dependencies
-  ];
+  buildInputs = [ gradio.sans-reverse-dependencies ];
+  disallowedReferences = [ gradio.sans-reverse-dependencies ];
 
   pythonImportsCheck = [ "gradio_pdf" ];
 
diff --git a/pkgs/development/python-modules/gradio/client.nix b/pkgs/development/python-modules/gradio/client.nix
index 96c293d399c55..1c7a51dd2aa81 100644
--- a/pkgs/development/python-modules/gradio/client.nix
+++ b/pkgs/development/python-modules/gradio/client.nix
@@ -1,35 +1,35 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, gitUpdater
-, pythonOlder
-, pythonRelaxDepsHook
-# pyproject
-, hatchling
-, hatch-requirements-txt
-, hatch-fancy-pypi-readme
-# runtime
-, setuptools
-, fsspec
-, httpx
-, huggingface-hub
-, packaging
-, requests
-, typing-extensions
-, websockets
-# checkInputs
-, pytestCheckHook
-, pytest-asyncio
-, pydub
-, rich
-, tomlkit
-, gradio
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nix-update-script,
+  pythonOlder,
+  # pyproject
+  hatchling,
+  hatch-requirements-txt,
+  hatch-fancy-pypi-readme,
+  # runtime
+  setuptools,
+  fsspec,
+  httpx,
+  huggingface-hub,
+  packaging,
+  requests,
+  typing-extensions,
+  websockets,
+  # checkInputs
+  pytestCheckHook,
+  pytest-asyncio,
+  pydub,
+  rich,
+  tomlkit,
+  gradio,
 }:
 
 buildPythonPackage rec {
   pname = "gradio-client";
-  version = "0.14.0";
-  format = "pyproject";
+  version = "1.0.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -37,9 +37,10 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "gradio-app";
     repo = "gradio";
-    rev = "refs/tags/@gradio/client@${version}";
+    # not to be confused with @gradio/client@${version}
+    rev = "refs/tags/gradio_client@${version}";
     sparseCheckout = [ "client/python" ];
-    hash = "sha256-7oC/Z3YUiOFZdv/60q7PkfluV77broRkHgWiY9Vim9Y=";
+    hash = "sha256-nbOWg2ZPcXTft7e4tR5p5xecVU62en0hEdXqAgLDZF4=";
   };
   prePatch = ''
     cd client/python
@@ -52,11 +53,10 @@ buildPythonPackage rec {
     "websockets"
   ];
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
     hatch-requirements-txt
     hatch-fancy-pypi-readme
-    pythonRelaxDepsHook
   ];
 
   dependencies = [
@@ -96,7 +96,9 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  passthru.updateScript = gitUpdater { rev-prefix = "@gradio/client@"; };
+  passthru.updateScript = nix-update-script {
+    extraArgs = [ "--version-regex" "gradio_client@(.*)" ];
+  };
 
   meta = with lib; {
     homepage = "https://www.gradio.app/";
diff --git a/pkgs/development/python-modules/gradio/default.nix b/pkgs/development/python-modules/gradio/default.nix
index 0d4838e372de6..5cc026cd3f2a4 100644
--- a/pkgs/development/python-modules/gradio/default.nix
+++ b/pkgs/development/python-modules/gradio/default.nix
@@ -1,77 +1,76 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pythonRelaxDepsHook
-, writeShellScriptBin
-, gradio
-
-# pyproject
-, hatchling
-, hatch-requirements-txt
-, hatch-fancy-pypi-readme
-
-# runtime
-, setuptools
-, aiofiles
-, altair
-, diffusers
-, fastapi
-, ffmpy
-, gradio-client
-, httpx
-, huggingface-hub
-, importlib-resources
-, jinja2
-, markupsafe
-, matplotlib
-, numpy
-, orjson
-, packaging
-, pandas
-, pillow
-, pydantic
-, python-multipart
-, pydub
-, pyyaml
-, semantic-version
-, typing-extensions
-, uvicorn
-, typer
-, tomlkit
-
-# oauth
-, authlib
-, itsdangerous
-
-# check
-, pytestCheckHook
-, boto3
-, gradio-pdf
-, ffmpeg
-, ipython
-, pytest-asyncio
-, respx
-, scikit-image
-, torch
-, tqdm
-, transformers
-, vega-datasets
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  writeShellScriptBin,
+  gradio,
+
+  # pyproject
+  hatchling,
+  hatch-requirements-txt,
+  hatch-fancy-pypi-readme,
+
+  # runtime
+  setuptools,
+  aiofiles,
+  altair,
+  diffusers,
+  fastapi,
+  ffmpy,
+  gradio-client,
+  httpx,
+  huggingface-hub,
+  importlib-resources,
+  jinja2,
+  markupsafe,
+  matplotlib,
+  numpy,
+  orjson,
+  packaging,
+  pandas,
+  pillow,
+  pydantic,
+  python-multipart,
+  pydub,
+  pyyaml,
+  semantic-version,
+  typing-extensions,
+  uvicorn,
+  typer,
+  tomlkit,
+
+  # oauth
+  authlib,
+  itsdangerous,
+
+  # check
+  pytestCheckHook,
+  boto3,
+  gradio-pdf,
+  ffmpeg,
+  ipython,
+  pytest-asyncio,
+  respx,
+  scikit-image,
+  torch,
+  tqdm,
+  transformers,
+  vega-datasets,
 }:
 
 buildPythonPackage rec {
   pname = "gradio";
-  version = "4.27.0";
+  version = "4.36.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
-  # We use the Pypi release, since it provides prebuilt webui assets,
-  # and upstream has stopped tagging releases since 3.41.0
+  # We use the Pypi release, since it provides prebuilt webui assets
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-617zutFhS8NGO4+fcALH8aKbk+reGC65DNWKVVKiWEw=";
+    hash = "sha256-crLSEVbTRnEjuubzD0Y/AC7wbicnZidDCPXtPKw3Vjs=";
   };
 
   # fix packaging.ParserSyntaxError, which can't handle comments
@@ -82,9 +81,7 @@ buildPythonPackage rec {
     rm -rf venv/
   '';
 
-  pythonRelaxDeps = [
-    "tomlkit"
-  ];
+  pythonRelaxDeps = [ "tomlkit" ];
 
   pythonRemoveDeps = [
     # our package is presented as a binary, not a python lib - and
@@ -93,7 +90,6 @@ buildPythonPackage rec {
   ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     hatchling
     hatch-requirements-txt
     hatch-fancy-pypi-readme
@@ -151,19 +147,19 @@ buildPythonPackage rec {
 
     # mock calls to `shutil.which(...)`
     (writeShellScriptBin "npm" "false")
-  ]
-  ++ passthru.optional-dependencies.oauth
-  ++ pydantic.passthru.optional-dependencies.email;
+  ] ++ passthru.optional-dependencies.oauth ++ pydantic.passthru.optional-dependencies.email;
 
   # Add a pytest hook skipping tests that access network, marking them as "Expected fail" (xfail).
   # We additionally xfail FileNotFoundError, since the gradio devs often fail to upload test assets to pypi.
-  preCheck = ''
-    export HOME=$TMPDIR
-    cat ${./conftest-skip-network-errors.py} >> test/conftest.py
-  '' + lib.optionalString stdenv.isDarwin ''
-    # OSError: [Errno 24] Too many open files
-    ulimit -n 4096
-  '';
+  preCheck =
+    ''
+      export HOME=$TMPDIR
+      cat ${./conftest-skip-network-errors.py} >> test/conftest.py
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      # OSError: [Errno 24] Too many open files
+      ulimit -n 4096
+    '';
 
   disabledTests = [
     # Actually broken
@@ -189,15 +185,67 @@ buildPythonPackage rec {
 
     # tests if pip and other tools are installed
     "test_get_executable_path"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # flaky on darwin (depend on port availability)
+    "test_all_status_messages"
+    "test_async_generators"
+    "test_async_generators_interface"
+    "test_async_iterator_update_with_new_component"
+    "test_concurrency_limits"
+    "test_default_concurrency_limits"
+    "test_default_flagging_callback"
+    "test_end_to_end"
+    "test_end_to_end_cache_examples"
+    "test_event_data"
+    "test_every_does_not_block_queue"
+    "test_example_caching_relaunch"
+    "test_example_caching_relaunch"
+    "test_exit_called_at_launch"
+    "test_file_component_uploads"
+    "test_files_saved_as_file_paths"
+    "test_flagging_does_not_create_unnecessary_directories"
+    "test_flagging_no_permission_error_with_flagging_disabled"
+    "test_info_and_warning_alerts"
+    "test_info_isolation"
+    "test_launch_analytics_does_not_error_with_invalid_blocks"
+    "test_no_empty_audio_files"
+    "test_no_empty_image_files"
+    "test_no_empty_video_files"
+    "test_non_streaming_api"
+    "test_non_streaming_api_async"
+    "test_pil_images_hashed"
+    "test_progress_bar"
+    "test_progress_bar_track_tqdm"
+    "test_queue_when_using_auth"
+    "test_restart_after_close"
+    "test_set_share_in_colab"
+    "test_show_error"
+    "test_simple_csv_flagging_callback"
+    "test_single_request"
+    "test_socket_reuse"
+    "test_start_server"
+    "test_state_holder_is_used_in_postprocess"
+    "test_state_stored_up_to_capacity"
+    "test_static_files_single_app"
+    "test_streaming_api"
+    "test_streaming_api_async"
+    "test_streaming_api_with_additional_inputs"
+    "test_sync_generators"
+    "test_time_to_live_and_delete_callback_for_state"
+    "test_updates_stored_up_to_capacity"
+    "test_varying_output_forms_with_generators"
   ];
   disabledTestPaths = [
     # 100% touches network
     "test/test_networking.py"
     # makes pytest freeze 50% of the time
     "test/test_interfaces.py"
+  ] ++ lib.optionals stdenv.isDarwin [
+    # Network-related tests that are flaky on darwin (depend on port availability)
+    "test/test_routes.py"
   ];
   pytestFlagsArray = [
-    "-x"  # abort on first failure
+    "-x" # abort on first failure
     "-m 'not flaky'"
     #"-W" "ignore" # uncomment for debugging help
   ];
@@ -212,17 +260,19 @@ buildPythonPackage rec {
 
   # Cyclic dependencies are fun!
   # This is gradio without gradio-client and gradio-pdf
-  passthru.sans-reverse-dependencies = (gradio.override (old: {
+  passthru.sans-reverse-dependencies =
+    (gradio.override (old: {
       gradio-client = null;
       gradio-pdf = null;
-    })).overridePythonAttrs (old: {
-      pname = old.pname + "-sans-reverse-dependencies";
-      pythonRemoveDeps = (old.pythonRemoveDeps or []) ++ [ "gradio-client" ];
-      doInstallCheck = false;
-      doCheck = false;
-      pythonImportsCheck = null;
-      dontCheckRuntimeDeps = true;
-    });
+    })).overridePythonAttrs
+      (old: {
+        pname = old.pname + "-sans-reverse-dependencies";
+        pythonRemoveDeps = (old.pythonRemoveDeps or [ ]) ++ [ "gradio-client" ];
+        doInstallCheck = false;
+        doCheck = false;
+        pythonImportsCheck = null;
+        dontCheckRuntimeDeps = true;
+      });
 
   meta = with lib; {
     homepage = "https://www.gradio.app/";
diff --git a/pkgs/development/python-modules/grafanalib/default.nix b/pkgs/development/python-modules/grafanalib/default.nix
index aba3fbe4ec951..4e03786a71479 100644
--- a/pkgs/development/python-modules/grafanalib/default.nix
+++ b/pkgs/development/python-modules/grafanalib/default.nix
@@ -1,11 +1,11 @@
-{ attrs
-, buildPythonPackage
-, fetchFromGitHub
-, fetchPypi
-, lib
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  attrs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-vXnyAfC9avKz8U4+MJVnu2zoPD0nR2qarWYidhEPW5s=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    attrs
-  ];
+  propagatedBuildInputs = [ attrs ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "grafanalib"
-  ];
+  pythonImportsCheck = [ "grafanalib" ];
 
   meta = with lib; {
     description = "Library for building Grafana dashboards";
diff --git a/pkgs/development/python-modules/grammalecte/default.nix b/pkgs/development/python-modules/grammalecte/default.nix
index 395f97a62d370..5167b6112731b 100644
--- a/pkgs/development/python-modules/grammalecte/default.nix
+++ b/pkgs/development/python-modules/grammalecte/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchurl
-, bottle
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchurl,
+  bottle,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -28,7 +29,7 @@ buildPythonPackage rec {
   disabled = !isPy3k;
 
   meta = {
-    description = "An open source grammar and typographic corrector for the French language";
+    description = "Open source grammar and typographic corrector for the French language";
     homepage = "https://grammalecte.net";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ apeyroux ];
diff --git a/pkgs/development/python-modules/grandalf/default.nix b/pkgs/development/python-modules/grandalf/default.nix
index 1852364fbfe2e..c447d061e4a25 100644
--- a/pkgs/development/python-modules/grandalf/default.nix
+++ b/pkgs/development/python-modules/grandalf/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyparsing
-, future
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyparsing,
+  future,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,17 +27,11 @@ buildPythonPackage rec {
     future
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  patches = [
-    ./no-setup-requires-pytestrunner.patch
-  ];
+  patches = [ ./no-setup-requires-pytestrunner.patch ];
 
-  pythonImportsCheck = [
-    "grandalf"
-  ];
+  pythonImportsCheck = [ "grandalf" ];
 
   meta = with lib; {
     description = "Module for experimentations with graphs and drawing algorithms";
diff --git a/pkgs/development/python-modules/graph-tool/default.nix b/pkgs/development/python-modules/graph-tool/default.nix
index 61545e3a2ec93..126a259a95653 100644
--- a/pkgs/development/python-modules/graph-tool/default.nix
+++ b/pkgs/development/python-modules/graph-tool/default.nix
@@ -1,53 +1,76 @@
-{ buildPythonPackage
-, lib
-, fetchurl
+{
+  buildPythonPackage,
+  lib,
+  fetchurl,
+  stdenv,
 
-, autoreconfHook
-, boost
-, cairomm
-, cgal
-, expat
-, gmp
-, gobject-introspection
-, gtk3
-, matplotlib
-, mpfr
-, numpy
-, pkg-config
-, pycairo
-, pygobject3
-, python
-, scipy
-, sparsehash
+  autoreconfHook,
+  boost185,
+  cairomm,
+  cgal,
+  expat,
+  gmp,
+  gobject-introspection,
+  gtk3,
+  llvmPackages,
+  matplotlib,
+  mpfr,
+  numpy,
+  pkg-config,
+  pycairo,
+  pygobject3,
+  python,
+  scipy,
+  sparsehash,
+  gitUpdater,
 }:
 
+let
+  # graph-tool doesn't build against boost181 on Darwin
+  boost = boost185.override {
+    enablePython = true;
+    inherit python;
+  };
+in
 buildPythonPackage rec {
   pname = "graph-tool";
+  version = "2.70";
   format = "other";
-  version = "2.45";
 
   src = fetchurl {
     url = "https://downloads.skewed.de/graph-tool/graph-tool-${version}.tar.bz2";
-    hash = "sha256-+S2nrM/aArKXke/k8LPtkzKfJyMq9NOvwHySQh7Ghmg=";
+    hash = "sha256-hohGgOnxP1nb8NfkDRYPJ08sx0EH8PxX7Rblk1PLlIk=";
   };
 
+  # Remove error messages about tput during build process without adding ncurses,
+  # and replace unavailable git commit hash and date.
+  postPatch = ''
+    substituteInPlace configure.ac \
+      --replace-fail 'tput setaf $1' : \
+      --replace-fail 'tput sgr0' : \
+      --replace-fail \
+        "\"esyscmd(git show | head -n 1 | sed 's/commit //' |  grep -o -e '.\{8\}' | head -n 1 |tr -d '\n')\"" \
+        '["(nixpkgs-${version})"]' \
+      --replace-fail \
+        "\"esyscmd(git log -1 | head -n 3 | grep 'Date:' | sed s/'Date:   '// | tr -d '\n')\"" \
+        '["(unavailable)"]'
+  '';
+
   configureFlags = [
     "--with-python-module-path=$(out)/${python.sitePackages}"
     "--with-boost-libdir=${boost}/lib"
-    "--with-expat=${expat}"
     "--with-cgal=${cgal}"
-    "--enable-openmp"
   ];
 
   enableParallelBuilding = true;
 
-  nativeBuildInputs = [
+  build-system = [
     autoreconfHook
     pkg-config
   ];
 
-  # https://git.skewed.de/count0/graph-tool/-/wikis/installation-instructions#manual-compilation
-  propagatedBuildInputs = [
+  # https://graph-tool.skewed.de/installation.html#manual-compilation
+  dependencies = [
     boost
     cairomm
     cgal
@@ -62,12 +85,20 @@ buildPythonPackage rec {
     pygobject3
     scipy
     sparsehash
-  ];
+  ] ++ lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ];
+
+  pythonImportsCheck = [ "graph_tool" ];
+
+  passthru.updateScript = gitUpdater {
+    url = "https://git.skewed.de/count0/graph-tool";
+    rev-prefix = "release-";
+  };
 
-  meta = with lib; {
+  meta = {
     description = "Python module for manipulation and statistical analysis of graphs";
     homepage = "https://graph-tool.skewed.de";
-    license = licenses.lgpl3Plus;
-    maintainers = with maintainers; [ ];
+    changelog = "https://git.skewed.de/count0/graph-tool/commits/release-${version}";
+    license = lib.licenses.lgpl3Plus;
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/grapheme/default.nix b/pkgs/development/python-modules/grapheme/default.nix
index 965b1a1d21975..d16224cca557f 100644
--- a/pkgs/development/python-modules/grapheme/default.nix
+++ b/pkgs/development/python-modules/grapheme/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
   # https://github.com/alvinlindstam/grapheme/issues/18
   doCheck = false;
 
-  pythonImportsCheck = [
-    "grapheme"
-  ];
+  pythonImportsCheck = [ "grapheme" ];
 
   meta = with lib; {
     description = "Python package for grapheme aware string handling";
diff --git a/pkgs/development/python-modules/graphene-django/default.nix b/pkgs/development/python-modules/graphene-django/default.nix
index a7248d1b80650..254b2ae16a53f 100644
--- a/pkgs/development/python-modules/graphene-django/default.nix
+++ b/pkgs/development/python-modules/graphene-django/default.nix
@@ -1,27 +1,28 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
 
-, graphene
-, graphql-core
-, django
-, djangorestframework
-, promise
-, text-unidecode
+  graphene,
+  graphql-core,
+  django,
+  djangorestframework,
+  promise,
+  text-unidecode,
 
-, django-filter
-, mock
-, py
-, pytest-django
-, pytest-random-order
-, pytest7CheckHook
+  django-filter,
+  mock,
+  py,
+  pytest-django,
+  pytest-random-order,
+  pytest7CheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "graphene-django";
-  version = "3.2.1";
+  version = "3.2.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -30,7 +31,7 @@ buildPythonPackage rec {
     owner = "graphql-python";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-wzU9U4mYvBf43qBQi20ewKtmw1eFskQk+nnsdaM7HQM=";
+    hash = "sha256-12ue7Pq7TFMSBAfaj8Si6KrpuKYp5T2EEesJpc8wRho=";
   };
 
   postPatch = ''
@@ -60,16 +61,18 @@ buildPythonPackage rec {
     pytest7CheckHook
   ];
 
-  disabledTests = [
-    # https://github.com/graphql-python/graphene-django/issues/1510
-    "test_should_filepath_convert_string"
-    "test_should_choice_convert_enum"
-    "test_should_multiplechoicefield_convert_to_list_of_enum"
-    "test_perform_mutate_success_with_enum_choice_field"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # this test touches files in the "/" directory and fails in darwin sandbox
-    "test_should_filepath_convert_string"
-  ];
+  disabledTests =
+    [
+      # https://github.com/graphql-python/graphene-django/issues/1510
+      "test_should_filepath_convert_string"
+      "test_should_choice_convert_enum"
+      "test_should_multiplechoicefield_convert_to_list_of_enum"
+      "test_perform_mutate_success_with_enum_choice_field"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # this test touches files in the "/" directory and fails in darwin sandbox
+      "test_should_filepath_convert_string"
+    ];
 
   meta = with lib; {
     description = "Integrate GraphQL into your Django project";
diff --git a/pkgs/development/python-modules/graphene/default.nix b/pkgs/development/python-modules/graphene/default.nix
index e6de2b449cf42..14fcdeb744e78 100644
--- a/pkgs/development/python-modules/graphene/default.nix
+++ b/pkgs/development/python-modules/graphene/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, aniso8601
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, graphql-core
-, graphql-relay
-, pytest-asyncio
-, pytest-benchmark
-, pytest-mock
-, pytest7CheckHook
-, pythonOlder
-, pytz
-, snapshottest
+{
+  lib,
+  aniso8601,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  graphql-core,
+  graphql-relay,
+  pytest-asyncio,
+  pytest-benchmark,
+  pytest-mock,
+  pytest7CheckHook,
+  pythonOlder,
+  pytz,
+  snapshottest,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     hash = "sha256-DGxicCXZp9kW/OFkr0lAWaQ+GaECx+HD8+X4aW63vgQ=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     aniso8601
@@ -47,13 +46,9 @@ buildPythonPackage rec {
     snapshottest
   ];
 
-  pytestFlagsArray = [
-    "--benchmark-disable"
-  ];
+  pytestFlagsArray = [ "--benchmark-disable" ];
 
-  pythonImportsCheck = [
-    "graphene"
-  ];
+  pythonImportsCheck = [ "graphene" ];
 
   meta = with lib; {
     description = "GraphQL Framework for Python";
diff --git a/pkgs/development/python-modules/graphite-web/default.nix b/pkgs/development/python-modules/graphite-web/default.nix
index d80ed27297ccf..8da175e4f5737 100644
--- a/pkgs/development/python-modules/graphite-web/default.nix
+++ b/pkgs/development/python-modules/graphite-web/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, python
-, cairocffi
-, django
-, django-tagging
-, fetchFromGitHub
-, fetchpatch
-, gunicorn
-, mock
-, pyparsing
-, python-memcached
-, pythonOlder
-, pytz
-, six
-, txamqp
-, urllib3
-, whisper
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  python,
+  cairocffi,
+  django,
+  django-tagging,
+  fetchFromGitHub,
+  fetchpatch,
+  gunicorn,
+  mock,
+  pyparsing,
+  python-memcached,
+  pythonOlder,
+  pytz,
+  six,
+  txamqp,
+  urllib3,
+  whisper,
 }:
 
 buildPythonPackage rec {
@@ -92,14 +93,15 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "graphite"
-  ];
+  pythonImportsCheck = [ "graphite" ];
 
   meta = with lib; {
     description = "Enterprise scalable realtime graphing";
     homepage = "http://graphiteapp.org/";
     license = licenses.asl20;
-    maintainers = with maintainers; [ offline basvandijk ];
+    maintainers = with maintainers; [
+      offline
+      basvandijk
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/graphlib-backport/default.nix b/pkgs/development/python-modules/graphlib-backport/default.nix
index 54d166a88ba2a..7f91976b4c21d 100644
--- a/pkgs/development/python-modules/graphlib-backport/default.nix
+++ b/pkgs/development/python-modules/graphlib-backport/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, setuptools
-, poetry-core
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  setuptools,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/graphql-core/default.nix b/pkgs/development/python-modules/graphql-core/default.nix
index 0d866a29bd287..7986f0cd32464 100644
--- a/pkgs/development/python-modules/graphql-core/default.nix
+++ b/pkgs/development/python-modules/graphql-core/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, py
-, pytest-benchmark
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  py,
+  pytest-benchmark,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "graphql"
-  ];
+  pythonImportsCheck = [ "graphql" ];
 
   meta = with lib; {
     description = "Port of graphql-js to Python";
diff --git a/pkgs/development/python-modules/graphql-relay/default.nix b/pkgs/development/python-modules/graphql-relay/default.nix
index ac91b749070de..75b0471211765 100644
--- a/pkgs/development/python-modules/graphql-relay/default.nix
+++ b/pkgs/development/python-modules/graphql-relay/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-, pythonOlder
+  pythonOlder,
 
-# build
-, poetry-core
+  # build
+  poetry-core,
 
-# runtime
-, graphql-core
-, typing-extensions
+  # runtime
+  graphql-core,
+  typing-extensions,
 
-# tests
-, pytest-asyncio
-, pytest-describe
-, pytestCheckHook
+  # tests
+  pytest-asyncio,
+  pytest-describe,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -37,15 +38,9 @@ buildPythonPackage rec {
       --replace ', "setuptools>=59,<70"' ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    graphql-core
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ graphql-core ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -56,7 +51,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "graphql_relay" ];
 
   meta = with lib; {
-    description = "A library to help construct a graphql-py server supporting react-relay";
+    description = "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; [ ];
diff --git a/pkgs/development/python-modules/graphql-server-core/default.nix b/pkgs/development/python-modules/graphql-server-core/default.nix
index a098f9c85e704..7d19247c2a34b 100644
--- a/pkgs/development/python-modules/graphql-server-core/default.nix
+++ b/pkgs/development/python-modules/graphql-server-core/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, graphql-core
-, promise
-, fetchpatch
-, pythonOlder
-, pytestCheckHook
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  graphql-core,
+  promise,
+  fetchpatch,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
   # fail with: cannot import name 'format_error' from 'graphql'
   doCheck = false;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Core package for using GraphQL in a custom server easily";
diff --git a/pkgs/development/python-modules/graphql-subscription-manager/default.nix b/pkgs/development/python-modules/graphql-subscription-manager/default.nix
index feaf6432fedd0..a0307dfa8032b 100644
--- a/pkgs/development/python-modules/graphql-subscription-manager/default.nix
+++ b/pkgs/development/python-modules/graphql-subscription-manager/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, websockets
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  websockets,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # no tests implemented
   doCheck = false;
 
-  pythonImportsCheck = [
-    "graphql_subscription_manager"
-  ];
+  pythonImportsCheck = [ "graphql_subscription_manager" ];
 
   meta = with lib; {
     description = "Python3 library for graphql subscription manager";
diff --git a/pkgs/development/python-modules/graphqlclient/default.nix b/pkgs/development/python-modules/graphqlclient/default.nix
index 81bdddf00ee41..34d7889513dbc 100644
--- a/pkgs/development/python-modules/graphqlclient/default.nix
+++ b/pkgs/development/python-modules/graphqlclient/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     sha256 = "0b6r3ng78qsn7c9zksx4rgdkmp5296d40kbmjn8q614cz0ymyc5k";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/graphtage/default.nix b/pkgs/development/python-modules/graphtage/default.nix
index 815e6775c177a..7ecdeb1adf846 100644
--- a/pkgs/development/python-modules/graphtage/default.nix
+++ b/pkgs/development/python-modules/graphtage/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, colorama
-, intervaltree
-, json5
-, pyyaml
-, scipy
-, tqdm
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  colorama,
+  intervaltree,
+  json5,
+  pyyaml,
+  scipy,
+  tqdm,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -41,16 +42,12 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "graphtage"
-  ];
+  pythonImportsCheck = [ "graphtage" ];
 
   meta = with lib; {
-    description = "A utility to diff tree-like files such as JSON and XML";
+    description = "Utility to diff tree-like files such as JSON and XML";
     mainProgram = "graphtage";
     homepage = "https://github.com/trailofbits/graphtage";
     changelog = "https://github.com/trailofbits/graphtage/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/graphviz/default.nix b/pkgs/development/python-modules/graphviz/default.nix
index 9d783b7bde227..2bf0cfe01c114 100644
--- a/pkgs/development/python-modules/graphviz/default.nix
+++ b/pkgs/development/python-modules/graphviz/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, substituteAll
-, graphviz-nox
-, xdg-utils
-, makeFontsConf
-, freefont_ttf
-, setuptools
-, mock
-, pytest_7
-, pytest-mock
-, python
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  substituteAll,
+  graphviz-nox,
+  xdg-utils,
+  makeFontsConf,
+  freefont_ttf,
+  setuptools,
+  mock,
+  pytest_7,
+  pytest-mock,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -43,13 +44,9 @@ buildPythonPackage rec {
   '';
 
   # Fontconfig error: Cannot load default config file
-  FONTCONFIG_FILE = makeFontsConf {
-    fontDirectories = [ freefont_ttf ];
-  };
+  FONTCONFIG_FILE = makeFontsConf { fontDirectories = [ freefont_ttf ]; };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   nativeCheckInputs = [
     mock
diff --git a/pkgs/development/python-modules/grappelli-safe/default.nix b/pkgs/development/python-modules/grappelli-safe/default.nix
index 916ac606473b7..8c7207f8a6b0f 100644
--- a/pkgs/development/python-modules/grappelli-safe/default.nix
+++ b/pkgs/development/python-modules/grappelli-safe/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,19 +19,15 @@ buildPythonPackage rec {
     hash = "sha256-7jSz4qNxFJix+No9naqKEjnv3yVaISGBdCtqWJD6wDk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # upstream has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "grappelli_safe"
-  ];
+  pythonImportsCheck = [ "grappelli_safe" ];
 
   meta = with lib; {
-    description = "A snapshot of django-grappelli for the Mezzanine CMS";
+    description = "Snapshot of django-grappelli for the Mezzanine CMS";
     longDescription = ''
       grappelli_safe was created to provide a snapshot of the
       Grappelli admin skin for Django, to be referenced as a
diff --git a/pkgs/development/python-modules/graspologic/default.nix b/pkgs/development/python-modules/graspologic/default.nix
index 745cf90b4b9e6..74e7442f0e417 100644
--- a/pkgs/development/python-modules/graspologic/default.nix
+++ b/pkgs/development/python-modules/graspologic/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, isPy27
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
-, pytest-cov
-, hyppo
-, matplotlib
-, networkx
-, numpy
-, scikit-learn
-, scipy
-, seaborn
+{
+  lib,
+  buildPythonPackage,
+  isPy27,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  pytest-cov,
+  hyppo,
+  matplotlib,
+  networkx,
+  numpy,
+  scikit-learn,
+  scipy,
+  seaborn,
 }:
 
 buildPythonPackage rec {
   pname = "graspologic";
-  version = "3.3.0";
+  version = "3.4.1";
   pyproject = true;
 
   disabled = isPy27;
@@ -25,12 +26,10 @@ buildPythonPackage rec {
     owner = "microsoft";
     repo = "graspologic";
     rev = "refs/tags/v${version}";
-    hash = "sha256-hd3OyV95N8vhc4s50HbKkrcUOeSegn66Dkw7dixim00=";
+    hash = "sha256-taX/4/uCQXW7yFykVHY78hJIGThEIycHwrEOZ3h1LPY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     hyppo
@@ -42,14 +41,21 @@ buildPythonPackage rec {
     seaborn
   ];
 
-  nativeCheckInputs = [ pytestCheckHook pytest-cov ];
-  pytestFlagsArray = [ "tests" "--ignore=docs" "--ignore=tests/test_sklearn.py" ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-cov
+  ];
+  pytestFlagsArray = [
+    "tests"
+    "--ignore=docs"
+    "--ignore=tests/test_sklearn.py"
+  ];
   disabledTests = [ "gridplot_outputs" ];
 
   meta = with lib; {
     homepage = "https://graspologic.readthedocs.io";
-    description = "A package for graph statistical algorithms";
-    license = licenses.asl20;  # changing to `licenses.mit` in next release
+    description = "Package for graph statistical algorithms";
+    license = licenses.asl20; # changing to `licenses.mit` in next release
     maintainers = with maintainers; [ bcdarwin ];
     # graspologic-native is not available
     broken = true;
diff --git a/pkgs/development/python-modules/greatfet/default.nix b/pkgs/development/python-modules/greatfet/default.nix
index 7f7c53f70ea35..147cd19164e2a 100644
--- a/pkgs/development/python-modules/greatfet/default.nix
+++ b/pkgs/development/python-modules/greatfet/default.nix
@@ -1,19 +1,33 @@
-{ lib, fetchFromGitHub, buildPythonPackage, isPy3k, future, pyusb, ipython, pygreat }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  isPy3k,
+  future,
+  pyusb,
+  ipython,
+  pygreat,
+}:
 
 buildPythonPackage rec {
   pname = "greatfet";
-  version = "2019.5.1.dev0";
+  version = "2024.0.1";
 
   src = fetchFromGitHub {
     owner = "greatscottgadgets";
     repo = "greatfet";
-    rev = "v${version}";
-    sha256 = "054vkx4xkbhxhh5grjbs9kw3pjkv1zapp91ysrqr0c8mg1pc7zxv";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-AKpaJZJTzMY3IQXLvVnLWh3IHeGp759z6tvaBl28BHQ=";
   };
 
   disabled = !isPy3k;
 
-  propagatedBuildInputs = [ future pyusb ipython pygreat ];
+  propagatedBuildInputs = [
+    future
+    pyusb
+    ipython
+    pygreat
+  ];
 
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/greeclimate/default.nix b/pkgs/development/python-modules/greeclimate/default.nix
index 30a724c07c44f..806dd8681c573 100644
--- a/pkgs/development/python-modules/greeclimate/default.nix
+++ b/pkgs/development/python-modules/greeclimate/default.nix
@@ -1,12 +1,13 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, netifaces
-, pycryptodome
-, pytest-asyncio
-, pytestCheckHook
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  netifaces,
+  pycryptodome,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/green/default.nix b/pkgs/development/python-modules/green/default.nix
index eef23f6ce0dff..4d632b21ca5c7 100644
--- a/pkgs/development/python-modules/green/default.nix
+++ b/pkgs/development/python-modules/green/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, django
-, colorama
-, coverage
-, unidecode
-, lxml
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  django,
+  colorama,
+  coverage,
+  unidecode,
+  lxml,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-pAZ8P5/CpkTtNfU2ZJUGQzROxGLm0uu1vXS3YpcVprE=";
   };
 
-  patches = [
-    ./tests.patch
-  ];
+  patches = [ ./tests.patch ];
 
   postPatch = ''
     substituteInPlace green/test/test_integration.py \
@@ -45,9 +44,7 @@ buildPythonPackage rec {
       green.test.test_command
   '';
 
-  pythonImportsCheck = [
-    "green"
-  ];
+  pythonImportsCheck = [ "green" ];
 
   meta = with lib; {
     description = "Python test runner";
diff --git a/pkgs/development/python-modules/greeneye-monitor/default.nix b/pkgs/development/python-modules/greeneye-monitor/default.nix
index aa206825e7f66..c5eb557cd8148 100644
--- a/pkgs/development/python-modules/greeneye-monitor/default.nix
+++ b/pkgs/development/python-modules/greeneye-monitor/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, siobrultech-protocols
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  siobrultech-protocols,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-7EDuQ+wECcTzxkEufMpg3WSzosWeiwfxcVIVtQi+0BI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
     siobrultech-protocols
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "greeneye.monitor"
-  ];
+  pythonImportsCheck = [ "greeneye.monitor" ];
 
   meta = with lib; {
     description = "Receive data packets from GreenEye Monitor";
diff --git a/pkgs/development/python-modules/greenlet/default.nix b/pkgs/development/python-modules/greenlet/default.nix
index 6839b2340961c..2ea828cd4174d 100644
--- a/pkgs/development/python-modules/greenlet/default.nix
+++ b/pkgs/development/python-modules/greenlet/default.nix
@@ -1,62 +1,68 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-
-# build-system
-, setuptools
-
-# tests
-, objgraph
-, psutil
-, python
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+
+  # build-system
+  setuptools,
+
+  # tests
+  objgraph,
+  psutil,
+  python,
+  unittestCheckHook,
 }:
 
-let greenlet = buildPythonPackage rec {
-  pname = "greenlet";
-  version = "3.0.3";
-  pyproject = true;
+let
+  greenlet = buildPythonPackage rec {
+    pname = "greenlet";
+    version = "3.0.3";
+    pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-QzdEQjUyWVVM4zWZ2otpLVqpb4l21WfUut8mM3H75JE=";
-  };
+    src = fetchPypi {
+      inherit pname version;
+      hash = "sha256-QzdEQjUyWVVM4zWZ2otpLVqpb4l21WfUut8mM3H75JE=";
+    };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+    patches = [
+      # https://github.com/python-greenlet/greenlet/pull/396
+      ./python-3.13-compat.patch
+    ];
 
-  # tests in passthru, infinite recursion via objgraph/graphviz
-  doCheck = false;
+    nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    objgraph
-    psutil
-    unittestCheckHook
-  ];
+    # tests in passthru, infinite recursion via objgraph/graphviz
+    doCheck = false;
 
-  preCheck = ''
-    pushd ${placeholder "out"}/${python.sitePackages}
-  '';
+    nativeCheckInputs = [
+      objgraph
+      psutil
+      unittestCheckHook
+    ];
 
-  unittestFlagsArray = [
-    "greenlet.tests"
-  ];
+    preCheck = ''
+      pushd ${placeholder "out"}/${python.sitePackages}
+    '';
 
-  postCheck = ''
-    popd
-  '';
+    unittestFlagsArray = [ "greenlet.tests" ];
 
-  passthru.tests.pytest = greenlet.overridePythonAttrs (_: { doCheck = true; });
+    postCheck = ''
+      popd
+    '';
 
-  meta = with lib; {
-    changelog = "https://github.com/python-greenlet/greenlet/blob/${version}/CHANGES.rst";
-    homepage = "https://github.com/python-greenlet/greenlet";
-    description = "Module for lightweight in-process concurrent programming";
-    license = with licenses; [
-      psfl # src/greenlet/slp_platformselect.h & files in src/greenlet/platform/ directory
-      mit
-    ];
+    passthru.tests.pytest = greenlet.overridePythonAttrs (_: {
+      doCheck = true;
+    });
+
+    meta = with lib; {
+      changelog = "https://github.com/python-greenlet/greenlet/blob/${version}/CHANGES.rst";
+      homepage = "https://github.com/python-greenlet/greenlet";
+      description = "Module for lightweight in-process concurrent programming";
+      license = with licenses; [
+        psfl # src/greenlet/slp_platformselect.h & files in src/greenlet/platform/ directory
+        mit
+      ];
+    };
   };
-};
-in greenlet
+in
+greenlet
diff --git a/pkgs/development/python-modules/greenlet/python-3.13-compat.patch b/pkgs/development/python-modules/greenlet/python-3.13-compat.patch
new file mode 100644
index 0000000000000..9f5488b831d32
--- /dev/null
+++ b/pkgs/development/python-modules/greenlet/python-3.13-compat.patch
@@ -0,0 +1,313 @@
+Port of https://github.com/python-greenlet/greenlet/pull/396
+
+From 94979488f841fcb41bd2bd3b80b5c0b011af4c94 Mon Sep 17 00:00:00 2001
+From: Victor Stinner <vstinner@python.org>
+Date: Wed, 14 Feb 2024 16:37:42 +0100
+Subject: [PATCH 1/5] Fix #392: Port to Python 3.13
+
+* Replace C_RECURSION_LIMIT with Py_C_RECURSION_LIMIT.
+* Add Py_C_RECURSION_LIMIT for Python 3.12 and older.
+* Disable GREENLET_USE_CFRAME on Python 3.13.
+* Define Py_BUILD_CORE to include pycore_frame.h.
+---
+ src/greenlet/TPythonState.cpp            | 10 +++++++---
+ src/greenlet/greenlet_cpython_compat.hpp | 13 +++++++++++--
+ src/greenlet/greenlet_greenlet.hpp       |  1 +
+ 3 files changed, 19 insertions(+), 5 deletions(-)
+
+diff --git a/src/greenlet/TPythonState.cpp b/src/greenlet/TPythonState.cpp
+index 465d4174..c0dbf703 100644
+--- a/src/greenlet/TPythonState.cpp
++++ b/src/greenlet/TPythonState.cpp
+@@ -130,11 +130,13 @@ void PythonState::operator<<(const PyThreadState *const tstate) noexcept
+ #if GREENLET_PY311
+   #if GREENLET_PY312
+     this->py_recursion_depth = tstate->py_recursion_limit - tstate->py_recursion_remaining;
+-    this->c_recursion_depth = C_RECURSION_LIMIT - tstate->c_recursion_remaining;
++    this->c_recursion_depth = Py_C_RECURSION_LIMIT - tstate->c_recursion_remaining;
+   #else // not 312
+     this->recursion_depth = tstate->recursion_limit - tstate->recursion_remaining;
+   #endif // GREENLET_PY312
++  #if GREENLET_USE_CFRAME
+     this->current_frame = tstate->cframe->current_frame;
++  #endif
+     this->datastack_chunk = tstate->datastack_chunk;
+     this->datastack_top = tstate->datastack_top;
+     this->datastack_limit = tstate->datastack_limit;
+@@ -199,12 +201,14 @@ void PythonState::operator>>(PyThreadState *const tstate) noexcept
+ #if GREENLET_PY311
+   #if GREENLET_PY312
+     tstate->py_recursion_remaining = tstate->py_recursion_limit - this->py_recursion_depth;
+-    tstate->c_recursion_remaining = C_RECURSION_LIMIT - this->c_recursion_depth;
++    tstate->c_recursion_remaining = Py_C_RECURSION_LIMIT - this->c_recursion_depth;
+     this->unexpose_frames();
+   #else // \/ 3.11
+     tstate->recursion_remaining = tstate->recursion_limit - this->recursion_depth;
+   #endif // GREENLET_PY312
++  #if GREENLET_USE_CFRAME
+     tstate->cframe->current_frame = this->current_frame;
++  #endif
+     tstate->datastack_chunk = this->datastack_chunk;
+     tstate->datastack_top = this->datastack_top;
+     tstate->datastack_limit = this->datastack_limit;
+@@ -238,7 +242,7 @@ void PythonState::set_initial_state(const PyThreadState* const tstate) noexcept
+ #if GREENLET_PY312
+     this->py_recursion_depth = tstate->py_recursion_limit - tstate->py_recursion_remaining;
+     // XXX: TODO: Comment from a reviewer:
+-    //     Should this be ``C_RECURSION_LIMIT - tstate->c_recursion_remaining``?
++    //     Should this be ``Py_C_RECURSION_LIMIT - tstate->c_recursion_remaining``?
+     // But to me it looks more like that might not be the right
+     // initialization either?
+     this->c_recursion_depth = tstate->py_recursion_limit - tstate->py_recursion_remaining;
+diff --git a/src/greenlet/greenlet_cpython_compat.hpp b/src/greenlet/greenlet_cpython_compat.hpp
+index cdc1617f..c0fb94c5 100644
+--- a/src/greenlet/greenlet_cpython_compat.hpp
++++ b/src/greenlet/greenlet_cpython_compat.hpp
+@@ -12,19 +12,24 @@
+ 
+ #if PY_VERSION_HEX >= 0x30A00B1
+ #    define GREENLET_PY310 1
++#else
++#    define GREENLET_PY310 0
++#endif
++
+ /*
+ Python 3.10 beta 1 changed tstate->use_tracing to a nested cframe member.
+ See https://github.com/python/cpython/pull/25276
+ We have to save and restore this as well.
++
++Python 3.13 removed PyThreadState.cframe (GH-108035).
+ */
++#if GREENLET_PY310 && PY_VERSION_HEX < 0x30D0000
+ #    define GREENLET_USE_CFRAME 1
+ #else
+ #    define GREENLET_USE_CFRAME 0
+-#    define GREENLET_PY310 0
+ #endif
+ 
+ 
+-
+ #if PY_VERSION_HEX >= 0x30B00A4
+ /*
+ Greenlet won't compile on anything older than Python 3.11 alpha 4 (see
+@@ -124,4 +129,8 @@ static inline void PyThreadState_LeaveTracing(PyThreadState *tstate)
+ }
+ #endif
+ 
++#if !defined(Py_C_RECURSION_LIMIT) && defined(C_RECURSION_LIMIT)
++#  define Py_C_RECURSION_LIMIT C_RECURSION_LIMIT
++#endif
++
+ #endif /* GREENLET_CPYTHON_COMPAT_H */
+diff --git a/src/greenlet/greenlet_greenlet.hpp b/src/greenlet/greenlet_greenlet.hpp
+index d52ce1fd..6da6841f 100644
+--- a/src/greenlet/greenlet_greenlet.hpp
++++ b/src/greenlet/greenlet_greenlet.hpp
+@@ -23,6 +23,7 @@ using greenlet::refs::BorrowedGreenlet;
+ #endif
+ 
+ #if GREENLET_PY312
++#  define Py_BUILD_CORE
+ #  include "internal/pycore_frame.h"
+ #endif
+ 
+
+From 00611d7567d09869973fe314f60575674cc877d8 Mon Sep 17 00:00:00 2001
+From: Victor Stinner <vstinner@python.org>
+Date: Mon, 3 Jun 2024 10:55:14 +0200
+Subject: [PATCH 3/5] Support delete_later
+
+---
+ src/greenlet/TPythonState.cpp            | 14 ++++++++++++--
+ src/greenlet/greenlet.cpp                |  4 ++++
+ src/greenlet/greenlet_cpython_compat.hpp |  6 ++++++
+ src/greenlet/greenlet_greenlet.hpp       |  4 ++++
+ 4 files changed, 26 insertions(+), 2 deletions(-)
+
+diff --git a/src/greenlet/TPythonState.cpp b/src/greenlet/TPythonState.cpp
+index c0dbf703..bfb40cac 100644
+--- a/src/greenlet/TPythonState.cpp
++++ b/src/greenlet/TPythonState.cpp
+@@ -18,7 +18,11 @@ PythonState::PythonState()
+ #else
+     ,recursion_depth(0)
+ #endif
++#if GREENLET_PY313
++    ,delete_later(nullptr)
++#else
+     ,trash_delete_nesting(0)
++#endif
+ #if GREENLET_PY311
+     ,current_frame(nullptr)
+     ,datastack_chunk(nullptr)
+@@ -145,7 +149,9 @@ void PythonState::operator<<(const PyThreadState *const tstate) noexcept
+     Py_XDECREF(frame);  // PyThreadState_GetFrame gives us a new
+                         // reference.
+     this->_top_frame.steal(frame);
+-  #if GREENLET_PY312
++  #if GREENLET_PY313
++    this->delete_later = Py_XNewRef(tstate->delete_later);
++  #elif GREENLET_PY312
+     this->trash_delete_nesting = tstate->trash.delete_nesting;
+   #else // not 312
+     this->trash_delete_nesting = tstate->trash_delete_nesting;
+@@ -213,7 +219,11 @@ void PythonState::operator>>(PyThreadState *const tstate) noexcept
+     tstate->datastack_top = this->datastack_top;
+     tstate->datastack_limit = this->datastack_limit;
+     this->_top_frame.relinquish_ownership();
+-  #if GREENLET_PY312
++  #if GREENLET_PY313
++    Py_XDECREF(tstate->delete_later);
++    tstate->delete_later = this->delete_later;
++    Py_CLEAR(this->delete_later);
++  #elif GREENLET_PY312
+     tstate->trash.delete_nesting = this->trash_delete_nesting;
+   #else // not 3.12
+     tstate->trash_delete_nesting = this->trash_delete_nesting;
+diff --git a/src/greenlet/greenlet.cpp b/src/greenlet/greenlet.cpp
+index 5a9818e8..dfc748a8 100644
+--- a/src/greenlet/greenlet.cpp
++++ b/src/greenlet/greenlet.cpp
+@@ -1328,6 +1328,7 @@ mod_enable_optional_cleanup(PyObject* UNUSED(module), PyObject* flag)
+     Py_RETURN_NONE;
+ }
+ 
++#if !GREENLET_PY313
+ PyDoc_STRVAR(mod_get_tstate_trash_delete_nesting_doc,
+              "get_tstate_trash_delete_nesting() -> Integer\n"
+              "\n"
+@@ -1343,6 +1344,7 @@ mod_get_tstate_trash_delete_nesting(PyObject* UNUSED(module))
+     return PyLong_FromLong(tstate->trash_delete_nesting);
+ #endif
+ }
++#endif
+ 
+ static PyMethodDef GreenMethods[] = {
+     {"getcurrent",
+@@ -1356,7 +1358,9 @@ static PyMethodDef GreenMethods[] = {
+     {"get_total_main_greenlets", (PyCFunction)mod_get_total_main_greenlets, METH_NOARGS, mod_get_total_main_greenlets_doc},
+     {"get_clocks_used_doing_optional_cleanup", (PyCFunction)mod_get_clocks_used_doing_optional_cleanup, METH_NOARGS, mod_get_clocks_used_doing_optional_cleanup_doc},
+     {"enable_optional_cleanup", (PyCFunction)mod_enable_optional_cleanup, METH_O, mod_enable_optional_cleanup_doc},
++#if !GREENLET_PY313
+     {"get_tstate_trash_delete_nesting", (PyCFunction)mod_get_tstate_trash_delete_nesting, METH_NOARGS, mod_get_tstate_trash_delete_nesting_doc},
++#endif
+     {NULL, NULL} /* Sentinel */
+ };
+ 
+diff --git a/src/greenlet/greenlet_cpython_compat.hpp b/src/greenlet/greenlet_cpython_compat.hpp
+index c0fb94c5..ce5fd882 100644
+--- a/src/greenlet/greenlet_cpython_compat.hpp
++++ b/src/greenlet/greenlet_cpython_compat.hpp
+@@ -55,6 +55,12 @@ Greenlet won't compile on anything older than Python 3.11 alpha 4 (see
+ #    define GREENLET_PY312 0
+ #endif
+ 
++#if PY_VERSION_HEX >= 0x30D0000
++#    define GREENLET_PY313 1
++#else
++#    define GREENLET_PY313 0
++#endif
++
+ #ifndef Py_SET_REFCNT
+ /* Py_REFCNT and Py_SIZE macros are converted to functions
+ https://bugs.python.org/issue39573 */
+diff --git a/src/greenlet/greenlet_greenlet.hpp b/src/greenlet/greenlet_greenlet.hpp
+index 6da6841f..fbfdfbfc 100644
+--- a/src/greenlet/greenlet_greenlet.hpp
++++ b/src/greenlet/greenlet_greenlet.hpp
+@@ -111,7 +111,11 @@ namespace greenlet
+ #else
+         int recursion_depth;
+ #endif
++#if GREENLET_PY313
++        PyObject *delete_later;
++#else
+         int trash_delete_nesting;
++#endif
+ #if GREENLET_PY311
+         _PyInterpreterFrame* current_frame;
+         _PyStackChunk* datastack_chunk;
+
+From b65558ec962d3d81ae09787ebca8686d233e2a4c Mon Sep 17 00:00:00 2001
+From: Victor Stinner <vstinner@python.org>
+Date: Wed, 5 Jun 2024 12:04:21 +0200
+Subject: [PATCH 4/5] Fix current_frame
+
+---
+ src/greenlet/TPythonState.cpp | 8 ++++++--
+ 1 file changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/src/greenlet/TPythonState.cpp b/src/greenlet/TPythonState.cpp
+index bfb40cac..82eb34f0 100644
+--- a/src/greenlet/TPythonState.cpp
++++ b/src/greenlet/TPythonState.cpp
+@@ -138,7 +138,9 @@ void PythonState::operator<<(const PyThreadState *const tstate) noexcept
+   #else // not 312
+     this->recursion_depth = tstate->recursion_limit - tstate->recursion_remaining;
+   #endif // GREENLET_PY312
+-  #if GREENLET_USE_CFRAME
++  #if GREENLET_PY313
++    this->current_frame = tstate->current_frame;
++  #elif GREENLET_USE_CFRAME
+     this->current_frame = tstate->cframe->current_frame;
+   #endif
+     this->datastack_chunk = tstate->datastack_chunk;
+@@ -212,7 +214,9 @@ void PythonState::operator>>(PyThreadState *const tstate) noexcept
+   #else // \/ 3.11
+     tstate->recursion_remaining = tstate->recursion_limit - this->recursion_depth;
+   #endif // GREENLET_PY312
+-  #if GREENLET_USE_CFRAME
++  #if GREENLET_PY313
++    tstate->current_frame = this->current_frame;
++  #elif GREENLET_USE_CFRAME
+     tstate->cframe->current_frame = this->current_frame;
+   #endif
+     tstate->datastack_chunk = this->datastack_chunk;
+
+From b7cfc1748766cac351fe5fca32fa7c8cacdea2ae Mon Sep 17 00:00:00 2001
+From: Victor Stinner <vstinner@python.org>
+Date: Wed, 5 Jun 2024 12:17:28 +0200
+Subject: [PATCH 5/5] Update tests
+
+---
+ src/greenlet/tests/test_greenlet.py       | 4 +++-
+ src/greenlet/tests/test_greenlet_trash.py | 9 +++++++++
+ 2 files changed, 12 insertions(+), 1 deletion(-)
+
+diff --git a/src/greenlet/tests/test_greenlet.py b/src/greenlet/tests/test_greenlet.py
+index 51849cd6..259707ae 100644
+--- a/src/greenlet/tests/test_greenlet.py
++++ b/src/greenlet/tests/test_greenlet.py
+@@ -471,7 +471,9 @@ def creator():
+         # Unfortunately, this doesn't actually clear the references, they're in the
+         # fast local array.
+         if not wait_for_cleanup:
+-            result[0].gr_frame.f_locals.clear()
++            # f_locals has no clear method in Python 3.13
++            if hasattr(result[0].gr_frame.f_locals, 'clear'):
++                result[0].gr_frame.f_locals.clear()
+         else:
+             self.assertIsNone(result[0].gr_frame)
+ 
+diff --git a/src/greenlet/tests/test_greenlet_trash.py b/src/greenlet/tests/test_greenlet_trash.py
+index 8d9716e9..2bce8fd0 100644
+--- a/src/greenlet/tests/test_greenlet_trash.py
++++ b/src/greenlet/tests/test_greenlet_trash.py
+@@ -29,8 +29,17 @@
+ 
+ import unittest
+ 
++try:
++    from greenlet._greenlet import get_tstate_trash_delete_nesting
++except ImportError:
++    get_tstate_trash_delete_nesting = None
++
++
+ class TestTrashCanReEnter(unittest.TestCase):
+ 
++    # Python 3.13 has not "trash delete nesting" anymore (but "delete later")
++    @unittest.skipIf(get_tstate_trash_delete_nesting is None,
++                     'need get_tstate_trash_delete_nesting()')
+     def test_it(self):
+         # Try several times to trigger it, because it isn't 100%
+         # reliable.
diff --git a/pkgs/development/python-modules/gremlinpython/default.nix b/pkgs/development/python-modules/gremlinpython/default.nix
index 49401b44532ac..f6539af40f5f0 100644
--- a/pkgs/development/python-modules/gremlinpython/default.nix
+++ b/pkgs/development/python-modules/gremlinpython/default.nix
@@ -1,21 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, aenum
-, aiohttp
-, importlib-metadata
-, isodate
-, nest-asyncio
-, pytestCheckHook
-, pythonOlder
-, mock
-, pyhamcrest
-, radish-bdd
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  aenum,
+  aiohttp,
+  importlib-metadata,
+  isodate,
+  nest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  mock,
+  pyhamcrest,
+  pyyaml,
+  radish-bdd,
 }:
 
 buildPythonPackage rec {
   pname = "gremlinpython";
-  version = "3.6.4";
+  version = "3.7.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -24,7 +26,7 @@ buildPythonPackage rec {
     owner = "apache";
     repo = "tinkerpop";
     rev = "refs/tags/${version}";
-    hash = "sha256-SQ+LcHeHDB1Hd5wXGDJBZmBG4KEZ3NsV4+4X9WgPb9E=";
+    hash = "sha256-2viZXksHNFynOm6+1Vo2a8xrXl4pQcAxAVgehp5y6us=";
   };
 
   sourceRoot = "${src.name}/gremlin-python/src/main/python";
@@ -38,9 +40,7 @@ buildPythonPackage rec {
   '';
 
   # setup-requires requirements
-  nativeBuildInputs = [
-    importlib-metadata
-  ];
+  nativeBuildInputs = [ importlib-metadata ];
 
   propagatedBuildInputs = [
     aenum
@@ -53,6 +53,7 @@ buildPythonPackage rec {
     pytestCheckHook
     mock
     pyhamcrest
+    pyyaml
     radish-bdd
   ];
 
@@ -66,14 +67,29 @@ buildPythonPackage rec {
   disabledTestPaths = [
     "tests/driver/test_client.py"
     "tests/driver/test_driver_remote_connection.py"
+    "tests/driver/test_driver_remote_connection_http.py"
     "tests/driver/test_driver_remote_connection_threaded.py"
+    "tests/driver/test_web_socket_client_behavior.py"
     "tests/process/test_dsl.py"
     "tests/structure/io/test_functionalityio.py"
   ];
-  pytestFlagsArray = [
-    # disabledTests doesn't quite allow us to be precise enough for this
-    "-k 'not (TestFunctionalGraphSONIO and (test_timestamp or test_datetime or test_uuid))'"
-  ];
+  pytestFlagsArray =
+    let
+      fullDisabled = builtins.concatStringsSep " or " [
+        "test_transaction_commit"
+        "test_transaction_rollback"
+        "test_transaction_no_begin"
+        "test_multi_commit_transaction"
+        "test_multi_rollback_transaction"
+        "test_multi_commit_and_rollback"
+        "test_transaction_close_tx"
+        "test_transaction_close_tx_from_parent"
+      ];
+    in
+    [
+      # disabledTests doesn't quite allow us to be precise enough for this
+      "-k 'not ((TestFunctionalGraphSONIO and (test_timestamp or test_datetime or test_uuid)) or ${fullDisabled})'"
+    ];
 
   meta = with lib; {
     description = "Gremlin-Python implements Gremlin, the graph traversal language of Apache TinkerPop, within the Python language";
diff --git a/pkgs/development/python-modules/grequests/default.nix b/pkgs/development/python-modules/grequests/default.nix
index 40ff7ab61d413..41632258f64f2 100644
--- a/pkgs/development/python-modules/grequests/default.nix
+++ b/pkgs/development/python-modules/grequests/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
-, gevent
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  gevent,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,10 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
-  propagatedBuildInputs = [ requests gevent ];
+  propagatedBuildInputs = [
+    requests
+    gevent
+  ];
 
   meta = with lib; {
     description = "Asynchronous HTTP requests";
@@ -26,5 +30,4 @@ buildPythonPackage rec {
     license = with licenses; [ bsd2 ];
     maintainers = with maintainers; [ matejc ];
   };
-
 }
diff --git a/pkgs/development/python-modules/greynoise/default.nix b/pkgs/development/python-modules/greynoise/default.nix
index 0e127c6ce8252..44eadbdb6d3ca 100644
--- a/pkgs/development/python-modules/greynoise/default.nix
+++ b/pkgs/development/python-modules/greynoise/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, click
-, ansimarkup
-, cachetools
-, colorama
-, click-default-group
-, click-repl
-, dict2xml
-, jinja2
-, more-itertools
-, requests
-, six
-, pytestCheckHook
-, mock
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  click,
+  ansimarkup,
+  cachetools,
+  colorama,
+  click-default-group,
+  click-repl,
+  dict2xml,
+  jinja2,
+  more-itertools,
+  requests,
+  six,
+  pytestCheckHook,
+  mock,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "greynoise";
-  version = "2.1.0";
+  version = "2.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -28,7 +29,7 @@ buildPythonPackage rec {
     owner = "GreyNoise-Intelligence";
     repo = "pygreynoise";
     rev = "refs/tags/v${version}";
-    hash = "sha256-bMQfGkCjMBimNaYzSi78GaLiDiLdmxMB8RfFCVTxD5U=";
+    hash = "sha256-jsLvq0GndprdYL5mxHDRtZmNkeKT/rIV+dAnRPEmsV8=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/gridnet/default.nix b/pkgs/development/python-modules/gridnet/default.nix
index 46a3f3f1b839e..75ad2c3351493 100644
--- a/pkgs/development/python-modules/gridnet/default.nix
+++ b/pkgs/development/python-modules/gridnet/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
       --replace "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "gridnet"
-  ];
+  pythonImportsCheck = [ "gridnet" ];
 
   meta = with lib; {
     description = "Asynchronous Python client for NET2GRID devices";
diff --git a/pkgs/development/python-modules/griffe/default.nix b/pkgs/development/python-modules/griffe/default.nix
index 6f385ff9fb7c9..64694b89471cb 100644
--- a/pkgs/development/python-modules/griffe/default.nix
+++ b/pkgs/development/python-modules/griffe/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "griffe";
-  version = "0.44.0";
+  version = "0.47.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "mkdocstrings";
     repo = "griffe";
     rev = "refs/tags/${version}";
-    hash = "sha256-jZ5QK6HiQ0C5miFYGavIlScJHmocy6frzC2c8xTvYOw=";
+    hash = "sha256-NkS8cD0G/nbquQfMVcdbTLnJx26PQnqWB8UnBTNIBdE=";
   };
 
   build-system = [ pdm-backend ];
diff --git a/pkgs/development/python-modules/grip/default.nix b/pkgs/development/python-modules/grip/default.nix
index f76fd2548b037..f29e44d2f440d 100644
--- a/pkgs/development/python-modules/grip/default.nix
+++ b/pkgs/development/python-modules/grip/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, fetchFromGitHub
-, fetchpatch
-# Python bits:
-, buildPythonPackage
-, pytest
-, responses
-, docopt
-, flask
-, markdown
-, path-and-address
-, pygments
-, requests
-, tabulate
+{
+  lib,
+  fetchFromGitHub,
+  fetchpatch,
+  # Python bits:
+  buildPythonPackage,
+  pytest,
+  responses,
+  docopt,
+  flask,
+  markdown,
+  path-and-address,
+  pygments,
+  requests,
+  tabulate,
 }:
 
 buildPythonPackage rec {
@@ -35,13 +36,24 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeCheckInputs = [ pytest responses ];
+  nativeCheckInputs = [
+    pytest
+    responses
+  ];
 
-  propagatedBuildInputs = [ docopt flask markdown path-and-address pygments requests tabulate ];
+  propagatedBuildInputs = [
+    docopt
+    flask
+    markdown
+    path-and-address
+    pygments
+    requests
+    tabulate
+  ];
 
   checkPhase = ''
-      export PATH="$PATH:$out/bin"
-      py.test -xm "not assumption"
+    export PATH="$PATH:$out/bin"
+    py.test -xm "not assumption"
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/groestlcoin-hash/default.nix b/pkgs/development/python-modules/groestlcoin-hash/default.nix
index e5dc1f045eaab..369b7a93b148d 100644
--- a/pkgs/development/python-modules/groestlcoin-hash/default.nix
+++ b/pkgs/development/python-modules/groestlcoin-hash/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     sha256 = "31a8f6fa4c19db5258c3c73c071b71702102c815ba862b6015d9e4b75ece231e";
   };
 
-  pythonImportsCheck = [
-    "groestlcoin_hash"
-  ];
+  pythonImportsCheck = [ "groestlcoin_hash" ];
 
   meta = with lib; {
     description = "Bindings for groestl key derivation function library used in Groestlcoin";
diff --git a/pkgs/development/python-modules/growattserver/default.nix b/pkgs/development/python-modules/growattserver/default.nix
index 1cd8d8e735d4b..ba873ae059da8 100644
--- a/pkgs/development/python-modules/growattserver/default.nix
+++ b/pkgs/development/python-modules/growattserver/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-ATxXjIF5QRsdLuXZCOWMwvbBzawrhlYZ+wodITz36sE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "growattServer"
-  ];
+  pythonImportsCheck = [ "growattServer" ];
 
   meta = with lib; {
     description = "Python package to retrieve information from Growatt units";
diff --git a/pkgs/development/python-modules/grpc-google-iam-v1/default.nix b/pkgs/development/python-modules/grpc-google-iam-v1/default.nix
index 98f550a047f68..111678f0b98f2 100644
--- a/pkgs/development/python-modules/grpc-google-iam-v1/default.nix
+++ b/pkgs/development/python-modules/grpc-google-iam-v1/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, googleapis-common-protos
-, grpcio
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  googleapis-common-protos,
+  grpcio,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -19,18 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-pmwHDzOaXrgqXZiaxIn01CtiAG+XRBGr8BgzbG/F1uw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     grpcio
     googleapis-common-protos
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [
     "google.iam"
diff --git a/pkgs/development/python-modules/grpc-interceptor/default.nix b/pkgs/development/python-modules/grpc-interceptor/default.nix
index 0cac6c05106fb..8c54fd33fdb61 100644
--- a/pkgs/development/python-modules/grpc-interceptor/default.nix
+++ b/pkgs/development/python-modules/grpc-interceptor/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, poetry-core
-, grpcio
-, protobuf
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  poetry-core,
+  grpcio,
+  protobuf,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-GJkVCslPXShJNDrqhFtCsAK5+VaG8qFJo0RQTsiMIFY=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     grpcio
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "grpc_interceptor"
-  ];
+  pythonImportsCheck = [ "grpc_interceptor" ];
 
   meta = with lib; {
     description = "Simplified gRPC interceptors";
diff --git a/pkgs/development/python-modules/grpcio-channelz/default.nix b/pkgs/development/python-modules/grpcio-channelz/default.nix
index d4af468320185..aa06cb44f0caa 100644
--- a/pkgs/development/python-modules/grpcio-channelz/default.nix
+++ b/pkgs/development/python-modules/grpcio-channelz/default.nix
@@ -1,29 +1,31 @@
-{ lib
-, buildPythonPackage
-, pythonRelaxDepsHook
-, fetchPypi
-, grpcio
-, protobuf
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  grpcio,
+  protobuf,
 }:
 
 buildPythonPackage rec {
   pname = "grpcio-channelz";
-  version = "1.62.2";
-  format = "setuptools";
+  version = "1.64.1";
+  pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-bkrCxD12skXF9m2Y9SPbCHhrGGEoplXubyCjCn5o5Pk=";
+    pname = "grpcio_channelz";
+    inherit version;
+    hash = "sha256-FUNKohIyERNoZe1y5JzmaP6IausTewNgpv6765Efd1U=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
+  build-system = [ setuptools ];
+
   pythonRelaxDeps = [
     "grpcio"
+    "protobuf"
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     grpcio
     protobuf
   ];
diff --git a/pkgs/development/python-modules/grpcio-gcp/default.nix b/pkgs/development/python-modules/grpcio-gcp/default.nix
index 60706fba8ee68..74c2d76f6c4ae 100644
--- a/pkgs/development/python-modules/grpcio-gcp/default.nix
+++ b/pkgs/development/python-modules/grpcio-gcp/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, grpcio
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  grpcio,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/grpcio-health-checking/default.nix b/pkgs/development/python-modules/grpcio-health-checking/default.nix
index d14710b17b96e..4822365f1b6a3 100644
--- a/pkgs/development/python-modules/grpcio-health-checking/default.nix
+++ b/pkgs/development/python-modules/grpcio-health-checking/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, pythonRelaxDepsHook
-, fetchPypi
-, grpcio
-, protobuf
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  grpcio,
+  protobuf,
 }:
 
 buildPythonPackage rec {
   pname = "grpcio-health-checking";
-  version = "1.62.2";
+  version = "1.64.1";
   format = "setuptools";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-pE0eoeFRC1xiJl2toE2GYhuxSR113ph3E8nA6gBcEKg=";
+    pname = "grpcio_health_checking";
+    inherit version;
+    hash = "sha256-VSOJ8/Jj32p/U8sk8opjGlhKMHIfn0Mp0nFZU+GX49s=";
   };
 
   propagatedBuildInputs = [
@@ -21,12 +22,7 @@ buildPythonPackage rec {
     protobuf
   ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
-  pythonRelaxDeps = [
-    "grpcio"
-  ];
+  pythonRelaxDeps = [ "grpcio" ];
 
   pythonImportsCheck = [ "grpc_health" ];
 
diff --git a/pkgs/development/python-modules/grpcio-reflection/default.nix b/pkgs/development/python-modules/grpcio-reflection/default.nix
index 4001d3663fbdb..982711830d463 100644
--- a/pkgs/development/python-modules/grpcio-reflection/default.nix
+++ b/pkgs/development/python-modules/grpcio-reflection/default.nix
@@ -1,29 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonRelaxDepsHook
-, grpcio
-, protobuf
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  grpcio,
+  protobuf,
 }:
 
 buildPythonPackage rec {
   pname = "grpcio-reflection";
-  version = "1.62.2";
-  format = "setuptools";
+  version = "1.64.1";
+  pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-LdRIBtaNAAZjZSm9pXMBKxmkIoFHjC0FHNquu5HiUWw=";
+    pname = "grpcio_reflection";
+    inherit version;
+    hash = "sha256-43511hl02iKjtcJgSZKqLyFjlx6jeK2Fa047YyEJ88c=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
+  build-system = [ setuptools ];
+
   pythonRelaxDeps = [
     "grpcio"
+    "protobuf"
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     grpcio
     protobuf
   ];
diff --git a/pkgs/development/python-modules/grpcio-status/default.nix b/pkgs/development/python-modules/grpcio-status/default.nix
index 033e8ae58ae4d..2486ba8aa7cda 100644
--- a/pkgs/development/python-modules/grpcio-status/default.nix
+++ b/pkgs/development/python-modules/grpcio-status/default.nix
@@ -1,22 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, googleapis-common-protos
-, grpcio
-, protobuf
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  googleapis-common-protos,
+  grpcio,
+  protobuf,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "grpcio-status";
-  version = "1.62.2";
+  version = "1.64.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-YuG/ywICWhzXNzKi0zZy0+nQ300hwSxR4LvK8JurdCo=";
+    pname = "grpcio_status";
+    inherit version;
+    hash = "sha256-xQvRTrZQbYWApsVTvqRj18CEmbLA6T9tGGTF6Oq7EGY=";
   };
 
   postPatch = ''
@@ -33,9 +35,7 @@ buildPythonPackage rec {
   # Projec thas no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "grpc_status"
-  ];
+  pythonImportsCheck = [ "grpc_status" ];
 
   meta = with lib; {
     description = "GRPC Python status proto mapping";
diff --git a/pkgs/development/python-modules/grpcio-testing/default.nix b/pkgs/development/python-modules/grpcio-testing/default.nix
index 54022a0433cec..33ec8143c2657 100644
--- a/pkgs/development/python-modules/grpcio-testing/default.nix
+++ b/pkgs/development/python-modules/grpcio-testing/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, grpcio
-, protobuf
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  grpcio,
+  protobuf,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "grpcio-testing";
-  version = "1.62.2";
+  version = "1.64.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-dNGeGQnpQbGmvvf71fnvMwWZ9nb7BrsGB8hFDtVVnfI=";
+    pname = "grpcio_testing";
+    inherit version;
+    hash = "sha256-Nta9aurAzEg/iUlYE35Jz7uQ+syH4NMnHNuMGq7XEBw=";
   };
 
   postPatch = ''
@@ -25,18 +26,18 @@ buildPythonPackage rec {
       --replace-fail '"grpcio>={version}".format(version=grpc_version.VERSION)' '"grpcio"'
   '';
 
-  nativeBuildInputs = [
-    setuptools
+  build-system = [ setuptools ];
+
+  pythonRelaxDeps = [
+    "protobuf"
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     grpcio
     protobuf
   ];
 
-  pythonImportsCheck = [
-    "grpc_testing"
-  ];
+  pythonImportsCheck = [ "grpc_testing" ];
 
   # Module has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/grpcio-tools/default.nix b/pkgs/development/python-modules/grpcio-tools/default.nix
index 6b5c5cdda99fe..fa204c048982c 100644
--- a/pkgs/development/python-modules/grpcio-tools/default.nix
+++ b/pkgs/development/python-modules/grpcio-tools/default.nix
@@ -1,13 +1,21 @@
-{ lib, buildPythonPackage, fetchPypi, protobuf, grpcio, setuptools }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  protobuf,
+  grpcio,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "grpcio-tools";
-  version = "1.62.2";
+  version = "1.64.1";
   format = "setuptools";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-X9XhWCtnjmuUHuX1gJNAvl4HJGkd9SmaroImZA+U4Y8=";
+    pname = "grpcio_tools";
+    inherit version;
+    hash = "sha256-crNVC5GtuDVGVuzw9tHUYRKZBEuuEfsefMHRu2a4wes=";
   };
 
   postPatch = ''
@@ -15,11 +23,18 @@ buildPythonPackage rec {
       --replace 'protobuf>=4.21.6,<5.0dev' 'protobuf'
   '';
 
-  outputs = [ "out" "dev" ];
+  outputs = [
+    "out"
+    "dev"
+  ];
 
   enableParallelBuilding = true;
 
-  propagatedBuildInputs = [ protobuf grpcio setuptools ];
+  propagatedBuildInputs = [
+    protobuf
+    grpcio
+    setuptools
+  ];
 
   # no tests in the package
   doCheck = false;
diff --git a/pkgs/development/python-modules/grpcio/default.nix b/pkgs/development/python-modules/grpcio/default.nix
index 582314bf10736..dca383e92a6bd 100644
--- a/pkgs/development/python-modules/grpcio/default.nix
+++ b/pkgs/development/python-modules/grpcio/default.nix
@@ -1,46 +1,66 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, grpc
-, six
-, protobuf
-, enum34 ? null
-, futures ? null
-, isPy27
-, pkg-config
-, cython
-, c-ares
-, openssl
-, zlib
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  grpc,
+  six,
+  protobuf,
+  enum34 ? null,
+  futures ? null,
+  isPy27,
+  pkg-config,
+  cython,
+  c-ares,
+  openssl,
+  zlib,
 }:
 
 buildPythonPackage rec {
   pname = "grpcio";
   format = "setuptools";
-  version = "1.62.2";
+  version = "1.64.1";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-x3YYBx2Wt6i+LBBwGphTeCO5xluiVsC5Bn4FlM29lU0=";
+    hash = "sha256-jVHdHFnV+g80JmuAo4BewpofJkJcKlRzYTP22H/Eloo=";
   };
 
-  outputs = [ "out" "dev" ];
+  outputs = [
+    "out"
+    "dev"
+  ];
 
-  nativeBuildInputs = [ cython pkg-config ];
+  nativeBuildInputs = [
+    cython
+    pkg-config
+  ];
 
-  buildInputs = [ c-ares openssl zlib ];
-  propagatedBuildInputs = [ six protobuf ]
-    ++ lib.optionals (isPy27) [ enum34 futures ];
+  buildInputs = [
+    c-ares
+    openssl
+    zlib
+  ];
+  propagatedBuildInputs =
+    [
+      six
+      protobuf
+    ]
+    ++ lib.optionals (isPy27) [
+      enum34
+      futures
+    ];
 
-  preBuild = ''
-    export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS="$NIX_BUILD_CORES"
-    if [ -z "$enableParallelBuilding" ]; then
-      GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS=1
-    fi
-  '' + lib.optionalString stdenv.isDarwin ''
-    unset AR
-  '';
+  preBuild =
+    ''
+      export GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS="$NIX_BUILD_CORES"
+      if [ -z "$enableParallelBuilding" ]; then
+        GRPC_PYTHON_BUILD_EXT_COMPILER_JOBS=1
+      fi
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      unset AR
+    '';
 
   GRPC_BUILD_WITH_BORING_SSL_ASM = "";
   GRPC_PYTHON_BUILD_SYSTEM_OPENSSL = 1;
diff --git a/pkgs/development/python-modules/gruut-ipa/default.nix b/pkgs/development/python-modules/gruut-ipa/default.nix
index 717a439393e12..5ebc3f1f33612 100644
--- a/pkgs/development/python-modules/gruut-ipa/default.nix
+++ b/pkgs/development/python-modules/gruut-ipa/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, espeak
-, numpy
-, python
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  espeak,
+  numpy,
+  python,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,15 +27,11 @@ buildPythonPackage rec {
       --replace "do espeak" "do ${espeak}/bin/espeak"
   '';
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   nativeCheckInputs = [ unittestCheckHook ];
 
-  pythonImportsCheck = [
-    "gruut_ipa"
-  ];
+  pythonImportsCheck = [ "gruut_ipa" ];
 
   meta = with lib; {
     description = "Library for manipulating pronunciations using the International Phonetic Alphabet (IPA)";
diff --git a/pkgs/development/python-modules/gruut/default.nix b/pkgs/development/python-modules/gruut/default.nix
index 8d18dee9cd8e6..c597b82ee57fc 100644
--- a/pkgs/development/python-modules/gruut/default.nix
+++ b/pkgs/development/python-modules/gruut/default.nix
@@ -1,17 +1,24 @@
-{ lib
-, buildPythonPackage
-, callPackage
-, fetchFromGitHub
-, babel
-, gruut-ipa
-, dateparser
-, jsonlines
-, num2words
-, python-crfsuite
-, python
-, networkx
-, glibcLocales
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  callPackage,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  babel,
+  gruut-ipa,
+  dateparser,
+  jsonlines,
+  num2words,
+  python-crfsuite,
+  networkx,
+
+  # checks
+  glibcLocales,
+  pytestCheckHook,
 }:
 
 let
@@ -35,35 +42,45 @@ in
 buildPythonPackage rec {
   pname = "gruut";
   version = "2.3.4";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "rhasspy";
-    repo = pname;
+    repo = "gruut";
     rev = "refs/tags/v${version}";
     hash = "sha256-DD7gnvH9T2R6E19+exWE7Si+XEpfh0Iy5FYbycjgzgM=";
   };
 
-  postPatch = ''
-    substituteInPlace requirements.txt \
-      --replace "gruut_lang_en~=2.0.0" "gruut_lang_en" \
-      --replace "jsonlines~=1.2.0" "jsonlines" \
-      --replace "networkx>=2.5.0,<3.0.0" "networkx"
-  '';
+  pythonRelaxDeps = true;
 
-  propagatedBuildInputs = [
-    babel
-    gruut-ipa
-    jsonlines
-    num2words
-    python-crfsuite
-    dateparser
-    networkx
-  ] ++ (map (lang: callPackage ./language-pack.nix {
-    inherit lang version format src;
-  }) langPkgs);
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [ glibcLocales pytestCheckHook ];
+  dependencies =
+    [
+      babel
+      gruut-ipa
+      jsonlines
+      num2words
+      python-crfsuite
+      dateparser
+      networkx
+    ]
+    ++ (map (
+      lang:
+      callPackage ./language-pack.nix {
+        inherit
+          lang
+          version
+          src
+          build-system
+          ;
+      }
+    ) langPkgs);
+
+  nativeCheckInputs = [
+    glibcLocales
+    pytestCheckHook
+  ];
 
   disabledTests = [
     # https://github.com/rhasspy/gruut/issues/25
@@ -79,12 +96,10 @@ buildPythonPackage rec {
     export LC_ALL=en_US.utf-8
   '';
 
-  pythonImportsCheck = [
-    "gruut"
-  ];
+  pythonImportsCheck = [ "gruut" ];
 
   meta = with lib; {
-    description = "A tokenizer, text cleaner, and phonemizer for many human languages";
+    description = "Tokenizer, text cleaner, and phonemizer for many human languages";
     mainProgram = "gruut";
     homepage = "https://github.com/rhasspy/gruut";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/gruut/language-pack.nix b/pkgs/development/python-modules/gruut/language-pack.nix
index 2d3cfa9cc5185..b3a9e58287786 100644
--- a/pkgs/development/python-modules/gruut/language-pack.nix
+++ b/pkgs/development/python-modules/gruut/language-pack.nix
@@ -1,23 +1,23 @@
-{ lib
-, buildPythonPackage
+{
+  lib,
+  buildPythonPackage,
 
-, lang
-, version
-, format
-, src
+  lang,
+  version,
+  src,
+  build-system,
 }:
 
 buildPythonPackage rec {
   pname = "gruut-lang-${lang}";
-  inherit version format src;
+  pyproject = true;
+  inherit version src build-system;
 
   prePatch = ''
     cd "${pname}"
   '';
 
-  pythonImportsCheck = [
-    "gruut_lang_${lang}"
-  ];
+  pythonImportsCheck = [ "gruut_lang_${lang}" ];
 
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/gsd/default.nix b/pkgs/development/python-modules/gsd/default.nix
index 3148c3f2e70c3..48b8694650b4d 100644
--- a/pkgs/development/python-modules/gsd/default.nix
+++ b/pkgs/development/python-modules/gsd/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, numpy
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "gsd";
-  version = "3.2.1";
+  version = "3.3.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,25 +19,16 @@ buildPythonPackage rec {
     owner = "glotzerlab";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-huMM98An/DG8PIVblS3b6AxF6vJ5IoKOs1f9kBnR3ik=";
+    hash = "sha256-sDb6TJvN7yFiRabc66zIjk6w9CEUYMhpe+fWv+apvkI=";
   };
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
-
-  pythonImportsCheck = [
-    "gsd"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
+  pythonImportsCheck = [ "gsd" ];
 
   preCheck = ''
     pushd gsd/test
diff --git a/pkgs/development/python-modules/gsm0338/default.nix b/pkgs/development/python-modules/gsm0338/default.nix
index 029204c987305..4f6326ec9ca56 100644
--- a/pkgs/development/python-modules/gsm0338/default.nix
+++ b/pkgs/development/python-modules/gsm0338/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage {
@@ -17,13 +18,9 @@ buildPythonPackage {
     hash = "sha256-EkUVd4d4Te8brHerygDc6KQSpiX11NrHYkcZSDRi05w=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "gsm0338" ];
 
@@ -31,6 +28,9 @@ buildPythonPackage {
     description = "Python codec for GSM 03.38";
     homepage = "https://github.com/dsch/gsm0338";
     license = licenses.mit;
-    maintainers = with maintainers; [ flokli janik ];
+    maintainers = with maintainers; [
+      flokli
+      janik
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/gspread/default.nix b/pkgs/development/python-modules/gspread/default.nix
index e8c54b19788ec..d07e08d3eba96 100644
--- a/pkgs/development/python-modules/gspread/default.nix
+++ b/pkgs/development/python-modules/gspread/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, google-auth
-, google-auth-oauthlib
-, pytest-vcr
-, pytestCheckHook
-, pythonOlder
-, strenum
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  google-auth,
+  google-auth-oauthlib,
+  pytest-vcr,
+  pytestCheckHook,
+  pythonOlder,
+  strenum,
 }:
 
 buildPythonPackage rec {
   pname = "gspread";
-  version = "6.1.0";
+  version = "6.1.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -21,12 +22,10 @@ buildPythonPackage rec {
     owner = "burnash";
     repo = "gspread";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kuXPX+VY0qz4fldGYPbzZMFx+blzsmueews1W+AjQb0=";
+    hash = "sha256-hvT4e1l3MTT3WMDSfKvZ7BU8dzkzgPROHrnx5mKyCR4=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     google-auth
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "gspread"
-  ];
+  pythonImportsCheck = [ "gspread" ];
 
   meta = with lib; {
     description = "Google Spreadsheets client library";
diff --git a/pkgs/development/python-modules/gssapi/default.nix b/pkgs/development/python-modules/gssapi/default.nix
index 8ca5f8ebc6f7c..44a7b87ec7c3b 100644
--- a/pkgs/development/python-modules/gssapi/default.nix
+++ b/pkgs/development/python-modules/gssapi/default.nix
@@ -1,24 +1,32 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, six
-, decorator
-, nose
-, krb5
-, GSS
-, parameterized
-, shouldbe
-, cython
-, python
-, k5test
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+
+  # build-system
+  cython,
+  krb5,
+  setuptools,
+
+  # dependencies
+  decorator,
+
+  # native dependencies
+  GSS,
+
+  # tests
+  parameterized,
+  k5test,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "gssapi";
   version = "1.8.3";
-  format = "setuptools";
+  pyproject = true;
+
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
@@ -28,7 +36,6 @@ buildPythonPackage rec {
     hash = "sha256-H1JfdvxJvX5dmC9aTqIOkjAqFEL44KoUXEhoYj2uRY8=";
   };
 
-  # It's used to locate headers
   postPatch = ''
     substituteInPlace setup.py \
       --replace 'get_output(f"{kc} gssapi --prefix")' '"${lib.getDev krb5}"'
@@ -38,42 +45,34 @@ buildPythonPackage rec {
     GSSAPI_SUPPORT_DETECT = "false";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     cython
     krb5
+    setuptools
   ];
 
-  propagatedBuildInputs =  [
-    decorator
-    six
-  ];
+  dependencies = [ decorator ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
-    GSS
-  ];
+  buildInputs = lib.optionals stdenv.isDarwin [ GSS ];
+
+  # k5test is marked as broken on darwin
+  doCheck = !stdenv.isDarwin;
 
   nativeCheckInputs = [
     k5test
-    nose
     parameterized
-    shouldbe
-    six
+    pytestCheckHook
   ];
 
-  doCheck = pythonOlder "3.8"  # `shouldbe` not available
-    && !stdenv.isDarwin;  # many failures on darwin
-
-  # skip tests which fail possibly due to be an upstream issue (see
-  # https://github.com/pythongssapi/python-gssapi/issues/220)
-  checkPhase = ''
-    # some tests don't respond to being disabled through nosetests -x
-    echo $'\ndel CredsTestCase.test_add_with_impersonate' >> gssapi/tests/test_high_level.py
-    echo $'\ndel TestBaseUtilities.test_acquire_creds_impersonate_name' >> gssapi/tests/test_raw.py
-    echo $'\ndel TestBaseUtilities.test_add_cred_impersonate_name' >> gssapi/tests/test_raw.py
+  preCheck = ''
+    mv gssapi/tests $TMPDIR/
+    pushd $TMPDIR
+  '';
 
-    export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
-    nosetests -e 'ext_test_\d.*'
+  postCheck = ''
+    popd
   '';
+
   pythonImportsCheck = [ "gssapi" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/gst-python/default.nix b/pkgs/development/python-modules/gst-python/default.nix
index 8a6ee21ede7df..f2cc5a2edfac1 100644
--- a/pkgs/development/python-modules/gst-python/default.nix
+++ b/pkgs/development/python-modules/gst-python/default.nix
@@ -1,36 +1,38 @@
-{ lib
-, buildPythonPackage
-, fetchurl
-, meson
-, ninja
+{
+  lib,
+  buildPythonPackage,
+  fetchurl,
+  meson,
+  ninja,
 
-, pkg-config
-, python
-, pygobject3
-, gobject-introspection
-, gst_all_1
-, isPy3k
+  pkg-config,
+  python,
+  pygobject3,
+  gobject-introspection,
+  gst_all_1,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
   pname = "gst-python";
-  version = "1.24.2";
+  version = "1.24.3";
 
   format = "other";
 
-  outputs = [ "out" "dev" ];
+  outputs = [
+    "out"
+    "dev"
+  ];
 
   src = fetchurl {
     url = "https://gstreamer.freedesktop.org/src/gst-python/${pname}-${version}.tar.xz";
-    hash = "sha256-vZDzvIrxfc478mtmU377SVGGn/zmQD9ZhGG5heKy144=";
+    hash = "sha256-7Ns+K6lOosgrk6jHFdWn4E+XJqiDjAprF2lJKP0ehZU=";
   };
 
   # Python 2.x is not supported.
   disabled = !isPy3k;
 
-  depsBuildBuild = [
-    pkg-config
-  ];
+  depsBuildBuild = [ pkg-config ];
 
   nativeBuildInputs = [
     meson
diff --git a/pkgs/development/python-modules/gtfs-realtime-bindings/default.nix b/pkgs/development/python-modules/gtfs-realtime-bindings/default.nix
index 99348cb443633..3ea28e1b8112d 100644
--- a/pkgs/development/python-modules/gtfs-realtime-bindings/default.nix
+++ b/pkgs/development/python-modules/gtfs-realtime-bindings/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, protobuf
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  protobuf,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     sha256 = "sha256-LoztiQRADMk6t+hSCttpNM+mAe2sxvWT/Cy0RIZiu0c=";
   };
 
-  propagatedBuildInputs = [
-    protobuf
-  ];
+  propagatedBuildInputs = [ protobuf ];
 
   # Tests are not shipped, only a tarball for Java is present
   doCheck = false;
 
-  pythonImportsCheck = [
-    "google.transit"
-  ];
+  pythonImportsCheck = [ "google.transit" ];
 
   meta = with lib; {
     description = "Python bindings generated from the GTFS Realtime protocol buffer spec";
diff --git a/pkgs/development/python-modules/gto/default.nix b/pkgs/development/python-modules/gto/default.nix
index 79347e1ce3d80..a41a7262dcdd4 100644
--- a/pkgs/development/python-modules/gto/default.nix
+++ b/pkgs/development/python-modules/gto/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, buildPythonPackage
-, entrypoints
-, fastentrypoints
-, fetchFromGitHub
-, freezegun
-, funcy
-, git
-, pydantic
-, pytest-mock
-, pytest-test-utils
-, pytestCheckHook
-, pythonOlder
-, rich
-, ruamel-yaml
-, scmrepo
-, semver
-, setuptools
-, setuptools-scm
-, tabulate
-, typer
+{
+  lib,
+  buildPythonPackage,
+  entrypoints,
+  fastentrypoints,
+  fetchFromGitHub,
+  freezegun,
+  funcy,
+  git,
+  pydantic,
+  pytest-mock,
+  pytest-test-utils,
+  pytestCheckHook,
+  pythonOlder,
+  rich,
+  ruamel-yaml,
+  scmrepo,
+  semver,
+  setuptools,
+  setuptools-scm,
+  tabulate,
+  typer,
 }:
 
 buildPythonPackage rec {
@@ -82,9 +83,7 @@ buildPythonPackage rec {
     "test_action_doesnt_push_even_if_repo_has_remotes_set"
   ];
 
-  pythonImportsCheck = [
-    "gto"
-  ];
+  pythonImportsCheck = [ "gto" ];
 
   meta = with lib; {
     description = "Module for Git Tag Operations";
diff --git a/pkgs/development/python-modules/gtts-token/default.nix b/pkgs/development/python-modules/gtts-token/default.nix
index da46799ec7809..a747522827ca8 100644
--- a/pkgs/development/python-modules/gtts-token/default.nix
+++ b/pkgs/development/python-modules/gtts-token/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     sha256 = "0vr52zc0jqyfvsccl67j1baims3cdx2is1y2lpx2kav9gadkn8hp";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
@@ -33,4 +32,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ makefu ];
   };
 }
-
diff --git a/pkgs/development/python-modules/gtts/default.nix b/pkgs/development/python-modules/gtts/default.nix
index d53fd34abd698..c4fc265a14fb8 100644
--- a/pkgs/development/python-modules/gtts/default.nix
+++ b/pkgs/development/python-modules/gtts/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, beautifulsoup4
-, click
-, gtts-token
-, mock
-, pytest
-, requests
-, six
-, testfixtures
-, twine
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  beautifulsoup4,
+  click,
+  gtts-token,
+  mock,
+  pytest,
+  requests,
+  six,
+  testfixtures,
+  twine,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-CCxD73fpHGsO4zSifWLQtgDkbPvPEnA2357umhOCNoI=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     beautifulsoup4
@@ -40,7 +39,11 @@ buildPythonPackage rec {
     twine
   ];
 
-  nativeCheckInputs = [ pytest mock testfixtures ];
+  nativeCheckInputs = [
+    pytest
+    mock
+    testfixtures
+  ];
 
   # majority of tests just try to call out to Google's Translate API endpoint
   doCheck = false;
@@ -51,7 +54,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "gtts" ];
 
   meta = with lib; {
-    description = "A Python library and CLI tool to interface with Google Translate text-to-speech API";
+    description = "Python library and CLI tool to interface with Google Translate text-to-speech API";
     mainProgram = "gtts-cli";
     homepage = "https://gtts.readthedocs.io";
     changelog = "https://gtts.readthedocs.io/en/latest/changelog.html";
diff --git a/pkgs/development/python-modules/gudhi/default.nix b/pkgs/development/python-modules/gudhi/default.nix
index 1c8810ffe427a..cc83c54b0f0c5 100644
--- a/pkgs/development/python-modules/gudhi/default.nix
+++ b/pkgs/development/python-modules/gudhi/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, cmake
-, setuptools
-, boost
-, eigen
-, gmp
-, cgal  # see https://github.com/NixOS/nixpkgs/pull/94875 about cgal
-, mpfr
-, tbb
-, numpy
-, cython
-, pybind11
-, matplotlib
-, scipy
-, pytest
-, enableTBB ? false
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  cmake,
+  setuptools,
+  boost,
+  eigen,
+  gmp,
+  cgal, # see https://github.com/NixOS/nixpkgs/pull/94875 about cgal
+  mpfr,
+  tbb,
+  numpy,
+  cython,
+  pybind11,
+  matplotlib,
+  scipy,
+  pytest,
+  enableTBB ? false,
 }:
 
 buildPythonPackage rec {
@@ -31,10 +32,25 @@ buildPythonPackage rec {
     hash = "sha256-VL6RIPe8a2/cUHnHOql9e9EUMBB9QU311kMCaMZTbGI=";
   };
 
-  nativeBuildInputs = [ cmake numpy cython pybind11 matplotlib setuptools ];
-  buildInputs = [ boost eigen gmp cgal mpfr ]
-    ++ lib.optionals enableTBB [ tbb ];
-  propagatedBuildInputs = [ numpy scipy ];
+  nativeBuildInputs = [
+    cmake
+    numpy
+    cython
+    pybind11
+    matplotlib
+    setuptools
+  ];
+  buildInputs = [
+    boost
+    eigen
+    gmp
+    cgal
+    mpfr
+  ] ++ lib.optionals enableTBB [ tbb ];
+  propagatedBuildInputs = [
+    numpy
+    scipy
+  ];
   nativeCheckInputs = [ pytest ];
 
   cmakeFlags = [
@@ -60,13 +76,21 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [ "gudhi" "gudhi.hera" "gudhi.point_cloud" "gudhi.clustering" ];
+  pythonImportsCheck = [
+    "gudhi"
+    "gudhi.hera"
+    "gudhi.point_cloud"
+    "gudhi.clustering"
+  ];
 
   meta = {
     description = "Library for Computational Topology and Topological Data Analysis (TDA)";
     homepage = "https://gudhi.inria.fr/python/latest/";
     downloadPage = "https://github.com/GUDHI/gudhi-devel";
-    license = with lib.licenses; [ mit gpl3 ];
+    license = with lib.licenses; [
+      mit
+      gpl3
+    ];
     maintainers = with lib.maintainers; [ yl3dy ];
   };
 }
diff --git a/pkgs/development/python-modules/guessit/default.nix b/pkgs/development/python-modules/guessit/default.nix
index fce9cc928b51b..ec73362550396 100644
--- a/pkgs/development/python-modules/guessit/default.nix
+++ b/pkgs/development/python-modules/guessit/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python-dateutil
-, babelfish
-, rebulk
-, pythonOlder
-, importlib-resources
-, py
-, pytestCheckHook
-, pytest-mock
-, pytest-benchmark
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python-dateutil,
+  babelfish,
+  rebulk,
+  pythonOlder,
+  importlib-resources,
+  py,
+  pytestCheckHook,
+  pytest-mock,
+  pytest-benchmark,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     rebulk
     babelfish
     python-dateutil
-  ] ++ lib.optionals (pythonOlder "3.9") [
-   importlib-resources
- ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ];
 
   nativeCheckInputs = [
     py
@@ -44,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "guessit" ];
 
   meta = with lib; {
-    description = "A Python library that extracts as much information as possible from a video filename";
+    description = "Python library that extracts as much information as possible from a video filename";
     mainProgram = "guessit";
     homepage = "https://guessit-io.github.io/guessit/";
     changelog = "https://github.com/guessit-io/guessit/raw/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/guestfs/default.nix b/pkgs/development/python-modules/guestfs/default.nix
index ddc456171eb4b..8c10cb697ef5d 100644
--- a/pkgs/development/python-modules/guestfs/default.nix
+++ b/pkgs/development/python-modules/guestfs/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchurl, libguestfs, qemu }:
+{
+  lib,
+  buildPythonPackage,
+  fetchurl,
+  libguestfs,
+  qemu,
+}:
 
 buildPythonPackage rec {
   pname = "guestfs";
@@ -10,7 +16,10 @@ buildPythonPackage rec {
     sha256 = "06a4b5xf1rkhnzfvck91n0z9mlkrgy90s9na5a8da2g4p776lhkf";
   };
 
-  propagatedBuildInputs = [ libguestfs qemu ];
+  propagatedBuildInputs = [
+    libguestfs
+    qemu
+  ];
 
   # no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/guidance/default.nix b/pkgs/development/python-modules/guidance/default.nix
index 732a107f2a399..cd0897ee20eda 100644
--- a/pkgs/development/python-modules/guidance/default.nix
+++ b/pkgs/development/python-modules/guidance/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, pybind11
-, setuptools
-, wheel
-, aiohttp
-, diskcache
-, fastapi
-, gptcache
-, msal
-, numpy
-, openai
-, ordered-set
-, platformdirs
-, protobuf
-, pyformlang
-, requests
-, tiktoken
-, torch
-, uvicorn
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  pybind11,
+  setuptools,
+  wheel,
+  aiohttp,
+  diskcache,
+  fastapi,
+  gptcache,
+  msal,
+  numpy,
+  openai,
+  ordered-set,
+  platformdirs,
+  protobuf,
+  pyformlang,
+  requests,
+  tiktoken,
+  torch,
+  uvicorn,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
     hash = "sha256-dvIJeSur3DdNBhrEPNPghxqmDEEig59Iz83LWksim6U=";
   };
 
-  nativeBuildInputs = [
-    pybind11
-  ];
+  nativeBuildInputs = [ pybind11 ];
 
   build-system = [
     setuptools
@@ -96,7 +95,7 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "A guidance language for controlling large language models";
+    description = "Guidance language for controlling large language models";
     homepage = "https://github.com/guidance-ai/guidance";
     changelog = "https://github.com/guidance-ai/guidance/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/gumath/default.nix b/pkgs/development/python-modules/gumath/default.nix
index 7b052fa429c2f..83b45412b0ffe 100644
--- a/pkgs/development/python-modules/gumath/default.nix
+++ b/pkgs/development/python-modules/gumath/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchpatch
-, python
-, numba
-, ndtypes
-, xnd
-, libndtypes
-, libxnd
-, libgumath
-, isPy27
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchpatch,
+  python,
+  numba,
+  ndtypes,
+  xnd,
+  libndtypes,
+  libxnd,
+  libgumath,
+  isPy27,
 }:
 
 buildPythonPackage {
@@ -34,7 +35,10 @@ buildPythonPackage {
 
   nativeCheckInputs = [ numba ];
 
-  propagatedBuildInputs = [ ndtypes xnd ];
+  propagatedBuildInputs = [
+    ndtypes
+    xnd
+  ];
 
   postPatch = ''
     substituteInPlace setup.py \
@@ -60,4 +64,3 @@ buildPythonPackage {
     popd
   '';
 }
-
diff --git a/pkgs/development/python-modules/gunicorn/default.nix b/pkgs/development/python-modules/gunicorn/default.nix
index ec2ed2aaf63d6..909fff5b5aaa2 100644
--- a/pkgs/development/python-modules/gunicorn/default.nix
+++ b/pkgs/development/python-modules/gunicorn/default.nix
@@ -1,80 +1,64 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, packaging
+  # dependencies
+  packaging,
 
-# optional-dependencies
-, eventlet
-, gevent
-, tornado
-, setproctitle
+  # optional-dependencies
+  eventlet,
+  gevent,
+  tornado,
+  setproctitle,
 
-, pytestCheckHook
+  pytestCheckHook,
+  pytest-cov,
 }:
 
 buildPythonPackage rec {
   pname = "gunicorn";
-  version = "21.2.0";
+  version = "22.0.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "benoitc";
     repo = "gunicorn";
-    rev = version;
-    hash = "sha256-xP7NNKtz3KNrhcAc00ovLZRx2h6ZqHbwiFOpCiuwf98=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-xIXQMAdTZEBORu6789tLpT1OpBL+aveL/MfDj4f4bes=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.cfg \
-      --replace "--cov=gunicorn --cov-report=xml" ""
-  '';
+  build-system = [ setuptools ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  dependencies = [ packaging ];
 
-  propagatedBuildInputs = [
-    packaging
-  ];
-
-  passthru.optional-dependencies = {
-    gevent = [
-      gevent
-    ];
-    eventlet = [
-      eventlet
-    ];
-    tornado = [
-      tornado
-    ];
-    gthread = [];
-    setproctitle = [
-      setproctitle
-    ];
+  optional-dependencies = {
+    gevent = [ gevent ];
+    eventlet = [ eventlet ];
+    tornado = [ tornado ];
+    gthread = [ ];
+    setproctitle = [ setproctitle ];
   };
 
-  pythonImportsCheck = [
-    "gunicorn"
-  ];
+  pythonImportsCheck = [ "gunicorn" ];
 
   nativeCheckInputs = [
     pytestCheckHook
-  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
+    pytest-cov
+  ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
-  meta = with lib; {
-    changelog = "https://github.com/benoitc/gunicorn/releases/tag/${version}";
-    homepage = "https://github.com/benoitc/gunicorn";
+  meta = {
     description = "gunicorn 'Green Unicorn' is a WSGI HTTP Server for UNIX, fast clients and sleepy applications";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    homepage = "https://github.com/benoitc/gunicorn";
+    changelog = "https://github.com/benoitc/gunicorn/releases/tag/${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ getchoo ];
     mainProgram = "gunicorn";
   };
 }
diff --git a/pkgs/development/python-modules/guppy3/default.nix b/pkgs/development/python-modules/guppy3/default.nix
index 2c4389549afff..2609a0bf8eabc 100644
--- a/pkgs/development/python-modules/guppy3/default.nix
+++ b/pkgs/development/python-modules/guppy3/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, tkinter
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  tkinter,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-HHy57P6WEHZKygAbdjEh6XAApFlQueiYGr02eSQMWfc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [ tkinter ];
 
diff --git a/pkgs/development/python-modules/gurobipy/default.nix b/pkgs/development/python-modules/gurobipy/default.nix
index 7793009abe963..9dc2cc10676d0 100644
--- a/pkgs/development/python-modules/gurobipy/default.nix
+++ b/pkgs/development/python-modules/gurobipy/default.nix
@@ -17,14 +17,14 @@ let
   };
   platform = platforms.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
   hashes = rec {
-    cp311-aarch64-darwin = "sha256-pMwq4TXvr0mrKxZppeW2MQE/KrplWWFGmjKRLKwbHCI=";
-    cp311-aarch64-linux = "sha256-fxJSQUt+nk7JBGtkDi+qTl/js0hnWGZGyht4AqD9g60=";
+    cp311-aarch64-darwin = "sha256-jODaasqXupII5JDE1QLUK+Jd07WJfAtxB3NIHCeuDa4=";
+    cp311-aarch64-linux = "sha256-hx6BgCbI8ojXRA/NS4Qr7N8QBvQ0lfxPbj7G2bi6PXo=";
     cp311-x86_64-darwin = cp311-aarch64-darwin;
-    cp311-x86_64-linux = "sha256-q1nmuWmlDPeNWWw4bX3KECOChNQkwU+6hItYqWcyY4M=";
-    cp312-aarch64-darwin = "sha256-5+1QxYOhjbs01S3gqhkQ9Bx/0/NhbXEi710BGpiC5kM=";
-    cp312-aarch64-linux = "sha256-N7cFtibenj+SrZ7ZtevZtDUdW48DnLC4p5jB9vrWlb8=";
+    cp311-x86_64-linux = "sha256-hiZbepqPPlMcG77m5hwefQtoJk6XZ5W0z3rsaLnmbrg=";
+    cp312-aarch64-darwin = "sha256-H5J44n2CUqOo8jzn2G6gZPehWsbPnZtHXi4Iygx2RRM=";
+    cp312-aarch64-linux = "sha256-xFUR7yizqSsytyfStRigKlZ7q8uY+VgRR/j29DKPWp0=";
     cp312-x86_64-darwin = cp312-aarch64-darwin;
-    cp312-x86_64-linux = "sha256-Aw5xxvCwdgfdT7HMrWT/jKWx3RDjs8IuB4in0ZGdqcw=";
+    cp312-x86_64-linux = "sha256-giNHTNfLX1hIiWOPQlLOnqjrbPWkKQrA4KXug6ujYxI=";
   };
   hash =
     hashes."${pyShortVersion}-${stdenv.system}"
@@ -32,7 +32,7 @@ let
 in
 buildPythonPackage rec {
   pname = "gurobipy";
-  version = "11.0.1";
+  version = "11.0.2";
   inherit format;
 
   src = fetchPypi {
diff --git a/pkgs/development/python-modules/guzzle-sphinx-theme/default.nix b/pkgs/development/python-modules/guzzle-sphinx-theme/default.nix
index 48d87c8dd7d8c..59fdf748e2ca3 100644
--- a/pkgs/development/python-modules/guzzle-sphinx-theme/default.nix
+++ b/pkgs/development/python-modules/guzzle-sphinx-theme/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -16,17 +17,13 @@ buildPythonPackage rec {
     hash = "sha256-m4wWOcNDwCw/PbffZg3fb1M7VFTukqX3sC7apXP+0+Y=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   doCheck = false; # no tests
 
   propagatedBuildInputs = [ sphinx ];
 
-  pythonImportsCheck = [
-    "guzzle_sphinx_theme"
-  ];
+  pythonImportsCheck = [ "guzzle_sphinx_theme" ];
 
   meta = with lib; {
     description = "Sphinx theme used by Guzzle: http://guzzlephp.org";
diff --git a/pkgs/development/python-modules/gviz-api/default.nix b/pkgs/development/python-modules/gviz-api/default.nix
index 04ba3b9520faf..72e1692aa851e 100644
--- a/pkgs/development/python-modules/gviz-api/default.nix
+++ b/pkgs/development/python-modules/gviz-api/default.nix
@@ -1,5 +1,8 @@
-{ lib, fetchPypi, buildPythonPackage
-, six
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -12,9 +15,7 @@ buildPythonPackage rec {
     sha256 = "a05055fed8c279f34f4b496eace7648c7fe9c1b06851e8a36e748541f1adbb05";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   meta = with lib; {
     description = "Python API for Google Visualization";
diff --git a/pkgs/development/python-modules/gvm-tools/default.nix b/pkgs/development/python-modules/gvm-tools/default.nix
index 59d0da14b17dc..8e1e2124c1036 100644
--- a/pkgs/development/python-modules/gvm-tools/default.nix
+++ b/pkgs/development/python-modules/gvm-tools/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, python-gvm
-, pythonAtLeast
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  python-gvm,
+  pythonAtLeast,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "gvm-tools";
-  version = "24.3.0";
+  version = "24.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -19,33 +20,23 @@ buildPythonPackage rec {
     owner = "greenbone";
     repo = "gvm-tools";
     rev = "refs/tags/v${version}";
-    hash = "sha256-LLXMdT1q6IWsbsRjflpGN5pcjUCXWzdFK3gMw4mBm0U=";
+    hash = "sha256-R8wpkzL2QxGdvc6vWtrbIGEiryc+QQ3OitdxMcpH+F4=";
   };
 
   __darwinAllowLocalNetworking = true;
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    python-gvm
-  ];
+  propagatedBuildInputs = [ python-gvm ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Don't test sending
     "SendTargetTestCase"
-  ] ++ lib.optionals (pythonAtLeast "3.10") [
-    "HelpFormattingParserTestCase"
-  ];
+  ] ++ lib.optionals (pythonAtLeast "3.10") [ "HelpFormattingParserTestCase" ];
 
-  pythonImportsCheck = [
-    "gvmtools"
-  ];
+  pythonImportsCheck = [ "gvmtools" ];
 
   meta = with lib; {
     description = "Collection of APIs that help with remote controlling a Greenbone Security Manager";
diff --git a/pkgs/development/python-modules/gwcs/default.nix b/pkgs/development/python-modules/gwcs/default.nix
new file mode 100644
index 0000000000000..a6dd4fcae5072
--- /dev/null
+++ b/pkgs/development/python-modules/gwcs/default.nix
@@ -0,0 +1,61 @@
+{
+  lib,
+  asdf-astropy,
+  asdf-wcs-schemas,
+  asdf,
+  astropy,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  pytest-astropy,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
+  setuptools-scm,
+  setuptools,
+  tomli,
+}:
+
+buildPythonPackage rec {
+  pname = "gwcs";
+  version = "0.21.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "spacetelescope";
+    repo = "gwcs";
+    rev = "refs/tags/${version}";
+    hash = "sha256-76h2lDIaPHj7HarVcE0t5k6CA/hLCwquaz+2wMsKj+Y=";
+  };
+
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  dependencies = [
+    asdf
+    asdf-astropy
+    asdf-wcs-schemas
+    astropy
+    numpy
+    scipy
+  ];
+
+  nativeCheckInputs = [
+    pytest-astropy
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "gwcs" ];
+
+  meta = with lib; {
+    description = "Module to manage the Generalized World Coordinate System";
+    homepage = "https://github.com/spacetelescope/gwcs";
+    changelog = "https://github.com/spacetelescope/gwcs/blob/${version}/CHANGES.rst";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/gym-notices/default.nix b/pkgs/development/python-modules/gym-notices/default.nix
index 5b48ea524347d..0a4e2bd4089cc 100644
--- a/pkgs/development/python-modules/gym-notices/default.nix
+++ b/pkgs/development/python-modules/gym-notices/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -22,4 +23,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ billhuang ];
   };
 }
-
diff --git a/pkgs/development/python-modules/gym/default.nix b/pkgs/development/python-modules/gym/default.nix
index e7d4c9f4a4119..fa8394411a951 100644
--- a/pkgs/development/python-modules/gym/default.nix
+++ b/pkgs/development/python-modules/gym/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, cloudpickle
-, gym-notices
-, importlib-metadata
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  cloudpickle,
+  gym-notices,
+  importlib-metadata,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -32,7 +33,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "gym" ];
 
   meta = with lib; {
-    description = "A toolkit for developing and comparing your reinforcement learning agents";
+    description = "Toolkit for developing and comparing your reinforcement learning agents";
     homepage = "https://gym.openai.com/";
     license = licenses.mit;
     maintainers = with maintainers; [ hyphon81 ];
diff --git a/pkgs/development/python-modules/gymnasium/default.nix b/pkgs/development/python-modules/gymnasium/default.nix
index ca7ba30927ab3..5cb114c51490c 100644
--- a/pkgs/development/python-modules/gymnasium/default.nix
+++ b/pkgs/development/python-modules/gymnasium/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, numpy
-, cloudpickle
-, gym-notices
-, jax-jumpy
-, typing-extensions
-, farama-notifications
-, importlib-metadata
-, pythonOlder
-, ffmpeg
-, jax
-, jaxlib
-, matplotlib
-, moviepy
-, opencv4
-, pybox2d
-, pygame
-, pytestCheckHook
-, scipy
-, stdenv
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  numpy,
+  cloudpickle,
+  gym-notices,
+  jax-jumpy,
+  typing-extensions,
+  farama-notifications,
+  importlib-metadata,
+  pythonOlder,
+  ffmpeg,
+  jax,
+  jaxlib,
+  matplotlib,
+  moviepy,
+  opencv4,
+  pybox2d,
+  pygame,
+  pytestCheckHook,
+  scipy,
+  stdenv,
 }:
 
 buildPythonPackage rec {
@@ -79,7 +80,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A standard API for reinforcement learning and a diverse set of reference environments (formerly Gym)";
+    description = "Standard API for reinforcement learning and a diverse set of reference environments (formerly Gym)";
     homepage = "https://github.com/Farama-Foundation/Gymnasium";
     license = licenses.mit;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/gyp/default.nix b/pkgs/development/python-modules/gyp/default.nix
index 50e60cfe7bfd7..ad9fb88eb7bac 100644
--- a/pkgs/development/python-modules/gyp/default.nix
+++ b/pkgs/development/python-modules/gyp/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitiles
-, six
-, python
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitiles,
+  six,
+  python,
 }:
 
 buildPythonPackage {
@@ -22,11 +23,12 @@ buildPythonPackage {
     ./no-xcode.patch
   ];
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  pythonImportsCheck = [ "gyp" "gyp.generator" ];
+  pythonImportsCheck = [
+    "gyp"
+    "gyp.generator"
+  ];
 
   # Make mac_tool.py executable so that patchShebangs hook processes it. This
   # file is copied and run by builds using gyp on macOS
@@ -35,7 +37,7 @@ buildPythonPackage {
   '';
 
   meta = with lib; {
-    description = "A tool to generate native build files";
+    description = "Tool to generate native build files";
     mainProgram = "gyp";
     homepage = "https://gyp.gsrc.io";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/h11/default.nix b/pkgs/development/python-modules/h11/default.nix
index a03c7b0ea4778..a385f55ca8999 100644
--- a/pkgs/development/python-modules/h11/default.nix
+++ b/pkgs/development/python-modules/h11/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, httpcore
-, httpx
-, wsproto
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  httpcore,
+  httpx,
+  wsproto,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/h2/default.nix b/pkgs/development/python-modules/h2/default.nix
index bb37c4d1607b0..7e216c2c8f62b 100644
--- a/pkgs/development/python-modules/h2/default.nix
+++ b/pkgs/development/python-modules/h2/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, fetchpatch
-, hpack
-, hyperframe
-, pytestCheckHook
-, hypothesis
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  fetchpatch,
+  hpack,
+  hyperframe,
+  pytestCheckHook,
+  hypothesis,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/h3/default.nix b/pkgs/development/python-modules/h3/default.nix
index 64be91a04fd9c..828bcc1b1ea9e 100644
--- a/pkgs/development/python-modules/h3/default.nix
+++ b/pkgs/development/python-modules/h3/default.nix
@@ -1,14 +1,15 @@
-{ autoPatchelfHook
-, buildPythonPackage
-, cmake
-, cython
-, fetchFromGitHub
-, h3
-, lib
-, numpy
-, pytestCheckHook
-, scikit-build
-, stdenv
+{
+  autoPatchelfHook,
+  buildPythonPackage,
+  cmake,
+  cython,
+  fetchFromGitHub,
+  h3,
+  lib,
+  numpy,
+  pytestCheckHook,
+  scikit-build,
+  stdenv,
 }:
 
 buildPythonPackage rec {
@@ -28,14 +29,18 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ pytestCheckHook ];
 
-  nativeBuildInputs = [
-    scikit-build cmake cython
-  ] ++ lib.optionals stdenv.hostPlatform.isLinux [
-    # On Linux the .so files ends up referring to libh3.so instead of the full
-    # Nix store path. I'm not sure why this is happening! On Darwin it works
-    # fine.
-    autoPatchelfHook
-  ];
+  nativeBuildInputs =
+    [
+      scikit-build
+      cmake
+      cython
+    ]
+    ++ lib.optionals stdenv.hostPlatform.isLinux [
+      # On Linux the .so files ends up referring to libh3.so instead of the full
+      # Nix store path. I'm not sure why this is happening! On Darwin it works
+      # fine.
+      autoPatchelfHook
+    ];
 
   # This is not needed per-se, it's only added for autoPatchelfHook to work
   # correctly. See the note above ^^
@@ -53,7 +58,8 @@ buildPythonPackage rec {
         include_directories(${lib.getDev h3}/include/h3)
         link_directories(${h3}/lib)
       '';
-    in ''
+    in
+    ''
       rm -r src/h3lib
       substituteInPlace CMakeLists.txt --replace "add_subdirectory(src/h3lib)" "${cmakeCommands}"
     '';
diff --git a/pkgs/development/python-modules/h5io/default.nix b/pkgs/development/python-modules/h5io/default.nix
index e9f8af129f1c9..9e32bdefeaeb0 100644
--- a/pkgs/development/python-modules/h5io/default.nix
+++ b/pkgs/development/python-modules/h5io/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, numpy
-, h5py
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  numpy,
+  h5py,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
     h5py
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "h5io" ];
 
diff --git a/pkgs/development/python-modules/h5netcdf/default.nix b/pkgs/development/python-modules/h5netcdf/default.nix
index 334289b034e2d..f5128692ce563 100644
--- a/pkgs/development/python-modules/h5netcdf/default.nix
+++ b/pkgs/development/python-modules/h5netcdf/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, h5py
-, pytestCheckHook
-, netcdf4
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  h5py,
+  pytestCheckHook,
+  netcdf4,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    h5py
-  ];
+  propagatedBuildInputs = [ h5py ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -37,9 +36,7 @@ buildPythonPackage rec {
 
   dontUseSetuptoolsCheck = true;
 
-  pythonImportsCheck = [
-    "h5netcdf"
-  ];
+  pythonImportsCheck = [ "h5netcdf" ];
 
   meta = with lib; {
     description = "netCDF4 via h5py";
diff --git a/pkgs/development/python-modules/h5py/default.nix b/pkgs/development/python-modules/h5py/default.nix
index bc23ce61c1765..b2bd668d679bf 100644
--- a/pkgs/development/python-modules/h5py/default.nix
+++ b/pkgs/development/python-modules/h5py/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, setuptools
-, wheel
-, numpy
-, hdf5
-, cython_0
-, pkgconfig
-, mpi4py ? null
-, openssh
-, pytestCheckHook
-, cached-property
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  setuptools,
+  wheel,
+  numpy,
+  hdf5,
+  cython_0,
+  pkgconfig,
+  mpi4py ? null,
+  openssh,
+  pytestCheckHook,
+  cached-property,
 }:
 
 assert hdf5.mpiSupport -> mpi4py != null && hdf5.mpi == mpi4py.mpi;
@@ -19,7 +20,8 @@ assert hdf5.mpiSupport -> mpi4py != null && hdf5.mpi == mpi4py.mpi;
 let
   mpi = hdf5.mpi;
   mpiSupport = hdf5.mpiSupport;
-in buildPythonPackage rec {
+in
+buildPythonPackage rec {
   version = "3.11.0";
   pname = "h5py";
   pyproject = true;
@@ -31,6 +33,12 @@ in buildPythonPackage rec {
     hash = "sha256-e36PeAcqLt7IfJg28l80ID/UkqRHVwmhi0F6M8+yH6k=";
   };
 
+  patches = [
+    # Unlock an overly strict locking of mpi4py version (seems not to be necessary).
+    # See also: https://github.com/h5py/h5py/pull/2418/files#r1589372479
+    ./mpi4py-requirement.patch
+  ];
+
   # avoid strict pinning of numpy
   postPatch = ''
     substituteInPlace pyproject.toml \
@@ -56,16 +64,22 @@ in buildPythonPackage rec {
     wheel
   ];
 
-  buildInputs = [ hdf5 ]
-    ++ lib.optional mpiSupport mpi;
+  buildInputs = [ hdf5 ] ++ lib.optional mpiSupport mpi;
 
-  propagatedBuildInputs = [ numpy ]
-    ++ lib.optionals mpiSupport [ mpi4py openssh ]
+  propagatedBuildInputs =
+    [ numpy ]
+    ++ lib.optionals mpiSupport [
+      mpi4py
+      openssh
+    ]
     ++ lib.optionals (pythonOlder "3.8") [ cached-property ];
 
   # tests now require pytest-mpi, which isn't available and difficult to package
   doCheck = false;
-  nativeCheckInputs = [ pytestCheckHook openssh ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    openssh
+  ];
 
   pythonImportsCheck = [ "h5py" ];
 
diff --git a/pkgs/development/python-modules/h5py/mpi4py-requirement.patch b/pkgs/development/python-modules/h5py/mpi4py-requirement.patch
new file mode 100644
index 0000000000000..b32e804ebe5ff
--- /dev/null
+++ b/pkgs/development/python-modules/h5py/mpi4py-requirement.patch
@@ -0,0 +1,13 @@
+diff --git a/setup.py b/setup.py
+index b1463422..7f0c7b10 100755
+--- a/setup.py
++++ b/setup.py
+@@ -47,7 +47,7 @@ if setup_configure.mpi_enabled():
+     # incompatible with newer setuptools.
+     RUN_REQUIRES.append('mpi4py >=3.1.1')
+     SETUP_REQUIRES.append("mpi4py ==3.1.1; python_version<'3.11'")
+-    SETUP_REQUIRES.append("mpi4py ==3.1.4; python_version>='3.11'")
++    SETUP_REQUIRES.append("mpi4py >=3.1.4; python_version>='3.11'")
+ 
+ # Set the environment variable H5PY_SETUP_REQUIRES=0 if we need to skip
+ # setup_requires for any reason.
diff --git a/pkgs/development/python-modules/ha-ffmpeg/default.nix b/pkgs/development/python-modules/ha-ffmpeg/default.nix
index 5a11243d594ed..991eaf9f602b2 100644
--- a/pkgs/development/python-modules/ha-ffmpeg/default.nix
+++ b/pkgs/development/python-modules/ha-ffmpeg/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, async-timeout
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  async-timeout,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     hash = "sha256-FW8WlrhVL+ryupHAKii8fKBku/6uxdw1uLCKUszkP50=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    async-timeout
-  ];
+  propagatedBuildInputs = [ async-timeout ];
 
   # only manual tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/ha-mqtt-discoverable/default.nix b/pkgs/development/python-modules/ha-mqtt-discoverable/default.nix
index 1420362dc622f..32024f892556b 100644
--- a/pkgs/development/python-modules/ha-mqtt-discoverable/default.nix
+++ b/pkgs/development/python-modules/ha-mqtt-discoverable/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, gitlike-commands
-, paho-mqtt
-, poetry-core
-, pyaml
-, pydantic
-, pythonOlder
-, thelogrus
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gitlike-commands,
+  paho-mqtt,
+  poetry-core,
+  pyaml,
+  pydantic,
+  pythonOlder,
+  thelogrus,
 }:
 
 buildPythonPackage rec {
   pname = "ha-mqtt-discoverable";
-  version = "0.13.1";
+  version = "0.14.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -21,14 +22,15 @@ buildPythonPackage rec {
     owner = "unixorn";
     repo = "ha-mqtt-discoverable";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ue8az6Q7uU02IJJyyHk64Ji4J6sf/bShvTeHhN9U92Y=";
+    hash = "sha256-vL4EzeU+8nUPyLR22MJtLhknWF4DWMo49EKvkIqIWhA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  pythonRelaxDeps = [ "pyaml" ];
+
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+
+  dependencies = [
     gitlike-commands
     paho-mqtt
     pyaml
@@ -39,9 +41,7 @@ buildPythonPackage rec {
   # Test require a running Mosquitto instance
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ha_mqtt_discoverable"
-  ];
+  pythonImportsCheck = [ "ha_mqtt_discoverable" ];
 
   meta = with lib; {
     description = "Python module to create MQTT entities that are automatically discovered by Home Assistant";
@@ -49,6 +49,5 @@ buildPythonPackage rec {
     changelog = "https://github.com/unixorn/ha-mqtt-discoverable/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
-    broken = versionAtLeast pydantic.version "2";
   };
 }
diff --git a/pkgs/development/python-modules/ha-philipsjs/default.nix b/pkgs/development/python-modules/ha-philipsjs/default.nix
index 5530cfe070f1b..800c28f0651ac 100644
--- a/pkgs/development/python-modules/ha-philipsjs/default.nix
+++ b/pkgs/development/python-modules/ha-philipsjs/default.nix
@@ -1,30 +1,34 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, httpx
-, pytest-aiohttp
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, respx
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  httpx,
+  pytest-aiohttp,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  respx,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "ha-philipsjs";
-  version = "3.1.1";
-  format = "setuptools";
+  version = "3.2.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "danielperna84";
-    repo = pname;
+    repo = "ha-philipsjs";
     rev = "refs/tags/${version}";
-    hash = "sha256-r8uqToxkJg9j89UUZpxsPXutWPefAYDW95zFBKU9Al4=";
+    hash = "sha256-zP8cuXdhvCDvnbc20GbFwgickdqeJ17b0vk0zK8ze9Q=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     cryptography
     httpx
   ];
@@ -36,12 +40,10 @@ buildPythonPackage rec {
     respx
   ];
 
-  pythonImportsCheck = [
-    "haphilipsjs"
-  ];
+  pythonImportsCheck = [ "haphilipsjs" ];
 
   meta = with lib; {
-    description = "Python library to interact with Philips TVs with jointSPACE API";
+    description = "Library to interact with Philips TVs with jointSPACE API";
     homepage = "https://github.com/danielperna84/ha-philipsjs";
     changelog = "https://github.com/danielperna84/ha-philipsjs/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/habanero/default.nix b/pkgs/development/python-modules/habanero/default.nix
index 51dcfdcc91c7e..613b6a8315861 100644
--- a/pkgs/development/python-modules/habanero/default.nix
+++ b/pkgs/development/python-modules/habanero/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools-scm
-, requests
-, tqdm
-, nose
-, vcrpy
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools-scm,
+  requests,
+  tqdm,
+  nose,
+  vcrpy,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-Pw0TgXxDRmR565hdNGipfDZ7P32pxWkmPWfaYK0RaI4=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     requests
@@ -38,14 +37,10 @@ buildPythonPackage rec {
     vcrpy
   ];
 
-  pythonImportsCheck = [
-    "habanero"
-  ];
+  pythonImportsCheck = [ "habanero" ];
 
   # almost the entirety of the test suite makes network calls
-  pytestFlagsArray = [
-    "test/test-filters.py"
-  ];
+  pytestFlagsArray = [ "test/test-filters.py" ];
 
   meta = with lib; {
     description = "Python interface to Library Genesis";
diff --git a/pkgs/development/python-modules/habitipy/default.nix b/pkgs/development/python-modules/habitipy/default.nix
index 5ec42c4df5e4a..980dc0726991b 100644
--- a/pkgs/development/python-modules/habitipy/default.nix
+++ b/pkgs/development/python-modules/habitipy/default.nix
@@ -1,27 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, plumbum
-, requests
-, setuptools
-, hypothesis
-, pynose
-, responses
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  plumbum,
+  requests,
+  setuptools,
+  hypothesis,
+  pytestCheckHook,
+  responses,
 }:
 
 buildPythonPackage rec {
   pname = "habitipy";
-  version = "0.3.0";
-  format = "setuptools";
+  version = "0.3.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ASMfreaK";
     repo = "habitipy";
-    rev = "v${version}";
-    sha256 = "1vf485z5m4h61p64zr3sgkcil2s3brq7dja4n7m49d1fvzcirylv";
+    # TODO: https://github.com/ASMfreaK/habitipy/issues/27
+    rev = "faaca8840575fe8b807bf17acea6266d5ce92a99";
+    hash = "sha256-BGFUAntSNH0YYWn9nfKjIlpevF7MFs0csCPSp6IT6Ro=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     plumbum
     requests
     setuptools
@@ -29,14 +33,21 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     hypothesis
-    pynose
+    pytestCheckHook
     responses
   ];
 
-  checkPhase = ''
-    HOME=$TMPDIR nosetests
+  preCheck = ''
+    export HOME=$TMPDIR
   '';
 
+  disabledTests = [
+    # network access
+    "test_content_cache"
+    # hypothesis.errors.InvalidArgument: tests/test_cli.py::test_data is a function that returns a Hypothesis strategy, but pytest has collected it as a test function.
+    "test_data"
+  ];
+
   pythonImportsCheck = [ "habitipy" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/habluetooth/default.nix b/pkgs/development/python-modules/habluetooth/default.nix
index e84fa94ae0c12..4a1f28a60b432 100644
--- a/pkgs/development/python-modules/habluetooth/default.nix
+++ b/pkgs/development/python-modules/habluetooth/default.nix
@@ -1,46 +1,49 @@
-{ lib
-, bleak
-, bleak-retry-connector
-, bluetooth-adapters
-, bluetooth-auto-recovery
-, bluetooth-data-tools
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  async-interrupt,
+  bleak,
+  bleak-retry-connector,
+  bluetooth-adapters,
+  bluetooth-auto-recovery,
+  bluetooth-data-tools,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "habluetooth";
-  version = "2.4.2";
+  version = "3.1.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.10";
+  disabled = pythonOlder "3.11";
 
   src = fetchFromGitHub {
     owner = "Bluetooth-Devices";
     repo = "habluetooth";
     rev = "refs/tags/v${version}";
-    hash = "sha256-IoVXmq9ShwLpGtoxVOtoirSirJJ1DqBI/mP7PmK7OUs=";
+    hash = "sha256-HlQAYR+feu1awKFf11Q5Us4zSeHASu8OscJ8T8tlm5M=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace " --cov=habluetooth --cov-report=term-missing:skip-covered" ""
+      --replace-fail " --cov=habluetooth --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     cython
     poetry-core
     setuptools
     wheel
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    async-interrupt
     bleak
     bleak-retry-connector
     bluetooth-adapters
@@ -48,13 +51,9 @@ buildPythonPackage rec {
     bluetooth-data-tools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "habluetooth"
-  ];
+  pythonImportsCheck = [ "habluetooth" ];
 
   meta = with lib; {
     description = "Library for high availability Bluetooth";
diff --git a/pkgs/development/python-modules/hachoir/default.nix b/pkgs/development/python-modules/hachoir/default.nix
index 4480dd8932758..e6c3b64f8e62d 100644
--- a/pkgs/development/python-modules/hachoir/default.nix
+++ b/pkgs/development/python-modules/hachoir/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, urwid
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  urwid,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-sTUJx8Xyhw4Z6juRtREw/okuVjSTSVWpSLKeZ7T8IR8=";
   };
 
-  propagatedBuildInputs = [
-    urwid
-  ];
+  propagatedBuildInputs = [ urwid ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "hachoir"
-  ];
+  pythonImportsCheck = [ "hachoir" ];
 
   meta = with lib; {
     description = "Python library to view and edit a binary stream";
diff --git a/pkgs/development/python-modules/hacking/default.nix b/pkgs/development/python-modules/hacking/default.nix
index cd121822e651a..2e4952b80f9d2 100644
--- a/pkgs/development/python-modules/hacking/default.nix
+++ b/pkgs/development/python-modules/hacking/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pbr
-, flake8
-, stestr
-, ddt
-, testscenarios
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pbr,
+  flake8,
+  stestr,
+  ddt,
+  testscenarios,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ pbr ];
 
-  propagatedBuildInputs = [
-    flake8
-  ];
+  propagatedBuildInputs = [ flake8 ];
 
   nativeCheckInputs = [
     ddt
diff --git a/pkgs/development/python-modules/hahomematic/default.nix b/pkgs/development/python-modules/hahomematic/default.nix
index be2dcf471e7ae..9e48a5da5b9c0 100644
--- a/pkgs/development/python-modules/hahomematic/default.nix
+++ b/pkgs/development/python-modules/hahomematic/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, freezegun
-, orjson
-, pydevccu
-, pytest-aiohttp
-, pytestCheckHook
-, python-slugify
-, pythonOlder
-, setuptools
-, voluptuous
-, websocket-client
-, xmltodict
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  freezegun,
+  orjson,
+  pydevccu,
+  pytest-aiohttp,
+  pytestCheckHook,
+  python-slugify,
+  pythonOlder,
+  setuptools,
+  voluptuous,
+  websocket-client,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
   pname = "hahomematic";
-  version = "2024.4.12";
+  version = "2024.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.12";
@@ -26,7 +27,7 @@ buildPythonPackage rec {
     owner = "danielperna84";
     repo = "hahomematic";
     rev = "refs/tags/${version}";
-    hash = "sha256-iWl9kDLRh9CAk0tOibDOHcBV7lwVY/TWKYMBZW9G2k0=";
+    hash = "sha256-6WG8N4LcQ52mbrVP1aPL+xkpSQ9u3e0vV+Hf3ybh3mA=";
   };
 
   __darwinAllowLocalNetworking = true;
@@ -37,9 +38,7 @@ buildPythonPackage rec {
       --replace-fail "wheel~=0.43.0" "wheel"
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     aiohttp
@@ -55,15 +54,16 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "hahomematic"
-  ];
+  pythonImportsCheck = [ "hahomematic" ];
 
   meta = with lib; {
     description = "Python module to interact with HomeMatic devices";
     homepage = "https://github.com/danielperna84/hahomematic";
     changelog = "https://github.com/danielperna84/hahomematic/blob/${src.rev}/changelog.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ dotlambda fab ];
+    maintainers = with maintainers; [
+      dotlambda
+      fab
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/hakuin/default.nix b/pkgs/development/python-modules/hakuin/default.nix
new file mode 100644
index 0000000000000..d8b9ff2441d02
--- /dev/null
+++ b/pkgs/development/python-modules/hakuin/default.nix
@@ -0,0 +1,42 @@
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jinja2,
+  nltk,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "hakuin";
+  version = "0-unstable-2024-03-31";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "pruzko";
+    repo = "hakuin";
+    rev = "3b7b76dcbfb8ab2b98e6dee08df02158327af772";
+    hash = "sha256-tRjo9a0ZCBjKxbXTkiKFzfL4pL5awF5vXmsJlYxwoIw=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    aiohttp
+    jinja2
+    nltk
+  ];
+
+  # Module has no test
+  doCheck = false;
+
+  pythonImportsCheck = [ "hakuin" ];
+
+  meta = with lib; {
+    description = "Blind SQL Injection optimization and automation framework";
+    homepage = "https://github.com/pruzko/hakuin";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/halo/default.nix b/pkgs/development/python-modules/halo/default.nix
index cc1d3022fcb83..a2372b73eb4cc 100644
--- a/pkgs/development/python-modules/halo/default.nix
+++ b/pkgs/development/python-modules/halo/default.nix
@@ -1,12 +1,14 @@
-{ buildPythonPackage
-, colorama
-, fetchPypi
-, isPy27
-, lib
-, log-symbols
-, six
-, spinners
-, termcolor }:
+{
+  buildPythonPackage,
+  colorama,
+  fetchPypi,
+  isPy27,
+  lib,
+  log-symbols,
+  six,
+  spinners,
+  termcolor,
+}:
 
 buildPythonPackage rec {
   pname = "halo";
@@ -19,14 +21,20 @@ buildPythonPackage rec {
     sha256 = "1mn97h370ggbc9vi6x8r6akd5q8i512y6kid2nvm67g93r9a6rvv";
   };
 
-  propagatedBuildInputs = [ colorama log-symbols termcolor six spinners ];
+  propagatedBuildInputs = [
+    colorama
+    log-symbols
+    termcolor
+    six
+    spinners
+  ];
 
   # Tests are not included in the PyPI distribution and the git repo does not have tagged releases
   doCheck = false;
   pythonImportsCheck = [ "halo" ];
 
   meta = with lib; {
-    description = "Beautiful Spinners for Terminal, IPython and Jupyter.";
+    description = "Beautiful Spinners for Terminal, IPython and Jupyter";
     homepage = "https://github.com/manrajgrover/halo";
     license = licenses.mit;
     maintainers = with maintainers; [ urbas ];
diff --git a/pkgs/development/python-modules/halohome/default.nix b/pkgs/development/python-modules/halohome/default.nix
index 2ef4acd0770d8..0b5ac1bf61f00 100644
--- a/pkgs/development/python-modules/halohome/default.nix
+++ b/pkgs/development/python-modules/halohome/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, bleak
-, buildPythonPackage
-, csrmesh
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  bleak,
+  buildPythonPackage,
+  csrmesh,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "halohome"
-  ];
+  pythonImportsCheck = [ "halohome" ];
 
   meta = with lib; {
     description = "Python library to control Eaton HALO Home Smart Lights";
diff --git a/pkgs/development/python-modules/handout/default.nix b/pkgs/development/python-modules/handout/default.nix
index b42a8f018a302..975e3003ba59f 100644
--- a/pkgs/development/python-modules/handout/default.nix
+++ b/pkgs/development/python-modules/handout/default.nix
@@ -1,5 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi
-, imageio, imageio-ffmpeg }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  imageio,
+  imageio-ffmpeg,
+}:
 
 buildPythonPackage rec {
   pname = "handout";
@@ -11,7 +16,10 @@ buildPythonPackage rec {
     sha256 = "52daaf1f9a4cb2ceb88c1dedf85d22ef449b9422b424a2534d21f941e57bc915";
   };
 
-  propagatedBuildInputs = [ imageio imageio-ffmpeg ];
+  propagatedBuildInputs = [
+    imageio
+    imageio-ffmpeg
+  ];
 
   meta = with lib; {
     description = "Turn Python scripts into handouts with Markdown and figures";
diff --git a/pkgs/development/python-modules/hap-python/default.nix b/pkgs/development/python-modules/hap-python/default.nix
index 0bb7f35e288f9..97b5c1f480e30 100644
--- a/pkgs/development/python-modules/hap-python/default.nix
+++ b/pkgs/development/python-modules/hap-python/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, base36
-, chacha20poly1305-reuseable
-, cryptography
-, fetchFromGitHub
-, h11
-, orjson
-, pyqrcode
-, pytest-asyncio
-, pytest-timeout
-, pytestCheckHook
-, pythonOlder
-, zeroconf
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  base36,
+  chacha20poly1305-reuseable,
+  cryptography,
+  fetchFromGitHub,
+  h11,
+  orjson,
+  pyqrcode,
+  pytest-asyncio,
+  pytest-timeout,
+  pytestCheckHook,
+  pythonOlder,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
@@ -47,8 +48,7 @@ buildPythonPackage rec {
     pytest-asyncio
     pytest-timeout
     pytestCheckHook
-  ]
-  ++ passthru.optional-dependencies.QRCode;
+  ] ++ passthru.optional-dependencies.QRCode;
 
   disabledTestPaths = [
     # Disable tests requiring network access
@@ -67,9 +67,7 @@ buildPythonPackage rec {
     "test_migration_to_include_client_properties"
   ];
 
-  pythonImportsCheck = [
-    "pyhap"
-  ];
+  pythonImportsCheck = [ "pyhap" ];
 
   meta = with lib; {
     description = "HomeKit Accessory Protocol implementation";
diff --git a/pkgs/development/python-modules/hass-nabucasa/default.nix b/pkgs/development/python-modules/hass-nabucasa/default.nix
index ac32e43cf9322..62ccb7ef91d02 100644
--- a/pkgs/development/python-modules/hass-nabucasa/default.nix
+++ b/pkgs/development/python-modules/hass-nabucasa/default.nix
@@ -14,7 +14,6 @@
   pytest-timeout,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
   setuptools,
   snitun,
   syrupy,
@@ -23,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "hass-nabucasa";
-  version = "0.80.0";
+  version = "0.81.1";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -32,12 +31,11 @@ buildPythonPackage rec {
     owner = "nabucasa";
     repo = "hass-nabucasa";
     rev = "refs/tags/${version}";
-    hash = "sha256-8KxnS6LTK077/hr81JOiOj8GaNWBXO8XlvpYBm/sZbI=";
+    hash = "sha256-/sY/JijBCcGcbMjoX0yuhFIWvU+TFVN8sRxBx+CDVVs=";
   };
 
   pythonRelaxDeps = [ "acme" ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   build-system = [ setuptools ];
 
diff --git a/pkgs/development/python-modules/hassil/default.nix b/pkgs/development/python-modules/hassil/default.nix
index 98c4181d48c21..42c46fc3383a5 100644
--- a/pkgs/development/python-modules/hassil/default.nix
+++ b/pkgs/development/python-modules/hassil/default.nix
@@ -1,42 +1,48 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# propagates
-, pyyaml
-, unicode-rbnf
+  # build-system
+  setuptools,
 
-# tests
-, pytestCheckHook
+  # dependencies
+  pyyaml,
+  unicode-rbnf,
+
+  # tests
+  pytestCheckHook,
 }:
 
 let
   pname = "hassil";
-  version = "1.6.1";
+  version = "1.7.1";
 in
 buildPythonPackage {
   inherit pname version;
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-jkPo02Jy6UqyC5YvwMw+DDkT8rG5Xe4EiNVED/JHzKc=";
+  src = fetchFromGitHub {
+    owner = "home-assistant";
+    repo = "hassil";
+    rev = "refs/tags/${version}";
+    hash = "sha256-yrjzsJzyUFqTauEcNEOCQx2YxomkNS4J0JfQEQQ5m3E=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     pyyaml
     unicode-rbnf
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    changelog  = "https://github.com/home-assistant/hassil/blob/v${version}/CHANGELOG.md";
+    changelog = "https://github.com/home-assistant/hassil/blob/v${version}/CHANGELOG.md";
     description = "Intent parsing for Home Assistant";
     mainProgram = "hassil";
     homepage = "https://github.com/home-assistant/hassil";
diff --git a/pkgs/development/python-modules/hatasmota/default.nix b/pkgs/development/python-modules/hatasmota/default.nix
index 6dcd50f3c46a5..a6b84d93b1a65 100644
--- a/pkgs/development/python-modules/hatasmota/default.nix
+++ b/pkgs/development/python-modules/hatasmota/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, attrs
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, voluptuous
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  voluptuous,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-Kbz/ETSJGx6u0ZNfEWfl9klBIB3yPcfHGy1uKK50TGA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     attrs
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "hatasmota"
-  ];
+  pythonImportsCheck = [ "hatasmota" ];
 
   meta = with lib; {
     description = "Python module to help parse and construct Tasmota MQTT messages";
diff --git a/pkgs/development/python-modules/hatch-fancy-pypi-readme/default.nix b/pkgs/development/python-modules/hatch-fancy-pypi-readme/default.nix
index b3f71b73eed34..2c96dd85be1ec 100644
--- a/pkgs/development/python-modules/hatch-fancy-pypi-readme/default.nix
+++ b/pkgs/development/python-modules/hatch-fancy-pypi-readme/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, build
-, hatchling
-, tomli
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  build,
+  hatchling,
+  tomli,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -22,17 +23,12 @@ buildPythonPackage rec {
     hash = "sha256-RN0jnxp3m53PjryUAaYR/X9+PhRXjc8iwmXfr3wVFLg=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = [
-    hatchling
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  propagatedBuildInputs =
+    [ hatchling ]
+    ++ lib.optionals (pythonOlder "3.11") [ tomli ]
+    ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   nativeCheckInputs = [
     build
@@ -41,13 +37,11 @@ buildPythonPackage rec {
 
   # Requires network connection
   disabledTests = [
-    "test_build"  # Requires internet
+    "test_build" # Requires internet
     "test_invalid_config"
   ];
 
-  pythonImportsCheck = [
-    "hatch_fancy_pypi_readme"
-  ];
+  pythonImportsCheck = [ "hatch_fancy_pypi_readme" ];
 
   meta = with lib; {
     description = "Fancy PyPI READMEs with Hatch";
diff --git a/pkgs/development/python-modules/hatch-jupyter-builder/default.nix b/pkgs/development/python-modules/hatch-jupyter-builder/default.nix
index 0c827ac42cd31..731aeeba52ced 100644
--- a/pkgs/development/python-modules/hatch-jupyter-builder/default.nix
+++ b/pkgs/development/python-modules/hatch-jupyter-builder/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, pytest-mock
-, pytestCheckHook
-, tomli
-, twine
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  pytest-mock,
+  pytestCheckHook,
+  tomli,
+  twine,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,15 @@ buildPythonPackage rec {
     hash = "sha256-QDWHVdjtexUNGRL+dVehdBwahSW2HmNkZKkQyuOghyI=";
   };
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
-  dependencies = [
-    hatchling
-  ];
+  dependencies = [ hatchling ];
 
   nativeCheckInputs = [
     pytest-mock
     pytestCheckHook
     twine
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   disabledTests = [
     # tests pip install, which unsuprisingly fails
diff --git a/pkgs/development/python-modules/hatch-nodejs-version/default.nix b/pkgs/development/python-modules/hatch-nodejs-version/default.nix
index 806bffe56cc1e..2c0a724d939b0 100644
--- a/pkgs/development/python-modules/hatch-nodejs-version/default.nix
+++ b/pkgs/development/python-modules/hatch-nodejs-version/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, hatchling
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  hatchling,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-hknlb11DCe+b55CfF3Pr62ccWPxVrjQ197ZagSiH/zU=";
   };
 
-  propagatedBuildInputs = [
-    hatchling
-  ];
+  propagatedBuildInputs = [ hatchling ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "hatch_nodejs_version"
-  ];
+  pythonImportsCheck = [ "hatch_nodejs_version" ];
 
   meta = with lib; {
     description = "Plugins for dealing with NodeJS versions";
diff --git a/pkgs/development/python-modules/hatch-odoo/default.nix b/pkgs/development/python-modules/hatch-odoo/default.nix
new file mode 100644
index 0000000000000..91a0ef99efbd6
--- /dev/null
+++ b/pkgs/development/python-modules/hatch-odoo/default.nix
@@ -0,0 +1,40 @@
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatch-vcs,
+  hatchling,
+  lib,
+  manifestoo-core,
+  pythonOlder,
+  tomli,
+}:
+buildPythonPackage rec {
+  pname = "hatch-odoo";
+  version = "0.1";
+  format = "pyproject";
+
+  src = fetchFromGitHub {
+    owner = "acsone";
+    repo = pname;
+    rev = version;
+    sha256 = "sha256-+KM3tpeQ4e53bVhUeWUSfyuIzPRvWkjZi4S/gH4UHVY=";
+  };
+
+  buildInputs = [hatch-vcs];
+
+  propagatedBuildInputs =
+    [
+      hatchling
+      manifestoo-core
+    ]
+    ++ lib.optionals (pythonOlder "3.11") [
+      tomli
+    ];
+
+  meta = with lib; {
+    description = "A hatch plugin to develop and package Odoo projects";
+    homepage = "https://github.com/acsone/hatch-odoo";
+    license = licenses.mit;
+    maintainers = with maintainers; [yajo];
+  };
+}
diff --git a/pkgs/development/python-modules/hatch-regex-commit/default.nix b/pkgs/development/python-modules/hatch-regex-commit/default.nix
new file mode 100644
index 0000000000000..9cd936d5798f3
--- /dev/null
+++ b/pkgs/development/python-modules/hatch-regex-commit/default.nix
@@ -0,0 +1,46 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatch-regex-commit,
+  hatchling,
+  pythonOlder,
+}:
+
+buildPythonPackage rec {
+  pname = "hatch-regex-commit";
+  version = "0.0.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "frankie567";
+    repo = "hatch-regex-commit";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-E0DIBBaDmTCsZQ41NcjcbzgJ16BwhdexlrGWBdf77oA=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail 'dynamic = ["version"]' 'version = "${version}"' \
+      --replace-fail ', "hatch-regex-commit"' "" \
+      --replace-fail " --cov-report=term-missing --cov-config=pyproject.toml --cov=hatch_regex_commit --cov=tests" ""
+  '';
+
+  build-system = [ hatchling ];
+
+  dependencies = [ hatchling ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "hatch_regex_commit" ];
+
+  meta = with lib; {
+    description = "Hatch plugin to create a commit and tag when bumping version";
+    homepage = "https://github.com/frankie567/hatch-regex-commit";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/hatch-requirements-txt/default.nix b/pkgs/development/python-modules/hatch-requirements-txt/default.nix
index 9995966805050..12e304475c74c 100644
--- a/pkgs/development/python-modules/hatch-requirements-txt/default.nix
+++ b/pkgs/development/python-modules/hatch-requirements-txt/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, packaging
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  packaging,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-Kd3rDfTBn/t/NiSJMPkHRWD5solUF7MAN8EiZokxHrk=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     hatchling
@@ -29,9 +28,7 @@ buildPythonPackage rec {
 
   doCheck = false; # missing coincidence dependency
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     changelog = "https://github.com/repo-helper/hatch-requirements-txt/releases/tag/${version}";
@@ -41,4 +38,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ ];
   };
 }
-
diff --git a/pkgs/development/python-modules/hatch-vcs/default.nix b/pkgs/development/python-modules/hatch-vcs/default.nix
index 25884829b5d2b..ec89847abc248 100644
--- a/pkgs/development/python-modules/hatch-vcs/default.nix
+++ b/pkgs/development/python-modules/hatch-vcs/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, git
-, hatchling
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  git,
+  hatchling,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-CTgQdI/gHbDUUfq88sGsJojK79Iy1O3pZwkLHBsH2fc=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     hatchling
@@ -39,15 +38,18 @@ buildPythonPackage rec {
     # incompatible with setuptools-scm>=7
     # https://github.com/ofek/hatch-vcs/issues/8
     "test_write"
+  ] ++ lib.optionals (pythonOlder "3.11") [
+    # https://github.com/pypa/setuptools_scm/issues/1038, fixed in setuptools_scm@8.1.0
+    "test_basic"
+    "test_root"
+    "test_metadata"
   ];
 
-  pythonImportsCheck = [
-    "hatch_vcs"
-  ];
+  pythonImportsCheck = [ "hatch_vcs" ];
 
   meta = with lib; {
     changelog = "https://github.com/ofek/hatch-vcs/releases/tag/v${version}";
-    description = "A plugin for Hatch that uses your preferred version control system (like Git) to determine project versions";
+    description = "Plugin for Hatch that uses your preferred version control system (like Git) to determine project versions";
     homepage = "https://github.com/ofek/hatch-vcs";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/development/python-modules/hatchling/default.nix b/pkgs/development/python-modules/hatchling/default.nix
index 9f8ca78a96aee..069cd5374b4c3 100644
--- a/pkgs/development/python-modules/hatchling/default.nix
+++ b/pkgs/development/python-modules/hatchling/default.nix
@@ -1,32 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# runtime
-, editables
-, packaging
-, pathspec
-, pluggy
-, tomli
-, trove-classifiers
+  # runtime
+  editables,
+  packaging,
+  pathspec,
+  pluggy,
+  tomli,
+  trove-classifiers,
 
-# tests
-, build
-, python
-, requests
-, virtualenv
+  # tests
+  build,
+  python,
+  requests,
+  virtualenv,
 }:
 
 buildPythonPackage rec {
   pname = "hatchling";
-  version = "1.24.1";
+  version = "1.25.0";
   format = "pyproject";
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-UfhhiR6YxAROtFUWOnN+XSMo16p0iQsYLbLYD+4ipJc=";
+    hash = "sha256-cGRjGlEmELUiUKTT/xvYFVHW0UMcTre3LnNN9sdPQmI=";
   };
 
   # listed in backend/pyproject.toml
@@ -36,9 +37,7 @@ buildPythonPackage rec {
     pathspec
     pluggy
     trove-classifiers
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   pythonImportsCheck = [
     "hatchling"
@@ -71,6 +70,9 @@ buildPythonPackage rec {
     homepage = "https://hatch.pypa.io/latest/";
     changelog = "https://github.com/pypa/hatch/releases/tag/hatchling-v${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ hexa ofek ];
+    maintainers = with maintainers; [
+      hexa
+      ofek
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/haversine/default.nix b/pkgs/development/python-modules/haversine/default.nix
index 68f3940a382b1..5264545cca5a7 100644
--- a/pkgs/development/python-modules/haversine/default.nix
+++ b/pkgs/development/python-modules/haversine/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-MKOg2awpamupvuXstiH7VoIY4ax+hy2h2cFXDFKJ2mA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     numpy
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "haversine"
-  ];
+  pythonImportsCheck = [ "haversine" ];
 
   meta = with lib; {
     description = "Python module the distance between 2 points on earth";
diff --git a/pkgs/development/python-modules/hawkauthlib/default.nix b/pkgs/development/python-modules/hawkauthlib/default.nix
index 9df850b788297..b7c6c73820a25 100644
--- a/pkgs/development/python-modules/hawkauthlib/default.nix
+++ b/pkgs/development/python-modules/hawkauthlib/default.nix
@@ -1,28 +1,45 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, webob
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  requests,
+  webob,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "hawkauthlib";
   version = "0.1.1";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "mozilla-services";
-    repo = pname;
+    repo = "hawkauthlib";
     rev = "refs/tags/v${version}";
-    sha256 = "0mr1mpx4j9q7sch9arwfvpysnpf2p7ijy7072wilxm8pnj0bwvsi";
+    hash = "sha256-UW++gLQX1U4jFwccL+O5wl2r/d2OZ5Ug0wcnSfqtIVc=";
   };
 
-  propagatedBuildInputs = [ requests webob ];
+  postPatch = ''
+    substituteInPlace hawkauthlib/tests/* \
+        --replace-warn 'assertEquals' 'assertEqual'
+  '';
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    requests
+    webob
+  ];
+
+  pythonImportsCheck = [ "hawkauthlib" ];
+
+  nativeCheckInputs = [ unittestCheckHook ];
 
   meta = with lib; {
     homepage = "https://github.com/mozilla-services/hawkauthlib";
     description = "Hawk Access Authentication protocol";
     license = licenses.mpl20;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/hcloud/default.nix b/pkgs/development/python-modules/hcloud/default.nix
index 09d6f07756d6a..fb0f4b8e27e34 100644
--- a/pkgs/development/python-modules/hcloud/default.nix
+++ b/pkgs/development/python-modules/hcloud/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, future
-, mock
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  future,
+  mock,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-sZSatje+UXt69r7Nv4QMR3IvlHHGuHDm813h72/Oo+M=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     future
@@ -37,9 +36,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "hcloud"
-  ];
+  pythonImportsCheck = [ "hcloud" ];
 
   meta = with lib; {
     description = "Library for the Hetzner Cloud API";
diff --git a/pkgs/development/python-modules/hcs-utils/default.nix b/pkgs/development/python-modules/hcs-utils/default.nix
index 2dc90870b6143..a69622a440d4f 100644
--- a/pkgs/development/python-modules/hcs-utils/default.nix
+++ b/pkgs/development/python-modules/hcs-utils/default.nix
@@ -1,4 +1,11 @@
-{ lib, pythonOlder, buildPythonPackage, fetchPypi, six, glibcLocales, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  glibcLocales,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "hcs-utils";
@@ -11,23 +18,24 @@ buildPythonPackage rec {
     sha256 = "04xq69hrys8lf9kp8pva0c4aphjjfw412km7c32ydkwq0i59rhp2";
   };
 
-  LC_ALL="en_US.UTF-8";
+  LC_ALL = "en_US.UTF-8";
 
   checkPhase = ''
     # root does not has /root as home in sandbox
     py.test -k 'not test_expand' hcs_utils/test
   '';
 
-  buildInputs = [ six glibcLocales ];
+  buildInputs = [
+    six
+    glibcLocales
+  ];
   nativeCheckInputs = [ pytest ];
 
-  disabled = pythonOlder "3.4";
-
   meta = with lib; {
     description = "Library collecting some useful snippets";
-    homepage    = "https://pypi.python.org/pypi/hcs_utils/1.3";
-    license     = licenses.isc;
+    homepage = "https://pypi.python.org/pypi/hcs_utils/1.3";
+    license = licenses.isc;
     maintainers = with maintainers; [ lovek323 ];
-    platforms   = platforms.unix;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/hdate/default.nix b/pkgs/development/python-modules/hdate/default.nix
index 3c45b7ff08d66..0b3fa2ab78a44 100644
--- a/pkgs/development/python-modules/hdate/default.nix
+++ b/pkgs/development/python-modules/hdate/default.nix
@@ -1,59 +1,53 @@
-{ lib
-, astral
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, pytz
+{
+  lib,
+  astral,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pdm-backend,
+  pythonRelaxDepsHook,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
 }:
 
 buildPythonPackage rec {
   pname = "hdate";
-  version = "0.10.4";
-  format = "pyproject";
+  version = "0.10.11";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "py-libhdate";
     repo = "py-libhdate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NF2ZA9ruW7sL2tLY11VAtyPRxGg2o5/mpv3ZsH/Zxb8=";
+    hash = "sha256-HmdXTvtNiIE2XPFhqs7WpcceEQU7F7RsLFp6/+63yDw=";
   };
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace 'pytz = ">= 2020.0"' 'pytz = "*"' \
-      --replace 'astral = {version = "^2.2", python = "^3.6"}' 'astral = "*"'
-  '';
+  pythonRelaxDeps = [
+    "astral"
+  ];
 
-  nativeBuildInputs = [
-    poetry-core
+  build-system = [
+    pdm-backend
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     astral
     pytz
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests"
-  ];
+  pytestFlagsArray = [ "tests" ];
 
-  pythonImportsCheck = [
-    "hdate"
-  ];
+  pythonImportsCheck = [ "hdate" ];
 
   meta = with lib; {
     description = "Python module for Jewish/Hebrew date and Zmanim";
     homepage = "https://github.com/py-libhdate/py-libhdate";
     changelog = "https://github.com/py-libhdate/py-libhdate/releases/tag/v${version}";
-    license = with licenses; [ gpl3Plus ];
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/hdbscan/default.nix b/pkgs/development/python-modules/hdbscan/default.nix
index 0c6acf729f692..e56d4fd171237 100644
--- a/pkgs/development/python-modules/hdbscan/default.nix
+++ b/pkgs/development/python-modules/hdbscan/default.nix
@@ -1,30 +1,37 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, cython
-, numpy
-, pytestCheckHook
-, scipy
-, scikit-learn
-, fetchPypi
-, joblib
-, six
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  numpy,
+  pytestCheckHook,
+  scipy,
+  scikit-learn,
+  fetchPypi,
+  joblib,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "hdbscan";
-  version = "0.8.33";
+  version = "0.8.37";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-V/q8Xw5F9I0kB7NccxGSq8iWN2QR/n5LuDb/oD04+Q0=";
+    hash = "sha256-3EeHE0DRhT5WnF2Pb4/IB+nDEx7dKRafx3pHBnSqibA=";
   };
 
   pythonRemoveDeps = [ "cython" ];
-  nativeBuildInputs = [ pythonRelaxDepsHook cython ];
-  propagatedBuildInputs = [ numpy scipy scikit-learn joblib six ];
+  nativeBuildInputs = [
+    cython
+  ];
+  propagatedBuildInputs = [
+    numpy
+    scipy
+    scikit-learn
+    joblib
+    six
+  ];
   preCheck = ''
     cd hdbscan/tests
     rm __init__.py
@@ -46,7 +53,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Hierarchical Density-Based Spatial Clustering of Applications with Noise, a clustering algorithm with a scikit-learn compatible API";
-    homepage =  "https://github.com/scikit-learn-contrib/hdbscan";
+    homepage = "https://github.com/scikit-learn-contrib/hdbscan";
     license = licenses.bsd3;
   };
 }
diff --git a/pkgs/development/python-modules/hdf5plugin/default.nix b/pkgs/development/python-modules/hdf5plugin/default.nix
index 7d4019d28ce29..fd7bff5d3e02e 100644
--- a/pkgs/development/python-modules/hdf5plugin/default.nix
+++ b/pkgs/development/python-modules/hdf5plugin/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, h5py
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  h5py,
 }:
 
 buildPythonPackage rec {
@@ -16,16 +17,12 @@ buildPythonPackage rec {
     hash = "sha256-MnqY1PyGzo31H696J9CekiA2rJrUYzUMDC3UJMZaFLA=";
   };
 
-  dependencies = [
-    h5py
-  ];
+  dependencies = [ h5py ];
 
   checkPhase = ''
     python test/test.py
   '';
-  pythonImportsCheck = [
-    "hdf5plugin"
-  ];
+  pythonImportsCheck = [ "hdf5plugin" ];
 
   preBuild = ''
     mkdir src/hdf5plugin/plugins
@@ -41,5 +38,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ pbsds ];
   };
-
 }
diff --git a/pkgs/development/python-modules/hdfs/default.nix b/pkgs/development/python-modules/hdfs/default.nix
index 2217ee5567cfc..c887d87178902 100644
--- a/pkgs/development/python-modules/hdfs/default.nix
+++ b/pkgs/development/python-modules/hdfs/default.nix
@@ -1,29 +1,39 @@
-{ buildPythonPackage
-, docopt
-, fastavro
-, fetchFromGitHub
-, lib
-, nose
-, pytestCheckHook
-, requests
-, six
+{
+  buildPythonPackage,
+  docopt,
+  fastavro,
+  fetchFromGitHub,
+  lib,
+  pytestCheckHook,
+  requests,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "hdfs";
   version = "2.7.3";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "mtth";
-    repo = pname;
+    repo = "hdfs";
     rev = "refs/tags/v${version}";
     hash = "sha256-Pm2E8hB0wbu7npi/sLt9D8jQsH69qNOHLji9CYqST/8=";
   };
 
-  propagatedBuildInputs = [ docopt requests six ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [ fastavro nose pytestCheckHook ];
+  dependencies = [
+    docopt
+    requests
+    six
+  ];
+
+  nativeCheckInputs = [
+    fastavro
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [ "hdfs" ];
 
@@ -33,5 +43,6 @@ buildPythonPackage rec {
     changelog = "https://github.com/mtth/hdfs/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ samuela ];
+    mainProgram = "hdfscli";
   };
 }
diff --git a/pkgs/development/python-modules/hdmedians/default.nix b/pkgs/development/python-modules/hdmedians/default.nix
index f2342aebfe011..c36314947e10b 100644
--- a/pkgs/development/python-modules/hdmedians/default.nix
+++ b/pkgs/development/python-modules/hdmedians/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-, cython
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+  cython,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,10 @@ buildPythonPackage rec {
   };
 
   # nose was specified in setup.py as a build dependency...
-  buildInputs = [ cython nose ];
+  buildInputs = [
+    cython
+    nose
+  ];
   propagatedBuildInputs = [ numpy ];
 
   # cannot resolve path for packages in tests
diff --git a/pkgs/development/python-modules/headerparser/default.nix b/pkgs/development/python-modules/headerparser/default.nix
index 71cad63ef70f7..d75e26f955113 100644
--- a/pkgs/development/python-modules/headerparser/default.nix
+++ b/pkgs/development/python-modules/headerparser/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, attrs
-, buildPythonPackage
-, deprecated
-, fetchFromGitHub
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  deprecated,
+  fetchFromGitHub,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-CWXha7BYVO5JFuhWP8OZ95fhUsZ3Jo0cgPAM+O5bfec=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     attrs
@@ -37,9 +36,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "headerparser"
-  ];
+  pythonImportsCheck = [ "headerparser" ];
 
   meta = with lib; {
     description = "Module to parse key-value pairs in the style of RFC 822 (e-mail) headers";
diff --git a/pkgs/development/python-modules/heapdict/default.nix b/pkgs/development/python-modules/heapdict/default.nix
index 44852a3bf4bde..e2a7aa3ed44c9 100644
--- a/pkgs/development/python-modules/heapdict/default.nix
+++ b/pkgs/development/python-modules/heapdict/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+}:
 
 buildPythonPackage rec {
   pname = "heapdict";
@@ -13,7 +18,7 @@ buildPythonPackage rec {
   doCheck = !isPy3k;
 
   meta = with lib; {
-    description = "a heap with decrease-key and increase-key operations.";
+    description = "Heap with decrease-key and increase-key operations";
     homepage = "http://stutzbachenterprises.com";
     license = licenses.bsd3;
     maintainers = with maintainers; [ teh ];
diff --git a/pkgs/development/python-modules/heatshrink2/default.nix b/pkgs/development/python-modules/heatshrink2/default.nix
index dd37c7c0c0ad7..034857ba63613 100644
--- a/pkgs/development/python-modules/heatshrink2/default.nix
+++ b/pkgs/development/python-modules/heatshrink2/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-JthHYq78SYr49+sTNtLZ8GjtrHcr1dzXcPskTrb4M3o=";
   };
 
-  pythonImportsCheck = [
-    "heatshrink2"
-  ];
+  pythonImportsCheck = [ "heatshrink2" ];
 
   meta = with lib; {
     description = "Compression using the Heatshrink algorithm";
diff --git a/pkgs/development/python-modules/heatzypy/default.nix b/pkgs/development/python-modules/heatzypy/default.nix
index 843c8cbf1348b..78baf88849c7f 100644
--- a/pkgs/development/python-modules/heatzypy/default.nix
+++ b/pkgs/development/python-modules/heatzypy/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "heatzypy";
-  version = "2.5.4";
+  version = "2.5.5";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "Cyr-ius";
     repo = "heatzypy";
     rev = "refs/tags/${version}";
-    hash = "sha256-A01e3duNQmVv9vyOs6+gF/BdevLiYi/uXSq5bKmuRao=";
+    hash = "sha256-S1wIVeUTbtF5omImt38YNvZEutyCEYMGExccs0FIK44=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/help2man/default.nix b/pkgs/development/python-modules/help2man/default.nix
index edcd479458fef..df9398fcb265d 100644
--- a/pkgs/development/python-modules/help2man/default.nix
+++ b/pkgs/development/python-modules/help2man/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, jinja2
-, setuptools-scm
-, shtab
-, tomli
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  jinja2,
+  setuptools-scm,
+  shtab,
+  tomli,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,13 +31,9 @@ buildPythonPackage rec {
     tomli
   ];
 
-  propagatedBuildInputs = [
-    jinja2
-  ];
+  propagatedBuildInputs = [ jinja2 ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "help2man" ];
 
diff --git a/pkgs/development/python-modules/helpdev/default.nix b/pkgs/development/python-modules/helpdev/default.nix
index 160797c9327ca..2faf262f6ed24 100644
--- a/pkgs/development/python-modules/helpdev/default.nix
+++ b/pkgs/development/python-modules/helpdev/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, importlib-metadata
-, psutil
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  importlib-metadata,
+  psutil,
 }:
 
 buildPythonPackage rec {
@@ -28,5 +29,4 @@ buildPythonPackage rec {
     mainProgram = "helpdev";
     license = lib.licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/helper/default.nix b/pkgs/development/python-modules/helper/default.nix
index 7d55d498d5d47..930d743b7bf00 100644
--- a/pkgs/development/python-modules/helper/default.nix
+++ b/pkgs/development/python-modules/helper/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyyaml
-, pytestCheckHook
-, mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyyaml,
+  pytestCheckHook,
+  mock,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "0zypjv8rncvrsgl200v7d3bn08gs48dwqvgamfqv71h07cj6zngp";
   };
 
-  propagatedBuildInputs = [
-    pyyaml
-  ];
+  propagatedBuildInputs = [ pyyaml ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/hepunits/default.nix b/pkgs/development/python-modules/hepunits/default.nix
index 8089deecf0068..8664d4b23665b 100644
--- a/pkgs/development/python-modules/hepunits/default.nix
+++ b/pkgs/development/python-modules/hepunits/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatch-vcs
-, hatchling
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatch-vcs,
+  hatchling,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "hepunits";
-  version = "2.3.3";
+  version = "2.3.4";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Z9fMd81U1ytpwmpo5e+teEK29o+ovGJ7uQ5BF3q+aUU=";
+    hash = "sha256-qEK4hqZ7oFY6NHFVJ3z9yPtnAggjNmG8urnyip34zWA=";
   };
 
   nativeBuildInputs = [
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hatchling
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
     description = "Units and constants in the HEP system of units";
@@ -32,4 +31,3 @@ buildPythonPackage rec {
     maintainers = with lib.maintainers; [ doronbehar ];
   };
 }
-
diff --git a/pkgs/development/python-modules/here-routing/default.nix b/pkgs/development/python-modules/here-routing/default.nix
index c1ca069b51d6e..0ab74bcd2bb64 100644
--- a/pkgs/development/python-modules/here-routing/default.nix
+++ b/pkgs/development/python-modules/here-routing/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, aiohttp
-, async-timeout
-, yarl
-, aresponses
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  aiohttp,
+  async-timeout,
+  yarl,
+  aresponses,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     sed -i "/^addopts/d" pyproject.toml
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
diff --git a/pkgs/development/python-modules/here-transit/default.nix b/pkgs/development/python-modules/here-transit/default.nix
index 638f46af434f1..8c9ef33e5715c 100644
--- a/pkgs/development/python-modules/here-transit/default.nix
+++ b/pkgs/development/python-modules/here-transit/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, aiohttp
-, async-timeout
-, yarl
-, aresponses
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  aiohttp,
+  async-timeout,
+  yarl,
+  aresponses,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     sed -i "/^addopts/d" pyproject.toml
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
diff --git a/pkgs/development/python-modules/herepy/default.nix b/pkgs/development/python-modules/herepy/default.nix
index ac7ad29191391..64c39bb8f830a 100644
--- a/pkgs/development/python-modules/herepy/default.nix
+++ b/pkgs/development/python-modules/herepy/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, requests
-, pytestCheckHook
-, responses
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  requests,
+  pytestCheckHook,
+  responses,
 }:
 
 buildPythonPackage rec {
   pname = "herepy";
-  version = "3.6.2";
+  version = "3.6.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,25 +20,19 @@ buildPythonPackage rec {
     owner = "abdullahselek";
     repo = "HerePy";
     rev = "refs/tags/${version}";
-    hash = "sha256-+DI9wjYVAUKdGEXWhbV9Xp0oOazcB+sS89ugIZuZM2w=";
+    hash = "sha256-ht4EZBfREU7tDNo6tCPyECjm0H+yuhjsfJ60M4ss0jE=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    requests
-  ];
+  dependencies = [ requests ];
 
   nativeCheckInputs = [
     pytestCheckHook
     responses
   ];
 
-  pythonImportsCheck = [
-    "herepy"
-  ];
+  pythonImportsCheck = [ "herepy" ];
 
   meta = with lib; {
     changelog = "https://github.com/abdullahselek/HerePy/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/hetzner/default.nix b/pkgs/development/python-modules/hetzner/default.nix
index 07b8f0ed2d423..fd4eb8496ce94 100644
--- a/pkgs/development/python-modules/hetzner/default.nix
+++ b/pkgs/development/python-modules/hetzner/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/heudiconv/default.nix b/pkgs/development/python-modules/heudiconv/default.nix
index 9c78027e0a83f..698bf15e02ec7 100644
--- a/pkgs/development/python-modules/heudiconv/default.nix
+++ b/pkgs/development/python-modules/heudiconv/default.nix
@@ -1,52 +1,51 @@
-{ lib
-, buildPythonPackage
-, datalad
-, dcm2niix
-, dcmstack
-, etelemetry
-, fetchPypi
-, filelock
-, git
-, nibabel
-, nipype
-, pydicom
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, versioningit
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  datalad,
+  dcm2niix,
+  dcmstack,
+  etelemetry,
+  fetchPypi,
+  filelock,
+  git,
+  nibabel,
+  nipype,
+  pydicom,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  versioningit,
 }:
 
 buildPythonPackage rec {
   pname = "heudiconv";
-  version = "1.1.0";
-  format = "pyproject";
+  version = "1.1.6";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zRLRdP3LpytHCTrehhPYMmJnss5v6ojjkIPuB8fKR5w=";
+    hash = "sha256-hCHG5zpoEx4w7Jq842RWwMtsn5NskPq/Wahp4neOun4=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "versioningit ~=" "versioningit >="
+      --replace-fail "versioningit ~=" "versioningit >="
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     versioningit
-    wheel
   ];
 
-  propagatedBuildInputs = [
-    nibabel
-    pydicom
-    nipype
+  dependencies = [
     dcmstack
     etelemetry
     filelock
+    nibabel
+    nipype
+    pydicom
   ];
 
   nativeCheckInputs = [
@@ -60,13 +59,16 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  pythonImportsCheck = [
-    "heudiconv"
+  pythonImportsCheck = [ "heudiconv" ];
+
+  disabledTests = [
+    # No such file or directory
+    "test_bvals_are_zero"
   ];
 
   meta = with lib; {
-    homepage = "https://heudiconv.readthedocs.io";
     description = "Flexible DICOM converter for organizing imaging data";
+    homepage = "https://heudiconv.readthedocs.io";
     changelog = "https://github.com/nipy/heudiconv/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ bcdarwin ];
diff --git a/pkgs/development/python-modules/hexbytes/default.nix b/pkgs/development/python-modules/hexbytes/default.nix
index 654471ca0f297..311644b15ce00 100644
--- a/pkgs/development/python-modules/hexbytes/default.nix
+++ b/pkgs/development/python-modules/hexbytes/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, eth-utils
-, hypothesis
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  eth-utils,
+  hypothesis,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-8st1nQiGApt+aNl8/cftYk0ZzA+MxbLyGi53UWUlAjM=";
   };
 
-  build-system = [ setuptools];
+  build-system = [ setuptools ];
 
   nativeCheckInputs = [
     eth-utils
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "hexbytes"
-  ];
+  pythonImportsCheck = [ "hexbytes" ];
 
   meta = with lib; {
     description = "`bytes` subclass that decodes hex, with a readable console output";
diff --git a/pkgs/development/python-modules/hexdump/default.nix b/pkgs/development/python-modules/hexdump/default.nix
index 7ebf919038b25..0a2c57ab7bbbf 100644
--- a/pkgs/development/python-modules/hexdump/default.nix
+++ b/pkgs/development/python-modules/hexdump/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "hexdump";
@@ -29,6 +33,9 @@ buildPythonPackage rec {
     description = "Library to dump binary data to hex format and restore from there";
     homepage = "https://pypi.org/project/hexdump/"; # BitBucket site returns 404
     license = licenses.publicDomain;
-    maintainers = with maintainers; [ frogamic sbruder ];
+    maintainers = with maintainers; [
+      frogamic
+      sbruder
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/hfst/default.nix b/pkgs/development/python-modules/hfst/default.nix
index 8b720c12a9a94..06e2ed94bb033 100644
--- a/pkgs/development/python-modules/hfst/default.nix
+++ b/pkgs/development/python-modules/hfst/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, pkgs
-, stdenv
-, buildPythonPackage
-, foma
-, icu
-, swig
+{
+  lib,
+  pkgs,
+  stdenv,
+  buildPythonPackage,
+  foma,
+  icu,
+  swig,
 }:
 
 buildPythonPackage rec {
@@ -19,18 +20,14 @@ buildPythonPackage rec {
     sed -i 's/libhfst_swig/hfst/' setup.py;
   '';
 
-  nativeBuildInputs = [
-    swig
-  ];
+  nativeBuildInputs = [ swig ];
 
   buildInputs = [
     icu
     pkgs.hfst
   ];
 
-  setupPyBuildFlags = [
-    "--inplace"
-  ];
+  setupPyBuildFlags = [ "--inplace" ];
 
   # Find foma in Darwin tests
   preCheck = lib.optionalString stdenv.isDarwin ''
diff --git a/pkgs/development/python-modules/hg-commitsigs/default.nix b/pkgs/development/python-modules/hg-commitsigs/default.nix
index 7a97bff33316b..be96f45368ac2 100644
--- a/pkgs/development/python-modules/hg-commitsigs/default.nix
+++ b/pkgs/development/python-modules/hg-commitsigs/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, fetchhg
-, stdenv
-, python
+{
+  lib,
+  fetchhg,
+  stdenv,
+  python,
 }:
 
 stdenv.mkDerivation rec {
diff --git a/pkgs/development/python-modules/hg-evolve/default.nix b/pkgs/development/python-modules/hg-evolve/default.nix
index 8a1e07c574f80..3f4a0c2850294 100644
--- a/pkgs/development/python-modules/hg-evolve/default.nix
+++ b/pkgs/development/python-modules/hg-evolve/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mercurial
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mercurial,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-WUPOok/tpZJSookzCIEHRKAlTzeZ6RJY0IiclgQUOs8=";
   };
 
-  nativeCheckInputs = [
-    mercurial
-  ];
+  nativeCheckInputs = [ mercurial ];
 
   checkPhase = ''
     runHook preCheck
@@ -54,7 +53,10 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Enables the “changeset evolution” feature of Mercurial core";
     homepage = "https://www.mercurial-scm.org/doc/evolution/";
-    maintainers = with maintainers; [ xavierzwirtz lukegb ];
+    maintainers = with maintainers; [
+      xavierzwirtz
+      lukegb
+    ];
     license = licenses.gpl2Plus;
   };
 }
diff --git a/pkgs/development/python-modules/hg-git/default.nix b/pkgs/development/python-modules/hg-git/default.nix
index 86145ee03ab4d..25ed4d5d95052 100644
--- a/pkgs/development/python-modules/hg-git/default.nix
+++ b/pkgs/development/python-modules/hg-git/default.nix
@@ -1,36 +1,38 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, dulwich
-, mercurial
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  dulwich,
+  mercurial,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "hg-git";
-  version = "1.1.1";
-  format = "pyproject";
+  version = "1.1.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-r04Q6zbt8VM1jYkoGOdJZqKPPxXy4jC1X1d9nJ+fEWY=";
+    pname = "hg_git";
+    inherit version;
+    hash = "sha256-BZzcElZa0pMBSGXSiSB+d+YFhJMM5PAdT2Txq5qLZCU=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
+    setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     dulwich
     mercurial
   ];
 
-  pythonImportsCheck = [
-    "hggit"
-  ];
+  pythonImportsCheck = [ "hggit" ];
 
   meta = with lib; {
     description = "Push and pull from a Git server using Mercurial";
diff --git a/pkgs/development/python-modules/hickle/default.nix b/pkgs/development/python-modules/hickle/default.nix
index ec802955c0d3d..b4597cd0c0d4f 100644
--- a/pkgs/development/python-modules/hickle/default.nix
+++ b/pkgs/development/python-modules/hickle/default.nix
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   version = "5.0.3";
   pyproject = true;
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
@@ -47,17 +47,6 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "hickle" ];
 
-  disabledTests = [
-    # broken in 5.0.2 with recent NumPy
-    # see https://github.com/telegraphic/hickle/issues/174
-    "test_scalar_compression"
-    # broken in 5.0.2 with Python 3.11
-    # see https://github.com/telegraphic/hickle/issues/169
-    "test_H5NodeFilterProxy"
-    # broken in 5.0.2
-    "test_slash_dict_keys"
-  ];
-
   meta = with lib; {
     description = "Serialize Python data to HDF5";
     homepage = "https://github.com/telegraphic/hickle";
diff --git a/pkgs/development/python-modules/hid-parser/default.nix b/pkgs/development/python-modules/hid-parser/default.nix
index dc0bbb433fd11..1106accebf073 100644
--- a/pkgs/development/python-modules/hid-parser/default.nix
+++ b/pkgs/development/python-modules/hid-parser/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pytest7CheckHook
-, hypothesis
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pytest7CheckHook,
+  hypothesis,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-zbm+h+ieDmd1K0uH+9B8EWtYScxqYJXVpY9bXdBivA4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytest7CheckHook
diff --git a/pkgs/development/python-modules/hid/default.nix b/pkgs/development/python-modules/hid/default.nix
index deb4006dfe78a..e1232bc85934c 100644
--- a/pkgs/development/python-modules/hid/default.nix
+++ b/pkgs/development/python-modules/hid/default.nix
@@ -1,30 +1,35 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hidapi
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  hidapi,
 }:
 
 buildPythonPackage rec {
   pname = "hid";
   version = "1.0.6";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-SNdk166XRroSO5bb9FeJPKgCaLd5HEsdLgUTEO64OGA=";
   };
 
-  propagatedBuildInputs = [ hidapi ];
-
-  nativeCheckInputs = [ nose ];
-
- postPatch = ''
+  postPatch = ''
     hidapi=${hidapi}/lib/
     test -d $hidapi || { echo "ERROR: $hidapi doesn't exist, please update/fix this build expression."; exit 1; }
     sed -i -e "s|libhidapi|$hidapi/libhidapi|" hid/__init__.py
   '';
 
+  build-system = [ setuptools ];
+
+  dependencies = [ hidapi ];
+
+  doCheck = false; # no tests
+
+  pythonImportsCheck = [ "hid" ];
+
   meta = with lib; {
     description = "hidapi bindings in ctypes";
     homepage = "https://github.com/apmorton/pyhidapi";
diff --git a/pkgs/development/python-modules/hidapi/default.nix b/pkgs/development/python-modules/hidapi/default.nix
index 6ad7b62d05a83..fe08c934ea61d 100644
--- a/pkgs/development/python-modules/hidapi/default.nix
+++ b/pkgs/development/python-modules/hidapi/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, xcbuild
-, cython_0
-, libusb1
-, udev
-, darwin
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  xcbuild,
+  cython_0,
+  libusb1,
+  udev,
+  darwin,
 }:
 
 buildPythonPackage rec {
@@ -19,11 +20,21 @@ buildPythonPackage rec {
     sha256 = "a7cb029286ced5426a381286526d9501846409701a29c2538615c3d1a612b8be";
   };
 
-  nativeBuildInputs = [ cython_0 ]
-    ++ lib.optionals stdenv.isDarwin [ xcbuild ];
+  nativeBuildInputs = [ cython_0 ] ++ lib.optionals stdenv.isDarwin [ xcbuild ];
 
-  propagatedBuildInputs = lib.optionals stdenv.isLinux [ libusb1 udev ]
-    ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ AppKit CoreFoundation IOKit ]);
+  propagatedBuildInputs =
+    lib.optionals stdenv.isLinux [
+      libusb1
+      udev
+    ]
+    ++ lib.optionals stdenv.isDarwin (
+      with darwin.apple_sdk.frameworks;
+      [
+        AppKit
+        CoreFoundation
+        IOKit
+      ]
+    );
 
   # Fix the USB backend library lookup
   postPatch = lib.optionalString stdenv.isLinux ''
@@ -35,11 +46,17 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "hid" ];
 
   meta = with lib; {
-    description = "A Cython interface to the hidapi from https://github.com/libusb/hidapi";
+    description = "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
     # see https://github.com/trezor/cython-hidapi/blob/master/LICENSE-orig.txt
-    license = with licenses; [ bsd3 gpl3Only ];
-    maintainers = with maintainers; [ np prusnak ];
+    license = with licenses; [
+      bsd3
+      gpl3Only
+    ];
+    maintainers = with maintainers; [
+      np
+      prusnak
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/hieroglyph/default.nix b/pkgs/development/python-modules/hieroglyph/default.nix
index d2f3168a76a1d..30670a8716c25 100644
--- a/pkgs/development/python-modules/hieroglyph/default.nix
+++ b/pkgs/development/python-modules/hieroglyph/default.nix
@@ -1,4 +1,10 @@
-{ lib, fetchPypi, buildPythonPackage, isPy27, sphinx }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  isPy27,
+  sphinx,
+}:
 
 buildPythonPackage rec {
   pname = "hieroglyph";
@@ -24,4 +30,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ juliendehos ];
   };
 }
-
diff --git a/pkgs/development/python-modules/highdicom/default.nix b/pkgs/development/python-modules/highdicom/default.nix
index b4420e6de9d45..a8828ff93274e 100644
--- a/pkgs/development/python-modules/highdicom/default.nix
+++ b/pkgs/development/python-modules/highdicom/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, numpy
-, pillow
-, pillow-jpls
-, pydicom
-, pylibjpeg
-, pylibjpeg-libjpeg
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  numpy,
+  pillow,
+  pillow-jpls,
+  pydicom,
+  pylibjpeg,
+  pylibjpeg-libjpeg,
 }:
 
 let
@@ -48,9 +49,7 @@ buildPythonPackage rec {
     ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.libjpeg;
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.libjpeg;
   preCheck = ''
     export HOME=$TMP/test-home
     mkdir -p $HOME/.pydicom/
diff --git a/pkgs/development/python-modules/hijri-converter/default.nix b/pkgs/development/python-modules/hijri-converter/default.nix
index 7c6d0d85d2cef..f99bddec45936 100644
--- a/pkgs/development/python-modules/hijri-converter/default.nix
+++ b/pkgs/development/python-modules/hijri-converter/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-BptniSkeCDD0hgp53NNPs87qO5VRbtQBAgK5ZWuhq2E=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "hijri_converter"
-  ];
+  pythonImportsCheck = [ "hijri_converter" ];
 
   meta = with lib; {
     description = "Accurate Hijri-Gregorian date converter based on the Umm al-Qura calendar";
diff --git a/pkgs/development/python-modules/hikari-lightbulb/default.nix b/pkgs/development/python-modules/hikari-lightbulb/default.nix
new file mode 100644
index 0000000000000..9fb3952ce0a77
--- /dev/null
+++ b/pkgs/development/python-modules/hikari-lightbulb/default.nix
@@ -0,0 +1,48 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  hikari,
+  croniter,
+}:
+
+buildPythonPackage rec {
+  pname = "hikari-lightbulb";
+  version = "2.3.5";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "tandemdude";
+    repo = "hikari-lightbulb";
+    rev = version;
+    hash = "sha256-gqbbex2xj48LZqW4bVSPDW1UZEFVeOHbNQVM6nhpl1Y=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
+  propagatedBuildInputs = [ hikari ];
+
+  passthru.optional-dependencies = {
+    crontrigger = [ croniter ];
+  };
+
+  pythonImportsCheck = [ "lightbulb" ];
+
+  meta = with lib; {
+    description = "Command handler for Hikari, the Python Discord API wrapper library";
+    longDescription = ''
+      Lightbulb is designed to be an easy to use command handler library that integrates with the Discord API wrapper library for Python, Hikari.
+
+      This library aims to make it simple for you to make your own Discord bots and provide all the utilities and functions you need to help make this job easier.
+    '';
+    homepage = "https://hikari-lightbulb.readthedocs.io/en/latest/";
+    # https://github.com/tandemdude/hikari-lightbulb/blob/d87df463488d1c1d947144ac0bafa4304e12ddfd/setup.py#L68
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [ tomodachi94 ];
+  };
+}
diff --git a/pkgs/development/python-modules/hikari/default.nix b/pkgs/development/python-modules/hikari/default.nix
index e76d7780c0bfa..dd93357e5375b 100644
--- a/pkgs/development/python-modules/hikari/default.nix
+++ b/pkgs/development/python-modules/hikari/default.nix
@@ -1,29 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, pytest-runner
-, aiohttp
-, attrs
-, multidict
-, colorlog
-, pynacl
-, pytest-cov
-, pytest-randomly
-, pytest-asyncio
-, mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  pytest-runner,
+  aiohttp,
+  attrs,
+  multidict,
+  colorlog,
+  pynacl,
+  pytest-cov,
+  pytest-randomly,
+  pytest-asyncio,
+  mock,
 }:
 buildPythonPackage rec {
   pname = "hikari";
-  version = "2.0.0.dev124";
+  version = "2.0.0.dev125";
 
   src = fetchFromGitHub {
     owner = "hikari-py";
     repo = "hikari";
     rev = version;
-    hash = "sha256-zDgU3Ol/I3YNnwXm+aBh20KwonW746p5TObuwuWORog=";
+    hash = "sha256-qxgIYquXUWrm8bS8EamERMHOnjI2aPyK7bQieVG66uA=";
     # The git commit is part of the `hikari.__git_sha1__` original output;
     # leave that output the same in nixpkgs. Use the `.git` directory
     # to retrieve the commit SHA, and remove the directory afterwards,
@@ -36,9 +36,6 @@ buildPythonPackage rec {
     '';
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   propagatedBuildInputs = [
     aiohttp
diff --git a/pkgs/development/python-modules/hikvision/default.nix b/pkgs/development/python-modules/hikvision/default.nix
index 23f6387853a82..354edc5d77981 100644
--- a/pkgs/development/python-modules/hikvision/default.nix
+++ b/pkgs/development/python-modules/hikvision/default.nix
@@ -1,35 +1,39 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "hikvision";
   version = "2.0.4";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "fbradyirl";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1l0zvir4hf1pcwwcmrhkspbdljzmi4lknxar5bkipdanpsm588mn";
+    repo = "hikvision";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-tiJUqr5WtRvnKll1OymJ9Uva1tUT5so4Zzc4SHLcH9A=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ requests ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "hikvision.api" ];
 
   meta = with lib; {
     description = "Python module for interacting with Hikvision IP Cameras";
     homepage = "https://github.com/fbradyirl/hikvision";
+    changelog = "https://github.com/fbradyirl/hikvision/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/hiredis/default.nix b/pkgs/development/python-modules/hiredis/default.nix
index 2408fa2d7e1c5..d9a6917ae5d8f 100644
--- a/pkgs/development/python-modules/hiredis/default.nix
+++ b/pkgs/development/python-modules/hiredis/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-
-# tested using
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # tested using
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
     hash = "sha256-7hTGXHNECy+dSsop0ULsNZvGFecCIEv+q46s7t/K7k8=";
   };
 
-  pythonImportsCheck = [
-    "hiredis"
-  ];
+  pythonImportsCheck = [ "hiredis" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     rm -rf hiredis
@@ -42,4 +39,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ mmai ];
   };
 }
-
diff --git a/pkgs/development/python-modules/hiro/default.nix b/pkgs/development/python-modules/hiro/default.nix
index 2656c13274ba4..7b7f7d8dbf054 100644
--- a/pkgs/development/python-modules/hiro/default.nix
+++ b/pkgs/development/python-modules/hiro/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, six, mock }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  mock,
+}:
 buildPythonPackage rec {
   pname = "hiro";
   version = "1.1.1";
@@ -9,7 +15,10 @@ buildPythonPackage rec {
     hash = "sha256-2jM5rx3JpZTMqdycccclJysuMGYE5F0OBXXNE8X5XWg=";
   };
 
-  propagatedBuildInputs = [ six mock ];
+  propagatedBuildInputs = [
+    six
+    mock
+  ];
 
   meta = with lib; {
     description = "Time manipulation utilities for Python";
diff --git a/pkgs/development/python-modules/hishel/default.nix b/pkgs/development/python-modules/hishel/default.nix
index 03dfcf4cf8ec7..229e8e72b4033 100644
--- a/pkgs/development/python-modules/hishel/default.nix
+++ b/pkgs/development/python-modules/hishel/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "hishel";
-  version = "0.0.26";
+  version = "0.0.27";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "karpetrosyan";
     repo = "hishel";
     rev = "refs/tags/${version}";
-    hash = "sha256-+HjVxcTbY9nRj2938fqguOXuTM3XzJWccx0J6RK2h4A=";
+    hash = "sha256-3iIQNtdd8sBGfNJrugjjWv4PQKhdFH+prw4poevh+O0=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/hist/default.nix b/pkgs/development/python-modules/hist/default.nix
index 17bca6ecb8fab..063bc93b6aa8a 100644
--- a/pkgs/development/python-modules/hist/default.nix
+++ b/pkgs/development/python-modules/hist/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, boost-histogram
-, histoprint
-, hatchling
-, hatch-vcs
-, numpy
-, pytestCheckHook
-, pytest-mpl
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  boost-histogram,
+  histoprint,
+  hatchling,
+  hatch-vcs,
+  numpy,
+  pytestCheckHook,
+  pytest-mpl,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "hist";
-  version = "2.7.2";
+  version = "2.7.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JrGrgQ2LECIttdFh1KyvZKqgT+a6rtKWbUHB2sVgHQY=";
+    hash = "sha256-+fm1aAmxkLtUZph4nMDX0ECTT8UUHSdjxuSdZegdvAs=";
   };
 
   buildInputs = [
diff --git a/pkgs/development/python-modules/histoprint/default.nix b/pkgs/development/python-modules/histoprint/default.nix
index 94f38aacb6745..14551898283e5 100644
--- a/pkgs/development/python-modules/histoprint/default.nix
+++ b/pkgs/development/python-modules/histoprint/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, click
-, numpy
-, setuptools
-, setuptools-scm
-, uhi
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  click,
+  numpy,
+  setuptools,
+  setuptools-scm,
+  uhi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     uhi
   ];
 
-  checkInputs = [
-    pytestCheckHook
-  ];
+  checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Pretty print histograms to the console";
diff --git a/pkgs/development/python-modules/hiyapyco/default.nix b/pkgs/development/python-modules/hiyapyco/default.nix
index 96baf1790b04e..24c1c400565dc 100644
--- a/pkgs/development/python-modules/hiyapyco/default.nix
+++ b/pkgs/development/python-modules/hiyapyco/default.nix
@@ -1,26 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pyyaml
-, jinja2
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pyyaml,
+  jinja2,
 }:
 
 buildPythonPackage rec {
   pname = "hiyapyco";
-  version = "0.5.5";
+  version = "0.6.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "zerwes";
     repo = pname;
     rev = "refs/tags/release-${version}";
-    hash = "sha256-LuENNwVB/1GyPLsfMRwHjz87c7+3/7U82m1MnHfRHdU=";
+    hash = "sha256-F+OPoFEUTHWSo5Pc46Wwt4j/x7w0BjhJhpLEdNPr7H0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pyyaml
diff --git a/pkgs/development/python-modules/hjson/default.nix b/pkgs/development/python-modules/hjson/default.nix
index 44aa789f0d043..a5caa19be3586 100644
--- a/pkgs/development/python-modules/hjson/default.nix
+++ b/pkgs/development/python-modules/hjson/default.nix
@@ -1,25 +1,34 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, makeWrapper
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  makeWrapper,
+  pytestCheckHook,
+  python,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "hjson";
   version = "3.0.2";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.5";
 
-  # N.B. pypi src tarball does not have tests
   src = fetchFromGitHub {
     owner = "hjson";
     repo = "hjson-py";
-    rev = "v${version}";
-    sha256 = "1jc7j790rcqnhbrfj4lhnz3f6768dc55aij840wmx16jylfqpc2n";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-VrCLHfXShF45IEhGVQpryBzjxreQEunyghazDNKRh8k=";
   };
 
+  build-system = [ setuptools ];
+
   nativeBuildInputs = [ makeWrapper ];
 
+  nativeCheckInputs = [ pytestCheckHook ];
+
   pythonImportsCheck = [ "hjson" ];
 
   postInstall = ''
@@ -29,11 +38,17 @@ buildPythonPackage rec {
       --prefix PATH : ${lib.makeBinPath [ python ]}
   '';
 
+  disabledTestPaths = [
+    # AttributeError:  b'/build/source/hjson/tool.py:14: Deprecati[151 chars]ools' != b''
+    "hjson/tests/test_tool.py"
+  ];
+
   meta = with lib; {
-    description = "A user interface for JSON";
-    mainProgram = "hjson";
+    description = "User interface for JSON";
     homepage = "https://github.com/hjson/hjson-py";
+    changelog = "https://github.com/hjson/hjson-py/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ bhipple ];
+    mainProgram = "hjson";
   };
 }
diff --git a/pkgs/development/python-modules/hkavr/default.nix b/pkgs/development/python-modules/hkavr/default.nix
index 851150ea1dd8f..c981affe092cf 100644
--- a/pkgs/development/python-modules/hkavr/default.nix
+++ b/pkgs/development/python-modules/hkavr/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-wa0yS0KPdrQUuxxViweESD6Itn2rFlTwwrPQ0COWIPc=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "hkavr"
-  ];
+  pythonImportsCheck = [ "hkavr" ];
 
   meta = with lib; {
     description = "Library for interacting with Harman Kardon AVR controllers";
diff --git a/pkgs/development/python-modules/hkdf/default.nix b/pkgs/development/python-modules/hkdf/default.nix
index e82489fd12fd0..e316e91a0ef88 100644
--- a/pkgs/development/python-modules/hkdf/default.nix
+++ b/pkgs/development/python-modules/hkdf/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
 }:
 
 buildPythonPackage rec {
@@ -28,5 +29,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/casebeer/python-hkdf";
     license = licenses.bsd2;
   };
-
 }
diff --git a/pkgs/development/python-modules/hledger-utils/default.nix b/pkgs/development/python-modules/hledger-utils/default.nix
index c2485c217a4c8..0dd811f5a7be5 100644
--- a/pkgs/development/python-modules/hledger-utils/default.nix
+++ b/pkgs/development/python-modules/hledger-utils/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitLab
-, setuptools
-, setuptools-scm
-, unittestCheckHook
-, hledger
-, perl
-, rich
-, pandas
-, scipy
-, psutil
-, matplotlib
-, drawilleplot
-, asteval
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitLab,
+  setuptools,
+  setuptools-scm,
+  unittestCheckHook,
+  hledger,
+  perl,
+  rich,
+  pandas,
+  scipy,
+  psutil,
+  matplotlib,
+  drawilleplot,
+  asteval,
 }:
 
 buildPythonPackage rec {
@@ -43,9 +44,7 @@ buildPythonPackage rec {
     asteval
   ];
 
-  checkInputs = [
-    unittestCheckHook
-  ];
+  checkInputs = [ unittestCheckHook ];
 
   nativeCheckInputs = [
     hledger
@@ -59,7 +58,11 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Utilities extending hledger";
     homepage = "https://gitlab.com/nobodyinperson/hledger-utils";
-    license = with licenses; [cc0 cc-by-40 gpl3];
+    license = with licenses; [
+      cc0
+      cc-by-40
+      gpl3
+    ];
     maintainers = with maintainers; [ nobbz ];
     platforms = platforms.all;
   };
diff --git a/pkgs/development/python-modules/hlk-sw16/default.nix b/pkgs/development/python-modules/hlk-sw16/default.nix
index 0674829a7af6e..49a2da2686e45 100644
--- a/pkgs/development/python-modules/hlk-sw16/default.nix
+++ b/pkgs/development/python-modules/hlk-sw16/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/hmmlearn/default.nix b/pkgs/development/python-modules/hmmlearn/default.nix
index 84014ba128993..27bad37620619 100644
--- a/pkgs/development/python-modules/hmmlearn/default.nix
+++ b/pkgs/development/python-modules/hmmlearn/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, numpy
-, scikit-learn
-, pybind11
-, setuptools-scm
-, cython
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  numpy,
+  scikit-learn,
+  pybind11,
+  setuptools-scm,
+  cython,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -33,13 +34,9 @@ buildPythonPackage rec {
     scikit-learn
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "hmmlearn"
-  ];
+  pythonImportsCheck = [ "hmmlearn" ];
 
   pytestFlagsArray = [
     "--pyargs"
diff --git a/pkgs/development/python-modules/hnswlib/default.nix b/pkgs/development/python-modules/hnswlib/default.nix
index c3dab17f5336b..b5a8c9def6670 100644
--- a/pkgs/development/python-modules/hnswlib/default.nix
+++ b/pkgs/development/python-modules/hnswlib/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, hnswlib
-, numpy
-, pybind11
-, setuptools
-, unittestCheckHook
+{
+  buildPythonPackage,
+  hnswlib,
+  numpy,
+  pybind11,
+  setuptools,
+  unittestCheckHook,
 }:
 
 buildPythonPackage {
@@ -17,16 +18,12 @@ buildPythonPackage {
     pybind11
   ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   unittestFlagsArray = [
     "tests/python"
     "--pattern 'bindings_test*.py'"
   ];
 
-  pythonImportsCheck = [
-    "hnswlib"
-  ];
+  pythonImportsCheck = [ "hnswlib" ];
 }
diff --git a/pkgs/development/python-modules/hocr-tools/default.nix b/pkgs/development/python-modules/hocr-tools/default.nix
index d5886a8893db6..40d2653d6c0d2 100644
--- a/pkgs/development/python-modules/hocr-tools/default.nix
+++ b/pkgs/development/python-modules/hocr-tools/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lxml
-, pillow
-, reportlab
-, lib
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxml,
+  pillow,
+  reportlab,
+  lib,
 }:
 buildPythonPackage rec {
   pname = "hocr-tools";
@@ -20,13 +21,17 @@ buildPythonPackage rec {
   # hocr-tools uses a test framework that requires internet access
   doCheck = false;
 
-  propagatedBuildInputs = [ pillow lxml reportlab ];
+  propagatedBuildInputs = [
+    pillow
+    lxml
+    reportlab
+  ];
 
   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";
     license = licenses.asl20;
-    maintainers = [ maintainers.kiwi ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/hole/default.nix b/pkgs/development/python-modules/hole/default.nix
index 37ac10cdfcafa..0f4b1aef89e26 100644
--- a/pkgs/development/python-modules/hole/default.nix
+++ b/pkgs/development/python-modules/hole/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,12 +27,10 @@ buildPythonPackage rec {
   # no tests are present
   doCheck = false;
 
-  pythonImportsCheck = [
-    "hole"
-  ];
+  pythonImportsCheck = [ "hole" ];
 
   meta = with lib; {
-    description = "Python API for interacting with a Pihole instance.";
+    description = "Python API for interacting with a Pihole instance";
     homepage = "https://github.com/home-assistant-ecosystem/python-hole";
     changelog = "https://github.com/home-assistant-ecosystem/python-hole/releases/tag/${version}";
     license = with licenses; [ mit ];
diff --git a/pkgs/development/python-modules/holidays/default.nix b/pkgs/development/python-modules/holidays/default.nix
index 82dc5a9882cfe..50beaa7df2668 100644
--- a/pkgs/development/python-modules/holidays/default.nix
+++ b/pkgs/development/python-modules/holidays/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "holidays";
-  version = "0.47";
+  version = "0.51";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "vacanza";
     repo = "python-holidays";
     rev = "refs/tags/v${version}";
-    hash = "sha256-A4viSzUia4QBdD0svkqYtsCq/la7Nrf2xu/fVDZHb00=";
+    hash = "sha256-0zLoxXgp4gby2pj96CJ2TOZBMmzuWKczotma7Q/3/ys=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/hologram/default.nix b/pkgs/development/python-modules/hologram/default.nix
index 30f50456bad9e..bedeb1f17dfbb 100644
--- a/pkgs/development/python-modules/hologram/default.nix
+++ b/pkgs/development/python-modules/hologram/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, jsonschema
-, pytestCheckHook
-, python-dateutil
-, pythonRelaxDepsHook
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  jsonschema,
+  pytestCheckHook,
+  python-dateutil,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -32,7 +32,6 @@ buildPythonPackage rec {
   ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
     wheel
   ];
@@ -42,22 +41,19 @@ buildPythonPackage rec {
     python-dateutil
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonRelaxDeps = [
-    "python-dateutil"
-  ];
+  pythonRelaxDeps = [ "python-dateutil" ];
 
-  pythonImportsCheck = [
-    "hologram"
-  ];
+  pythonImportsCheck = [ "hologram" ];
 
   meta = with lib; {
-    description = "A library for automatically generating Draft 7 JSON Schemas from Python dataclasses";
+    description = "Library for automatically generating Draft 7 JSON Schemas from Python dataclasses";
     homepage = "https://github.com/dbt-labs/hologram";
     license = licenses.mit;
-    maintainers = with maintainers; [ mausch tjni ];
+    maintainers = with maintainers; [
+      mausch
+      tjni
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/holoviews/default.nix b/pkgs/development/python-modules/holoviews/default.nix
index 03e4d80a4dfa5..ae765df32b4b5 100644
--- a/pkgs/development/python-modules/holoviews/default.nix
+++ b/pkgs/development/python-modules/holoviews/default.nix
@@ -1,30 +1,31 @@
-{ lib
-, bokeh
-, buildPythonPackage
-, colorcet
-, fetchPypi
-, ipython
-, matplotlib
-, notebook
-, numpy
-, pandas
-, panel
-, param
-, pythonOlder
-, pyviz-comms
-, scipy
+{
+  lib,
+  bokeh,
+  buildPythonPackage,
+  colorcet,
+  fetchPypi,
+  ipython,
+  matplotlib,
+  notebook,
+  numpy,
+  pandas,
+  panel,
+  param,
+  pythonOlder,
+  pyviz-comms,
+  scipy,
 }:
 
 buildPythonPackage rec {
   pname = "holoviews";
-  version = "1.18.3";
+  version = "1.19.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-V44w6J1ydU+XqD6+CBmP7I6HzH5JslufMew5P5OcpQA=";
+    hash = "sha256-yrFSL3WptGN3+TZLZ1vv15gS4iAFlxRHCljiFHXVMbo=";
   };
 
   propagatedBuildInputs = [
@@ -39,9 +40,7 @@ buildPythonPackage rec {
   # tests not fully included with pypi release
   doCheck = false;
 
-  pythonImportsCheck = [
-    "holoviews"
-  ];
+  pythonImportsCheck = [ "holoviews" ];
 
   meta = with lib; {
     description = "Python data analysis and visualization seamless and simple";
diff --git a/pkgs/development/python-modules/home-assistant-bluetooth/default.nix b/pkgs/development/python-modules/home-assistant-bluetooth/default.nix
index de204e5fb4259..f155a5db19c39 100644
--- a/pkgs/development/python-modules/home-assistant-bluetooth/default.nix
+++ b/pkgs/development/python-modules/home-assistant-bluetooth/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build-system
-, cython
-, poetry-core
-, setuptools
+  # build-system
+  cython,
+  poetry-core,
+  setuptools,
 
-# dependencies
-, habluetooth
+  # dependencies
+  habluetooth,
 
-# tests
-, bleak
-, pytestCheckHook
+  # tests
+  bleak,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,6 +31,11 @@ buildPythonPackage rec {
     hash = "sha256-KTaZ3xbZpBIN5zP73YdJW6QeCQThGdqejnfWwvL+0R8=";
   };
 
+  patches = [
+    # https://github.com/home-assistant-libs/home-assistant-bluetooth/issues/38
+    ./habluetooth-3.0-compat.patch
+  ];
+
   postPatch = ''
     # drop pytest parametrization (coverage, etc.)
     sed -i '/addopts/d' pyproject.toml
@@ -41,13 +47,9 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  propagatedBuildInputs = [
-    habluetooth
-  ];
+  propagatedBuildInputs = [ habluetooth ];
 
-  pythonImportsCheck = [
-    "home_assistant_bluetooth"
-  ];
+  pythonImportsCheck = [ "home_assistant_bluetooth" ];
 
   nativeCheckInputs = [
     bleak
diff --git a/pkgs/development/python-modules/home-assistant-bluetooth/habluetooth-3.0-compat.patch b/pkgs/development/python-modules/home-assistant-bluetooth/habluetooth-3.0-compat.patch
new file mode 100644
index 0000000000000..c56d890fd8aa9
--- /dev/null
+++ b/pkgs/development/python-modules/home-assistant-bluetooth/habluetooth-3.0-compat.patch
@@ -0,0 +1,50 @@
+diff --git a/tests/test_models.py b/tests/test_models.py
+index ecfd70c..b8001f2 100644
+--- a/tests/test_models.py
++++ b/tests/test_models.py
+@@ -88,6 +88,7 @@ def test_model_from_scanner():
+         "service_uuids": ["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
+         "source": "local",
+         "time": now,
++        "tx_power": -127,
+     }
+ 
+ 
+@@ -109,6 +110,7 @@ def test_construct_service_info_bleak():
+         advertisement=switchbot_adv,
+         connectable=False,
+         time=now,
++        tx_power=None,
+     )
+ 
+     assert service_info.service_uuids == ["cba20d00-224d-11e6-9fb8-0002a5d5c51b"]
+@@ -132,6 +134,7 @@ def test_construct_service_info_bleak():
+         "service_uuids": ["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
+         "source": "local",
+         "time": now,
++        "tx_power": None,
+     }
+ 
+ 
+@@ -165,6 +168,7 @@ def test_from_device_and_advertisement_data():
+         "service_uuids": ["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
+         "source": "local",
+         "time": now_monotonic,
++        "tx_power": -127,
+     }
+ 
+ 
+@@ -200,6 +204,7 @@ def test_pyobjc_compat():
+         advertisement=switchbot_adv,
+         connectable=False,
+         time=now,
++        tx_power=None,
+     )
+ 
+     assert service_info.service_uuids == ["cba20d00-224d-11e6-9fb8-0002a5d5c51b"]
+@@ -223,4 +228,5 @@ def test_pyobjc_compat():
+         "service_uuids": ["cba20d00-224d-11e6-9fb8-0002a5d5c51b"],
+         "source": "local",
+         "time": now,
++        "tx_power": None,
+     }
diff --git a/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix b/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
index 396ff052182e2..e4425df5c63a3 100644
--- a/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
+++ b/pkgs/development/python-modules/home-assistant-chip-clusters/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, aenum
-, dacite
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  aenum,
+  dacite,
 }:
 
 buildPythonPackage rec {
   pname = "home-assistant-chip-clusters";
-  version = "2024.3.2";
+  version = "2024.5.2";
   format = "wheel";
 
   src = fetchPypi {
@@ -15,7 +16,7 @@ buildPythonPackage rec {
     pname = "home_assistant_chip_clusters";
     dist = "py3";
     python = "py3";
-    hash = "sha256-Imdpqy7m81oxfkzj+82afSX9juK/SOCBIMoaPjK8G+Y=";
+    hash = "sha256-LP/Iw0dgm8TUws/SNUfg7b/OPIboCGB7JRiEwXNd+4A=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/home-assistant-chip-core/default.nix b/pkgs/development/python-modules/home-assistant-chip-core/default.nix
index 8f05913fbd830..0c2c6fda5ed85 100644
--- a/pkgs/development/python-modules/home-assistant-chip-core/default.nix
+++ b/pkgs/development/python-modules/home-assistant-chip-core/default.nix
@@ -1,62 +1,65 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# build
-, autoPatchelfHook
+  # build
+  autoPatchelfHook,
 
-# runtime
-, glib
-, libnl
+  # runtime
+  glib,
+  libnl,
 
-# propagates
-, aenum
-, coloredlogs
-, construct
-, cryptography
-, dacite
-, ecdsa
-, rich
-, pyyaml
-, ipdb
-, deprecation
-, mobly
-, pygobject3
+  # propagates
+  aenum,
+  coloredlogs,
+  construct,
+  cryptography,
+  dacite,
+  ecdsa,
+  rich,
+  pyyaml,
+  ipdb,
+  deprecation,
+  mobly,
+  pygobject3,
 }:
 
 buildPythonPackage rec {
   pname = "home-assistant-chip-core";
-  version = "2024.3.2";
+  version = "2024.5.2";
   format = "wheel";
 
   disabled = pythonOlder "3.7";
 
-  src = let
-    system = {
-      "aarch64-linux" = {
-        name = "aarch64";
-        hash = "sha256-li+fmEikVnTAkgQnoiWjoZaVRwGRadTYuQySR5s8VB4=";
-      };
-      "x86_64-linux" = {
-        name = "x86_64";
-        hash = "sha256-iUKtAz00qFklTW2ilUPGAWhpqDmnLb6D3Zdy1oHpQl0=";
-      };
-    }.${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
-  in fetchPypi {
-    pname = "home_assistant_chip_core";
-    inherit version format;
-    dist = "cp37";
-    python = "cp37";
-    abi = "abi3";
-    platform = "manylinux_2_31_${system.name}";
-    hash = system.hash;
-  };
+  src =
+    let
+      system =
+        {
+          "aarch64-linux" = {
+            name = "aarch64";
+            hash = "sha256-4C3KHmFbbpeWvmfwoVcc8kWRw22sGJMyDKsUGcbch6U=";
+          };
+          "x86_64-linux" = {
+            name = "x86_64";
+            hash = "sha256-n+Dn0vL0uUEvXsoKegSpJIG2jHbXSrYv2NhL+ZeVHrk=";
+          };
+        }
+        .${stdenv.system} or (throw "Unsupported system: ${stdenv.system}");
+    in
+    fetchPypi {
+      pname = "home_assistant_chip_core";
+      inherit version format;
+      dist = "cp37";
+      python = "cp37";
+      abi = "abi3";
+      platform = "manylinux_2_31_${system.name}";
+      hash = system.hash;
+    };
 
-  nativeBuildInputs = [
-    autoPatchelfHook
-  ];
+  nativeBuildInputs = [ autoPatchelfHook ];
 
   buildInputs = [
     glib
@@ -101,7 +104,10 @@ buildPythonPackage rec {
     changelog = "https://github.com/home-assistant-libs/chip-wheels/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = teams.home-assistant.members;
-    platforms = [ "aarch64-linux" "x86_64-linux" ];
+    platforms = [
+      "aarch64-linux"
+      "x86_64-linux"
+    ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
   };
 }
diff --git a/pkgs/development/python-modules/homeconnect/default.nix b/pkgs/development/python-modules/homeconnect/default.nix
index 296fb482c16d9..aa2629ff2d802 100644
--- a/pkgs/development/python-modules/homeconnect/default.nix
+++ b/pkgs/development/python-modules/homeconnect/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
-, requests-oauthlib
-, pythonOlder
-, setuptools
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  requests-oauthlib,
+  pythonOlder,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-lkal6Dy4cRRZ893I3/jyQ3+sDZMrHN0UMGff0ab4pvk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     requests
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "homeconnect"
-  ];
+  pythonImportsCheck = [ "homeconnect" ];
 
   meta = with lib; {
     description = "Python client for the BSH Home Connect REST API";
diff --git a/pkgs/development/python-modules/homematicip/default.nix b/pkgs/development/python-modules/homematicip/default.nix
index 34016262e93bb..f4aa29cfcb8d9 100644
--- a/pkgs/development/python-modules/homematicip/default.nix
+++ b/pkgs/development/python-modules/homematicip/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, aenum
-, aiohttp
-, aiohttp-wsgi
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, pytest7CheckHook
-, pythonAtLeast
-, pythonOlder
-, pytest-aiohttp
-, pytest-asyncio
-, requests
-, setuptools
-, setuptools-scm
-, websocket-client
-, websockets
+{
+  lib,
+  aenum,
+  aiohttp,
+  aiohttp-wsgi,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest7CheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  pytest-aiohttp,
+  pytest-asyncio,
+  requests,
+  setuptools,
+  setuptools-scm,
+  websocket-client,
+  websockets,
 }:
 
 buildPythonPackage rec {
   pname = "homematicip";
-  version = "1.1.0";
+  version = "1.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -28,15 +29,15 @@ buildPythonPackage rec {
     owner = "hahn-th";
     repo = "homematicip-rest-api";
     rev = "refs/tags/${version}";
-    hash = "sha256-tx7/amXG3rLdUFgRPQcuf57qkBLAPxPWjLGSO7MrcWU=";
+    hash = "sha256-VMHInAmNO0Nw0ohZnIJ9c77h35YSSNNnPNYaUpBlKOQ=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aenum
     aiohttp
     async-timeout
@@ -52,44 +53,42 @@ buildPythonPackage rec {
     pytest7CheckHook
   ];
 
-  pytestFlagsArray = [
-    "--asyncio-mode=auto"
-  ];
+  pytestFlagsArray = [ "--asyncio-mode=auto" ];
 
-  disabledTests = [
-    # Assert issues with datetime
-    "test_contact_interface_device"
-    "test_dimmer"
-    "test_external_device"
-    "test_heating_failure_alert_group"
-    "test_heating"
-    "test_humidity_warning_rule_group"
-    "test_meta_group"
-    "test_pluggable_switch_measuring"
-    "test_rotary_handle_sensor"
-    "test_security_group"
-    "test_security_zone"
-    "test_shutter_device"
-    "test_smoke_detector"
-    "test_switching_group"
-    "test_temperature_humidity_sensor_outdoor"
-    "test_wall_mounted_thermostat_pro"
-    "test_weather_sensor"
-    # Random failures
-    "test_home_getSecurityJournal"
-    "test_home_unknown_types"
-    # Requires network access
-    "test_websocket"
-  ] ++ lib.optionals (pythonAtLeast "3.10") [
-    "test_connection_lost"
-    "test_user_disconnect_and_reconnect"
-    "test_ws_message"
-    "test_ws_no_pong"
-  ];
+  disabledTests =
+    [
+      # Assert issues with datetime
+      "test_contact_interface_device"
+      "test_dimmer"
+      "test_external_device"
+      "test_heating_failure_alert_group"
+      "test_heating"
+      "test_humidity_warning_rule_group"
+      "test_meta_group"
+      "test_pluggable_switch_measuring"
+      "test_rotary_handle_sensor"
+      "test_security_group"
+      "test_security_zone"
+      "test_shutter_device"
+      "test_smoke_detector"
+      "test_switching_group"
+      "test_temperature_humidity_sensor_outdoor"
+      "test_wall_mounted_thermostat_pro"
+      "test_weather_sensor"
+      # Random failures
+      "test_home_getSecurityJournal"
+      "test_home_unknown_types"
+      # Requires network access
+      "test_websocket"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.10") [
+      "test_connection_lost"
+      "test_user_disconnect_and_reconnect"
+      "test_ws_message"
+      "test_ws_no_pong"
+    ];
 
-  pythonImportsCheck = [
-    "homematicip"
-  ];
+  pythonImportsCheck = [ "homematicip" ];
 
   meta = with lib; {
     description = "Module for the homematicIP REST API";
diff --git a/pkgs/development/python-modules/homepluscontrol/default.nix b/pkgs/development/python-modules/homepluscontrol/default.nix
index 1e33118b191e7..7af19f73f6fec 100644
--- a/pkgs/development/python-modules/homepluscontrol/default.nix
+++ b/pkgs/development/python-modules/homepluscontrol/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, pyjwt
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyjwt,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/hoomd-blue/default.nix b/pkgs/development/python-modules/hoomd-blue/default.nix
index 421ef73275c9e..ebadd55526986 100644
--- a/pkgs/development/python-modules/hoomd-blue/default.nix
+++ b/pkgs/development/python-modules/hoomd-blue/default.nix
@@ -1,18 +1,23 @@
-{ lib, stdenv, fetchgit
-, cmake, pkgconfig
-, python
-, mpi ? null
+{
+  lib,
+  stdenv,
+  fetchgit,
+  cmake,
+  pkgconfig,
+  python,
+  mpi ? null,
 }:
 
-let components = {
-     cgcmm = true;
-     depreciated = true;
-     hpmc = true;
-     md = true;
-     metal = true;
-   };
-   onOffBool = b: if b then "ON" else "OFF";
-   withMPI = (mpi != null);
+let
+  components = {
+    cgcmm = true;
+    depreciated = true;
+    hpmc = true;
+    md = true;
+    metal = true;
+  };
+  onOffBool = b: if b then "ON" else "OFF";
+  withMPI = (mpi != null);
 in
 stdenv.mkDerivation rec {
   version = "2.3.4";
@@ -28,19 +33,21 @@ stdenv.mkDerivation rec {
     inherit components mpi;
   };
 
-  nativeBuildInputs = [ cmake pkgconfig ];
+  nativeBuildInputs = [
+    cmake
+    pkgconfig
+  ];
   buildInputs = lib.optionals withMPI [ mpi ];
-  propagatedBuildInputs = [ python.pkgs.numpy ]
-   ++ lib.optionals withMPI [ python.pkgs.mpi4py ];
+  propagatedBuildInputs = [ python.pkgs.numpy ] ++ lib.optionals withMPI [ python.pkgs.mpi4py ];
 
   dontAddPrefix = true;
   cmakeFlags = [
-       "-DENABLE_MPI=${onOffBool withMPI}"
-       "-DBUILD_CGCMM=${onOffBool components.cgcmm}"
-       "-DBUILD_DEPRECIATED=${onOffBool components.depreciated}"
-       "-DBUILD_HPMC=${onOffBool components.hpmc}"
-       "-DBUILD_MD=${onOffBool components.md}"
-       "-DBUILD_METAL=${onOffBool components.metal}"
+    "-DENABLE_MPI=${onOffBool withMPI}"
+    "-DBUILD_CGCMM=${onOffBool components.cgcmm}"
+    "-DBUILD_DEPRECIATED=${onOffBool components.depreciated}"
+    "-DBUILD_HPMC=${onOffBool components.hpmc}"
+    "-DBUILD_MD=${onOffBool components.md}"
+    "-DBUILD_METAL=${onOffBool components.metal}"
   ];
 
   preConfigure = ''
@@ -59,5 +66,4 @@ stdenv.mkDerivation rec {
     platforms = [ "x86_64-linux" ];
     maintainers = [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/hopcroftkarp/default.nix b/pkgs/development/python-modules/hopcroftkarp/default.nix
index 9386bdd861fc2..defbcdeaeb8de 100644
--- a/pkgs/development/python-modules/hopcroftkarp/default.nix
+++ b/pkgs/development/python-modules/hopcroftkarp/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/horizon-eda/default.nix b/pkgs/development/python-modules/horizon-eda/default.nix
index d2385e190e774..e02917523c226 100644
--- a/pkgs/development/python-modules/horizon-eda/default.nix
+++ b/pkgs/development/python-modules/horizon-eda/default.nix
@@ -1,19 +1,26 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, callPackage
-, horizon-eda
-, mesa
-, pycairo
-, python
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  callPackage,
+  horizon-eda,
+  mesa,
+  pycairo,
+  python,
+  pythonOlder,
 }:
 
 let
   base = horizon-eda.passthru.base;
 in
 buildPythonPackage {
-  inherit (base) pname version src meta CASROOT;
+  inherit (base)
+    pname
+    version
+    src
+    meta
+    CASROOT
+    ;
 
   pyproject = false;
 
@@ -25,13 +32,11 @@ buildPythonPackage {
     python
   ];
 
-  propagatedBuildInputs = [
-    pycairo
-  ];
+  propagatedBuildInputs = [ pycairo ];
 
   nativeBuildInputs = base.nativeBuildInputs;
 
-  buildFlags = ["pymodule"];
+  buildFlags = [ "pymodule" ];
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/development/python-modules/howdoi/default.nix b/pkgs/development/python-modules/howdoi/default.nix
index 4a910af1b988c..dc614456f8926 100644
--- a/pkgs/development/python-modules/howdoi/default.nix
+++ b/pkgs/development/python-modules/howdoi/default.nix
@@ -1,19 +1,20 @@
-{ stdenv
-, lib
-, appdirs
-, buildPythonPackage
-, cachelib
-, colorama
-, cssselect
-, fetchFromGitHub
-, keep
-, lxml
-, pygments
-, pyquery
-, requests
-, rich
-, pytestCheckHook
-, pythonOlder
+{
+  stdenv,
+  lib,
+  appdirs,
+  buildPythonPackage,
+  cachelib,
+  colorama,
+  cssselect,
+  fetchFromGitHub,
+  keep,
+  lxml,
+  pygments,
+  pyquery,
+  requests,
+  rich,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -43,21 +44,15 @@ buildPythonPackage rec {
     rich
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export HOME=$(mktemp -d)
   '';
 
-  disabledTests = [
-    "test_colorize"
-  ];
+  disabledTests = [ "test_colorize" ];
 
-  pythonImportsCheck = [
-    "howdoi"
-  ];
+  pythonImportsCheck = [ "howdoi" ];
 
   meta = with lib; {
     broken = stdenv.isDarwin;
diff --git a/pkgs/development/python-modules/hpack/default.nix b/pkgs/development/python-modules/hpack/default.nix
index 1b45fc67d62ee..a6042315c3779 100644
--- a/pkgs/development/python-modules/hpack/default.nix
+++ b/pkgs/development/python-modules/hpack/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, hypothesis
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  hypothesis,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/hpccm/default.nix b/pkgs/development/python-modules/hpccm/default.nix
index 35380d7171b6f..1ab5e163a0bc4 100644
--- a/pkgs/development/python-modules/hpccm/default.nix
+++ b/pkgs/development/python-modules/hpccm/default.nix
@@ -1,26 +1,40 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, six
-, archspec
-, pytestCheckHook
-, pytest-xdist
+{
+  lib,
+  archspec,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "hpccm";
-  version = "22.10.0";
-  format = "setuptools";
+  version = "23.11.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "NVIDIA";
     repo = "hpc-container-maker";
-    rev = "v${version}";
-    hash = "sha256-dLMbwtvn7HTVVlWHAzXU19ERdJxytf9NlnqMXW6ShKI=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-uB2+1Nc+SgPzB5hJI1L6yD8gn0hGOkIZF6rejq4rYg8=";
   };
 
-  propagatedBuildInputs = [ six archspec ];
-  nativeCheckInputs = [ pytestCheckHook pytest-xdist ];
+  build-system = [ setuptools ];
+
+  dependencies = [
+    six
+    archspec
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-xdist
+  ];
 
   disabledTests = [
     # tests require git
@@ -32,10 +46,11 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "HPC Container Maker";
-    mainProgram = "hpccm";
     homepage = "https://github.com/NVIDIA/hpc-container-maker";
+    changelog = "https://github.com/NVIDIA/hpc-container-maker/blob/v${version}/CHANGELOG.md";
     license = licenses.asl20;
-    platforms = platforms.x86;
     maintainers = with maintainers; [ atila ];
+    mainProgram = "hpccm";
+    platforms = platforms.x86;
   };
 }
diff --git a/pkgs/development/python-modules/hs-dbus-signature/default.nix b/pkgs/development/python-modules/hs-dbus-signature/default.nix
index 9b96788589517..2656b55e7f0f1 100644
--- a/pkgs/development/python-modules/hs-dbus-signature/default.nix
+++ b/pkgs/development/python-modules/hs-dbus-signature/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, hypothesis
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  hypothesis,
 }:
 
 buildPythonPackage rec {
@@ -23,7 +24,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "hs_dbus_signature" ];
 
   meta = with lib; {
-    description = "A Hypothesis Strategy for Generating Arbitrary DBus Signatures";
+    description = "Hypothesis Strategy for Generating Arbitrary DBus Signatures";
     homepage = "https://github.com/stratis-storage/hs-dbus-signature";
     license = licenses.mpl20;
     maintainers = with maintainers; [ nickcao ];
diff --git a/pkgs/development/python-modules/hsaudiotag3k/default.nix b/pkgs/development/python-modules/hsaudiotag3k/default.nix
index 8fd245d17868d..39d4546ee53ea 100644
--- a/pkgs/development/python-modules/hsaudiotag3k/default.nix
+++ b/pkgs/development/python-modules/hsaudiotag3k/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,8 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A pure Python library that lets one to read metadata from media files";
+    description = "Pure Python library that lets one to read metadata from media files";
     homepage = "http://hg.hardcoded.net/hsaudiotag/";
     license = licenses.bsd3;
   };
-
 }
diff --git a/pkgs/development/python-modules/hsh/default.nix b/pkgs/development/python-modules/hsh/default.nix
index 2bc68d3aac9d4..0b724c03d0896 100644
--- a/pkgs/development/python-modules/hsh/default.nix
+++ b/pkgs/development/python-modules/hsh/default.nix
@@ -1,13 +1,14 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, commandlines
-, unittestCheckHook
-, pexpect
-, naked
-, nix-update-script
-, setuptools
-, wheel
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  commandlines,
+  unittestCheckHook,
+  pexpect,
+  naked,
+  nix-update-script,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,16 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ commandlines ];
 
-  nativeBuildInputs = [ setuptools wheel ];
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
 
-  nativeCheckInputs = [ unittestCheckHook pexpect naked ];
+  nativeCheckInputs = [
+    unittestCheckHook
+    pexpect
+    naked
+  ];
 
   preCheck = "cd tests";
 
diff --git a/pkgs/development/python-modules/hsluv/default.nix b/pkgs/development/python-modules/hsluv/default.nix
index 9ddf64330770d..063137b74e4d9 100644
--- a/pkgs/development/python-modules/hsluv/default.nix
+++ b/pkgs/development/python-modules/hsluv/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-bjivmPTU3Gp3pcC0ru4GSZANdhPqS1QSTMeiPGN8GCI=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "hsluv" ];
 
diff --git a/pkgs/development/python-modules/hstspreload/default.nix b/pkgs/development/python-modules/hstspreload/default.nix
index 692cd31354ed0..59da4385026f9 100644
--- a/pkgs/development/python-modules/hstspreload/default.nix
+++ b/pkgs/development/python-modules/hstspreload/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "hstspreload";
-  version = "2024.5.1";
+  version = "2024.6.1";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "sethmlarson";
     repo = "hstspreload";
     rev = "refs/tags/${version}";
-    hash = "sha256-Ut2VhU2+o4wm4WY4zz/25EyDLvrYoBu3iVFkx3FZVYo=";
+    hash = "sha256-eeZR+UDQ6Cp1WTcz2duSTgQ+7vrF9T08aVT0mJk6ctA=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/html-sanitizer/default.nix b/pkgs/development/python-modules/html-sanitizer/default.nix
index e1ecf2764e4f7..5db9e10b2679c 100644
--- a/pkgs/development/python-modules/html-sanitizer/default.nix
+++ b/pkgs/development/python-modules/html-sanitizer/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, lxml
-, beautifulsoup4
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  lxml,
+  beautifulsoup4,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-NWJLD70783Ie6efyCvGopxMIlP3rLz0uM/D1rLQwBXE=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     lxml
     beautifulsoup4
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "html_sanitizer/tests.py"
-  ];
+  pytestFlagsArray = [ "html_sanitizer/tests.py" ];
 
   disabledTests = [
     # Tests are sensitive to output
@@ -45,9 +40,7 @@ buildPythonPackage rec {
     "test_10_broken_html"
   ];
 
-  pythonImportsCheck = [
-    "html_sanitizer"
-  ];
+  pythonImportsCheck = [ "html_sanitizer" ];
 
   meta = with lib; {
     description = "Allowlist-based and very opinionated HTML sanitizer";
diff --git a/pkgs/development/python-modules/html-tag-names/default.nix b/pkgs/development/python-modules/html-tag-names/default.nix
index 543ef8686dc95..e61fee5d89abf 100644
--- a/pkgs/development/python-modules/html-tag-names/default.nix
+++ b/pkgs/development/python-modules/html-tag-names/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-2YywP4/0yocejuJwanC5g9BR7mcy5C+zMhCjNZ9FRH4=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/html-text/default.nix b/pkgs/development/python-modules/html-text/default.nix
index 00d2fb426d381..43d7ca228bb0e 100644
--- a/pkgs/development/python-modules/html-text/default.nix
+++ b/pkgs/development/python-modules/html-text/default.nix
@@ -1,37 +1,43 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, lxml
-, six
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxml,
+  lxml-html-clean,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "html-text";
-  version = "0.5.2";
-  format = "setuptools";
+  version = "0.6.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
-    owner = "TeamHG-Memex";
+    owner = "zytedata";
     repo = "html-text";
-    rev = version;
-    hash = "sha256-jw/hpz0QfcgP5OEJcmre0h1OzOfpPtaROxHm+YUqces=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-e9gkibQv8mn1Jbt77UmpauOeTqhJQhY9R5Sge/iYi+U=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     lxml
+    lxml-html-clean
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-    six
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "html_text" ];
 
   meta = with lib; {
     description = "Extract text from HTML";
-    homepage = "https://github.com/TeamHG-Memex/html-text";
+    homepage = "https://github.com/zytedata/html-text";
+    changelog = "https://github.com/zytedata/html-text/blob/${version}/CHANGES.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ ambroisie ];
   };
diff --git a/pkgs/development/python-modules/html-void-elements/default.nix b/pkgs/development/python-modules/html-void-elements/default.nix
index bef3d92080266..41cbefbf7adab 100644
--- a/pkgs/development/python-modules/html-void-elements/default.nix
+++ b/pkgs/development/python-modules/html-void-elements/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-Q5OEczTdgCCyoOsKv3MKRE3w4t/qyPG4YKbF19jlC88=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/html2image/default.nix b/pkgs/development/python-modules/html2image/default.nix
index 2b99f6bffeee6..4d7252b1c3055 100644
--- a/pkgs/development/python-modules/html2image/default.nix
+++ b/pkgs/development/python-modules/html2image/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, requests
-, websocket-client
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  requests,
+  websocket-client,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     --replace "poetry>=" "poetry-core>="
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     requests
@@ -36,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "html2image" ];
 
   meta = with lib; {
-    description = "A package acting as a wrapper around the headless mode of existing web browsers to generate images from URLs and from HTML+CSS strings or files";
+    description = "Package acting as a wrapper around the headless mode of existing web browsers to generate images from URLs and from HTML+CSS strings or files";
     homepage = "https://github.com/vgalin/html2image";
     changelog = "https://github.com/vgalin/html2image/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/html2text/default.nix b/pkgs/development/python-modules/html2text/default.nix
index bda7879eab0a4..236b312e343da 100644
--- a/pkgs/development/python-modules/html2text/default.nix
+++ b/pkgs/development/python-modules/html2text/default.nix
@@ -1,38 +1,38 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "html2text";
   version = "2024.2.26";
   pyproject = true;
+
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "Alir3z4";
     repo = "html2text";
     rev = "refs/tags/${version}";
-    sha256 = "sha256-1CLkTFR+/XQ428WjMF7wliyAG6CB+n8JSsLDdLHPO7I=";
+    hash = "sha256-1CLkTFR+/XQ428WjMF7wliyAG6CB+n8JSsLDdLHPO7I=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "html2text" ];
 
   meta = with lib; {
-    changelog = "https://github.com/Alir3z4/html2text/blob/${src.rev}/ChangeLog.rst";
     description = "Turn HTML into equivalent Markdown-structured text";
     homepage = "https://github.com/Alir3z4/html2text/";
+    changelog = "https://github.com/Alir3z4/html2text/blob/${src.rev}/ChangeLog.rst";
     license = licenses.gpl3Only;
+    maintainers = with maintainers; [ ];
     mainProgram = "html2text";
-    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/html5-parser/default.nix b/pkgs/development/python-modules/html5-parser/default.nix
index 67f05cb8e7f63..6658642d4a0ef 100644
--- a/pkgs/development/python-modules/html5-parser/default.nix
+++ b/pkgs/development/python-modules/html5-parser/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, chardet
-, fetchFromGitHub
-, lxml
-, pkg-config
-, pkgs
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  chardet,
+  fetchFromGitHub,
+  lxml,
+  pkg-config,
+  pkgs,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +25,9 @@ buildPythonPackage rec {
     hash = "sha256-0Qn+To/d3+HMx+KhhgJBEHVYPOfIeBnngBraY7r4uSs=";
   };
 
-  nativeBuildInputs = [
-    pkg-config
-  ];
+  nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [
-    pkgs.libxml2
-  ];
+  buildInputs = [ pkgs.libxml2 ];
 
   propagatedBuildInputs = [
     chardet
@@ -42,13 +39,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "html5_parser"
-  ];
+  pythonImportsCheck = [ "html5_parser" ];
 
-  pytestFlagsArray = [
-    "test/*.py"
-  ];
+  pytestFlagsArray = [ "test/*.py" ];
 
   meta = with lib; {
     description = "Fast C based HTML 5 parsing for python";
diff --git a/pkgs/development/python-modules/html5lib/default.nix b/pkgs/development/python-modules/html5lib/default.nix
index b35cfee63dad7..0d294f93b7a64 100644
--- a/pkgs/development/python-modules/html5lib/default.nix
+++ b/pkgs/development/python-modules/html5lib/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, six
-, webencodings
-, mock
-, pytest-expect
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  six,
+  webencodings,
+  mock,
+  pytest-expect,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -51,6 +52,9 @@ buildPythonPackage rec {
       major web browsers.
     '';
     license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ domenkozar prikhi ];
+    maintainers = with lib.maintainers; [
+      domenkozar
+      prikhi
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/html5tagger/default.nix b/pkgs/development/python-modules/html5tagger/default.nix
index e9a96b8ddd113..cf3b6ac8bf936 100644
--- a/pkgs/development/python-modules/html5tagger/default.nix
+++ b/pkgs/development/python-modules/html5tagger/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -16,16 +17,12 @@ buildPythonPackage rec {
     hash = "sha256-Or0EizZC9FMjTcbgecDvgGB09KNGyxHreSDojgB7ysg=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "html5tagger"
-  ];
+  pythonImportsCheck = [ "html5tagger" ];
 
   meta = with lib; {
     description = "Create HTML documents from Python";
diff --git a/pkgs/development/python-modules/htmllaundry/default.nix b/pkgs/development/python-modules/htmllaundry/default.nix
deleted file mode 100644
index 0c7a3b8df81ab..0000000000000
--- a/pkgs/development/python-modules/htmllaundry/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi, nose
-, six
-, lxml
-}:
-
-buildPythonPackage rec {
-  pname = "htmllaundry";
-  version = "2.2";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "9124f067d3c06ef2613e2cc246b2fde2299802280a8b0e60dc504137085f0334";
-  };
-
-  buildInputs = [ nose ];
-  propagatedBuildInputs = [ six lxml ];
-
-  # some tests fail, probably because of changes in lxml
-  # not relevant for me, if releavnt for you, fix it...
-  doCheck = false;
-
-  meta = with lib; {
-    description = "Simple HTML cleanup utilities";
-    license = licenses.bsd3;
-    homepage = "https://pypi.org/project/htmllaundry/";
-  };
-
-}
diff --git a/pkgs/development/python-modules/htmllistparse/default.nix b/pkgs/development/python-modules/htmllistparse/default.nix
index 01fa41eae2fee..746726bb36374 100644
--- a/pkgs/development/python-modules/htmllistparse/default.nix
+++ b/pkgs/development/python-modules/htmllistparse/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, beautifulsoup4
-, html5lib
-, requests
-, fusepy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  beautifulsoup4,
+  html5lib,
+  requests,
+  fusepy,
 }:
 
 buildPythonPackage rec {
@@ -19,14 +20,17 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [ setuptools ];
-  propagatedBuildInputs = [ beautifulsoup4 html5lib requests fusepy ];
+  propagatedBuildInputs = [
+    beautifulsoup4
+    html5lib
+    requests
+    fusepy
+  ];
 
   # upstream has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "htmllistparse"
-  ];
+  pythonImportsCheck = [ "htmllistparse" ];
 
   meta = with lib; {
     homepage = "https://github.com/gumblex/htmllisting-parser";
diff --git a/pkgs/development/python-modules/htmlmin/default.nix b/pkgs/development/python-modules/htmlmin/default.nix
index 0f0d5222feae8..fd19103e41ace 100644
--- a/pkgs/development/python-modules/htmlmin/default.nix
+++ b/pkgs/development/python-modules/htmlmin/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "htmlmin";
@@ -13,10 +17,10 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A configurable HTML Minifier with safety features";
+    description = "Configurable HTML Minifier with safety features";
     mainProgram = "htmlmin";
     homepage = "https://pypi.python.org/pypi/htmlmin";
     license = licenses.bsd3;
-    maintainers = [];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/htseq/default.nix b/pkgs/development/python-modules/htseq/default.nix
index 9d69a8bfef542..f5327c0edb400 100644
--- a/pkgs/development/python-modules/htseq/default.nix
+++ b/pkgs/development/python-modules/htseq/default.nix
@@ -1,29 +1,79 @@
-{ lib, buildPythonPackage, fetchFromGitHub, cython, numpy, pysam, matplotlib, python, isPy27, isPy3k }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  swig,
+  cython,
+  matplotlib,
+  numpy,
+  pandas,
+  pysam,
+  setuptools,
+  pytestCheckHook,
+  nix-update-script,
+}:
 buildPythonPackage rec {
-  version = "0.12.4";
-  format = "setuptools";
   pname = "htseq";
+  version = "2.0.4";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "htseq";
     repo = "htseq";
     rev = "release_${version}";
-    sha256 = "0y7vh249sljqjnv81060w4xkdx6f1y5zdqkh38yk926x6v9riijm";
+    hash = "sha256-7ocrmuj9LOtPz9XbI5rKGcdE5JbFz/pZh00Nie65XxE=";
   };
 
-  nativeBuildInputs = [ cython ];
-  propagatedBuildInputs = [ numpy pysam matplotlib ];
+  patches = [
+    # https://github.com/htseq/htseq/pull/84
+    (fetchpatch {
+      name = "replace-distutils-with-sysconfig.patch";
+      url = "https://github.com/htseq/htseq/commit/f0f1e464ee9aee56f0b44f905e7b3355b0bb8f29.patch";
+      hash = "sha256-yDYkXCPy+YFgnk1rnXwCB998aZwVd5nJeejZIgeEzAo=";
+    })
+  ];
 
-  checkPhase = lib.optionalString isPy27 ''
-    ${python.interpreter} python2/test/test_general.py
-  '' + lib.optionalString isPy3k ''
-    ${python.interpreter} python3/test/test_general.py
+  nativeBuildInputs = [ swig ];
+
+  build-system = [
+    cython
+    numpy
+    pysam
+    setuptools
+  ];
+
+  dependencies = [
+    numpy
+    pysam
+  ];
+
+  optional-dependencies = {
+    htseq-qa = [ matplotlib ];
+  };
+
+  pythonImportsCheck = [ "HTSeq" ];
+
+  nativeCheckInputs = [
+    pandas
+    pytestCheckHook
+  ] ++ optional-dependencies.htseq-qa;
+
+  preCheck = ''
+    rm -r src HTSeq
+    export PATH=$out/bin:$PATH
   '';
 
+  passthru.updateScript = nix-update-script {
+    extraArgs = [
+      "--version-regex"
+      "release_(.+)"
+    ];
+  };
+
   meta = with lib; {
     homepage = "https://htseq.readthedocs.io/";
-    description = "A framework to work with high-throughput sequencing data";
+    description = "Framework to work with high-throughput sequencing data";
     maintainers = with maintainers; [ unode ];
-    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/httmock/default.nix b/pkgs/development/python-modules/httmock/default.nix
index a305ec1f7baf5..6428b99868f2c 100644
--- a/pkgs/development/python-modules/httmock/default.nix
+++ b/pkgs/development/python-modules/httmock/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -27,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "httmock" ];
 
   meta = with lib; {
-    description = "A mocking library for requests";
+    description = "Mocking library for requests";
     homepage = "https://github.com/patrys/httmock";
     license = licenses.asl20;
     maintainers = with maintainers; [ nyanloutre ];
diff --git a/pkgs/development/python-modules/http-ece/default.nix b/pkgs/development/python-modules/http-ece/default.nix
index 0f69315edb6d1..4765b346752e6 100644
--- a/pkgs/development/python-modules/http-ece/default.nix
+++ b/pkgs/development/python-modules/http-ece/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchPypi
-, mock
-, pynose
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  mock,
+  pynose,
 }:
 
 buildPythonPackage rec {
@@ -24,7 +25,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ cryptography ];
 
-  nativeCheckInputs = [ mock pynose ];
+  nativeCheckInputs = [
+    mock
+    pynose
+  ];
 
   meta = with lib; {
     description = "Encipher HTTP Messages";
diff --git a/pkgs/development/python-modules/http-message-signatures/default.nix b/pkgs/development/python-modules/http-message-signatures/default.nix
index b9ccede6714eb..47041ff971fa3 100644
--- a/pkgs/development/python-modules/http-message-signatures/default.nix
+++ b/pkgs/development/python-modules/http-message-signatures/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, http-sfv
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
-, requests
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  http-sfv,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-Jsivw4lNA/2oqsOGGx8D4gUPftzuys877A9RXyapnSQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     cryptography
@@ -37,13 +36,9 @@ buildPythonPackage rec {
     requests
   ];
 
-  pytestFlagsArray = [
-    "test/test.py"
-  ];
+  pytestFlagsArray = [ "test/test.py" ];
 
-  pythonImportsCheck = [
-    "http_message_signatures"
-  ];
+  pythonImportsCheck = [ "http_message_signatures" ];
 
   meta = with lib; {
     description = "Requests authentication module for HTTP Signature";
diff --git a/pkgs/development/python-modules/http-parser/default.nix b/pkgs/development/python-modules/http-parser/default.nix
index 05cd4397dbf93..7e53465939f28 100644
--- a/pkgs/development/python-modules/http-parser/default.nix
+++ b/pkgs/development/python-modules/http-parser/default.nix
@@ -1,9 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cython
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cython,
+  setuptools,
+  pytestCheckHook,
+  fetchpatch,
 }:
 
 buildPythonPackage rec {
@@ -28,18 +30,24 @@ buildPythonPackage rec {
     make -B
   '';
 
-  pythonImportsCheck = [
-    "http_parser"
-  ];
+  pythonImportsCheck = [ "http_parser" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
+  # The imp module is deprecated since version 3.4, and was removed in 3.12
+  # https://docs.python.org/3.11/library/imp.html
+  # Fix from: https://github.com/benoitc/http-parser/pull/101/
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/benoitc/http-parser/commit/4d4984ce129253f9de475bfd3c683301c916e8b1.patch";
+      hash = "sha256-d3k1X41/D9PpPWsDety2AiYyLv9LJIhpkOo3a6qKcB8=";
+    })
   ];
 
-  meta = with lib; {
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  meta = {
     description = "HTTP request/response parser for python in C";
     homepage = "https://github.com/benoitc/http-parser";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    license = lib.licenses.mit;
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/http-sfv/default.nix b/pkgs/development/python-modules/http-sfv/default.nix
index 205b9c7423dd9..0afeba88c0827 100644
--- a/pkgs/development/python-modules/http-sfv/default.nix
+++ b/pkgs/development/python-modules/http-sfv/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-xf9bGDfsEcQnFQ2b1bLRGYug+H4e5jeV/LJstQtp6Bw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ typing-extensions ];
 
   # Tests require external data (https://github.com/httpwg/structured-field-tests)
   doCheck = false;
 
-  pythonImportsCheck = [
-    "http_sfv"
-  ];
+  pythonImportsCheck = [ "http_sfv" ];
 
   meta = with lib; {
     description = "Module to parse and serialise HTTP structured field values";
diff --git a/pkgs/development/python-modules/httpagentparser/default.nix b/pkgs/development/python-modules/httpagentparser/default.nix
index bc7a8e33f4aca..b85f773984533 100644
--- a/pkgs/development/python-modules/httpagentparser/default.nix
+++ b/pkgs/development/python-modules/httpagentparser/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # PyPi version does not include test directory
   doCheck = false;
 
-  pythonImportsCheck = [
-    "httpagentparser"
-  ];
+  pythonImportsCheck = [ "httpagentparser" ];
 
   meta = with lib; {
     description = "Module to extract OS, Browser, etc. information from http user agent string";
diff --git a/pkgs/development/python-modules/httpauth/default.nix b/pkgs/development/python-modules/httpauth/default.nix
index 032830d539651..e99a7eaea0f5c 100644
--- a/pkgs/development/python-modules/httpauth/default.nix
+++ b/pkgs/development/python-modules/httpauth/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
-  version = "0.3";
+  version = "0.4.1";
   format = "setuptools";
   pname = "httpauth";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0qas7876igyz978pgldp5r7n7pis8n4vf0v87gxr9l7p7if5lr3l";
+    sha256 = "sha256-C6rnFroAd5vOULBMwsLSyeSK5zPXOEgGHDSYt+Pm2dQ=";
   };
 
   doCheck = false;
@@ -21,5 +22,4 @@ buildPythonPackage rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/httpbin/default.nix b/pkgs/development/python-modules/httpbin/default.nix
index 076babe49b462..a4e867d981716 100644
--- a/pkgs/development/python-modules/httpbin/default.nix
+++ b/pkgs/development/python-modules/httpbin/default.nix
@@ -1,26 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, brotlicffi
-, decorator
-, flasgger
-, flask
-, greenlet
-, six
-, werkzeug
+  # dependencies
+  brotlicffi,
+  decorator,
+  flasgger,
+  flask,
+  greenlet,
+  six,
+  werkzeug,
 
-# optional-dependencies
-, gunicorn
-, gevent
+  # optional-dependencies
+  gunicorn,
+  gevent,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -35,12 +35,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     setuptools
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "greenlet"
-  ];
+  pythonRelaxDeps = [ "greenlet" ];
 
   propagatedBuildInputs = [
     brotlicffi
@@ -59,9 +56,7 @@ buildPythonPackage rec {
     ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Tests seems to be outdated
@@ -74,9 +69,7 @@ buildPythonPackage rec {
     "test_relative_redirect_n_higher_than_1"
   ];
 
-  pythonImportsCheck = [
-    "httpbin"
-  ];
+  pythonImportsCheck = [ "httpbin" ];
 
   meta = with lib; {
     description = "HTTP Request and Response Service";
diff --git a/pkgs/development/python-modules/httpcore/default.nix b/pkgs/development/python-modules/httpcore/default.nix
index df9ec754352ef..b1d64e6526be4 100644
--- a/pkgs/development/python-modules/httpcore/default.nix
+++ b/pkgs/development/python-modules/httpcore/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, anyio
-, buildPythonPackage
-, certifi
-, fetchFromGitHub
-, hatchling
-, hatch-fancy-pypi-readme
-, h11
-, h2
-, pproxy
-, pytest-asyncio
-, pytest-httpbin
-, pytest-trio
-, pytestCheckHook
-, pythonOlder
-, socksio
-, trio
-# for passthru.tests
-, httpx
-, httpx-socks
-, respx
+{
+  lib,
+  anyio,
+  buildPythonPackage,
+  certifi,
+  fetchFromGitHub,
+  hatchling,
+  hatch-fancy-pypi-readme,
+  h11,
+  h2,
+  pproxy,
+  pytest-asyncio,
+  pytest-httpbin,
+  pytest-trio,
+  pytestCheckHook,
+  pythonOlder,
+  socksio,
+  trio,
+  # for passthru.tests
+  httpx,
+  httpx-socks,
+  respx,
 }:
 
 buildPythonPackage rec {
@@ -46,18 +47,10 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    asyncio = [
-      anyio
-    ];
-    http2 = [
-      h2
-    ];
-    socks = [
-      socksio
-    ];
-    trio = [
-      trio
-    ];
+    asyncio = [ anyio ];
+    http2 = [ h2 ];
+    socks = [ socksio ];
+    trio = [ trio ];
   };
 
   nativeCheckInputs = [
@@ -68,9 +61,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "httpcore"
-  ];
+  pythonImportsCheck = [ "httpcore" ];
 
   __darwinAllowLocalNetworking = true;
 
@@ -80,7 +71,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/encode/httpcore/blob/${version}/CHANGELOG.md";
-    description = "A minimal low-level HTTP client";
+    description = "Minimal low-level HTTP client";
     homepage = "https://github.com/encode/httpcore";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ris ];
diff --git a/pkgs/development/python-modules/httpie-ntlm/default.nix b/pkgs/development/python-modules/httpie-ntlm/default.nix
index cbf3b29bcf03e..fddee51c99fcc 100644
--- a/pkgs/development/python-modules/httpie-ntlm/default.nix
+++ b/pkgs/development/python-modules/httpie-ntlm/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, httpie
-, requests-ntlm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  httpie,
+  requests-ntlm,
 }:
 
 buildPythonPackage rec {
@@ -15,7 +16,10 @@ buildPythonPackage rec {
     sha256 = "b1f757180c0bd60741ea16cf91fc53d47df402a5c287c4a61a14b335ea0552b3";
   };
 
-  propagatedBuildInputs = [ httpie requests-ntlm ];
+  propagatedBuildInputs = [
+    httpie
+    requests-ntlm
+  ];
 
   # Package have no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/httpie/default.nix b/pkgs/development/python-modules/httpie/default.nix
index 43f69ecd3c9bb..9802b960702f4 100644
--- a/pkgs/development/python-modules/httpie/default.nix
+++ b/pkgs/development/python-modules/httpie/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, installShellFiles
-, pandoc
-, pythonOlder
-# BuildInputs
-, charset-normalizer
-, defusedxml
-, multidict
-, pygments
-, requests
-, requests-toolbelt
-, setuptools
-, rich
-, pysocks
-# CheckInputs
-, pip
-, pytest-httpbin
-, pytest-lazy-fixture
-, pytest-mock
-, pytestCheckHook
-, responses
-, werkzeug
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  installShellFiles,
+  pandoc,
+  pythonOlder,
+  # BuildInputs
+  charset-normalizer,
+  defusedxml,
+  multidict,
+  pygments,
+  requests,
+  requests-toolbelt,
+  setuptools,
+  rich,
+  pysocks,
+  # CheckInputs
+  pip,
+  pytest-httpbin,
+  pytest-lazy-fixture,
+  pytest-mock,
+  pytestCheckHook,
+  responses,
+  werkzeug,
 }:
 
 buildPythonPackage rec {
@@ -81,46 +82,50 @@ buildPythonPackage rec {
     "tests"
   ];
 
-  pythonImportsCheck = [
-    "httpie"
-  ];
+  pythonImportsCheck = [ "httpie" ];
 
   disabledTestPaths = lib.optionals stdenv.isDarwin [
     # flaky
     "tests/test_plugins_cli.py"
   ];
 
-  disabledTests = [
-    # flaky
-    "test_stdin_read_warning"
-    # Re-evaluate those tests with the next release
-    "test_duplicate_keys_support_from_response"
-    "test_invalid_xml"
-    "test_json_formatter_with_body_preceded_by_non_json_data"
-    "test_pretty_options_with_and_without_stream_with_converter"
-    "test_response_mime_overwrite"
-    "test_terminal_output_response_charset_detection"
-    "test_terminal_output_response_charset_override"
-    "test_terminal_output_response_content_type_charset_with_stream"
-    "test_terminal_output_response_content_type_charset"
-    "test_valid_xml"
-    "test_xml_format_options"
-    "test_xml_xhtm"
-    # httpbin compatibility issues
-    "test_compress_form"
-    "test_binary_suppresses_when_terminal"
-    "test_binary_suppresses_when_not_terminal_but_pretty"
-    "test_binary_included_and_correct_when_suitable"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # flaky
-    "test_daemon_runner"
-  ];
+  disabledTests =
+    [
+      # flaky
+      "test_stdin_read_warning"
+      # Re-evaluate those tests with the next release
+      "test_duplicate_keys_support_from_response"
+      "test_invalid_xml"
+      "test_json_formatter_with_body_preceded_by_non_json_data"
+      "test_pretty_options_with_and_without_stream_with_converter"
+      "test_response_mime_overwrite"
+      "test_terminal_output_response_charset_detection"
+      "test_terminal_output_response_charset_override"
+      "test_terminal_output_response_content_type_charset_with_stream"
+      "test_terminal_output_response_content_type_charset"
+      "test_valid_xml"
+      "test_xml_format_options"
+      "test_xml_xhtm"
+      # httpbin compatibility issues
+      "test_compress_form"
+      "test_binary_suppresses_when_terminal"
+      "test_binary_suppresses_when_not_terminal_but_pretty"
+      "test_binary_included_and_correct_when_suitable"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # flaky
+      "test_daemon_runner"
+    ];
 
   meta = with lib; {
-    description = "A command line HTTP client whose goal is to make CLI human-friendly";
+    description = "Command line HTTP client whose goal is to make CLI human-friendly";
     homepage = "https://httpie.org/";
     changelog = "https://github.com/httpie/httpie/blob/${version}/CHANGELOG.md";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ antono relrod schneefux ];
+    maintainers = with maintainers; [
+      antono
+      relrod
+      schneefux
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/httplib2/default.nix b/pkgs/development/python-modules/httplib2/default.nix
index aa4abf313d201..303fccac56086 100644
--- a/pkgs/development/python-modules/httplib2/default.nix
+++ b/pkgs/development/python-modules/httplib2/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, isPy27
-, mock
-, pyparsing
-, pytest-forked
-, pytest-randomly
-, pytest-timeout
-, pytestCheckHook
-, pythonAtLeast
-, six
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  isPy27,
+  mock,
+  pyparsing,
+  pytest-forked,
+  pytest-randomly,
+  pytest-timeout,
+  pytestCheckHook,
+  pythonAtLeast,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     sed -i "/--cov/d" setup.cfg
   '';
 
-  propagatedBuildInputs = [
-    pyparsing
-  ];
+  propagatedBuildInputs = [ pyparsing ];
 
   nativeCheckInputs = [
     cryptography
@@ -49,32 +48,30 @@ buildPythonPackage rec {
   # Don't run tests for older Pythons
   doCheck = pythonAtLeast "3.9";
 
-  disabledTests = [
-    # ValueError: Unable to load PEM file.
-    # https://github.com/httplib2/httplib2/issues/192#issuecomment-993165140
-    "test_client_cert_password_verified"
+  disabledTests =
+    [
+      # ValueError: Unable to load PEM file.
+      # https://github.com/httplib2/httplib2/issues/192#issuecomment-993165140
+      "test_client_cert_password_verified"
 
-    # improper pytest marking
-    "test_head_301"
-    "test_303"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # fails with "ConnectionResetError: [Errno 54] Connection reset by peer"
-    "test_connection_close"
-    # fails with HTTP 408 Request Timeout, instead of expected 200 OK
-    "test_timeout_subsequent"
-    "test_connection_close"
-  ];
+      # improper pytest marking
+      "test_head_301"
+      "test_303"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # fails with "ConnectionResetError: [Errno 54] Connection reset by peer"
+      "test_connection_close"
+      # fails with HTTP 408 Request Timeout, instead of expected 200 OK
+      "test_timeout_subsequent"
+      "test_connection_close"
+    ];
 
-  pytestFlagsArray = [
-    "--ignore python2"
-  ];
+  pytestFlagsArray = [ "--ignore python2" ];
 
-  pythonImportsCheck = [
-    "httplib2"
-  ];
+  pythonImportsCheck = [ "httplib2" ];
 
   meta = with lib; {
-    description = "A comprehensive HTTP client library";
+    description = "Comprehensive HTTP client library";
     homepage = "https://github.com/httplib2/httplib2";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/httpretty/default.nix b/pkgs/development/python-modules/httpretty/default.nix
index ecde40353f316..38a386dc19c3f 100644
--- a/pkgs/development/python-modules/httpretty/default.nix
+++ b/pkgs/development/python-modules/httpretty/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, sure
-, six
-, pytest
-, freezegun
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  sure,
+  six,
+  pytest,
+  freezegun,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/httpserver/default.nix b/pkgs/development/python-modules/httpserver/default.nix
index 6d13740758863..9b65a6341ced6 100644
--- a/pkgs/development/python-modules/httpserver/default.nix
+++ b/pkgs/development/python-modules/httpserver/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchPypi, buildPythonPackage, docopt, pythonOlder }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  docopt,
+}:
 
 buildPythonPackage rec {
   pname = "httpserver";
@@ -11,9 +16,6 @@ buildPythonPackage rec {
   # drivers.
   doCheck = false;
 
-  # Because it uses asyncio
-  disabled = pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     sha256 = "1q62g324dvb0hqdwwrnj41sqr4d3ly78v9nc26rz1whj4pwdmhsv";
diff --git a/pkgs/development/python-modules/httpsig/default.nix b/pkgs/development/python-modules/httpsig/default.nix
index fe7ed11c2fffe..f18ee0857bfc5 100644
--- a/pkgs/development/python-modules/httpsig/default.nix
+++ b/pkgs/development/python-modules/httpsig/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, setuptools-scm
-, pycryptodome
-, requests
-, six
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  pycryptodome,
+  requests,
+  six,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "httpsig" ];
 
diff --git a/pkgs/development/python-modules/httptools/default.nix b/pkgs/development/python-modules/httptools/default.nix
index 116ab28dc9895..cc91c40429926 100644
--- a/pkgs/development/python-modules/httptools/default.nix
+++ b/pkgs/development/python-modules/httptools/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,12 +20,10 @@ buildPythonPackage rec {
   # Tests are not included in pypi tarball
   doCheck = false;
 
-  pythonImportsCheck = [
-    "httptools"
-  ];
+  pythonImportsCheck = [ "httptools" ];
 
   meta = with lib; {
-    description = "A collection of framework independent HTTP protocol utils";
+    description = "Collection of framework independent HTTP protocol utils";
     homepage = "https://github.com/MagicStack/httptools";
     changelog = "https://github.com/MagicStack/httptools/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/httpx-auth/default.nix b/pkgs/development/python-modules/httpx-auth/default.nix
index 5fc267bfb25f2..b811a2c1c0820 100644
--- a/pkgs/development/python-modules/httpx-auth/default.nix
+++ b/pkgs/development/python-modules/httpx-auth/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, httpx
-, pyjwt
-, pytest-asyncio
-, pytest-httpx
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
-, time-machine
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpx,
+  pyjwt,
+  pytest-asyncio,
+  pytest-httpx,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  time-machine,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    httpx
-  ];
+  propagatedBuildInputs = [ httpx ];
 
   nativeCheckInputs = [
     pyjwt
@@ -43,9 +42,7 @@ buildPythonPackage rec {
     time-machine
   ];
 
-  pythonImportsCheck = [
-    "httpx_auth"
-  ];
+  pythonImportsCheck = [ "httpx_auth" ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/httpx-ntlm/default.nix b/pkgs/development/python-modules/httpx-ntlm/default.nix
index 8d8a5e838b793..de83c397d68aa 100644
--- a/pkgs/development/python-modules/httpx-ntlm/default.nix
+++ b/pkgs/development/python-modules/httpx-ntlm/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, httpx
-, pyspnego
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  httpx,
+  pyspnego,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
   # https://github.com/ulodciv/httpx-ntlm/issues/5
   doCheck = false;
 
-  pythonImportsCheck = [
-    "httpx_ntlm"
-  ];
+  pythonImportsCheck = [ "httpx_ntlm" ];
 
   meta = with lib; {
     description = "NTLM authentication support for HTTPX";
diff --git a/pkgs/development/python-modules/httpx-socks/default.nix b/pkgs/development/python-modules/httpx-socks/default.nix
index 65dedd26c02fc..1e93ee5ac744f 100644
--- a/pkgs/development/python-modules/httpx-socks/default.nix
+++ b/pkgs/development/python-modules/httpx-socks/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, curio
-, fetchFromGitHub
-, flask
-, httpcore
-, httpx
-, hypercorn
-, pytest-asyncio
-, pytest-trio
-, pytestCheckHook
-, python-socks
-, pythonOlder
-, setuptools
-, sniffio
-, starlette
-, tiny-proxy
-, trio
-, trustme
-, yarl
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  curio,
+  fetchFromGitHub,
+  flask,
+  httpcore,
+  httpx,
+  hypercorn,
+  pytest-asyncio,
+  pytest-trio,
+  pytestCheckHook,
+  python-socks,
+  pythonOlder,
+  setuptools,
+  sniffio,
+  starlette,
+  tiny-proxy,
+  trio,
+  trustme,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -35,9 +36,7 @@ buildPythonPackage rec {
     hash = "sha256-9v5DfxEtM7jq+b8wR0M1klTSnSdFjQ4aDl8ZSZWxbFA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     httpx
@@ -46,12 +45,8 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    asyncio = [
-      async-timeout
-    ];
-    trio = [
-      trio
-    ];
+    asyncio = [ async-timeout ];
+    trio = [ trio ];
   };
 
   __darwinAllowLocalNetworking = true;
@@ -68,9 +63,7 @@ buildPythonPackage rec {
     yarl
   ];
 
-  pythonImportsCheck = [
-    "httpx_socks"
-  ];
+  pythonImportsCheck = [ "httpx_socks" ];
 
   disabledTests = [
     # Tests don't work in the sandbox
diff --git a/pkgs/development/python-modules/httpx-ws/default.nix b/pkgs/development/python-modules/httpx-ws/default.nix
new file mode 100644
index 0000000000000..fd02d918f04f4
--- /dev/null
+++ b/pkgs/development/python-modules/httpx-ws/default.nix
@@ -0,0 +1,68 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  hatchling,
+  anyio,
+  httpcore,
+  httpx,
+  wsproto,
+  pytestCheckHook,
+  starlette,
+  trio,
+  uvicorn,
+}:
+
+buildPythonPackage rec {
+  pname = "httpx-ws";
+  version = "0.6.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "frankie567";
+    repo = "httpx-ws";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-eDc21FiGHi98doS4Zbubb/MVw4IjQ1q496TFHCX4xB4=";
+  };
+
+  # we don't need to use the hatch-regex-commit plugin
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail 'source = "regex_commit"' "" \
+      --replace-fail 'commit_extra_args = ["-e"]' "" \
+      --replace-fail '"hatch-regex-commit"' "" \
+      --replace-fail 'addopts = "--cov=httpx_ws/ --cov-report=term-missing"' ""
+  '';
+
+  build-system = [ hatchling ];
+
+  dependencies = [
+    anyio
+    httpcore
+    httpx
+    wsproto
+  ];
+
+  pythonImportsCheck = [ "httpx_ws" ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    starlette
+    trio
+    uvicorn
+  ];
+
+  disabledTestPaths = [
+    # hang
+    "tests/test_api.py"
+  ];
+
+  meta = with lib; {
+    description = "WebSocket support for HTTPX";
+    homepage = "https://github.com/frankie567/httpx-ws";
+    license = licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/httpx/default.nix b/pkgs/development/python-modules/httpx/default.nix
index 5c6a296820bef..4d4c264ea015e 100644
--- a/pkgs/development/python-modules/httpx/default.nix
+++ b/pkgs/development/python-modules/httpx/default.nix
@@ -1,31 +1,32 @@
-{ lib
-, stdenv
-, anyio
-, brotli
-, brotlicffi
-, buildPythonPackage
-, certifi
-, chardet
-, click
-, fetchFromGitHub
-, h2
-, hatch-fancy-pypi-readme
-, hatchling
-, httpcore
-, idna
-, isPyPy
-, multipart
-, pygments
-, python
-, pythonOlder
-, rich
-, sniffio
-, socksio
-, pytestCheckHook
-, pytest-asyncio
-, pytest-trio
-, trustme
-, uvicorn
+{
+  lib,
+  stdenv,
+  anyio,
+  brotli,
+  brotlicffi,
+  buildPythonPackage,
+  certifi,
+  chardet,
+  click,
+  fetchFromGitHub,
+  h2,
+  hatch-fancy-pypi-readme,
+  hatchling,
+  httpcore,
+  idna,
+  isPyPy,
+  multipart,
+  pygments,
+  python,
+  pythonOlder,
+  rich,
+  sniffio,
+  socksio,
+  pytestCheckHook,
+  pytest-asyncio,
+  pytest-trio,
+  trustme,
+  uvicorn,
 }:
 
 buildPythonPackage rec {
@@ -56,17 +57,9 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    http2 = [
-      h2
-    ];
-    socks = [
-      socksio
-    ];
-    brotli = if isPyPy then [
-      brotlicffi
-    ] else [
-      brotli
-    ];
+    http2 = [ h2 ];
+    socks = [ socksio ];
+    brotli = if isPyPy then [ brotlicffi ] else [ brotli ];
     cli = [
       click
       rich
@@ -93,8 +86,10 @@ buildPythonPackage rec {
   '';
 
   pytestFlagsArray = [
-    "-W" "ignore::DeprecationWarning"
-    "-W" "ignore::trio.TrioDeprecationWarning"
+    "-W"
+    "ignore::DeprecationWarning"
+    "-W"
+    "ignore::trio.TrioDeprecationWarning"
   ];
 
   disabledTests = [
@@ -105,19 +100,15 @@ buildPythonPackage rec {
     "test_sync_proxy_close"
   ];
 
-  disabledTestPaths = [
-    "tests/test_main.py"
-  ];
+  disabledTestPaths = [ "tests/test_main.py" ];
 
-  pythonImportsCheck = [
-    "httpx"
-  ];
+  pythonImportsCheck = [ "httpx" ];
 
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
     changelog = "https://github.com/encode/httpx/blob/${src.rev}/CHANGELOG.md";
-    description = "The next generation HTTP client";
+    description = "Next generation HTTP client";
     mainProgram = "httpx";
     homepage = "https://github.com/encode/httpx";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/huawei-lte-api/default.nix b/pkgs/development/python-modules/huawei-lte-api/default.nix
index 4aa7b40ec2daf..15c7fcf81e0d7 100644
--- a/pkgs/development/python-modules/huawei-lte-api/default.nix
+++ b/pkgs/development/python-modules/huawei-lte-api/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pycryptodomex
-, pytestCheckHook
-, requests
-, xmltodict
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pycryptodomex,
+  pytestCheckHook,
+  requests,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     xmltodict
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [
     "huawei_lte_api.AuthorizedConnection"
diff --git a/pkgs/development/python-modules/huey/default.nix b/pkgs/development/python-modules/huey/default.nix
index 0b0b02b09714f..11d41ca0334d0 100644
--- a/pkgs/development/python-modules/huey/default.nix
+++ b/pkgs/development/python-modules/huey/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, redis
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  redis,
 }:
 
 buildPythonPackage rec {
   pname = "huey";
-  version = "2.5.0";
+  version = "2.5.1";
 
   format = "pyproject";
 
@@ -16,7 +17,7 @@ buildPythonPackage rec {
     owner = "coleifer";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-t767eqZ6U12mG8nWEYC9Hoq/jW2yfrPkCxB3/xLKQww=";
+    hash = "sha256-0oiYmLOwUsZjq7mR0nXwS00VVsLWOXY25whw6262uEo=";
   };
 
   nativeBuildInputs = [
@@ -31,9 +32,9 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/coleifer/huey/blob/${src.rev}/CHANGELOG.md";
-    description = "A little task queue for python";
+    description = "Little task queue for python";
     homepage = "https://github.com/coleifer/huey";
     license = licenses.mit;
-    maintainers = [];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/hug/default.nix b/pkgs/development/python-modules/hug/default.nix
index 46dfab1cd52c4..2bd9cc3a20db3 100644
--- a/pkgs/development/python-modules/hug/default.nix
+++ b/pkgs/development/python-modules/hug/default.nix
@@ -1,10 +1,14 @@
-{ lib , buildPythonPackage, fetchFromGitHub, isPy27
-, falcon
-, requests
-, pytestCheckHook
-, marshmallow
-, mock
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy27,
+  falcon,
+  requests,
+  pytestCheckHook,
+  marshmallow,
+  mock,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +24,17 @@ buildPythonPackage rec {
     sha256 = "05rsv16g7ph100p8kl4l2jba0y4wcpp3xblc02mfp67zp1279vaq";
   };
 
-  propagatedBuildInputs = [ falcon requests ];
+  propagatedBuildInputs = [
+    falcon
+    requests
+  ];
 
-  nativeCheckInputs = [ mock marshmallow pytestCheckHook numpy ];
+  nativeCheckInputs = [
+    mock
+    marshmallow
+    pytestCheckHook
+    numpy
+  ];
 
   postPatch = ''
     substituteInPlace setup.py --replace '"pytest-runner"' ""
@@ -45,7 +57,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python framework that makes developing APIs as simple as possible, but no simpler";
+    description = "Python framework that makes developing APIs as simple as possible, but no simpler";
     homepage = "https://github.com/hugapi/hug";
     license = licenses.mit;
     # Missing support for later falcon releases
diff --git a/pkgs/development/python-modules/huggingface-hub/default.nix b/pkgs/development/python-modules/huggingface-hub/default.nix
index 91669ec3710e7..0f09ffe98a4e3 100644
--- a/pkgs/development/python-modules/huggingface-hub/default.nix
+++ b/pkgs/development/python-modules/huggingface-hub/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, filelock
-, fsspec
-, packaging
-, pyyaml
-, requests
-, tqdm
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  filelock,
+  fsspec,
+  packaging,
+  pyyaml,
+  requests,
+  tqdm,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "huggingface-hub";
-  version = "0.23.0";
+  version = "0.23.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,12 +24,10 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "huggingface_hub";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FfevPGec++3auA4Zxu84mhpD0RGatcPgDKi7LkmOVss=";
+    hash = "sha256-6UAuNKeltaclhnQ7J2X0EziGitROMKmOlIWGw87y66E=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     filelock
@@ -43,16 +42,14 @@ buildPythonPackage rec {
   # Tests require network access.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "huggingface_hub"
-  ];
+  pythonImportsCheck = [ "huggingface_hub" ];
 
-  meta = with lib; {
+  meta = {
     description = "Download and publish models and other files on the huggingface.co hub";
     mainProgram = "huggingface-cli";
     homepage = "https://github.com/huggingface/huggingface_hub";
     changelog = "https://github.com/huggingface/huggingface_hub/releases/tag/v${version}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ GaetanLepage ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
   };
 }
diff --git a/pkgs/development/python-modules/huisbaasje-client/default.nix b/pkgs/development/python-modules/huisbaasje-client/default.nix
index 1a9cfddd8661c..65d12537cda8a 100644
--- a/pkgs/development/python-modules/huisbaasje-client/default.nix
+++ b/pkgs/development/python-modules/huisbaasje-client/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, aiohttp
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  aiohttp,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,13 +21,9 @@ buildPythonPackage rec {
     sha256 = "113aymffyz1nki3a43j5cyj87qa0762j38qlz0wd5px7diwjxsfl";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "huisbaasje.huisbaasje" ];
 
diff --git a/pkgs/development/python-modules/human-readable/default.nix b/pkgs/development/python-modules/human-readable/default.nix
index 3c67a04b143a0..9081398d7a59b 100644
--- a/pkgs/development/python-modules/human-readable/default.nix
+++ b/pkgs/development/python-modules/human-readable/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, hatchling
-, hatch-vcs
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  hatchling,
+  hatch-vcs,
 }:
 
 buildPythonPackage rec {
@@ -26,8 +27,6 @@ buildPythonPackage rec {
     description = "Library to make data intended for machines, readable to humans";
     homepage = "https://github.com/staticdev/human-readable";
     license = licenses.mit;
-    maintainers = with maintainers; [
-      mkg20001
-    ];
+    maintainers = with maintainers; [ mkg20001 ];
   };
 }
diff --git a/pkgs/development/python-modules/humanfriendly/default.nix b/pkgs/development/python-modules/humanfriendly/default.nix
index d8a3fa92e4832..8c217e3ac228b 100644
--- a/pkgs/development/python-modules/humanfriendly/default.nix
+++ b/pkgs/development/python-modules/humanfriendly/default.nix
@@ -1,21 +1,30 @@
-{ lib
-, pythonOlder
-, buildPythonPackage
-, fetchPypi
-, monotonic
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch2,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "humanfriendly";
   version = "10.0";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "6b0b831ce8f15f7300721aa49829fc4e83921a9a301cc7f606be6686a2288ddc";
   };
 
-  propagatedBuildInputs = lib.optional (pythonOlder "3.3") monotonic;
+  patches = [
+    (fetchpatch2 {
+      # https://github.com/xolox/python-humanfriendly/pull/75
+      url = "https://github.com/musicinmybrain/python-humanfriendly/commit/13d05b8057010121acd2a402a337ef4ee5834062.patch";
+      hash = "sha256-m7cySiIx0gNhh6KKhT71DJFOtFu2Copk9ic2yaiCulk=";
+    })
+  ];
+
+  build-system = [ setuptools ];
 
   # humanfriendly tests depends on coloredlogs which itself depends on
   # humanfriendly. This lead to infinite recursion when trying to
diff --git a/pkgs/development/python-modules/humanize/default.nix b/pkgs/development/python-modules/humanize/default.nix
index 1ae941be385d4..d0c9389ed1b23 100644
--- a/pkgs/development/python-modules/humanize/default.nix
+++ b/pkgs/development/python-modules/humanize/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, freezegun
-, gettext
-, pytestCheckHook
-, pythonOlder
-, hatch-vcs
-, hatchling
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  freezegun,
+  gettext,
+  pytestCheckHook,
+  pythonOlder,
+  hatch-vcs,
+  hatchling,
 }:
 
 buildPythonPackage rec {
@@ -42,15 +43,16 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "humanize"
-  ];
+  pythonImportsCheck = [ "humanize" ];
 
   meta = with lib; {
     description = "Python humanize utilities";
     homepage = "https://github.com/python-humanize/humanize";
     changelog = "https://github.com/python-humanize/humanize/releases/tag/${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ rmcgibbo Luflosi ];
+    maintainers = with maintainers; [
+      rmcgibbo
+      Luflosi
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/humblewx/default.nix b/pkgs/development/python-modules/humblewx/default.nix
index 71b76fe8c73e3..2a60e7e97212c 100644
--- a/pkgs/development/python-modules/humblewx/default.nix
+++ b/pkgs/development/python-modules/humblewx/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, wxpython
-, python
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  wxpython,
+  python,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/hupper/default.nix b/pkgs/development/python-modules/hupper/default.nix
index 315370de4c2c5..0f46eef1eee35 100644
--- a/pkgs/development/python-modules/hupper/default.nix
+++ b/pkgs/development/python-modules/hupper/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, watchdog
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  watchdog,
 }:
 
 buildPythonPackage rec {
@@ -18,11 +19,7 @@ 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)
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ lib.optionals (!stdenv.isDarwin) [
-    watchdog
-  ];
+  nativeCheckInputs = [ pytestCheckHook ] ++ lib.optionals (!stdenv.isDarwin) [ watchdog ];
 
   disabledTestPaths = [
     # Doesn't work with an exported home, RuntimeError: timeout waiting for change to file=/build/tmpgfn145cx
diff --git a/pkgs/development/python-modules/hurry-filesize/default.nix b/pkgs/development/python-modules/hurry-filesize/default.nix
index 62bd1f810f9d5..e9eb079cf518b 100644
--- a/pkgs/development/python-modules/hurry-filesize/default.nix
+++ b/pkgs/development/python-modules/hurry-filesize/default.nix
@@ -1,10 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-
-, pythonOlder
-
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -12,8 +10,6 @@ buildPythonPackage rec {
   version = "0.9";
   pyproject = true;
 
-  disabled = pythonOlder "3.3";
-
   src = fetchPypi {
     pname = "hurry.filesize";
     inherit version;
@@ -24,14 +20,12 @@ buildPythonPackage rec {
   # fix implicit namespaces (PEP 420) warning
   patches = [ ./use-pep-420-implicit-namespace-package.patch ];
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   pythonImportsCheck = [ "hurry.filesize" ];
 
   meta = with lib; {
-    description = "A simple Python library for human readable file sizes (or anything sized in bytes)";
+    description = "Simple Python library for human readable file sizes (or anything sized in bytes)";
     homepage = "https://pypi.org/project/hurry.filesize/";
     license = licenses.zpl21;
     maintainers = with maintainers; [ vizid ];
diff --git a/pkgs/development/python-modules/huum/default.nix b/pkgs/development/python-modules/huum/default.nix
index 42a44a04a9eb7..7e8d4ff033b7d 100644
--- a/pkgs/development/python-modules/huum/default.nix
+++ b/pkgs/development/python-modules/huum/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, mashumaro
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mashumaro,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-INW6d/Zc5UZZOgN6wW+Xbm/wH1K/V6bviu3mID1R+BY=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -37,9 +36,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "huum"
-  ];
+  pythonImportsCheck = [ "huum" ];
 
   meta = with lib; {
     description = "Library for Huum saunas";
diff --git a/pkgs/development/python-modules/hvac/default.nix b/pkgs/development/python-modules/hvac/default.nix
index 42f09f7266cc2..74002cade8430 100644
--- a/pkgs/development/python-modules/hvac/default.nix
+++ b/pkgs/development/python-modules/hvac/default.nix
@@ -1,27 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyhcl
-, requests
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyhcl,
+  requests,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "hvac";
-  version = "2.1.0";
+  version = "2.3.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-tIvNoRpKsKe2xHIyx7p8h/2jGK4tSnZigAxGWnh0KJQ=";
+    hash = "sha256-G4XjMg6GQt2C8jTbYyU82haagXWJ6CNxPcX8qDEZseI=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     pyhcl
@@ -31,9 +30,7 @@ buildPythonPackage rec {
   # Requires running a Vault server
   doCheck = false;
 
-  pythonImportsCheck = [
-    "hvac"
-  ];
+  pythonImportsCheck = [ "hvac" ];
 
   meta = with lib; {
     description = "HashiCorp Vault API client";
diff --git a/pkgs/development/python-modules/hvplot/default.nix b/pkgs/development/python-modules/hvplot/default.nix
index ded23a070c12f..4082631646215 100644
--- a/pkgs/development/python-modules/hvplot/default.nix
+++ b/pkgs/development/python-modules/hvplot/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, bokeh
-, buildPythonPackage
-, colorcet
-, fetchPypi
-, holoviews
-, pandas
-, pythonOlder
+{
+  lib,
+  bokeh,
+  buildPythonPackage,
+  colorcet,
+  fetchPypi,
+  holoviews,
+  pandas,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "hvplot";
-  version = "0.9.2";
+  version = "0.10.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-moyekkkTmqo97l8c6g+TzzY3TReemGcF/N3CuSxHB5M=";
+    hash = "sha256-6HSGqVv+FRq1LvFjpek9nL0EOZLPC3Vcyt0r82/t03Y=";
   };
 
   propagatedBuildInputs = [
@@ -30,12 +31,10 @@ buildPythonPackage rec {
   # Many tests require a network connection
   doCheck = false;
 
-  pythonImportsCheck = [
-    "hvplot.pandas"
-  ];
+  pythonImportsCheck = [ "hvplot.pandas" ];
 
   meta = with lib; {
-    description = "A high-level plotting API for the PyData ecosystem built on HoloViews";
+    description = "High-level plotting API for the PyData ecosystem built on HoloViews";
     homepage = "https://hvplot.pyviz.org";
     changelog = "https://github.com/holoviz/hvplot/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/hwdata/default.nix b/pkgs/development/python-modules/hwdata/default.nix
index 9e73fb6101703..2931839bf6c96 100644
--- a/pkgs/development/python-modules/hwdata/default.nix
+++ b/pkgs/development/python-modules/hwdata/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pkgs
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pkgs,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,17 +18,13 @@ buildPythonPackage rec {
     hash = "sha256-hmvxVF9LOkezXnJdbtbEJWhU4uvUJgxQHYeWUoiniF0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   patchPhase = ''
     substituteInPlace hwdata.py --replace "/usr/share/hwdata" "${pkgs.hwdata}/share/hwdata"
   '';
 
-  pythonImportsCheck = [
-    "hwdata"
-  ];
+  pythonImportsCheck = [ "hwdata" ];
 
   doCheck = false; # no tests
 
diff --git a/pkgs/development/python-modules/hwi/default.nix b/pkgs/development/python-modules/hwi/default.nix
index 311036b388247..fb506ab96f3c4 100644
--- a/pkgs/development/python-modules/hwi/default.nix
+++ b/pkgs/development/python-modules/hwi/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, bitbox02
-, buildPythonPackage
-, cbor
-, ecdsa
-, fetchFromGitHub
-, hidapi
-, libusb1
-, mnemonic
-, pyaes
-, pyserial
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  bitbox02,
+  buildPythonPackage,
+  cbor,
+  ecdsa,
+  fetchFromGitHub,
+  hidapi,
+  libusb1,
+  mnemonic,
+  pyaes,
+  pyserial,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -42,9 +43,7 @@ buildPythonPackage rec {
   # Tests require to clone quite a few firmwares
   doCheck = false;
 
-  pythonImportsCheck = [
-    "hwilib"
-  ];
+  pythonImportsCheck = [ "hwilib" ];
 
   meta = with lib; {
     description = "Bitcoin Hardware Wallet Interface";
diff --git a/pkgs/development/python-modules/hy/default.nix b/pkgs/development/python-modules/hy/default.nix
index 6d9f50f9f8c97..8a8b29315f8e5 100644
--- a/pkgs/development/python-modules/hy/default.nix
+++ b/pkgs/development/python-modules/hy/default.nix
@@ -1,42 +1,39 @@
-{ lib
-, astor
-, buildPythonPackage
-, fetchFromGitHub
-, funcparserlib
-, hy
-, pytestCheckHook
-, python
-, pythonOlder
-, testers
+{
+  lib,
+  astor,
+  buildPythonPackage,
+  fetchFromGitHub,
+  funcparserlib,
+  hy,
+  pytestCheckHook,
+  python,
+  pythonOlder,
+  setuptools,
+  testers,
 }:
 
 buildPythonPackage rec {
   pname = "hy";
-  version = "0.28.0";
-  format = "setuptools";
+  version = "0.29.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "hylang";
-    repo = pname;
+    repo = "hy";
     rev = "refs/tags/${version}";
-    hash = "sha256-XH8qZ6OsTrFXcv/8ZyrTtN6l50JXIUcHJbfCRXHzSTs=";
+    hash = "sha256-8b2V78mwzSThmVl1SfMGBw8VSpE5rCuucnIyD0nq5To=";
   };
 
   # https://github.com/hylang/hy/blob/1.0a4/get_version.py#L9-L10
   HY_VERSION = version;
 
-  propagatedBuildInputs = [
-    funcparserlib
-  ] ++
-  lib.optionals (pythonOlder "3.9") [
-    astor
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  dependencies = [ funcparserlib ] ++ lib.optionals (pythonOlder "3.9") [ astor ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     # For test_bin_hy
@@ -53,21 +50,23 @@ buildPythonPackage rec {
     # For backwards compatibility with removed pkgs/development/interpreters/hy
     # Example usage:
     #   hy.withPackages (ps: with ps; [ hyrule requests ])
-    withPackages = python-packages:
-      (python.withPackages
-        (ps: (python-packages ps) ++ [ ps.hy ])).overrideAttrs (old: {
-          name = "${hy.name}-env";
-          meta = lib.mergeAttrs (builtins.removeAttrs hy.meta [ "license" ]) {
-            mainProgram = "hy";
-          };
-        });
+    withPackages =
+      python-packages:
+      (python.withPackages (ps: (python-packages ps) ++ [ ps.hy ])).overrideAttrs (old: {
+        name = "${hy.name}-env";
+        meta = lib.mergeAttrs (builtins.removeAttrs hy.meta [ "license" ]) { mainProgram = "hy"; };
+      });
   };
 
   meta = with lib; {
-    description = "A LISP dialect embedded in Python";
+    description = "LISP dialect embedded in Python";
     homepage = "https://hylang.org/";
     changelog = "https://github.com/hylang/hy/releases/tag/${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ fab mazurel nixy thiagokokada ];
+    maintainers = with maintainers; [
+      mazurel
+      nixy
+      thiagokokada
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/hydra-check/default.nix b/pkgs/development/python-modules/hydra-check/default.nix
index 78e96dea26ce1..ab9c197113d6d 100644
--- a/pkgs/development/python-modules/hydra-check/default.nix
+++ b/pkgs/development/python-modules/hydra-check/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, requests
-, beautifulsoup4
-, colorama
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  requests,
+  beautifulsoup4,
+  colorama,
 }:
 
 buildPythonPackage rec {
@@ -36,6 +37,9 @@ buildPythonPackage rec {
     mainProgram = "hydra-check";
     homepage = "https://github.com/nix-community/hydra-check";
     license = licenses.mit;
-    maintainers = with maintainers; [ makefu artturin ];
+    maintainers = with maintainers; [
+      makefu
+      artturin
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/hydra-core/default.nix b/pkgs/development/python-modules/hydra-core/default.nix
index fb73910aaf1f8..ea72eddf47499 100644
--- a/pkgs/development/python-modules/hydra-core/default.nix
+++ b/pkgs/development/python-modules/hydra-core/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, antlr4
-, antlr4-python3-runtime
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, importlib-resources
-, jre_headless
-, omegaconf
-, packaging
-, pytestCheckHook
-, pythonOlder
-, substituteAll
+{
+  lib,
+  antlr4,
+  antlr4-python3-runtime,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  importlib-resources,
+  jre_headless,
+  omegaconf,
+  packaging,
+  pytestCheckHook,
+  pythonOlder,
+  substituteAll,
 }:
 
 buildPythonPackage rec {
@@ -48,24 +49,19 @@ buildPythonPackage rec {
     sed -i 's/antlr4-python3-runtime==.*/antlr4-python3-runtime/' requirements/requirements.txt
   '';
 
-  nativeBuildInputs = [
-    jre_headless
-  ];
+  nativeBuildInputs = [ jre_headless ];
 
   propagatedBuildInputs = [
     antlr4-python3-runtime
     omegaconf
     packaging
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    importlib-resources
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [
-    "-W" "ignore::UserWarning"
+    "-W"
+    "ignore::UserWarning"
   ];
 
   # Test environment setup broken under Nix for a few tests:
@@ -77,9 +73,7 @@ buildPythonPackage rec {
     "test_initialize_compat_version_base"
   ];
 
-  disabledTestPaths = [
-    "tests/test_hydra.py"
-  ];
+  disabledTestPaths = [ "tests/test_hydra.py" ];
 
   pythonImportsCheck = [
     "hydra"
@@ -88,7 +82,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A framework for configuring complex applications";
+    description = "Framework for configuring complex applications";
     homepage = "https://hydra.cc";
     license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
diff --git a/pkgs/development/python-modules/hydrawiser/default.nix b/pkgs/development/python-modules/hydrawiser/default.nix
index f04509d0854cf..971583742ef88 100644
--- a/pkgs/development/python-modules/hydrawiser/default.nix
+++ b/pkgs/development/python-modules/hydrawiser/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytest-cov
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytest-cov,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/hydrus-api/default.nix b/pkgs/development/python-modules/hydrus-api/default.nix
index 17449fdf66ce1..0ce083570536a 100644
--- a/pkgs/development/python-modules/hydrus-api/default.nix
+++ b/pkgs/development/python-modules/hydrus-api/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, poetry-core
-, requests
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  poetry-core,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -25,13 +26,9 @@ buildPythonPackage rec {
       "poetry.core.masonry.api"
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   pythonImportsCheck = [ "hydrus_api" ];
 
diff --git a/pkgs/development/python-modules/hypchat/default.nix b/pkgs/development/python-modules/hypchat/default.nix
index 58a1c3dffdc82..81bcf358efce5 100644
--- a/pkgs/development/python-modules/hypchat/default.nix
+++ b/pkgs/development/python-modules/hypchat/default.nix
@@ -1,5 +1,10 @@
-{ buildPythonPackage, fetchPypi
-, requests, six, python-dateutil }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  six,
+  python-dateutil,
+}:
 
 buildPythonPackage rec {
   pname = "hypchat";
@@ -11,5 +16,9 @@ buildPythonPackage rec {
     sha256 = "1sd8f3gihagaqd848dqy6xw457fa4f9bla1bfyni7fq3h76sjdzg";
   };
 
-  propagatedBuildInputs = [ requests six python-dateutil ];
+  propagatedBuildInputs = [
+    requests
+    six
+    python-dateutil
+  ];
 }
diff --git a/pkgs/development/python-modules/hypercorn/default.nix b/pkgs/development/python-modules/hypercorn/default.nix
index b7add0e1a9979..2ac0cb8e381aa 100644
--- a/pkgs/development/python-modules/hypercorn/default.nix
+++ b/pkgs/development/python-modules/hypercorn/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, exceptiongroup
-, h11
-, h2
-, priority
-, wsproto
-, poetry-core
-, pytest-asyncio
-, pytest-trio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  exceptiongroup,
+  h11,
+  h2,
+  priority,
+  wsproto,
+  poetry-core,
+  pytest-asyncio,
+  pytest-trio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     sed -i "/^addopts/d" pyproject.toml
   '';
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     exceptiongroup
@@ -58,7 +57,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/pgjones/hypercorn";
-    description = "The ASGI web server inspired by Gunicorn";
+    description = "ASGI web server inspired by Gunicorn";
     mainProgram = "hypercorn";
     license = licenses.mit;
     maintainers = with maintainers; [ dgliwka ];
diff --git a/pkgs/development/python-modules/hyperframe/default.nix b/pkgs/development/python-modules/hyperframe/default.nix
index e42ee0a46f684..5842ced668fc1 100644
--- a/pkgs/development/python-modules/hyperframe/default.nix
+++ b/pkgs/development/python-modules/hyperframe/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "hyperframe";
diff --git a/pkgs/development/python-modules/hyperion-py/default.nix b/pkgs/development/python-modules/hyperion-py/default.nix
index 1e0f08936fb4a..faaacf939f8aa 100644
--- a/pkgs/development/python-modules/hyperion-py/default.nix
+++ b/pkgs/development/python-modules/hyperion-py/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pytestCheckHook
-, pythonOlder
-, pythonAtLeast
-, poetry-core
-, pytest-aiohttp
-, pytest-asyncio
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pytestCheckHook,
+  pythonOlder,
+  pythonAtLeast,
+  poetry-core,
+  pytest-aiohttp,
+  pytest-asyncio,
 }:
 
 buildPythonPackage rec {
@@ -32,13 +33,9 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   nativeCheckInputs = [
     pytest-asyncio
diff --git a/pkgs/development/python-modules/hyperlink/default.nix b/pkgs/development/python-modules/hyperlink/default.nix
index 1b617cf1b7c9e..579cfb065fa6c 100644
--- a/pkgs/development/python-modules/hyperlink/default.nix
+++ b/pkgs/development/python-modules/hyperlink/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, idna
-, typing ? null
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  idna,
+  typing ? null,
 }:
 
 buildPythonPackage rec {
@@ -16,11 +17,10 @@ buildPythonPackage rec {
     sha256 = "0sx50lkivsfjxx9zr4yh7l9gll2l9kvl0v0w8w4wk2x5v9bzjyj2";
   };
 
-  propagatedBuildInputs = [ idna ]
-    ++ lib.optionals isPy27 [ typing ];
+  propagatedBuildInputs = [ idna ] ++ lib.optionals isPy27 [ typing ];
 
   meta = with lib; {
-    description = "A featureful, correct URL for Python";
+    description = "Featureful, correct URL for Python";
     homepage = "https://github.com/python-hyper/hyperlink";
     license = licenses.mit;
     platforms = platforms.all;
diff --git a/pkgs/development/python-modules/hyperopt/default.nix b/pkgs/development/python-modules/hyperopt/default.nix
index 6cc92ff3ae79b..5d3d07c92f52a 100644
--- a/pkgs/development/python-modules/hyperopt/default.nix
+++ b/pkgs/development/python-modules/hyperopt/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, cloudpickle
-, fetchPypi
-, future
-, networkx
-, numpy
-, py4j
-, pymongo
-, pyspark
-, scipy
-, six
-, tqdm
+{
+  lib,
+  buildPythonPackage,
+  cloudpickle,
+  fetchPypi,
+  future,
+  networkx,
+  numpy,
+  py4j,
+  pymongo,
+  pyspark,
+  scipy,
+  six,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
   # tries to use /homeless-shelter to mimic container usage, etc
   doCheck = false;
 
-  pythonImportsCheck = [
-    "hyperopt"
-  ];
+  pythonImportsCheck = [ "hyperopt" ];
 
   meta = with lib; {
     description = "Distributed Asynchronous Hyperparameter Optimization";
diff --git a/pkgs/development/python-modules/hyperpyyaml/default.nix b/pkgs/development/python-modules/hyperpyyaml/default.nix
index 9395b299fea01..46c27720e74be 100644
--- a/pkgs/development/python-modules/hyperpyyaml/default.nix
+++ b/pkgs/development/python-modules/hyperpyyaml/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyyaml
-, ruamel-yaml
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyyaml,
+  ruamel-yaml,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     ruamel-yaml
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "hyperpyyaml" ];
 
diff --git a/pkgs/development/python-modules/hyperscan/default.nix b/pkgs/development/python-modules/hyperscan/default.nix
index 0d568e15f25b7..338ad67b966ad 100644
--- a/pkgs/development/python-modules/hyperscan/default.nix
+++ b/pkgs/development/python-modules/hyperscan/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, pkgs
-, buildPythonPackage
-, fetchFromGitHub
-, pdm-backend
-, setuptools
-, wheel
-, pcre
-, pkg-config
-, pytestCheckHook
-, pytest-mock
+{
+  lib,
+  pkgs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pdm-backend,
+  setuptools,
+  wheel,
+  pcre,
+  pkg-config,
+  pytestCheckHook,
+  pytest-mock,
 }:
 
 buildPythonPackage rec {
@@ -44,10 +45,13 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A CPython extension for the Hyperscan regular expression matching library";
+    description = "CPython extension for the Hyperscan regular expression matching library";
     homepage = "https://github.com/darvid/python-hyperscan";
     changelog = "https://github.com/darvid/python-hyperscan/blob/${src.rev}/CHANGELOG.md";
-    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    platforms = [
+      "x86_64-linux"
+      "x86_64-darwin"
+    ];
     license = licenses.mit;
     maintainers = with maintainers; [ mbalatsko ];
   };
diff --git a/pkgs/development/python-modules/hypothesis-auto/default.nix b/pkgs/development/python-modules/hypothesis-auto/default.nix
index ad6ae8dbd96c2..7e60ddaf0b99a 100644
--- a/pkgs/development/python-modules/hypothesis-auto/default.nix
+++ b/pkgs/development/python-modules/hypothesis-auto/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hypothesis
-, poetry-core
-, pydantic
-, pytest
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hypothesis,
+  poetry-core,
+  pydantic,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-U0vcOB9jXmUV5v2IwybVu2arY1FpPnKkP7m2kbD1kRw=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     pydantic
@@ -32,13 +31,9 @@ buildPythonPackage rec {
     pytest
   ];
 
-  pythonImportsCheck = [
-    "hypothesis_auto"
-  ];
+  pythonImportsCheck = [ "hypothesis_auto" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Enables fully automatic tests for type annotated functions";
diff --git a/pkgs/development/python-modules/hypothesis/default.nix b/pkgs/development/python-modules/hypothesis/default.nix
index 09de31843bba6..a76b8e2ff29d3 100644
--- a/pkgs/development/python-modules/hypothesis/default.nix
+++ b/pkgs/development/python-modules/hypothesis/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, buildPythonPackage
-, isPyPy
-, fetchFromGitHub
-, setuptools
-, attrs
-, exceptiongroup
-, pexpect
-, doCheck ? true
-, pytestCheckHook
-, pytest-xdist
-, python
-, sortedcontainers
-, stdenv
-, pythonOlder
-, sphinxHook
-, sphinx-rtd-theme
-, sphinx-hoverxref
-, sphinx-codeautolink
-, tzdata
+{
+  lib,
+  buildPythonPackage,
+  isPyPy,
+  fetchFromGitHub,
+  setuptools,
+  attrs,
+  exceptiongroup,
+  pexpect,
+  doCheck ? true,
+  pytestCheckHook,
+  pytest-xdist,
+  python,
+  sortedcontainers,
+  stdenv,
+  pythonOlder,
+  sphinxHook,
+  sphinx-rtd-theme,
+  sphinx-hoverxref,
+  sphinx-codeautolink,
+  tzdata,
 }:
 
 buildPythonPackage rec {
   pname = "hypothesis";
-  version = "6.100.1";
+  version = "6.103.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -31,7 +32,7 @@ buildPythonPackage rec {
     owner = "HypothesisWorks";
     repo = "hypothesis";
     rev = "hypothesis-python-${version}";
-    hash = "sha256-3Mwa1nS6rvFBcU5QXLH4/wa38qCvDX9sRina1aJS1Rs=";
+    hash = "sha256-sll0GAI1nvBQvRqgpTkLpj7GQI988AftDQHV1zh2t1w=";
   };
 
   # I tried to package sphinx-selective-exclude, but it throws
@@ -49,24 +50,18 @@ buildPythonPackage rec {
 
   postUnpack = "sourceRoot=$sourceRoot/hypothesis-python";
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     attrs
     sortedcontainers
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    exceptiongroup
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ exceptiongroup ];
 
   nativeCheckInputs = [
     pexpect
     pytest-xdist
     pytestCheckHook
-  ] ++ lib.optionals isPyPy [
-    tzdata
-  ];
+  ] ++ lib.optionals isPyPy [ tzdata ];
 
   inherit doCheck;
 
@@ -75,21 +70,23 @@ buildPythonPackage rec {
     rm tox.ini
   '';
 
-  pytestFlagsArray = [
-    "tests/cover"
-  ];
+  pytestFlagsArray = [ "tests/cover" ];
 
-  disabledTests = if (pythonOlder "3.10") then [
-    # not sure why these tests fail with only 3.9
-    # FileNotFoundError: [Errno 2] No such file or directory: 'git'
-    "test_observability"
-    "test_assume_has_status_reason"
-    "test_observability_captures_stateful_reprs"
-  ] else null;
+  disabledTests =
+    [
+      # racy, fails to find a file sometimes
+      "test_recreate_charmap"
+      "test_uses_cached_charmap"
+    ]
+    ++ lib.optionals (pythonOlder "3.10") [
+      # not sure why these tests fail with only 3.9
+      # FileNotFoundError: [Errno 2] No such file or directory: 'git'
+      "test_observability"
+      "test_assume_has_status_reason"
+      "test_observability_captures_stateful_reprs"
+    ];
 
-  pythonImportsCheck = [
-    "hypothesis"
-  ];
+  pythonImportsCheck = [ "hypothesis" ];
 
   passthru = {
     doc = stdenv.mkDerivation {
@@ -119,7 +116,9 @@ buildPythonPackage rec {
     description = "Library for property based testing";
     mainProgram = "hypothesis";
     homepage = "https://github.com/HypothesisWorks/hypothesis";
-    changelog = "https://hypothesis.readthedocs.io/en/latest/changes.html#v${lib.replaceStrings [ "." ] [ "-" ] version}";
+    changelog = "https://hypothesis.readthedocs.io/en/latest/changes.html#v${
+      lib.replaceStrings [ "." ] [ "-" ] version
+    }";
     license = licenses.mpl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/hypothesmith/default.nix b/pkgs/development/python-modules/hypothesmith/default.nix
index 9aa3406c60066..be40b4375e41b 100644
--- a/pkgs/development/python-modules/hypothesmith/default.nix
+++ b/pkgs/development/python-modules/hypothesmith/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hypothesis
-, lark
-, libcst
-, parso
-, pytestCheckHook
-, pytest-xdist
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hypothesis,
+  lark,
+  libcst,
+  parso,
+  pytestCheckHook,
+  pytest-xdist,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-lsFIAtbI6F2JdSZBdoeNtUso0u2SH9v+3C5rjOPIFxY=";
   };
 
-  patches = [
-    ./remove-black.patch
-  ];
+  patches = [ ./remove-black.patch ];
 
   postPatch = ''
     substituteInPlace setup.py \
@@ -37,14 +36,20 @@ buildPythonPackage rec {
       --replace "--cov-fail-under=100" ""
   '';
 
-  propagatedBuildInputs = [ hypothesis lark libcst ];
-
-  nativeCheckInputs = [ parso pytestCheckHook pytest-xdist ];
+  propagatedBuildInputs = [
+    hypothesis
+    lark
+    libcst
+  ];
 
-  pytestFlagsArray = [
-    "-v"
+  nativeCheckInputs = [
+    parso
+    pytestCheckHook
+    pytest-xdist
   ];
 
+  pytestFlagsArray = [ "-v" ];
+
   disabledTests = [
     # https://github.com/Zac-HD/hypothesmith/issues/21
     "test_source_code_from_libcst_node_type"
diff --git a/pkgs/development/python-modules/hyppo/default.nix b/pkgs/development/python-modules/hyppo/default.nix
index 8b2d73f68c5af..2d3f2563ad011 100644
--- a/pkgs/development/python-modules/hyppo/default.nix
+++ b/pkgs/development/python-modules/hyppo/default.nix
@@ -1,21 +1,23 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pytestCheckHook
-, autograd
-, numba
-, numpy
-, scikit-learn
-, scipy
-, matplotlib
-, seaborn
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  autograd,
+  numba,
+  numpy,
+  scikit-learn,
+  scipy,
+  matplotlib,
+  seaborn,
 }:
 
 buildPythonPackage rec {
   pname = "hyppo";
   version = "0.4.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -26,6 +28,14 @@ buildPythonPackage rec {
     hash = "sha256-QRE3oSxTEobTQ/7DzCAUOdjzIZmWUn9bgPmJWj6JuZg=";
   };
 
+  # some of the doctests (4/21) are broken, e.g. unbound variables, nondeterministic with insufficient tolerance, etc.
+  # (note upstream's .circleci/config.yml only tests test_*.py files despite their pytest.ini adding --doctest-modules)
+  postPatch = ''
+    substituteInPlace pytest.ini --replace-fail "addopts = --doctest-modules" ""
+  '';
+
+  build-system = [ setuptools ];
+
   propagatedBuildInputs = [
     autograd
     numba
@@ -34,16 +44,19 @@ buildPythonPackage rec {
     scipy
   ];
 
-  nativeCheckInputs = [ pytestCheckHook matplotlib seaborn ];
-  disabledTestPaths = [
-    "docs"
-    "benchmarks"
-    "examples"
+  nativeCheckInputs = [
+    pytestCheckHook
+    matplotlib
+    seaborn
+  ];
+  pytestFlagsArray = [
+    "hyppo"
   ];
 
   meta = with lib; {
     homepage = "https://github.com/neurodata/hyppo";
     description = "Python package for multivariate hypothesis testing";
+    changelog = "https://github.com/neurodata/hyppo/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ bcdarwin ];
   };
diff --git a/pkgs/development/python-modules/hyrule/default.nix b/pkgs/development/python-modules/hyrule/default.nix
index 241306c895d2f..3229e5137ea12 100644
--- a/pkgs/development/python-modules/hyrule/default.nix
+++ b/pkgs/development/python-modules/hyrule/default.nix
@@ -1,32 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hy
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hy,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "hyrule";
-  version = "0.5.0";
-  format = "setuptools";
+  version = "0.6.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "hylang";
-    repo = pname;
+    repo = "hyrule";
     rev = "refs/tags/${version}";
-    hash = "sha256-MARpQFEypTJ4KpojVRxcHYvo6e6Gvk4B6tnrViV6QmY=";
+    hash = "sha256-pmJhhOpNxVEUH8YwBUKSywYgYu43oLSmpWJM4HXGMiI=";
   };
 
-  propagatedBuildInputs = [
-    hy
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  propagatedBuildInputs = [ hy ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Some tests depends on hy on PATH
   preCheck = "PATH=${hy}/bin:$PATH";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "hyrule" ];
 
   meta = with lib; {
-    description = "Hyrule is a utility library for the Hy programming language";
+    description = "Utility library for the Hy programming language";
     homepage = "https://github.com/hylang/hyrule";
     changelog = "https://github.com/hylang/hylure/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/i-pi/default.nix b/pkgs/development/python-modules/i-pi/default.nix
index 046823d23c43f..03e1f5dd46139 100644
--- a/pkgs/development/python-modules/i-pi/default.nix
+++ b/pkgs/development/python-modules/i-pi/default.nix
@@ -1,6 +1,14 @@
-{ buildPythonPackage, lib, fetchFromGitHub, gfortran
-, makeWrapper, numpy, pytest, mock, pytest-mock
-} :
+{
+  buildPythonPackage,
+  lib,
+  fetchFromGitHub,
+  gfortran,
+  makeWrapper,
+  numpy,
+  pytest,
+  mock,
+  pytest-mock,
+}:
 
 buildPythonPackage rec {
   pname = "i-pi";
@@ -33,8 +41,11 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A universal force engine for ab initio and force field driven (path integral) molecular dynamics";
-    license = with licenses; [ gpl3Only mit ];
+    description = "Universal force engine for ab initio and force field driven (path integral) molecular dynamics";
+    license = with licenses; [
+      gpl3Only
+      mit
+    ];
     homepage = "http://ipi-code.org/";
     platforms = platforms.linux;
     maintainers = [ maintainers.sheepforce ];
diff --git a/pkgs/development/python-modules/i2c-tools/default.nix b/pkgs/development/python-modules/i2c-tools/default.nix
index fd2fdaba347ca..8b88b07b95ac9 100644
--- a/pkgs/development/python-modules/i2c-tools/default.nix
+++ b/pkgs/development/python-modules/i2c-tools/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, i2c-tools
+{
+  lib,
+  buildPythonPackage,
+  i2c-tools,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/i2csense/default.nix b/pkgs/development/python-modules/i2csense/default.nix
index 6923b1d0c3c82..2aa74cedb2f8e 100644
--- a/pkgs/development/python-modules/i2csense/default.nix
+++ b/pkgs/development/python-modules/i2csense/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, smbus-cffi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  smbus-cffi,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     sha256 = "6f9c0a37d971e5b8a60c54982bd580cff84bf94fedc08c097e603a8e5609c33f";
   };
 
-  propagatedBuildInputs = [
-    smbus-cffi
-  ];
+  propagatedBuildInputs = [ smbus-cffi ];
 
   # no tests implemented
   doCheck = false;
@@ -28,7 +27,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A library to handle i2c sensors with the Raspberry Pi";
+    description = "Library to handle i2c sensors with the Raspberry Pi";
     mainProgram = "i2csense";
     homepage = "https://github.com/azogue/i2csense";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/i3-py/default.nix b/pkgs/development/python-modules/i3-py/default.nix
index 83a0dd8d2700e..b90e0aeafafef 100644
--- a/pkgs/development/python-modules/i3-py/default.nix
+++ b/pkgs/development/python-modules/i3-py/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Tools for i3 users and developers";
-    homepage =  "https://github.com/ziberna/i3-py";
+    homepage = "https://github.com/ziberna/i3-py";
     license = licenses.gpl3;
     platforms = platforms.unix;
   };
-
 }
diff --git a/pkgs/development/python-modules/i3ipc/default.nix b/pkgs/development/python-modules/i3ipc/default.nix
index 5aca692cbe058..febac35bc4a45 100644
--- a/pkgs/development/python-modules/i3ipc/default.nix
+++ b/pkgs/development/python-modules/i3ipc/default.nix
@@ -1,6 +1,15 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, xorgserver, pytest, pytest-xvfb, i3, xlib, xdpyinfo
-, makeFontsConf, coreutils
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  xorg,
+  pytest,
+  pytest-xvfb,
+  i3,
+  xlib,
+  xdpyinfo,
+  makeFontsConf,
+  coreutils,
 }:
 
 buildPythonPackage rec {
@@ -9,18 +18,22 @@ buildPythonPackage rec {
   format = "setuptools";
 
   src = fetchFromGitHub {
-    owner  = "acrisci";
-    repo   = "i3ipc-python";
-    rev    = "v${version}";
+    owner = "acrisci";
+    repo = "i3ipc-python";
+    rev = "v${version}";
     sha256 = "13bzs9dcv27czpnnbgz7a037lm8h991c8gk0qzzk5mq5yak24715";
   };
   propagatedBuildInputs = [ xlib ];
 
-  fontsConf = makeFontsConf {
-    fontDirectories = [ ];
-  };
+  fontsConf = makeFontsConf { fontDirectories = [ ]; };
   FONTCONFIG_FILE = fontsConf; # Fontconfig error: Cannot load default config file
-  nativeCheckInputs = [ pytest xdpyinfo pytest-xvfb xorgserver i3 ];
+  nativeCheckInputs = [
+    pytest
+    xdpyinfo
+    pytest-xvfb
+    xorg.xvfb
+    i3
+  ];
 
   postPatch = ''
     substituteInPlace test/i3.config \
@@ -32,11 +45,10 @@ buildPythonPackage rec {
             --ignore=test/test_shutdown_event.py
   '';
 
-
   meta = with lib; {
-    description = "An improved Python library to control i3wm and sway";
-    homepage    = "https://github.com/acrisci/i3ipc-python";
-    license     = licenses.bsd3;
+    description = "Improved Python library to control i3wm and sway";
+    homepage = "https://github.com/acrisci/i3ipc-python";
+    license = licenses.bsd3;
     maintainers = with maintainers; [ vanzef ];
   };
 }
diff --git a/pkgs/development/python-modules/iammeter/default.nix b/pkgs/development/python-modules/iammeter/default.nix
index 7747e53f5bab1..4a9ba50b91ac2 100644
--- a/pkgs/development/python-modules/iammeter/default.nix
+++ b/pkgs/development/python-modules/iammeter/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "iammeter"
-  ];
+  pythonImportsCheck = [ "iammeter" ];
 
   meta = with lib; {
     description = "Module to work with the IamMeter API";
diff --git a/pkgs/development/python-modules/iapws/default.nix b/pkgs/development/python-modules/iapws/default.nix
index 8e2e3fd07a81d..2b373aa359da4 100644
--- a/pkgs/development/python-modules/iapws/default.nix
+++ b/pkgs/development/python-modules/iapws/default.nix
@@ -1,13 +1,18 @@
-{ lib, buildPythonPackage, fetchPypi, scipy }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  scipy,
+}:
 
 buildPythonPackage rec {
   pname = "iapws";
-  version = "1.5.3";
+  version = "1.5.4";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-QVxbf9EF9YwAVPewAqhc1WZD6jVr/rFXQUw/jJ7kkDU=";
+    hash = "sha256-nw+qOaln12/F5flfYdki4TVFMZLgK/h10HJC8T1uqlU=";
   };
 
   propagatedBuildInputs = [ scipy ];
diff --git a/pkgs/development/python-modules/iaqualink/default.nix b/pkgs/development/python-modules/iaqualink/default.nix
index 56dde70d3e3be..e436b599d95d1 100644
--- a/pkgs/development/python-modules/iaqualink/default.nix
+++ b/pkgs/development/python-modules/iaqualink/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatch-vcs
-, hatchling
-, httpx
-, pytestCheckHook
-, pythonOlder
-, respx
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatch-vcs,
+  hatchling,
+  httpx,
+  pytestCheckHook,
+  pythonOlder,
+  respx,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     hatchling
   ];
 
-  propagatedBuildInputs = [
-    httpx
-  ] ++ httpx.optional-dependencies.http2;
+  propagatedBuildInputs = [ httpx ] ++ httpx.optional-dependencies.http2;
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -42,9 +41,7 @@ buildPythonPackage rec {
       --replace "pytest --cov-config=pyproject.toml --cov-report=xml --cov-report=term --cov=src --cov=tests" ""
   '';
 
-  pythonImportsCheck = [
-    "iaqualink"
-  ];
+  pythonImportsCheck = [ "iaqualink" ];
 
   meta = with lib; {
     description = "Python library for Jandy iAqualink";
diff --git a/pkgs/development/python-modules/ibeacon-ble/default.nix b/pkgs/development/python-modules/ibeacon-ble/default.nix
index acbc955f10891..e0f9fc6823559 100644
--- a/pkgs/development/python-modules/ibeacon-ble/default.nix
+++ b/pkgs/development/python-modules/ibeacon-ble/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, aiooui
-, buildPythonPackage
-, fetchFromGitHub
-, home-assistant-bluetooth
-, mac-vendor-lookup
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aiooui,
+  buildPythonPackage,
+  fetchFromGitHub,
+  home-assistant-bluetooth,
+  mac-vendor-lookup,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
       --replace-fail " --cov=ibeacon_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -40,13 +39,9 @@ buildPythonPackage rec {
     mac-vendor-lookup
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ibeacon_ble"
-  ];
+  pythonImportsCheck = [ "ibeacon_ble" ];
 
   meta = with lib; {
     description = "Library for iBeacon BLE devices";
diff --git a/pkgs/development/python-modules/ibis-framework/default.nix b/pkgs/development/python-modules/ibis-framework/default.nix
index c6d68d83dbff2..abaabb11f1bb1 100644
--- a/pkgs/development/python-modules/ibis-framework/default.nix
+++ b/pkgs/development/python-modules/ibis-framework/default.nix
@@ -1,89 +1,91 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, atpublic
-, bidict
-, black
-, clickhouse-connect
-, dask
-, datafusion
-, db-dtypes
-, duckdb
-, duckdb-engine
-, filelock
-, geoalchemy2
-, geopandas
-, google-cloud-bigquery
-, google-cloud-bigquery-storage
-, graphviz
-, hypothesis
-, multipledispatch
-, numpy
-, oracledb
-, packaging
-, pandas
-, parsy
-, pins
-, poetry-core
-, poetry-dynamic-versioning
-, polars
-, psycopg2
-, pyarrow
-, pyarrow-hotfix
-, pydata-google-auth
-, pydruid
-, pymysql
-, pyodbc
-, pyspark
-, pytest-benchmark
-, pytest-httpserver
-, pytest-mock
-, pytest-randomly
-, pytest-snapshot
-, pytest-xdist
-, python-dateutil
-, pytz
-, regex
-, rich
-, shapely
-, snowflake-connector-python
-, snowflake-sqlalchemy
-, sqlalchemy
-, sqlalchemy-views
-, sqlglot
-, sqlite
-, toolz
-, trino-python-client
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  atpublic,
+  bidict,
+  black,
+  clickhouse-connect,
+  dask,
+  datafusion,
+  db-dtypes,
+  duckdb,
+  filelock,
+  geopandas,
+  google-cloud-bigquery,
+  google-cloud-bigquery-storage,
+  graphviz,
+  hypothesis,
+  multipledispatch,
+  numpy,
+  oracledb,
+  packaging,
+  pandas,
+  parsy,
+  pins,
+  poetry-core,
+  poetry-dynamic-versioning,
+  polars,
+  psycopg2,
+  pyarrow,
+  pyarrow-hotfix,
+  pydata-google-auth,
+  pydruid,
+  pymysql,
+  pyodbc,
+  pyspark,
+  pytest-benchmark,
+  pytest-httpserver,
+  pytest-mock,
+  pytest-randomly,
+  pytest-snapshot,
+  pytest-timeout,
+  pytest-xdist,
+  python-dateutil,
+  pytz,
+  regex,
+  rich,
+  shapely,
+  snowflake-connector-python,
+  sqlglot,
+  sqlite,
+  toolz,
+  trino-python-client,
+  typing-extensions,
 }:
 let
-  testBackends = [ "datafusion" "duckdb" "pandas" "sqlite" ];
+  testBackends = [
+    "datafusion"
+    "duckdb"
+    "pandas"
+    "sqlite"
+  ];
 
   ibisTestingData = fetchFromGitHub {
     name = "ibis-testing-data";
     owner = "ibis-project";
     repo = "testing-data";
-    # https://github.com/ibis-project/ibis/blob/8.0.0/nix/overlay.nix#L20-L26
-    rev = "2c6a4bb5d5d525058d8d5b2312a9fee5dafc5476";
-    hash = "sha256-Lq503bqh9ESZJSk6yVq/uZwkAubzmSmoTBZSsqMm0DY=";
+    # https://github.com/ibis-project/ibis/blob/9.1.0/nix/overlay.nix#L20-L26
+    rev = "6737d1cb5951cabaccd095a3ae62a93dbd11ecb9";
+    hash = "sha256-MoVTZPWh4KVlrICYACrgfeLdl/fqoa1iweNg3zUtdrs=";
   };
 in
 
 buildPythonPackage rec {
   pname = "ibis-framework";
-  version = "8.0.0";
+  version = "9.1.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.9";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     name = "ibis-source";
     repo = "ibis";
     owner = "ibis-project";
     rev = "refs/tags/${version}";
-    hash = "sha256-KcNZslqmSbu8uPYKpkyvd7d8Fsf0nQt80y0auXsI8fs=";
+    hash = "sha256-GmzmXzYMs7K7B//is3ZoD4muPAkb0tM56zFBbsA+NEo=";
   };
 
   nativeBuildInputs = [
@@ -91,7 +93,8 @@ buildPythonPackage rec {
     poetry-dynamic-versioning
   ];
 
-  POETRY_DYNAMIC_VERSIONING_BYPASS = version;
+  dontBypassPoetryDynamicVersioning = true;
+  env.POETRY_DYNAMIC_VERSIONING_BYPASS = lib.head (lib.strings.splitString "-" version);
 
   propagatedBuildInputs = [
     atpublic
@@ -120,6 +123,7 @@ buildPythonPackage rec {
     pytest-mock
     pytest-randomly
     pytest-snapshot
+    pytest-timeout
     pytest-xdist
   ] ++ lib.concatMap (name: passthru.optional-dependencies.${name}) testBackends;
 
@@ -130,25 +134,16 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # breakage from sqlalchemy2 truediv changes
-    "test_tpc_h17"
     # tries to download duckdb extensions
-    "test_register_sqlite"
+    "test_attach_sqlite"
+    "test_connect_extensions"
+    "test_load_extension"
     "test_read_sqlite"
-    # duckdb does not respect sample_size=2 (reads 3 lines of csv).
-    "test_csv_reregister_schema"
-    # duckdb fails with:
-    # "This function can not be called with an active transaction!, commit or abort the existing one first"
-    "test_vectorized_udf"
+    "test_register_sqlite"
+    # requires network connection
     "test_s3_403_fallback"
-    "test_map_merge_udf"
-    "test_udf"
-    "test_map_udf"
-    # DataFusion error
-    "datafusion"
-    # pluggy.PluggyTeardownRaisedWarning
-    "test_repr_png_is_not_none_in_not_interactive"
-    "test_interval_arithmetic"
+    # requires pytest 8.2+
+    "test_roundtrip_delta"
   ];
 
   # patch out tests that check formatting with black
@@ -170,30 +165,52 @@ buildPythonPackage rec {
     rm -r "$IBIS_TEST_DATA_DIRECTORY"
   '';
 
-  pythonImportsCheck = [
-    "ibis"
-  ] ++ map (backend: "ibis.backends.${backend}") testBackends;
+  pythonImportsCheck = [ "ibis" ] ++ map (backend: "ibis.backends.${backend}") testBackends;
 
   passthru = {
     optional-dependencies = {
-      bigquery = [ db-dtypes google-cloud-bigquery google-cloud-bigquery-storage pydata-google-auth ];
-      clickhouse = [ clickhouse-connect sqlalchemy ];
-      dask = [ dask regex ];
+      bigquery = [
+        db-dtypes
+        google-cloud-bigquery
+        google-cloud-bigquery-storage
+        pydata-google-auth
+      ];
+      clickhouse = [ clickhouse-connect ];
+      dask = [
+        dask
+        regex
+        packaging
+      ];
       datafusion = [ datafusion ];
-      druid = [ pydruid sqlalchemy ];
-      duckdb = [ duckdb duckdb-engine sqlalchemy sqlalchemy-views ];
+      druid = [ pydruid ];
+      duckdb = [ duckdb ];
       flink = [ ];
-      geospatial = [ geoalchemy2 geopandas shapely ];
-      mssql = [ sqlalchemy pyodbc sqlalchemy-views ];
-      mysql = [ sqlalchemy pymysql sqlalchemy-views ];
-      oracle = [ sqlalchemy oracledb packaging sqlalchemy-views ];
-      pandas = [ regex ];
-      polars = [ polars packaging ];
-      postgres = [ psycopg2 sqlalchemy sqlalchemy-views ];
-      pyspark = [ pyspark sqlalchemy packaging ];
-      snowflake = [ snowflake-connector-python snowflake-sqlalchemy sqlalchemy-views packaging ];
-      sqlite = [ regex sqlalchemy sqlalchemy-views ];
-      trino = [ trino-python-client sqlalchemy sqlalchemy-views ];
+      geospatial = [
+        geopandas
+        shapely
+      ];
+      mssql = [ pyodbc ];
+      mysql = [ pymysql ];
+      oracle = [
+        oracledb
+        packaging
+      ];
+      pandas = [
+        regex
+        packaging
+      ];
+      polars = [
+        polars
+        packaging
+      ];
+      postgres = [ psycopg2 ];
+      pyspark = [
+        pyspark
+        packaging
+      ];
+      snowflake = [ snowflake-connector-python ];
+      sqlite = [ regex ];
+      trino = [ trino-python-client ];
       visualization = [ graphviz ];
       decompiler = [ black ];
       examples = [ pins ] ++ pins.optional-dependencies.gcs;
diff --git a/pkgs/development/python-modules/ibis/default.nix b/pkgs/development/python-modules/ibis/default.nix
index e012ca20e2d7b..84eedf9e3b69d 100644
--- a/pkgs/development/python-modules/ibis/default.nix
+++ b/pkgs/development/python-modules/ibis/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     ${python.interpreter} test_ibis.py
   '';
 
-  pythonImportsCheck = [
-    "ibis"
-  ];
+  pythonImportsCheck = [ "ibis" ];
 
   meta = with lib; {
     description = "Lightweight template engine";
diff --git a/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix b/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix
index 65ddf3d5c0714..3a3a86731df35 100644
--- a/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix
+++ b/pkgs/development/python-modules/ibm-cloud-sdk-core/default.nix
@@ -1,32 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyjwt
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, requests
-, responses
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyjwt,
+  pytestCheckHook,
+  python-dateutil,
+  pythonAtLeast,
+  pythonOlder,
+  requests,
+  responses,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "ibm-cloud-sdk-core";
-  version = "3.20.0";
+  version = "3.20.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-CqbZcEP1ianvRRpx527KBjQTjvGBzlSmoKY1Pe5MXRA=";
+    hash = "sha256-nE1JIlYlJ5O3L7FQD5L+JvLnVs7nq4Ff6dmHvgXjj0M=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     pyjwt
     python-dateutil
     requests
@@ -37,22 +37,28 @@ buildPythonPackage rec {
     responses
   ];
 
-  disabledTests = [
-    # Various tests try to access credential files which are not included with the source distribution
-    "test_configure_service"
-    "test_cp4d_authenticator"
-    "test_cwd"
-    "test_files_dict"
-    "test_files_duplicate_parts"
-    "test_files_list"
-    "test_get_authenticator"
-    "test_gzip_compression_external"
-    "test_iam"
-    "test_read_external_sources_2"
-    "test_retry_config_external"
-    # assertion error due to requests brotli support
-    "test_http_client"
-  ];
+  disabledTests =
+    [
+      # Various tests try to access credential files which are not included with the source distribution
+      "test_configure_service"
+      "test_cp4d_authenticator"
+      "test_cwd"
+      "test_files_dict"
+      "test_files_duplicate_parts"
+      "test_files_list"
+      "test_get_authenticator"
+      "test_gzip_compression_external"
+      "test_iam"
+      "test_read_external_sources_2"
+      "test_retry_config_external"
+      # assertion error due to requests brotli support
+      "test_http_client"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # Tests are blocking or failing
+      "test_abstract_class_instantiation"
+      "test_abstract_class_instantiation"
+    ];
 
   disabledTestPaths = [
     "test/test_container_token_manager.py"
diff --git a/pkgs/development/python-modules/ibm-watson/default.nix b/pkgs/development/python-modules/ibm-watson/default.nix
index c15ec2005a297..74ce5e9884529 100644
--- a/pkgs/development/python-modules/ibm-watson/default.nix
+++ b/pkgs/development/python-modules/ibm-watson/default.nix
@@ -1,21 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, ibm-cloud-sdk-core
-, pytest-rerunfailures
-, pytestCheckHook
-, python-dateutil
-, python-dotenv
-, pythonOlder
-, requests
-, responses
-, websocket-client
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ibm-cloud-sdk-core,
+  pytest-rerunfailures,
+  pytestCheckHook,
+  python-dateutil,
+  python-dotenv,
+  pythonOlder,
+  requests,
+  setuptools,
+  responses,
+  websocket-client,
 }:
 
 buildPythonPackage rec {
   pname = "ibm-watson";
-  version = "8.0.0";
-  format = "setuptools";
+  version = "8.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -23,10 +25,12 @@ buildPythonPackage rec {
     owner = "watson-developer-cloud";
     repo = "python-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-p2LyR7Fxd0Ny6QCypAWIusnINuhWAhWOnRfZ14FKvro=";
+    hash = "sha256-r7A5i17KIy1pBrj01yeknfrOFjb5yZco8ZOc7tlFM7k=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     ibm-cloud-sdk-core
     python-dateutil
     requests
@@ -40,9 +44,7 @@ buildPythonPackage rec {
     responses
   ];
 
-  pythonImportsCheck = [
-    "ibm_watson"
-  ];
+  pythonImportsCheck = [ "ibm_watson" ];
 
   meta = with lib; {
     description = "Client library to use the IBM Watson Services";
diff --git a/pkgs/development/python-modules/ical/default.nix b/pkgs/development/python-modules/ical/default.nix
index 7807d5d7b2798..e238b91d0d013 100644
--- a/pkgs/development/python-modules/ical/default.nix
+++ b/pkgs/development/python-modules/ical/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, emoji
-, fetchFromGitHub
-, freezegun
-, tzdata
-, pyparsing
-, pydantic
-, pytest-benchmark
-, pytestCheckHook
-, pythonOlder
-, python-dateutil
-, setuptools
-, syrupy
+{
+  lib,
+  buildPythonPackage,
+  emoji,
+  fetchFromGitHub,
+  freezegun,
+  tzdata,
+  pyparsing,
+  pydantic,
+  pytest-benchmark,
+  pytestCheckHook,
+  pythonOlder,
+  python-dateutil,
+  setuptools,
+  syrupy,
 }:
 
 buildPythonPackage rec {
   pname = "ical";
-  version = "8.0.0";
+  version = "8.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -25,12 +26,10 @@ buildPythonPackage rec {
     owner = "allenporter";
     repo = "ical";
     rev = "refs/tags/${version}";
-    hash = "sha256-nwF6iInQzHdOtmcC1fi6CS2LnYRCxc/DS9bg8IxTlFg=";
+    hash = "sha256-tx6zlOelZ0QtKUke4vn2fa3tQI8FDw183gIT1L0cBA4=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     python-dateutil
@@ -47,9 +46,7 @@ buildPythonPackage rec {
     syrupy
   ];
 
-  pythonImportsCheck = [
-    "ical"
-  ];
+  pythonImportsCheck = [ "ical" ];
 
   meta = with lib; {
     description = "Library for handling iCalendar";
diff --git a/pkgs/development/python-modules/icalendar/default.nix b/pkgs/development/python-modules/icalendar/default.nix
index e848cb79cf483..9a3043affca1b 100644
--- a/pkgs/development/python-modules/icalendar/default.nix
+++ b/pkgs/development/python-modules/icalendar/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, backports-zoneinfo
-, python-dateutil
-, pytz
-, hypothesis
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  backports-zoneinfo,
+  python-dateutil,
+  pytz,
+  hypothesis,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,16 +23,12 @@ buildPythonPackage rec {
     hash = "sha256-313NcknY2zad4lI+/P0szDVjEQ8VatnSiBiaG/Ta1Bw=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     python-dateutil
     pytz
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    backports-zoneinfo
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ backports-zoneinfo ];
 
   nativeCheckInputs = [
     hypothesis
@@ -42,11 +39,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/collective/icalendar/blob/v${version}/CHANGES.rst";
-    description = "A parser/generator of iCalendar files";
+    description = "Parser/generator of iCalendar files";
     mainProgram = "icalendar";
     homepage = "https://github.com/collective/icalendar";
     license = licenses.bsd2;
     maintainers = with maintainers; [ olcai ];
   };
-
 }
diff --git a/pkgs/development/python-modules/icalevents/default.nix b/pkgs/development/python-modules/icalevents/default.nix
index 41b6f1bd34f72..7cbffd265e8f2 100644
--- a/pkgs/development/python-modules/icalevents/default.nix
+++ b/pkgs/development/python-modules/icalevents/default.nix
@@ -1,15 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, poetry-core
-, pythonRelaxDepsHook
-, datetime
-, httplib2
-, icalendar
-, python-dateutil
-, pytz
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  poetry-core,
+  datetime,
+  httplib2,
+  icalendar,
+  python-dateutil,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -28,7 +28,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -46,9 +45,7 @@ buildPythonPackage rec {
     "pytz"
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Makes HTTP calls
diff --git a/pkgs/development/python-modules/icecream/default.nix b/pkgs/development/python-modules/icecream/default.nix
index db9e56bb8b6e3..c93fe2f7042d1 100644
--- a/pkgs/development/python-modules/icecream/default.nix
+++ b/pkgs/development/python-modules/icecream/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-
-# build-system
-, setuptools
-
-# dependencies
-, asttokens
-, colorama
-, executing
-, pygments
-
-# tests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  asttokens,
+  colorama,
+  executing,
+  pygments,
+
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
       --replace assertRegexpMatches assertRegex
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     asttokens
@@ -41,9 +40,7 @@ buildPythonPackage rec {
     pygments
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # icecream.icecream.NoSourceAvailableError
@@ -53,7 +50,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A little library for sweet and creamy print debugging";
+    description = "Little library for sweet and creamy print debugging";
     homepage = "https://github.com/gruns/icecream";
     license = licenses.mit;
     maintainers = with maintainers; [ renatoGarcia ];
diff --git a/pkgs/development/python-modules/iceportal/default.nix b/pkgs/development/python-modules/iceportal/default.nix
index a587503bc0725..0ec332e10dfd3 100644
--- a/pkgs/development/python-modules/iceportal/default.nix
+++ b/pkgs/development/python-modules/iceportal/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, httpx
-, pytest-asyncio
-, pytest-httpx
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  httpx,
+  pytest-asyncio,
+  pytest-httpx,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     hash = "sha256-kpAUgGi2fAHzQYuZAaQW9wdrYjwbduRsoTwSuzcjJa8=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    httpx
-  ];
+  dependencies = [ httpx ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -37,9 +34,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "iceportal"
-  ];
+  pythonImportsCheck = [ "iceportal" ];
 
   meta = with lib; {
     description = "Library for getting data from the ICE Portal";
diff --git a/pkgs/development/python-modules/icmplib/default.nix b/pkgs/development/python-modules/icmplib/default.nix
index 0d42526c8ca98..1ea2b702001b0 100644
--- a/pkgs/development/python-modules/icmplib/default.nix
+++ b/pkgs/development/python-modules/icmplib/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pbr
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pbr,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/icnsutil/default.nix b/pkgs/development/python-modules/icnsutil/default.nix
index 46c1fcae3facb..8061c62feb228 100644
--- a/pkgs/development/python-modules/icnsutil/default.nix
+++ b/pkgs/development/python-modules/icnsutil/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     ${python.interpreter} tests/test_cli.py
   '';
 
-  pythonImportsCheck = [
-    "icnsutil"
-  ];
+  pythonImportsCheck = [ "icnsutil" ];
 
   meta = with lib; {
     description = "Create and extract .icns files";
diff --git a/pkgs/development/python-modules/icoextract/default.nix b/pkgs/development/python-modules/icoextract/default.nix
index beb39a32aa393..e9ef6393f22f4 100644
--- a/pkgs/development/python-modules/icoextract/default.nix
+++ b/pkgs/development/python-modules/icoextract/default.nix
@@ -1,17 +1,29 @@
-{ lib, buildPythonPackage, fetchPypi, pefile, pillow}:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pefile,
+  pillow,
+  pythonOlder,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "icoextract";
-  version = "0.1.4";
-  format = "setuptools";
+  version = "0.1.5";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
     extension = "tar.gz";
-    hash = "sha256-x0GEV0PUbkAzoUJgAqup9bHd7iYttGyzIZNdo8KsFyo=";
+    hash = "sha256-/UxnWNyRNtwI4Rxx97i5QyjeMrUr5Sq+TfLTmU0xWyc=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     pefile
     pillow
   ];
@@ -19,9 +31,7 @@ buildPythonPackage rec {
   # tests expect mingw and multiarch
   doCheck = false;
 
-  pythonImportsCheck = [
-    "icoextract"
-  ];
+  pythonImportsCheck = [ "icoextract" ];
 
   postInstall = ''
     mkdir -p $out/share/thumbnailers
@@ -31,7 +41,11 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Extract icons from Windows PE files";
     homepage = "https://github.com/jlu5/icoextract";
+    changelog = "https://github.com/jlu5/icoextract/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ bryanasdev000 donovanglover ];
+    maintainers = with maintainers; [
+      bryanasdev000
+      donovanglover
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/icontract/default.nix b/pkgs/development/python-modules/icontract/default.nix
index f8b9fd589f186..7076732ba63c8 100644
--- a/pkgs/development/python-modules/icontract/default.nix
+++ b/pkgs/development/python-modules/icontract/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, astor
-, asttokens
-, asyncstdlib
-, buildPythonPackage
-, deal
-, dpcontracts
-, fetchFromGitHub
-, numpy
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  astor,
+  asttokens,
+  asyncstdlib,
+  buildPythonPackage,
+  deal,
+  dpcontracts,
+  fetchFromGitHub,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     export ICONTRACT_SLOW=1
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     asttokens
@@ -67,18 +66,20 @@ buildPythonPackage rec {
 
   pytestFlagsArray = [
     # RuntimeWarning: coroutine '*' was never awaited
-    "-W" "ignore::RuntimeWarning"
+    "-W"
+    "ignore::RuntimeWarning"
   ];
 
-  pythonImportsCheck = [
-    "icontract"
-  ];
+  pythonImportsCheck = [ "icontract" ];
 
   meta = with lib; {
     description = "Provide design-by-contract with informative violation messages";
     homepage = "https://github.com/Parquery/icontract";
     changelog = "https://github.com/Parquery/icontract/blob/v${version}/CHANGELOG.rst";
     license = licenses.mit;
-    maintainers = with maintainers; [ gador thiagokokada ];
+    maintainers = with maintainers; [
+      gador
+      thiagokokada
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/ics/default.nix b/pkgs/development/python-modules/ics/default.nix
index f6e86242c612f..2f973a6dc9812 100644
--- a/pkgs/development/python-modules/ics/default.nix
+++ b/pkgs/development/python-modules/ics/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, arrow
-, attrs
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-flakes
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, tatsu
+{
+  lib,
+  arrow,
+  attrs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-flakes,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  tatsu,
 }:
 
 buildPythonPackage rec {
@@ -15,7 +16,7 @@ buildPythonPackage rec {
   version = "0.7.2";
   pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "ics-py";
@@ -24,11 +25,14 @@ buildPythonPackage rec {
     hash = "sha256-hdtnET7YfSb85+TGwpwzoxOfxPT7VSj9eKSiV6AXUS8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  postPatch = ''
+    substituteInPlace setup.cfg \
+      --replace-fail "--pep8" ""
+  '';
+
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     attrs
     arrow
     tatsu
@@ -39,23 +43,16 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    # 0.8 will move to python-dateutil
-    substituteInPlace requirements.txt \
-      --replace "arrow>=0.11,<0.15" "arrow"
-    substituteInPlace setup.cfg --replace "--pep8" ""
-  '';
-
   disabledTests = [
     # Failure seems to be related to arrow > 1.0
     "test_event"
     # Broke with TatSu 5.7:
     "test_many_lines"
+    # AssertionError: 'Europe/Berlin' not found in "tzfile('Atlantic/Jan_Mayen')"
+    "test_timezone_not_dropped"
   ];
 
-  pythonImportsCheck = [
-    "ics"
-  ];
+  pythonImportsCheck = [ "ics" ];
 
   meta = with lib; {
     description = "Pythonic and easy iCalendar library (RFC 5545)";
diff --git a/pkgs/development/python-modules/id/default.nix b/pkgs/development/python-modules/id/default.nix
index 2845f47ebc5f6..7ca8930f4fc46 100644
--- a/pkgs/development/python-modules/id/default.nix
+++ b/pkgs/development/python-modules/id/default.nix
@@ -39,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "id" ];
 
   meta = with lib; {
-    description = "A tool for generating OIDC identities";
+    description = "Tool for generating OIDC identities";
     homepage = "https://github.com/di/id";
     changelog = "https://github.com/di/id/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/idasen/default.nix b/pkgs/development/python-modules/idasen/default.nix
index 122ff64eb0887..61bbdefce2f5e 100644
--- a/pkgs/development/python-modules/idasen/default.nix
+++ b/pkgs/development/python-modules/idasen/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, bleak
-, pyyaml
-, voluptuous
-, pytestCheckHook
-, pytest-asyncio
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  bleak,
+  pyyaml,
+  voluptuous,
+  pytestCheckHook,
+  pytest-asyncio,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-TQ+DBFpG+IeZ4/dN+YKMw3AM4Dl1rpqA1kRcb3Tb3jA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bleak
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
-  pythonImportsCheck = [
-    "idasen"
-  ];
+  pythonImportsCheck = [ "idasen" ];
 
   meta = with lib; {
     description = "Python API and CLI for the ikea IDÅSEN desk";
diff --git a/pkgs/development/python-modules/idna-ssl/default.nix b/pkgs/development/python-modules/idna-ssl/default.nix
index a26aecb49d047..cc0c12f709993 100644
--- a/pkgs/development/python-modules/idna-ssl/default.nix
+++ b/pkgs/development/python-modules/idna-ssl/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, idna }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  idna,
+}:
 
 buildPythonPackage rec {
   pname = "idna-ssl";
diff --git a/pkgs/development/python-modules/idna/default.nix b/pkgs/development/python-modules/idna/default.nix
index ec47eb6751120..e44da7b58abe6 100644
--- a/pkgs/development/python-modules/idna/default.nix
+++ b/pkgs/development/python-modules/idna/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -15,13 +16,9 @@ buildPythonPackage rec {
     hash = "sha256-Ao/zqt8GCcH9J42OowiSmUEqeoub0AXdCLn4KFvLXPw=";
   };
 
-  build-system = [
-    flit-core
-  ];
+  build-system = [ flit-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
     homepage = "https://github.com/kjd/idna/";
diff --git a/pkgs/development/python-modules/ifaddr/default.nix b/pkgs/development/python-modules/ifaddr/default.nix
index 2f5d8e202dba1..e313d7bc71025 100644
--- a/pkgs/development/python-modules/ifaddr/default.nix
+++ b/pkgs/development/python-modules/ifaddr/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-zAy/yqv3ZdRFlYJfuWqZuxLHlxa3O0QzDqOO4rDErtQ=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "ifaddr" ];
 
diff --git a/pkgs/development/python-modules/ifcopenshell/default.nix b/pkgs/development/python-modules/ifcopenshell/default.nix
index 3fc63b13bb391..5c67a8ee5c2de 100644
--- a/pkgs/development/python-modules/ifcopenshell/default.nix
+++ b/pkgs/development/python-modules/ifcopenshell/default.nix
@@ -1,31 +1,38 @@
-{ lib, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, gcc10
-, cmake
-, boost179
-, icu
-, swig
-, pcre
-, opencascade-occt
-, opencollada
-, libxml2
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gcc10,
+  cmake,
+  boost179,
+  icu,
+  swig,
+  pcre,
+  opencascade-occt_7_6,
+  opencollada,
+  libxml2,
 }:
-
+let
+  opencascade-occt = opencascade-occt_7_6;
+in
 buildPythonPackage rec {
   pname = "ifcopenshell";
-  version = "240306";
+  version = "240611";
   format = "other";
 
   src = fetchFromGitHub {
-    owner  = "IfcOpenShell";
-    repo   = "IfcOpenShell";
+    owner = "IfcOpenShell";
+    repo = "IfcOpenShell";
     rev = "refs/tags/blenderbim-${version}";
     fetchSubmodules = true;
-    sha256 = "sha256-DtA8KeWipPfOnztKG/lrgLZeOCUG3nWR9oW7OST7koc=";
+    sha256 = "sha256-fCgxSambC01qb14EoZTrVxNNw8H3nX8oMi6gk0O/HmQ=";
   };
 
-  nativeBuildInputs = [ gcc10 cmake ];
+  nativeBuildInputs = [
+    gcc10
+    cmake
+  ];
 
   buildInputs = [
     boost179
@@ -38,7 +45,7 @@ buildPythonPackage rec {
     cd cmake
   '';
 
-  PYTHONUSERBASE=".";
+  PYTHONUSERBASE = ".";
   cmakeFlags = [
     "-DUSERSPACE_PYTHON_PREFIX=ON"
     "-DOCC_INCLUDE_DIR=${opencascade-occt}/include/opencascade"
@@ -53,8 +60,8 @@ buildPythonPackage rec {
   meta = with lib; {
     broken = stdenv.isDarwin;
     description = "Open source IFC library and geometry engine";
-    homepage    = "http://ifcopenshell.org/";
-    license     = licenses.lgpl3;
+    homepage = "http://ifcopenshell.org/";
+    license = licenses.lgpl3;
     maintainers = with maintainers; [ fehnomenal ];
   };
 }
diff --git a/pkgs/development/python-modules/ignite/default.nix b/pkgs/development/python-modules/ignite/default.nix
index 174ba8312745a..c805a688b7343 100644
--- a/pkgs/development/python-modules/ignite/default.nix
+++ b/pkgs/development/python-modules/ignite/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pytest-xdist
-, torchvision
-, pythonOlder
-, matplotlib
-, mock
-, packaging
-, torch
-, scikit-learn
-, tqdm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pytest-xdist,
+  torchvision,
+  pythonOlder,
+  matplotlib,
+  mock,
+  packaging,
+  torch,
+  scikit-learn,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -25,8 +26,19 @@ buildPythonPackage rec {
     hash = "sha256-Lg7ASODYwWWhC45X4+Bk50gSlSWwgn2tM4atLXWbQLI=";
   };
 
-  nativeCheckInputs = [ pytestCheckHook matplotlib mock pytest-xdist torchvision ];
-  propagatedBuildInputs = [ packaging torch scikit-learn tqdm ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    matplotlib
+    mock
+    pytest-xdist
+    torchvision
+  ];
+  propagatedBuildInputs = [
+    packaging
+    torch
+    scikit-learn
+    tqdm
+  ];
 
   # runs successfully in 3.9, however, async isn't correctly closed so it will fail after test suite.
   doCheck = pythonOlder "3.9";
diff --git a/pkgs/development/python-modules/igraph/default.nix b/pkgs/development/python-modules/igraph/default.nix
index 98f38528c1442..53bd1e5269097 100644
--- a/pkgs/development/python-modules/igraph/default.nix
+++ b/pkgs/development/python-modules/igraph/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pkg-config
-, setuptools
-, igraph
-, texttable
-, cairocffi
-, matplotlib
-, plotly
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pkg-config,
+  setuptools,
+  igraph,
+  texttable,
+  cairocffi,
+  matplotlib,
+  plotly,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "igraph";
-  version = "0.11.4";
+  version = "0.11.5";
 
   disabled = pythonOlder "3.8";
 
@@ -24,7 +25,7 @@ buildPythonPackage rec {
     owner = "igraph";
     repo = "python-igraph";
     rev = "refs/tags/${version}";
-    hash = "sha256-sR9OqsBxP2DvcYz1dhIP29rrQ56CRKW02oNAXUNttio=";
+    hash = "sha256-nfXCAjTKxtslVk17h60+v/JQusQTmaTRCPvvFG4/OPk=";
   };
 
   postPatch = ''
@@ -36,13 +37,9 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  buildInputs = [
-    igraph
-  ];
+  buildInputs = [ igraph ];
 
-  propagatedBuildInputs = [
-    texttable
-  ];
+  propagatedBuildInputs = [ texttable ];
 
   passthru.optional-dependencies = {
     cairo = [ cairocffi ];
@@ -73,6 +70,9 @@ buildPythonPackage rec {
     homepage = "https://igraph.org/python/";
     changelog = "https://github.com/igraph/python-igraph/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ MostAwesomeDude dotlambda ];
+    maintainers = with maintainers; [
+      MostAwesomeDude
+      dotlambda
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/ihm/default.nix b/pkgs/development/python-modules/ihm/default.nix
index 2cfb69178b109..d281d66369cb7 100644
--- a/pkgs/development/python-modules/ihm/default.nix
+++ b/pkgs/development/python-modules/ihm/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, swig
-, wheel
-, msgpack
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  swig,
+  wheel,
+  msgpack,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "ihm";
-  version = "1.0";
+  version = "1.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ihmwg";
     repo = "python-ihm";
     rev = "refs/tags/${version}";
-    hash = "sha256-a1M3YihN71M9TnkldAzN6N1UuPksDk6SPiBgr4HyC8g=";
+    hash = "sha256-lQ7/A/RT8/5gLozsToti+4g1Jc++GtjzOU4XZ+feqDs=";
   };
 
   nativeBuildInputs = [
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    msgpack
-  ];
+  propagatedBuildInputs = [ msgpack ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # requires network access
diff --git a/pkgs/development/python-modules/iisignature/default.nix b/pkgs/development/python-modules/iisignature/default.nix
index 1ddfd05b53266..8be12a0ef76f3 100644
--- a/pkgs/development/python-modules/iisignature/default.nix
+++ b/pkgs/development/python-modules/iisignature/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, wheel
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  wheel,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   # PyPI tarball has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/ijson/default.nix b/pkgs/development/python-modules/ijson/default.nix
index 4f99055f5ad11..7a16b64e86f36 100644
--- a/pkgs/development/python-modules/ijson/default.nix
+++ b/pkgs/development/python-modules/ijson/default.nix
@@ -1,44 +1,35 @@
-{ lib
-, buildPythonPackage
-, cffi
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, yajl
+{
+  lib,
+  buildPythonPackage,
+  cffi,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  yajl,
 }:
 
 buildPythonPackage rec {
   pname = "ijson";
-  version = "3.2.3";
+  version = "3.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-EClOm/ictxPaBbxHkL3/YWYQQy21YZZIJwdImOF0+Rc=";
+    hash = "sha256-fxcua6G+4NTI+OvWOVd7/kKd7g8/lndaBnuLrkSS2KA=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  buildInputs = [
-    yajl
-  ];
+  buildInputs = [ yajl ];
 
-  dependencies = [
-    cffi
-  ];
+  dependencies = [ cffi ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ijson"
-  ];
+  pythonImportsCheck = [ "ijson" ];
 
   meta = with lib; {
     description = "Iterative JSON parser with a standard Python iterator interface";
diff --git a/pkgs/development/python-modules/ilua/default.nix b/pkgs/development/python-modules/ilua/default.nix
index 119c6b17f5e30..4e4899ebc74d5 100644
--- a/pkgs/development/python-modules/ilua/default.nix
+++ b/pkgs/development/python-modules/ilua/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jupyter-console
-, jupyter-core
-, pygments
-, setuptools
-, termcolor
-, txzmq
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jupyter-console,
+  jupyter-core,
+  pygments,
+  setuptools,
+  termcolor,
+  txzmq,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-YxV6xC7GS5NXyMPRZN9YIJxamgP2etwrZUAZjk5PjtU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     jupyter-console
@@ -41,6 +40,6 @@ buildPythonPackage rec {
     mainProgram = "ilua";
     homepage = "https://github.com/guysv/ilua";
     license = licenses.gpl2Only;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/image-diff/default.nix b/pkgs/development/python-modules/image-diff/default.nix
index 8f65994b3885b..ac5a22947a413 100644
--- a/pkgs/development/python-modules/image-diff/default.nix
+++ b/pkgs/development/python-modules/image-diff/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, python
-, buildPythonPackage
-, fetchFromGitHub
-, pillow
-, click
-, click-default-group
-, pytestCheckHook
+{
+  lib,
+  python,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pillow,
+  click,
+  click-default-group,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/image-go-nord/default.nix b/pkgs/development/python-modules/image-go-nord/default.nix
index 4daa574e79e75..5350b3180d290 100644
--- a/pkgs/development/python-modules/image-go-nord/default.nix
+++ b/pkgs/development/python-modules/image-go-nord/default.nix
@@ -1,8 +1,15 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pillow, pytestCheckHook, pythonOlder }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pillow,
+  pytestCheckHook,
+  pythonOlder,
+}:
 
 buildPythonPackage rec {
   pname = "image-go-nord";
-  version = "0.1.7";
+  version = "1.1.0";
   format = "setuptools";
   disabled = pythonOlder "3.7";
 
@@ -10,7 +17,7 @@ buildPythonPackage rec {
     owner = "Schrodinger-Hat";
     repo = "ImageGoNord-pip";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vXABG3aJ6bwT37hfo909oF8qfAY3ZW18xvr1V8vSy5w=";
+    hash = "sha256-2Dnl0dcdMo4PnhHTb/5cJ7C0CvW84av4CCbrTLPqopg=";
   };
 
   propagatedBuildInputs = [ pillow ];
@@ -18,7 +25,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A tool that can convert rgb images to nordtheme palette";
+    description = "Tool that can convert rgb images to nordtheme palette";
     homepage = "https://github.com/Schrodinger-Hat/ImageGoNord-pip";
     license = licenses.mit;
     maintainers = with maintainers; [ kranzes ];
diff --git a/pkgs/development/python-modules/imagecodecs-lite/default.nix b/pkgs/development/python-modules/imagecodecs-lite/default.nix
index cef23d308f4b5..cca83672a31d6 100644
--- a/pkgs/development/python-modules/imagecodecs-lite/default.nix
+++ b/pkgs/development/python-modules/imagecodecs-lite/default.nix
@@ -1,8 +1,11 @@
-{ stdenv
-, lib, fetchPypi, buildPythonPackage
-, pytest
-, numpy
-, cython
+{
+  stdenv,
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pytest,
+  numpy,
+  cython,
 }:
 
 buildPythonPackage rec {
@@ -15,17 +18,11 @@ buildPythonPackage rec {
     sha256 = "0s4xb17qd7vimc46rafbjnibj4sf0lnv8cwl22k1h6zb7jhqmlcm";
   };
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   checkPhase = ''
     pytest
diff --git a/pkgs/development/python-modules/imagecorruptions/default.nix b/pkgs/development/python-modules/imagecorruptions/default.nix
index 5642812f80401..37a7e1e7056b2 100644
--- a/pkgs/development/python-modules/imagecorruptions/default.nix
+++ b/pkgs/development/python-modules/imagecorruptions/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, fetchPypi
-, numpy
-, scikit-image
-, lib
-, opencv4
+{
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  scikit-image,
+  lib,
+  opencv4,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/imagededup/default.nix b/pkgs/development/python-modules/imagededup/default.nix
index a8de28de438e7..b12d6a7b2f01f 100644
--- a/pkgs/development/python-modules/imagededup/default.nix
+++ b/pkgs/development/python-modules/imagededup/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, fetchurl
-, matplotlib
-, pillow
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, pywavelets
-, scikit-learn
-, setuptools
-, torch
-, torchvision
-, tqdm
-, fetchpatch
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  fetchurl,
+  matplotlib,
+  pillow,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  pywavelets,
+  scikit-learn,
+  setuptools,
+  torch,
+  torchvision,
+  tqdm,
+  fetchpatch,
 }:
 let
   MobileNetV3 = fetchurl {
@@ -74,9 +75,7 @@ buildPythonPackage rec {
     ln -s ${EfficientNet} $HOME/.cache/torch/hub/checkpoints/${EfficientNet.name}
   '';
 
-  pythonImportsCheck = [
-    "imagededup"
-  ];
+  pythonImportsCheck = [ "imagededup" ];
 
   patches = [
     # https://github.com/idealo/imagededup/pull/217
diff --git a/pkgs/development/python-modules/imagehash/default.nix b/pkgs/development/python-modules/imagehash/default.nix
index 55ce39e8648a9..782aab2360d45 100644
--- a/pkgs/development/python-modules/imagehash/default.nix
+++ b/pkgs/development/python-modules/imagehash/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, numpy
-, six
-, scipy
-, pillow
-, pywavelets
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  numpy,
+  six,
+  scipy,
+  pillow,
+  pywavelets,
 }:
 
 buildPythonPackage rec {
@@ -32,7 +33,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A Python Perceptual Image Hashing Module";
+    description = "Python Perceptual Image Hashing Module";
     mainProgram = "find_similar_images.py";
     homepage = "https://github.com/JohannesBuchner/imagehash";
     license = licenses.bsd2;
diff --git a/pkgs/development/python-modules/imageio-ffmpeg/default.nix b/pkgs/development/python-modules/imageio-ffmpeg/default.nix
index 3f2b7de89dde7..250f5ea64b188 100644
--- a/pkgs/development/python-modules/imageio-ffmpeg/default.nix
+++ b/pkgs/development/python-modules/imageio-ffmpeg/default.nix
@@ -1,25 +1,35 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, substituteAll
-, ffmpeg_4
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  substituteAll,
+  ffmpeg,
+
+  # build-system
+  setuptools,
+
+  # checks
+  psutil,
+  pytestCheckHook,
+  python,
 }:
 
 buildPythonPackage rec {
   pname = "imageio-ffmpeg";
-  version = "0.4.9";
-  format = "setuptools";
+  version = "0.5.1";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-ObzRZgEY7zYPpAR0VlAQcTZGYaqdkCHT0mxY8e4ggfU=";
+  src = fetchFromGitHub {
+    owner = "imageio";
+    repo = "imageio-ffmpeg";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-i9DBEhRyW5shgnhpaqpPLTI50q+SATJnxur8PAauYX4=";
   };
 
   patches = [
     (substituteAll {
       src = ./ffmpeg-path.patch;
-      ffmpeg = "${ffmpeg_4}/bin/ffmpeg";
+      ffmpeg = "${ffmpeg}/bin/ffmpeg";
     })
   ];
 
@@ -28,24 +38,34 @@ buildPythonPackage rec {
     sed -i '/setup_requires=\["pip>19"\]/d' setup.py
   '';
 
-  checkPhase = ''
-    runHook preCheck
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [
+    psutil
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    # network access
+    "tests/test_io.py"
+    "tests/test_special.py"
+    "tests/test_terminate.py"
+  ];
 
+  postCheck = ''
     ${python.interpreter} << EOF
     from imageio_ffmpeg import get_ffmpeg_version
-    assert get_ffmpeg_version() == '${ffmpeg_4.version}'
+    assert get_ffmpeg_version() == '${ffmpeg.version}'
     EOF
-
-    runHook postCheck
   '';
 
   pythonImportsCheck = [ "imageio_ffmpeg" ];
 
   meta = with lib; {
+    changelog = "https://github.com/imageio/imageio-ffmpeg/releases/tag/v${version}";
     description = "FFMPEG wrapper for Python";
     homepage = "https://github.com/imageio/imageio-ffmpeg";
     license = licenses.bsd2;
     maintainers = [ maintainers.pmiddend ];
   };
-
 }
diff --git a/pkgs/development/python-modules/imageio-ffmpeg/ffmpeg-path.patch b/pkgs/development/python-modules/imageio-ffmpeg/ffmpeg-path.patch
index 33e2f9695d80e..aef4d1f2364fc 100644
--- a/pkgs/development/python-modules/imageio-ffmpeg/ffmpeg-path.patch
+++ b/pkgs/development/python-modules/imageio-ffmpeg/ffmpeg-path.patch
@@ -1,16 +1,13 @@
-diff --git a/imageio_ffmpeg/_utils.py b/imageio_ffmpeg/_utils.py
-index 6387834..e5e312d 100644
 --- a/imageio_ffmpeg/_utils.py
 +++ b/imageio_ffmpeg/_utils.py
-@@ -38,29 +38,7 @@ def get_ffmpeg_exe():
+@@ -38,28 +38,7 @@ def get_ffmpeg_exe():
  
  @lru_cache()
  def _get_ffmpeg_exe():
 -    plat = get_platform()
 -
 -    # 2. Try from here
--    bin_dir = resource_filename("imageio_ffmpeg", "binaries")
--    exe = os.path.join(bin_dir, FNAME_PER_PLATFORM.get(plat, ""))
+-    exe = os.path.join(_get_bin_dir(), FNAME_PER_PLATFORM.get(plat, ""))
 -    if exe and os.path.isfile(exe) and _is_valid_exe(exe):
 -        return exe
 -
@@ -32,4 +29,4 @@ index 6387834..e5e312d 100644
 +    return "@ffmpeg@"
  
  
- def _popen_kwargs(prevent_sigint=False):
+ def _get_bin_dir():
diff --git a/pkgs/development/python-modules/imageio/default.nix b/pkgs/development/python-modules/imageio/default.nix
index a5a71c38bc972..e2c83a079dcd9 100644
--- a/pkgs/development/python-modules/imageio/default.nix
+++ b/pkgs/development/python-modules/imageio/default.nix
@@ -1,32 +1,33 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, isPyPy
-, substituteAll
-
-# build-system
-, setuptools
-
-# native dependencies
-, libGL
-
-# dependencies
-, numpy
-, pillow
-
-# optional-dependencies
-, astropy
-, av
-, imageio-ffmpeg
-, pillow-heif
-, psutil
-, tifffile
-
-# tests
-, pytestCheckHook
-, fsspec
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  isPyPy,
+  substituteAll,
+
+  # build-system
+  setuptools,
+
+  # native dependencies
+  libGL,
+
+  # dependencies
+  numpy,
+  pillow,
+
+  # optional-dependencies
+  astropy,
+  av,
+  imageio-ffmpeg,
+  pillow-heif,
+  psutil,
+  tifffile,
+
+  # tests
+  pytestCheckHook,
+  fsspec,
 }:
 
 buildPythonPackage rec {
@@ -50,9 +51,7 @@ buildPythonPackage rec {
     })
   ];
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     numpy
@@ -60,45 +59,36 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    bsdf = [];
-    dicom = [];
-    feisem = [];
+    bsdf = [ ];
+    dicom = [ ];
+    feisem = [ ];
     ffmpeg = [
       imageio-ffmpeg
       psutil
     ];
-    fits = lib.optionals (!isPyPy) [
-      astropy
-    ];
-    freeimage = [];
-    lytro = [];
-    numpy = [];
-    pillow = [];
-    simpleitk = [];
-    spe = [];
-    swf = [];
-    tifffile = [
-      tifffile
-    ];
-    pyav = [
-      av
-    ];
-    heif = [
-      pillow-heif
-    ];
+    fits = lib.optionals (!isPyPy) [ astropy ];
+    freeimage = [ ];
+    lytro = [ ];
+    numpy = [ ];
+    pillow = [ ];
+    simpleitk = [ ];
+    spe = [ ];
+    swf = [ ];
+    tifffile = [ tifffile ];
+    pyav = [ av ];
+    heif = [ pillow-heif ];
   };
 
-  nativeCheckInputs = [
-    fsspec
-    psutil
-    pytestCheckHook
-  ]
-  ++ fsspec.optional-dependencies.github
-  ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+  nativeCheckInputs =
+    [
+      fsspec
+      psutil
+      pytestCheckHook
+    ]
+    ++ fsspec.optional-dependencies.github
+    ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pytestFlagsArray = [
-    "-m 'not needs_internet'"
-  ];
+  pytestFlagsArray = [ "-m 'not needs_internet'" ];
 
   preCheck = ''
     export IMAGEIO_USERDIR="$TMP"
diff --git a/pkgs/development/python-modules/imagesize/default.nix b/pkgs/development/python-modules/imagesize/default.nix
index ab41410b7ad84..4420190e98de3 100644
--- a/pkgs/development/python-modules/imagesize/default.nix
+++ b/pkgs/development/python-modules/imagesize/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -18,5 +19,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/shibukawa/imagesize_py";
     license = with licenses; [ mit ];
   };
-
 }
diff --git a/pkgs/development/python-modules/imantics/default.nix b/pkgs/development/python-modules/imantics/default.nix
index d6815f2a26ae3..88e8e4835ce41 100644
--- a/pkgs/development/python-modules/imantics/default.nix
+++ b/pkgs/development/python-modules/imantics/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, numpy
-, opencv4
-, lxml
-, xmljson
-, pytestCheckHook
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  numpy,
+  opencv4,
+  lxml,
+  xmljson,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/imap-tools/default.nix b/pkgs/development/python-modules/imap-tools/default.nix
index 6f9182bc1220c..1ce7dea4645b3 100644
--- a/pkgs/development/python-modules/imap-tools/default.nix
+++ b/pkgs/development/python-modules/imap-tools/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "imap-tools";
-  version = "1.5.0";
+  version = "1.6.0";
 
   disabled = pythonOlder "3.5";
 
@@ -17,12 +18,10 @@ buildPythonPackage rec {
     owner = "ikvk";
     repo = "imap_tools";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kY6Y8Uu1HwSkcmlKL5+zPh4n+4mofX2aoPVXAZvInlI=";
+    hash = "sha256-T4sA/PsoTfS2L0RwJyJP6BY33MJuybVqruHnwwstnXA=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # tests require a network connection
diff --git a/pkgs/development/python-modules/imapclient/default.nix b/pkgs/development/python-modules/imapclient/default.nix
index 6301970392ac9..5a231c13a3ee0 100644
--- a/pkgs/development/python-modules/imapclient/default.nix
+++ b/pkgs/development/python-modules/imapclient/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, six
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  six,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -34,6 +35,9 @@ buildPythonPackage rec {
     homepage = "https://imapclient.readthedocs.io";
     description = "Easy-to-use, Pythonic and complete IMAP client library";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ almac dotlambda ];
+    maintainers = with maintainers; [
+      almac
+      dotlambda
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/imaplib2/default.nix b/pkgs/development/python-modules/imaplib2/default.nix
index 7c4c215bfabbc..5df25d7ca5ee0 100644
--- a/pkgs/development/python-modules/imaplib2/default.nix
+++ b/pkgs/development/python-modules/imaplib2/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,14 +20,12 @@ buildPythonPackage rec {
     sha256 = "14asi3xnvf4bb394k5j8c3by6svvmrr75pawzy6kaax5jx0h793m";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "imaplib2" ];
 
   meta = with lib; {
-    description = "A threaded Python IMAP4 client";
+    description = "Threaded Python IMAP4 client";
     homepage = "https://github.com/jazzband/imaplib2";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/imbalanced-learn/default.nix b/pkgs/development/python-modules/imbalanced-learn/default.nix
index 412b0424a2185..ee070a516981c 100644
--- a/pkgs/development/python-modules/imbalanced-learn/default.nix
+++ b/pkgs/development/python-modules/imbalanced-learn/default.nix
@@ -1,35 +1,34 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, joblib
-, keras
-, numpy
-, pandas
-, scikit-learn
-, scipy
-, tensorflow
-, threadpoolctl
-, pytest-xdist
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  joblib,
+  keras,
+  numpy,
+  pandas,
+  scikit-learn,
+  scipy,
+  tensorflow,
+  threadpoolctl,
+  pytest-xdist,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "imbalanced-learn";
-  version = "0.12.2";
+  version = "0.12.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-qAxWztywcSTyZr5i06XSq1tXeZCac0P98bmTR5Zi9sE=";
+    hash = "sha256-WwB5agFBnpECvUJeJ8MZ1Y0fbPLfp1HgLtf07fZ8PBs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     joblib
@@ -47,11 +46,12 @@ buildPythonPackage rec {
     ];
   };
 
-  pythonImportsCheck = [
-    "imblearn"
-  ];
+  pythonImportsCheck = [ "imblearn" ];
 
-  nativeCheckInputs = [ pytestCheckHook pandas ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    pandas
+  ];
 
   preCheck = ''
     export HOME=$TMPDIR
diff --git a/pkgs/development/python-modules/img2pdf/default.nix b/pkgs/development/python-modules/img2pdf/default.nix
index 2dc389f70ecc1..1a887a87d29b0 100644
--- a/pkgs/development/python-modules/img2pdf/default.nix
+++ b/pkgs/development/python-modules/img2pdf/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, buildPythonPackage
-, isPy27
-, fetchFromGitea
-, substituteAll
-, fetchpatch
-, colord
-, setuptools
-, pikepdf
-, pillow
-, stdenv
-, exiftool
-, ghostscript
-, imagemagick
-, mupdf-headless
-, netpbm
-, numpy
-, poppler_utils
-, pytestCheckHook
-, runCommand
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  isPy27,
+  fetchFromGitea,
+  substituteAll,
+  fetchpatch,
+  colord,
+  setuptools,
+  pikepdf,
+  pillow,
+  stdenv,
+  exiftool,
+  ghostscript,
+  imagemagick,
+  mupdf-headless,
+  netpbm,
+  numpy,
+  poppler_utils,
+  pytestCheckHook,
+  runCommand,
+  scipy,
 }:
 
 buildPythonPackage rec {
@@ -39,25 +40,23 @@ buildPythonPackage rec {
   patches = [
     (substituteAll {
       src = ./default-icc-profile.patch;
-      srgbProfile = if stdenv.isDarwin then
-        "/System/Library/ColorSync/Profiles/sRGB Profile.icc"
-      else
-        # break runtime dependency chain all of colord dependencies
-        runCommand "sRGC.icc" { } ''
-          cp ${colord}/share/color/icc/colord/sRGB.icc $out
-        '';
+      srgbProfile =
+        if stdenv.isDarwin then
+          "/System/Library/ColorSync/Profiles/sRGB Profile.icc"
+        else
+          # break runtime dependency chain all of colord dependencies
+          runCommand "sRGC.icc" { } ''
+            cp ${colord}/share/color/icc/colord/sRGB.icc $out
+          '';
     })
     (fetchpatch {
       # https://gitlab.mister-muffin.de/josch/img2pdf/issues/178
       url = "https://salsa.debian.org/debian/img2pdf/-/raw/4a7dbda0f473f7c5ffcaaf68ea4ad3f435e0920d/debian/patches/fix_tests.patch";
       hash = "sha256-A1zK6yINhS+dvyckZjqoSO1XJRTaf4OXFdq5ufUrBs8=";
     })
-
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pikepdf
@@ -66,9 +65,7 @@ buildPythonPackage rec {
 
   # FIXME: Only add "sRGB Profile.icc" to __impureHostDeps once
   # https://github.com/NixOS/nix/issues/9301 is fixed.
-  __impureHostDeps = lib.optionals stdenv.isDarwin [
-    "/System/Library/ColorSync/Profiles"
-  ];
+  __impureHostDeps = lib.optionals stdenv.isDarwin [ "/System/Library/ColorSync/Profiles" ];
 
   nativeCheckInputs = [
     exiftool
@@ -99,6 +96,9 @@ buildPythonPackage rec {
     homepage = "https://gitlab.mister-muffin.de/josch/img2pdf";
     license = licenses.lgpl3Plus;
     mainProgram = "img2pdf";
-    maintainers = with maintainers; [ veprbl dotlambda ];
+    maintainers = with maintainers; [
+      veprbl
+      dotlambda
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/imgcat/default.nix b/pkgs/development/python-modules/imgcat/default.nix
index 1d0c91e177c09..e17c249670e2b 100644
--- a/pkgs/development/python-modules/imgcat/default.nix
+++ b/pkgs/development/python-modules/imgcat/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, matplotlib
-, numpy
-, pillow
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, tensorflow
-, torch
-, torchvision
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  matplotlib,
+  numpy,
+  pillow,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  tensorflow,
+  torch,
+  torchvision,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
       --replace-fail "'pytest-runner<5.0'" ""
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   nativeCheckInputs = [
     matplotlib
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     torchvision
   ];
 
-  pythonImportsCheck = [
-    "imgcat"
-  ];
+  pythonImportsCheck = [ "imgcat" ];
 
   meta = with lib; {
     description = "Imgcat in Python";
diff --git a/pkgs/development/python-modules/imgdiff/default.nix b/pkgs/development/python-modules/imgdiff/default.nix
index 6cb92f3293349..6a168c965d675 100644
--- a/pkgs/development/python-modules/imgdiff/default.nix
+++ b/pkgs/development/python-modules/imgdiff/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pillow
-, mock
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pillow,
+  mock,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-Y5nUnjihRpVVehhP1LUgfuJN5nCxEJu6P1w99Igpxjs=";
   };
 
-  propagatedBuildInputs = [
-    pillow
-  ];
+  propagatedBuildInputs = [ pillow ];
 
   pythonImportsCheck = [ "imgdiff" ];
 
diff --git a/pkgs/development/python-modules/imgsize/default.nix b/pkgs/development/python-modules/imgsize/default.nix
index fe08f4f7288fe..c368a67085d0c 100644
--- a/pkgs/development/python-modules/imgsize/default.nix
+++ b/pkgs/development/python-modules/imgsize/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/imgtool/default.nix b/pkgs/development/python-modules/imgtool/default.nix
index dc8a9ec630891..ba083666336f5 100644
--- a/pkgs/development/python-modules/imgtool/default.nix
+++ b/pkgs/development/python-modules/imgtool/default.nix
@@ -1,30 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, cbor2
-, click
-, cryptography
-, intelhex
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  cbor2,
+  click,
+  cryptography,
+  intelhex,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
   pname = "imgtool";
-  version = "2.0.0";
+  version = "2.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-elQSVeae7B8Sqjjc4fHU/iDYISZ3xoqbbsY0ypGgZhI=";
+    hash = "sha256-T3+831PETqqmImUEUQzLUvfvAMmXUDz5STSzMMlge2A=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cbor2
@@ -34,9 +33,7 @@ buildPythonPackage rec {
     pyyaml
   ];
 
-  pythonImportsCheck = [
-    "imgtool"
-  ];
+  pythonImportsCheck = [ "imgtool" ];
 
   meta = with lib; {
     description = "MCUboot's image signing and key management";
diff --git a/pkgs/development/python-modules/imia/default.nix b/pkgs/development/python-modules/imia/default.nix
index b5b855c92d742..1caa1f607f422 100644
--- a/pkgs/development/python-modules/imia/default.nix
+++ b/pkgs/development/python-modules/imia/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, poetry-core
-, starlette
-, fastapi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  starlette,
+  fastapi,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-4CzevO7xgo8Hb1JHe/eGEtq/KCrJM0hV/7SRV2wmux8=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     starlette
@@ -30,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "imia" ];
 
   meta = with lib; {
-    description = "An authentication library for Starlette and FastAPI";
+    description = "Authentication library for Starlette and FastAPI";
     changelog = "https://github.com/alex-oleshkevich/imia/releases/tag/v${version}";
     homepage = "https://github.com/alex-oleshkevich/imia";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/iminuit/default.nix b/pkgs/development/python-modules/iminuit/default.nix
index 113d19928d10c..0cd1fdf91d0c3 100644
--- a/pkgs/development/python-modules/iminuit/default.nix
+++ b/pkgs/development/python-modules/iminuit/default.nix
@@ -1,33 +1,34 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-
-# build-system
-, cmake
-, scikit-build-core
-, pybind11
-, pathspec
-, ninja
-, pyproject-metadata
-
-# dependencies
-, numpy
-
-# tests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+
+  # build-system
+  cmake,
+  scikit-build-core,
+  pybind11,
+  pathspec,
+  ninja,
+  pyproject-metadata,
+
+  # dependencies
+  numpy,
+
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "iminuit";
-  version = "2.25.2";
+  version = "2.26.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-O/ihuWhlpgzt8pE19P6uCfp8ZiN9KfaN7WTpeoI6mz4=";
+    hash = "sha256-pRIz+/HC4AiqWE+e6mW2ww7VZiTk3qXU5TNwzNhMm04=";
   };
 
   nativeBuildInputs = [
@@ -39,20 +40,19 @@ buildPythonPackage rec {
     pyproject-metadata
   ] ++ scikit-build-core.optional-dependencies.pyproject;
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   dontUseCmakeConfigure = true;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     homepage = "https://github.com/scikit-hep/iminuit";
     description = "Python interface for the Minuit2 C++ library";
-    license = with licenses; [ mit lgpl2Only ];
+    license = with licenses; [
+      mit
+      lgpl2Only
+    ];
     maintainers = with maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/python-modules/immutabledict/default.nix b/pkgs/development/python-modules/immutabledict/default.nix
index 5c1530263d224..47e062ab35d67 100644
--- a/pkgs/development/python-modules/immutabledict/default.nix
+++ b/pkgs/development/python-modules/immutabledict/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-NpNS8HAacgXm3rFtyd5uFgSURNbDf+YVS1aFx51kwEA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  pythonImportsCheck = [
-    "immutabledict"
-  ];
+  pythonImportsCheck = [ "immutabledict" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A fork of frozendict, an immutable wrapper around dictionaries";
+    description = "Fork of frozendict, an immutable wrapper around dictionaries";
     homepage = "https://github.com/corenting/immutabledict";
     changelog = "https://github.com/corenting/immutabledict/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/immutables/default.nix b/pkgs/development/python-modules/immutables/default.nix
index c01fa75e5447b..8ea8d2a890201 100644
--- a/pkgs/development/python-modules/immutables/default.nix
+++ b/pkgs/development/python-modules/immutables/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     rm tests/conftest.py
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Version mismatch
@@ -37,12 +36,10 @@ buildPythonPackage rec {
     "tests/test_mypy.py"
   ];
 
-  pythonImportsCheck = [
-    "immutables"
-  ];
+  pythonImportsCheck = [ "immutables" ];
 
   meta = with lib; {
-    description = "An immutable mapping type";
+    description = "Immutable mapping type";
     homepage = "https://github.com/MagicStack/immutables";
     changelog = "https://github.com/MagicStack/immutables/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
diff --git a/pkgs/development/python-modules/impacket/default.nix b/pkgs/development/python-modules/impacket/default.nix
index f216aad5e431b..8cd34b50f8283 100644
--- a/pkgs/development/python-modules/impacket/default.nix
+++ b/pkgs/development/python-modules/impacket/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, charset-normalizer
-, dsinternals
-, fetchPypi
-, flask
-, ldap3
-, ldapdomaindump
-, pyasn1
-, pycryptodomex
-, pyopenssl
-, pythonOlder
-, setuptools
-, pytestCheckHook
-, six
+{
+  lib,
+  buildPythonPackage,
+  charset-normalizer,
+  dsinternals,
+  fetchPypi,
+  flask,
+  ldap3,
+  ldapdomaindump,
+  pyasn1,
+  pycryptodomex,
+  pyopenssl,
+  pythonOlder,
+  setuptools,
+  pytestCheckHook,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-7kA5tNKu3o9fZEeLxZ+qyGA2eWviTeqNwY8An7CQXko=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     charset-normalizer
@@ -44,13 +43,9 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "impacket"
-  ];
+  pythonImportsCheck = [ "impacket" ];
 
   disabledTestPaths = [
     # Skip all RPC related tests
@@ -61,7 +56,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Network protocols Constructors and Dissectors";
     homepage = "https://github.com/SecureAuthCorp/impacket";
-    changelog = "https://github.com/fortra/impacket/releases/tag/impacket_"
+    changelog =
+      "https://github.com/fortra/impacket/releases/tag/impacket_"
       + replaceStrings [ "." ] [ "_" ] version;
     # Modified Apache Software License, Version 1.1
     license = licenses.free;
diff --git a/pkgs/development/python-modules/import-expression/default.nix b/pkgs/development/python-modules/import-expression/default.nix
index 42182cadc0811..69a93830c5f61 100644
--- a/pkgs/development/python-modules/import-expression/default.nix
+++ b/pkgs/development/python-modules/import-expression/default.nix
@@ -1,32 +1,25 @@
-{ lib,
+{
+  lib,
   buildPythonPackage,
-  fetchFromGitHub,
+  fetchPypi,
   fetchpatch,
   pytestCheckHook,
   astunparse,
-  setuptools
+  setuptools,
 }:
 buildPythonPackage rec {
   pname = "import-expression";
-  version = "1.1.4";
+  version = "2.0.0";
   pyproject = true;
 
-  src = fetchFromGitHub {
-    owner = "ioistired";
-    repo = "import-expression-parser";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-mll2NePB7fthzltLOk6D9BgaDpH6GaW4psqcGun/0qM=";
+  src = fetchPypi {
+    inherit version;
+    pname = "import_expression";
+    hash = "sha256-Biw7dIOPKbDcqYJSCyeqC/seREcVihSZuaKNFfgjTew=";
   };
 
-  patches = [
-    (fetchpatch {
-      url = "https://github.com/ioistired/import-expression-parser/commit/3daf968c3163b64685aa529740e132f0df5ab262.patch";
-      hash = "sha256-2Ubv3onor2D26udZbDDMb3iNLopEIRnIcO/X6WUVmJU=";
-    })
-  ];
-
-  nativeBuildInputs = [ setuptools ];
-  propagatedBuildInputs = [ astunparse ];
+  build-system = [ setuptools ];
+  dependencies = [ astunparse ];
   nativeCheckInputs = [ pytestCheckHook ];
   pytestFlagsArray = [ "tests.py" ];
 
@@ -38,7 +31,10 @@ buildPythonPackage rec {
   meta = {
     description = "Transpiles a superset of python to allow easy inline imports";
     homepage = "https://github.com/ioistired/import-expression-parser";
-    license = with lib.licenses; [ mit psfl ];
+    license = with lib.licenses; [
+      mit
+      psfl
+    ];
     mainProgram = "import-expression";
     maintainers = with lib.maintainers; [ lychee ];
   };
diff --git a/pkgs/development/python-modules/importlab/default.nix b/pkgs/development/python-modules/importlab/default.nix
index 65b2df8bef6a5..72afded7d0c01 100644
--- a/pkgs/development/python-modules/importlab/default.nix
+++ b/pkgs/development/python-modules/importlab/default.nix
@@ -1,9 +1,10 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, networkx
-, pytestCheckHook
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  networkx,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -28,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "importlab" ];
 
   meta = with lib; {
-    description = "A library that automatically infers dependencies for Python files";
+    description = "Library that automatically infers dependencies for Python files";
     mainProgram = "importlab";
     homepage = "https://github.com/google/importlab";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/importlib-metadata/default.nix b/pkgs/development/python-modules/importlib-metadata/default.nix
index 511424fb19834..c5de999be223a 100644
--- a/pkgs/development/python-modules/importlib-metadata/default.nix
+++ b/pkgs/development/python-modules/importlib-metadata/default.nix
@@ -1,12 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, setuptools-scm
-, typing-extensions
-, toml
-, zipp
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  typing-extensions,
+  toml,
+  zipp,
+
+  # Reverse dependency
+  sage,
 }:
 
 buildPythonPackage rec {
@@ -30,21 +34,24 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     toml
     zipp
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   # Cyclic dependencies due to pyflakefs
   doCheck = false;
 
-  pythonImportsCheck = [
-    "importlib_metadata"
-  ];
+  pythonImportsCheck = [ "importlib_metadata" ];
+
+  passthru.tests = {
+    inherit sage;
+  };
 
   meta = with lib; {
     description = "Read metadata from Python packages";
     homepage = "https://importlib-metadata.readthedocs.io/";
     license = licenses.asl20;
-    maintainers = with maintainers; [ fab AndersonTorres ];
+    maintainers = with maintainers; [
+      fab
+      AndersonTorres
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/importlib-resources/default.nix b/pkgs/development/python-modules/importlib-resources/default.nix
index a8407239cc402..eea1111ff05e9 100644
--- a/pkgs/development/python-modules/importlib-resources/default.nix
+++ b/pkgs/development/python-modules/importlib-resources/default.nix
@@ -1,23 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-
-# build-system
-, setuptools
-, setuptools-scm
-
-# dependencies
-, importlib-metadata
-
-# tests
-, jaraco-collections
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+  setuptools-scm,
+
+  # dependencies
+  importlib-metadata,
+
+  # Reverse dependency
+  sage,
+
+  # tests
+  jaraco-collections,
+  jaraco-test,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "importlib-resources";
-  version = "6.3.2";
+  version = "6.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -25,7 +30,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "importlib_resources";
     inherit version;
-    hash = "sha256-lj63lkklKwFgwa/P5aHT/jrWbt0KixFL6s/7cMBnQiM=";
+    hash = "sha256-zbK0U7gEbKTjeY6x2E88zhRGoOjnte9O+2APGfw5gUU=";
   };
 
   build-system = [
@@ -33,18 +38,19 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  dependencies = [
-    importlib-metadata
-  ];
+  dependencies = [ importlib-metadata ];
 
   nativeCheckInputs = [
     pytestCheckHook
     jaraco-collections
+    jaraco-test
   ];
 
-  pythonImportsCheck = [
-    "importlib_resources"
-  ];
+  pythonImportsCheck = [ "importlib_resources" ];
+
+  passthru.tests = {
+    inherit sage;
+  };
 
   meta = with lib; {
     description = "Read resources from Python packages";
diff --git a/pkgs/development/python-modules/importmagic/default.nix b/pkgs/development/python-modules/importmagic/default.nix
index a94b104094199..a2d32b55808da 100644
--- a/pkgs/development/python-modules/importmagic/default.nix
+++ b/pkgs/development/python-modules/importmagic/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -27,5 +28,4 @@ buildPythonPackage rec {
     license = licenses.bsd0;
     maintainers = with maintainers; [ onny ];
   };
-
 }
diff --git a/pkgs/development/python-modules/imread/default.nix b/pkgs/development/python-modules/imread/default.nix
index 8d2823356e32a..d8a3c80a30b70 100644
--- a/pkgs/development/python-modules/imread/default.nix
+++ b/pkgs/development/python-modules/imread/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pkg-config
-, setuptools
-, libjpeg
-, libpng
-, libtiff
-, libwebp
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pkg-config,
+  setuptools,
+  libjpeg,
+  libpng,
+  libtiff,
+  libwebp,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -36,20 +37,17 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [
     # verbose build outputs needed to debug hard-to-reproduce hydra failures
     "-v"
-    "--pyargs" "imread"
-  ];
-
-  pythonImportsCheck = [
+    "--pyargs"
     "imread"
   ];
 
+  pythonImportsCheck = [ "imread" ];
+
   preCheck = ''
     cd $TMPDIR
     export HOME=$TMPDIR
@@ -63,5 +61,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     platforms = platforms.unix;
   };
-
 }
diff --git a/pkgs/development/python-modules/imutils/default.nix b/pkgs/development/python-modules/imutils/default.nix
index 655fb82c8b791..03a1dd03a4262 100644
--- a/pkgs/development/python-modules/imutils/default.nix
+++ b/pkgs/development/python-modules/imutils/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, opencv4
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  opencv4,
 }:
 
 buildPythonPackage rec {
@@ -29,7 +30,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/jrosebr1/imutils";
-    description = "A series of convenience functions to make basic image processing functions";
+    description = "Series of convenience functions to make basic image processing functions";
     mainProgram = "range-detector";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/in-n-out/default.nix b/pkgs/development/python-modules/in-n-out/default.nix
index f0fdb5d45fb81..3a5e3287b0225 100644
--- a/pkgs/development/python-modules/in-n-out/default.nix
+++ b/pkgs/development/python-modules/in-n-out/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchPypi
-, future
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, hatchling
-, hatch-vcs
-, toolz
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchPypi,
+  future,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  hatchling,
+  hatch-vcs,
+  toolz,
 }:
 
 buildPythonPackage rec {
@@ -30,18 +31,14 @@ buildPythonPackage rec {
     hatch-vcs
   ];
 
-  propagatedBuildInputs = [
-    future
-  ];
+  propagatedBuildInputs = [ future ];
 
   nativeCheckInputs = [
     pytestCheckHook
     toolz
   ];
 
-  pythonImportsCheck = [
-    "in_n_out"
-  ];
+  pythonImportsCheck = [ "in_n_out" ];
 
   disabledTestPaths = lib.optionals (pythonAtLeast "3.11") [
     # Fatal Python error
diff --git a/pkgs/development/python-modules/in-place/default.nix b/pkgs/development/python-modules/in-place/default.nix
index 324cd61537fe7..69bdc2a16c7f2 100644
--- a/pkgs/development/python-modules/in-place/default.nix
+++ b/pkgs/development/python-modules/in-place/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     substituteInPlace tox.ini --replace "--cov=in_place --no-cov-on-fail" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/incomfort-client/default.nix b/pkgs/development/python-modules/incomfort-client/default.nix
index 496c984889103..86f59510ba260 100644
--- a/pkgs/development/python-modules/incomfort-client/default.nix
+++ b/pkgs/development/python-modules/incomfort-client/default.nix
@@ -1,47 +1,45 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "incomfort-client";
-  version = "0.5.0";
-  format = "setuptools";
+  version = "0.6.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "zxdavb";
-    repo = pname;
-    rev = "refs/tags/${version}";
-    hash = "sha256-kdPue3IfF85O+0dgvX+dN6S4WoQmjxdCfwfv83SnO8E=";
+    repo = "incomfort-client";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-2hTH0haG8ja0Hgomj7kbbHUij9w3jbhHeKeMCtsgeEE=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  dependencies = [ aiohttp ];
 
-  checkInputs = [
+  nativeCheckInputs = [
     aioresponses
     pytest-asyncio
+    pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "incomfortclient"
-  ];
+  pythonImportsCheck = [ "incomfortclient" ];
 
   meta = with lib; {
     description = "Python module to poll Intergas boilers via a Lan2RF gateway";
     homepage = "https://github.com/zxdavb/incomfort-client";
+    changelog = "https://github.com/jbouwh/incomfort-client/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/incremental/default.nix b/pkgs/development/python-modules/incremental/default.nix
index 3b10dff45ca06..9077ddae4b4b1 100644
--- a/pkgs/development/python-modules/incremental/default.nix
+++ b/pkgs/development/python-modules/incremental/default.nix
@@ -1,45 +1,47 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, click
-, twisted
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  click,
+  twisted,
 }:
 
-let incremental = buildPythonPackage rec {
-  pname = "incremental";
-  version = "22.10.0";
-  format = "setuptools";
+let
+  incremental = buildPythonPackage rec {
+    pname = "incremental";
+    version = "22.10.0";
+    format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-kS/uteD34BiOb0IkHS9FAALhG7wJN8ZYZQRYVMJMC9A=";
-  };
+    src = fetchPypi {
+      inherit pname version;
+      hash = "sha256-kS/uteD34BiOb0IkHS9FAALhG7wJN8ZYZQRYVMJMC9A=";
+    };
 
-  propagatedBuildInputs = [
-    click
-  ];
+    propagatedBuildInputs = [ click ];
 
-  # escape infinite recursion with twisted
-  doCheck = false;
+    # escape infinite recursion with twisted
+    doCheck = false;
 
-  nativeCheckInputs = [
-    twisted
-  ];
+    nativeCheckInputs = [ twisted ];
 
-  checkPhase = ''
-    trial incremental
-  '';
+    checkPhase = ''
+      trial incremental
+    '';
 
-  passthru.tests = {
-    check = incremental.overridePythonAttrs (_: { doCheck = true; });
-  };
+    passthru.tests = {
+      check = incremental.overridePythonAttrs (_: {
+        doCheck = true;
+      });
+    };
 
-  pythonImportsCheck = [ "incremental" ];
+    pythonImportsCheck = [ "incremental" ];
 
-  meta = with lib; {
-    homepage = "https://github.com/twisted/incremental";
-    description = "Incremental is a small library that versions your Python projects";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    meta = with lib; {
+      homepage = "https://github.com/twisted/incremental";
+      description = "Incremental is a small library that versions your Python projects";
+      license = licenses.mit;
+      maintainers = with maintainers; [ ];
+    };
   };
-}; in incremental
+in
+incremental
diff --git a/pkgs/development/python-modules/indexed-bzip2/default.nix b/pkgs/development/python-modules/indexed-bzip2/default.nix
index d15e075e5d57e..20205ebfc4a67 100644
--- a/pkgs/development/python-modules/indexed-bzip2/default.nix
+++ b/pkgs/development/python-modules/indexed-bzip2/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchPypi
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,10 @@ buildPythonPackage rec {
     hash = "sha256-3HUiigZR91/nbOAMOuSHGcPtqkkEaj3VepyMhmKOHpI=";
   };
 
-  nativeBuildInputs = [ cython setuptools ];
+  nativeBuildInputs = [
+    cython
+    setuptools
+  ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/indexed-gzip/default.nix b/pkgs/development/python-modules/indexed-gzip/default.nix
index bfe9e894ce5fb..8bab1b6c5f89f 100644
--- a/pkgs/development/python-modules/indexed-gzip/default.nix
+++ b/pkgs/development/python-modules/indexed-gzip/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, cython
-, zlib
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  cython,
+  zlib,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,10 @@ buildPythonPackage rec {
     hash = "sha256-dryq1LLC+lVHj/i+m60ubGGItlX5/clCnwNGrexI92I=";
   };
 
-  nativeBuildInputs = [ cython setuptools ];
+  nativeBuildInputs = [
+    cython
+    setuptools
+  ];
 
   buildInputs = [ zlib ];
 
diff --git a/pkgs/development/python-modules/indexed-zstd/default.nix b/pkgs/development/python-modules/indexed-zstd/default.nix
index 88cb6f05930ae..a689a37fbbdad 100644
--- a/pkgs/development/python-modules/indexed-zstd/default.nix
+++ b/pkgs/development/python-modules/indexed-zstd/default.nix
@@ -1,25 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, cython
-, zstd
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  cython,
+  zstd,
 }:
 
 buildPythonPackage rec {
   pname = "indexed_zstd";
-  version = "1.6.0";
+  version = "1.6.1";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-icCerrv6ihBjSTS4Fsw7qhoA5ha8yegfMVRiIOhTvvY=";
+    hash = "sha256-i3Q3j5Rh/OqxdSFbZeHEiYZN2zS9gWBYk2pifwzKOos=";
   };
 
-  nativeBuildInputs = [ cython setuptools ];
+  nativeBuildInputs = [
+    cython
+    setuptools
+  ];
 
   buildInputs = [ zstd.dev ];
 
diff --git a/pkgs/development/python-modules/inequality/default.nix b/pkgs/development/python-modules/inequality/default.nix
new file mode 100644
index 0000000000000..3e01771193099
--- /dev/null
+++ b/pkgs/development/python-modules/inequality/default.nix
@@ -0,0 +1,45 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  libpysal,
+  numpy,
+  scipy,
+  setuptools-scm,
+}:
+
+buildPythonPackage rec {
+  pname = "inequality";
+  version = "1.0.1";
+  pyproject = true;
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "pysal";
+    repo = "inequality";
+    rev = "v${version}";
+    hash = "sha256-dy1/KXnmIh5LnTxuyYfIvtt1p2CIpNQ970o5pTg6diQ=";
+  };
+
+  build-system = [ setuptools-scm ];
+
+  propagatedBuildInputs = [
+    libpysal
+    numpy
+    scipy
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "inequality" ];
+
+  meta = {
+    description = "Spatial inequality analysis";
+    homepage = "https://github.com/pysal/inequality";
+    license = lib.licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/infinity/default.nix b/pkgs/development/python-modules/infinity/default.nix
index 8cf05e8111df8..a2f24331a697c 100644
--- a/pkgs/development/python-modules/infinity/default.nix
+++ b/pkgs/development/python-modules/infinity/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "All-in-one infinity value for Python. Can be compared to any object.";
+    description = "All-in-one infinity value for Python. Can be compared to any object";
     homepage = "https://github.com/kvesteri/infinity";
     license = licenses.bsd3;
     maintainers = with maintainers; [ mupdt ];
diff --git a/pkgs/development/python-modules/inflect/default.nix b/pkgs/development/python-modules/inflect/default.nix
index 35760249f7420..8d0fe80336c6c 100644
--- a/pkgs/development/python-modules/inflect/default.nix
+++ b/pkgs/development/python-modules/inflect/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, more-itertools
-, setuptools-scm
-, pydantic
-, pytestCheckHook
-, typeguard
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  more-itertools,
+  setuptools-scm,
+  pydantic,
+  pytestCheckHook,
+  typeguard,
 }:
 
 buildPythonPackage rec {
   pname = "inflect";
-  version = "7.2.0";
+  version = "7.2.1";
   disabled = isPy27;
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Mv6s+s/K4vIub8zeoQ8N3yamOPrENNDd2q+8oANPN4Q=";
+    hash = "sha256-p85eI9Z5hzTyVsGtntUhhrjsJ28QsYzj0+yxnCHrbLY=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/inflection/default.nix b/pkgs/development/python-modules/inflection/default.nix
index c09114e386e6d..effa0f2cd4e21 100644
--- a/pkgs/development/python-modules/inflection/default.nix
+++ b/pkgs/development/python-modules/inflection/default.nix
@@ -1,4 +1,10 @@
-{ lib, fetchPypi, buildPythonPackage, isPy27, pytest } :
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  isPy27,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "inflection";
@@ -7,8 +13,8 @@ buildPythonPackage rec {
   disabled = isPy27;
 
   src = fetchPypi {
-   inherit pname version;
-   sha256 = "1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417";
+    inherit pname version;
+    sha256 = "1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417";
   };
 
   nativeCheckInputs = [ pytest ];
@@ -16,10 +22,12 @@ buildPythonPackage rec {
   checkPhase = "pytest >/dev/null || pytest";
 
   meta = {
-   homepage = "https://github.com/jpvanhal/inflection";
-   description = "A port of Ruby on Rails inflector to Python";
-   maintainers = with lib.maintainers; [ NikolaMandic ilya-kolpakov ];
-   license = lib.licenses.mit;
+    homepage = "https://github.com/jpvanhal/inflection";
+    description = "Port of Ruby on Rails inflector to Python";
+    maintainers = with lib.maintainers; [
+      NikolaMandic
+      ilya-kolpakov
+    ];
+    license = lib.licenses.mit;
   };
 }
-
diff --git a/pkgs/development/python-modules/influxdb-client/default.nix b/pkgs/development/python-modules/influxdb-client/default.nix
index b2480e4684b79..0c959277f31e1 100644
--- a/pkgs/development/python-modules/influxdb-client/default.nix
+++ b/pkgs/development/python-modules/influxdb-client/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, aiohttp
-, aiocsv
-, buildPythonPackage
-, certifi
-, ciso8601
-, fetchFromGitHub
-, numpy
-, pandas
-, python-dateutil
-, pythonOlder
-, reactivex
-, setuptools
-, urllib3
+{
+  lib,
+  aiohttp,
+  aiocsv,
+  buildPythonPackage,
+  certifi,
+  ciso8601,
+  fetchFromGitHub,
+  numpy,
+  pandas,
+  python-dateutil,
+  pythonOlder,
+  reactivex,
+  setuptools,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "influxdb-client";
-  version = "1.42.0";
-  format = "setuptools";
+  version = "1.43.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -25,10 +26,12 @@ buildPythonPackage rec {
     owner = "influxdata";
     repo = "influxdb-client-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-PY0GpwO1OG4DKutMR3MF9HtTJbLFRCWypeoqVoiRD4o=";
+    hash = "sha256-CwSqJj9MslcvTzYGaDRygskSxbSh80uCJQM2tNz743k=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     certifi
     python-dateutil
     reactivex
@@ -41,9 +44,7 @@ buildPythonPackage rec {
       aiocsv
       aiohttp
     ];
-    ciso = [
-      ciso8601
-    ];
+    ciso = [ ciso8601 ];
     extra = [
       numpy
       pandas
@@ -53,9 +54,7 @@ buildPythonPackage rec {
   # Requires influxdb server
   doCheck = false;
 
-  pythonImportsCheck = [
-    "influxdb_client"
-  ];
+  pythonImportsCheck = [ "influxdb_client" ];
 
   meta = with lib; {
     description = "InfluxDB client library";
diff --git a/pkgs/development/python-modules/influxdb/default.nix b/pkgs/development/python-modules/influxdb/default.nix
index ca962f4e47929..1f7e7c017501a 100644
--- a/pkgs/development/python-modules/influxdb/default.nix
+++ b/pkgs/development/python-modules/influxdb/default.nix
@@ -1,26 +1,28 @@
-{ lib
-, buildPythonPackage
-, python-dateutil
-, fetchPypi
-, mock
-, msgpack
-, pynose
-, pandas
-, pytestCheckHook
-, pytz
-, requests
-, requests-mock
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  msgpack,
+  pandas,
+  pynose,
+  pytestCheckHook,
+  python-dateutil,
+  pytz,
+  requests,
+  requests-mock,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "influxdb";
-  version = "5.3.1";
-  format = "setuptools";
+  version = "5.3.2";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ymjv322mv6y424fmpd70f87152w55mbwwj6i7p3sjzf0ixmxy26";
+    hash = "sha256-WMZH9gQ3Et2G6a7hLrTM+7tUFUZ7yZEKSKqMdMEQiXA=";
   };
 
   postPatch = ''
@@ -35,25 +37,28 @@ buildPythonPackage rec {
     done
   '';
 
-  propagatedBuildInputs = [
-    requests
+  build-system = [ setuptools ];
+
+  dependencies = [
+    msgpack
     python-dateutil
     pytz
+    requests
     six
-    msgpack
   ];
 
   __darwinAllowLocalNetworking = true;
 
   nativeCheckInputs = [
-    pytestCheckHook
-    requests-mock
     mock
-    pynose
     pandas
+    pynose
+    pytestCheckHook
+    requests-mock
   ];
 
   disabledTests = [
+    "socket"
     # Tests cause FutureWarning due to use of 'record' instead of 'records' in pandas.
     #   https://github.com/influxdata/influxdb-python/pull/845
     # Also type mismatches in assertEqual on DataFrame:
@@ -78,6 +83,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python client for InfluxDB";
     homepage = "https://github.com/influxdb/influxdb-python";
+    changelog = "https://github.com/influxdata/influxdb-python/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/influxdb3-python/default.nix b/pkgs/development/python-modules/influxdb3-python/default.nix
index 23b4bcc4c3bf5..86a774e916c38 100644
--- a/pkgs/development/python-modules/influxdb3-python/default.nix
+++ b/pkgs/development/python-modules/influxdb3-python/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "influxdb3-python";
-  version = "0.4.0";
+  version = "0.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "InfluxCommunity";
     repo = "influxdb3-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-qFcXqbYsjn27BPeKxTsWxKJdF6y8Oz3VBrmSyO0vCGo=";
+    hash = "sha256-vumKOvCLpcu0z1W/zmf3qsSo3a8FEbI+20/IMt6nCX4=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/inform/default.nix b/pkgs/development/python-modules/inform/default.nix
index a95e9e9cc8e8c..e4397954dd667 100644
--- a/pkgs/development/python-modules/inform/default.nix
+++ b/pkgs/development/python-modules/inform/default.nix
@@ -1,17 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, arrow
-, six
-, hypothesis
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  arrow,
+  six,
+  hypothesis,
+  num2words,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "inform";
-  version = "1.28";
+  version = "1.30";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -20,12 +22,10 @@ buildPythonPackage rec {
     owner = "KenKundert";
     repo = "inform";
     rev = "refs/tags/v${version}";
-    hash = "sha256-RA8/or3HTS/rQmG4A/Eg5j24YElaTEpnHa1yksARVMQ=";
+    hash = "sha256-6Yx9ZdmrFApJ6zBiC8Q++hlATVqjriJLS2KsqC0IBCk=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     arrow
@@ -33,13 +33,12 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
+    num2words
     pytestCheckHook
     hypothesis
   ];
 
-  disabledTests = [
-    "test_prostrate"
-  ];
+  disabledTests = [ "test_prostrate" ];
 
   meta = with lib; {
     description = "Print and logging utilities";
diff --git a/pkgs/development/python-modules/iniconfig/default.nix b/pkgs/development/python-modules/iniconfig/default.nix
index b9c6e8e205fa3..c8c59c79b98ac 100644
--- a/pkgs/development/python-modules/iniconfig/default.nix
+++ b/pkgs/development/python-modules/iniconfig/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, substituteAll
-, fetchPypi
-, hatch-vcs
-, hatchling
+{
+  lib,
+  buildPythonPackage,
+  substituteAll,
+  fetchPypi,
+  hatch-vcs,
+  hatchling,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-LZHhNb9y0xpBCxfBbaYQqCy1X2sEd9GpAhNLJKRVuLM=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   patches = [
     # Cannot use hatch-vcs, due to an inifinite recursion
@@ -28,9 +27,7 @@ buildPythonPackage rec {
     })
   ];
 
-  pythonImportsCheck = [
-    "iniconfig"
-  ];
+  pythonImportsCheck = [ "iniconfig" ];
 
   # Requires pytest, which in turn requires this package - causes infinite
   # recursion. See also: https://github.com/NixOS/nixpkgs/issues/63168
diff --git a/pkgs/development/python-modules/inifile/default.nix b/pkgs/development/python-modules/inifile/default.nix
index c3b1edfb89d0d..b3ade47dcaf7b 100644
--- a/pkgs/development/python-modules/inifile/default.nix
+++ b/pkgs/development/python-modules/inifile/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -14,10 +15,9 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A small INI library for Python";
-    homepage    = "https://github.com/mitsuhiko/python-inifile";
-    license     = licenses.bsd0;
+    description = "Small INI library for Python";
+    homepage = "https://github.com/mitsuhiko/python-inifile";
+    license = licenses.bsd0;
     maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/iniparse/default.nix b/pkgs/development/python-modules/iniparse/default.nix
index 16324612b2af6..3d0c93c07e271 100644
--- a/pkgs/development/python-modules/iniparse/default.nix
+++ b/pkgs/development/python-modules/iniparse/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -30,5 +31,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ danbst ];
   };
-
 }
diff --git a/pkgs/development/python-modules/injector/default.nix b/pkgs/development/python-modules/injector/default.nix
index 1f15e496f5cc4..f5b6730ef3f4f 100644
--- a/pkgs/development/python-modules/injector/default.nix
+++ b/pkgs/development/python-modules/injector/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, typing-extensions
-, pytestCheckHook
-, pytest-cov
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  typing-extensions,
+  pytestCheckHook,
+  pytest-cov,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-5O4vJSXfYNTrUzmv5XuT9pSUndNSvTZTxfVwiAd+0ck=";
   };
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [ typing-extensions ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/inkbird-ble/default.nix b/pkgs/development/python-modules/inkbird-ble/default.nix
index fc5eb2d12ba4d..7c8a962ec4629 100644
--- a/pkgs/development/python-modules/inkbird-ble/default.nix
+++ b/pkgs/development/python-modules/inkbird-ble/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, bluetooth-data-tools
-, bluetooth-sensor-state-data
-, buildPythonPackage
-, fetchFromGitHub
-, home-assistant-bluetooth
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, sensor-state-data
+{
+  lib,
+  bluetooth-data-tools,
+  bluetooth-sensor-state-data,
+  buildPythonPackage,
+  fetchFromGitHub,
+  home-assistant-bluetooth,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  sensor-state-data,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-re5HjPtssFkpcltCr0HEJmJyHbXJdkr2wDgaAHfy2Tk=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bluetooth-data-tools
@@ -35,18 +34,14 @@ buildPythonPackage rec {
     sensor-state-data
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace " --cov=inkbird_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  pythonImportsCheck = [
-    "inkbird_ble"
-  ];
+  pythonImportsCheck = [ "inkbird_ble" ];
 
   meta = with lib; {
     description = "Library for Inkbird BLE devices";
diff --git a/pkgs/development/python-modules/inkex/default.nix b/pkgs/development/python-modules/inkex/default.nix
index e6c1b5da2806f..15aaddd0069b8 100644
--- a/pkgs/development/python-modules/inkex/default.nix
+++ b/pkgs/development/python-modules/inkex/default.nix
@@ -1,20 +1,20 @@
-{ lib
-, buildPythonPackage
-, inkscape
-, fetchFromGitLab
-, poetry-core
-, cssselect
-, lxml
-, numpy
-, packaging
-, pillow
-, pygobject3
-, pyparsing
-, pyserial
-, scour
-, gobject-introspection
-, pytestCheckHook
-, gtk3
+{
+  lib,
+  buildPythonPackage,
+  inkscape,
+  poetry-core,
+  cssselect,
+  lxml,
+  numpy,
+  packaging,
+  pillow,
+  pygobject3,
+  pyparsing,
+  pyserial,
+  scour,
+  gobject-introspection,
+  pytestCheckHook,
+  gtk3,
 }:
 
 buildPythonPackage {
@@ -25,9 +25,7 @@ buildPythonPackage {
 
   inherit (inkscape) src;
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     cssselect
diff --git a/pkgs/development/python-modules/inline-snapshot/default.nix b/pkgs/development/python-modules/inline-snapshot/default.nix
new file mode 100644
index 0000000000000..37e3657815732
--- /dev/null
+++ b/pkgs/development/python-modules/inline-snapshot/default.nix
@@ -0,0 +1,73 @@
+{
+  lib,
+  asttokens,
+  black,
+  buildPythonPackage,
+  click,
+  dirty-equals,
+  executing,
+  fetchFromGitHub,
+  hypothesis,
+  poetry-core,
+  pyright,
+  pytest-subtests,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  rich,
+  time-machine,
+  toml,
+  types-toml,
+}:
+
+buildPythonPackage rec {
+  pname = "inline-snapshot";
+  version = "0.10.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "15r10nk";
+    repo = "inline-snapshot";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-19rvhqYkM3QiD0La5TRi/2uKza8HW/bnXeGAhOZ/bgs=";
+  };
+
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    asttokens
+    black
+    click
+    executing
+    rich
+    toml
+    types-toml
+  ];
+
+  nativeCheckInputs = [
+    dirty-equals
+    hypothesis
+    pyright
+    pytest-subtests
+    pytest-xdist
+    pytestCheckHook
+    time-machine
+  ];
+
+  pythonImportsCheck = [ "inline_snapshot" ];
+
+  disabledTestPaths = [
+    # Tests don't play nice with pytest-xdist
+    "tests/test_typing.py"
+  ];
+
+  meta = with lib; {
+    description = "Create and update inline snapshots in Python tests";
+    homepage = "https://github.com/15r10nk/inline-snapshot/";
+    changelog = "https://github.com/15r10nk/inline-snapshot/blob/${version}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/inlinestyler/default.nix b/pkgs/development/python-modules/inlinestyler/default.nix
index 88e0e3e5469ee..3228d0f5b4554 100644
--- a/pkgs/development/python-modules/inlinestyler/default.nix
+++ b/pkgs/development/python-modules/inlinestyler/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch2
-
-# build system
-, setuptools
-
-# dependencies
-, cssutils
-, lxml
-, requests
-
-# tests
-, ipdb
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch2,
+
+  # build system
+  setuptools,
+
+  # dependencies
+  cssutils,
+  lxml,
+  requests,
+
+  # tests
+  ipdb,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
     })
   ];
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     cssutils
@@ -46,9 +45,7 @@ buildPythonPackage rec {
     requests
   ];
 
-  pythonImportsCheck = [
-    "inlinestyler"
-  ];
+  pythonImportsCheck = [ "inlinestyler" ];
 
   nativeCheckInputs = [
     ipdb
@@ -56,7 +53,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A simple CSS inliner for generating HTML email messages";
+    description = "Simple CSS inliner for generating HTML email messages";
     homepage = "https://github.com/dlanger/inlinestyler";
     changelog = "https://github.com/dlanger/inlinestyler/blob/${src.rev}/CHANGELOG";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/inotify-simple/default.nix b/pkgs/development/python-modules/inotify-simple/default.nix
index 2d2100ddf7057..e5f523ffeb9ae 100644
--- a/pkgs/development/python-modules/inotify-simple/default.nix
+++ b/pkgs/development/python-modules/inotify-simple/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "inotify-simple";
@@ -17,7 +21,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "inotify_simple" ];
 
   meta = with lib; {
-    description = "A simple Python wrapper around inotify";
+    description = "Simple Python wrapper around inotify";
     homepage = "https://github.com/chrisjbillington/inotify_simple";
     license = licenses.bsd2;
     maintainers = with maintainers; [ erikarvstedt ];
diff --git a/pkgs/development/python-modules/inotify/default.nix b/pkgs/development/python-modules/inotify/default.nix
index 04ca13d5ec4f2..6e8e7f0aba67e 100644
--- a/pkgs/development/python-modules/inotify/default.nix
+++ b/pkgs/development/python-modules/inotify/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nose,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     fetchSubmodules = false;
   };
 
-  nativeCheckInputs = [
-    nose
-  ];
+  nativeCheckInputs = [ nose ];
 
   # dunno what's wrong but the module works regardless
   doCheck = false;
diff --git a/pkgs/development/python-modules/inotifyrecursive/default.nix b/pkgs/development/python-modules/inotifyrecursive/default.nix
index 63ff4ede039ae..678e45c14d20b 100644
--- a/pkgs/development/python-modules/inotifyrecursive/default.nix
+++ b/pkgs/development/python-modules/inotifyrecursive/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, inotify-simple
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  inotify-simple,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/inquirer/default.nix b/pkgs/development/python-modules/inquirer/default.nix
index ff73187938f25..f7974e2282746 100644
--- a/pkgs/development/python-modules/inquirer/default.nix
+++ b/pkgs/development/python-modules/inquirer/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-
-# native
-, poetry-core
-
-# propagated
-, blessed
-, editor
-, readchar
-
-# tests
-, pytest-mock
-, pytestCheckHook
-, pexpect
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # native
+  poetry-core,
+
+  # propagated
+  blessed,
+  editor,
+  readchar,
+
+  # tests
+  pytest-mock,
+  pytestCheckHook,
+  pexpect,
 }:
 
 buildPythonPackage rec {
   pname = "inquirer";
-  version = "3.2.4";
+  version = "3.2.5";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -28,12 +29,10 @@ buildPythonPackage rec {
     owner = "magmax";
     repo = "python-inquirer";
     rev = "refs/tags/v${version}";
-    hash = "sha256-LsZ2SYgBOKZegk7b9DwForwMA49XvIe+Z6WvI1/YscY=";
+    hash = "sha256-7No4Yw0zBGflvglx7G1/yjrsU/DkTrSz93DfIzokBYM=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     blessed
@@ -47,13 +46,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-
-  pythonImportsCheck = [
-    "inquirer"
-  ];
+  pythonImportsCheck = [ "inquirer" ];
 
   meta = with lib; {
-    description = "A collection of common interactive command line user interfaces, based on Inquirer.js";
+    description = "Collection of common interactive command line user interfaces, based on Inquirer.js";
     homepage = "https://github.com/magmax/python-inquirer";
     changelog = "https://github.com/magmax/python-inquirer/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/inquirerpy/default.nix b/pkgs/development/python-modules/inquirerpy/default.nix
index 37d08f41512f6..315670df3f751 100644
--- a/pkgs/development/python-modules/inquirerpy/default.nix
+++ b/pkgs/development/python-modules/inquirerpy/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pfzy
-, poetry-core
-, prompt-toolkit
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pfzy,
+  poetry-core,
+  prompt-toolkit,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-Ap0xZHEU458tjm6oEN5EtDoSRlnpZ7jvDq1L7fTlQQc=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     pfzy
     prompt-toolkit
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "InquirerPy"
-  ];
+  pythonImportsCheck = [ "InquirerPy" ];
 
   disabledTestPaths = [
     # AttributeError: '_GeneratorContextManager' object has no attribute 'close'
diff --git a/pkgs/development/python-modules/inscriptis/default.nix b/pkgs/development/python-modules/inscriptis/default.nix
index 454106d28b566..5de7c6e10b1ce 100644
--- a/pkgs/development/python-modules/inscriptis/default.nix
+++ b/pkgs/development/python-modules/inscriptis/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, lxml
-, fastapi
-, httpx
-, pytestCheckHook
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  lxml,
+  fastapi,
+  httpx,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-9KEkXcdZ7USXfyIXGDrp4p4kJTzF2q30fvOccxF1hBU=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   propagatedBuildInputs = [
     lxml
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "inscriptis"
-  ];
+  pythonImportsCheck = [ "inscriptis" ];
 
   meta = with lib; {
     description = "HTML to text converter";
diff --git a/pkgs/development/python-modules/insegel/default.nix b/pkgs/development/python-modules/insegel/default.nix
index 9fb9d9296ec2c..57f87a5a7b074 100644
--- a/pkgs/development/python-modules/insegel/default.nix
+++ b/pkgs/development/python-modules/insegel/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pygments }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pygments,
+}:
 
 buildPythonPackage rec {
   pname = "insegel";
@@ -15,13 +20,11 @@ buildPythonPackage rec {
   # No tests included
   doCheck = false;
 
-  pythonImportsCheck = [
-    "insegel"
-  ];
+  pythonImportsCheck = [ "insegel" ];
 
   meta = with lib; {
     homepage = "https://github.com/autophagy/insegel";
-    description = "A monochrome 2 column Sphinx theme";
+    description = "Monochrome 2 column Sphinx theme";
     license = licenses.mit;
     maintainers = with maintainers; [ autophagy ];
   };
diff --git a/pkgs/development/python-modules/insightface/default.nix b/pkgs/development/python-modules/insightface/default.nix
index 35d434de760f0..1199e09eae0d9 100644
--- a/pkgs/development/python-modules/insightface/default.nix
+++ b/pkgs/development/python-modules/insightface/default.nix
@@ -1,29 +1,31 @@
-{ lib
-, albumentations
-, buildPythonPackage
-, cython
-, easydict
-, fetchPypi
-, insightface
-, matplotlib
-, mxnet
-, numpy
-, onnx
-, onnxruntime
-, opencv4
-, prettytable
-, pythonOlder
-, scikit-image
-, scikit-learn
-, tensorboard
-, testers
-, tqdm
+{
+  lib,
+  albumentations,
+  buildPythonPackage,
+  cython,
+  easydict,
+  fetchPypi,
+  insightface,
+  matplotlib,
+  mxnet,
+  numpy,
+  onnx,
+  onnxruntime,
+  opencv4,
+  prettytable,
+  pythonOlder,
+  scikit-image,
+  scikit-learn,
+  tensorboard,
+  testers,
+  tqdm,
+  stdenv,
 }:
 
 buildPythonPackage rec {
   pname = "insightface";
   version = "0.7.3";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -32,11 +34,9 @@ buildPythonPackage rec {
     hash = "sha256-8ZH3GWEuuzcBj0GTaBRQBUTND4bm/NZ2wCPzVMZo3fc=";
   };
 
-  nativeBuildInputs = [
-    cython
-  ];
+  build-system = [ cython ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     easydict
     matplotlib
     mxnet
@@ -68,11 +68,13 @@ buildPythonPackage rec {
 
   doCheck = false; # Upstream has no tests
 
-  meta = with lib; {
+  meta = {
     description = "State-of-the-art 2D and 3D Face Analysis Project";
     mainProgram = "insightface-cli";
     homepage = "https://github.com/deepinsight/insightface";
-    license = licenses.mit;
-    maintainers = with maintainers; [ oddlama ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ oddlama ];
+    # terminate called after throwing an instance of 'onnxruntime::OnnxRuntimeException'
+    broken = stdenv.system == "aarch64-linux";
   };
 }
diff --git a/pkgs/development/python-modules/installer/default.nix b/pkgs/development/python-modules/installer/default.nix
index c26dae01c2373..64e9a3191a674 100644
--- a/pkgs/development/python-modules/installer/default.nix
+++ b/pkgs/development/python-modules/installer/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonAtLeast
-, fetchFromGitHub
-, pytestCheckHook
-, flit-core
-, installer
-, mock
+{
+  lib,
+  buildPythonPackage,
+  pythonAtLeast,
+  fetchFromGitHub,
+  pytestCheckHook,
+  flit-core,
+  installer,
+  mock,
 }:
 
 buildPythonPackage rec {
@@ -50,7 +51,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A low-level library for installing a Python package from a wheel distribution";
+    description = "Low-level library for installing a Python package from a wheel distribution";
     homepage = "https://github.com/pypa/installer";
     changelog = "https://github.com/pypa/installer/blob/${src.rev}/docs/changelog.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix b/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix
index 7c8536e1466ac..946e807c44c45 100644
--- a/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix
+++ b/pkgs/development/python-modules/insteon-frontend-home-assistant/default.nix
@@ -1,9 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,20 +18,16 @@ buildPythonPackage rec {
     hash = "sha256-NZwnx8tlXnsVCk4nvNjOg3cjSr2CnjqWcZG7xFTC2wA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # upstream has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "insteon_frontend"
-  ];
+  pythonImportsCheck = [ "insteon_frontend" ];
 
   meta = with lib; {
     changelog = "https://github.com/pyinsteon/insteon-panel/releases/tag/${version}";
-    description = "The Insteon frontend for Home Assistant";
+    description = "Insteon frontend for Home Assistant";
     homepage = "https://github.com/pyinsteon/insteon-panel";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/instructor/default.nix b/pkgs/development/python-modules/instructor/default.nix
index bb36e7a8abf21..c37e2290ab6e4 100644
--- a/pkgs/development/python-modules/instructor/default.nix
+++ b/pkgs/development/python-modules/instructor/default.nix
@@ -15,7 +15,6 @@
   diskcache,
   redis,
   pythonOlder,
-  pythonRelaxDepsHook,
   rich,
   tenacity,
   typer,
@@ -23,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "instructor";
-  version = "1.2.3";
+  version = "1.3.3";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -32,7 +31,7 @@ buildPythonPackage rec {
     owner = "jxnl";
     repo = "instructor";
     rev = "refs/tags/${version}";
-    hash = "sha256-LmorlFKIG7iPAK4pDbQqjxjiwB1md3u52B4u5WlqqTk=";
+    hash = "sha256-ye6uNnwvJ3RXmKM8ix/sBiJgeCFQazNVgHZkBAnL0nw=";
   };
 
   pythonRelaxDeps = [
@@ -42,7 +41,6 @@ buildPythonPackage rec {
 
   build-system = [ poetry-core ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     aiohttp
diff --git a/pkgs/development/python-modules/intake-parquet/default.nix b/pkgs/development/python-modules/intake-parquet/default.nix
index 809d9efcc7cac..fe6fa3b2a656d 100644
--- a/pkgs/development/python-modules/intake-parquet/default.nix
+++ b/pkgs/development/python-modules/intake-parquet/default.nix
@@ -1,12 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pandas
-, dask
-, fastparquet
-, pyarrow
-, setuptools
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dask,
+  fastparquet,
+  fetchFromGitHub,
+  pandas,
+  pyarrow,
+  pythonOlder,
+  setuptools,
+  versioneer,
 }:
 
 buildPythonPackage rec {
@@ -27,13 +29,17 @@ buildPythonPackage rec {
     # Break circular dependency
     substituteInPlace requirements.txt \
       --replace-fail "intake" ""
+
+    # Remove vendorized versioneer.py
+    rm versioneer.py
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
+    versioneer
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     pandas
     dask
     fastparquet
diff --git a/pkgs/development/python-modules/intake/default.nix b/pkgs/development/python-modules/intake/default.nix
index b15e90cda27fc..0951b6218b0b0 100644
--- a/pkgs/development/python-modules/intake/default.nix
+++ b/pkgs/development/python-modules/intake/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, stdenv
-, appdirs
-, bokeh
-, buildPythonPackage
-, dask
-, entrypoints
-, fetchFromGitHub
-, fsspec
-, hvplot
-, intake-parquet
-, jinja2
-, msgpack
-, msgpack-numpy
-, pandas
-, panel
-, pyarrow
-, pytestCheckHook
-, python-snappy
-, pythonOlder
-, pyyaml
-, requests
-, setuptools
-, setuptools-scm
-, tornado
+{
+  lib,
+  stdenv,
+  appdirs,
+  bokeh,
+  buildPythonPackage,
+  dask,
+  entrypoints,
+  fetchFromGitHub,
+  fsspec,
+  hvplot,
+  intake-parquet,
+  jinja2,
+  msgpack,
+  msgpack-numpy,
+  pandas,
+  panel,
+  pyarrow,
+  pytestCheckHook,
+  python-snappy,
+  pythonOlder,
+  pyyaml,
+  requests,
+  setuptools,
+  setuptools-scm,
+  tornado,
 }:
 
 buildPythonPackage rec {
@@ -75,9 +76,7 @@ buildPythonPackage rec {
       bokeh
       panel
     ];
-    remote = [
-      requests
-    ];
+    remote = [ requests ];
   };
 
   __darwinAllowLocalNetworking = true;
@@ -101,36 +100,37 @@ buildPythonPackage rec {
     "intake/tests/test_top_level.py"
   ];
 
-  disabledTests = [
-    # Disable tests which touch network
-    "http"
-    "test_address_flag"
-    "test_dir"
-    "test_discover"
-    "test_filtered_compressed_cache"
-    "test_flatten_flag"
-    "test_get_dir"
-    "test_pagination"
-    "test_port_flag"
-    "test_read_part_compressed"
-    "test_read_partition"
-    "test_read_pattern"
-    "test_remote_arr"
-    "test_remote_cat"
-    "test_remote_env"
-    # ValueError
-    "test_datasource_python_to_dask"
-    "test_catalog_passthrough"
-    # Timing-based, flaky on darwin and possibly others
-    "test_idle_timer"
-  ] ++ lib.optionals (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13") [
-    # Flaky with older low-res mtime on darwin < 10.13 (#143987)
-    "test_second_load_timestamp"
-  ];
+  disabledTests =
+    [
+      # Disable tests which touch network
+      "http"
+      "test_address_flag"
+      "test_dir"
+      "test_discover"
+      "test_filtered_compressed_cache"
+      "test_flatten_flag"
+      "test_get_dir"
+      "test_pagination"
+      "test_port_flag"
+      "test_read_part_compressed"
+      "test_read_partition"
+      "test_read_pattern"
+      "test_remote_arr"
+      "test_remote_cat"
+      "test_remote_env"
+      # ValueError
+      "test_datasource_python_to_dask"
+      "test_catalog_passthrough"
+      # Timing-based, flaky on darwin and possibly others
+      "test_idle_timer"
+    ]
+    ++ lib.optionals (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinMinVersion "10.13")
+      [
+        # Flaky with older low-res mtime on darwin < 10.13 (#143987)
+        "test_second_load_timestamp"
+      ];
 
-  pythonImportsCheck = [
-    "intake"
-  ];
+  pythonImportsCheck = [ "intake" ];
 
   meta = with lib; {
     description = "Data load and catalog system";
diff --git a/pkgs/development/python-modules/intbitset/default.nix b/pkgs/development/python-modules/intbitset/default.nix
index 96e1698002f01..09417bc2cc9fb 100644
--- a/pkgs/development/python-modules/intbitset/default.nix
+++ b/pkgs/development/python-modules/intbitset/default.nix
@@ -1,14 +1,16 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "intbitset";
   version = "3.1.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -17,19 +19,16 @@ buildPythonPackage rec {
     hash = "sha256-boPFun/aJSCqhWVCi7r4Qt63KT1mXzzYKByzklTS/3E=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  build-system = [ setuptools ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "intbitset"
-  ];
+  pythonImportsCheck = [ "intbitset" ];
 
   meta = with lib; {
     description = "C-based extension implementing fast integer bit sets";
     homepage = "https://github.com/inveniosoftware/intbitset";
     changelog = "https://github.com/inveniosoftware-contrib/intbitset/blob/v${version}/CHANGELOG.rst";
     license = licenses.lgpl3Plus;
-    maintainers = [ ];
+    maintainers = with maintainers; [ sigmanificient ];
   };
 }
diff --git a/pkgs/development/python-modules/intelhex/default.nix b/pkgs/development/python-modules/intelhex/default.nix
index 4e25fa8793b19..7cb117943ed73 100644
--- a/pkgs/development/python-modules/intelhex/default.nix
+++ b/pkgs/development/python-modules/intelhex/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/intellifire4py/default.nix b/pkgs/development/python-modules/intellifire4py/default.nix
index ccfd6afe31253..5984654c7be32 100644
--- a/pkgs/development/python-modules/intellifire4py/default.nix
+++ b/pkgs/development/python-modules/intellifire4py/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, aenum
-, buildPythonPackage
-, fetchFromGitHub
-, aiohttp
-, aioresponses
-, poetry-core
-, pydantic
-, pytest-asyncio
-, pytest-httpx
-, pytestCheckHook
-, pythonOlder
-, rich
+{
+  lib,
+  aenum,
+  buildPythonPackage,
+  fetchFromGitHub,
+  aiohttp,
+  aioresponses,
+  poetry-core,
+  pydantic,
+  pytest-asyncio,
+  pytest-httpx,
+  pytestCheckHook,
+  pythonOlder,
+  rich,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-dMhm2gntLV7ev6UIfHFMATytZo5blTlALuh9sBirkqI=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "intellifire4py"
-  ];
+  pythonImportsCheck = [ "intellifire4py" ];
 
   meta = with lib; {
     description = "Module to read Intellifire fireplace status data";
diff --git a/pkgs/development/python-modules/intensity-normalization/default.nix b/pkgs/development/python-modules/intensity-normalization/default.nix
index 19253b17fe66c..f6c38f32cad61 100644
--- a/pkgs/development/python-modules/intensity-normalization/default.nix
+++ b/pkgs/development/python-modules/intensity-normalization/default.nix
@@ -1,20 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pytestCheckHook
-, pythonRelaxDepsHook
-, matplotlib
-, nibabel
-, numpy
-, pydicom
-, pymedio
-, scikit-fuzzy
-, scikit-image
-, scikit-learn
-, scipy
-, simpleitk
-, statsmodels
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytestCheckHook,
+  matplotlib,
+  nibabel,
+  numpy,
+  pydicom,
+  pymedio,
+  scikit-fuzzy,
+  scikit-image,
+  scikit-learn,
+  scipy,
+  simpleitk,
+  statsmodels,
 }:
 
 buildPythonPackage rec {
@@ -35,7 +35,6 @@ buildPythonPackage rec {
     substituteInPlace setup.cfg --replace "pytest-runner" ""
   '';
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
   pythonRelaxDeps = [ "nibabel" ];
 
   propagatedBuildInputs = [
@@ -52,9 +51,7 @@ buildPythonPackage rec {
     statsmodels
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
   pytestFlagsArray = [ "tests" ];
 
   pythonImportsCheck = [
@@ -64,7 +61,6 @@ buildPythonPackage rec {
     "intensity_normalization.util"
   ];
 
-
   meta = with lib; {
     homepage = "https://github.com/jcreinhold/intensity-normalization";
     description = "MRI intensity normalization tools";
diff --git a/pkgs/development/python-modules/interegular/default.nix b/pkgs/development/python-modules/interegular/default.nix
index e1f0fc79c0915..5e61db9b2b912 100644
--- a/pkgs/development/python-modules/interegular/default.nix
+++ b/pkgs/development/python-modules/interegular/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -11,12 +12,10 @@ buildPythonPackage rec {
     hash = "sha256-2baXshs0iEcROZug8DdpFLgYmc5nADJIbQ0Eg0SnZgA=";
   };
 
-  pythonImportsCheck = [
-    "interegular"
-  ];
+  pythonImportsCheck = [ "interegular" ];
 
   meta = with lib; {
-    description = "A library to check a subset of python regexes for intersections";
+    description = "Library to check a subset of python regexes for intersections";
     homepage = "https://github.com/MegaIng/interegular";
     license = licenses.mit;
     maintainers = with maintainers; [ lach ];
diff --git a/pkgs/development/python-modules/interface-meta/default.nix b/pkgs/development/python-modules/interface-meta/default.nix
index 04daece781e5e..34754618b5a5b 100644
--- a/pkgs/development/python-modules/interface-meta/default.nix
+++ b/pkgs/development/python-modules/interface-meta/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook, poetry-core, poetry-dynamic-versioning }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  poetry-core,
+  poetry-dynamic-versioning,
+}:
 
 buildPythonPackage rec {
   pname = "interface-meta";
@@ -13,17 +20,11 @@ buildPythonPackage rec {
     sha256 = "0rzh11wnab33b11391vc2ynf8ncxn22b12wn46lmgkrc5mqza8hd";
   };
 
-  patches = [
-    ./0001-fix-version.patch
-  ];
+  patches = [ ./0001-fix-version.patch ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    poetry-dynamic-versioning
-  ];
+  propagatedBuildInputs = [ poetry-dynamic-versioning ];
 
   pythonImportsCheck = [ "interface_meta" ];
 
diff --git a/pkgs/development/python-modules/internetarchive/default.nix b/pkgs/development/python-modules/internetarchive/default.nix
index 11a089b376d3a..f6f93c25a7732 100644
--- a/pkgs/development/python-modules/internetarchive/default.nix
+++ b/pkgs/development/python-modules/internetarchive/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, docopt
-, fetchFromGitHub
-, pytestCheckHook
-, requests
-, jsonpatch
-, schema
-, responses
-, setuptools
-, tqdm
-, urllib3
-, pythonOlder
-, importlib-metadata
+{
+  lib,
+  buildPythonPackage,
+  docopt,
+  fetchFromGitHub,
+  pytestCheckHook,
+  requests,
+  jsonpatch,
+  schema,
+  responses,
+  setuptools,
+  tqdm,
+  urllib3,
+  pythonOlder,
+  importlib-metadata,
 }:
 
 buildPythonPackage rec {
   pname = "internetarchive";
-  version = "4.0.1";
+  version = "4.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,12 +26,10 @@ buildPythonPackage rec {
     owner = "jjjake";
     repo = "internetarchive";
     rev = "refs/tags/v${version}";
-    hash = "sha256-U6idxc5U2Bt581c/vnGgIou5+hoEJJZSPCo97MEDaW4=";
+    hash = "sha256-CqfwAKhrq4VEBU258x19JT8+ay2vOYIzVoFWjAzh3wY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     tqdm
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     jsonpatch
     schema
     urllib3
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
   nativeCheckInputs = [
     responses
@@ -64,12 +61,10 @@ buildPythonPackage rec {
     "tests/cli/test_ia_download.py"
   ];
 
-  pythonImportsCheck = [
-    "internetarchive"
-  ];
+  pythonImportsCheck = [ "internetarchive" ];
 
   meta = with lib; {
-    description = "A Python and Command-Line Interface to Archive.org";
+    description = "Python and Command-Line Interface to Archive.org";
     homepage = "https://github.com/jjjake/internetarchive";
     changelog = "https://github.com/jjjake/internetarchive/blob/v${version}/HISTORY.rst";
     license = licenses.agpl3Plus;
diff --git a/pkgs/development/python-modules/interruptingcow/default.nix b/pkgs/development/python-modules/interruptingcow/default.nix
index 41744b690fd96..300b39b2d8021 100644
--- a/pkgs/development/python-modules/interruptingcow/default.nix
+++ b/pkgs/development/python-modules/interruptingcow/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 buildPythonPackage rec {
   pname = "interruptingcow";
   version = "0.8";
@@ -10,7 +14,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A watchdog that interrupts long running code";
+    description = "Watchdog that interrupts long running code";
     homepage = "https://bitbucket.org/evzijst/interruptingcow";
     license = licenses.mit;
     maintainers = with maintainers; [ benley ];
diff --git a/pkgs/development/python-modules/intervaltree/default.nix b/pkgs/development/python-modules/intervaltree/default.nix
index 8e80be209b23c..a611124c5a5e0 100644
--- a/pkgs/development/python-modules/intervaltree/default.nix
+++ b/pkgs/development/python-modules/intervaltree/default.nix
@@ -1,5 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi
-, python, pytest, sortedcontainers }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  pytest,
+  sortedcontainers,
+}:
 
 buildPythonPackage rec {
   version = "3.1.0";
@@ -24,8 +30,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Editable interval tree data structure for Python 2 and 3";
-    homepage =  "https://github.com/chaimleib/intervaltree";
+    homepage = "https://github.com/chaimleib/intervaltree";
     license = [ licenses.asl20 ];
-    maintainers =  [ maintainers.bennofs ];
+    maintainers = [ maintainers.bennofs ];
   };
 }
diff --git a/pkgs/development/python-modules/into-dbus-python/default.nix b/pkgs/development/python-modules/into-dbus-python/default.nix
index b7ea90b26f9d0..004138c13bdb5 100644
--- a/pkgs/development/python-modules/into-dbus-python/default.nix
+++ b/pkgs/development/python-modules/into-dbus-python/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, dbus-signature-pyparsing
-, dbus-python
-, pytestCheckHook
-, hypothesis
-, hs-dbus-signature
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  dbus-signature-pyparsing,
+  dbus-python,
+  pytestCheckHook,
+  hypothesis,
+  hs-dbus-signature,
 }:
 
 buildPythonPackage rec {
@@ -34,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "into_dbus_python" ];
 
   meta = with lib; {
-    description = "A transformer to dbus-python types";
+    description = "Transformer to dbus-python types";
     homepage = "https://github.com/stratis-storage/into-dbus-python";
     license = licenses.asl20;
     maintainers = with maintainers; [ nickcao ];
diff --git a/pkgs/development/python-modules/invisible-watermark/default.nix b/pkgs/development/python-modules/invisible-watermark/default.nix
index a69a0f8f85f68..968669ec92bcc 100644
--- a/pkgs/development/python-modules/invisible-watermark/default.nix
+++ b/pkgs/development/python-modules/invisible-watermark/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, opencv4
-, torch
-, onnx
-, onnxruntime
-, pillow
-, pywavelets
-, numpy
-, callPackage
-, withOnnx ? false # Enables the rivaGan en- and decoding method
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  opencv4,
+  torch,
+  onnx,
+  onnxruntime,
+  pillow,
+  pywavelets,
+  numpy,
+  callPackage,
+  withOnnx ? false, # Enables the rivaGan en- and decoding method
 }:
 
 buildPythonPackage rec {
@@ -27,16 +28,18 @@ buildPythonPackage rec {
     hash = "sha256-6SjVpKFtiiLLU7tZ3hBQr0KT/YEQyywJj0e21/dJRzk=";
   };
 
-  propagatedBuildInputs = [
-    opencv4
-    torch
-    pillow
-    pywavelets
-    numpy
-  ] ++ lib.optionals withOnnx [
-    onnx
-    onnxruntime
-  ];
+  propagatedBuildInputs =
+    [
+      opencv4
+      torch
+      pillow
+      pywavelets
+      numpy
+    ]
+    ++ lib.optionals withOnnx [
+      onnx
+      onnxruntime
+    ];
 
   postPatch = ''
     substituteInPlace setup.py \
@@ -46,29 +49,52 @@ buildPythonPackage rec {
       'You can install it with an override: `python3Packages.invisible-watermark.override { withOnnx = true; };`.'
   '';
 
-  passthru.tests = let
-    image = "${src}/test_vectors/original.jpg";
-    methods = [ "dwtDct" "dwtDctSvd" "rivaGan" ];
-    testCases = builtins.concatMap (method: [
-      { method = method; withOnnx = true; }
-      { method = method; withOnnx = false; }
-    ]) methods;
-    createTest = { method, withOnnx }: let
-      testName = "${if withOnnx then "withOnnx" else "withoutOnnx"}-${method}";
-    # This test fails in the sandbox on aarch64-linux, see https://github.com/microsoft/onnxruntime/issues/10038
-    skipTest = stdenv.isLinux && stdenv.isAarch64 && withOnnx && method == "rivaGan";
-    in lib.optionalAttrs (!skipTest) {
-      "${testName}" = callPackage ./tests/cli.nix { inherit image method testName withOnnx; };
+  passthru.tests =
+    let
+      image = "${src}/test_vectors/original.jpg";
+      methods = [
+        "dwtDct"
+        "dwtDctSvd"
+        "rivaGan"
+      ];
+      testCases = builtins.concatMap (method: [
+        {
+          method = method;
+          withOnnx = true;
+        }
+        {
+          method = method;
+          withOnnx = false;
+        }
+      ]) methods;
+      createTest =
+        { method, withOnnx }:
+        let
+          testName = "${if withOnnx then "withOnnx" else "withoutOnnx"}-${method}";
+          # This test fails in the sandbox on aarch64-linux, see https://github.com/microsoft/onnxruntime/issues/10038
+          skipTest = stdenv.isLinux && stdenv.isAarch64 && withOnnx && method == "rivaGan";
+        in
+        lib.optionalAttrs (!skipTest) {
+          "${testName}" = callPackage ./tests/cli.nix {
+            inherit
+              image
+              method
+              testName
+              withOnnx
+              ;
+          };
+        };
+      allTests = builtins.map createTest testCases;
+    in
+    (lib.attrsets.mergeAttrsList allTests)
+    // {
+      python = callPackage ./tests/python { inherit image; };
     };
-    allTests = builtins.map createTest testCases;
-  in (lib.attrsets.mergeAttrsList allTests) // {
-    python = callPackage ./tests/python { inherit image; };
-  };
 
   pythonImportsCheck = [ "imwatermark" ];
 
   meta = with lib; {
-    description = "A library for creating and decoding invisible image watermarks";
+    description = "Library for creating and decoding invisible image watermarks";
     mainProgram = "invisible-watermark";
     homepage = "https://github.com/ShieldMnt/invisible-watermark";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/invisible-watermark/tests/cli.nix b/pkgs/development/python-modules/invisible-watermark/tests/cli.nix
index 9cb936465786b..89de1174384a9 100644
--- a/pkgs/development/python-modules/invisible-watermark/tests/cli.nix
+++ b/pkgs/development/python-modules/invisible-watermark/tests/cli.nix
@@ -1,9 +1,10 @@
-{ image
-, method
-, python3Packages
-, runCommand
-, testName
-, withOnnx
+{
+  image,
+  method,
+  python3Packages,
+  runCommand,
+  testName,
+  withOnnx,
 }:
 
 # This file runs one test case.
@@ -18,47 +19,49 @@
 # if the message was decoded correctly.
 
 let
-  message = if method == "rivaGan" then
-    "asdf" # rivaGan only supports 32 bits
-  else
-    "fnörd1";
+  message =
+    if method == "rivaGan" then
+      "asdf" # rivaGan only supports 32 bits
+    else
+      "fnörd1";
   length = (builtins.stringLength message) * 8;
   invisible-watermark' = python3Packages.invisible-watermark.override { inherit withOnnx; };
   expected-exit-code = if method == "rivaGan" && !withOnnx then "1" else "0";
 in
-runCommand "invisible-watermark-test-${testName}" { nativeBuildInputs = [ invisible-watermark' ]; } ''
-  set +e
-  invisible-watermark \
-    --verbose \
-    --action encode \
-    --type bytes \
-    --method '${method}' \
-    --watermark '${message}' \
-    --output output.png \
-    '${image}'
-  exit_code="$?"
-  set -euf -o pipefail
-  if [ "$exit_code" != '${expected-exit-code}' ]; then
-    echo "Exit code of invisible-watermark was $exit_code while ${expected-exit-code} was expected."
-    exit 1
-  fi
-  if [ '${expected-exit-code}' == '1' ]; then
-    echo 'invisible-watermark failed as expected.'
-    touch "$out"
-    exit 0
-  fi
-  decoded_message="$(invisible-watermark \
-                      --action decode \
-                      --type bytes \
-                      --method '${method}' \
-                      --length '${toString length}' \
-                      output.png \
-                    )"
+runCommand "invisible-watermark-test-${testName}" { nativeBuildInputs = [ invisible-watermark' ]; }
+  ''
+    set +e
+    invisible-watermark \
+      --verbose \
+      --action encode \
+      --type bytes \
+      --method '${method}' \
+      --watermark '${message}' \
+      --output output.png \
+      '${image}'
+    exit_code="$?"
+    set -euf -o pipefail
+    if [ "$exit_code" != '${expected-exit-code}' ]; then
+      echo "Exit code of invisible-watermark was $exit_code while ${expected-exit-code} was expected."
+      exit 1
+    fi
+    if [ '${expected-exit-code}' == '1' ]; then
+      echo 'invisible-watermark failed as expected.'
+      touch "$out"
+      exit 0
+    fi
+    decoded_message="$(invisible-watermark \
+                        --action decode \
+                        --type bytes \
+                        --method '${method}' \
+                        --length '${toString length}' \
+                        output.png \
+                      )"
 
-  if [ '${message}' != "$decoded_message" ]; then
-    echo "invisible-watermark did not decode the watermark correctly."
-    echo "The original message was ${message} but the decoded message was $decoded_message."
-    exit 1
-  fi
-  touch "$out"
-''
+    if [ '${message}' != "$decoded_message" ]; then
+      echo "invisible-watermark did not decode the watermark correctly."
+      echo "The original message was ${message} but the decoded message was $decoded_message."
+      exit 1
+    fi
+    touch "$out"
+  ''
diff --git a/pkgs/development/python-modules/invisible-watermark/tests/python/default.nix b/pkgs/development/python-modules/invisible-watermark/tests/python/default.nix
index 63db588673711..e713f9bfe20c4 100644
--- a/pkgs/development/python-modules/invisible-watermark/tests/python/default.nix
+++ b/pkgs/development/python-modules/invisible-watermark/tests/python/default.nix
@@ -1,9 +1,10 @@
-{ image
-, invisible-watermark
-, opencv4
-, python3
-, runCommand
-, stdenvNoCC
+{
+  image,
+  invisible-watermark,
+  opencv4,
+  python3,
+  runCommand,
+  stdenvNoCC,
 }:
 
 # This test checks if the python code shown in the README works correctly
@@ -12,7 +13,12 @@ let
   message = "fnörd1";
   method = "dwtDct";
 
-  pythonWithPackages = python3.withPackages (pp: with pp; [ invisible-watermark opencv4 ]);
+  pythonWithPackages = python3.withPackages (
+    pp: with pp; [
+      invisible-watermark
+      opencv4
+    ]
+  );
   pythonInterpreter = pythonWithPackages.interpreter;
 
   encode = stdenvNoCC.mkDerivation {
diff --git a/pkgs/development/python-modules/invocations/default.nix b/pkgs/development/python-modules/invocations/default.nix
index 828c089d29318..17828c47ae466 100644
--- a/pkgs/development/python-modules/invocations/default.nix
+++ b/pkgs/development/python-modules/invocations/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, blessings
-, fetchFromGitHub
-, invoke
-, pythonOlder
-, releases
-, semantic-version
-, tabulate
-, tqdm
-, twine
+{
+  lib,
+  buildPythonPackage,
+  blessings,
+  fetchFromGitHub,
+  invoke,
+  pythonOlder,
+  releases,
+  semantic-version,
+  tabulate,
+  tqdm,
+  twine,
 }:
 
 buildPythonPackage rec {
@@ -43,9 +44,7 @@ buildPythonPackage rec {
   # There's an error loading the test suite. See https://github.com/pyinvoke/invocations/issues/29.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "invocations"
-  ];
+  pythonImportsCheck = [ "invocations" ];
 
   meta = with lib; {
     description = "Common/best-practice Invoke tasks and collections";
diff --git a/pkgs/development/python-modules/invoke/default.nix b/pkgs/development/python-modules/invoke/default.nix
index bf23cfbbcdd56..5ac98f31c5534 100644
--- a/pkgs/development/python-modules/invoke/default.nix
+++ b/pkgs/development/python-modules/invoke/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, bash
-, buildPythonPackage
-, fetchPypi
-, stdenv
+{
+  lib,
+  bash,
+  buildPythonPackage,
+  fetchPypi,
+  stdenv,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
   # errors with vendored libs
   doCheck = false;
 
-  pythonImportsCheck = [
-    "invoke"
-  ];
+  pythonImportsCheck = [ "invoke" ];
 
   postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
     mkdir -p $out/share/{bash-completion/completions,fish/vendor_completions.d,zsh/site-functions}
diff --git a/pkgs/development/python-modules/iocapture/default.nix b/pkgs/development/python-modules/iocapture/default.nix
index b47c18874a922..a36a01eeeead9 100644
--- a/pkgs/development/python-modules/iocapture/default.nix
+++ b/pkgs/development/python-modules/iocapture/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flexmock
-, pytest
-, pytest-cov
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flexmock,
+  pytest,
+  pytest-cov,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -28,7 +29,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "Capture stdout, stderr easily.";
+    description = "Capture stdout, stderr easily";
     homepage = "https://github.com/oinume/iocapture";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/iocextract/default.nix b/pkgs/development/python-modules/iocextract/default.nix
index fd00ff991f00a..97d587195ab04 100644
--- a/pkgs/development/python-modules/iocextract/default.nix
+++ b/pkgs/development/python-modules/iocextract/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, regex
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  regex,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -26,17 +27,11 @@ buildPythonPackage rec {
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "iocextract"
-  ];
+  pythonImportsCheck = [ "iocextract" ];
 
-  pytestFlagsArray = [
-    "tests.py"
-  ];
+  pytestFlagsArray = [ "tests.py" ];
 
   disabledTests = [
     # AssertionError: 'http://exampledotcom/test' != 'http://example.com/test'
diff --git a/pkgs/development/python-modules/iocsearcher/default.nix b/pkgs/development/python-modules/iocsearcher/default.nix
index a485e3df6219c..be8c0cef7007e 100644
--- a/pkgs/development/python-modules/iocsearcher/default.nix
+++ b/pkgs/development/python-modules/iocsearcher/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchFromGitHub
-, base58
-, bech32
-, cashaddress
-, cbor
-, eth-hash
-, intervaltree
-, langdetect
-, lxml
-, pdfminer-six
-, phonenumbers
-, python-magic
-, readabilipy
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitHub,
+  base58,
+  bech32,
+  cashaddress,
+  cbor,
+  eth-hash,
+  intervaltree,
+  langdetect,
+  lxml,
+  pdfminer-six,
+  phonenumbers,
+  python-magic,
+  readabilipy,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
     hash = "sha256-SYh0+JEZa95iBznNzXut/9Vwof6VFeSlt0/g+XmMPC0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     base58
@@ -56,9 +55,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "iocsearcher"
-  ];
+  pythonImportsCheck = [ "iocsearcher" ];
 
   meta = with lib; {
     description = "Library and command line tool for extracting indicators of compromise (IOCs)";
diff --git a/pkgs/development/python-modules/iodata/default.nix b/pkgs/development/python-modules/iodata/default.nix
index 50a6a87eac865..af27d8494d064 100644
--- a/pkgs/development/python-modules/iodata/default.nix
+++ b/pkgs/development/python-modules/iodata/default.nix
@@ -1,4 +1,13 @@
-{ buildPythonPackage, lib, fetchFromGitHub, numpy, scipy, attrs, cython, nose }:
+{
+  buildPythonPackage,
+  lib,
+  fetchFromGitHub,
+  numpy,
+  scipy,
+  attrs,
+  cython,
+  nose,
+}:
 
 buildPythonPackage rec {
   pname = "iodata";
@@ -12,8 +21,15 @@ buildPythonPackage rec {
     hash = "sha256-GFTCYE19Re7WLhV8eU+0i8OMp/Tsms/Xj9DRTcgjcz4=";
   };
 
-  nativeBuildInputs = [ cython nose ];
-  propagatedBuildInputs = [ numpy scipy attrs ];
+  nativeBuildInputs = [
+    cython
+    nose
+  ];
+  propagatedBuildInputs = [
+    numpy
+    scipy
+    attrs
+  ];
 
   pythonImportsCheck = [ "iodata" ];
   doCheck = false; # Requires roberto or nose and a lenghtly setup to find the cython modules
diff --git a/pkgs/development/python-modules/ionhash/default.nix b/pkgs/development/python-modules/ionhash/default.nix
index 0eca4e663331a..8d99e24101f35 100644
--- a/pkgs/development/python-modules/ionhash/default.nix
+++ b/pkgs/development/python-modules/ionhash/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch, amazon-ion, six, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  amazon-ion,
+  six,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "ionhash";
@@ -24,7 +32,10 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "'pytest-runner'," ""
   '';
 
-  propagatedBuildInputs = [ amazon-ion six ];
+  propagatedBuildInputs = [
+    amazon-ion
+    six
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
@@ -35,5 +46,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/amzn/ion-hash-python";
     license = licenses.asl20;
     maintainers = [ maintainers.terlar ];
+    broken = true; # last successful build 2023-09-28
   };
 }
diff --git a/pkgs/development/python-modules/ionoscloud/default.nix b/pkgs/development/python-modules/ionoscloud/default.nix
index 02e01f194c396..901c4289cca77 100644
--- a/pkgs/development/python-modules/ionoscloud/default.nix
+++ b/pkgs/development/python-modules/ionoscloud/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, urllib3
-, six
-, certifi
-, python-dateutil
-, asn1crypto
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  urllib3,
+  six,
+  certifi,
+  python-dateutil,
+  asn1crypto,
 }:
 
 buildPythonPackage rec {
@@ -16,19 +17,23 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash= "sha256-IpDhuZ8KrqT8g3UKgdEmjzKRlK1SXq1fgrTDFy/fvpU=";
+    hash = "sha256-IpDhuZ8KrqT8g3UKgdEmjzKRlK1SXq1fgrTDFy/fvpU=";
   };
 
   nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [ urllib3 six certifi python-dateutil asn1crypto ];
+  propagatedBuildInputs = [
+    urllib3
+    six
+    certifi
+    python-dateutil
+    asn1crypto
+  ];
 
   # upstream only has codecoverage tests, but no actual tests to go with them
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ionoscloud"
-  ];
+  pythonImportsCheck = [ "ionoscloud" ];
 
   meta = with lib; {
     homepage = "https://github.com/ionos-cloud/sdk-python";
diff --git a/pkgs/development/python-modules/iopath/default.nix b/pkgs/development/python-modules/iopath/default.nix
index 0a85de0fc9ec6..ace7c4f03f09a 100644
--- a/pkgs/development/python-modules/iopath/default.nix
+++ b/pkgs/development/python-modules/iopath/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-# build inputs
-, tqdm
-, portalocker
-, boto3
-# check inputs
-, pytestCheckHook
-, torch
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  # build inputs
+  tqdm,
+  portalocker,
+  boto3,
+  # check inputs
+  pytestCheckHook,
+  torch,
 }:
 let
   pname = "iopath";
@@ -50,16 +51,14 @@ buildPythonPackage {
     "tests/async_writes_test.py"
   ];
 
-  pythonImportsCheck = [
-    "iopath"
-  ];
+  pythonImportsCheck = [ "iopath" ];
 
   passthru.optional-dependencies = {
     aws = [ boto3 ];
   };
 
   meta = with lib; {
-    description = "A python library that provides common I/O interface across different storage backends.";
+    description = "Python library that provides common I/O interface across different storage backends";
     homepage = "https://github.com/facebookresearch/iopath";
     changelog = "https://github.com/facebookresearch/iopath/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/iotawattpy/default.nix b/pkgs/development/python-modules/iotawattpy/default.nix
index 7eca486eea0b8..d7a4be359467a 100644
--- a/pkgs/development/python-modules/iotawattpy/default.nix
+++ b/pkgs/development/python-modules/iotawattpy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, httpx
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  httpx,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     sha256 = "1pyxm87lvd6zy0rx7r9jivk2li267r3xr0b9p6vf0v0vp9fmgsw3";
   };
 
-  propagatedBuildInputs = [
-    httpx
-  ];
+  propagatedBuildInputs = [ httpx ];
 
   # Project doesn't tag releases or ship the tests with PyPI
   # https://github.com/gtdiehl/iotawattpy/issues/14
diff --git a/pkgs/development/python-modules/ipaddr/default.nix b/pkgs/development/python-modules/ipaddr/default.nix
index 959d5c878f07d..f42decd345b38 100644
--- a/pkgs/development/python-modules/ipaddr/default.nix
+++ b/pkgs/development/python-modules/ipaddr/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "ipaddr";
diff --git a/pkgs/development/python-modules/ipadic/default.nix b/pkgs/development/python-modules/ipadic/default.nix
index bb7724a505768..2702f6888c40d 100644
--- a/pkgs/development/python-modules/ipadic/default.nix
+++ b/pkgs/development/python-modules/ipadic/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, mecab
-, setuptools-scm
-, cython
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  mecab,
+  setuptools-scm,
+  cython,
 }:
 
 buildPythonPackage rec {
@@ -23,7 +24,11 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  nativeBuildInputs = [ cython mecab setuptools-scm ];
+  nativeBuildInputs = [
+    cython
+    mecab
+    setuptools-scm
+  ];
 
   pythonImportsCheck = [ "ipadic" ];
 
diff --git a/pkgs/development/python-modules/ipdb/default.nix b/pkgs/development/python-modules/ipdb/default.nix
index 96a4274bac1ec..84123590fe1b2 100644
--- a/pkgs/development/python-modules/ipdb/default.nix
+++ b/pkgs/development/python-modules/ipdb/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, decorator
-, ipython
-, isPyPy
-, exceptiongroup
-, tomli
-, setuptools
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  decorator,
+  ipython,
+  isPyPy,
+  exceptiongroup,
+  tomli,
+  setuptools,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,28 +17,26 @@ buildPythonPackage rec {
   version = "0.13.13";
   format = "pyproject";
 
-  disabled = isPyPy;  # setupterm: could not find terminfo database
+  disabled = isPyPy; # setupterm: could not find terminfo database
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-46xgGO8FEm1EKvaAqthjAG7BnQIpBWGsiLixwLDPxyY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    ipython
-    decorator
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    exceptiongroup
-    tomli
-  ];
+  propagatedBuildInputs =
+    [
+      ipython
+      decorator
+    ]
+    ++ lib.optionals (pythonOlder "3.11") [
+      exceptiongroup
+      tomli
+    ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   preCheck = ''
     export HOME=$(mktemp -d)
@@ -50,5 +49,4 @@ buildPythonPackage rec {
     license = licenses.bsd0;
     maintainers = [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/ipdbplugin/default.nix b/pkgs/development/python-modules/ipdbplugin/default.nix
deleted file mode 100644
index 1dd69b112f560..0000000000000
--- a/pkgs/development/python-modules/ipdbplugin/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-, ipython
-}:
-
-buildPythonPackage rec {
-  pname = "ipdbplugin";
-  version = "1.5.0";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "cdcd6bc1e995c3c2c4971ed95f207e680aa44980b716fa43fb675ff2dcc7894f";
-  };
-
-  propagatedBuildInputs = [ nose ipython ];
-
-  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;
-    maintainers = [ ];
-  };
-
-}
diff --git a/pkgs/development/python-modules/ipfshttpclient/default.nix b/pkgs/development/python-modules/ipfshttpclient/default.nix
index 1ac7fdd3cf750..e441273721725 100644
--- a/pkgs/development/python-modules/ipfshttpclient/default.nix
+++ b/pkgs/development/python-modules/ipfshttpclient/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pythonOlder
-, python
-, py-multiaddr
-, requests
-, pytestCheckHook
-, pytest-cov
-, pytest-dependency
-, pytest-localserver
-, pytest-mock
-, pytest-order
-, pytest-cid
-, mock
-, kubo
-, httpx
-, httpcore
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pythonOlder,
+  python,
+  py-multiaddr,
+  requests,
+  pytestCheckHook,
+  pytest-cov,
+  pytest-dependency,
+  pytest-localserver,
+  pytest-mock,
+  pytest-order,
+  pytest-cid,
+  mock,
+  kubo,
+  httpx,
+  httpcore,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     hash = "sha256-OmC67pN2BbuGwM43xNDKlsLhwVeUbpvfOazyIDvoMEA=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     py-multiaddr
@@ -89,9 +88,12 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ipfshttpclient" ];
 
   meta = with lib; {
-    description = "A python client library for the IPFS API";
+    description = "Python client library for the IPFS API";
     homepage = "https://github.com/ipfs-shipyard/py-ipfs-http-client";
     license = licenses.mit;
-    maintainers = with maintainers; [ mguentner Luflosi ];
+    maintainers = with maintainers; [
+      mguentner
+      Luflosi
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/iptools/default.nix b/pkgs/development/python-modules/iptools/default.nix
index fe400465382bc..42e296afcc86a 100644
--- a/pkgs/development/python-modules/iptools/default.nix
+++ b/pkgs/development/python-modules/iptools/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
 }:
 
 buildPythonPackage rec {
@@ -21,5 +22,4 @@ buildPythonPackage rec {
     homepage = "https://pypi.python.org/pypi/iptools";
     license = licenses.bsd0;
   };
-
 }
diff --git a/pkgs/development/python-modules/ipwhl/default.nix b/pkgs/development/python-modules/ipwhl/default.nix
index 6e6d0e21ef02d..c7f2f621a2f69 100644
--- a/pkgs/development/python-modules/ipwhl/default.nix
+++ b/pkgs/development/python-modules/ipwhl/default.nix
@@ -1,5 +1,13 @@
-{ lib, buildPythonPackage, pythonOlder, fetchFromSourcehut
-, kubo, packaging, tomli, flit-core }:
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromSourcehut,
+  kubo,
+  packaging,
+  tomli,
+  flit-core,
+}:
 
 buildPythonPackage rec {
   pname = "ipwhl";
@@ -16,7 +24,10 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ flit-core ];
   buildInputs = [ kubo ];
-  propagatedBuildInputs = [ packaging tomli ];
+  propagatedBuildInputs = [
+    packaging
+    tomli
+  ];
   doCheck = false; # there's no test
   pythonImportsCheck = [ "ipwhl" ];
 
diff --git a/pkgs/development/python-modules/ipwhois/default.nix b/pkgs/development/python-modules/ipwhois/default.nix
index c6e50535bad40..bd69e5ccd5147 100644
--- a/pkgs/development/python-modules/ipwhois/default.nix
+++ b/pkgs/development/python-modules/ipwhois/default.nix
@@ -1,15 +1,15 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, dnspython
-, fetchFromGitHub
-, fetchpatch
-, iana-etc
-, libredirect
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  dnspython,
+  fetchFromGitHub,
+  fetchpatch,
+  iana-etc,
+  libredirect,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -37,26 +37,17 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  pythonRelaxDeps = [
-    "dnspython"
-  ];
+  pythonRelaxDeps = [ "dnspython" ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
-  propagatedBuildInputs = [
-    dnspython
-  ];
+  propagatedBuildInputs = [ dnspython ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ipwhois"
-  ];
+  pythonImportsCheck = [ "ipwhois" ];
 
   preCheck = lib.optionalString stdenv.isLinux ''
     echo "nameserver 127.0.0.1" > resolv.conf
diff --git a/pkgs/development/python-modules/ipy/default.nix b/pkgs/development/python-modules/ipy/default.nix
index 8a2f64ce3638b..7db51ef648b17 100644
--- a/pkgs/development/python-modules/ipy/default.nix
+++ b/pkgs/development/python-modules/ipy/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, nose }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+}:
 
 buildPythonPackage rec {
   pname = "ipy";
diff --git a/pkgs/development/python-modules/ipycanvas/default.nix b/pkgs/development/python-modules/ipycanvas/default.nix
index 2222c0bdad0d3..34bb4c7916ab2 100644
--- a/pkgs/development/python-modules/ipycanvas/default.nix
+++ b/pkgs/development/python-modules/ipycanvas/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, hatchling
-, ipywidgets
-, numpy
-, pillow
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  hatchling,
+  ipywidgets,
+  numpy,
+  pillow,
 }:
 
 buildPythonPackage rec {
@@ -29,15 +30,17 @@ buildPythonPackage rec {
       --replace-fail '"jupyterlab>=3,<5",' "" \
   '';
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   env.HATCH_BUILD_NO_HOOKS = true;
 
-  dependencies = [ ipywidgets numpy pillow ];
+  dependencies = [
+    ipywidgets
+    numpy
+    pillow
+  ];
 
-  doCheck = false;  # tests are in Typescript and require `npx` and `chromium`
+  doCheck = false; # tests are in Typescript and require `npx` and `chromium`
   pythonImportsCheck = [ "ipycanvas" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/ipydatawidgets/default.nix b/pkgs/development/python-modules/ipydatawidgets/default.nix
index e6f68a111ba8c..45695a23166e5 100644
--- a/pkgs/development/python-modules/ipydatawidgets/default.nix
+++ b/pkgs/development/python-modules/ipydatawidgets/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, pytest
-, pytest-cov
-, nbval
-, jupyter-packaging
-, ipywidgets
-, numpy
-, six
-, traittypes
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  pytest,
+  pytest-cov,
+  nbval,
+  jupyter-packaging,
+  ipywidgets,
+  numpy,
+  six,
+  traittypes,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-OU8kiVdlh8/XVTd6CaBn9GytIggZZQkgIf0avL54Uqg=";
   };
 
-  nativeBuildInputs = [
-    jupyter-packaging
-  ];
+  nativeBuildInputs = [ jupyter-packaging ];
 
   setupPyBuildFlags = [ "--skip-npm" ];
 
@@ -37,7 +36,11 @@ buildPythonPackage rec {
     traittypes
   ];
 
-  nativeCheckInputs = [ pytest pytest-cov nbval ];
+  nativeCheckInputs = [
+    pytest
+    pytest-cov
+    nbval
+  ];
 
   checkPhase = "pytest ipydatawidgets/tests";
 
diff --git a/pkgs/development/python-modules/ipykernel/default.nix b/pkgs/development/python-modules/ipykernel/default.nix
index 394974103537c..3ef98a9a8eb8e 100644
--- a/pkgs/development/python-modules/ipykernel/default.nix
+++ b/pkgs/development/python-modules/ipykernel/default.nix
@@ -1,23 +1,27 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, callPackage
-, fetchPypi
-, hatchling
-, pythonOlder
-, appnope
-, comm
-, debugpy
-, ipython
-, jupyter-client
-, jupyter-core
-, matplotlib-inline
-, nest-asyncio
-, packaging
-, psutil
-, pyzmq
-, tornado
-, traitlets
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  callPackage,
+  fetchPypi,
+  hatchling,
+  pythonOlder,
+  appnope,
+  comm,
+  debugpy,
+  ipython,
+  jupyter-client,
+  jupyter-core,
+  matplotlib-inline,
+  nest-asyncio,
+  packaging,
+  psutil,
+  pyzmq,
+  tornado,
+  traitlets,
+
+  # Reverse dependency
+  sage,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +41,7 @@ buildPythonPackage rec {
     sed -i "/debugpy/d" pyproject.toml
   '';
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     comm
@@ -54,15 +56,14 @@ buildPythonPackage rec {
     pyzmq
     tornado
     traitlets
-  ] ++ lib.optionals stdenv.isDarwin [
-    appnope
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ appnope ];
 
   # check in passthru.tests.pytest to escape infinite recursion with ipyparallel
   doCheck = false;
 
   passthru.tests = {
     pytest = callPackage ./tests.nix { };
+    inherit sage;
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/ipykernel/tests.nix b/pkgs/development/python-modules/ipykernel/tests.nix
index 0de6d2feb4aef..4d96d4c6787db 100644
--- a/pkgs/development/python-modules/ipykernel/tests.nix
+++ b/pkgs/development/python-modules/ipykernel/tests.nix
@@ -1,14 +1,15 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, flaky
-, ipykernel
-, ipyparallel
-, pre-commit
-, pytestCheckHook
-, pytest-asyncio
-, pytest-timeout
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  flaky,
+  ipykernel,
+  ipyparallel,
+  pre-commit,
+  pytestCheckHook,
+  pytest-asyncio,
+  pytest-timeout,
 }:
 
 buildPythonPackage {
@@ -33,35 +34,41 @@ buildPythonPackage {
     export HOME=$(mktemp -d)
   '';
 
-  disabledTests = [ # The follwing three tests fail for unclear reasons.
-    # pytest.PytestUnhandledThreadExceptionWarning: Exception in thread Thread-8
-    "test_asyncio_interrupt"
+  disabledTests =
+    [
+      # The follwing three tests fail for unclear reasons.
+      # pytest.PytestUnhandledThreadExceptionWarning: Exception in thread Thread-8
+      "test_asyncio_interrupt"
 
-    # DeprecationWarning: Passing unrecognized arguments to super(IPythonKernel)
-    "test_embed_kernel_func"
+      # DeprecationWarning: Passing unrecognized arguments to super(IPythonKernel)
+      "test_embed_kernel_func"
 
-    # traitlets.config.configurable.MultipleInstanceError: An incompatible siblin...
-    "test_install_kernelspec"
-  ] ++ lib.optionals stdenv.isDarwin ([
-    # see https://github.com/NixOS/nixpkgs/issues/76197
-    "test_subprocess_print"
-    "test_subprocess_error"
-    "test_ipython_start_kernel_no_userns"
+      # traitlets.config.configurable.MultipleInstanceError: An incompatible siblin...
+      "test_install_kernelspec"
+    ]
+    ++ lib.optionals stdenv.isDarwin (
+      [
+        # see https://github.com/NixOS/nixpkgs/issues/76197
+        "test_subprocess_print"
+        "test_subprocess_error"
+        "test_ipython_start_kernel_no_userns"
 
-    # https://github.com/ipython/ipykernel/issues/506
-    "test_unc_paths"
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    # flaky test https://github.com/ipython/ipykernel/issues/485
-    "test_shutdown"
+        # https://github.com/ipython/ipykernel/issues/506
+        "test_unc_paths"
+      ]
+      ++ lib.optionals (pythonOlder "3.8") [
+        # flaky test https://github.com/ipython/ipykernel/issues/485
+        "test_shutdown"
 
-    # test regression https://github.com/ipython/ipykernel/issues/486
-    "test_sys_path_profile_dir"
-    "test_save_history"
-    "test_help_output"
-    "test_write_kernel_spec"
-    "test_ipython_start_kernel_userns"
-    "ZMQDisplayPublisherTests"
-  ]);
+        # test regression https://github.com/ipython/ipykernel/issues/486
+        "test_sys_path_profile_dir"
+        "test_save_history"
+        "test_help_output"
+        "test_write_kernel_spec"
+        "test_ipython_start_kernel_userns"
+        "ZMQDisplayPublisherTests"
+      ]
+    );
 
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
diff --git a/pkgs/development/python-modules/ipymarkup/default.nix b/pkgs/development/python-modules/ipymarkup/default.nix
index a2698771ab22e..10dccf3f262a9 100644
--- a/pkgs/development/python-modules/ipymarkup/default.nix
+++ b/pkgs/development/python-modules/ipymarkup/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, intervaltree
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  intervaltree,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/ipympl/default.nix b/pkgs/development/python-modules/ipympl/default.nix
index b25f5fd58ae36..f9905bdfc4461 100644
--- a/pkgs/development/python-modules/ipympl/default.nix
+++ b/pkgs/development/python-modules/ipympl/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, ipykernel
-, ipython-genutils
-, ipywidgets
-, matplotlib
-, numpy
-, pillow
-, traitlets
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  ipykernel,
+  ipython-genutils,
+  ipywidgets,
+  matplotlib,
+  numpy,
+  pillow,
+  traitlets,
 }:
 
 buildPythonPackage rec {
@@ -37,12 +38,18 @@ buildPythonPackage rec {
 
   # There are no unit tests in repository
   doCheck = false;
-  pythonImportsCheck = [ "ipympl" "ipympl.backend_nbagg" ];
+  pythonImportsCheck = [
+    "ipympl"
+    "ipympl.backend_nbagg"
+  ];
 
   meta = with lib; {
     description = "Matplotlib Jupyter Extension";
     homepage = "https://github.com/matplotlib/jupyter-matplotlib";
-    maintainers = with maintainers; [ jluttine fabiangd ];
+    maintainers = with maintainers; [
+      jluttine
+      fabiangd
+    ];
     license = licenses.bsd3;
   };
 }
diff --git a/pkgs/development/python-modules/ipynbname/default.nix b/pkgs/development/python-modules/ipynbname/default.nix
index 03a27ec19d8cc..24e8f73930989 100644
--- a/pkgs/development/python-modules/ipynbname/default.nix
+++ b/pkgs/development/python-modules/ipynbname/default.nix
@@ -1,22 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, ipykernel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  ipykernel,
 }:
 
 buildPythonPackage rec {
   pname = "ipynbname";
-  version = "2023.2.0.0";
-  format = "setuptools";
+  version = "2024.1.0.0";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Riu915VmJIdtxOqB+nkoRas4cOREyh9res2uo32Mnr8=";
+    hash = "sha256-HTxpze6Kl4FPRWpyBOnMGVtLu0ueRcvnV3lrFiST9gY=";
   };
 
-  propagatedBuildInputs = [
-    ipykernel
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ ipykernel ];
 
   pythonImportsCheck = [ "ipynbname" ];
 
diff --git a/pkgs/development/python-modules/ipyniivue/default.nix b/pkgs/development/python-modules/ipyniivue/default.nix
index 14667b0942ed4..52bb55afff106 100644
--- a/pkgs/development/python-modules/ipyniivue/default.nix
+++ b/pkgs/development/python-modules/ipyniivue/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, hatchling
-, hatch-vcs
-, anywidget
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  hatchling,
+  hatch-vcs,
+  anywidget,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/ipyparallel/default.nix b/pkgs/development/python-modules/ipyparallel/default.nix
index 9548ab254bec1..90a1aa3971a6d 100644
--- a/pkgs/development/python-modules/ipyparallel/default.nix
+++ b/pkgs/development/python-modules/ipyparallel/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, decorator
-, entrypoints
-, fetchPypi
-, hatchling
-, ipykernel
-, ipython
-, jupyter-client
-, psutil
-, python-dateutil
-, pythonOlder
-, pyzmq
-, tornado
-, tqdm
-, traitlets
+{
+  lib,
+  buildPythonPackage,
+  decorator,
+  entrypoints,
+  fetchPypi,
+  hatchling,
+  ipykernel,
+  ipython,
+  jupyter-client,
+  psutil,
+  python-dateutil,
+  pythonOlder,
+  pyzmq,
+  tornado,
+  tqdm,
+  traitlets,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
       --replace '"jupyterlab==4.*",' ""
   '';
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   dependencies = [
     decorator
@@ -57,11 +56,9 @@ buildPythonPackage rec {
   # Requires access to cluster
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ipyparallel"
-  ];
+  pythonImportsCheck = [ "ipyparallel" ];
 
-  meta = with lib;{
+  meta = with lib; {
     description = "Interactive Parallel Computing with IPython";
     homepage = "https://ipyparallel.readthedocs.io/";
     changelog = "https://github.com/ipython/ipyparallel/blob/${version}/docs/source/changelog.md";
diff --git a/pkgs/development/python-modules/ipytablewidgets/default.nix b/pkgs/development/python-modules/ipytablewidgets/default.nix
index 4aad3219eb52b..0f54bb3105678 100644
--- a/pkgs/development/python-modules/ipytablewidgets/default.nix
+++ b/pkgs/development/python-modules/ipytablewidgets/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, ipywidgets
-, jupyter-packaging
-, jupyterlab
-, lz4
-, numpy
-, pandas
-, setuptools
-, traitlets
-, traittypes
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  ipywidgets,
+  jupyter-packaging,
+  jupyterlab,
+  lz4,
+  numpy,
+  pandas,
+  setuptools,
+  traitlets,
+  traittypes,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -52,9 +53,7 @@ buildPythonPackage rec {
     traittypes
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "ipytablewidgets" ];
 
diff --git a/pkgs/development/python-modules/ipython-genutils/default.nix b/pkgs/development/python-modules/ipython-genutils/default.nix
index 4e8487f3f2c46..a0f8717de4b66 100644
--- a/pkgs/development/python-modules/ipython-genutils/default.nix
+++ b/pkgs/development/python-modules/ipython-genutils/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, nose
-, pytestCheckHook
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  nose,
+  pytestCheckHook,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-6y4RbnXs751NIo/cZq9UJpr6JqtEYwQuM3hbiHxii6g=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     nose
@@ -36,9 +35,7 @@ buildPythonPackage rec {
       --replace "tearDown" "teardown_method"
   '';
 
-  pythonImportsCheck = [
-    "ipython_genutils"
-  ];
+  pythonImportsCheck = [ "ipython_genutils" ];
 
   meta = {
     description = "Vestigial utilities from IPython";
diff --git a/pkgs/development/python-modules/ipython-sql/default.nix b/pkgs/development/python-modules/ipython-sql/default.nix
index a87c359c967a0..a65eac31eb3c4 100644
--- a/pkgs/development/python-modules/ipython-sql/default.nix
+++ b/pkgs/development/python-modules/ipython-sql/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, ipython
-, ipython-genutils
-, prettytable
-, sqlalchemy
-, sqlparse
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  ipython,
+  ipython-genutils,
+  prettytable,
+  sqlalchemy,
+  sqlparse,
 }:
 buildPythonPackage rec {
   pname = "ipython-sql";
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-PbPOf5qV369Dh2+oCxa9u5oE3guhIELKsT6fWW/P/b4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     ipython
@@ -39,7 +38,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sql" ];
 
   meta = with lib; {
-    description = "Introduces a %sql (or %%sql) magic.";
+    description = "Introduces a %sql (or %%sql) magic";
     homepage = "https://github.com/catherinedevlin/ipython-sql";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/development/python-modules/ipython/default.nix b/pkgs/development/python-modules/ipython/default.nix
index 7a10725f24515..af34d35c647d7 100644
--- a/pkgs/development/python-modules/ipython/default.nix
+++ b/pkgs/development/python-modules/ipython/default.nix
@@ -1,70 +1,71 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-
-# Build dependencies
-, setuptools
-
-# Runtime dependencies
-, decorator
-, exceptiongroup
-, jedi
-, matplotlib-inline
-, pexpect
-, prompt-toolkit
-, pygments
-, stack-data
-, traitlets
-, typing-extensions
-
-# Optional dependencies
-, ipykernel
-, ipyparallel
-, ipywidgets
-, matplotlib
-, nbconvert
-, nbformat
-, notebook
-, qtconsole
-
-# Test dependencies
-, pickleshare
-, pytest-asyncio
-, pytest7CheckHook
-, testpath
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+
+  # Build dependencies
+  setuptools,
+
+  # Runtime dependencies
+  decorator,
+  exceptiongroup,
+  jedi,
+  matplotlib-inline,
+  pexpect,
+  prompt-toolkit,
+  pygments,
+  stack-data,
+  traitlets,
+  typing-extensions,
+
+  # Optional dependencies
+  ipykernel,
+  ipyparallel,
+  ipywidgets,
+  matplotlib,
+  nbconvert,
+  nbformat,
+  notebook,
+  qtconsole,
+
+  # Reverse dependency
+  sage,
+
+  # Test dependencies
+  pickleshare,
+  pytest-asyncio,
+  pytest7CheckHook,
+  testpath,
 }:
 
 buildPythonPackage rec {
   pname = "ipython";
-  version = "8.23.0";
+  version = "8.25.0";
   pyproject = true;
   disabled = pythonOlder "3.10";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dGjtr09t4+G5EuV/ZsJB5v08cJny7CE24jnhQugAJ00=";
+    hash = "sha256-xu1yahQLbnJbkRUo+AQ5xTT6yRUkavPvw5RAprD51xY=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    decorator
-    jedi
-    matplotlib-inline
-    pexpect
-    prompt-toolkit
-    pygments
-    stack-data
-    traitlets
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    exceptiongroup
-  ] ++ lib.optionals (pythonOlder "3.12") [
-    typing-extensions
-  ];
+  dependencies =
+    [
+      decorator
+      jedi
+      matplotlib-inline
+      pexpect
+      prompt-toolkit
+      pygments
+      stack-data
+      traitlets
+    ]
+    ++ lib.optionals (pythonOlder "3.11") [ exceptiongroup ]
+    ++ lib.optionals (pythonOlder "3.12") [ typing-extensions ];
 
   optional-dependencies = {
     kernel = [ ipykernel ];
@@ -79,9 +80,7 @@ buildPythonPackage rec {
     matplotlib = [ matplotlib ];
   };
 
-  pythonImportsCheck = [
-    "IPython"
-  ];
+  pythonImportsCheck = [ "IPython" ];
 
   preCheck = ''
     export HOME=$TMPDIR
@@ -98,13 +97,19 @@ buildPythonPackage rec {
     testpath
   ];
 
-  disabledTests = [
-    # UnboundLocalError: local variable 'child' referenced before assignment
-    "test_system_interrupt"
-  ] ++ lib.optionals (stdenv.isDarwin) [
-    # FileNotFoundError: [Errno 2] No such file or directory: 'pbpaste'
-    "test_clipboard_get"
-  ];
+  disabledTests =
+    [
+      # UnboundLocalError: local variable 'child' referenced before assignment
+      "test_system_interrupt"
+    ]
+    ++ lib.optionals (stdenv.isDarwin) [
+      # FileNotFoundError: [Errno 2] No such file or directory: 'pbpaste'
+      "test_clipboard_get"
+    ];
+
+  passthru.tests = {
+    inherit sage;
+  };
 
   meta = with lib; {
     description = "IPython: Productive Interactive Computing";
diff --git a/pkgs/development/python-modules/ipyvue/default.nix b/pkgs/development/python-modules/ipyvue/default.nix
index 2be0ddfe80755..7ab3a9170b185 100644
--- a/pkgs/development/python-modules/ipyvue/default.nix
+++ b/pkgs/development/python-modules/ipyvue/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, isPy27
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
   # Python Inputs
-, ipywidgets
+  setuptools,
+  ipywidgets,
 }:
 
 buildPythonPackage rec {
   pname = "ipyvue";
-  version = "1.11.0";
-  format = "setuptools";
-
-  disabled = isPy27;
+  version = "1.11.1";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ez2ygBvgU12FX/+qDkARlizq50rEgZYp4UH5Sx4E2QA=";
+    hash = "sha256-AwgE/5GgRK0/oHrjTjlSo9IxmDdnhDSqqZrkiLp0mls=";
   };
 
-  propagatedBuildInputs = [ ipywidgets ];
+  build-system = [ setuptools ];
+
+  dependencies = [ ipywidgets ];
 
-  doCheck = false;  # No tests in package or GitHub
+  doCheck = false; # No tests in package or GitHub
   pythonImportsCheck = [ "ipyvue" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/ipyvuetify/default.nix b/pkgs/development/python-modules/ipyvuetify/default.nix
index cd2a597d6c171..63e3d23c433a4 100644
--- a/pkgs/development/python-modules/ipyvuetify/default.nix
+++ b/pkgs/development/python-modules/ipyvuetify/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
   # Python Inputs
-, jupyter-packaging
-, jupyterlab
-, setuptools
-, wheel
-, ipyvue
+  jupyter-packaging,
+  jupyterlab,
+  setuptools,
+  wheel,
+  ipyvue,
 }:
 
 buildPythonPackage rec {
@@ -42,11 +43,11 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ ipyvue ];
 
-  doCheck = false;  # no tests on PyPi/GitHub
+  doCheck = false; # no tests on PyPi/GitHub
   pythonImportsCheck = [ "ipyvuetify" ];
 
   meta = with lib; {
-    description = "Jupyter widgets based on Vuetify UI Components.";
+    description = "Jupyter widgets based on Vuetify UI Components";
     homepage = "https://github.com/mariobuikhuizen/ipyvuetify";
     license = licenses.mit;
     maintainers = with maintainers; [ drewrisinger ];
diff --git a/pkgs/development/python-modules/ipywidgets/default.nix b/pkgs/development/python-modules/ipywidgets/default.nix
index 69468ec28f2f4..8c985163653b0 100644
--- a/pkgs/development/python-modules/ipywidgets/default.nix
+++ b/pkgs/development/python-modules/ipywidgets/default.nix
@@ -1,27 +1,28 @@
-{ buildPythonPackage
-, fetchPypi
-, setuptools
-, wheel
-, comm
-, ipykernel
-, ipython
-, jsonschema
-, jupyterlab-widgets
-, lib
-, pytest7CheckHook
-, pytz
-, traitlets
-, widgetsnbextension
+{
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  wheel,
+  comm,
+  ipykernel,
+  ipython,
+  jsonschema,
+  jupyterlab-widgets,
+  lib,
+  pytest7CheckHook,
+  pytz,
+  traitlets,
+  widgetsnbextension,
 }:
 
 buildPythonPackage rec {
   pname = "ipywidgets";
-  version = "8.1.2";
+  version = "8.1.3";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0Lm0Hkm66SaoZuYTo5sPAJd0XSufHz3UBmQbSlfsQsk=";
+    hash = "sha256-9fnuquCCsYI86erCV1JylS9A10iJOXKVbcCXAKY5LZw=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/ipyxact/default.nix b/pkgs/development/python-modules/ipyxact/default.nix
index 5cf7bfa9b2e69..803ed5378cb49 100644
--- a/pkgs/development/python-modules/ipyxact/default.nix
+++ b/pkgs/development/python-modules/ipyxact/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, pyyaml
-, six
-, lxml
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  pyyaml,
+  six,
+  lxml,
 }:
 
 buildPythonPackage rec {
@@ -12,7 +13,10 @@ buildPythonPackage rec {
   format = "setuptools";
 
   propagatedBuildInputs = [ pyyaml ];
-  checkInputs = [ six lxml ];
+  checkInputs = [
+    six
+    lxml
+  ];
 
   src = fetchFromGitHub {
     owner = "olofk";
diff --git a/pkgs/development/python-modules/irc/default.nix b/pkgs/development/python-modules/irc/default.nix
index 4e724207a26f4..b73810bf3b8ac 100644
--- a/pkgs/development/python-modules/irc/default.nix
+++ b/pkgs/development/python-modules/irc/default.nix
@@ -1,32 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jaraco-collections
-, jaraco-itertools
-, jaraco-logging
-, jaraco-stream
-, jaraco-text
-, pytestCheckHook
-, pythonOlder
-, pytz
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jaraco-collections,
+  jaraco-itertools,
+  jaraco-logging,
+  jaraco-stream,
+  jaraco-text,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "irc";
-  version = "20.4.0";
+  version = "20.4.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-fSUX9VZta/Oqhdf5jHdYth8NY+6RW/2fb1ZxOXNmRPk=";
+    hash = "sha256-J1aYebrlzYmRwhfNy0ZRkNe08YpqJnSeSNBT/QtaUsw=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     jaraco-collections
@@ -37,13 +36,9 @@ buildPythonPackage rec {
     pytz
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "irc"
-  ];
+  pythonImportsCheck = [ "irc" ];
 
   meta = with lib; {
     description = "IRC (Internet Relay Chat) protocol library for Python";
diff --git a/pkgs/development/python-modules/ircrobots/default.nix b/pkgs/development/python-modules/ircrobots/default.nix
index 76fe922fa0c6c..370040f2b6feb 100644
--- a/pkgs/development/python-modules/ircrobots/default.nix
+++ b/pkgs/development/python-modules/ircrobots/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, anyio
-, asyncio-rlock
-, asyncio-throttle
-, ircstates
-, async-stagger
-, async-timeout
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  anyio,
+  asyncio-rlock,
+  asyncio-throttle,
+  ircstates,
+  async-stagger,
+  async-timeout,
+  python,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/ircstates/default.nix b/pkgs/development/python-modules/ircstates/default.nix
index d6d72166c80f5..ab28fb911aa3a 100644
--- a/pkgs/development/python-modules/ircstates/default.nix
+++ b/pkgs/development/python-modules/ircstates/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, irctokens
-, pendulum
-, freezegun
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  irctokens,
+  pendulum,
+  freezegun,
+  python,
 }:
 
 buildPythonPackage rec {
   pname = "ircstates";
   version = "0.12.1";
   format = "setuptools";
-  disabled = pythonOlder "3.6";  # f-strings
+  disabled = pythonOlder "3.6"; # f-strings
 
   src = fetchFromGitHub {
     owner = "jesopo";
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     pendulum
   ];
 
-  nativeCheckInputs = [
-    freezegun
-  ];
+  nativeCheckInputs = [ freezegun ];
 
   checkPhase = ''
     ${python.interpreter} -m unittest test
diff --git a/pkgs/development/python-modules/irctokens/default.nix b/pkgs/development/python-modules/irctokens/default.nix
index 68b8bb1535e8a..5ad937806155a 100644
--- a/pkgs/development/python-modules/irctokens/default.nix
+++ b/pkgs/development/python-modules/irctokens/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pyyaml
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pyyaml,
+  python,
 }:
 
 buildPythonPackage rec {
   pname = "irctokens";
   version = "2.0.2";
   format = "setuptools";
-  disabled = pythonOlder "3.6";  # f-strings
+  disabled = pythonOlder "3.6"; # f-strings
 
   src = fetchFromGitHub {
     owner = "jesopo";
diff --git a/pkgs/development/python-modules/isal/default.nix b/pkgs/development/python-modules/isal/default.nix
new file mode 100644
index 0000000000000..795eacab36b0a
--- /dev/null
+++ b/pkgs/development/python-modules/isal/default.nix
@@ -0,0 +1,60 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+
+  # native dependencies
+  isa-l,
+
+  # tests
+  pytest-timeout,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "isal";
+  version = "1.6.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "pycompression";
+    repo = "python-isal";
+    rev = "v${version}";
+    hash = "sha256-EhdKT2ftyU2zevFg9Yi3q2FVx0FmKwJMzszsK1NS3Qg=";
+  };
+
+  build-system = [ setuptools ];
+
+  buildInputs = [ isa-l ];
+
+  env.PYTHON_ISAL_LINK_DYNAMIC = true;
+
+  nativeCheckInputs = [
+    pytest-timeout
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [ "tests" ];
+
+  disabledTests = [
+    # calls `python -m isal` and fails on import
+    "test_compress_fast_best_are_exclusive"
+    "test_compress_infile_outfile"
+    "test_compress_infile_outfile_default"
+    "test_decompress_cannot_have_flags_compression"
+    "test_decompress_infile_outfile_error"
+  ];
+
+  pythonImportsCheck = [ "isal" ];
+
+  meta = with lib; {
+    changelog = "https://github.com/pycompression/python-isal/blob/${src.rev}/CHANGELOG.rst";
+    description = "Faster zlib and gzip compatible compression and decompression by providing python bindings for the isa-l library";
+    homepage = "https://github.com/pycompression/python-isal";
+    license = licenses.psfl;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/isbnlib/default.nix b/pkgs/development/python-modules/isbnlib/default.nix
index a1af373ad58ed..520b7f615978b 100644
--- a/pkgs/development/python-modules/isbnlib/default.nix
+++ b/pkgs/development/python-modules/isbnlib/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-, coverage
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+  coverage,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/islpy/default.nix b/pkgs/development/python-modules/islpy/default.nix
index ca84beae2eeff..d111e6b523d27 100644
--- a/pkgs/development/python-modules/islpy/default.nix
+++ b/pkgs/development/python-modules/islpy/default.nix
@@ -1,41 +1,71 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isl
-, pybind11
-, pytestCheckHook
-, pythonOlder
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  setuptools,
+  cmake,
+  nanobind,
+  ninja,
+  pcpp,
+  scikit-build,
+  isl,
+
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "islpy";
-  version = "2023.2.5";
-  format = "setuptools";
+  version = "2024.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-3XQ5i682k4q7fCqdmCjMGi5UnGyASFzsiwaymr+q0Y8=";
+  src = fetchFromGitHub {
+    owner = "inducer";
+    repo = "islpy";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-N5XI6V3BvNobCh7NAvtzVejtDMnlcb31S5gseyab1T0=";
   };
 
-  postConfigure = ''
-    substituteInPlace setup.py \
-      --replace "\"pytest>=2\"," ""
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+        --replace-fail "setuptools>=42,<64;python_version<'3.12'" "setuptools>=42"
   '';
 
-  buildInputs = [ isl pybind11 ];
-  propagatedBuildInputs = [ six ];
+  build-system = [
+    setuptools
+    cmake
+    nanobind
+    ninja
+    pcpp
+    scikit-build
+  ];
+
+  buildInputs = [ isl ];
+
+  dontUseCmakeConfigure = true;
+
+  preConfigure = ''
+    python ./configure.py \
+        --no-use-shipped-isl \
+        --isl-inc-dir=${lib.getDev isl}/include \
+  '';
+
+  # Force resolving the package from $out to make generated ext files usable by tests
+  preCheck = ''
+    mv islpy islpy.hidden
+  '';
 
-  preCheck = "mv islpy islpy.hidden";
   nativeCheckInputs = [ pytestCheckHook ];
+
   pythonImportsCheck = [ "islpy" ];
 
-  meta = with lib; {
+  meta = {
     description = "Python wrapper around isl, an integer set library";
     homepage = "https://github.com/inducer/islpy";
-    license = licenses.mit;
-    maintainers = [ ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ tomasajt ];
   };
 }
diff --git a/pkgs/development/python-modules/ismartgate/default.nix b/pkgs/development/python-modules/ismartgate/default.nix
index 1a61b002aa3ae..6764e3c6c3eed 100644
--- a/pkgs/development/python-modules/ismartgate/default.nix
+++ b/pkgs/development/python-modules/ismartgate/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, click
-, defusedxml
-, dicttoxml
-, fetchFromGitHub
-, httpx
-, pycryptodome
-, pytest-asyncio
-, pytest-raises
-, pytestCheckHook
-, pythonOlder
-, respx
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  click,
+  defusedxml,
+  dicttoxml,
+  fetchFromGitHub,
+  httpx,
+  pycryptodome,
+  pytest-asyncio,
+  pytest-raises,
+  pytestCheckHook,
+  pythonOlder,
+  respx,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -49,9 +50,7 @@ buildPythonPackage rec {
     respx
   ];
 
-  pythonImportsCheck = [
-    "ismartgate"
-  ];
+  pythonImportsCheck = [ "ismartgate" ];
 
   meta = with lib; {
     description = "Python module to work with the ismartgate and gogogate2 API";
diff --git a/pkgs/development/python-modules/iso-639/default.nix b/pkgs/development/python-modules/iso-639/default.nix
index 22d66ef9f14f0..a971722a4194f 100644
--- a/pkgs/development/python-modules/iso-639/default.nix
+++ b/pkgs/development/python-modules/iso-639/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchPypi, buildPythonPackage, setuptools }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "iso-639";
diff --git a/pkgs/development/python-modules/iso3166/default.nix b/pkgs/development/python-modules/iso3166/default.nix
index d166ea496fca8..bec420de051f6 100644
--- a/pkgs/development/python-modules/iso3166/default.nix
+++ b/pkgs/development/python-modules/iso3166/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-/y7c2qSA6+WKUP9YTSaMBjBxtqAuF4nB3MKvL5P6vL0=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "iso3166"
-  ];
+  pythonImportsCheck = [ "iso3166" ];
 
   meta = with lib; {
     description = "Self-contained ISO 3166-1 country definitions";
diff --git a/pkgs/development/python-modules/iso4217/default.nix b/pkgs/development/python-modules/iso4217/default.nix
index 50268536bda57..718585c683c38 100644
--- a/pkgs/development/python-modules/iso4217/default.nix
+++ b/pkgs/development/python-modules/iso4217/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchurl
-, importlib-resources
-, pytestCheckHook
-, python
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchurl,
+  importlib-resources,
+  pytestCheckHook,
+  python,
+  pythonOlder,
 }:
 let
   table = fetchurl {
@@ -28,13 +29,9 @@ buildPythonPackage rec {
     hash = "sha256-zJYtEIrsuHKPwnSoRjyZC/0rgAZoNMZ0Oh8gQcIb20Q=";
   };
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [
-    importlib-resources
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.9") [ importlib-resources ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preBuild = ''
     # The table is already downloaded
@@ -48,13 +45,9 @@ buildPythonPackage rec {
     cp -r ${table} $out/${python.sitePackages}/$pname/table.xml
   '';
 
-  pytestFlagsArray = [
-    "$pname/test.py"
-  ];
+  pytestFlagsArray = [ "$pname/test.py" ];
 
-  pythonImportsCheck = [
-    "iso4217"
-  ];
+  pythonImportsCheck = [ "iso4217" ];
 
   meta = with lib; {
     description = "ISO 4217 currency data package for Python";
diff --git a/pkgs/development/python-modules/iso8601/default.nix b/pkgs/development/python-modules/iso8601/default.nix
index a4982c27f852b..ab2eb3045dc35 100644
--- a/pkgs/development/python-modules/iso8601/default.nix
+++ b/pkgs/development/python-modules/iso8601/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hypothesis
-, poetry-core
-, pytestCheckHook
-, pytz
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hypothesis,
+  poetry-core,
+  pytestCheckHook,
+  pytz,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-ax04Ke6JIcQwGZjJCfeCn6ntPL2sDTsWry10Ou0bqN8=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     hypothesis
@@ -30,13 +29,9 @@ buildPythonPackage rec {
     pytz
   ];
 
-  pytestFlagsArray = [
-    "iso8601"
-  ];
+  pytestFlagsArray = [ "iso8601" ];
 
-  pythonImportsCheck = [
-    "iso8601"
-  ];
+  pythonImportsCheck = [ "iso8601" ];
 
   meta = with lib; {
     description = "Simple module to parse ISO 8601 dates";
diff --git a/pkgs/development/python-modules/isodate/default.nix b/pkgs/development/python-modules/isodate/default.nix
index 0697f17c01f03..e48cdcc0e8611 100644
--- a/pkgs/development/python-modules/isodate/default.nix
+++ b/pkgs/development/python-modules/isodate/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, unittestCheckHook
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  unittestCheckHook,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -19,12 +20,14 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [ "-s" "src/isodate/tests" ];
+  unittestFlagsArray = [
+    "-s"
+    "src/isodate/tests"
+  ];
 
   meta = with lib; {
     description = "ISO 8601 date/time parser";
     homepage = "http://cheeseshop.python.org/pypi/isodate";
     license = licenses.bsd0;
   };
-
 }
diff --git a/pkgs/development/python-modules/isoduration/default.nix b/pkgs/development/python-modules/isoduration/default.nix
index e37e44361a100..613f21105d9bc 100644
--- a/pkgs/development/python-modules/isoduration/default.nix
+++ b/pkgs/development/python-modules/isoduration/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, arrow
-, buildPythonPackage
-, fetchFromGitHub
-, hypothesis
-, isodate
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  arrow,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hypothesis,
+  isodate,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-6LqsH+3V/K0s2YD1gvmelo+cCH+yCAmmyTYGhUegVdk=";
   };
 
-  propagatedBuildInputs = [
-    arrow
-  ];
+  propagatedBuildInputs = [ arrow ];
 
   nativeCheckInputs = [
     hypothesis
@@ -37,9 +36,7 @@ buildPythonPackage rec {
     "tests/test_benchmark.py"
   ];
 
-  pythonImportsCheck = [
-    "isoduration"
-  ];
+  pythonImportsCheck = [ "isoduration" ];
 
   meta = with lib; {
     description = "Library for operations with ISO 8601 durations";
diff --git a/pkgs/development/python-modules/isort/default.nix b/pkgs/development/python-modules/isort/default.nix
index 100155f83a2ee..32ff65a391448 100644
--- a/pkgs/development/python-modules/isort/default.nix
+++ b/pkgs/development/python-modules/isort/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, colorama
-, hypothesis
-, poetry-core
-, setuptools
-, pylama
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  colorama,
+  hypothesis,
+  poetry-core,
+  setuptools,
+  pylama,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -77,7 +78,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python utility / library to sort Python imports";
+    description = "Python utility / library to sort Python imports";
     homepage = "https://github.com/PyCQA/isort";
     license = licenses.mit;
     maintainers = with maintainers; [ couchemar ];
diff --git a/pkgs/development/python-modules/isosurfaces/default.nix b/pkgs/development/python-modules/isosurfaces/default.nix
index c1caa00b980de..7356db3a27449 100644
--- a/pkgs/development/python-modules/isosurfaces/default.nix
+++ b/pkgs/development/python-modules/isosurfaces/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -32,6 +33,6 @@ buildPythonPackage rec {
       many far from the implicit surface.
     '';
     license = licenses.mit;
-    maintainers = with maintainers; [ friedelino ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/isounidecode/default.nix b/pkgs/development/python-modules/isounidecode/default.nix
index 70736a54a1fe6..9ac5d454b2fc5 100644
--- a/pkgs/development/python-modules/isounidecode/default.nix
+++ b/pkgs/development/python-modules/isounidecode/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "isounidecode";
diff --git a/pkgs/development/python-modules/isoweek/default.nix b/pkgs/development/python-modules/isoweek/default.nix
index e16d27c47bcff..70c38d7904309 100644
--- a/pkgs/development/python-modules/isoweek/default.nix
+++ b/pkgs/development/python-modules/isoweek/default.nix
@@ -1,20 +1,35 @@
-{ lib, fetchPypi, buildPythonPackage }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  setuptools,
+  unittestCheckHook,
+  pythonOlder,
+}:
 
 buildPythonPackage rec {
   pname = "isoweek";
   version = "1.3.3";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1s7zsf0pab0l9gn6456qadnz5i5h90hafcjwnhx5mq23qjxggwvk";
+    hash = "sha256-c/P3usRD4Fo6tFwypyBIsMTybVPYFGLsSxQsdYHT/+g=";
   };
 
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [ unittestCheckHook ];
+
+  pythonImportsCheck = [ "isoweek" ];
+
   meta = with lib; {
-    description = "The module provide the class Week. Instances represent specific weeks spanning Monday to Sunday.";
+    description = "Module work with ISO weeks";
     homepage = "https://github.com/gisle/isoweek";
+    changelog = "https://github.com/gisle/isoweek/releases/tag/v${version}";
     license = licenses.bsd2;
     maintainers = with maintainers; [ mrmebelman ];
   };
 }
-
diff --git a/pkgs/development/python-modules/itanium-demangler/default.nix b/pkgs/development/python-modules/itanium-demangler/default.nix
index 67b71c9bf217d..37073b5a0bb5d 100644
--- a/pkgs/development/python-modules/itanium-demangler/default.nix
+++ b/pkgs/development/python-modules/itanium-demangler/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,22 +20,19 @@ buildPythonPackage rec {
     hash = "sha256-I6NUfckt2cocQt5dZSFadpshTCuA/6bVNauNXypWh+A=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests/test.py"
-  ];
+  pytestFlagsArray = [ "tests/test.py" ];
 
-  pythonImportsCheck = [
-    "itanium_demangler"
-  ];
+  pythonImportsCheck = [ "itanium_demangler" ];
 
   meta = with lib; {
     description = "Python parser for the Itanium C++ ABI symbol mangling language";
     homepage = "https://github.com/whitequark/python-itanium_demangler";
     license = licenses.bsd0;
-    maintainers = with maintainers; [ fab pamplemousse ];
+    maintainers = with maintainers; [
+      fab
+      pamplemousse
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/item-synchronizer/default.nix b/pkgs/development/python-modules/item-synchronizer/default.nix
index 2f568499eb086..5e8ecf2029956 100644
--- a/pkgs/development/python-modules/item-synchronizer/default.nix
+++ b/pkgs/development/python-modules/item-synchronizer/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, bidict
-, bubop
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  bidict,
+  bubop,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     substituteInPlace pyproject.toml --replace-fail 'bidict = "^0.21.4"' 'bidict = "^0.23"'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bidict
diff --git a/pkgs/development/python-modules/itemadapter/default.nix b/pkgs/development/python-modules/itemadapter/default.nix
index 0a93eda903d60..ac9250637a3ae 100644
--- a/pkgs/development/python-modules/itemadapter/default.nix
+++ b/pkgs/development/python-modules/itemadapter/default.nix
@@ -1,27 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "itemadapter";
-  version = "0.8.0";
+  version = "0.9.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-d3WEhfsKwQcw1LExNj431ly42yRQv+x6V8PzJx9KSKk=";
+    hash = "sha256-5PlYpra29YMfogc3MBADGgvX7QQp3dCbUZecARR1yv0=";
   };
 
   # Infinite recursion with Scrapy
   doCheck = false;
 
-  pythonImportsCheck = [
-    "itemadapter"
-  ];
+  pythonImportsCheck = [ "itemadapter" ];
 
   meta = with lib; {
     description = "Common interface for data container classes";
diff --git a/pkgs/development/python-modules/itemdb/default.nix b/pkgs/development/python-modules/itemdb/default.nix
index 6ac5deae5eaa1..8af1e84a972b5 100644
--- a/pkgs/development/python-modules/itemdb/default.nix
+++ b/pkgs/development/python-modules/itemdb/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
@@ -23,5 +24,3 @@ buildPythonPackage rec {
     maintainers = [ maintainers.matthiasbeyer ];
   };
 }
-
-
diff --git a/pkgs/development/python-modules/itemloaders/default.nix b/pkgs/development/python-modules/itemloaders/default.nix
index 554882957f2ee..ac904ef15253e 100644
--- a/pkgs/development/python-modules/itemloaders/default.nix
+++ b/pkgs/development/python-modules/itemloaders/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, w3lib
-, parsel
-, jmespath
-, itemadapter
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  w3lib,
+  parsel,
+  jmespath,
+  itemadapter,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "itemloaders";
-  version = "1.2.0";
+  version = "1.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,12 +22,10 @@ buildPythonPackage rec {
     owner = "scrapy";
     repo = "itemloaders";
     rev = "refs/tags/v${version}";
-    hash = "sha256-DatHJnAIomVoN/GrDzM2fNnFHcXqo6zs3ucKCOCf9DU=";
+    hash = "sha256-u0/WsvLn2YlYd/FuH26T9qEGRGscipnOQbV9uPv4F+M=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     w3lib
@@ -35,13 +34,9 @@ buildPythonPackage rec {
     itemadapter
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "itemloaders"
-  ];
+  pythonImportsCheck = [ "itemloaders" ];
 
   meta = with lib; {
     description = "Library to populate items using XPath and CSS with a convenient API";
diff --git a/pkgs/development/python-modules/iterable-io/default.nix b/pkgs/development/python-modules/iterable-io/default.nix
new file mode 100644
index 0000000000000..81799c7aec4fa
--- /dev/null
+++ b/pkgs/development/python-modules/iterable-io/default.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "iterable-io";
+  version = "1.0.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "pR0Ps";
+    repo = "iterable-io";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-+PSINKS7/FeGHYvkOASA5m+1pBpKfURfylZ8CwKijgA=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  pythonImportsCheck = [ "iterableio" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  meta = {
+    description = "Library to adapt iterables to a file-like interface";
+    homepage = "https://github.com/pR0Ps/iterable-io";
+    changelog = "https://github.com/pR0Ps/iterable-io/blob/v${version}/CHANGELOG.md";
+    license = lib.licenses.lgpl3Only;
+    maintainers = [ lib.maintainers.mjoerg ];
+  };
+}
diff --git a/pkgs/development/python-modules/iteration-utilities/default.nix b/pkgs/development/python-modules/iteration-utilities/default.nix
index 59399e39aca4a..bdd094983eccb 100644
--- a/pkgs/development/python-modules/iteration-utilities/default.nix
+++ b/pkgs/development/python-modules/iteration-utilities/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-BiBbmZHo5B/u//LItqEcKtGXOA6xK+T1zoitR9XIiSU=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "iteration_utilities"
-  ];
+  pythonImportsCheck = [ "iteration_utilities" ];
 
   meta = with lib; {
     description = "Utilities based on Pythons iterators and generators";
diff --git a/pkgs/development/python-modules/iterative-telemetry/default.nix b/pkgs/development/python-modules/iterative-telemetry/default.nix
index ed5066dcc5fad..bc7ad3796450f 100644
--- a/pkgs/development/python-modules/iterative-telemetry/default.nix
+++ b/pkgs/development/python-modules/iterative-telemetry/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, appdirs
-, buildPythonPackage
-, distro
-, fetchFromGitHub
-, filelock
-, pytestCheckHook
-, pytest-mock
-, pythonOlder
-, requests
-, setuptools-scm
+{
+  lib,
+  appdirs,
+  buildPythonPackage,
+  distro,
+  fetchFromGitHub,
+  filelock,
+  pytestCheckHook,
+  pytest-mock,
+  pythonOlder,
+  requests,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-jD1AyQTdz/NfTRpvEuTE/gUfgNIhNlnimuCks5ImhwA=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     requests
@@ -41,9 +40,7 @@ buildPythonPackage rec {
     pytest-mock
   ];
 
-  pythonImportsCheck = [
-    "iterative_telemetry"
-  ];
+  pythonImportsCheck = [ "iterative_telemetry" ];
 
   meta = with lib; {
     description = "Common library to send usage telemetry";
diff --git a/pkgs/development/python-modules/iterfzf/default.nix b/pkgs/development/python-modules/iterfzf/default.nix
new file mode 100644
index 0000000000000..099fad45d53e3
--- /dev/null
+++ b/pkgs/development/python-modules/iterfzf/default.nix
@@ -0,0 +1,62 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  fzf,
+  packaging,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "iterfzf";
+  version = "1.4.0.51.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "dahlia";
+    repo = "iterfzf";
+    rev = "refs/tags/${version}";
+    hash = "sha256-Xjk+r2PdIg+oULA5gfI129p1fNOO8RINNxP+pveiocM=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail 'dynamic = ["version"]' 'version = "${version}"' \
+      --replace-fail 'backend-path = ["."]' '# backend-path = ["."]' \
+      --replace-fail 'build-backend = "build_dist"' '# build-backend = "build_dist"'
+
+    substituteInPlace iterfzf/test_iterfzf.py \
+      --replace-fail 'executable="fzf"' 'executable="${fzf}/bin/fzf"'
+  '';
+
+  build-system = [
+    flit-core
+    setuptools
+    packaging
+  ];
+
+  dependencies = [ fzf ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  disabledTests = [
+    # AttributeError
+    "test_no_query"
+    "test_select_one_ambiguous"
+  ];
+
+  pythonImportsCheck = [ "iterfzf" ];
+
+  meta = with lib; {
+    description = "Pythonic interface to fzf, a CLI fuzzy finder";
+    homepage = "https://github.com/dahlia/iterfzf";
+    changelog = "https://github.com/dahlia/iterfzf/releases/tag/${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/iterm2/default.nix b/pkgs/development/python-modules/iterm2/default.nix
index 6d12086851c6c..61e835890c325 100644
--- a/pkgs/development/python-modules/iterm2/default.nix
+++ b/pkgs/development/python-modules/iterm2/default.nix
@@ -1,6 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi
-, protobuf
-, websockets
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  protobuf,
+  websockets,
 }:
 
 buildPythonPackage rec {
@@ -13,7 +16,10 @@ buildPythonPackage rec {
     hash = "sha256-9vC+xGwyzsr3vn/YIpbsRpfUvyEB8MSqskzBI5kfojA=";
   };
 
-  propagatedBuildInputs = [ protobuf websockets ];
+  propagatedBuildInputs = [
+    protobuf
+    websockets
+  ];
 
   # The tests require pyobjc. We can't use pyobjc because at
   # time of writing the pyobjc derivation is disabled on python 3.
diff --git a/pkgs/development/python-modules/itsdangerous/default.nix b/pkgs/development/python-modules/itsdangerous/default.nix
index edd1b149905ff..29d9ea285a550 100644
--- a/pkgs/development/python-modules/itsdangerous/default.nix
+++ b/pkgs/development/python-modules/itsdangerous/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, flit-core
-, freezegun
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  flit-core,
+  freezegun,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -32,5 +33,4 @@ buildPythonPackage rec {
     homepage = "https://itsdangerous.palletsprojects.com";
     license = licenses.bsd3;
   };
-
 }
diff --git a/pkgs/development/python-modules/itunespy/default.nix b/pkgs/development/python-modules/itunespy/default.nix
index cd1f174c24b8a..705c7e9b56b89 100644
--- a/pkgs/development/python-modules/itunespy/default.nix
+++ b/pkgs/development/python-modules/itunespy/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, requests, pycountry }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  pycountry,
+}:
 
 buildPythonPackage rec {
   pname = "itunespy";
@@ -12,7 +18,10 @@ buildPythonPackage rec {
     sha256 = "0yc3az5531qs8nbcw4rhgrszwczgy4bikfwfar7xb2044360sslw";
   };
 
-  propagatedBuildInputs = [ requests pycountry ];
+  propagatedBuildInputs = [
+    requests
+    pycountry
+  ];
 
   # This module has no tests
   doCheck = false;
@@ -20,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "itunespy" ];
 
   meta = with lib; {
-    description = "A simple library to fetch data from the iTunes Store API";
+    description = "Simple library to fetch data from the iTunes Store API";
     homepage = "https://github.com/sleepyfran/itunespy";
     license = licenses.mit;
     maintainers = with maintainers; [ j0hax ];
diff --git a/pkgs/development/python-modules/iwlib/default.nix b/pkgs/development/python-modules/iwlib/default.nix
index 0a881ef1f370c..01f83b80a0038 100644
--- a/pkgs/development/python-modules/iwlib/default.nix
+++ b/pkgs/development/python-modules/iwlib/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, wirelesstools, cffi, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  wirelesstools,
+  cffi,
+  pytest,
+}:
 buildPythonPackage rec {
   pname = "iwlib";
   version = "1.7.0";
@@ -9,7 +16,10 @@ buildPythonPackage rec {
     sha256 = "a805f6597a70ee3001aba8f039fb7b2dcb75dc15c4e7852f5594fd6379196da1";
   };
 
-  propagatedBuildInputs = [ wirelesstools cffi ];
+  propagatedBuildInputs = [
+    wirelesstools
+    cffi
+  ];
   nativeBuildInputs = [ pytest ];
   pythonImportsCheck = [ "iwlib" ];
 
diff --git a/pkgs/development/python-modules/ixia/default.nix b/pkgs/development/python-modules/ixia/default.nix
new file mode 100644
index 0000000000000..ae07ed052eed0
--- /dev/null
+++ b/pkgs/development/python-modules/ixia/default.nix
@@ -0,0 +1,30 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+}:
+
+buildPythonPackage rec {
+  pname = "ixia";
+  version = "1.3.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "trag1c";
+    repo = "ixia";
+    rev = "refs/tags/${version}";
+    hash = "sha256-lsov5AIT5uRf9nmS8ZsFmInKUFAxUATTbpfhV1fabhA=";
+  };
+
+  build-system = [ poetry-core ];
+  pythonImportsCheck = [ "ixia" ];
+
+  meta = with lib; {
+    changelog = "https://github.com/trag1c/ixia/blob/${src.rev}/CHANGELOG.md";
+    description = "Connecting secrets' security with random's versatility";
+    license = licenses.mit;
+    homepage = "https://trag1c.github.io/ixia";
+    maintainers = with maintainers; [ sigmanificient ];
+  };
+}
diff --git a/pkgs/development/python-modules/j2cli/default.nix b/pkgs/development/python-modules/j2cli/default.nix
index b779010bc5793..ad361c560a719 100644
--- a/pkgs/development/python-modules/j2cli/default.nix
+++ b/pkgs/development/python-modules/j2cli/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jinja2
-, pyyaml
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jinja2,
+  pyyaml,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,11 @@ buildPythonPackage rec {
   };
 
   doCheck = false; # tests aren't installed thus aren't found, so skip
-  propagatedBuildInputs = [ jinja2 pyyaml setuptools ];
+  propagatedBuildInputs = [
+    jinja2
+    pyyaml
+    setuptools
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/kolypto/j2cli";
@@ -28,7 +33,9 @@ buildPythonPackage rec {
       J2Cli is a command-line tool for templating in shell-scripts,
       leveraging the Jinja2 library.
     '';
-    maintainers = with maintainers; [ rushmorem SuperSandro2000 ];
+    maintainers = with maintainers; [
+      rushmorem
+      SuperSandro2000
+    ];
   };
-
 }
diff --git a/pkgs/development/python-modules/jaconv/default.nix b/pkgs/development/python-modules/jaconv/default.nix
index a7800b783a884..474b168c6042b 100644
--- a/pkgs/development/python-modules/jaconv/default.nix
+++ b/pkgs/development/python-modules/jaconv/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nose
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nose,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "jaconv"
-  ];
+  pythonImportsCheck = [ "jaconv" ];
 
   meta = with lib; {
     description = "Python Japanese character interconverter for Hiragana, Katakana, Hankaku and Zenkaku";
diff --git a/pkgs/development/python-modules/jaeger-client/default.nix b/pkgs/development/python-modules/jaeger-client/default.nix
index c7130c8afc9dc..61755ada57e0f 100644
--- a/pkgs/development/python-modules/jaeger-client/default.nix
+++ b/pkgs/development/python-modules/jaeger-client/default.nix
@@ -1,10 +1,11 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-, opentracing
-, threadloop
-, thrift
-, tornado
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  opentracing,
+  threadloop,
+  thrift,
+  tornado,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/jamo/default.nix b/pkgs/development/python-modules/jamo/default.nix
index 058df62cb0419..cccd9fe6c3463 100644
--- a/pkgs/development/python-modules/jamo/default.nix
+++ b/pkgs/development/python-modules/jamo/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,9 @@ buildPythonPackage rec {
     hash = "sha256-QHI3Rqf1aQOsW49A/qnIwRnPuerbtyerf+eWIiEvyho=";
   };
 
-  pythonImportsCheck = [
-    "jamo"
-  ];
+  pythonImportsCheck = [ "jamo" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     changelog = "https://github.com/JDongian/python-jamo/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/janus/default.nix b/pkgs/development/python-modules/janus/default.nix
index 15b75bc2aa3b2..62041277358a2 100644
--- a/pkgs/development/python-modules/janus/default.nix
+++ b/pkgs/development/python-modules/janus/default.nix
@@ -1,5 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, pytestCheckHook, pythonOlder, pytest-asyncio
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  pytest-asyncio,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -14,11 +20,12 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.6";
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ typing-extensions ];
 
-  nativeCheckInputs = [ pytest-asyncio pytestCheckHook ];
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
 
   # also fails upstream: https://github.com/aio-libs/janus/pull/258
   disabledTests = [ "test_format" ];
diff --git a/pkgs/development/python-modules/jaraco-abode/default.nix b/pkgs/development/python-modules/jaraco-abode/default.nix
index d113028361fe2..a6e843f7d4a2c 100644
--- a/pkgs/development/python-modules/jaraco-abode/default.nix
+++ b/pkgs/development/python-modules/jaraco-abode/default.nix
@@ -1,30 +1,31 @@
-{ lib
-, buildPythonPackage
-, bx-py-utils
-, colorlog
-, fetchFromGitHub
-, importlib-resources
-, jaraco-classes
-, jaraco-collections
-, jaraco-itertools
-, jaraco-context
-, jaraco-net
-, keyring
-, lomond
-, more-itertools
-, platformdirs
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
-, requests-toolbelt
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  bx-py-utils,
+  colorlog,
+  fetchFromGitHub,
+  importlib-resources,
+  jaraco-classes,
+  jaraco-collections,
+  jaraco-itertools,
+  jaraco-context,
+  jaraco-net,
+  keyring,
+  lomond,
+  more-itertools,
+  platformdirs,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
+  requests-toolbelt,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "jaraco-abode";
-  version = "5.1.1";
+  version = "5.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -33,7 +34,7 @@ buildPythonPackage rec {
     owner = "jaraco";
     repo = "jaraco.abode";
     rev = "refs/tags/v${version}";
-    hash = "sha256-TUxljF1k/fvQoNcHx6jMRJrYgzxjXefvMl+mBD0DL8o=";
+    hash = "sha256-O7adVcczkEZ3B7qhZlIWp5A7ujHlEjLQG6OfR59eSO4=";
   };
 
   nativeBuildInputs = [
@@ -63,9 +64,7 @@ buildPythonPackage rec {
     requests-mock
   ];
 
-  pythonImportsCheck = [
-    "jaraco.abode"
-  ];
+  pythonImportsCheck = [ "jaraco.abode" ];
 
   preCheck = ''
     export HOME=$TEMP
@@ -86,6 +85,9 @@ buildPythonPackage rec {
     description = "Library interfacing to the Abode home security system";
     mainProgram = "abode";
     license = licenses.mit;
-    maintainers = with maintainers; [ jamiemagee dotlambda ];
+    maintainers = with maintainers; [
+      jamiemagee
+      dotlambda
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/jaraco-classes/default.nix b/pkgs/development/python-modules/jaraco-classes/default.nix
index 8408e80217b2d..e80c2add69f26 100644
--- a/pkgs/development/python-modules/jaraco-classes/default.nix
+++ b/pkgs/development/python-modules/jaraco-classes/default.nix
@@ -1,12 +1,16 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy27
-, setuptools-scm
-, more-itertools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy27,
+  setuptools-scm,
+  more-itertools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "jaraco-classes";
-  version = "3.3.1";
+  version = "3.4.0";
   format = "pyproject";
 
   disabled = isPy27;
@@ -15,7 +19,7 @@ buildPythonPackage rec {
     owner = "jaraco";
     repo = "jaraco.classes";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-ds84jNEx/2/BnMTbLMvXf/nxKSqyCBM7B7S0NNYagVE=";
+    sha256 = "sha256-pXDsLKiEru+UXcEBT4/cP1u8s9vSn1Zhf7Qnwy9Zr0I=";
   };
 
   pythonNamespaces = [ "jaraco" ];
diff --git a/pkgs/development/python-modules/jaraco-collections/default.nix b/pkgs/development/python-modules/jaraco-collections/default.nix
index ecef3939c9c5c..9992250b4cc9f 100644
--- a/pkgs/development/python-modules/jaraco-collections/default.nix
+++ b/pkgs/development/python-modules/jaraco-collections/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, setuptools-scm
-, jaraco-classes
-, jaraco-text
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  jaraco-classes,
+  jaraco-text,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/jaraco-context/default.nix b/pkgs/development/python-modules/jaraco-context/default.nix
index 637e23b2cdd86..c0ea092b0fc1d 100644
--- a/pkgs/development/python-modules/jaraco-context/default.nix
+++ b/pkgs/development/python-modules/jaraco-context/default.nix
@@ -1,13 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools-scm,
+  backports-tarfile,
 }:
 
 buildPythonPackage rec {
   pname = "jaraco-context";
-  version = "4.3.0";
+  version = "5.3.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -16,23 +18,19 @@ buildPythonPackage rec {
     owner = "jaraco";
     repo = "jaraco.context";
     rev = "refs/tags/v${version}";
-    hash = "sha256-YdbkpKv7k62uyhmjKoxeA9uf5BWnRD/rK+z46FJN4xk=";
+    hash = "sha256-Caj51qBLHbuiey023iLc+N2M8QiJKH8G/Pzu1v3AToU=";
   };
 
-  pythonNamespaces = [
-    "jaraco"
-  ];
+  pythonNamespaces = [ "jaraco" ];
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
+
+  dependencies = lib.optionals (pythonOlder "3.12") [ backports-tarfile ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "jaraco.context"
-  ];
+  pythonImportsCheck = [ "jaraco.context" ];
 
   meta = with lib; {
     description = "Python module for context management";
diff --git a/pkgs/development/python-modules/jaraco-email/default.nix b/pkgs/development/python-modules/jaraco-email/default.nix
index b6ff349a533b7..ef5e99a93fd13 100644
--- a/pkgs/development/python-modules/jaraco-email/default.nix
+++ b/pkgs/development/python-modules/jaraco-email/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, aiosmtpd
-, jaraco-text
-, jaraco-collections
-, keyring
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  aiosmtpd,
+  jaraco-text,
+  jaraco-collections,
+  keyring,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -40,9 +41,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "jaraco.email" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
     changelog = "https://github.com/jaraco/jaraco.email/blob/${src.rev}/CHANGES.rst";
diff --git a/pkgs/development/python-modules/jaraco-functools/default.nix b/pkgs/development/python-modules/jaraco-functools/default.nix
index d3b899281887d..722d707a18aea 100644
--- a/pkgs/development/python-modules/jaraco-functools/default.nix
+++ b/pkgs/development/python-modules/jaraco-functools/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, more-itertools
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  more-itertools,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    more-itertools
-  ];
+  propagatedBuildInputs = [ more-itertools ];
 
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/jaraco-itertools/default.nix b/pkgs/development/python-modules/jaraco-itertools/default.nix
index 23722cc20c4b9..07c1cd3385186 100644
--- a/pkgs/development/python-modules/jaraco-itertools/default.nix
+++ b/pkgs/development/python-modules/jaraco-itertools/default.nix
@@ -1,5 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools-scm
-, inflect, more-itertools, six, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  inflect,
+  more-itertools,
+  six,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +24,11 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [ inflect more-itertools six ];
+  propagatedBuildInputs = [
+    inflect
+    more-itertools
+    six
+  ];
   nativeCheckInputs = [ pytest ];
 
   # tests no longer available through pypi
diff --git a/pkgs/development/python-modules/jaraco-logging/default.nix b/pkgs/development/python-modules/jaraco-logging/default.nix
index e87d01a869a67..aeb99584cce78 100644
--- a/pkgs/development/python-modules/jaraco-logging/default.nix
+++ b/pkgs/development/python-modules/jaraco-logging/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, setuptools-scm
-, tempora
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  tempora,
 }:
 
 buildPythonPackage rec {
@@ -20,25 +21,19 @@ buildPythonPackage rec {
     hash = "sha256-9KfPusuGqDTCiGwBo7UrxM3icowdlxfEnU3OHWJI8Hs=";
   };
 
-  pythonNamespaces = [
-    "jaraco"
-  ];
+  pythonNamespaces = [ "jaraco" ];
 
   nativeBuildInputs = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    tempora
-  ];
+  propagatedBuildInputs = [ tempora ];
 
   # test no longer packaged with pypi
   doCheck = false;
 
-  pythonImportsCheck = [
-    "jaraco.logging"
-  ];
+  pythonImportsCheck = [ "jaraco.logging" ];
 
   meta = with lib; {
     description = "Support for Python logging facility";
diff --git a/pkgs/development/python-modules/jaraco-net/default.nix b/pkgs/development/python-modules/jaraco-net/default.nix
index e278c1a3832df..c5554812cbe84 100644
--- a/pkgs/development/python-modules/jaraco-net/default.nix
+++ b/pkgs/development/python-modules/jaraco-net/default.nix
@@ -1,33 +1,34 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, more-itertools
-, beautifulsoup4
-, mechanize
-, keyring
-, requests
-, feedparser
-, icmplib
-, jaraco-text
-, jaraco-logging
-, jaraco-email
-, jaraco-functools
-, jaraco-collections
-, path
-, python-dateutil
-, pathvalidate
-, jsonpickle
-, ifconfig-parser
-, pytestCheckHook
-, cherrypy
-, importlib-resources
-, pyparsing
-, requests-mock
-, nettools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  more-itertools,
+  beautifulsoup4,
+  mechanize,
+  keyring,
+  requests,
+  feedparser,
+  icmplib,
+  jaraco-text,
+  jaraco-logging,
+  jaraco-email,
+  jaraco-functools,
+  jaraco-collections,
+  path,
+  python-dateutil,
+  pathvalidate,
+  jsonpickle,
+  ifconfig-parser,
+  pytestCheckHook,
+  cherrypy,
+  importlib-resources,
+  pyparsing,
+  requests-mock,
+  nettools,
 }:
 
 buildPythonPackage rec {
@@ -67,9 +68,7 @@ buildPythonPackage rec {
     python-dateutil
     pathvalidate
     jsonpickle
-  ] ++ lib.optionals stdenv.isDarwin [
-    ifconfig-parser
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ ifconfig-parser ];
 
   pythonImportsCheck = [ "jaraco.net" ];
 
@@ -79,9 +78,7 @@ buildPythonPackage rec {
     importlib-resources
     pyparsing
     requests-mock
-  ] ++ lib.optionals stdenv.isDarwin [
-    nettools
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ nettools ];
 
   disabledTestPaths = [
     # doesn't actually contain tests
diff --git a/pkgs/development/python-modules/jaraco-stream/default.nix b/pkgs/development/python-modules/jaraco-stream/default.nix
index 1c926b831ffb8..a516bf33b0b38 100644
--- a/pkgs/development/python-modules/jaraco-stream/default.nix
+++ b/pkgs/development/python-modules/jaraco-stream/default.nix
@@ -1,4 +1,9 @@
-{ buildPythonPackage, fetchPypi, setuptools-scm, six }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "jaraco-stream";
diff --git a/pkgs/development/python-modules/jaraco-test/default.nix b/pkgs/development/python-modules/jaraco-test/default.nix
index fb6c3a883e93d..ae018f6f83057 100644
--- a/pkgs/development/python-modules/jaraco-test/default.nix
+++ b/pkgs/development/python-modules/jaraco-test/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools-scm
-, toml
-, jaraco-functools
-, jaraco-context
-, more-itertools
-, jaraco-collections
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools-scm,
+  toml,
+  jaraco-functools,
+  jaraco-context,
+  more-itertools,
+  jaraco-collections,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-29NDh4dYrcVER9YRXEYXia2zH8QHOyEpUCQwk7oxfsI=";
   };
 
-  build-system = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
   dependencies = [
     toml
@@ -36,18 +35,14 @@ buildPythonPackage rec {
     jaraco-collections
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # https://github.com/jaraco/jaraco.test/issues/6
     "jaraco/test/cpython.py"
   ];
 
-  pythonImportsCheck = [
-    "jaraco.test"
-  ];
+  pythonImportsCheck = [ "jaraco.test" ];
 
   meta = with lib; {
     description = "Testing support by jaraco";
diff --git a/pkgs/development/python-modules/jaraco-text/default.nix b/pkgs/development/python-modules/jaraco-text/default.nix
index 5f6bc4021c0ff..a3656f5cfbc2c 100644
--- a/pkgs/development/python-modules/jaraco-text/default.nix
+++ b/pkgs/development/python-modules/jaraco-text/default.nix
@@ -1,56 +1,45 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, autocommand
-, importlib-resources
-, jaraco-functools
-, jaraco-context
-, inflect
-, pathlib2
-, pytestCheckHook
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  autocommand,
+  importlib-resources,
+  jaraco-functools,
+  jaraco-context,
+  inflect,
+  pathlib2,
+  pytestCheckHook,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "jaraco-text";
-  version = "3.12.0";
+  version = "3.12.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
-    pname = "jaraco.text";
+    pname = "jaraco_text";
     inherit version;
-    hash = "sha256-OJ4lyNSzLpcVv1MFlvqw9c06pHKW5DlpOS4YpUGvWSw=";
+    hash = "sha256-tplJH50HS0/q/f2gQH+lu8XYP0hWB6AS6TRyuhYfaEM=";
   };
 
-  pythonNamespaces = [
-    "jaraco"
-  ];
+  pythonNamespaces = [ "jaraco" ];
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     autocommand
     jaraco-context
     jaraco-functools
     inflect
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    importlib-resources
-  ];
-
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    pathlib2
-  ];
-
-  pythonImportsCheck = [
-    "jaraco.text"
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ];
+
+  nativeCheckInputs = [ pytestCheckHook ] ++ lib.optionals (pythonOlder "3.10") [ pathlib2 ];
+
+  pythonImportsCheck = [ "jaraco.text" ];
 
   meta = with lib; {
     description = "Module for text manipulation";
diff --git a/pkgs/development/python-modules/jarowinkler/default.nix b/pkgs/development/python-modules/jarowinkler/default.nix
index a0196265b8455..a14d2341dad5c 100644
--- a/pkgs/development/python-modules/jarowinkler/default.nix
+++ b/pkgs/development/python-modules/jarowinkler/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, rapidfuzz
-, hypothesis
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  rapidfuzz,
+  hypothesis,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     hash = "sha256-B3upTBNqMyi+CH7Zx04wceEXjGJnr6S3BIl87AQkfbo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    rapidfuzz
-  ];
+  propagatedBuildInputs = [ rapidfuzz ];
 
   nativeCheckInputs = [
     hypothesis
diff --git a/pkgs/development/python-modules/javaobj-py3/default.nix b/pkgs/development/python-modules/javaobj-py3/default.nix
index 2c303784a87a8..2bc51a2041259 100644
--- a/pkgs/development/python-modules/javaobj-py3/default.nix
+++ b/pkgs/development/python-modules/javaobj-py3/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, fetchPypi
-, isPy27
-, lib
-, numpy
+{
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  lib,
+  numpy,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/javaproperties/default.nix b/pkgs/development/python-modules/javaproperties/default.nix
index 28ab53ce98a41..52627e5641254 100644
--- a/pkgs/development/python-modules/javaproperties/default.nix
+++ b/pkgs/development/python-modules/javaproperties/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, six
-, pytestCheckHook
-, python-dateutil
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  six,
+  pytestCheckHook,
+  python-dateutil,
 }:
 
 buildPythonPackage rec {
@@ -19,26 +20,18 @@ buildPythonPackage rec {
     sha256 = "16rcdw5gd4a21v2xb1j166lc9z2dqcv68gqvk5mvpnm0x6nwadgp";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   nativeCheckInputs = [
     python-dateutil
     pytestCheckHook
   ];
 
-  disabledTests = [
-    "time"
-  ];
+  disabledTests = [ "time" ];
 
-  disabledTestPaths = [
-    "test/test_propclass.py"
-  ];
+  disabledTestPaths = [ "test/test_propclass.py" ];
 
   meta = with lib; {
     description = "Microsoft Azure API Management Client Library for Python";
diff --git a/pkgs/development/python-modules/jax-jumpy/default.nix b/pkgs/development/python-modules/jax-jumpy/default.nix
index f37677da02830..1fbda8b2cd3e0 100644
--- a/pkgs/development/python-modules/jax-jumpy/default.nix
+++ b/pkgs/development/python-modules/jax-jumpy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  setuptools,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/jax/default.nix b/pkgs/development/python-modules/jax/default.nix
index e160eec612cf1..95e85bf8e2b20 100644
--- a/pkgs/development/python-modules/jax/default.nix
+++ b/pkgs/development/python-modules/jax/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, blas
-, buildPythonPackage
-, callPackage
-, setuptools
-, importlib-metadata
-, fetchFromGitHub
-, jaxlib
-, jaxlib-bin
-, hypothesis
-, lapack
-, matplotlib
-, ml-dtypes
-, numpy
-, opt-einsum
-, pytestCheckHook
-, pytest-xdist
-, pythonOlder
-, scipy
-, stdenv
+{
+  lib,
+  blas,
+  buildPythonPackage,
+  callPackage,
+  setuptools,
+  importlib-metadata,
+  fetchFromGitHub,
+  jaxlib,
+  jaxlib-bin,
+  hypothesis,
+  lapack,
+  matplotlib,
+  ml-dtypes,
+  numpy,
+  opt-einsum,
+  pytestCheckHook,
+  pytest-xdist,
+  pythonOlder,
+  scipy,
+  stdenv,
 }:
 
 let
@@ -29,7 +30,7 @@ let
 in
 buildPythonPackage rec {
   pname = "jax";
-  version = "0.4.25";
+  version = "0.4.28";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -39,12 +40,10 @@ buildPythonPackage rec {
     repo = "jax";
     # google/jax contains tags for jax and jaxlib. Only use jax tags!
     rev = "refs/tags/jax-v${version}";
-    hash = "sha256-poQQo2ZgEhPYzK3aCs+BjaHTNZbezJAECd+HOdY1Yok=";
+    hash = "sha256-qSHPwi3is6Ts7pz5s4KzQHBMbcjGp+vAOsejW3o36Ek=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # The version is automatically set to ".dev" if this variable is not set.
   # https://github.com/google/jax/commit/e01f2617b85c5bdffc5ffb60b3d8d8ca9519a1f3
@@ -81,44 +80,55 @@ buildPythonPackage rec {
     "tests/"
   ];
 
-  disabledTests = [
-    # Exceeds tolerance when the machine is busy
-    "test_custom_linear_solve_aux"
-    # UserWarning: Explicitly requested dtype <class 'numpy.float64'>
-    #  requested in astype is not available, and will be truncated to
-    # dtype float32. (With numpy 1.24)
-    "testKde3"
-    "testKde5"
-    "testKde6"
-    # Invokes python manually in a subprocess, which does not have the correct dependencies
-    # ImportError: This version of jax requires jaxlib version >= 0.4.19.
-    "test_no_log_spam"
-  ] ++ lib.optionals usingMKL [
-    # See
-    #  * https://github.com/google/jax/issues/9705
-    #  * https://discourse.nixos.org/t/getting-different-results-for-the-same-build-on-two-equally-configured-machines/17921
-    #  * https://github.com/NixOS/nixpkgs/issues/161960
-    "test_custom_linear_solve_cholesky"
-    "test_custom_root_with_aux"
-    "testEigvalsGrad_shape"
-  ] ++ lib.optionals stdenv.isAarch64 [
-    # See https://github.com/google/jax/issues/14793.
-    "test_for_loop_fixpoint_correctly_identifies_loop_varying_residuals_unrolled_for_loop"
-    "testQdwhWithRandomMatrix3"
-    "testScanGrad_jit_scan"
-
-    # See https://github.com/google/jax/issues/17867.
-    "test_array"
-    "test_async"
-    "test_copy0"
-    "test_device_put"
-    "test_make_array_from_callback"
-    "test_make_array_from_single_device_arrays"
-
-    # Fails on some hardware due to some numerical error
-    # See https://github.com/google/jax/issues/18535
-    "testQdwhWithOnRankDeficientInput5"
-  ];
+  # Prevents `tests/export_back_compat_test.py::CompatTest::test_*` tests from failing on darwin with
+  # PermissionError: [Errno 13] Permission denied: '/tmp/back_compat_testdata/test_*.py'
+  # See https://github.com/google/jax/blob/jaxlib-v0.4.27/jax/_src/internal_test_util/export_back_compat_test_util.py#L240-L241
+  # NOTE: this doesn't seem to be an issue on linux
+  preCheck = lib.optionalString stdenv.isDarwin ''
+    export TEST_UNDECLARED_OUTPUTS_DIR=$(mktemp -d)
+  '';
+
+  disabledTests =
+    [
+      # Exceeds tolerance when the machine is busy
+      "test_custom_linear_solve_aux"
+      # UserWarning: Explicitly requested dtype <class 'numpy.float64'>
+      #  requested in astype is not available, and will be truncated to
+      # dtype float32. (With numpy 1.24)
+      "testKde3"
+      "testKde5"
+      "testKde6"
+      # Invokes python manually in a subprocess, which does not have the correct dependencies
+      # ImportError: This version of jax requires jaxlib version >= 0.4.19.
+      "test_no_log_spam"
+    ]
+    ++ lib.optionals usingMKL [
+      # See
+      #  * https://github.com/google/jax/issues/9705
+      #  * https://discourse.nixos.org/t/getting-different-results-for-the-same-build-on-two-equally-configured-machines/17921
+      #  * https://github.com/NixOS/nixpkgs/issues/161960
+      "test_custom_linear_solve_cholesky"
+      "test_custom_root_with_aux"
+      "testEigvalsGrad_shape"
+    ]
+    ++ lib.optionals stdenv.isAarch64 [
+      # See https://github.com/google/jax/issues/14793.
+      "test_for_loop_fixpoint_correctly_identifies_loop_varying_residuals_unrolled_for_loop"
+      "testQdwhWithRandomMatrix3"
+      "testScanGrad_jit_scan"
+
+      # See https://github.com/google/jax/issues/17867.
+      "test_array"
+      "test_async"
+      "test_copy0"
+      "test_device_put"
+      "test_make_array_from_callback"
+      "test_make_array_from_single_device_arrays"
+
+      # Fails on some hardware due to some numerical error
+      # See https://github.com/google/jax/issues/18535
+      "testQdwhWithOnRankDeficientInput5"
+    ];
 
   disabledTestPaths = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
     # RuntimeWarning: invalid value encountered in cast
diff --git a/pkgs/development/python-modules/jax/test-cuda.nix b/pkgs/development/python-modules/jax/test-cuda.nix
index d156061f38495..5aca523f31775 100644
--- a/pkgs/development/python-modules/jax/test-cuda.nix
+++ b/pkgs/development/python-modules/jax/test-cuda.nix
@@ -1,17 +1,25 @@
-{ jax
-, jaxlib
-, pkgs
+{
+  jax,
+  jaxlib,
+  pkgs,
 }:
 
-pkgs.writers.writePython3Bin "jax-test-cuda" { libraries = [ jax jaxlib ]; } ''
-  import jax
-  from jax import random
+pkgs.writers.writePython3Bin "jax-test-cuda"
+  {
+    libraries = [
+      jax
+      jaxlib
+    ];
+  }
+  ''
+    import jax
+    from jax import random
 
-  assert jax.devices()[0].platform == "gpu"
+    assert jax.devices()[0].platform == "gpu"
 
-  rng = random.PRNGKey(0)
-  x = random.normal(rng, (100, 100))
-  x @ x
+    rng = random.PRNGKey(0)
+    x = random.normal(rng, (100, 100))
+    x @ x
 
-  print("success!")
-''
+    print("success!")
+  ''
diff --git a/pkgs/development/python-modules/jaxlib/bin.nix b/pkgs/development/python-modules/jaxlib/bin.nix
index 54abdfe48c345..5d4943a97ced4 100644
--- a/pkgs/development/python-modules/jaxlib/bin.nix
+++ b/pkgs/development/python-modules/jaxlib/bin.nix
@@ -4,117 +4,132 @@
 
 # See `python3Packages.jax.passthru` for CUDA tests.
 
-{ absl-py
-, autoAddDriverRunpath
-, autoPatchelfHook
-, buildPythonPackage
-, config
-, fetchPypi
-, fetchurl
-, flatbuffers
-, jaxlib-build
-, lib
-, ml-dtypes
-, python
-, scipy
-, stdenv
+{
+  absl-py,
+  autoAddDriverRunpath,
+  autoPatchelfHook,
+  buildPythonPackage,
+  config,
+  fetchPypi,
+  fetchurl,
+  flatbuffers,
+  jaxlib-build,
+  lib,
+  ml-dtypes,
+  python,
+  scipy,
+  stdenv,
   # Options:
-, cudaSupport ? config.cudaSupport
-, cudaPackagesGoogle
+  cudaSupport ? config.cudaSupport,
+  cudaPackages,
 }:
 
 let
-  inherit (cudaPackagesGoogle) cudaVersion;
+  inherit (cudaPackages) cudaVersion;
 
-  version = "0.4.24";
+  version = "0.4.28";
 
   inherit (python) pythonVersion;
 
-  cudaLibPath = lib.makeLibraryPath (with cudaPackagesGoogle; [
-    cuda_cudart.lib # libcudart.so
-    cuda_cupti.lib # libcupti.so
-    cudnn.lib # libcudnn.so
-    libcufft.lib # libcufft.so
-    libcusolver.lib # libcusolver.so
-    libcusparse.lib # libcusparse.so
-  ]);
+  cudaLibPath = lib.makeLibraryPath (
+    with cudaPackages;
+    [
+      cuda_cudart.lib # libcudart.so
+      cuda_cupti.lib # libcupti.so
+      cudnn.lib # libcudnn.so
+      libcufft.lib # libcufft.so
+      libcusolver.lib # libcusolver.so
+      libcusparse.lib # libcusparse.so
+    ]
+  );
 
   # As of 2023-06-06, google/jax upstream is no longer publishing CPU-only wheels to their GCS bucket. Instead the
   # official instructions recommend installing CPU-only versions via PyPI.
   cpuSrcs =
     let
-      getSrcFromPypi = { platform, dist, hash }: fetchPypi {
-        inherit version platform dist hash;
-        pname = "jaxlib";
-        format = "wheel";
-        # See the `disabled` attr comment below.
-        python = dist;
-        abi = dist;
-      };
+      getSrcFromPypi =
+        {
+          platform,
+          dist,
+          hash,
+        }:
+        fetchPypi {
+          inherit
+            version
+            platform
+            dist
+            hash
+            ;
+          pname = "jaxlib";
+          format = "wheel";
+          # See the `disabled` attr comment below.
+          python = dist;
+          abi = dist;
+        };
     in
     {
       "3.9-x86_64-linux" = getSrcFromPypi {
         platform = "manylinux2014_x86_64";
         dist = "cp39";
-        hash = "sha256-6P5ArMoLZiUkHUoQ/mJccbNj5/7el/op+Qo6cGQ33xE=";
+        hash = "sha256-Slbr8FtKTBeRaZ2HTgcvP4CPCYa0AQsU+1SaackMqdw=";
       };
       "3.9-aarch64-darwin" = getSrcFromPypi {
         platform = "macosx_11_0_arm64";
         dist = "cp39";
-        hash = "sha256-23JQZRwMLtt7sK/JlCBqqRyfTVIAVJFN2sL+nAkQgvU=";
+        hash = "sha256-sBVi7IrXVxm30DiXUkiel+trTctMjBE75JFjTVKCrTw=";
       };
       "3.9-x86_64-darwin" = getSrcFromPypi {
         platform = "macosx_10_14_x86_64";
         dist = "cp39";
-        hash = "sha256-OgMedn9GHGs5THZf3pkP3Aw/jJ0vL5qK1b+Lzf634Ik=";
+        hash = "sha256-T5jMg3srbG3P4Kt/+esQkxSSCUYRmqOvn6oTlxj/J4c=";
       };
 
       "3.10-x86_64-linux" = getSrcFromPypi {
         platform = "manylinux2014_x86_64";
         dist = "cp310";
-        hash = "sha256-/VwUIIa7mTs/wLz0ArsEfNrz2pGriVVT5GX9XRFRxfY=";
+        hash = "sha256-47zcb45g+FVPQVwU2TATTmAuPKM8OOVGJ0/VRfh1dps=";
       };
       "3.10-aarch64-darwin" = getSrcFromPypi {
         platform = "macosx_11_0_arm64";
         dist = "cp310";
-        hash = "sha256-LgICOyDGts840SQQJh+yOMobMASb62llvJjpGvhzrSw=";
+        hash = "sha256-8Djmi9ENGjVUcisLvjbmpEg4RDenWqnSg/aW8O2fjAk=";
       };
       "3.10-x86_64-darwin" = getSrcFromPypi {
         platform = "macosx_10_14_x86_64";
         dist = "cp310";
-        hash = "sha256-vhyULw+zBpz1UEi2tqgBMQEzY9a6YBgEIg6A4PPh3bQ=";
+        hash = "sha256-pCHSN/jCXShQFm0zRgPGc925tsJvUrxJZwS4eCKXvWY=";
       };
 
       "3.11-x86_64-linux" = getSrcFromPypi {
         platform = "manylinux2014_x86_64";
         dist = "cp311";
-        hash = "sha256-VJO/VVwBFkOEtq4y/sLVgAV8Cung01JULiuT6W96E/8=";
+        hash = "sha256-Rc4PPIQM/4I2z/JsN/Jsn/B4aV+T4MFiwyDCgfUEEnU=";
       };
       "3.11-aarch64-darwin" = getSrcFromPypi {
         platform = "macosx_11_0_arm64";
         dist = "cp311";
-        hash = "sha256-VtuwXxurpSp1KI8ty1bizs5cdy8GEBN2MgS227sOCmE=";
+        hash = "sha256-eThX+vN/Nxyv51L+pfyBH0NeQ7j7S1AgWERKf17M+Ck=";
       };
       "3.11-x86_64-darwin" = getSrcFromPypi {
         platform = "macosx_10_14_x86_64";
         dist = "cp311";
-        hash = "sha256-4Dj5dEGKb9hpg3HlVogNO1Gc9UibJhy1eym2mjivxAQ=";
+        hash = "sha256-L/gpDtx7ksfq5SUX9lSSYz4mey6QZ7rT5MMj0hPnfPU=";
       };
 
       "3.12-x86_64-linux" = getSrcFromPypi {
         platform = "manylinux2014_x86_64";
         dist = "cp312";
-        hash = "sha256-TlrGVtb3NTLmhnILWPLJR+jISCZ5SUV4wxNFpSfkCBo=";
+        hash = "sha256-RqGqhX9P7uikP8upXA4Kti1AwmzJcwtsaWVZCLo1n40=";
       };
       "3.12-aarch64-darwin" = getSrcFromPypi {
         platform = "macosx_11_0_arm64";
         dist = "cp312";
-        hash = "sha256-FIwK5CGykQjteuWzLZnbtAggIxLQeGV96bXlZGEytN0=";
+        hash = "sha256-jdi//jhTcC9jzZJNoO4lc0pNGc1ckmvgM9dyun0cF10=";
       };
       "3.12-x86_64-darwin" = getSrcFromPypi {
         platform = "macosx_10_14_x86_64";
         dist = "cp312";
-        hash = "sha256-9/jw/wr6oUD9pOadVAaMRL086iVMUXwVgnUMcG1UNvE=";
+        hash = "sha256-1sCaVFMpciRhrwVuc1FG0sjHTCKsdCaoRetp8ya096A=";
       };
     };
 
@@ -130,57 +145,48 @@ let
   gpuSrcs = {
     "cuda12.2-3.9" = fetchurl {
       url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp39-cp39-manylinux2014_x86_64.whl";
-      hash = "sha256-xdJKLPtx+CIza2CrWKM3M0cZJzyNFVTTTsvlgh38bfM=";
+      hash = "sha256-d8LIl22gIvmWfoyKfXKElZJXicPQIZxdS4HumhwQGCw=";
     };
     "cuda12.2-3.10" = fetchurl {
       url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp310-cp310-manylinux2014_x86_64.whl";
-      hash = "sha256-QCjrOczD2mp+CDwVXBc0/4rJnAizeV62AK0Dpx9X6TE=";
+      hash = "sha256-PXtWv+UEcMWF8LhWe6Z1UGkf14PG3dkJ0Iop0LiimnQ=";
     };
     "cuda12.2-3.11" = fetchurl {
       url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp311-cp311-manylinux2014_x86_64.whl";
-      hash = "sha256-Ipy3vk1yUplpNzECAFt63aOIhgEWgXG7hkoeTIk9bQQ=";
+      hash = "sha256-QO2WSOzmJ48VaCha596mELiOfPsAGLpGctmdzcCHE/o=";
     };
     "cuda12.2-3.12" = fetchurl {
       url = "https://storage.googleapis.com/jax-releases/cuda12/jaxlib-${version}+cuda12.cudnn89-cp312-cp312-manylinux2014_x86_64.whl";
-      hash = "sha256-LSnZHaUga/8Z65iKXWBnZDk4yUpNykFTu3vukCchO6Q=";
-    };
-    "cuda11.8-3.9" = fetchurl {
-      url = "https://storage.googleapis.com/jax-releases/cuda11/jaxlib-${version}+cuda11.cudnn86-cp39-cp39-manylinux2014_x86_64.whl";
-      hash = "sha256-UmyugL0VjlXkiD7fuDPWgW8XUpr/QaP5ggp6swoZTzU=";
-    };
-    "cuda11.8-3.10" = fetchurl {
-      url = "https://storage.googleapis.com/jax-releases/cuda11/jaxlib-${version}+cuda11.cudnn86-cp310-cp310-manylinux2014_x86_64.whl";
-      hash = "sha256-luKULEiV1t/sO6eckDxddJTiOFa0dtJeDlrvp+WYmHk=";
-    };
-    "cuda11.8-3.11" = fetchurl {
-      url = "https://storage.googleapis.com/jax-releases/cuda11/jaxlib-${version}+cuda11.cudnn86-cp311-cp311-manylinux2014_x86_64.whl";
-      hash = "sha256-4+uJ8Ij6mFGEmjFEgi3fLnSLZs+v18BRoOt7mZuqydw=";
-    };
-    "cuda11.8-3.12" = fetchurl {
-      url = "https://storage.googleapis.com/jax-releases/cuda11/jaxlib-${version}+cuda11.cudnn86-cp312-cp312-manylinux2014_x86_64.whl";
-      hash = "sha256-bUDFb94Ar/65SzzR9RLIs/SL/HdjaPT1Su5whmjkS00=";
+      hash = "sha256-ixWMaIChy4Ammsn23/3cCoala0lFibuUxyUr3tjfFKU=";
     };
   };
-
 in
 buildPythonPackage {
   pname = "jaxlib";
   inherit version;
   format = "wheel";
 
-  disabled = !(pythonVersion == "3.9" || pythonVersion == "3.10" || pythonVersion == "3.11" || pythonVersion == "3.12");
+  disabled =
+    !(
+      pythonVersion == "3.9"
+      || pythonVersion == "3.10"
+      || pythonVersion == "3.11"
+      || pythonVersion == "3.12"
+    );
 
   # See https://discourse.nixos.org/t/ofborg-does-not-respect-meta-platforms/27019/6.
   src =
     if !cudaSupport then
-      (
-        cpuSrcs."${pythonVersion}-${stdenv.hostPlatform.system}"
-          or (throw "jaxlib-bin is not supported on ${stdenv.hostPlatform.system}")
-      ) else gpuSrcs."${gpuSrcVersionString}";
+      (cpuSrcs."${pythonVersion}-${stdenv.hostPlatform.system}"
+        or (throw "jaxlib-bin is not supported on ${stdenv.hostPlatform.system}")
+      )
+    else
+      gpuSrcs."${gpuSrcVersionString}";
 
   # Prebuilt wheels are dynamically linked against things that nix can't find.
   # Run `autoPatchelfHook` to automagically fix them.
-  nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ]
+  nativeBuildInputs =
+    lib.optionals stdenv.isLinux [ autoPatchelfHook ]
     ++ lib.optionals cudaSupport [ autoAddDriverRunpath ];
   # Dynamic link dependencies
   buildInputs = [ stdenv.cc.cc.lib ];
@@ -213,7 +219,7 @@ buildPythonPackage {
   # for more info.
   postInstall = lib.optional cudaSupport ''
     mkdir -p $out/${python.sitePackages}/jaxlib/cuda/bin
-    ln -s ${lib.getExe' cudaPackagesGoogle.cuda_nvcc "ptxas"} $out/${python.sitePackages}/jaxlib/cuda/bin/ptxas
+    ln -s ${lib.getExe' cudaPackages.cuda_nvcc "ptxas"} $out/${python.sitePackages}/jaxlib/cuda/bin/ptxas
   '';
 
   inherit (jaxlib-build) pythonImportsCheck;
@@ -224,11 +230,20 @@ buildPythonPackage {
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
     maintainers = with maintainers; [ samuela ];
-    platforms = [ "aarch64-darwin" "x86_64-linux" "x86_64-darwin" ];
+    platforms = [
+      "aarch64-darwin"
+      "x86_64-linux"
+      "x86_64-darwin"
+    ];
     broken =
       !(cudaSupport -> lib.versionAtLeast cudaVersion "11.1")
-      || !(cudaSupport -> lib.versionAtLeast cudaPackagesGoogle.cudnn.version "8.2")
+      || !(cudaSupport -> lib.versionAtLeast cudaPackages.cudnn.version "8.2")
       || !(cudaSupport -> stdenv.isLinux)
-      || !(cudaSupport -> (gpuSrcs ? "cuda${cudaVersion}-${pythonVersion}"));
+      || !(cudaSupport -> (gpuSrcs ? "cuda${cudaVersion}-${pythonVersion}"))
+      # Fails at pythonImportsCheckPhase:
+      # ...-python-imports-check-hook.sh/nix-support/setup-hook: line 10: 28017 Illegal instruction: 4
+      # /nix/store/5qpssbvkzfh73xih07xgmpkj5r565975-python3-3.11.9/bin/python3.11 -c
+      # 'import os; import importlib; list(map(lambda mod: importlib.import_module(mod), os.environ["pythonImportsCheck"].split()))'
+      || (stdenv.isDarwin && stdenv.isx86_64);
   };
 }
diff --git a/pkgs/development/python-modules/jaxlib/default.nix b/pkgs/development/python-modules/jaxlib/default.nix
index cfca1f170ea4c..b77a7de7b3575 100644
--- a/pkgs/development/python-modules/jaxlib/default.nix
+++ b/pkgs/development/python-modules/jaxlib/default.nix
@@ -1,69 +1,74 @@
-{ lib
-, pkgs
-, stdenv
+{
+  lib,
+  pkgs,
+  stdenv,
 
   # Build-time dependencies:
-, addOpenGLRunpath
-, autoAddDriverRunpath
-, bazel_6
-, binutils
-, buildBazelPackage
-, buildPythonPackage
-, cctools
-, curl
-, cython
-, fetchFromGitHub
-, fetchpatch
-, git
-, IOKit
-, jsoncpp
-, nsync
-, openssl
-, pybind11
-, setuptools
-, symlinkJoin
-, wheel
-, build
-, which
+  addOpenGLRunpath,
+  autoAddDriverRunpath,
+  bazel_6,
+  binutils,
+  buildBazelPackage,
+  buildPythonPackage,
+  cctools,
+  curl,
+  cython,
+  fetchFromGitHub,
+  git,
+  IOKit,
+  jsoncpp,
+  nsync,
+  openssl,
+  pybind11,
+  setuptools,
+  symlinkJoin,
+  wheel,
+  build,
+  which,
 
   # Python dependencies:
-, absl-py
-, flatbuffers
-, ml-dtypes
-, numpy
-, scipy
-, six
+  absl-py,
+  flatbuffers,
+  ml-dtypes,
+  numpy,
+  scipy,
+  six,
 
   # Runtime dependencies:
-, double-conversion
-, giflib
-, libjpeg_turbo
-, python
-, snappy
-, zlib
-
-, config
+  double-conversion,
+  giflib,
+  libjpeg_turbo,
+  python,
+  snappy,
+  zlib,
+
+  config,
   # CUDA flags:
-, cudaSupport ? config.cudaSupport
-, cudaPackagesGoogle
+  cudaSupport ? config.cudaSupport,
+  cudaPackages,
 
   # MKL:
-, mklSupport ? true
+  mklSupport ? true,
 }@inputs:
 
 let
-  inherit (cudaPackagesGoogle) cudaFlags cudaVersion cudnn nccl;
+  inherit (cudaPackages)
+    cudaFlags
+    cudaVersion
+    cudnn
+    nccl
+    ;
 
   pname = "jaxlib";
-  version = "0.4.24";
+  version = "0.4.28";
 
   # It's necessary to consistently use backendStdenv when building with CUDA
   # support, otherwise we get libstdc++ errors downstream
   stdenv = throw "Use effectiveStdenv instead";
-  effectiveStdenv = if cudaSupport then cudaPackagesGoogle.backendStdenv else inputs.stdenv;
+  effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv;
 
   meta = with lib; {
-    description = "JAX is Autograd and XLA, brought together for high-performance machine learning research.";
+    description = "JAX is Autograd and XLA, brought together for high-performance machine learning research";
     homepage = "https://github.com/google/jax";
     license = licenses.asl20;
     maintainers = with maintainers; [ ndl ];
@@ -78,7 +83,7 @@ let
   # These are necessary at build time and run time.
   cuda_libs_joined = symlinkJoin {
     name = "cuda-joined";
-    paths = with cudaPackagesGoogle; [
+    paths = with cudaPackages; [
       cuda_cudart.lib # libcudart.so
       cuda_cudart.static # libcudart_static.a
       cuda_cupti.lib # libcupti.so
@@ -92,11 +97,11 @@ let
   # These are only necessary at build time.
   cuda_build_deps_joined = symlinkJoin {
     name = "cuda-build-deps-joined";
-    paths = with cudaPackagesGoogle; [
+    paths = with cudaPackages; [
       cuda_libs_joined
 
       # Binaries
-      cudaPackagesGoogle.cuda_nvcc.bin # nvcc
+      cudaPackages.cuda_nvcc.bin # nvcc
 
       # Headers
       cuda_cccl.dev # block_load.cuh
@@ -170,8 +175,10 @@ let
 
   arch =
     # KeyError: ('Linux', 'arm64')
-    if effectiveStdenv.hostPlatform.isLinux && effectiveStdenv.hostPlatform.linuxArch == "arm64" then "aarch64"
-    else effectiveStdenv.hostPlatform.linuxArch;
+    if effectiveStdenv.hostPlatform.isLinux && effectiveStdenv.hostPlatform.linuxArch == "arm64" then
+      "aarch64"
+    else
+      effectiveStdenv.hostPlatform.linuxArch;
 
   xla = effectiveStdenv.mkDerivation {
     pname = "xla-src";
@@ -181,19 +188,10 @@ let
       owner = "openxla";
       repo = "xla";
       # Update this according to https://github.com/google/jax/blob/jaxlib-v${version}/third_party/xla/workspace.bzl.
-      rev = "12eee889e1f2ad41e27d7b0e970cb92d282d3ec5";
-      hash = "sha256-68kjjgwYjRlcT0TVJo9BN6s+WTkdu5UMJqQcfHpBT90=";
+      rev = "e8247c3ea1d4d7f31cf27def4c7ac6f2ce64ecd4";
+      hash = "sha256-ZhgMIVs3Z4dTrkRWDqaPC/i7yJz2dsYXrZbjzqvPX3E=";
     };
 
-    patches = [
-      # Resolves "could not convert ‘result’ from ‘SmallVector<[...],6>’ to
-      # ‘SmallVector<[...],4>’" compilation error. See https://github.com/google/jax/issues/19814#issuecomment-1945141259.
-      (fetchpatch {
-        url = "https://github.com/openxla/xla/commit/7a614cd346594fc7ea2fe75570c9c53a4a444f60.patch";
-        hash = "sha256-RtuQTH8wzNiJcOtISLhf+gMlH1gg8hekvxEB+4wX6BM=";
-      })
-    ];
-
     dontBuild = true;
 
     # This is necessary for patchShebangs to know the right path to use.
@@ -220,7 +218,7 @@ let
       repo = "jax";
       # google/jax contains tags for jax and jaxlib. Only use jaxlib tags!
       rev = "refs/tags/${pname}-v${version}";
-      hash = "sha256-hmx7eo3pephc6BQfoJ3U0QwWBWmhkAc+7S4QmW32qQs=";
+      hash = "sha256-qSHPwi3is6Ts7pz5s4KzQHBMbcjGp+vAOsejW3o36Ek=";
     };
 
     nativeBuildInputs = [
@@ -231,30 +229,27 @@ let
       wheel
       build
       which
-    ] ++ lib.optionals effectiveStdenv.isDarwin [
-      cctools
-    ];
-
-    buildInputs = [
-      curl
-      double-conversion
-      giflib
-      jsoncpp
-      libjpeg_turbo
-      numpy
-      openssl
-      pkgs.flatbuffers
-      pkgs.protobuf
-      pybind11
-      scipy
-      six
-      snappy
-      zlib
-    ] ++ lib.optionals effectiveStdenv.isDarwin [
-      IOKit
-    ] ++ lib.optionals (!effectiveStdenv.isDarwin) [
-      nsync
-    ];
+    ] ++ lib.optionals effectiveStdenv.isDarwin [ cctools ];
+
+    buildInputs =
+      [
+        curl
+        double-conversion
+        giflib
+        jsoncpp
+        libjpeg_turbo
+        numpy
+        openssl
+        pkgs.flatbuffers
+        pkgs.protobuf
+        pybind11
+        scipy
+        six
+        snappy
+        zlib
+      ]
+      ++ lib.optionals effectiveStdenv.isDarwin [ IOKit ]
+      ++ lib.optionals (!effectiveStdenv.isDarwin) [ nsync ];
 
     # We don't want to be quite so picky regarding bazel version
     postPatch = ''
@@ -285,30 +280,32 @@ let
         echo "#!${effectiveStdenv.shell}" > dummy-ldconfig/ldconfig
         chmod +x dummy-ldconfig/ldconfig
         export PATH="$PWD/dummy-ldconfig:$PATH"
-      '' +
-
-      # Construct .jax_configure.bazelrc. See https://github.com/google/jax/blob/b9824d7de3cb30f1df738cc42e486db3e9d915ff/build/build.py#L259-L345
-      # for more info. We assume
-      # * `cpu = None`
-      # * `enable_nccl = True`
-      # * `target_cpu_features = "release"`
-      # * `rocm_amdgpu_targets = None`
-      # * `enable_rocm = False`
-      # * `build_gpu_plugin = False`
-      # * `use_clang = False` (Should we use `effectiveStdenv.cc.isClang` instead?)
-      #
-      # Note: We should try just running https://github.com/google/jax/blob/ceb198582b62b9e6f6bdf20ab74839b0cf1db16e/build/build.py#L259-L266
-      # instead of duplicating the logic here. Perhaps we can leverage the
-      # `--configure_only` flag (https://github.com/google/jax/blob/ceb198582b62b9e6f6bdf20ab74839b0cf1db16e/build/build.py#L544-L548)?
       ''
-        cat <<CFG > ./.jax_configure.bazelrc
-        build --strategy=Genrule=standalone
-        build --repo_env PYTHON_BIN_PATH="${python}/bin/python"
-        build --action_env=PYENV_ROOT
-        build --python_path="${python}/bin/python"
-        build --distinct_host_configuration=false
-        build --define PROTOBUF_INCLUDE_PATH="${pkgs.protobuf}/include"
-      '' + lib.optionalString cudaSupport ''
+      +
+
+        # Construct .jax_configure.bazelrc. See https://github.com/google/jax/blob/b9824d7de3cb30f1df738cc42e486db3e9d915ff/build/build.py#L259-L345
+        # for more info. We assume
+        # * `cpu = None`
+        # * `enable_nccl = True`
+        # * `target_cpu_features = "release"`
+        # * `rocm_amdgpu_targets = None`
+        # * `enable_rocm = False`
+        # * `build_gpu_plugin = False`
+        # * `use_clang = False` (Should we use `effectiveStdenv.cc.isClang` instead?)
+        #
+        # Note: We should try just running https://github.com/google/jax/blob/ceb198582b62b9e6f6bdf20ab74839b0cf1db16e/build/build.py#L259-L266
+        # instead of duplicating the logic here. Perhaps we can leverage the
+        # `--configure_only` flag (https://github.com/google/jax/blob/ceb198582b62b9e6f6bdf20ab74839b0cf1db16e/build/build.py#L544-L548)?
+        ''
+          cat <<CFG > ./.jax_configure.bazelrc
+          build --strategy=Genrule=standalone
+          build --repo_env PYTHON_BIN_PATH="${python}/bin/python"
+          build --action_env=PYENV_ROOT
+          build --python_path="${python}/bin/python"
+          build --distinct_host_configuration=false
+          build --define PROTOBUF_INCLUDE_PATH="${pkgs.protobuf}/include"
+        ''
+      + lib.optionalString cudaSupport ''
         build --config=cuda
         build --action_env CUDA_TOOLKIT_PATH="${cuda_build_deps_joined}"
         build --action_env CUDNN_INSTALL_PATH="${cudnn}"
@@ -316,67 +313,85 @@ let
         build --action_env TF_CUDA_VERSION="${lib.versions.majorMinor cudaVersion}"
         build --action_env TF_CUDNN_VERSION="${lib.versions.major cudnn.version}"
         build:cuda --action_env TF_CUDA_COMPUTE_CAPABILITIES="${builtins.concatStringsSep "," cudaFlags.realArches}"
-      '' +
-      # Note that upstream conditions this on `wheel_cpu == "x86_64"`. We just
-      # rely on `effectiveStdenv.hostPlatform.avxSupport` instead. So far so
-      # good. See https://github.com/google/jax/blob/b9824d7de3cb30f1df738cc42e486db3e9d915ff/build/build.py#L322
-      # for upstream's version.
-      lib.optionalString (effectiveStdenv.hostPlatform.avxSupport && effectiveStdenv.hostPlatform.isUnix) ''
-        build --config=avx_posix
-      '' + lib.optionalString mklSupport ''
+      ''
+      +
+        # Note that upstream conditions this on `wheel_cpu == "x86_64"`. We just
+        # rely on `effectiveStdenv.hostPlatform.avxSupport` instead. So far so
+        # good. See https://github.com/google/jax/blob/b9824d7de3cb30f1df738cc42e486db3e9d915ff/build/build.py#L322
+        # for upstream's version.
+        lib.optionalString (effectiveStdenv.hostPlatform.avxSupport && effectiveStdenv.hostPlatform.isUnix)
+          ''
+            build --config=avx_posix
+          ''
+      + lib.optionalString mklSupport ''
         build --config=mkl_open_source_only
-      '' +
       ''
+      + ''
         CFG
       '';
 
     # Make sure Bazel knows about our configuration flags during fetching so that the
     # relevant dependencies can be downloaded.
-    bazelFlags = [
-      "-c opt"
-      # See https://bazel.build/external/advanced#overriding-repositories for
-      # information on --override_repository flag.
-      "--override_repository=xla=${xla}"
-    ] ++ lib.optionals effectiveStdenv.cc.isClang [
-      # bazel depends on the compiler frontend automatically selecting these flags based on file
-      # extension but our clang doesn't.
-      # https://github.com/NixOS/nixpkgs/issues/150655
-      "--cxxopt=-x"
-      "--cxxopt=c++"
-      "--host_cxxopt=-x"
-      "--host_cxxopt=c++"
-    ];
+    bazelFlags =
+      [
+        "-c opt"
+        # See https://bazel.build/external/advanced#overriding-repositories for
+        # information on --override_repository flag.
+        "--override_repository=xla=${xla}"
+      ]
+      ++ lib.optionals effectiveStdenv.cc.isClang [
+        # bazel depends on the compiler frontend automatically selecting these flags based on file
+        # extension but our clang doesn't.
+        # https://github.com/NixOS/nixpkgs/issues/150655
+        "--cxxopt=-x"
+        "--cxxopt=c++"
+        "--host_cxxopt=-x"
+        "--host_cxxopt=c++"
+      ];
 
     # We intentionally overfetch so we can share the fetch derivation across all the different configurations
     fetchAttrs = {
       TF_SYSTEM_LIBS = lib.concatStringsSep "," tf_system_libs;
       # we have to force @mkl_dnn_v1 since it's not needed on darwin
-      bazelTargets = [ bazelRunTarget "@mkl_dnn_v1//:mkl_dnn" ];
-      bazelFlags = bazelFlags ++ [
-        "--config=avx_posix"
-        "--config=mkl_open_source_only"
-      ] ++ lib.optionals cudaSupport [
-        # ideally we'd add this unconditionally too, but it doesn't work on darwin
-        # we make this conditional on `cudaSupport` instead of the system, so that the hash for both
-        # the cuda and the non-cuda deps can be computed on linux, since a lot of contributors don't
-        # have access to darwin machines
-        "--config=cuda"
+      bazelTargets = [
+        bazelRunTarget
+        "@mkl_dnn_v1//:mkl_dnn"
       ];
-
-      sha256 = (if cudaSupport then {
-        x86_64-linux = "sha256-8JilAoTbqOjOOJa/Zc/n/quaEDcpdcLXCNb34mfB+OM=";
-      } else {
-        x86_64-linux = "sha256-iqS+I1FQLNWXNMsA20cJp7YkyGUeshee5b2QfRBNZtk=";
-        aarch64-linux = "sha256-qmJ0Fm/VGMTmko4PhKs1P8/GLEJmVxb8xg+ss/HsakY==";
-      }).${effectiveStdenv.system} or (throw "jaxlib: unsupported system: ${effectiveStdenv.system}");
+      bazelFlags =
+        bazelFlags
+        ++ [
+          "--config=avx_posix"
+          "--config=mkl_open_source_only"
+        ]
+        ++ lib.optionals cudaSupport [
+          # ideally we'd add this unconditionally too, but it doesn't work on darwin
+          # we make this conditional on `cudaSupport` instead of the system, so that the hash for both
+          # the cuda and the non-cuda deps can be computed on linux, since a lot of contributors don't
+          # have access to darwin machines
+          "--config=cuda"
+        ];
+
+      sha256 =
+        (
+          if cudaSupport then
+            { x86_64-linux = "sha256-vUoAPkYKEnHkV4fw6BI0mCeuP2e8BMCJnVuZMm9LwSA="; }
+          else
+            {
+              x86_64-linux = "sha256-R1TIIyyyLlDqAlUkuhJhtyTxZMra2q5S/jX0OCInsEQ=";
+              aarch64-linux = "sha256-P5JEmJljN1DeRA0dNkzyosKzRnJH+5SD2aWdV5JsoiY=";
+            }
+        ).${effectiveStdenv.system} or (throw "jaxlib: unsupported system: ${effectiveStdenv.system}");
     };
 
     buildAttrs = {
       outputs = [ "out" ];
 
-      TF_SYSTEM_LIBS = lib.concatStringsSep "," (tf_system_libs ++ lib.optionals (!effectiveStdenv.isDarwin) [
-        "nsync" # fails to build on darwin
-      ]);
+      TF_SYSTEM_LIBS = lib.concatStringsSep "," (
+        tf_system_libs
+        ++ lib.optionals (!effectiveStdenv.isDarwin) [
+          "nsync" # fails to build on darwin
+        ]
+      );
 
       # Note: we cannot do most of this patching at `patch` phase as the deps
       # are not available yet. Framework search paths aren't added by bintools
@@ -399,31 +414,39 @@ let
       "macosx_10_9_${arch}"
     else if effectiveStdenv.system == "aarch64-darwin" then
       "macosx_11_0_${arch}"
-    else throw "Unsupported target platform: ${effectiveStdenv.hostPlatform}";
-
+    else
+      throw "Unsupported target platform: ${effectiveStdenv.hostPlatform}";
 in
 buildPythonPackage {
   inherit meta pname version;
   format = "wheel";
 
   src =
-    let cp = "cp${builtins.replaceStrings ["."] [""] python.pythonVersion}";
-    in "${bazel-build}/jaxlib-${version}-${cp}-${cp}-${platformTag}.whl";
+    let
+      cp = "cp${builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion}";
+    in
+    "${bazel-build}/jaxlib-${version}-${cp}-${cp}-${platformTag}.whl";
 
   # Note that jaxlib looks for "ptxas" in $PATH. See https://github.com/NixOS/nixpkgs/pull/164176#discussion_r828801621
   # for more info.
   postInstall = lib.optionalString cudaSupport ''
     mkdir -p $out/bin
-    ln -s ${cudaPackagesGoogle.cuda_nvcc.bin}/bin/ptxas $out/bin/ptxas
+    ln -s ${cudaPackages.cuda_nvcc.bin}/bin/ptxas $out/bin/ptxas
 
     find $out -type f \( -name '*.so' -or -name '*.so.*' \) | while read lib; do
-      patchelf --add-rpath "${lib.makeLibraryPath [cuda_libs_joined cudnn nccl]}" "$lib"
+      patchelf --add-rpath "${
+        lib.makeLibraryPath [
+          cuda_libs_joined
+          cudnn
+          nccl
+        ]
+      }" "$lib"
     done
   '';
 
   nativeBuildInputs = lib.optionals cudaSupport [ autoAddDriverRunpath ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     absl-py
     curl
     double-conversion
diff --git a/pkgs/development/python-modules/jaxopt/default.nix b/pkgs/development/python-modules/jaxopt/default.nix
index af924cea5ab22..83a847b5a2f45 100644
--- a/pkgs/development/python-modules/jaxopt/default.nix
+++ b/pkgs/development/python-modules/jaxopt/default.nix
@@ -1,26 +1,28 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, fetchpatch
-, pytest-xdist
-, pytestCheckHook
-, absl-py
-, cvxpy
-, jax
-, jaxlib
-, matplotlib
-, numpy
-, optax
-, scipy
-, scikit-learn
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  fetchpatch,
+  pytest-xdist,
+  pytestCheckHook,
+  setuptools,
+  absl-py,
+  cvxpy,
+  jax,
+  jaxlib,
+  matplotlib,
+  numpy,
+  optax,
+  scipy,
+  scikit-learn,
 }:
 
 buildPythonPackage rec {
   pname = "jaxopt";
   version = "0.8.3";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -41,7 +43,9 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     absl-py
     jax
     jaxlib
@@ -66,12 +70,23 @@ buildPythonPackage rec {
     "jaxopt.tree_util"
   ];
 
-  disabledTests = lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
-    # https://github.com/google/jaxopt/issues/577
-    "test_binary_logit_log_likelihood"
-    "test_solve_sparse"
-    "test_logreg_with_intercept_manual_loop3"
-  ];
+  disabledTests =
+    [
+      # https://github.com/google/jaxopt/issues/592
+      "test_solve_sparse"
+    ]
+    ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
+      # https://github.com/google/jaxopt/issues/577
+      "test_binary_logit_log_likelihood"
+      "test_solve_sparse"
+      "test_logreg_with_intercept_manual_loop3"
+
+      # https://github.com/google/jaxopt/issues/593
+      # Makes the test suite crash
+      "test_dtype_consistency"
+      # AssertionError: Array(0.01411963, dtype=float32) not less than or equal to 0.01
+      "test_multiclass_logreg6"
+    ];
 
   meta = with lib; {
     homepage = "https://jaxopt.github.io";
diff --git a/pkgs/development/python-modules/jaxtyping/default.nix b/pkgs/development/python-modules/jaxtyping/default.nix
index b64ab981913ac..4eb2cacee199a 100644
--- a/pkgs/development/python-modules/jaxtyping/default.nix
+++ b/pkgs/development/python-modules/jaxtyping/default.nix
@@ -1,26 +1,26 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, hatchling
-, pythonRelaxDepsHook
-, numpy
-, typeguard
-, typing-extensions
-, cloudpickle
-, equinox
-, ipython
-, jax
-, jaxlib
-, pytestCheckHook
-, tensorflow
-, torch
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  hatchling,
+  numpy,
+  typeguard,
+  typing-extensions,
+  cloudpickle,
+  equinox,
+  ipython,
+  jax,
+  jaxlib,
+  pytestCheckHook,
+  tensorflow,
+  torch,
 }:
 
 let
   self = buildPythonPackage rec {
     pname = "jaxtyping";
-    version = "0.2.28";
+    version = "0.2.30";
     pyproject = true;
 
     disabled = pythonOlder "3.9";
@@ -29,12 +29,11 @@ let
       owner = "google";
       repo = "jaxtyping";
       rev = "refs/tags/v${version}";
-      hash = "sha256-xDFrgPecUIfCACg/xkMQ8G1+6hNiUUDg9eCZKNpNfzs=";
+      hash = "sha256-WOMEzOZE6A7hqUcs1bZZAgGSWsdzIzaquQIX/1pN/0M=";
     };
 
     nativeBuildInputs = [
       hatchling
-      pythonRelaxDepsHook
     ];
 
     propagatedBuildInputs = [
@@ -43,9 +42,7 @@ let
       typing-extensions
     ];
 
-    pythonRelaxDeps = [
-      "typeguard"
-    ];
+    pythonRelaxDeps = [ "typeguard" ];
 
     nativeCheckInputs = [
       cloudpickle
@@ -78,4 +75,5 @@ let
       maintainers = with maintainers; [ GaetanLepage ];
     };
   };
- in self
+in
+self
diff --git a/pkgs/development/python-modules/jaydebeapi/default.nix b/pkgs/development/python-modules/jaydebeapi/default.nix
index 3aa26ca020f79..0f8b13535ca76 100644
--- a/pkgs/development/python-modules/jaydebeapi/default.nix
+++ b/pkgs/development/python-modules/jaydebeapi/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jpype1
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jpype1,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     sha256 = "f25e9307fbb5960cb035394c26e37731b64cc465b197c4344cee85ec450ab92f";
   };
 
-  propagatedBuildInputs = [
-    jpype1
-  ];
+  propagatedBuildInputs = [ jpype1 ];
 
   meta = with lib; {
     homepage = "https://github.com/baztian/jaydebeapi";
diff --git a/pkgs/development/python-modules/jc/default.nix b/pkgs/development/python-modules/jc/default.nix
index 0b29b126af6f3..9cf9bb7781433 100644
--- a/pkgs/development/python-modules/jc/default.nix
+++ b/pkgs/development/python-modules/jc/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, stdenv
-, buildPackages
-, buildPythonPackage
-, fetchFromGitHub
-, installShellFiles
-, ruamel-yaml
-, xmltodict
-, pygments
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPackages,
+  buildPythonPackage,
+  fetchFromGitHub,
+  installShellFiles,
+  ruamel-yaml,
+  xmltodict,
+  pygments,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "jc";
-  version = "1.25.2";
+  version = "1.25.3";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
@@ -21,18 +22,26 @@ buildPythonPackage rec {
     owner = "kellyjonbrazil";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-SDZ92m4TVH5/ldGkVZspzIrR0G1vHOv1OvAOSaWYkZ0=";
+    hash = "sha256-yp5533CzqJ++G6nHip1281ZkB4JyfLb3inR9BwDkxSs=";
   };
 
-  propagatedBuildInputs = [ ruamel-yaml xmltodict pygments ];
+  propagatedBuildInputs = [
+    ruamel-yaml
+    xmltodict
+    pygments
+  ];
 
   nativeBuildInputs = [ installShellFiles ];
 
-  postInstall = let emulator = stdenv.hostPlatform.emulator buildPackages; in ''
-    installShellCompletion --cmd jc \
-      --bash <(${emulator} $out/bin/jc --bash-comp) \
-      --zsh  <(${emulator} $out/bin/jc --zsh-comp)
-  '';
+  postInstall =
+    let
+      emulator = stdenv.hostPlatform.emulator buildPackages;
+    in
+    ''
+      installShellCompletion --cmd jc \
+        --bash <(${emulator} $out/bin/jc --bash-comp) \
+        --zsh  <(${emulator} $out/bin/jc --zsh-comp)
+    '';
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/jdatetime/default.nix b/pkgs/development/python-modules/jdatetime/default.nix
index 5d2b4e31aceae..fa774a40b7e84 100644
--- a/pkgs/development/python-modules/jdatetime/default.nix
+++ b/pkgs/development/python-modules/jdatetime/default.nix
@@ -1,29 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "jdatetime";
-  version = "4.1.1";
+  version = "5.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-HdDuIQFgx70wACgDxEPmJgrGAuplsGVlKh1WfTv9yno=";
+    hash = "sha256-LMYD2RPA2OMokoRU09KVJhywN+mVAif2fJYpq0cQ/fk=";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  pythonImportsCheck = [
-    "jdatetime"
-  ];
+  pythonImportsCheck = [ "jdatetime" ];
 
   meta = with lib; {
     description = "Jalali datetime binding";
diff --git a/pkgs/development/python-modules/jdcal/default.nix b/pkgs/development/python-modules/jdcal/default.nix
index 6278be96e10ca..7303d46384de6 100644
--- a/pkgs/development/python-modules/jdcal/default.nix
+++ b/pkgs/development/python-modules/jdcal/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,7 @@ buildPythonPackage rec {
   '';
 
   meta = {
-    description = "A module containing functions for converting between Julian dates and calendar dates";
+    description = "Module containing functions for converting between Julian dates and calendar dates";
     homepage = "https://github.com/phn/jdcal";
     license = lib.licenses.bsd2;
     maintainers = with lib.maintainers; [ lihop ];
diff --git a/pkgs/development/python-modules/jedi-language-server/default.nix b/pkgs/development/python-modules/jedi-language-server/default.nix
index 0a67730726bc6..096c327ae9862 100644
--- a/pkgs/development/python-modules/jedi-language-server/default.nix
+++ b/pkgs/development/python-modules/jedi-language-server/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, docstring-to-markdown
-, fetchFromGitHub
-, jedi
-, lsprotocol
-, poetry-core
-, pygls
-, pydantic
-, pyhamcrest
-, pytestCheckHook
-, python-lsp-jsonrpc
-, pythonOlder
-, stdenv
+{
+  lib,
+  buildPythonPackage,
+  docstring-to-markdown,
+  fetchFromGitHub,
+  jedi,
+  lsprotocol,
+  poetry-core,
+  pygls,
+  pydantic,
+  pyhamcrest,
+  pytestCheckHook,
+  python-lsp-jsonrpc,
+  pythonOlder,
+  stdenv,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     hash = "sha256-RDLwL9AZ3G8CzVwDtWqFFZNH/ulpHeFBhglbWNv/ZIk=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     docstring-to-markdown
@@ -56,12 +55,10 @@ buildPythonPackage rec {
     "test_publish_diagnostics_on_save"
   ];
 
-  pythonImportsCheck = [
-    "jedi_language_server"
-  ];
+  pythonImportsCheck = [ "jedi_language_server" ];
 
   meta = with lib; {
-    description = "A Language Server for the latest version(s) of Jedi";
+    description = "Language Server for the latest version(s) of Jedi";
     mainProgram = "jedi-language-server";
     homepage = "https://github.com/pappasam/jedi-language-server";
     changelog = "https://github.com/pappasam/jedi-language-server/blob/${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/jedi/default.nix b/pkgs/development/python-modules/jedi/default.nix
index eb90d3c907ed3..26bd4a173dcb3 100644
--- a/pkgs/development/python-modules/jedi/default.nix
+++ b/pkgs/development/python-modules/jedi/default.nix
@@ -1,18 +1,20 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  fetchpatch2,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, parso
+  # dependencies
+  parso,
 
-# tests
-, attrs
-, pytestCheckHook
+  # tests
+  attrs,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,13 +32,17 @@ buildPythonPackage rec {
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [
-    setuptools
+  patches = [
+    (fetchpatch2 {
+      # pytest8 compat
+      url = "https://github.com/davidhalter/jedi/commit/39c8317922f8f0312c12127cad10aea38d0ed7b5.patch";
+      hash = "sha256-wXHWcfoRJUl+ADrNMML0+DYTcRTyLs55Qrs7sDqT8BA=";
+    })
   ];
 
-  propagatedBuildInputs = [
-    parso
-  ];
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [ parso ];
 
   nativeCheckInputs = [
     attrs
@@ -47,16 +53,18 @@ buildPythonPackage rec {
     export HOME=$TMPDIR
   '';
 
-  disabledTests = [
-    # sensitive to platform, causes false negatives on darwin
-    "test_import"
-  ] ++ lib.optionals (stdenv.isAarch64 && pythonOlder "3.9") [
-    # AssertionError: assert 'foo' in ['setup']
-    "test_init_extension_module"
-  ];
+  disabledTests =
+    [
+      # sensitive to platform, causes false negatives on darwin
+      "test_import"
+    ]
+    ++ lib.optionals (stdenv.isAarch64 && pythonOlder "3.9") [
+      # AssertionError: assert 'foo' in ['setup']
+      "test_init_extension_module"
+    ];
 
   meta = with lib; {
-    description = "An autocompletion tool for Python that can be used for text editors";
+    description = "Autocompletion tool for Python that can be used for text editors";
     homepage = "https://github.com/davidhalter/jedi";
     changelog = "https://github.com/davidhalter/jedi/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/jeepney/default.nix b/pkgs/development/python-modules/jeepney/default.nix
index 3ba062e1ac54f..fafcfb0df3d8c 100644
--- a/pkgs/development/python-modules/jeepney/default.nix
+++ b/pkgs/development/python-modules/jeepney/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, flit-core
-, async-timeout
-, dbus
-, pytest
-, pytest-trio
-, pytest-asyncio
-, testpath
-, trio
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  flit-core,
+  async-timeout,
+  dbus,
+  pytest,
+  pytest-trio,
+  pytest-asyncio,
+  testpath,
+  trio,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     sha256 = "5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   nativeCheckInputs = [
     async-timeout
diff --git a/pkgs/development/python-modules/jello/default.nix b/pkgs/development/python-modules/jello/default.nix
index 0b2d6cff78824..bd945515fff88 100644
--- a/pkgs/development/python-modules/jello/default.nix
+++ b/pkgs/development/python-modules/jello/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, installShellFiles
-, pygments
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  installShellFiles,
+  pygments,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-EN09Kcnw4HNT2roCoQyZkoHEfkM9qxqtneZPuBg46z4=";
   };
 
-  nativeBuildInputs = [
-    installShellFiles
-  ];
+  nativeBuildInputs = [ installShellFiles ];
 
-  propagatedBuildInputs = [
-    pygments
-  ];
+  propagatedBuildInputs = [ pygments ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   pythonImportsCheck = [ "jello" ];
 
diff --git a/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix b/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
index 4413f081a6355..739a0937a4aa9 100644
--- a/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
+++ b/pkgs/development/python-modules/jellyfin-apiclient-python/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, certifi
-, fetchPypi
-, pythonOlder
-, requests
-, urllib3
-, websocket-client
+{
+  lib,
+  buildPythonPackage,
+  certifi,
+  fetchPypi,
+  pythonOlder,
+  requests,
+  urllib3,
+  websocket-client,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Module has no test
   doCheck = false;
 
-  pythonImportsCheck = [
-    "jellyfin_apiclient_python"
-  ];
+  pythonImportsCheck = [ "jellyfin_apiclient_python" ];
 
   meta = with lib; {
     description = "Python API client for Jellyfin";
diff --git a/pkgs/development/python-modules/jellyfish/default.nix b/pkgs/development/python-modules/jellyfish/default.nix
index 5afe54567cb4e..4210f5499d282 100644
--- a/pkgs/development/python-modules/jellyfish/default.nix
+++ b/pkgs/development/python-modules/jellyfish/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-, pytest
-, unicodecsv
-, rustPlatform
-, libiconv
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  pytest,
+  unicodecsv,
+  rustPlatform,
+  libiconv,
 }:
 
 buildPythonPackage rec {
   pname = "jellyfish";
-  version = "1.0.0";
+  version = "1.0.4";
 
   disabled = !isPy3k;
 
@@ -19,7 +20,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-iBquNnGZm7B85QwnaW8pyn6ELz4SOswNtlJcmZmIG9Q=";
+    hash = "sha256-cqq7O+3VE83SBxIkL9URc7WZcsCxRregucbzLxZWKT8=";
   };
 
   nativeBuildInputs = with rustPlatform; [
@@ -27,17 +28,18 @@ buildPythonPackage rec {
     cargoSetupHook
   ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
-    libiconv
-  ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}-rust-dependencies";
-    hash = "sha256-Grk+n4VCPjirafcRWWI51jHw/IFUYkBtbXY739j0MFI=";
+    hash = "sha256-HtzgxTO6tbN/tohaiTm9B9jrFYGTt1Szo9qRzpcy8BA=";
   };
 
-  nativeCheckInputs = [ pytest unicodecsv ];
+  nativeCheckInputs = [
+    pytest
+    unicodecsv
+  ];
 
   meta = {
     homepage = "https://github.com/sunlightlabs/jellyfish";
diff --git a/pkgs/development/python-modules/jenkins-job-builder/default.nix b/pkgs/development/python-modules/jenkins-job-builder/default.nix
index 852b529e8bcc1..a74c54dc4149e 100644
--- a/pkgs/development/python-modules/jenkins-job-builder/default.nix
+++ b/pkgs/development/python-modules/jenkins-job-builder/default.nix
@@ -1,27 +1,39 @@
-{ lib, buildPythonPackage, fetchPypi, fasteners
-, jinja2
-, pbr
-, python-jenkins
-, pyyaml
-, six
-, stevedore
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fasteners,
+  jinja2,
+  pbr,
+  python-jenkins,
+  pyyaml,
+  six,
+  stevedore,
 }:
 
 buildPythonPackage rec {
   pname = "jenkins-job-builder";
-  version = "6.2.0";
+  version = "6.3.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-kV2g1qbS5L7bEqfPijj60eK+pbTc8SAs/tctpNv0PFs=";
+    hash = "sha256-RD9VQFlwLJ3TiReKty+q056CjsOnSD2J2bpASmqHIEM=";
   };
 
   postPatch = ''
     export HOME=$(mktemp -d)
   '';
 
-  propagatedBuildInputs = [ pbr python-jenkins pyyaml six stevedore fasteners jinja2 ];
+  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";
@@ -33,5 +45,4 @@ buildPythonPackage rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/jenkinsapi/default.nix b/pkgs/development/python-modules/jenkinsapi/default.nix
index 0fb7c3327db45..72cea1d05e4c5 100644
--- a/pkgs/development/python-modules/jenkinsapi/default.nix
+++ b/pkgs/development/python-modules/jenkinsapi/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, mock
-, pbr
-, pytest-mock
-, pytestCheckHook
-, pytz
-, requests
-, setuptools
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  mock,
+  pbr,
+  pytest-mock,
+  pytestCheckHook,
+  pytz,
+  requests,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-JGqYpj5h9UoV0WEFyxVIjFZwc030HobHrw1dnAryQLk=";
   };
 
-  patches = [
-    ./pytest-warn-none.patch
-  ];
+  patches = [ ./pytest-warn-none.patch ];
 
   nativeBuildInputs = [
     flit-core
@@ -54,10 +53,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python API for accessing resources on a Jenkins continuous-integration server";
+    description = "Python API for accessing resources on a Jenkins continuous-integration server";
     homepage = "https://github.com/salimfadhley/jenkinsapi";
     maintainers = with maintainers; [ drets ] ++ teams.deshaw.members;
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/jieba/default.nix b/pkgs/development/python-modules/jieba/default.nix
index 99803de03c5b8..d6ea70b400114 100644
--- a/pkgs/development/python-modules/jieba/default.nix
+++ b/pkgs/development/python-modules/jieba/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchFromGitHub, glibcLocales, python, isPy3k }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  glibcLocales,
+  python,
+  isPy3k,
+}:
 
 buildPythonPackage rec {
   pname = "jieba";
diff --git a/pkgs/development/python-modules/jinja2-ansible-filters/default.nix b/pkgs/development/python-modules/jinja2-ansible-filters/default.nix
index 4125a574db2b9..ef9afff973b6f 100644
--- a/pkgs/development/python-modules/jinja2-ansible-filters/default.nix
+++ b/pkgs/development/python-modules/jinja2-ansible-filters/default.nix
@@ -1,6 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi
-, jinja2
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jinja2,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/jinja2-git/default.nix b/pkgs/development/python-modules/jinja2-git/default.nix
index 518f62c540300..3623ea1c3b2db 100644
--- a/pkgs/development/python-modules/jinja2-git/default.nix
+++ b/pkgs/development/python-modules/jinja2-git/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, jinja2
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  jinja2,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/jinja2-pluralize/default.nix b/pkgs/development/python-modules/jinja2-pluralize/default.nix
index 79416be375645..5a6013e884687 100644
--- a/pkgs/development/python-modules/jinja2-pluralize/default.nix
+++ b/pkgs/development/python-modules/jinja2-pluralize/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jinja2
-, inflect
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jinja2,
+  inflect,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
     inflect
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "jinja2_pluralize"
-  ];
+  pythonImportsCheck = [ "jinja2_pluralize" ];
 
   meta = with lib; {
     description = "Jinja2 pluralize filters";
diff --git a/pkgs/development/python-modules/jinja2-time/default.nix b/pkgs/development/python-modules/jinja2-time/default.nix
index 611bc19df8243..5a2a020af9c37 100644
--- a/pkgs/development/python-modules/jinja2-time/default.nix
+++ b/pkgs/development/python-modules/jinja2-time/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, arrow
-, freezegun
-, jinja2
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchpatch,
+  fetchPypi,
+  arrow,
+  freezegun,
+  jinja2,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,15 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [ arrow jinja2 ];
+  propagatedBuildInputs = [
+    arrow
+    jinja2
+  ];
 
-  nativeCheckInputs = [ freezegun pytestCheckHook ];
+  nativeCheckInputs = [
+    freezegun
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [ "jinja2_time" ];
 
diff --git a/pkgs/development/python-modules/jinja2/default.nix b/pkgs/development/python-modules/jinja2/default.nix
index 1c260e37c7b0b..da220641dbe21 100644
--- a/pkgs/development/python-modules/jinja2/default.nix
+++ b/pkgs/development/python-modules/jinja2/default.nix
@@ -1,53 +1,57 @@
-{ lib
-, stdenv
-, python
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, babel
-, markupsafe
-, pytestCheckHook
-, sphinxHook
-, pallets-sphinx-themes
-, setuptools
-, sphinxcontrib-log-cabinet
-, sphinx-issues
+{
+  lib,
+  stdenv,
+  python,
+  pythonAtLeast,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  flit-core,
+  babel,
+  markupsafe,
+  pytestCheckHook,
+  sphinxHook,
+  pallets-sphinx-themes,
+  sphinxcontrib-log-cabinet,
+  sphinx-issues,
+
+  # Reverse dependency
+  sage,
 }:
 
 buildPythonPackage rec {
   pname = "jinja2";
-  version = "3.1.3";
+  version = "3.1.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    pname = "Jinja2";
-    inherit version;
-    hash = "sha256-rIvWVE1Lssl5K/OhWegLuo/afwfoG8Ou1WVDLVklupA=";
+    inherit pname version;
+    hash = "sha256-Sjruesu+cwOu3o6WSNE7i/iKQpKCqmEiqZPwrIAMs2k=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    markupsafe
-  ];
+  propagatedBuildInputs = [ markupsafe ];
 
   passthru.optional-dependencies = {
-    i18n = [
-      babel
-    ];
+    i18n = [ babel ];
   };
 
   # Multiple tests run out of stack space on 32bit systems with python2.
   # See https://github.com/pallets/jinja/issues/1158
   doCheck = !stdenv.is32bit;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.i18n;
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.i18n;
+
+  disabledTests = lib.optionals (pythonAtLeast "3.13") [
+    # https://github.com/pallets/jinja/issues/1900
+    "test_custom_async_iteratable_filter"
+    "test_first"
+    "test_loop_errors"
+    "test_package_zip_list"
+  ];
 
   passthru.doc = stdenv.mkDerivation {
     # Forge look and feel of multi-output derivation as best as we can.
@@ -76,6 +80,10 @@ buildPythonPackage rec {
     inherit meta;
   };
 
+  passthru.tests = {
+    inherit sage;
+  };
+
   meta = with lib; {
     changelog = "https://github.com/pallets/jinja/blob/${version}/CHANGES.rst";
     description = "Very fast and expressive template engine";
diff --git a/pkgs/development/python-modules/jira/default.nix b/pkgs/development/python-modules/jira/default.nix
index 1963fe2e8e89b..5e0a57983b5fb 100644
--- a/pkgs/development/python-modules/jira/default.nix
+++ b/pkgs/development/python-modules/jira/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, defusedxml
-, flaky
-, ipython
-, keyring
-, packaging
-, pillow
-, pyjwt
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-futures
-, requests-mock
-, requests-oauthlib
-, requests-toolbelt
-, setuptools
-, setuptools-scm
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  defusedxml,
+  flaky,
+  ipython,
+  keyring,
+  packaging,
+  pillow,
+  pyjwt,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-futures,
+  requests-mock,
+  requests-oauthlib,
+  requests-toolbelt,
+  setuptools,
+  setuptools-scm,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -60,9 +61,7 @@ buildPythonPackage rec {
       # requests-jwt
       # requests-keyberos
     ];
-    async = [
-      requests-futures
-    ];
+    async = [ requests-futures ];
   };
 
   nativeCheckInputs = [
@@ -76,9 +75,7 @@ buildPythonPackage rec {
       --replace "--cov-report=xml --cov jira" ""
   '';
 
-  pythonImportsCheck = [
-    "jira"
-  ];
+  pythonImportsCheck = [ "jira" ];
 
   # impure tests because of connectivity attempts to jira servers
   doCheck = false;
diff --git a/pkgs/development/python-modules/jishaku/default.nix b/pkgs/development/python-modules/jishaku/default.nix
index 4501ffc68e6b6..bcb026bae11c5 100644
--- a/pkgs/development/python-modules/jishaku/default.nix
+++ b/pkgs/development/python-modules/jishaku/default.nix
@@ -12,7 +12,7 @@
   tabulate,
   pytestCheckHook,
   pytest-asyncio,
-  youtube-dl
+  youtube-dl,
 }:
 buildPythonPackage rec {
   pname = "jishaku";
@@ -62,7 +62,7 @@ buildPythonPackage rec {
   ];
 
   meta = {
-    description = "A debugging and testing cog for discord.py bots";
+    description = "Debugging and testing cog for discord.py bots";
     homepage = "https://jishaku.readthedocs.io/en/latest";
     changelog = "https://github.com/Gorialis/jishaku/releases/tag/${version}";
     maintainers = with lib.maintainers; [ lychee ];
diff --git a/pkgs/development/python-modules/jiwer/default.nix b/pkgs/development/python-modules/jiwer/default.nix
index 2c15663502469..0d200572a7e27 100644
--- a/pkgs/development/python-modules/jiwer/default.nix
+++ b/pkgs/development/python-modules/jiwer/default.nix
@@ -1,47 +1,42 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonRelaxDepsHook
-, rapidfuzz
-, click
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  rapidfuzz,
+  click,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "jiwer";
-  version = "3.0.3";
-  format = "pyproject";
+  version = "3.04";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "jitsi";
-    repo = pname;
+    repo = "jiwer";
     rev = "refs/tags/v${version}";
-    hash = "sha256-32bpSBYl6yxb4lJhHnfnYhtye7DaBZT0VAe9rDcleTc=";
+    hash = "sha256-2LzAOgABK00Pz3v5WWYUAcZOYcTbRKfgw7U5DOohB/Q=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     rapidfuzz
     click
   ];
 
-  pythonRelaxDeps = [
-    "rapidfuzz"
-  ];
+  pythonRelaxDeps = [ "rapidfuzz" ];
 
-  pythonImportsCheck = [
-    "jiwer"
-  ];
+  pythonImportsCheck = [ "jiwer" ];
 
   meta = with lib; {
-    description = "A simple and fast python package to evaluate an automatic speech recognition system";
+    description = "Simple and fast python package to evaluate an automatic speech recognition system";
     mainProgram = "jiwer";
     homepage = "https://github.com/jitsi/jiwer";
     changelog = "https://github.com/jitsi/jiwer/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/jmespath/default.nix b/pkgs/development/python-modules/jmespath/default.nix
index 6a5ef26c4fa57..f6a15f0156f6a 100644
--- a/pkgs/development/python-modules/jmespath/default.nix
+++ b/pkgs/development/python-modules/jmespath/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hypothesis
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hypothesis,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/jmp/default.nix b/pkgs/development/python-modules/jmp/default.nix
index 945e99310366a..b0ec259f0723c 100644
--- a/pkgs/development/python-modules/jmp/default.nix
+++ b/pkgs/development/python-modules/jmp/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, jax
-, jaxlib
-, lib
-, pytestCheckHook
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  jax,
+  jaxlib,
+  lib,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
   };
 
   # Wheel requires only `numpy`, but the import needs `jax`.
-  propagatedBuildInputs = [
-    jax
-  ];
+  propagatedBuildInputs = [ jax ];
 
-  pythonImportsCheck = [
-    "jmp"
-  ];
+  pythonImportsCheck = [ "jmp" ];
 
   nativeCheckInputs = [
     jaxlib
@@ -33,7 +30,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "This library implements support for mixed precision training in JAX.";
+    description = "This library implements support for mixed precision training in JAX";
     homepage = "https://github.com/deepmind/jmp";
     license = licenses.asl20;
     maintainers = with maintainers; [ ndl ];
diff --git a/pkgs/development/python-modules/joblib/default.nix b/pkgs/development/python-modules/joblib/default.nix
index e592c8089f724..f56aa7a39197a 100644
--- a/pkgs/development/python-modules/joblib/default.nix
+++ b/pkgs/development/python-modules/joblib/default.nix
@@ -1,39 +1,37 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, pythonAtLeast
-, stdenv
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  pythonAtLeast,
+  stdenv,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# propagates (optional, but unspecified)
-# https://github.com/joblib/joblib#dependencies
-, lz4
-, psutil
+  # propagates (optional, but unspecified)
+  # https://github.com/joblib/joblib#dependencies
+  lz4,
+  psutil,
 
-# tests
-, pytestCheckHook
-, threadpoolctl
+  # tests
+  pytestCheckHook,
+  threadpoolctl,
 }:
 
-
 buildPythonPackage rec {
   pname = "joblib";
-  version = "1.4.0";
+  version = "1.4.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-HrDcCRkZzThEkN6JDLXf1ThBCm1LO1Tu8J+4xQtAmxw=";
+    hash = "sha256-I4LFgWsmNvvSCgng9Ona1HNnZf37fcpYKUO5wTZrPw4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     lz4
@@ -45,21 +43,22 @@ buildPythonPackage rec {
     threadpoolctl
   ];
 
-  pytestFlagsArray = [
-    "joblib/test"
-  ];
+  pytestFlagsArray = [ "joblib/test" ];
 
-  disabledTests = [
-    "test_disk_used" # test_disk_used is broken: https://github.com/joblib/joblib/issues/57
-    "test_parallel_call_cached_function_defined_in_jupyter" # jupyter not available during tests
-    "test_nested_parallel_warnings" # tests is flaky under load
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_dispatch_multiprocessing" # test_dispatch_multiprocessing is broken only on Darwin.
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    # deprecation warnings with python3.12 https://github.com/joblib/joblib/issues/1478
-    "test_main_thread_renamed_no_warning"
-    "test_background_thread_parallelism"
-  ];
+  disabledTests =
+    [
+      "test_disk_used" # test_disk_used is broken: https://github.com/joblib/joblib/issues/57
+      "test_parallel_call_cached_function_defined_in_jupyter" # jupyter not available during tests
+      "test_nested_parallel_warnings" # tests is flaky under load
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      "test_dispatch_multiprocessing" # test_dispatch_multiprocessing is broken only on Darwin.
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # deprecation warnings with python3.12 https://github.com/joblib/joblib/issues/1478
+      "test_main_thread_renamed_no_warning"
+      "test_background_thread_parallelism"
+    ];
 
   meta = with lib; {
     changelog = "https://github.com/joblib/joblib/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/johnnycanencrypt/default.nix b/pkgs/development/python-modules/johnnycanencrypt/default.nix
index b65fbca46993b..19d02b1189878 100644
--- a/pkgs/development/python-modules/johnnycanencrypt/default.nix
+++ b/pkgs/development/python-modules/johnnycanencrypt/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, buildPythonPackage
-, rustPlatform
-, pkg-config
-, pcsclite
-, nettle
-, httpx
-, pytestCheckHook
-, pythonOlder
-, vcrpy
-, PCSC
-, libiconv
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  rustPlatform,
+  pkg-config,
+  pcsclite,
+  nettle,
+  httpx,
+  pytestCheckHook,
+  pythonOlder,
+  vcrpy,
+  PCSC,
+  libiconv,
 }:
 
 buildPythonPackage rec {
@@ -34,26 +35,23 @@ buildPythonPackage rec {
 
   format = "pyproject";
 
-  propagatedBuildInputs = [
-    httpx
-  ];
+  propagatedBuildInputs = [ httpx ];
 
-  nativeBuildInputs = [
-    pkg-config
-  ] ++ (with rustPlatform; [
-    bindgenHook
-    cargoSetupHook
-    maturinBuildHook
-  ]);
+  nativeBuildInputs =
+    [ pkg-config ]
+    ++ (with rustPlatform; [
+      bindgenHook
+      cargoSetupHook
+      maturinBuildHook
+    ]);
 
-  buildInputs = [
-    nettle
-  ] ++ lib.optionals stdenv.isLinux [
-    pcsclite
-  ] ++ lib.optionals stdenv.isDarwin [
-    PCSC
-    libiconv
-  ];
+  buildInputs =
+    [ nettle ]
+    ++ lib.optionals stdenv.isLinux [ pcsclite ]
+    ++ lib.optionals stdenv.isDarwin [
+      PCSC
+      libiconv
+    ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/josepy/default.nix b/pkgs/development/python-modules/josepy/default.nix
index 5332bf6c43817..955bc33cc2239 100644
--- a/pkgs/development/python-modules/josepy/default.nix
+++ b/pkgs/development/python-modules/josepy/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchPypi
-, poetry-core
-, pyopenssl
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  poetry-core,
+  pyopenssl,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,22 +21,16 @@ buildPythonPackage rec {
     hash = "sha256-MIs7+c6CWtTUu6djcs8ZtdwcLOlqnSmPlkKXXmS9E90=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     pyopenssl
     cryptography
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "josepy"
-  ];
+  pythonImportsCheck = [ "josepy" ];
 
   meta = with lib; {
     changelog = "https://github.com/certbot/josepy/blob/v${version}/CHANGELOG.rst";
diff --git a/pkgs/development/python-modules/joserfc/default.nix b/pkgs/development/python-modules/joserfc/default.nix
index ce5e18ec13495..a48098db4a48a 100644
--- a/pkgs/development/python-modules/joserfc/default.nix
+++ b/pkgs/development/python-modules/joserfc/default.nix
@@ -1,52 +1,42 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, cryptography
-, pycryptodome
+  # dependencies
+  cryptography,
+  pycryptodome,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "joserfc";
-  version = "0.9.0";
+  version = "0.12.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "authlib";
     repo = "joserfc";
-    rev = version;
-    hash = "sha256-+NFCveMPzE0hSs2Qe20/MDHApXVtU3cR/GPFKPqfVV4=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-mnJzhkdX0+5Y/XwGlHgxLP0me8Cs/Cl3p46KgTKw2ug=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    cryptography
-  ];
+  dependencies = [ cryptography ];
 
   optional-dependencies = {
-    drafts = [
-      pycryptodome
-    ];
+    drafts = [ pycryptodome ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ]
-  ++ lib.flatten (lib.attrValues optional-dependencies);
+  nativeCheckInputs = [ pytestCheckHook ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
-  pythonImportsCheck = [
-    "joserfc"
-  ];
+  pythonImportsCheck = [ "joserfc" ];
 
   meta = with lib; {
     description = "Implementations of JOSE RFCs in Python";
diff --git a/pkgs/development/python-modules/jplephem/default.nix b/pkgs/development/python-modules/jplephem/default.nix
index ada4c9552e5a5..654db8037d0da 100644
--- a/pkgs/development/python-modules/jplephem/default.nix
+++ b/pkgs/development/python-modules/jplephem/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, numpy, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "jplephem";
diff --git a/pkgs/development/python-modules/jproperties/default.nix b/pkgs/development/python-modules/jproperties/default.nix
index b01f39d0432a9..83ba9855a0e23 100644
--- a/pkgs/development/python-modules/jproperties/default.nix
+++ b/pkgs/development/python-modules/jproperties/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, six
-, pytest-datadir
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  six,
+  pytest-datadir,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-O+ALeGHMNjW1dc9IRyLzO81k8DW2vbGjuZqXxgrhYjo=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   nativeCheckInputs = [
     pytest-datadir
@@ -44,9 +41,7 @@ buildPythonPackage rec {
     "tests/test_simple_utf8.py"
   ];
 
-  pythonImportsCheck = [
-    "jproperties"
-  ];
+  pythonImportsCheck = [ "jproperties" ];
 
   meta = with lib; {
     description = "Java Property file parser and writer for Python";
diff --git a/pkgs/development/python-modules/jpylyzer/default.nix b/pkgs/development/python-modules/jpylyzer/default.nix
index 0fc6f7cc125ea..951ce91ce43cc 100644
--- a/pkgs/development/python-modules/jpylyzer/default.nix
+++ b/pkgs/development/python-modules/jpylyzer/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, six
-, lxml
-, pytestCheckHook
-, doFullCheck ? false  # weird filenames cause issues on some filesystems
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  six,
+  lxml,
+  pytestCheckHook,
+  doFullCheck ? false, # weird filenames cause issues on some filesystems
 
-# for passthru.tests
-, jpylyzer
+  # for passthru.tests
+  jpylyzer,
 }:
 
 let
@@ -20,8 +21,8 @@ let
     rev = "0290e98bae9c5480c995954d3f14b4cf0a0395ff";
     hash = "sha256-dr3hC6dGd3HNSE4nRj1xrfFSW9cepQ1mdVH8S3YQdtw=";
   };
-
-in buildPythonPackage rec {
+in
+buildPythonPackage rec {
   pname = "jpylyzer";
   version = "2.2.1";
   format = "setuptools";
@@ -35,7 +36,10 @@ in buildPythonPackage rec {
 
   propagatedBuildInputs = [ six ];
 
-  nativeCheckInputs = [ pytestCheckHook lxml ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    lxml
+  ];
 
   # don't depend on testFiles unless doFullCheck as it may not be extractable
   # on some filesystems due to weird filenames
@@ -43,9 +47,7 @@ in buildPythonPackage rec {
     sed -i '/^testFilesDir = /ctestFilesDir = "${testFiles}/files"' tests/unit/test_testfiles.py
   '';
 
-  disabledTestPaths = lib.optionals (!doFullCheck) [
-    "tests/unit/test_testfiles.py"
-  ];
+  disabledTestPaths = lib.optionals (!doFullCheck) [ "tests/unit/test_testfiles.py" ];
 
   pythonImportsCheck = [ "jpylyzer" ];
 
diff --git a/pkgs/development/python-modules/jpype1/default.nix b/pkgs/development/python-modules/jpype1/default.nix
index 9aafb10c96e07..d9c55f2cbc9bd 100644
--- a/pkgs/development/python-modules/jpype1/default.nix
+++ b/pkgs/development/python-modules/jpype1/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, packaging
-, pythonOlder
-, typing-extensions
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  packaging,
+  pythonOlder,
+  typing-extensions,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -20,15 +21,9 @@ buildPythonPackage rec {
     hash = "sha256-QlpuGWav3VhItgwmiLyut+QLpQSmhvERRYlmjgYx6Hg=";
   };
 
-  propagatedBuildInputs = [
-    packaging
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ packaging ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
   # required openjdk (easy) but then there were some class path issues
   # when running the tests
@@ -41,6 +36,6 @@ buildPythonPackage rec {
       binaryBytecode
     ];
     license = licenses.asl20;
-    description = "A Python to Java bridge";
+    description = "Python to Java bridge";
   };
 }
diff --git a/pkgs/development/python-modules/jq/default.nix b/pkgs/development/python-modules/jq/default.nix
index 5b369d513cb13..21a272996cf94 100644
--- a/pkgs/development/python-modules/jq/default.nix
+++ b/pkgs/development/python-modules/jq/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, jq
-, oniguruma
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  jq,
+  oniguruma,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
 
   env.JQPY_USE_SYSTEM_LIBS = 1;
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
   buildInputs = [
     jq
@@ -37,18 +36,14 @@ buildPythonPackage rec {
     cython jq.pyx
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # intentional behavior change in jq 1.7.1 not reflected upstream
     "test_given_json_text_then_strings_containing_null_characters_are_preserved"
   ];
 
-  pythonImportsCheck = [
-    "jq"
-  ];
+  pythonImportsCheck = [ "jq" ];
 
   meta = with lib; {
     description = "Python bindings for jq, the flexible JSON processor";
diff --git a/pkgs/development/python-modules/js2py/default.nix b/pkgs/development/python-modules/js2py/default.nix
index 3630c0b38eaf5..fd28870e0e761 100644
--- a/pkgs/development/python-modules/js2py/default.nix
+++ b/pkgs/development/python-modules/js2py/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonAtLeast
-, setuptools
-, tzlocal
-, six
-, pyjsparser
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonAtLeast,
+  setuptools,
+  tzlocal,
+  six,
+  pyjsparser,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-OfOmqoRpGA77o8hncnHfJ8MTMv0bRx3xryr1i4e4ly8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pyjsparser
diff --git a/pkgs/development/python-modules/jsbeautifier/default.nix b/pkgs/development/python-modules/jsbeautifier/default.nix
index 85da49876eb3d..ab898c22d6dbc 100644
--- a/pkgs/development/python-modules/jsbeautifier/default.nix
+++ b/pkgs/development/python-modules/jsbeautifier/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, editorconfig
-, pytestCheckHook
-, pythonOlder
-, six
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  editorconfig,
+  pytestCheckHook,
+  pythonOlder,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -24,17 +25,11 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "jsbeautifier"
-  ];
+  pythonImportsCheck = [ "jsbeautifier" ];
 
-  pytestFlagsArray = [
-    "jsbeautifier/tests/testindentation.py"
-  ];
+  pytestFlagsArray = [ "jsbeautifier/tests/testindentation.py" ];
 
   meta = with lib; {
     description = "JavaScript unobfuscator and beautifier";
diff --git a/pkgs/development/python-modules/jschema-to-python/default.nix b/pkgs/development/python-modules/jschema-to-python/default.nix
index fcd80c652d413..de6d39dfbb19d 100644
--- a/pkgs/development/python-modules/jschema-to-python/default.nix
+++ b/pkgs/development/python-modules/jschema-to-python/default.nix
@@ -1,8 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi
-, attrs
-, jsonpickle
-, pbr
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  attrs,
+  jsonpickle,
+  pbr,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +25,7 @@ buildPythonPackage rec {
     pbr
   ];
 
-  nativeCheckInputs =[
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "jschema_to_python" ];
 
diff --git a/pkgs/development/python-modules/jsmin/default.nix b/pkgs/development/python-modules/jsmin/default.nix
index a36c350264beb..44b508af55c8b 100644
--- a/pkgs/development/python-modules/jsmin/default.nix
+++ b/pkgs/development/python-modules/jsmin/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,17 +18,11 @@ buildPythonPackage rec {
     sha256 = "c0959a121ef94542e807a674142606f7e90214a2b3d1eb17300244bbb5cc2bfc";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "jsmin/test.py"
-  ];
+  pytestFlagsArray = [ "jsmin/test.py" ];
 
-  pythonImportsCheck = [
-    "jsmin"
-  ];
+  pythonImportsCheck = [ "jsmin" ];
 
   meta = with lib; {
     description = "JavaScript minifier";
diff --git a/pkgs/development/python-modules/json-home-client/default.nix b/pkgs/development/python-modules/json-home-client/default.nix
index 5f2fa9eaeb6ee..fa74eec1676a6 100644
--- a/pkgs/development/python-modules/json-home-client/default.nix
+++ b/pkgs/development/python-modules/json-home-client/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-# build inputs
-, typing-extensions
-, uri-template
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  # build inputs
+  typing-extensions,
+  uri-template,
 }:
 
 buildPythonPackage rec {
@@ -36,6 +37,6 @@ buildPythonPackage rec {
     description = "Client class for calling http+json APIs in Python";
     homepage = "https://github.com/plinss/json_home_client";
     license = licenses.mit;
-    maintainers = [];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/json-logging/default.nix b/pkgs/development/python-modules/json-logging/default.nix
index 3d22f4e878baa..ee5805e39a1ba 100644
--- a/pkgs/development/python-modules/json-logging/default.nix
+++ b/pkgs/development/python-modules/json-logging/default.nix
@@ -1,22 +1,24 @@
-{ lib
-, buildPythonPackage
-, fastapi
-, fetchFromGitHub
-, flask
-, httpx
-, pytestCheckHook
-, pythonOlder
-, quart
-, requests
-, sanic
-, uvicorn
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fastapi,
+  fetchFromGitHub,
+  flask,
+  httpx,
+  pytestCheckHook,
+  pythonOlder,
+  pythonAtLeast,
+  quart,
+  requests,
+  sanic,
+  setuptools,
+  uvicorn,
 }:
 
 buildPythonPackage rec {
   pname = "json-logging";
   version = "1.5.0-rc0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -27,25 +29,29 @@ buildPythonPackage rec {
     hash = "sha256-WOAEY1pONH+Gx1b8zHZDMNgJJSn7jvMO60LYTA8z/dE=";
   };
 
-  nativeCheckInputs = [
+  # The logging module introduced the `taskName` field in Python 3.12, which the tests don't expect
+  postPatch = lib.optionalString (pythonAtLeast "3.12") ''
+    substituteInPlace tests/helpers/constants.py \
+        --replace-fail '"written_at",' '"taskName", "written_at",'
+  '';
+
+  build-system = [ setuptools ];
+
+  dependencies = [
     fastapi
     flask
     httpx
-    pytestCheckHook
     quart
     requests
     sanic
     uvicorn
-    wheel
   ];
 
-  pythonImportsCheck = [
-    "json_logging"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = [
-    "quart"
-  ];
+  pythonImportsCheck = [ "json_logging" ];
+
+  disabledTests = [ "quart" ];
 
   disabledTestPaths = [
     # Smoke tests don't always work
diff --git a/pkgs/development/python-modules/json-merge-patch/default.nix b/pkgs/development/python-modules/json-merge-patch/default.nix
index 9cafcc30fd4bd..8e7bce50297e2 100644
--- a/pkgs/development/python-modules/json-merge-patch/default.nix
+++ b/pkgs/development/python-modules/json-merge-patch/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
 }:
 
 buildPythonPackage rec {
@@ -17,11 +18,11 @@ buildPythonPackage rec {
   patches = [
     # This prevented tests from running (was using a relative import)
     # https://github.com/OpenDataServices/json-merge-patch/pull/1
-   (fetchpatch {
-     name = "fully-qualified-json-merge-patch-import-on-tests";
-     url = "https://patch-diff.githubusercontent.com/raw/OpenDataServices/json-merge-patch/pull/1.patch";
-     sha256 = "1k6xsrxsmz03nwcqsf4gf0zsfnl2r20n83npic8z6bqlpl4lidl4";
-   })
+    (fetchpatch {
+      name = "fully-qualified-json-merge-patch-import-on-tests";
+      url = "https://patch-diff.githubusercontent.com/raw/OpenDataServices/json-merge-patch/pull/1.patch";
+      sha256 = "1k6xsrxsmz03nwcqsf4gf0zsfnl2r20n83npic8z6bqlpl4lidl4";
+    })
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/json-rpc/default.nix b/pkgs/development/python-modules/json-rpc/default.nix
index 458f2edd9d9e0..e9d39c3c58635 100644
--- a/pkgs/development/python-modules/json-rpc/default.nix
+++ b/pkgs/development/python-modules/json-rpc/default.nix
@@ -1,8 +1,16 @@
-{ lib, isPy27, buildPythonPackage, fetchPypi, pytestCheckHook, mock }:
+{
+  lib,
+  isPy27,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  mock,
+}:
 
 let
   pythonEnv = lib.optional isPy27 mock;
-in buildPythonPackage rec {
+in
+buildPythonPackage rec {
   pname = "json-rpc";
   version = "1.15.0";
   format = "setuptools";
diff --git a/pkgs/development/python-modules/json-schema-for-humans/default.nix b/pkgs/development/python-modules/json-schema-for-humans/default.nix
index f758ae924496f..7d6912cc4a0f5 100644
--- a/pkgs/development/python-modules/json-schema-for-humans/default.nix
+++ b/pkgs/development/python-modules/json-schema-for-humans/default.nix
@@ -1,25 +1,25 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, click
-, dataclasses-json
-, fetchFromGitHub
-, htmlmin
-, jinja2
-, markdown2
-, poetry-core
-, pygments
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, pytz
-, pyyaml
-, requests
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  click,
+  dataclasses-json,
+  fetchFromGitHub,
+  htmlmin,
+  jinja2,
+  markdown2,
+  poetry-core,
+  pygments,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  pyyaml,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "json-schema-for-humans";
-  version = "0.47";
+  version = "1.0.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -28,19 +28,15 @@ buildPythonPackage rec {
     owner = "coveooss";
     repo = "json-schema-for-humans";
     rev = "refs/tags/v${version}";
-    hash = "sha256-yioYsCp+q5YWdIWDlNZkpaLqo++n+dV5jyEeIhUDHr4=";
+    hash = "sha256-SSMUHC4IsMIIhmRrG0ZWNO2MNKKvoBSybmEEibAY5q0=";
   };
 
-  pythonRelaxDeps = [
-    "dataclasses-json"
-  ];
+  pythonRelaxDeps = [ "dataclasses-json" ];
+
+  build-system = [ poetry-core ];
 
-  nativeBuildInputs = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     click
     dataclasses-json
     htmlmin
@@ -64,16 +60,14 @@ buildPythonPackage rec {
     "TestMdGenerate"
   ];
 
-  pythonImportsCheck = [
-    "json_schema_for_humans"
-  ];
+  pythonImportsCheck = [ "json_schema_for_humans" ];
 
   meta = with lib; {
     description = "Quickly generate HTML documentation from a JSON schema";
-    mainProgram = "generate-schema-doc";
     homepage = "https://github.com/coveooss/json-schema-for-humans";
     changelog = "https://github.com/coveooss/json-schema-for-humans/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ astro ];
+    mainProgram = "generate-schema-doc";
   };
 }
diff --git a/pkgs/development/python-modules/json-stream-rs-tokenizer/default.nix b/pkgs/development/python-modules/json-stream-rs-tokenizer/default.nix
index 9609d68c69614..9a65903e384de 100644
--- a/pkgs/development/python-modules/json-stream-rs-tokenizer/default.nix
+++ b/pkgs/development/python-modules/json-stream-rs-tokenizer/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, cargo
-, darwin
-, fetchFromGitHub
-, json-stream
-, json-stream-rs-tokenizer
-, pythonOlder
-, rustc
-, rustPlatform
-, setuptools
-, setuptools-rust
-, wheel
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cargo,
+  libiconv,
+  fetchFromGitHub,
+  json-stream,
+  json-stream-rs-tokenizer,
+  pythonOlder,
+  rustc,
+  rustPlatform,
+  setuptools,
+  setuptools-rust,
+  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "json-stream-rs-tokenizer";
-  version = "0.4.25";
+  version = "0.4.26";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     owner = "smheidrich";
     repo = "py-json-stream-rs-tokenizer";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zo/jRAWSwcOnO8eU4KhDNz44P6xDGcrZf9CflwsSvF0=";
+    hash = "sha256-ogX0KsfHRQW7+exRMKGwJiNINrOKPiTKxAqiTZyEWrg=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
@@ -44,28 +45,24 @@ buildPythonPackage rec {
     wheel
   ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
-    darwin.libiconv
-  ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   # Tests depend on json-stream, which depends on this package.
   # To avoid infinite recursion, we only enable tests when building passthru.tests.
   doCheck = false;
 
-  checkInputs = [
-    json-stream
-  ];
+  checkInputs = [ json-stream ];
 
-  pythonImportsCheck = [
-    "json_stream_rs_tokenizer"
-  ];
+  pythonImportsCheck = [ "json_stream_rs_tokenizer" ];
 
   passthru.tests = {
-    runTests = json-stream-rs-tokenizer.overrideAttrs (_: { doCheck = true; });
+    runTests = json-stream-rs-tokenizer.overrideAttrs (_: {
+      doCheck = true;
+    });
   };
 
   meta = with lib; {
-    description = "A faster tokenizer for the json-stream Python library";
+    description = "Faster tokenizer for the json-stream Python library";
     homepage = "https://github.com/smheidrich/py-json-stream-rs-tokenizer";
     license = licenses.mit;
     maintainers = with maintainers; [ winter ];
diff --git a/pkgs/development/python-modules/json-stream/default.nix b/pkgs/development/python-modules/json-stream/default.nix
index ba191bdcd2e8c..26b7ef5f8ea21 100644
--- a/pkgs/development/python-modules/json-stream/default.nix
+++ b/pkgs/development/python-modules/json-stream/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, iconv
-, pytestCheckHook
-, pythonOlder
-, requests
-, json-stream-rs-tokenizer
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  iconv,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  json-stream-rs-tokenizer,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,30 +23,20 @@ buildPythonPackage rec {
     hash = "sha256-uLRQ6o6OPCOenn440S/tk053o1PBSyl/juNFpc6yW5E=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
-    iconv
-  ];
+  buildInputs = lib.optionals stdenv.isDarwin [ iconv ];
 
   propagatedBuildInputs = [
     requests
     json-stream-rs-tokenizer
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "json_stream"
-  ];
+  pythonImportsCheck = [ "json_stream" ];
 
-  disabledTests = [
-    "test_writer"
-  ];
+  disabledTests = [ "test_writer" ];
 
   meta = with lib; {
     description = "Streaming JSON parser";
diff --git a/pkgs/development/python-modules/json-tricks/default.nix b/pkgs/development/python-modules/json-tricks/default.nix
index 1576cd141d4e4..f7345149bfc3c 100644
--- a/pkgs/development/python-modules/json-tricks/default.nix
+++ b/pkgs/development/python-modules/json-tricks/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
-, pytest7CheckHook
-, numpy
-, pandas
-, pytz
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  pytest7CheckHook,
+  numpy,
+  pandas,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     pytest7CheckHook
   ];
 
-  pythonImportsCheck = [
-    "json_tricks"
-  ];
+  pythonImportsCheck = [ "json_tricks" ];
 
   meta = with lib; {
     description = "Extra features for Python JSON handling";
diff --git a/pkgs/development/python-modules/json5/default.nix b/pkgs/development/python-modules/json5/default.nix
index 1b071aadb59c6..fd8fb22ac0eaf 100644
--- a/pkgs/development/python-modules/json5/default.nix
+++ b/pkgs/development/python-modules/json5/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, pytestCheckHook
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,17 +17,13 @@ buildPythonPackage rec {
     hash = "sha256-cshP1kraLENqWuQTlm4HPAP/0ywRRLFOJI8mteWcjR4=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "json5"
-  ];
+  pythonImportsCheck = [ "json5" ];
 
   meta = with lib; {
     homepage = "https://github.com/dpranke/pyjson5";
-    description = "A Python implementation of the JSON5 data format";
+    description = "Python implementation of the JSON5 data format";
     mainProgram = "pyjson5";
     license = licenses.asl20;
     maintainers = with maintainers; [ veehaitch ];
diff --git a/pkgs/development/python-modules/jsonable/default.nix b/pkgs/development/python-modules/jsonable/default.nix
index 075930f645e54..4dd7c96221e6f 100644
--- a/pkgs/development/python-modules/jsonable/default.nix
+++ b/pkgs/development/python-modules/jsonable/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nose
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nose,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/jsonargparse/default.nix b/pkgs/development/python-modules/jsonargparse/default.nix
index dfe1e12df9009..ec01c1beffe3f 100644
--- a/pkgs/development/python-modules/jsonargparse/default.nix
+++ b/pkgs/development/python-modules/jsonargparse/default.nix
@@ -26,7 +26,7 @@
 
 buildPythonPackage rec {
   pname = "jsonargparse";
-  version = "4.28.0";
+  version = "4.30.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "omni-us";
     repo = "jsonargparse";
     rev = "refs/tags/v${version}";
-    hash = "sha256-iw6ntzFkvMg5baOgeUzf3qV1eGGqywINd7e6N781llQ=";
+    hash = "sha256-jeQOnJ8dLUbp60Nk5v4NYKVR8VYlGz08QHIfQotO2uY=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/jsonconversion/default.nix b/pkgs/development/python-modules/jsonconversion/default.nix
index 49e3974e73505..ac068b224edcd 100644
--- a/pkgs/development/python-modules/jsonconversion/default.nix
+++ b/pkgs/development/python-modules/jsonconversion/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonRelaxDepsHook
-, pytestCheckHook
-, pdm-backend
-, numpy
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pdm-backend,
+  numpy,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,7 +22,6 @@ buildPythonPackage rec {
 
   build-system = [
     pdm-backend
-    pythonRelaxDepsHook
   ];
 
   pythonRemoveDeps = [
@@ -35,13 +34,9 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "jsonconversion"
-  ];
+  pythonImportsCheck = [ "jsonconversion" ];
 
   meta = with lib; {
     description = "This python module helps converting arbitrary Python objects into JSON strings and back";
diff --git a/pkgs/development/python-modules/jsondate/default.nix b/pkgs/development/python-modules/jsondate/default.nix
index f3b99b259b285..91190c8528fa9 100644
--- a/pkgs/development/python-modules/jsondate/default.nix
+++ b/pkgs/development/python-modules/jsondate/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchFromGitHub, buildPythonPackage, six }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  six,
+}:
 
 buildPythonPackage rec {
   version = "0.1.3";
diff --git a/pkgs/development/python-modules/jsondiff/default.nix b/pkgs/development/python-modules/jsondiff/default.nix
index dcfa56d686ae9..5b5f67ce52640 100644
--- a/pkgs/development/python-modules/jsondiff/default.nix
+++ b/pkgs/development/python-modules/jsondiff/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/jsonfield/default.nix b/pkgs/development/python-modules/jsonfield/default.nix
index 5e36636c84090..bf7e67eb6207b 100644
--- a/pkgs/development/python-modules/jsonfield/default.nix
+++ b/pkgs/development/python-modules/jsonfield/default.nix
@@ -1,4 +1,11 @@
-{ lib, fetchPypi, buildPythonPackage, django, pytestCheckHook, pytest-django }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  django,
+  pytestCheckHook,
+  pytest-django,
+}:
 
 buildPythonPackage rec {
   pname = "jsonfield";
@@ -10,7 +17,10 @@ buildPythonPackage rec {
     sha256 = "0yl828cd0m8jsyr4di6hcjdqmi31ijh5vk57mbpfl7p2gmcq8kky";
   };
 
-  nativeCheckInputs = [ pytestCheckHook pytest-django ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-django
+  ];
 
   preCheck = "export DJANGO_SETTINGS_MODULE=tests.settings";
 
diff --git a/pkgs/development/python-modules/jsonformatter/default.nix b/pkgs/development/python-modules/jsonformatter/default.nix
index f800493b2c934..3fac9cadc97cb 100644
--- a/pkgs/development/python-modules/jsonformatter/default.nix
+++ b/pkgs/development/python-modules/jsonformatter/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, setuptools
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "jsonformatter"
-  ];
+  pythonImportsCheck = [ "jsonformatter" ];
 
   meta = with lib; {
     description = "jsonformatter is a formatter for python output json log, e.g. output LogStash needed log";
diff --git a/pkgs/development/python-modules/jsonlines/default.nix b/pkgs/development/python-modules/jsonlines/default.nix
index 6eb818013e9dc..1e8a94e8e1c7c 100644
--- a/pkgs/development/python-modules/jsonlines/default.nix
+++ b/pkgs/development/python-modules/jsonlines/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, attrs
-, fetchFromGitHub
-, buildPythonPackage
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  attrs,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-eMpUk5s49OyD+cNGdAeKA2LvpXdKta2QjZIFDnIBKC8=";
   };
 
-  propagatedBuildInputs = [
-    attrs
-  ];
+  propagatedBuildInputs = [ attrs ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "jsonlines"
-  ];
+  pythonImportsCheck = [ "jsonlines" ];
 
   meta = with lib; {
     description = "Python library to simplify working with jsonlines and ndjson data";
diff --git a/pkgs/development/python-modules/jsonmerge/default.nix b/pkgs/development/python-modules/jsonmerge/default.nix
index 83275f54a9b4b..5879be3b53592 100644
--- a/pkgs/development/python-modules/jsonmerge/default.nix
+++ b/pkgs/development/python-modules/jsonmerge/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jsonschema
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jsonschema,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,6 +26,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/avian2/jsonmerge";
     changelog = "https://github.com/avian2/jsonmerge/blob/jsonmerge-${version}/ChangeLog";
     license = licenses.mit;
-    maintainers = with maintainers; [ emily ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/jsonpatch/default.nix b/pkgs/development/python-modules/jsonpatch/default.nix
index bdae44eb2d425..09c61d708944e 100644
--- a/pkgs/development/python-modules/jsonpatch/default.nix
+++ b/pkgs/development/python-modules/jsonpatch/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, jsonpointer
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jsonpointer,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,21 +21,13 @@ buildPythonPackage rec {
     hash = "sha256-JHBB64LExzHQVoFF2xcsqGlNWX/YeEBa1M/TmfeQLWI=";
   };
 
-  propagatedBuildInputs = [
-    jsonpointer
-  ];
+  propagatedBuildInputs = [ jsonpointer ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "jsonpatch"
-  ];
+  pythonImportsCheck = [ "jsonpatch" ];
 
-  pytestFlagsArray = [
-    "tests.py"
-  ];
+  pytestFlagsArray = [ "tests.py" ];
 
   meta = with lib; {
     description = "Library to apply JSON Patches according to RFC 6902";
diff --git a/pkgs/development/python-modules/jsonpath-ng/default.nix b/pkgs/development/python-modules/jsonpath-ng/default.nix
index 0496df1622ff0..5e000c6c41317 100644
--- a/pkgs/development/python-modules/jsonpath-ng/default.nix
+++ b/pkgs/development/python-modules/jsonpath-ng/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, ply
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ply,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -26,18 +27,14 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # Exclude tests that require oslotest
     "tests/test_jsonpath_rw_ext.py"
   ];
 
-  pythonImportsCheck = [
-    "jsonpath_ng"
-  ];
+  pythonImportsCheck = [ "jsonpath_ng" ];
 
   meta = with lib; {
     description = "JSONPath implementation";
diff --git a/pkgs/development/python-modules/jsonpath-rw/default.nix b/pkgs/development/python-modules/jsonpath-rw/default.nix
index 5801ba47e21f8..7a7f07f063b4d 100644
--- a/pkgs/development/python-modules/jsonpath-rw/default.nix
+++ b/pkgs/development/python-modules/jsonpath-rw/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPyPy
-, ply
-, six
-, decorator
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  ply,
+  six,
+  decorator,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,19 @@ buildPythonPackage rec {
     sha256 = "05c471281c45ae113f6103d1268ec7a4831a2e96aa80de45edc89b11fac4fbec";
   };
 
-  propagatedBuildInputs = [ ply six decorator ];
+  propagatedBuildInputs = [
+    ply
+    six
+    decorator
+  ];
 
   # ImportError: No module named tests
   doCheck = false;
 
   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";
+    description = "Robust and significantly extended implementation of JSONPath for Python, with a clear AST for metaprogramming";
     mainProgram = "jsonpath.py";
     license = licenses.asl20;
   };
-
 }
diff --git a/pkgs/development/python-modules/jsonpath/default.nix b/pkgs/development/python-modules/jsonpath/default.nix
index 00205eb1907af..be1054c04df73 100644
--- a/pkgs/development/python-modules/jsonpath/default.nix
+++ b/pkgs/development/python-modules/jsonpath/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,20 +18,14 @@ buildPythonPackage rec {
     hash = "sha256-2H7yvLze1o7pa8NMGAm2lFfs7JsMTdRxZYoSvTkQAtE=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "jsonpath"
-  ];
+  pythonImportsCheck = [ "jsonpath" ];
 
-  pytestFlagsArray = [
-    "test/test*.py"
-  ];
+  pytestFlagsArray = [ "test/test*.py" ];
 
   meta = with lib; {
-    description = "An XPath for JSON";
+    description = "XPath for JSON";
     homepage = "https://github.com/json-path/JsonPath";
     license = licenses.mit;
     maintainers = with maintainers; [ mic92 ];
diff --git a/pkgs/development/python-modules/jsonpickle/default.nix b/pkgs/development/python-modules/jsonpickle/default.nix
index fbe0efd86bb3e..dfb40be4bb61b 100644
--- a/pkgs/development/python-modules/jsonpickle/default.nix
+++ b/pkgs/development/python-modules/jsonpickle/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonAtLeast
-
-# build-system
-, setuptools
-, setuptools-scm
-
-# tests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
+
+  # build-system
+  setuptools,
+  setuptools-scm,
+
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "jsonpickle";
-  version = "3.0.4";
+  version = "3.2.1";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-obFMjWIhzY85TyqX5zXqHX7ckn+9E1sm8vhwBlfIxis=";
+    hash = "sha256-S212QJdBmfes+QNSlTZbWhpxqREJ7/oVuhcPu0jPhxw=";
   };
 
   nativeBuildInputs = [
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     rm pytest.ini
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = lib.optionals (pythonAtLeast "3.12") [
     # imports distutils
@@ -45,5 +44,4 @@ buildPythonPackage rec {
     homepage = "http://jsonpickle.github.io/";
     license = licenses.bsd3;
   };
-
 }
diff --git a/pkgs/development/python-modules/jsonpointer/default.nix b/pkgs/development/python-modules/jsonpointer/default.nix
index ff44d8ff978cf..5017a0da27d65 100644
--- a/pkgs/development/python-modules/jsonpointer/default.nix
+++ b/pkgs/development/python-modules/jsonpointer/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
   pname = "jsonpointer";
-  version = "2.4";
+  version = "3.0.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-WFzugrcCEfqeYEO3u4nbbhqklSQ0Dd6K1rYyBuponYg=";
+    hash = "sha256-Ky1ynyCRUi1hw7MfguEYcPYLaPQ/vHBct2v0uDKvWe8=";
   };
 
   meta = with lib; {
@@ -19,5 +20,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/stefankoegl/python-json-pointer";
     license = licenses.bsd2; # "Modified BSD license, says pypi"
   };
-
 }
diff --git a/pkgs/development/python-modules/jsonref/default.nix b/pkgs/development/python-modules/jsonref/default.nix
index dc12c60aed48a..9c5ce75a89b70 100644
--- a/pkgs/development/python-modules/jsonref/default.nix
+++ b/pkgs/development/python-modules/jsonref/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pdm-backend
-, pdm-pep517
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pdm-backend,
+  pdm-pep517,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,20 +27,14 @@ buildPythonPackage rec {
     pdm-pep517
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests.py"
-  ];
+  pytestFlagsArray = [ "tests.py" ];
 
-  pythonImportsCheck = [
-    "jsonref"
-  ];
+  pythonImportsCheck = [ "jsonref" ];
 
   meta = with lib; {
-    description = "An implementation of JSON Reference for Python";
+    description = "Implementation of JSON Reference for Python";
     homepage = "https://github.com/gazpachoking/jsonref";
     changelog = "https://github.com/gazpachoking/jsonref/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/jsonrpc-async/default.nix b/pkgs/development/python-modules/jsonrpc-async/default.nix
index 613d4478af877..52224a0b8dcdf 100644
--- a/pkgs/development/python-modules/jsonrpc-async/default.nix
+++ b/pkgs/development/python-modules/jsonrpc-async/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, jsonrpc-base
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jsonrpc-base,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -32,16 +33,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "tests.py"
-  ];
+  pytestFlagsArray = [ "tests.py" ];
 
-  pythonImportsCheck = [
-    "jsonrpc_async"
-  ];
+  pythonImportsCheck = [ "jsonrpc_async" ];
 
   meta = with lib; {
-    description = "A JSON-RPC client library for asyncio";
+    description = "JSON-RPC client library for asyncio";
     homepage = "https://github.com/emlove/jsonrpc-async";
     license = licenses.bsd3;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/development/python-modules/jsonrpc-base/default.nix b/pkgs/development/python-modules/jsonrpc-base/default.nix
index f10f9bbb8b829..2b4f81d0706ce 100644
--- a/pkgs/development/python-modules/jsonrpc-base/default.nix
+++ b/pkgs/development/python-modules/jsonrpc-base/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,25 +22,19 @@ buildPythonPackage rec {
     hash = "sha256-AbpuAW+wuGc+Vj4FDFlyB2YbiwDxPLuyAGiNcmGU+Ss=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "tests.py"
-  ];
+  pytestFlagsArray = [ "tests.py" ];
 
-  pythonImportsCheck = [
-    "jsonrpc_base"
-  ];
+  pythonImportsCheck = [ "jsonrpc_base" ];
 
   meta = with lib; {
-    description = "A JSON-RPC client library base interface";
+    description = "JSON-RPC client library base interface";
     homepage = "https://github.com/emlove/jsonrpc-base";
     license = licenses.bsd3;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/development/python-modules/jsonrpc-websocket/default.nix b/pkgs/development/python-modules/jsonrpc-websocket/default.nix
index eb50c3f3a32ed..1ec395bc5a505 100644
--- a/pkgs/development/python-modules/jsonrpc-websocket/default.nix
+++ b/pkgs/development/python-modules/jsonrpc-websocket/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, jsonrpc-base
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jsonrpc-base,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-CdYa4gcbG3EM1glxLU1hyqbNse87KJKjwSRQSFfDMM0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -44,12 +43,10 @@ buildPythonPackage rec {
     "tests.py"
   ];
 
-  pythonImportsCheck = [
-    "jsonrpc_websocket"
-  ];
+  pythonImportsCheck = [ "jsonrpc_websocket" ];
 
   meta = with lib; {
-    description = "A JSON-RPC websocket client library for asyncio";
+    description = "JSON-RPC websocket client library for asyncio";
     homepage = "https://github.com/emlove/jsonrpc-websocket";
     license = licenses.bsd3;
     maintainers = with maintainers; [ peterhoeg ];
diff --git a/pkgs/development/python-modules/jsonrpclib-pelix/default.nix b/pkgs/development/python-modules/jsonrpclib-pelix/default.nix
index 0ad585b3e2dc2..5cf7fe1f5b803 100644
--- a/pkgs/development/python-modules/jsonrpclib-pelix/default.nix
+++ b/pkgs/development/python-modules/jsonrpclib-pelix/default.nix
@@ -1,16 +1,17 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
 }:
 
 buildPythonPackage rec {
   pname = "jsonrpclib-pelix";
-  version = "0.4.3.2";
+  version = "0.4.3.3";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-6eCzPvqPog2BfdeN/Z5M2zlnyKXTy1p4O+HugcSonHw=";
+    hash = "sha256-xJT+cQCxE5sTEUacKLwy0cuS5P8fRRH7cdaAcgXcN3M=";
   };
 
   doCheck = false; # test_suite="tests" in setup.py but no tests in pypi.
diff --git a/pkgs/development/python-modules/jsons/default.nix b/pkgs/development/python-modules/jsons/default.nix
index 9a5116c94d6a4..dc23f88173201 100644
--- a/pkgs/development/python-modules/jsons/default.nix
+++ b/pkgs/development/python-modules/jsons/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, attrs
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, typish
-, tzdata
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  typish,
+  tzdata,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-7OIByHvsqhKFOkb1q2kuxmbkkleryavYgp/T4U5hvGk=";
   };
 
-  propagatedBuildInputs = [
-    typish
-  ];
+  propagatedBuildInputs = [ typish ];
 
   nativeCheckInputs = [
     attrs
@@ -44,9 +43,7 @@ buildPythonPackage rec {
     "test_dump_load_parameterized_collections"
   ];
 
-  pythonImportsCheck = [
-    "jsons"
-  ];
+  pythonImportsCheck = [ "jsons" ];
 
   meta = with lib; {
     description = "Turn Python objects into dicts or json strings and back";
diff --git a/pkgs/development/python-modules/jsonschema-path/default.nix b/pkgs/development/python-modules/jsonschema-path/default.nix
index 1fad4ed64e106..153c584047a96 100644
--- a/pkgs/development/python-modules/jsonschema-path/default.nix
+++ b/pkgs/development/python-modules/jsonschema-path/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, pythonRelaxDepsHook
-, pathable
-, pyyaml
-, referencing
-, pytestCheckHook
-, responses
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  pathable,
+  pyyaml,
+  referencing,
+  pytestCheckHook,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -32,12 +32,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "referencing"
-  ];
+  pythonRelaxDeps = [ "referencing" ];
 
   propagatedBuildInputs = [
     pathable
diff --git a/pkgs/development/python-modules/jsonschema-spec/default.nix b/pkgs/development/python-modules/jsonschema-spec/default.nix
index c41d8b35cf096..f424b6db46493 100644
--- a/pkgs/development/python-modules/jsonschema-spec/default.nix
+++ b/pkgs/development/python-modules/jsonschema-spec/default.nix
@@ -1,21 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build
-, poetry-core
+  # build
+  poetry-core,
 
-# propagates
-, pathable
-, pyyaml
-, referencing
-, requests
+  # propagates
+  pathable,
+  pyyaml,
+  referencing,
+  requests,
 
-# tests
-, pytestCheckHook
-, responses
+  # tests
+  pytestCheckHook,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -41,12 +41,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "referencing"
-  ];
+  pythonRelaxDeps = [ "referencing" ];
 
   propagatedBuildInputs = [
     pathable
diff --git a/pkgs/development/python-modules/jsonschema-specifications/default.nix b/pkgs/development/python-modules/jsonschema-specifications/default.nix
index 6d4a6478374b8..989f5c5cb1e24 100644
--- a/pkgs/development/python-modules/jsonschema-specifications/default.nix
+++ b/pkgs/development/python-modules/jsonschema-specifications/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatch-vcs
-, hatchling
-, importlib-resources
-, pytestCheckHook
-, pythonOlder
-, referencing
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatch-vcs,
+  hatchling,
+  importlib-resources,
+  pytestCheckHook,
+  pythonOlder,
+  referencing,
 }:
 
 buildPythonPackage rec {
@@ -29,17 +30,11 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     referencing
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    importlib-resources
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "jsonschema_specifications"
-  ];
+  pythonImportsCheck = [ "jsonschema_specifications" ];
 
   meta = with lib; {
     description = "Support files exposing JSON from the JSON Schema specifications";
diff --git a/pkgs/development/python-modules/jsonschema/default.nix b/pkgs/development/python-modules/jsonschema/default.nix
index 97147b055e93b..b0db522f61e91 100644
--- a/pkgs/development/python-modules/jsonschema/default.nix
+++ b/pkgs/development/python-modules/jsonschema/default.nix
@@ -1,41 +1,42 @@
-{ lib
-, attrs
-, buildPythonPackage
-, fetchPypi
-, hatch-fancy-pypi-readme
-, hatch-vcs
-, hatchling
-, importlib-resources
-, jsonschema-specifications
-, pkgutil-resolve-name
-, pip
-, pytestCheckHook
-, pythonOlder
-, referencing
-, rpds-py
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  fetchPypi,
+  hatch-fancy-pypi-readme,
+  hatch-vcs,
+  hatchling,
+  importlib-resources,
+  jsonschema-specifications,
+  pkgutil-resolve-name,
+  pip,
+  pytestCheckHook,
+  pythonOlder,
+  referencing,
+  rpds-py,
 
-# optionals
-, fqdn
-, idna
-, isoduration
-, jsonpointer
-, rfc3339-validator
-, rfc3986-validator
-, rfc3987
-, uri-template
-, webcolors
+  # optionals
+  fqdn,
+  idna,
+  isoduration,
+  jsonpointer,
+  rfc3339-validator,
+  rfc3986-validator,
+  rfc3987,
+  uri-template,
+  webcolors,
 }:
 
 buildPythonPackage rec {
   pname = "jsonschema";
-  version = "4.21.1";
+  version = "4.22.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-hXJ8ACefX6a+2+YjjSqmQDvt2LSGSrESB9B988wbLuU=";
+    hash = "sha256-WyLUNKRZNRGa+ZBVLIYuXW1WTo9mASBrMFph/fZhorc=";
   };
 
   postPatch = ''
@@ -48,15 +49,17 @@ buildPythonPackage rec {
     hatchling
   ];
 
-  propagatedBuildInputs = [
-    attrs
-    jsonschema-specifications
-    referencing
-    rpds-py
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    importlib-resources
-    pkgutil-resolve-name
-  ];
+  propagatedBuildInputs =
+    [
+      attrs
+      jsonschema-specifications
+      referencing
+      rpds-py
+    ]
+    ++ lib.optionals (pythonOlder "3.9") [
+      importlib-resources
+      pkgutil-resolve-name
+    ];
 
   passthru.optional-dependencies = {
     format = [
@@ -86,12 +89,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "jsonschema"
-  ];
+  pythonImportsCheck = [ "jsonschema" ];
 
   meta = with lib; {
-    description = "An implementation of JSON Schema validation";
+    description = "Implementation of JSON Schema validation";
     mainProgram = "jsonschema";
     homepage = "https://github.com/python-jsonschema/jsonschema";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/jsonstreams/default.nix b/pkgs/development/python-modules/jsonstreams/default.nix
index 6fcd075c8445a..58c3513e1ee08 100644
--- a/pkgs/development/python-modules/jsonstreams/default.nix
+++ b/pkgs/development/python-modules/jsonstreams/default.nix
@@ -1,4 +1,11 @@
-{ stdenv, lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook, six, }:
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "jsonstreams";
@@ -19,7 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A JSON streaming writer";
+    description = "JSON streaming writer";
     homepage = "https://github.com/dcbaker/jsonstreams";
     license = licenses.mit;
     maintainers = with maintainers; [ chkno ];
diff --git a/pkgs/development/python-modules/jstyleson/default.nix b/pkgs/development/python-modules/jstyleson/default.nix
index 9c2008d1f7f7f..c38e847872753 100644
--- a/pkgs/development/python-modules/jstyleson/default.nix
+++ b/pkgs/development/python-modules/jstyleson/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,14 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-s/0DDfy+07TuUNjHPqKRT3xMMQl6spZCacB7Dweof7A=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "jstyleson" ];
 
   meta = with lib; {
-    description = "A python library to parse JSON with js-style comments";
+    description = "Python library to parse JSON with js-style comments";
     homepage = "https://github.com/linjackson78/jstyleson";
     license = licenses.mit;
     maintainers = with maintainers; [ ambroisie ];
diff --git a/pkgs/development/python-modules/jug/default.nix b/pkgs/development/python-modules/jug/default.nix
index 315b156290417..ed62d63062217 100644
--- a/pkgs/development/python-modules/jug/default.nix
+++ b/pkgs/development/python-modules/jug/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, bottle
-, buildPythonPackage
-, fetchPypi
-, numpy
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, redis
+{
+  lib,
+  bottle,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  redis,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-Y2TWqJi7GjmWUFpe1b150NgwRw9VKhCk5EoN5NDcPXU=";
   };
 
-  propagatedBuildInputs = [
-    bottle
-  ];
+  propagatedBuildInputs = [ bottle ];
 
   nativeCheckInputs = [
     numpy
@@ -33,12 +32,10 @@ buildPythonPackage rec {
     redis
   ];
 
-  pythonImportsCheck = [
-    "jug"
-  ];
+  pythonImportsCheck = [ "jug" ];
 
   meta = with lib; {
-    description = "A Task-Based Parallelization Framework";
+    description = "Task-Based Parallelization Framework";
     homepage = "https://jug.readthedocs.io/";
     changelog = "https://github.com/luispedro/jug/blob/v${version}/ChangeLog";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/julius/default.nix b/pkgs/development/python-modules/julius/default.nix
index a261b43454d62..5efa7622b962c 100644
--- a/pkgs/development/python-modules/julius/default.nix
+++ b/pkgs/development/python-modules/julius/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, wheel
-, torch
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  wheel,
+  torch,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-PA9fUwbX1gFvzJUZaydMrm8H4slZbu0xTk52QVVPuwg=";
   };
 
-  propagatedBuildInputs = [
-    torch
-  ];
+  propagatedBuildInputs = [ torch ];
 
   nativeBuildInputs = [
     setuptools
diff --git a/pkgs/development/python-modules/junit-xml/default.nix b/pkgs/development/python-modules/junit-xml/default.nix
index 1de05ff7e0678..8ec89b19beb7d 100644
--- a/pkgs/development/python-modules/junit-xml/default.nix
+++ b/pkgs/development/python-modules/junit-xml/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, six
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  six,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/junit2html/default.nix b/pkgs/development/python-modules/junit2html/default.nix
index bc21fdb74bf7a..2e26887b520ba 100644
--- a/pkgs/development/python-modules/junit2html/default.nix
+++ b/pkgs/development/python-modules/junit2html/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jinja2
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jinja2,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -19,20 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-1q6KpKdrZvp8XvxGCkoorlZDDgvGg/imTX8+NEOBbWs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    jinja2
-  ];
+  propagatedBuildInputs = [ jinja2 ];
 
   # Tests are not shipped with PyPi and source is not tagged
   doCheck = false;
 
-  pythonImportsCheck = [
-    "junit2htmlreport"
-  ];
+  pythonImportsCheck = [ "junit2htmlreport" ];
 
   meta = with lib; {
     description = "Generate HTML reports from Junit results";
diff --git a/pkgs/development/python-modules/junitparser/default.nix b/pkgs/development/python-modules/junitparser/default.nix
index 490f919a712a1..2ff93168391a5 100644
--- a/pkgs/development/python-modules/junitparser/default.nix
+++ b/pkgs/development/python-modules/junitparser/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, future
-, glibcLocales
-, lxml
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  future,
+  glibcLocales,
+  lxml,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,11 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ future ];
 
-  nativeCheckInputs = [ unittestCheckHook lxml glibcLocales ];
+  nativeCheckInputs = [
+    unittestCheckHook
+    lxml
+    glibcLocales
+  ];
 
   unittestFlagsArray = [ "-v" ];
 
diff --git a/pkgs/development/python-modules/jupyter-book/default.nix b/pkgs/development/python-modules/jupyter-book/default.nix
index 202c65e42a087..620ca92312088 100644
--- a/pkgs/development/python-modules/jupyter-book/default.nix
+++ b/pkgs/development/python-modules/jupyter-book/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, flit-core
-, click
-, jinja2
-, jsonschema
-, linkify-it-py
-, myst-nb
-, myst-parser
-, pyyaml
-, sphinx
-, sphinx-comments
-, sphinx-copybutton
-, sphinx-external-toc
-, sphinx-jupyterbook-latex
-, sphinx-design
-, sphinx-thebe
-, sphinx-book-theme
-, sphinx-togglebutton
-, sphinxcontrib-bibtex
-, sphinx-multitoc-numbering
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  flit-core,
+  click,
+  jinja2,
+  jsonschema,
+  linkify-it-py,
+  myst-nb,
+  myst-parser,
+  pyyaml,
+  sphinx,
+  sphinx-comments,
+  sphinx-copybutton,
+  sphinx-external-toc,
+  sphinx-jupyterbook-latex,
+  sphinx-design,
+  sphinx-thebe,
+  sphinx-book-theme,
+  sphinx-togglebutton,
+  sphinxcontrib-bibtex,
+  sphinx-multitoc-numbering,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
     hash = "sha256-U5xdBJNUYgDZ3ie9S1936uoDEV+JN/gl1P+Cs4AamH4=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     click
diff --git a/pkgs/development/python-modules/jupyter-c-kernel/default.nix b/pkgs/development/python-modules/jupyter-c-kernel/default.nix
index c15d8dff3f6f7..77c3f6379f16c 100644
--- a/pkgs/development/python-modules/jupyter-c-kernel/default.nix
+++ b/pkgs/development/python-modules/jupyter-c-kernel/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, ipykernel
-, gcc
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  ipykernel,
+  gcc,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/jupyter-cache/default.nix b/pkgs/development/python-modules/jupyter-cache/default.nix
index e2e597dd4a85f..1d57a7a5d8cfc 100644
--- a/pkgs/development/python-modules/jupyter-cache/default.nix
+++ b/pkgs/development/python-modules/jupyter-cache/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, attrs
-, click
-, flit-core
-, importlib-metadata
-, nbclient
-, nbformat
-, pyyaml
-, sqlalchemy
-, tabulate
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  attrs,
+  click,
+  flit-core,
+  importlib-metadata,
+  nbclient,
+  nbformat,
+  pyyaml,
+  sqlalchemy,
+  tabulate,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-0Pp9dTPNV5gZjYiJMYJpqME4LtOyL2IsCak1ZSH0hoc=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     attrs
@@ -44,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "jupyter_cache" ];
 
   meta = with lib; {
-    description = "A defined interface for working with a cache of jupyter notebooks";
+    description = "Defined interface for working with a cache of jupyter notebooks";
     mainProgram = "jcache";
     homepage = "https://github.com/executablebooks/jupyter-cache";
     changelog = "https://github.com/executablebooks/jupyter-cache/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/jupyter-client/default.nix b/pkgs/development/python-modules/jupyter-client/default.nix
index a556885e84399..82778299c799c 100644
--- a/pkgs/development/python-modules/jupyter-client/default.nix
+++ b/pkgs/development/python-modules/jupyter-client/default.nix
@@ -1,44 +1,39 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jupyter-core
-, hatchling
-, python-dateutil
-, pyzmq
-, tornado
-, traitlets
-, pythonOlder
-, importlib-metadata
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jupyter-core,
+  hatchling,
+  python-dateutil,
+  pyzmq,
+  tornado,
+  traitlets,
+  pythonOlder,
+  importlib-metadata,
 }:
 
 buildPythonPackage rec {
   pname = "jupyter-client";
-  version = "8.6.1";
+  version = "8.6.2";
   pyproject = true;
 
   src = fetchPypi {
     pname = "jupyter_client";
     inherit version;
-    hash = "sha256-6EJRXiurjhkYbYn9/qer0V453VgflOOZ8A4q9aFlLT8=";
+    hash = "sha256-K9oU1V7lulhVKoxTrkPSFa2YaIU0iSE/N9oGDO1U2N8=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     jupyter-core
     python-dateutil
     pyzmq
     tornado
     traitlets
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
-  pythonImportsCheck = [
-    "jupyter_client"
-  ];
+  pythonImportsCheck = [ "jupyter_client" ];
 
   # Circular dependency with ipykernel
   doCheck = false;
@@ -48,5 +43,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/jupyter/jupyter_client";
     changelog = "https://github.com/jupyter/jupyter_client/blob/v${version}/CHANGELOG.md";
     license = lib.licenses.bsd3;
+    maintainers = lib.teams.jupyter.members;
   };
 }
diff --git a/pkgs/development/python-modules/jupyter-collaboration/default.nix b/pkgs/development/python-modules/jupyter-collaboration/default.nix
index 1c01c6d4d1d69..3c54a2140cabf 100644
--- a/pkgs/development/python-modules/jupyter-collaboration/default.nix
+++ b/pkgs/development/python-modules/jupyter-collaboration/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, hatch-jupyter-builder
-, hatch-nodejs-version
-, hatchling
-, jsonschema
-, jupyter-events
-, jupyter-server
-, jupyter-server-fileid
-, jupyter-ydoc
-, jupyterlab
-, pycrdt-websocket
-, pytest-jupyter
-, pytestCheckHook
-, websockets
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  hatch-jupyter-builder,
+  hatch-nodejs-version,
+  hatchling,
+  jsonschema,
+  jupyter-events,
+  jupyter-server,
+  jupyter-server-fileid,
+  jupyter-ydoc,
+  jupyterlab,
+  pycrdt-websocket,
+  pytest-jupyter,
+  pytestCheckHook,
+  websockets,
 }:
 
 buildPythonPackage rec {
   pname = "jupyter-collaboration";
-  version = "2.0.11";
+  version = "2.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +28,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "jupyter_collaboration";
     inherit version;
-    hash = "sha256-K7HN5yzadY5Sb6Sfn/K/QCzu14AcDEGHq+TSHkLhgTY=";
+    hash = "sha256-T1DCXG2BEmwW3q+S0r14o5svy4ZpDc5pa0AGt0DXHB8=";
   };
 
   postPatch = ''
@@ -56,21 +57,19 @@ buildPythonPackage rec {
     websockets
   ];
 
-  pythonImportsCheck = [
-    "jupyter_collaboration"
-  ];
+  pythonImportsCheck = [ "jupyter_collaboration" ];
 
   preCheck = ''
     export HOME=$TEMP
   '';
 
-  pytestFlagsArray = [
-    "-Wignore::DeprecationWarning"
-  ];
+  pytestFlagsArray = [ "-Wignore::DeprecationWarning" ];
 
   disabledTests = [
     # ExceptionGroup: unhandled errors in a TaskGroup (1 sub-exception)
     "test_dirty"
+    # causes a hang
+    "test_rooms"
   ];
 
   __darwinAllowLocalNetworking = true;
diff --git a/pkgs/development/python-modules/jupyter-console/default.nix b/pkgs/development/python-modules/jupyter-console/default.nix
index 81276bcc411eb..5ae844ad91edb 100644
--- a/pkgs/development/python-modules/jupyter-console/default.nix
+++ b/pkgs/development/python-modules/jupyter-console/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, hatchling
-, ipykernel
-, exceptiongroup
-, ipython
-, jupyter-client
-, jupyter-core
-, prompt-toolkit
-, pygments
-, pyzmq
-, traitlets
-, flaky
-, pexpect
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  hatchling,
+  ipykernel,
+  exceptiongroup,
+  ipython,
+  jupyter-client,
+  jupyter-core,
+  prompt-toolkit,
+  pygments,
+  pyzmq,
+  traitlets,
+  flaky,
+  pexpect,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     hash = "sha256-VmpL8xyHrb+t8izfhG4wabWace1dpx1rpNiqrRSlNTk=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   postPatch = ''
     # use wrapped executable in tests
@@ -51,13 +50,9 @@ buildPythonPackage rec {
     pygments
     pyzmq
     traitlets
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    exceptiongroup
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ exceptiongroup ];
 
-  pythonImportsCheck = [
-    "jupyter_console"
-  ];
+  pythonImportsCheck = [ "jupyter_console" ];
 
   nativeCheckInputs = [
     flaky
diff --git a/pkgs/development/python-modules/jupyter-contrib-core/default.nix b/pkgs/development/python-modules/jupyter-contrib-core/default.nix
index 0da8c5f4f1515..a4e77af78b71c 100644
--- a/pkgs/development/python-modules/jupyter-contrib-core/default.nix
+++ b/pkgs/development/python-modules/jupyter-contrib-core/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, jupyter-core
-, notebook
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jupyter-core,
+  notebook,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/jupyter-contrib-nbextensions/default.nix b/pkgs/development/python-modules/jupyter-contrib-nbextensions/default.nix
index c509a0972bed4..622ad6ceff84f 100644
--- a/pkgs/development/python-modules/jupyter-contrib-nbextensions/default.nix
+++ b/pkgs/development/python-modules/jupyter-contrib-nbextensions/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, ipython-genutils
-, jupyter-contrib-core
-, jupyter-highlight-selected-word
-, jupyter-nbextensions-configurator
-, lxml
-, nose
-, pytestCheckHook
-, notebook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ipython-genutils,
+  jupyter-contrib-core,
+  jupyter-highlight-selected-word,
+  jupyter-nbextensions-configurator,
+  lxml,
+  nose,
+  pytestCheckHook,
+  notebook,
 }:
 
 buildPythonPackage rec {
@@ -48,7 +49,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "jupyter_contrib_nbextensions" ];
 
   meta = with lib; {
-    description = "A collection of various notebook extensions for Jupyter";
+    description = "Collection of various notebook extensions for Jupyter";
     homepage = "https://github.com/ipython-contrib/jupyter_contrib_nbextensions";
     license = licenses.bsd3;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/jupyter-core/default.nix b/pkgs/development/python-modules/jupyter-core/default.nix
index 799e098920a8e..22453d078491f 100644
--- a/pkgs/development/python-modules/jupyter-core/default.nix
+++ b/pkgs/development/python-modules/jupyter-core/default.nix
@@ -1,12 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, hatchling
-, platformdirs
-, traitlets
-, pip
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  hatchling,
+  platformdirs,
+  traitlets,
+  pip,
+  pytestCheckHook,
+
+  # Reverse dependency
+  sage,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +27,9 @@ buildPythonPackage rec {
     hash = "sha256-qu25ryZreRPHoubFJTFusGdkTPHbl/yl94g+XU5A5Mc=";
   };
 
-  patches = [
-    ./tests_respect_pythonpath.patch
-  ];
+  patches = [ ./tests_respect_pythonpath.patch ];
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     platformdirs
@@ -61,6 +61,10 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "jupyter_core" ];
 
+  passthru.tests = {
+    inherit sage;
+  };
+
   meta = with lib; {
     description = "Base package on which Jupyter projects rely";
     homepage = "https://jupyter.org/";
diff --git a/pkgs/development/python-modules/jupyter-events/default.nix b/pkgs/development/python-modules/jupyter-events/default.nix
index 855034ca4b2a7..0451a3fb74ef1 100644
--- a/pkgs/development/python-modules/jupyter-events/default.nix
+++ b/pkgs/development/python-modules/jupyter-events/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build
-, hatchling
+  # build
+  hatchling,
 
-# runtime
-, jsonschema
-, python-json-logger
-, pyyaml
-, referencing
-, traitlets
+  # runtime
+  jsonschema,
+  python-json-logger,
+  pyyaml,
+  referencing,
+  traitlets,
 
-# optionals
-, click
-, rich
+  # optionals
+  click,
+  rich,
 
-# tests
-, pytest-asyncio
-, pytest-console-scripts
-, pytestCheckHook
+  # tests
+  pytest-asyncio,
+  pytest-console-scripts,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
     hash = "sha256-8aps8aNgXw+XbDgtCvWw+Ij1Cm1N0G+wcL35ySkofOk=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     jsonschema
@@ -47,8 +46,7 @@ buildPythonPackage rec {
     pyyaml
     referencing
     traitlets
-  ]
-  ++ jsonschema.optional-dependencies.format-nongpl;
+  ] ++ jsonschema.optional-dependencies.format-nongpl;
 
   passthru.optional-dependencies = {
     cli = [
@@ -67,9 +65,7 @@ buildPythonPackage rec {
     export PATH="$out/bin:$PATH"
   '';
 
-  pythonImportsCheck = [
-    "jupyter_events"
-  ];
+  pythonImportsCheck = [ "jupyter_events" ];
 
   meta = with lib; {
     changelog = "https://github.com/jupyter/jupyter_events/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/jupyter-highlight-selected-word/default.nix b/pkgs/development/python-modules/jupyter-highlight-selected-word/default.nix
index 06d7247ed3489..c9d84b130fdd2 100644
--- a/pkgs/development/python-modules/jupyter-highlight-selected-word/default.nix
+++ b/pkgs/development/python-modules/jupyter-highlight-selected-word/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/jupyter-lsp/default.nix b/pkgs/development/python-modules/jupyter-lsp/default.nix
index 2f1342839db30..90ed978eba27b 100644
--- a/pkgs/development/python-modules/jupyter-lsp/default.nix
+++ b/pkgs/development/python-modules/jupyter-lsp/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, jupyter-server
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  jupyter-server,
 }:
 
 buildPythonPackage rec {
@@ -15,13 +16,9 @@ buildPythonPackage rec {
     hash = "sha256-eTFHoFrURvgJ/VPvHNGan1JW/Qota3zpQ6mCy09UUAE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    jupyter-server
-  ];
+  propagatedBuildInputs = [ jupyter-server ];
   # tests require network
   doCheck = false;
   pythonImportsCheck = [ "jupyter_lsp" ];
@@ -34,4 +31,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ ];
   };
 }
-
diff --git a/pkgs/development/python-modules/jupyter-nbextensions-configurator/default.nix b/pkgs/development/python-modules/jupyter-nbextensions-configurator/default.nix
index bf3506e9572ab..a1e54450fbcbc 100644
--- a/pkgs/development/python-modules/jupyter-nbextensions-configurator/default.nix
+++ b/pkgs/development/python-modules/jupyter-nbextensions-configurator/default.nix
@@ -1,40 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, jupyter-contrib-core
-, jupyter-core
-, jupyter-server
-, notebook
-, pyyaml
-, tornado
-, nose
-, pytestCheckHook
-, selenium
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jupyter-contrib-core,
+  jupyter-core,
+  jupyter-server,
+  notebook,
+  pyyaml,
+  tornado,
+  pytestCheckHook,
+  selenium,
 }:
 
 buildPythonPackage rec {
   pname = "jupyter-nbextensions-configurator";
-  version = "0.6.3";
-  format = "setuptools";
+  version = "0.6.4";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "jupyter-contrib";
     repo = "jupyter_nbextensions_configurator";
     rev = "refs/tags/${version}";
-    hash = "sha256-ovKYHATRAC5a5qTMv32ohU2gJd15/fRKXa5HI0zGp/0=";
+    hash = "sha256-U4M6pGV/DdE+DOVMVaoBXOhfRERt+yUa+gADgqRRLn4=";
   };
 
-  patches = [
-    # https://github.com/Jupyter-contrib/jupyter_nbextensions_configurator/pull/166
-    (fetchpatch {
-      name = "notebook-v7-compat.patch";
-      url = "https://github.com/Jupyter-contrib/jupyter_nbextensions_configurator/commit/a600cef9222ca0c61a6912eb29d8fa0323409705.patch";
-      hash = "sha256-Rt9r5ZOgnhBcs18+ET5+k0/t980I2DiVN8oHkGLp0iw=";
-    })
-  ];
-
-  propagatedBuildInputs = [
+  dependencies = [
     jupyter-contrib-core
     jupyter-core
     jupyter-server
@@ -44,7 +34,6 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    nose
     pytestCheckHook
     selenium
   ];
@@ -58,11 +47,12 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "jupyter_nbextensions_configurator" ];
 
-  meta = with lib; {
-    description = "A jupyter notebook serverextension providing config interfaces for nbextensions";
+  meta = {
+    description = "Jupyter notebook serverextension providing config interfaces for nbextensions";
     mainProgram = "jupyter-nbextensions_configurator";
     homepage = "https://github.com/jupyter-contrib/jupyter_nbextensions_configurator";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ GaetanLepage ];
+    changelog = "https://github.com/Jupyter-contrib/jupyter_nbextensions_configurator/releases/tag/${version}";
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
   };
 }
diff --git a/pkgs/development/python-modules/jupyter-packaging/default.nix b/pkgs/development/python-modules/jupyter-packaging/default.nix
index 38dd7927d1eb1..b4220824ae93a 100644
--- a/pkgs/development/python-modules/jupyter-packaging/default.nix
+++ b/pkgs/development/python-modules/jupyter-packaging/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, deprecation
-, hatchling
-, pythonOlder
-, packaging
-, pytestCheckHook
-, pytest-timeout
-, setuptools
-, tomlkit
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  deprecation,
+  hatchling,
+  pythonOlder,
+  packaging,
+  pytestCheckHook,
+  pytest-timeout,
+  setuptools,
+  tomlkit,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     deprecation
@@ -69,6 +68,5 @@ buildPythonPackage rec {
     description = "Jupyter Packaging Utilities";
     homepage = "https://github.com/jupyter/jupyter-packaging";
     license = licenses.bsd3;
-    maintainers = [ maintainers.elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/jupyter-repo2docker/default.nix b/pkgs/development/python-modules/jupyter-repo2docker/default.nix
index c782bd78540c8..2a5f0a783e14c 100644
--- a/pkgs/development/python-modules/jupyter-repo2docker/default.nix
+++ b/pkgs/development/python-modules/jupyter-repo2docker/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, chardet
-, docker
-, entrypoints
-, escapism
-, fetchFromGitHub
-, iso8601
-, jinja2
-, pkgs-docker
-, python-json-logger
-, pythonOlder
-, requests
-, ruamel-yaml
-, semver
-, setuptools
-, toml
-, traitlets
+{
+  lib,
+  buildPythonPackage,
+  chardet,
+  docker,
+  entrypoints,
+  escapism,
+  fetchFromGitHub,
+  iso8601,
+  jinja2,
+  pkgs-docker,
+  python-json-logger,
+  pythonOlder,
+  requests,
+  ruamel-yaml,
+  semver,
+  setuptools,
+  toml,
+  traitlets,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     hash = "sha256-D8sgeyfQjEkBYck/CikAVNZzUSl1R9uXSv75DTXT5U0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     chardet
diff --git a/pkgs/development/python-modules/jupyter-server-fileid/default.nix b/pkgs/development/python-modules/jupyter-server-fileid/default.nix
index 9fea67c3faa2c..7f05c8c95863e 100644
--- a/pkgs/development/python-modules/jupyter-server-fileid/default.nix
+++ b/pkgs/development/python-modules/jupyter-server-fileid/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, hatchling
-, jupyter-events
-, jupyter-server
-, pytest-jupyter
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  hatchling,
+  jupyter-events,
+  jupyter-server,
+  pytest-jupyter,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-ApCDBVjJqpkC5FGEjU/LxwWBunTkL6i5Ki85M6MMLE0=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     jupyter-events
@@ -48,7 +47,7 @@ buildPythonPackage rec {
 
   meta = {
     changelog = "https://github.com/jupyter-server/jupyter_server_fileid/blob/${src.rev}/CHANGELOG.md";
-    description = "An extension that maintains file IDs for documents in a running Jupyter Server";
+    description = "Extension that maintains file IDs for documents in a running Jupyter Server";
     mainProgram = "jupyter-fileid";
     homepage = "https://github.com/jupyter-server/jupyter_server_fileid";
     license = lib.licenses.bsd3;
diff --git a/pkgs/development/python-modules/jupyter-server-mathjax/default.nix b/pkgs/development/python-modules/jupyter-server-mathjax/default.nix
index 1f6c3b3547694..ec9dd063805a2 100644
--- a/pkgs/development/python-modules/jupyter-server-mathjax/default.nix
+++ b/pkgs/development/python-modules/jupyter-server-mathjax/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jupyter-packaging
-, setuptools
-, jupyter-server
-, pytest-jupyter
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jupyter-packaging,
+  setuptools,
+  jupyter-server,
+  pytest-jupyter,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  propagatedBuildInputs = [
-    jupyter-server
-  ];
+  propagatedBuildInputs = [ jupyter-server ];
 
   nativeCheckInputs = [
     pytest-jupyter
diff --git a/pkgs/development/python-modules/jupyter-server-terminals/default.nix b/pkgs/development/python-modules/jupyter-server-terminals/default.nix
index 192d5c6f37112..91ca1fb69273a 100644
--- a/pkgs/development/python-modules/jupyter-server-terminals/default.nix
+++ b/pkgs/development/python-modules/jupyter-server-terminals/default.nix
@@ -1,57 +1,58 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build
-, hatchling
+  # build
+  hatchling,
 
-# runtime
-, terminado
+  # runtime
+  terminado,
 
-# tests
-, pytest-jupyter
-, pytest-timeout
-, pytestCheckHook
+  # tests
+  pytest-jupyter,
+  pytest-timeout,
+  pytestCheckHook,
 }:
 
-let self = buildPythonPackage rec {
-  pname = "jupyter-server-terminals";
-  version = "0.5.3";
-  pyproject = true;
-
-  src = fetchFromGitHub {
-    owner = "jupyter-server";
-    repo = "jupyter_server_terminals";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-af7jBscGkbekXgfDxwAfrJSY1uEuIGfzzSsjaPdlYcY=";
-  };
-
-  nativeBuildInputs = [
-    hatchling
-  ];
-
-  propagatedBuildInputs = [
-    terminado
-  ];
-
-  doCheck = false; # infinite recursion
-
-  nativeCheckInputs = [
-    pytest-jupyter
-    pytest-timeout
-    pytestCheckHook
-  ] ++ pytest-jupyter.optional-dependencies.server;
-
-  passthru.tests = {
-    check = self.overridePythonAttrs (_: { doCheck = true; });
-  };
-
-  meta = with lib; {
-    changelog = "https://github.com/jupyter-server/jupyter_server_terminals/releases/tag/v${version}";
-    description = "A Jupyter Server Extension Providing Support for Terminals";
-    homepage = "https://github.com/jupyter-server/jupyter_server_terminals";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+let
+  self = buildPythonPackage rec {
+    pname = "jupyter-server-terminals";
+    version = "0.5.3";
+    pyproject = true;
+
+    src = fetchFromGitHub {
+      owner = "jupyter-server";
+      repo = "jupyter_server_terminals";
+      rev = "refs/tags/v${version}";
+      hash = "sha256-af7jBscGkbekXgfDxwAfrJSY1uEuIGfzzSsjaPdlYcY=";
+    };
+
+    nativeBuildInputs = [ hatchling ];
+
+    propagatedBuildInputs = [ terminado ];
+
+    doCheck = false; # infinite recursion
+
+    nativeCheckInputs = [
+      pytest-jupyter
+      pytest-timeout
+      pytestCheckHook
+    ] ++ pytest-jupyter.optional-dependencies.server;
+
+    passthru.tests = {
+      check = self.overridePythonAttrs (_: {
+        doCheck = true;
+      });
+    };
+
+    meta = with lib; {
+      changelog = "https://github.com/jupyter-server/jupyter_server_terminals/releases/tag/v${version}";
+      description = "Jupyter Server Extension Providing Support for Terminals";
+      homepage = "https://github.com/jupyter-server/jupyter_server_terminals";
+      license = licenses.bsd3;
+      maintainers = with maintainers; [ ];
+    };
   };
-};
-in self
+in
+self
diff --git a/pkgs/development/python-modules/jupyter-server/default.nix b/pkgs/development/python-modules/jupyter-server/default.nix
index f0086e09c6614..7560b4a3c0ae1 100644
--- a/pkgs/development/python-modules/jupyter-server/default.nix
+++ b/pkgs/development/python-modules/jupyter-server/default.nix
@@ -1,47 +1,48 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, hatch-jupyter-builder
-, hatchling
-, pytestCheckHook
-, pytest-console-scripts
-, pytest-jupyter
-, pytest-timeout
-, argon2-cffi
-, jinja2
-, tornado
-, pyzmq
-, ipykernel
-, traitlets
-, jupyter-core
-, jupyter-client
-, jupyter-events
-, jupyter-server-terminals
-, nbformat
-, nbconvert
-, packaging
-, send2trash
-, terminado
-, prometheus-client
-, anyio
-, websocket-client
-, overrides
-, requests
-, flaky
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  hatch-jupyter-builder,
+  hatchling,
+  pytestCheckHook,
+  pytest-console-scripts,
+  pytest-jupyter,
+  pytest-timeout,
+  argon2-cffi,
+  jinja2,
+  tornado,
+  pyzmq,
+  ipykernel,
+  traitlets,
+  jupyter-core,
+  jupyter-client,
+  jupyter-events,
+  jupyter-server-terminals,
+  nbformat,
+  nbconvert,
+  packaging,
+  send2trash,
+  terminado,
+  prometheus-client,
+  anyio,
+  websocket-client,
+  overrides,
+  requests,
+  flaky,
 }:
 
 buildPythonPackage rec {
   pname = "jupyter-server";
-  version = "2.14.0";
+  version = "2.14.1";
   pyproject = true;
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     pname = "jupyter_server";
     inherit version;
-    hash = "sha256-ZZFUzqUSCDQ0/XyTt/4Il696L9C53UdJKCtC6qxK5nc=";
+    hash = "sha256-ElWNFY7HoGU7+WzCcrx6154BJ9UDuYLtFEOZNGaU9yY=";
   };
 
   nativeBuildInputs = [
@@ -84,7 +85,8 @@ buildPythonPackage rec {
   ];
 
   pytestFlagsArray = [
-    "-W" "ignore::DeprecationWarning"
+    "-W"
+    "ignore::DeprecationWarning"
   ];
 
   preCheck = ''
@@ -92,21 +94,24 @@ buildPythonPackage rec {
     export PATH=$out/bin:$PATH
   '';
 
-  disabledTests = [
-    "test_cull_idle"
-    "test_server_extension_list"
-    "test_subscribe_websocket"
-    # test is presumable broken in sandbox
-    "test_authorized_requests"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # attempts to use trashcan, build env doesn't allow this
-    "test_delete"
-    # Insufficient access privileges for operation
-    "test_regression_is_hidden"
-  ] ++ lib.optionals stdenv.isLinux [
-    # Failed: DID NOT RAISE <class 'tornado.web.HTTPError'>
-    "test_copy_big_dir"
-  ];
+  disabledTests =
+    [
+      "test_cull_idle"
+      "test_server_extension_list"
+      "test_subscribe_websocket"
+      # test is presumable broken in sandbox
+      "test_authorized_requests"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # attempts to use trashcan, build env doesn't allow this
+      "test_delete"
+      # Insufficient access privileges for operation
+      "test_regression_is_hidden"
+    ]
+    ++ lib.optionals stdenv.isLinux [
+      # Failed: DID NOT RAISE <class 'tornado.web.HTTPError'>
+      "test_copy_big_dir"
+    ];
 
   disabledTestPaths = [
     "tests/services/kernels/test_api.py"
@@ -120,7 +125,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/jupyter-server/jupyter_server/blob/v${version}/CHANGELOG.md";
-    description = "The backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications";
+    description = "Backend—i.e. core services, APIs, and REST endpoints—to Jupyter web applications";
     mainProgram = "jupyter-server";
     homepage = "https://github.com/jupyter-server/jupyter_server";
     license = licenses.bsdOriginal;
diff --git a/pkgs/development/python-modules/jupyter-sphinx/default.nix b/pkgs/development/python-modules/jupyter-sphinx/default.nix
index 9fb30b5e143ee..7d43784db6bda 100644
--- a/pkgs/development/python-modules/jupyter-sphinx/default.nix
+++ b/pkgs/development/python-modules/jupyter-sphinx/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, ipykernel
-, ipython
-, ipywidgets
-, nbconvert
-, nbformat
-, pythonOlder
-, sphinx
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  ipykernel,
+  ipython,
+  ipywidgets,
+  nbconvert,
+  nbformat,
+  pythonOlder,
+  sphinx,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-o/i3WravKZPf7uw2H4SVYfAyaZGf19ZJlkmeHCWcGtE=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     ipykernel
@@ -39,15 +38,11 @@ buildPythonPackage rec {
     sphinx
   ];
 
-  pythonImportsCheck = [
-    "jupyter_sphinx"
-  ];
+  pythonImportsCheck = [ "jupyter_sphinx" ];
 
   env.JUPYTER_PLATFORM_DIRS = 1;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export HOME=$TMPDIR
diff --git a/pkgs/development/python-modules/jupyter-telemetry/default.nix b/pkgs/development/python-modules/jupyter-telemetry/default.nix
index f7efc0a1598c4..c6c73084b12a3 100644
--- a/pkgs/development/python-modules/jupyter-telemetry/default.nix
+++ b/pkgs/development/python-modules/jupyter-telemetry/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, python-json-logger
-, jsonschema
-, ruamel-yaml
-, traitlets
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  python-json-logger,
+  jsonschema,
+  ruamel-yaml,
+  traitlets,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,10 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    python-json-logger jsonschema ruamel-yaml traitlets
+    python-json-logger
+    jsonschema
+    ruamel-yaml
+    traitlets
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/jupyter-ui-poll/default.nix b/pkgs/development/python-modules/jupyter-ui-poll/default.nix
index 2b6a62f886f03..4a3c69c553046 100644
--- a/pkgs/development/python-modules/jupyter-ui-poll/default.nix
+++ b/pkgs/development/python-modules/jupyter-ui-poll/default.nix
@@ -1,38 +1,38 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, ipython
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  ipython,
 }:
 
 buildPythonPackage rec {
   pname = "jupyter-ui-poll";
-  version = "0.2.2";
-  format = "pyproject";
+  version = "1.0.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "Kirill888";
     repo = "jupyter-ui-poll";
     rev = "refs/tags/v${version}";
-    hash = "sha256-DWZFvzx0aNTmf1x8Rq19OT0PFRxdpKefWYFh8C116Fw";
+    hash = "sha256-mlgLd6uFDSxRBj4+Eidea2CE7FuG6NzJLWGec4KPd9k=";
   };
 
-  nativeBuildInputs = [ setuptools ];
-  propagatedBuildInputs = [
-    ipython
-  ];
+  build-system = [ setuptools ];
 
-  doCheck = false;  # no tests in package :(
+  dependencies = [ ipython ];
+
+  doCheck = false; # no tests in package :(
   pythonImportsCheck = [ "jupyter_ui_poll" ];
 
-  meta = with lib; {
+  meta = {
     description = "Block jupyter cell execution while interacting with widgets";
     homepage = "https://github.com/Kirill888/jupyter-ui-poll";
     changelog = "https://github.com/Kirill888/jupyter-ui-poll/releases/tag/v${version}";
-    license = licenses.mit;
-    maintainers = with maintainers; [ bcdarwin ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ bcdarwin ];
   };
 }
diff --git a/pkgs/development/python-modules/jupyter-ydoc/default.nix b/pkgs/development/python-modules/jupyter-ydoc/default.nix
index bf0f718796c62..7898fa90de2a1 100644
--- a/pkgs/development/python-modules/jupyter-ydoc/default.nix
+++ b/pkgs/development/python-modules/jupyter-ydoc/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, hatch-nodejs-version
-, hatchling
-, importlib-metadata
-, pycrdt
-, pytestCheckHook
-, websockets
-, ypy-websocket
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  hatch-nodejs-version,
+  hatchling,
+  importlib-metadata,
+  pycrdt,
+  pytestCheckHook,
+  websockets,
+  ypy-websocket,
 }:
 
 buildPythonPackage rec {
@@ -29,11 +30,7 @@ buildPythonPackage rec {
     hatchling
   ];
 
-  propagatedBuildInputs = [
-    pycrdt
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
+  propagatedBuildInputs = [ pycrdt ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
   pythonImportsCheck = [ "jupyter_ydoc" ];
 
diff --git a/pkgs/development/python-modules/jupyter/default.nix b/pkgs/development/python-modules/jupyter/default.nix
index 51108eaa7a8f4..72f9238edb8bf 100644
--- a/pkgs/development/python-modules/jupyter/default.nix
+++ b/pkgs/development/python-modules/jupyter/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, notebook
-, qtconsole
-, jupyter-console
-, nbconvert
-, ipykernel
-, ipywidgets
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  notebook,
+  qtconsole,
+  jupyter-console,
+  nbconvert,
+  ipykernel,
+  ipywidgets,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,14 @@ buildPythonPackage rec {
     sha256 = "d9dc4b3318f310e34c82951ea5d6683f67bed7def4b259fafbfe4f1beb1d8e5f";
   };
 
-  propagatedBuildInputs = [ notebook qtconsole jupyter-console nbconvert ipykernel ipywidgets ];
+  propagatedBuildInputs = [
+    notebook
+    qtconsole
+    jupyter-console
+    nbconvert
+    ipykernel
+    ipywidgets
+  ];
 
   # Meta-package, no tests
   doCheck = false;
@@ -31,5 +39,4 @@ buildPythonPackage rec {
     platforms = platforms.all;
     priority = 100; # This is a metapackage which is unimportant
   };
-
 }
diff --git a/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix b/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix
index 0c61557c26b63..c4da40729c0f6 100644
--- a/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix
+++ b/pkgs/development/python-modules/jupyterhub-ldapauthenticator/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, jupyterhub
-, ldap3
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  jupyterhub,
+  ldap3,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -18,11 +19,14 @@ buildPythonPackage rec {
   # No tests implemented
   doCheck = false;
 
-  propagatedBuildInputs = [ jupyterhub ldap3 ];
+  propagatedBuildInputs = [
+    jupyterhub
+    ldap3
+  ];
 
   meta = with lib; {
     description = "Simple LDAP Authenticator Plugin for JupyterHub";
-    homepage =  "https://github.com/jupyterhub/ldapauthenticator";
+    homepage = "https://github.com/jupyterhub/ldapauthenticator";
     license = licenses.bsd3;
   };
 }
diff --git a/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix b/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix
index 1f45886c84e53..56712d25f4f49 100644
--- a/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix
+++ b/pkgs/development/python-modules/jupyterhub-systemdspawner/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, bash
-, buildPythonPackage
-, fetchFromGitHub
-, jupyterhub
-, pythonOlder
-, tornado
+{
+  lib,
+  bash,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jupyterhub,
+  pythonOlder,
+  tornado,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
       --replace "/bin/bash" "${bash}/bin/bash"
   '';
 
-  buildInputs = [
-    bash
-  ];
+  buildInputs = [ bash ];
 
   propagatedBuildInputs = [
     jupyterhub
@@ -47,9 +46,7 @@ buildPythonPackage rec {
     patchShebangs $out/bin
   '';
 
-  pythonImportsCheck = [
-    "systemdspawner"
-  ];
+  pythonImportsCheck = [ "systemdspawner" ];
 
   meta = with lib; {
     description = "JupyterHub Spawner using systemd for resource isolation";
diff --git a/pkgs/development/python-modules/jupyterhub-tmpauthenticator/default.nix b/pkgs/development/python-modules/jupyterhub-tmpauthenticator/default.nix
index 0c18569c4b5c5..02c366d34c603 100644
--- a/pkgs/development/python-modules/jupyterhub-tmpauthenticator/default.nix
+++ b/pkgs/development/python-modules/jupyterhub-tmpauthenticator/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, jupyterhub
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  jupyterhub,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-7TuAYP6mRffsZL+O+AMgt5HBu6PhwLYj5A8X8DnMfl0=";
   };
 
-  propagatedBuildInputs = [
-    jupyterhub
-  ];
+  propagatedBuildInputs = [ jupyterhub ];
 
   # No tests available in the package
   doCheck = false;
 
-  pythonImportsCheck = [
-    "tmpauthenticator"
-  ];
+  pythonImportsCheck = [ "tmpauthenticator" ];
 
   meta = with lib; {
     description = "Simple Jupyterhub authenticator that allows anyone to log in";
diff --git a/pkgs/development/python-modules/jupyterhub/default.nix b/pkgs/development/python-modules/jupyterhub/default.nix
index 2aa83c6f85af6..543564b606eae 100644
--- a/pkgs/development/python-modules/jupyterhub/default.nix
+++ b/pkgs/development/python-modules/jupyterhub/default.nix
@@ -1,170 +1,134 @@
-{ lib
-, stdenv
-, alembic
-, async-generator
-, beautifulsoup4
-, buildPythonPackage
-, certipy
-, configurable-http-proxy
-, cryptography
-, entrypoints
-, fetchPypi
-, fetchzip
-, importlib-metadata
-, jinja2
-, jsonschema
-, jupyter-telemetry
-, jupyterlab
-, jupyter-core
-, jupyter-server
-, mock
-, nbclassic
-, nodePackages
-, notebook
-, oauthlib
-, packaging
-, pamela
-, playwright
-, prometheus-client
-, pytest-asyncio
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, requests
-, requests-mock
-, selenium
-, sqlalchemy
-, tornado
-, traitlets
-, virtualenv
+{
+  lib,
+  stdenv,
+  alembic,
+  async-generator,
+  beautifulsoup4,
+  buildPythonPackage,
+  certipy,
+  configurable-http-proxy,
+  cryptography,
+  fetchFromGitHub,
+  fetchNpmDeps,
+  idna,
+  importlib-metadata,
+  jinja2,
+  jsonschema,
+  jupyter-events,
+  jupyterlab,
+  mock,
+  nbclassic,
+  nodejs,
+  npmHooks,
+  oauthlib,
+  packaging,
+  pamela,
+  playwright,
+  prometheus-client,
+  pydantic,
+  pytest-asyncio,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  requests,
+  requests-mock,
+  setuptools,
+  setuptools-scm,
+  sqlalchemy,
+  tornado,
+  traitlets,
+  virtualenv,
 }:
 
-let
-  # js/css assets that setup.py tries to fetch via `npm install` when building
-  # from source. https://github.com/jupyterhub/jupyterhub/blob/master/package.json
-  bootstrap =
-    fetchzip {
-      url = "https://registry.npmjs.org/bootstrap/-/bootstrap-3.4.1.tgz";
-      sha256 = "1ywmxqdccg0mgx0xknrn1hlrfnhcwphc12y9l91zizx26fqfmzgc";
-    };
-  font-awesome =
-    fetchzip {
-      url = "https://registry.npmjs.org/font-awesome/-/font-awesome-4.7.0.tgz";
-      sha256 = "1xnxbdlfdd60z5ix152m8r2kk9dkwlqwpypky1mm3dv64ajnzdbk";
-    };
-  jquery =
-    fetchzip {
-      url = "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz";
-      sha256 = "0yi9ql493din1qa1s923nd5zvd0klk1sx00xj1wx2yambmq86vm9";
-    };
-  moment =
-    fetchzip {
-      url = "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz";
-      sha256 = "0ifzzla4zffw23g3xvhwx3fj3jny6cjzxfzl1x0317q8wa0c7w5i";
-    };
-  requirejs =
-    fetchzip {
-      url = "https://registry.npmjs.org/requirejs/-/requirejs-2.3.6.tgz";
-      sha256 = "165hkli3qcd59cjqvli9r5f92i0h7czkmhcg1cgwamw2d0b7xibz";
-    };
-
-in
-
 buildPythonPackage rec {
   pname = "jupyterhub";
-  version = "4.1.5";
-  format = "setuptools";
+  version = "5.0.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-Y7ofxxhDbBUZRqWKO0A+xP6LP2JPsZW8HY5ww5sz4ZQ=";
+  src = fetchFromGitHub {
+    owner = "jupyterhub";
+    repo = "jupyterhub";
+    rev = "refs/tags/${version}";
+    hash = "sha256-YGDbyWe3JSXbluOX6qyLqzl92Z/f5sD/5TPc2LR7W80=";
   };
 
-  # Most of this only applies when building from source (e.g. js/css assets are
-  # pre-built and bundled in the official release tarball on pypi).
-  #
-  # Stuff that's always needed:
-  #   * At runtime, we need configurable-http-proxy, so we substitute the store
-  #     path.
-  #
-  # Other stuff that's only needed when building from source:
-  #   * js/css assets are fetched from npm.
-  #   * substitute store path for `lessc` commmand.
-  #   * set up NODE_PATH so `lessc` can find `less-plugin-clean-css`.
-  #   * don't run `npm install`.
-  preBuild = ''
-    export NODE_PATH=${nodePackages.less-plugin-clean-css}/lib/node_modules
+  npmDeps = fetchNpmDeps {
+    inherit src;
+    hash = "sha256-7G/Y2yaMi9cyf20/o8rLXKIE6SdZ74HSWJ3Wfypl4Cc=";
+  };
 
-    substituteInPlace jupyterhub/proxy.py --replace \
+  postPatch = ''
+    substituteInPlace jupyterhub/proxy.py --replace-fail \
       "'configurable-http-proxy'" \
       "'${configurable-http-proxy}/bin/configurable-http-proxy'"
 
-    substituteInPlace jupyterhub/tests/test_proxy.py --replace \
+    substituteInPlace jupyterhub/tests/test_proxy.py --replace-fail \
       "'configurable-http-proxy'" \
       "'${configurable-http-proxy}/bin/configurable-http-proxy'"
-
-    substituteInPlace setup.py --replace \
-      "'npm'" "'true'"
-
-    declare -A deps
-    deps[bootstrap]=${bootstrap}
-    deps[font-awesome]=${font-awesome}
-    deps[jquery]=${jquery}
-    deps[moment]=${moment}
-    deps[requirejs]=${requirejs}
-
-    mkdir -p share/jupyter/hub/static/components
-    for dep in "''${!deps[@]}"; do
-      if [ ! -e share/jupyter/hub/static/components/$dep ]; then
-        cp -r ''${deps[$dep]} share/jupyter/hub/static/components/$dep
-      fi
-    done
   '';
 
-  propagatedBuildInputs = [
-    alembic
-    async-generator
-    certipy
-    python-dateutil
-    entrypoints
-    jinja2
-    jupyter-telemetry
-    oauthlib
-    packaging
-    pamela
-    prometheus-client
-    requests
-    selenium
-    sqlalchemy
-    tornado
-    traitlets
-    jupyter-core
-    jupyter-server
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
+  nativeBuildInputs = [
+    nodejs
+    npmHooks.npmConfigHook
   ];
 
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  dependencies =
+    [
+      alembic
+      certipy
+      idna
+      jinja2
+      jupyter-events
+      oauthlib
+      packaging
+      pamela
+      prometheus-client
+      pydantic
+      python-dateutil
+      requests
+      sqlalchemy
+      tornado
+      traitlets
+    ]
+    ++ lib.optionals (pythonOlder "3.10") [
+      async-generator
+      importlib-metadata
+    ];
+
   nativeCheckInputs = [
     beautifulsoup4
     cryptography
-    notebook
     jsonschema
-    nbclassic
-    mock
     jupyterlab
+    mock
+    nbclassic
     playwright
-    pytest-asyncio
+    # require pytest-asyncio<0.23
+    # https://github.com/jupyterhub/jupyterhub/pull/4663
+    (pytest-asyncio.overrideAttrs (
+      final: prev: {
+        version = "0.21.2";
+        src = fetchFromGitHub {
+          inherit (prev.src) owner repo;
+          rev = "refs/tags/v${final.version}";
+          hash = "sha256-AVVvdo/CDF9IU6l779sLc7wKz5h3kzMttdDNTPLYxtQ=";
+        };
+      }
+    ))
     pytestCheckHook
     requests-mock
     virtualenv
   ];
 
   preCheck = ''
-    substituteInPlace jupyterhub/tests/test_spawner.py --replace \
-      "'jupyterhub-singleuser'" "'$out/bin/jupyterhub-singleuser'"
-    export PATH="$PATH:$out/bin";
+    export PATH=$out/bin:$PATH;
   '';
 
   disabledTests = [
@@ -202,7 +166,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Serves multiple Jupyter notebook instances";
-    homepage = "https://jupyter.org/";
+    homepage = "https://github.com/jupyterhub/jupyterhub";
     changelog = "https://github.com/jupyterhub/jupyterhub/blob/${version}/docs/source/reference/changelog.md";
     license = licenses.bsd3;
     maintainers = teams.jupyter.members;
diff --git a/pkgs/development/python-modules/jupyterlab-git/default.nix b/pkgs/development/python-modules/jupyterlab-git/default.nix
index 512c799474578..c539c052d4b57 100644
--- a/pkgs/development/python-modules/jupyterlab-git/default.nix
+++ b/pkgs/development/python-modules/jupyterlab-git/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, git
-, jupyter-server
-, hatch-jupyter-builder
-, hatch-nodejs-version
-, hatchling
-, jupyterlab
-, nbdime
-, nbformat
-, pexpect
-, pytest-asyncio
-, pytest-jupyter
-, pytest-tornasync
-, pytestCheckHook
-, pythonOlder
-, traitlets
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  git,
+  jupyter-server,
+  hatch-jupyter-builder,
+  hatch-nodejs-version,
+  hatchling,
+  jupyterlab,
+  nbdime,
+  nbformat,
+  pexpect,
+  pytest-asyncio,
+  pytest-jupyter,
+  pytest-tornasync,
+  pytestCheckHook,
+  pythonOlder,
+  traitlets,
 }:
 
 buildPythonPackage rec {
   pname = "jupyterlab-git";
-  version = "0.50.0";
+  version = "0.50.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -28,7 +29,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "jupyterlab_git";
     inherit version;
-    hash = "sha256-CYWVRtOQE067kYqWXCw/4mBf6v4yfPYWFb592Qtb37s=";
+    hash = "sha256-v08Go/vCsquE6l1SMmqg4LjM9OmjNX+jGKEZVg4cak0=";
   };
 
   nativeBuildInputs = [
@@ -73,9 +74,7 @@ buildPythonPackage rec {
     "test_Git_get_nbdiff_dict"
   ];
 
-  pythonImportsCheck = [
-    "jupyterlab_git"
-  ];
+  pythonImportsCheck = [ "jupyterlab_git" ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/jupyterlab-lsp/default.nix b/pkgs/development/python-modules/jupyterlab-lsp/default.nix
index deecae0b7ea51..408a48c7faa68 100644
--- a/pkgs/development/python-modules/jupyterlab-lsp/default.nix
+++ b/pkgs/development/python-modules/jupyterlab-lsp/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, jupyterlab
-, jupyter-lsp
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  jupyterlab,
+  jupyter-lsp,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-rqyECTrabSDvV64Ol4EcxXlqDKtyN7Mvjt35k8C7A1Y=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     jupyterlab
diff --git a/pkgs/development/python-modules/jupyterlab-pygments/default.nix b/pkgs/development/python-modules/jupyterlab-pygments/default.nix
index 0d46258eb789f..beefbfeddbc0a 100644
--- a/pkgs/development/python-modules/jupyterlab-pygments/default.nix
+++ b/pkgs/development/python-modules/jupyterlab-pygments/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, hatch-jupyter-builder
-, hatch-nodejs-version
-, hatchling
-, pygments
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  hatch-jupyter-builder,
+  hatch-nodejs-version,
+  hatchling,
+  pygments,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/jupyterlab-server/default.nix b/pkgs/development/python-modules/jupyterlab-server/default.nix
index 059cb1c5ac52a..c7ba03645aa3b 100644
--- a/pkgs/development/python-modules/jupyterlab-server/default.nix
+++ b/pkgs/development/python-modules/jupyterlab-server/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, hatchling
-, babel
-, importlib-metadata
-, jinja2
-, json5
-, jsonschema
-, jupyter-server
-, packaging
-, requests
-, openapi-core
-, pytest-jupyter
-, pytestCheckHook
-, requests-mock
-, ruamel-yaml
-, strict-rfc3339
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  hatchling,
+  babel,
+  importlib-metadata,
+  jinja2,
+  json5,
+  jsonschema,
+  jupyter-server,
+  packaging,
+  requests,
+  openapi-core,
+  pytest-jupyter,
+  pytestCheckHook,
+  requests-mock,
+  ruamel-yaml,
+  strict-rfc3339,
 }:
 
 buildPythonPackage rec {
   pname = "jupyterlab-server";
-  version = "2.27.1";
+  version = "2.27.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -29,18 +30,16 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "jupyterlab_server";
     inherit version;
-    hash = "sha256-CXtaxwm2dscoSsnF43PxGTClYfUs1ahuT8flqcioYx0=";
+    hash = "sha256-FcuzSdxF6VTgm6z4G5+byxCBX/Zg+yA07NdBfbOn6ic=";
   };
 
   postPatch = ''
     sed -i "/timeout/d" pyproject.toml
   '';
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     babel
     jinja2
     json5
@@ -48,11 +47,9 @@ buildPythonPackage rec {
     jupyter-server
     packaging
     requests
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     openapi = [
       openapi-core
       ruamel-yaml
@@ -64,14 +61,15 @@ buildPythonPackage rec {
     pytestCheckHook
     requests-mock
     strict-rfc3339
-  ] ++ passthru.optional-dependencies.openapi;
+  ] ++ optional-dependencies.openapi;
 
   preCheck = ''
     export HOME=$(mktemp -d)
   '';
 
   pytestFlagsArray = [
-    "-W" "ignore::DeprecationWarning"
+    "-W"
+    "ignore::DeprecationWarning"
   ];
 
   disabledTestPaths = [
@@ -87,7 +85,7 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "A set of server components for JupyterLab and JupyterLab like applications";
+    description = "Set of server components for JupyterLab and JupyterLab like applications";
     homepage = "https://github.com/jupyterlab/jupyterlab_server";
     changelog = "https://github.com/jupyterlab/jupyterlab_server/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/jupyterlab-widgets/default.nix b/pkgs/development/python-modules/jupyterlab-widgets/default.nix
index 85ec4d6d48f90..ea09f1c450657 100644
--- a/pkgs/development/python-modules/jupyterlab-widgets/default.nix
+++ b/pkgs/development/python-modules/jupyterlab-widgets/default.nix
@@ -1,16 +1,19 @@
-{ lib, buildPythonPackage, fetchPypi
-, jupyter-packaging
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jupyter-packaging,
 }:
 
 buildPythonPackage rec {
   pname = "jupyterlab-widgets";
-  version = "3.0.10";
+  version = "3.0.11";
   pyproject = true;
 
   src = fetchPypi {
     pname = "jupyterlab_widgets";
     inherit version;
-    hash = "sha256-BPKsBJdnJ+T50PqRzcLxq4YPll5QTCnb1qZciCydBMA=";
+    hash = "sha256-3VrGeVk8lprynJvtBUwk8mhCuqUTUhFHNnVrwDXe7ic=";
   };
 
   # jupyterlab is required to build from source but we use the pre-build package
@@ -19,9 +22,7 @@ buildPythonPackage rec {
       --replace '"jupyterlab~=4.0"' ""
   '';
 
-  nativeBuildInputs = [
-    jupyter-packaging
-  ];
+  nativeBuildInputs = [ jupyter-packaging ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/jupyterlab/default.nix b/pkgs/development/python-modules/jupyterlab/default.nix
index 7b9a17d91e2ca..9f3df60d49ca1 100644
--- a/pkgs/development/python-modules/jupyterlab/default.nix
+++ b/pkgs/development/python-modules/jupyterlab/default.nix
@@ -1,41 +1,42 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatch-jupyter-builder
-, hatchling
-, async-lru
-, httpx
-, packaging
-, tornado
-, ipykernel
-, jupyter-core
-, jupyter-lsp
-, jupyterlab-server
-, jupyter-server
-, notebook-shim
-, jinja2
-, tomli
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatch-jupyter-builder,
+  hatchling,
+  async-lru,
+  httpx,
+  packaging,
+  tornado,
+  ipykernel,
+  jupyter-core,
+  jupyter-lsp,
+  jupyterlab-server,
+  jupyter-server,
+  notebook-shim,
+  jinja2,
+  tomli,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "jupyterlab";
-  version = "4.1.8";
+  version = "4.2.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-M4St7YaA585QT9Y7i7iaOd8hycdpTZ59xKaHQs2zD5s=";
+    hash = "sha256-pTS2olcZqSpA1RT7Ezqf6PDZmBsLvOXYpfyqMzRKMDg=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     hatch-jupyter-builder
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     async-lru
     httpx
     packaging
@@ -47,9 +48,7 @@ buildPythonPackage rec {
     jupyter-server
     notebook-shim
     jinja2
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   makeWrapperArgs = [
     "--set"
@@ -60,9 +59,7 @@ buildPythonPackage rec {
   # Depends on npm
   doCheck = false;
 
-  pythonImportsCheck = [
-    "jupyterlab"
-  ];
+  pythonImportsCheck = [ "jupyterlab" ];
 
   meta = with lib; {
     changelog = "https://github.com/jupyterlab/jupyterlab/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/jupytext/default.nix b/pkgs/development/python-modules/jupytext/default.nix
index 699cb58e6c387..49ec1da72d0f8 100644
--- a/pkgs/development/python-modules/jupytext/default.nix
+++ b/pkgs/development/python-modules/jupytext/default.nix
@@ -1,47 +1,47 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, hatch-jupyter-builder
-, hatchling
-, jupyter-client
-, markdown-it-py
-, mdit-py-plugins
-, nbformat
-, notebook
-, packaging
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, toml
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  hatch-jupyter-builder,
+  hatchling,
+  jupyter-client,
+  markdown-it-py,
+  mdit-py-plugins,
+  nbformat,
+  notebook,
+  packaging,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  tomli,
 }:
 
 buildPythonPackage rec {
   pname = "jupytext";
-  version = "1.16.1";
+  version = "1.16.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-aMe2hoXocOgOYP2oKG+9Ymnpx03B30MW32/kbqvJTJk=";
+    hash = "sha256-hifdm+y769ecxKTtRyfYnXjmBrS0ZOq3I1ezsCkCOhQ=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     hatch-jupyter-builder
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     markdown-it-py
     mdit-py-plugins
     nbformat
     packaging
     pyyaml
-    toml
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   nativeCheckInputs = [
     jupyter-client
@@ -56,9 +56,7 @@ buildPythonPackage rec {
     export PATH=$out/bin:$PATH;
   '';
 
-  disabledTestPaths = [
-    "tests/external"
-  ];
+  disabledTestPaths = [ "tests/external" ];
 
   disabledTests = lib.optionals stdenv.isDarwin [
     # requires access to trash
diff --git a/pkgs/development/python-modules/justbackoff/default.nix b/pkgs/development/python-modules/justbackoff/default.nix
index f07af6df2d2aa..e8c680a89d37f 100644
--- a/pkgs/development/python-modules/justbackoff/default.nix
+++ b/pkgs/development/python-modules/justbackoff/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,18 +20,14 @@ buildPythonPackage rec {
     sha256 = "097j6jxgl4b3z46x9y9z10643vnr9v831vhagrxzrq6nviil2z6l";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace setup.py \
       --replace "pytest-runner>=5.2" ""
   '';
 
-  pythonImportsCheck = [
-    "justbackoff"
-  ];
+  pythonImportsCheck = [ "justbackoff" ];
 
   meta = with lib; {
     description = "Simple backoff algorithm in Python";
diff --git a/pkgs/development/python-modules/justbases/default.nix b/pkgs/development/python-modules/justbases/default.nix
index 3b24726087be1..c3fc8dcd5ac0d 100644
--- a/pkgs/development/python-modules/justbases/default.nix
+++ b/pkgs/development/python-modules/justbases/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, unittestCheckHook
-, hypothesis
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  unittestCheckHook,
+  hypothesis,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/justbytes/default.nix b/pkgs/development/python-modules/justbytes/default.nix
index 834ced10ab4b9..db5c79de25dd9 100644
--- a/pkgs/development/python-modules/justbytes/default.nix
+++ b/pkgs/development/python-modules/justbytes/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, justbases
-, unittestCheckHook
-, hypothesis
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  justbases,
+  unittestCheckHook,
+  hypothesis,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,10 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ justbases ];
-  nativeCheckInputs = [ unittestCheckHook hypothesis ];
+  nativeCheckInputs = [
+    unittestCheckHook
+    hypothesis
+  ];
 
   meta = with lib; {
     description = "computing with and displaying bytes";
diff --git a/pkgs/development/python-modules/justext/default.nix b/pkgs/development/python-modules/justext/default.nix
index 82f0aa8045654..cd2e6c933a6df 100644
--- a/pkgs/development/python-modules/justext/default.nix
+++ b/pkgs/development/python-modules/justext/default.nix
@@ -1,34 +1,35 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, lxml
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  lxml,
+  lxml-html-clean,
 }:
 
 buildPythonPackage rec {
   pname = "justext";
-  version = "3.0.0";
+  version = "3.0.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "miso-belica";
     repo = "jusText";
     rev = "refs/tags/v${version}";
-    hash = "sha256-WNxDoM5666tEHS9pMl5dOoig4S7dSYaCLZq71tehWqw=";
+    hash = "sha256-9i7hzCK/ijh8xw9l2ZbVhVj5IBf0WD/49/R1tSWgqrQ=";
   };
 
   propagatedBuildInputs = [
     lxml
+    lxml-html-clean
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # patch out coverage report
   postPatch = ''
     substituteInPlace setup.cfg \
-      --replace " --cov=justext --cov-report=term-missing --no-cov-on-fail" ""
+      --replace-fail " --cov=justext --cov-report=term-missing --no-cov-on-fail" ""
   '';
 
   pythonImportsCheck = [ "justext" ];
diff --git a/pkgs/development/python-modules/justnimbus/default.nix b/pkgs/development/python-modules/justnimbus/default.nix
index 013e4670aa8f5..08a7592b29e28 100644
--- a/pkgs/development/python-modules/justnimbus/default.nix
+++ b/pkgs/development/python-modules/justnimbus/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-JO8T0JItkkNHxlnDKOO8kM9KSzT7QML4sszPymgXSBA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "justnimbus"
-  ];
+  pythonImportsCheck = [ "justnimbus" ];
 
   meta = with lib; {
     description = "Library for the JustNimbus API";
@@ -43,4 +38,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ fab ];
   };
 }
-
diff --git a/pkgs/development/python-modules/jwcrypto/default.nix b/pkgs/development/python-modules/jwcrypto/default.nix
index 2c00e2be9f8d3..1a418d128dfe4 100644
--- a/pkgs/development/python-modules/jwcrypto/default.nix
+++ b/pkgs/development/python-modules/jwcrypto/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cryptography
-, deprecated
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cryptography,
+  deprecated,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-dxqHdioMCBrmFmlYqVT4CEiCCyqwZpN9yLg3nWWxsDk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cryptography
@@ -33,9 +32,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "jwcrypto"
-  ];
+  pythonImportsCheck = [ "jwcrypto" ];
 
   meta = with lib; {
     description = "Implementation of JOSE Web standards";
diff --git a/pkgs/development/python-modules/jwt/default.nix b/pkgs/development/python-modules/jwt/default.nix
index 95c01cb64bc1c..fc058f7d7004b 100644
--- a/pkgs/development/python-modules/jwt/default.nix
+++ b/pkgs/development/python-modules/jwt/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, cryptography
-, freezegun
-, pytestCheckHook
-, pytest-cov
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  cryptography,
+  freezegun,
+  pytestCheckHook,
+  pytest-cov,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     substituteInPlace setup.cfg --replace "--flake8" ""
   '';
 
-  propagatedBuildInputs = [
-    cryptography
-  ];
+  propagatedBuildInputs = [ cryptography ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/jxmlease/default.nix b/pkgs/development/python-modules/jxmlease/default.nix
index 640b06bf352ec..480bddc93dede 100644
--- a/pkgs/development/python-modules/jxmlease/default.nix
+++ b/pkgs/development/python-modules/jxmlease/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, lxml
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  lxml,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     sha256 = "17l3w3ak07p72s8kv8hg0ilxs0kkxjn7bfwnl3g2cw58v1siab31";
   };
 
-  propagatedBuildInputs = [
-    lxml
-  ];
+  propagatedBuildInputs = [ lxml ];
 
   # tests broken in expat bump
   # https://github.com/Juniper/jxmlease/issues/26
diff --git a/pkgs/development/python-modules/k-diffusion/default.nix b/pkgs/development/python-modules/k-diffusion/default.nix
index 8393bc6309f02..9b8aa8d17a02f 100644
--- a/pkgs/development/python-modules/k-diffusion/default.nix
+++ b/pkgs/development/python-modules/k-diffusion/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, accelerate
-, buildPythonPackage
-, clean-fid
-, clip-anytorch
-, dctorch
-, einops
-, fetchFromGitHub
-, jsonmerge
-, kornia
-, pillow
-, pythonOlder
-, rotary-embedding-torch
-, safetensors
-, scikit-image
-, scipy
-, torch
-, torchdiffeq
-, torchsde
-, torchvision
-, tqdm
-, wandb
+{
+  lib,
+  accelerate,
+  buildPythonPackage,
+  clean-fid,
+  clip-anytorch,
+  dctorch,
+  einops,
+  fetchFromGitHub,
+  jsonmerge,
+  kornia,
+  pillow,
+  pythonOlder,
+  rotary-embedding-torch,
+  safetensors,
+  scikit-image,
+  scipy,
+  torch,
+  torchdiffeq,
+  torchsde,
+  torchvision,
+  tqdm,
+  wandb,
 }:
 
 buildPythonPackage rec {
@@ -57,9 +58,7 @@ buildPythonPackage rec {
     wandb
   ];
 
-  pythonImportsCheck = [
-    "k_diffusion"
-  ];
+  pythonImportsCheck = [ "k_diffusion" ];
 
   # no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/k5test/default.nix b/pkgs/development/python-modules/k5test/default.nix
index dbab01e01a549..a7366d3851fbe 100644
--- a/pkgs/development/python-modules/k5test/default.nix
+++ b/pkgs/development/python-modules/k5test/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, substituteAll
-, findutils
-, krb5
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  substituteAll,
+  findutils,
+  krb5,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -30,16 +31,12 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # No tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "k5test"
-  ];
+  pythonImportsCheck = [ "k5test" ];
 
   meta = with lib; {
     description = "Library for setting up self-contained Kerberos 5 environment";
@@ -47,6 +44,5 @@ buildPythonPackage rec {
     changelog = "https://github.com/pythongssapi/k5test/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
-    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/python-modules/kaa-base/default.nix b/pkgs/development/python-modules/kaa-base/default.nix
index 8d83bdb5b1109..cacf76a6cb0de 100644
--- a/pkgs/development/python-modules/kaa-base/default.nix
+++ b/pkgs/development/python-modules/kaa-base/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPyPy
-, isPy3k
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  isPy3k,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -48,5 +49,4 @@ buildPythonPackage rec {
     license = licenses.lgpl21;
     maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/kaa-metadata/default.nix b/pkgs/development/python-modules/kaa-metadata/default.nix
index 20ae66f17a9de..669060fa2ac43 100644
--- a/pkgs/development/python-modules/kaa-metadata/default.nix
+++ b/pkgs/development/python-modules/kaa-metadata/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, kaa-base
-, isPyPy
-, isPy3k
-, python
-, pkgs
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  kaa-base,
+  isPyPy,
+  isPy3k,
+  python,
+  pkgs,
 }:
 
 buildPythonPackage rec {
@@ -53,5 +54,4 @@ buildPythonPackage rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/kafka-python/default.nix b/pkgs/development/python-modules/kafka-python/default.nix
index 9e73dbe9bd198..730c796c951b5 100644
--- a/pkgs/development/python-modules/kafka-python/default.nix
+++ b/pkgs/development/python-modules/kafka-python/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, six, mock }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  six,
+  mock,
+}:
 
 buildPythonPackage rec {
   version = "2.0.2";
@@ -10,7 +17,11 @@ buildPythonPackage rec {
     sha256 = "04dfe7fea2b63726cd6f3e79a2d86e709d608d74406638c5da33a01d45a9d7e3";
   };
 
-  nativeCheckInputs = [ pytest six mock ];
+  nativeCheckInputs = [
+    pytest
+    six
+    mock
+  ];
 
   checkPhase = ''
     py.test
diff --git a/pkgs/development/python-modules/kaggle/default.nix b/pkgs/development/python-modules/kaggle/default.nix
index 38c3dce531511..5d38eeaf6480b 100644
--- a/pkgs/development/python-modules/kaggle/default.nix
+++ b/pkgs/development/python-modules/kaggle/default.nix
@@ -1,24 +1,25 @@
-{ buildPythonPackage
-, bleach
-, certifi
-, fetchPypi
-, lib
-, python-dateutil
-, python-slugify
-, six
-, requests
-, tqdm
-, urllib3
+{
+  buildPythonPackage,
+  bleach,
+  certifi,
+  fetchPypi,
+  lib,
+  python-dateutil,
+  python-slugify,
+  six,
+  requests,
+  tqdm,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "kaggle";
-  version = "1.6.12";
+  version = "1.6.14";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-8SoFuC0q+xCnStxppfinNsZL2ZNNC1rPtP5PlzV1MLQ=";
+    sha256 = "sha256-WDUyveyjyeDK/EkxESxnN7Xmjxh6tZ7nff/fCf3529k=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/kaitaistruct/default.nix b/pkgs/development/python-modules/kaitaistruct/default.nix
index 71ad13fadb550..24807eacdc001 100644
--- a/pkgs/development/python-modules/kaitaistruct/default.nix
+++ b/pkgs/development/python-modules/kaitaistruct/default.nix
@@ -1,9 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchFromGitHub
-, brotli
-, lz4
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchFromGitHub,
+  brotli,
+  lz4,
+  setuptools,
 }:
 
 let
@@ -17,7 +19,7 @@ in
 buildPythonPackage rec {
   pname = "kaitaistruct";
   version = "0.10";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
@@ -29,13 +31,14 @@ buildPythonPackage rec {
     sed '32ipackages = kaitai/compress' -i setup.cfg
   '';
 
+  build-system = [ setuptools ];
+
   propagatedBuildInputs = [
     brotli
     lz4
   ];
 
-  # no tests
-  dontCheck = true;
+  doCheck = false; # no tests in upstream
 
   pythonImportsCheck = [
     "kaitaistruct"
diff --git a/pkgs/development/python-modules/kajiki/default.nix b/pkgs/development/python-modules/kajiki/default.nix
index a4c92ea35ed72..4b9e78c77b863 100644
--- a/pkgs/development/python-modules/kajiki/default.nix
+++ b/pkgs/development/python-modules/kajiki/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, babel
-, buildPythonPackage
-, fetchFromGitHub
-, linetable
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  babel,
+  buildPythonPackage,
+  fetchFromGitHub,
+  linetable,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-EbXe4Jh2IKAYw9GE0kFgKVv9c9uAOiFFYaMF8CGaOfg=";
   };
 
-  propagatedBuildInputs = [
-    linetable
-  ];
+  propagatedBuildInputs = [ linetable ];
 
   nativeCheckInputs = [
     babel
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "kajiki"
-  ];
+  pythonImportsCheck = [ "kajiki" ];
 
   meta = with lib; {
     description = "Module provides fast well-formed XML templates";
diff --git a/pkgs/development/python-modules/kaldi-active-grammar/default.nix b/pkgs/development/python-modules/kaldi-active-grammar/default.nix
index 10d819bf8c52a..a6ba282e6d295 100644
--- a/pkgs/development/python-modules/kaldi-active-grammar/default.nix
+++ b/pkgs/development/python-modules/kaldi-active-grammar/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, scikit-build
-, cmake
-, ush
-, requests
-, six
-, numpy
-, cffi
-, openfst
-, substituteAll
-, callPackage
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  scikit-build,
+  cmake,
+  ush,
+  requests,
+  six,
+  numpy,
+  cffi,
+  openfst,
+  substituteAll,
+  callPackage,
 }:
 
 #
@@ -53,11 +54,23 @@ buildPythonPackage rec {
     cd ..
   '';
 
-  buildInputs = [ openfst kaldi ];
-  nativeBuildInputs = [ scikit-build cmake ];
-  propagatedBuildInputs = [ ush requests numpy cffi six ];
+  buildInputs = [
+    openfst
+    kaldi
+  ];
+  nativeBuildInputs = [
+    scikit-build
+    cmake
+  ];
+  propagatedBuildInputs = [
+    ush
+    requests
+    numpy
+    cffi
+    six
+  ];
 
-  doCheck = false;  # no tests exist
+  doCheck = false; # no tests exist
 
   meta = with lib; {
     description = "Python Kaldi speech recognition";
diff --git a/pkgs/development/python-modules/kaldi-active-grammar/fork.nix b/pkgs/development/python-modules/kaldi-active-grammar/fork.nix
index 7748e34df6f2d..c8983cc65a9f0 100644
--- a/pkgs/development/python-modules/kaldi-active-grammar/fork.nix
+++ b/pkgs/development/python-modules/kaldi-active-grammar/fork.nix
@@ -1,15 +1,16 @@
-{ lib
-, stdenv
-, blas
-, lapack
-, openfst
-, icu
-, pkg-config
-, fetchFromGitHub
-, python3
-, openblas
-, zlib
-, gfortran
+{
+  lib,
+  stdenv,
+  blas,
+  lapack,
+  openfst,
+  icu,
+  pkg-config,
+  fetchFromGitHub,
+  python3,
+  openblas,
+  zlib,
+  gfortran,
 }:
 
 let
diff --git a/pkgs/development/python-modules/kanidm/default.nix b/pkgs/development/python-modules/kanidm/default.nix
index 88b98a1b5e797..e565a00196789 100644
--- a/pkgs/development/python-modules/kanidm/default.nix
+++ b/pkgs/development/python-modules/kanidm/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build
-, poetry-core
+  # build
+  poetry-core,
 
-# propagates
-, aiohttp
-, authlib
-, pydantic
-, toml
+  # propagates
+  aiohttp,
+  authlib,
+  pydantic,
+  toml,
 
-# tests
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
+  # tests
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
 }:
 
 let
   pname = "kanidm";
-  version = "0.0.3-unstable-2023-08-23";
+  version = "1.0.0-2024-04-22";
 in
 buildPythonPackage rec {
   inherit pname version;
@@ -31,15 +32,13 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "kanidm";
     repo = "kanidm";
-    rev = "def4420c4c5c3ec4f9b02776e1d5fdb07aa3a729";
-    hash = "sha256-5qQb+Itguw2v1Wdvc2vp00zglfvNd3LFEDvaweRJcOc=";
+    rev = "a0f743d8c8e7a6b6b0775e64774fc5175464cab6";
+    hash = "sha256-W2v3/osDrjRQqz2DqoG90SGcu4K6G2ypMTfE6Xq5qNI=";
   };
 
   sourceRoot = "${src.name}/pykanidm";
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -54,18 +53,17 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "-m 'not network'"
-  ];
+  pytestFlagsArray = [ "-m 'not network'" ];
 
-  pythonImportsCheck = [
-    "kanidm"
-  ];
+  pythonImportsCheck = [ "kanidm" ];
 
   meta = with lib; {
     description = "Kanidm client library";
     homepage = "https://github.com/kanidm/kanidm/tree/master/pykanidm";
     license = licenses.mpl20;
-    maintainers = with maintainers; [ arianvp hexa ];
+    maintainers = with maintainers; [
+      arianvp
+      hexa
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/kaptan/default.nix b/pkgs/development/python-modules/kaptan/default.nix
index d570ae3b00669..248a09630f518 100644
--- a/pkgs/development/python-modules/kaptan/default.nix
+++ b/pkgs/development/python-modules/kaptan/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyyaml
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyyaml,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,17 +23,11 @@ buildPythonPackage rec {
     substituteInPlace requirements/base.txt --replace 'PyYAML>=3.13,<6' 'PyYAML>=3.13'
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    pyyaml
-  ];
+  propagatedBuildInputs = [ pyyaml ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Configuration manager for python applications";
@@ -41,5 +36,4 @@ buildPythonPackage rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/karton-asciimagic/default.nix b/pkgs/development/python-modules/karton-asciimagic/default.nix
index ffed577e72223..59ec94d592a49 100644
--- a/pkgs/development/python-modules/karton-asciimagic/default.nix
+++ b/pkgs/development/python-modules/karton-asciimagic/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, karton-core
-, unittestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  karton-core,
+  unittestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-sY5ik9efzLBa6Fbh17Vh4q7PlwOGYjuodU9yvp/8E3k=";
   };
 
-  propagatedBuildInputs = [
-    karton-core
-  ];
+  propagatedBuildInputs = [ karton-core ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  pythonImportsCheck = [
-    "karton.asciimagic"
-  ];
+  pythonImportsCheck = [ "karton.asciimagic" ];
 
   meta = with lib; {
     description = "Decoders for ascii-encoded executables for the Karton framework";
diff --git a/pkgs/development/python-modules/karton-autoit-ripper/default.nix b/pkgs/development/python-modules/karton-autoit-ripper/default.nix
index f4a8e2f5868bb..7974ad57c49ed 100644
--- a/pkgs/development/python-modules/karton-autoit-ripper/default.nix
+++ b/pkgs/development/python-modules/karton-autoit-ripper/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, autoit-ripper
-, buildPythonPackage
-, fetchFromGitHub
-, karton-core
-, malduck
-, pythonOlder
-, regex
+{
+  lib,
+  autoit-ripper,
+  buildPythonPackage,
+  fetchFromGitHub,
+  karton-core,
+  malduck,
+  pythonOlder,
+  regex,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "karton.autoit_ripper"
-  ];
+  pythonImportsCheck = [ "karton.autoit_ripper" ];
 
   meta = with lib; {
     description = "AutoIt script ripper for Karton framework";
diff --git a/pkgs/development/python-modules/karton-classifier/default.nix b/pkgs/development/python-modules/karton-classifier/default.nix
index bb104b291491d..21bd3f5679d81 100644
--- a/pkgs/development/python-modules/karton-classifier/default.nix
+++ b/pkgs/development/python-modules/karton-classifier/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, chardet
-, fetchFromGitHub
-, karton-core
-, pytestCheckHook
-, python-magic
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  chardet,
+  fetchFromGitHub,
+  karton-core,
+  pytestCheckHook,
+  python-magic,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     python-magic
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace requirements.txt \
@@ -38,9 +37,7 @@ buildPythonPackage rec {
       --replace "python-magic==0.4.18" "python-magic"
   '';
 
-  pythonImportsCheck = [
-    "karton.classifier"
-  ];
+  pythonImportsCheck = [ "karton.classifier" ];
 
   disabledTests = [
     # Tests expecting results from a different version of libmagic
diff --git a/pkgs/development/python-modules/karton-config-extractor/default.nix b/pkgs/development/python-modules/karton-config-extractor/default.nix
index 90ede387f9224..55b0e4f5f0a45 100644
--- a/pkgs/development/python-modules/karton-config-extractor/default.nix
+++ b/pkgs/development/python-modules/karton-config-extractor/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, karton-core
-, malduck
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  karton-core,
+  malduck,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "karton.config_extractor"
-  ];
+  pythonImportsCheck = [ "karton.config_extractor" ];
 
   meta = with lib; {
     description = "Static configuration extractor for the Karton framework";
diff --git a/pkgs/development/python-modules/karton-core/default.nix b/pkgs/development/python-modules/karton-core/default.nix
index e9c0b9cb07c4b..00796239d3418 100644
--- a/pkgs/development/python-modules/karton-core/default.nix
+++ b/pkgs/development/python-modules/karton-core/default.nix
@@ -1,31 +1,30 @@
-{ lib
-, boto3
-, buildPythonPackage
-, fetchFromGitHub
-, orjson
-, pythonOlder
-, redis
-, setuptools
-, unittestCheckHook
+{
+  lib,
+  boto3,
+  buildPythonPackage,
+  fetchFromGitHub,
+  orjson,
+  pythonOlder,
+  redis,
+  setuptools,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "karton-core";
-  version = "5.3.4";
+  version = "5.4.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "CERT-Polska";
     repo = "karton";
     rev = "refs/tags/v${version}";
-    hash = "sha256-q12S80GZFyh7zU6iMeCkyIesMK8qXtZ1B69w8H5LpOU=";
+    hash = "sha256-4IU4ttJdh5BU79076kbQOtzqzeQ3/Xb9Qd6Bh9iNXrA=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     boto3
@@ -33,19 +32,18 @@ buildPythonPackage rec {
     redis
   ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  pythonImportsCheck = [
-    "karton.core"
-  ];
+  pythonImportsCheck = [ "karton.core" ];
 
   meta = with lib; {
     description = "Distributed malware processing framework";
     homepage = "https://karton-core.readthedocs.io/";
     changelog = "https://github.com/CERT-Polska/karton/releases/tag/v${version}";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ chivay fab ];
+    maintainers = with maintainers; [
+      chivay
+      fab
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/karton-dashboard/default.nix b/pkgs/development/python-modules/karton-dashboard/default.nix
index b90653dddd468..efbff71a3795c 100644
--- a/pkgs/development/python-modules/karton-dashboard/default.nix
+++ b/pkgs/development/python-modules/karton-dashboard/default.nix
@@ -1,18 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flask
-, karton-core
-, mistune
-, networkx
-, prometheus-client
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+  karton-core,
+  mistune,
+  networkx,
+  prometheus-client,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "karton-dashboard";
-  version = "1.5.0";
+  version = "1.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "CERT-Polska";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-O7Wrl9+RWkHPO0+9aue1Nlv0263qX8Thnh5FmnoKjxU=";
+    hash = "sha256-VzBC7IATF8QBtTXMv4vmorAzBlImEsayjenQ2Uz5jIo=";
   };
 
   pythonRelaxDeps = [
@@ -31,9 +31,6 @@ buildPythonPackage rec {
     "prometheus-client"
   ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   propagatedBuildInputs = [
     flask
diff --git a/pkgs/development/python-modules/karton-mwdb-reporter/default.nix b/pkgs/development/python-modules/karton-mwdb-reporter/default.nix
index 0fd9713beaf64..d67ff1a31ae21 100644
--- a/pkgs/development/python-modules/karton-mwdb-reporter/default.nix
+++ b/pkgs/development/python-modules/karton-mwdb-reporter/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, karton-core
-, mwdblib
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  karton-core,
+  mwdblib,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "karton.mwdb_reporter"
-  ];
+  pythonImportsCheck = [ "karton.mwdb_reporter" ];
 
   meta = with lib; {
     description = "Karton service that uploads analyzed artifacts and metadata to MWDB Core";
diff --git a/pkgs/development/python-modules/karton-yaramatcher/default.nix b/pkgs/development/python-modules/karton-yaramatcher/default.nix
index 1d5c4d56173ec..c64a248c474f4 100644
--- a/pkgs/development/python-modules/karton-yaramatcher/default.nix
+++ b/pkgs/development/python-modules/karton-yaramatcher/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, karton-core
-, unittestCheckHook
-, pythonOlder
-, yara-python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  karton-core,
+  unittestCheckHook,
+  pythonOlder,
+  yara-python,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     yara-python
   ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  pythonImportsCheck = [
-    "karton.yaramatcher"
-  ];
+  pythonImportsCheck = [ "karton.yaramatcher" ];
 
   meta = with lib; {
     description = "File and analysis artifacts yara matcher for the Karton framework";
diff --git a/pkgs/development/python-modules/kasa-crypt/default.nix b/pkgs/development/python-modules/kasa-crypt/default.nix
index 2247b2ece99d4..44d86fc29a5a3 100644
--- a/pkgs/development/python-modules/kasa-crypt/default.nix
+++ b/pkgs/development/python-modules/kasa-crypt/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cython
-, poetry-core
-, pytestCheckHook
-, setuptools
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cython,
+  poetry-core,
+  pytestCheckHook,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "kasa-crypt";
-  version = "0.4.1";
-  format = "pyproject";
+  version = "0.4.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -19,27 +20,23 @@ buildPythonPackage rec {
     owner = "bdraco";
     repo = "kasa-crypt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ZAynSL6tIQoe9veYGusel9GQEffeLQ8dBA9HfA6TMzI=";
+    hash = "sha256-7PLOuWxA5ziOuysSu+nLWNmNA3/sbuUCuZcMRBflf6U=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace " --cov=kasa_crypt --cov-report=term-missing:skip-covered" ""
+      --replace-fail " --cov=kasa_crypt --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     cython
     poetry-core
     setuptools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "kasa_crypt"
-  ];
+  pythonImportsCheck = [ "kasa_crypt" ];
 
   meta = with lib; {
     description = "Fast kasa crypt";
diff --git a/pkgs/development/python-modules/kazoo/default.nix b/pkgs/development/python-modules/kazoo/default.nix
index 73f041f49f23d..8b0c78d705edd 100644
--- a/pkgs/development/python-modules/kazoo/default.nix
+++ b/pkgs/development/python-modules/kazoo/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
-, eventlet
-, gevent
-, pynose
-, mock
-, coverage
-, pkgs
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  eventlet,
+  gevent,
+  pynose,
+  mock,
+  coverage,
+  pkgs,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,14 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ six ];
-  buildInputs = [ eventlet gevent pynose mock coverage pkgs.openjdk8 ];
+  buildInputs = [
+    eventlet
+    gevent
+    pynose
+    mock
+    coverage
+    pkgs.openjdk8
+  ];
 
   # not really needed
   preBuild = ''
@@ -41,5 +49,4 @@ buildPythonPackage rec {
     description = "Higher Level Zookeeper Client";
     license = licenses.asl20;
   };
-
 }
diff --git a/pkgs/development/python-modules/kbcstorage/default.nix b/pkgs/development/python-modules/kbcstorage/default.nix
index a10b8ddf7316a..aeccbe375738e 100644
--- a/pkgs/development/python-modules/kbcstorage/default.nix
+++ b/pkgs/development/python-modules/kbcstorage/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, azure-storage-blob
-, boto3
-, buildPythonPackage
-, fetchFromGitHub
-, python-dotenv
-, pythonOlder
-, requests
-, responses
-, setuptools
-, setuptools-git-versioning
-, setuptools-scm
-, unittestCheckHook
-, urllib3
+{
+  lib,
+  azure-storage-blob,
+  boto3,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python-dotenv,
+  pythonOlder,
+  requests,
+  responses,
+  setuptools,
+  setuptools-git-versioning,
+  setuptools-scm,
+  unittestCheckHook,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "sapi-python-client";
-  version = "0.8.0";
+  version = "0.9.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     owner = "keboola";
     repo = "sapi-python-client";
     rev = "refs/tags/${version}";
-    hash = "sha256-Xc4VD91Nhnj0UyWHpdwEaETJVH8Ue6/kuiKEMaiSR0g=";
+    hash = "sha256-4ykOwSQ1tM0ZviETkjU0ydg7FWjkGNysHQe+f9MS0MM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/kconfiglib/default.nix b/pkgs/development/python-modules/kconfiglib/default.nix
index 4e133e40df011..12c7ba6170db8 100644
--- a/pkgs/development/python-modules/kconfiglib/default.nix
+++ b/pkgs/development/python-modules/kconfiglib/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "kconfiglib";
@@ -14,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A flexible Python 2/3 Kconfig implementation and library";
+    description = "Flexible Python 2/3 Kconfig implementation and library";
     homepage = "https://github.com/ulfalizer/Kconfiglib";
     license = licenses.isc;
     maintainers = with maintainers; [ teto ];
diff --git a/pkgs/development/python-modules/keba-kecontact/default.nix b/pkgs/development/python-modules/keba-kecontact/default.nix
index 33ece1b408cdc..66ed7604fa05a 100644
--- a/pkgs/development/python-modules/keba-kecontact/default.nix
+++ b/pkgs/development/python-modules/keba-kecontact/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, asyncio-dgram
-, buildPythonPackage
-, fetchFromGitHub
-, netifaces
-, pythonOlder
+{
+  lib,
+  asyncio-dgram,
+  buildPythonPackage,
+  fetchFromGitHub,
+  netifaces,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "keba_kecontact"
-  ];
+  pythonImportsCheck = [ "keba_kecontact" ];
 
   meta = with lib; {
     description = "Python library for controlling KEBA charging stations";
diff --git a/pkgs/development/python-modules/keep/default.nix b/pkgs/development/python-modules/keep/default.nix
index 354ce597e6ec0..f4e0ab5f1250a 100644
--- a/pkgs/development/python-modules/keep/default.nix
+++ b/pkgs/development/python-modules/keep/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pygithub
-, terminaltables
-, click
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pygithub,
+  terminaltables,
+  click,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -30,7 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/orkohunter/keep";
-    description = "A Meta CLI toolkit: Personal shell command keeper and snippets manager";
+    description = "Meta CLI toolkit: Personal shell command keeper and snippets manager";
     mainProgram = "keep";
     platforms = platforms.all;
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/keepalive/default.nix b/pkgs/development/python-modules/keepalive/default.nix
index 94a9b413c4fd1..1228dc78f28ee 100644
--- a/pkgs/development/python-modules/keepalive/default.nix
+++ b/pkgs/development/python-modules/keepalive/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,7 @@ buildPythonPackage rec {
       name = "remove-use_2to3.patch";
       url = "https://github.com/wikier/keepalive/commit/64393f6c5bf9c69d946b584fd664dd4df72604e6.patch";
       hash = "sha256-/G1eEt8a4Qz7x5oQnDZZD/PIQwo9+oPZoy9OrXGHvR4=";
-      excludes = ["README.md"];
+      excludes = [ "README.md" ];
     })
   ];
 
@@ -28,7 +29,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An HTTP handler for `urllib` that supports HTTP 1.1 and keepalive";
+    description = "HTTP handler for `urllib` that supports HTTP 1.1 and keepalive";
     homepage = "https://github.com/wikier/keepalive";
     license = licenses.lgpl21Plus;
   };
diff --git a/pkgs/development/python-modules/keepkey-agent/default.nix b/pkgs/development/python-modules/keepkey-agent/default.nix
index f9404f183c47b..df3f5444772d3 100644
--- a/pkgs/development/python-modules/keepkey-agent/default.nix
+++ b/pkgs/development/python-modules/keepkey-agent/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, keepkey
-, setuptools
-, libagent
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  keepkey,
+  setuptools,
+  libagent,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,10 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    keepkey libagent setuptools wheel
+    keepkey
+    libagent
+    setuptools
+    wheel
   ];
 
   doCheck = false;
@@ -29,6 +33,10 @@ buildPythonPackage rec {
     description = "Using KeepKey as hardware-based SSH/PGP agent";
     homepage = "https://github.com/romanz/trezor-agent";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ hkjn np mmahut ];
+    maintainers = with maintainers; [
+      hkjn
+      np
+      mmahut
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/keepkey/default.nix b/pkgs/development/python-modules/keepkey/default.nix
index d4a62c74a6397..f0633a06b8389 100644
--- a/pkgs/development/python-modules/keepkey/default.nix
+++ b/pkgs/development/python-modules/keepkey/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, ecdsa
-, hidapi
-, libusb1
-, mnemonic
-, protobuf
-, pytest
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  ecdsa,
+  hidapi,
+  libusb1,
+  mnemonic,
+  protobuf,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,13 @@ buildPythonPackage rec {
     sha256 = "00hqppdj3s9y25x4ad59y8axq94dd4chhw9zixq32sdrd9v8z55a";
   };
 
-  propagatedBuildInputs = [ ecdsa hidapi libusb1 mnemonic protobuf ];
+  propagatedBuildInputs = [
+    ecdsa
+    hidapi
+    libusb1
+    mnemonic
+    protobuf
+  ];
 
   nativeCheckInputs = [ pytest ];
 
diff --git a/pkgs/development/python-modules/kegtron-ble/default.nix b/pkgs/development/python-modules/kegtron-ble/default.nix
index e5ddcf01be1c8..5d1928741b709 100644
--- a/pkgs/development/python-modules/kegtron-ble/default.nix
+++ b/pkgs/development/python-modules/kegtron-ble/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, bluetooth-data-tools
-, bluetooth-sensor-state-data
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, sensor-state-data
+{
+  lib,
+  bluetooth-data-tools,
+  bluetooth-sensor-state-data,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  sensor-state-data,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-O5I5shW8nL2RAQptS2Bp/GI/4L6o0xXXmwYvRq0MM8o=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bluetooth-data-tools
@@ -33,18 +32,14 @@ buildPythonPackage rec {
     sensor-state-data
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace " --cov=kegtron_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  pythonImportsCheck = [
-    "kegtron_ble"
-  ];
+  pythonImportsCheck = [ "kegtron_ble" ];
 
   meta = with lib; {
     description = "Library for Kegtron BLE devices";
diff --git a/pkgs/development/python-modules/keras-applications/default.nix b/pkgs/development/python-modules/keras-applications/default.nix
index fdfbdba89cb8b..cdb3beb6a4031 100644
--- a/pkgs/development/python-modules/keras-applications/default.nix
+++ b/pkgs/development/python-modules/keras-applications/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, numpy, h5py }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  h5py,
+}:
 
 buildPythonPackage rec {
   pname = "keras-applications";
@@ -18,7 +24,10 @@ buildPythonPackage rec {
   # No tests in PyPI tarball
   doCheck = false;
 
-  propagatedBuildInputs = [ numpy h5py ];
+  propagatedBuildInputs = [
+    numpy
+    h5py
+  ];
 
   meta = with lib; {
     description = "Reference implementations of popular deep learning models";
diff --git a/pkgs/development/python-modules/keras-preprocessing/default.nix b/pkgs/development/python-modules/keras-preprocessing/default.nix
index 833a01c0f2546..0e9b0bf5187f2 100644
--- a/pkgs/development/python-modules/keras-preprocessing/default.nix
+++ b/pkgs/development/python-modules/keras-preprocessing/default.nix
@@ -1,4 +1,14 @@
-{ lib, buildPythonPackage, fetchPypi, numpy, six, scipy, pillow, pytest, keras }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  six,
+  scipy,
+  pillow,
+  pytest,
+  keras,
+}:
 
 buildPythonPackage rec {
   pname = "keras-preprocessing";
@@ -12,13 +22,16 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     # required
-    numpy six
+    numpy
+    six
     # optional
-    scipy pillow
+    scipy
+    pillow
   ];
 
   nativeCheckInputs = [
-    pytest keras
+    pytest
+    keras
   ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/keras/default.nix b/pkgs/development/python-modules/keras/default.nix
index 55deee586c8da..4882b45aa4c90 100644
--- a/pkgs/development/python-modules/keras/default.nix
+++ b/pkgs/development/python-modules/keras/default.nix
@@ -1,39 +1,64 @@
-{ lib, buildPythonPackage, fetchPypi
-, pytest, pytest-cov, pytest-xdist
-, six, numpy, scipy, pyyaml, h5py
-, keras-applications, keras-preprocessing
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  absl-py,
+  dm-tree,
+  h5py,
+  markdown-it-py,
+  ml-dtypes,
+  namex,
+  numpy,
+  optree,
+  rich,
+  tensorflow,
 }:
 
 buildPythonPackage rec {
   pname = "keras";
-  version = "3.2.1";
-  format = "wheel";
-
-  src = fetchPypi {
-    inherit format pname version;
-    hash = "sha256-C+HomwQeaXvlYthCLsuVjuVIGs/AiZEyAJJsVh0ligM=";
-    python = "py3";
-    dist = "py3";
+  version = "3.3.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "keras-team";
+    repo = "keras";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-hhY28Ocv4zacZiwFflJtufKpeKfH1MD1PZJ+NTJfpH0=";
   };
 
-  nativeCheckInputs = [
-    pytest
-    pytest-cov
-    pytest-xdist
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
+    absl-py
+    dm-tree
+    h5py
+    markdown-it-py
+    ml-dtypes
+    namex
+    numpy
+    optree
+    rich
+    tensorflow
   ];
 
-  propagatedBuildInputs = [
-    six pyyaml numpy scipy h5py
-    keras-applications keras-preprocessing
+  pythonImportsCheck = [
+    "keras"
+    "keras._tf_keras"
   ];
 
   # Couldn't get tests working
   doCheck = false;
 
-  meta = with lib; {
-    description = "Deep Learning library for Theano and TensorFlow";
+  meta = {
+    description = "Multi-backend implementation of the Keras API, with support for TensorFlow, JAX, and PyTorch";
     homepage = "https://keras.io";
-    license = licenses.mit;
-    maintainers = with maintainers; [ NikolaMandic ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ NikolaMandic ];
   };
 }
diff --git a/pkgs/development/python-modules/kerberos/default.nix b/pkgs/development/python-modules/kerberos/default.nix
index 4c5a8027e22dd..8f6f8c7682e0f 100644
--- a/pkgs/development/python-modules/kerberos/default.nix
+++ b/pkgs/development/python-modules/kerberos/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, libkrb5
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  libkrb5,
 }:
 
 buildPythonPackage rec {
@@ -23,8 +24,6 @@ buildPythonPackage rec {
     description = "Kerberos high-level interface";
     homepage = "https://pypi.org/project/kerberos/";
     license = licenses.asl20;
-    knownVulnerabilities = [
-      "CVE-2015-3206"
-    ];
+    knownVulnerabilities = [ "CVE-2015-3206" ];
   };
 }
diff --git a/pkgs/development/python-modules/keyboard/default.nix b/pkgs/development/python-modules/keyboard/default.nix
index 20b3453dab0d1..7620e272ea719 100644
--- a/pkgs/development/python-modules/keyboard/default.nix
+++ b/pkgs/development/python-modules/keyboard/default.nix
@@ -1,6 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+}:
 
 buildPythonPackage rec {
   pname = "keyboard";
@@ -25,7 +27,7 @@ buildPythonPackage rec {
     description = "Hook and simulate keyboard events on Windows and Linux";
     homepage = "https://github.com/boppreh/keyboard";
     license = licenses.mit;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/python-modules/keyring-pass/default.nix b/pkgs/development/python-modules/keyring-pass/default.nix
index 6c8d5f1e915b5..bf618e9a136a2 100644
--- a/pkgs/development/python-modules/keyring-pass/default.nix
+++ b/pkgs/development/python-modules/keyring-pass/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, gnupg
-, keyring
-, pass
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gnupg,
+  keyring,
+  pass,
+  poetry-core,
+  pythonOlder,
 }:
 buildPythonPackage rec {
   pname = "keyring-pass";
@@ -26,9 +27,7 @@ buildPythonPackage rec {
       --replace 'pass_binary = "pass"' 'pass_binary = "${lib.getExe pass}"'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     keyring
@@ -65,9 +64,7 @@ buildPythonPackage rec {
     keyring del test-service test-username
   '';
 
-  pythonImportsCheck = [
-    "keyring_pass"
-  ];
+  pythonImportsCheck = [ "keyring_pass" ];
 
   meta = {
     description = "Password Store (pass) backend for python's keyring";
diff --git a/pkgs/development/python-modules/keyring/default.nix b/pkgs/development/python-modules/keyring/default.nix
index ba2c56d99682d..2ffd2235d3dea 100644
--- a/pkgs/development/python-modules/keyring/default.nix
+++ b/pkgs/development/python-modules/keyring/default.nix
@@ -1,28 +1,30 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, installShellFiles
-, setuptools-scm
-, shtab
-, importlib-metadata
-, dbus-python
-, jaraco-classes
-, jeepney
-, secretstorage
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  installShellFiles,
+  setuptools-scm,
+  shtab,
+  importlib-metadata,
+  jaraco-classes,
+  jaraco-context,
+  jaraco-functools,
+  jeepney,
+  secretstorage,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "keyring";
-  version = "24.3.1";
+  version = "25.2.1";
   pyproject = true;
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wzJ7b/r8DovvvbWXys20ko/+XBIS92RfGG5tmVeomNs=";
+    hash = "sha256-2q/9QtvaJd2vsa1f7EAk5bvP5CRZfKHKRSspmGHknxs=";
   };
 
   nativeBuildInputs = [
@@ -31,14 +33,17 @@ buildPythonPackage rec {
     shtab
   ];
 
-  propagatedBuildInputs = [
-    jaraco-classes
-  ] ++ lib.optionals stdenv.isLinux [
-    jeepney
-    secretstorage
-  ] ++ lib.optionals (pythonOlder "3.12") [
-    importlib-metadata
-  ];
+  propagatedBuildInputs =
+    [
+      jaraco-classes
+      jaraco-context
+      jaraco-functools
+    ]
+    ++ lib.optionals stdenv.isLinux [
+      jeepney
+      secretstorage
+    ]
+    ++ lib.optionals (pythonOlder "3.12") [ importlib-metadata ];
 
   postInstall = ''
     installShellCompletion --cmd keyring \
@@ -51,23 +56,23 @@ buildPythonPackage rec {
     "keyring.backend"
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTestPaths = [
-    "tests/backends/test_macOS.py"
-  ]
-  # These tests fail when sandboxing is enabled because they are unable to get a password from keychain.
-  ++ lib.optional stdenv.isDarwin "tests/test_multiprocess.py";
+  disabledTestPaths =
+    [ "tests/backends/test_macOS.py" ]
+    # These tests fail when sandboxing is enabled because they are unable to get a password from keychain.
+    ++ lib.optional stdenv.isDarwin "tests/test_multiprocess.py";
 
   meta = with lib; {
     description = "Store and access your passwords safely";
-    homepage    = "https://github.com/jaraco/keyring";
-    changelog   = "https://github.com/jaraco/keyring/blob/v${version}/NEWS.rst";
-    license     = licenses.mit;
+    homepage = "https://github.com/jaraco/keyring";
+    changelog = "https://github.com/jaraco/keyring/blob/v${version}/NEWS.rst";
+    license = licenses.mit;
     mainProgram = "keyring";
-    maintainers = with maintainers; [ lovek323 dotlambda ];
-    platforms   = platforms.unix;
+    maintainers = with maintainers; [
+      lovek323
+      dotlambda
+    ];
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/keyrings-alt/default.nix b/pkgs/development/python-modules/keyrings-alt/default.nix
index 2ad45c6e717f6..b129e8083b529 100644
--- a/pkgs/development/python-modules/keyrings-alt/default.nix
+++ b/pkgs/development/python-modules/keyrings-alt/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jaraco-classes
-, jaraco-context
-, keyring
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jaraco-classes,
+  jaraco-context,
+  keyring,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-zTcqHsRGobxakGJKUsiOg7kzAhjjkEemyaSK430RZ0U=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     jaraco-classes
@@ -36,9 +35,7 @@ buildPythonPackage rec {
     keyring
   ];
 
-  pythonImportsCheck = [
-    "keyrings.alt"
-  ];
+  pythonImportsCheck = [ "keyrings.alt" ];
 
   meta = with lib; {
     description = "Alternate keyring implementations";
diff --git a/pkgs/development/python-modules/keyrings-cryptfile/default.nix b/pkgs/development/python-modules/keyrings-cryptfile/default.nix
index 1621bcb30d951..d9cd3f4a0e047 100644
--- a/pkgs/development/python-modules/keyrings-cryptfile/default.nix
+++ b/pkgs/development/python-modules/keyrings-cryptfile/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, argon2-cffi
-, buildPythonPackage
-, fetchPypi
-, keyring
-, pycryptodome
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  argon2-cffi,
+  buildPythonPackage,
+  fetchPypi,
+  keyring,
+  pycryptodome,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -32,13 +33,9 @@ buildPythonPackage rec {
     pycryptodome
   ];
 
-  pythonImportsCheck = [
-    "keyrings.cryptfile"
-  ];
+  pythonImportsCheck = [ "keyrings.cryptfile" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # FileNotFoundError: [Errno 2] No such file or directory: '/build/...
diff --git a/pkgs/development/python-modules/keyrings-google-artifactregistry-auth/default.nix b/pkgs/development/python-modules/keyrings-google-artifactregistry-auth/default.nix
index b9204cbdabe77..337d895674151 100644
--- a/pkgs/development/python-modules/keyrings-google-artifactregistry-auth/default.nix
+++ b/pkgs/development/python-modules/keyrings-google-artifactregistry-auth/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-auth
-, keyring
-, pluggy
-, pythonOlder
-, requests
-, setuptools-scm
-, toml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-auth,
+  keyring,
+  pluggy,
+  pythonOlder,
+  requests,
+  setuptools-scm,
+  toml,
 }:
 
 buildPythonPackage rec {
@@ -35,9 +36,7 @@ buildPythonPackage rec {
     requests
   ];
 
-  pythonImportsCheck = [
-    "keyrings.gauth"
-  ];
+  pythonImportsCheck = [ "keyrings.gauth" ];
 
   # upstream has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/keyrings-passwordstore/default.nix b/pkgs/development/python-modules/keyrings-passwordstore/default.nix
index db8d934c93004..43f35253ddfc5 100644
--- a/pkgs/development/python-modules/keyrings-passwordstore/default.nix
+++ b/pkgs/development/python-modules/keyrings-passwordstore/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-, keyring
-, setuptools-scm
+  keyring,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -17,17 +18,11 @@ buildPythonPackage rec {
     hash = "sha256-pylZw45FUtLHzUV4cDyl/nT8tCZwNj4Jf41MMlyskoU=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  nativeCheckInputs = [
-    keyring
-  ];
+  nativeCheckInputs = [ keyring ];
 
-  pythonImportsCheck = [
-    "keyrings.passwordstore.backend"
-  ];
+  pythonImportsCheck = [ "keyrings.passwordstore.backend" ];
 
   meta = {
     license = lib.licenses.mit;
diff --git a/pkgs/development/python-modules/keystone-engine/default.nix b/pkgs/development/python-modules/keystone-engine/default.nix
index 5b392186c9526..61e27473ec982 100644
--- a/pkgs/development/python-modules/keystone-engine/default.nix
+++ b/pkgs/development/python-modules/keystone-engine/default.nix
@@ -1,4 +1,10 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, keystone }:
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  keystone,
+}:
 
 buildPythonPackage rec {
   pname = "keystone-engine";
@@ -6,11 +12,14 @@ buildPythonPackage rec {
   format = "setuptools";
 
   src = fetchPypi {
-   inherit pname version;
-   sha256 = "1xahdr6bh3dw5swrc2r8kqa8ljhqlb7k2kxv5mrw5rhcmcnzcyig";
+    inherit pname version;
+    sha256 = "1xahdr6bh3dw5swrc2r8kqa8ljhqlb7k2kxv5mrw5rhcmcnzcyig";
   };
 
-  setupPyBuildFlags = lib.optionals stdenv.isLinux [ "--plat-name" "linux" ];
+  setupPyBuildFlags = lib.optionals stdenv.isLinux [
+    "--plat-name"
+    "linux"
+  ];
 
   preConfigure = ''
     substituteInPlace setup.py --replace \
diff --git a/pkgs/development/python-modules/keystoneauth1/default.nix b/pkgs/development/python-modules/keystoneauth1/default.nix
index 412080ba846fd..f6caa2d8e9e98 100644
--- a/pkgs/development/python-modules/keystoneauth1/default.nix
+++ b/pkgs/development/python-modules/keystoneauth1/default.nix
@@ -1,32 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, betamax
-, hacking
-, iso8601
-, lxml
-, oauthlib
-, os-service-types
-, oslo-config
-, oslo-utils
-, pbr
-, pycodestyle
-, pyyaml
-, requests
-, requests-kerberos
-, requests-mock
-, setuptools
-, six
-, stestr
-, stevedore
-, testresources
-, testtools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  betamax,
+  hacking,
+  iso8601,
+  lxml,
+  oauthlib,
+  os-service-types,
+  oslo-config,
+  oslo-utils,
+  pbr,
+  pycodestyle,
+  pyyaml,
+  requests,
+  requests-kerberos,
+  requests-mock,
+  setuptools,
+  six,
+  stestr,
+  stevedore,
+  testresources,
+  testtools,
 }:
 
 buildPythonPackage rec {
   pname = "keystoneauth1";
   version = "5.6.0";
-  pyproject= true;
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
@@ -39,9 +40,7 @@ buildPythonPackage rec {
     rm test-requirements.txt
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     betamax
diff --git a/pkgs/development/python-modules/keyutils/default.nix b/pkgs/development/python-modules/keyutils/default.nix
index 3782a3b23626d..e9b09ba1e0ece 100644
--- a/pkgs/development/python-modules/keyutils/default.nix
+++ b/pkgs/development/python-modules/keyutils/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, keyutils
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  keyutils,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -33,12 +34,10 @@ buildPythonPackage rec {
 
   buildInputs = [ keyutils ];
   nativeBuildInputs = [ cython ];
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
-    description = "A set of python bindings for keyutils";
+    description = "Set of python bindings for keyutils";
     homepage = "https://github.com/sassoftware/python-keyutils";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ primeos ];
diff --git a/pkgs/development/python-modules/khanaa/default.nix b/pkgs/development/python-modules/khanaa/default.nix
index 8548def29c3df..5c9cf53dc11ca 100644
--- a/pkgs/development/python-modules/khanaa/default.nix
+++ b/pkgs/development/python-modules/khanaa/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-, pythonOlder
+  pythonOlder,
 
-, unittestCheckHook
+  unittestCheckHook,
 
-, setuptools
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "khanaa";
-  version = "0.0.6";
+  version = "0.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,27 +21,25 @@ buildPythonPackage rec {
     owner = "cakimpei";
     repo = "khanaa";
     rev = "refs/tags/v${version}";
-    hash = "sha256-BzxNHYMkp5pdJYQ80EI5jlP654yX9woW7wz1jArCln4=";
+    hash = "sha256-QFvvahVEld3BooINeUYJDahZyfh5xmQNtWRLAOdr6lw=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [ "-s" "tests" ];
+  unittestFlagsArray = [
+    "-s"
+    "tests"
+  ];
 
   pythonImportsCheck = [ "khanaa" ];
 
-  meta = with lib;
-    {
-      description = "A tool to make spelling Thai more convenient";
-      homepage = "https://github.com/cakimpei/khanaa";
-      changelog = "https://github.com/cakimpei/khanaa/blob/main/CHANGELOG.md";
-      license = licenses.mit;
-      maintainers = with maintainers; [ vizid ];
-    };
+  meta = with lib; {
+    description = "Tool to make spelling Thai more convenient";
+    homepage = "https://github.com/cakimpei/khanaa";
+    changelog = "https://github.com/cakimpei/khanaa/blob/main/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ vizid ];
+  };
 }
diff --git a/pkgs/development/python-modules/kinparse/default.nix b/pkgs/development/python-modules/kinparse/default.nix
index 9c3286d1c62cf..a925347da3180 100644
--- a/pkgs/development/python-modules/kinparse/default.nix
+++ b/pkgs/development/python-modules/kinparse/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
-, future
-, pyparsing
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
+  future,
+  pyparsing,
 }:
 
 buildPythonPackage {
@@ -21,9 +22,7 @@ buildPythonPackage {
   doCheck = true;
   pythonImportsCheck = [ "kinparse" ];
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
   propagatedBuildInputs = [
     future
@@ -31,7 +30,7 @@ buildPythonPackage {
   ];
 
   meta = with lib; {
-    description = "A Parser for KiCad EESCHEMA netlists";
+    description = "Parser for KiCad EESCHEMA netlists";
     mainProgram = "kinparse";
     homepage = "https://github.com/xesscorp/kinparse";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/kiss-headers/default.nix b/pkgs/development/python-modules/kiss-headers/default.nix
index 895773678ca89..e7e52dacd187f 100644
--- a/pkgs/development/python-modules/kiss-headers/default.nix
+++ b/pkgs/development/python-modules/kiss-headers/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchFromGitHub, hatchling, requests, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  requests,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "kiss-headers";
@@ -36,6 +43,6 @@ buildPythonPackage rec {
     description = "Python package for HTTP/1.1 style headers";
     homepage = "https://github.com/Ousret/kiss-headers";
     license = licenses.mit;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/kitchen/default.nix b/pkgs/development/python-modules/kitchen/default.nix
index e606505948553..8aba622aee15c 100644
--- a/pkgs/development/python-modules/kitchen/default.nix
+++ b/pkgs/development/python-modules/kitchen/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # Waiting for upstream's clean-up
   doCheck = false;
 
-  pythonImportsCheck = [
-    "kitchen"
-  ];
+  pythonImportsCheck = [ "kitchen" ];
 
   meta = with lib; {
     description = "Kitchen contains a cornucopia of useful code";
diff --git a/pkgs/development/python-modules/kivy-garden/default.nix b/pkgs/development/python-modules/kivy-garden/default.nix
index 1475b4448230d..34792e64d1444 100644
--- a/pkgs/development/python-modules/kivy-garden/default.nix
+++ b/pkgs/development/python-modules/kivy-garden/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -24,7 +25,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "The kivy garden installation script, split into its own package for convenient use in buildozer.";
+    description = "Kivy garden installation script, split into its own package for convenient use in buildozer";
     homepage = "https://github.com/kivy-garden/garden";
     license = licenses.mit;
     maintainers = with maintainers; [ risson ];
diff --git a/pkgs/development/python-modules/kivy/default.nix b/pkgs/development/python-modules/kivy/default.nix
index 0a9e006844a8d..f71c8288c74eb 100644
--- a/pkgs/development/python-modules/kivy/default.nix
+++ b/pkgs/development/python-modules/kivy/default.nix
@@ -1,12 +1,28 @@
-{ lib, stdenv
-, buildPythonPackage, fetchFromGitHub, fetchpatch
-, pkg-config, cython_0, docutils
-, kivy-garden
-, mesa, mtdev, SDL2, SDL2_image, SDL2_ttf, SDL2_mixer
-, Accelerate, ApplicationServices, AVFoundation, libcxx
-, withGstreamer ? true
-, gst_all_1
-, packaging, pillow, pygments, requests
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pkg-config,
+  cython_0,
+  docutils,
+  kivy-garden,
+  mesa,
+  mtdev,
+  SDL2,
+  SDL2_image,
+  SDL2_ttf,
+  SDL2_mixer,
+  Accelerate,
+  ApplicationServices,
+  AVFoundation,
+  libcxx,
+  withGstreamer ? true,
+  gst_all_1,
+  packaging,
+  pillow,
+  pygments,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -26,26 +42,33 @@ buildPythonPackage rec {
     docutils
   ];
 
-  buildInputs = [
-    SDL2
-    SDL2_image
-    SDL2_ttf
-    SDL2_mixer
-  ] ++ lib.optionals stdenv.isLinux [
-    mesa
-    mtdev
-  ] ++ lib.optionals stdenv.isDarwin [
-    Accelerate
-    ApplicationServices
-    AVFoundation
-    libcxx
-  ] ++ lib.optionals withGstreamer (with gst_all_1; [
-    # NOTE: The degree to which gstreamer actually works is unclear
-    gstreamer
-    gst-plugins-base
-    gst-plugins-good
-    gst-plugins-bad
-  ]);
+  buildInputs =
+    [
+      SDL2
+      SDL2_image
+      SDL2_ttf
+      SDL2_mixer
+    ]
+    ++ lib.optionals stdenv.isLinux [
+      mesa
+      mtdev
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      Accelerate
+      ApplicationServices
+      AVFoundation
+      libcxx
+    ]
+    ++ lib.optionals withGstreamer (
+      with gst_all_1;
+      [
+        # NOTE: The degree to which gstreamer actually works is unclear
+        gstreamer
+        gst-plugins-base
+        gst-plugins-good
+        gst-plugins-bad
+      ]
+    );
 
   propagatedBuildInputs = [
     kivy-garden
@@ -76,7 +99,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "kivy" ];
 
   meta = with lib; {
-    description = "Library for rapid development of hardware-accelerated multitouch applications.";
+    description = "Library for rapid development of hardware-accelerated multitouch applications";
     homepage = "https://pypi.python.org/pypi/kivy";
     license = licenses.mit;
     maintainers = with maintainers; [ risson ];
diff --git a/pkgs/development/python-modules/kiwiki-client/default.nix b/pkgs/development/python-modules/kiwiki-client/default.nix
index 22da8a5236e21..45f328d08fb6e 100644
--- a/pkgs/development/python-modules/kiwiki-client/default.nix
+++ b/pkgs/development/python-modules/kiwiki-client/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python-dateutil
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python-dateutil,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "kiwiki"
-  ];
+  pythonImportsCheck = [ "kiwiki" ];
 
   meta = with lib; {
     description = "Module to interact with the KIWI.KI API";
diff --git a/pkgs/development/python-modules/kiwisolver/default.nix b/pkgs/development/python-modules/kiwisolver/default.nix
index bc905e77269a7..e68ff83c462ea 100644
--- a/pkgs/development/python-modules/kiwisolver/default.nix
+++ b/pkgs/development/python-modules/kiwisolver/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, stdenv
-, libcxx
-, cppy
-, setuptools-scm
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  stdenv,
+  libcxx,
+  cppy,
+  setuptools-scm,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,17 +23,11 @@ buildPythonPackage rec {
 
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1";
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    cppy
-  ];
+  buildInputs = [ cppy ];
 
-  pythonImportsCheck = [
-    "kiwisolver"
-  ];
+  pythonImportsCheck = [ "kiwisolver" ];
 
   meta = with lib; {
     description = "Implementation of the Cassowary constraint solver";
diff --git a/pkgs/development/python-modules/klaus/default.nix b/pkgs/development/python-modules/klaus/default.nix
index 6b60c78465bbe..b568e57c9ff13 100644
--- a/pkgs/development/python-modules/klaus/default.nix
+++ b/pkgs/development/python-modules/klaus/default.nix
@@ -1,15 +1,29 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy3k, flask, pygments, dulwich, httpauth, humanize, pytest, requests, python-ctags3, mock }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy3k,
+  flask,
+  pygments,
+  dulwich,
+  httpauth,
+  humanize,
+  pytest,
+  requests,
+  python-ctags3,
+  mock,
+}:
 
 buildPythonPackage rec {
   pname = "klaus";
-  version = "2.0.3";
+  version = "3.0.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "jonashaag";
     repo = pname;
     rev = version;
-    hash = "sha256-VAwIdmwdo/Rim2sVlR605Wo5/zkNOMiGkh40qLrENmU=";
+    hash = "sha256-GflSDhBmMsQ34o3ApraEJ6GmlXXP2kK6WW3lsfr6b7g=";
   };
 
   prePatch = ''
@@ -18,11 +32,17 @@ buildPythonPackage rec {
   '';
 
   propagatedBuildInputs = [
-    flask pygments dulwich httpauth humanize
+    flask
+    pygments
+    dulwich
+    httpauth
+    humanize
   ];
 
   nativeCheckInputs = [
-    pytest requests python-ctags3
+    pytest
+    requests
+    python-ctags3
   ] ++ lib.optional (!isPy3k) mock;
 
   checkPhase = ''
@@ -33,10 +53,10 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "The first Git web viewer that Just Works";
+    description = "First Git web viewer that Just Works";
     mainProgram = "klaus";
-    homepage    = "https://github.com/jonashaag/klaus";
-    license     = licenses.isc;
+    homepage = "https://github.com/jonashaag/klaus";
+    license = licenses.isc;
     maintainers = with maintainers; [ pSub ];
   };
 }
diff --git a/pkgs/development/python-modules/klein/default.nix b/pkgs/development/python-modules/klein/default.nix
index dd9d154cba63a..c6d31a9e5a0b1 100644
--- a/pkgs/development/python-modules/klein/default.nix
+++ b/pkgs/development/python-modules/klein/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build-system
-, setuptools
-, wheel
+  # build-system
+  setuptools,
+  wheel,
 
-# dependencies
-, attrs
-, hyperlink
-, incremental
-, tubes
-, twisted
-, werkzeug
-, zope-interface
+  # dependencies
+  attrs,
+  hyperlink,
+  incremental,
+  tubes,
+  twisted,
+  werkzeug,
+  zope-interface,
 
-# tests
-, idna
-, python
-, treq
+  # tests
+  idna,
+  python,
+  treq,
 }:
 
 buildPythonPackage rec {
@@ -62,9 +63,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "klein"
-  ];
+  pythonImportsCheck = [ "klein" ];
 
   meta = with lib; {
     changelog = "https://github.com/twisted/klein/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/kmapper/default.nix b/pkgs/development/python-modules/kmapper/default.nix
index c4f99ca613f51..dff908bf00e09 100644
--- a/pkgs/development/python-modules/kmapper/default.nix
+++ b/pkgs/development/python-modules/kmapper/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, scikit-learn
-, numpy
-, scipy
-, jinja2
-, pytestCheckHook
-, networkx
-, matplotlib
-, igraph
-, plotly
-, ipywidgets
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  scikit-learn,
+  numpy,
+  scipy,
+  jinja2,
+  pytestCheckHook,
+  networkx,
+  matplotlib,
+  igraph,
+  plotly,
+  ipywidgets,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/kml2geojson/default.nix b/pkgs/development/python-modules/kml2geojson/default.nix
index 50f0097df7e89..3b392a227aae4 100644
--- a/pkgs/development/python-modules/kml2geojson/default.nix
+++ b/pkgs/development/python-modules/kml2geojson/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, poetry-core
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, click
+{
+  lib,
+  buildPythonPackage,
+  poetry-core,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  click,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-iJEcXpvy+Y3MkxAF2Q1Tkcx8GxUVjeVzv6gl134zdiI=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    click
-  ];
+  propagatedBuildInputs = [ click ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "kml2geojson"
-  ];
+  pythonImportsCheck = [ "kml2geojson" ];
 
   meta = with lib; {
     description = "Library to convert KML to GeoJSON";
diff --git a/pkgs/development/python-modules/knack/default.nix b/pkgs/development/python-modules/knack/default.nix
index 7932b49539915..46005c96bee66 100644
--- a/pkgs/development/python-modules/knack/default.nix
+++ b/pkgs/development/python-modules/knack/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, argcomplete
-, colorama
-, jmespath
-, pygments
-, pyyaml
-, six
-, tabulate
-, mock
-, vcrpy
-, pytest
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  argcomplete,
+  colorama,
+  jmespath,
+  pygments,
+  pyyaml,
+  six,
+  tabulate,
+  mock,
+  vcrpy,
+  pytest,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -46,13 +47,11 @@ buildPythonPackage rec {
     HOME=$TMPDIR pytest .
   '';
 
-  pythonImportsCheck = [
-    "knack"
-  ];
+  pythonImportsCheck = [ "knack" ];
 
   meta = with lib; {
     homepage = "https://github.com/microsoft/knack";
-    description = "A Command-Line Interface framework";
+    description = "Command-Line Interface framework";
     changelog = "https://github.com/microsoft/knack/blob/v${version}/HISTORY.rst";
     platforms = platforms.all;
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/kneed/default.nix b/pkgs/development/python-modules/kneed/default.nix
index 4510aaa1cac09..0852d12a73402 100644
--- a/pkgs/development/python-modules/kneed/default.nix
+++ b/pkgs/development/python-modules/kneed/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, numpy
-, scipy
-, matplotlib
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  numpy,
+  scipy,
+  matplotlib,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
       --replace "--cov=kneed" ""
   '';
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     numpy
diff --git a/pkgs/development/python-modules/knx-frontend/default.nix b/pkgs/development/python-modules/knx-frontend/default.nix
index 6b6a1cff6700f..060062891d9aa 100644
--- a/pkgs/development/python-modules/knx-frontend/default.nix
+++ b/pkgs/development/python-modules/knx-frontend/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,9 @@ buildPythonPackage rec {
     hash = "sha256-5u+BaZjbGpIpQd3k+u5NC099TQuiwGKdE/EoIWny01I=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "knx_frontend"
-  ];
+  pythonImportsCheck = [ "knx_frontend" ];
 
   # no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/kombu/default.nix b/pkgs/development/python-modules/kombu/default.nix
index c4aad1fab20fb..a353418fd5a32 100644
--- a/pkgs/development/python-modules/kombu/default.nix
+++ b/pkgs/development/python-modules/kombu/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, amqp
-, azure-identity
-, azure-servicebus
-, azure-storage-queue
-, backports-zoneinfo
-, boto3
-, buildPythonPackage
-, case
-, confluent-kafka
-, fetchPypi
-, hypothesis
-, kazoo
-, msgpack
-, pycurl
-, pymongo
+{
+  lib,
+  amqp,
+  azure-identity,
+  azure-servicebus,
+  azure-storage-queue,
+  backports-zoneinfo,
+  boto3,
+  buildPythonPackage,
+  case,
+  confluent-kafka,
+  fetchPypi,
+  hypothesis,
+  kazoo,
+  msgpack,
+  pycurl,
+  pymongo,
   #, pyro4
-, pytest7CheckHook
-, pythonOlder
-, pyyaml
-, redis
-, sqlalchemy
-, typing-extensions
-, urllib3
-, vine
+  pytest7CheckHook,
+  pythonOlder,
+  pyyaml,
+  redis,
+  sqlalchemy,
+  typing-extensions,
+  urllib3,
+  vine,
 }:
 
 buildPythonPackage rec {
@@ -37,49 +38,32 @@ buildPythonPackage rec {
     hash = "sha256-ARxM2aNVwUod6NNdJXMUodJFbVK3FAOIVhrKw88al78=";
   };
 
-  propagatedBuildInputs = [
-    amqp
-    vine
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    typing-extensions
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    backports-zoneinfo
-  ];
+  propagatedBuildInputs =
+    [
+      amqp
+      vine
+    ]
+    ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ]
+    ++ lib.optionals (pythonOlder "3.9") [ backports-zoneinfo ];
 
   passthru.optional-dependencies = {
-    msgpack = [
-      msgpack
-    ];
-    yaml = [
-      pyyaml
-    ];
-    redis = [
-      redis
-    ];
-    mongodb = [
-      pymongo
-    ];
+    msgpack = [ msgpack ];
+    yaml = [ pyyaml ];
+    redis = [ redis ];
+    mongodb = [ pymongo ];
     sqs = [
       boto3
       urllib3
       pycurl
     ];
-    zookeeper = [
-      kazoo
-    ];
-    sqlalchemy = [
-      sqlalchemy
-    ];
+    zookeeper = [ kazoo ];
+    sqlalchemy = [ sqlalchemy ];
     azurestoragequeues = [
       azure-identity
       azure-storage-queue
     ];
-    azureservicebus = [
-      azure-servicebus
-    ];
-    confluentkafka = [
-      confluent-kafka
-    ];
+    azureservicebus = [ azure-servicebus ];
+    confluentkafka = [ confluent-kafka ];
     # pyro4 doesn't suppport Python 3.11
     #pyro = [
     #  pyro4
@@ -92,9 +76,7 @@ buildPythonPackage rec {
     pytest7CheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "kombu"
-  ];
+  pythonImportsCheck = [ "kombu" ];
 
   disabledTests = [
     # Disable pyro4 test
diff --git a/pkgs/development/python-modules/konnected/default.nix b/pkgs/development/python-modules/konnected/default.nix
index c279223a52685..e7d7055dfa7de 100644
--- a/pkgs/development/python-modules/konnected/default.nix
+++ b/pkgs/development/python-modules/konnected/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, aiohttp
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  aiohttp,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     sha256 = "b8b4e15c3228b01c9fad3651e09fea1654357ae8c333096e759a1b7d0eb4e789";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # no tests implemented
   doCheck = false;
diff --git a/pkgs/development/python-modules/korean-lunar-calendar/default.nix b/pkgs/development/python-modules/korean-lunar-calendar/default.nix
index e9c7431b47df7..98c04b0e66658 100644
--- a/pkgs/development/python-modules/korean-lunar-calendar/default.nix
+++ b/pkgs/development/python-modules/korean-lunar-calendar/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "korean_lunar_calendar" ];
 
   meta = with lib; {
-    description = "A library to convert Korean lunar-calendar to Gregorian calendar.";
+    description = "Library to convert Korean lunar-calendar to Gregorian calendar";
     homepage = "https://github.com/usingsky/korean_lunar_calendar_py";
     license = licenses.mit;
     maintainers = [ maintainers.ris ];
diff --git a/pkgs/development/python-modules/kornia-rs/default.nix b/pkgs/development/python-modules/kornia-rs/default.nix
index 57aaa325d2b61..c1337f87f7fae 100644
--- a/pkgs/development/python-modules/kornia-rs/default.nix
+++ b/pkgs/development/python-modules/kornia-rs/default.nix
@@ -1,10 +1,13 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, rustPlatform
-, cmake
-, nasm
-, substituteAll
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  rustPlatform,
+  cmake,
+  nasm,
+  substituteAll,
+  libiconv,
 }:
 
 buildPythonPackage rec {
@@ -26,10 +29,10 @@ buildPythonPackage rec {
     nasm # Only for dependencies.
   ];
 
+  buildInputs = lib.optional stdenv.hostPlatform.isDarwin libiconv;
+
   cargoRoot = "py-kornia";
-  cargoDeps = rustPlatform.importCargoLock {
-    lockFile = ./Cargo.lock;
-  };
+  cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; };
 
   # The path dependency doesn't vendor the dependencies correctly, so get kornia-rs from crates instead.
   patches = [
@@ -43,7 +46,10 @@ buildPythonPackage rec {
     cp ${./Cargo.lock} py-kornia/Cargo.lock
   '';
 
-  maturinBuildFlags = [ "-m" "py-kornia/Cargo.toml" ];
+  maturinBuildFlags = [
+    "-m"
+    "py-kornia/Cargo.toml"
+  ];
 
   dontUseCmakeConfigure = true; # We only want to use CMake to build some Rust dependencies.
 
diff --git a/pkgs/development/python-modules/kornia/default.nix b/pkgs/development/python-modules/kornia/default.nix
index 0663cfecea0cd..79f9857e96770 100644
--- a/pkgs/development/python-modules/kornia/default.nix
+++ b/pkgs/development/python-modules/kornia/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, packaging
-, torch
-, kornia-rs
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  packaging,
+  torch,
+  kornia-rs,
 }:
 
 buildPythonPackage rec {
@@ -44,7 +45,7 @@ buildPythonPackage rec {
     "kornia.utils"
   ];
 
-  doCheck = false;  # tests hang with no single test clearly responsible
+  doCheck = false; # tests hang with no single test clearly responsible
 
   meta = with lib; {
     homepage = "https://kornia.github.io/kornia";
diff --git a/pkgs/development/python-modules/kotsu/default.nix b/pkgs/development/python-modules/kotsu/default.nix
index f1f9389daf5b0..9add6e9733a38 100644
--- a/pkgs/development/python-modules/kotsu/default.nix
+++ b/pkgs/development/python-modules/kotsu/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pandas
-, typing-extensions
-, pytestCheckHook
-, pytest-mock
-, scikit-learn
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pandas,
+  typing-extensions,
+  pytestCheckHook,
+  pytest-mock,
+  scikit-learn,
 }:
 
 buildPythonPackage rec {
@@ -23,11 +24,12 @@ buildPythonPackage rec {
     hash = "sha256-V5OkgiLUTRNbNt6m94+aYUZd9Nw+/60LfhrqqdFhiUw=";
   };
 
-  patches = [
-    ./disable-pytest-coverage-flags.patch
-  ];
+  patches = [ ./disable-pytest-coverage-flags.patch ];
 
-  propagatedBuildInputs = [ pandas typing-extensions ];
+  propagatedBuildInputs = [
+    pandas
+    typing-extensions
+  ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/krakenex/default.nix b/pkgs/development/python-modules/krakenex/default.nix
index 59b0984e956bb..8009a6264b531 100644
--- a/pkgs/development/python-modules/krakenex/default.nix
+++ b/pkgs/development/python-modules/krakenex/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-aWALkM79VOm2/EQdp2rD1sm0NxhLKZOXzAs8m+t7M0s=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # no tests implemented
   doCheck = false;
diff --git a/pkgs/development/python-modules/krfzf-py/default.nix b/pkgs/development/python-modules/krfzf-py/default.nix
index d55334d21e8ce..d1007876591fb 100644
--- a/pkgs/development/python-modules/krfzf-py/default.nix
+++ b/pkgs/development/python-modules/krfzf-py/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -15,14 +16,12 @@ buildPythonPackage rec {
     hash = "sha256-/M9Atu9MLAGmnEdx6tknMJAit2o4Xt971uQ7pb0CBCk=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   pythonImportsCheck = [ "fzf" ];
 
   meta = with lib; {
-    description = "A Pythonic Fzf Wrapper";
+    description = "Pythonic Fzf Wrapper";
     downloadPage = "https://github.com/justfoolingaround/fzf.py";
     homepage = "https://pypi.org/project/krfzf-py/";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/python-modules/kserve/default.nix b/pkgs/development/python-modules/kserve/default.nix
index 2bbfd3a807613..b8877b7a6462d 100644
--- a/pkgs/development/python-modules/kserve/default.nix
+++ b/pkgs/development/python-modules/kserve/default.nix
@@ -1,47 +1,51 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, deprecation
-, poetry-core
-, pythonRelaxDepsHook
-, async-timeout
-, cloudevents
-, fastapi
-, grpcio
-, httpx
-, kubernetes
-, numpy
-, orjson
-, pandas
-, prometheus-client
-, protobuf
-, psutil
-, python-dateutil
-, ray
-, six
-, tabulate
-, timing-asgi
-, uvicorn
-, avro
-, azure-storage-blob
-, azure-storage-file-share
-, boto3
-, botocore
-, google-cloud-storage
-, pytestCheckHook
-, tomlkit
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  deprecation,
+  poetry-core,
+  async-timeout,
+  cloudevents,
+  fastapi,
+  grpcio,
+  httpx,
+  kubernetes,
+  numpy,
+  orjson,
+  pandas,
+  prometheus-client,
+  protobuf,
+  psutil,
+  python-dateutil,
+  ray,
+  six,
+  tabulate,
+  timing-asgi,
+  uvicorn,
+  avro,
+  azure-storage-blob,
+  azure-storage-file-share,
+  boto3,
+  botocore,
+  google-cloud-storage,
+  grpcio-testing,
+  pytestCheckHook,
+  tomlkit,
 }:
 
 buildPythonPackage rec {
   pname = "kserve";
-  version = "0.12.1";
+  version = "0.13.0";
   pyproject = true;
 
+  disabled = pythonOlder "3.8";
+
   src = fetchFromGitHub {
     owner = "kserve";
     repo = "kserve";
     rev = "refs/tags/v${version}";
-    hash = "sha256-gKJkG8zJY1sGGpI27YZ/QnEPU8J7KHva3nI+JCglQaQ=";
+    hash = "sha256-Fu+1AR7FU4EQ+PhMneHFr3at3N9cN7V24wm/VOfY8GA=";
   };
 
   sourceRoot = "${src.name}/python/kserve";
@@ -51,9 +55,6 @@ buildPythonPackage rec {
     poetry-core
   ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   dependencies = [
     async-timeout
@@ -94,6 +95,7 @@ buildPythonPackage rec {
     boto3
     botocore
     google-cloud-storage
+    grpcio-testing
     pytestCheckHook
     tomlkit
   ];
@@ -110,10 +112,11 @@ buildPythonPackage rec {
     "test_infer_v2"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "Standardized Serverless ML Inference Platform on Kubernetes";
     homepage = "https://github.com/kserve/kserve/tree/master/python/kserve";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ GaetanLepage ];
+    changelog = "https://github.com/kserve/kserve/releases/tag/v${version}";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
   };
 }
diff --git a/pkgs/development/python-modules/kubernetes/default.nix b/pkgs/development/python-modules/kubernetes/default.nix
index f5bf179d48db0..b7387675c9540 100644
--- a/pkgs/development/python-modules/kubernetes/default.nix
+++ b/pkgs/development/python-modules/kubernetes/default.nix
@@ -1,27 +1,27 @@
-{ lib
-, stdenv
-, adal
-, buildPythonPackage
-, certifi
-, fetchFromGitHub
-, google-auth
-, mock
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pythonRelaxDepsHook
-, pyyaml
-, requests
-, requests-oauthlib
-, setuptools
-, six
-, urllib3
-, websocket-client
+{
+  lib,
+  stdenv,
+  adal,
+  buildPythonPackage,
+  certifi,
+  fetchFromGitHub,
+  google-auth,
+  mock,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  pyyaml,
+  requests,
+  requests-oauthlib,
+  setuptools,
+  six,
+  urllib3,
+  websocket-client,
 }:
 
 buildPythonPackage rec {
   pname = "kubernetes";
-  version = "29.0.0";
+  version = "30.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -30,20 +30,10 @@ buildPythonPackage rec {
     owner = "kubernetes-client";
     repo = "python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-KChfiXYnJTeIW6O7GaK/fMxU2quIvbjc4gB4aZBeTtI=";
+    hash = "sha256-zOooibXkk0iA6IYJViz+SIMgHwG0fr4WR3ZjhgIeUjE=";
   };
 
-  postPatch = ''
-    substituteInPlace kubernetes/base/config/kube_config_test.py \
-      --replace-fail "assertEquals" "assertEqual"
-  '';
-
-  pythonRelaxDeps = [
-    "urllib3"
-  ];
-
   build-system = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -59,20 +49,16 @@ buildPythonPackage rec {
     websocket-client
   ];
 
-  passthru.optional-dependencies = {
-    adal = [
-      adal
-    ];
+  optional-dependencies = {
+    adal = [ adal ];
   };
 
-  pythonImportsCheck = [
-    "kubernetes"
-  ];
+  pythonImportsCheck = [ "kubernetes" ];
 
   nativeCheckInputs = [
     mock
     pytestCheckHook
-  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+  ] ++ lib.flatten (builtins.attrValues optional-dependencies);
 
   disabledTests = lib.optionals stdenv.isDarwin [
     # AssertionError: <class 'urllib3.poolmanager.ProxyManager'> != <class 'urllib3.poolmanager.Poolmanager'>
diff --git a/pkgs/development/python-modules/kurbopy/default.nix b/pkgs/development/python-modules/kurbopy/default.nix
index e4665998534d3..d084fd43fac64 100644
--- a/pkgs/development/python-modules/kurbopy/default.nix
+++ b/pkgs/development/python-modules/kurbopy/default.nix
@@ -1,26 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fonttools
-, pytestCheckHook
-, python
-, rustPlatform
-, unzip
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fonttools,
+  pytestCheckHook,
+  python,
+  rustPlatform,
+  unzip,
 }:
 
 buildPythonPackage rec {
   pname = "kurbopy";
-  version = "0.10.40";
+  version = "0.11.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dhpcDi20Na6SDbRxrC8N3SWdN1J/CWJgCUI3scJX/6s=";
+    hash = "sha256-0TIVx0YH5L8l6at1fcWkj2UZYK0aF1fahTu9/+7MWMI=";
   };
 
-  propagatedBuildInputs = [
-    fonttools
-  ];
+  propagatedBuildInputs = [ fonttools ];
   nativeBuildInputs = [
     rustPlatform.cargoSetupHook
     rustPlatform.maturinBuildHook
@@ -29,13 +28,11 @@ buildPythonPackage rec {
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-V3LeT0dqkfft1ftc+azwvuSzzdUJ7/wAp31fN7te9RQ=";
+    hash = "sha256-W0BebCXC1wqwtQP+zHjISxSJjXHD9U6p9eNS12Nfb2Y=";
   };
 
   doCheck = true;
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
   preCheck = ''
     # pytestCheckHook puts . at the front of Python's sys.path, due to:
     # https://github.com/NixOS/nixpkgs/issues/255262
diff --git a/pkgs/development/python-modules/l18n/default.nix b/pkgs/development/python-modules/l18n/default.nix
index 29c4164097f96..3270550e87e3e 100644
--- a/pkgs/development/python-modules/l18n/default.nix
+++ b/pkgs/development/python-modules/l18n/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-, pytz
-, six
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  pytz,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -15,7 +16,10 @@ buildPythonPackage rec {
     sha256 = "sha256-GVbokNZz0XE1zCCRMlPBVPa8HAAmbCK31QPMGlpC2Eg=";
   };
 
-  propagatedBuildInputs = [ pytz six ];
+  propagatedBuildInputs = [
+    pytz
+    six
+  ];
 
   # tests are not included in sdist and building from source is none trivial
   doCheck = false;
diff --git a/pkgs/development/python-modules/labelbox/default.nix b/pkgs/development/python-modules/labelbox/default.nix
index 98c7adcc8e11b..04f3b74c95fd3 100644
--- a/pkgs/development/python-modules/labelbox/default.nix
+++ b/pkgs/development/python-modules/labelbox/default.nix
@@ -1,33 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, geojson
-, google-api-core
-, imagesize
-, nbconvert
-, nbformat
-, numpy
-, opencv4
-, packaging
-, pillow
-, pydantic
-, pyproj
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
-, setuptools
-, shapely
-, strenum
-, tqdm
-, typeguard
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  geojson,
+  google-api-core,
+  imagesize,
+  nbconvert,
+  nbformat,
+  numpy,
+  opencv4,
+  packaging,
+  pillow,
+  pydantic,
+  pyproj,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  requests,
+  setuptools,
+  shapely,
+  strenum,
+  tqdm,
+  typeguard,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "labelbox";
-  version = "3.67.0";
+  version = "3.72.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -36,7 +36,7 @@ buildPythonPackage rec {
     owner = "Labelbox";
     repo = "labelbox-python";
     rev = "refs/tags/v.${version}";
-    hash = "sha256-JQTjmYxPBS8JC4HQTtbQ7hb80LPLYE4OEj1lFA6cZ1Y=";
+    hash = "sha256-gor1LFT/XrWxWPwGn8lOkF46p/yrRILZp6fpeV+xvto=";
   };
 
   postPatch = ''
@@ -48,17 +48,10 @@ buildPythonPackage rec {
       --replace-fail "pytest_plugins" "_pytest_plugins"
   '';
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
-  pythonRelaxDeps = [
-    "python-dateutil"
-  ];
+  pythonRelaxDeps = [ "python-dateutil" ];
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     google-api-core
@@ -98,9 +91,7 @@ buildPythonPackage rec {
     "tests/data"
   ];
 
-  pythonImportsCheck = [
-    "labelbox"
-  ];
+  pythonImportsCheck = [ "labelbox" ];
 
   meta = with lib; {
     description = "Platform API for LabelBox";
diff --git a/pkgs/development/python-modules/labgrid/default.nix b/pkgs/development/python-modules/labgrid/default.nix
index 31fc50197d20f..405bbfa33810c 100644
--- a/pkgs/development/python-modules/labgrid/default.nix
+++ b/pkgs/development/python-modules/labgrid/default.nix
@@ -1,43 +1,42 @@
-{ ansicolors
-, attrs
-, autobahn
-, buildPythonPackage
-, fetchFromGitHub
-, jinja2
-, lib
-, mock
-, openssh
-, packaging
-, pexpect
-, psutil
-, pyserial
-, pytestCheckHook
-, pytest-dependency
-, pytest-mock
-, pythonRelaxDepsHook
-, pyudev
-, pyusb
-, pyyaml
-, requests
-, setuptools
-, setuptools-scm
-, wheel
-, xmodem
+{
+  ansicolors,
+  attrs,
+  autobahn,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jinja2,
+  lib,
+  mock,
+  openssh,
+  packaging,
+  pexpect,
+  psutil,
+  pyserial,
+  pytestCheckHook,
+  pytest-dependency,
+  pytest-mock,
+  pyudev,
+  pyusb,
+  pyyaml,
+  requests,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  xmodem,
 }:
 
 buildPythonPackage rec {
   pname = "labgrid";
-  version = "23.0.5";
+  version = "23.0.6";
 
   src = fetchFromGitHub {
     owner = "labgrid-project";
     repo = "labgrid";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jrapbSrybuLT3V11rvV342tOr7/sRwBMgAdNWDG5obA=";
+    hash = "sha256-UAfBzQZeFNs2UJSFb5fH5wHXQoVU/dOTFciR0/UB7vc=";
   };
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
     setuptools-scm
     wheel
@@ -72,9 +71,7 @@ buildPythonPackage rec {
     "xmodem"
   ];
 
-  pythonRemoveDeps = [
-    "pyserial-labgrid"
-  ];
+  pythonRemoveDeps = [ "pyserial-labgrid" ];
 
   nativeCheckInputs = [
     mock
diff --git a/pkgs/development/python-modules/labmath/default.nix b/pkgs/development/python-modules/labmath/default.nix
index 8ace5b3327e1d..b17fe6ed06983 100644
--- a/pkgs/development/python-modules/labmath/default.nix
+++ b/pkgs/development/python-modules/labmath/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-dzJ4szPxnck0Cgc5IEp5FBmHvIyAC0rqKRVrkt20ntQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   pythonImportsCheck = [ "labmath" ];
 
diff --git a/pkgs/development/python-modules/laces/default.nix b/pkgs/development/python-modules/laces/default.nix
index d29396658150b..16f104a01a69b 100644
--- a/pkgs/development/python-modules/laces/default.nix
+++ b/pkgs/development/python-modules/laces/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, django
-, fetchFromGitHub
-, flit-core
-, python3
+{
+  lib,
+  buildPythonPackage,
+  django,
+  fetchFromGitHub,
+  flit-core,
+  python3,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     hash = "sha256-N3UUJomlihdM+6w9jmn9t10Q2meIqEOjW/rf3ZLrD78=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   pythonImportsCheck = [ "laces" ];
 
diff --git a/pkgs/development/python-modules/lacuscore/default.nix b/pkgs/development/python-modules/lacuscore/default.nix
index d03376184bba4..c53086ff0e8dd 100644
--- a/pkgs/development/python-modules/lacuscore/default.nix
+++ b/pkgs/development/python-modules/lacuscore/default.nix
@@ -1,22 +1,22 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, defang
-, dnspython
-, fetchFromGitHub
-, playwrightcapture
-, poetry-core
-, pythonOlder
-, redis
-, requests
-, pythonRelaxDepsHook
-, sphinx
-, ua-parser
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  defang,
+  dnspython,
+  fetchFromGitHub,
+  playwrightcapture,
+  poetry-core,
+  pythonOlder,
+  redis,
+  requests,
+  sphinx,
+  ua-parser,
 }:
 
 buildPythonPackage rec {
   pname = "lacuscore";
-  version = "1.9.3";
+  version = "1.9.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,19 +25,18 @@ buildPythonPackage rec {
     owner = "ail-project";
     repo = "LacusCore";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jfbDg74vHwOFvbOETPSaApFCpzw9Khu8PgGpsoAwSGc=";
+    hash = "sha256-SCObCYcZ+aDzWOkE5tzkKMkgAP/h7HDNyHXMFmYjiHQ=";
   };
 
   pythonRelaxDeps = [
     "redis"
+    "requests"
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  build-system = [ poetry-core ];
+
 
-  propagatedBuildInputs = [
+  dependencies = [
     async-timeout
     defang
     dnspython
@@ -51,12 +50,10 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "lacuscore"
-  ];
+  pythonImportsCheck = [ "lacuscore" ];
 
   meta = with lib; {
-    description = "The modulable part of Lacus";
+    description = "Modulable part of Lacus";
     homepage = "https://github.com/ail-project/LacusCore";
     changelog = "https://github.com/ail-project/LacusCore/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/lakeside/default.nix b/pkgs/development/python-modules/lakeside/default.nix
index bb33367d9647f..37e0444bd66c4 100644
--- a/pkgs/development/python-modules/lakeside/default.nix
+++ b/pkgs/development/python-modules/lakeside/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, protobuf
-, pycryptodome
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  protobuf,
+  pycryptodome,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "lakeside"
-  ];
+  pythonImportsCheck = [ "lakeside" ];
 
   meta = with lib; {
     description = "Library for controlling LED bulbs from Eufy";
diff --git a/pkgs/development/python-modules/langchain-chroma/default.nix b/pkgs/development/python-modules/langchain-chroma/default.nix
new file mode 100644
index 0000000000000..8afb70b1a467a
--- /dev/null
+++ b/pkgs/development/python-modules/langchain-chroma/default.nix
@@ -0,0 +1,52 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  chromadb,
+  langchain-core,
+  numpy,
+  poetry-core,
+  pytestCheckHook,
+  nix-update-script,
+}:
+
+buildPythonPackage rec {
+  pname = "langchain-chroma";
+  version = "0.2.9";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "langchain-ai";
+    repo = "langchain";
+    rev = "refs/tags/langchain-core==${version}";
+    hash = "sha256-/BUn/NxaE9l3VY6dPshr1JJaHTGzn9NMQhSQ2De65Jg=";
+  };
+
+  sourceRoot = "${src.name}/libs/partners/chroma";
+
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    langchain-core
+    chromadb
+    numpy
+  ];
+
+  pythonImportsCheck = [ "langchain_chroma" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  passthru.updateScript = nix-update-script {
+    extraArgs = [
+      "--version-regex"
+      "langchain-chroma==(.*)"
+    ];
+  };
+
+  meta = {
+    description = "Build context-aware reasoning applications";
+    homepage = "https://github.com/langchain-ai/langchain";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+  };
+}
diff --git a/pkgs/development/python-modules/langchain-community/default.nix b/pkgs/development/python-modules/langchain-community/default.nix
index af29f6068b045..4bf2cd9bd0f9a 100644
--- a/pkgs/development/python-modules/langchain-community/default.nix
+++ b/pkgs/development/python-modules/langchain-community/default.nix
@@ -1,40 +1,55 @@
 {
   lib,
   buildPythonPackage,
-  fetchPypi,
+  fetchFromGitHub,
   poetry-core,
   pythonOlder,
   aiohttp,
   dataclasses-json,
+  duckdb-engine,
+  langchain,
   langchain-core,
   langsmith,
+  lark,
   numpy,
+  pandas,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
   pyyaml,
   requests,
+  requests-mock,
+  responses,
   sqlalchemy,
+  syrupy,
   tenacity,
+  toml,
   typer,
 }:
 
 buildPythonPackage rec {
   pname = "langchain-community";
-  version = "0.0.36";
+  version = "0.2.9";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    pname = "langchain_community";
-    inherit version;
-    hash = "sha256-l76dAM8RnJYeA+0ibgTmcPUbXUL1sF/8NRhZj6bSDHQ=";
+  src = fetchFromGitHub {
+    owner = "langchain-ai";
+    repo = "langchain";
+    rev = "refs/tags/langchain-core==${version}";
+    hash = "sha256-/BUn/NxaE9l3VY6dPshr1JJaHTGzn9NMQhSQ2De65Jg=";
   };
 
+  sourceRoot = "${src.name}/libs/community";
+
   build-system = [ poetry-core ];
 
   dependencies = [
     aiohttp
     dataclasses-json
     langchain-core
+    langchain
     langsmith
     numpy
     pyyaml
@@ -49,13 +64,37 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "langchain_community" ];
 
-  # PyPI source does not have tests
-  doCheck = false;
+  nativeCheckInputs = [
+    duckdb-engine
+    lark
+    pandas
+    pytest-asyncio
+    pytest-mock
+    pytestCheckHook
+    requests-mock
+    responses
+    syrupy
+    toml
+  ];
+
+  pytestFlagsArray = [ "tests/unit_tests" ];
+
+  passthru = {
+    updateScript = langchain-core.updateScript;
+  };
+
+  __darwinAllowLocalNetworking = true;
+
+  disabledTests = [
+    # Test require network access
+    "test_ovhcloud_embed_documents"
+  ];
 
-  meta = with lib; {
+  meta = {
     description = "Community contributed LangChain integrations";
     homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/community";
-    license = licenses.mit;
-    maintainers = with maintainers; [ natsukium ];
+    changelog = "https://github.com/langchain-ai/langchain/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
   };
 }
diff --git a/pkgs/development/python-modules/langchain-core/default.nix b/pkgs/development/python-modules/langchain-core/default.nix
index 3c0b421564492..f55d59b850591 100644
--- a/pkgs/development/python-modules/langchain-core/default.nix
+++ b/pkgs/development/python-modules/langchain-core/default.nix
@@ -1,33 +1,42 @@
 {
   lib,
-  anyio,
   buildPythonPackage,
-  fetchPypi,
+  fetchFromGitHub,
+  freezegun,
+  grandalf,
   jsonpatch,
   langsmith,
+  numpy,
   packaging,
   poetry-core,
   pydantic,
+  pytest-asyncio,
+  pytest-mock,
+  pytest-xdist,
+  pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
   pyyaml,
-  requests,
+  syrupy,
   tenacity,
+  writeScript,
 }:
 
 buildPythonPackage rec {
   pname = "langchain-core";
-  version = "0.1.48";
+  version = "0.2.9";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    pname = "langchain_core";
-    inherit version;
-    hash = "sha256-8KmwqPIvIZ72/YTisdkqgBToRRTAobVTNw/UApaBPBY=";
+  src = fetchFromGitHub {
+    owner = "langchain-ai";
+    repo = "langchain";
+    rev = "refs/tags/langchain-core==${version}";
+    hash = "sha256-/BUn/NxaE9l3VY6dPshr1JJaHTGzn9NMQhSQ2De65Jg=";
   };
 
+  sourceRoot = "${src.name}/libs/core";
+
   pythonRelaxDeps = [
     "langsmith"
     "packaging"
@@ -35,28 +44,56 @@ buildPythonPackage rec {
 
   build-system = [ poetry-core ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
-    anyio
     jsonpatch
     langsmith
     packaging
     pydantic
     pyyaml
-    requests
     tenacity
   ];
 
   pythonImportsCheck = [ "langchain_core" ];
 
-  # PyPI source does not have tests
-  doCheck = false;
+  nativeCheckInputs = [
+    freezegun
+    grandalf
+    numpy
+    pytest-asyncio
+    pytest-mock
+    pytest-xdist
+    pytestCheckHook
+    syrupy
+  ];
+
+  pytestFlagsArray = [ "tests/unit_tests" ];
+
+  disabledTests = [
+    # Fail for an unclear reason with:
+    # AssertionError: assert '6a92363c-4ac...-d344769ab6ac' == '09af124a-2ed...-671c64c72b70'
+    "test_config_traceable_handoff"
+    "test_config_traceable_async_handoff"
+  ];
+
+  passthru = {
+    updateScript = writeScript "update.sh" ''
+      #!/usr/bin/env nix-shell
+      #!nix-shell -i bash -p nix-update
+
+      set -eu -o pipefail
+      nix-update --commit --version-regex 'langchain-core==(.*)' python3Packages.langchain-core
+      nix-update --commit --version-regex 'langchain-text-splitters==(.*)' python3Packages.langchain-text-splitters
+      nix-update --commit --version-regex 'langchain==(.*)' python3Packages.langchain
+      nix-update --commit --version-regex 'langchain-community==(.*)' python3Packages.langchain-community
+    '';
+  };
 
-  meta = with lib; {
+  meta = {
     description = "Building applications with LLMs through composability";
     homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/core";
-    license = licenses.mit;
-    maintainers = with maintainers; [ natsukium ];
+    changelog = "https://github.com/langchain-ai/langchain/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
   };
 }
diff --git a/pkgs/development/python-modules/langchain-text-splitters/default.nix b/pkgs/development/python-modules/langchain-text-splitters/default.nix
index 81cb942e51553..beb4c5d8c332c 100644
--- a/pkgs/development/python-modules/langchain-text-splitters/default.nix
+++ b/pkgs/development/python-modules/langchain-text-splitters/default.nix
@@ -1,45 +1,52 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, poetry-core
-, langchain-core
-, lxml
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  langchain-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "langchain-text-splitters";
-  version = "0.0.1";
+  version = "0.2.9";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
 
-  src = fetchPypi {
-    pname = "langchain_text_splitters";
-    inherit version;
-    hash = "sha256-rEWfqYeZ9RF61UJakzCyGWEyHjC8GaKi+fdh3a3WKqE=";
+  src = fetchFromGitHub {
+    owner = "langchain-ai";
+    repo = "langchain";
+    rev = "refs/tags/langchain-core==${version}";
+    hash = "sha256-/BUn/NxaE9l3VY6dPshr1JJaHTGzn9NMQhSQ2De65Jg=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  sourceRoot = "${src.name}/libs/text-splitters";
 
-  propagatedBuildInputs = [
-    langchain-core
-    lxml
-  ];
+  build-system = [ poetry-core ];
+
+  dependencies = [ langchain-core ];
 
-  # PyPI source does not have tests
-  doCheck = false;
+  pythonImportsCheck = [ "langchain_text_splitters" ];
 
-  pythonImportsCheck = [
-    "langchain_text_splitters"
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytestCheckHook
   ];
 
-  meta = with lib; {
+  pytestFlagsArray = [ "tests/unit_tests" ];
+
+  passthru = {
+    inherit (langchain-core) updateScript;
+  };
+
+  meta = {
     description = "Build context-aware reasoning applications";
     homepage = "https://github.com/langchain-ai/langchain/tree/master/libs/text-splitters";
-    license = licenses.mit;
-    maintainers = with maintainers; [ fab ];
+    changelog = "https://github.com/langchain-ai/langchain/releases/tag/${src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/langchain/default.nix b/pkgs/development/python-modules/langchain/default.nix
index ddcb01d7c4506..73c6050f01fd2 100644
--- a/pkgs/development/python-modules/langchain/default.nix
+++ b/pkgs/development/python-modules/langchain/default.nix
@@ -2,29 +2,15 @@
   lib,
   aiohttp,
   async-timeout,
-  azure-core,
-  azure-cosmos,
-  azure-identity,
   bash,
   buildPythonPackage,
-  chardet,
-  clarifai,
-  cohere,
-  dataclasses-json,
-  esprima,
   fetchFromGitHub,
   freezegun,
-  huggingface-hub,
-  jsonpatch,
-  langchain-community,
   langchain-core,
   langchain-text-splitters,
   langsmith,
   lark,
-  manifest-ml,
-  nlpcloud,
   numpy,
-  openai,
   pandas,
   poetry-core,
   pydantic,
@@ -34,24 +20,18 @@
   pytestCheckHook,
   pythonOlder,
   pyyaml,
-  qdrant-client,
   requests-mock,
   requests,
   responses,
-  sentence-transformers,
   sqlalchemy,
   syrupy,
   tenacity,
-  tiktoken,
   toml,
-  torch,
-  transformers,
-  typer,
 }:
 
 buildPythonPackage rec {
   pname = "langchain";
-  version = "0.1.16";
+  version = "0.2.9";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -59,8 +39,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "langchain-ai";
     repo = "langchain";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-Xv8juma/1qGC2Rb659dJBvRzRh5W+zU+O8W6peElFGc=";
+    rev = "refs/tags/langchain-core==${version}";
+    hash = "sha256-/BUn/NxaE9l3VY6dPshr1JJaHTGzn9NMQhSQ2De65Jg=";
   };
 
   sourceRoot = "${src.name}/libs/langchain";
@@ -71,9 +51,6 @@ buildPythonPackage rec {
 
   dependencies = [
     aiohttp
-    dataclasses-json
-    jsonpatch
-    langchain-community
     langchain-core
     langchain-text-splitters
     langsmith
@@ -85,46 +62,6 @@ buildPythonPackage rec {
     tenacity
   ] ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
 
-  passthru.optional-dependencies = {
-    llms = [
-      clarifai
-      cohere
-      openai
-      # openlm
-      nlpcloud
-      huggingface-hub
-      manifest-ml
-      torch
-      transformers
-    ];
-    qdrant = [ qdrant-client ];
-    openai = [
-      openai
-      tiktoken
-    ];
-    text_helpers = [ chardet ];
-    clarifai = [ clarifai ];
-    cohere = [ cohere ];
-    docarray = [
-      # docarray
-    ];
-    embeddings = [ sentence-transformers ];
-    javascript = [ esprima ];
-    azure = [
-      azure-identity
-      azure-cosmos
-      openai
-      azure-core
-      # azure-ai-formrecognizer
-      # azure-ai-vision
-      # azure-cognitiveservices-speech
-      # azure-search-documents
-      # azure-ai-textanalytics
-    ];
-    all = [ ];
-    cli = [ typer ];
-  };
-
   nativeCheckInputs = [
     freezegun
     lark
@@ -160,16 +97,22 @@ buildPythonPackage rec {
     "test_generic_fake_chat_model"
     # Test is outdated
     "test_serializable_mapping"
+    "test_person"
+    "test_aliases_hidden"
   ];
 
   pythonImportsCheck = [ "langchain" ];
 
-  meta = with lib; {
+  passthru = {
+    updateScript = langchain-core.updateScript;
+  };
+
+  meta = {
     description = "Building applications with LLMs through composability";
     homepage = "https://github.com/langchain-ai/langchain";
     changelog = "https://github.com/langchain-ai/langchain/releases/tag/v${version}";
-    license = licenses.mit;
-    maintainers = with maintainers; [ natsukium ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
     mainProgram = "langchain-server";
   };
 }
diff --git a/pkgs/development/python-modules/langcodes/default.nix b/pkgs/development/python-modules/langcodes/default.nix
index 555cc9e4795e1..52f4c384f8060 100644
--- a/pkgs/development/python-modules/langcodes/default.nix
+++ b/pkgs/development/python-modules/langcodes/default.nix
@@ -1,28 +1,30 @@
-{ lib
-, buildPythonPackage
-, marisa-trie
-, pythonOlder
-, fetchPypi
-, poetry-core
-, pytestCheckHook
-, language-data
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  marisa-trie,
+  pythonOlder,
+  fetchPypi,
+  pytestCheckHook,
+  language-data,
+  setuptools,
+  setuptools-scm
 }:
 
 buildPythonPackage rec {
   pname = "langcodes";
-  version = "3.3.0";
+  version = "3.4.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "794d07d5a28781231ac335a1561b8442f8648ca07cd518310aeb45d6f0807ef6";
+    sha256 = "sha256-rlp30aAdDR6RhUpnGJCJK3zpq7YBq3Mn/FyHT4meGXk=";
   };
 
   nativeBuildInputs = [
-    poetry-core
+    setuptools
+    setuptools-scm
   ];
 
   propagatedBuildInputs = [
@@ -31,22 +33,18 @@ buildPythonPackage rec {
     setuptools # pkg_resources import in language_data/util.py
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # AssertionError: assert 'Unknown language [aqk]' == 'Aninka'
     "test_updated_iana"
   ];
 
-  pythonImportsCheck = [
-    "langcodes"
-  ];
+  pythonImportsCheck = [ "langcodes" ];
 
   meta = with lib; {
     description = "Python toolkit for working with and comparing the standardized codes for languages";
-    homepage = "https://github.com/LuminosoInsight/langcodes";
+    homepage = "https://github.com/georgkrause/langcodes";
     license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/langdetect/default.nix b/pkgs/development/python-modules/langdetect/default.nix
index a50cbe73a32dc..5db13ad9c4db7 100644
--- a/pkgs/development/python-modules/langdetect/default.nix
+++ b/pkgs/development/python-modules/langdetect/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -15,13 +16,9 @@ buildPythonPackage rec {
     sha256 = "1805svvb7xjm4sf1j7b6nc3409x37pd1xmabfwwjf1ldkzwgxhfb";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "langdetect" ];
 
diff --git a/pkgs/development/python-modules/langfuse/default.nix b/pkgs/development/python-modules/langfuse/default.nix
new file mode 100644
index 0000000000000..05b65c0cd1372
--- /dev/null
+++ b/pkgs/development/python-modules/langfuse/default.nix
@@ -0,0 +1,61 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  backoff,
+  httpx,
+  idna,
+  langchain,
+  llama-index,
+  openai,
+  packaging,
+  poetry-core,
+  pydantic,
+  wrapt,
+}:
+
+buildPythonPackage rec {
+  pname = "langfuse";
+  version = "2.36.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "langfuse";
+    repo = "langfuse-python";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-7snmEjRRciYaxUm0wUwQn5HKTvQOPVH5rXVUGZ+BXgk=";
+  };
+
+  build-system = [ poetry-core ];
+
+
+  pythonRelaxDeps = [ "packaging" ];
+
+  dependencies = [
+    backoff
+    httpx
+    idna
+    packaging
+    pydantic
+    wrapt
+  ];
+
+  optional-dependencies = {
+    langchain = [ langchain ];
+    llama-index = [ llama-index ];
+    openai = [ openai ];
+  };
+
+  pythonImportsCheck = [ "langfuse" ];
+
+  # tests require network access and openai api key
+  doCheck = false;
+
+  meta = {
+    description = "Instrument your LLM app with decorators or low-level SDK and get detailed tracing/observability";
+    homepage = "https://github.com/langfuse/langfuse-python";
+    changelog = "https://github.com/langfuse/langfuse-python/releases/tag/${src.rev}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ natsukium ];
+  };
+}
diff --git a/pkgs/development/python-modules/langid/default.nix b/pkgs/development/python-modules/langid/default.nix
index 1f1c167773008..8c6bd3c211a36 100644
--- a/pkgs/development/python-modules/langid/default.nix
+++ b/pkgs/development/python-modules/langid/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, wheel
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  wheel,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -11,7 +12,8 @@ buildPythonPackage rec {
   version = "1.1.6";
   format = "setuptools";
 
-  src = fetchPypi { # use PyPi as source, github repository does not contain tags or release branches
+  src = fetchPypi {
+    # use PyPi as source, github repository does not contain tags or release branches
     inherit pname version;
     hash = "sha256-BEvK4ZEtq4XDPY6Y8oEbj0/xIT5emp6VEBN7hNosspM=";
   };
@@ -21,9 +23,7 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   doCheck = false; # Package has no tests
   pythonImportsCheck = [ "langid" ];
diff --git a/pkgs/development/python-modules/langsmith/default.nix b/pkgs/development/python-modules/langsmith/default.nix
index 9bf32dc7a1582..97ed19193113b 100644
--- a/pkgs/development/python-modules/langsmith/default.nix
+++ b/pkgs/development/python-modules/langsmith/default.nix
@@ -4,6 +4,7 @@
   anthropic,
   attr,
   buildPythonPackage,
+  dataclasses-json,
   fastapi,
   fetchFromGitHub,
   freezegun,
@@ -15,14 +16,13 @@
   pytest-asyncio,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
   requests,
   uvicorn,
 }:
 
 buildPythonPackage rec {
   pname = "langsmith";
-  version = "0.1.52";
+  version = "0.1.80";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -31,17 +31,14 @@ buildPythonPackage rec {
     owner = "langchain-ai";
     repo = "langsmith-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kTl+H1odRYDZc1KEuopZV9PvOQBd4QioWMhb3pD6xKE=";
+    hash = "sha256-bkbJKg2ikdkTenAP+GD+Ss13nF8KrizLNM72oDgQgJM=";
   };
 
   sourceRoot = "${src.name}/python";
 
   pythonRelaxDeps = [ "orjson" ];
 
-  build-system = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     orjson
@@ -51,6 +48,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     anthropic
+    dataclasses-json
     fastapi
     freezegun
     httpx
@@ -58,9 +56,7 @@ buildPythonPackage rec {
     pytest-asyncio
     pytestCheckHook
     uvicorn
-  ] ++ lib.optionals stdenv.isLinux [
-    attr
-  ];
+  ] ++ lib.optionals stdenv.isLinux [ attr ];
 
   disabledTests = [
     # These tests require network access
diff --git a/pkgs/development/python-modules/language-data/default.nix b/pkgs/development/python-modules/language-data/default.nix
index ff04b036dc05c..da1a35456152a 100644
--- a/pkgs/development/python-modules/language-data/default.nix
+++ b/pkgs/development/python-modules/language-data/default.nix
@@ -1,45 +1,39 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, marisa-trie
-, poetry-core
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  marisa-trie,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "language-data";
-  version = "1.0.1";
-  format = "pyproject";
+  version = "1.2.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
-    owner = "rspeer";
+    owner = "georgkrause";
     repo = "language_data";
-    rev = "v${version}";
-    sha256 = "51TUVHXPHG6ofbnxI6+o5lrtr+QCIpGKu+OjDK3l7Mc=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-TVWyDEDI6NBioc8DqhXzpLS22EFKsZ/nan2vfgFsieQ=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-    setuptools
-  ];
+  build-system = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    marisa-trie
-  ];
+  dependencies = [ marisa-trie ];
 
-  # Module has no tests
-  doCheck = false;
+  pythonImportsCheck = [ "language_data" ];
 
-  pythonImportsCheck = [
-    "language_data"
-  ];
+  # No unittests
+  doCheck = false;
 
   meta = with lib; {
     description = "Supplement module for langcodes";
-    homepage = "https://github.com/rspeer/language_data";
+    homepage = "https://github.com/georgkrause/language_data";
+    changelog = "https://github.com/georgkrause/language_data/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/language-tags/default.nix b/pkgs/development/python-modules/language-tags/default.nix
index 24cd835b14d6f..a4397834df3a2 100644
--- a/pkgs/development/python-modules/language-tags/default.nix
+++ b/pkgs/development/python-modules/language-tags/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-T9K290seKhQLqW36EfA9kn3WveKCmyjN4Mx2j50qIEk=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "language_tags" ];
 
diff --git a/pkgs/development/python-modules/lanms-neo/default.nix b/pkgs/development/python-modules/lanms-neo/default.nix
index 149f98a608ae1..b4d734e5cda13 100644
--- a/pkgs/development/python-modules/lanms-neo/default.nix
+++ b/pkgs/development/python-modules/lanms-neo/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nix-update-script
-, pythonOlder
-, pybind11
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nix-update-script,
+  pythonOlder,
+  pybind11,
+  numpy,
 }:
 let
   pname = "lanms-neo";
diff --git a/pkgs/development/python-modules/lark/default.nix b/pkgs/development/python-modules/lark/default.nix
index ef25181892693..df891d96ed79b 100644
--- a/pkgs/development/python-modules/lark/default.nix
+++ b/pkgs/development/python-modules/lark/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, regex
-, pytestCheckHook
-, pythonOlder
-, js2py
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  regex,
+  pytestCheckHook,
+  pythonOlder,
+  js2py,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-pWLKjELy10VNumpBHjBYCO2TltKsZx1GhQcGMHsYJNk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Optional import, but fixes some re known bugs & allows advanced regex features
   propagatedBuildInputs = [ regex ];
@@ -43,7 +42,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A modern parsing library for Python, implementing Earley & LALR(1) and an easy interface";
+    description = "Modern parsing library for Python, implementing Earley & LALR(1) and an easy interface";
     homepage = "https://lark-parser.readthedocs.io/";
     changelog = "https://github.com/lark-parser/lark/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/laspy/default.nix b/pkgs/development/python-modules/laspy/default.nix
index 5375ed6f9ebef..0e89f49d55ac5 100644
--- a/pkgs/development/python-modules/laspy/default.nix
+++ b/pkgs/development/python-modules/laspy/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, laszip
-, setuptools
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  laszip,
+  setuptools,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,18 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-StaYkUNY6loJbaUuabzszTINnd+zZ0gKXCteCG24Erc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     numpy
     laszip
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [
     "laspy"
diff --git a/pkgs/development/python-modules/laszip/default.nix b/pkgs/development/python-modules/laszip/default.nix
index 85187d08f99ff..97c268d956ba0 100644
--- a/pkgs/development/python-modules/laszip/default.nix
+++ b/pkgs/development/python-modules/laszip/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, scikit-build-core
-, pybind11
-, cmake
-, LASzip
-, ninja
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  scikit-build-core,
+  pybind11,
+  cmake,
+  laszip,
+  ninja,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -47,9 +48,7 @@ buildPythonPackage rec {
 
   dontUseCmakeConfigure = true;
 
-  buildInputs = [
-    LASzip
-  ];
+  buildInputs = [ laszip ];
 
   # There are no tests
   doCheck = false;
@@ -64,4 +63,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ matthewcroughan ];
   };
 }
-
diff --git a/pkgs/development/python-modules/latex2mathml/default.nix b/pkgs/development/python-modules/latex2mathml/default.nix
index 99d9dcc5fb741..0cf23f39e3e9b 100644
--- a/pkgs/development/python-modules/latex2mathml/default.nix
+++ b/pkgs/development/python-modules/latex2mathml/default.nix
@@ -1,16 +1,18 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, multidict
-, xmljson
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  multidict,
+  xmljson,
 }:
 
 buildPythonPackage rec {
   pname = "latex2mathml";
   version = "3.77.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -21,11 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-DLdSFMsNA0gD6Iw0kn+0IrbvyI0VEGOpz0ZYD48nRkY=";
   };
 
-  format = "pyproject";
-
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -45,6 +43,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/roniemartinez/latex2mathml";
     changelog = "https://github.com/roniemartinez/latex2mathml/releases/tag/${version}";
     license = licenses.mit;
+    mainProgram = "latex2mathml";
     maintainers = with maintainers; [ sfrijters ];
   };
 }
diff --git a/pkgs/development/python-modules/latex2pydata/default.nix b/pkgs/development/python-modules/latex2pydata/default.nix
new file mode 100644
index 0000000000000..80005a173af04
--- /dev/null
+++ b/pkgs/development/python-modules/latex2pydata/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, fetchPypi
+, buildPythonPackage
+, setuptools
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "latex2pydata";
+  version = "0.4.0";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-Ega1cHSP187njyelb0yiCdpk08QZyObelRa2S79AE1E=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = {
+    homepage = "https://github.com/gpoore/latex2pydata";
+    description = "Send data from LaTeX to Python using Python literal format";
+    license = lib.licenses.bsd3;
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ romildo ];
+  };
+}
diff --git a/pkgs/development/python-modules/latexcodec/default.nix b/pkgs/development/python-modules/latexcodec/default.nix
index 9286792de21b9..822b51053c17b 100644
--- a/pkgs/development/python-modules/latexcodec/default.nix
+++ b/pkgs/development/python-modules/latexcodec/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, six, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "latexcodec";
@@ -23,5 +29,4 @@ buildPythonPackage rec {
     description = "Lexer and codec to work with LaTeX code in Python";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/latexify-py/default.nix b/pkgs/development/python-modules/latexify-py/default.nix
index 0c00ffdacadd0..e87966e3eeb30 100644
--- a/pkgs/development/python-modules/latexify-py/default.nix
+++ b/pkgs/development/python-modules/latexify-py/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, dill
-, fetchFromGitHub
-, hatchling
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dill,
+  fetchFromGitHub,
+  hatchling,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-4924pqgc+C8VDTTK5Dac6UJV0tcicVBdnkWvE1ynyvY=";
   };
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
-  dependencies = [
-    dill
-  ];
+  dependencies = [ dill ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "latexify"
-  ];
+  pythonImportsCheck = [ "latexify" ];
 
   preCheck = ''
     cd src
diff --git a/pkgs/development/python-modules/launchpadlib/default.nix b/pkgs/development/python-modules/launchpadlib/default.nix
index aef2dfb98bff9..7ac0756259023 100644
--- a/pkgs/development/python-modules/launchpadlib/default.nix
+++ b/pkgs/development/python-modules/launchpadlib/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-, httplib2
-, keyring
-, lazr-restfulclient
-, lazr-uri
-, setuptools
-, six
-, testresources
-, wadllib
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  httplib2,
+  keyring,
+  lazr-restfulclient,
+  lazr-uri,
+  setuptools,
+  six,
+  testresources,
+  wadllib,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     wadllib
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export HOME=$TMPDIR
diff --git a/pkgs/development/python-modules/laundrify-aio/default.nix b/pkgs/development/python-modules/laundrify-aio/default.nix
index 9c5e34dbf876a..70244547abec0 100644
--- a/pkgs/development/python-modules/laundrify-aio/default.nix
+++ b/pkgs/development/python-modules/laundrify-aio/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, aiohttp
-, pyjwt
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  aiohttp,
+  pyjwt,
 }:
 
 buildPythonPackage rec {
   pname = "laundrify-aio";
-  version = "1.1.2";
+  version = "1.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +18,7 @@ buildPythonPackage rec {
     owner = "laundrify";
     repo = "laundrify-pypi";
     rev = "v${version}";
-    hash = "sha256-+dTvYn4hux3Y19kWZwxhdkBARmfD8SuNlYWM/ET9K2M=";
+    hash = "sha256-mIdw2167H4Ume/DqV+fjRiBrph+8Jj5EEUALDDj4ah8=";
   };
 
   propagatedBuildInputs = [
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "laundrify_aio"
-  ];
+  pythonImportsCheck = [ "laundrify_aio" ];
 
   meta = with lib; {
     description = "Module to communicate with the laundrify API";
diff --git a/pkgs/development/python-modules/layoutparser/default.nix b/pkgs/development/python-modules/layoutparser/default.nix
index 391cb7a235aeb..3b6b8165aea2c 100644
--- a/pkgs/development/python-modules/layoutparser/default.nix
+++ b/pkgs/development/python-modules/layoutparser/default.nix
@@ -1,33 +1,45 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-# build inputs
-, numpy
-, opencv4
-, scipy
-, pandas
-, pillow
-, pyyaml
-, iopath
-, pdfplumber
-, pdf2image
-, google-cloud-vision
-, pytesseract
-, torch
-, torchvision
-, effdet
-# check inputs
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  # build inputs
+  numpy,
+  opencv4,
+  scipy,
+  pandas,
+  pillow,
+  pyyaml,
+  iopath,
+  pdfplumber,
+  pdf2image,
+  google-cloud-vision,
+  pytesseract,
+  torch,
+  torchvision,
+  effdet,
+  # check inputs
+  pytestCheckHook,
 }:
 let
   pname = "layoutparser";
   version = "0.3.4";
   optional-dependencies = {
-    ocr = [ google-cloud-vision pytesseract ];
+    ocr = [
+      google-cloud-vision
+      pytesseract
+    ];
     gcv = [ google-cloud-vision ];
     tesseract = [ pytesseract ];
-    layoutmodels = [ torch torchvision effdet ];
-    effdet = [ torch torchvision effdet ];
+    layoutmodels = [
+      torch
+      torchvision
+      effdet
+    ];
+    effdet = [
+      torch
+      torchvision
+      effdet
+    ];
     # paddledetection = [ paddlepaddle ]
   };
 in
@@ -59,20 +71,16 @@ buildPythonPackage {
     pdf2image
   ];
 
-  pythonImportsCheck = [
-    "layoutparser"
-  ];
+  pythonImportsCheck = [ "layoutparser" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ optional-dependencies.ocr;
+  nativeCheckInputs = [ pytestCheckHook ] ++ optional-dependencies.ocr;
 
   disabledTests = [
     "test_PaddleDetectionModel" # requires paddlepaddle not yet packaged
-     # requires detectron2 not yet packaged
+    # requires detectron2 not yet packaged
     "test_Detectron2Model"
     "test_AutoModel"
-     # requires effdet (disable for now until effdet builds on darwin)
+    # requires effdet (disable for now until effdet builds on darwin)
     "test_EffDetModel"
     # problems with google-cloud-vision
     # AttributeError: module 'google.cloud.vision' has no attribute 'types'
@@ -91,7 +99,7 @@ buildPythonPackage {
   passthru.optional-dependencies = optional-dependencies;
 
   meta = with lib; {
-    description = "A unified toolkit for Deep Learning Based Document Image Analysis";
+    description = "Unified toolkit for Deep Learning Based Document Image Analysis";
     homepage = "https://github.com/Layout-Parser/layout-parser";
     changelog = "https://github.com/Layout-Parser/layout-parser/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/lazr-restfulclient/default.nix b/pkgs/development/python-modules/lazr-restfulclient/default.nix
index b8e46b8d1b267..e6f1e9f208ff3 100644
--- a/pkgs/development/python-modules/lazr-restfulclient/default.nix
+++ b/pkgs/development/python-modules/lazr-restfulclient/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, isPy27
-, fetchPypi
-, distro
-, httplib2
-, oauthlib
-, setuptools
-, six
-, wadllib
-, fixtures
-, lazr-uri
-, pytestCheckHook
-, wsgi-intercept
+{
+  lib,
+  buildPythonPackage,
+  isPy27,
+  fetchPypi,
+  distro,
+  httplib2,
+  oauthlib,
+  setuptools,
+  six,
+  wadllib,
+  fixtures,
+  lazr-uri,
+  pytestCheckHook,
+  wsgi-intercept,
 }:
 
 buildPythonPackage rec {
@@ -25,16 +26,28 @@ buildPythonPackage rec {
     hash = "sha256-Q/EqHTlIRjsUYgOMR7Qp3LXkLgun8uFlEbArpdKt/9s=";
   };
 
-  propagatedBuildInputs = [ distro httplib2 oauthlib setuptools six wadllib ];
+  propagatedBuildInputs = [
+    distro
+    httplib2
+    oauthlib
+    setuptools
+    six
+    wadllib
+  ];
 
   # E   ModuleNotFoundError: No module named 'lazr.uri'
   doCheck = false;
-  nativeCheckInputs = [ fixtures lazr-uri pytestCheckHook wsgi-intercept ];
+  nativeCheckInputs = [
+    fixtures
+    lazr-uri
+    pytestCheckHook
+    wsgi-intercept
+  ];
 
   pythonImportsCheck = [ "lazr.restfulclient" ];
 
   meta = with lib; {
-    description = "A programmable client library that takes advantage of the commonalities among";
+    description = "Programmable client library that takes advantage of the commonalities among";
     homepage = "https://launchpad.net/lazr.restfulclient";
     license = licenses.lgpl3;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/lazr-uri/default.nix b/pkgs/development/python-modules/lazr-uri/default.nix
index 604086ebcaf34..f714fa9ccd49f 100644
--- a/pkgs/development/python-modules/lazr-uri/default.nix
+++ b/pkgs/development/python-modules/lazr-uri/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, isPy27
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  isPy27,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ setuptools ];
 
   meta = with lib; {
-    description = "A self-contained, easily reusable library for parsing, manipulating";
+    description = "Self-contained, easily reusable library for parsing, manipulating";
     homepage = "https://launchpad.net/lazr.uri";
     license = licenses.lgpl3;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/lazr/config.nix b/pkgs/development/python-modules/lazr/config.nix
index 79e60a5f98804..1b5520b79b357 100644
--- a/pkgs/development/python-modules/lazr/config.nix
+++ b/pkgs/development/python-modules/lazr/config.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, lazr-delegates
-, zope-interface
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  lazr-delegates,
+  zope-interface,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,22 +19,16 @@ buildPythonPackage rec {
     hash = "sha256-oU5PbMCa68HUCxdhWK6g7uIlLBQAO40O8LMcfFFMNkQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     lazr-delegates
     zope-interface
   ];
 
-  pythonImportsCheck = [
-    "lazr.config"
-  ];
+  pythonImportsCheck = [ "lazr.config" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # change the directory to avoid a namespace-related problem
   # ModuleNotFoundError: No module named 'lazr.delegates'
@@ -41,9 +36,7 @@ buildPythonPackage rec {
     cd $out
   '';
 
-  pythonNamespaces = [
-    "lazr"
-  ];
+  pythonNamespaces = [ "lazr" ];
 
   meta = with lib; {
     description = "Create configuration schemas, and process and validate configurations";
diff --git a/pkgs/development/python-modules/lazr/delegates.nix b/pkgs/development/python-modules/lazr/delegates.nix
index ef4eda0de9e51..1ebec55d7d169 100644
--- a/pkgs/development/python-modules/lazr/delegates.nix
+++ b/pkgs/development/python-modules/lazr/delegates.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, zope-interface
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  zope-interface,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,25 +18,15 @@ buildPythonPackage rec {
     hash = "sha256-UNT7iHK5UuV6SOEmEOVQ+jBm7rV8bGx1tqUUJBi6wZw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    zope-interface
-  ];
+  propagatedBuildInputs = [ zope-interface ];
 
-  pythonImportsCheck = [
-    "lazr.delegates"
-  ];
+  pythonImportsCheck = [ "lazr.delegates" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonNamespaces = [
-    "lazr"
-  ];
+  pythonNamespaces = [ "lazr" ];
 
   meta = with lib; {
     description = "Easily write objects that delegate behavior";
diff --git a/pkgs/development/python-modules/lazy-import/default.nix b/pkgs/development/python-modules/lazy-import/default.nix
deleted file mode 100644
index bf74e4d41dec0..0000000000000
--- a/pkgs/development/python-modules/lazy-import/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi
-, pytestCheckHook
-, pytest-forked
-, py
-, python
-, six }:
-
-buildPythonPackage rec {
-  pname = "lazy-import";
-  version = "0.2.2";
-  format = "setuptools";
-
-  src = fetchPypi {
-    pname = "lazy_import";
-    inherit version;
-    sha256 = "0gca9xj60qr3aprj9qdc66crr4r7hl8wzv6gc9y40nclazwawj91";
-  };
-
-  nativeCheckInputs = [
-    pytestCheckHook
-    pytest-forked
-    py
-  ];
-
-  propagatedBuildInputs = [
-    six
-  ];
-
-  preCheck = ''
-    # avoid AttributeError: module 'py' has no attribute 'process'
-    export PYTHONPATH=${py}/${python.sitePackages}:$PYTHONPATH
-  '';
-
-  pytestFlagsArray = [
-    "--forked"
-  ];
-
-  meta = with lib; {
-    description = "A set of functions that load modules, and related attributes, in a lazy fashion";
-    homepage = "https://github.com/mnmelo/lazy_import";
-    license = licenses.gpl3Plus;
-    maintainers = [ ];
-  };
-}
diff --git a/pkgs/development/python-modules/lazy-imports/default.nix b/pkgs/development/python-modules/lazy-imports/default.nix
index e15b3226006ff..4efed32b70d66 100644
--- a/pkgs/development/python-modules/lazy-imports/default.nix
+++ b/pkgs/development/python-modules/lazy-imports/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, packaging
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  packaging,
 }:
 let
   pname = "lazy-imports";
@@ -20,9 +21,7 @@ buildPythonPackage {
     hash = "sha256-i+VPlBoxNqk56U4oiEgS1Ayhi1t2O8PtLZ/bzEurUY8=";
   };
 
-  pythonImportsCheck = [
-    "lazy_imports"
-  ];
+  pythonImportsCheck = [ "lazy_imports" ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -30,7 +29,7 @@ buildPythonPackage {
   ];
 
   meta = with lib; {
-    description = "Python tool to support lazy imports.";
+    description = "Python tool to support lazy imports";
     homepage = "https://github.com/telekom/lazy-imports";
     changelog = "https://github.com/telekom/lazy-imports/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/lazy-loader/default.nix b/pkgs/development/python-modules/lazy-loader/default.nix
index 80de565b5f620..974288e365f3f 100644
--- a/pkgs/development/python-modules/lazy-loader/default.nix
+++ b/pkgs/development/python-modules/lazy-loader/default.nix
@@ -1,29 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "lazy-loader";
-  version = "0.3";
-  format = "pyproject";
+  version = "0.4";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "scientific-python";
     repo = "lazy_loader";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ky9EwPYt/wBqWXopH5WFjlVG+/Rd2gc+mlCeWqG7mZg=";
+    hash = "sha256-4Kid6yhm9C2liPoW+NlCsOiBZvv6iYt7hDunARc4PRY=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "lazy_loader" ];
 
   meta = with lib; {
     description = "Populate library namespace without incurring immediate import costs";
diff --git a/pkgs/development/python-modules/lazy-object-proxy/default.nix b/pkgs/development/python-modules/lazy-object-proxy/default.nix
index 4026bbbe5531e..33467e6f3b1e7 100644
--- a/pkgs/development/python-modules/lazy-object-proxy/default.nix
+++ b/pkgs/development/python-modules/lazy-object-proxy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -15,26 +16,21 @@ buildPythonPackage rec {
     hash = "sha256-eCR7bUX0OlLvNcJbVYFFnoURciVAikEoo9r4v5ZIrGk=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   postPatch = ''
     substituteInPlace pyproject.toml --replace ",<6.0" ""
     substituteInPlace setup.cfg --replace ",<6.0" ""
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Broken tests. Seem to be fixed upstream according to Travis.
   doCheck = false;
 
   meta = with lib; {
-    description = "A fast and thorough lazy object proxy";
+    description = "Fast and thorough lazy object proxy";
     homepage = "https://github.com/ionelmc/python-lazy-object-proxy";
     license = with licenses; [ bsd2 ];
   };
-
 }
diff --git a/pkgs/development/python-modules/lazy/default.nix b/pkgs/development/python-modules/lazy/default.nix
index 0403b47f53244..a7baf15384cd1 100644
--- a/pkgs/development/python-modules/lazy/default.nix
+++ b/pkgs/development/python-modules/lazy/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/lc7001/default.nix b/pkgs/development/python-modules/lc7001/default.nix
index 6e0f565bdc984..478fe1a2f8258 100644
--- a/pkgs/development/python-modules/lc7001/default.nix
+++ b/pkgs/development/python-modules/lc7001/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchPypi
-, pythonOlder
-, poetry-core
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  pythonOlder,
+  poetry-core,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,16 +25,12 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  propagatedBuildInputs = [
-    cryptography
-  ];
+  propagatedBuildInputs = [ cryptography ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "lc7001"
-  ];
+  pythonImportsCheck = [ "lc7001" ];
 
   meta = with lib; {
     description = "Python module for interacting with Legrand LC7001";
diff --git a/pkgs/development/python-modules/lcd-i2c/default.nix b/pkgs/development/python-modules/lcd-i2c/default.nix
index 7ba9be221dde1..02008f02c2afe 100644
--- a/pkgs/development/python-modules/lcd-i2c/default.nix
+++ b/pkgs/development/python-modules/lcd-i2c/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, python3
-, fetchPypi
-, buildPythonPackage
-, smbus2
-, poetry-core
+{
+  lib,
+  python3,
+  fetchPypi,
+  buildPythonPackage,
+  smbus2,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,9 @@ buildPythonPackage rec {
     hash = "sha256-NYBaCXBmuTziT0WYEqrW10HRmRy3jpjH3YWQh5Y/TdQ=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    smbus2
-  ];
+  propagatedBuildInputs = [ smbus2 ];
 
   meta = with lib; {
     description = "Library for interacting with an I2C LCD screen through Python";
diff --git a/pkgs/development/python-modules/lcgit/default.nix b/pkgs/development/python-modules/lcgit/default.nix
index 0bb27d54cb1ac..01b5ddcbdefe0 100644
--- a/pkgs/development/python-modules/lcgit/default.nix
+++ b/pkgs/development/python-modules/lcgit/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,16 +25,12 @@ buildPythonPackage rec {
       --replace " --cov" ""
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "lcgit"
-  ];
+  pythonImportsCheck = [ "lcgit" ];
 
   meta = with lib; {
-    description = "A pythonic Linear Congruential Generator iterator";
+    description = "Pythonic Linear Congruential Generator iterator";
     homepage = "https://github.com/cisagov/lcgit";
     changelog = "https://github.com/cisagov/lcgit/releases/tag/v${version}";
     license = licenses.cc0;
diff --git a/pkgs/development/python-modules/lcov-cobertura/default.nix b/pkgs/development/python-modules/lcov-cobertura/default.nix
index a2f91b8436def..0f1697c7f62f9 100644
--- a/pkgs/development/python-modules/lcov-cobertura/default.nix
+++ b/pkgs/development/python-modules/lcov-cobertura/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
   };
 
   doCheck = true;
-  pythonImportsCheck = [
-    "lcov_cobertura"
-  ];
+  pythonImportsCheck = [ "lcov_cobertura" ];
 
   meta = {
     description = "Converts code coverage from lcov format to Cobertura's XML format";
diff --git a/pkgs/development/python-modules/ld2410-ble/default.nix b/pkgs/development/python-modules/ld2410-ble/default.nix
index 774e79e5ca299..b680db42a4d92 100644
--- a/pkgs/development/python-modules/ld2410-ble/default.nix
+++ b/pkgs/development/python-modules/ld2410-ble/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, async-timeout
-, bleak
-, bleak-retry-connector
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  async-timeout,
+  bleak,
+  bleak-retry-connector,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
       --replace " --cov=ld2410_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     async-timeout
@@ -38,13 +37,9 @@ buildPythonPackage rec {
     bleak-retry-connector
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ld2410_ble"
-  ];
+  pythonImportsCheck = [ "ld2410_ble" ];
 
   meta = with lib; {
     description = "Library for the LD2410B modules from HiLinks";
diff --git a/pkgs/development/python-modules/ldap3/default.nix b/pkgs/development/python-modules/ldap3/default.nix
index c04ec4e49c4cb..7cf35cfe2c466 100644
--- a/pkgs/development/python-modules/ldap3/default.nix
+++ b/pkgs/development/python-modules/ldap3/default.nix
@@ -1,4 +1,11 @@
-{ lib, fetchPypi, fetchpatch, buildPythonPackage, dos2unix, pyasn1 }:
+{
+  lib,
+  fetchPypi,
+  fetchpatch,
+  buildPythonPackage,
+  dos2unix,
+  pyasn1,
+}:
 
 buildPythonPackage rec {
   pname = "ldap3";
@@ -32,7 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://pypi.python.org/pypi/ldap3";
-    description = "A strictly RFC 4510 conforming LDAP V3 pure Python client library";
+    description = "Strictly RFC 4510 conforming LDAP V3 pure Python client library";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/ldapdomaindump/default.nix b/pkgs/development/python-modules/ldapdomaindump/default.nix
index 5f8941047bb2a..8b7ba429025ca 100644
--- a/pkgs/development/python-modules/ldapdomaindump/default.nix
+++ b/pkgs/development/python-modules/ldapdomaindump/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, dnspython
-, future
-, ldap3
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  dnspython,
+  future,
+  ldap3,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # requires ldap server
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ldapdomaindump"
-  ];
+  pythonImportsCheck = [ "ldapdomaindump" ];
 
   meta = with lib; {
     description = "Active Directory information dumper via LDAP";
diff --git a/pkgs/development/python-modules/ldappool/default.nix b/pkgs/development/python-modules/ldappool/default.nix
index 2cb2155bfed4e..8184d7cd433fc 100644
--- a/pkgs/development/python-modules/ldappool/default.nix
+++ b/pkgs/development/python-modules/ldappool/default.nix
@@ -1,42 +1,56 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pbr
-, python-ldap
-, prettytable
-, six
-, fixtures
-, testresources
-, testtools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pbr,
+  python-ldap,
+  prettytable,
+  six,
+  unittestCheckHook,
+  fixtures,
+  testresources,
+  testtools,
 }:
 
 buildPythonPackage rec {
   pname = "ldappool";
   version = "3.0.0";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     pname = "ldappool";
     inherit version;
-    sha256 = "4bb59b7d6b11407f48ee01a781267e3c8ba98d91f426806ac7208612ae087b86";
+    hash = "sha256-S7WbfWsRQH9I7gGngSZ+PIupjZH0JoBqxyCGEq4Ie4Y=";
   };
 
-  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"
-  '';
+  build-system = [
+    setuptools
+    pbr
+  ];
 
-  nativeBuildInputs = [ pbr ];
+  dependencies = [
+    python-ldap
+    prettytable
+    six
+  ];
 
-  propagatedBuildInputs = [ python-ldap prettytable six ];
+  nativeCheckInputs = [
+    unittestCheckHook
+    fixtures
+    testresources
+    testtools
+  ];
 
-  nativeCheckInputs = [ fixtures testresources testtools ];
+  pythonImportsCheck = [ "ldappool" ];
 
   meta = with lib; {
-    description = "A simple connector pool for python-ldap";
+    description = "Simple connector pool for python-ldap";
     homepage = "https://opendev.org/openstack/ldappool/";
-    license = with licenses; [ mpl11 lgpl21Plus gpl2Plus ];
+    license = with licenses; [
+      mpl11
+      lgpl21Plus
+      gpl2Plus
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/ldaptor/default.nix b/pkgs/development/python-modules/ldaptor/default.nix
index 0095995ed6c19..1b9c9f6ec8a20 100644
--- a/pkgs/development/python-modules/ldaptor/default.nix
+++ b/pkgs/development/python-modules/ldaptor/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, twisted
-, passlib
-, pyparsing
-, service-identity
-, six
-, zope-interface
-, pythonOlder
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  twisted,
+  passlib,
+  pyparsing,
+  service-identity,
+  six,
+  zope-interface,
+  pythonOlder,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     zope-interface
   ] ++ twisted.optional-dependencies.tls;
 
-  nativeCheckInputs = [
-    twisted
-  ];
+  nativeCheckInputs = [ twisted ];
 
   # Test creates an excessive amount of temporary files (order of millions).
   # Cleaning up those files already took over 15 hours already on my zfs
@@ -44,7 +43,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Pure-Python Twisted library for LDAP";
+    description = "Pure-Python Twisted library for LDAP";
     homepage = "https://github.com/twisted/ldaptor";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/leather/default.nix b/pkgs/development/python-modules/leather/default.nix
index 138a412017fef..137fb2070f2cf 100644
--- a/pkgs/development/python-modules/leather/default.nix
+++ b/pkgs/development/python-modules/leather/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, six
-, cssselect
-, lxml
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  six,
+  cssselect,
+  lxml,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/leb128/default.nix b/pkgs/development/python-modules/leb128/default.nix
index 4247a4ff75495..1606c54c340cf 100644
--- a/pkgs/development/python-modules/leb128/default.nix
+++ b/pkgs/development/python-modules/leb128/default.nix
@@ -1,8 +1,13 @@
-{ buildPythonPackage, fetchFromGitHub, pytestCheckHook, lib }:
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  lib,
+}:
 
 buildPythonPackage rec {
   pname = "leb128";
-  version = "1.0.5";
+  version = "1.0.7";
   format = "setuptools";
 
   # fetchPypi doesn't include files required for tests
@@ -10,14 +15,14 @@ buildPythonPackage rec {
     owner = "mohanson";
     repo = "leb128";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zK14LPziBkvXAMzuPbcg/47caO/5GEYA9txAzCGfpS8=";
+    hash = "sha256-17C0Eic8T2PFkuIGExcrfb3b1HldaSBAPSh5TtRBUuU=";
   };
 
   nativeCheckInputs = [ pytestCheckHook ];
   pythonImportsCheck = [ "leb128" ];
 
   meta = with lib; {
-    description = "A utility to encode and decode Little Endian Base 128";
+    description = "Utility to encode and decode Little Endian Base 128";
     homepage = "https://github.com/mohanson/leb128";
     license = licenses.mit;
     maintainers = with maintainers; [ urlordjames ];
diff --git a/pkgs/development/python-modules/led-ble/default.nix b/pkgs/development/python-modules/led-ble/default.nix
index 653d75a46da47..b02f4edb45776 100644
--- a/pkgs/development/python-modules/led-ble/default.nix
+++ b/pkgs/development/python-modules/led-ble/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, async-timeout
-, bleak
-, bleak-retry-connector
-, buildPythonPackage
-, fetchFromGitHub
-, flux-led
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  async-timeout,
+  bleak,
+  bleak-retry-connector,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flux-led,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -29,25 +30,17 @@ buildPythonPackage rec {
       --replace " --cov=led_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bleak
     bleak-retry-connector
     flux-led
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    async-timeout
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "led_ble"
-  ];
+  pythonImportsCheck = [ "led_ble" ];
 
   meta = with lib; {
     description = "Library for LED BLE devices";
diff --git a/pkgs/development/python-modules/ledger-agent/default.nix b/pkgs/development/python-modules/ledger-agent/default.nix
index 28bdfb4248572..e514260a8a34a 100644
--- a/pkgs/development/python-modules/ledger-agent/default.nix
+++ b/pkgs/development/python-modules/ledger-agent/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, ledgerblue
-, setuptools
-, libagent
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  ledgerblue,
+  setuptools,
+  libagent,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,10 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    ledgerblue libagent setuptools wheel
+    ledgerblue
+    libagent
+    setuptools
+    wheel
   ];
 
   # no tests
@@ -29,6 +33,10 @@ buildPythonPackage rec {
     description = "Using Ledger as hardware-based SSH/PGP agent";
     homepage = "https://github.com/romanz/trezor-agent";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ hkjn np mmahut ];
+    maintainers = with maintainers; [
+      hkjn
+      np
+      mmahut
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/ledger-bitcoin/default.nix b/pkgs/development/python-modules/ledger-bitcoin/default.nix
index 8298da004ccff..fc22db58923b0 100644
--- a/pkgs/development/python-modules/ledger-bitcoin/default.nix
+++ b/pkgs/development/python-modules/ledger-bitcoin/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, ledgercomm
-, packaging
-, bip32
-, coincurve
-, typing-extensions
- }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  ledgercomm,
+  packaging,
+  bip32,
+  coincurve,
+  typing-extensions,
+}:
 
 buildPythonPackage rec {
   pname = "ledger-bitcoin";
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-rZzerzOkVWK71brmdRAluGmi+B1usCZ90GKgH1klpNU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     ledgercomm
@@ -32,12 +31,10 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  pythonImportsCheck = [
-    "ledger_bitcoin"
-  ];
+  pythonImportsCheck = [ "ledger_bitcoin" ];
 
   meta = with lib; {
-    description = "Client library for Ledger Bitcoin application.";
+    description = "Client library for Ledger Bitcoin application";
     homepage = "https://github.com/LedgerHQ/app-bitcoin-new/tree/develop/bitcoin_client/ledger_bitcoin";
     license = licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/ledgerblue/default.nix b/pkgs/development/python-modules/ledgerblue/default.nix
index f78d9ad5e554d..5010d81530326 100644
--- a/pkgs/development/python-modules/ledgerblue/default.nix
+++ b/pkgs/development/python-modules/ledgerblue/default.nix
@@ -1,47 +1,44 @@
-{ lib
-, stdenv
-, bleak
-, buildPythonPackage
-, ecpy
-, fetchPypi
-, future
-, hidapi
-, nfcpy
-, pillow
-, protobuf
-, pycrypto
-, pycryptodomex
-, pyelftools
-, python-gnupg
-, python-u2flib-host
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
-, setuptools-scm
-, websocket-client
+{
+  lib,
+  stdenv,
+  bleak,
+  buildPythonPackage,
+  ecpy,
+  fetchPypi,
+  future,
+  hidapi,
+  nfcpy,
+  pillow,
+  protobuf,
+  pycrypto,
+  pycryptodomex,
+  pyelftools,
+  python-gnupg,
+  python-u2flib-host,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  websocket-client,
 }:
 
 buildPythonPackage rec {
   pname = "ledgerblue";
-  version = "0.1.50";
+  version = "0.1.54";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0SzUy0mPEbgeoOKEa9UtrjAQafrauKl1wvsONyosJNk=";
+    hash = "sha256-Hn99ST6RnER6XI6+rqA3O9/aC+whYoTOzeoHGF/fFz4=";
   };
 
   build-system = [
     setuptools
     setuptools-scm
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "protobuf"
-  ];
+  pythonRelaxDeps = [ "protobuf" ];
 
   dependencies = [
     ecpy
@@ -56,17 +53,12 @@ buildPythonPackage rec {
     python-gnupg
     python-u2flib-host
     websocket-client
-  ]
-  ++ lib.optionals stdenv.isLinux [
-    bleak
-  ];
+  ] ++ lib.optionals stdenv.isLinux [ bleak ];
 
   # No tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ledgerblue"
-  ];
+  pythonImportsCheck = [ "ledgerblue" ];
 
   meta = with lib; {
     description = "Python library to communicate with Ledger Blue/Nano S";
diff --git a/pkgs/development/python-modules/ledgercomm/default.nix b/pkgs/development/python-modules/ledgercomm/default.nix
index b4493eaa1a881..b23b296385586 100644
--- a/pkgs/development/python-modules/ledgercomm/default.nix
+++ b/pkgs/development/python-modules/ledgercomm/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, setuptools-scm
- }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+}:
 
 buildPythonPackage rec {
   pname = "ledgercomm";
@@ -20,12 +21,10 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  pythonImportsCheck = [
-    "ledgercomm"
-  ];
+  pythonImportsCheck = [ "ledgercomm" ];
 
   meta = with lib; {
-    description = "Python library to send and receive APDU through HID or TCP socket. It can be used with a Ledger Nano S/X or with the Speculos emulator.";
+    description = "Python library to send and receive APDU through HID or TCP socket. It can be used with a Ledger Nano S/X or with the Speculos emulator";
     mainProgram = "ledgercomm-send";
     homepage = "https://github.com/LedgerHQ/ledgercomm";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/ledgerwallet/default.nix b/pkgs/development/python-modules/ledgerwallet/default.nix
index a8d9c612e157e..b2100be0cbe28 100644
--- a/pkgs/development/python-modules/ledgerwallet/default.nix
+++ b/pkgs/development/python-modules/ledgerwallet/default.nix
@@ -1,22 +1,22 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, fetchpatch
-, buildPythonPackage
-, cryptography
-, click
-, construct
-, ecdsa
-, flit-core
-, hidapi
-, intelhex
-, pillow
-, protobuf3
-, requests
-, setuptools
-, tabulate
-, toml
-, AppKit
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  cryptography,
+  click,
+  construct,
+  ecdsa,
+  flit-core,
+  hidapi,
+  intelhex,
+  pillow,
+  protobuf3,
+  requests,
+  setuptools,
+  tabulate,
+  toml,
+  AppKit,
 }:
 
 buildPythonPackage rec {
@@ -31,7 +31,10 @@ buildPythonPackage rec {
     hash = "sha256-IcStYYkKEdZxwgJKL8l2Y1BtO/Oncd4aKUAZD8umbHs=";
   };
 
-  buildInputs = [ flit-core setuptools ] ++ lib.optionals stdenv.isDarwin [ AppKit ];
+  buildInputs = [
+    flit-core
+    setuptools
+  ] ++ lib.optionals stdenv.isDarwin [ AppKit ];
   propagatedBuildInputs = [
     cryptography
     click
@@ -50,9 +53,12 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/LedgerHQ/ledgerctl";
-    description = "A library to control Ledger devices";
+    description = "Library to control Ledger devices";
     mainProgram = "ledgerctl";
     license = licenses.mit;
-    maintainers = with maintainers; [ d-xo erdnaxe ];
+    maintainers = with maintainers; [
+      d-xo
+      erdnaxe
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/leidenalg/default.nix b/pkgs/development/python-modules/leidenalg/default.nix
index 661ac2c715975..947b968e0def5 100644
--- a/pkgs/development/python-modules/leidenalg/default.nix
+++ b/pkgs/development/python-modules/leidenalg/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, ddt
-, fetchFromGitHub
-, igraph
-, igraph-c
-, libleidenalg
-, pythonOlder
-, setuptools-scm
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  ddt,
+  fetchFromGitHub,
+  igraph,
+  igraph-c,
+  libleidenalg,
+  pythonOlder,
+  setuptools-scm,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,18 +25,14 @@ buildPythonPackage rec {
     hash = "sha256-oaTV+BIB/YQBWKrVXuiIEMH/1MxPxeHhjUzbmxt6hlw=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   buildInputs = [
     igraph-c
     libleidenalg
   ];
 
-  propagatedBuildInputs = [
-    igraph
-  ];
+  propagatedBuildInputs = [ igraph ];
 
   checkInputs = [
     ddt
diff --git a/pkgs/development/python-modules/leveldb/default.nix b/pkgs/development/python-modules/leveldb/default.nix
index e275d41f89158..7212c2c4e02b3 100644
--- a/pkgs/development/python-modules/leveldb/default.nix
+++ b/pkgs/development/python-modules/leveldb/default.nix
@@ -1,4 +1,8 @@
-{ lib, fetchPypi, buildPythonPackage }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+}:
 
 buildPythonPackage rec {
   pname = "leveldb";
@@ -13,7 +17,10 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://code.google.com/archive/p/py-leveldb/";
     description = "Thread-safe Python bindings for LevelDB";
-    platforms = [ "x86_64-linux" "i686-linux" ];
+    platforms = [
+      "x86_64-linux"
+      "i686-linux"
+    ];
     license = licenses.bsd3;
     maintainers = [ maintainers.aanderse ];
   };
diff --git a/pkgs/development/python-modules/lexid/default.nix b/pkgs/development/python-modules/lexid/default.nix
index 42ebe98dccc9f..3fc48bd5e914b 100644
--- a/pkgs/development/python-modules/lexid/default.nix
+++ b/pkgs/development/python-modules/lexid/default.nix
@@ -1,4 +1,11 @@
-{ lib, pythonOlder, buildPythonPackage, fetchPypi, pytestCheckHook, click }:
+{
+  lib,
+  pythonOlder,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  click,
+}:
 
 buildPythonPackage rec {
   pname = "lexid";
diff --git a/pkgs/development/python-modules/lexilang/default.nix b/pkgs/development/python-modules/lexilang/default.nix
index 8577cb5211964..e586eba5a3e2f 100644
--- a/pkgs/development/python-modules/lexilang/default.nix
+++ b/pkgs/development/python-modules/lexilang/default.nix
@@ -1,30 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  python,
 }:
 
 buildPythonPackage rec {
   pname = "lexilang";
-  version = "1.0.1";
+  version = "1.0.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "LibreTranslate";
     repo = "LexiLang";
-    rev = "v${version}";
-    hash = "sha256-TLkaqCE9NDjN2XuYOUkeeWIRcqkxrdg31fS4mEnlcEo=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-/uSoEz/5HJnFVkXZndIlM+K0OJLJaorFQ6+kWYELjrs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/lib4sbom/default.nix b/pkgs/development/python-modules/lib4sbom/default.nix
new file mode 100644
index 0000000000000..e444e10bbe008
--- /dev/null
+++ b/pkgs/development/python-modules/lib4sbom/default.nix
@@ -0,0 +1,60 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyyaml,
+  semantic-version,
+  defusedxml,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "lib4sbom";
+  version = "0.7.1";
+  format = "setuptools";
+
+  src = fetchFromGitHub {
+    owner = "anthonyharrison";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-UQZZYTRDbUqSH6F8hjhp9L70025cRO3zXQ8Aoznotg4=";
+  };
+
+  dependencies = [
+    pyyaml
+    semantic-version
+    defusedxml
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  disabledTests = [
+    # stub tests that always fail
+    "TestCycloneDXGenerator"
+    "TestCcycloneDX_parser"
+    "TestGenerator"
+    "TestOutput"
+    "TestParser"
+    "TestSPDX_Generator"
+    "TestSPDX_Parser"
+    # tests with missing getters
+    "test_set_downloadlocation"
+    "test_set_homepage"
+    "test_set_checksum"
+    "test_set_externalreference"
+    # checks for invalid return type
+    "test_set_type"
+    # wrong capilatization
+    "test_set_supplier"
+    "test_set_originator"
+  ];
+
+  pythonImportsCheck = [ "lib4sbom" ];
+
+  meta = with lib; {
+    description = "Library to ingest and generate SBOMs";
+    homepage = "https://github.com/anthonyharrison/lib4sbom";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ teatwig ];
+  };
+}
diff --git a/pkgs/development/python-modules/libagent/default.nix b/pkgs/development/python-modules/libagent/default.nix
index 12c4ce39d7590..4cfe741189085 100644
--- a/pkgs/development/python-modules/libagent/default.nix
+++ b/pkgs/development/python-modules/libagent/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, fetchFromGitHub
-, bech32
-, buildPythonPackage
-, cryptography
-, ed25519
-, ecdsa
-, gnupg
-, semver
-, mnemonic
-, unidecode
-, mock
-, pytest
-, backports-shutil-which
-, configargparse
-, python-daemon
-, pymsgbox
-, pynacl
+{
+  lib,
+  fetchFromGitHub,
+  bech32,
+  buildPythonPackage,
+  cryptography,
+  ed25519,
+  ecdsa,
+  gnupg,
+  semver,
+  mnemonic,
+  unidecode,
+  mock,
+  pytest,
+  backports-shutil-which,
+  configargparse,
+  python-daemon,
+  pymsgbox,
+  pynacl,
 }:
 
 # When changing this package, please test packages {keepkey,ledger,onlykey,trezor}-agent
@@ -54,7 +55,10 @@ buildPythonPackage rec {
     cryptography
   ];
 
-  nativeCheckInputs = [ mock pytest ];
+  nativeCheckInputs = [
+    mock
+    pytest
+  ];
 
   checkPhase = ''
     py.test libagent/tests
diff --git a/pkgs/development/python-modules/libais/default.nix b/pkgs/development/python-modules/libais/default.nix
index ba42d47d346d5..5422e877bacfb 100644
--- a/pkgs/development/python-modules/libais/default.nix
+++ b/pkgs/development/python-modules/libais/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -23,20 +24,14 @@ buildPythonPackage rec {
       --replace "'pytest-runner'," ""
   '';
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # data files missing
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ais"
-  ];
+  pythonImportsCheck = [ "ais" ];
 
   meta = with lib; {
     description = "Library for decoding maritime Automatic Identification System messages";
diff --git a/pkgs/development/python-modules/libarchive-c/default.nix b/pkgs/development/python-modules/libarchive-c/default.nix
index da2f4525e3d63..5338d892df347 100644
--- a/pkgs/development/python-modules/libarchive-c/default.nix
+++ b/pkgs/development/python-modules/libarchive-c/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, libarchive
-, glibcLocales
-, mock
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  libarchive,
+  glibcLocales,
+  mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,16 +21,14 @@ buildPythonPackage rec {
     sha256 = "sha256-CO9llPIbVTuE74AeohrMAu5ICkuT/MorRlYEEFne6Uk=";
   };
 
-  LC_ALL="en_US.UTF-8";
+  LC_ALL = "en_US.UTF-8";
 
   postPatch = ''
     substituteInPlace libarchive/ffi.py --replace \
       "find_library('archive')" "'${libarchive.lib}/lib/libarchive${stdenv.hostPlatform.extensions.sharedLibrary}'"
   '';
 
-  pythonImportsCheck = [
-    "libarchive"
-  ];
+  pythonImportsCheck = [ "libarchive" ];
 
   nativeCheckInputs = [
     glibcLocales
@@ -42,5 +41,4 @@ buildPythonPackage rec {
     description = "Python interface to libarchive";
     license = licenses.cc0;
   };
-
 }
diff --git a/pkgs/development/python-modules/libarcus/default.nix b/pkgs/development/python-modules/libarcus/default.nix
index b95c2b295257a..316c604750abe 100644
--- a/pkgs/development/python-modules/libarcus/default.nix
+++ b/pkgs/development/python-modules/libarcus/default.nix
@@ -1,6 +1,13 @@
-{ lib, buildPythonPackage, python, fetchFromGitHub
-, fetchpatch
-, cmake, sip4, protobuf, pythonOlder }:
+{
+  lib,
+  buildPythonPackage,
+  python,
+  fetchFromGitHub,
+  fetchpatch,
+  cmake,
+  sip4,
+  protobuf,
+}:
 
 buildPythonPackage rec {
   pname = "libarcus";
@@ -23,8 +30,6 @@ buildPythonPackage rec {
     })
   ];
 
-  disabled = pythonOlder "3.4";
-
   propagatedBuildInputs = [ sip4 ];
   nativeBuildInputs = [ cmake ];
   buildInputs = [ protobuf ];
@@ -38,6 +43,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/Ultimaker/libArcus";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ abbradar gebner ];
+    maintainers = with maintainers; [
+      abbradar
+      gebner
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/libasyncns/default.nix b/pkgs/development/python-modules/libasyncns/default.nix
index bd28c2207340c..730d1a9217d5a 100644
--- a/pkgs/development/python-modules/libasyncns/default.nix
+++ b/pkgs/development/python-modules/libasyncns/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchurl
-, libasyncns
-, pkg-config
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchurl,
+  libasyncns,
+  pkg-config,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/libclang/default.nix b/pkgs/development/python-modules/libclang/default.nix
index 24d0e287ea030..fe9390a76e1a7 100644
--- a/pkgs/development/python-modules/libclang/default.nix
+++ b/pkgs/development/python-modules/libclang/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, llvmPackages
-, setuptools
-, writeText
+{
+  lib,
+  buildPythonPackage,
+  llvmPackages,
+  setuptools,
+  writeText,
 }:
 
 let
@@ -22,7 +23,8 @@ let
     [options]
     packages = clang
   '';
-in buildPythonPackage {
+in
+buildPythonPackage {
   pname = "libclang";
   format = "pyproject";
 
diff --git a/pkgs/development/python-modules/libcloud/default.nix b/pkgs/development/python-modules/libcloud/default.nix
index b6bb639b3afc7..8c3481cdecffb 100644
--- a/pkgs/development/python-modules/libcloud/default.nix
+++ b/pkgs/development/python-modules/libcloud/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pycrypto
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pycrypto,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -35,12 +36,10 @@ buildPythonPackage rec {
   # requires a certificates file
   doCheck = false;
 
-  pythonImportsCheck = [
-    "libcloud"
-  ];
+  pythonImportsCheck = [ "libcloud" ];
 
   meta = with lib; {
-    description = "A unified interface to many cloud providers";
+    description = "Unified interface to many cloud providers";
     homepage = "https://libcloud.apache.org/";
     changelog = "https://github.com/apache/libcloud/blob/v${version}/CHANGES.rst";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/libcst/default.nix b/pkgs/development/python-modules/libcst/default.nix
index d1fc8ec75e33c..140c919d70810 100644
--- a/pkgs/development/python-modules/libcst/default.nix
+++ b/pkgs/development/python-modules/libcst/default.nix
@@ -1,26 +1,26 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, cargo
-, hypothesis
-, libiconv
-, pytestCheckHook
-, python
-, pythonOlder
-, pyyaml
-, rustPlatform
-, rustc
-, setuptools-rust
-, setuptools-scm
-, typing-extensions
-, typing-inspect
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cargo,
+  hypothesis,
+  libiconv,
+  pytestCheckHook,
+  python,
+  pythonOlder,
+  pyyaml,
+  rustPlatform,
+  rustc,
+  setuptools-rust,
+  setuptools-scm,
+  typing-extensions,
+  typing-inspect,
 }:
 
 buildPythonPackage rec {
   pname = "libcst";
-  version = "1.1.0";
+  version = "1.4.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -29,27 +29,18 @@ buildPythonPackage rec {
     owner = "instagram";
     repo = "libcst";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kFs7edBWz0GRbgbLDmtpUVi5R+6mYXsJSvceOoPW9ck=";
+    hash = "sha256-H0YO8ILWOyhYdosNRWQQ9wziFk0syKSG3vF2zuYkL2k=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     sourceRoot = "${src.name}/${cargoRoot}";
     name = "${pname}-${version}";
-    hash = "sha256-fhaHiz64NH6S61fSXj4gNxxcuB+ECxWSSmG5StiFr1k=";
+    hash = "sha256-AcqHn3A7WCVyVnOBD96k4pxokhzgmCWOipK/DrIAQkU=";
   };
 
   cargoRoot = "native";
 
-  patches = [
-    # https://github.com/Instagram/LibCST/pull/1042
-    (fetchpatch {
-      name = "remove-distutils.patch";
-      url = "https://github.com/Instagram/LibCST/commit/a6834aa0e6eb78e41549fd1087d7ba60ca4dd237.patch";
-      hash = "sha256-lyIXJhm4UMwdCOso6McDslIvtK7Ar8sF5Zy7qo1nicQ=";
-    })
-  ];
-
   postPatch = ''
     # avoid infinite recursion by not formatting the release files
     substituteInPlace libcst/codegen/generate.py \
@@ -93,15 +84,17 @@ buildPythonPackage rec {
     "test_codemod_formatter_error_input"
   ];
 
-  pythonImportsCheck = [
-    "libcst"
-  ];
+  pythonImportsCheck = [ "libcst" ];
 
   meta = with lib; {
     description = "Concrete Syntax Tree (CST) parser and serializer library for Python";
     homepage = "https://github.com/Instagram/libcst";
     changelog = "https://github.com/Instagram/LibCST/blob/v${version}/CHANGELOG.md";
-    license = with licenses; [ mit asl20 psfl ];
+    license = with licenses; [
+      mit
+      asl20
+      psfl
+    ];
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/libevdev/default.nix b/pkgs/development/python-modules/libevdev/default.nix
index 44213cdd14cf3..e7be644cdd5ae 100644
--- a/pkgs/development/python-modules/libevdev/default.nix
+++ b/pkgs/development/python-modules/libevdev/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, isPy27
-, fetchPypi
-, substituteAll
-, pkgs
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  isPy27,
+  fetchPypi,
+  substituteAll,
+  pkgs,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/libgpiod/default.nix b/pkgs/development/python-modules/libgpiod/default.nix
index 56f225d283baf..8ea7089985bd3 100644
--- a/pkgs/development/python-modules/libgpiod/default.nix
+++ b/pkgs/development/python-modules/libgpiod/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, libgpiod
+{
+  lib,
+  buildPythonPackage,
+  libgpiod,
 }:
 buildPythonPackage {
   inherit (libgpiod) pname version src;
diff --git a/pkgs/development/python-modules/libgpuarray/default.nix b/pkgs/development/python-modules/libgpuarray/default.nix
index d186233ccdc48..7645f8bc74276 100644
--- a/pkgs/development/python-modules/libgpuarray/default.nix
+++ b/pkgs/development/python-modules/libgpuarray/default.nix
@@ -1,18 +1,21 @@
-{ stdenv
-, lib
-, addOpenGLRunpath
-, buildPythonPackage
-, fetchFromGitHub
-, cmake
-, cython_0
-, numpy
-, six
-, nose
-, mako
-, config
-, cudaSupport ? config.cudaSupport
-, cudaPackages ? { }
-, openclSupport ? true, ocl-icd, clblas
+{
+  stdenv,
+  lib,
+  addOpenGLRunpath,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cmake,
+  cython_0,
+  numpy,
+  six,
+  nose,
+  mako,
+  config,
+  cudaSupport ? config.cudaSupport,
+  cudaPackages ? { },
+  openclSupport ? true,
+  ocl-icd,
+  clblas,
 }:
 
 buildPythonPackage rec {
@@ -33,7 +36,13 @@ buildPythonPackage rec {
   configurePhase = "cmakeConfigurePhase";
 
   libraryPath = lib.makeLibraryPath (
-    lib.optionals cudaSupport (with cudaPackages; [ cudatoolkit.lib cudatoolkit.out ])
+    lib.optionals cudaSupport (
+      with cudaPackages;
+      [
+        cudatoolkit.lib
+        cudatoolkit.out
+      ]
+    )
     ++ lib.optionals openclSupport ([ clblas ] ++ lib.optional (!stdenv.isDarwin) ocl-icd)
   );
 
@@ -46,18 +55,21 @@ buildPythonPackage rec {
     cd ..
   '';
 
-  postFixup = ''
-    rm $out/lib/libgpuarray-static.a
-  '' + lib.optionalString (!stdenv.isDarwin) ''
-    function fixRunPath {
-      p=$(patchelf --print-rpath $1)
-      patchelf --set-rpath "$p:$libraryPath" $1
-    }
-
-    fixRunPath $out/lib/libgpuarray.so
-  '' + lib.optionalString cudaSupport ''
-    addOpenGLRunpath $out/lib/libgpuarray.so
-  '';
+  postFixup =
+    ''
+      rm $out/lib/libgpuarray-static.a
+    ''
+    + lib.optionalString (!stdenv.isDarwin) ''
+      function fixRunPath {
+        p=$(patchelf --print-rpath $1)
+        patchelf --set-rpath "$p:$libraryPath" $1
+      }
+
+      fixRunPath $out/lib/libgpuarray.so
+    ''
+    + lib.optionalString cudaSupport ''
+      addOpenGLRunpath $out/lib/libgpuarray.so
+    '';
 
   propagatedBuildInputs = [
     numpy
@@ -68,21 +80,15 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     cmake
     cython_0
-  ] ++ lib.optionals cudaSupport [
-    addOpenGLRunpath
-  ];
+  ] ++ lib.optionals cudaSupport [ addOpenGLRunpath ];
 
-
-  buildInputs = [
-    nose
-  ];
+  buildInputs = [ nose ];
 
   meta = with lib; {
     homepage = "https://github.com/Theano/libgpuarray";
-    description = "Library to manipulate tensors on GPU.";
+    description = "Library to manipulate tensors on GPU";
     license = licenses.free;
     maintainers = with maintainers; [ artuuge ];
     platforms = platforms.unix;
   };
-
 }
diff --git a/pkgs/development/python-modules/libgravatar/default.nix b/pkgs/development/python-modules/libgravatar/default.nix
new file mode 100644
index 0000000000000..57b799854854d
--- /dev/null
+++ b/pkgs/development/python-modules/libgravatar/default.nix
@@ -0,0 +1,37 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  pythonOlder,
+}:
+
+buildPythonPackage rec {
+  pname = "libgravatar";
+  version = "1.0.4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "pabluk";
+    repo = "libgravatar";
+    rev = "refs/tags/${version}";
+    hash = "sha256-rJv/jfdT+JldxR0kKtXQLOI5wXQYSQRWJnqwExwWjTA=";
+  };
+
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "libgravatar" ];
+
+  meta = with lib; {
+    description = "Library that provides a Python 3 interface for the Gravatar API";
+    homepage = "https://github.com/pabluk/libgravatar";
+    changelog = "https://github.com/pabluk/libgravatar/releases/tag/${version}";
+    license = licenses.gpl3Plus;
+    maintainers = with maintainers; [ gador ];
+  };
+}
diff --git a/pkgs/development/python-modules/libkeepass/default.nix b/pkgs/development/python-modules/libkeepass/default.nix
index 14bbdb1ec0092..4b6faad610ecd 100644
--- a/pkgs/development/python-modules/libkeepass/default.nix
+++ b/pkgs/development/python-modules/libkeepass/default.nix
@@ -1,5 +1,11 @@
-{ lib, fetchPypi, buildPythonPackage
-, lxml, pycryptodome, colorama }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  lxml,
+  pycryptodome,
+  colorama,
+}:
 
 buildPythonPackage rec {
   pname = "libkeepass";
@@ -11,14 +17,18 @@ buildPythonPackage rec {
     sha256 = "0pwg7n9xqcjia1qmz6g48h5s31slh3mxmcqag73gq4zhl4xb6bai";
   };
 
-  propagatedBuildInputs = [ lxml pycryptodome colorama ];
+  propagatedBuildInputs = [
+    lxml
+    pycryptodome
+    colorama
+  ];
 
   # No tests on PyPI
   doCheck = false;
 
   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";
+    description = "Library to access KeePass 1.x/KeePassX (v3) and KeePass 2.x (v4) files";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ jqueiroz ];
   };
diff --git a/pkgs/development/python-modules/libknot/default.nix b/pkgs/development/python-modules/libknot/default.nix
index 96f900f2dd355..60c282a1e59b9 100644
--- a/pkgs/development/python-modules/libknot/default.nix
+++ b/pkgs/development/python-modules/libknot/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, hatchling
+  # build-system
+  hatchling,
 
-# native dependencies
-, knot-dns
+  # native dependencies
+  knot-dns,
 }:
 
 buildPythonPackage rec {
   pname = "libknot";
-  version = "3.3.5";
+  version = "3.3.6";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-nEeDawZ/kChHQA3qoEKy+R+Uy7ogNL3ows3Yzs5OhpY=";
+    hash = "sha256-N96gdO5sezMyKt0QdX7ORg5DnEVSqb1j+WohvOHdYYU=";
   };
 
   postPatch = ''
@@ -25,19 +26,14 @@ buildPythonPackage rec {
       --replace "libknot.so%s" "${lib.getLib knot-dns}/lib/libknot.so%s"
   '';
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
-  pythonImportsCheck = [
-    "libknot"
-  ];
+  pythonImportsCheck = [ "libknot" ];
 
   meta = with lib; {
     description = "Python bindings for libknot";
     homepage = "https://gitlab.nic.cz/knot/knot-dns/-/tree/master/python/libknot";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ hexa ];
-    mainProgram = "libknot";
   };
 }
diff --git a/pkgs/development/python-modules/liblarch/default.nix b/pkgs/development/python-modules/liblarch/default.nix
index a133b5382441b..1f891c126aef1 100644
--- a/pkgs/development/python-modules/liblarch/default.nix
+++ b/pkgs/development/python-modules/liblarch/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, python
-, pygobject3
-, xvfb-run
-, gobject-introspection
-, gtk3
-, pythonOlder
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  python,
+  pygobject3,
+  xvfb-run,
+  gobject-introspection,
+  gtk3,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
 
   buildInputs = [ gtk3 ];
 
-  propagatedBuildInputs = [
-    pygobject3
-  ];
+  propagatedBuildInputs = [ pygobject3 ];
 
   checkPhase = ''
     runHook preCheck
@@ -41,7 +40,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A python library built to easily handle data structure such are lists, trees and acyclic graphs";
+    description = "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";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/python-modules/liblzfse/default.nix b/pkgs/development/python-modules/liblzfse/default.nix
index 687d1df765b42..f88a096459eeb 100644
--- a/pkgs/development/python-modules/liblzfse/default.nix
+++ b/pkgs/development/python-modules/liblzfse/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, lzfse
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  lzfse,
 }:
 buildPythonPackage rec {
   pname = "pyliblzfse";
@@ -20,9 +21,7 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "liblzfse"
-  ];
+  pythonImportsCheck = [ "liblzfse" ];
 
   meta = with lib; {
     description = "Python bindings for LZFSE";
diff --git a/pkgs/development/python-modules/libmambapy/default.nix b/pkgs/development/python-modules/libmambapy/default.nix
index 0466bebfe3099..97f5e0dec10a2 100644
--- a/pkgs/development/python-modules/libmambapy/default.nix
+++ b/pkgs/development/python-modules/libmambapy/default.nix
@@ -22,14 +22,14 @@
 }:
 buildPythonPackage rec {
   pname = "libmambapy";
-  version = "1.5.7";
+  version = "2024.03.25";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "mamba-org";
     repo = "mamba";
-    rev = "${pname}-${version}";
-    hash = "sha256-HfmvLi9IBWlaGAn2Ej4Bnm4b3l19jEXwNl5IUkdVxi0=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-sxZDlMFoMLq2EAzwBVO++xvU1C30JoIoZXEX/sqkXS0=";
   };
 
   nativeBuildInputs = [
@@ -85,7 +85,7 @@ buildPythonPackage rec {
   ];
 
   meta = {
-    description = "The python library for the fast Cross-Platform Package Manager";
+    description = "Python library for the fast Cross-Platform Package Manager";
     homepage = "https://github.com/mamba-org/mamba";
     license = lib.licenses.bsd3;
     maintainers = [ lib.maintainers.ericthemagician ];
diff --git a/pkgs/development/python-modules/libmr/default.nix b/pkgs/development/python-modules/libmr/default.nix
index c852ce160cd3e..5771a2d25b3f2 100644
--- a/pkgs/development/python-modules/libmr/default.nix
+++ b/pkgs/development/python-modules/libmr/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, numpy, cython }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  cython,
+}:
 
 buildPythonPackage rec {
   pname = "libmr";
@@ -11,7 +17,10 @@ buildPythonPackage rec {
     sha256 = "43ccd86693b725fa3abe648c8cdcef17ba5fa46b5528168829e5f9b968dfeb70";
   };
 
-  propagatedBuildInputs = [ numpy cython ];
+  propagatedBuildInputs = [
+    numpy
+    cython
+  ];
 
   # No tests in the pypi tarball
   doCheck = false;
@@ -23,4 +32,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ psyanticy ];
   };
 }
-
diff --git a/pkgs/development/python-modules/libnacl/default.nix b/pkgs/development/python-modules/libnacl/default.nix
index ec6d1e4425646..265bfeab5443f 100644
--- a/pkgs/development/python-modules/libnacl/default.nix
+++ b/pkgs/development/python-modules/libnacl/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, libsodium
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  libsodium,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,7 +25,9 @@ buildPythonPackage rec {
   buildInputs = [ libsodium ];
 
   postPatch =
-    let soext = stdenv.hostPlatform.extensions.sharedLibrary; in
+    let
+      soext = stdenv.hostPlatform.extensions.sharedLibrary;
+    in
     ''
       substituteInPlace "./libnacl/__init__.py" \
         --replace \
diff --git a/pkgs/development/python-modules/libpcap/default.nix b/pkgs/development/python-modules/libpcap/default.nix
index 54a1306594554..096aaa5c19404 100644
--- a/pkgs/development/python-modules/libpcap/default.nix
+++ b/pkgs/development/python-modules/libpcap/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, dbus
-, pkgsLibpcap
-, pkg-about
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  dbus,
+  pkgsLibpcap,
+  pkg-about,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-6XhEVOO2Z2rFZiMz4d32tTR+xUu1KdMdDjChmt2wsQo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # tox is listed in build requirements but not actually used to build
   # keeping it as a requirement breaks the build unnecessarily
@@ -49,13 +48,9 @@ buildPythonPackage rec {
   postCheck = ''
     popd
   '';
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "libpcap"
-  ];
+  pythonImportsCheck = [ "libpcap" ];
 
   meta = with lib; {
     description = "Python binding for the libpcap C library";
diff --git a/pkgs/development/python-modules/libpurecool/default.nix b/pkgs/development/python-modules/libpurecool/default.nix
index 3e29ea73e2c9d..26b857f0c0b9b 100644
--- a/pkgs/development/python-modules/libpurecool/default.nix
+++ b/pkgs/development/python-modules/libpurecool/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, netifaces
-, paho-mqtt
-, pycryptodome
-, requests
-, six
-, zeroconf
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  netifaces,
+  paho-mqtt,
+  pycryptodome,
+  requests,
+  six,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/libpyfoscam/default.nix b/pkgs/development/python-modules/libpyfoscam/default.nix
index 472c53f72ca9f..5606437ffed26 100644
--- a/pkgs/development/python-modules/libpyfoscam/default.nix
+++ b/pkgs/development/python-modules/libpyfoscam/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # tests need access to a camera
   doCheck = false;
 
-  pythonImportsCheck = [
-    "libpyfoscam"
-  ];
+  pythonImportsCheck = [ "libpyfoscam" ];
 
   meta = with lib; {
     description = "Python Library for Foscam IP Cameras";
diff --git a/pkgs/development/python-modules/libpysal/default.nix b/pkgs/development/python-modules/libpysal/default.nix
new file mode 100644
index 0000000000000..8ec004d6c4810
--- /dev/null
+++ b/pkgs/development/python-modules/libpysal/default.nix
@@ -0,0 +1,86 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  beautifulsoup4,
+  fiona,
+  geodatasets,
+  geopandas,
+  numpy,
+  packaging,
+  pandas,
+  platformdirs,
+  requests,
+  scikit-learn,
+  scipy,
+  setuptools-scm,
+  shapely,
+}:
+
+buildPythonPackage rec {
+  pname = "libpysal";
+  version = "4.11.0";
+  pyproject = true;
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "pysal";
+    repo = "libpysal";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-1JZ82wO0kisbTrhsn+BYeNZpkMJUEzuflQ6GqpAYH/c=";
+  };
+
+  build-system = [ setuptools-scm ];
+
+  propagatedBuildInputs = [
+    beautifulsoup4
+    fiona
+    geopandas
+    numpy
+    packaging
+    pandas
+    platformdirs
+    requests
+    scikit-learn
+    scipy
+    shapely
+  ];
+
+  nativeCheckInputs = [
+    geodatasets
+    pytestCheckHook
+  ];
+
+  preCheck = ''
+    export HOME=$TMPDIR
+  '';
+
+  # requires network access
+  disabledTestPaths = [
+    "libpysal/cg/tests/test_geoJSON.py"
+    "libpysal/examples/tests/test_available.py"
+    "libpysal/graph/tests/test_base.py"
+    "libpysal/graph/tests/test_builders.py"
+    "libpysal/graph/tests/test_contiguity.py"
+    "libpysal/graph/tests/test_kernel.py"
+    "libpysal/graph/tests/test_matching.py"
+    "libpysal/graph/tests/test_plotting.py"
+    "libpysal/graph/tests/test_triangulation.py"
+    "libpysal/graph/tests/test_utils.py"
+    "libpysal/graph/tests/test_set_ops.py"
+    "libpysal/weights/tests/test_contiguity.py"
+    "libpysal/weights/tests/test_util.py"
+  ];
+
+  pythonImportsCheck = [ "libpysal" ];
+
+  meta = {
+    description = "Library of spatial analysis functions";
+    homepage = "https://pysal.org/libpysal/";
+    license = lib.licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/libpyvivotek/default.nix b/pkgs/development/python-modules/libpyvivotek/default.nix
index 9a4cda0ae684c..7320880a15390 100644
--- a/pkgs/development/python-modules/libpyvivotek/default.nix
+++ b/pkgs/development/python-modules/libpyvivotek/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, vcrpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  vcrpy,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,14 @@ buildPythonPackage rec {
     sha256 = "pNlnGpDjdYE7Lxog8GGZV+UZZmfmt5bwHof5LngPQjg=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     pytestCheckHook
     vcrpy
   ];
 
-  pythonImportsCheck = [
-    "libpyvivotek"
-  ];
+  pythonImportsCheck = [ "libpyvivotek" ];
 
   meta = with lib; {
     description = "Python Library for Vivotek IP Cameras";
diff --git a/pkgs/development/python-modules/librespot/default.nix b/pkgs/development/python-modules/librespot/default.nix
index 97277f68a981e..e2e98bc1e6edb 100644
--- a/pkgs/development/python-modules/librespot/default.nix
+++ b/pkgs/development/python-modules/librespot/default.nix
@@ -1,15 +1,15 @@
-{ lib
-, buildPythonPackage
-, defusedxml
-, fetchFromGitHub
-, protobuf
-, pycryptodomex
-, pyogg
-, pytestCheckHook
-, pythonRelaxDepsHook
-, requests
-, websocket-client
-, zeroconf
+{
+  lib,
+  buildPythonPackage,
+  defusedxml,
+  fetchFromGitHub,
+  protobuf,
+  pycryptodomex,
+  pyogg,
+  pytestCheckHook,
+  requests,
+  websocket-client,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +26,6 @@ buildPythonPackage rec {
 
   pythonRelaxDeps = true;
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   propagatedBuildInputs = [
     defusedxml
@@ -43,9 +40,7 @@ buildPythonPackage rec {
   # Doesn't include any tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "librespot"
-  ];
+  pythonImportsCheck = [ "librespot" ];
 
   meta = with lib; {
     description = "Open Source Spotify Client";
diff --git a/pkgs/development/python-modules/libretranslate/default.nix b/pkgs/development/python-modules/libretranslate/default.nix
index 042fd5d404d1c..eae30cc7407d9 100644
--- a/pkgs/development/python-modules/libretranslate/default.nix
+++ b/pkgs/development/python-modules/libretranslate/default.nix
@@ -1,48 +1,47 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonRelaxDepsHook
-, pytestCheckHook
-, hatchling
-, argostranslate
-, flask
-, flask-swagger
-, flask-swagger-ui
-, flask-limiter
-, flask-babel
-, flask-session
-, waitress
-, expiringdict
-, langdetect
-, lexilang
-, ltpycld2
-, morfessor
-, appdirs
-, apscheduler
-, translatehtml
-, argos-translate-files
-, requests
-, redis
-, prometheus-client
-, polib
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  hatchling,
+  argostranslate,
+  flask,
+  flask-swagger,
+  flask-swagger-ui,
+  flask-limiter,
+  flask-babel,
+  flask-session,
+  waitress,
+  expiringdict,
+  langdetect,
+  lexilang,
+  ltpycld2,
+  morfessor,
+  appdirs,
+  apscheduler,
+  translatehtml,
+  argos-translate-files,
+  requests,
+  redis,
+  prometheus-client,
+  polib,
+  python,
 }:
 
 buildPythonPackage rec {
   pname = "libretranslate";
-  version = "1.5.6";
+  version = "1.6.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "LibreTranslate";
     repo = "LibreTranslate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-43VnxgtapMRKyXxqsvBgSMUxvpbLI+iOfW3FA0/POpE=";
+    hash = "sha256-QH+H1UubDDv2SZa/razs+JYu4BbZzWHh7DLWfZEWCes=";
   };
 
   build-system = [
     hatchling
-    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = true;
@@ -79,9 +78,7 @@ buildPythonPackage rec {
 
   doCheck = false; # needs network access
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # required for import check to work (argostranslate)
   env.HOME = "/tmp";
diff --git a/pkgs/development/python-modules/librosa/default.nix b/pkgs/development/python-modules/librosa/default.nix
index 62d712aa7b1f3..2429042ff75e6 100644
--- a/pkgs/development/python-modules/librosa/default.nix
+++ b/pkgs/development/python-modules/librosa/default.nix
@@ -1,40 +1,40 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-
-# build-system
-, setuptools
-
-# runtime
-, audioread
-, decorator
-, joblib
-, lazy-loader
-, matplotlib
-, msgpack
-, numba
-, numpy
-, pooch
-, scikit-learn
-, scipy
-, soundfile
-, soxr
-, typing-extensions
-
-# tests
-, ffmpeg-headless
-, packaging
-, pytest-mpl
-, pytestCheckHook
-, resampy
-, samplerate
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+
+  # runtime
+  audioread,
+  decorator,
+  joblib,
+  lazy-loader,
+  matplotlib,
+  msgpack,
+  numba,
+  numpy,
+  pooch,
+  scikit-learn,
+  scipy,
+  soundfile,
+  soxr,
+  typing-extensions,
+
+  # tests
+  ffmpeg-headless,
+  packaging,
+  pytest-mpl,
+  pytestCheckHook,
+  resampy,
+  samplerate,
 }:
 
 buildPythonPackage rec {
   pname = "librosa";
-  version = "0.10.1";
+  version = "0.10.2.post1";
   format = "pyproject";
 
   src = fetchFromGitHub {
@@ -42,26 +42,14 @@ buildPythonPackage rec {
     repo = "librosa";
     rev = "refs/tags/${version}";
     fetchSubmodules = true; # for test data
-    hash = "sha256-zbmU87hI9A1CVcBZ/5FU8z0t6SS4jfJk9bj9kLe/EHI=";
+    hash = "sha256-0FbKVAFWmcFTW2dR27nif6hPZeIxFWYF1gTm4BEJZ/Q=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
-
-  patches = [
-    (fetchpatch {
-      # https://github.com/librosa/librosa/issues/1754
-      # https://github.com/librosa/librosa/pull/1755
-      name = "matplotlib-3.8-compat.patch";
-      url = "https://github.com/librosa/librosa/commit/beef47885ce1255b43b65e48ea2054ddace37c6c.patch";
-      hash = "sha256-rrnlUHXHY2me4BWGs3wFq8WJmz75CbXTWKFp3VdJKzE=";
-    })
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   postPatch = ''
     substituteInPlace setup.cfg \
-      --replace "--cov-report term-missing --cov librosa --cov-report=xml " ""
+      --replace-fail "--cov-report term-missing --cov librosa --cov-report=xml " ""
   '';
 
   propagatedBuildInputs = [
@@ -80,14 +68,10 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  passthru.optional-dependencies.matplotlib = [
-    matplotlib
-  ];
+  passthru.optional-dependencies.matplotlib = [ matplotlib ];
 
   # check that import works, this allows to capture errors like https://github.com/librosa/librosa/issues/1160
-  pythonImportsCheck = [
-    "librosa"
-  ];
+  pythonImportsCheck = [ "librosa" ];
 
   nativeCheckInputs = [
     ffmpeg-headless
@@ -102,17 +86,28 @@ buildPythonPackage rec {
     export HOME=$TMPDIR
   '';
 
-  disabledTests = [
-    # requires network access
-    "test_example"
-    "test_example_info"
-    "test_load_resample"
-    # does not converge
-    "test_nnls_vector"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # https://github.com/librosa/librosa/pull/1808
-    "test_pyin_multi_center"
-  ];
+  disabledTests =
+    [
+      # requires network access
+      "test_example"
+      "test_example_info"
+      "test_load_resample"
+      "test_cite_released"
+      "test_cite_badversion"
+      "test_cite_unreleased"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # crashing the python interpreter
+      "test_unknown_time_unit"
+      "test_unknown_wavaxis"
+      "test_waveshow_unknown_wavaxis"
+      "test_waveshow_bad_maxpoints"
+      "test_waveshow_deladaptor"
+      "test_waveshow_disconnect"
+      "test_unknown_axis"
+      "test_axis_bound_warning"
+      "test_auto_aspect"
+    ];
 
   meta = with lib; {
     description = "Python library for audio and music analysis";
@@ -121,5 +116,4 @@ buildPythonPackage rec {
     license = licenses.isc;
     maintainers = with maintainers; [ GuillaumeDesforges ];
   };
-
 }
diff --git a/pkgs/development/python-modules/librouteros/default.nix b/pkgs/development/python-modules/librouteros/default.nix
index 5ba5f86aab10b..8db1f4a3356e3 100644
--- a/pkgs/development/python-modules/librouteros/default.nix
+++ b/pkgs/development/python-modules/librouteros/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-xdist
-, pytest7CheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-xdist,
+  pytest7CheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-VwpZ1RY6Sul7xvWY7ZoOxZ7KgbRmKRwcVdF9e2b3f6Q=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytest-xdist
@@ -42,9 +41,7 @@ buildPythonPackage rec {
     "test_rawCmd_calls_writeSentence"
   ];
 
-  pythonImportsCheck = [
-    "librouteros"
-  ];
+  pythonImportsCheck = [ "librouteros" ];
 
   meta = with lib; {
     description = "Python implementation of the MikroTik RouterOS API";
diff --git a/pkgs/development/python-modules/libsass/default.nix b/pkgs/development/python-modules/libsass/default.nix
index 85f4b24533e61..13322dd79ba75 100644
--- a/pkgs/development/python-modules/libsass/default.nix
+++ b/pkgs/development/python-modules/libsass/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, libsass
-, six
-, pytestCheckHook
-, werkzeug
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  libsass,
+  six,
+  pytestCheckHook,
+  werkzeug,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/libsavitar/default.nix b/pkgs/development/python-modules/libsavitar/default.nix
index 56ce67110b908..5bb60e58ac866 100644
--- a/pkgs/development/python-modules/libsavitar/default.nix
+++ b/pkgs/development/python-modules/libsavitar/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, python, pythonOlder, fetchFromGitHub, cmake, sip4 }:
+{
+  lib,
+  buildPythonPackage,
+  python,
+  pythonOlder,
+  fetchFromGitHub,
+  cmake,
+  sip4,
+}:
 
 buildPythonPackage rec {
   pname = "libsavitar";
@@ -27,6 +35,10 @@ buildPythonPackage rec {
     homepage = "https://github.com/Ultimaker/libSavitar";
     license = licenses.lgpl3Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ abbradar orivej gebner ];
+    maintainers = with maintainers; [
+      abbradar
+      orivej
+      gebner
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/libsixel/default.nix b/pkgs/development/python-modules/libsixel/default.nix
index 37bf32f31fd61..9046cc3f81306 100644
--- a/pkgs/development/python-modules/libsixel/default.nix
+++ b/pkgs/development/python-modules/libsixel/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, lib
-, stdenv
-, libsixel
+{
+  buildPythonPackage,
+  lib,
+  stdenv,
+  libsixel,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/libsoundtouch/default.nix b/pkgs/development/python-modules/libsoundtouch/default.nix
index 0ca972c8bade8..77c0d00d0fed6 100644
--- a/pkgs/development/python-modules/libsoundtouch/default.nix
+++ b/pkgs/development/python-modules/libsoundtouch/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, enum-compat
-, requests
-, websocket-client
-, zeroconf
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  enum-compat,
+  requests,
+  websocket-client,
+  zeroconf,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
-  pname   = "libsoundtouch";
+  pname = "libsoundtouch";
   version = "0.8.0";
   format = "setuptools";
 
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     zeroconf
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # mock data order mismatch
@@ -39,7 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Bose Soundtouch Python library";
-    homepage    = "https://github.com/CharlesBlonde/libsoundtouch";
-    license     = licenses.asl20;
+    homepage = "https://github.com/CharlesBlonde/libsoundtouch";
+    license = licenses.asl20;
   };
 }
diff --git a/pkgs/development/python-modules/libthumbor/default.nix b/pkgs/development/python-modules/libthumbor/default.nix
index 0fdb4c4fab949..40650afa0e720 100644
--- a/pkgs/development/python-modules/libthumbor/default.nix
+++ b/pkgs/development/python-modules/libthumbor/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, django
-, six
-, pycrypto
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  django,
+  six,
+  pycrypto,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-1PsiFZrTDVQqy8A3nkaM5LdPiBoriRgHkklTOiczN+g=";
   };
 
-  buildInputs = [
-    django
-  ];
+  buildInputs = [ django ];
 
   propagatedBuildInputs = [
     six
@@ -30,9 +29,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  pythonImportsCheck = [
-    "libthumbor"
-  ];
+  pythonImportsCheck = [ "libthumbor" ];
 
   meta = with lib; {
     description = "Python extension to thumbor";
diff --git a/pkgs/development/python-modules/libtmux/default.nix b/pkgs/development/python-modules/libtmux/default.nix
index 1d26117e5ba11..0bb5cb5cda287 100644
--- a/pkgs/development/python-modules/libtmux/default.nix
+++ b/pkgs/development/python-modules/libtmux/default.nix
@@ -1,34 +1,34 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, buildPythonPackage
-, poetry-core
-, pytest-rerunfailures
-, pytestCheckHook
-, procps
-, tmux
-, ncurses
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ncurses,
+  poetry-core,
+  procps,
+  pytest-rerunfailures,
+  pytestCheckHook,
+  tmux,
 }:
 
 buildPythonPackage rec {
   pname = "libtmux";
-  version = "0.36.0";
+  version = "0.37.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "tmux-python";
-    repo = pname;
+    repo = "libtmux";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oJ2IGaPFMKA/amUEPZi1UO9vZtjPNQg3SIFjQWzUeSE=";
+    hash = "sha256-I0E6zkfQ6mx2svCaXEgKPhrrog3iLgXZ4E3CMMxPkIA=";
   };
 
   postPatch = ''
-    sed -i '/addopts/d' pyproject.toml
+    substituteInPlace pyproject.toml \
+      --replace-fail '"--doctest-docutils-modules",' ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   nativeCheckInputs = [
     procps
@@ -40,24 +40,23 @@ buildPythonPackage rec {
 
   pytestFlagsArray = [ "tests" ];
 
-  disabledTests = [
-    # Fail with: 'no server running on /tmp/tmux-1000/libtmux_test8sorutj1'.
-    "test_new_session_width_height"
-    # Assertion error
-    "test_capture_pane_start"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # tests/test_pane.py:113: AssertionError
-    "test_capture_pane_start"
-  ];
+  disabledTests =
+    [
+      # Fail with: 'no server running on /tmp/tmux-1000/libtmux_test8sorutj1'.
+      "test_new_session_width_height"
+      # Assertion error
+      "test_capture_pane_start"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # tests/test_pane.py:113: AssertionError
+      "test_capture_pane_start"
+    ];
 
   disabledTestPaths = lib.optionals stdenv.isDarwin [
     "tests/test_test.py"
-    "tests/legacy_api/test_test.py"
   ];
 
-  pythonImportsCheck = [
-    "libtmux"
-  ];
+  pythonImportsCheck = [ "libtmux" ];
 
   meta = with lib; {
     description = "Typed scripting library / ORM / API wrapper for tmux";
diff --git a/pkgs/development/python-modules/libusb1/default.nix b/pkgs/development/python-modules/libusb1/default.nix
index b61b78a86321a..0304dd09677e1 100644
--- a/pkgs/development/python-modules/libusb1/default.nix
+++ b/pkgs/development/python-modules/libusb1/default.nix
@@ -1,4 +1,11 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, libusb1, pytestCheckHook }:
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  libusb1,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "libusb1";
@@ -20,14 +27,15 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "usb1/testUSB1.py"
-  ];
+  pytestFlagsArray = [ "usb1/testUSB1.py" ];
 
   meta = with lib; {
-    homepage    = "https://github.com/vpelletier/python-libusb1";
+    homepage = "https://github.com/vpelletier/python-libusb1";
     description = "Python ctype-based wrapper around libusb1";
-    license     = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ prusnak rnhmjoj ];
+    license = licenses.lgpl2Plus;
+    maintainers = with maintainers; [
+      prusnak
+      rnhmjoj
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/libusbsio/default.nix b/pkgs/development/python-modules/libusbsio/default.nix
index 918bb71726665..7e60f9ab22897 100644
--- a/pkgs/development/python-modules/libusbsio/default.nix
+++ b/pkgs/development/python-modules/libusbsio/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, libusbsio }:
+{
+  lib,
+  buildPythonPackage,
+  libusbsio,
+}:
 
 buildPythonPackage rec {
   pname = "libusbsio";
@@ -30,6 +34,9 @@ buildPythonPackage rec {
     description = "NXP Secure Provisioning SDK";
     homepage = "https://github.com/NXPmicro/spsdk";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ frogamic sbruder ];
+    maintainers = with maintainers; [
+      frogamic
+      sbruder
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/libversion/default.nix b/pkgs/development/python-modules/libversion/default.nix
index dfebeaad538c8..b311d6888d6c2 100644
--- a/pkgs/development/python-modules/libversion/default.nix
+++ b/pkgs/development/python-modules/libversion/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, libversion
-, pkg-config
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  libversion,
+  pkg-config,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,26 +27,18 @@ buildPythonPackage rec {
       --replace "'pkg-config'" "'$(command -v $PKG_CONFIG)'"
   '';
 
-  nativeBuildInputs = [
-    pkg-config
-  ];
+  nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [
-    libversion
-  ];
+  buildInputs = [ libversion ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     # import from $out
     rm -r libversion
   '';
 
-  pythonImportsCheck = [
-    "libversion"
-  ];
+  pythonImportsCheck = [ "libversion" ];
 
   meta = with lib; {
     description = "Python bindings for libversion, which provides fast, powerful and correct generic version string comparison algorithm";
diff --git a/pkgs/development/python-modules/libvirt/default.nix b/pkgs/development/python-modules/libvirt/default.nix
index e10f7c056c6b8..f424240f91ea1 100644
--- a/pkgs/development/python-modules/libvirt/default.nix
+++ b/pkgs/development/python-modules/libvirt/default.nix
@@ -1,9 +1,18 @@
-{ lib, buildPythonPackage, fetchFromGitLab, pkg-config, lxml, libvirt, nose }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitLab,
+  setuptools,
+  pkg-config,
+  lxml,
+  libvirt,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "libvirt";
   version = "10.0.0";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitLab {
     owner = "libvirt";
@@ -12,13 +21,17 @@ buildPythonPackage rec {
     hash = "sha256-zl1Hfm7flRflNjIpLoLAlPDysYlieC05HEd/mzFW8pU=";
   };
 
+  build-system = [ setuptools ];
+
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ libvirt lxml ];
+  buildInputs = [
+    libvirt
+    lxml
+  ];
+
+  pythonImportsCheck = [ "libvirt" ];
 
-  nativeCheckInputs = [ nose ];
-  checkPhase = ''
-    nosetests
-  '';
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     homepage = "https://libvirt.org/python.html";
diff --git a/pkgs/development/python-modules/liccheck/default.nix b/pkgs/development/python-modules/liccheck/default.nix
index fc2f1945888cb..62d5b428c71c9 100644
--- a/pkgs/development/python-modules/liccheck/default.nix
+++ b/pkgs/development/python-modules/liccheck/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, configparser
-, fetchFromGitHub
-, pip
-, pytest-mock
-, pytestCheckHook
-, python3-openid
-, pythonOlder
-, semantic-version
-, toml
+{
+  lib,
+  buildPythonPackage,
+  configparser,
+  fetchFromGitHub,
+  pip,
+  pytest-mock,
+  pytestCheckHook,
+  python3-openid,
+  pythonOlder,
+  semantic-version,
+  toml,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
     python3-openid
   ];
 
-  pythonImportsCheck = [
-    "liccheck"
-  ];
+  pythonImportsCheck = [ "liccheck" ];
 
   meta = with lib; {
     description = "Check python packages from requirement.txt and report issues";
diff --git a/pkgs/development/python-modules/license-expression/default.nix b/pkgs/development/python-modules/license-expression/default.nix
index a17f4e829cae8..3cf9532d39230 100644
--- a/pkgs/development/python-modules/license-expression/default.nix
+++ b/pkgs/development/python-modules/license-expression/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, boolean-py
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  boolean-py,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -23,21 +24,13 @@ buildPythonPackage rec {
 
   dontConfigure = true;
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    boolean-py
-  ];
+  propagatedBuildInputs = [ boolean-py ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "license_expression"
-  ];
+  pythonImportsCheck = [ "license_expression" ];
 
   meta = with lib; {
     description = "Utility library to parse, normalize and compare License expressions";
diff --git a/pkgs/development/python-modules/life360/default.nix b/pkgs/development/python-modules/life360/default.nix
index a2d958bc1083c..7e001e79b5f5d 100644
--- a/pkgs/development/python-modules/life360/default.nix
+++ b/pkgs/development/python-modules/life360/default.nix
@@ -1,38 +1,38 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "life360";
-  version = "6.0.1";
-  format = "setuptools";
+  version = "7.0.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "pnbruckner";
-    repo = pname;
+    repo = "life360";
     rev = "refs/tags/v${version}";
-    hash = "sha256-USqSkjOHlH0K/RlRYpn/gz6dHW8/uEVpsc4HeUZ3Emg=";
+    hash = "sha256-GkCs479lXcnCvb5guxyc+ZuZdiH4n8uD2VbkC+yijgg=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  build-system = [ setuptools ];
 
-  # Project has no tests
+  dependencies = [ aiohttp ];
+
+  # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "life360"
-  ];
+  pythonImportsCheck = [ "life360" ];
 
   meta = with lib; {
-    description = "Python module to interact with Life360";
+    description = "Module to interact with Life360";
     homepage = "https://github.com/pnbruckner/life360";
     changelog = "https://github.com/pnbruckner/life360/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/lifelines/default.nix b/pkgs/development/python-modules/lifelines/default.nix
index b081bfae9d839..c0d0c8b5c71c5 100644
--- a/pkgs/development/python-modules/lifelines/default.nix
+++ b/pkgs/development/python-modules/lifelines/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, autograd
-, autograd-gamma
-, buildPythonPackage
-, dill
-, fetchFromGitHub
-, flaky
-, formulaic
-, jinja2
-, matplotlib
-, numpy
-, pandas
-, psutil
-, pytestCheckHook
-, pythonOlder
-, scikit-learn
-, scipy
-, sybil
+{
+  lib,
+  autograd,
+  autograd-gamma,
+  buildPythonPackage,
+  dill,
+  fetchFromGitHub,
+  flaky,
+  formulaic,
+  jinja2,
+  matplotlib,
+  numpy,
+  pandas,
+  psutil,
+  pytestCheckHook,
+  pythonOlder,
+  scikit-learn,
+  scipy,
+  sybil,
 }:
 
 buildPythonPackage rec {
@@ -52,17 +53,11 @@ buildPythonPackage rec {
     sybil
   ];
 
-  pythonImportsCheck = [
-    "lifelines"
-  ];
+  pythonImportsCheck = [ "lifelines" ];
 
-  disabledTestPaths = [
-    "lifelines/tests/test_estimation.py"
-  ];
+  disabledTestPaths = [ "lifelines/tests/test_estimation.py" ];
 
-  disabledTests = [
-    "test_datetimes_to_durations_with_different_frequencies"
-  ];
+  disabledTests = [ "test_datetimes_to_durations_with_different_frequencies" ];
 
   meta = with lib; {
     description = "Survival analysis in Python";
diff --git a/pkgs/development/python-modules/lightgbm/default.nix b/pkgs/development/python-modules/lightgbm/default.nix
index a87276c15f177..16465624d65ae 100644
--- a/pkgs/development/python-modules/lightgbm/default.nix
+++ b/pkgs/development/python-modules/lightgbm/default.nix
@@ -1,36 +1,37 @@
-{ lib
-, config
-, stdenv
-, buildPythonPackage
-, fetchPypi
-
-# build-system
-, cmake
-, ninja
-, pathspec
-, pyproject-metadata
-, scikit-build-core
-
-# dependencies
-, llvmPackages
-, numpy
-, scipy
-, pythonOlder
-
-# optionals
-, cffi
-, dask
-, pandas
-, pyarrow
-, scikit-learn
-
-# optionals: gpu
-, boost
-, ocl-icd
-, opencl-headers
-, gpuSupport ? stdenv.isLinux && !cudaSupport
-, cudaSupport ? config.cudaSupport
-, cudaPackages
+{
+  lib,
+  config,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+
+  # build-system
+  cmake,
+  ninja,
+  pathspec,
+  pyproject-metadata,
+  scikit-build-core,
+
+  # dependencies
+  llvmPackages,
+  numpy,
+  scipy,
+  pythonOlder,
+
+  # optionals
+  cffi,
+  dask,
+  pandas,
+  pyarrow,
+  scikit-learn,
+
+  # optionals: gpu
+  boost,
+  ocl-icd,
+  opencl-headers,
+  gpuSupport ? stdenv.isLinux && !cudaSupport,
+  cudaSupport ? config.cudaSupport,
+  cudaPackages,
 }:
 
 assert gpuSupport -> cudaSupport != true;
@@ -38,14 +39,14 @@ assert cudaSupport -> gpuSupport != true;
 
 buildPythonPackage rec {
   pname = "lightgbm";
-  version = "4.3.0";
+  version = "4.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-AG9XhKm87kPlp+lD3E8C3hui7np68e5fGQ04Pztsnr4=";
+    hash = "sha256-nop2QJEUgRNOYJh9XR4c0Vf0MMO0s43o02/FXDArwpk=";
   };
 
   nativeBuildInputs = [
@@ -54,33 +55,30 @@ buildPythonPackage rec {
     pathspec
     pyproject-metadata
     scikit-build-core
-  ] ++ lib.optionals cudaSupport [
-    cudaPackages.cuda_nvcc
-  ];
+  ] ++ lib.optionals cudaSupport [ cudaPackages.cuda_nvcc ];
 
   dontUseCmakeConfigure = true;
 
-  buildInputs = (lib.optionals stdenv.cc.isClang [
-    llvmPackages.openmp
-  ]) ++ (lib.optionals gpuSupport [
-    boost
-    ocl-icd
-    opencl-headers
-  ]) ++ lib.optionals cudaSupport [
-    cudaPackages.cuda_nvcc
-    cudaPackages.cuda_cudart
-  ];
+  buildInputs =
+    (lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ])
+    ++ (lib.optionals gpuSupport [
+      boost
+      ocl-icd
+      opencl-headers
+    ])
+    ++ lib.optionals cudaSupport [
+      cudaPackages.cuda_nvcc
+      cudaPackages.cuda_cudart
+    ];
 
   propagatedBuildInputs = [
     numpy
     scipy
   ];
 
-  pypaBuildFlags = lib.optionals gpuSupport [
-    "--config-setting=cmake.define.USE_GPU=ON"
-  ] ++ lib.optionals cudaSupport [
-    "--config-setting=cmake.define.USE_CUDA=ON"
-  ];
+  pypaBuildFlags =
+    lib.optionals gpuSupport [ "--config-setting=cmake.define.USE_GPU=ON" ]
+    ++ lib.optionals cudaSupport [ "--config-setting=cmake.define.USE_CUDA=ON" ];
 
   postConfigure = ''
     export HOME=$(mktemp -d)
@@ -91,18 +89,16 @@ buildPythonPackage rec {
       cffi
       pyarrow
     ];
-    dask = [
-      dask
-      pandas
-    ] ++ dask.optional-dependencies.array
+    dask =
+      [
+        dask
+        pandas
+      ]
+      ++ dask.optional-dependencies.array
       ++ dask.optional-dependencies.dataframe
       ++ dask.optional-dependencies.distributed;
-    pandas = [
-      pandas
-    ];
-    scikit-learn = [
-      scikit-learn
-    ];
+    pandas = [ pandas ];
+    scikit-learn = [ scikit-learn ];
   };
 
   # The pypi package doesn't distribute the tests from the GitHub
@@ -110,12 +106,10 @@ buildPythonPackage rec {
   # `make check`.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "lightgbm"
-  ];
+  pythonImportsCheck = [ "lightgbm" ];
 
   meta = {
-    description = "A fast, distributed, high performance gradient boosting (GBDT, GBRT, GBM or MART) framework";
+    description = "Fast, distributed, high performance gradient boosting (GBDT, GBRT, GBM or MART) framework";
     homepage = "https://github.com/Microsoft/LightGBM";
     changelog = "https://github.com/microsoft/LightGBM/releases/tag/v${version}";
     license = lib.licenses.mit;
diff --git a/pkgs/development/python-modules/lightning-utilities/default.nix b/pkgs/development/python-modules/lightning-utilities/default.nix
index 3af06818b8ee8..2d9ff69847724 100644
--- a/pkgs/development/python-modules/lightning-utilities/default.nix
+++ b/pkgs/development/python-modules/lightning-utilities/default.nix
@@ -1,43 +1,41 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
 
-# build
-, setuptools
+  # build
+  setuptools,
 
-# runtime
-, packaging
-, typing-extensions
+  # runtime
+  packaging,
+  typing-extensions,
 
-# tests
-, pytest-timeout
-, pytest7CheckHook
+  # tests
+  pytest-timeout,
+  pytest7CheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "lightning-utilities";
-  version = "0.10.1";
-  format = "pyproject";
+  version = "0.11.2";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Lightning-AI";
     repo = "utilities";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kP7BllA9FR/nMNTxRCxmG6IJYHz/Nxqb1HoF9KxuKl8=";
+    hash = "sha256-IT9aRAUNc2cP2erLr0MglZSVLfDjOxg8PVIIe9AvO0o=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     packaging
     typing-extensions
   ];
 
-  pythonImportsCheck = [
-    "lightning_utilities"
-  ];
+  pythonImportsCheck = [ "lightning_utilities" ];
 
   nativeCheckInputs = [
     pytest-timeout
@@ -53,6 +51,8 @@ buildPythonPackage rec {
     # fails another test
     "lightning_utilities.core.imports.ModuleAvailableCache"
     "lightning_utilities.core.imports.requires"
+    # Failed: DID NOT RAISE <class 'AssertionError'>
+    "test_no_warning_call"
   ];
 
   disabledTestPaths = [
@@ -63,7 +63,8 @@ buildPythonPackage rec {
 
   pytestFlagsArray = [
     # warns about distutils removal in python 3.12
-    "-W" "ignore::DeprecationWarning"
+    "-W"
+    "ignore::DeprecationWarning"
   ];
 
   meta = with lib; {
@@ -71,6 +72,7 @@ buildPythonPackage rec {
     description = "Common Python utilities and GitHub Actions in Lightning Ecosystem";
     homepage = "https://github.com/Lightning-AI/utilities";
     license = licenses.asl20;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ GaetanLepage ];
+    broken = pythonAtLeast "3.12";
   };
 }
diff --git a/pkgs/development/python-modules/lightparam/default.nix b/pkgs/development/python-modules/lightparam/default.nix
index 0d1e232bb195b..635827b456693 100644
--- a/pkgs/development/python-modules/lightparam/default.nix
+++ b/pkgs/development/python-modules/lightparam/default.nix
@@ -1,8 +1,12 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy3k
-, ipython
-, ipywidgets
-, numpy
-, pyqt5
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy3k,
+  ipython,
+  ipywidgets,
+  numpy,
+  pyqt5,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/lightwave/default.nix b/pkgs/development/python-modules/lightwave/default.nix
index 5536483a0d564..621f413ca8859 100644
--- a/pkgs/development/python-modules/lightwave/default.nix
+++ b/pkgs/development/python-modules/lightwave/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-l9hwdAKrpdXj/pkrgyiuhbPaGgT6tjfoOw/TBpR+k1I=";
   };
 
-  pythonImportsCheck = [
-    "lightwave"
-  ];
+  pythonImportsCheck = [ "lightwave" ];
 
   # Requires phyiscal hardware
   doCheck = false;
diff --git a/pkgs/development/python-modules/lightwave2/default.nix b/pkgs/development/python-modules/lightwave2/default.nix
index 4d1b01fd68a5e..02ed2c6068634 100644
--- a/pkgs/development/python-modules/lightwave2/default.nix
+++ b/pkgs/development/python-modules/lightwave2/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-umhFqeX16c6o006MU9/9h4EnqcX7v8C5q3XjxYgi+xk=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "lightwave2"
-  ];
+  pythonImportsCheck = [ "lightwave2" ];
 
   meta = with lib; {
     description = "Library to interact with LightWaveRF 2nd Gen lights and switches";
diff --git a/pkgs/development/python-modules/lima/default.nix b/pkgs/development/python-modules/lima/default.nix
index 462c104c25f24..76a47923b7795 100644
--- a/pkgs/development/python-modules/lima/default.nix
+++ b/pkgs/development/python-modules/lima/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "lima";
@@ -14,7 +20,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "Lightweight Marshalling of Python 3 Objects.";
+    description = "Lightweight Marshalling of Python 3 Objects";
     homepage = "https://github.com/b6d/lima";
     license = licenses.mit;
     maintainers = with maintainers; [ zhaofengli ];
diff --git a/pkgs/development/python-modules/lime/default.nix b/pkgs/development/python-modules/lime/default.nix
index a3296f09c52c9..39055c341f6fe 100644
--- a/pkgs/development/python-modules/lime/default.nix
+++ b/pkgs/development/python-modules/lime/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-
-, matplotlib
-, numpy
-, scipy
-, tqdm
-, scikit-learn
-, scikit-image
-
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+
+  matplotlib,
+  numpy,
+  scipy,
+  tqdm,
+  scikit-learn,
+  scikit-image,
+
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-dpYOTwVf61Pom1AiODuvyHtj8lusYmWYSwozPRpX94E=";
   };
 
-  propagatedBuildInputs =  [
+  propagatedBuildInputs = [
     matplotlib
     numpy
     scipy
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     scikit-image
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # touches network
diff --git a/pkgs/development/python-modules/limiter/default.nix b/pkgs/development/python-modules/limiter/default.nix
index f550651c104d6..4da1afdb4f881 100644
--- a/pkgs/development/python-modules/limiter/default.nix
+++ b/pkgs/development/python-modules/limiter/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, strenum
-, token-bucket
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  strenum,
+  token-bucket,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "limiter"
-  ];
+  pythonImportsCheck = [ "limiter" ];
 
   meta = with lib; {
     description = "Python rate-limiting, thread-safe and asynchronous decorators and context managers";
diff --git a/pkgs/development/python-modules/limitlessled/default.nix b/pkgs/development/python-modules/limitlessled/default.nix
index 79a8c1136ce5a..ff2d2dbc87b92 100644
--- a/pkgs/development/python-modules/limitlessled/default.nix
+++ b/pkgs/development/python-modules/limitlessled/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "limitlessled";
diff --git a/pkgs/development/python-modules/limits/default.nix b/pkgs/development/python-modules/limits/default.nix
index 9849541282f89..9edaed6ee6bf3 100644
--- a/pkgs/development/python-modules/limits/default.nix
+++ b/pkgs/development/python-modules/limits/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, aetcd
-, buildPythonPackage
-, coredis
-, deprecated
-, etcd3
-, fetchFromGitHub
-, hiro
-, importlib-resources
-, motor
-, packaging
-, pymemcache
-, pymongo
-, pytest-asyncio
-, pytest-lazy-fixture
-, pytestCheckHook
-, pythonOlder
-, redis
-, setuptools
-, typing-extensions
+{
+  lib,
+  aetcd,
+  buildPythonPackage,
+  coredis,
+  deprecated,
+  etcd3,
+  fetchFromGitHub,
+  hiro,
+  importlib-resources,
+  motor,
+  packaging,
+  pymemcache,
+  pymongo,
+  pytest-asyncio,
+  pytest-lazy-fixture,
+  pytestCheckHook,
+  pythonOlder,
+  redis,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "limits";
-  version = "3.10.1";
+  version = "3.12.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -37,7 +38,7 @@ buildPythonPackage rec {
     postFetch = ''
       rm "$out/limits/_version.py"
     '';
-    hash = "sha256-Ax0P9rYTPOrhtOw7FLElSNTGQ3WWCboM3FodTOGZWu8=";
+    hash = "sha256-EH2/75tcKuS11XKuo4lCQrFe4/XJZpcWhuGlSuhIk18=";
   };
 
   postPatch = ''
@@ -52,9 +53,7 @@ buildPythonPackage rec {
     echo 'def get_versions(): return {"version": "${version}"}' > limits/_version.py
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     deprecated
@@ -64,45 +63,29 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    redis = [
-      redis
-    ];
-    rediscluster = [
-      redis
-    ];
-    memcached = [
-      pymemcache
-    ];
-    mongodb = [
-      pymongo
-    ];
-    etcd = [
-      etcd3
-    ];
-    async-redis = [
-      coredis
-    ];
+    redis = [ redis ];
+    rediscluster = [ redis ];
+    memcached = [ pymemcache ];
+    mongodb = [ pymongo ];
+    etcd = [ etcd3 ];
+    async-redis = [ coredis ];
     # async-memcached = [
     #   emcache  # Missing module
     # ];
-    async-mongodb = [
-      motor
-    ];
-    async-etcd = [
-      aetcd
-    ];
+    async-mongodb = [ motor ];
+    async-etcd = [ aetcd ];
   };
 
+  doCheck = pythonOlder "3.12"; # SystemError in protobuf
+
   nativeCheckInputs = [
     hiro
     pytest-asyncio
     pytest-lazy-fixture
     pytestCheckHook
-  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "limits"
-  ];
+  pythonImportsCheck = [ "limits" ];
 
   pytestFlagsArray = [
     # All other tests require a running Docker instance
diff --git a/pkgs/development/python-modules/limnoria/default.nix b/pkgs/development/python-modules/limnoria/default.nix
index b791095ed68d2..f8384033690fa 100644
--- a/pkgs/development/python-modules/limnoria/default.nix
+++ b/pkgs/development/python-modules/limnoria/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, buildPythonPackage
-, chardet
-, cryptography
-, feedparser
-, fetchPypi
-, mock
-, pysocks
-, pytestCheckHook
-, python-dateutil
-, python-gnupg
-, pythonOlder
-, pytz
+{
+  lib,
+  buildPythonPackage,
+  chardet,
+  cryptography,
+  feedparser,
+  fetchPypi,
+  mock,
+  pysocks,
+  pytestCheckHook,
+  python-dateutil,
+  python-gnupg,
+  pythonOlder,
+  pytz,
 }:
 
 buildPythonPackage rec {
   pname = "limnoria";
-  version = "2023.11.18";
+  version = "2024.5.30";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Ftm5OGTt1emQsYso3hAUA9yMNBkIK5jybdFaRKJJk0o=";
+    hash = "sha256-uKJMeC1dXhQp1CGbtdnqmELFO64VWblhABGfpKHGCZQ=";
   };
 
   propagatedBuildInputs = [
@@ -33,13 +34,9 @@ buildPythonPackage rec {
     pysocks
     python-dateutil
     python-gnupg
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    pytz
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ pytz ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace setup.py \
@@ -59,7 +56,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A modified version of Supybot, an IRC bot";
+    description = "Modified version of Supybot, an IRC bot";
     homepage = "https://github.com/ProgVal/Limnoria";
     license = licenses.bsd3;
     maintainers = with maintainers; [ goibhniu ];
diff --git a/pkgs/development/python-modules/line-profiler/default.nix b/pkgs/development/python-modules/line-profiler/default.nix
index 73fa920139de6..0873eff17d0fa 100644
--- a/pkgs/development/python-modules/line-profiler/default.nix
+++ b/pkgs/development/python-modules/line-profiler/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cython
-, isPyPy
-, ipython
-, scikit-build
-, cmake
-, pythonOlder
-, pytestCheckHook
-, ubelt
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cython,
+  isPyPy,
+  ipython,
+  scikit-build,
+  cmake,
+  pythonOlder,
+  pytestCheckHook,
+  ubelt,
 }:
 
 buildPythonPackage rec {
   pname = "line-profiler";
-  version = "4.1.2";
+  version = "4.1.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.6" || isPyPy;
@@ -21,7 +22,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "line_profiler";
     inherit version;
-    hash = "sha256-qlZXiw/1p1b+GAs/2nvWfCe71Hiz0BJGEtjPAOSiHfI=";
+    hash = "sha256-5fESPDZywyGLoGPCO9ZKURWeRGSf7WeAuZPHgfte0xg=";
   };
 
   nativeBuildInputs = [
@@ -50,9 +51,7 @@ buildPythonPackage rec {
     export PATH=$out/bin:$PATH
   '';
 
-  pythonImportsCheck = [
-    "line_profiler"
-  ];
+  pythonImportsCheck = [ "line_profiler" ];
 
   meta = with lib; {
     description = "Line-by-line profiler";
diff --git a/pkgs/development/python-modules/linear-garage-door/default.nix b/pkgs/development/python-modules/linear-garage-door/default.nix
index b57f8b0e47afd..d3a0e21faa000 100644
--- a/pkgs/development/python-modules/linear-garage-door/default.nix
+++ b/pkgs/development/python-modules/linear-garage-door/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, dnspython
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
-, tenacity
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  dnspython,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
+  tenacity,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
       -e "/--no-cov/d"
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -41,9 +40,7 @@ buildPythonPackage rec {
   # Module doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "linear_garage_door"
-  ];
+  pythonImportsCheck = [ "linear_garage_door" ];
 
   meta = with lib; {
     description = "Control Linear Garage Doors with Python";
diff --git a/pkgs/development/python-modules/linear-operator/default.nix b/pkgs/development/python-modules/linear-operator/default.nix
index 8ebe174d199be..ab402c37aa79b 100644
--- a/pkgs/development/python-modules/linear-operator/default.nix
+++ b/pkgs/development/python-modules/linear-operator/default.nix
@@ -1,15 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, jaxtyping
-, pytestCheckHook
-, pythonRelaxDepsHook
-, scipy
-, setuptools
-, setuptools-scm
-, torch
-, typeguard
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jaxtyping,
+  pytestCheckHook,
+  scipy,
+  setuptools,
+  setuptools-scm,
+  torch,
+  typeguard,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -25,7 +25,6 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
     setuptools-scm
     wheel
@@ -38,15 +37,11 @@ buildPythonPackage rec {
     typeguard
   ];
 
-  pythonRelaxDeps = [
-    "typeguard"
-  ];
+  pythonRelaxDeps = [ "typeguard" ];
 
   pythonImportsCheck = [ "linear_operator" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # flaky numerical tests
@@ -55,7 +50,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A LinearOperator implementation to wrap the numerical nuts and bolts of GPyTorch";
+    description = "LinearOperator implementation to wrap the numerical nuts and bolts of GPyTorch";
     homepage = "https://github.com/cornellius-gp/linear_operator/";
     license = licenses.mit;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/development/python-modules/linecache2/default.nix b/pkgs/development/python-modules/linecache2/default.nix
index 1c4b2032f0d1b..2d183c3ef6904 100644
--- a/pkgs/development/python-modules/linecache2/default.nix
+++ b/pkgs/development/python-modules/linecache2/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pbr
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pbr,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A backport of linecache to older supported Pythons";
+    description = "Backport of linecache to older supported Pythons";
     homepage = "https://github.com/testing-cabal/linecache2";
     license = licenses.psfl;
   };
diff --git a/pkgs/development/python-modules/lineedit/default.nix b/pkgs/development/python-modules/lineedit/default.nix
index 9f7bc9f2e371f..51f5e5a834071 100644
--- a/pkgs/development/python-modules/lineedit/default.nix
+++ b/pkgs/development/python-modules/lineedit/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pygments
-, six
-, wcwidth
-, pytestCheckHook
-, pyte
-, ptyprocess
-, pexpect
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pygments,
+  six,
+  wcwidth,
+  pytestCheckHook,
+  pyte,
+  ptyprocess,
+  pexpect,
 }:
 
 buildPythonPackage rec {
@@ -38,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "lineedit" ];
 
   meta = with lib; {
-    description = "A readline library based on prompt_toolkit which supports multiple modes";
+    description = "Readline library based on prompt_toolkit which supports multiple modes";
     homepage = "https://github.com/randy3k/lineedit";
     license = licenses.mit;
     maintainers = with maintainers; [ savyajha ];
diff --git a/pkgs/development/python-modules/linetable/default.nix b/pkgs/development/python-modules/linetable/default.nix
index 6c1cde30e6f09..bd9c16783fc05 100644
--- a/pkgs/development/python-modules/linetable/default.nix
+++ b/pkgs/development/python-modules/linetable/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-nVZVxK6uB5TP0pReaEya3/lFXFkiqpnnaWqYzxzO6bM=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "linetable"
-  ];
+  pythonImportsCheck = [ "linetable" ];
 
   meta = with lib; {
     description = "Library to parse and generate co_linetable attributes in Python code objects";
diff --git a/pkgs/development/python-modules/lingua/default.nix b/pkgs/development/python-modules/lingua/default.nix
index 7b1f6ba720057..d3cae940f1219 100644
--- a/pkgs/development/python-modules/lingua/default.nix
+++ b/pkgs/development/python-modules/lingua/default.nix
@@ -1,9 +1,11 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, flit-core
-, polib
-, click }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  flit-core,
+  polib,
+  click,
+}:
 
 buildPythonPackage rec {
   pname = "lingua";
@@ -20,9 +22,7 @@ buildPythonPackage rec {
       --replace-fail SafeConfigParser ConfigParser
   '';
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     click
diff --git a/pkgs/development/python-modules/lingva/default.nix b/pkgs/development/python-modules/lingva/default.nix
index 95bd168c39d01..153284d88125f 100644
--- a/pkgs/development/python-modules/lingva/default.nix
+++ b/pkgs/development/python-modules/lingva/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "lingva";
-  version = "5.0.2";
+  version = "5.0.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "vacanza";
     repo = "lingva";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kr64L/DtEWZu9z2p90QJHnb/6LygwZgxE+rARbo0NYI=";
+    hash = "sha256-usJyEbHtwhsc0ulG9+7zJ/kDUFrxfqykZLOAWwzP+Dw=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/linien-client/default.nix b/pkgs/development/python-modules/linien-client/default.nix
index 8997c3454a387..631413a4e9cb5 100644
--- a/pkgs/development/python-modules/linien-client/default.nix
+++ b/pkgs/development/python-modules/linien-client/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, linien-common
-, setuptools
-, fabric
-, typing-extensions
-, numpy
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  linien-common,
+  setuptools,
+  fabric,
+  typing-extensions,
+  numpy,
+  scipy,
 }:
 
 buildPythonPackage rec {
@@ -36,6 +37,9 @@ buildPythonPackage rec {
     description = "Client components of the Linien spectroscopy lock application";
     homepage = "https://github.com/linien-org/linien/tree/develop/linien-client";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ fsagbuya doronbehar ];
+    maintainers = with maintainers; [
+      fsagbuya
+      doronbehar
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/linien-common/default.nix b/pkgs/development/python-modules/linien-common/default.nix
index 88da8560db467..513c4c11df204 100644
--- a/pkgs/development/python-modules/linien-common/default.nix
+++ b/pkgs/development/python-modules/linien-common/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, importlib-metadata
-, numpy
-, rpyc4
-, scipy
-, appdirs
-, callPackage
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  importlib-metadata,
+  numpy,
+  rpyc4,
+  scipy,
+  appdirs,
+  callPackage,
 }:
 
 buildPythonPackage rec {
   pname = "linien-common";
-  version = "1.0.2";
+  version = "2.0.4";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "linien-org";
     repo = "linien";
     rev = "refs/tags/v${version}";
-    hash = "sha256-V6oo0a4cNlvn4pIwzchvCTOu7qtUGS+Pc0qpbEsvGZo=";
+    hash = "sha256-TCQ1jLZpeQlG/ZyWY0qrHceMJ1TH7AYO7toYc74ZWq4=";
   };
 
   sourceRoot = "${src.name}/linien-common";
@@ -48,6 +49,9 @@ buildPythonPackage rec {
     description = "Shared components of the Linien spectroscopy lock application";
     homepage = "https://github.com/linien-org/linien/tree/develop/linien-common";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ fsagbuya doronbehar ];
+    maintainers = with maintainers; [
+      fsagbuya
+      doronbehar
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/linien-common/tests.nix b/pkgs/development/python-modules/linien-common/tests.nix
index 7237548f2da36..b070abf40e0d8 100644
--- a/pkgs/development/python-modules/linien-common/tests.nix
+++ b/pkgs/development/python-modules/linien-common/tests.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, linien-common
-, linien-client
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  linien-common,
+  linien-client,
+  pytestCheckHook,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/linkify-it-py/default.nix b/pkgs/development/python-modules/linkify-it-py/default.nix
index f539303a59332..856d30a024ab9 100644
--- a/pkgs/development/python-modules/linkify-it-py/default.nix
+++ b/pkgs/development/python-modules/linkify-it-py/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, uc-micro-py
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  uc-micro-py,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-BLwIityUZDVdSbvTpLf6QUlZUavWzG/45Nfffn18/vU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    uc-micro-py
-  ];
+  propagatedBuildInputs = [ uc-micro-py ];
 
-  pythonImportsCheck = [
-    "linkify_it"
-  ];
+  pythonImportsCheck = [ "linkify_it" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Links recognition library with full unicode support";
diff --git a/pkgs/development/python-modules/linknlink/default.nix b/pkgs/development/python-modules/linknlink/default.nix
index ea158b5cb2a1a..2fd6c15d6b00d 100644
--- a/pkgs/development/python-modules/linknlink/default.nix
+++ b/pkgs/development/python-modules/linknlink/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "linknlink";
-  version = "0.2.2";
+  version = "0.2.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "xuanxuan000";
     repo = "python-linknlink";
     rev = "refs/tags/${version}";
-    hash = "sha256-G0URNUHIh/td+A8MhIC0mePx2SmhEXhIzOpbVft33+w=";
+    hash = "sha256-ObPEcdDHi+SPFjuVKBtu7/5/IgHcam+IWblxxS3+mmI=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/linode-api/default.nix b/pkgs/development/python-modules/linode-api/default.nix
index 1e94825cedc50..816c72e5f288c 100644
--- a/pkgs/development/python-modules/linode-api/default.nix
+++ b/pkgs/development/python-modules/linode-api/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, requests
-, pytestCheckHook
-, mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  requests,
+  pytestCheckHook,
+  mock,
 }:
 
 buildPythonPackage rec {
   pname = "linode-api";
-  version = "5.13.1";
+  version = "5.16.0";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -20,16 +21,12 @@ buildPythonPackage rec {
     owner = "linode";
     repo = "python-linode-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-WB4CurdokRKh1eD6FZR2SeMpa3Z0BzLb0ldI7SYPEVI=";
+    hash = "sha256-B90BfuAqyncJPIvcni7bthiwSfmeL9CqeTYT1/y5TNY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     mock
diff --git a/pkgs/development/python-modules/linode/default.nix b/pkgs/development/python-modules/linode/default.nix
index 7f4d9b0dbd838..07143b4c30f80 100644
--- a/pkgs/development/python-modules/linode/default.nix
+++ b/pkgs/development/python-modules/linode/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/ghickman/linode";
-    description = "A thin python wrapper around Linode's API";
+    description = "Thin python wrapper around Linode's API";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/linuxfd/default.nix b/pkgs/development/python-modules/linuxfd/default.nix
index e9904d8d454eb..793059dbe5406 100644
--- a/pkgs/development/python-modules/linuxfd/default.nix
+++ b/pkgs/development/python-modules/linuxfd/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -8,7 +9,6 @@ buildPythonPackage rec {
   version = "1.5";
   format = "setuptools";
 
-
   src = fetchPypi {
     inherit pname version;
     sha256 = "b8c00109724b68e093f9b556edd78e41ed65fb8d969fd0e83186a97b5d3139b4";
diff --git a/pkgs/development/python-modules/lion-pytorch/default.nix b/pkgs/development/python-modules/lion-pytorch/default.nix
index 3b8552837acf3..4872a41977a6d 100644
--- a/pkgs/development/python-modules/lion-pytorch/default.nix
+++ b/pkgs/development/python-modules/lion-pytorch/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, torch
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  torch,
 }:
 
 buildPythonPackage rec {
   pname = "lion-pytorch";
-  version = "0.1.4";
+  version = "0.2.2";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
@@ -15,13 +16,13 @@ buildPythonPackage rec {
     owner = "lucidrains";
     repo = "lion-pytorch";
     rev = "refs/tags/${version}";
-    hash = "sha256-8LbALBKQ5ACwmLWYUz3GYkkkhhy8emi6n3kgwYdnDSI=";
+    hash = "sha256-hOPTuXdTrTi/Thv3/5IYqkgH+5cFdzyK1Fshus8u5n0=";
   };
 
   propagatedBuildInputs = [ torch ];
 
   pythonImportsCheck = [ "lion_pytorch" ];
-  doCheck = false;  # no tests currently
+  doCheck = false; # no tests currently
 
   meta = with lib; {
     description = "Optimizer tuned by Google Brain using genetic algorithms";
diff --git a/pkgs/development/python-modules/liquidctl/default.nix b/pkgs/development/python-modules/liquidctl/default.nix
index 94a232ef56595..8a19dd65e6e2b 100644
--- a/pkgs/development/python-modules/liquidctl/default.nix
+++ b/pkgs/development/python-modules/liquidctl/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, installShellFiles
-, setuptools
-, setuptools-scm
-, wheel
-, docopt
-, hidapi
-, pyusb
-, smbus-cffi
-, i2c-tools
-, pytestCheckHook
-, colorlog
-, crcmod
-, pillow
-, fetchpatch
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  installShellFiles,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  docopt,
+  hidapi,
+  pyusb,
+  smbus-cffi,
+  i2c-tools,
+  pytestCheckHook,
+  colorlog,
+  crcmod,
+  pillow,
+  fetchpatch,
 }:
 
 buildPythonPackage rec {
@@ -58,9 +59,7 @@ buildPythonPackage rec {
     pillow
   ];
 
-  propagatedNativeBuildInputs = [
-    smbus-cffi
-  ];
+  propagatedNativeBuildInputs = [ smbus-cffi ];
 
   outputs = [
     "out"
@@ -75,25 +74,24 @@ buildPythonPackage rec {
     cp extra/linux/71-liquidctl.rules $out/lib/udev/rules.d/.
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postBuild = ''
     # needed for pythonImportsCheck
     export XDG_RUNTIME_DIR=$TMPDIR
   '';
 
-  pythonImportsCheck = [
-    "liquidctl"
-  ];
+  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";
     changelog = "https://github.com/liquidctl/liquidctl/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ arturcygan evils ];
+    maintainers = with maintainers; [
+      arturcygan
+      evils
+    ];
     mainProgram = "liquidctl";
   };
 }
diff --git a/pkgs/development/python-modules/lit/default.nix b/pkgs/development/python-modules/lit/default.nix
index 9b63a4e883770..6d4aec66c7505 100644
--- a/pkgs/development/python-modules/lit/default.nix
+++ b/pkgs/development/python-modules/lit/default.nix
@@ -1,23 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  python,
 }:
 
 buildPythonPackage rec {
   pname = "lit";
-  version = "17.0.6";
+  version = "18.1.7";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-36mvm1X8RQmla+e/I0bwedf0okLVg7ny4LB4/Qq64xs=";
+    hash = "sha256-Ld2b4mvcxtoDrqPsRWxpRetaCdveVI01AL/5uO1HY7s=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   passthru = {
     inherit python;
diff --git a/pkgs/development/python-modules/litellm/default.nix b/pkgs/development/python-modules/litellm/default.nix
index 25c8068a199a0..253b53a00788e 100644
--- a/pkgs/development/python-modules/litellm/default.nix
+++ b/pkgs/development/python-modules/litellm/default.nix
@@ -1,39 +1,40 @@
-{ lib
-, aiohttp
-, apscheduler
-, azure-identity
-, azure-keyvault-secrets
-, backoff
-, buildPythonPackage
-, click
-, fastapi
-, fastapi-sso
-, fetchFromGitHub
-, google-cloud-kms
-, gunicorn
-, importlib-metadata
-, jinja2
-, openai
-, orjson
-, poetry-core
-, prisma
-, pyjwt
-, python-dotenv
-, python-multipart
-, pythonOlder
-, pyyaml
-, requests
-, resend
-, rq
-, streamlit
-, tiktoken
-, tokenizers
-, uvicorn
+{
+  lib,
+  aiohttp,
+  apscheduler,
+  azure-identity,
+  azure-keyvault-secrets,
+  backoff,
+  buildPythonPackage,
+  click,
+  fastapi,
+  fastapi-sso,
+  fetchFromGitHub,
+  google-cloud-kms,
+  gunicorn,
+  importlib-metadata,
+  jinja2,
+  openai,
+  orjson,
+  poetry-core,
+  prisma,
+  pyjwt,
+  python-dotenv,
+  python-multipart,
+  pythonOlder,
+  pyyaml,
+  requests,
+  resend,
+  rq,
+  streamlit,
+  tiktoken,
+  tokenizers,
+  uvicorn,
 }:
 
 buildPythonPackage rec {
   pname = "litellm";
-  version = "1.35.32";
+  version = "1.40.16";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -42,16 +43,14 @@ buildPythonPackage rec {
     owner = "BerriAI";
     repo = "litellm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vNmhFd1lm1pfni2ZK0DshBC9cDRiSWhXTUHAPh/oGJc=";
+    hash = "sha256-CK/b0PVBOzfhnTk+iu/buu7BIjAGdz3aXYAGgB4s/pw=";
   };
 
   postPatch = ''
     rm -rf dist
   '';
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     aiohttp
diff --git a/pkgs/development/python-modules/litemapy/default.nix b/pkgs/development/python-modules/litemapy/default.nix
index 6040cb1f47f1b..38a234321e073 100644
--- a/pkgs/development/python-modules/litemapy/default.nix
+++ b/pkgs/development/python-modules/litemapy/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nbtlib
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nbtlib,
 }:
 
 buildPythonPackage rec {
@@ -16,14 +17,12 @@ buildPythonPackage rec {
     hash = "sha256-VfEo/JLeU17bEkvc8oZYfq19RsHl6QvKv0sGZYQjYhE=";
   };
 
-  propagatedBuildInputs = [
-    nbtlib
-  ];
+  propagatedBuildInputs = [ nbtlib ];
 
   pythonImportsCheck = [ "litemapy" ];
 
   meta = with lib; {
-    description = "A Python library to read and edit Litematica's schematic file format";
+    description = "Python library to read and edit Litematica's schematic file format";
     homepage = "https://github.com/SmylerMC/litemapy";
     changelog = "https://github.com/SmylerMC/litemapy/blob/${src.rev}/CHANGELOG.md";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/python-modules/littleutils/default.nix b/pkgs/development/python-modules/littleutils/default.nix
index 538f4dea0a67e..b4c4eb4ac3c22 100644
--- a/pkgs/development/python-modules/littleutils/default.nix
+++ b/pkgs/development/python-modules/littleutils/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "littleutils"
-  ];
+  pythonImportsCheck = [ "littleutils" ];
 
   meta = with lib; {
     description = "Small collection of Python utility functions";
diff --git a/pkgs/development/python-modules/livelossplot/default.nix b/pkgs/development/python-modules/livelossplot/default.nix
index 2218c01d64243..5c213fae0db54 100644
--- a/pkgs/development/python-modules/livelossplot/default.nix
+++ b/pkgs/development/python-modules/livelossplot/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, bokeh
-, ipython
-, matplotlib
-, numpy
-, nbconvert
-, nbformat
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  bokeh,
+  ipython,
+  matplotlib,
+  numpy,
+  nbconvert,
+  nbformat,
 }:
 
 buildPythonPackage rec {
@@ -19,15 +20,24 @@ buildPythonPackage rec {
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
-    owner  = "stared";
-    repo   = pname;
-    rev    = "v${version}";
+    owner = "stared";
+    repo = pname;
+    rev = "v${version}";
     sha256 = "sha256-YU8vX4SubI6txmC/i5fOjcvWfuDFm8+SPmie8Eb1qRs=";
   };
 
-  propagatedBuildInputs = [ bokeh ipython matplotlib numpy ];
+  propagatedBuildInputs = [
+    bokeh
+    ipython
+    matplotlib
+    numpy
+  ];
 
-  nativeCheckInputs = [ nbconvert nbformat pytestCheckHook ];
+  nativeCheckInputs = [
+    nbconvert
+    nbformat
+    pytestCheckHook
+  ];
 
   meta = with lib; {
     description = "Live training loss plot in Jupyter for Keras, PyTorch, and others";
diff --git a/pkgs/development/python-modules/livereload/default.nix b/pkgs/development/python-modules/livereload/default.nix
index 15b9d121862fc..8a592823003aa 100644
--- a/pkgs/development/python-modules/livereload/default.nix
+++ b/pkgs/development/python-modules/livereload/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, django
-, pytestCheckHook
-, tornado
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  django,
+  pytestCheckHook,
+  tornado,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +22,14 @@ buildPythonPackage rec {
 
   buildInputs = [ django ];
 
-  propagatedBuildInputs = [ tornado six ];
+  propagatedBuildInputs = [
+    tornado
+    six
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = [
-    "test_watch_multiple_dirs"
-  ];
+  disabledTests = [ "test_watch_multiple_dirs" ];
 
   meta = {
     description = "Runs a local server that reloads as you develop";
diff --git a/pkgs/development/python-modules/lizard/default.nix b/pkgs/development/python-modules/lizard/default.nix
index 027fcc2a15af1..df6ab5c4b7b31 100644
--- a/pkgs/development/python-modules/lizard/default.nix
+++ b/pkgs/development/python-modules/lizard/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, mock
-, jinja2
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  mock,
+  jinja2,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     "test/test_languages/testFortran.py"
   ];
 
-  pythonImportsCheck = [
-    "lizard"
-  ];
+  pythonImportsCheck = [ "lizard" ];
 
   meta = with lib; {
     changelog = "https://github.com/terryyin/lizard/blob/${version}/CHANGELOG.md";
@@ -46,4 +45,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ jpetrucciani ];
   };
 }
-
diff --git a/pkgs/development/python-modules/llama-index-agent-openai/default.nix b/pkgs/development/python-modules/llama-index-agent-openai/default.nix
index 2fb90a615f46e..6073a4e60427b 100644
--- a/pkgs/development/python-modules/llama-index-agent-openai/default.nix
+++ b/pkgs/development/python-modules/llama-index-agent-openai/default.nix
@@ -6,12 +6,11 @@
   llama-index-llms-openai,
   poetry-core,
   pythonOlder,
-  pythonRelaxDepsHook,
 }:
 
 buildPythonPackage rec {
   pname = "llama-index-agent-openai";
-  version = "0.2.3";
+  version = "0.2.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,14 +18,13 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_agent_openai";
     inherit version;
-    hash = "sha256-yJnZCzIDZlao74bQ8DeNQWjgDrLXWhCQHqtYulsmVqQ=";
+    hash = "sha256-E85TXwPjLIIXY8AeJq9CIvOYEXhiJBTThoAToZRugSQ=";
   };
 
   pythonRelaxDeps = [ "llama-index-llms-openai" ];
 
   build-system = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   dependencies = [
diff --git a/pkgs/development/python-modules/llama-index-core/default.nix b/pkgs/development/python-modules/llama-index-core/default.nix
index 0c76c6f8c471a..729fc0ac0d626 100644
--- a/pkgs/development/python-modules/llama-index-core/default.nix
+++ b/pkgs/development/python-modules/llama-index-core/default.nix
@@ -8,6 +8,7 @@
   fetchFromGitHub,
   fetchzip,
   fsspec,
+  jsonpath-ng,
   llamaindex-py-client,
   nest-asyncio,
   networkx,
@@ -23,10 +24,11 @@
   pythonOlder,
   pyyaml,
   requests,
-  tree-sitter,
+  spacy,
   sqlalchemy,
   tenacity,
   tiktoken,
+  tree-sitter,
   typing-inspect,
 }:
 
@@ -44,7 +46,7 @@ in
 
 buildPythonPackage rec {
   pname = "llama-index-core";
-  version = "0.10.34";
+  version = "0.10.47";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -53,7 +55,7 @@ buildPythonPackage rec {
     owner = "run-llama";
     repo = "llama_index";
     rev = "refs/tags/v${version}";
-    hash = "sha256-KOoTN+ERJZHOer82lLBTWzWW5MIoJaqOmhoa3HYk0fs=";
+    hash = "sha256-Rq7Mz9aN6SHLZ5UzDb2i90j7wP+SlYJa9b14Yu00Cuc=";
   };
 
   sourceRoot = "${src.name}/${pname}";
@@ -80,6 +82,7 @@ buildPythonPackage rec {
     deprecated
     dirtyjson
     fsspec
+    jsonpath-ng
     llamaindex-py-client
     nest-asyncio
     networkx
@@ -90,6 +93,7 @@ buildPythonPackage rec {
     pillow
     pyyaml
     requests
+    spacy
     sqlalchemy
     tenacity
     tiktoken
diff --git a/pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix b/pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix
index 722139cfdedc8..05558eb389421 100644
--- a/pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix
+++ b/pkgs/development/python-modules/llama-index-embeddings-gemini/default.nix
@@ -6,13 +6,12 @@
   llama-index-core,
   poetry-core,
   pytestCheckHook,
-  pythonRelaxDepsHook,
   pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "llama-index-embeddings-gemini";
-  version = "0.1.6";
+  version = "0.1.8";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -20,18 +19,13 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_embeddings_gemini";
     inherit version;
-    hash = "sha256-HYwYA67/7gDxE7ZxQkkyblgwE83gZXuDmUuseXujr5g=";
+    hash = "sha256-rQKyPqZnyVYH2h5TTVV53kYYldGURWARWjYBrBb4d5M=";
   };
 
   pythonRelaxDeps = [ "google-generativeai" ];
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   dependencies = [
     google-generativeai
diff --git a/pkgs/development/python-modules/llama-index-embeddings-google/default.nix b/pkgs/development/python-modules/llama-index-embeddings-google/default.nix
index cebedfe90b629..f848acf1fd42f 100644
--- a/pkgs/development/python-modules/llama-index-embeddings-google/default.nix
+++ b/pkgs/development/python-modules/llama-index-embeddings-google/default.nix
@@ -6,12 +6,11 @@
   llama-index-core,
   poetry-core,
   pythonOlder,
-  pythonRelaxDepsHook,
 }:
 
 buildPythonPackage rec {
   pname = "llama-index-embeddings-google";
-  version = "0.1.5";
+  version = "0.1.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,14 +18,13 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_embeddings_google";
     inherit version;
-    hash = "sha256-mJ+H4klmGlpTGXLErlLNWH5IUpGyXnbAhNsgT5fwCHs=";
+    hash = "sha256-XPqZ+4aZfrTGU4sOLxMElG6kuGVJa8/3uxW+icSHpzQ=";
   };
 
   pythonRelaxDeps = [ "google-generativeai" ];
 
   build-system = [ poetry-core ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     google-generativeai
diff --git a/pkgs/development/python-modules/llama-index-embeddings-huggingface/default.nix b/pkgs/development/python-modules/llama-index-embeddings-huggingface/default.nix
index c30cb3e72e2af..4da4ef2ab654f 100644
--- a/pkgs/development/python-modules/llama-index-embeddings-huggingface/default.nix
+++ b/pkgs/development/python-modules/llama-index-embeddings-huggingface/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, llama-index-core
-, poetry-core
-, pythonOlder
-, sentence-transformers
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  llama-index-core,
+  poetry-core,
+  pythonOlder,
+  sentence-transformers,
 }:
 
 buildPythonPackage rec {
   pname = "llama-index-embeddings-huggingface";
-  version = "0.2.0";
+  version = "0.2.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,12 +18,10 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_embeddings_huggingface";
     inherit version;
-    hash = "sha256-3PCplFXzfE4aL91c1lyd0aRRu4aMP4DDNcTQybadAHE=";
+    hash = "sha256-Q7KXh0DSkpGuTHVmki0rHHVD3JeeJoeUtXjhoq37Qxk=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     llama-index-core
@@ -32,9 +31,7 @@ buildPythonPackage rec {
   # Tests are only available in the mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "llama_index.embeddings.huggingface"
-  ];
+  pythonImportsCheck = [ "llama_index.embeddings.huggingface" ];
 
   meta = with lib; {
     description = "LlamaIndex Embeddings Integration for Huggingface";
diff --git a/pkgs/development/python-modules/llama-index-embeddings-ollama/default.nix b/pkgs/development/python-modules/llama-index-embeddings-ollama/default.nix
index 509bf54d2872a..cd0031854496d 100644
--- a/pkgs/development/python-modules/llama-index-embeddings-ollama/default.nix
+++ b/pkgs/development/python-modules/llama-index-embeddings-ollama/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-generativeai
-, llama-index-core
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-generativeai,
+  llama-index-core,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,20 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-qeCAm93S5K2IjySVGe3H49M5x05OA/xaQMMGDcQdR6k=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    llama-index-core
-  ];
+  dependencies = [ llama-index-core ];
 
   # Tests are only available in the mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "llama_index.embeddings.ollama"
-  ];
+  pythonImportsCheck = [ "llama_index.embeddings.ollama" ];
 
   meta = with lib; {
     description = "LlamaIndex Llms Integration for Ollama";
diff --git a/pkgs/development/python-modules/llama-index-embeddings-openai/default.nix b/pkgs/development/python-modules/llama-index-embeddings-openai/default.nix
index 22b2b9f675789..f6027aee43f84 100644
--- a/pkgs/development/python-modules/llama-index-embeddings-openai/default.nix
+++ b/pkgs/development/python-modules/llama-index-embeddings-openai/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-embeddings-openai";
-  version = "0.1.9";
+  version = "0.1.10";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_embeddings_openai";
     inherit version;
-    hash = "sha256-D9KSsvmgrUU0p5DWN0cmvIhYUxiAh+sBgWfc8jlkOSQ=";
+    hash = "sha256-G8H8m0Z3OhKHDF0wl9NzXXyjOAXxJGKo41ropuXOHPY=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/llama-index-graph-stores-nebula/default.nix b/pkgs/development/python-modules/llama-index-graph-stores-nebula/default.nix
index 783ace83f6560..cd093a05e17cf 100644
--- a/pkgs/development/python-modules/llama-index-graph-stores-nebula/default.nix
+++ b/pkgs/development/python-modules/llama-index-graph-stores-nebula/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, llama-index-core
-, nebula3-python
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  llama-index-core,
+  nebula3-python,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "llama-index-graph-stores-nebula";
-  version = "0.1.2";
+  version = "0.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,21 +18,17 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_graph_stores_nebula";
     inherit version;
-    hash = "sha256-Xb/0ogj2NlGV4MGC9Be54d/JfalT40jtAe6LOPO1u/8=";
+    hash = "sha256-wX/j4wSUp12QlXLy0B0dUB0V7zjDX75NBE9mNWbj0w8=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     llama-index-core
     nebula3-python
   ];
 
-  pythonImportsCheck = [
-    "llama_index.graph_stores.nebula"
-  ];
+  pythonImportsCheck = [ "llama_index.graph_stores.nebula" ];
 
   meta = with lib; {
     description = "LlamaIndex Graph Store Integration for Nebula";
diff --git a/pkgs/development/python-modules/llama-index-graph-stores-neo4j/default.nix b/pkgs/development/python-modules/llama-index-graph-stores-neo4j/default.nix
index bc2664e530123..71b90f73f1964 100644
--- a/pkgs/development/python-modules/llama-index-graph-stores-neo4j/default.nix
+++ b/pkgs/development/python-modules/llama-index-graph-stores-neo4j/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, neo4j
-, llama-index-core
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  neo4j,
+  llama-index-core,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "llama-index-graph-stores-neo4j";
-  version = "0.1.4";
+  version = "0.2.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,21 +18,17 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_graph_stores_neo4j";
     inherit version;
-    hash = "sha256-zr3EAFuLzbQKnGPVE6BsLEtNpnfYhDq9brxWPFtQiG8=";
+    hash = "sha256-K+k3tsELhF6TXVK/voMRYpb0vVkGQpkzYnB9syCLmoY=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     neo4j
     llama-index-core
   ];
 
-  pythonImportsCheck = [
-    "llama_index.graph_stores.neo4j"
-  ];
+  pythonImportsCheck = [ "llama_index.graph_stores.neo4j" ];
 
   meta = with lib; {
     description = "LlamaIndex Graph Store Integration for Neo4j";
diff --git a/pkgs/development/python-modules/llama-index-graph-stores-neptune/default.nix b/pkgs/development/python-modules/llama-index-graph-stores-neptune/default.nix
index 869116b58c6bf..dbc2bd5238b1d 100644
--- a/pkgs/development/python-modules/llama-index-graph-stores-neptune/default.nix
+++ b/pkgs/development/python-modules/llama-index-graph-stores-neptune/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, boto3
-, llama-index-core
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  boto3,
+  llama-index-core,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,18 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-ZveFCJJT7Qal82cuVTs+3AmSuvdc7GsHqqqNvcDb3CY=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     boto3
     llama-index-core
   ];
 
-  pythonImportsCheck = [
-    "llama_index.graph_stores.neptune"
-  ];
+  pythonImportsCheck = [ "llama_index.graph_stores.neptune" ];
 
   meta = with lib; {
     description = "LlamaIndex Graph Store Integration for Neptune";
diff --git a/pkgs/development/python-modules/llama-index-legacy/default.nix b/pkgs/development/python-modules/llama-index-legacy/default.nix
index 120a210d8eeb0..e7c350cdd0a04 100644
--- a/pkgs/development/python-modules/llama-index-legacy/default.nix
+++ b/pkgs/development/python-modules/llama-index-legacy/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, llama-index-core
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  llama-index-core,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-gt3EaR7b9JUz1lWCwkm6IsA/6W+9PpL3dY3M7yjkODQ=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    llama-index-core
-  ];
+  dependencies = [ llama-index-core ];
 
   # Tests are only available in the mono repo
   doCheck = false;
diff --git a/pkgs/development/python-modules/llama-index-llms-ollama/default.nix b/pkgs/development/python-modules/llama-index-llms-ollama/default.nix
index a96b2f57c8037..d8680ab104a19 100644
--- a/pkgs/development/python-modules/llama-index-llms-ollama/default.nix
+++ b/pkgs/development/python-modules/llama-index-llms-ollama/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, llama-index-core
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  llama-index-core,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "llama-index-llms-ollama";
-  version = "0.1.3";
+  version = "0.1.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -16,23 +17,17 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_llms_ollama";
     inherit version;
-    hash = "sha256-x5ZlS3PRA/kyTtTFXHbEm3NzirxuUNAllu1eKxxm3sU=";
+    hash = "sha256-dWl9lshg2H6AzOkMnqQly9I2kYRY4P6q7gNZcGi6mEQ=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    llama-index-core
-  ];
+  dependencies = [ llama-index-core ];
 
   # Tests are only available in the mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "llama_index.llms.ollama"
-  ];
+  pythonImportsCheck = [ "llama_index.llms.ollama" ];
 
   meta = with lib; {
     description = "LlamaIndex LLMS Integration for ollama";
diff --git a/pkgs/development/python-modules/llama-index-llms-openai-like/default.nix b/pkgs/development/python-modules/llama-index-llms-openai-like/default.nix
index ccb32689f5308..4415127ee30c9 100644
--- a/pkgs/development/python-modules/llama-index-llms-openai-like/default.nix
+++ b/pkgs/development/python-modules/llama-index-llms-openai-like/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, llama-index-core
-, llama-index-llms-openai
-, poetry-core
-, pythonOlder
-, transformers
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  llama-index-core,
+  llama-index-llms-openai,
+  poetry-core,
+  pythonOlder,
+  transformers,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-w0EjJQd8dSY+N9YNUBMUub3HcPEtiisW51bn2ayPnj8=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     llama-index-core
@@ -34,9 +33,7 @@ buildPythonPackage rec {
   # Tests are only available in the mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "llama_index.llms.openai_like"
-  ];
+  pythonImportsCheck = [ "llama_index.llms.openai_like" ];
 
   meta = with lib; {
     description = "LlamaIndex LLMS Integration for OpenAI like";
diff --git a/pkgs/development/python-modules/llama-index-llms-openai/default.nix b/pkgs/development/python-modules/llama-index-llms-openai/default.nix
index 288fa1d35c4d9..3c3a3ff12b5c6 100644
--- a/pkgs/development/python-modules/llama-index-llms-openai/default.nix
+++ b/pkgs/development/python-modules/llama-index-llms-openai/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-llms-openai";
-  version = "0.1.16";
+  version = "0.1.22";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_llms_openai";
     inherit version;
-    hash = "sha256-MTu8F8JBmSQwpr9oahse3EJ2yCVq1rBVCqG+oeD+0aY=";
+    hash = "sha256-cpvy6nBDUXRl4dWFCJUSt32LPOkiM6Z8E41dYhBh7VY=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/llama-index-multi-modal-llms-openai/default.nix b/pkgs/development/python-modules/llama-index-multi-modal-llms-openai/default.nix
index 389f2c6fe763f..76fa73298cd4f 100644
--- a/pkgs/development/python-modules/llama-index-multi-modal-llms-openai/default.nix
+++ b/pkgs/development/python-modules/llama-index-multi-modal-llms-openai/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-multi-modal-llms-openai";
-  version = "0.1.5";
+  version = "0.1.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_multi_modal_llms_openai";
     inherit version;
-    hash = "sha256-miN/T4htHiDCfpST6As+H4dThZSB/xtY/iW3qjmxmKI=";
+    hash = "sha256-EN51qHekRK81MGOF+q2bnwYkOR5VMJlwVkEUoICgV4w=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/llama-index-program-openai/default.nix b/pkgs/development/python-modules/llama-index-program-openai/default.nix
index 4f8ca5ae68c99..e542c0f8a4e63 100644
--- a/pkgs/development/python-modules/llama-index-program-openai/default.nix
+++ b/pkgs/development/python-modules/llama-index-program-openai/default.nix
@@ -1,12 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, llama-index-agent-openai
-, llama-index-core
-, llama-index-llms-openai
-, poetry-core
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  llama-index-agent-openai,
+  llama-index-core,
+  llama-index-llms-openai,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,17 +22,10 @@ buildPythonPackage rec {
     hash = "sha256-xqSYDF6oJgiLKLTe4zZ+2yAiHm0F6w4FAZBJGQEx13I=";
   };
 
-  pythonRelaxDeps = [
-    "llama-index-agent-openai"
-  ];
+  pythonRelaxDeps = [ "llama-index-agent-openai" ];
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   dependencies = [
     llama-index-agent-openai
@@ -40,9 +33,7 @@ buildPythonPackage rec {
     llama-index-llms-openai
   ];
 
-  pythonImportsCheck = [
-    "llama_index.program.openai"
-  ];
+  pythonImportsCheck = [ "llama_index.program.openai" ];
 
   meta = with lib; {
     description = "LlamaIndex Program Integration for OpenAI";
diff --git a/pkgs/development/python-modules/llama-index-question-gen-openai/default.nix b/pkgs/development/python-modules/llama-index-question-gen-openai/default.nix
index aa302019772a5..4633a56770ad1 100644
--- a/pkgs/development/python-modules/llama-index-question-gen-openai/default.nix
+++ b/pkgs/development/python-modules/llama-index-question-gen-openai/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, llama-index-core
-, llama-index-llms-openai
-, llama-index-program-openai
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  llama-index-core,
+  llama-index-llms-openai,
+  llama-index-program-openai,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-RIYZgRekVFfS4DauYLk69YBSiTzH14+ptvR91HuB4uE=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     llama-index-core
@@ -34,9 +33,7 @@ buildPythonPackage rec {
   # Tests are only available in the mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "llama_index.question_gen.openai"
-  ];
+  pythonImportsCheck = [ "llama_index.question_gen.openai" ];
 
   meta = with lib; {
     description = "LlamaIndex Question Gen Integration for Openai Generator";
diff --git a/pkgs/development/python-modules/llama-index-readers-database/default.nix b/pkgs/development/python-modules/llama-index-readers-database/default.nix
index 7b01a5738bbb9..b6c36bbabe85b 100644
--- a/pkgs/development/python-modules/llama-index-readers-database/default.nix
+++ b/pkgs/development/python-modules/llama-index-readers-database/default.nix
@@ -1,15 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchPypi
-, llama-index-core
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  llama-index-core,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "llama-index-readers-database";
-  version = "0.1.3";
+  version = "0.1.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,23 +17,17 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_readers_database";
     inherit version;
-    hash = "sha256-1J6FE6iID4U9cEcPPUK5CvCTmbgVWxI4AFLrx+gPGWg=";
+    hash = "sha256-x71+szDNDZNaVc8AMXruKvxSNXg561ibE2+kx53zHfI=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    llama-index-core
-  ];
+  dependencies = [ llama-index-core ];
 
   # Tests are only available in the mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "llama_index.readers.database"
-  ];
+  pythonImportsCheck = [ "llama_index.readers.database" ];
 
   meta = with lib; {
     description = "LlamaIndex Readers Integration for Databases";
diff --git a/pkgs/development/python-modules/llama-index-readers-file/default.nix b/pkgs/development/python-modules/llama-index-readers-file/default.nix
index 999fb90408800..4e96733d29b70 100644
--- a/pkgs/development/python-modules/llama-index-readers-file/default.nix
+++ b/pkgs/development/python-modules/llama-index-readers-file/default.nix
@@ -8,13 +8,12 @@
   pymupdf,
   pypdf,
   pythonOlder,
-  pythonRelaxDepsHook,
   striprtf,
 }:
 
 buildPythonPackage rec {
   pname = "llama-index-readers-file";
-  version = "0.1.19";
+  version = "0.1.25";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,7 +21,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_readers_file";
     inherit version;
-    hash = "sha256-GUwbm4XCZRWbcwLH2ArbqTeqsG8FwXCvf9lcTnqK7DU=";
+    hash = "sha256-I43dmKo3fWpEMiAT64SAVgN8gK2EVx6lv0UaZA//TVw=";
   };
 
   pythonRelaxDeps = [
@@ -32,7 +31,6 @@ buildPythonPackage rec {
 
   build-system = [ poetry-core ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     beautifulsoup4
diff --git a/pkgs/development/python-modules/llama-index-readers-json/default.nix b/pkgs/development/python-modules/llama-index-readers-json/default.nix
index 4b1d670818b68..6ec922a3a2626 100644
--- a/pkgs/development/python-modules/llama-index-readers-json/default.nix
+++ b/pkgs/development/python-modules/llama-index-readers-json/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, llama-index-core
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  llama-index-core,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,20 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-H+CG+2FtoOF/DUG6EuAWzY2xe1upLX0pakVutJTZFE0=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    llama-index-core
-  ];
+  dependencies = [ llama-index-core ];
 
   # Tests are only available in the mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "llama_index.readers.json"
-  ];
+  pythonImportsCheck = [ "llama_index.readers.json" ];
 
   meta = with lib; {
     description = "LlamaIndex Readers Integration for Json";
diff --git a/pkgs/development/python-modules/llama-index-readers-llama-parse/default.nix b/pkgs/development/python-modules/llama-index-readers-llama-parse/default.nix
index e24f0d850a9dc..575c703b795f3 100644
--- a/pkgs/development/python-modules/llama-index-readers-llama-parse/default.nix
+++ b/pkgs/development/python-modules/llama-index-readers-llama-parse/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, llama-index-core
-, llama-parse
-, poetry-core
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  llama-index-core,
+  llama-parse,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +21,10 @@ buildPythonPackage rec {
     hash = "sha256-eGCLGTyBiJSu/u4KowPwK3+A8uTK8Thmwv07CxAj4sA=";
   };
 
-  pythonRelaxDeps = [
-    "llama-parse"
-  ];
+  pythonRelaxDeps = [ "llama-parse" ];
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -38,9 +35,7 @@ buildPythonPackage rec {
   # Tests are only available in the mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "llama_index.readers.llama_parse"
-  ];
+  pythonImportsCheck = [ "llama_index.readers.llama_parse" ];
 
   meta = with lib; {
     description = "LlamaIndex Readers Integration for files";
diff --git a/pkgs/development/python-modules/llama-index-readers-s3/default.nix b/pkgs/development/python-modules/llama-index-readers-s3/default.nix
index b43eb933ff780..893ea6338ee77 100644
--- a/pkgs/development/python-modules/llama-index-readers-s3/default.nix
+++ b/pkgs/development/python-modules/llama-index-readers-s3/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-readers-s3";
-  version = "0.1.7";
+  version = "0.1.8";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_readers_s3";
     inherit version;
-    hash = "sha256-xj7uRsc56Wv/SF4OPo/jc+43PabJ4vaM5HcxhnxTzY8=";
+    hash = "sha256-O8V9b52gcsWm0bfHlNThIvxPox7d+qK4KzvPWT0fkGc=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/llama-index-readers-twitter/default.nix b/pkgs/development/python-modules/llama-index-readers-twitter/default.nix
index 88ffcd410bf94..168e3b6917571 100644
--- a/pkgs/development/python-modules/llama-index-readers-twitter/default.nix
+++ b/pkgs/development/python-modules/llama-index-readers-twitter/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchPypi
-, llama-index-core
-, poetry-core
-, pythonOlder
-, tweepy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  llama-index-core,
+  poetry-core,
+  pythonOlder,
+  tweepy,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-ZPwluiPdSkwMZ3JQy/HHhR7erYhUE9BWtplkfHk+TK8=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     llama-index-core
@@ -33,9 +31,7 @@ buildPythonPackage rec {
   # Tests are only available in the mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "llama_index.readers.twitter"
-  ];
+  pythonImportsCheck = [ "llama_index.readers.twitter" ];
 
   meta = with lib; {
     description = "LlamaIndex Readers Integration for Twitter";
diff --git a/pkgs/development/python-modules/llama-index-readers-txtai/default.nix b/pkgs/development/python-modules/llama-index-readers-txtai/default.nix
index 787026f8fc4b2..0e8e43b4d4d30 100644
--- a/pkgs/development/python-modules/llama-index-readers-txtai/default.nix
+++ b/pkgs/development/python-modules/llama-index-readers-txtai/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, llama-index-core
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  llama-index-core,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,20 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-F1P3/ZICFDTqowpqu0AF2RIKfLTH9Phuw0O+VsHpI4U=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    llama-index-core
-  ];
+  dependencies = [ llama-index-core ];
 
   # Tests are only available in the mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "llama_index.readers.txtai"
-  ];
+  pythonImportsCheck = [ "llama_index.readers.txtai" ];
 
   meta = with lib; {
     description = "LlamaIndex Readers Integration for txtai";
diff --git a/pkgs/development/python-modules/llama-index-readers-weather/default.nix b/pkgs/development/python-modules/llama-index-readers-weather/default.nix
index 1778322d63b49..d3f84bf306f19 100644
--- a/pkgs/development/python-modules/llama-index-readers-weather/default.nix
+++ b/pkgs/development/python-modules/llama-index-readers-weather/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, llama-index-core
-, poetry-core
-, pyowm
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  llama-index-core,
+  poetry-core,
+  pyowm,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,25 +22,19 @@ buildPythonPackage rec {
     hash = "sha256-LJy2nU9f+yZZQm9stNn9mIqOkT5lOHaMIIm1Ezf2D0Q=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     llama-index-core
     pyowm
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Tests are only available in the mono repo
   doCheck = false;
 
-  pythonImportsCheck = [
-    "llama_index.readers.weather"
-  ];
+  pythonImportsCheck = [ "llama_index.readers.weather" ];
 
   meta = with lib; {
     description = "LlamaIndex Readers Integration for Weather";
diff --git a/pkgs/development/python-modules/llama-index-vector-stores-chroma/default.nix b/pkgs/development/python-modules/llama-index-vector-stores-chroma/default.nix
index 73c20444860c5..e08c5bdaedaa6 100644
--- a/pkgs/development/python-modules/llama-index-vector-stores-chroma/default.nix
+++ b/pkgs/development/python-modules/llama-index-vector-stores-chroma/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, chromadb
-, fetchPypi
-, llama-index-core
-, pythonOlder
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  chromadb,
+  fetchPypi,
+  llama-index-core,
+  pythonOlder,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
   pname = "llama-index-vector-stores-chroma";
-  version = "0.1.7";
+  version = "0.1.9";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,21 +18,17 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_vector_stores_chroma";
     inherit version;
-    hash = "sha256-E7DXWubBvMhru31XmNva6iPm2adJKmmt5pFqKZ8fquk=";
+    hash = "sha256-alwnqzriXPUEvtlRPB8DU2XftXa4hv4zTUaQjKJKWc8=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     chromadb
     llama-index-core
   ];
 
-  pythonImportsCheck = [
-    "llama_index.vector_stores.chroma"
-  ];
+  pythonImportsCheck = [ "llama_index.vector_stores.chroma" ];
 
   meta = with lib; {
     description = "LlamaIndex Vector Store Integration for Chroma";
diff --git a/pkgs/development/python-modules/llama-index-vector-stores-google/default.nix b/pkgs/development/python-modules/llama-index-vector-stores-google/default.nix
index 419357ea30b9a..fcf3e0fa9742c 100644
--- a/pkgs/development/python-modules/llama-index-vector-stores-google/default.nix
+++ b/pkgs/development/python-modules/llama-index-vector-stores-google/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, google-generativeai
-, llama-index-core
-, poetry-core
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  google-generativeai,
+  llama-index-core,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +21,10 @@ buildPythonPackage rec {
     hash = "sha256-E6RNf2DzktoZW89P0VKfmeZ5SEslGkyFLRxVtnsQOYc=";
   };
 
-  pythonRelaxDeps = [
-    "google-generativeai"
-  ];
+  pythonRelaxDeps = [ "google-generativeai" ];
 
   build-system = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   dependencies = [
@@ -35,9 +32,7 @@ buildPythonPackage rec {
     llama-index-core
   ];
 
-  pythonImportsCheck = [
-    "llama_index.vector_stores.google"
-  ];
+  pythonImportsCheck = [ "llama_index.vector_stores.google" ];
 
   meta = with lib; {
     description = "LlamaIndex Vector Store Integration for Google";
diff --git a/pkgs/development/python-modules/llama-index-vector-stores-postgres/default.nix b/pkgs/development/python-modules/llama-index-vector-stores-postgres/default.nix
index 15fcab2b3123c..078e7a7b3d597 100644
--- a/pkgs/development/python-modules/llama-index-vector-stores-postgres/default.nix
+++ b/pkgs/development/python-modules/llama-index-vector-stores-postgres/default.nix
@@ -7,13 +7,12 @@
   pgvector,
   poetry-core,
   psycopg2,
-  pythonRelaxDepsHook,
   pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "llama-index-vector-stores-postgres";
-  version = "0.1.7";
+  version = "0.1.11";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,14 +20,13 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_vector_stores_postgres";
     inherit version;
-    hash = "sha256-00ccEfjYY8qrNYymHQ5w43w8zAHUAntO6oiwYUwaOVw=";
+    hash = "sha256-ziP/lUnFJpvcy6Y4h1uSH6qkpYHO+3U+mfg2XIJIeg4=";
   };
 
   pythonRemoveDeps = [ "psycopg2-binary" ];
 
   build-system = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   dependencies = [
diff --git a/pkgs/development/python-modules/llama-index-vector-stores-qdrant/default.nix b/pkgs/development/python-modules/llama-index-vector-stores-qdrant/default.nix
index 0f9459ac2d003..47fbc28659176 100644
--- a/pkgs/development/python-modules/llama-index-vector-stores-qdrant/default.nix
+++ b/pkgs/development/python-modules/llama-index-vector-stores-qdrant/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "llama-index-vector-stores-qdrant";
-  version = "0.2.8";
+  version = "0.2.10";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_index_vector_stores_qdrant";
     inherit version;
-    hash = "sha256-qeKV7jlBTujUEYMcPCS+PAD6xRlTBVi/DGJZ/MSN64A=";
+    hash = "sha256-kFUZiE7rtVQQzaTstKOaM2XkKZQ7ydqVR/2xyPdVtt8=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/llama-index/default.nix b/pkgs/development/python-modules/llama-index/default.nix
index 4e269039722fb..575c61c89f41f 100644
--- a/pkgs/development/python-modules/llama-index/default.nix
+++ b/pkgs/development/python-modules/llama-index/default.nix
@@ -1,32 +1,40 @@
-{ lib
-, buildPythonPackage
-, llama-index-agent-openai
-, llama-index-cli
-, llama-index-core
-, llama-index-embeddings-openai
-, llama-index-indices-managed-llama-cloud
-, llama-index-legacy
-, llama-index-llms-openai
-, llama-index-multi-modal-llms-openai
-, llama-index-program-openai
-, llama-index-question-gen-openai
-, llama-index-readers-file
-, llama-index-readers-llama-parse
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  poetry-core,
+  pythonRelaxDepsHook,
+  llama-index-agent-openai,
+  llama-index-cli,
+  llama-index-core,
+  llama-index-embeddings-openai,
+  llama-index-indices-managed-llama-cloud,
+  llama-index-legacy,
+  llama-index-llms-openai,
+  llama-index-multi-modal-llms-openai,
+  llama-index-program-openai,
+  llama-index-question-gen-openai,
+  llama-index-readers-file,
+  llama-index-readers-llama-parse,
 }:
 
-buildPythonPackage rec {
+buildPythonPackage {
   pname = "llama-index";
 
   inherit (llama-index-core) version src meta;
 
   pyproject = true;
 
+  build-system = [ poetry-core ];
+
   nativeBuildInputs = [
-    poetry-core
+    pythonRelaxDepsHook
+  ];
+
+  pythonRelaxDeps = [
+    "llama-index-core"
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     llama-index-agent-openai
     llama-index-cli
     llama-index-core
@@ -41,7 +49,5 @@ buildPythonPackage rec {
     llama-index-readers-llama-parse
   ];
 
-  pythonImportsCheck = [
-    "llama_index"
-  ];
+  pythonImportsCheck = [ "llama_index" ];
 }
diff --git a/pkgs/development/python-modules/llama-parse/default.nix b/pkgs/development/python-modules/llama-parse/default.nix
index 1f6183df9ae34..147183c046344 100644
--- a/pkgs/development/python-modules/llama-parse/default.nix
+++ b/pkgs/development/python-modules/llama-parse/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, llama-index-core
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  llama-index-core,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "llama-parse";
-  version = "0.4.2";
+  version = "0.4.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -16,20 +17,14 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "llama_parse";
     inherit version;
-    hash = "sha256-+gTAlzCxAhVfZQXenPkZmMhtM0WB8PEll8XrR8pduFk=";
+    hash = "sha256-tFwtszoNa3otX1nj0Ox+5/gieoUuqlawSqErEvLA1SE=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    llama-index-core
-  ];
+  dependencies = [ llama-index-core ];
 
-  pythonImportsCheck = [
-    "llama_parse"
-  ];
+  pythonImportsCheck = [ "llama_parse" ];
 
   meta = with lib; {
     description = "Parse files into RAG-Optimized formats";
diff --git a/pkgs/development/python-modules/llfuse/default.nix b/pkgs/development/python-modules/llfuse/default.nix
index 5e1ce47bdc670..8e7028c944213 100644
--- a/pkgs/development/python-modules/llfuse/default.nix
+++ b/pkgs/development/python-modules/llfuse/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, cython
-, fuse
-, pkg-config
-, pytestCheckHook
-, python
-, setuptools
-, which
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  cython,
+  fuse,
+  pkg-config,
+  pytestCheckHook,
+  python,
+  setuptools,
+  which,
 }:
 
 buildPythonPackage rec {
@@ -27,7 +28,11 @@ buildPythonPackage rec {
     hash = "sha256-6/iW5eHmX6ODVPLFkOo3bN9yW8ixqy2MHwQ2r9FA0iI=";
   };
 
-  nativeBuildInputs = [ cython pkg-config setuptools ];
+  nativeBuildInputs = [
+    cython
+    pkg-config
+    setuptools
+  ];
 
   buildInputs = [ fuse ];
 
@@ -42,7 +47,10 @@ buildPythonPackage rec {
 
   # On Darwin, the test requires macFUSE to be installed outside of Nix.
   doCheck = !stdenv.isDarwin;
-  nativeCheckInputs = [ pytestCheckHook which ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    which
+  ];
 
   disabledTests = [
     "test_listdir" # accesses /usr/bin
@@ -54,6 +62,9 @@ buildPythonPackage rec {
     changelog = "https://github.com/python-llfuse/python-llfuse/raw/release-${version}/Changes.rst";
     license = licenses.lgpl2Plus;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ bjornfor dotlambda ];
+    maintainers = with maintainers; [
+      bjornfor
+      dotlambda
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/llm/default.nix b/pkgs/development/python-modules/llm/default.nix
index 5626da5e3858e..899a95ab3b269 100644
--- a/pkgs/development/python-modules/llm/default.nix
+++ b/pkgs/development/python-modules/llm/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonApplication
-, buildPythonPackage
-, fetchFromGitHub
-, makeWrapper
-, pytestCheckHook
-, python3
-, pythonOlder
-, ruff
-, setuptools
+{
+  lib,
+  buildPythonApplication,
+  buildPythonPackage,
+  fetchFromGitHub,
+  makeWrapper,
+  pytestCheckHook,
+  python3,
+  pythonOlder,
+  ruff,
+  setuptools,
 }:
 let
   llm = buildPythonPackage rec {
     pname = "llm";
-    version = "0.13.1";
+    version = "0.14";
     pyproject = true;
 
     disabled = pythonOlder "3.8";
@@ -21,16 +22,12 @@ let
       owner = "simonw";
       repo = "llm";
       rev = "refs/tags/${version}";
-      hash = "sha256-Nq6pduzl8IK+nA3pctst/W4ux7+P6mBFTEHMF+vtBQw=";
+      hash = "sha256-CgGVFUsntVkF0zORAtYQQMAeGtIwBbj9hE0Ei1OCGq4=";
     };
 
-    patches = [
-      ./001-disable-install-uninstall-commands.patch
-    ];
+    patches = [ ./001-disable-install-uninstall-commands.patch ];
 
-    nativeBuildInputs = [
-      setuptools
-    ];
+    nativeBuildInputs = [ setuptools ];
 
     propagatedBuildInputs = with python3.pkgs; [
       click-default-group
@@ -60,11 +57,11 @@ let
       "tests/"
     ];
 
-    pythonImportsCheck = [
-      "llm"
-    ];
+    pythonImportsCheck = [ "llm" ];
 
-    passthru = {inherit withPlugins;};
+    passthru = {
+      inherit withPlugins;
+    };
 
     meta = with lib; {
       homepage = "https://github.com/simonw/llm";
@@ -72,37 +69,37 @@ let
       changelog = "https://github.com/simonw/llm/releases/tag/${version}";
       license = licenses.asl20;
       mainProgram = "llm";
-      maintainers = with maintainers; [aldoborrero];
+      maintainers = with maintainers; [ aldoborrero ];
     };
   };
 
-  withPlugins = plugins: buildPythonApplication {
-    inherit (llm) pname version;
-    format = "other";
+  withPlugins =
+    plugins:
+    buildPythonApplication {
+      inherit (llm) pname version;
+      format = "other";
 
-    disabled = pythonOlder "3.8";
+      disabled = pythonOlder "3.8";
 
-    dontUnpack = true;
-    dontBuild = true;
-    doCheck = false;
+      dontUnpack = true;
+      dontBuild = true;
+      doCheck = false;
 
-    nativeBuildInputs = [
-      makeWrapper
-    ];
+      nativeBuildInputs = [ makeWrapper ];
 
-    installPhase = ''
-      makeWrapper ${llm}/bin/llm $out/bin/llm \
-        --prefix PYTHONPATH : "${llm}/${python3.sitePackages}:$PYTHONPATH"
-      ln -sfv ${llm}/lib $out/lib
-    '';
+      installPhase = ''
+        makeWrapper ${llm}/bin/llm $out/bin/llm \
+          --prefix PYTHONPATH : "${llm}/${python3.sitePackages}:$PYTHONPATH"
+        ln -sfv ${llm}/lib $out/lib
+      '';
 
-    propagatedBuildInputs = llm.propagatedBuildInputs ++ plugins;
+      propagatedBuildInputs = llm.propagatedBuildInputs ++ plugins;
 
-    passthru = llm.passthru // {
-      withPlugins = morePlugins: withPlugins (morePlugins ++ plugins);
-    };
+      passthru = llm.passthru // {
+        withPlugins = morePlugins: withPlugins (morePlugins ++ plugins);
+      };
 
-    inherit (llm) meta;
-  };
+      inherit (llm) meta;
+    };
 in
-  llm
+llm
diff --git a/pkgs/development/python-modules/llmx/default.nix b/pkgs/development/python-modules/llmx/default.nix
new file mode 100644
index 0000000000000..d5ddcfdaec425
--- /dev/null
+++ b/pkgs/development/python-modules/llmx/default.nix
@@ -0,0 +1,73 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  setuptools,
+  pythonOlder,
+  pydantic,
+  openai,
+  tiktoken,
+  diskcache,
+  cohere,
+  google-auth,
+  typer,
+  pyyaml,
+  transformers,
+  fastapi,
+  uvicorn,
+  accelerate,
+}:
+
+buildPythonPackage rec {
+  pname = "llmx";
+  version = "0.0.21a0";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-OEo6wIaDTktzAsP0rOmhxjFSHygTR/EpcRI6AXsu+6M=";
+  };
+
+  disabled = pythonOlder "3.9";
+
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  dependencies = [
+    pydantic
+    openai
+    tiktoken
+    diskcache
+    cohere
+    google-auth
+    typer
+    pyyaml
+  ];
+
+  passthru.optional-dependencies = {
+    web = [
+      fastapi
+      uvicorn
+    ];
+    transformers = [
+      accelerate
+      transformers
+    ] ++ transformers.optional-dependencies.torch;
+  };
+
+  # Tests of llmx try to access openai, google, etc.
+  doCheck = false;
+
+  pythonImportsCheck = [ "llmx" ];
+
+  meta = with lib; {
+    description = "Library for LLM Text Generation";
+    homepage = "https://github.com/victordibia/llmx";
+    mainProgram = "llmx";
+    license = licenses.mit;
+    maintainers = with maintainers; [ moraxyc ];
+  };
+}
diff --git a/pkgs/development/python-modules/llvmlite/default.nix b/pkgs/development/python-modules/llvmlite/default.nix
index fb4856989564d..2d92814a1835d 100644
--- a/pkgs/development/python-modules/llvmlite/default.nix
+++ b/pkgs/development/python-modules/llvmlite/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, buildPythonPackage
-, isPyPy
-, pythonAtLeast
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  isPyPy,
+  pythonAtLeast,
 
-# build-system
-, llvm
-, setuptools
+  # build-system
+  llvm,
+  setuptools,
 
-# tests
-, python
+  # tests
+  python,
 }:
 
 buildPythonPackage rec {
   pname = "llvmlite";
-  version = "0.42.0";
+  version = "0.43.0";
   pyproject = true;
 
   disabled = isPyPy || pythonAtLeast "3.13";
@@ -24,7 +25,7 @@ buildPythonPackage rec {
     owner = "numba";
     repo = "llvmlite";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vN2npyAyN6C340l69YSRtRJrAe4EHSqh4SCgWfeSQaQ=";
+    hash = "sha256-5QBSRDb28Bui9IOhGofj+c7Rk7J5fNv5nPksEPY/O5o=";
   };
 
   nativeBuildInputs = [
@@ -57,7 +58,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/numba/llvmlite/blob/v${version}/CHANGE_LOG";
-    description = "A lightweight LLVM python binding for writing JIT compilers";
+    description = "Lightweight LLVM python binding for writing JIT compilers";
     downloadPage = "https://github.com/numba/llvmlite";
     homepage = "http://llvmlite.pydata.org/";
     license = licenses.bsd2;
diff --git a/pkgs/development/python-modules/lmcloud/default.nix b/pkgs/development/python-modules/lmcloud/default.nix
index cf98928e32acc..cfb193bcdfe1d 100644
--- a/pkgs/development/python-modules/lmcloud/default.nix
+++ b/pkgs/development/python-modules/lmcloud/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "lmcloud";
-  version = "1.1.10";
+  version = "1.1.13";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -20,8 +20,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "zweckj";
     repo = "lmcloud";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-oPUZ5EAvFhzMfAK5rbiy8O10FTSseWj7JHCZvZ/7PG4=";
+    rev = "refs/tags/v.${version}";
+    hash = "sha256-byZtmyZcvr39hKzamGjSunMeVE2C19QtwF4u78k+YOY=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/lmdb/default.nix b/pkgs/development/python-modules/lmdb/default.nix
index 3f145ed367e6b..fe7a341c1480e 100644
--- a/pkgs/development/python-modules/lmdb/default.nix
+++ b/pkgs/development/python-modules/lmdb/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, cffi
-, lmdb
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  cffi,
+  lmdb,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,22 +20,23 @@ buildPythonPackage rec {
     hash = "sha256-H0x2ryTpB1k0h8kE7166GZO+s47Tha+CrbJahY8tZY0=";
   };
 
-  buildInputs = [
-    lmdb
-  ];
+  buildInputs = [ lmdb ];
 
   nativeCheckInputs = [
     cffi
     pytestCheckHook
   ];
 
-  LMDB_FORCE_SYSTEM=1;
+  LMDB_FORCE_SYSTEM = 1;
 
   meta = with lib; {
     description = "Universal Python binding for the LMDB 'Lightning' Database";
     homepage = "https://github.com/dw/py-lmdb";
     changelog = "https://github.com/jnwatson/py-lmdb/blob/py-lmdb_${version}/ChangeLog";
     license = licenses.openldap;
-    maintainers = with maintainers; [ copumpkin ivan ];
+    maintainers = with maintainers; [
+      copumpkin
+      ivan
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/lmfit/default.nix b/pkgs/development/python-modules/lmfit/default.nix
index 30ccb1cb5c5d4..f62cdc60622dd 100644
--- a/pkgs/development/python-modules/lmfit/default.nix
+++ b/pkgs/development/python-modules/lmfit/default.nix
@@ -1,9 +1,11 @@
-{ lib,
+{
+  lib,
   buildPythonPackage,
   fetchPypi,
   setuptools,
   setuptools-scm,
   asteval,
+  dill,
   numpy,
   scipy,
   uncertainties,
@@ -14,17 +16,17 @@
 
 buildPythonPackage rec {
   pname = "lmfit";
-  version = "1.3.0";
+  version = "1.3.1";
 
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-foI668BSN8qA0z0mDO27peJhkMzsn69ZXmgUOQneDJM=";
+    hash = "sha256-vDhiRK29EO8aKixPnRez3vkFVSwKZK74VPCtRswwnMU=";
   };
 
   postPatch = ''
-    substituteInPlace setup.cfg --replace "--cov=lmfit --cov-report html" ""
+    substituteInPlace pyproject.toml --replace "--cov=lmfit --cov-report html" ""
   '';
 
   nativeBuildInputs = [
@@ -34,6 +36,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     asteval
+    dill
     numpy
     scipy
     uncertainties
@@ -45,13 +48,6 @@ buildPythonPackage rec {
     matplotlib
   ];
 
-  disabledTests = [
-    # https://github.com/lmfit/lmfit-py/issues/878
-    "test_emcee_multiprocessing"
-    "test_explicit_independent_vars"
-    "test_result_eval_custom_x"
-  ];
-
   meta = with lib; {
     description = "Least-Squares Minimization with Bounds and Constraints";
     homepage = "https://lmfit-py.readthedocs.io/";
diff --git a/pkgs/development/python-modules/lml/default.nix b/pkgs/development/python-modules/lml/default.nix
index 4ad69e15a4292..6024da51f2fac 100644
--- a/pkgs/development/python-modules/lml/default.nix
+++ b/pkgs/development/python-modules/lml/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, mock
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  mock,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/lmnotify/default.nix b/pkgs/development/python-modules/lmnotify/default.nix
index bf9d857dc74d2..77876dfb21747 100644
--- a/pkgs/development/python-modules/lmnotify/default.nix
+++ b/pkgs/development/python-modules/lmnotify/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, oauthlib
-, requests
-, requests-oauthlib
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  oauthlib,
+  requests,
+  requests-oauthlib,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "lmnotify"
-  ];
+  pythonImportsCheck = [ "lmnotify" ];
 
   meta = with lib; {
     description = "Python package for sending notifications to LaMetric Time";
diff --git a/pkgs/development/python-modules/lmtpd/default.nix b/pkgs/development/python-modules/lmtpd/default.nix
index 1924c93a3ea99..fce22c244937e 100644
--- a/pkgs/development/python-modules/lmtpd/default.nix
+++ b/pkgs/development/python-modules/lmtpd/default.nix
@@ -1,20 +1,32 @@
-{ buildPythonPackage, fetchPypi, isPy3k, lib }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "lmtpd";
   version = "6.2.0";
-  format = "setuptools";
+  pyproject = true;
 
-  disabled = !isPy3k;
+  # smtpd will be removed in version 3.12
+  disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "2c6825d2ffa1de099440411a742f58e1b3e8deeb3345adcfd4c2c38d4baf62b3";
+    hash = "sha256-LGgl0v+h3gmUQEEadC9Y4bPo3uszRa3P1MLDjUuvYrM=";
   };
 
+  build-system = [ setuptools ];
+
+  pythonImportsCheck = [ "lmtpd" ];
+
   meta = with lib; {
-    homepage = "https://github.com/moggers87/lmtpd";
     description = "LMTP counterpart to smtpd in the Python standard library";
+    homepage = "https://github.com/moggers87/lmtpd";
     license = licenses.mit;
     maintainers = with maintainers; [ jluttine ];
   };
diff --git a/pkgs/development/python-modules/lnkparse3/default.nix b/pkgs/development/python-modules/lnkparse3/default.nix
index 94fd7aaee1905..70d541fe52d81 100644
--- a/pkgs/development/python-modules/lnkparse3/default.nix
+++ b/pkgs/development/python-modules/lnkparse3/default.nix
@@ -1,14 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "lnkparse3";
-  version = "1.4.0";
+  version = "1.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -17,20 +19,16 @@ buildPythonPackage rec {
     owner = "Matmaus";
     repo = "LnkParse3";
     rev = "refs/tags/v${version}";
-    hash = "sha256-aWMkLFbmikdj4mlAPpo0qrxfE8zgRcSV83aiws03XsQ=";
+    hash = "sha256-oyULNRjC0pcVUOeTjjW3g3mB7KySYcwAS+/KwQEIkK4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  dependencies = [ pyyaml ];
 
-  pythonImportsCheck = [
-    "LnkParse3"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "LnkParse3" ];
 
   meta = with lib; {
     description = "Windows Shortcut file (LNK) parser";
diff --git a/pkgs/development/python-modules/loca/default.nix b/pkgs/development/python-modules/loca/default.nix
index 28a9020d74445..73b88dee28e92 100644
--- a/pkgs/development/python-modules/loca/default.nix
+++ b/pkgs/development/python-modules/loca/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, pythonOlder, fetchFromSourcehut, flit-core }:
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromSourcehut,
+  flit-core,
+}:
 
 buildPythonPackage rec {
   pname = "loca";
@@ -13,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "1l6jimw3wd81nz1jrzsfw1zzsdm0jm998xlddcqaq0h38sx69w8g";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   doCheck = false; # all checks are static analyses
   pythonImportsCheck = [ "loca" ];
diff --git a/pkgs/development/python-modules/localimport/default.nix b/pkgs/development/python-modules/localimport/default.nix
index 9cb001af86a2f..3c8e0f07223f8 100644
--- a/pkgs/development/python-modules/localimport/default.nix
+++ b/pkgs/development/python-modules/localimport/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/localstack-client/default.nix b/pkgs/development/python-modules/localstack-client/default.nix
index b78cc3da7633c..7befaa996a418 100644
--- a/pkgs/development/python-modules/localstack-client/default.nix
+++ b/pkgs/development/python-modules/localstack-client/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, boto3
-, pytestCheckHook
-
-# downstream dependencies
-, localstack
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  boto3,
+  pytestCheckHook,
+
+  # downstream dependencies
+  localstack,
 }:
 
 buildPythonPackage rec {
@@ -21,19 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-MBXTiTzCwkduJPPRN7OKaWy2q9J8xCX/GGu09tyac3A=";
   };
 
-  propagatedBuildInputs = [
-    boto3
-  ];
+  propagatedBuildInputs = [ boto3 ];
 
-  pythonImportsCheck = [
-    "localstack_client"
-  ];
+  pythonImportsCheck = [ "localstack_client" ];
 
   # All commands test `localstack` which is a downstream dependency
   doCheck = false;
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Has trouble creating a socket
@@ -48,7 +43,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A lightweight Python client for LocalStack";
+    description = "Lightweight Python client for LocalStack";
     homepage = "https://github.com/localstack/localstack-python-client";
     license = licenses.asl20;
     maintainers = with maintainers; [ jonringer ];
diff --git a/pkgs/development/python-modules/localstack-ext/default.nix b/pkgs/development/python-modules/localstack-ext/default.nix
index 90e743f839e72..93bb57147582a 100644
--- a/pkgs/development/python-modules/localstack-ext/default.nix
+++ b/pkgs/development/python-modules/localstack-ext/default.nix
@@ -1,27 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, dill
-, dnslib
-, dnspython
-, plux
-, pyaes
-, python-jose
-, requests
-, tabulate
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  dill,
+  dnslib,
+  dnspython,
+  plux,
+  pyaes,
+  python-jose,
+  requests,
+  tabulate,
 
-# Sensitive downstream dependencies
-, localstack
+  # Sensitive downstream dependencies
+  localstack,
 }:
 
 buildPythonPackage rec {
   pname = "localstack-ext";
-  version = "2.3.2";
+  version = "3.5.0";
   format = "setuptools";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-Ex5ZPlteDaiyex90QumucVdTTbpp9uWiBrvw1kMr++8=";
+    pname = "localstack_ext";
+    inherit version;
+    hash = "sha256-tJNgNqCzlebbDOOgkScOKaf04bLTVIjP+BaFiDLo/Gs=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/localstack/default.nix b/pkgs/development/python-modules/localstack/default.nix
index 6a408c9359205..a2d4d90a2ce1c 100644
--- a/pkgs/development/python-modules/localstack/default.nix
+++ b/pkgs/development/python-modules/localstack/default.nix
@@ -1,33 +1,34 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, apispec
-, boto3
-, cachetools
-, click
-, localstack-client
-, localstack-ext
-, plux
-, psutil
-, python-dotenv
-, pyyaml
-, packaging
-, requests
-, rich
-, semver
-, tailer
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  apispec,
+  boto3,
+  cachetools,
+  click,
+  localstack-client,
+  localstack-ext,
+  plux,
+  psutil,
+  python-dotenv,
+  pyyaml,
+  packaging,
+  requests,
+  rich,
+  semver,
+  tailer,
 }:
 
 buildPythonPackage rec {
   pname = "localstack";
-  version = "3.0.0";
+  version = "3.5.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "localstack";
     repo = "localstack";
     rev = "refs/tags/v${version}";
-    hash = "sha256-N/Mc1bubCcq38VxUqkO9LGG25pEetEyJ+VJMdg/7hrU=";
+    hash = "sha256-Sd5B4+pvUwNXfP3hsqBkUoHo06YyzUGCUHzc8f77Vx4=";
   };
 
   postPatch = ''
@@ -65,7 +66,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A fully functional local Cloud stack";
+    description = "Fully functional local Cloud stack";
     homepage = "https://github.com/localstack/localstack";
     license = licenses.asl20;
     maintainers = with maintainers; [ jonringer ];
diff --git a/pkgs/development/python-modules/localzone/default.nix b/pkgs/development/python-modules/localzone/default.nix
index 84c5acd276901..3e7d91fe841ff 100644
--- a/pkgs/development/python-modules/localzone/default.nix
+++ b/pkgs/development/python-modules/localzone/default.nix
@@ -1,34 +1,39 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, dnspython
-, sphinx
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  dnspython,
+  pytestCheckHook,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "localzone";
   version = "0.9.8";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "ags-slc";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1cbiv21yryjqy46av9hbjccks95sxznrx8nypd3yzihf1vkjiq5a";
+    repo = "localzone";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-quAo5w4Oxu9Hu96inu3vuiQ9GZMLpq0M8Vj67IPYcbE=";
   };
 
-  propagatedBuildInputs = [ dnspython sphinx ];
+  build-system = [ setuptools ];
+
+  dependencies = [ dnspython ];
 
-  nativeCheckInputs = [ pytest ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  checkPhase = ''
-    pytest
-  '';
+  pythonImportsCheck = [ "localzone" ];
 
   meta = with lib; {
-    description = "A simple DNS library for managing zone files";
+    description = "Simple DNS library for managing zone files";
     homepage = "https://localzone.iomaestro.com";
+    changelog = "https://github.com/ags-slc/localzone/blob/v${version}/CHANGELOG.rst";
     license = licenses.bsd3;
     maintainers = with maintainers; [ flyfloh ];
   };
diff --git a/pkgs/development/python-modules/locationsharinglib/default.nix b/pkgs/development/python-modules/locationsharinglib/default.nix
index 98888e18df690..76f818210e1a0 100644
--- a/pkgs/development/python-modules/locationsharinglib/default.nix
+++ b/pkgs/development/python-modules/locationsharinglib/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, betamax
-, buildPythonPackage
-, cachetools
-, coloredlogs
-, emoji
-, fetchPypi
-, nose
-, pythonOlder
-, pytz
-, requests
+{
+  lib,
+  betamax,
+  buildPythonPackage,
+  cachetools,
+  coloredlogs,
+  emoji,
+  fetchPypi,
+  nose,
+  pythonOlder,
+  pytz,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -52,9 +53,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "locationsharinglib"
-  ];
+  pythonImportsCheck = [ "locationsharinglib" ];
 
   meta = with lib; {
     description = "Python package to retrieve coordinates from a Google account";
diff --git a/pkgs/development/python-modules/locket/default.nix b/pkgs/development/python-modules/locket/default.nix
index e416d8dd82885..5af41f471ca4a 100644
--- a/pkgs/development/python-modules/locket/default.nix
+++ b/pkgs/development/python-modules/locket/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # weird test requirements (spur.local>=0.3.7,<0.4)
   doCheck = false;
 
-  pythonImportsCheck = [
-    "locket"
-  ];
+  pythonImportsCheck = [ "locket" ];
 
   meta = with lib; {
     description = "Library which provides a lock that can be used by multiple processes";
diff --git a/pkgs/development/python-modules/lockfile/default.nix b/pkgs/development/python-modules/lockfile/default.nix
index 0fb64ad0baf9f..deb05ac31daca 100644
--- a/pkgs/development/python-modules/lockfile/default.nix
+++ b/pkgs/development/python-modules/lockfile/default.nix
@@ -1,25 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pbr
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pbr,
+  pynose,
 }:
 
 buildPythonPackage rec {
   pname = "lockfile";
   version = "0.12.2";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "6aed02de03cba24efabcd600b30540140634fc06cfa603822d508d5361e9f799";
   };
 
-  buildInputs = [ pbr ];
-  nativeCheckInputs = [ nose ];
+  build-system = [
+    pbr
+    setuptools
+  ];
+
+  nativeCheckInputs = [ pynose ];
 
   checkPhase = ''
+    runHook preCheck
     nosetests
+    runHook postcheck
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/log-symbols/default.nix b/pkgs/development/python-modules/log-symbols/default.nix
index 819f771b91ee0..d479c450aaf72 100644
--- a/pkgs/development/python-modules/log-symbols/default.nix
+++ b/pkgs/development/python-modules/log-symbols/default.nix
@@ -1,8 +1,10 @@
-{ buildPythonPackage
-, colorama
-, fetchPypi
-, isPy27
-, lib }:
+{
+  buildPythonPackage,
+  colorama,
+  fetchPypi,
+  isPy27,
+  lib,
+}:
 
 buildPythonPackage rec {
   pname = "log_symbols";
@@ -21,7 +23,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "log_symbols" ];
 
   meta = with lib; {
-    description = "Colored Symbols for Various Log Levels.";
+    description = "Colored Symbols for Various Log Levels";
     homepage = "https://github.com/manrajgrover/py-log-symbols";
     license = licenses.mit;
     maintainers = with maintainers; [ urbas ];
diff --git a/pkgs/development/python-modules/logbook/default.nix b/pkgs/development/python-modules/logbook/default.nix
index c58f617b10f86..1d7de41098500 100644
--- a/pkgs/development/python-modules/logbook/default.nix
+++ b/pkgs/development/python-modules/logbook/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, brotli
-, buildPythonPackage
-, cython
-, execnet
-, fetchFromGitHub
-, jinja2
-, pytestCheckHook
-, pythonOlder
-, pyzmq
-, redis
-, setuptools
-, sqlalchemy
+{
+  lib,
+  brotli,
+  buildPythonPackage,
+  cython,
+  execnet,
+  fetchFromGitHub,
+  jinja2,
+  pytestCheckHook,
+  pythonOlder,
+  pyzmq,
+  redis,
+  setuptools,
+  sqlalchemy,
 }:
 
 buildPythonPackage rec {
@@ -33,24 +34,12 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    execnet = [
-      execnet
-    ];
-    sqlalchemy = [
-      sqlalchemy
-    ];
-    redis = [
-      redis
-    ];
-    zmq = [
-      pyzmq
-    ];
-    compression = [
-      brotli
-    ];
-    jinja = [
-      jinja2
-    ];
+    execnet = [ execnet ];
+    sqlalchemy = [ sqlalchemy ];
+    redis = [ redis ];
+    zmq = [ pyzmq ];
+    compression = [ brotli ];
+    jinja = [ jinja2 ];
     all = [
       brotli
       execnet
@@ -68,9 +57,7 @@ buildPythonPackage rec {
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [
-    "logbook"
-  ];
+  pythonImportsCheck = [ "logbook" ];
 
   disabledTests = [
     # Test require Redis instance
@@ -78,7 +65,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A logging replacement for Python";
+    description = "Logging replacement for Python";
     homepage = "https://logbook.readthedocs.io/";
     changelog = "https://github.com/getlogbook/logbook/blob/${version}/CHANGES";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/logfury/default.nix b/pkgs/development/python-modules/logfury/default.nix
index 9909ab4106755..fcd3fd9baa839 100644
--- a/pkgs/development/python-modules/logfury/default.nix
+++ b/pkgs/development/python-modules/logfury/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
-, testfixtures
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
+  testfixtures,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-EwpdrOq5rVNJJCUt33BIKqLJZmKzo4JafTCYHQO3aiY=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -33,9 +32,7 @@ buildPythonPackage rec {
       --replace "'setuptools_scm<6.0'" "'setuptools_scm'"
   '';
 
-  pythonImportsCheck = [
-    "logfury"
-  ];
+  pythonImportsCheck = [ "logfury" ];
 
   meta = with lib; {
     description = "Python module that allows for responsible, low-boilerplate logging of method calls";
diff --git a/pkgs/development/python-modules/logging-journald/default.nix b/pkgs/development/python-modules/logging-journald/default.nix
index 812de51498d14..51ba2cce6ea1b 100644
--- a/pkgs/development/python-modules/logging-journald/default.nix
+++ b/pkgs/development/python-modules/logging-journald/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-RQ9opkAOZfhYuqOXJ2Mtnig8soL+lCveYH2YdXL1AGM=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   # Circular dependency with aiomisc
   doCheck = false;
 
-  pythonImportsCheck = [
-    "logging_journald"
-  ];
+  pythonImportsCheck = [ "logging_journald" ];
 
   meta = with lib; {
     description = "Logging handler for writing logs to the journald";
diff --git a/pkgs/development/python-modules/logi-circle/default.nix b/pkgs/development/python-modules/logi-circle/default.nix
index 51d66dd406722..af73f77aadef1 100644
--- a/pkgs/development/python-modules/logi-circle/default.nix
+++ b/pkgs/development/python-modules/logi-circle/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, aiohttp
-, python-slugify
-, pytz
-, aresponses
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  aiohttp,
+  python-slugify,
+  pytz,
+  aresponses,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -38,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "logi_circle" ];
 
   meta = {
-    description = "A Python library to communicate with Logi Circle cameras";
+    description = "Python library to communicate with Logi Circle cameras";
     homepage = "https://github.com/evanjd/python-logi-circle";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/logical-unification/default.nix b/pkgs/development/python-modules/logical-unification/default.nix
index adc6141f11db3..9c47c3b6a4667 100644
--- a/pkgs/development/python-modules/logical-unification/default.nix
+++ b/pkgs/development/python-modules/logical-unification/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
-, toolz
-, multipledispatch
-, py
-, pytestCheckHook
-, pytest-html
-, pytest-benchmark
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  toolz,
+  multipledispatch,
+  py,
+  pytestCheckHook,
+  pytest-html,
+  pytest-benchmark,
 }:
 
 buildPythonPackage rec {
@@ -31,7 +32,7 @@ buildPythonPackage rec {
     py
     pytestCheckHook
     pytest-html
-    pytest-benchmark  # Needed for the `--benchmark-skip` flag
+    pytest-benchmark # Needed for the `--benchmark-skip` flag
   ];
 
   disabledTests = lib.optionals (pythonAtLeast "3.12") [
diff --git a/pkgs/development/python-modules/logilab/constraint.nix b/pkgs/development/python-modules/logilab/constraint.nix
index 3d6b2cc7897b2..419ef5b4d1c70 100644
--- a/pkgs/development/python-modules/logilab/constraint.nix
+++ b/pkgs/development/python-modules/logilab/constraint.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, importlib-metadata
-, logilab-common
-, pip
-, six
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  importlib-metadata,
+  logilab-common,
+  pip,
+  six,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     # avoid ModuleNotFoundError: No module named 'logilab.common' due to namespace
@@ -54,4 +53,3 @@ buildPythonPackage rec {
     maintainers = with lib.maintainers; [ ];
   };
 }
-
diff --git a/pkgs/development/python-modules/logmatic-python/default.nix b/pkgs/development/python-modules/logmatic-python/default.nix
index 24416041f7b26..1dc8ce7d024c6 100644
--- a/pkgs/development/python-modules/logmatic-python/default.nix
+++ b/pkgs/development/python-modules/logmatic-python/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python-json-logger
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python-json-logger,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-UYKm00KhXnPQDkKJVm7s0gOwZ3GNY07O0oKbzPhAdVE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    python-json-logger
-  ];
+  propagatedBuildInputs = [ python-json-logger ];
 
   # Only functional tests, no unit tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "logmatic"
-  ];
+  pythonImportsCheck = [ "logmatic" ];
 
   meta = with lib; {
     description = "Python helpers to send logs to Logmatic.io";
diff --git a/pkgs/development/python-modules/logster/default.nix b/pkgs/development/python-modules/logster/default.nix
index 2bc6981955b1b..19fa5b64b9ede 100644
--- a/pkgs/development/python-modules/logster/default.nix
+++ b/pkgs/development/python-modules/logster/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pygtail }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pygtail,
+}:
 
 buildPythonPackage rec {
   pname = "logster";
diff --git a/pkgs/development/python-modules/loguru-logging-intercept/default.nix b/pkgs/development/python-modules/loguru-logging-intercept/default.nix
new file mode 100644
index 0000000000000..c25aa6dedda74
--- /dev/null
+++ b/pkgs/development/python-modules/loguru-logging-intercept/default.nix
@@ -0,0 +1,30 @@
+{
+  lib,
+  buildPythonPackage,
+  setuptools,
+  loguru,
+  fetchPypi,
+}:
+
+buildPythonPackage rec {
+  pname = "loguru-logging-intercept";
+  version = "0.1.4";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-ORPBqXtQdMqK0v6n+lBFbLUPR2SEpCpvj8w2KlBjAGQ=";
+  };
+
+  build-system = [ setuptools ];
+  dependencies = [ loguru ];
+
+  pythonImportsCheck = [ "loguru_logging_intercept" ];
+
+  meta = {
+    description = "Code to integrate Loguru with Python's standard logging module";
+    homepage = "https://github.com/MatthewScholefield/loguru-logging-intercept";
+    maintainers = with lib.maintainers; [ sigmanificient ];
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/loguru/default.nix b/pkgs/development/python-modules/loguru/default.nix
index 93e9d8937bd8b..b3ec041169fe6 100644
--- a/pkgs/development/python-modules/loguru/default.nix
+++ b/pkgs/development/python-modules/loguru/default.nix
@@ -1,11 +1,13 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, colorama
-, fetchFromGitHub
-, freezegun
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  colorama,
+  fetchFromGitHub,
+  freezegun,
+  pytestCheckHook,
+  pythonOlder,
+  pytest-xdist
 }:
 
 buildPythonPackage rec {
@@ -24,36 +26,40 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytestCheckHook
+    pytest-xdist # massive speedup, not tested by upstream
     colorama
     freezegun
   ];
 
   disabledTestPaths = [
     "tests/test_type_hinting.py" # avoid dependency on mypy
-  ] ++ lib.optionals stdenv.isDarwin [
-    "tests/test_multiprocessing.py"
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ "tests/test_multiprocessing.py" ];
 
-  disabledTests = [
-    # fails on some machine configurations
-    # AssertionError: assert '' != ''
-    "test_file_buffering"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_rotation_and_retention"
-    "test_rotation_and_retention_timed_file"
-    "test_renaming"
-    "test_await_complete_inheritance"
-  ];
+  disabledTests =
+    [
+      # fails on some machine configurations
+      # AssertionError: assert '' != ''
+      "test_file_buffering"
+      # Slow test
+      "test_time_rotation"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      "test_rotation_and_retention"
+      "test_rotation_and_retention_timed_file"
+      "test_renaming"
+      "test_await_complete_inheritance"
+    ];
 
-  pythonImportsCheck = [
-    "loguru"
-  ];
+  pythonImportsCheck = [ "loguru" ];
 
   meta = with lib; {
     description = "Python logging made (stupidly) simple";
     homepage = "https://github.com/Delgan/loguru";
     changelog = "https://github.com/delgan/loguru/releases/tag/${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ jakewaksbaum rmcgibbo ];
+    maintainers = with maintainers; [
+      jakewaksbaum
+      rmcgibbo
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/logutils/default.nix b/pkgs/development/python-modules/logutils/default.nix
index 7f35845785634..b79e6af6c9786 100644
--- a/pkgs/development/python-modules/logutils/default.nix
+++ b/pkgs/development/python-modules/logutils/default.nix
@@ -1,26 +1,39 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, redis
-, redis-server
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  redis,
+  redis-server,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "logutils";
   version = "0.3.5";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "bc058a25d5c209461f134e1f03cab637d66a7a5ccc12e593db56fbb279899a82";
+    hash = "sha256-vAWKJdXCCUYfE04fA8q2N9ZqelzMEuWT21b7snmJmoI=";
   };
 
-  nativeCheckInputs = [
+  postPatch = ''
+    substituteInPlace tests/test_dictconfig.py \
+      --replace-fail "assertEquals" "assertEqual"
+    substituteInPlace tests/test_redis.py \
+      --replace-fail "'redis-server'" "'${redis-server}/bin/redis-server'"
+  '';
+
+  build-system = [ setuptools ];
+
+  dependencies = [
     pytestCheckHook
     redis
-    redis-server
   ];
 
   disabledTests = [
@@ -33,9 +46,12 @@ buildPythonPackage rec {
     "tests/test_redis.py"
   ];
 
+  pythonImportsCheck = [ "logutils" ];
+
   meta = with lib; {
     description = "Logging utilities";
     homepage = "https://bitbucket.org/vinay.sajip/logutils/";
     license = licenses.bsd0;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/logzero/default.nix b/pkgs/development/python-modules/logzero/default.nix
index fa35ca73b51ec..de6403d1eabd4 100644
--- a/pkgs/development/python-modules/logzero/default.nix
+++ b/pkgs/development/python-modules/logzero/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "logzero";
diff --git a/pkgs/development/python-modules/lomond/default.nix b/pkgs/development/python-modules/lomond/default.nix
index 46d362d7a848f..58e560c43e6dd 100644
--- a/pkgs/development/python-modules/lomond/default.nix
+++ b/pkgs/development/python-modules/lomond/default.nix
@@ -1,17 +1,18 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, pythonAtLeast
-, pythonOlder
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  pythonAtLeast,
+  pythonOlder,
 
-# runtime
-, six
+  # runtime
+  six,
 
-# tests
-, freezegun
-, pytest-mock
-, pytestCheckHook
-, tornado_4
+  # tests
+  freezegun,
+  pytest-mock,
+  pytestCheckHook,
+  tornado_4,
 }:
 
 buildPythonPackage rec {
@@ -31,26 +32,24 @@ buildPythonPackage rec {
       --replace "'pytest-runner'" ""
   '';
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   nativeCheckInputs = [
     freezegun
     pytest-mock
     pytestCheckHook
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    tornado_4
-  ];
+  ] ++ lib.optionals (pythonOlder "3.10") [ tornado_4 ];
 
-  disabledTests = [
-    # Makes HTTP requests
-    "test_proxy"
-    "test_live"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    # https://github.com/wildfoundry/dataplicity-lomond/issues/91
-    "test_that_on_ping_responds_with_pong"
-  ];
+  disabledTests =
+    [
+      # Makes HTTP requests
+      "test_proxy"
+      "test_live"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # https://github.com/wildfoundry/dataplicity-lomond/issues/91
+      "test_that_on_ping_responds_with_pong"
+    ];
 
   disabledTestPaths = lib.optionals (pythonAtLeast "3.10") [
     # requires tornado_4, which is not compatible with python3.10
diff --git a/pkgs/development/python-modules/loopy/default.nix b/pkgs/development/python-modules/loopy/default.nix
index 995c99e100ec0..72268b19e6f11 100644
--- a/pkgs/development/python-modules/loopy/default.nix
+++ b/pkgs/development/python-modules/loopy/default.nix
@@ -1,39 +1,47 @@
-{ lib
-, buildPythonPackage
-, codepy
-, cgen
-, colorama
-, fetchFromGitHub
-, genpy
-, islpy
-, mako
-, numpy
-, pymbolic
-, pyopencl
-, pyrsistent
-, pythonOlder
-, pytools
+{
+  lib,
+  buildPythonPackage,
+  codepy,
+  cgen,
+  colorama,
+  fetchFromGitHub,
+  genpy,
+  immutables,
+  islpy,
+  mako,
+  numpy,
+  pymbolic,
+  pyopencl,
+  pyrsistent,
+  pythonOlder,
+  pytools,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "loopy";
   version = "2024.1";
-  format = "setuptools";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "inducer";
-    repo = pname;
+    repo = "loopy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-R0Wry4r8Y7VKqsyrZ3odEOUy4T9di9rFQzq7BD0LG58=";
+    hash = "sha256-mU8vXEPR88QpJpzXZlZdDhMtlwIx5YpeYhXU8Vw2T9g=";
+    fetchSubmodules = true; # submodule at `loopy/target/c/compyte`
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     codepy
     cgen
     colorama
     genpy
+    immutables
     islpy
     mako
     numpy
@@ -41,15 +49,22 @@ buildPythonPackage rec {
     pyopencl
     pyrsistent
     pytools
+    typing-extensions
   ];
 
+  postConfigure = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  pythonImportsCheck = [ "loopy" ];
+
   # pyopencl._cl.LogicError: clGetPlatformIDs failed: PLATFORM_NOT_FOUND_KHR
   doCheck = false;
 
-  meta = with lib; {
-    description = "A code generator for array-based code on CPUs and GPUs";
+  meta = {
+    description = "Code generator for array-based code on CPUs and GPUs";
     homepage = "https://github.com/inducer/loopy";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ tomasajt ];
   };
 }
diff --git a/pkgs/development/python-modules/looseversion/default.nix b/pkgs/development/python-modules/looseversion/default.nix
index b16fd1a572d21..3bf1553a40d86 100644
--- a/pkgs/development/python-modules/looseversion/default.nix
+++ b/pkgs/development/python-modules/looseversion/default.nix
@@ -1,33 +1,36 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, hatchling
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatchling,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "looseversion";
   version = "1.3.0";
-  format = "pyproject";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit version pname;
-    sha256 = "sha256-695l8/a7lTGoEBbG/vPrlaYRga3Ee3+UnpwOpHkRZp4=";
+    hash = "sha256-695l8/a7lTGoEBbG/vPrlaYRga3Ee3+UnpwOpHkRZp4=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
   pytestFlagsArray = [ "tests.py" ];
+
   pythonImportsCheck = [ "looseversion" ];
 
   meta = with lib; {
     description = "Version numbering for anarchists and software realists";
     homepage = "https://github.com/effigies/looseversion";
+    changelog = "https://github.com/effigies/looseversion/blob/${version}/CHANGES.md";
     license = licenses.psfl;
     maintainers = with maintainers; [ pelme ];
   };
diff --git a/pkgs/development/python-modules/loqedapi/default.nix b/pkgs/development/python-modules/loqedapi/default.nix
index 96370c07aac41..5aabc67910577 100644
--- a/pkgs/development/python-modules/loqedapi/default.nix
+++ b/pkgs/development/python-modules/loqedapi/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -35,9 +36,7 @@ buildPythonPackage rec {
   # Tests require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "loqedAPI"
-  ];
+  pythonImportsCheck = [ "loqedAPI" ];
 
   meta = with lib; {
     description = "Module to interact with the Loqed Smart Door Lock API";
diff --git a/pkgs/development/python-modules/losant-rest/default.nix b/pkgs/development/python-modules/losant-rest/default.nix
index 3d14dbf313e09..09321eb17d678 100644
--- a/pkgs/development/python-modules/losant-rest/default.nix
+++ b/pkgs/development/python-modules/losant-rest/default.nix
@@ -1,42 +1,40 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "losant-rest";
-  version = "1.19.5";
-  format = "setuptools";
+  version = "1.19.8";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "Losant";
     repo = "losant-rest-python";
-    rev = "v${version}";
-    hash = "sha256-oYwbCpX2mD1RMk/0ymxaA8NF9kaJ+pGQdUKk3l5Jmrs=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-CErC2Pwdw8CzV423uToysGaz92cBNyO3tLLuLozc0MU=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ requests ];
 
   nativeCheckInputs = [
     pytestCheckHook
     requests-mock
   ];
 
-  pytestFlagsArray = [
-    "tests/losantrest_tests.py"
-  ];
+  pytestFlagsArray = [ "tests/platformrest_tests.py" ];
 
-  pythonImportsCheck = [
-    "losantrest"
-  ];
+  pythonImportsCheck = [ "platformrest" ];
 
   meta = with lib; {
     description = "Python module for consuming the Losant IoT Platform API";
diff --git a/pkgs/development/python-modules/lpc-checksum/default.nix b/pkgs/development/python-modules/lpc-checksum/default.nix
index 9a02499803602..810878cec5856 100644
--- a/pkgs/development/python-modules/lpc-checksum/default.nix
+++ b/pkgs/development/python-modules/lpc-checksum/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, intelhex
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  intelhex,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  propagatedBuildInputs = [
-    intelhex
-  ];
+  propagatedBuildInputs = [ intelhex ];
 
   pythonImportsCheck = [ "lpc_checksum" ];
 
diff --git a/pkgs/development/python-modules/lrcalc-python/default.nix b/pkgs/development/python-modules/lrcalc-python/default.nix
index f425ec23775a0..8cbe109c2edbd 100644
--- a/pkgs/development/python-modules/lrcalc-python/default.nix
+++ b/pkgs/development/python-modules/lrcalc-python/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, cython
-, pkg-config
-, lrcalc
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  cython,
+  pkg-config,
+  lrcalc,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,10 @@ buildPythonPackage rec {
     sha256 = "e3a0509aeda487b412b391a52e817ca36b5c063a8305e09fd54d53259dd6aaa9";
   };
 
-  nativeBuildInputs = [ cython pkg-config ];
+  nativeBuildInputs = [
+    cython
+    pkg-config
+  ];
 
   buildInputs = [ lrcalc ];
 
diff --git a/pkgs/development/python-modules/lru-dict/default.nix b/pkgs/development/python-modules/lru-dict/default.nix
index 801d68dccb66b..96c9c57c91fbf 100644
--- a/pkgs/development/python-modules/lru-dict/default.nix
+++ b/pkgs/development/python-modules/lru-dict/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 let
@@ -21,17 +22,11 @@ buildPythonPackage {
     hash = "sha256-VP0ZZta9H83ngVlsuGBoIU7e6/8dsTos6hEHnj/Qe2s=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "lru"
-  ];
+  pythonImportsCheck = [ "lru" ];
 
   meta = with lib; {
     description = "Fast and memory efficient LRU cache for Python";
diff --git a/pkgs/development/python-modules/lsassy/default.nix b/pkgs/development/python-modules/lsassy/default.nix
index a36a70f11bbde..27bfd2092388e 100644
--- a/pkgs/development/python-modules/lsassy/default.nix
+++ b/pkgs/development/python-modules/lsassy/default.nix
@@ -7,13 +7,12 @@
   poetry-core,
   pypykatz,
   pythonOlder,
-  pythonRelaxDepsHook,
   rich,
 }:
 
 buildPythonPackage rec {
   pname = "lsassy";
-  version = "3.1.10";
+  version = "3.1.11";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -22,7 +21,7 @@ buildPythonPackage rec {
     owner = "Hackndo";
     repo = "lsassy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Eqparqj1O0gK0MvR4BBkGVNji2WXEnMsdWvKiR6XHFk=";
+    hash = "sha256-boPFrmPqaHpezxXM3VM50i+n+n+gXkuwP4ErpMpN/AI=";
   };
 
   pythonRelaxDeps = [
@@ -31,7 +30,6 @@ buildPythonPackage rec {
     "rich"
   ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   build-system = [ poetry-core ];
 
diff --git a/pkgs/development/python-modules/lsp-tree-sitter/default.nix b/pkgs/development/python-modules/lsp-tree-sitter/default.nix
new file mode 100644
index 0000000000000..2dc8597727590
--- /dev/null
+++ b/pkgs/development/python-modules/lsp-tree-sitter/default.nix
@@ -0,0 +1,55 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools-generate
+, setuptools-scm
+, colorama
+, jinja2
+, jsonschema
+, pygls
+, tree-sitter0_21
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "lsp-tree-sitter";
+  version = "0.0.15";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "neomutt";
+    repo = "lsp-tree-sitter";
+    rev = version;
+    hash = "sha256-yzScgix3BtSCBzlDoE1kMYGtVzkup/+ZK9L1C7VA3do=";
+  };
+
+  build-system = [
+    setuptools-generate
+    setuptools-scm
+  ];
+
+  dependencies = [
+    colorama
+    jinja2
+    jsonschema
+    pygls
+    # The build won't fail if we had used tree-sitter (version > 0.21), but
+    # this package is only a dependency of autotools-language-server which also
+    # depends on tree-sitter-languages which must use tree-sitter0_21 and not
+    # tree-sitter. Hence we avoid different tree-sitter versions dependency
+    # mismatch by defaulting here to this lower version.
+    tree-sitter0_21
+  ];
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "lsp_tree_sitter" ];
+
+  meta = with lib; {
+    description = "A library to create language servers";
+    homepage = "https://github.com/neomutt/lsp-tree-sitter";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/lsprotocol/default.nix b/pkgs/development/python-modules/lsprotocol/default.nix
index c8c058f47c68b..8e23e7b92fda9 100644
--- a/pkgs/development/python-modules/lsprotocol/default.nix
+++ b/pkgs/development/python-modules/lsprotocol/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, attrs
-, buildPythonPackage
-, cattrs
-, fetchFromGitHub
-, flit-core
-, importlib-resources
-, jsonschema
-, nox
-, pyhamcrest
-, pytest
-, pythonOlder
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  cattrs,
+  fetchFromGitHub,
+  flit-core,
+  importlib-resources,
+  jsonschema,
+  nox,
+  pyhamcrest,
+  pytest,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
     cattrs
   ];
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
   checkInputs = [
     importlib-resources
@@ -63,15 +62,16 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "lsprotocol"
-  ];
+  pythonImportsCheck = [ "lsprotocol" ];
 
   meta = with lib; {
     description = "Python implementation of the Language Server Protocol";
     homepage = "https://github.com/microsoft/lsprotocol";
     changelog = "https://github.com/microsoft/lsprotocol/releases/tag/${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ doronbehar fab ];
+    maintainers = with maintainers; [
+      doronbehar
+      fab
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/ltpycld2/default.nix b/pkgs/development/python-modules/ltpycld2/default.nix
index b8e19ae499904..7635b631170c2 100644
--- a/pkgs/development/python-modules/ltpycld2/default.nix
+++ b/pkgs/development/python-modules/ltpycld2/default.nix
@@ -1,7 +1,8 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/lttng/default.nix b/pkgs/development/python-modules/lttng/default.nix
index 9cdb580fc474e..2c41fa2c35ec6 100644
--- a/pkgs/development/python-modules/lttng/default.nix
+++ b/pkgs/development/python-modules/lttng/default.nix
@@ -1,29 +1,39 @@
-{ toPythonModule
-, python
-, lttng-tools
-, swig2
+{
+  toPythonModule,
+  python,
+  lttng-tools,
+  swig2,
 }:
 
-toPythonModule (lttng-tools.overrideAttrs ({ nativeBuildInputs ? [ ], configureFlags ? [ ], ... }: {
-  pname = "lttng";
+toPythonModule (
+  lttng-tools.overrideAttrs (
+    {
+      nativeBuildInputs ? [ ],
+      configureFlags ? [ ],
+      ...
+    }:
+    {
+      pname = "lttng";
 
-  nativeBuildInputs = nativeBuildInputs ++ [ swig2 ];
+      nativeBuildInputs = nativeBuildInputs ++ [ swig2 ];
 
-  configureFlags = configureFlags ++ [
-    "--enable-python-bindings"
-    # "--disable-bin-lttng" # The Python bindings depend on liblttng-ctl, which is only built when the binary is enabled.
-    "--disable-bin-lttng-consumerd"
-    "--disable-bin-lttng-crash"
-    "--disable-bin-lttng-relayd"
-    "--disable-bin-lttng-sessiond"
-    # "--disable-extras" # The Python bindings are an extra.
-    "--disable-man-pages"
-  ];
+      configureFlags = configureFlags ++ [
+        "--enable-python-bindings"
+        # "--disable-bin-lttng" # The Python bindings depend on liblttng-ctl, which is only built when the binary is enabled.
+        "--disable-bin-lttng-consumerd"
+        "--disable-bin-lttng-crash"
+        "--disable-bin-lttng-relayd"
+        "--disable-bin-lttng-sessiond"
+        # "--disable-extras" # The Python bindings are an extra.
+        "--disable-man-pages"
+      ];
 
-  # Nix treats nativeBuildInputs specially for cross-compilation, but in this
-  # case, cross-compilation is accounted for explicitly. Using the variables
-  # ensures that the platform setup isn't messed with further. It also allows
-  # regular Python to be added in the future if it is ever needed.
-  PYTHON = "${python.pythonOnBuildForHost}/bin/python";
-  PYTHON_CONFIG = "${python.pythonOnBuildForHost}/bin/python-config";
-}))
+      # Nix treats nativeBuildInputs specially for cross-compilation, but in this
+      # case, cross-compilation is accounted for explicitly. Using the variables
+      # ensures that the platform setup isn't messed with further. It also allows
+      # regular Python to be added in the future if it is ever needed.
+      PYTHON = "${python.pythonOnBuildForHost}/bin/python";
+      PYTHON_CONFIG = "${python.pythonOnBuildForHost}/bin/python-config";
+    }
+  )
+)
diff --git a/pkgs/development/python-modules/luddite/default.nix b/pkgs/development/python-modules/luddite/default.nix
index 4059288da674c..c7db0497e0ccc 100644
--- a/pkgs/development/python-modules/luddite/default.nix
+++ b/pkgs/development/python-modules/luddite/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, packaging
-, pytestCheckHook
-, pytest-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  packaging,
+  pytestCheckHook,
+  pytest-mock,
 }:
 
 buildPythonPackage rec {
@@ -25,17 +26,11 @@ buildPythonPackage rec {
       --replace "--disable-socket" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    packaging
-  ];
+  propagatedBuildInputs = [ packaging ];
 
-  pythonImportsCheck = [
-    "luddite"
-  ];
+  pythonImportsCheck = [ "luddite" ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/luftdaten/default.nix b/pkgs/development/python-modules/luftdaten/default.nix
index b87771380a8d3..213db1480c147 100644
--- a/pkgs/development/python-modules/luftdaten/default.nix
+++ b/pkgs/development/python-modules/luftdaten/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, httpx
-, pytest-asyncio
-, pytest-httpx
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  httpx,
+  pytest-asyncio,
+  pytest-httpx,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     hash = "sha256-nOhJKlUJ678DJ/ilyRHaiQ2fGfoCl+x6l9lsczVLAGw=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    httpx
-  ];
+  propagatedBuildInputs = [ httpx ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -43,6 +40,9 @@ buildPythonPackage rec {
     description = "Python API for interacting with luftdaten.info";
     homepage = "https://github.com/home-assistant-ecosystem/python-luftdaten";
     license = licenses.mit;
-    maintainers = with maintainers; [ dotlambda fab ];
+    maintainers = with maintainers; [
+      dotlambda
+      fab
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/luhn/default.nix b/pkgs/development/python-modules/luhn/default.nix
index e0e0393ff1d38..b0407235fe0a5 100644
--- a/pkgs/development/python-modules/luhn/default.nix
+++ b/pkgs/development/python-modules/luhn/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,17 +17,11 @@ buildPythonPackage rec {
     hash = "sha256-ZifaCjOVhWdXuzi5n6V+6eVN5vrEHKgUdpSOXoMyR18=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "test.py"
-  ];
+  pytestFlagsArray = [ "test.py" ];
 
-  pythonImportsCheck = [
-    "luhn"
-  ];
+  pythonImportsCheck = [ "luhn" ];
 
   meta = with lib; {
     description = "Python module for generate and verify Luhn check digits";
diff --git a/pkgs/development/python-modules/lunarcalendar/default.nix b/pkgs/development/python-modules/lunarcalendar/default.nix
index 03a94e5e4cdce..7472ea07a751f 100644
--- a/pkgs/development/python-modules/lunarcalendar/default.nix
+++ b/pkgs/development/python-modules/lunarcalendar/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-, python-dateutil
-, ephem
-, pytz
+  python-dateutil,
+  ephem,
+  pytz,
 
-, pytestCheckHook
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -33,7 +34,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/wolfhong/LunarCalendar";
-    description = "A Lunar-Solar Converter, containing a number of lunar and solar festivals in China";
+    description = "Lunar-Solar Converter, containing a number of lunar and solar festivals in China";
     mainProgram = "lunar-find";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ tomasajt ];
diff --git a/pkgs/development/python-modules/lupa/default.nix b/pkgs/development/python-modules/lupa/default.nix
index 4b879a90966f5..8985e3f99ba46 100644
--- a/pkgs/development/python-modules/lupa/default.nix
+++ b/pkgs/development/python-modules/lupa/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchPypi
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "lupa";
-  version = "2.1";
+  version = "2.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dgAwcS1SczlvXpY92HMa77WsZdku/4v4/UEkwWMP6VA=";
+    hash = "sha256-ZloAa8+Nmqzf25U4JLkp0GoMVZEKZitZvi8VerTIkk0=";
   };
 
   build-system = [
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  pythonImportsCheck = [
-    "lupa"
-  ];
+  pythonImportsCheck = [ "lupa" ];
 
   meta = with lib; {
     description = "Lua in Python";
diff --git a/pkgs/development/python-modules/lupupy/default.nix b/pkgs/development/python-modules/lupupy/default.nix
index 946d79da85dc5..424e7a583ff0f 100644
--- a/pkgs/development/python-modules/lupupy/default.nix
+++ b/pkgs/development/python-modules/lupupy/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, colorlog
-, pyyaml
-, fetchPypi
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  colorlog,
+  pyyaml,
+  fetchPypi,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-A92Jk6WlRKep3dkbqLiYYHklEh0pyncipRW6swq0mvo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     colorlog
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "lupupy"
-  ];
+  pythonImportsCheck = [ "lupupy" ];
 
   meta = with lib; {
     description = "Python module to control Lupusec alarm control panels";
diff --git a/pkgs/development/python-modules/luqum/default.nix b/pkgs/development/python-modules/luqum/default.nix
index afad9262c7b3b..e0c0f7566137d 100644
--- a/pkgs/development/python-modules/luqum/default.nix
+++ b/pkgs/development/python-modules/luqum/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, elastic-transport
-, elasticsearch-dsl
-, fetchFromGitHub
-, ply
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  elastic-transport,
+  elasticsearch-dsl,
+  fetchFromGitHub,
+  ply,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +29,9 @@ buildPythonPackage rec {
       --replace '--doctest-modules --doctest-glob="test_*.rst" --cov=luqum --cov-branch --cov-report html --no-cov-on-fail' ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    ply
-  ];
+  propagatedBuildInputs = [ ply ];
 
   nativeCheckInputs = [
     elastic-transport
@@ -42,9 +39,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "luqum"
-  ];
+  pythonImportsCheck = [ "luqum" ];
 
   disabledTestPaths = [
     # Tests require an Elasticsearch instance
@@ -53,7 +48,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A lucene query parser generating ElasticSearch queries";
+    description = "Lucene query parser generating ElasticSearch queries";
     homepage = "https://github.com/jurismarches/luqum";
     changelog = "https://github.com/jurismarches/luqum/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/luxor/default.nix b/pkgs/development/python-modules/luxor/default.nix
index 1bd7a7bbc018b..dbe1881e18330 100644
--- a/pkgs/development/python-modules/luxor/default.nix
+++ b/pkgs/development/python-modules/luxor/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pytest-aiohttp
-, pytestCheckHook
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytest-aiohttp,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,18 +20,14 @@ buildPythonPackage rec {
     sha256 = "GIwVEOKZAudTu2M3OM4LFVR8e22q52m/AN0anskdmWQ=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   nativeCheckInputs = [
     pytest-aiohttp
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "luxor"
-  ];
+  pythonImportsCheck = [ "luxor" ];
 
   meta = with lib; {
     description = "Python module to control FX Luminaire controllers";
diff --git a/pkgs/development/python-modules/luxtronik/default.nix b/pkgs/development/python-modules/luxtronik/default.nix
index 14e0cece25c4c..a0e72f975ffd0 100644
--- a/pkgs/development/python-modules/luxtronik/default.nix
+++ b/pkgs/development/python-modules/luxtronik/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "luxtronik"
-  ];
+  pythonImportsCheck = [ "luxtronik" ];
 
   meta = with lib; {
     description = "Python library to interact with Luxtronik heatpump controllers";
diff --git a/pkgs/development/python-modules/lxmf/default.nix b/pkgs/development/python-modules/lxmf/default.nix
index 6682b2b09f641..d8538f1ccbc62 100644
--- a/pkgs/development/python-modules/lxmf/default.nix
+++ b/pkgs/development/python-modules/lxmf/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, rns
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  rns,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "lxmf";
-  version = "0.4.3";
+  version = "0.4.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -17,23 +18,17 @@ buildPythonPackage rec {
     owner = "markqvist";
     repo = "lxmf";
     rev = "refs/tags/${version}";
-    hash = "sha256-8Usu2fecSnyVfGrEJED4qMBO5RwJjTq5c7svCTu445Q=";
+    hash = "sha256-O8uqGo4pgN1xb6/hwEb0B/ymeA9as9/mFj9t9dI4pNg=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    rns
-  ];
+  dependencies = [ rns ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "LXMF"
-  ];
+  pythonImportsCheck = [ "LXMF" ];
 
   meta = with lib; {
     description = "Lightweight Extensible Message Format for Reticulum";
diff --git a/pkgs/development/python-modules/lxml-stubs/default.nix b/pkgs/development/python-modules/lxml-stubs/default.nix
index abb0d17f3918e..60d2baf7c6852 100644
--- a/pkgs/development/python-modules/lxml-stubs/default.nix
+++ b/pkgs/development/python-modules/lxml-stubs/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, lxml
-, pytest-mypy-plugins
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxml,
+  pytest-mypy-plugins,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-OwaPnCr0vylhdAvMMUfGV6DjZEh7Q71pgMOt66urg5I=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    lxml
-  ];
+  propagatedBuildInputs = [ lxml ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/lxml/default.nix b/pkgs/development/python-modules/lxml/default.nix
index d1d7036eda2e3..0bd08c60cf011 100644
--- a/pkgs/development/python-modules/lxml/default.nix
+++ b/pkgs/development/python-modules/lxml/default.nix
@@ -1,29 +1,30 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# build-system
-, cython
-, setuptools
-
-# native dependencies
-, libxml2
-, libxslt
-, zlib
-, xcodebuild
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  cython,
+  setuptools,
+
+  # native dependencies
+  libxml2,
+  libxslt,
+  zlib,
+  xcodebuild,
 }:
 
 buildPythonPackage rec {
   pname = "lxml";
-  version = "5.1.0";
+  version = "5.2.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "lxml";
     repo = "lxml";
     rev = "refs/tags/lxml-${version}";
-    hash = "sha256-eWLYzZWatYDmhuBTZynsdytlNFKKmtWQ1XIyzVD8sDY=";
+    hash = "sha256-c9r2uqjXmQOXyPCsJTzi1OatkQ9rhJbKqpxaoFz2l18=";
   };
 
   # setuptoolsBuildPhase needs dependencies to be passed through nativeBuildInputs
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     libxslt.dev
     cython
     setuptools
-   ] ++ lib.optionals stdenv.isDarwin [
-    xcodebuild
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ xcodebuild ];
   buildInputs = [
     libxml2
     libxslt
diff --git a/pkgs/development/python-modules/lyricwikia/default.nix b/pkgs/development/python-modules/lyricwikia/default.nix
index 05360af054fcd..0a19c22ddf8e6 100644
--- a/pkgs/development/python-modules/lyricwikia/default.nix
+++ b/pkgs/development/python-modules/lyricwikia/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, responses
-, six
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  responses,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
     responses
   ];
 
-  pythonImportsCheck = [
-    "lyricwikia"
-  ];
+  pythonImportsCheck = [ "lyricwikia" ];
 
   disabledTests = [
     # Test requires network access
diff --git a/pkgs/development/python-modules/lz4/default.nix b/pkgs/development/python-modules/lz4/default.nix
index cf1ac6294499c..c37eeab5cc12f 100644
--- a/pkgs/development/python-modules/lz4/default.nix
+++ b/pkgs/development/python-modules/lz4/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pkgconfig
-, psutil
-, pytestCheckHook
-, python
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pkgconfig,
+  psutil,
+  pytestCheckHook,
+  python,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/lzallright/default.nix b/pkgs/development/python-modules/lzallright/default.nix
index a82a7980c70f8..697acafb6ed6d 100644
--- a/pkgs/development/python-modules/lzallright/default.nix
+++ b/pkgs/development/python-modules/lzallright/default.nix
@@ -1,32 +1,36 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, callPackage
-, fetchFromGitHub
-, rustPlatform
-, libiconv
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  callPackage,
+  fetchFromGitHub,
+  rustPlatform,
+  libiconv,
 }:
 
 buildPythonPackage rec {
   pname = "lzallright";
-  version = "0.2.3";
+  version = "0.2.4";
 
   src = fetchFromGitHub {
     owner = "vlaci";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Zzif6WtecgAkNmml0kt0Z+Ewx0L30ahr+kwzYR5aUAM=";
+    hash = "sha256-6Dez14qlZ7cnVQfaiTHGuiTSAHvBoKtolgKF7ne9ASw=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-+pV9q2QM6qFA1a5E10OAsE7KJEUsTiEiU1KqO4/2rFw=";
+    hash = "sha256-ZYFAWkcDdX10024hc+gdARyaJFpNNcXf+gGLxBP5VlA=";
   };
 
   format = "pyproject";
 
-  nativeBuildInputs = with rustPlatform; [ cargoSetupHook maturinBuildHook ];
+  nativeBuildInputs = with rustPlatform; [
+    cargoSetupHook
+    maturinBuildHook
+  ];
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
diff --git a/pkgs/development/python-modules/lzallright/tests.nix b/pkgs/development/python-modules/lzallright/tests.nix
index 1093fc3c79e98..f28dd124278a9 100644
--- a/pkgs/development/python-modules/lzallright/tests.nix
+++ b/pkgs/development/python-modules/lzallright/tests.nix
@@ -1,4 +1,8 @@
-{ lzallright, buildPythonPackage, pytestCheckHook }:
+{
+  lzallright,
+  buildPythonPackage,
+  pytestCheckHook,
+}:
 
 buildPythonPackage {
   inherit (lzallright) version src;
diff --git a/pkgs/development/python-modules/lzstring/default.nix b/pkgs/development/python-modules/lzstring/default.nix
index 02602f1f8c20c..99ae373d063bd 100644
--- a/pkgs/development/python-modules/lzstring/default.nix
+++ b/pkgs/development/python-modules/lzstring/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, future
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  future,
 }:
 
 buildPythonPackage rec {
-  pname   = "lzstring";
+  pname = "lzstring";
   version = "1.0.4";
   format = "setuptools";
 
@@ -18,8 +19,8 @@ buildPythonPackage rec {
 
   meta = {
     description = "lz-string for python";
-    homepage    = "https://github.com/gkovacs/lz-string-python";
-    license     = lib.licenses.mit;
+    homepage = "https://github.com/gkovacs/lz-string-python";
+    license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ obadz ];
   };
 }
diff --git a/pkgs/development/python-modules/m2crypto/default.nix b/pkgs/development/python-modules/m2crypto/default.nix
index ae2e7b87ded1e..88f09710151ff 100644
--- a/pkgs/development/python-modules/m2crypto/default.nix
+++ b/pkgs/development/python-modules/m2crypto/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, openssl
-, parameterized
-, pytestCheckHook
-, pythonOlder
-, swig2
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  openssl,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  swig,
 }:
 
 buildPythonPackage rec {
   pname = "m2crypto";
   version = "0.41.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -22,31 +23,32 @@ buildPythonPackage rec {
     hash = "sha256-OhNYx+6EkEbZF4Knd/F4a/AnocHVG1+vjxlDW/w/FJU=";
   };
 
-  nativeBuildInputs = [
-    swig2
-    openssl
-  ];
+  build-system = [ setuptools ];
 
-  buildInputs = [
-    openssl
-    parameterized
-  ];
+  nativeBuildInputs = [ swig ];
 
-  env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin (toString [
-    "-Wno-error=implicit-function-declaration"
-    "-Wno-error=incompatible-pointer-types"
-  ]);
+  buildInputs = [ openssl ];
+
+  env =
+    {
+      NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin (toString [
+        "-Wno-error=implicit-function-declaration"
+        "-Wno-error=incompatible-pointer-types"
+      ]);
+    }
+    // lib.optionalAttrs (stdenv.hostPlatform != stdenv.buildPlatform) {
+      CPP = "${stdenv.cc.targetPrefix}cpp";
+    };
 
   nativeCheckInputs = [
     pytestCheckHook
+    openssl
   ];
 
-  pythonImportsCheck = [
-    "M2Crypto"
-  ];
+  pythonImportsCheck = [ "M2Crypto" ];
 
   meta = with lib; {
-    description = "A Python crypto and SSL toolkit";
+    description = "Python crypto and SSL toolkit";
     homepage = "https://gitlab.com/m2crypto/m2crypto";
     changelog = "https://gitlab.com/m2crypto/m2crypto/-/blob/${version}/CHANGES";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/m2r/default.nix b/pkgs/development/python-modules/m2r/default.nix
index ab94a0b5e262d..28131581936f7 100644
--- a/pkgs/development/python-modules/m2r/default.nix
+++ b/pkgs/development/python-modules/m2r/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, docutils
-, mistune
-, pygments
+{
+  lib,
+  buildPythonPackage,
+  fetchpatch,
+  fetchPypi,
+  docutils,
+  mistune,
+  pygments,
 }:
 
 buildPythonPackage rec {
@@ -31,7 +32,10 @@ buildPythonPackage rec {
       --replace "optional" "positional"
   '';
 
-  propagatedBuildInputs = [ mistune docutils ];
+  propagatedBuildInputs = [
+    mistune
+    docutils
+  ];
 
   nativeCheckInputs = [ pygments ];
 
diff --git a/pkgs/development/python-modules/m3u8/default.nix b/pkgs/development/python-modules/m3u8/default.nix
index 6dab2c26ad3ca..b48572c49a2ed 100644
--- a/pkgs/development/python-modules/m3u8/default.nix
+++ b/pkgs/development/python-modules/m3u8/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, iso8601
-, bottle
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  iso8601,
+  bottle,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "m3u8";
-  version = "4.1.0";
+  version = "5.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     owner = "globocom";
     repo = "m3u8";
     rev = "refs/tags/${version}";
-    hash = "sha256-vH5y/fk9dW8w54U3o+70enbTOubV4V0/NVbSSqOY9rQ=";
+    hash = "sha256-sI260BR22Ft5y/2lKn1ihu52y6soyk+yzj24TEOKJlA=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    iso8601
-  ];
+  dependencies = [ iso8601 ];
 
   nativeCheckInputs = [
     bottle
@@ -43,9 +40,7 @@ buildPythonPackage rec {
     "test_raise_timeout_exception_if_timeout_happens_when_loading_from_uri"
   ];
 
-  pythonImportsCheck = [
-    "m3u8"
-  ];
+  pythonImportsCheck = [ "m3u8" ];
 
   meta = with lib; {
     description = "Python m3u8 parser";
diff --git a/pkgs/development/python-modules/mac-alias/default.nix b/pkgs/development/python-modules/mac-alias/default.nix
index 913ea42403ed8..8cdb98fc6c08b 100644
--- a/pkgs/development/python-modules/mac-alias/default.nix
+++ b/pkgs/development/python-modules/mac-alias/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     hash = "sha256-yZxyjrUS6VXBHxpiA6D/qIg7JlSeiv5ogEAxql2oVrc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # pypi package does not include tests;
   # tests anyway require admin privileges to succeed
diff --git a/pkgs/development/python-modules/mac-vendor-lookup/default.nix b/pkgs/development/python-modules/mac-vendor-lookup/default.nix
index dbbd16dd6ea28..e5cd0d793b6a9 100644
--- a/pkgs/development/python-modules/mac-vendor-lookup/default.nix
+++ b/pkgs/development/python-modules/mac-vendor-lookup/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, aiofiles
-, aiohttp
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  aiofiles,
+  aiohttp,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
 
   doCheck = false; # no tests
 
-  pythonImportsCheck = [
-    "mac_vendor_lookup"
-  ];
+  pythonImportsCheck = [ "mac_vendor_lookup" ];
 
   meta = with lib; {
     description = "Find the vendor for a given MAC address";
diff --git a/pkgs/development/python-modules/macaddress/default.nix b/pkgs/development/python-modules/macaddress/default.nix
index 2849506671b2b..97d07f45d1c88 100644
--- a/pkgs/development/python-modules/macaddress/default.nix
+++ b/pkgs/development/python-modules/macaddress/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, hypothesis
-, reprshed
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  hypothesis,
+  reprshed,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-2eD5Ui8kUduKLJ0mSiwaz7TQSeF1+2ASirp70V/8+EA=";
   };
 
-  pythonImportsCheck = [
-    "macaddress"
-  ];
+  pythonImportsCheck = [ "macaddress" ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -28,13 +27,11 @@ buildPythonPackage rec {
     reprshed
   ];
 
-  pytestFlagsArray = [
-    "$src/test.py"
-  ];
+  pytestFlagsArray = [ "$src/test.py" ];
 
   meta = with lib; {
     homepage = "https://github.com/mentalisttraceur/python-macaddress";
-    description = "A module for handling hardware identifiers like MAC addresses";
+    description = "Module for handling hardware identifiers like MAC addresses";
     license = licenses.bsd0;
     maintainers = with maintainers; [ netali ];
   };
diff --git a/pkgs/development/python-modules/macaroonbakery/default.nix b/pkgs/development/python-modules/macaroonbakery/default.nix
index eb1b50eb4a9b1..ed94e0261f9e5 100644
--- a/pkgs/development/python-modules/macaroonbakery/default.nix
+++ b/pkgs/development/python-modules/macaroonbakery/default.nix
@@ -50,7 +50,7 @@ buildPythonPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "A Python library for working with macaroons";
+    description = "Python library for working with macaroons";
     homepage = "https://github.com/go-macaroon-bakery/py-macaroon-bakery";
     changelog = "https://github.com/go-macaroon-bakery/py-macaroon-bakery/releases/tag/${version}";
     license = lib.licenses.lgpl3Only;
diff --git a/pkgs/development/python-modules/macfsevents/default.nix b/pkgs/development/python-modules/macfsevents/default.nix
index db0750e1957a5..065713f2f05d0 100644
--- a/pkgs/development/python-modules/macfsevents/default.nix
+++ b/pkgs/development/python-modules/macfsevents/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, CoreFoundation
-, CoreServices
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  CoreFoundation,
+  CoreServices,
 }:
 
 buildPythonPackage rec {
@@ -15,7 +16,10 @@ buildPythonPackage rec {
     sha256 = "sha256-v3KD8dUXdkzNyBlbIWMdu6wcUGuSC/mo6ilWsxJ2Ucs=";
   };
 
-  buildInputs = [ CoreFoundation CoreServices ];
+  buildInputs = [
+    CoreFoundation
+    CoreServices
+  ];
 
   # Some tests fail under nix build directory
   doCheck = false;
diff --git a/pkgs/development/python-modules/macropy/default.nix b/pkgs/development/python-modules/macropy/default.nix
index 051ce068b3179..d87d2de44bb51 100644
--- a/pkgs/development/python-modules/macropy/default.nix
+++ b/pkgs/development/python-modules/macropy/default.nix
@@ -1,11 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, isPy27
-, pythonAtLeast
-, pinqSupport ? false, sqlalchemy
-, pyxlSupport ? false, pyxl3
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  isPy27,
+  pythonAtLeast,
+  pinqSupport ? false,
+  sqlalchemy,
+  pyxlSupport ? false,
+  pyxl3,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +26,8 @@ buildPythonPackage rec {
   };
 
   # js_snippets extra only works with python2
-  propagatedBuildInputs = [ ]
-    ++ lib.optional pinqSupport sqlalchemy
-    ++ lib.optional pyxlSupport pyxl3;
+  propagatedBuildInputs =
+    [ ] ++ lib.optional pinqSupport sqlalchemy ++ lib.optional pyxlSupport pyxl3;
 
   checkPhase = ''
     ${python.interpreter} run_tests.py
diff --git a/pkgs/development/python-modules/maestral/default.nix b/pkgs/development/python-modules/maestral/default.nix
index 885911b181c8f..6f1aa28e9f0c9 100644
--- a/pkgs/development/python-modules/maestral/default.nix
+++ b/pkgs/development/python-modules/maestral/default.nix
@@ -1,37 +1,39 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, makePythonPath
-, pythonOlder
-, python
-, click
-, dbus-python
-, desktop-notifier
-, dropbox
-, fasteners
-, importlib-metadata
-, keyring
-, keyrings-alt
-, packaging
-, pathspec
-, pyro5
-, requests
-, rich
-, rubicon-objc
-, setuptools
-, survey
-, typing-extensions
-, watchdog
-, xattr
-, pytestCheckHook
-, nixosTests
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  makePythonPath,
+  pythonOlder,
+  python,
+  click,
+  dbus-python,
+  desktop-notifier,
+  dropbox,
+  fasteners,
+  importlib-metadata,
+  keyring,
+  keyrings-alt,
+  packaging,
+  pathspec,
+  pyro5,
+  requests,
+  rich,
+  rubicon-objc,
+  setuptools,
+  survey,
+  typing-extensions,
+  watchdog,
+  xattr,
+  fetchpatch,
+  pytestCheckHook,
+  nixosTests,
 }:
 
 buildPythonPackage rec {
   pname = "maestral";
   version = "1.9.3";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -42,7 +44,9 @@ buildPythonPackage rec {
     hash = "sha256-h7RDaCVICi3wl6/b1s01cINhFirDOpOXoxTPZIBH3jE=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     click
     desktop-notifier
     dbus-python
@@ -61,19 +65,23 @@ buildPythonPackage rec {
     typing-extensions
     watchdog
     xattr
-  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
-    rubicon-objc
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ rubicon-objc ];
+
+  patches = [
+    (fetchpatch {
+      name = "upgrade-dropbox-version-bounds";
+      url = "https://github.com/samschott/maestral/commit/8fd581fa503391534913afbc33a61132ff2e21ce.patch";
+      hash = "sha256-2Dke9iF/5Ptsf3CSRHUkjdFRrmdKY+L3sILRMyYrUH0=";
+    })
   ];
 
   makeWrapperArgs = [
     # Add the installed directories to the python path so the daemon can find them
-    "--prefix PYTHONPATH : ${makePythonPath propagatedBuildInputs}"
+    "--prefix PYTHONPATH : ${makePythonPath dependencies}"
     "--prefix PYTHONPATH : $out/${python.sitePackages}"
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # ModuleNotFoundError: No module named '_watchdog_fsevents'
   doCheck = !(stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64);
@@ -82,39 +90,39 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  disabledTests = [
-    # We don't want to benchmark
-    "test_performance"
-    # Requires systemd
-    "test_autostart"
-    # Requires network access
-    "test_check_for_updates"
-    # Tries to look at /usr
-    "test_filestatus"
-    "test_path_exists_case_insensitive"
-    "test_cased_path_candidates"
-    # AssertionError
-    "test_locking_multiprocess"
-    # OSError: [Errno 95] Operation not supported
-    "test_move_preserves_xattrs"
-  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
-    # maetral daemon does not start but worked in real environment
-    "test_catching_non_ignored_events"
-    "test_connection"
-    "test_event_handler"
-    "test_fs_ignore_tree_creation"
-    "test_lifecycle"
-    "test_notify_level"
-    "test_notify_snooze"
-    "test_receiving_events"
-    "test_remote_exceptions"
-    "test_start_already_running"
-    "test_stop"
-  ];
+  disabledTests =
+    [
+      # We don't want to benchmark
+      "test_performance"
+      # Requires systemd
+      "test_autostart"
+      # Requires network access
+      "test_check_for_updates"
+      # Tries to look at /usr
+      "test_filestatus"
+      "test_path_exists_case_insensitive"
+      "test_cased_path_candidates"
+      # AssertionError
+      "test_locking_multiprocess"
+      # OSError: [Errno 95] Operation not supported
+      "test_move_preserves_xattrs"
+    ]
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [
+      # maetral daemon does not start but worked in real environment
+      "test_catching_non_ignored_events"
+      "test_connection"
+      "test_event_handler"
+      "test_fs_ignore_tree_creation"
+      "test_lifecycle"
+      "test_notify_level"
+      "test_notify_snooze"
+      "test_receiving_events"
+      "test_remote_exceptions"
+      "test_start_already_running"
+      "test_stop"
+    ];
 
-  pythonImportsCheck = [
-    "maestral"
-  ];
+  pythonImportsCheck = [ "maestral" ];
 
   passthru.tests.maestral = nixosTests.maestral;
 
@@ -124,6 +132,10 @@ buildPythonPackage rec {
     homepage = "https://maestral.app";
     changelog = "https://github.com/samschott/maestral/releases/tag/v${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ natsukium peterhoeg sfrijters ];
+    maintainers = with maintainers; [
+      natsukium
+      peterhoeg
+      sfrijters
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/magic-filter/default.nix b/pkgs/development/python-modules/magic-filter/default.nix
index 8b4cc8068965e..fa963525c6b86 100644
--- a/pkgs/development/python-modules/magic-filter/default.nix
+++ b/pkgs/development/python-modules/magic-filter/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, hatchling
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  hatchling,
 }:
 
 buildPythonPackage rec {
@@ -25,13 +26,9 @@ buildPythonPackage rec {
       --replace '"1"' '"${version}"'
   '';
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "magic_filter" ];
 
diff --git a/pkgs/development/python-modules/magic-wormhole-mailbox-server/default.nix b/pkgs/development/python-modules/magic-wormhole-mailbox-server/default.nix
index fc9636c351a05..af4cb08de9e01 100644
--- a/pkgs/development/python-modules/magic-wormhole-mailbox-server/default.nix
+++ b/pkgs/development/python-modules/magic-wormhole-mailbox-server/default.nix
@@ -1,29 +1,32 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, six
-, attrs
-, twisted
-, pyopenssl
-, service-identity
-, autobahn
-, treq
-, mock
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  setuptools,
+  six,
+  attrs,
+  twisted,
+  autobahn,
+  treq,
+  mock,
+  pythonOlder,
+  pythonAtLeast,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "magic-wormhole-mailbox-server";
   version = "0.4.1";
-  format = "setuptools";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  # python 3.12 support: https://github.com/magic-wormhole/magic-wormhole-mailbox-server/issues/41
+  disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1af10592909caaf519c00e706eac842c5e77f8d4356215fe9c61c7b2258a88fb";
+    hash = "sha256-GvEFkpCcqvUZwA5wbqyELF53+NQ1YhX+nGHHsiWKiPs=";
   };
 
   patches = [
@@ -35,35 +38,33 @@ buildPythonPackage rec {
     })
   ];
 
+  nativeBuildInputs = [ setuptools ];
+
   propagatedBuildInputs = [
     attrs
     six
     twisted
     autobahn
-  ] ++ autobahn.optional-dependencies.twisted
-  ++ twisted.optional-dependencies.tls;
+  ] ++ autobahn.optional-dependencies.twisted ++ twisted.optional-dependencies.tls;
+
+  pythonImportsCheck = [ "wormhole_mailbox_server" ];
 
   nativeCheckInputs = [
+    pytestCheckHook
     treq
     mock
-    twisted
   ];
 
-  # Fails in Darwin's sandbox
-  postPatch = lib.optionalString stdenv.isDarwin ''
-    echo 'LogRequests.skip = "Operation not permitted"' >> src/wormhole_mailbox_server/test/test_web.py
-    echo 'WebSocketAPI.skip = "Operation not permitted"' >> src/wormhole_mailbox_server/test/test_web.py
-  '';
-
-  checkPhase = ''
-    trial -j$NIX_BUILD_CORES wormhole_mailbox_server
-  '';
+  disabledTestPaths = lib.optionals stdenv.isDarwin [
+    # these tests fail in Darwin's sandbox
+    "src/wormhole_mailbox_server/test/test_web.py"
+  ];
 
-  meta = with lib; {
+  meta = {
     description = "Securely transfer data between computers";
-    homepage = "https://github.com/warner/magic-wormhole-mailbox-server";
+    homepage = "https://github.com/magic-wormhole/magic-wormhole-mailbox-server";
     changelog = "https://github.com/magic-wormhole/magic-wormhole-mailbox-server/blob/${version}/NEWS.md";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.mjoerg ];
   };
 }
diff --git a/pkgs/development/python-modules/magic-wormhole-transit-relay/default.nix b/pkgs/development/python-modules/magic-wormhole-transit-relay/default.nix
index 463b3560457d2..39b7d93ce0f2c 100644
--- a/pkgs/development/python-modules/magic-wormhole-transit-relay/default.nix
+++ b/pkgs/development/python-modules/magic-wormhole-transit-relay/default.nix
@@ -1,33 +1,48 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, autobahn
-, mock
-, twisted
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  autobahn,
+  mock,
+  twisted,
+  pythonOlder,
+  pythonAtLeast,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "magic-wormhole-transit-relay";
   version = "0.2.1";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ppsx2s1ysikns1h053x67z2zmficbn3y3kf52bzzslhd2s02j6b";
+    hash = "sha256-y0gBtGiQ6v+XKG4OP+xi0dUv/jF9FACDtjNqH7To+l4=";
   };
 
-  propagatedBuildInputs = [ autobahn twisted ];
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [
+    autobahn
+    twisted
+  ];
 
-  nativeCheckInputs = [ mock twisted ];
+  pythonImportsCheck = [ "wormhole_transit_relay" ];
 
-  checkPhase = ''
-    trial -j$NIX_BUILD_CORES wormhole_transit_relay
-  '';
+  nativeCheckInputs = [
+    pytestCheckHook
+    mock
+    twisted
+  ];
 
-  meta = with lib; {
+  meta = {
     description = "Transit Relay server for Magic-Wormhole";
     homepage = "https://github.com/magic-wormhole/magic-wormhole-transit-relay";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    changelog = "https://github.com/magic-wormhole/magic-wormhole-transit-relay/blob/${version}/NEWS.md";
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.mjoerg ];
   };
 }
diff --git a/pkgs/development/python-modules/magic-wormhole/default.nix b/pkgs/development/python-modules/magic-wormhole/default.nix
index 7b89f29b76e21..528b710632740 100644
--- a/pkgs/development/python-modules/magic-wormhole/default.nix
+++ b/pkgs/development/python-modules/magic-wormhole/default.nix
@@ -1,49 +1,50 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, spake2
-, pynacl
-, six
-, attrs
-, twisted
-, autobahn
-, automat
-, tqdm
-, click
-, humanize
-, txtorcon
+  # dependencies
+  spake2,
+  pynacl,
+  six,
+  attrs,
+  twisted,
+  autobahn,
+  automat,
+  tqdm,
+  click,
+  humanize,
+  iterable-io,
+  txtorcon,
+  zipstream-ng,
 
-# optional-dependencies
-, noiseprotocol
+  # optional-dependencies
+  noiseprotocol,
 
-# tests
-, nettools
-, unixtools
-, mock
-, magic-wormhole-transit-relay
-, magic-wormhole-mailbox-server
-, pytestCheckHook
+  # tests
+  nettools,
+  unixtools,
+  mock,
+  magic-wormhole-transit-relay,
+  magic-wormhole-mailbox-server,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "magic-wormhole";
   version = "0.14.0";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-AG0jn4i/98N7wu/2CgBOJj+vklj3J5GS0Gugyc7WsIA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     spake2
@@ -56,15 +57,13 @@ buildPythonPackage rec {
     tqdm
     click
     humanize
+    iterable-io
     txtorcon
-  ]
-  ++ autobahn.optional-dependencies.twisted
-  ++ twisted.optional-dependencies.tls;
+    zipstream-ng
+  ] ++ autobahn.optional-dependencies.twisted ++ twisted.optional-dependencies.tls;
 
   passthru.optional-dependencies = {
-    dilation = [
-      noiseprotocol
-    ];
+    dilation = [ noiseprotocol ];
   };
 
   nativeCheckInputs = [
@@ -72,9 +71,7 @@ buildPythonPackage rec {
     magic-wormhole-transit-relay
     magic-wormhole-mailbox-server
     pytestCheckHook
-  ]
-  ++ passthru.optional-dependencies.dilation
-  ++ lib.optionals stdenv.isDarwin [ unixtools.locale ];
+  ] ++ passthru.optional-dependencies.dilation ++ lib.optionals stdenv.isDarwin [ unixtools.locale ];
 
   disabledTests = lib.optionals stdenv.isDarwin [
     # These tests doesn't work within Darwin's sandbox
@@ -111,12 +108,12 @@ buildPythonPackage rec {
     install -Dm644 docs/wormhole.1 $out/share/man/man1/wormhole.1
   '';
 
-  meta = with lib; {
+  meta = {
     changelog = "https://github.com/magic-wormhole/magic-wormhole/blob/${version}/NEWS.md";
     description = "Securely transfer data between computers";
     homepage = "https://github.com/magic-wormhole/magic-wormhole";
-    license = licenses.mit;
-    maintainers = with maintainers; [ asymmetric ];
+    license = lib.licenses.mit;
+    maintainers = [ lib.maintainers.mjoerg ];
     mainProgram = "wormhole";
   };
 }
diff --git a/pkgs/development/python-modules/magic/default.nix b/pkgs/development/python-modules/magic/default.nix
index 45fd740e2e89d..fac5e681fbb83 100644
--- a/pkgs/development/python-modules/magic/default.nix
+++ b/pkgs/development/python-modules/magic/default.nix
@@ -1,6 +1,8 @@
-{ lib, stdenv
-, buildPythonPackage
-, pkgs
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pkgs,
 }:
 
 buildPythonPackage {
@@ -20,9 +22,8 @@ buildPythonPackage {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Python wrapper around libmagic";
+    description = "Python wrapper around libmagic";
     homepage = "http://www.darwinsys.com/file/";
     license = licenses.lgpl2;
   };
-
 }
diff --git a/pkgs/development/python-modules/magicgui/default.nix b/pkgs/development/python-modules/magicgui/default.nix
index 2e8f1b529a14b..06476b9d92433 100644
--- a/pkgs/development/python-modules/magicgui/default.nix
+++ b/pkgs/development/python-modules/magicgui/default.nix
@@ -1,15 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools-scm
-, pytestCheckHook
-, typing-extensions
-, qtpy
-, pyside2
-, psygnal
-, docstring-parser
-, napari # a reverse-dependency, for tests
-}: buildPythonPackage rec {
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools-scm,
+  pytestCheckHook,
+  typing-extensions,
+  qtpy,
+  pyside2,
+  psygnal,
+  docstring-parser,
+  napari, # a reverse-dependency, for tests
+}:
+buildPythonPackage rec {
   pname = "magicgui";
   version = "0.5.1";
 
@@ -23,12 +25,20 @@
   };
 
   nativeBuildInputs = [ setuptools-scm ];
-  propagatedBuildInputs = [ typing-extensions qtpy pyside2 psygnal docstring-parser ];
+  propagatedBuildInputs = [
+    typing-extensions
+    qtpy
+    pyside2
+    psygnal
+    docstring-parser
+  ];
   nativeCheckInputs = [ pytestCheckHook ];
 
   doCheck = false; # Reports "Fatal Python error"
 
-  passthru.tests = { inherit napari; };
+  passthru.tests = {
+    inherit napari;
+  };
 
   meta = with lib; {
     description = "Build GUIs from python functions, using magic.  (napari/magicgui)";
diff --git a/pkgs/development/python-modules/magika/default.nix b/pkgs/development/python-modules/magika/default.nix
index f2a7cbd85a117..0c670a8137411 100644
--- a/pkgs/development/python-modules/magika/default.nix
+++ b/pkgs/development/python-modules/magika/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchPypi
-, magika
-, numpy
-, onnxruntime
-, poetry-core
-, python-dotenv
-, pythonOlder
-, stdenv
-, tabulate
-, testers
-, tqdm
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchPypi,
+  magika,
+  numpy,
+  onnxruntime,
+  poetry-core,
+  python-dotenv,
+  pythonOlder,
+  stdenv,
+  tabulate,
+  testers,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-Q9wRU6FjcyciWmJqFVDAo5Wh1F6jPsH11GubCAI4vuA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     click
diff --git a/pkgs/development/python-modules/mahotas/default.nix b/pkgs/development/python-modules/mahotas/default.nix
index e5ad5a283db7a..144aae89c79d4 100644
--- a/pkgs/development/python-modules/mahotas/default.nix
+++ b/pkgs/development/python-modules/mahotas/default.nix
@@ -1,25 +1,25 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pillow
-, scipy
-, numpy
-, pytestCheckHook
-, imread
-, lib
-, stdenv
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  pillow,
+  scipy,
+  numpy,
+  pytestCheckHook,
+  imread,
+  lib,
+  stdenv,
 }:
 
 buildPythonPackage rec {
   pname = "mahotas";
-  version = "1.4.13";
+  version = "1.4.14";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "luispedro";
     repo = "mahotas";
-    rev = "v${version}";
-    hash = "sha256-AmctF/9hLgHw6FUm0s61eCdcc12lBa1t0OkXclis//w=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-9tjk3rhcfAYROZKwmwHzHAN7Ui0EgmxPErQyF//K0r8=";
   };
 
   propagatedBuildInputs = [
@@ -31,11 +31,8 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ pytestCheckHook ];
 
-
   # mahotas/_morph.cpp:864:10: error: no member named 'random_shuffle' in namespace 'std'
-  env = lib.optionalAttrs stdenv.cc.isClang {
-    NIX_CFLAGS_COMPILE = "-std=c++14";
-  };
+  env = lib.optionalAttrs stdenv.cc.isClang { NIX_CFLAGS_COMPILE = "-std=c++14"; };
 
   # tests must be run in the build directory
   preCheck = ''
@@ -50,9 +47,7 @@ buildPythonPackage rec {
     "test_haralick3d"
   ];
 
-  pythonImportsCheck = [
-    "mahotas"
-  ];
+  pythonImportsCheck = [ "mahotas" ];
 
   disabled = stdenv.isi686; # Failing tests
 
diff --git a/pkgs/development/python-modules/mail-parser/default.nix b/pkgs/development/python-modules/mail-parser/default.nix
index 5364fd25c21fe..5a3084ae84cf9 100644
--- a/pkgs/development/python-modules/mail-parser/default.nix
+++ b/pkgs/development/python-modules/mail-parser/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, python, glibcLocales, fetchFromGitHub, six, simplejson }:
+{
+  lib,
+  buildPythonPackage,
+  python,
+  glibcLocales,
+  fetchFromGitHub,
+  six,
+  simplejson,
+}:
 
 buildPythonPackage rec {
   pname = "mail-parser";
@@ -15,7 +23,10 @@ buildPythonPackage rec {
   LC_ALL = "en_US.utf-8";
 
   nativeBuildInputs = [ glibcLocales ];
-  propagatedBuildInputs = [ simplejson six ];
+  propagatedBuildInputs = [
+    simplejson
+    six
+  ];
 
   # Taken from .travis.yml
   checkPhase = ''
@@ -27,7 +38,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A mail parser for python 2 and 3";
+    description = "Mail parser for python 2 and 3";
     mainProgram = "mailparser";
     homepage = "https://github.com/SpamScope/mail-parser";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/mailcap-fix/default.nix b/pkgs/development/python-modules/mailcap-fix/default.nix
index 3d644bec3a93c..102d1f51a144a 100644
--- a/pkgs/development/python-modules/mailcap-fix/default.nix
+++ b/pkgs/development/python-modules/mailcap-fix/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,8 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A patched mailcap module that conforms to RFC 1524";
+    description = "Patched mailcap module that conforms to RFC 1524";
     homepage = "https://github.com/michael-lazar/mailcap_fix";
     license = licenses.unlicense;
   };
-
 }
diff --git a/pkgs/development/python-modules/mailchecker/default.nix b/pkgs/development/python-modules/mailchecker/default.nix
index 1f038308a76b9..2216aa7937cde 100644
--- a/pkgs/development/python-modules/mailchecker/default.nix
+++ b/pkgs/development/python-modules/mailchecker/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "mailchecker";
-  version = "6.0.4";
+  version = "6.0.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-XtZOk3KgIzu9vwI0HnoklGQVZ42KVOPQBXxJ1fpfJjA=";
+    hash = "sha256-jdcewXJO8I83zvAKb4UbKmuQC4SUbtS5H+RmFDTNwcI=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/mailchimp/default.nix b/pkgs/development/python-modules/mailchimp/default.nix
index 6308e7e8e6bba..fc7e4a212b7c6 100644
--- a/pkgs/development/python-modules/mailchimp/default.nix
+++ b/pkgs/development/python-modules/mailchimp/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, docopt
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  docopt,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,8 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A CLI client and Python API library for the MailChimp email platform";
+    description = "CLI client and Python API library for the MailChimp email platform";
     homepage = "http://apidocs.mailchimp.com/api/2.0/";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/mailmanclient/default.nix b/pkgs/development/python-modules/mailmanclient/default.nix
index bb584d6797f61..4a6091aab2711 100644
--- a/pkgs/development/python-modules/mailmanclient/default.nix
+++ b/pkgs/development/python-modules/mailmanclient/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -18,18 +19,12 @@ buildPythonPackage rec {
     hash = "sha256-Y1gcYEyn6sAhSJwVqsygaklY63b2ZXTG+rBerGVN2Fc=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ requests ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   # Tests require a running Mailman instance
   doCheck = false;
 
-  pythonImportsCheck = [
-    "mailmanclient"
-  ];
+  pythonImportsCheck = [ "mailmanclient" ];
 
   meta = with lib; {
     description = "REST client for driving Mailman 3";
diff --git a/pkgs/development/python-modules/mailsuite/default.nix b/pkgs/development/python-modules/mailsuite/default.nix
index 0069defa4b890..4b0aeca1431b2 100644
--- a/pkgs/development/python-modules/mailsuite/default.nix
+++ b/pkgs/development/python-modules/mailsuite/default.nix
@@ -1,16 +1,17 @@
-{ buildPythonPackage
-, fetchPypi
-, pythonOlder
-, lib
-
-# pythonPackages
-, hatchling
-, dnspython
-, expiringdict
-, html2text
-, mail-parser
-, imapclient
-, publicsuffix2
+{
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  lib,
+
+  # pythonPackages
+  hatchling,
+  dnspython,
+  expiringdict,
+  html2text,
+  mail-parser,
+  imapclient,
+  publicsuffix2,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-R4nAphydamZojQR7pro5Y3dZg3nYK0+X5lFBMJUpCfw=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     dnspython
@@ -43,7 +42,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "A Python package to simplify receiving, parsing, and sending email";
+    description = "Python package to simplify receiving, parsing, and sending email";
     homepage = "https://seanthegeek.github.io/mailsuite/";
     maintainers = with lib.maintainers; [ talyz ];
     license = lib.licenses.asl20;
diff --git a/pkgs/development/python-modules/maison/default.nix b/pkgs/development/python-modules/maison/default.nix
index d05376bcb2794..4b94862ce3324 100644
--- a/pkgs/development/python-modules/maison/default.nix
+++ b/pkgs/development/python-modules/maison/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, poetry-core
-, pydantic
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, toml
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  poetry-core,
+  pydantic,
+  pytestCheckHook,
+  pythonOlder,
+  toml,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +24,10 @@ buildPythonPackage rec {
     hash = "sha256-2hUmk91wr5o2cV3un2nMoXDG+3GT7SaIOKY+QaZY3nw=";
   };
 
-  pythonRelaxDeps = [
-    "pydantic"
-  ];
+  pythonRelaxDeps = [ "pydantic" ];
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -39,13 +36,9 @@ buildPythonPackage rec {
     toml
   ];
 
-  checkInputs = [
-    pytestCheckHook
-  ];
+  checkInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "maison"
-  ];
+  pythonImportsCheck = [ "maison" ];
 
   meta = with lib; {
     description = "Library to read settings from config files";
diff --git a/pkgs/development/python-modules/makefun/default.nix b/pkgs/development/python-modules/makefun/default.nix
index bc26604826acb..ece4f85008c67 100644
--- a/pkgs/development/python-modules/makefun/default.nix
+++ b/pkgs/development/python-modules/makefun/default.nix
@@ -1,13 +1,15 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-
-# build-system
-, setuptools
-, setuptools-scm
-
-# tests
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonAtLeast,
+
+  # build-system
+  setuptools,
+  setuptools-scm,
+
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,8 +32,11 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  disabledTests = lib.optionals (pythonAtLeast "3.12") [
+    # https://github.com/smarie/python-makefun/issues/102
+    "test_args_order_and_kind"
   ];
 
   pythonImportsCheck = [ "makefun" ];
diff --git a/pkgs/development/python-modules/mako/default.nix b/pkgs/development/python-modules/mako/default.nix
index a1629b4cf3668..2e31d43b92b70 100644
--- a/pkgs/development/python-modules/mako/default.nix
+++ b/pkgs/development/python-modules/mako/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, isPyPy
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  isPyPy,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# propagates
-, markupsafe
+  # propagates
+  markupsafe,
 
-# optional-dependencies
-, babel
-, lingua
+  # optional-dependencies
+  babel,
+  lingua,
 
-# tests
-, chameleon
-, mock
-, pytestCheckHook
+  # tests
+  chameleon,
+  mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "mako";
-  version = "1.3.3";
+  version = "1.3.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -30,24 +31,16 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "Mako";
     inherit version;
-    hash = "sha256-4WwB2aucEfcpDu8c/vwJP7WkXuSj2gni/sLk0brlTnM=";
+    hash = "sha256-SNvCBWjB0naiaYs22Wj6dhYb8ScZSQfqb8WU+oH5Q7w=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    markupsafe
-  ];
+  propagatedBuildInputs = [ markupsafe ];
 
   passthru.optional-dependencies = {
-    babel = [
-      babel
-    ];
-    lingua = [
-      lingua
-    ];
+    babel = [ babel ];
+    lingua = [ lingua ];
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/malduck/default.nix b/pkgs/development/python-modules/malduck/default.nix
index 0f15b6a1066cb..204003bdddbc7 100644
--- a/pkgs/development/python-modules/malduck/default.nix
+++ b/pkgs/development/python-modules/malduck/default.nix
@@ -1,34 +1,38 @@
-{ lib
-, buildPythonPackage
-, capstone
-, click
-, cryptography
-, dnfile
-, fetchFromGitHub
-, pefile
-, pycryptodomex
-, pyelftools
-, pythonOlder
-, pytestCheckHook
-, typing-extensions
-, yara-python
+{
+  lib,
+  buildPythonPackage,
+  capstone,
+  click,
+  cryptography,
+  dnfile,
+  fetchFromGitHub,
+  pefile,
+  pycryptodomex,
+  pyelftools,
+  pythonOlder,
+  setuptools,
+  pytestCheckHook,
+  typing-extensions,
+  yara-python,
 }:
 
 buildPythonPackage rec {
   pname = "malduck";
-  version = "4.4.0";
-  format = "setuptools";
+  version = "4.4.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "CERT-Polska";
-    repo = pname;
+    repo = "malduck";
     rev = "refs/tags/v${version}";
-    hash = "sha256-CXHbU1AudvOJrG9MKYDQXeEtwrJODRPQtK43dQzZASE=";
+    hash = "sha256-Btx0HxiZWrb0TDpBokQGtBE2EDK0htONe/DwqlPgAd4=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     capstone
     click
     cryptography
@@ -40,26 +44,16 @@ buildPythonPackage rec {
     yara-python
   ];
 
-  postPatch = ''
-    substituteInPlace requirements.txt \
-      --replace "pefile==2019.4.18" "pefile" \
-      --replace "dnfile==0.11.0" "dnfile"
-  '';
-
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "malduck"
-  ];
+  pythonImportsCheck = [ "malduck" ];
 
   meta = with lib; {
     description = "Helper for malware analysis";
-    mainProgram = "malduck";
     homepage = "https://github.com/CERT-Polska/malduck";
     changelog = "https://github.com/CERT-Polska/malduck/releases/tag/v${version}";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "malduck";
   };
 }
diff --git a/pkgs/development/python-modules/managesieve/default.nix b/pkgs/development/python-modules/managesieve/default.nix
index 1f0c911d5df8e..0fbe908805515 100644
--- a/pkgs/development/python-modules/managesieve/default.nix
+++ b/pkgs/development/python-modules/managesieve/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,23 +19,20 @@ buildPythonPackage rec {
     hash = "sha256-2CCb6h69H58YT1byj/fkrfzGsMUbr0GHpJLcMpsSE/M=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "managesieve"
-  ];
+  pythonImportsCheck = [ "managesieve" ];
 
   meta = with lib; {
     description = "ManageSieve client library for remotely managing Sieve scripts";
     homepage = "https://managesieve.readthedocs.io/";
     # PSFL for the python module, GPLv3 only for sieveshell
-    license = with licenses; [ gpl3Only psfl ];
+    license = with licenses; [
+      gpl3Only
+      psfl
+    ];
     maintainers = with maintainers; [ dadada ];
     mainProgram = "sieveshell";
   };
diff --git a/pkgs/development/python-modules/mando/default.nix b/pkgs/development/python-modules/mando/default.nix
index dc48dd18ebe15..9d60bf3eddb87 100644
--- a/pkgs/development/python-modules/mando/default.nix
+++ b/pkgs/development/python-modules/mando/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-# Python deps
-, six
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  # Python deps
+  six,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,21 +21,13 @@ buildPythonPackage rec {
     hash = "sha256-Ylrrfo57jqGuWEqCa5RyTT9AagBpUvAfviHkyJPFv08=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  pythonImportsCheck = [
-    "mando"
-  ];
+  pythonImportsCheck = [ "mando" ];
 
   meta = with lib; {
     description = "Create Python CLI apps with little to no effort at all";
diff --git a/pkgs/development/python-modules/mandown/default.nix b/pkgs/development/python-modules/mandown/default.nix
index eae43bc8d9510..41c059aa1da2a 100644
--- a/pkgs/development/python-modules/mandown/default.nix
+++ b/pkgs/development/python-modules/mandown/default.nix
@@ -1,39 +1,40 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonRelaxDepsHook
-, beautifulsoup4
-, comicon
-, feedparser
-, filetype
-, lxml
-, natsort
-, pillow
-, python-slugify
-, requests
-, typer
-, pyside6
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  beautifulsoup4,
+  comicon,
+  feedparser,
+  filetype,
+  lxml,
+  natsort,
+  nix-update-script,
+  pillow,
+  python-slugify,
+  requests,
+  typer,
+  pyside6,
 }:
 
 buildPythonPackage rec {
   pname = "mandown";
-  version = "1.7.0";
+  version = "1.9.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "potatoeggy";
     repo = "mandown";
     rev = "refs/tags/v${version}";
-    hash = "sha256-oHa7/2fv+BG5KIKFIICYBqddub5SokDvAI6frbVwGSo=";
+    hash = "sha256-K5/ij0VzQJGj+VvASllaV8/YBCiu2Lv+JdeSHLYMV7I=";
   };
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = [
+    "lxml"
     "pillow"
     "typer"
   ];
@@ -52,9 +53,8 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    gui = [
-      pyside6
-    ];
+    gui = [ pyside6 ];
+    updateScript = nix-update-script { };
   };
 
   pythonImportsCheck = [ "mandown" ];
diff --git a/pkgs/development/python-modules/manga-ocr/default.nix b/pkgs/development/python-modules/manga-ocr/default.nix
index 7f0371c356ae3..03de5065e011c 100644
--- a/pkgs/development/python-modules/manga-ocr/default.nix
+++ b/pkgs/development/python-modules/manga-ocr/default.nix
@@ -60,6 +60,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/kha-white/manga-ocr";
     changelog = "https://github.com/kha-white/manga-ocr/releases/tag/${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [laurent-f1z1];
+    maintainers = with maintainers; [ laurent-f1z1 ];
   };
 }
diff --git a/pkgs/development/python-modules/manhole/default.nix b/pkgs/development/python-modules/manhole/default.nix
index 94aa5f4435966..8dab6aa755209 100644
--- a/pkgs/development/python-modules/manhole/default.nix
+++ b/pkgs/development/python-modules/manhole/default.nix
@@ -1,9 +1,11 @@
-{ lib, stdenv
-, buildPythonPackage
-, fetchPypi
-, pytest
-, requests
-, process-tests
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  requests,
+  process-tests,
 }:
 
 buildPythonPackage rec {
@@ -25,7 +27,11 @@ buildPythonPackage rec {
   # https://github.com/ionelmc/python-manhole/issues/54 is fixed
   doCheck = false;
 
-  nativeCheckInputs = [ pytest requests process-tests ];
+  nativeCheckInputs = [
+    pytest
+    requests
+    process-tests
+  ];
   checkPhase = ''
     # Based on its tox.ini
     export PYTHONUNBUFFERED=yes
diff --git a/pkgs/development/python-modules/manifest-ml/default.nix b/pkgs/development/python-modules/manifest-ml/default.nix
index 4465066682c9a..7eeec2a60fee1 100644
--- a/pkgs/development/python-modules/manifest-ml/default.nix
+++ b/pkgs/development/python-modules/manifest-ml/default.nix
@@ -1,29 +1,29 @@
-{ lib
-, accelerate
-, aiohttp
-, buildPythonPackage
-, fastapi
-, fetchFromGitHub
-, flask
-, numpy
-, pg8000
-, pillow
-, pydantic
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, redis
-, requests
-, sentence-transformers
-, setuptools
-, sqlalchemy
-, sqlitedict
-, tenacity
-, tiktoken
-, torch
-, transformers
-, uvicorn
-, xxhash
+{
+  lib,
+  accelerate,
+  aiohttp,
+  buildPythonPackage,
+  fastapi,
+  fetchFromGitHub,
+  flask,
+  numpy,
+  pg8000,
+  pillow,
+  pydantic,
+  pytestCheckHook,
+  pythonOlder,
+  redis,
+  requests,
+  sentence-transformers,
+  setuptools,
+  sqlalchemy,
+  sqlitedict,
+  tenacity,
+  tiktoken,
+  torch,
+  transformers,
+  uvicorn,
+  xxhash,
 }:
 
 buildPythonPackage rec {
@@ -42,12 +42,9 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  pythonRelaxDeps = [
-    "pydantic"
-  ];
+  pythonRelaxDeps = [ "pydantic" ];
 
   build-system = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -77,9 +74,7 @@ buildPythonPackage rec {
       fastapi
       uvicorn
     ];
-    diffusers = [
-      pillow
-    ];
+    diffusers = [ pillow ];
     gcp = [
       pg8000
       # cloud-sql-python-connector
@@ -116,9 +111,7 @@ buildPythonPackage rec {
     "test_timing"
   ];
 
-  pythonImportsCheck = [
-    "manifest"
-  ];
+  pythonImportsCheck = [ "manifest" ];
 
   meta = with lib; {
     description = "Manifest for Prompting Foundation Models";
diff --git a/pkgs/development/python-modules/manifestoo-core/default.nix b/pkgs/development/python-modules/manifestoo-core/default.nix
index e0101a6672aa4..b3bdfbf34fab0 100644
--- a/pkgs/development/python-modules/manifestoo-core/default.nix
+++ b/pkgs/development/python-modules/manifestoo-core/default.nix
@@ -1,27 +1,26 @@
-{ buildPythonPackage
-, typing-extensions
-, fetchPypi
-, lib
-, nix-update-script
-, hatch-vcs
-, pythonOlder
-, importlib-resources
+{
+  buildPythonPackage,
+  typing-extensions,
+  fetchPypi,
+  lib,
+  nix-update-script,
+  hatch-vcs,
+  pythonOlder,
+  importlib-resources,
 }:
 
 buildPythonPackage rec {
   pname = "manifestoo-core";
-  version = "1.5";
+  version = "1.6";
   format = "pyproject";
 
   src = fetchPypi {
     inherit version;
     pname = "manifestoo_core";
-    hash = "sha256-a3v2WfJ42bh2LlAsH9ekpLFsAlOiTTLGNknTW2mTxCI=";
+    hash = "sha256-gOWu01Z1lxhMJELyxvU5A5AskVEqCoLV/auydM5/QCE=";
   };
 
-  nativeBuildInputs = [
-    hatch-vcs
-  ];
+  nativeBuildInputs = [ hatch-vcs ];
 
   propagatedBuildInputs =
     lib.optionals (pythonOlder "3.7") [ importlib-resources ]
@@ -30,7 +29,7 @@ buildPythonPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A library to reason about Odoo addons manifests";
+    description = "Library to reason about Odoo addons manifests";
     homepage = "https://github.com/acsone/manifestoo-core";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ yajo ];
diff --git a/pkgs/development/python-modules/manifestoo/default.nix b/pkgs/development/python-modules/manifestoo/default.nix
index 63383eb76ee09..140c78d26632d 100644
--- a/pkgs/development/python-modules/manifestoo/default.nix
+++ b/pkgs/development/python-modules/manifestoo/default.nix
@@ -1,15 +1,16 @@
-{ buildPythonPackage
-, fetchPypi
-, hatch-vcs
-, importlib-metadata
-, lib
-, manifestoo-core
-, nix-update-script
-, pytestCheckHook
-, pythonOlder
-, textual
-, typer
-, typing-extensions
+{
+  buildPythonPackage,
+  fetchPypi,
+  hatch-vcs,
+  importlib-metadata,
+  lib,
+  manifestoo-core,
+  nix-update-script,
+  pytestCheckHook,
+  pythonOlder,
+  textual,
+  typer,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -22,26 +23,23 @@ buildPythonPackage rec {
     hash = "sha256-gCGchc+fShBgt6fVJAx80+QnH+vxWo3jsIyePkFwhYE=";
   };
 
-  nativeBuildInputs = [
-    hatch-vcs
-  ];
+  nativeBuildInputs = [ hatch-vcs ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  propagatedBuildInputs = [
-    manifestoo-core
-    textual
-    typer
-  ]
-  ++ typer.passthru.optional-dependencies.all
-  ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
+  propagatedBuildInputs =
+    [
+      manifestoo-core
+      textual
+      typer
+    ]
+    ++ typer.passthru.optional-dependencies.all
+    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   passthru.updateScript = nix-update-script { };
 
   meta = with lib; {
-    description = "A tool to reason about Odoo addons manifests";
+    description = "Tool to reason about Odoo addons manifests";
     homepage = "https://github.com/acsone/manifestoo";
     license = licenses.mit;
     maintainers = with maintainers; [ yajo ];
diff --git a/pkgs/development/python-modules/manim-slides/default.nix b/pkgs/development/python-modules/manim-slides/default.nix
index 8f89346b81b8f..7d9292b54224e 100644
--- a/pkgs/development/python-modules/manim-slides/default.nix
+++ b/pkgs/development/python-modules/manim-slides/default.nix
@@ -1,40 +1,40 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-, hatchling
-, pythonRelaxDepsHook
-, manim
-, ffmpeg
+  hatchling,
+  manim,
+  ffmpeg,
 
-, av
-, click
-, click-default-group
-, jinja2
-, lxml
-, numpy
-, opencv4
-, pillow
-, pydantic
-, pydantic-extra-types
-, python-pptx
-, qtpy
-, requests
-, rich
-, rtoml
-, tqdm
-, pyqt6
+  av,
+  click,
+  click-default-group,
+  jinja2,
+  lxml,
+  numpy,
+  opencv4,
+  pillow,
+  pydantic,
+  pydantic-extra-types,
+  python-pptx,
+  qtpy,
+  requests,
+  rich,
+  rtoml,
+  tqdm,
+  pyqt6,
 
   # Optional dependencies
-, ipython
+  ipython,
 
   # As Module or application?
-, withGui ? false
+  withGui ? false,
 }:
 buildPythonPackage rec {
   pname = "manim-slides";
-  version = "5.1.5";
+  version = "5.1.7";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -43,46 +43,49 @@ buildPythonPackage rec {
     owner = "jeertmans";
     repo = "manim-slides";
     rev = "refs/tags/v${version}";
-    hash = "sha256-YOveWGukizXvEUOhId7UDJema64ypbg7w06JzrTsKjw=";
+    hash = "sha256-egQYL4Qvs1fQcJ5WEM461TSYqs2XN39wbyfx9uEFeIs=";
   };
 
   build-system = [
     hatchling
-    pythonRelaxDepsHook
   ];
 
   pythonRemoveDeps = [ "opencv-python" ];
 
-  pythonRelaxDeps = [ "rtoml" "qtpy" ];
+  pythonRelaxDeps = [
+    "rtoml"
+    "qtpy"
+  ];
 
-  dependencies = [
-    av
-    click
-    click-default-group
-    jinja2
-    lxml
-    numpy
-    opencv4
-    pillow
-    pydantic
-    pydantic-extra-types
-    python-pptx
-    qtpy
-    requests
-    rich
-    rtoml
-    tqdm
+  dependencies =
+    [
+      av
+      click
+      click-default-group
+      jinja2
+      lxml
+      numpy
+      opencv4
+      pillow
+      pydantic
+      pydantic-extra-types
+      python-pptx
+      qtpy
+      requests
+      rich
+      rtoml
+      tqdm
 
-    # avconv is a potential alternative
-    ffmpeg
-    # This could also be manimgl, but that is not (yet) packaged
-    manim
-  ]
-  ++ lib.lists.optional (!withGui)
-    ipython
-  ++ lib.lists.optional withGui
-    # dependency of qtpy (could also be pyqt5)
-    pyqt6;
+      # avconv is a potential alternative
+      ffmpeg
+      # This could also be manimgl, but that is not (yet) packaged
+      manim
+    ]
+    ++ lib.lists.optional (!withGui) ipython
+    ++
+      lib.lists.optional withGui
+        # dependency of qtpy (could also be pyqt5)
+        pyqt6;
 
   pythonImportsCheck = [ "manim_slides" ];
 
diff --git a/pkgs/development/python-modules/manim/default.nix b/pkgs/development/python-modules/manim/default.nix
index 09f2953c362e4..545f9df3c5a54 100644
--- a/pkgs/development/python-modules/manim/default.nix
+++ b/pkgs/development/python-modules/manim/default.nix
@@ -1,43 +1,43 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-
-, cairo
-, ffmpeg
-, texliveInfraOnly
-
-, click
-, click-default-group
-, cloup
-, colour
-, grpcio
-, grpcio-tools
-, importlib-metadata
-, isosurfaces
-, jupyterlab
-, manimpango
-, mapbox-earcut
-, moderngl
-, moderngl-window
-, networkx
-, numpy
-, pillow
-, pycairo
-, pydub
-, pygments
-, rich
-, scipy
-, screeninfo
-, skia-pathops
-, srt
-, svgelements
-, tqdm
-, watchdog
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+
+  cairo,
+  ffmpeg,
+  texliveInfraOnly,
+
+  click,
+  click-default-group,
+  cloup,
+  colour,
+  grpcio,
+  grpcio-tools,
+  importlib-metadata,
+  isosurfaces,
+  jupyterlab,
+  manimpango,
+  mapbox-earcut,
+  moderngl,
+  moderngl-window,
+  networkx,
+  numpy,
+  pillow,
+  pycairo,
+  pydub,
+  pygments,
+  rich,
+  scipy,
+  screeninfo,
+  skia-pathops,
+  srt,
+  svgelements,
+  tqdm,
+  watchdog,
 }:
 
 let
@@ -52,36 +52,137 @@ let
   #   https://github.com/yihui/tinytex/blob/master/tools/pkgs-custom.txt
   #
   # these two combined add up to:
-  manim-tinytex = texliveInfraOnly.withPackages (ps: with ps; [
-
-    # tinytex
-    amsfonts amsmath atbegshi atveryend auxhook babel bibtex
-    bigintcalc bitset booktabs cm dehyph dvipdfmx dvips ec epstopdf-pkg etex
-    etexcmds etoolbox euenc everyshi fancyvrb filehook firstaid float fontspec
-    framed geometry gettitlestring glyphlist graphics graphics-cfg graphics-def
-    grffile helvetic hycolor hyperref hyph-utf8 iftex inconsolata infwarerr
-    intcalc knuth-lib kvdefinekeys kvoptions kvsetkeys l3backend l3kernel
-    l3packages latex latex-amsmath-dev latex-bin latex-fonts latex-tools-dev
-    latexconfig latexmk letltxmacro lm lm-math ltxcmds lua-alt-getopt luahbtex
-    lualatex-math lualibs luaotfload luatex mdwtools metafont mfware natbib
-    pdfescape pdftex pdftexcmds plain psnfss refcount rerunfilecheck stringenc
-    tex tex-ini-files times tipa tools unicode-data unicode-math uniquecounter
-    url xcolor xetex xetexconfig xkeyval xunicode zapfding
-
-    # manim-latex
-    standalone everysel preview doublestroke ms setspace rsfs relsize ragged2e
-    fundus-calligra microtype wasysym physics dvisvgm jknapltx wasy cm-super
-    babel-english gnu-freefont mathastext cbfonts-fd
-  ]);
-
-in buildPythonPackage rec {
+  manim-tinytex = texliveInfraOnly.withPackages (
+    ps: with ps; [
+
+      # tinytex
+      amsfonts
+      amsmath
+      atbegshi
+      atveryend
+      auxhook
+      babel
+      bibtex
+      bigintcalc
+      bitset
+      booktabs
+      cm
+      dehyph
+      dvipdfmx
+      dvips
+      ec
+      epstopdf-pkg
+      etex
+      etexcmds
+      etoolbox
+      euenc
+      everyshi
+      fancyvrb
+      filehook
+      firstaid
+      float
+      fontspec
+      framed
+      geometry
+      gettitlestring
+      glyphlist
+      graphics
+      graphics-cfg
+      graphics-def
+      grffile
+      helvetic
+      hycolor
+      hyperref
+      hyph-utf8
+      iftex
+      inconsolata
+      infwarerr
+      intcalc
+      knuth-lib
+      kvdefinekeys
+      kvoptions
+      kvsetkeys
+      l3backend
+      l3kernel
+      l3packages
+      latex
+      latex-amsmath-dev
+      latex-bin
+      latex-fonts
+      latex-tools-dev
+      latexconfig
+      latexmk
+      letltxmacro
+      lm
+      lm-math
+      ltxcmds
+      lua-alt-getopt
+      luahbtex
+      lualatex-math
+      lualibs
+      luaotfload
+      luatex
+      mdwtools
+      metafont
+      mfware
+      natbib
+      pdfescape
+      pdftex
+      pdftexcmds
+      plain
+      psnfss
+      refcount
+      rerunfilecheck
+      stringenc
+      tex
+      tex-ini-files
+      times
+      tipa
+      tools
+      unicode-data
+      unicode-math
+      uniquecounter
+      url
+      xcolor
+      xetex
+      xetexconfig
+      xkeyval
+      xunicode
+      zapfding
+
+      # manim-latex
+      standalone
+      everysel
+      preview
+      doublestroke
+      ms
+      setspace
+      rsfs
+      relsize
+      ragged2e
+      fundus-calligra
+      microtype
+      wasysym
+      physics
+      dvisvgm
+      jknapltx
+      wasy
+      cm-super
+      babel-english
+      gnu-freefont
+      mathastext
+      cbfonts-fd
+    ]
+  );
+in
+buildPythonPackage rec {
   pname = "manim";
   pyproject = true;
   version = "0.18.1";
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
-    owner  = "ManimCommunity";
+    owner = "ManimCommunity";
     repo = "manim";
     rev = "refs/tags/v${version}";
     hash = "sha256-o+Wl3NMK6yopcsRVFtZuUE9c1GABa5d8rbQNHDJ4OiQ=";
@@ -89,7 +190,6 @@ in buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = [
@@ -100,9 +200,7 @@ in buildPythonPackage rec {
     "watchdog"
   ];
 
-  patches = [
-    ./pytest-report-header.patch
-  ];
+  patches = [ ./pytest-report-header.patch ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
@@ -142,7 +240,10 @@ in buildPythonPackage rec {
   ];
 
   makeWrapperArgs = [
-    "--prefix" "PATH" ":" (lib.makeBinPath [
+    "--prefix"
+    "PATH"
+    ":"
+    (lib.makeBinPath [
       ffmpeg
       manim-tinytex
     ])
@@ -170,6 +271,6 @@ in buildPythonPackage rec {
     '';
     homepage = "https://github.com/ManimCommunity/manim";
     license = licenses.mit;
-    maintainers = with maintainers; [ friedelino ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/manimpango/default.nix b/pkgs/development/python-modules/manimpango/default.nix
index 9fec1f0aa2431..c0f8e475b3650 100644
--- a/pkgs/development/python-modules/manimpango/default.nix
+++ b/pkgs/development/python-modules/manimpango/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, pkg-config
-, pango
-, cython
-, AppKit
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  pkg-config,
+  pango,
+  cython,
+  AppKit,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,23 +26,13 @@ buildPythonPackage rec {
     hash = "sha256-EBSbvjQyQIXOzvQMbuTwOoV8xSAOYDlCBZ56NLneuQI=";
   };
 
-  nativeBuildInputs = [
-    pkg-config
-  ];
+  nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [
-    pango
-  ] ++ lib.optionals stdenv.isDarwin [
-    AppKit
-  ];
+  buildInputs = [ pango ] ++ lib.optionals stdenv.isDarwin [ AppKit ];
 
-  propagatedBuildInputs = [
-    cython
-  ];
+  propagatedBuildInputs = [ cython ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace setup.cfg \
@@ -52,9 +43,7 @@ buildPythonPackage rec {
     ${python.pythonOnBuildForHost.interpreter} setup.py build_ext --inplace
   '';
 
-  pythonImportsCheck = [
-    "manimpango"
-  ];
+  pythonImportsCheck = [ "manimpango" ];
 
   meta = with lib; {
     description = "Binding for Pango";
diff --git a/pkgs/development/python-modules/manuel/default.nix b/pkgs/development/python-modules/manuel/default.nix
index 8d87e6240982a..89a7dc6605323 100644
--- a/pkgs/development/python-modules/manuel/default.nix
+++ b/pkgs/development/python-modules/manuel/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, python
-, isPy27
-, six
-, zope-testing
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  python,
+  isPy27,
+  six,
+  zope-testing,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,8 @@ buildPythonPackage rec {
   nativeCheckInputs = [ zope-testing ];
 
   meta = with lib; {
-    description = "A documentation builder";
+    description = "Documentation builder";
     homepage = "https://pypi.python.org/pypi/manuel";
     license = licenses.zpl20;
   };
-
 }
diff --git a/pkgs/development/python-modules/manuf/default.nix b/pkgs/development/python-modules/manuf/default.nix
index 19b98a12a17cc..20961a139682d 100644
--- a/pkgs/development/python-modules/manuf/default.nix
+++ b/pkgs/development/python-modules/manuf/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, runCommand
-, python3
-, wireshark-cli
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  runCommand,
+  python3,
+  wireshark-cli,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -33,18 +34,14 @@ buildPythonPackage rec {
     cat ${wireshark-cli}/share/wireshark/wka >> manuf/manuf
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = [
-    "test_update_update"
-  ];
+  disabledTests = [ "test_update_update" ];
 
   pythonImportsCheck = [ "manuf" ];
 
   passthru.tests = {
-    testMacAddress = runCommand "${pname}-test" {} ''
+    testMacAddress = runCommand "${pname}-test" { } ''
       ${python3.pkgs.manuf}/bin/manuf BC:EE:7B:00:00:00 > $out
       [ "$(cat $out | tr -d '\n')" = "Vendor(manuf='ASUSTekC', manuf_long='ASUSTek COMPUTER INC.', comment=None)" ]
     '';
@@ -55,7 +52,10 @@ buildPythonPackage rec {
     description = " Parser library for Wireshark's OUI database";
     mainProgram = "manuf";
     platforms = platforms.linux;
-    license = with licenses; [ lgpl3Plus asl20 ];
+    license = with licenses; [
+      lgpl3Plus
+      asl20
+    ];
     maintainers = with maintainers; [ dsuetin ];
   };
 }
diff --git a/pkgs/development/python-modules/mapbox-earcut/default.nix b/pkgs/development/python-modules/mapbox-earcut/default.nix
index fa4659ae40bd6..b7fe03e24f8af 100644
--- a/pkgs/development/python-modules/mapbox-earcut/default.nix
+++ b/pkgs/development/python-modules/mapbox-earcut/default.nix
@@ -1,12 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchFromGitHub
-, numpy
-, pybind11
-, pytestCheckHook
-, setuptools
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  pybind11,
+  pytestCheckHook,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,17 +28,11 @@ buildPythonPackage rec {
     pybind11
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mapbox_earcut"
-  ];
+  pythonImportsCheck = [ "mapbox_earcut" ];
 
   meta = with lib; {
     homepage = "https://github.com/skogler/mapbox_earcut_python";
@@ -50,6 +44,6 @@ buildPythonPackage rec {
       library, which provides very fast and quite robust triangulation of 2D
       polygons.
     '';
-    maintainers = with maintainers; [ friedelino ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/mapbox/default.nix b/pkgs/development/python-modules/mapbox/default.nix
index 52d3eb2efbbc2..80555ea8c008f 100644
--- a/pkgs/development/python-modules/mapbox/default.nix
+++ b/pkgs/development/python-modules/mapbox/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, boto3
-, cachecontrol
-, fetchFromGitHub
-, iso3166
-, python-dateutil
-, requests
-, responses
-, polyline
-, pytestCheckHook
-, uritemplate
+{
+  lib,
+  buildPythonPackage,
+  boto3,
+  cachecontrol,
+  fetchFromGitHub,
+  iso3166,
+  python-dateutil,
+  requests,
+  responses,
+  polyline,
+  pytestCheckHook,
+  uritemplate,
 }:
 
 buildPythonPackage rec {
@@ -24,8 +25,19 @@ buildPythonPackage rec {
     sha256 = "123wsa4j11ps5pkjgylbmw4gnzh2vi22swgmvy50w26glkszh075";
   };
 
-  propagatedBuildInputs = [ boto3 cachecontrol iso3166 python-dateutil requests polyline uritemplate ];
-  nativeCheckInputs = [ pytestCheckHook responses ];
+  propagatedBuildInputs = [
+    boto3
+    cachecontrol
+    iso3166
+    python-dateutil
+    requests
+    polyline
+    uritemplate
+  ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    responses
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/mapbox/mapbox-sdk-py";
diff --git a/pkgs/development/python-modules/mapclassify/default.nix b/pkgs/development/python-modules/mapclassify/default.nix
new file mode 100644
index 0000000000000..0045daf1bd9fd
--- /dev/null
+++ b/pkgs/development/python-modules/mapclassify/default.nix
@@ -0,0 +1,58 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  geopandas,
+  libpysal,
+  networkx,
+  numpy,
+  pandas,
+  scikit-learn,
+  scipy,
+  setuptools-scm,
+}:
+
+buildPythonPackage rec {
+  pname = "mapclassify";
+  version = "2.6.1";
+  pyproject = true;
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "pysal";
+    repo = "mapclassify";
+    rev = "v${version}";
+    hash = "sha256-lb2Ui6zdx6MQBtBrL/Xj9k7cm6De8aLEuBLZDhPPDnE=";
+  };
+
+  build-system = [ setuptools-scm ];
+
+  propagatedBuildInputs = [
+    networkx
+    numpy
+    pandas
+    scikit-learn
+    scipy
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    geopandas
+    libpysal
+  ];
+
+  # requires network access
+  disabledTestPaths = [ "mapclassify/tests/test_greedy.py" ];
+
+  pythonImportsCheck = [ "mapclassify" ];
+
+  meta = {
+    description = "Classification Schemes for Choropleth Maps";
+    homepage = "https://pysal.org/mapclassify/";
+    license = lib.licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/mariadb/default.nix b/pkgs/development/python-modules/mariadb/default.nix
index cad6afb3cd52d..a2027a59f02f0 100644
--- a/pkgs/development/python-modules/mariadb/default.nix
+++ b/pkgs/development/python-modules/mariadb/default.nix
@@ -1,4 +1,10 @@
-{ buildPythonPackage, fetchPypi, libmysqlclient, lib, pythonOlder }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  libmysqlclient,
+  lib,
+  pythonOlder,
+}:
 
 buildPythonPackage rec {
   pname = "mariadb";
@@ -13,9 +19,7 @@ buildPythonPackage rec {
     extension = "zip";
   };
 
-  nativeBuildInputs = [
-    libmysqlclient
-  ];
+  nativeBuildInputs = [ libmysqlclient ];
 
   # Requires a running MariaDB instance
   doCheck = false;
diff --git a/pkgs/development/python-modules/marimo/default.nix b/pkgs/development/python-modules/marimo/default.nix
index 54f6fd858e35f..220affe7be676 100644
--- a/pkgs/development/python-modules/marimo/default.nix
+++ b/pkgs/development/python-modules/marimo/default.nix
@@ -1,66 +1,70 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, click
-, jedi
-, markdown
-, pymdown-extensions
-, pygments
-, tomlkit
-, uvicorn
-, starlette
-, websockets
-, docutils
-, black
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  black,
+  click,
+  docutils,
+  itsdangerous,
+  jedi,
+  markdown,
+  psutil,
+  pygments,
+  pymdown-extensions,
+  starlette,
+  tomlkit,
+  uvicorn,
+  websockets,
+  pyyaml,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "marimo";
-  version = "0.4.10";
+  version = "0.6.19";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-F6Hf8KPIkXuRhO/1mVHE1wfU6//vbUK1ghoqANmZjag=";
+    hash = "sha256-PQrqOqWhQ4sz2kSX8A4NWhLJegAkCBE7Im+u11KkmB0=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
+    black
     click
+    docutils
+    itsdangerous
     jedi
     markdown
-    pymdown-extensions
+    psutil
     pygments
+    pymdown-extensions
+    starlette
     tomlkit
     uvicorn
-    starlette
     websockets
-    docutils
-    black
+    pyyaml
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "marimo"
-  ];
+  pythonImportsCheck = [ "marimo" ];
 
   meta = with lib; {
-    description = "A reactive Python notebook that's reproducible, git-friendly, and deployable as scripts or apps";
+    description = "Reactive Python notebook that's reproducible, git-friendly, and deployable as scripts or apps";
     homepage = "https://github.com/marimo-team/marimo";
     changelog = "https://github.com/marimo-team/marimo/releases/tag/${version}";
     license = licenses.asl20;
     mainProgram = "marimo";
-    maintainers = with maintainers; [ akshayka dmadisetti ];
+    maintainers = with maintainers; [
+      akshayka
+      dmadisetti
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/marionette-harness/manifestparser.nix b/pkgs/development/python-modules/marionette-harness/manifestparser.nix
index 45e24ec2e1a9e..57f8fbf012544 100644
--- a/pkgs/development/python-modules/marionette-harness/manifestparser.nix
+++ b/pkgs/development/python-modules/marionette-harness/manifestparser.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/marisa-trie/default.nix b/pkgs/development/python-modules/marisa-trie/default.nix
index 544e2196326f6..8001af18c0ff2 100644
--- a/pkgs/development/python-modules/marisa-trie/default.nix
+++ b/pkgs/development/python-modules/marisa-trie/default.nix
@@ -1,27 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cython
-, pytestCheckHook
-, hypothesis
-, readme-renderer
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cython,
+  setuptools,
+  pytestCheckHook,
+  hypothesis,
+  readme-renderer,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "marisa-trie";
-  version = "1.1.0";
-  format = "setuptools";
+  version = "1.2.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-W/Q+0M82r0V4/nsDTPlfUyQ5dmUWaA5L1gNyNhHr1Ws=";
+    pname = "marisa_trie";
+    inherit version;
+    hash = "sha256-/t/GdJf4qidXdWtc9JN1nyRdMh+3iRTOElttddqom18=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     cython
+    setuptools
   ];
 
   nativeCheckInputs = [
@@ -53,9 +57,7 @@ buildPythonPackage rec {
     "test_mmap"
   ];
 
-  pythonImportsCheck = [
-    "marisa_trie"
-  ];
+  pythonImportsCheck = [ "marisa_trie" ];
 
   meta = with lib; {
     description = "Static memory-efficient Trie-like structures for Python based on marisa-trie C++ library";
@@ -63,7 +65,7 @@ buildPythonPackage rec {
       There are official SWIG-based Python bindings included in C++ library distribution.
       This package provides alternative Cython-based pip-installable Python bindings.
     '';
-    homepage =  "https://github.com/kmike/marisa-trie";
+    homepage = "https://github.com/kmike/marisa-trie";
     changelog = "https://github.com/pytries/marisa-trie/blob/${version}/CHANGES.rst";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/marisa/default.nix b/pkgs/development/python-modules/marisa/default.nix
index 6ed3d6f4bf390..1de25320bb3fe 100644
--- a/pkgs/development/python-modules/marisa/default.nix
+++ b/pkgs/development/python-modules/marisa/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, marisa
-, swig
+{
+  lib,
+  buildPythonPackage,
+  marisa,
+  swig,
 }:
 
 buildPythonPackage rec {
@@ -27,7 +28,10 @@ buildPythonPackage rec {
   meta = {
     description = "Python bindings for marisa";
     homepage = "https://github.com/s-yata/marisa-trie";
-    license = with lib.licenses; [ bsd2 lgpl21Plus ];
+    license = with lib.licenses; [
+      bsd2
+      lgpl21Plus
+    ];
     maintainers = with lib.maintainers; [ dotlambda ];
   };
 }
diff --git a/pkgs/development/python-modules/markdown-include/default.nix b/pkgs/development/python-modules/markdown-include/default.nix
index 96c4599d8252d..3ee1e476665d8 100644
--- a/pkgs/development/python-modules/markdown-include/default.nix
+++ b/pkgs/development/python-modules/markdown-include/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, markdown
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  markdown,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-1MEk0U00a5cpVhqnDZkwBIk4NYgsRXTVsI/ANNQ/OH0=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    markdown
-  ];
+  propagatedBuildInputs = [ markdown ];
 
-  pythonImportsCheck = [
-    "markdown_include"
-  ];
+  pythonImportsCheck = [ "markdown_include" ];
 
   doCheck = false; # no tests
 
diff --git a/pkgs/development/python-modules/markdown-it-py/default.nix b/pkgs/development/python-modules/markdown-it-py/default.nix
index b7f580322fdf4..1754ec45b76e7 100644
--- a/pkgs/development/python-modules/markdown-it-py/default.nix
+++ b/pkgs/development/python-modules/markdown-it-py/default.nix
@@ -1,27 +1,27 @@
-{ lib
-, attrs
-, buildPythonPackage
-, commonmark
-, fetchFromGitHub
-, flit-core
-, linkify-it-py
-, markdown
-, mdit-py-plugins
-, mdurl
-, mistletoe
-, mistune
-, myst-parser
-, panflute
-, pyyaml
-, sphinx
-, sphinx-book-theme
-, sphinx-copybutton
-, sphinx-design
-, stdenv
-, pytest-regressions
-, pytestCheckHook
-, pythonRelaxDepsHook
-, pythonOlder
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  commonmark,
+  fetchFromGitHub,
+  flit-core,
+  linkify-it-py,
+  markdown,
+  mdit-py-plugins,
+  mdurl,
+  mistletoe,
+  mistune,
+  myst-parser,
+  panflute,
+  pyyaml,
+  sphinx,
+  sphinx-book-theme,
+  sphinx-copybutton,
+  sphinx-design,
+  stdenv,
+  pytest-regressions,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -39,18 +39,13 @@ buildPythonPackage rec {
   };
 
   # fix downstrem usage of markdown-it-py[linkify]
-  pythonRelaxDeps = [
-    "linkify-it-py"
-  ];
+  pythonRelaxDeps = [ "linkify-it-py" ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     flit-core
   ];
 
-  propagatedBuildInputs = [
-    mdurl
-  ];
+  propagatedBuildInputs = [ mdurl ];
 
   nativeCheckInputs = [
     pytest-regressions
@@ -63,15 +58,27 @@ buildPythonPackage rec {
   '';
   doCheck = !stdenv.isi686;
 
-  pythonImportsCheck = [
-    "markdown_it"
-  ];
+  pythonImportsCheck = [ "markdown_it" ];
 
   passthru.optional-dependencies = {
-    compare = [ commonmark markdown mistletoe mistune panflute ];
+    compare = [
+      commonmark
+      markdown
+      mistletoe
+      mistune
+      panflute
+    ];
     linkify = [ linkify-it-py ];
     plugins = [ mdit-py-plugins ];
-    rtd = [ attrs myst-parser pyyaml sphinx sphinx-copybutton sphinx-design sphinx-book-theme ];
+    rtd = [
+      attrs
+      myst-parser
+      pyyaml
+      sphinx
+      sphinx-copybutton
+      sphinx-design
+      sphinx-book-theme
+    ];
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/markdown-macros/default.nix b/pkgs/development/python-modules/markdown-macros/default.nix
index 2a15b4edb1c65..cc524efb5aa18 100644
--- a/pkgs/development/python-modules/markdown-macros/default.nix
+++ b/pkgs/development/python-modules/markdown-macros/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, markdown
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  markdown,
 }:
 
 buildPythonPackage rec {
@@ -34,10 +35,9 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An extension for python-markdown that makes writing trac-like macros easy";
+    description = "Extension for python-markdown that makes writing trac-like macros easy";
     homepage = "https://github.com/wnielson/markdown-macros";
     license = licenses.mit;
     maintainers = [ maintainers.abigailbuccaneer ];
   };
-
 }
diff --git a/pkgs/development/python-modules/markdown/default.nix b/pkgs/development/python-modules/markdown/default.nix
index 70bff8d2c8548..f0858ca0da909 100644
--- a/pkgs/development/python-modules/markdown/default.nix
+++ b/pkgs/development/python-modules/markdown/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, importlib-metadata
-, pyyaml
-, setuptools
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  importlib-metadata,
+  pyyaml,
+  setuptools,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
     hash = "sha256-jGo9/ZS2EhMDl/o1ref7Owqckuc7am578Ojmcz2aWIE=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
+  dependencies = lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
   nativeCheckInputs = [
     unittestCheckHook
diff --git a/pkgs/development/python-modules/markdown2/default.nix b/pkgs/development/python-modules/markdown2/default.nix
index 1c375523ae601..77f5fe0fc656a 100644
--- a/pkgs/development/python-modules/markdown2/default.nix
+++ b/pkgs/development/python-modules/markdown2/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, pygments
-, pythonOlder
-, wavedrom
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  pygments,
+  pythonOlder,
+  wavedrom,
 }:
 
 buildPythonPackage rec {
@@ -35,20 +36,18 @@ buildPythonPackage rec {
   '';
 
   passthru.optional-dependencies = {
-    code_syntax_highlighting = [
-      pygments
-    ];
-    wavedrom = [
-      wavedrom
-    ];
-    all = lib.flatten (lib.attrValues (lib.filterAttrs (n: v: n != "all") passthru.optional-dependencies));
+    code_syntax_highlighting = [ pygments ];
+    wavedrom = [ wavedrom ];
+    all = lib.flatten (
+      lib.attrValues (lib.filterAttrs (n: v: n != "all") passthru.optional-dependencies)
+    );
   };
 
   meta = with lib; {
     changelog = "https://github.com/trentm/python-markdown2/blob/${src.rev}/CHANGES.md";
-    description = "A fast and complete Python implementation of Markdown";
+    description = "Fast and complete Python implementation of Markdown";
     mainProgram = "markdown2";
-    homepage =  "https://github.com/trentm/python-markdown2";
+    homepage = "https://github.com/trentm/python-markdown2";
     license = licenses.mit;
     maintainers = with maintainers; [ hbunke ];
   };
diff --git a/pkgs/development/python-modules/markdownify/default.nix b/pkgs/development/python-modules/markdownify/default.nix
index e6b09592073ab..b6d8fa20ba6ca 100644
--- a/pkgs/development/python-modules/markdownify/default.nix
+++ b/pkgs/development/python-modules/markdownify/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, six
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -20,22 +21,16 @@ buildPythonPackage rec {
     hash = "sha256-H7CMYYsw4O56MaObmY9EoY+yirJU9V9K8GttNaIXnic=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     beautifulsoup4
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "markdownify"
-  ];
+  pythonImportsCheck = [ "markdownify" ];
 
   meta = with lib; {
     description = "HTML to Markdown converter";
diff --git a/pkgs/development/python-modules/markuppy/default.nix b/pkgs/development/python-modules/markuppy/default.nix
index fde9ae4ceec94..4b376f6894ece 100644
--- a/pkgs/development/python-modules/markuppy/default.nix
+++ b/pkgs/development/python-modules/markuppy/default.nix
@@ -1,4 +1,8 @@
-{ lib, fetchPypi, buildPythonPackage }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+}:
 
 buildPythonPackage rec {
   pname = "markuppy";
@@ -17,7 +21,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "MarkupPy" ];
 
   meta = with lib; {
-    description = "An HTML/XML generator";
+    description = "HTML/XML generator";
     homepage = "https://github.com/tylerbakke/MarkupPy";
     license = licenses.mit;
     maintainers = with maintainers; [ sephi ];
diff --git a/pkgs/development/python-modules/markups/default.nix b/pkgs/development/python-modules/markups/default.nix
index 163fc2539d2de..f187a8fc9d469 100644
--- a/pkgs/development/python-modules/markups/default.nix
+++ b/pkgs/development/python-modules/markups/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, docutils
-, fetchPypi
-, importlib-metadata
-, markdown
-, pygments
-, pytestCheckHook
-, python-markdown-math
-, pythonOlder
-, pyyaml
-, setuptools
-, textile
+{
+  lib,
+  buildPythonPackage,
+  docutils,
+  fetchPypi,
+  importlib-metadata,
+  markdown,
+  pygments,
+  pytestCheckHook,
+  python-markdown-math,
+  pythonOlder,
+  pyyaml,
+  setuptools,
+  textile,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-Pdua+xxV0M/4EuM5LKM/RoSYwHB6T6iy4F0LoNMsAZ4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     docutils
@@ -37,22 +36,16 @@ buildPythonPackage rec {
     python-markdown-math
     pyyaml
     textile
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # AssertionError: '.selector .ch { color: #408080' not found in 'pre...
     "test_get_pygments_stylesheet"
   ];
 
-  pythonImportsCheck = [
-    "markups"
-  ];
+  pythonImportsCheck = [ "markups" ];
 
   meta = with lib; {
     description = "Wrapper around various text markup languages";
diff --git a/pkgs/development/python-modules/markupsafe/default.nix b/pkgs/development/python-modules/markupsafe/default.nix
index 17f8ce118e5b1..5b4a039ae2806 100644
--- a/pkgs/development/python-modules/markupsafe/default.nix
+++ b/pkgs/development/python-modules/markupsafe/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-
-# build-system
-, setuptools
-
-# tests
-, pytestCheckHook
-
-# reverse dependencies
-, jinja2
-, mkdocs
-, quart
-, werkzeug
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+
+  # tests
+  pytestCheckHook,
+
+  # reverse dependencies
+  jinja2,
+  mkdocs,
+  quart,
+  werkzeug,
 }:
 
 buildPythonPackage rec {
@@ -29,17 +30,11 @@ buildPythonPackage rec {
     hash = "sha256-0oPTeokLpMGuc/+t+ARkNcdue8Ike7tjwAvRpwnGVEs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "markupsafe"
-  ];
+  pythonImportsCheck = [ "markupsafe" ];
 
   passthru.tests = {
     inherit
@@ -47,11 +42,13 @@ buildPythonPackage rec {
       mkdocs
       quart
       werkzeug
-    ;
+      ;
   };
 
   meta = with lib; {
-    changelog = "https://markupsafe.palletsprojects.com/en/${versions.majorMinor version}.x/changes/#version-${replaceStrings [ "." ] [ "-" ] version}";
+    changelog = "https://markupsafe.palletsprojects.com/en/${versions.majorMinor version}.x/changes/#version-${
+      replaceStrings [ "." ] [ "-" ] version
+    }";
     description = "Implements a XML/HTML/XHTML Markup safe string";
     homepage = "https://palletsprojects.com/p/markupsafe/";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/marshmallow-dataclass/default.nix b/pkgs/development/python-modules/marshmallow-dataclass/default.nix
index 7b5b2932407a2..1b9bce9c41588 100644
--- a/pkgs/development/python-modules/marshmallow-dataclass/default.nix
+++ b/pkgs/development/python-modules/marshmallow-dataclass/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, marshmallow
-, marshmallow-enum
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, typeguard
-, typing-inspect
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  marshmallow,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  typeguard,
+  typing-inspect,
 }:
 
 buildPythonPackage rec {
@@ -15,7 +15,7 @@ buildPythonPackage rec {
   version = "8.6.1";
   format = "setuptools";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "lovasoa";
@@ -30,7 +30,6 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    marshmallow-enum
     pytestCheckHook
     typeguard
   ];
@@ -46,9 +45,7 @@ buildPythonPackage rec {
     "test_newtype"
   ];
 
-  pythonImportsCheck = [
-    "marshmallow_dataclass"
-  ];
+  pythonImportsCheck = [ "marshmallow_dataclass" ];
 
   meta = with lib; {
     description = "Automatic generation of marshmallow schemas from dataclasses";
diff --git a/pkgs/development/python-modules/marshmallow-enum/default.nix b/pkgs/development/python-modules/marshmallow-enum/default.nix
deleted file mode 100644
index fdf2771deebd4..0000000000000
--- a/pkgs/development/python-modules/marshmallow-enum/default.nix
+++ /dev/null
@@ -1,43 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, marshmallow
-, pytest7CheckHook
-}:
-
-buildPythonPackage rec {
-  pname = "marshmallow-enum";
-  version = "1.5.1";
-  pyproject = true;
-
-  src = fetchFromGitHub {
-    owner = "justanr";
-    repo = "marshmallow_enum";
-    rev = "v${version}";
-    sha256 = "1ihrcmyfjabivg6hc44i59hnw5ijlg1byv3zs1rqxfynp8xr7398";
-  };
-
-  postPatch = ''
-    sed -i '/addopts/d' tox.ini
-  '';
-
-  build-system = [
-    setuptools
-  ];
-
-  dependencies = [
-    marshmallow
-  ];
-
-  nativeCheckInputs = [
-    pytest7CheckHook
-  ];
-
-  meta = with lib; {
-    description = "Enum field for Marshmallow";
-    homepage = "https://github.com/justanr/marshmallow_enum";
-    license = licenses.mit;
-    maintainers = [ ];
-  };
-}
diff --git a/pkgs/development/python-modules/marshmallow-oneofschema/default.nix b/pkgs/development/python-modules/marshmallow-oneofschema/default.nix
index 933f5cc4c8b91..10690ad426572 100644
--- a/pkgs/development/python-modules/marshmallow-oneofschema/default.nix
+++ b/pkgs/development/python-modules/marshmallow-oneofschema/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, marshmallow
-, pytestCheckHook
-, pythonOlder
-, flit-core
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  marshmallow,
+  pytestCheckHook,
+  pythonOlder,
+  flit-core,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-HXuyUxU8bT5arpUzmgv7m+X2fNT0qHY8S8Rz6klOGiA=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    marshmallow
-  ];
+  propagatedBuildInputs = [ marshmallow ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "marshmallow_oneofschema"
-  ];
+  pythonImportsCheck = [ "marshmallow_oneofschema" ];
 
   meta = with lib; {
     description = "Marshmallow library extension that allows schema (de)multiplexing";
diff --git a/pkgs/development/python-modules/marshmallow-polyfield/default.nix b/pkgs/development/python-modules/marshmallow-polyfield/default.nix
index dfdb85ebf9c7c..0852091f4774a 100644
--- a/pkgs/development/python-modules/marshmallow-polyfield/default.nix
+++ b/pkgs/development/python-modules/marshmallow-polyfield/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, marshmallow
-, pythonOlder
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  marshmallow,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -26,21 +27,13 @@ buildPythonPackage rec {
       --replace "--cov=marshmallow_polyfield" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    marshmallow
-  ];
+  propagatedBuildInputs = [ marshmallow ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "marshmallow"
-  ];
+  pythonImportsCheck = [ "marshmallow" ];
 
   meta = with lib; {
     description = "Extension to Marshmallow to allow for polymorphic fields";
diff --git a/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix b/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
index cc73a3c229a3a..ab0025afd9835 100644
--- a/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, flit-core
-, marshmallow
-, packaging
-, sqlalchemy
-, pytest-lazy-fixture
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  flit-core,
+  marshmallow,
+  packaging,
+  sqlalchemy,
+  pytest-lazy-fixture,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-IKDy/N1b3chkRPoBRh8X+bahKo3dTKjJs0/i8uNdAKI=";
   };
 
-  build-system = [
-    flit-core
-  ];
+  build-system = [ flit-core ];
 
   propagatedBuildInputs = [
     marshmallow
@@ -33,9 +32,7 @@ buildPythonPackage rec {
     sqlalchemy
   ];
 
-  pythonImportsCheck = [
-    "marshmallow_sqlalchemy"
-  ];
+  pythonImportsCheck = [ "marshmallow_sqlalchemy" ];
 
   nativeCheckInputs = [
     pytest-lazy-fixture
diff --git a/pkgs/development/python-modules/marshmallow/default.nix b/pkgs/development/python-modules/marshmallow/default.nix
index bbb336884c192..71766217fe637 100644
--- a/pkgs/development/python-modules/marshmallow/default.nix
+++ b/pkgs/development/python-modules/marshmallow/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, packaging
-, pytestCheckHook
-, pythonOlder
-, pytz
-, simplejson
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  packaging,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  simplejson,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     hash = "sha256-KhXasYKooZRokRoFlWKOaQzSUe6tXDtUlrf65eGGUi8=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    packaging
-  ];
+  propagatedBuildInputs = [ packaging ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -37,9 +34,7 @@ buildPythonPackage rec {
     simplejson
   ];
 
-  pythonImportsCheck = [
-    "marshmallow"
-  ];
+  pythonImportsCheck = [ "marshmallow" ];
 
   meta = with lib; {
     description = "Library for converting complex objects to and from simple Python datatypes";
diff --git a/pkgs/development/python-modules/mashumaro/default.nix b/pkgs/development/python-modules/mashumaro/default.nix
index cf79f268ffb37..153eb0298fce4 100644
--- a/pkgs/development/python-modules/mashumaro/default.nix
+++ b/pkgs/development/python-modules/mashumaro/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, ciso8601
-, fetchFromGitHub
-, msgpack
-, orjson
-, pendulum
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, setuptools
-, tomli
-, tomli-w
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  ciso8601,
+  fetchFromGitHub,
+  msgpack,
+  orjson,
+  pendulum,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  setuptools,
+  tomli,
+  tomli-w,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "mashumaro";
-  version = "3.13";
+  version = "3.13.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,32 +27,18 @@ buildPythonPackage rec {
     owner = "Fatal1ty";
     repo = "mashumaro";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ETK1rHKlByQkqibejiZmXF6c4eIiMazLa8XY2OH30q4=";
+    hash = "sha256-Km3RuDU77L3N2RQBhpcEztOjYtQhTXFZoGKu70g5EPU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ typing-extensions ];
 
   passthru.optional-dependencies = {
-    orjson = [
-      orjson
-    ];
-    msgpack = [
-      msgpack
-    ];
-    yaml = [
-      pyyaml
-    ];
-    toml = [
-      tomli-w
-    ] ++ lib.optionals (pythonOlder "3.11") [
-      tomli
-    ];
+    orjson = [ orjson ];
+    msgpack = [ msgpack ];
+    yaml = [ pyyaml ];
+    toml = [ tomli-w ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
   };
 
   nativeCheckInputs = [
@@ -61,9 +48,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "mashumaro"
-  ];
+  pythonImportsCheck = [ "mashumaro" ];
 
   meta = with lib; {
     description = "Serialization library on top of dataclasses";
diff --git a/pkgs/development/python-modules/masky/default.nix b/pkgs/development/python-modules/masky/default.nix
index aadd429fa8815..557a02dfcc9a8 100644
--- a/pkgs/development/python-modules/masky/default.nix
+++ b/pkgs/development/python-modules/masky/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, asn1crypto
-, buildPythonPackage
-, colorama
-, cryptography
-, fetchFromGitHub
-, impacket
-, pyasn1
-, pythonOlder
+{
+  lib,
+  asn1crypto,
+  buildPythonPackage,
+  colorama,
+  cryptography,
+  fetchFromGitHub,
+  impacket,
+  pyasn1,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "masky"
-  ];
+  pythonImportsCheck = [ "masky" ];
 
   meta = with lib; {
     description = "Library to remotely dump domain credentials";
diff --git a/pkgs/development/python-modules/mastodon-py/default.nix b/pkgs/development/python-modules/mastodon-py/default.nix
index 5034346b9cfe3..b8b93bc84eaa4 100644
--- a/pkgs/development/python-modules/mastodon-py/default.nix
+++ b/pkgs/development/python-modules/mastodon-py/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, blurhash
-, cryptography
-, decorator
-, http-ece
-, python-dateutil
-, python-magic
-, requests
-, six
-, pytestCheckHook
-, pytest-mock
-, pytest-vcr
-, requests-mock
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  blurhash,
+  cryptography,
+  decorator,
+  http-ece,
+  python-dateutil,
+  python-magic,
+  requests,
+  six,
+  pytestCheckHook,
+  pytest-mock,
+  pytest-vcr,
+  requests-mock,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     sed -i '/addopts/d' setup.cfg
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     blurhash
@@ -46,9 +45,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    blurhash = [
-      blurhash
-    ];
+    blurhash = [ blurhash ];
     webpush = [
       http-ece
       cryptography
diff --git a/pkgs/development/python-modules/mat2/default.nix b/pkgs/development/python-modules/mat2/default.nix
index fe627c8b99d5f..f1ca3d6d68808 100644
--- a/pkgs/development/python-modules/mat2/default.nix
+++ b/pkgs/development/python-modules/mat2/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pytestCheckHook
-, pythonOlder
-, fetchFromGitLab
-, substituteAll
-, bubblewrap
-, exiftool
-, ffmpeg
-, mailcap
-, wrapGAppsHook3
-, gdk-pixbuf
-, gobject-introspection
-, librsvg
-, poppler_gi
-, mutagen
-, pygobject3
-, pycairo
-, dolphinIntegration ? false
-, plasma5Packages
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pytestCheckHook,
+  pythonOlder,
+  fetchFromGitLab,
+  substituteAll,
+  bubblewrap,
+  exiftool,
+  ffmpeg,
+  mailcap,
+  wrapGAppsHook3,
+  gdk-pixbuf,
+  gobject-introspection,
+  librsvg,
+  poppler_gi,
+  mutagen,
+  pygobject3,
+  pycairo,
+  dolphinIntegration ? false,
+  plasma5Packages,
 }:
 
 buildPythonPackage rec {
@@ -37,25 +38,28 @@ buildPythonPackage rec {
     hash = "sha256-SuN62JjSb5O8gInvBH+elqv/Oe7j+xjCo+dmPBU7jEY=";
   };
 
-  patches = [
-    # hardcode paths to some binaries
-    (substituteAll ({
-      src = ./paths.patch;
-      exiftool = "${exiftool}/bin/exiftool";
-      ffmpeg = "${ffmpeg}/bin/ffmpeg";
-    } // lib.optionalAttrs dolphinIntegration {
-      kdialog = "${plasma5Packages.kdialog}/bin/kdialog";
-    }))
-    # the executable shouldn't be called .mat2-wrapped
-    ./executable-name.patch
-    # hardcode path to mat2 executable
-    ./tests.patch
-  ] ++ lib.optionals (stdenv.hostPlatform.isLinux) [
-    (substituteAll {
-      src = ./bubblewrap-path.patch;
-      bwrap = "${bubblewrap}/bin/bwrap";
-    })
-  ];
+  patches =
+    [
+      # hardcode paths to some binaries
+      (substituteAll (
+        {
+          src = ./paths.patch;
+          exiftool = "${exiftool}/bin/exiftool";
+          ffmpeg = "${ffmpeg}/bin/ffmpeg";
+        }
+        // lib.optionalAttrs dolphinIntegration { kdialog = "${plasma5Packages.kdialog}/bin/kdialog"; }
+      ))
+      # the executable shouldn't be called .mat2-wrapped
+      ./executable-name.patch
+      # hardcode path to mat2 executable
+      ./tests.patch
+    ]
+    ++ lib.optionals (stdenv.hostPlatform.isLinux) [
+      (substituteAll {
+        src = ./bubblewrap-path.patch;
+        bwrap = "${bubblewrap}/bin/bwrap";
+      })
+    ];
 
   postPatch = ''
     rm pyproject.toml
@@ -81,12 +85,14 @@ buildPythonPackage rec {
     pycairo
   ];
 
-  postInstall = ''
-    install -Dm 444 data/mat2.svg -t "$out/share/icons/hicolor/scalable/apps"
-    install -Dm 444 doc/mat2.1 -t "$out/share/man/man1"
-  '' + lib.optionalString dolphinIntegration ''
-    install -Dm 444 dolphin/mat2.desktop -t "$out/share/kservices5/ServiceMenus"
-  '';
+  postInstall =
+    ''
+      install -Dm 444 data/mat2.svg -t "$out/share/icons/hicolor/scalable/apps"
+      install -Dm 444 doc/mat2.1 -t "$out/share/man/man1"
+    ''
+    + lib.optionalString dolphinIntegration ''
+      install -Dm 444 dolphin/mat2.desktop -t "$out/share/kservices5/ServiceMenus"
+    '';
 
   nativeCheckInputs = [ pytestCheckHook ];
 
@@ -96,7 +102,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A handy tool to trash your metadata";
+    description = "Handy tool to trash your metadata";
     homepage = "https://0xacab.org/jvoisin/mat2";
     changelog = "https://0xacab.org/jvoisin/mat2/-/blob/${version}/CHANGELOG.md";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/python-modules/matchpy/default.nix b/pkgs/development/python-modules/matchpy/default.nix
index 259038e7774ba..aab6d31a18767 100644
--- a/pkgs/development/python-modules/matchpy/default.nix
+++ b/pkgs/development/python-modules/matchpy/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, hopcroftkarp
-, multiset
-, pytestCheckHook
-, hypothesis
-, setuptools-scm
-, isPy27
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  hopcroftkarp,
+  multiset,
+  pytestCheckHook,
+  hypothesis,
+  setuptools-scm,
+  isPy27,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
       --replace "multiset>=2.0,<3.0" "multiset"
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     hopcroftkarp
@@ -53,12 +52,10 @@ buildPythonPackage rec {
     hypothesis
   ];
 
-  pythonImportsCheck = [
-    "matchpy"
-  ];
+  pythonImportsCheck = [ "matchpy" ];
 
   meta = with lib; {
-    description = "A library for pattern matching on symbolic expressions";
+    description = "Library for pattern matching on symbolic expressions";
     homepage = "https://github.com/HPAC/matchpy";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/material-color-utilities/default.nix b/pkgs/development/python-modules/material-color-utilities/default.nix
index 8c92723e4a064..527726401f82b 100644
--- a/pkgs/development/python-modules/material-color-utilities/default.nix
+++ b/pkgs/development/python-modules/material-color-utilities/default.nix
@@ -1,4 +1,11 @@
-{ stdenv, lib, buildPythonPackage, fetchPypi, pythonRelaxDepsHook, pillow, regex }:
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pillow,
+  regex,
+}:
 
 buildPythonPackage rec {
   pname = "material-color-utilities-python";
@@ -9,12 +16,7 @@ buildPythonPackage rec {
     sha256 = "sha256-PG8C585wWViFRHve83z3b9NijHyV+iGY2BdMJpyVH64=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
-  pythonRelaxDeps = [
-    "Pillow"
-  ];
+  pythonRelaxDeps = [ "Pillow" ];
 
   propagatedBuildInputs = [
     pillow
diff --git a/pkgs/development/python-modules/mathlibtools/default.nix b/pkgs/development/python-modules/mathlibtools/default.nix
index 0d7ad7b2528a4..0253ac6d7497c 100644
--- a/pkgs/development/python-modules/mathlibtools/default.nix
+++ b/pkgs/development/python-modules/mathlibtools/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, atomicwrites
-, buildPythonPackage
-, click
-, fetchPypi
-, gitpython
-, networkx
-, pydot
-, pygithub
-, pythonOlder
-, pyyaml
-, toml
-, tqdm
+{
+  lib,
+  atomicwrites,
+  buildPythonPackage,
+  click,
+  fetchPypi,
+  gitpython,
+  networkx,
+  pydot,
+  pygithub,
+  pythonOlder,
+  pyyaml,
+  toml,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -40,9 +41,7 @@ buildPythonPackage rec {
   # Requires internet access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "mathlibtools"
-  ];
+  pythonImportsCheck = [ "mathlibtools" ];
 
   meta = with lib; {
     description = "Supporting tool for Lean's mathlib";
diff --git a/pkgs/development/python-modules/mathutils/default.nix b/pkgs/development/python-modules/mathutils/default.nix
new file mode 100644
index 0000000000000..97442eba2b855
--- /dev/null
+++ b/pkgs/development/python-modules/mathutils/default.nix
@@ -0,0 +1,33 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitLab
+
+# build-system
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "mathutils";
+  version = "3.3.0";
+  pyproject = true;
+
+  src = fetchFromGitLab {
+    owner = "ideasman42";
+    repo = "blender-mathutils";
+    rev = "d63d623a9e580a567eb6acb7dbed7cad0e4f8c28";
+    hash = "sha256-c28kt2ADw4wHNLN0CBPcJU/kqm6g679QRaICk4WwaBc=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  pythonImportsCheck = [ "mathutils" ];
+
+  meta = with lib; {
+    description = "A general math utilities library providing Matrix, Vector, Quaternion, Euler and Color classes, written in C for speed";
+    homepage = "https://gitlab.com/ideasman42/blender-mathutils";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [ autra ];
+  };
+}
diff --git a/pkgs/development/python-modules/matlink-gpapi/default.nix b/pkgs/development/python-modules/matlink-gpapi/default.nix
index 3c3cda1bf8db0..3df24acd72a48 100644
--- a/pkgs/development/python-modules/matlink-gpapi/default.nix
+++ b/pkgs/development/python-modules/matlink-gpapi/default.nix
@@ -1,18 +1,17 @@
-{ buildPythonPackage
-, cryptography
-, fetchPypi
-, lib
-, pythonOlder
-, protobuf
-, pycryptodome
-, requests
+{
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  lib,
+  protobuf,
+  pycryptodome,
+  requests,
 }:
 
 buildPythonPackage rec {
   version = "0.4.4.5";
   format = "setuptools";
   pname = "matlink-gpapi";
-  disabled = pythonOlder "3.3"; # uses shutil.which(), added in 3.3
 
   src = fetchPypi {
     inherit version pname;
@@ -25,7 +24,12 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "gpapi.googleplay" ];
 
-  propagatedBuildInputs = [ cryptography protobuf pycryptodome requests ];
+  propagatedBuildInputs = [
+    cryptography
+    protobuf
+    pycryptodome
+    requests
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/NoMore201/googleplay-api";
diff --git a/pkgs/development/python-modules/matplotlib-inline/default.nix b/pkgs/development/python-modules/matplotlib-inline/default.nix
index e35111fd191ce..7960b5cdc2bc5 100644
--- a/pkgs/development/python-modules/matplotlib-inline/default.nix
+++ b/pkgs/development/python-modules/matplotlib-inline/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, traitlets
-
-# tests
-, ipython
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  traitlets,
+
+  # tests
+  ipython,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     hash = "sha256-y7T8BshNa8NVWzH8oLS4dTAyhG+YmkkYQJFAyMXsJFA=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    traitlets
-  ];
+  dependencies = [ traitlets ];
 
   # wants to import ipython, which creates a circular dependency
   doCheck = false;
@@ -40,7 +37,9 @@ buildPythonPackage rec {
     #"matplotlib_inline"
   ];
 
-  passthru.tests = { inherit ipython; };
+  passthru.tests = {
+    inherit ipython;
+  };
 
   meta = with lib; {
     description = "Matplotlib Inline Back-end for IPython and Jupyter";
diff --git a/pkgs/development/python-modules/matplotlib-sixel/default.nix b/pkgs/development/python-modules/matplotlib-sixel/default.nix
index e1d2e80f84c45..ac1b1a2563702 100644
--- a/pkgs/development/python-modules/matplotlib-sixel/default.nix
+++ b/pkgs/development/python-modules/matplotlib-sixel/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, imagemagick
-, matplotlib
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  imagemagick,
+  matplotlib,
 }:
 
 buildPythonPackage rec {
@@ -25,7 +26,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sixel" ];
 
   meta = with lib; {
-    description = "A sixel graphics backend for matplotlib";
+    description = "Sixel graphics backend for matplotlib";
     homepage = "https://github.com/jonathf/matplotlib-sixel";
     license = licenses.bsd3;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/matplotlib-venn/default.nix b/pkgs/development/python-modules/matplotlib-venn/default.nix
new file mode 100644
index 0000000000000..acc988b4e6614
--- /dev/null
+++ b/pkgs/development/python-modules/matplotlib-venn/default.nix
@@ -0,0 +1,40 @@
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  setuptools,
+  matplotlib,
+  numpy,
+  scipy,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  version = "0.11.10";
+  pname = "matplotlib-venn";
+
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-kNDPsnnF273339ciwOJRWjf1NelJvK0XRIO8d343LmU=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    matplotlib
+    numpy
+    scipy
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  meta = {
+    description = "Functions for plotting area-proportional two- and three-way Venn diagrams in matplotlib";
+    homepage = "https://github.com/konstantint/matplotlib-venn";
+    changelog = "https://github.com/konstantint/matplotlib-venn/releases/tag/${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ moraxyc ];
+  };
+}
diff --git a/pkgs/development/python-modules/matplotlib/default.nix b/pkgs/development/python-modules/matplotlib/default.nix
index bf1e7a86323e3..b82880c3694a4 100644
--- a/pkgs/development/python-modules/matplotlib/default.nix
+++ b/pkgs/development/python-modules/matplotlib/default.nix
@@ -1,74 +1,87 @@
-{ lib
-, stdenv
-, fetchPypi
-, writeText
-, buildPythonPackage
-, isPyPy
-, pythonOlder
-
-# build-system
-, certifi
-, pkg-config
-, pybind11
-, setuptools
-, setuptools-scm
-
-# native libraries
-, ffmpeg-headless
-, freetype
-, qhull
-
-# propagates
-, contourpy
-, cycler
-, fonttools
-, kiwisolver
-, numpy
-, packaging
-, pillow
-, pyparsing
-, python-dateutil
-
-# optional
-, importlib-resources
-
-# GTK3
-, enableGtk3 ? false
-, cairo
-, gobject-introspection
-, gtk3
-, pycairo
-, pygobject3
-
-# Tk
-# Darwin has its own "MacOSX" backend, PyPy has tkagg backend and does not support tkinter
-, enableTk ? (!stdenv.isDarwin && !isPyPy)
-, tcl
-, tk
-, tkinter
-
-# Ghostscript
-, enableGhostscript ? true
-, ghostscript
-
-# Qt
-, enableQt ? false
-, pyqt5
-
-# Webagg
-, enableWebagg ? false
-, tornado
-
-# nbagg
-, enableNbagg ? false
-, ipykernel
-
-# darwin
-, Cocoa
-
-# required for headless detection
-, libX11
-, wayland
+{
+  lib,
+  stdenv,
+  fetchPypi,
+  buildPythonPackage,
+  isPyPy,
+  pythonOlder,
+
+  # build-system
+  certifi,
+  pkg-config,
+  pybind11,
+  meson-python,
+  setuptools-scm,
+  pytestCheckHook,
+  python,
+  matplotlib,
+  fetchurl,
+
+  # native libraries
+  ffmpeg-headless,
+  freetype,
+  # By default, almost all tests fail due to the fact we use our version of
+  # freetype. We still define use this argument to define the overriden
+  # derivation `matplotlib.passthru.tests.withoutOutdatedFreetype` - which
+  # builds matplotlib with the freetype version they default to, with which all
+  # tests should pass.
+  doCheck ? false,
+  qhull,
+
+  # propagates
+  contourpy,
+  cycler,
+  fonttools,
+  kiwisolver,
+  numpy,
+  packaging,
+  pillow,
+  pyparsing,
+  python-dateutil,
+
+  # optional
+  importlib-resources,
+
+  # GTK3
+  enableGtk3 ? false,
+  cairo,
+  gobject-introspection,
+  gtk3,
+  pycairo,
+  pygobject3,
+
+  # Tk
+  # Darwin has its own "MacOSX" backend, PyPy has tkagg backend and does not support tkinter
+  enableTk ? (!stdenv.isDarwin && !isPyPy),
+  tcl,
+  tk,
+  tkinter,
+
+  # Ghostscript
+  enableGhostscript ? true,
+  ghostscript,
+
+  # Qt
+  enableQt ? false,
+  pyqt5,
+
+  # Webagg
+  enableWebagg ? false,
+  tornado,
+
+  # nbagg
+  enableNbagg ? false,
+  ipykernel,
+
+  # darwin
+  Cocoa,
+
+  # required for headless detection
+  libX11,
+  wayland,
+
+  # Reverse dependency
+  sage,
 }:
 
 let
@@ -76,7 +89,7 @@ let
 in
 
 buildPythonPackage rec {
-  version = "3.8.4";
+  version = "3.9.0";
   pname = "matplotlib";
   pyproject = true;
 
@@ -84,7 +97,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-iqw5fV6ewViWDjHDgcX/xS3dUr2aR3F+KmlAOBZ9/+o=";
+    hash = "sha256-5tKepsGeNLMPt9iLcIH4aaAwFPZv4G1izHfVpuqI7Xo=";
   };
 
   env.XDG_RUNTIME_DIR = "/tmp";
@@ -96,106 +109,123 @@ buildPythonPackage rec {
   # With the following patch we just hard-code these paths into the install
   # script.
   postPatch =
-    let
-      tcl_tk_cache = ''"${tk}/lib", "${tcl}/lib", "${lib.strings.substring 0 3 tk.version}"'';
-    in
     ''
       substituteInPlace pyproject.toml \
         --replace-fail '"numpy>=2.0.0rc1,<2.3",' ""
-    '' + lib.optionalString enableTk ''
-      sed -i '/self.tcl_tk_cache = None/s|None|${tcl_tk_cache}|' setupext.py
-    '' + lib.optionalString (stdenv.isLinux && interactive) ''
+      patchShebangs tools
+    ''
+    + lib.optionalString (stdenv.isLinux && interactive) ''
       # fix paths to libraries in dlopen calls (headless detection)
-      substituteInPlace src/_c_internal_utils.c \
-        --replace libX11.so.6 ${libX11}/lib/libX11.so.6 \
-        --replace libwayland-client.so.0 ${wayland}/lib/libwayland-client.so.0
+      substituteInPlace src/_c_internal_utils.cpp \
+        --replace-fail libX11.so.6 ${libX11}/lib/libX11.so.6 \
+        --replace-fail libwayland-client.so.0 ${wayland}/lib/libwayland-client.so.0
     '';
 
-  nativeBuildInputs = [
-    pkg-config
-  ] ++ lib.optionals enableGtk3 [
-    gobject-introspection
-  ];
-
-  buildInputs = [
-    ffmpeg-headless
-    freetype
-    qhull
-  ] ++ lib.optionals enableGhostscript [
-    ghostscript
-  ] ++ lib.optionals enableGtk3 [
-    cairo
-    gtk3
-  ] ++ lib.optionals enableTk [
-    libX11
-    tcl
-    tk
-  ] ++ lib.optionals stdenv.isDarwin [
-    Cocoa
-  ];
+  nativeBuildInputs = [ pkg-config ] ++ lib.optionals enableGtk3 [ gobject-introspection ];
+
+  buildInputs =
+    [
+      ffmpeg-headless
+      freetype
+      qhull
+    ]
+    ++ lib.optionals enableGhostscript [ ghostscript ]
+    ++ lib.optionals enableGtk3 [
+      cairo
+      gtk3
+    ]
+    ++ lib.optionals enableTk [
+      libX11
+      tcl
+      tk
+    ]
+    ++ lib.optionals stdenv.isDarwin [ Cocoa ];
 
   # clang-11: error: argument unused during compilation: '-fno-strict-overflow' [-Werror,-Wunused-command-line-argument]
-  hardeningDisable = lib.optionals stdenv.isDarwin [
-    "strictoverflow"
-  ];
+  hardeningDisable = lib.optionals stdenv.isDarwin [ "strictoverflow" ];
 
   build-system = [
     certifi
     numpy
     pybind11
-    setuptools
+    meson-python
     setuptools-scm
   ];
 
-  dependencies = [
-    # explicit
-    contourpy
-    cycler
-    fonttools
-    kiwisolver
-    numpy
-    packaging
-    pillow
-    pyparsing
-    python-dateutil
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-resources
-  ] ++ lib.optionals enableGtk3 [
-    pycairo
-    pygobject3
-  ] ++ lib.optionals enableQt [
-    pyqt5
-  ] ++ lib.optionals enableWebagg [
-    tornado
-  ] ++ lib.optionals enableNbagg [
-    ipykernel
-  ] ++ lib.optionals enableTk [
-    tkinter
-  ];
+  dependencies =
+    [
+      # explicit
+      contourpy
+      cycler
+      fonttools
+      kiwisolver
+      numpy
+      packaging
+      pillow
+      pyparsing
+      python-dateutil
+    ]
+    ++ lib.optionals (pythonOlder "3.10") [ importlib-resources ]
+    ++ lib.optionals enableGtk3 [
+      pycairo
+      pygobject3
+    ]
+    ++ lib.optionals enableQt [ pyqt5 ]
+    ++ lib.optionals enableWebagg [ tornado ]
+    ++ lib.optionals enableNbagg [ ipykernel ]
+    ++ lib.optionals enableTk [ tkinter ];
+
+  mesonFlags = lib.mapAttrsToList lib.mesonBool {
+    system-freetype = true;
+    system-qhull = true;
+    # Otherwise GNU's `ar` binary fails to put symbols from libagg into the
+    # matplotlib shared objects. See:
+    # -https://github.com/matplotlib/matplotlib/issues/28260#issuecomment-2146243663
+    # -https://github.com/matplotlib/matplotlib/issues/28357#issuecomment-2155350739
+    b_lto = false;
+  };
 
-  passthru.config = {
-    directories = { basedirlist = "."; };
-    libs = {
-      system_freetype = true;
-      system_qhull = true;
-      # LTO not working in darwin stdenv, see #19312
-      enable_lto = !stdenv.isDarwin;
+  passthru.tests = {
+    inherit sage;
+    withOutdatedFreetype = matplotlib.override {
+      doCheck = true;
+      freetype = freetype.overrideAttrs (_: {
+        src = fetchurl {
+          url = "https://download.savannah.gnu.org/releases/freetype/freetype-old/freetype-2.6.1.tar.gz";
+          sha256 = "sha256-Cjx9+9ptoej84pIy6OltmHq6u79x68jHVlnkEyw2cBQ=";
+        };
+        patches = [ ];
+      });
     };
   };
 
-  env.MPLSETUPCFG = writeText "mplsetup.cfg" (lib.generators.toINI {} passthru.config);
-
-  # Encountering a ModuleNotFoundError, as describved and investigated at:
-  # https://github.com/NixOS/nixpkgs/issues/255262 . It could be that some of
-  # which may fail due to a freetype version that doesn't match the freetype
-  # version used by upstream.
-  doCheck = false;
+  pythonImportsCheck = [ "matplotlib" ];
+  inherit doCheck;
+  nativeCheckInputs = [ pytestCheckHook ];
+  preCheck = ''
+    # https://matplotlib.org/devdocs/devel/testing.html#obtain-the-reference-images
+    find lib -name baseline_images -printf '%P\n' | while read p; do
+      cp -r lib/"$p" $out/${python.sitePackages}/"$p"
+    done
+    # Tests will fail without these files as well
+    cp \
+      lib/matplotlib/tests/{mpltest.ttf,cmr10.pfb,Courier10PitchBT-Bold.pfb} \
+      $out/${python.sitePackages}/matplotlib/tests/
+    # https://github.com/NixOS/nixpkgs/issues/255262
+    cd $out
+  '';
 
   meta = with lib; {
     description = "Python plotting library, making publication quality plots";
     homepage = "https://matplotlib.org/";
     changelog = "https://github.com/matplotlib/matplotlib/releases/tag/v${version}";
-    license = with licenses; [ psfl bsd0 ];
-    maintainers = with maintainers; [ lovek323 veprbl ];
+    license = with licenses; [
+      psfl
+      bsd0
+    ];
+    maintainers = with maintainers; [
+      lovek323
+      veprbl
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/matplotx/default.nix b/pkgs/development/python-modules/matplotx/default.nix
index 77643ece548df..978e35e2404e9 100644
--- a/pkgs/development/python-modules/matplotx/default.nix
+++ b/pkgs/development/python-modules/matplotx/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, setuptools
-, matplotlib
-, numpy
-, networkx
-, pypng
-, scipy
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  setuptools,
+  matplotlib,
+  numpy,
+  networkx,
+  pypng,
+  scipy,
 }:
 
 buildPythonPackage rec {
@@ -46,9 +47,7 @@ buildPythonPackage rec {
   # Not sure of the details, but we can avoid it by changing the matplotlib backend during testing.
   env.MPLBACKEND = lib.optionalString stdenv.isDarwin "Agg";
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.all;
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.all;
 
   disabledTestPaths = [
     "tests/test_spy.py" # Requires meshzoo (non-free) and pytest-codeblocks (not packaged)
@@ -65,4 +64,3 @@ buildPythonPackage rec {
     maintainers = with lib.maintainers; [ swflint ];
   };
 }
-
diff --git a/pkgs/development/python-modules/matrix-api-async/default.nix b/pkgs/development/python-modules/matrix-api-async/default.nix
index d7ae05bddc968..5bc3704441a39 100644
--- a/pkgs/development/python-modules/matrix-api-async/default.nix
+++ b/pkgs/development/python-modules/matrix-api-async/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, matrix-client }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  matrix-client,
+}:
 
 buildPythonPackage rec {
   pname = "matrix_api_async";
@@ -17,7 +22,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "matrix_api_async" ];
 
   meta = with lib; {
-    description = "An asyncio wrapper of matrix_client.api";
+    description = "Asyncio wrapper of matrix_client.api";
     license = licenses.mit;
     homepage = "https://github.com/Cadair/matrix_api_async";
     maintainers = with maintainers; [ globin ];
diff --git a/pkgs/development/python-modules/matrix-client/default.nix b/pkgs/development/python-modules/matrix-client/default.nix
index c8975718b57c6..034a1745b9909 100644
--- a/pkgs/development/python-modules/matrix-client/default.nix
+++ b/pkgs/development/python-modules/matrix-client/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, requests
-, responses
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  requests,
+  responses,
+  urllib3,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/matrix-common/default.nix b/pkgs/development/python-modules/matrix-common/default.nix
index 8252bc267a02f..307ae00b4642f 100644
--- a/pkgs/development/python-modules/matrix-common/default.nix
+++ b/pkgs/development/python-modules/matrix-common/default.nix
@@ -1,10 +1,11 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, attrs
-, unittestCheckHook
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  attrs,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-YuEhzM2fJDQXtX7DenbcRK6xmKelxnr9a4J1mS/yq9E=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    attrs
-  ];
+  propagatedBuildInputs = [ attrs ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   pythonImportsCheck = [ "matrix_common" ];
 
diff --git a/pkgs/development/python-modules/matrix-nio/default.nix b/pkgs/development/python-modules/matrix-nio/default.nix
index 38daf62a635bf..ce9aded24b3b9 100644
--- a/pkgs/development/python-modules/matrix-nio/default.nix
+++ b/pkgs/development/python-modules/matrix-nio/default.nix
@@ -1,42 +1,43 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, poetry-core
+  # build-system
+  poetry-core,
 
-# dependencies
-, aiofiles
-, aiohttp
-, aiohttp-socks
-, h11
-, h2
-, jsonschema
-, pycryptodome
-, unpaddedbase64
+  # dependencies
+  aiofiles,
+  aiohttp,
+  aiohttp-socks,
+  h11,
+  h2,
+  jsonschema,
+  pycryptodome,
+  unpaddedbase64,
 
-# optional-dependencies
-, atomicwrites
-, cachetools
-, peewee
-, python-olm
+  # optional-dependencies
+  atomicwrites,
+  cachetools,
+  peewee,
+  python-olm,
 
-# tests
-, aioresponses
-, faker
-, hpack
-, hyperframe
-, hypothesis
-, pytest-aiohttp
-, pytest-benchmark
-, pytestCheckHook
+  # tests
+  aioresponses,
+  faker,
+  hpack,
+  hyperframe,
+  hypothesis,
+  pytest-aiohttp,
+  pytest-benchmark,
+  pytestCheckHook,
 
-# passthru tests
-, nixosTests
-, opsdroid
-, pantalaimon
-, weechatScripts
-, zulip
+  # passthru tests
+  nixosTests,
+  opsdroid,
+  pantalaimon,
+  weechatScripts,
+  zulip,
 }:
 
 buildPythonPackage rec {
@@ -51,9 +52,7 @@ buildPythonPackage rec {
     hash = "sha256-XlswVHLvKOi1qr+I7Mbm4IBjn1DG7glgDsNY48NA5Ew=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiofiles
@@ -86,9 +85,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ passthru.optional-dependencies.e2e;
 
-  pytestFlagsArray = [
-    "--benchmark-disable"
-  ];
+  pytestFlagsArray = [ "--benchmark-disable" ];
 
   disabledTests = [
     # touches network
@@ -103,22 +100,19 @@ buildPythonPackage rec {
       matrix-appservice-irc
       matrix-conduit
       mjolnir
-    ;
-    inherit (weechatScripts)
-      weechat-matrix
-    ;
-    inherit
-      opsdroid
-      pantalaimon
-      zulip
-    ;
+      ;
+    inherit (weechatScripts) weechat-matrix;
+    inherit opsdroid pantalaimon zulip;
   };
 
   meta = with lib; {
     homepage = "https://github.com/poljar/matrix-nio";
     changelog = "https://github.com/poljar/matrix-nio/blob/${version}/CHANGELOG.md";
-    description = "A Python Matrix client library, designed according to sans I/O principles";
+    description = "Python Matrix client library, designed according to sans I/O principles";
     license = licenses.isc;
-    maintainers = with maintainers; [ tilpner emily symphorien ];
+    maintainers = with maintainers; [
+      tilpner
+      symphorien
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/mattermostdriver/default.nix b/pkgs/development/python-modules/mattermostdriver/default.nix
index 2089569f9b77e..fdf9e52963f4d 100644
--- a/pkgs/development/python-modules/mattermostdriver/default.nix
+++ b/pkgs/development/python-modules/mattermostdriver/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, websockets
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  websockets,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,10 @@ buildPythonPackage rec {
     sha256 = "2e4d7b4a17d3013e279c6f993746ea18cd60b45d8fa3be24f47bc2de22b9b3b4";
   };
 
-  propagatedBuildInputs = [ websockets requests ];
+  propagatedBuildInputs = [
+    websockets
+    requests
+  ];
 
   pythonImportsCheck = [ "mattermostdriver" ];
 
@@ -26,7 +30,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Python Mattermost Driver";
+    description = "Python Mattermost Driver";
     homepage = "https://github.com/Vaelor/python-mattermost-driver";
     license = licenses.mit;
     maintainers = with maintainers; [ globin ];
diff --git a/pkgs/development/python-modules/mautrix/default.nix b/pkgs/development/python-modules/mautrix/default.nix
index c054cc25a5337..fc2bb57ced92d 100644
--- a/pkgs/development/python-modules/mautrix/default.nix
+++ b/pkgs/development/python-modules/mautrix/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
   # deps
-, aiohttp
-, attrs
-, yarl
+  aiohttp,
+  attrs,
+  yarl,
   # optional deps
-, python-magic
-, python-olm
-, unpaddedbase64
-, pycryptodome
+  python-magic,
+  python-olm,
+  unpaddedbase64,
+  pycryptodome,
   # check deps
-, pytestCheckHook
-, pytest-asyncio
-, aiosqlite
-, asyncpg
-, ruamel-yaml
+  pytestCheckHook,
+  pytest-asyncio,
+  aiosqlite,
+  asyncpg,
+  ruamel-yaml,
 }:
 
 buildPythonPackage rec {
@@ -40,9 +41,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    detect_mimetype = [
-      python-magic
-    ];
+    detect_mimetype = [ python-magic ];
     encryption = [
       python-olm
       unpaddedbase64
@@ -58,15 +57,18 @@ buildPythonPackage rec {
     ruamel-yaml
   ] ++ passthru.optional-dependencies.encryption;
 
-  pythonImportsCheck = [
-    "mautrix"
-  ];
+  pythonImportsCheck = [ "mautrix" ];
 
   meta = with lib; {
     description = "Asyncio Matrix framework";
     homepage = "https://github.com/tulir/mautrix-python";
     changelog = "https://github.com/mautrix/python/releases/tag/v${version}";
     license = licenses.mpl20;
-    maintainers = with maintainers; [ nyanloutre ma27 sumnerevans nickcao ];
+    maintainers = with maintainers; [
+      nyanloutre
+      ma27
+      sumnerevans
+      nickcao
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/maxcube-api/default.nix b/pkgs/development/python-modules/maxcube-api/default.nix
index 43d0f7a1d7fb4..e87568c88e517 100644
--- a/pkgs/development/python-modules/maxcube-api/default.nix
+++ b/pkgs/development/python-modules/maxcube-api/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "license=license" "license='MIT'"
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     "testSendRadioMsgClosesConnectionOnErrorAndRetriesIfReusingConnection"
diff --git a/pkgs/development/python-modules/maxminddb/default.nix b/pkgs/development/python-modules/maxminddb/default.nix
index 100191643be8d..0457ad15cd50c 100644
--- a/pkgs/development/python-modules/maxminddb/default.nix
+++ b/pkgs/development/python-modules/maxminddb/default.nix
@@ -1,35 +1,30 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, libmaxminddb
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  libmaxminddb,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "maxminddb";
-  version = "2.6.1";
+  version = "2.6.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-bF1ZH2JeA7CjTfDH/4FYBnY5e4M14T7OEwxuOeSjr7k=";
+    hash = "sha256-fYQtMuJiCryJS315paEAemnfLGzyeaBrlMnDkT9m8mQ=";
   };
 
-  buildInputs = [
-    libmaxminddb
-  ];
+  buildInputs = [ libmaxminddb ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "maxminddb"
-  ];
+  pythonImportsCheck = [ "maxminddb" ];
 
   # The multiprocessing tests fail on Darwin because multiprocessing uses spawn instead of fork,
   # resulting in an exception when it can’t pickle the `lookup` local function.
diff --git a/pkgs/development/python-modules/maya/default.nix b/pkgs/development/python-modules/maya/default.nix
index 96387c8f25751..ccb9936a71511 100644
--- a/pkgs/development/python-modules/maya/default.nix
+++ b/pkgs/development/python-modules/maya/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, dateparser
-, fetchFromGitHub
-, freezegun
-, humanize
-, pendulum
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, pytz
-, setuptools
-, snaptime
-, tzlocal
+{
+  lib,
+  buildPythonPackage,
+  dateparser,
+  fetchFromGitHub,
+  freezegun,
+  humanize,
+  pendulum,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  setuptools,
+  snaptime,
+  tzlocal,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
       --replace-fail "humanize.time.abs_timedelta" "humanize.time._abs_timedelta"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     dateparser
@@ -53,9 +52,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "maya"
-  ];
+  pythonImportsCheck = [ "maya" ];
 
   disabledTests = [
     # https://github.com/timofurrer/maya/issues/202
diff --git a/pkgs/development/python-modules/mayavi/default.nix b/pkgs/development/python-modules/mayavi/default.nix
index a34f98cdae39f..b9fa608772b73 100644
--- a/pkgs/development/python-modules/mayavi/default.nix
+++ b/pkgs/development/python-modules/mayavi/default.nix
@@ -1,30 +1,33 @@
-{ lib
-, apptools
-, buildPythonPackage
-, envisage
-, fetchPypi
-, fetchpatch
-, numpy
-, packaging
-, pyface
-, pygments
-, pyqt5
-, pythonOlder
-, pythonAtLeast
-, traitsui
-, vtk
-, wrapQtAppsHook
+{
+  lib,
+  apptools,
+  buildPythonPackage,
+  envisage,
+  fetchPypi,
+  fetchpatch,
+  numpy,
+  packaging,
+  pyface,
+  pygments,
+  pyqt5,
+  pythonOlder,
+  pythonAtLeast,
+  traitsui,
+  vtk,
+  wrapQtAppsHook,
 }:
 
 buildPythonPackage rec {
   pname = "mayavi";
-  version = "4.8.1";
+  # TODO: Remove meta.broken on next release.
+  version = "4.8.2";
   format = "setuptools";
-  disabled = pythonOlder "3.8" || pythonAtLeast "3.11";
+
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-n0J+8spska542S02ibpr7KJMhGDicG2KHJuEKJrT/Z4=";
+    hash = "sha256-sQ/pFF8hxI5JAvDnRrNgOzy2lNEUVlFaRoIPIaCnQik=";
   };
 
   patches = [
@@ -51,9 +54,7 @@ buildPythonPackage rec {
       --replace "build.build.run(self)" "build.build.run(self); return"
   '';
 
-  nativeBuildInputs = [
-    wrapQtAppsHook
-  ];
+  nativeBuildInputs = [ wrapQtAppsHook ];
 
   propagatedBuildInputs = [
     apptools
@@ -72,9 +73,7 @@ buildPythonPackage rec {
   # Needs X server
   doCheck = false;
 
-  pythonImportsCheck = [
-    "mayavi"
-  ];
+  pythonImportsCheck = [ "mayavi" ];
 
   preFixup = ''
     makeWrapperArgs+=("''${qtWrapperArgs[@]}")
@@ -85,5 +84,8 @@ buildPythonPackage rec {
     homepage = "https://github.com/enthought/mayavi";
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ knedlsepp ];
+    # Should be fixed in a version from after March 26, see:
+    # https://github.com/enthought/mayavi/issues/1284#issuecomment-2020631244
+    broken = pythonAtLeast "3.12";
   };
 }
diff --git a/pkgs/development/python-modules/mayim/default.nix b/pkgs/development/python-modules/mayim/default.nix
index 3cbc740aa4584..ee383cbb7ca91 100644
--- a/pkgs/development/python-modules/mayim/default.nix
+++ b/pkgs/development/python-modules/mayim/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
 
-, psycopg
-, aiosqlite
-, asyncmy
+  psycopg,
+  aiosqlite,
+  asyncmy,
 
-# test
-, pytest-asyncio
+  # test
+  pytest-asyncio,
 
-, pytestCheckHook
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -37,25 +38,23 @@ buildPythonPackage rec {
   '';
 
   passthru.optional-dependencies = {
-    postgres = [
-      psycopg
-    ] ++ psycopg.optional-dependencies.pool;
-    mysql = [
-      asyncmy
-    ];
-    sqlite = [
-      aiosqlite
-    ];
+    postgres = [ psycopg ] ++ psycopg.optional-dependencies.pool;
+    mysql = [ asyncmy ];
+    sqlite = [ aiosqlite ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-    pytest-asyncio
-  ] ++ (with passthru.optional-dependencies; [postgres mysql sqlite]);
+  nativeCheckInputs =
+    [
+      pytestCheckHook
+      pytest-asyncio
+    ]
+    ++ (with passthru.optional-dependencies; [
+      postgres
+      mysql
+      sqlite
+    ]);
 
-  pythonImportsCheck = [
-    "mayim"
-  ];
+  pythonImportsCheck = [ "mayim" ];
 
   meta = with lib; {
     description = "Asynchronous SQL hydrator";
diff --git a/pkgs/development/python-modules/mbddns/default.nix b/pkgs/development/python-modules/mbddns/default.nix
index 05137b56b0049..d738cca95394e 100644
--- a/pkgs/development/python-modules/mbddns/default.nix
+++ b/pkgs/development/python-modules/mbddns/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     sha256 = "13xzkprqk1v0zlzx4a0n9zzpnlb1g2h6pc62ms66fj72lsmjynj7";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/mbstrdecoder/default.nix b/pkgs/development/python-modules/mbstrdecoder/default.nix
index 550c69ba006c0..c7e3681d010dd 100644
--- a/pkgs/development/python-modules/mbstrdecoder/default.nix
+++ b/pkgs/development/python-modules/mbstrdecoder/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, chardet
-, pytestCheckHook
-, faker
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  chardet,
+  pytestCheckHook,
+  faker,
 }:
 
 buildPythonPackage rec {
@@ -19,25 +20,17 @@ buildPythonPackage rec {
     hash = "sha256-GcAxXcCYC2XAE8xu/jdDxjPxkLJzbmvWZ3OgmcvQcmk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    chardet
-  ];
+  propagatedBuildInputs = [ chardet ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  checkInputs = [
-    faker
-  ];
+  checkInputs = [ faker ];
 
   meta = with lib; {
     homepage = "https://github.com/thombashi/mbstrdecoder";
-    description = "A library for decoding multi-byte character strings";
+    description = "Library for decoding multi-byte character strings";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/mccabe/default.nix b/pkgs/development/python-modules/mccabe/default.nix
index 5de63b1888acd..c8cb357cdc980 100644
--- a/pkgs/development/python-modules/mccabe/default.nix
+++ b/pkgs/development/python-modules/mccabe/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
-, hypothesis
-, hypothesmith
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  hypothesis,
+  hypothesmith,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-NI4CQMM7YLvfTlIxku+RnyjLLD19XHeU90AJKQ8jYyU=";
   };
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   # https://github.com/PyCQA/mccabe/issues/93
   doCheck = false;
diff --git a/pkgs/development/python-modules/mcstatus/default.nix b/pkgs/development/python-modules/mcstatus/default.nix
index 886cf432f7bad..d4c3059e9290b 100644
--- a/pkgs/development/python-modules/mcstatus/default.nix
+++ b/pkgs/development/python-modules/mcstatus/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, asyncio-dgram
-, buildPythonPackage
-, dnspython
-, fetchFromGitHub
-, poetry-core
-, poetry-dynamic-versioning
-, pytest-asyncio
-, pytest-rerunfailures
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  asyncio-dgram,
+  buildPythonPackage,
+  dnspython,
+  fetchFromGitHub,
+  poetry-core,
+  poetry-dynamic-versioning,
+  pytest-asyncio,
+  pytest-rerunfailures,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -48,9 +49,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "mcstatus"
-  ];
+  pythonImportsCheck = [ "mcstatus" ];
 
   disabledTests = [
     # DNS features are limited in the sandbox
diff --git a/pkgs/development/python-modules/mcuuid/default.nix b/pkgs/development/python-modules/mcuuid/default.nix
index 39236f792be76..0f0a1d922d155 100644
--- a/pkgs/development/python-modules/mcuuid/default.nix
+++ b/pkgs/development/python-modules/mcuuid/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -16,16 +17,12 @@ buildPythonPackage rec {
     hash = "sha256-YwM7CdZVXpUXKXUzFL3AtoDhekLDIvZ/q8taLsHihNk=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # upstream code does not provide tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "mcuuid"
-  ];
+  pythonImportsCheck = [ "mcuuid" ];
 
   meta = with lib; {
     description = "Getting Minecraft player information from Mojang API";
diff --git a/pkgs/development/python-modules/md-toc/default.nix b/pkgs/development/python-modules/md-toc/default.nix
index 34887cc91fa7d..2ee15c4c30035 100644
--- a/pkgs/development/python-modules/md-toc/default.nix
+++ b/pkgs/development/python-modules/md-toc/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fpyutils
-, pyfakefs
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fpyutils,
+  pyfakefs,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,26 +23,18 @@ buildPythonPackage rec {
     hash = "sha256-nKkKtLEW0pohXiMtjWl2Kzh7SRwZJ/yzhXpDyluLodc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    fpyutils
-  ];
+  propagatedBuildInputs = [ fpyutils ];
 
   nativeCheckInputs = [
     pyfakefs
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "md_toc/tests/*.py"
-  ];
+  pytestFlagsArray = [ "md_toc/tests/*.py" ];
 
-  pythonImportsCheck = [
-    "md_toc"
-  ];
+  pythonImportsCheck = [ "md_toc" ];
 
   meta = with lib; {
     description = "Table of contents generator for Markdown";
diff --git a/pkgs/development/python-modules/md2gemini/default.nix b/pkgs/development/python-modules/md2gemini/default.nix
index a8843f25b3cd5..08a39b7fb5e90 100644
--- a/pkgs/development/python-modules/md2gemini/default.nix
+++ b/pkgs/development/python-modules/md2gemini/default.nix
@@ -1,12 +1,23 @@
-{ lib, buildPythonPackage, fetchPypi, mistune, cjkwrap, wcwidth
-, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mistune,
+  cjkwrap,
+  wcwidth,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "md2gemini";
   version = "1.9.1";
   format = "setuptools";
 
-  propagatedBuildInputs = [ mistune cjkwrap wcwidth ];
+  propagatedBuildInputs = [
+    mistune
+    cjkwrap
+    wcwidth
+  ];
   nativeCheckInputs = [ pytestCheckHook ];
   pythonImportsCheck = [ "md2gemini" ];
 
diff --git a/pkgs/development/python-modules/mdformat-admon/default.nix b/pkgs/development/python-modules/mdformat-admon/default.nix
index 7025864b440a8..a201b8c7911e8 100644
--- a/pkgs/development/python-modules/mdformat-admon/default.nix
+++ b/pkgs/development/python-modules/mdformat-admon/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, mdformat
-, mdit-py-plugins
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  mdformat,
+  mdit-py-plugins,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,18 +23,14 @@ buildPythonPackage rec {
     hash = "sha256-zKc0kKap4ipZ+P+RYDXcwqyzq9NKcTnCmx64cApFxFg=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     mdformat
     mdit-py-plugins
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Mdformat plugin for admonitions";
diff --git a/pkgs/development/python-modules/mdformat-beautysh/default.nix b/pkgs/development/python-modules/mdformat-beautysh/default.nix
index 940e4754c2703..8c71b83aa2645 100644
--- a/pkgs/development/python-modules/mdformat-beautysh/default.nix
+++ b/pkgs/development/python-modules/mdformat-beautysh/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, beautysh
-, buildPythonPackage
-, fetchFromGitHub
-, mdformat
-, mdformat-gfm
-, mdit-py-plugins
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  beautysh,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mdformat,
+  mdformat-gfm,
+  mdit-py-plugins,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-mH9PN6QsPmnIzh/0vxa+5mYLzANUHRruXC0ql4h8myw=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     beautysh
@@ -35,13 +34,9 @@ buildPythonPackage rec {
     mdit-py-plugins
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mdformat_beautysh"
-  ];
+  pythonImportsCheck = [ "mdformat_beautysh" ];
 
   meta = with lib; {
     description = "Mdformat plugin to beautify Bash scripts";
diff --git a/pkgs/development/python-modules/mdformat-footnote/default.nix b/pkgs/development/python-modules/mdformat-footnote/default.nix
index 4d452ce5e452f..759fced980207 100644
--- a/pkgs/development/python-modules/mdformat-footnote/default.nix
+++ b/pkgs/development/python-modules/mdformat-footnote/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, linkify-it-py
-, markdown-it-py
-, mdformat
-, mdit-py-plugins
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  linkify-it-py,
+  markdown-it-py,
+  mdformat,
+  mdit-py-plugins,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,18 +24,14 @@ buildPythonPackage rec {
     hash = "sha256-DUCBWcmB5i6/HkqxjlU3aTRO7i0n2sj+e/doKB8ffeo=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     mdformat
     mdit-py-plugins
   ];
 
-  pythonImportsCheck = [
-    "mdformat_footnote"
-  ];
+  pythonImportsCheck = [ "mdformat_footnote" ];
 
   meta = with lib; {
     description = "Footnote format addition for mdformat";
diff --git a/pkgs/development/python-modules/mdformat-frontmatter/default.nix b/pkgs/development/python-modules/mdformat-frontmatter/default.nix
index ee2fe29693b2a..335aaae953178 100644
--- a/pkgs/development/python-modules/mdformat-frontmatter/default.nix
+++ b/pkgs/development/python-modules/mdformat-frontmatter/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, linkify-it-py
-, markdown-it-py
-, mdformat
-, mdit-py-plugins
-, ruamel-yaml
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  linkify-it-py,
+  markdown-it-py,
+  mdformat,
+  mdit-py-plugins,
+  ruamel-yaml,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-2heQw8LL/ILY36oItBeQq33qjVBGT51qGG4CcCEDutA=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     mdformat
@@ -34,15 +33,16 @@ buildPythonPackage rec {
     ruamel-yaml
   ];
 
-  pythonImportsCheck = [
-    "mdformat_frontmatter"
-  ];
+  pythonImportsCheck = [ "mdformat_frontmatter" ];
 
   meta = with lib; {
     description = "Mdformat plugin to ensure frontmatter is respected";
     homepage = "https://github.com/butler54/mdformat-frontmatter";
     changelog = "https://github.com/butler54/mdformat-frontmatter/blob/v{version}/CHANGELOG.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ aldoborrero polarmutex ];
+    maintainers = with maintainers; [
+      aldoborrero
+      polarmutex
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/mdformat-gfm/default.nix b/pkgs/development/python-modules/mdformat-gfm/default.nix
index 15a79eb0f4ca0..dc057d9a82e09 100644
--- a/pkgs/development/python-modules/mdformat-gfm/default.nix
+++ b/pkgs/development/python-modules/mdformat-gfm/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, linkify-it-py
-, markdown-it-py
-, mdformat
-, mdformat-tables
-, mdit-py-plugins
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  linkify-it-py,
+  markdown-it-py,
+  mdformat,
+  mdformat-tables,
+  mdit-py-plugins,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-c1jJwyTL8IgQnIAJFoPSuJ8VEYgnQ4slZyV0bHlUHLQ=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     markdown-it-py
@@ -37,23 +36,22 @@ buildPythonPackage rec {
     linkify-it-py
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     "test_default_style__api"
     "test_default_style__cli"
   ];
 
-  pythonImportsCheck = [
-    "mdformat_gfm"
-  ];
+  pythonImportsCheck = [ "mdformat_gfm" ];
 
   meta = with lib; {
     description = "Mdformat plugin for GitHub Flavored Markdown compatibility";
     homepage = "https://github.com/hukkin/mdformat-gfm";
     license = licenses.mit;
-    maintainers = with maintainers; [ aldoborrero polarmutex ];
+    maintainers = with maintainers; [
+      aldoborrero
+      polarmutex
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/mdformat-mkdocs/default.nix b/pkgs/development/python-modules/mdformat-mkdocs/default.nix
index 611c5b11dc0c6..cd5a89c825122 100644
--- a/pkgs/development/python-modules/mdformat-mkdocs/default.nix
+++ b/pkgs/development/python-modules/mdformat-mkdocs/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, mdformat
-, mdformat-admon
-, mdformat-gfm
-, mdit-py-plugins
-, more-itertools
-, pythonOlder
-, pytest-snapshot
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  mdformat,
+  mdformat-admon,
+  mdformat-gfm,
+  mdit-py-plugins,
+  more-itertools,
+  pythonOlder,
+  pytest-snapshot,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "mdformat-mkdocs";
-  version = "2.0.10";
+  version = "2.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,12 +24,10 @@ buildPythonPackage rec {
     owner = "KyleKing";
     repo = "mdformat-mkdocs";
     rev = "refs/tags/v${version}";
-    hash = "sha256-N1VU9bOdVENIX6QsFa0jeVugmXjl3gNkVPS/m8gEB2Q=";
+    hash = "sha256-hBkHVYlcHCXfE8Z2gLv6Rt0tQSkx2LYqbEtCncDByrI=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     mdformat
@@ -48,9 +47,7 @@ buildPythonPackage rec {
     "tests/format/test_parsed_result.py"
   ];
 
-  pythonImportsCheck = [
-    "mdformat_mkdocs"
-  ];
+  pythonImportsCheck = [ "mdformat_mkdocs" ];
 
   meta = with lib; {
     description = "Mdformat plugin for MkDocs";
diff --git a/pkgs/development/python-modules/mdformat-nix-alejandra/default.nix b/pkgs/development/python-modules/mdformat-nix-alejandra/default.nix
index d59e09f999e0a..a5e55044d4c0f 100644
--- a/pkgs/development/python-modules/mdformat-nix-alejandra/default.nix
+++ b/pkgs/development/python-modules/mdformat-nix-alejandra/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, alejandra
-, buildPythonPackage
-, fetchFromGitHub
-, mdformat
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  alejandra,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mdformat,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,21 +28,13 @@ buildPythonPackage rec {
       --replace-fail '"alejandra"' '"${lib.getExe alejandra}"'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    mdformat
-  ];
+  propagatedBuildInputs = [ mdformat ];
 
-  pythonImportsCheck = [
-    "mdformat_nix_alejandra"
-  ];
+  pythonImportsCheck = [ "mdformat_nix_alejandra" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Mdformat plugin format Nix code blocks with alejandra";
diff --git a/pkgs/development/python-modules/mdformat-simple-breaks/default.nix b/pkgs/development/python-modules/mdformat-simple-breaks/default.nix
index 9bff43e4d402c..29a370944110e 100644
--- a/pkgs/development/python-modules/mdformat-simple-breaks/default.nix
+++ b/pkgs/development/python-modules/mdformat-simple-breaks/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, mdformat
-, mdit-py-plugins
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  mdformat,
+  mdit-py-plugins,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,17 +22,11 @@ buildPythonPackage rec {
     hash = "sha256-4lJHB4r9lI2uGJ/BmFFc92sumTRKBBwiRmGBdQkzfd0=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    mdformat
-  ];
+  propagatedBuildInputs = [ mdformat ];
 
-  pythonImportsCheck = [
-    "mdformat_simple_breaks"
-  ];
+  pythonImportsCheck = [ "mdformat_simple_breaks" ];
 
   meta = with lib; {
     description = "Mdformat plugin to render thematic breaks using three dashes";
diff --git a/pkgs/development/python-modules/mdformat-tables/default.nix b/pkgs/development/python-modules/mdformat-tables/default.nix
index cfd468d9cc6e1..cf97895b53947 100644
--- a/pkgs/development/python-modules/mdformat-tables/default.nix
+++ b/pkgs/development/python-modules/mdformat-tables/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, mdformat
-, mdit-py-plugins
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  mdformat,
+  mdit-py-plugins,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,26 +23,21 @@ buildPythonPackage rec {
     hash = "sha256-Q61GmaRxjxJh9GjyR8QCZOH0njFUtAWihZ9lFQJ2nQQ=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    mdformat
-  ];
+  propagatedBuildInputs = [ mdformat ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mdformat_tables"
-  ];
+  pythonImportsCheck = [ "mdformat_tables" ];
 
   meta = with lib; {
-    description = "An mdformat plugin for rendering tables";
+    description = "Mdformat plugin for rendering tables";
     homepage = "https://github.com/executablebooks/mdformat-tables";
     license = licenses.mit;
-    maintainers = with maintainers; [ aldoborrero polarmutex ];
+    maintainers = with maintainers; [
+      aldoborrero
+      polarmutex
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/mdformat-toc/default.nix b/pkgs/development/python-modules/mdformat-toc/default.nix
index 1597dcec197a5..c48467077d3f8 100644
--- a/pkgs/development/python-modules/mdformat-toc/default.nix
+++ b/pkgs/development/python-modules/mdformat-toc/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mdformat
-, mdit-py-plugins
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mdformat,
+  mdit-py-plugins,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,26 +23,21 @@ buildPythonPackage rec {
     hash = "sha256-3EX6kGez408tEYiR9VSvi3GTrb4ds+HJwpFflv77nkg=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    mdformat
-  ];
+  propagatedBuildInputs = [ mdformat ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mdformat_toc"
-  ];
+  pythonImportsCheck = [ "mdformat_toc" ];
 
   meta = with lib; {
     description = "Mdformat plugin to generate a table of contents";
     homepage = "https://github.com/hukkin/mdformat-toc";
     license = licenses.mit;
-    maintainers = with maintainers; [ aldoborrero polarmutex ];
+    maintainers = with maintainers; [
+      aldoborrero
+      polarmutex
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/mdformat/default.nix b/pkgs/development/python-modules/mdformat/default.nix
index eec56ee479441..5d8233dcf2cf3 100644
--- a/pkgs/development/python-modules/mdformat/default.nix
+++ b/pkgs/development/python-modules/mdformat/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonApplication
-, buildPythonPackage
-, fetchFromGitHub
-, importlib-metadata
-, makeWrapper
-, markdown-it-py
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, tomli
-, typing-extensions
+{
+  lib,
+  buildPythonApplication,
+  buildPythonPackage,
+  fetchFromGitHub,
+  importlib-metadata,
+  makeWrapper,
+  markdown-it-py,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  tomli,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -26,25 +27,16 @@ buildPythonPackage rec {
     hash = "sha256-umtfbhN6sDR/rFr1LwmJ21Ph9bK1Qq43bmMVzGCPD5s=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    markdown-it-py
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
+  propagatedBuildInputs =
+    [ markdown-it-py ]
+    ++ lib.optionals (pythonOlder "3.11") [ tomli ]
+    ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mdformat"
-  ];
+  pythonImportsCheck = [ "mdformat" ];
 
   passthru = {
     withPlugins = throw "Use pkgs.mdformat.withPlugins, i.e. the top-level attribute.";
@@ -55,7 +47,10 @@ buildPythonPackage rec {
     homepage = "https://mdformat.rtfd.io/";
     changelog = "https://github.com/executablebooks/mdformat/blob/${version}/docs/users/changelog.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ fab aldoborrero ];
+    maintainers = with maintainers; [
+      fab
+      aldoborrero
+    ];
     mainProgram = "mdformat";
   };
 }
diff --git a/pkgs/development/python-modules/mdit-py-plugins/default.nix b/pkgs/development/python-modules/mdit-py-plugins/default.nix
index ad3e8580f11dd..a209f36ed4f1d 100644
--- a/pkgs/development/python-modules/mdit-py-plugins/default.nix
+++ b/pkgs/development/python-modules/mdit-py-plugins/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, flit-core
-, markdown-it-py
-, pytest-regressions
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  flit-core,
+  markdown-it-py,
+  pytest-regressions,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "mdit-py-plugins";
-  version = "0.4.0";
+  version = "0.4.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -19,25 +20,19 @@ buildPythonPackage rec {
     owner = "executablebooks";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-YBJu0vIOD747DrJLcqiZMHq34+gHdXeGLCw1OxxzIJ0=";
+    hash = "sha256-xIbP2zHvHWV+2wW17i78vxc5npCvRBYP6QuL/mCBIww=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    markdown-it-py
-  ];
+  propagatedBuildInputs = [ markdown-it-py ];
 
   nativeCheckInputs = [
     pytestCheckHook
     pytest-regressions
   ];
 
-  pythonImportsCheck = [
-    "mdit_py_plugins"
-  ];
+  pythonImportsCheck = [ "mdit_py_plugins" ];
 
   meta = with lib; {
     description = "Collection of core plugins for markdown-it-py";
diff --git a/pkgs/development/python-modules/mdp/default.nix b/pkgs/development/python-modules/mdp/default.nix
index 40f57408703f9..69102cddcd3f9 100644
--- a/pkgs/development/python-modules/mdp/default.nix
+++ b/pkgs/development/python-modules/mdp/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, future
-, joblib
-, numpy
-, pytest
-, pythonOlder
-, scikit-learn
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  future,
+  joblib,
+  numpy,
+  pytest,
+  pythonOlder,
+  scikit-learn,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/mdtraj/default.nix b/pkgs/development/python-modules/mdtraj/default.nix
index 971688348a1d5..5cca00165cfba 100644
--- a/pkgs/development/python-modules/mdtraj/default.nix
+++ b/pkgs/development/python-modules/mdtraj/default.nix
@@ -1,36 +1,38 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, llvmPackages
-, zlib
-, cython_0
-, oldest-supported-numpy
-, setuptools
-, wheel
-, astunparse
-, numpy
-, pyparsing
-, scipy
-, gsd
-, networkx
-, pandas
-, pytest-xdist
-, pytestCheckHook
-, tables
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  llvmPackages,
+  zlib,
+  cython_0,
+  oldest-supported-numpy,
+  setuptools,
+  wheel,
+  astunparse,
+  numpy,
+  packaging,
+  pyparsing,
+  scipy,
+  gsd,
+  networkx,
+  pandas,
+  pytest-xdist,
+  pytestCheckHook,
+  tables,
 }:
 
 buildPythonPackage rec {
   pname = "mdtraj";
-  version = "1.9.9";
+  version = "1.10.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "mdtraj";
     repo = "mdtraj";
     rev = "refs/tags/${version}";
-    hash = "sha256-2Jg6DyVJlRBLD/6hMtcsrAdxKF5RkpUuhAQm/lqVGeE=";
+    hash = "sha256-hNv/humEZOX4W7cOlJSAodk9pIi18//YJNSWNiEFiVg=";
   };
 
   patches = [
@@ -39,24 +41,43 @@ buildPythonPackage rec {
       url = "https://github.com/mdtraj/mdtraj/commit/81209d00817ab07cfc4668bf5ec88088d16904c0.patch";
       hash = "sha256-ttNmij7csxF0Z5wPPwhGumRX055W2IgFjRAe6nI6GNY=";
     })
+    # remove pkg_resources usage
+    # https://github.com/mdtraj/mdtraj/pull/1837
+    (fetchpatch {
+      name = "fix-runtime-error.patch";
+      url = "https://github.com/mdtraj/mdtraj/commit/02d44d4db7039fceb199c85b4f993244804f470d.patch";
+      hash = "sha256-nhbi3iOrDSM87DyIp1KVt383Vvb6aYOgkjuYzviqiq8=";
+    })
+    # remove distutils usage
+    # https://github.com/mdtraj/mdtraj/pull/1834
+    (fetchpatch {
+      name = "python312-compatibility.patch";
+      url = "https://github.com/mdtraj/mdtraj/commit/95d79747deef42c976ca362a57806b61933409f3.patch";
+      hash = "sha256-Cq7/d745q6ZgAyWGM4ULnSsWezsbnu1CjSz5eqYSb+g=";
+    })
+    # disable intrinsics when SIMD is not available
+    # TODO: enable SIMD with python3.12
+    # https://github.com/mdtraj/mdtraj/pull/1884
+    (fetchpatch {
+      name = "fix-intrinsics-flag.patch";
+      url = "https://github.com/mdtraj/mdtraj/commit/d6041c645d51898e2a09030633210213eec7d4c5.patch";
+      hash = "sha256-kcnlHMoA/exJzV8iQltH+LWXrvSk7gsUV+yWK6xn0jg=";
+    })
   ];
 
-  nativeBuildInputs = [
+  build-system = [
     cython_0
     oldest-supported-numpy
     setuptools
     wheel
   ];
 
-  buildInputs = [
-    zlib
-  ] ++ lib.optionals stdenv.cc.isClang [
-    llvmPackages.openmp
-  ];
+  buildInputs = [ zlib ] ++ lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     astunparse
     numpy
+    packaging
     pyparsing
     scipy
   ];
@@ -87,13 +108,15 @@ buildPythonPackage rec {
     "test_read_atomindices_2"
 
     # flaky test
+    "test_compare_rdf_t_master"
     "test_distances_t"
+    "test_precentered_2"
   ];
 
   pythonImportsCheck = [ "mdtraj" ];
 
   meta = with lib; {
-    description = "An open library for the analysis of molecular dynamics trajectories";
+    description = "Open library for the analysis of molecular dynamics trajectories";
     homepage = "https://github.com/mdtraj/mdtraj";
     changelog = "https://github.com/mdtraj/mdtraj/releases/tag/${src.rev}";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/python-modules/mdurl/default.nix b/pkgs/development/python-modules/mdurl/default.nix
index 4c3bde1d2dd41..6a5e3a7cdc739 100644
--- a/pkgs/development/python-modules/mdurl/default.nix
+++ b/pkgs/development/python-modules/mdurl/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-wxV8DKeTwKpFTUBuGTQXaVHc0eW1//Y+2V8Kgs85TDM=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mdurl"
-  ];
+  pythonImportsCheck = [ "mdurl" ];
 
   meta = with lib; {
     description = "URL utilities for markdown-it";
diff --git a/pkgs/development/python-modules/mdutils/default.nix b/pkgs/development/python-modules/mdutils/default.nix
index 7d8249547a834..22ea7ee473c17 100644
--- a/pkgs/development/python-modules/mdutils/default.nix
+++ b/pkgs/development/python-modules/mdutils/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/mdx-truly-sane-lists/default.nix b/pkgs/development/python-modules/mdx-truly-sane-lists/default.nix
index 823d1e26efef2..7787892efdaa9 100644
--- a/pkgs/development/python-modules/mdx-truly-sane-lists/default.nix
+++ b/pkgs/development/python-modules/mdx-truly-sane-lists/default.nix
@@ -1,9 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, markdown
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  markdown,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -28,7 +28,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "Extension for Python-Markdown that makes lists truly sane.";
+    description = "Extension for Python-Markdown that makes lists truly sane";
     longDescription = ''
       Features custom indents for nested lists and fix for messy linebreaks and
       paragraphs between lists.
diff --git a/pkgs/development/python-modules/measurement/default.nix b/pkgs/development/python-modules/measurement/default.nix
index c16b03d8e829b..d69e8d4532dc3 100644
--- a/pkgs/development/python-modules/measurement/default.nix
+++ b/pkgs/development/python-modules/measurement/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, isPy3k
-, flit-core
-, flit-scm
-, sympy
-, pytestCheckHook
-, sphinx
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  isPy3k,
+  flit-core,
+  flit-scm,
+  sympy,
+  pytestCheckHook,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -34,13 +35,9 @@ buildPythonPackage rec {
       --replace "--cov=measurement" ""
   '';
 
-  propagatedBuildInputs = [
-    sympy
-  ];
+  propagatedBuildInputs = [ sympy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Use and manipulate unit-aware measurement objects in Python";
diff --git a/pkgs/development/python-modules/meater-python/default.nix b/pkgs/development/python-modules/meater-python/default.nix
index 219af570dfe87..1d707837ebe7c 100644
--- a/pkgs/development/python-modules/meater-python/default.nix
+++ b/pkgs/development/python-modules/meater-python/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-86XJmKOc2MCyU9v0UAZsPCUL/kAXywOlQOIHaykNF1o=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "meater"
-  ];
+  pythonImportsCheck = [ "meater" ];
 
   meta = with lib; {
     description = "Library for the Apption Labs Meater cooking probe";
diff --git a/pkgs/development/python-modules/mecab-python3/default.nix b/pkgs/development/python-modules/mecab-python3/default.nix
index f661fad488467..5eebd19f53cff 100644
--- a/pkgs/development/python-modules/mecab-python3/default.nix
+++ b/pkgs/development/python-modules/mecab-python3/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mecab
-, swig
-, setuptools-scm
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mecab,
+  swig,
+  setuptools-scm,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,20 +27,20 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  buildInputs = [
-    mecab
-  ];
+  buildInputs = [ mecab ];
 
   doCheck = false;
 
-  pythonImportsCheck = [
-    "MeCab"
-  ];
+  pythonImportsCheck = [ "MeCab" ];
 
   meta = with lib; {
-    description = "A python wrapper for mecab: Morphological Analysis engine";
-    homepage =  "https://github.com/SamuraiT/mecab-python3";
+    description = "Python wrapper for mecab: Morphological Analysis engine";
+    homepage = "https://github.com/SamuraiT/mecab-python3";
     changelog = "https://github.com/SamuraiT/mecab-python3/releases/tag/v${version}";
-    license = with licenses; [ gpl2 lgpl21 bsd3 ]; # any of the three
+    license = with licenses; [
+      gpl2
+      lgpl21
+      bsd3
+    ]; # any of the three
   };
 }
diff --git a/pkgs/development/python-modules/mechanicalsoup/default.nix b/pkgs/development/python-modules/mechanicalsoup/default.nix
index 93b61a40972d1..587d54c8004d4 100644
--- a/pkgs/development/python-modules/mechanicalsoup/default.nix
+++ b/pkgs/development/python-modules/mechanicalsoup/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchFromGitHub
-, lxml
-, pytest-httpbin
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxml,
+  pytest-httpbin,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
@@ -48,15 +49,16 @@ buildPythonPackage rec {
     requests-mock
   ];
 
-  pythonImportsCheck = [
-    "mechanicalsoup"
-  ];
+  pythonImportsCheck = [ "mechanicalsoup" ];
 
   meta = with lib; {
     description = "Python library for automating interaction with websites";
     homepage = "https://github.com/hickford/MechanicalSoup";
     changelog = "https://github.com/MechanicalSoup/MechanicalSoup/releases/tag/v${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ jgillich fab ];
+    maintainers = with maintainers; [
+      jgillich
+      fab
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/mechanize/default.nix b/pkgs/development/python-modules/mechanize/default.nix
index 3724fa64d06e7..a84fe51da4f2b 100644
--- a/pkgs/development/python-modules/mechanize/default.nix
+++ b/pkgs/development/python-modules/mechanize/default.nix
@@ -1,48 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch2
-, html5lib
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  html5lib,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "mechanize";
-  version = "0.4.9";
+  version = "0.4.10";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-aaXtsJYvkh6LEINzaMIkLYrQSfC5H/aZzn9gG/xDFSE=";
+    hash = "sha256-HeqUf5vn6gq2EPe7xKTja0XWv9/O6imtPTiaiKGVfd8=";
   };
 
-  patches = [
-    (fetchpatch2 {
-      # python 3.11+ compat
-      url = "https://github.com/python-mechanize/mechanize/commit/1324b09b661aaac7d4cdc7e1e9d49e1c3851db2c.patch";
-      hash = "sha256-d0Zuz6m2Uv8pnR8TC0L+AStS82rPPTpQrrjkCZnJliE=";
-    })
-  ];
-
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    html5lib
-  ];
+  dependencies = [ html5lib ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mechanize"
-  ];
+  pythonImportsCheck = [ "mechanize" ];
 
   disabledTestPaths = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/mediafile/default.nix b/pkgs/development/python-modules/mediafile/default.nix
index 9faed762afaa6..a8c82e79235bb 100644
--- a/pkgs/development/python-modules/mediafile/default.nix
+++ b/pkgs/development/python-modules/mediafile/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, mutagen
-, pytestCheckHook
-, pythonOlder
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  mutagen,
+  pytestCheckHook,
+  pythonOlder,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-5HHfG1hCIbM/QSXgB61yHNNWJTsuyAh6CQJ7SZhZuvo=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     mutagen
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mediafile"
-  ];
+  pythonImportsCheck = [ "mediafile" ];
 
   meta = with lib; {
     description = "Python interface to the metadata tags for many audio file formats";
diff --git a/pkgs/development/python-modules/mediafire-dl/default.nix b/pkgs/development/python-modules/mediafire-dl/default.nix
index 3cc81a6ce09c1..d4f5235007a56 100644
--- a/pkgs/development/python-modules/mediafire-dl/default.nix
+++ b/pkgs/development/python-modules/mediafire-dl/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, requests
-, six
-, tqdm
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  requests,
+  six,
+  tqdm,
 }:
 
 buildPythonPackage {
@@ -23,9 +24,7 @@ buildPythonPackage {
     tqdm
   ];
 
-  pythonImportsCheck = [
-    "mediafire_dl"
-  ];
+  pythonImportsCheck = [ "mediafire_dl" ];
 
   meta = with lib; {
     description = "Simple command-line script to download files from mediafire based on gdown";
diff --git a/pkgs/development/python-modules/mediapy/default.nix b/pkgs/development/python-modules/mediapy/default.nix
index bd8ccc0e78fca..971fc02dda002 100644
--- a/pkgs/development/python-modules/mediapy/default.nix
+++ b/pkgs/development/python-modules/mediapy/default.nix
@@ -1,29 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, flit-core
-, ipython
-, matplotlib
-, numpy
-, pillow
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  flit-core,
+  ipython,
+  matplotlib,
+  numpy,
+  pillow,
 }:
 
 buildPythonPackage rec {
   pname = "mediapy";
-  version = "1.2.0";
+  version = "1.2.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-enxOx0hZ+fksk8ibsDWg0Bl/cJeSBHE37bN/D1ucECg=";
+    hash = "sha256-QtmhqpPBg1ULgk27Tw3l2mGqXITbjwHwY6zR8juQ7wo=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     ipython
@@ -32,9 +31,7 @@ buildPythonPackage rec {
     pillow
   ];
 
-  pythonImportsCheck = [
-    "mediapy"
-  ];
+  pythonImportsCheck = [ "mediapy" ];
 
   meta = with lib; {
     description = "Read/write/show images and videos in an IPython notebook";
diff --git a/pkgs/development/python-modules/medpy/default.nix b/pkgs/development/python-modules/medpy/default.nix
index 813b8ac71a52f..0fc6d1fc97aad 100644
--- a/pkgs/development/python-modules/medpy/default.nix
+++ b/pkgs/development/python-modules/medpy/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, unittestCheckHook
-, boost
-, numpy
-, scipy
-, simpleitk
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  unittestCheckHook,
+  boost,
+  numpy,
+  scipy,
+  simpleitk,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-kzOTYBcXAAEYoe/m/BjWNaQX4ljG17NxndevAt5KxjQ=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     boost
@@ -35,9 +34,7 @@ buildPythonPackage rec {
     simpleitk
   ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   preCheck = ''
     rm -r medpy/  # prevent importing from build directory at test time
diff --git a/pkgs/development/python-modules/meeko/default.nix b/pkgs/development/python-modules/meeko/default.nix
index 14162af458fcd..c422b962925c2 100644
--- a/pkgs/development/python-modules/meeko/default.nix
+++ b/pkgs/development/python-modules/meeko/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, numpy
-, pytestCheckHook
-, pythonOlder
-, rdkit
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  rdkit,
+  scipy,
 }:
 
 buildPythonPackage rec {
   pname = "meeko";
-  version = "0.5.0";
+  version = "0.5.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.5";
@@ -20,7 +21,7 @@ buildPythonPackage rec {
     owner = "forlilab";
     repo = "Meeko";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pngFu6M63W26P7wd6FUNLuf0NikxtRtVR/pnR5PR6Wo=";
+    hash = "sha256-I/kAO0a6DbDqmzjS36ETuoH/Z1gR2eNpyE3herHDKMs=";
   };
 
   patches = [
@@ -44,13 +45,9 @@ buildPythonPackage rec {
     scipy
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "meeko"
-  ];
+  pythonImportsCheck = [ "meeko" ];
 
   meta = {
     description = "Python package for preparing small molecule for docking";
diff --git a/pkgs/development/python-modules/meep/default.nix b/pkgs/development/python-modules/meep/default.nix
index de8f8994a2fb5..fdb89697ce0c8 100644
--- a/pkgs/development/python-modules/meep/default.nix
+++ b/pkgs/development/python-modules/meep/default.nix
@@ -1,33 +1,34 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, autoreconfHook
-, pkg-config
-, mpiCheckPhaseHook
-, gfortran
-, mpi
-, blas
-, lapack
-, fftw
-, hdf5-mpi
-, swig
-, gsl
-, harminv
-, libctl
-, libGDSII
-, openssh
-, guile
-, python
-, numpy
-, scipy
-, matplotlib
-, h5py-mpi
-, cython
-, autograd
-, mpi4py
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  autoreconfHook,
+  pkg-config,
+  mpiCheckPhaseHook,
+  gfortran,
+  mpi,
+  blas,
+  lapack,
+  fftw,
+  hdf5-mpi,
+  swig,
+  gsl,
+  harminv,
+  libctl,
+  libGDSII,
+  openssh,
+  guile,
+  python,
+  numpy,
+  scipy,
+  matplotlib,
+  h5py-mpi,
+  cython,
+  autograd,
+  mpi4py,
 }:
 
 assert !blas.isILP64;
@@ -35,13 +36,13 @@ assert !lapack.isILP64;
 
 buildPythonPackage rec {
   pname = "meep";
-  version = "1.28.0";
+  version = "1.29.0";
 
   src = fetchFromGitHub {
     owner = "NanoComp";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-o/Xrd/Gn1RsbB+ZfggGH6/ugdsGtfTe2RgaHdpY5AyE=";
+    hash = "sha256-TB85obdk8pSWRaz3+3I6P6+dQtCHosWHRnKGck/wG9Q=";
   };
 
   format = "other";
@@ -75,19 +76,20 @@ buildPythonPackage rec {
     gsl
   ];
 
-  propagatedBuildInputs = [
-    mpi
-    numpy
-    scipy
-    matplotlib
-    h5py-mpi
-    cython
-    autograd
-    mpi4py
-  ]
-  ++ lib.optionals (!pythonOlder "3.12") [
+  propagatedBuildInputs =
+    [
+      mpi
+      numpy
+      scipy
+      matplotlib
+      h5py-mpi
+      cython
+      autograd
+      mpi4py
+    ]
+    ++ lib.optionals (!pythonOlder "3.12") [
       setuptools # used in python/visualization.py
-  ];
+    ];
 
   propagatedUserEnvPkgs = [ mpi ];
 
@@ -110,17 +112,22 @@ buildPythonPackage rec {
     "--enable-maintainer-mode"
   ];
 
-  passthru = { inherit mpi; };
+  passthru = {
+    inherit mpi;
+  };
 
   /*
-  This test is taken from the MEEP tutorial "Fields in a Waveguide" at
-  <https://meep.readthedocs.io/en/latest/Python_Tutorials/Basics/>.
-  It is important, that the test actually performs a calculation
-  (calls `sim.run()`), as only then MPI will be initialised and MPI linking
-  errors can be caught.
+    This test is taken from the MEEP tutorial "Fields in a Waveguide" at
+    <https://meep.readthedocs.io/en/latest/Python_Tutorials/Basics/>.
+    It is important, that the test actually performs a calculation
+    (calls `sim.run()`), as only then MPI will be initialised and MPI linking
+    errors can be caught.
   */
   doCheck = true;
-  nativeCheckInputs = [ mpiCheckPhaseHook openssh ];
+  nativeCheckInputs = [
+    mpiCheckPhaseHook
+    openssh
+  ];
   checkPhase = ''
     runHook preCheck
 
@@ -156,6 +163,9 @@ buildPythonPackage rec {
     homepage = "https://meep.readthedocs.io/en/latest/";
     license = licenses.gpl2Only;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ sheepforce markuskowa ];
+    maintainers = with maintainers; [
+      sheepforce
+      markuskowa
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/meilisearch/default.nix b/pkgs/development/python-modules/meilisearch/default.nix
index e5e47b934fd33..279bf1169f693 100644
--- a/pkgs/development/python-modules/meilisearch/default.nix
+++ b/pkgs/development/python-modules/meilisearch/default.nix
@@ -1,38 +1,35 @@
-{ lib
-, buildPythonPackage
-, camel-converter
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, requests
+{
+  lib,
+  buildPythonPackage,
+  camel-converter,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "meilisearch";
-  version = "0.31.0";
+  version = "0.31.3";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "meilisearch";
     repo = "meilisearch-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-mgslzRd2hvDI0SbQR3eY2vzvaaOVI6mUihdNPKe4jcg=";
+    hash = "sha256-8O0tTif5ii12lD0SXD2rDiRK8xOWkYrZ+K2MTG+Pj7A=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     camel-converter
     requests
   ] ++ camel-converter.optional-dependencies.pydantic;
 
-  pythonImportsCheck = [
-    "meilisearch"
-  ];
+  pythonImportsCheck = [ "meilisearch" ];
 
   # Tests spin up a local server and are not mocking the requests
   doCheck = false;
diff --git a/pkgs/development/python-modules/meinheld/default.nix b/pkgs/development/python-modules/meinheld/default.nix
index f84df9eef46fa..f29125287d7ae 100644
--- a/pkgs/development/python-modules/meinheld/default.nix
+++ b/pkgs/development/python-modules/meinheld/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchPypi, buildPythonPackage, greenlet }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  greenlet,
+}:
 
 buildPythonPackage rec {
   pname = "meinheld";
@@ -21,9 +26,7 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "meinheld"
-  ];
+  pythonImportsCheck = [ "meinheld" ];
 
   meta = with lib; {
     description = "High performance asynchronous Python WSGI Web Server";
diff --git a/pkgs/development/python-modules/meld3/default.nix b/pkgs/development/python-modules/meld3/default.nix
index 039b22358d4dc..482fb76afee57 100644
--- a/pkgs/development/python-modules/meld3/default.nix
+++ b/pkgs/development/python-modules/meld3/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,8 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An HTML/XML templating engine used by supervisor";
+    description = "HTML/XML templating engine used by supervisor";
     homepage = "https://github.com/supervisor/meld3";
     license = licenses.free;
   };
-
 }
diff --git a/pkgs/development/python-modules/memestra/default.nix b/pkgs/development/python-modules/memestra/default.nix
index db7d4e254a738..d9add2a93460a 100644
--- a/pkgs/development/python-modules/memestra/default.nix
+++ b/pkgs/development/python-modules/memestra/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, beniget
-, frilouz
-, gast
-, nbconvert
-, nbformat
-, pythonOlder
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  beniget,
+  frilouz,
+  gast,
+  nbconvert,
+  nbformat,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -15,8 +15,6 @@ buildPythonPackage rec {
   version = "0.2.1";
   format = "setuptools";
 
-  disabled = pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-6shwf9BoDfZMy0itP8esNP4ov6fw6LJpO3Y5ZahwDZw=";
@@ -34,12 +32,10 @@ buildPythonPackage rec {
   # Tests are not detected and so the checkPhase fails
   doCheck = false;
 
-  pythonImportsCheck = [
-    "memestra"
-  ];
+  pythonImportsCheck = [ "memestra" ];
 
   meta = with lib; {
-    description = "A linter that tracks reference to deprecated functions.";
+    description = "Linter that tracks reference to deprecated functions";
     homepage = "https://github.com/QuantStack/memestra";
     license = licenses.bsd3;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/memory-allocator/default.nix b/pkgs/development/python-modules/memory-allocator/default.nix
index c4ddc5d06a1b8..1dd2782396cfd 100644
--- a/pkgs/development/python-modules/memory-allocator/default.nix
+++ b/pkgs/development/python-modules/memory-allocator/default.nix
@@ -1,7 +1,11 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, cython
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  cython,
+
+  # Reverse dependency
+  sage,
 }:
 
 buildPythonPackage rec {
@@ -19,8 +23,12 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "memory_allocator" ];
 
+  passthru.tests = {
+    inherit sage;
+  };
+
   meta = with lib; {
-    description = "An extension class to allocate memory easily with cython";
+    description = "Extension class to allocate memory easily with cython";
     homepage = "https://github.com/sagemath/memory_allocator/";
     maintainers = teams.sage.members;
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/python-modules/memory-profiler/default.nix b/pkgs/development/python-modules/memory-profiler/default.nix
index 9264f136940cd..8e0736e99271a 100644
--- a/pkgs/development/python-modules/memory-profiler/default.nix
+++ b/pkgs/development/python-modules/memory-profiler/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, python
-, fetchPypi
+{
+  lib,
+  python,
+  fetchPypi,
 }:
 
 python.pkgs.buildPythonPackage rec {
@@ -20,7 +21,7 @@ python.pkgs.buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A module for monitoring memory usage of a process";
+    description = "Module for monitoring memory usage of a process";
     mainProgram = "mprof";
     longDescription = ''
       This is a python module for monitoring memory consumption of a process as
diff --git a/pkgs/development/python-modules/meraki/default.nix b/pkgs/development/python-modules/meraki/default.nix
index f0d0e4087e36e..628a8c5861625 100644
--- a/pkgs/development/python-modules/meraki/default.nix
+++ b/pkgs/development/python-modules/meraki/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "meraki";
-  version = "1.45.0";
+  version = "1.46.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-PBeeohKNzAMlEdAjzB8fsVPc+ml+mcaWHoVWPeP93Bo=";
+    hash = "sha256-f3K+59+9NO33GO1SBZhKfqHPO9p5kivDeLNd780cZu8=";
   };
 
   propagatedBuildInputs = [
@@ -26,9 +27,7 @@ buildPythonPackage rec {
   # All tests require an API key
   doCheck = false;
 
-  pythonImportsCheck = [
-    "meraki"
-  ];
+  pythonImportsCheck = [ "meraki" ];
 
   meta = with lib; {
     description = "Provides all current Meraki dashboard API calls to interface with the Cisco Meraki cloud-managed platform";
diff --git a/pkgs/development/python-modules/mercadopago/default.nix b/pkgs/development/python-modules/mercadopago/default.nix
index dc71fc3266676..2a760b321eff3 100644
--- a/pkgs/development/python-modules/mercadopago/default.nix
+++ b/pkgs/development/python-modules/mercadopago/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -19,19 +20,15 @@ buildPythonPackage rec {
     hash = "sha256-ABxYGYUBOzeOSE0yK8jym+ldinDUCTpqO165OWhszgs=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # require internet
   doCheck = false;
 
-  pythonImportsCheck = [
-    "mercadopago"
-  ];
+  pythonImportsCheck = [ "mercadopago" ];
 
   meta = with lib; {
-    description = "This library provides developers with a simple set of bindings to help you integrate Mercado Pago API to a website and start receiving payments.";
+    description = "This library provides developers with a simple set of bindings to help you integrate Mercado Pago API to a website and start receiving payments";
     homepage = "https://www.mercadopago.com";
     changelog = "https://github.com/mercadopago/sdk-python/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/mercantile/default.nix b/pkgs/development/python-modules/mercantile/default.nix
index 8f496bca53c5b..7fd6e040a2af8 100644
--- a/pkgs/development/python-modules/mercantile/default.nix
+++ b/pkgs/development/python-modules/mercantile/default.nix
@@ -1,7 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, click
-, pytestCheckHook
-, hypothesis
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  click,
+  pytestCheckHook,
+  hypothesis,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +21,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ click ];
 
-  nativeCheckInputs = [ pytestCheckHook hypothesis ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    hypothesis
+  ];
 
   meta = with lib; {
     description = "Spherical mercator tile and coordinate utilities";
diff --git a/pkgs/development/python-modules/merge3/default.nix b/pkgs/development/python-modules/merge3/default.nix
index 838bfc6a32c21..3d96e2e1108f7 100644
--- a/pkgs/development/python-modules/merge3/default.nix
+++ b/pkgs/development/python-modules/merge3/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "merge3";
-  version = "0.0.14";
+  version = "0.0.15";
 
   format = "pyproject";
 
@@ -15,16 +16,12 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-MEBumThvSmUoD7nEPmgYkPoqHYOcrCdZ0VbHzBYDAVk=";
+    sha256 = "sha256-0+rCE9hNVt/J45VSrIJGx4YKlAlk6+7YqL5EIvZJK68=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "merge3"
-  ];
+  pythonImportsCheck = [ "merge3" ];
 
   meta = with lib; {
     description = "Python implementation of 3-way merge";
diff --git a/pkgs/development/python-modules/mergedb/default.nix b/pkgs/development/python-modules/mergedb/default.nix
index e5973aa280d26..cbf4baafc3551 100644
--- a/pkgs/development/python-modules/mergedb/default.nix
+++ b/pkgs/development/python-modules/mergedb/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, colorama
-, fetchPypi
-, jinja2
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  colorama,
+  fetchPypi,
+  jinja2,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     sha256 = "2034c18dca23456c5b166b63d94300bcd8ec9f386e6cd639c2f66e141c0313f9";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     pyyaml
@@ -33,20 +32,15 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mergedb"
-  ];
+  pythonImportsCheck = [ "mergedb" ];
 
   meta = with lib; {
-    description = "A tool/library for deep merging YAML files";
+    description = "Tool/library for deep merging YAML files";
     mainProgram = "mergedb";
     homepage = "https://github.com/graysonhead/mergedb";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ graysonhead ];
   };
 }
-
diff --git a/pkgs/development/python-modules/mergedeep/default.nix b/pkgs/development/python-modules/mergedeep/default.nix
index 7d812ceb1e4d5..ebb396a990892 100644
--- a/pkgs/development/python-modules/mergedeep/default.nix
+++ b/pkgs/development/python-modules/mergedeep/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, isPy27, fetchFromGitHub, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  isPy27,
+  fetchFromGitHub,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "mergedeep";
@@ -20,7 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/clarketm/mergedeep";
-    description = "A deep merge function for python";
+    description = "Deep merge function for python";
     license = licenses.mit;
     maintainers = with maintainers; [ ris ];
   };
diff --git a/pkgs/development/python-modules/mergedict/default.nix b/pkgs/development/python-modules/mergedict/default.nix
index 3cfb674a9b295..d68c9d9af3618 100644
--- a/pkgs/development/python-modules/mergedict/default.nix
+++ b/pkgs/development/python-modules/mergedict/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mergedict" ];
 
   meta = with lib; {
-    description = "A Python dict with a merge() method";
+    description = "Python dict with a merge() method";
     homepage = "https://github.com/schettino72/mergedict";
     license = licenses.mit;
     maintainers = with maintainers; [ onny ];
diff --git a/pkgs/development/python-modules/merkletools/default.nix b/pkgs/development/python-modules/merkletools/default.nix
index b5dc5adf3dccd..4a50b73c5a81d 100644
--- a/pkgs/development/python-modules/merkletools/default.nix
+++ b/pkgs/development/python-modules/merkletools/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,13 +26,9 @@ buildPythonPackage rec {
       --replace "install_requires=install_requires" "install_requires=[],"
   '';
 
-  checkInputs = [
-    pytestCheckHook
-  ];
+  checkInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "merkletools"
-  ];
+  pythonImportsCheck = [ "merkletools" ];
 
   meta = with lib; {
     description = "Python tools for creating Merkle trees, generating Merkle proofs, and verification of Merkle proofs";
diff --git a/pkgs/development/python-modules/mesa/default.nix b/pkgs/development/python-modules/mesa/default.nix
index a7664ca70468e..d8a195f5f7243 100644
--- a/pkgs/development/python-modules/mesa/default.nix
+++ b/pkgs/development/python-modules/mesa/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, cookiecutter
-, networkx
-, pandas
-, tornado
-, tqdm
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  cookiecutter,
+  networkx,
+  pandas,
+  tornado,
+  tqdm,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "mesa";
-  version = "2.2.4";
+  version = "2.3.0";
   format = "setuptools";
 
   # According to their docs, this library is for Python 3+.
@@ -21,7 +22,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "mesa";
     inherit version;
-    hash = "sha256-5og3ACS2r36BEGWfqtw6WG6yJwNF5p3M9K25sSmHosM=";
+    hash = "sha256-wXHCyUk05Ez4ye5a1rKXCyKPZMK7bR7xZ5rpD5mEaUw=";
   };
 
   propagatedBuildInputs = [
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     tqdm
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     "test_examples"
@@ -44,7 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/projectmesa/mesa";
-    description = "An agent-based modeling (or ABM) framework in Python";
+    description = "Agent-based modeling (or ABM) framework in Python";
     license = licenses.asl20;
     maintainers = [ maintainers.dpaetzel ];
     broken = true; # missing dependencies
diff --git a/pkgs/development/python-modules/meshcat/default.nix b/pkgs/development/python-modules/meshcat/default.nix
index ff1ef37b22e57..da2329596bd48 100644
--- a/pkgs/development/python-modules/meshcat/default.nix
+++ b/pkgs/development/python-modules/meshcat/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, ipython
-, u-msgpack-python
-, numpy
-, tornado
-, pyzmq
-, pyngrok
-, pillow
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  ipython,
+  u-msgpack-python,
+  numpy,
+  tornado,
+  pyzmq,
+  pyngrok,
+  pillow,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/meshio/default.nix b/pkgs/development/python-modules/meshio/default.nix
index f0c170202683c..6e9904267ece8 100644
--- a/pkgs/development/python-modules/meshio/default.nix
+++ b/pkgs/development/python-modules/meshio/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, netcdf4
-, h5py
-, exdown
-, pytestCheckHook
-, rich
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  netcdf4,
+  h5py,
+  exdown,
+  pytestCheckHook,
+  rich,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-8h8Bq9nym6BuoRkwSz055hBCHP6Tud0jNig0kZ+HWG0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     numpy
@@ -36,11 +35,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = ["meshio"];
+  pythonImportsCheck = [ "meshio" ];
 
   meta = with lib; {
     homepage = "https://github.com/nschloe/meshio";
-    description = "I/O for mesh files.";
+    description = "I/O for mesh files";
     mainProgram = "meshio";
     license = licenses.mit;
     maintainers = with maintainers; [ wd15 ];
diff --git a/pkgs/development/python-modules/meshtastic/default.nix b/pkgs/development/python-modules/meshtastic/default.nix
index 7fab04572aa61..4c5d9928d070e 100644
--- a/pkgs/development/python-modules/meshtastic/default.nix
+++ b/pkgs/development/python-modules/meshtastic/default.nix
@@ -4,6 +4,7 @@
   buildPythonPackage,
   dotmap,
   fetchFromGitHub,
+  packaging,
   pexpect,
   protobuf,
   pygatt,
@@ -22,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "meshtastic";
-  version = "2.3.4";
+  version = "2.3.11";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -31,7 +32,7 @@ buildPythonPackage rec {
     owner = "meshtastic";
     repo = "Meshtastic-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-WxiddF1n9lyxKkZk1MU40NzLh6goLVs81mbJZ3F33R8=";
+    hash = "sha256-s56apVx7+EXkdw3FUjyGKGFjP+IVbO0/VDB4urXEtXQ=";
   };
 
   build-system = [ setuptools ];
@@ -39,6 +40,7 @@ buildPythonPackage rec {
   dependencies = [
     bleak
     dotmap
+    packaging
     pexpect
     protobuf
     pygatt
diff --git a/pkgs/development/python-modules/meson-python/default.nix b/pkgs/development/python-modules/meson-python/default.nix
index c92c0705aaaea..31361667f45da 100644
--- a/pkgs/development/python-modules/meson-python/default.nix
+++ b/pkgs/development/python-modules/meson-python/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, colorama
-, meson
-, ninja
-, pyproject-metadata
-, tomli
-, typing-extensions
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  colorama,
+  meson,
+  ninja,
+  pyproject-metadata,
+  tomli,
+  typing-extensions,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,21 +28,15 @@ buildPythonPackage rec {
     ninja
     pyproject-metadata
     tomli
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ];
 
   propagatedBuildInputs = [
     meson
     ninja
     pyproject-metadata
     tomli
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    typing-extensions
-  ];
-  setupHooks = [
-    ./add-build-flags.sh
-  ];
+  ] ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ];
+  setupHooks = [ ./add-build-flags.sh ];
 
   meta = {
     changelog = "https://github.com/mesonbuild/meson-python/blob/${version}/CHANGELOG.rst";
diff --git a/pkgs/development/python-modules/mesonpep517/default.nix b/pkgs/development/python-modules/mesonpep517/default.nix
index 237f7f4876ec4..f47f40e0d1f99 100644
--- a/pkgs/development/python-modules/mesonpep517/default.nix
+++ b/pkgs/development/python-modules/mesonpep517/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, meson
-, ninja
-, setuptools
-, toml
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  meson,
+  ninja,
+  setuptools,
+  toml,
+  wheel,
 }:
 
 # TODO: offer meson as a Python package so we have dist-info folder.
@@ -35,7 +36,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ toml ];
 
-  propagatedNativeBuildInputs = [ meson ninja ];
+  propagatedNativeBuildInputs = [
+    meson
+    ninja
+  ];
 
   meta = {
     description = "Create pep517 compliant packages from the meson build system";
diff --git a/pkgs/development/python-modules/messagebird/default.nix b/pkgs/development/python-modules/messagebird/default.nix
index 4365e44623741..302ce5087bc60 100644
--- a/pkgs/development/python-modules/messagebird/default.nix
+++ b/pkgs/development/python-modules/messagebird/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, pyjwt
-, mock
-, python-dateutil
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  pyjwt,
+  mock,
+  python-dateutil,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "messagebird";
-  version = "2.1.0";
+  version = "2.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +21,7 @@ buildPythonPackage rec {
     owner = "messagebird";
     repo = "python-rest-api";
     rev = version;
-    hash = "sha256-2KVAxdHT5+Ie3ZRxXZhU0hLOtHWjIiJi+ferkYTlSn0=";
+    hash = "sha256-OiLhnmZ725VbyoOHvSf4nKQRA7JsxqcOv0VKBL6rUtU=";
   };
 
   propagatedBuildInputs = [
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "messagebird"
-  ];
+  pythonImportsCheck = [ "messagebird" ];
 
   disabledTestPaths = [
     # ValueError: not enough values to unpack (expected 6, got 0)
diff --git a/pkgs/development/python-modules/metakernel/default.nix b/pkgs/development/python-modules/metakernel/default.nix
index e888ccfe98f8f..81d8e852dd52f 100644
--- a/pkgs/development/python-modules/metakernel/default.nix
+++ b/pkgs/development/python-modules/metakernel/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatchling
-, ipykernel
-, jedi
-, jupyter-core
-, pexpect
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatchling,
+  ipykernel,
+  jedi,
+  jupyter-core,
+  pexpect,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-Siff2FO4SfASgkLFUgTuWXpajYZClPJghLry+8gU1aQ=";
   };
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   dependencies = [
     ipykernel
@@ -35,9 +34,7 @@ buildPythonPackage rec {
   # Tests hang, so disable
   doCheck = false;
 
-  pythonImportsCheck = [
-    "metakernel"
-  ];
+  pythonImportsCheck = [ "metakernel" ];
 
   meta = with lib; {
     description = "Jupyter/IPython Kernel Tools";
diff --git a/pkgs/development/python-modules/metar/default.nix b/pkgs/development/python-modules/metar/default.nix
index b130672810ec8..6adcc91bda99f 100644
--- a/pkgs/development/python-modules/metar/default.nix
+++ b/pkgs/development/python-modules/metar/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-ZDjlXcSTUcSP7oRdhzLpXf/fLUA7Nkc6nj2I6vovbHg=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "metar"
-  ];
+  pythonImportsCheck = [ "metar" ];
 
   meta = with lib; {
     description = "Python parser for coded METAR weather reports";
diff --git a/pkgs/development/python-modules/metawear/default.nix b/pkgs/development/python-modules/metawear/default.nix
index 96f8c9434500a..c95efd8e31884 100644
--- a/pkgs/development/python-modules/metawear/default.nix
+++ b/pkgs/development/python-modules/metawear/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, gcc
-, cython
-, boost
-, bluez
-, nlohmann_json
-, pyserial
-, requests
-, warble
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  gcc,
+  cython,
+  boost,
+  bluez,
+  nlohmann_json,
+  pyserial,
+  requests,
+  warble,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-gNEI6P6GslNd1DzFwCFndVIfUvSTPYollGdqkZhQ4Y8=";
   };
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
   buildInputs = [
     boost
@@ -47,7 +46,10 @@ buildPythonPackage rec {
 
   enableParallelBuilding = true;
 
-  pythonImportsCheck = [ "mbientlab" "mbientlab.metawear" ];
+  pythonImportsCheck = [
+    "mbientlab"
+    "mbientlab.metawear"
+  ];
 
   meta = with lib; {
     description = "Python bindings for the MetaWear C++ SDK by MbientLab";
@@ -57,4 +59,3 @@ buildPythonPackage rec {
     platforms = platforms.linux;
   };
 }
-
diff --git a/pkgs/development/python-modules/meteoalertapi/default.nix b/pkgs/development/python-modules/meteoalertapi/default.nix
index 9510ae01ffa57..7f453255f46ca 100644
--- a/pkgs/development/python-modules/meteoalertapi/default.nix
+++ b/pkgs/development/python-modules/meteoalertapi/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
-, xmltodict
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/meteocalc/default.nix b/pkgs/development/python-modules/meteocalc/default.nix
index 886b77de08806..38c39d7d42caf 100644
--- a/pkgs/development/python-modules/meteocalc/default.nix
+++ b/pkgs/development/python-modules/meteocalc/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-WuIW6hROQkjMfbCLUouECIrp4s6oCd2/N79hsrTbVTk=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "meteocalc"
-  ];
+  pythonImportsCheck = [ "meteocalc" ];
 
   meta = with lib; {
     description = "Module for calculation of meteorological variables";
diff --git a/pkgs/development/python-modules/meteofrance-api/default.nix b/pkgs/development/python-modules/meteofrance-api/default.nix
index ce3dbe1b44f77..89cdc0735ea5c 100644
--- a/pkgs/development/python-modules/meteofrance-api/default.nix
+++ b/pkgs/development/python-modules/meteofrance-api/default.nix
@@ -1,15 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, pytz
-, requests
-, requests-mock
-, typing-extensions
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  requests,
+  requests-mock,
+  typing-extensions,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -28,12 +28,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "urllib3"
-  ];
+  pythonRelaxDeps = [ "urllib3" ];
 
   propagatedBuildInputs = [
     pytz
@@ -47,9 +44,7 @@ buildPythonPackage rec {
     requests-mock
   ];
 
-  pythonImportsCheck = [
-    "meteofrance_api"
-  ];
+  pythonImportsCheck = [ "meteofrance_api" ];
 
   disabledTests = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/mezzanine/default.nix b/pkgs/development/python-modules/mezzanine/default.nix
index 18d06579a8a87..9dbbfe4c6d7d9 100644
--- a/pkgs/development/python-modules/mezzanine/default.nix
+++ b/pkgs/development/python-modules/mezzanine/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, beautifulsoup4
-, bleach
-, buildPythonPackage
-, chardet
-, django
-, django-contrib-comments
-, fetchPypi
-, filebrowser-safe
-, future
-, grappelli-safe
-, isPyPy
-, pep8
-, pillow
-, pyflakes
-, pythonOlder
-, pytz
-, requests
-, requests-oauthlib
-, tzlocal
+{
+  lib,
+  beautifulsoup4,
+  bleach,
+  buildPythonPackage,
+  chardet,
+  django,
+  django-contrib-comments,
+  fetchPypi,
+  filebrowser-safe,
+  future,
+  grappelli-safe,
+  isPyPy,
+  pep8,
+  pillow,
+  pyflakes,
+  pythonOlder,
+  pytz,
+  requests,
+  requests-oauthlib,
+  tzlocal,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/mf2py/default.nix b/pkgs/development/python-modules/mf2py/default.nix
index ce50d3662f466..8d0ecc7d9937e 100644
--- a/pkgs/development/python-modules/mf2py/default.nix
+++ b/pkgs/development/python-modules/mf2py/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchFromGitHub
-, html5lib
-, lxml
-, mock
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, requests
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitHub,
+  html5lib,
+  lxml,
+  mock,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-mhJ+s1rtXEJ6DqVmiyWNEK+3cdDLpR63Q4QGmD9wVio=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     beautifulsoup4
@@ -41,9 +40,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "mf2py"
-  ];
+  pythonImportsCheck = [ "mf2py" ];
 
   meta = with lib; {
     description = "Microformats2 parser written in Python";
diff --git a/pkgs/development/python-modules/mhcflurry/default.nix b/pkgs/development/python-modules/mhcflurry/default.nix
index 2b2a7c9fcabb2..68b4624125a40 100644
--- a/pkgs/development/python-modules/mhcflurry/default.nix
+++ b/pkgs/development/python-modules/mhcflurry/default.nix
@@ -1,32 +1,33 @@
-{ appdirs
-, buildPythonPackage
-, fetchFromGitHub
-, keras
-, lib
-, mhcgnomes
-, nose
-, pandas
-, pytestCheckHook
-, pyyaml
-, scikit-learn
-, tensorflow
-, tqdm
+{
+  appdirs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  keras,
+  lib,
+  mhcgnomes,
+  nose,
+  pandas,
+  pytestCheckHook,
+  pyyaml,
+  scikit-learn,
+  tensorflow,
+  tqdm,
 }:
 
 buildPythonPackage rec {
   pname = "mhcflurry";
-  version = "2.1.0";
-  format = "setuptools";
+  version = "2.1.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "openvax";
-    repo = pname;
+    repo = "mhcflurry";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VyPHcNlZYgNJZb2UBFX55x+nE0GnHixkcsiTNjDCju0=";
+    hash = "sha256-absIKvcFo6I1Uu0t+l8OLOU/AQ4kD295P4+KVwMAWMc=";
   };
 
   # keras and tensorflow are not in the official setup.py requirements but are required for the CLI utilities to run.
-  propagatedBuildInputs = [
+  dependencies = [
     appdirs
     keras
     mhcgnomes
@@ -37,7 +38,10 @@ buildPythonPackage rec {
     tqdm
   ];
 
-  nativeCheckInputs = [ nose pytestCheckHook ];
+  nativeCheckInputs = [
+    nose
+    pytestCheckHook
+  ];
 
   disabledTests = [
     # RuntimeError: Missing MHCflurry downloadable file: /homeless-shelter/.local...
@@ -78,10 +82,13 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "mhcflurry" ];
 
-  meta = with lib; {
+  meta = {
     description = "Peptide-MHC I binding affinity prediction";
     homepage = "https://github.com/openvax/mhcflurry";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ samuela ];
+    changelog = "https://github.com/openvax/mhcflurry/releases/tag/v${version}";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ samuela ];
+    # ModuleNotFoundError: No module named 'keras.api._v2' as tensorflow is too outdated
+    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/mhcgnomes/default.nix b/pkgs/development/python-modules/mhcgnomes/default.nix
index 4c5d1f6faac9e..9a1a470d7a72e 100644
--- a/pkgs/development/python-modules/mhcgnomes/default.nix
+++ b/pkgs/development/python-modules/mhcgnomes/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, pandas
-, pyyaml
-, serializable
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  pandas,
+  pyyaml,
+  serializable,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-KKiBlnFlavRnaQnOpAzG0dyxmFB+zF9L6t/H05LkFZE=";
   };
 
-  propagatedBuildInputs = [ pandas pyyaml serializable ];
+  propagatedBuildInputs = [
+    pandas
+    pyyaml
+    serializable
+  ];
 
   pythonImportsCheck = [ "mhcgnomes" ];
 
diff --git a/pkgs/development/python-modules/miasm/0001-setup.py-use-valid-semver.patch b/pkgs/development/python-modules/miasm/0001-setup.py-use-valid-semver.patch
new file mode 100644
index 0000000000000..ac98a5fc4d309
--- /dev/null
+++ b/pkgs/development/python-modules/miasm/0001-setup.py-use-valid-semver.patch
@@ -0,0 +1,26 @@
+From c85780ce97798f332d627bd44cbbfa19c9ea565e Mon Sep 17 00:00:00 2001
+From: Moritz Sanft <58110325+msanft@users.noreply.github.com>
+Date: Sat, 11 May 2024 11:03:34 +0200
+Subject: [PATCH] setup.py: use valid semver
+
+Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
+---
+ setup.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/setup.py b/setup.py
+index e1e54434..98e29fee 100644
+--- a/setup.py
++++ b/setup.py
+@@ -314,7 +314,7 @@ def build_all():
+         try:
+             s = setup(
+                 name = "miasm",
+-                version = __import__("miasm").VERSION,
++                version = "v0.0.0",
+                 packages = packages,
+                 data_files=[("", ["README.md"])],
+                 package_data = {
+-- 
+2.44.0
+
diff --git a/pkgs/development/python-modules/miasm/0002-core-remove-IDAPython-dependency.patch b/pkgs/development/python-modules/miasm/0002-core-remove-IDAPython-dependency.patch
new file mode 100644
index 0000000000000..20262d8102b10
--- /dev/null
+++ b/pkgs/development/python-modules/miasm/0002-core-remove-IDAPython-dependency.patch
@@ -0,0 +1,65 @@
+From fd2a6b2899c8b836a086b43ec9ebccf726f71ec4 Mon Sep 17 00:00:00 2001
+From: Moritz Sanft <58110325+msanft@users.noreply.github.com>
+Date: Sat, 11 May 2024 11:04:19 +0200
+Subject: [PATCH] core: remove IDAPython dependency
+
+Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com>
+---
+ miasm/core/bin_stream_ida.py | 45 ------------------------------------
+ 1 file changed, 45 deletions(-)
+ delete mode 100644 miasm/core/bin_stream_ida.py
+
+diff --git a/miasm/core/bin_stream_ida.py b/miasm/core/bin_stream_ida.py
+deleted file mode 100644
+index 15bd9d8b..00000000
+--- a/miasm/core/bin_stream_ida.py
++++ /dev/null
+@@ -1,45 +0,0 @@
+-from builtins import range
+-from idc import get_wide_byte, get_segm_end
+-from idautils import Segments
+-from idaapi import is_mapped
+-
+-from miasm.core.utils import int_to_byte
+-from miasm.core.bin_stream import bin_stream_str
+-
+-
+-class bin_stream_ida(bin_stream_str):
+-    """
+-    bin_stream implementation for IDA
+-
+-    Don't generate xrange using address computation:
+-    It can raise error on overflow 7FFFFFFF with 32 bit python
+-    """
+-    def _getbytes(self, start, l=1):
+-        out = []
+-        for ad in range(l):
+-            offset = ad + start + self.base_address
+-            if not is_mapped(offset):
+-                raise IOError(f"not enough bytes @ offset {offset:x}")
+-            out.append(int_to_byte(get_wide_byte(offset)))
+-        return b''.join(out)
+-
+-    def readbs(self, l=1):
+-        if self.offset + l > self.l:
+-            raise IOError("not enough bytes")
+-        content = self.getbytes(self.offset)
+-        self.offset += l
+-        return content
+-
+-    def __str__(self):
+-        raise NotImplementedError('Not fully functional')
+-
+-    def setoffset(self, val):
+-        self.offset = val
+-
+-    def getlen(self):
+-        # Lazy version
+-        if hasattr(self, "_getlen"):
+-            return self._getlen
+-        max_addr = get_segm_end(list(Segments())[-1]  - (self.offset - self.base_address))
+-        self._getlen = max_addr
+-        return max_addr
+-- 
+2.44.0
+
diff --git a/pkgs/development/python-modules/miasm/default.nix b/pkgs/development/python-modules/miasm/default.nix
new file mode 100644
index 0000000000000..ddbbd1262c536
--- /dev/null
+++ b/pkgs/development/python-modules/miasm/default.nix
@@ -0,0 +1,59 @@
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  future,
+  gcc,
+  llvmlite,
+  parameterized,
+  pycparser,
+  pyparsing,
+  z3-solver,
+  setuptools,
+}:
+let
+  commit = "90dc1671b59077ee27c3d44d9d536d6659eb3bbe";
+in
+buildPythonPackage rec {
+  pname = "miasm";
+  version = "0.1.5-unstable-2024-04-28";
+
+  pyproject = true;
+  build-system = [ setuptools ];
+
+  src = fetchFromGitHub {
+    owner = "cea-sec";
+    repo = "miasm";
+    rev = commit;
+    hash = "sha256-nkRcirJLmTwSL7lwd+Yk6mteU3YPnm5ekJ4eFF5FmYo=";
+  };
+
+  patches = [
+    #  Use a valid semver as now required by setuptools
+    ./0001-setup.py-use-valid-semver.patch
+
+    # Removes the (unfree) IDAPython dependency
+    ./0002-core-remove-IDAPython-dependency.patch
+  ];
+
+  dependencies = [
+    future
+    llvmlite
+    parameterized
+    pycparser
+    pyparsing
+    z3-solver
+  ];
+
+  buildInputs = [ gcc ];
+
+  pythonImportsCheck = [ "miasm" ];
+
+  meta = {
+    description = "Reverse engineering framework in Python";
+    homepage = "https://github.com/cea-sec/miasm";
+    changelog = "https://github.com/cea-sec/miasm/blob/${commit}/CHANGELOG.md";
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ msanft ];
+  };
+}
diff --git a/pkgs/development/python-modules/miauth/default.nix b/pkgs/development/python-modules/miauth/default.nix
index c28c5ed96a77a..775a836375fcf 100644
--- a/pkgs/development/python-modules/miauth/default.nix
+++ b/pkgs/development/python-modules/miauth/default.nix
@@ -1,18 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, bluepy
-, cryptography
+  # dependencies
+  bluepy,
+  cryptography,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -29,25 +29,18 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     setuptools
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "cryptography"
-  ];
+  pythonRelaxDeps = [ "cryptography" ];
 
   propagatedBuildInputs = [
     bluepy
     cryptography
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "miauth"
-  ];
+  pythonImportsCheck = [ "miauth" ];
 
   meta = with lib; {
     description = "Authenticate and interact with Xiaomi devices over BLE";
diff --git a/pkgs/development/python-modules/micawber/default.nix b/pkgs/development/python-modules/micawber/default.nix
index 0a4decb49e4dd..ecd06217faf73 100644
--- a/pkgs/development/python-modules/micawber/default.nix
+++ b/pkgs/development/python-modules/micawber/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, beautifulsoup4
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  beautifulsoup4,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     sha256 = "sha256-CsWBS2X/KngfsTlLkaI6ipX3NJK2u49wW67q2C6t1UM=";
   };
 
-  propagatedBuildInputs = [
-    beautifulsoup4
-  ];
+  propagatedBuildInputs = [ beautifulsoup4 ];
 
   meta = with lib; {
     homepage = "https://micawber.readthedocs.io/en/latest/";
diff --git a/pkgs/development/python-modules/micloud/default.nix b/pkgs/development/python-modules/micloud/default.nix
index ab934962e216b..b6d325395c8fb 100644
--- a/pkgs/development/python-modules/micloud/default.nix
+++ b/pkgs/development/python-modules/micloud/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, click
-, pycryptodome
-, requests
-, tzlocal
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  click,
+  pycryptodome,
+  requests,
+  tzlocal,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/microdata/default.nix b/pkgs/development/python-modules/microdata/default.nix
index f7dcfc92f8b96..d53ecea8defc9 100644
--- a/pkgs/development/python-modules/microdata/default.nix
+++ b/pkgs/development/python-modules/microdata/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, html5lib
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  html5lib,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-BAygCLBLxZ033ZWRFSR52dSM2nPY8jXplDXQ8WW3KPo=";
   };
 
-  propagatedBuildInputs = [
-    html5lib
-  ];
+  propagatedBuildInputs = [ html5lib ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   pythonImportsCheck = [ "microdata" ];
 
diff --git a/pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix b/pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix
index a92965db33987..dfe65b63c4549 100644
--- a/pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix
+++ b/pkgs/development/python-modules/microsoft-kiota-abstractions/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "microsoft-kiota-abstractions";
-  version = "1.3.2";
+  version = "1.3.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "microsoft";
     repo = "kiota-abstractions-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-n9Erm21slKm+zDblhSHA5Cwxkyrcyx0w09ua3bUc5XI=";
+    hash = "sha256-TgHj5Ga6Aw/sN2Hobn0OocFB/iGRHTKEeOa2j2aqnRY=";
   };
 
   build-system = [ flit-core ];
diff --git a/pkgs/development/python-modules/midea-beautiful-air/default.nix b/pkgs/development/python-modules/midea-beautiful-air/default.nix
index 1fde2c7a34f48..6b589b3343693 100644
--- a/pkgs/development/python-modules/midea-beautiful-air/default.nix
+++ b/pkgs/development/python-modules/midea-beautiful-air/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, cryptography
-, requests
-, pytestCheckHook
-, pytest-socket
-, requests-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  cryptography,
+  requests,
+  pytestCheckHook,
+  pytest-socket,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-786Q085bv8Zsm0c55I4XalRhEfwElRTJds5qnb0cWhk=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     cryptography
diff --git a/pkgs/development/python-modules/midiutil/default.nix b/pkgs/development/python-modules/midiutil/default.nix
index 6f1e51ae93391..17e99c731a8f2 100644
--- a/pkgs/development/python-modules/midiutil/default.nix
+++ b/pkgs/development/python-modules/midiutil/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "midiutil";
@@ -12,7 +16,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/MarkCWirt/MIDIUtil";
-    description = "A pure python library for creating multi-track MIDI files";
+    description = "Pure python library for creating multi-track MIDI files";
     license = licenses.mit;
     maintainers = [ ];
   };
diff --git a/pkgs/development/python-modules/mido/default.nix b/pkgs/development/python-modules/mido/default.nix
index b5375b4f1dffc..270604f782ea8 100644
--- a/pkgs/development/python-modules/mido/default.nix
+++ b/pkgs/development/python-modules/mido/default.nix
@@ -1,28 +1,28 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, substituteAll
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  substituteAll,
 
-# build-system
-, setuptools
-, setuptools-scm
-, pythonRelaxDepsHook
+  # build-system
+  setuptools,
+  setuptools-scm,
 
-# dependencies
-, packaging
+  # dependencies
+  packaging,
 
-# native dependencies
-, portmidi
+  # native dependencies
+  portmidi,
 
-# optional-dependencies
-, pygame
-, python-rtmidi
-, rtmidi-python
+  # optional-dependencies
+  pygame,
+  python-rtmidi,
+  rtmidi-python,
 
-# tests
-, pytestCheckHook
-, pythonOlder
+  # tests
+  pytestCheckHook,
+  pythonOlder,
 
 }:
 
@@ -48,16 +48,11 @@ buildPythonPackage rec {
   build-system = [
     setuptools
     setuptools-scm
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "packaging"
-  ];
+  pythonRelaxDeps = [ "packaging" ];
 
-  dependencies = [
-    packaging
-  ];
+  dependencies = [ packaging ];
 
   optional-dependencies = {
     ports-pygame = [ pygame ];
@@ -65,13 +60,9 @@ buildPythonPackage rec {
     ports-rtmidi-python = [ rtmidi-python ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mido"
-  ];
+  pythonImportsCheck = [ "mido" ];
 
   meta = with lib; {
     description = "MIDI Objects for Python";
diff --git a/pkgs/development/python-modules/migen/default.nix b/pkgs/development/python-modules/migen/default.nix
index d1633cbd8cfa9..76c1cbba0da1c 100644
--- a/pkgs/development/python-modules/migen/default.nix
+++ b/pkgs/development/python-modules/migen/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, colorama
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  colorama,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-IPyhoFZLhY8d3jHB8jyvGdbey7V+X5eCzBZYSrJ18ec=";
   };
 
-  propagatedBuildInputs = [
-    colorama
-  ];
+  propagatedBuildInputs = [ colorama ];
 
   pythonImportsCheck = [ "migen" ];
 
diff --git a/pkgs/development/python-modules/mike/default.nix b/pkgs/development/python-modules/mike/default.nix
index da31390805968..55c7f7d573ad3 100644
--- a/pkgs/development/python-modules/mike/default.nix
+++ b/pkgs/development/python-modules/mike/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, git
-, importlib-metadata
-, importlib-resources
-, jinja2
-, mkdocs
-, pythonOlder
-, pyyaml
-, unittestCheckHook
-, verspec
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  git,
+  importlib-metadata,
+  importlib-resources,
+  jinja2,
+  mkdocs,
+  pythonOlder,
+  pyyaml,
+  unittestCheckHook,
+  verspec,
 }:
 
 buildPythonPackage rec {
@@ -47,9 +48,7 @@ buildPythonPackage rec {
   # Difficult to setup
   doCheck = false;
 
-  pythonImportsCheck = [
-    "mike"
-  ];
+  pythonImportsCheck = [ "mike" ];
 
   meta = with lib; {
     description = "Manage multiple versions of your MkDocs-powered documentation";
diff --git a/pkgs/development/python-modules/milc/default.nix b/pkgs/development/python-modules/milc/default.nix
index 2cb630afbe48c..4aaba74782ea7 100644
--- a/pkgs/development/python-modules/milc/default.nix
+++ b/pkgs/development/python-modules/milc/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, appdirs
-, argcomplete
-, colorama
-, halo
-, spinners
-, types-colorama
-, nose2
-, semver
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  appdirs,
+  argcomplete,
+  colorama,
+  halo,
+  spinners,
+  types-colorama,
+  nose2,
+  semver,
 }:
 
 buildPythonPackage rec {
@@ -40,7 +41,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "milc" ];
 
   meta = with lib; {
-    description = "An Opinionated Batteries-Included Python 3 CLI Framework";
+    description = "Opinionated Batteries-Included Python 3 CLI Framework";
     mainProgram = "milc-color";
     homepage = "https://milc.clueboard.co";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/milksnake/default.nix b/pkgs/development/python-modules/milksnake/default.nix
index 567305b194e81..16b0bf2a95770 100644
--- a/pkgs/development/python-modules/milksnake/default.nix
+++ b/pkgs/development/python-modules/milksnake/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, fetchpatch, cffi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  cffi,
+}:
 
 buildPythonPackage rec {
   pname = "milksnake";
@@ -19,15 +25,13 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
-   cffi
-  ];
+  propagatedBuildInputs = [ cffi ];
 
   # tests rely on pip/venv
   doCheck = false;
 
   meta = with lib; {
-    description = "A python library that extends setuptools for binary extensions";
+    description = "Python library that extends setuptools for binary extensions";
     homepage = "https://github.com/getsentry/milksnake";
     license = licenses.asl20;
     maintainers = with maintainers; [ matthiasbeyer ];
diff --git a/pkgs/development/python-modules/mill-local/default.nix b/pkgs/development/python-modules/mill-local/default.nix
index 6c24ba8f424c5..3f6a236c40d56 100644
--- a/pkgs/development/python-modules/mill-local/default.nix
+++ b/pkgs/development/python-modules/mill-local/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "mill_local"
-  ];
+  pythonImportsCheck = [ "mill_local" ];
 
   meta = with lib; {
     description = "Python module to communicate locally with Mill heaters";
diff --git a/pkgs/development/python-modules/millheater/default.nix b/pkgs/development/python-modules/millheater/default.nix
index be07dd2f85984..3f372790702a4 100644
--- a/pkgs/development/python-modules/millheater/default.nix
+++ b/pkgs/development/python-modules/millheater/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "mill"
-  ];
+  pythonImportsCheck = [ "mill" ];
 
   meta = with lib; {
     description = "Python library for Mill heater devices";
diff --git a/pkgs/development/python-modules/minari/default.nix b/pkgs/development/python-modules/minari/default.nix
new file mode 100644
index 0000000000000..fdf38918ff33a
--- /dev/null
+++ b/pkgs/development/python-modules/minari/default.nix
@@ -0,0 +1,88 @@
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  google-cloud-storage,
+  gymnasium,
+  h5py,
+  numpy,
+  packaging,
+  portion,
+  rich,
+  tqdm,
+  typer,
+  typing-extensions,
+  imageio,
+  nbmake,
+  pytest,
+  pytest-markdown-docs,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "minari";
+  version = "0.4.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "Farama-Foundation";
+    repo = "Minari";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-DwuANo0PCb2pPTVST8EwuJHe5HKRV8JIpFBpSqoJNh8=";
+  };
+
+  build-system = [
+    setuptools
+    wheel
+  ];
+
+  dependencies = [
+    google-cloud-storage
+    gymnasium
+    h5py
+    numpy
+    packaging
+    portion
+    rich
+    tqdm
+    typer
+    typing-extensions
+  ];
+
+  passthru.optional-dependencies = {
+    testing = [
+      # gymnasium-robotics
+      imageio
+      nbmake
+      pytest
+      pytest-markdown-docs
+    ];
+  };
+
+  pythonImportsCheck = [ "minari" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  disabledTestPaths = [
+    # Require internet access
+    "tests/dataset/test_dataset_download.py"
+    "tests/test_cli.py"
+  ];
+
+  meta = with lib; {
+    description = "Standard format for offline reinforcement learning datasets, with popular reference datasets and related utilities";
+    homepage = "https://github.com/Farama-Foundation/Minari";
+    changelog = "https://github.com/Farama-Foundation/Minari/releases/tag/v${version}";
+    license = with licenses; [
+      asl20
+      mit
+    ];
+    maintainers = with maintainers; [ GaetanLepage ];
+    mainProgram = "minari";
+  };
+}
diff --git a/pkgs/development/python-modules/mindsdb-evaluator/default.nix b/pkgs/development/python-modules/mindsdb-evaluator/default.nix
index 9cc654911fc5f..423f3401da68e 100644
--- a/pkgs/development/python-modules/mindsdb-evaluator/default.nix
+++ b/pkgs/development/python-modules/mindsdb-evaluator/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, poetry-core
-, dataprep-ml
-, numpy
-, pandas
-, scikit-learn
-, type-infer
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  poetry-core,
+  dataprep-ml,
+  numpy,
+  pandas,
+  scikit-learn,
+  type-infer,
 }:
 
 buildPythonPackage rec {
   pname = "mindsdb-evaluator";
-  version = "0.0.12";
+  version = "0.0.13";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,12 +22,10 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "mindsdb_evaluator";
     inherit version;
-    hash = "sha256-SqcBtoY7WZcorAaoyhqNDscf1MkSz0pE993mz1MRXCU=";
+    hash = "sha256-SW3GYe9ykbs6ZViScdAgwiBAP9ix4v1VbSm/kJK2jDA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     dataprep-ml
diff --git a/pkgs/development/python-modules/minexr/default.nix b/pkgs/development/python-modules/minexr/default.nix
index 3785baaa978f3..d99149d8b568b 100644
--- a/pkgs/development/python-modules/minexr/default.nix
+++ b/pkgs/development/python-modules/minexr/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, numpy
-, pillow
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  numpy,
+  pillow,
 }:
 
 buildPythonPackage rec {
@@ -21,10 +22,13 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ numpy ];
 
   pythonImportsCheck = [ "minexr" ];
-  nativeCheckInputs = [ pytestCheckHook pillow ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    pillow
+  ];
 
   meta = with lib; {
-    description = "Minimal, standalone OpenEXR reader for single-part, uncompressed scan line files.";
+    description = "Minimal, standalone OpenEXR reader for single-part, uncompressed scan line files";
     homepage = "https://github.com/cheind/py-minexr";
     license = licenses.mit;
     maintainers = with maintainers; [ lucasew ];
diff --git a/pkgs/development/python-modules/miniaudio/default.nix b/pkgs/development/python-modules/miniaudio/default.nix
index 973d4b40822e0..ce4638f6e3ba8 100644
--- a/pkgs/development/python-modules/miniaudio/default.nix
+++ b/pkgs/development/python-modules/miniaudio/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, miniaudio
-, cffi
-, pytestCheckHook
-, AudioToolbox
-, CoreAudio
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  miniaudio,
+  cffi,
+  pytestCheckHook,
+  AudioToolbox,
+  CoreAudio,
 }:
 
 let
@@ -53,9 +54,7 @@ buildPythonPackage rec {
   propagatedNativeBuildInputs = [ cffi ];
   propagatedBuildInputs = [ cffi ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "miniaudio" ];
 
diff --git a/pkgs/development/python-modules/minichain/default.nix b/pkgs/development/python-modules/minichain/default.nix
index 1e69fbb1f25b7..5109a0136bde8 100644
--- a/pkgs/development/python-modules/minichain/default.nix
+++ b/pkgs/development/python-modules/minichain/default.nix
@@ -1,14 +1,14 @@
-{ buildPythonPackage
-, eliot
-, fetchPypi
-, google-search-results
-, jinja2
-, lib
-, manifest-ml
-, openai
-, pytestCheckHook
-, pythonAtLeast
-, pythonRelaxDepsHook
+{
+  buildPythonPackage,
+  eliot,
+  fetchPypi,
+  google-search-results,
+  jinja2,
+  lib,
+  manifest-ml,
+  openai,
+  pytestCheckHook,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -31,7 +31,6 @@ buildPythonPackage rec {
     substituteInPlace ./minichain/__init__.py --replace "from .gradio import GradioConf, show" ""
   '';
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   pythonRemoveDeps = [
     # Only used in the examples:
@@ -64,7 +63,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A tiny library for coding with large language models";
+    description = "Tiny library for coding with large language models";
     homepage = "https://srush-minichain.hf.space";
     changelog = "https://github.com/srush/MiniChain/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/minidb/default.nix b/pkgs/development/python-modules/minidb/default.nix
index 8bd0aea36ca47..20a2eba687d2c 100644
--- a/pkgs/development/python-modules/minidb/default.nix
+++ b/pkgs/development/python-modules/minidb/default.nix
@@ -1,14 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "minidb";
-  version = "2.0.7";
-  format = "setuptools";
+  version = "2.0.8";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -16,16 +18,14 @@ buildPythonPackage rec {
     owner = "thp";
     repo = "minidb";
     rev = "refs/tags/${version}";
-    hash = "sha256-0f2usKoHs4NO/Ir8MhyiAVZFYnUkVH5avdh3QdHzY6s=";
+    hash = "sha256-e7wVR+xr+5phNoRnGIxnmrjB1QU9JmyfQiu88PYapA8=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  build-system = [ setuptools ];
 
-  pythonImportsCheck = [
-    "minidb"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "minidb" ];
 
   meta = with lib; {
     description = "SQLite3-based store for Python objects";
@@ -34,4 +34,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ tv ];
   };
 }
-
diff --git a/pkgs/development/python-modules/minidump/default.nix b/pkgs/development/python-modules/minidump/default.nix
index 58d59512e8b50..1154685e6dda9 100644
--- a/pkgs/development/python-modules/minidump/default.nix
+++ b/pkgs/development/python-modules/minidump/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-R+tza5C/2egkajScmilp/8qowoSklYVfEB+f0KMNBqQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Upstream doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "minidump"
-  ];
+  pythonImportsCheck = [ "minidump" ];
 
   meta = with lib; {
     description = "Python library to parse and read Microsoft minidump file format";
diff --git a/pkgs/development/python-modules/miniful/default.nix b/pkgs/development/python-modules/miniful/default.nix
index 434e8bc403bbf..53bdf601899e7 100644
--- a/pkgs/development/python-modules/miniful/default.nix
+++ b/pkgs/development/python-modules/miniful/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, scipy
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  scipy,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "miniful"
-  ];
+  pythonImportsCheck = [ "miniful" ];
 
   meta = with lib; {
     description = "Minimal Fuzzy Library";
diff --git a/pkgs/development/python-modules/minikanren/default.nix b/pkgs/development/python-modules/minikanren/default.nix
index 928b288bf28b6..f8be0a3d6b3b8 100644
--- a/pkgs/development/python-modules/minikanren/default.nix
+++ b/pkgs/development/python-modules/minikanren/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, toolz
-, cons
-, multipledispatch
-, etuples
-, logical-unification
-, py
-, pytestCheckHook
-, pytest-html
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  toolz,
+  cons,
+  multipledispatch,
+  etuples,
+  logical-unification,
+  py,
+  pytestCheckHook,
+  pytest-html,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/minikerberos/default.nix b/pkgs/development/python-modules/minikerberos/default.nix
index 54b2de45056e0..44d44f3b969dc 100644
--- a/pkgs/development/python-modules/minikerberos/default.nix
+++ b/pkgs/development/python-modules/minikerberos/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, asn1crypto
-, asysocks
-, buildPythonPackage
-, fetchPypi
-, oscrypto
-, pythonOlder
-, six
-, tqdm
-, unicrypto
+{
+  lib,
+  asn1crypto,
+  asysocks,
+  buildPythonPackage,
+  fetchPypi,
+  oscrypto,
+  pythonOlder,
+  six,
+  tqdm,
+  unicrypto,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
   # no tests are published: https://github.com/skelsec/minikerberos/pull/5
   doCheck = false;
 
-  pythonImportsCheck = [
-    "minikerberos"
-  ];
+  pythonImportsCheck = [ "minikerberos" ];
 
   meta = with lib; {
     description = "Kerberos manipulation library in Python";
diff --git a/pkgs/development/python-modules/minimal-snowplow-tracker/default.nix b/pkgs/development/python-modules/minimal-snowplow-tracker/default.nix
index a15f81014cfa7..dc04cb99178a5 100644
--- a/pkgs/development/python-modules/minimal-snowplow-tracker/default.nix
+++ b/pkgs/development/python-modules/minimal-snowplow-tracker/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -23,14 +24,15 @@ buildPythonPackage rec {
   # has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "snowplow_tracker"
-  ];
+  pythonImportsCheck = [ "snowplow_tracker" ];
 
   meta = with lib; {
     description = "Minimal snowplow event tracker";
     homepage = "https://github.com/dbt-labs/snowplow-python-tracker";
     license = licenses.asl20;
-    maintainers = with maintainers; [ mausch tjni ];
+    maintainers = with maintainers; [
+      mausch
+      tjni
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/minimock/default.nix b/pkgs/development/python-modules/minimock/default.nix
index 5bd48301e8ec1..63e8ef0b37781 100644
--- a/pkgs/development/python-modules/minimock/default.nix
+++ b/pkgs/development/python-modules/minimock/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -19,19 +20,15 @@ buildPythonPackage rec {
     hash = "sha256-Ut3iKc7Sr28uGgWCV3K3CS+gBta2icvbUPMjjo4fflU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "minimock"
-  ];
+  pythonImportsCheck = [ "minimock" ];
 
   meta = with lib; {
-    description = "A minimalistic mocking library";
+    description = "Minimalistic mocking library";
     homepage = "https://pypi.python.org/pypi/MiniMock";
     license = licenses.mit;
     maintainers = with maintainers; [ drewrisinger ];
diff --git a/pkgs/development/python-modules/minio/default.nix b/pkgs/development/python-modules/minio/default.nix
index de84597491c8c..17d7b4e3096b0 100644
--- a/pkgs/development/python-modules/minio/default.nix
+++ b/pkgs/development/python-modules/minio/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, argon2-cffi
-, certifi
-, urllib3
-, pycryptodome
-, typing-extensions
+  # dependencies
+  argon2-cffi,
+  certifi,
+  urllib3,
+  pycryptodome,
+  typing-extensions,
 
-# test
-, faker
-, mock
-, pytestCheckHook
+  # test
+  faker,
+  mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "minio";
-  version = "7.2.6";
+  version = "7.2.7";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -30,7 +31,7 @@ buildPythonPackage rec {
     owner = "minio";
     repo = "minio-py";
     rev = "refs/tags/${version}";
-    hash = "sha256-zK+D2DNgh1cASdA2gstNW0ODUu7Dn6vMY01mcrdSSo0=";
+    hash = "sha256-Qb3KPwSODtIqwS4FfR+DHphx4duPsNdMlHt2rpdV2+Y=";
   };
 
   postPatch = ''
@@ -38,9 +39,7 @@ buildPythonPackage rec {
       --replace-fail "assertEquals" "assertEqual"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     argon2-cffi
@@ -61,9 +60,7 @@ buildPythonPackage rec {
     "tests/unit/credentials_test.py"
   ];
 
-  pythonImportsCheck = [
-    "minio"
-  ];
+  pythonImportsCheck = [ "minio" ];
 
   meta = with lib; {
     description = "Simple APIs to access any Amazon S3 compatible object storage server";
diff --git a/pkgs/development/python-modules/miniupnpc/default.nix b/pkgs/development/python-modules/miniupnpc/default.nix
index ec6bcbc7d9703..c4ec910b6425a 100644
--- a/pkgs/development/python-modules/miniupnpc/default.nix
+++ b/pkgs/development/python-modules/miniupnpc/default.nix
@@ -1,16 +1,26 @@
-{ stdenv, lib, buildPythonPackage, fetchPypi, cctools, which }:
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cctools,
+  which,
+}:
 
 buildPythonPackage rec {
   pname = "miniupnpc";
-  version = "2.0.2";
+  version = "2.2.8";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0ca94zz7sr2x57j218aypxqcwkr23n8js30f3yrvvqbg929nr93y";
+    sha256 = "sha256-KwpNVl+tZTZHHZKW9p3a/S0nZJW6lZftjBK9ECkRUMo=";
   };
 
-  nativeBuildInputs = lib.optionals stdenv.isDarwin [ cctools which ];
+  nativeBuildInputs = lib.optionals stdenv.isDarwin [
+    cctools
+    which
+  ];
 
   meta = with lib; {
     description = "miniUPnP client";
diff --git a/pkgs/development/python-modules/mip/default.nix b/pkgs/development/python-modules/mip/default.nix
index 5705f1f37cfdd..16ecf80905aaf 100644
--- a/pkgs/development/python-modules/mip/default.nix
+++ b/pkgs/development/python-modules/mip/default.nix
@@ -1,23 +1,25 @@
-{ lib, stdenv
-, buildPythonPackage
-, cffi
-, dos2unix
-, fetchPypi
-, matplotlib
-, networkx
-, numpy
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
-, wheel
-, gurobi
-, gurobipy
-# Enable support for the commercial Gurobi solver (requires a license)
-, gurobiSupport ? false
-# If Gurobi has already been installed outside of the Nix store, specify its
-# installation directory here
-, gurobiHome ? null
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cffi,
+  dos2unix,
+  fetchPypi,
+  matplotlib,
+  networkx,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  gurobi,
+  gurobipy,
+  # Enable support for the commercial Gurobi solver (requires a license)
+  gurobiSupport ? false,
+  # If Gurobi has already been installed outside of the Nix store, specify its
+  # installation directory here
+  gurobiHome ? null,
 }:
 
 buildPythonPackage rec {
@@ -32,7 +34,12 @@ buildPythonPackage rec {
     hash = "sha256-f28Dgc/ixSwbhkAgPaLLVpdLJuI5UN37GnazfZFvGX4=";
   };
 
-  nativeCheckInputs = [ matplotlib networkx numpy pytestCheckHook ];
+  nativeCheckInputs = [
+    matplotlib
+    networkx
+    numpy
+    pytestCheckHook
+  ];
 
   nativeBuildInputs = [
     dos2unix
@@ -43,9 +50,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     cffi
-  ] ++ lib.optionals gurobiSupport ([
-    gurobipy
-  ] ++ lib.optional (gurobiHome == null) gurobi);
+  ] ++ lib.optionals gurobiSupport ([ gurobipy ] ++ lib.optional (gurobiHome == null) gurobi);
 
   # Source files have CRLF terminators, which make patch error out when supplied
   # with diffs made on *nix machines
@@ -67,8 +72,9 @@ buildPythonPackage rec {
   '';
 
   # Make MIP use the Gurobi solver, if configured to do so
-  makeWrapperArgs = lib.optional gurobiSupport
-    "--set GUROBI_HOME ${if gurobiHome == null then gurobi.outPath else gurobiHome}";
+  makeWrapperArgs = lib.optional gurobiSupport "--set GUROBI_HOME ${
+    if gurobiHome == null then gurobi.outPath else gurobiHome
+  }";
 
   # Tests that rely on Gurobi are activated only when Gurobi support is enabled
   disabledTests = lib.optional (!gurobiSupport) "gurobi";
@@ -79,7 +85,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://python-mip.com/";
-    description = "A collection of Python tools for the modeling and solution of Mixed-Integer Linear programs (MIPs)";
+    description = "Collection of Python tools for the modeling and solution of Mixed-Integer Linear programs (MIPs)";
     downloadPage = "https://github.com/coin-or/python-mip/releases";
     changelog = "https://github.com/coin-or/python-mip/releases/tag/${version}";
     license = licenses.epl20;
diff --git a/pkgs/development/python-modules/mir-eval/default.nix b/pkgs/development/python-modules/mir-eval/default.nix
index b06ce59603620..d94f6b97cc4d0 100644
--- a/pkgs/development/python-modules/mir-eval/default.nix
+++ b/pkgs/development/python-modules/mir-eval/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, future
-, six
-, numpy
-, scipy
-, matplotlib
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  future,
+  six,
+  numpy,
+  scipy,
+  matplotlib,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     matplotlib
   ];
 
-  pythonImportsCheck = [
-    "mir_eval"
-  ];
+  pythonImportsCheck = [ "mir_eval" ];
 
   meta = with lib; {
     description = "Common metrics for common audio/music processing tasks";
diff --git a/pkgs/development/python-modules/mirakuru/default.nix b/pkgs/development/python-modules/mirakuru/default.nix
index 97f1cef438ae6..e208daa625eff 100644
--- a/pkgs/development/python-modules/mirakuru/default.nix
+++ b/pkgs/development/python-modules/mirakuru/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, setuptools
-, psutil
-, netcat
-, ps
-, python-daemon
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
+  psutil,
+  netcat,
+  ps,
+  python-daemon,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/misaka/default.nix b/pkgs/development/python-modules/misaka/default.nix
index 369196b152760..11ac651828a54 100644
--- a/pkgs/development/python-modules/misaka/default.nix
+++ b/pkgs/development/python-modules/misaka/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchPypi, buildPythonPackage, cffi }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  cffi,
+}:
 buildPythonPackage rec {
   pname = "misaka";
   version = "2.1.1";
@@ -17,7 +22,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A CFFI binding for Hoedown, a markdown parsing library";
+    description = "CFFI binding for Hoedown, a markdown parsing library";
     mainProgram = "misaka";
     homepage = "https://misaka.61924.nl";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/misoc/default.nix b/pkgs/development/python-modules/misoc/default.nix
index 3fa9e3f6e4721..a7b2198041fb5 100644
--- a/pkgs/development/python-modules/misoc/default.nix
+++ b/pkgs/development/python-modules/misoc/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyserial
-, asyncserial
-, jinja2
-, migen
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyserial,
+  asyncserial,
+  jinja2,
+  migen,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -27,14 +28,12 @@ buildPythonPackage rec {
     migen
   ];
 
-  nativeCheckInputs = [
-    numpy
-  ];
+  nativeCheckInputs = [ numpy ];
 
   pythonImportsCheck = [ "misoc" ];
 
   meta = with lib; {
-    description = "The original high performance and small footprint system-on-chip based on Migen";
+    description = "Original high performance and small footprint system-on-chip based on Migen";
     homepage = "https://github.com/m-labs/misoc";
     license = licenses.bsd2;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/development/python-modules/mistletoe/default.nix b/pkgs/development/python-modules/mistletoe/default.nix
index aad3a5111da09..6a32ea2e058d6 100644
--- a/pkgs/development/python-modules/mistletoe/default.nix
+++ b/pkgs/development/python-modules/mistletoe/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, parameterized
-, pygments
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  parameterized,
+  pygments,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-MMBfH4q5AtC/azQUj1a1tMz1MdUf4ad5/tl7lcQCTOw=";
   };
 
-  pythonImportsCheck = [
-    "mistletoe"
-  ];
+  pythonImportsCheck = [ "mistletoe" ];
 
   nativeCheckInputs = [
     parameterized
diff --git a/pkgs/development/python-modules/mistune/default.nix b/pkgs/development/python-modules/mistune/default.nix
index 38e2c21ba66ae..a3ed1114cb13d 100644
--- a/pkgs/development/python-modules/mistune/default.nix
+++ b/pkgs/development/python-modules/mistune/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,19 +22,15 @@ buildPythonPackage rec {
     hash = "sha256-OoTiqJ7hsFP1Yx+7xW3rL+Yc/O2lCMdhBBbaZucyZXM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "mistune" ];
 
   meta = with lib; {
     changelog = "https://github.com/lepture/mistune/blob/${src.rev}/docs/changes.rst";
-    description = "A sane Markdown parser with useful plugins and renderers";
+    description = "Sane Markdown parser with useful plugins and renderers";
     homepage = "https://github.com/lepture/mistune";
     license = licenses.bsd3;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/mitmproxy-macos/default.nix b/pkgs/development/python-modules/mitmproxy-macos/default.nix
index ce0b19120f1c1..08228102cf1bf 100644
--- a/pkgs/development/python-modules/mitmproxy-macos/default.nix
+++ b/pkgs/development/python-modules/mitmproxy-macos/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,20 +22,17 @@ buildPythonPackage rec {
 
   sourceRoot = "${src.name}/mitmproxy-macos";
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  pythonImportsCheck = [
-    "mitmproxy_macos"
-  ];
+  pythonImportsCheck = [ "mitmproxy_macos" ];
 
   meta = with lib; {
-    description = "The MacOS Rust bits in mitmproxy";
+    description = "MacOS Rust bits in mitmproxy";
     homepage = "https://github.com/mitmproxy/mitmproxy_rs/tree/main/mitmproxy-macos";
     changelog = "https://github.com/mitmproxy/mitmproxy_rs/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ boltzmannrain ];
     platforms = platforms.darwin;
+    broken = true; # last successful build 2023-12-04
   };
 }
diff --git a/pkgs/development/python-modules/mitmproxy-rs/default.nix b/pkgs/development/python-modules/mitmproxy-rs/default.nix
index fe7fb4c178e05..79941e67fd7b1 100644
--- a/pkgs/development/python-modules/mitmproxy-rs/default.nix
+++ b/pkgs/development/python-modules/mitmproxy-rs/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, rustPlatform
-, darwin
-, libiconv
-, mitmproxy-macos
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  rustPlatform,
+  darwin,
+  libiconv,
+  mitmproxy-macos,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-nrm1T2yaGVmYsubwNJHPnPDC/A/jYiKVzwBKmuc9MD4=";
   };
 
-  cargoDeps = rustPlatform.importCargoLock {
-    lockFile = ./Cargo.lock;
-  };
+  cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; };
 
   buildAndTestSubdir = "mitmproxy-rs";
 
@@ -40,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mitmproxy_rs" ];
 
   meta = with lib; {
-    description = "The Rust bits in mitmproxy";
+    description = "Rust bits in mitmproxy";
     homepage = "https://github.com/mitmproxy/mitmproxy_rs";
     changelog = "https://github.com/mitmproxy/mitmproxy_rs/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/mitmproxy/default.nix b/pkgs/development/python-modules/mitmproxy/default.nix
index 8de8d9b8260d6..e04490dd46425 100644
--- a/pkgs/development/python-modules/mitmproxy/default.nix
+++ b/pkgs/development/python-modules/mitmproxy/default.nix
@@ -1,51 +1,51 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
   # Mitmproxy requirements
-, aioquic
-, asgiref
-, blinker
-, brotli
-, certifi
-, cryptography
-, flask
-, h11
-, h2
-, hyperframe
-, kaitaistruct
-, ldap3
-, mitmproxy-macos
-, mitmproxy-rs
-, msgpack
-, passlib
-, protobuf
-, publicsuffix2
-, pyopenssl
-, pyparsing
-, pyperclip
-, ruamel-yaml
-, setuptools
-, sortedcontainers
-, tornado
-, urwid-mitmproxy
-, wsproto
-, zstandard
+  aioquic,
+  asgiref,
+  blinker,
+  brotli,
+  certifi,
+  cryptography,
+  flask,
+  h11,
+  h2,
+  hyperframe,
+  kaitaistruct,
+  ldap3,
+  mitmproxy-macos,
+  mitmproxy-rs,
+  msgpack,
+  passlib,
+  protobuf,
+  publicsuffix2,
+  pyopenssl,
+  pyparsing,
+  pyperclip,
+  ruamel-yaml,
+  setuptools,
+  sortedcontainers,
+  tornado,
+  urwid-mitmproxy,
+  wsproto,
+  zstandard,
   # Additional check requirements
-, hypothesis
-, parver
-, pytest-asyncio
-, pytest-timeout
-, pytest-xdist
-, pytestCheckHook
-, requests
+  hypothesis,
+  parver,
+  pytest-asyncio,
+  pytest-timeout,
+  pytest-xdist,
+  pytestCheckHook,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "mitmproxy";
-  version = "10.3.0";
+  version = "10.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -53,17 +53,16 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "mitmproxy";
     repo = "mitmproxy";
-    rev = "refs/tags/${version}";
-    hash = "sha256-YjvGsnpQQ8GWLyKmnd3lOxesnr+F2xCNXyahZh0JQnc=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-rIyRY1FolbdoaI4OgFG7D2/mot8NiRHalgittPzledw=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   pythonRelaxDeps = [
     "aioquic"
     "cryptography"
+    "pyperclip"
+    "tornado"
   ];
 
   propagatedBuildInputs = [
@@ -94,9 +93,7 @@ buildPythonPackage rec {
     urwid-mitmproxy
     wsproto
     zstandard
-  ] ++ lib.optionals stdenv.isDarwin [
-    mitmproxy-macos
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ mitmproxy-macos ];
 
   nativeCheckInputs = [
     hypothesis
diff --git a/pkgs/development/python-modules/mixins/default.nix b/pkgs/development/python-modules/mixins/default.nix
index 46af556fd11af..c6632f3b6a786 100644
--- a/pkgs/development/python-modules/mixins/default.nix
+++ b/pkgs/development/python-modules/mixins/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -13,9 +14,7 @@ buildPythonPackage rec {
     sha256 = "sha256-SmYYRzo6wClQBMc2oRgO0CQEHOxWe8GFL24TPa6A4NQ=";
   };
 
-  pythonImportsCheck = [
-    "mixins"
-  ];
+  pythonImportsCheck = [ "mixins" ];
 
   meta = with lib; {
     homepage = "https://github.com/nickderobertis/py-mixins";
diff --git a/pkgs/development/python-modules/mixpanel/default.nix b/pkgs/development/python-modules/mixpanel/default.nix
index 64e1f45d29de2..12f3cf9dd13bf 100644
--- a/pkgs/development/python-modules/mixpanel/default.nix
+++ b/pkgs/development/python-modules/mixpanel/default.nix
@@ -1,16 +1,16 @@
-
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-
-# Python Dependencies
-, six
-, urllib3
-, requests
-
-# tests
-, pytestCheckHook
-, responses
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+
+  # Python Dependencies
+  six,
+  urllib3,
+  requests,
+
+  # tests
+  pytestCheckHook,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -40,8 +40,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/mixpanel/mixpanel-python";
     description = "Official Mixpanel Python library";
     license = licenses.asl20;
-    maintainers = with maintainers; [
-      kamadorueda
-    ];
+    maintainers = with maintainers; [ kamadorueda ];
   };
 }
diff --git a/pkgs/development/python-modules/mizani/default.nix b/pkgs/development/python-modules/mizani/default.nix
index f6761ad445f9b..ecc1667175c2c 100644
--- a/pkgs/development/python-modules/mizani/default.nix
+++ b/pkgs/development/python-modules/mizani/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, matplotlib
-, palettable
-, pandas
-, pytestCheckHook
-, pythonOlder
-, scipy
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  matplotlib,
+  palettable,
+  pandas,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "mizani";
-  version = "0.11.2";
+  version = "0.11.4";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -21,32 +22,26 @@ buildPythonPackage rec {
     owner = "has2k1";
     repo = "mizani";
     rev = "refs/tags/v${version}";
-    hash = "sha256-tOydQvRZcY052Xh98NbFUezc55JJ8LRj0REIAzpcCp0=";
+    hash = "sha256-2XBvjlVSEjeNc7UlPZ00cNrWVuHh/FgDwkvWus7ndr4=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     matplotlib
     palettable
     pandas
     scipy
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace " --cov=mizani --cov-report=xml" ""
   '';
 
-  pythonImportsCheck = [
-    "mizani"
-  ];
+  pythonImportsCheck = [ "mizani" ];
 
   meta = with lib; {
     description = "Scales for Python";
diff --git a/pkgs/development/python-modules/mkdocs-autolinks-plugin/default.nix b/pkgs/development/python-modules/mkdocs-autolinks-plugin/default.nix
index 35d3e5c9cc165..c837ff25ceb67 100644
--- a/pkgs/development/python-modules/mkdocs-autolinks-plugin/default.nix
+++ b/pkgs/development/python-modules/mkdocs-autolinks-plugin/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mkdocs
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mkdocs,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "mkdocs-autolinks-plugin";
-  version = "0.7.1";
+  version = "071";
   pyproject = true;
   disabled = pythonOlder "3.8";
 
@@ -16,13 +17,11 @@ buildPythonPackage rec {
     owner = "zachhannum";
     repo = "mkdocs-autolinks-plugin";
     # The commit messages mention version 0.7.1, but the tag is v_071.
-    rev = "e2b649eb4db23459bcec121838f27c92c81f9ce1";
+    rev = "refs/tags/v_${version}";
     hash = "sha256-mEbuB9VwK7po1TqtJfBSkItOVlI3/W3nD2LYRHgPpTA=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [ mkdocs ];
 
@@ -32,7 +31,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mkdocs_autolinks_plugin" ];
 
   meta = with lib; {
-    description = "An MkDocs plugin that simplifies relative linking between documents";
+    description = "MkDocs plugin that simplifies relative linking between documents";
     homepage = "https://github.com/zachhannum/mkdocs-autolinks-plugin";
     license = licenses.mit;
     maintainers = with maintainers; [ lucas-deangelis ];
diff --git a/pkgs/development/python-modules/mkdocs-autorefs/default.nix b/pkgs/development/python-modules/mkdocs-autorefs/default.nix
index 4fedc2ff0ff32..5bddee16b3edc 100644
--- a/pkgs/development/python-modules/mkdocs-autorefs/default.nix
+++ b/pkgs/development/python-modules/mkdocs-autorefs/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, markdown
-, mkdocs
-, pytestCheckHook
-, pdm-backend
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  markdown,
+  mkdocs,
+  pytestCheckHook,
+  pdm-backend,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,18 +28,14 @@ buildPythonPackage rec {
       --replace 'dynamic = ["version"]' 'version = "${version}"'
   '';
 
-  nativeBuildInputs = [
-    pdm-backend
-  ];
+  nativeBuildInputs = [ pdm-backend ];
 
   propagatedBuildInputs = [
     markdown
     mkdocs
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # missing pymdownx
@@ -46,9 +43,7 @@ buildPythonPackage rec {
     "test_reference_implicit_with_code_inlinehilite_python"
   ];
 
-  pythonImportsCheck = [
-    "mkdocs_autorefs"
-  ];
+  pythonImportsCheck = [ "mkdocs_autorefs" ];
 
   meta = with lib; {
     description = "Automatically link across pages in MkDocs";
diff --git a/pkgs/development/python-modules/mkdocs-drawio-exporter/default.nix b/pkgs/development/python-modules/mkdocs-drawio-exporter/default.nix
index 2227b8b4f8738..68725065cb0b5 100644
--- a/pkgs/development/python-modules/mkdocs-drawio-exporter/default.nix
+++ b/pkgs/development/python-modules/mkdocs-drawio-exporter/default.nix
@@ -1,29 +1,33 @@
-{ buildPythonPackage
-, drawio-headless
-, fetchPypi
-, isPy3k
-, lib
-, mkdocs
+{
+  buildPythonPackage,
+  drawio-headless,
+  fetchPypi,
+  isPy3k,
+  lib,
+  mkdocs,
 }:
 
 buildPythonPackage rec {
   pname = "mkdocs-drawio-exporter";
-  version = "0.8.0";
+  version = "0.9.1";
   format = "setuptools";
 
   disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9cvA186FS6bHmpOrv4OfPZ5kRfgfafBfaWxgWJIlwwA=";
+    hash = "sha256-x8X8hvN/tL8C6VhgMCEHDh2hILjBoyLgQfsFD1+qXgo=";
   };
 
-  propagatedBuildInputs = [ mkdocs drawio-headless ];
+  propagatedBuildInputs = [
+    mkdocs
+    drawio-headless
+  ];
 
   pythonImportsCheck = [ "mkdocsdrawioexporter" ];
 
   meta = with lib; {
-    description = "Exports your Draw.io diagrams at build time for easier embedding into your documentation.";
+    description = "Exports your Draw.io diagrams at build time for easier embedding into your documentation";
     homepage = "https://github.com/LukeCarrier/mkdocs-drawio-exporter/";
     license = licenses.mit;
     maintainers = with maintainers; [ snpschaaf ];
diff --git a/pkgs/development/python-modules/mkdocs-exclude/default.nix b/pkgs/development/python-modules/mkdocs-exclude/default.nix
index 5e2e32a9d6bbf..9958faed05c22 100644
--- a/pkgs/development/python-modules/mkdocs-exclude/default.nix
+++ b/pkgs/development/python-modules/mkdocs-exclude/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, callPackage
-, buildPythonPackage
-, fetchFromGitHub
-, mkdocs
+{
+  lib,
+  callPackage,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mkdocs,
 }:
 
 buildPythonPackage rec {
@@ -30,7 +31,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A mkdocs plugin to exclude files from input using globs or regexes.";
+    description = "Mkdocs plugin to exclude files from input using globs or regexes";
     homepage = "https://github.com/apenwarr/mkdocs-exclude";
     license = licenses.asl20;
     maintainers = with maintainers; [ kaction ];
diff --git a/pkgs/development/python-modules/mkdocs-get-deps/default.nix b/pkgs/development/python-modules/mkdocs-get-deps/default.nix
new file mode 100644
index 0000000000000..72d4fce4fa10d
--- /dev/null
+++ b/pkgs/development/python-modules/mkdocs-get-deps/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, hatchling
+, importlib-metadata
+, mergedeep
+, platformdirs
+, pyyaml
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "mkdocs-get-deps";
+  version = "0.2.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "mkdocs";
+    repo = "get-deps";
+    rev = "v${version}";
+    hash = "sha256-DahmSYWYhVch950InYBiCh6qz1pH2Kibf5ixwCNdsTg=";
+  };
+
+  build-system = [ hatchling ];
+
+  dependencies = [
+    importlib-metadata
+    mergedeep
+    platformdirs
+    pyyaml
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook  ];
+
+  pythonImportsCheck = [ "mkdocs_get_deps" ];
+
+  meta = with lib; {
+    description = "An extra command for MkDocs that infers required PyPI packages from `plugins` in mkdocs.yml";
+    homepage = "https://github.com/mkdocs/get-deps";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/mkdocs-git-authors-plugin/default.nix b/pkgs/development/python-modules/mkdocs-git-authors-plugin/default.nix
index 01eb0fa2375e4..0c346aac1d0ce 100644
--- a/pkgs/development/python-modules/mkdocs-git-authors-plugin/default.nix
+++ b/pkgs/development/python-modules/mkdocs-git-authors-plugin/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, mkdocs
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  mkdocs,
 }:
 
 buildPythonPackage rec {
   pname = "mkdocs-git-authors-plugin";
-  version = "0.8.0";
+  version = "0.9.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,7 +17,7 @@ buildPythonPackage rec {
     owner = "timvink";
     repo = "mkdocs-git-authors-plugin";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ie6kDrj7ulmdQ7w3n7MnKgIWs321uPFxpQC3DNUGsTg=";
+    hash = "sha256-UomcEXWNt5aVE9JxP9wskkHkFYXKN/+jXwr1SXCmeyE=";
   };
 
   propagatedBuildInputs = [ mkdocs ];
diff --git a/pkgs/development/python-modules/mkdocs-git-revision-date-localized-plugin/default.nix b/pkgs/development/python-modules/mkdocs-git-revision-date-localized-plugin/default.nix
index c885727a25384..2b75fe35c0b77 100644
--- a/pkgs/development/python-modules/mkdocs-git-revision-date-localized-plugin/default.nix
+++ b/pkgs/development/python-modules/mkdocs-git-revision-date-localized-plugin/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, babel
-, gitpython
-, mkdocs
-, pytz
-, pytestCheckHook
-, git
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  babel,
+  gitpython,
+  mkdocs,
+  pytz,
+  pytestCheckHook,
+  git,
 }:
 
 buildPythonPackage rec {
   pname = "mkdocs-git-revision-date-localized-plugin";
-  version = "1.2.4";
+  version = "1.2.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -21,7 +22,7 @@ buildPythonPackage rec {
     owner = "timvink";
     repo = "mkdocs-git-revision-date-localized-plugin";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sN3cuRjB3zkwp0xYoH20IJ8edXqi5rw66e3N4DuNqVU=";
+    hash = "sha256-1H8K9vXgxYQlEmcXKwZQbJCLu4TRyuqffUI+Gm3ECrE=";
   };
 
   propagatedBuildInputs = [
@@ -33,9 +34,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTestPaths = [
-    "tests/test_builds.py"
-  ];
+  disabledTestPaths = [ "tests/test_builds.py" ];
 
   pythonImportsCheck = [ "mkdocs_git_revision_date_localized_plugin" ];
 
diff --git a/pkgs/development/python-modules/mkdocs-gitlab-plugin/default.nix b/pkgs/development/python-modules/mkdocs-gitlab-plugin/default.nix
index b88da4eb1e4d5..45b87d4ba3f89 100644
--- a/pkgs/development/python-modules/mkdocs-gitlab-plugin/default.nix
+++ b/pkgs/development/python-modules/mkdocs-gitlab-plugin/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, fetchzip
-, isPy3k
-, lib
-, mkdocs
+{
+  buildPythonPackage,
+  fetchzip,
+  isPy3k,
+  lib,
+  mkdocs,
 }:
 
 buildPythonPackage rec {
@@ -24,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mkdocs_gitlab_plugin" ];
 
   meta = with lib; {
-    description = "MkDocs plugin to transform strings such as #1234, %56, or !789 into links to a Gitlab repository.";
+    description = "MkDocs plugin to transform strings such as #1234, %56, or !789 into links to a Gitlab repository";
     homepage = "https://gitlab.inria.fr/vidjil/mkdocs-gitlab-plugin";
     license = licenses.mit;
     maintainers = with maintainers; [ snpschaaf ];
diff --git a/pkgs/development/python-modules/mkdocs-jupyter/default.nix b/pkgs/development/python-modules/mkdocs-jupyter/default.nix
index a83899c6c74c7..49e6102ec30a4 100644
--- a/pkgs/development/python-modules/mkdocs-jupyter/default.nix
+++ b/pkgs/development/python-modules/mkdocs-jupyter/default.nix
@@ -1,16 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatchling
-, ipykernel
-, jupytext
-, mkdocs
-, mkdocs-material
-, nbconvert
-, pygments
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatchling,
+  ipykernel,
+  jupytext,
+  mkdocs,
+  mkdocs-material,
+  nbconvert,
+  pygments,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -32,13 +32,10 @@ buildPythonPackage rec {
       --replace "[\"mkdocs\"," "[\"${mkdocs.out}/bin/mkdocs\","
   '';
 
-  pythonRelaxDeps = [
-    "nbconvert"
-  ];
+  pythonRelaxDeps = [ "nbconvert" ];
 
   nativeBuildInputs = [
     hatchling
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -50,13 +47,11 @@ buildPythonPackage rec {
     pygments
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mkdocs_jupyter"
-  ];
+  pythonImportsCheck = [ "mkdocs_jupyter" ];
+
+  __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
     description = "Use Jupyter Notebook in mkdocs";
diff --git a/pkgs/development/python-modules/mkdocs-linkcheck/default.nix b/pkgs/development/python-modules/mkdocs-linkcheck/default.nix
index 18d9a9a9ab299..e03215565300b 100644
--- a/pkgs/development/python-modules/mkdocs-linkcheck/default.nix
+++ b/pkgs/development/python-modules/mkdocs-linkcheck/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pythonPackages
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pythonPackages,
 }:
 
 buildPythonPackage rec {
@@ -15,7 +16,7 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "byrnereese";
     repo = "linkchecker-mkdocs";
-    rev = "a75d765b0ec564e5ed0218880ed0b5ab4b973917" ;
+    rev = "a75d765b0ec564e5ed0218880ed0b5ab4b973917";
     hash = "sha256-z59F7zUKZKIQSiTlE6wGbGDecPMeruNgltWUYfDf8jY=";
   };
 
diff --git a/pkgs/development/python-modules/mkdocs-macros/default.nix b/pkgs/development/python-modules/mkdocs-macros/default.nix
index 50f88efcdf29f..a8940953123b7 100644
--- a/pkgs/development/python-modules/mkdocs-macros/default.nix
+++ b/pkgs/development/python-modules/mkdocs-macros/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, callPackage
-, buildPythonPackage
-, fetchPypi
-, mkdocs
-, mkdocs-macros
-, mkdocs-material
-, jinja2
-, python-dateutil
-, termcolor
-, pyyaml
-, runCommand
-, setuptools
+{
+  lib,
+  callPackage,
+  buildPythonPackage,
+  fetchPypi,
+  mkdocs,
+  mkdocs-macros,
+  mkdocs-material,
+  jinja2,
+  python-dateutil,
+  termcolor,
+  pyyaml,
+  runCommand,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -36,7 +37,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/fralau/mkdocs_macros_plugin";
-    description = "Create richer and more beautiful pages in MkDocs, by using variables and calls to macros in the markdown code.";
+    description = "Create richer and more beautiful pages in MkDocs, by using variables and calls to macros in the markdown code";
     license = licenses.mit;
     maintainers = with maintainers; [ tljuniper ];
   };
diff --git a/pkgs/development/python-modules/mkdocs-macros/mkdocs-macros-test.nix b/pkgs/development/python-modules/mkdocs-macros/mkdocs-macros-test.nix
index 8a53933b19af6..3b8b53693b20a 100644
--- a/pkgs/development/python-modules/mkdocs-macros/mkdocs-macros-test.nix
+++ b/pkgs/development/python-modules/mkdocs-macros/mkdocs-macros-test.nix
@@ -1,9 +1,10 @@
-{ lib
-, callPackage
-, buildPythonPackage
-, fetchPypi
-, runCommand
-, setuptools
+{
+  lib,
+  callPackage,
+  buildPythonPackage,
+  fetchPypi,
+  runCommand,
+  setuptools,
 }:
 
 # Is required for properly testing mkdocs-macros
diff --git a/pkgs/development/python-modules/mkdocs-macros/tests.nix b/pkgs/development/python-modules/mkdocs-macros/tests.nix
index 5ddcd26e0dab3..f758b6ac77454 100644
--- a/pkgs/development/python-modules/mkdocs-macros/tests.nix
+++ b/pkgs/development/python-modules/mkdocs-macros/tests.nix
@@ -1,9 +1,10 @@
-{ setuptools
-, mkdocs
-, mkdocs-macros
-, mkdocs-material
-, runCommand
-, callPackage
+{
+  setuptools,
+  mkdocs,
+  mkdocs-macros,
+  mkdocs-material,
+  runCommand,
+  callPackage,
 }:
 
 let
diff --git a/pkgs/development/python-modules/mkdocs-material/default.nix b/pkgs/development/python-modules/mkdocs-material/default.nix
index f344a92445ab6..595333762f125 100644
--- a/pkgs/development/python-modules/mkdocs-material/default.nix
+++ b/pkgs/development/python-modules/mkdocs-material/default.nix
@@ -28,7 +28,7 @@
 
 buildPythonPackage rec {
   pname = "mkdocs-material";
-  version = "9.5.18";
+  version = "9.5.27";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -37,7 +37,7 @@ buildPythonPackage rec {
     owner = "squidfunk";
     repo = "mkdocs-material";
     rev = "refs/tags/${version}";
-    hash = "sha256-5FCIDAWRY6YfZi4QbcEpJMFfbJ17vudxlUYx4czDxrY=";
+    hash = "sha256-iuQmZJ5iJEeD54SxNO6ppcI74zyUL2WdSNhDNnmC7ZY=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/mkdocs-material/mkdocs-material-extensions.nix b/pkgs/development/python-modules/mkdocs-material/mkdocs-material-extensions.nix
index 239d3507d59b3..0dd9c1d32b61d 100644
--- a/pkgs/development/python-modules/mkdocs-material/mkdocs-material-extensions.nix
+++ b/pkgs/development/python-modules/mkdocs-material/mkdocs-material-extensions.nix
@@ -1,7 +1,8 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, hatchling
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  hatchling,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-/jU30Ol10/4haR3ZPJWZ3iWRfXG/RUOU1oclOYGjjAY=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   doCheck = false; # Circular dependency
 
diff --git a/pkgs/development/python-modules/mkdocs-mermaid2-plugin/default.nix b/pkgs/development/python-modules/mkdocs-mermaid2-plugin/default.nix
index 86037b0c18ec8..84a00dde6433e 100644
--- a/pkgs/development/python-modules/mkdocs-mermaid2-plugin/default.nix
+++ b/pkgs/development/python-modules/mkdocs-mermaid2-plugin/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, beautifulsoup4
-, jsbeautifier
-, mkdocs
-, mkdocs-material
-, pymdown-extensions
-, pyyaml
-, requests
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  beautifulsoup4,
+  jsbeautifier,
+  mkdocs,
+  mkdocs-material,
+  pymdown-extensions,
+  pyyaml,
+  requests,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -38,12 +39,10 @@ buildPythonPackage rec {
   # non-traditional python tests (e.g. nodejs based tests)
   doCheck = false;
 
-  pythonImportsCheck = [
-    "mermaid2"
-  ];
+  pythonImportsCheck = [ "mermaid2" ];
 
   meta = with lib; {
-    description = "A MkDocs plugin for including mermaid graphs in markdown sources";
+    description = "MkDocs plugin for including mermaid graphs in markdown sources";
     homepage = "https://github.com/fralau/mkdocs-mermaid2-plugin";
     changelog = "https://github.com/fralau/mkdocs-mermaid2-plugin/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/mkdocs-minify-plugin/default.nix b/pkgs/development/python-modules/mkdocs-minify-plugin/default.nix
index dbb09cc5795b9..cf52a5b436bd3 100644
--- a/pkgs/development/python-modules/mkdocs-minify-plugin/default.nix
+++ b/pkgs/development/python-modules/mkdocs-minify-plugin/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mkdocs
-, csscompressor
-, htmlmin
-, jsmin
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mkdocs,
+  csscompressor,
+  htmlmin,
+  jsmin,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -38,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mkdocs" ];
 
   meta = with lib; {
-    description = "A mkdocs plugin to minify the HTML of a page before it is written to disk.";
+    description = "Mkdocs plugin to minify the HTML of a page before it is written to disk";
     homepage = "https://github.com/byrnereese/mkdocs-minify-plugin";
     license = licenses.mit;
     maintainers = with maintainers; [ tfc ];
diff --git a/pkgs/development/python-modules/mkdocs-redirects/default.nix b/pkgs/development/python-modules/mkdocs-redirects/default.nix
index 2bef26944d244..485ab55189db0 100644
--- a/pkgs/development/python-modules/mkdocs-redirects/default.nix
+++ b/pkgs/development/python-modules/mkdocs-redirects/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, callPackage
-, buildPythonPackage
-, fetchFromGitHub
-, mkdocs
-, pytestCheckHook
+{
+  lib,
+  callPackage,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mkdocs,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-zv/tCsC2wrD0iH7Kvlq4nXJMPMGQ7+l68Y/q/x66LBg=";
   };
 
-  propagatedBuildInputs = [
-    mkdocs
-  ];
+  propagatedBuildInputs = [ mkdocs ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mkdocs_redirects"
-  ];
+  pythonImportsCheck = [ "mkdocs_redirects" ];
 
   meta = with lib; {
     description = "Open source plugin for Mkdocs page redirects";
diff --git a/pkgs/development/python-modules/mkdocs-redoc-tag/default.nix b/pkgs/development/python-modules/mkdocs-redoc-tag/default.nix
index a5a3791712003..9196077644e9e 100644
--- a/pkgs/development/python-modules/mkdocs-redoc-tag/default.nix
+++ b/pkgs/development/python-modules/mkdocs-redoc-tag/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchFromGitHub
-, mkdocs
-, mkdocs-material
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mkdocs,
+  mkdocs-material,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     beautifulsoup4
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     mkdocs-material
@@ -38,7 +37,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A MkDocs plugin supports for add Redoc UI in page";
+    description = "MkDocs plugin supports for add Redoc UI in page";
     homepage = "https://github.com/blueswen/mkdocs-redoc-tag";
     changelog = "https://github.com/blueswen/mkdocs-redoc-tag/blob/v${version}/CHANGELOG";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/mkdocs-rss-plugin/default.nix b/pkgs/development/python-modules/mkdocs-rss-plugin/default.nix
index a11dd831e8bbb..f35fa16cd400e 100644
--- a/pkgs/development/python-modules/mkdocs-rss-plugin/default.nix
+++ b/pkgs/development/python-modules/mkdocs-rss-plugin/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "mkdocs-rss-plugin";
-  version = "1.12.2";
+  version = "1.13.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "Guts";
     repo = "mkdocs-rss-plugin";
     rev = "refs/tags/${version}";
-    hash = "sha256-CeVt4Vkr3tGvWsDQtw8eAaRS5jBeDei0TrS5rViSCaI=";
+    hash = "sha256-FxVyPks42hoj2y2epZjSNuTOvhDk3Vxm895a4teeSuw=";
   };
 
   postPatch = ''
@@ -49,7 +49,7 @@ buildPythonPackage rec {
   disabledTests = [
     # Tests require network access
     "test_plugin_config_through_mkdocs"
-    "test_remote_image_ok"
+    "test_remote_image"
   ];
 
   disabledTestPaths = [
diff --git a/pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix b/pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix
index 62f5286747f0a..78a1467554038 100644
--- a/pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix
+++ b/pkgs/development/python-modules/mkdocs-swagger-ui-tag/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, drawio-headless
-, fetchFromGitHub
-, mkdocs
-, pathspec
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  drawio-headless,
+  fetchFromGitHub,
+  mkdocs,
+  pathspec,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "mkdocs-swagger-ui-tag";
-  version = "0.6.9";
+  version = "0.6.10";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +21,7 @@ buildPythonPackage rec {
     owner = "Blueswen";
     repo = "mkdocs-swagger-ui-tag";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4cRElwF8AOvTLZJq1NF9Yqa7g44uiT96giyhqKZKp5M=";
+    hash = "sha256-Wfctu8rqj2HxPgXYMeL5Hovet8yjol7RfLH233Gl+v4=";
   };
 
   propagatedBuildInputs = [
@@ -33,9 +34,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "mkdocs_swagger_ui_tag"
-  ];
+  pythonImportsCheck = [ "mkdocs_swagger_ui_tag" ];
 
   disabledTests = [
     # Don't actually build results
@@ -45,7 +44,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A MkDocs plugin supports for add Swagger UI in page";
+    description = "MkDocs plugin supports for add Swagger UI in page";
     homepage = "https://github.com/Blueswen/mkdocs-swagger-ui-tag";
     changelog = "https://github.com/blueswen/mkdocs-swagger-ui-tag/blob/v${version}/CHANGELOG";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/mkdocs/default.nix b/pkgs/development/python-modules/mkdocs/default.nix
index a20958dbb747e..fc3b7fd4d8a9e 100644
--- a/pkgs/development/python-modules/mkdocs/default.nix
+++ b/pkgs/development/python-modules/mkdocs/default.nix
@@ -1,41 +1,42 @@
 {
   # eval time deps
-  lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
-, pythonOlder
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  pythonOlder,
 
-# buildtime
-, hatchling
+  # buildtime
+  hatchling,
 
-# runtime deps
-, click
-, ghp-import
-, importlib-metadata
-, jinja2
-, markdown
-, markupsafe
-, mergedeep
-, packaging
-, pathspec
-, platformdirs
-, pyyaml
-, pyyaml-env-tag
-, watchdog
+  # runtime deps
+  click,
+  ghp-import,
+  importlib-metadata,
+  jinja2,
+  markdown,
+  markupsafe,
+  mergedeep,
+  mkdocs-get-deps,
+  packaging,
+  pathspec,
+  platformdirs,
+  pyyaml,
+  pyyaml-env-tag,
+  watchdog,
 
-# optional-dependencies
-, babel
-, setuptools
+  # optional-dependencies
+  babel,
+  setuptools,
 
-# testing deps
-, mock
-, unittestCheckHook
+  # testing deps
+  mock,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "mkdocs";
-  version = "1.5.3";
+  version = "1.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -44,36 +45,29 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-axH4AeL+osxoUIVJbW6YjiTfUr6TAXMB4raZ3oO0fyw=";
+    hash = "sha256-tpDKomHFoGYPLz7rcohkU9w7G/5+YkJ5Y6wJJRyMecI=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     click
     ghp-import
     jinja2
     markdown
     markupsafe
     mergedeep
+    mkdocs-get-deps
     packaging
     pathspec
     platformdirs
     pyyaml
     pyyaml-env-tag
     watchdog
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
   passthru.optional-dependencies = {
-    i18n = [
-      babel
-    ] ++ lib.optionals (pythonAtLeast "3.12") [
-      setuptools
-    ];
+    i18n = [ babel ] ++ lib.optionals (pythonAtLeast "3.12") [ setuptools ];
   };
 
   nativeCheckInputs = [
@@ -81,7 +75,12 @@ buildPythonPackage rec {
     mock
   ] ++ passthru.optional-dependencies.i18n;
 
-  unittestFlagsArray = [ "-v" "-p" "'*tests.py'" "mkdocs" ];
+  unittestFlagsArray = [
+    "-v"
+    "-p"
+    "'*tests.py'"
+    "mkdocs"
+  ];
 
   pythonImportsCheck = [ "mkdocs" ];
 
diff --git a/pkgs/development/python-modules/mkdocstrings-python/default.nix b/pkgs/development/python-modules/mkdocstrings-python/default.nix
index 094713367e902..5c072b4d16403 100644
--- a/pkgs/development/python-modules/mkdocstrings-python/default.nix
+++ b/pkgs/development/python-modules/mkdocstrings-python/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "mkdocstrings-python";
-  version = "1.10.0";
+  version = "1.10.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "mkdocstrings";
     repo = "python";
     rev = "refs/tags/${version}";
-    hash = "sha256-sKRheGIR//kmiznHKsVGd35oSvGHgoocsbYCzDRv2Zs=";
+    hash = "sha256-UPtzt+7FR3HTRmHFtK+KVCeqtE6qNMLayh5v0uoJ5hc=";
   };
 
   build-system = [ pdm-backend ];
diff --git a/pkgs/development/python-modules/mkdocstrings/default.nix b/pkgs/development/python-modules/mkdocstrings/default.nix
index f82916c3a784d..011442e70f2a5 100644
--- a/pkgs/development/python-modules/mkdocstrings/default.nix
+++ b/pkgs/development/python-modules/mkdocstrings/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "mkdocstrings";
-  version = "0.25.0";
+  version = "0.25.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "mkdocstrings";
     repo = "mkdocstrings";
     rev = "refs/tags/${version}";
-    hash = "sha256-VKjK58KK9x5RCc7VVy46zax42ySCv2NzqAat+XF+3a8=";
+    hash = "sha256-Z4mX6EXEFmNd/CNa39hN9mwJSv9OkqwEmWMzJ9r+EBM=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/mkl-service/default.nix b/pkgs/development/python-modules/mkl-service/default.nix
index 991c6e8813c39..9a2cd468db2ac 100644
--- a/pkgs/development/python-modules/mkl-service/default.nix
+++ b/pkgs/development/python-modules/mkl-service/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchFromGitHub, cython, mkl, nose, six }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cython,
+  mkl,
+  nose,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "mkl-service";
@@ -16,7 +24,10 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ nose ];
   nativeBuildInputs = [ cython ];
-  propagatedBuildInputs = [ mkl six ];
+  propagatedBuildInputs = [
+    mkl
+    six
+  ];
 
   meta = with lib; {
     description = "Python hooks for Intel(R) Math Kernel Library runtime control settings";
diff --git a/pkgs/development/python-modules/ml-collections/default.nix b/pkgs/development/python-modules/ml-collections/default.nix
index 806b7cce5b42f..2efd63acb78b4 100644
--- a/pkgs/development/python-modules/ml-collections/default.nix
+++ b/pkgs/development/python-modules/ml-collections/default.nix
@@ -1,10 +1,11 @@
-{ absl-py
-, buildPythonPackage
-, contextlib2
-, fetchPypi
-, fetchurl
-, lib
-, pyyaml
+{
+  absl-py,
+  buildPythonPackage,
+  contextlib2,
+  fetchPypi,
+  fetchurl,
+  lib,
+  pyyaml,
 }:
 
 let
@@ -36,7 +37,11 @@ buildPythonPackage rec {
     cp ${requirements-test} requirements-test.txt
   '';
 
-  propagatedBuildInputs = [ absl-py contextlib2 pyyaml ];
+  propagatedBuildInputs = [
+    absl-py
+    contextlib2
+    pyyaml
+  ];
 
   # The official test suite uses bazel. With pytestCheckHook there are name
   # conflicts between files and tests have assumptions that are broken by the
@@ -46,7 +51,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ml_collections" ];
 
   meta = with lib; {
-    description = "ML Collections is a library of Python collections designed for ML usecases.";
+    description = "ML Collections is a library of Python collections designed for ML usecases";
     homepage = "https://github.com/google/ml_collections";
     license = licenses.asl20;
     maintainers = with maintainers; [ samuela ];
diff --git a/pkgs/development/python-modules/ml-dtypes/default.nix b/pkgs/development/python-modules/ml-dtypes/default.nix
index b58887aea1d59..0fd14edd7b215 100644
--- a/pkgs/development/python-modules/ml-dtypes/default.nix
+++ b/pkgs/development/python-modules/ml-dtypes/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, numpy
-, pytestCheckHook
-, absl-py
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  numpy,
+  pytestCheckHook,
+  absl-py,
 }:
 
 buildPythonPackage rec {
@@ -35,13 +36,9 @@ buildPythonPackage rec {
       --replace "setuptools~=68.1.0" "setuptools"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -54,15 +51,16 @@ buildPythonPackage rec {
     rm -rf ./ml_dtypes
   '';
 
-  pythonImportsCheck = [
-    "ml_dtypes"
-  ];
+  pythonImportsCheck = [ "ml_dtypes" ];
 
   meta = with lib; {
-    description = "A stand-alone implementation of several NumPy dtype extensions used in machine learning libraries";
+    description = "Stand-alone implementation of several NumPy dtype extensions used in machine learning libraries";
     homepage = "https://github.com/jax-ml/ml_dtypes";
     changelog = "https://github.com/jax-ml/ml_dtypes/releases/tag/v${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [ GaetanLepage samuela ];
+    maintainers = with maintainers; [
+      GaetanLepage
+      samuela
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/mlflow/default.nix b/pkgs/development/python-modules/mlflow/default.nix
index 371db9450996b..faa39576a60a9 100644
--- a/pkgs/development/python-modules/mlflow/default.nix
+++ b/pkgs/development/python-modules/mlflow/default.nix
@@ -1,58 +1,57 @@
-{ lib
-, alembic
-, buildPythonPackage
-, click
-, cloudpickle
-, databricks-cli
-, docker
-, entrypoints
-, fetchPypi
-, flask
-, gitpython
-, gorilla
-, graphene
-, gunicorn
-, importlib-metadata
-, markdown
-, matplotlib
-, numpy
-, packaging
-, pandas
-, prometheus-flask-exporter
-, protobuf
-, python-dateutil
-, pythonOlder
-, pythonRelaxDepsHook
-, pyarrow
-, pytz
-, pyyaml
-, querystring-parser
-, requests
-, setuptools
-, scikit-learn
-, scipy
-, simplejson
-, sqlalchemy
-, sqlparse
+{
+  lib,
+  alembic,
+  buildPythonPackage,
+  click,
+  cloudpickle,
+  databricks-cli,
+  docker,
+  entrypoints,
+  fetchPypi,
+  flask,
+  gitpython,
+  gorilla,
+  graphene,
+  gunicorn,
+  importlib-metadata,
+  markdown,
+  matplotlib,
+  numpy,
+  packaging,
+  pandas,
+  prometheus-flask-exporter,
+  protobuf,
+  python-dateutil,
+  pythonOlder,
+  pyarrow,
+  pytz,
+  pyyaml,
+  querystring-parser,
+  requests,
+  setuptools,
+  scikit-learn,
+  scipy,
+  simplejson,
+  sqlalchemy,
+  sqlparse,
 }:
 
 buildPythonPackage rec {
   pname = "mlflow";
-  version = "2.12.1";
+  version = "2.14.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-qpKuuyN5qcVITL6QHN93nVQIrJamQeSx+KLR/5dNt8k=";
+    hash = "sha256-Nt4xBdhB/ZraEX5sgtDyp6DAm35FsgkjsuxN30QeAV8=";
   };
 
   # Remove currently broken dependency `shap`, a model explainability package.
   # This seems quite unprincipled especially with tests not being enabled,
   # but not mlflow has a 'skinny' install option which does not require `shap`.
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
   pythonRemoveDeps = [ "shap" ];
@@ -96,9 +95,7 @@ buildPythonPackage rec {
     sqlparse
   ];
 
-  pythonImportsCheck = [
-    "mlflow"
-  ];
+  pythonImportsCheck = [ "mlflow" ];
 
   # no tests in PyPI dist
   # run into https://stackoverflow.com/questions/51203641/attributeerror-module-alembic-context-has-no-attribute-config
diff --git a/pkgs/development/python-modules/mlrose/default.nix b/pkgs/development/python-modules/mlrose/default.nix
index f4e97870b331a..fa12508f522e3 100644
--- a/pkgs/development/python-modules/mlrose/default.nix
+++ b/pkgs/development/python-modules/mlrose/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, isPy27
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, scikit-learn
-, pytestCheckHook
-, pytest-randomly
+{
+  lib,
+  isPy27,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  scikit-learn,
+  pytestCheckHook,
+  pytest-randomly,
 }:
 
 buildPythonPackage rec {
@@ -30,7 +31,10 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [ scikit-learn ];
-  nativeCheckInputs = [ pytest-randomly pytestCheckHook ];
+  nativeCheckInputs = [
+    pytest-randomly
+    pytestCheckHook
+  ];
 
   postPatch = ''
     substituteInPlace setup.py --replace sklearn scikit-learn
@@ -43,8 +47,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Machine Learning, Randomized Optimization and SEarch";
-    homepage    = "https://github.com/gkhayes/mlrose";
-    license     = licenses.bsd3;
+    homepage = "https://github.com/gkhayes/mlrose";
+    license = licenses.bsd3;
     maintainers = with maintainers; [ abbradar ];
   };
 }
diff --git a/pkgs/development/python-modules/mlx/default.nix b/pkgs/development/python-modules/mlx/default.nix
index d2d4d32d7a9a5..b65f87105d2dc 100644
--- a/pkgs/development/python-modules/mlx/default.nix
+++ b/pkgs/development/python-modules/mlx/default.nix
@@ -1,15 +1,16 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, buildPythonPackage
-, python3Packages
-, pybind11
-, cmake
-, xcbuild
-, zsh
-, darwin
-, blas
-, lapack
+{
+  stdenv,
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  python3Packages,
+  pybind11,
+  cmake,
+  xcbuild,
+  zsh,
+  darwin,
+  blas,
+  lapack,
 }:
 
 let
@@ -29,13 +30,13 @@ let
 in
 buildPythonPackage rec {
   pname = "mlx";
-  version = "0.6.0";
+  version = "0.15.1";
 
   src = fetchFromGitHub {
     owner = "ml-explore";
     repo = "mlx";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FihdI+3ACKMJfPT2POjTRdtkXs7x+KiQpdpo3RcczBE=";
+    hash = "sha256-+vgHEt+L91YJLpQo4bps+Rnm/TS1PAPXNohdICGK6GE=";
   };
 
   pyproject = true;
@@ -63,13 +64,23 @@ buildPythonPackage rec {
     ];
   };
 
-  nativeBuildInputs = [ cmake pybind11 xcbuild zsh gguf-tools nlohmann_json ] ++ (with python3Packages; [ setuptools ]);
+  nativeBuildInputs = [
+    cmake
+    pybind11
+    xcbuild
+    zsh
+    gguf-tools
+    nlohmann_json
+  ] ++ (with python3Packages; [ setuptools ]);
 
-  buildInputs = [ blas lapack ];
+  buildInputs = [
+    blas
+    lapack
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/ml-explore/mlx";
-    description = "An array framework for Apple silicon";
+    description = "Array framework for Apple silicon";
     changelog = "https://github.com/ml-explore/mlx/releases/tag/v${version}";
     license = licenses.mit;
     platforms = [ "aarch64-darwin" ];
diff --git a/pkgs/development/python-modules/mlxtend/default.nix b/pkgs/development/python-modules/mlxtend/default.nix
index 4a743ac664a96..85c5c05f4eae3 100644
--- a/pkgs/development/python-modules/mlxtend/default.nix
+++ b/pkgs/development/python-modules/mlxtend/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy27
-, setuptools
-, pytestCheckHook
-, scipy
-, numpy
-, scikit-learn
-, pandas
-, matplotlib
-, joblib
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy27,
+  setuptools,
+  pytestCheckHook,
+  scipy,
+  numpy,
+  scikit-learn,
+  pandas,
+  matplotlib,
+  joblib,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-FlP6UqX/Ejk9c3Enm0EJ0xqy7iOhDlFqjWWxd4VIczQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     scipy
@@ -39,13 +38,9 @@ buildPythonPackage rec {
     joblib
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "-sv"
-  ];
+  pytestFlagsArray = [ "-sv" ];
 
   disabledTestPaths = [
     # image tests download files over the network
@@ -53,9 +48,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A library of Python tools and extensions for data science";
+    description = "Library of Python tools and extensions for data science";
     homepage = "https://github.com/rasbt/mlxtend";
-    license= licenses.bsd3;
+    license = licenses.bsd3;
     maintainers = with maintainers; [ evax ];
     platforms = platforms.unix;
     # incompatible with nixpkgs scikit-learn version
diff --git a/pkgs/development/python-modules/mmcif-pdbx/default.nix b/pkgs/development/python-modules/mmcif-pdbx/default.nix
index 05d43d54f25d9..43427810c5235 100644
--- a/pkgs/development/python-modules/mmcif-pdbx/default.nix
+++ b/pkgs/development/python-modules/mmcif-pdbx/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-ymMQ/q4IMoq+B8RvIdL0aqolKxyE/4rnVfd4bUV5OUY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pdbx"
-  ];
+  pythonImportsCheck = [ "pdbx" ];
 
   meta = with lib; {
     description = "Yet another version of PDBx/mmCIF Python implementation";
diff --git a/pkgs/development/python-modules/mmcv/default.nix b/pkgs/development/python-modules/mmcv/default.nix
index 923e40d02fcf2..d552736a6920e 100644
--- a/pkgs/development/python-modules/mmcv/default.nix
+++ b/pkgs/development/python-modules/mmcv/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, torch
-, torchvision
-, opencv4
-, yapf
-, packaging
-, pillow
-, addict
-, ninja
-, which
-, pybind11
-, onnx
-, onnxruntime
-, scipy
-, pyturbojpeg
-, tifffile
-, lmdb
-, mmengine
-, symlinkJoin
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  torch,
+  torchvision,
+  opencv4,
+  yapf,
+  packaging,
+  pillow,
+  addict,
+  ninja,
+  which,
+  pybind11,
+  onnx,
+  onnxruntime,
+  scipy,
+  pyturbojpeg,
+  tifffile,
+  lmdb,
+  mmengine,
+  symlinkJoin,
 }:
 
 let
@@ -36,21 +37,23 @@ let
 
   cuda-native-redist = symlinkJoin {
     name = "cuda-native-redist-${cudaVersion}";
-    paths = with cudaPackages; [
-      cuda_cudart # cuda_runtime.h
-      cuda_nvcc
-    ] ++ cuda-common-redist;
+    paths =
+      with cudaPackages;
+      [
+        cuda_cudart # cuda_runtime.h
+        cuda_nvcc
+      ]
+      ++ cuda-common-redist;
   };
 
   cuda-redist = symlinkJoin {
     name = "cuda-redist-${cudaVersion}";
     paths = cuda-common-redist;
   };
-
 in
 buildPythonPackage rec {
   pname = "mmcv";
-  version = "2.1.0";
+  version = "2.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -59,17 +62,19 @@ buildPythonPackage rec {
     owner = "open-mmlab";
     repo = "mmcv";
     rev = "refs/tags/v${version}";
-    hash = "sha256-an78tRvx18zQ5Q0ca74r4Oe2gJ9F9OfWXLbuP2+rL68=";
+    hash = "sha256-NNF9sLJWV1q6uBE73LUW4UWwYm4TBMTBJjJkFArBmsc=";
   };
 
-  preConfigure = ''
-    export MMCV_WITH_OPS=1
-  '' + lib.optionalString cudaSupport ''
-    export CC=${backendStdenv.cc}/bin/cc
-    export CXX=${backendStdenv.cc}/bin/c++
-    export TORCH_CUDA_ARCH_LIST="${lib.concatStringsSep ";" cudaCapabilities}"
-    export FORCE_CUDA=1
-  '';
+  preConfigure =
+    ''
+      export MMCV_WITH_OPS=1
+    ''
+    + lib.optionalString cudaSupport ''
+      export CC=${backendStdenv.cc}/bin/cc
+      export CXX=${backendStdenv.cc}/bin/c++
+      export TORCH_CUDA_ARCH_LIST="${lib.concatStringsSep ";" cudaCapabilities}"
+      export FORCE_CUDA=1
+    '';
 
   postPatch = ''
     substituteInPlace setup.py --replace "cpu_use = 4" "cpu_use = $NIX_BUILD_CORES"
@@ -94,12 +99,26 @@ buildPythonPackage rec {
     "test_reader"
   ];
 
-  nativeBuildInputs = [ ninja which ]
-    ++ lib.optionals cudaSupport [ cuda-native-redist ];
-
-  buildInputs = [ pybind11 torch ] ++ lib.optionals cudaSupport [ cuda-redist ];
+  nativeBuildInputs = [
+    ninja
+    which
+  ] ++ lib.optionals cudaSupport [ cuda-native-redist ];
 
-  nativeCheckInputs = [ pytestCheckHook torchvision lmdb onnx onnxruntime scipy pyturbojpeg tifffile ];
+  buildInputs = [
+    pybind11
+    torch
+  ] ++ lib.optionals cudaSupport [ cuda-redist ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    torchvision
+    lmdb
+    onnx
+    onnxruntime
+    scipy
+    pyturbojpeg
+    tifffile
+  ];
 
   propagatedBuildInputs = [
     mmengine
@@ -111,12 +130,10 @@ buildPythonPackage rec {
     addict
   ];
 
-  pythonImportsCheck = [
-    "mmcv"
-  ];
+  pythonImportsCheck = [ "mmcv" ];
 
   meta = with lib; {
-    description = "A Foundational Library for Computer Vision Research";
+    description = "Foundational Library for Computer Vision Research";
     homepage = "https://github.com/open-mmlab/mmcv";
     changelog = "https://github.com/open-mmlab/mmcv/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
diff --git a/pkgs/development/python-modules/mmh3/default.nix b/pkgs/development/python-modules/mmh3/default.nix
index 9aff484888ab5..547c7f7b884a4 100644
--- a/pkgs/development/python-modules/mmh3/default.nix
+++ b/pkgs/development/python-modules/mmh3/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-oc8lNIuazSKd2kZKCU1hcPR9KFCh/Ldio7YXLSzmyko=";
   };
 
-  pythonImportsCheck = [
-    "mmh3"
-  ];
+  pythonImportsCheck = [ "mmh3" ];
 
   meta = with lib; {
     description = "Python wrapper for MurmurHash3, a set of fast and robust hash functions";
diff --git a/pkgs/development/python-modules/mmpython/default.nix b/pkgs/development/python-modules/mmpython/default.nix
index 837a1953be5e1..6a980c242e8fa 100644
--- a/pkgs/development/python-modules/mmpython/default.nix
+++ b/pkgs/development/python-modules/mmpython/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchurl
-, isPyPy
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchurl,
+  isPyPy,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -23,5 +24,4 @@ buildPythonPackage rec {
     homepage = "https://sourceforge.net/projects/mmpython/";
     license = licenses.gpl2;
   };
-
 }
diff --git a/pkgs/development/python-modules/mmtf-python/default.nix b/pkgs/development/python-modules/mmtf-python/default.nix
index 197d0cf3e65bb..9e40d8a76adc3 100644
--- a/pkgs/development/python-modules/mmtf-python/default.nix
+++ b/pkgs/development/python-modules/mmtf-python/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msgpack
-, numpy
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msgpack,
+  numpy,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,17 @@ buildPythonPackage rec {
     numpy
   ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   unittestFlagsArray = [
     "-s mmtf/tests"
     "-p \"*_tests.py\""
   ];
 
-  pythonImportsCheck = [
-    "mmtf"
-  ];
+  pythonImportsCheck = [ "mmtf" ];
 
   meta = {
-    description = "The python implementation of the MMTF API, decoder and encoder";
+    description = "Python implementation of the MMTF API, decoder and encoder";
     homepage = "https://github.com/rcsb/mmtf-python";
     changelog = "https://github.com/rcsb/mmtf-python/releases/tag/v${version}";
     license = lib.licenses.asl20;
diff --git a/pkgs/development/python-modules/mne-python/default.nix b/pkgs/development/python-modules/mne-python/default.nix
index c34d2649cda8a..f471c1027dbf0 100644
--- a/pkgs/development/python-modules/mne-python/default.nix
+++ b/pkgs/development/python-modules/mne-python/default.nix
@@ -1,49 +1,48 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, numpy
-, scipy
-, pytestCheckHook
-, pytest-timeout
-, pytest-harvest
-, matplotlib
-, decorator
-, jinja2
-, pooch
-, tqdm
-, packaging
-, importlib-resources
-, lazy-loader
-, h5io
-, pymatreader
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  hatch-vcs,
+  numpy,
+  scipy,
+  pytestCheckHook,
+  pytest-timeout,
+  matplotlib,
+  decorator,
+  jinja2,
+  pooch,
+  tqdm,
+  packaging,
+  lazy-loader,
+  h5io,
+  pymatreader,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "mne-python";
-  version = "1.6.1";
+  version = "1.7.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "mne-tools";
     repo = "mne-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-U1aMqcUZ3BcwqwOYh/qfG5PhacwBVioAgNc52uaoJL0";
+    hash = "sha256-piCFynpKh7gTWIGh2g0gJICLS+eg/0XAxaDkyu7v5vs=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml  \
-      --replace "--cov-report=" ""  \
-      --replace "--cov-branch" ""
+      --replace-fail "--cov-report=" ""  \
+      --replace-fail "--cov-branch" ""
   '';
 
   nativeBuildInputs = [
-    setuptools
-    setuptools-scm
+    hatchling
+    hatch-vcs
   ];
 
   propagatedBuildInputs = [
@@ -56,21 +55,16 @@ buildPythonPackage rec {
     packaging
     jinja2
     lazy-loader
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    importlib-resources
   ];
 
-  passthru.optional-dependencies = {
-    hdf5 = [
-      h5io
-      pymatreader
-    ];
-  };
+  passthru.optional-dependencies.hdf5 = [
+    h5io
+    pymatreader
+  ];
 
   nativeCheckInputs = [
     pytestCheckHook
     pytest-timeout
-    pytest-harvest
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
   preCheck = ''
@@ -79,9 +73,7 @@ buildPythonPackage rec {
     export MNE_SKIP_NETWORK_TESTS=1
   '';
 
-  pythonImportsCheck = [
-    "mne"
-  ];
+  pythonImportsCheck = [ "mne" ];
 
   meta = with lib; {
     description = "Magnetoencephelography and electroencephalography in Python";
@@ -89,6 +81,9 @@ buildPythonPackage rec {
     homepage = "https://mne.tools";
     changelog = "https://mne.tools/stable/changes/v${version}.html";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ bcdarwin mbalatsko ];
+    maintainers = with maintainers; [
+      bcdarwin
+      mbalatsko
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/mnemonic/default.nix b/pkgs/development/python-modules/mnemonic/default.nix
index ba5fe3dc03c3f..839367cc8e315 100644
--- a/pkgs/development/python-modules/mnemonic/default.nix
+++ b/pkgs/development/python-modules/mnemonic/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,6 +25,9 @@ buildPythonPackage rec {
     description = "Reference implementation of BIP-0039";
     homepage = "https://github.com/trezor/python-mnemonic";
     license = licenses.mit;
-    maintainers = with maintainers; [ np prusnak ];
+    maintainers = with maintainers; [
+      np
+      prusnak
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/mnist/default.nix b/pkgs/development/python-modules/mnist/default.nix
index 3e48b31983379..25f2106e20cb7 100644
--- a/pkgs/development/python-modules/mnist/default.nix
+++ b/pkgs/development/python-modules/mnist/default.nix
@@ -1,4 +1,11 @@
-{ buildPythonPackage, fetchFromGitHub, isPy27, lib, mock, numpy, pytestCheckHook
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy27,
+  lib,
+  mock,
+  numpy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -34,4 +41,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ dmrauh ];
   };
 }
-
diff --git a/pkgs/development/python-modules/moat-ble/default.nix b/pkgs/development/python-modules/moat-ble/default.nix
index 2e55edd7aedb0..26058cb0577ae 100644
--- a/pkgs/development/python-modules/moat-ble/default.nix
+++ b/pkgs/development/python-modules/moat-ble/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, bluetooth-sensor-state-data
-, buildPythonPackage
-, fetchFromGitHub
-, home-assistant-bluetooth
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, sensor-state-data
+{
+  lib,
+  bluetooth-sensor-state-data,
+  buildPythonPackage,
+  fetchFromGitHub,
+  home-assistant-bluetooth,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  sensor-state-data,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-dy1Fm0Z1PUsPY8QTiXUcWSi+csFnTUsobSkA92m06QI=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bluetooth-sensor-state-data
@@ -33,18 +32,14 @@ buildPythonPackage rec {
     sensor-state-data
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace " --cov=moat_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  pythonImportsCheck = [
-    "moat_ble"
-  ];
+  pythonImportsCheck = [ "moat_ble" ];
 
   meta = with lib; {
     description = "Library for Moat BLE devices";
diff --git a/pkgs/development/python-modules/mobi/default.nix b/pkgs/development/python-modules/mobi/default.nix
index b5c04d0bae893..82065268cfeb5 100644
--- a/pkgs/development/python-modules/mobi/default.nix
+++ b/pkgs/development/python-modules/mobi/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, loguru
-, poetry-core
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  loguru,
+  poetry-core,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,23 +22,16 @@ buildPythonPackage rec {
     hash = "sha256-g1L72MkJdrKQRsEdew+Qsn8LfCn8+cmj2pmY6s4nv2U=";
   };
 
-  pythonRelaxDeps = [
-    "loguru"
-  ];
+  pythonRelaxDeps = [ "loguru" ];
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
     setuptools
   ];
 
-  propagatedBuildInputs = [
-    loguru
-  ];
+  propagatedBuildInputs = [ loguru ];
 
-  pythonImportsCheck = [
-    "mobi"
-  ];
+  pythonImportsCheck = [ "mobi" ];
 
   meta = with lib; {
     description = "Library for unpacking unencrypted mobi files";
diff --git a/pkgs/development/python-modules/mobly/default.nix b/pkgs/development/python-modules/mobly/default.nix
index e89a361993938..046edf9a3da15 100644
--- a/pkgs/development/python-modules/mobly/default.nix
+++ b/pkgs/development/python-modules/mobly/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# build-system
-, setuptools
-
-# dependencies
-, portpicker
-, pyserial
-, pyyaml
-, timeout-decorator
-, typing-extensions
-
-# tests
-, procps
-, pytestCheckHook
-, pytz
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  portpicker,
+  pyserial,
+  pyyaml,
+  timeout-decorator,
+  typing-extensions,
+
+  # tests
+  procps,
+  pytestCheckHook,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     hash = "sha256-hhI1jrHJk4wo49MK8J4VTS2dGmHG2kwzgZeSWBXdXkA=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     portpicker
diff --git a/pkgs/development/python-modules/mock-open/default.nix b/pkgs/development/python-modules/mock-open/default.nix
index 704054c46c040..3cf1095b20eab 100644
--- a/pkgs/development/python-modules/mock-open/default.nix
+++ b/pkgs/development/python-modules/mock-open/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch, pythonOlder, mock }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+}:
 
 buildPythonPackage rec {
   pname = "mock-open";
@@ -13,18 +17,9 @@ buildPythonPackage rec {
     sha256 = "0qlz4y8jqxsnmqg03yp9f87rmnjrvmxm5qvm6n1218gm9k5dixbm";
   };
 
-  patches = lib.optional (pythonOlder "3.0")
-    (fetchpatch {
-      name = "ascii-only.patch";
-      url = "https://github.com/das-g/mock-open/commit/521ff260da127949fe4aceff1667cba223c5b07b.patch";
-      sha256 = "0ampbhk7kwkn0q5d2h9wrflkr8fji2bybmdck4qdzw1qkslfwwrn";
-    });
-
-  propagatedBuildInputs = lib.optional (pythonOlder "3.3") mock;
-
   meta = with lib; {
     homepage = "https://github.com/nivbend/mock-open";
-    description = "A better mock for file I/O";
+    description = "Better mock for file I/O";
     license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/mock-services/default.nix b/pkgs/development/python-modules/mock-services/default.nix
index e1c52662f3894..723ec6f782331 100644
--- a/pkgs/development/python-modules/mock-services/default.nix
+++ b/pkgs/development/python-modules/mock-services/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, attrs
-, funcsigs
-, requests-mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  attrs,
+  funcsigs,
+  requests-mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     requests-mock
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # require networking
diff --git a/pkgs/development/python-modules/mock-ssh-server/default.nix b/pkgs/development/python-modules/mock-ssh-server/default.nix
index 46608965c1c15..abf911588ba2e 100644
--- a/pkgs/development/python-modules/mock-ssh-server/default.nix
+++ b/pkgs/development/python-modules/mock-ssh-server/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, paramiko
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  paramiko,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-yJd+WDidW5ouofytAKTlSiZhIQg2cLs8BvEp15qwtjo=";
   };
 
-  propagatedBuildInputs = [
-    paramiko
-  ];
+  propagatedBuildInputs = [ paramiko ];
 
   # Tests are running into a timeout on Hydra, they work locally
   doCheck = false;
 
-  pythonImportsCheck = [
-    "mockssh"
-  ];
+  pythonImportsCheck = [ "mockssh" ];
 
   meta = with lib; {
     description = "Python mock SSH server for testing purposes";
diff --git a/pkgs/development/python-modules/mock/default.nix b/pkgs/development/python-modules/mock/default.nix
index 7e5a72a47fadd..c5b32f6397c4e 100644
--- a/pkgs/development/python-modules/mock/default.nix
+++ b/pkgs/development/python-modules/mock/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     sha256 = "sha256-Xpaq1czaRxjgointlLICTfdcwtVVdbpXYtMfV2e4dn0=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mock"
-  ];
+  pythonImportsCheck = [ "mock" ];
 
   meta = with lib; {
     description = "Rolling backport of unittest.mock for all Pythons";
diff --git a/pkgs/development/python-modules/mocket/default.nix b/pkgs/development/python-modules/mocket/default.nix
index 116e85ce2c343..a76b460857af3 100644
--- a/pkgs/development/python-modules/mocket/default.nix
+++ b/pkgs/development/python-modules/mocket/default.nix
@@ -1,51 +1,50 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, stdenv
-
-# build-system
-, hatchling
-
-# dependencies
-, decorator
-, httptools
-, python-magic
-, urllib3
-
-# optional-dependencies
-, xxhash
-, pook
-
-# tests
-, aiohttp
-, asgiref
-, fastapi
-, gevent
-, httpx
-, psutil
-, pytest-asyncio
-, pytestCheckHook
-, redis
-, redis-server
-, requests
-, sure
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  stdenv,
+
+  # build-system
+  hatchling,
+
+  # dependencies
+  decorator,
+  httptools,
+  python-magic,
+  urllib3,
+
+  # optional-dependencies
+  xxhash,
+  pook,
+
+  # tests
+  aiohttp,
+  asgiref,
+  fastapi,
+  gevent,
+  httpx,
+  psutil,
+  pytest-asyncio,
+  pytestCheckHook,
+  redis,
+  redis-server,
+  requests,
+  sure,
 
 }:
 
 buildPythonPackage rec {
   pname = "mocket";
-  version = "3.12.5";
+  version = "3.12.8";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-6yWo7SBlVldK+AxUBnQOXjQBxz9HbIC+Ch977xiZxek=";
+    hash = "sha256-++zGXLtQ01srmF0EqUFqaxh+mnNzW8IzYG1RzNGTXkw=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     decorator
@@ -55,28 +54,25 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    pook = [
-      pook
-    ];
-    speedups = [
-      xxhash
-    ];
+    pook = [ pook ];
+    speedups = [ xxhash ];
   };
 
-  nativeCheckInputs = [
-    asgiref
-    fastapi
-    gevent
-    httpx
-    psutil
-    pytest-asyncio
-    pytestCheckHook
-    redis
-    requests
-    sure
-  ] ++ lib.optionals (pythonOlder "3.12") [
-    aiohttp
-  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+  nativeCheckInputs =
+    [
+      asgiref
+      fastapi
+      gevent
+      httpx
+      psutil
+      pytest-asyncio
+      pytestCheckHook
+      redis
+      requests
+      sure
+    ]
+    ++ lib.optionals (pythonOlder "3.12") [ aiohttp ]
+    ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
   preCheck = lib.optionalString stdenv.isLinux ''
     ${redis-server}/bin/redis-server &
@@ -101,17 +97,13 @@ buildPythonPackage rec {
     "test_no_dangling_fds"
   ];
 
-  disabledTestPaths = lib.optionals stdenv.isDarwin [
-    "tests/main/test_redis.py"
-  ];
+  disabledTestPaths = lib.optionals stdenv.isDarwin [ "tests/main/test_redis.py" ];
 
-  pythonImportsCheck = [
-    "mocket"
-  ];
+  pythonImportsCheck = [ "mocket" ];
 
   meta = with lib; {
     changelog = "https://github.com/mindflayer/python-mocket/releases/tag/${version}";
-    description = "A socket mock framework for all kinds of sockets including web-clients";
+    description = "Socket mock framework for all kinds of sockets including web-clients";
     homepage = "https://github.com/mindflayer/python-mocket";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/mockfs/default.nix b/pkgs/development/python-modules/mockfs/default.nix
index 680a6c9fc795b..7f069557ed7a0 100644
--- a/pkgs/development/python-modules/mockfs/default.nix
+++ b/pkgs/development/python-modules/mockfs/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, importlib-metadata
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  importlib-metadata,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -28,18 +29,14 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    importlib-metadata
-  ];
+  propagatedBuildInputs = [ importlib-metadata ];
 
   pythonImportsCheck = [ "mockfs" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A simple mock filesystem for use in unit tests";
+    description = "Simple mock filesystem for use in unit tests";
     homepage = "https://github.com/mockfs/mockfs";
     changelog = "https://github.com/mockfs/mockfs/blob/${src.rev}/CHANGES.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/mockito/default.nix b/pkgs/development/python-modules/mockito/default.nix
index 91c03c9cb6db7..709a358c368c0 100644
--- a/pkgs/development/python-modules/mockito/default.nix
+++ b/pkgs/development/python-modules/mockito/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatchling
-, numpy
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatchling,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-A2Eo2n2vLaiaC2N71zMh6ZL/ZbqKOYdsojPuwX63fo8=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   nativeCheckInputs = [
     numpy
diff --git a/pkgs/development/python-modules/mockupdb/default.nix b/pkgs/development/python-modules/mockupdb/default.nix
index e06b1637b685c..47ba794d0a0ba 100644
--- a/pkgs/development/python-modules/mockupdb/default.nix
+++ b/pkgs/development/python-modules/mockupdb/default.nix
@@ -1,9 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pymongo
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pymongo,
+  pythonAtLeast,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -11,24 +13,19 @@ buildPythonPackage rec {
   version = "1.8.1";
   format = "setuptools";
 
-  disabled = pythonOlder "3.9";
+  # use the removed ssl.wrap_socket function
+  disabled = pythonOlder "3.9" || pythonAtLeast "3.12";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-020OW2RF/5FB400BL6K13+WJhHqh4+y413QHSWKvlE4=";
   };
 
-  propagatedBuildInputs = [
-    pymongo
-  ];
+  propagatedBuildInputs = [ pymongo ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mockupdb"
-  ];
+  pythonImportsCheck = [ "mockupdb" ];
 
   disabledTests = [
     # AssertionError: expected to receive Request(), got nothing
diff --git a/pkgs/development/python-modules/moddb/default.nix b/pkgs/development/python-modules/moddb/default.nix
index a0205d5c4676a..17af65e37a206 100644
--- a/pkgs/development/python-modules/moddb/default.nix
+++ b/pkgs/development/python-modules/moddb/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonRelaxDepsHook
-, beautifulsoup4
-, pyrate-limiter
-, requests
-, toolz
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  beautifulsoup4,
+  pyrate-limiter,
+  requests,
+  toolz,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +20,6 @@ buildPythonPackage rec {
     hash = "sha256-2t5QQAmSLOrdNCl0XdsFPdP2UF10/qq69DovqeQ1Vt8=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   propagatedBuildInputs = [
     beautifulsoup4
@@ -37,9 +34,8 @@ buildPythonPackage rec {
 
   doCheck = false; # Tests try to access the internet.
 
-
   meta = with lib; {
-    description = "A Python scrapper to access ModDB mods, games and more as objects";
+    description = "Python scrapper to access ModDB mods, games and more as objects";
     homepage = "https://github.com/ClementJ18/moddb";
     license = licenses.mit;
     maintainers = with maintainers; [ kranzes ];
diff --git a/pkgs/development/python-modules/model-bakery/default.nix b/pkgs/development/python-modules/model-bakery/default.nix
index 82b91dd10da51..0729ec702479a 100644
--- a/pkgs/development/python-modules/model-bakery/default.nix
+++ b/pkgs/development/python-modules/model-bakery/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "model-bakery";
-  version = "1.18.0";
+  version = "1.18.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "model-bakers";
     repo = "model_bakery";
     rev = "refs/tags/${version}";
-    hash = "sha256-mf6NV7r/9kDCRlszx/QGtfEsC1O/SATd6+EX+w7ptEQ=";
+    hash = "sha256-QsfVKPasGFzcLIwx7t9H9I2o2JNUFLKbKc86tntltg8=";
   };
 
   build-system = [ hatchling ];
diff --git a/pkgs/development/python-modules/model-checker/default.nix b/pkgs/development/python-modules/model-checker/default.nix
new file mode 100644
index 0000000000000..e8472d3233e5e
--- /dev/null
+++ b/pkgs/development/python-modules/model-checker/default.nix
@@ -0,0 +1,43 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pythonOlder,
+  z3-solver,
+}:
+
+buildPythonPackage rec {
+  pname = "model-checker";
+  version = "0.4.9";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    pname = "model_checker";
+    inherit version;
+    hash = "sha256-BUkbCllM2qN5yKTvte2iwnmBXQAzu2N8LTGRfvOTKUQ=";
+  };
+
+  # z3 does not provide a dist-info, so python-runtime-deps-check will fail
+  pythonRemoveDeps = [ "z3-solver" ];
+
+  build-system = [ setuptools ];
+
+
+  dependencies = [ z3-solver ];
+
+  # Tests have multiple issues, ImportError, TypeError, etc.
+  # Check with the next release > 0.3.13
+  doCheck = false;
+
+  pythonImportsCheck = [ "model_checker" ];
+
+  meta = with lib; {
+    description = "Hyperintensional theorem prover for counterfactual conditionals and modal operators";
+    homepage = "https://pypi.org/project/model-checker/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/modelcif/default.nix b/pkgs/development/python-modules/modelcif/default.nix
index e3bfea7074292..5604a067734da 100644
--- a/pkgs/development/python-modules/modelcif/default.nix
+++ b/pkgs/development/python-modules/modelcif/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, ihm
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  ihm,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "modelcif";
-  version = "0.9";
+  version = "1.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "ihmwg";
     repo = "python-modelcif";
     rev = "refs/tags/${version}";
-    hash = "sha256-u+e2QtG6gO1e31OzPfAuzfCkwZymEZMxa2p0haYplAk=";
+    hash = "sha256-zJLwBdyUyWnH1hBx9Kejl5NfY7zJUxeGb//swBT02Dw=";
   };
 
   nativeBuildInputs = [
@@ -24,13 +25,9 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    ihm
-  ];
+  propagatedBuildInputs = [ ihm ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # require network access
diff --git a/pkgs/development/python-modules/modeled/default.nix b/pkgs/development/python-modules/modeled/default.nix
index bcbeebf1ca37f..04655a61378f5 100644
--- a/pkgs/development/python-modules/modeled/default.nix
+++ b/pkgs/development/python-modules/modeled/default.nix
@@ -1,12 +1,13 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, zetup
-, six
-, moretools
-, path
-, pytestCheckHook
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  zetup,
+  six,
+  moretools,
+  path,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,7 +23,11 @@ buildPythonPackage rec {
 
   buildInputs = [ zetup ];
 
-  propagatedBuildInputs = [ six moretools path ];
+  propagatedBuildInputs = [
+    six
+    moretools
+    path
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/moderngl-window/default.nix b/pkgs/development/python-modules/moderngl-window/default.nix
index abe68766a9ced..8042df62a5f9f 100644
--- a/pkgs/development/python-modules/moderngl-window/default.nix
+++ b/pkgs/development/python-modules/moderngl-window/default.nix
@@ -1,22 +1,22 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonRelaxDepsHook
-, setuptools
-, glfw
-, moderngl
-, numpy
-, pillow
-, pygame
-, pyglet
-, pyqt5
-, pyrr
-, pysdl2
-, pyside2
-, pythonOlder
-, scipy
-, trimesh
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  glfw,
+  moderngl,
+  numpy,
+  pillow,
+  pygame,
+  pyglet,
+  pyqt5,
+  pyrr,
+  pysdl2,
+  pyside2,
+  pythonOlder,
+  scipy,
+  trimesh,
 }:
 
 buildPythonPackage rec {
@@ -33,12 +33,9 @@ buildPythonPackage rec {
     hash = "sha256-zTygSXU/vQZaFCuHbRBpO9/BYYA2UOid+wvhyc2bWMI=";
   };
 
-  pythonRelaxDeps = [
-    "pillow"
-  ];
+  pythonRelaxDeps = [ "pillow" ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -55,29 +52,17 @@ buildPythonPackage rec {
       trimesh
       scipy
     ];
-    glfw = [
-      glfw
-    ];
-    pygame = [
-      pygame
-    ];
-    PySDL2 = [
-      pysdl2
-    ];
-    PySide2 = [
-      pyside2
-    ];
-    pyqt5 = [
-      pyqt5
-    ];
+    glfw = [ glfw ];
+    pygame = [ pygame ];
+    PySDL2 = [ pysdl2 ];
+    PySide2 = [ pyside2 ];
+    pyqt5 = [ pyqt5 ];
   };
 
   # Tests need a display to run.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "moderngl_window"
-  ];
+  pythonImportsCheck = [ "moderngl_window" ];
 
   meta = with lib; {
     description = "Cross platform helper library for ModernGL making window creation and resource loading simple";
diff --git a/pkgs/development/python-modules/moderngl/default.nix b/pkgs/development/python-modules/moderngl/default.nix
index f2ff8760f02e7..77ccc8d1d59ca 100644
--- a/pkgs/development/python-modules/moderngl/default.nix
+++ b/pkgs/development/python-modules/moderngl/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, libGL
-, libX11
-, glcontext
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  libGL,
+  libX11,
+  glcontext,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,16 +25,12 @@ buildPythonPackage rec {
     libX11
   ];
 
-  propagatedBuildInputs = [
-    glcontext
-  ];
+  propagatedBuildInputs = [ glcontext ];
 
   # Tests need a display to run.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "moderngl"
-  ];
+  pythonImportsCheck = [ "moderngl" ];
 
   meta = with lib; {
     description = "High performance rendering for Python";
diff --git a/pkgs/development/python-modules/modestmaps/default.nix b/pkgs/development/python-modules/modestmaps/default.nix
index 180baaefce778..24c4ef2b0bcd2 100644
--- a/pkgs/development/python-modules/modestmaps/default.nix
+++ b/pkgs/development/python-modules/modestmaps/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pillow
-, isPy27
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pillow,
+  isPy27,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,8 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ pillow ];
 
   meta = with lib; {
-    description = "A library for building interactive maps";
+    description = "Library for building interactive maps";
     homepage = "http://modestmaps.com";
     license = licenses.bsd3;
   };
-
 }
diff --git a/pkgs/development/python-modules/mohawk/default.nix b/pkgs/development/python-modules/mohawk/default.nix
index 99caae9ec3f64..4fab29c45967a 100644
--- a/pkgs/development/python-modules/mohawk/default.nix
+++ b/pkgs/development/python-modules/mohawk/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi, mock, nose, pytest, six }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  nose,
+  pytest,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "mohawk";
@@ -12,14 +20,18 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six ];
 
-  nativeCheckInputs = [ mock nose pytest ];
+  nativeCheckInputs = [
+    mock
+    nose
+    pytest
+  ];
 
   checkPhase = ''
     pytest mohawk/tests.py
   '';
 
   meta = {
-    description = "Python library for Hawk HTTP authorization.";
+    description = "Python library for Hawk HTTP authorization";
     homepage = "https://github.com/kumar303/mohawk";
     license = lib.licenses.mpl20;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/molbar/default.nix b/pkgs/development/python-modules/molbar/default.nix
new file mode 100644
index 0000000000000..f69bfb6f17c25
--- /dev/null
+++ b/pkgs/development/python-modules/molbar/default.nix
@@ -0,0 +1,71 @@
+{ buildPythonPackage
+, python
+, lib
+, gfortran
+, fetchgit
+, cmake
+, ninja
+, networkx
+, numpy
+, pandas
+, scipy
+, tqdm
+, joblib
+, numba
+, ase
+, scikit-build
+, dscribe
+, pyyaml
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  name = "MolBar";
+  version = "1.1.1";
+
+  src = fetchgit {
+    url = "https://git.rwth-aachen.de/bannwarthlab/molbar";
+    rev = "release_v${version}";
+    hash = "sha256-AFp2x8gil6nbZbgTZmuv+QAMImUMryyCc1by9U/ukYE=";
+  };
+
+  pyproject = true;
+
+  nativeBuildInputs = [
+    gfortran
+  ];
+
+  pythonRelaxDeps = [ "networkx" ];
+
+  build-system = [
+    cmake
+    scikit-build
+    ninja
+  ];
+
+  dependencies = [
+    networkx
+    numpy
+    pandas
+    scipy
+    tqdm
+    joblib
+    numba
+    ase
+    dscribe
+    pyyaml
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  dontUseCmakeConfigure = true;
+
+  doCheck = false; # Doesn't find the fortran libs before installation
+
+  meta = with lib; {
+    description = "Unique molecular identifiers for molecular barcoding";
+    homepage = "https://git.rwth-aachen.de/bannwarthlab/molbar";
+    license = licenses.mit;
+    maintainers = [ maintainers.sheepforce ];
+  };
+}
diff --git a/pkgs/development/python-modules/molecule/default.nix b/pkgs/development/python-modules/molecule/default.nix
index 170d0bd2f7413..84cbbf48157b6 100644
--- a/pkgs/development/python-modules/molecule/default.nix
+++ b/pkgs/development/python-modules/molecule/default.nix
@@ -23,14 +23,14 @@
 
 buildPythonPackage rec {
   pname = "molecule";
-  version = "24.2.1";
+  version = "24.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-g1IrqpuRVg6phic8qxScORVpdunWEkVxciYyCTWtVuQ=";
+    hash = "sha256-jey0xoT8r7hae08DjaEl7UJb3RDbdr8M20E/m4TkG1g=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/molecule/plugins.nix b/pkgs/development/python-modules/molecule/plugins.nix
index dec568c4a9368..b87c3b121b546 100644
--- a/pkgs/development/python-modules/molecule/plugins.nix
+++ b/pkgs/development/python-modules/molecule/plugins.nix
@@ -1,10 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonRelaxDepsHook
-, setuptools-scm
-, python-vagrant
-, docker
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  python-vagrant,
+  docker,
 }:
 
 buildPythonPackage rec {
@@ -18,22 +18,15 @@ buildPythonPackage rec {
   };
 
   # reverse the dependency
-  pythonRemoveDeps = [
-    "molecule"
-  ];
+  pythonRemoveDeps = [ "molecule" ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools-scm
   ];
 
   passthru.optional-dependencies = {
-    docker = [
-      docker
-    ];
-    vagrant = [
-      python-vagrant
-    ];
+    docker = [ docker ];
+    vagrant = [ python-vagrant ];
   };
 
   pythonImportsCheck = [ "molecule_plugins" ];
diff --git a/pkgs/development/python-modules/momepy/default.nix b/pkgs/development/python-modules/momepy/default.nix
new file mode 100644
index 0000000000000..ebb110d12caa1
--- /dev/null
+++ b/pkgs/development/python-modules/momepy/default.nix
@@ -0,0 +1,57 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  geopandas,
+  inequality,
+  libpysal,
+  mapclassify,
+  networkx,
+  packaging,
+  pandas,
+  setuptools-scm,
+  shapely,
+  tqdm,
+}:
+
+buildPythonPackage rec {
+  pname = "momepy";
+  version = "0.7.0";
+  pyproject = true;
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "pysal";
+    repo = "momepy";
+    rev = "v${version}";
+    hash = "sha256-HVp2a0z+5fbfkNSxnTfZPCgG2SJMlKX/zso14M18mCk=";
+  };
+
+  build-system = [ setuptools-scm ];
+
+  propagatedBuildInputs = [
+    geopandas
+    inequality
+    libpysal
+    mapclassify
+    networkx
+    packaging
+    pandas
+    shapely
+    tqdm
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "momepy" ];
+
+  meta = {
+    description = "Urban Morphology Measuring Toolkit";
+    homepage = "https://github.com/pysal/momepy";
+    license = lib.licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/monai-deploy/default.nix b/pkgs/development/python-modules/monai-deploy/default.nix
index 6e88c4b3a8df7..d5a1c315d4951 100644
--- a/pkgs/development/python-modules/monai-deploy/default.nix
+++ b/pkgs/development/python-modules/monai-deploy/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, colorama
-, fetchFromGitHub
-, networkx
-, numpy
-, pytest-lazy-fixture
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, typeguard
-, versioneer
+{
+  lib,
+  buildPythonPackage,
+  colorama,
+  fetchFromGitHub,
+  networkx,
+  numpy,
+  pytest-lazy-fixture,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  typeguard,
+  versioneer,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/monai/default.nix b/pkgs/development/python-modules/monai/default.nix
index 7c6ecf9b3ed66..bffc3ec456edb 100644
--- a/pkgs/development/python-modules/monai/default.nix
+++ b/pkgs/development/python-modules/monai/default.nix
@@ -1,44 +1,49 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, ninja
-, ignite
-, numpy
-, pybind11
-, torch
-, which
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pythonAtLeast,
+  ninja,
+  ignite,
+  numpy,
+  pybind11,
+  torch,
+  which,
 }:
 
 buildPythonPackage rec {
   pname = "monai";
-  version = "1.3.0";
-  format = "setuptools";
-  disabled = pythonOlder "3.8";
+  version = "1.3.1";
+  pyproject = true;
+  # upper bound due to use of `distutils`; remove after next release:
+  disabled = pythonOlder "3.8" || pythonAtLeast "3.12";
 
   src = fetchFromGitHub {
     owner = "Project-MONAI";
     repo = "MONAI";
     rev = "refs/tags/${version}";
-    hash = "sha256-h//igmSV1cPAFifE1woIluSyGwZBRByYMLqeY3oLHnk=";
+    hash = "sha256-YjEJbDM9+PiC3Kse8NA/b/yJBsReaK6yIyEB9uktiEc=";
   };
 
-  # Ninja is not detected by setuptools for some reason even though it's present:
-  postPatch = ''
-    substituteInPlace "setup.cfg" --replace "    ninja" ""
-  '';
-
   preBuild = ''
     export MAX_JOBS=$NIX_BUILD_CORES;
   '';
 
-  nativeBuildInputs = [ ninja which ];
+  nativeBuildInputs = [
+    ninja
+    which
+  ];
   buildInputs = [ pybind11 ];
-  propagatedBuildInputs = [ numpy torch ignite ];
+  propagatedBuildInputs = [
+    numpy
+    torch
+    ignite
+  ];
 
   BUILD_MONAI = 1;
 
-  doCheck = false;  # takes too long; tries to download data
+  doCheck = false; # takes too long; tries to download data
 
   pythonImportsCheck = [
     "monai"
diff --git a/pkgs/development/python-modules/monero/default.nix b/pkgs/development/python-modules/monero/default.nix
index 71554607326cb..a0ef05cb3b052 100644
--- a/pkgs/development/python-modules/monero/default.nix
+++ b/pkgs/development/python-modules/monero/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pycryptodomex
-, pysocks
-, pynacl
-, requests
-, six
-, varint
-, pytestCheckHook
-, pytest-cov
-, responses
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pycryptodomex,
+  pysocks,
+  pynacl,
+  requests,
+  six,
+  varint,
+  pytestCheckHook,
+  pytest-cov,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -41,7 +42,11 @@ buildPythonPackage rec {
     varint
   ];
 
-  nativeCheckInputs = [ pytestCheckHook pytest-cov responses ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-cov
+    responses
+  ];
 
   meta = with lib; {
     description = "Comprehensive Python module for handling Monero";
diff --git a/pkgs/development/python-modules/mongodict/default.nix b/pkgs/development/python-modules/mongodict/default.nix
index 26d3f0516c650..cb18f270726e8 100644
--- a/pkgs/development/python-modules/mongodict/default.nix
+++ b/pkgs/development/python-modules/mongodict/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pymongo
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pymongo,
 }:
 
 buildPythonPackage rec {
@@ -21,5 +22,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/turicas/mongodict/";
     license = licenses.gpl3;
   };
-
 }
diff --git a/pkgs/development/python-modules/mongoengine/default.nix b/pkgs/development/python-modules/mongoengine/default.nix
index 644f87521a2cb..e19289d09b506 100644
--- a/pkgs/development/python-modules/mongoengine/default.nix
+++ b/pkgs/development/python-modules/mongoengine/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pymongo
-, isPy27
-, six
-, blinker
-, nose
-, pillow
-, coverage
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pymongo,
+  isPy27,
+  six,
+  blinker,
+  nose,
+  pillow,
+  coverage,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/mongomock/default.nix b/pkgs/development/python-modules/mongomock/default.nix
index 5e66ad42197cc..8c74f998f820d 100644
--- a/pkgs/development/python-modules/mongomock/default.nix
+++ b/pkgs/development/python-modules/mongomock/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, packaging
-, pbr
-, pytestCheckHook
-, pythonOlder
-, sentinels
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  packaging,
+  pbr,
+  pytestCheckHook,
+  pythonOlder,
+  sentinels,
 }:
 
 buildPythonPackage rec {
@@ -20,22 +21,16 @@ buildPythonPackage rec {
     hash = "sha256-8GzWKvuK4+9jujE0mr0iCmV+8N1PAkOilYfFIT+TG30=";
   };
 
-  nativeBuildInputs = [
-    pbr
-  ];
+  nativeBuildInputs = [ pbr ];
 
   propagatedBuildInputs = [
     packaging
     sentinels
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mongomock"
-  ];
+  pythonImportsCheck = [ "mongomock" ];
 
   meta = with lib; {
     homepage = "https://github.com/mongomock/mongomock";
diff --git a/pkgs/development/python-modules/mongoquery/default.nix b/pkgs/development/python-modules/mongoquery/default.nix
index bb17a77d36981..551dd1bb4d561 100644
--- a/pkgs/development/python-modules/mongoquery/default.nix
+++ b/pkgs/development/python-modules/mongoquery/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
-, isPy27
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  isPy27,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     sha256 = "bd19fc465f0aa9feb3070f144fde41fc68cf28ea32dd3b7565f7df3ab6fc0ac2";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  pythonImportsCheck = [
-    "mongoquery"
-  ];
+  pythonImportsCheck = [ "mongoquery" ];
 
   meta = with lib; {
-    description = "A python implementation of mongodb queries";
+    description = "Python implementation of mongodb queries";
     homepage = "https://github.com/kapouille/mongoquery";
     license = with licenses; [ unlicense ];
     maintainers = with maintainers; [ misuzu ];
diff --git a/pkgs/development/python-modules/monitorcontrol/default.nix b/pkgs/development/python-modules/monitorcontrol/default.nix
index 920074b65f0b5..142c35f1e0d32 100644
--- a/pkgs/development/python-modules/monitorcontrol/default.nix
+++ b/pkgs/development/python-modules/monitorcontrol/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, pyudev
-, pytestCheckHook
-, voluptuous
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  pyudev,
+  pytestCheckHook,
+  voluptuous,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-fu0Lm7Tcw7TCCBDXTTY20JBAM7oeesyeHQFFILeZxX0=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    pyudev
-  ];
+  propagatedBuildInputs = [ pyudev ];
 
   nativeCheckInputs = [
     pytestCheckHook
     voluptuous
   ];
 
-  pythonImportsCheck = [
-    pname
-  ];
+  pythonImportsCheck = [ pname ];
 
   meta = with lib; {
     description = "Python monitor controls using DDC-CI";
diff --git a/pkgs/development/python-modules/monkeyhex/default.nix b/pkgs/development/python-modules/monkeyhex/default.nix
index 821a6765bb6f1..c07fe91a8c74b 100644
--- a/pkgs/development/python-modules/monkeyhex/default.nix
+++ b/pkgs/development/python-modules/monkeyhex/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, fetchPypi
-, future
-, lib
+{
+  buildPythonPackage,
+  fetchPypi,
+  future,
+  lib,
 }:
 
 buildPythonPackage rec {
@@ -23,7 +24,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "monkeyhex" ];
 
   meta = with lib; {
-    description = "A small library to assist users of the python shell who work in contexts where printed numbers are more usefully viewed in hexadecimal";
+    description = "Small library to assist users of the python shell who work in contexts where printed numbers are more usefully viewed in hexadecimal";
     homepage = "https://github.com/rhelmot/monkeyhex";
     license = licenses.mit;
     maintainers = [ maintainers.pamplemousse ];
diff --git a/pkgs/development/python-modules/monotonic/default.nix b/pkgs/development/python-modules/monotonic/default.nix
index f52e2b7ffbe90..8b138a383080d 100644
--- a/pkgs/development/python-modules/monotonic/default.nix
+++ b/pkgs/development/python-modules/monotonic/default.nix
@@ -1,6 +1,8 @@
-{ lib, stdenv
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +23,8 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "An implementation of time.monotonic() for Python 2 & < 3.3";
+    description = "Implementation of time.monotonic() for Python 2 & < 3.3";
     homepage = "https://github.com/atdt/monotonic";
     license = licenses.asl20;
   };
-
 }
diff --git a/pkgs/development/python-modules/monty/default.nix b/pkgs/development/python-modules/monty/default.nix
index a2af96582ca54..0c7a285228d4a 100644
--- a/pkgs/development/python-modules/monty/default.nix
+++ b/pkgs/development/python-modules/monty/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, msgpack
-, numpy
-, pandas
-, pydantic
-, pymongo
-, pytestCheckHook
-, pythonOlder
-, ruamel-yaml
-, setuptools
-, setuptools-scm
-, torch
-, tqdm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  msgpack,
+  numpy,
+  pandas,
+  pydantic,
+  pymongo,
+  pytestCheckHook,
+  pythonOlder,
+  ruamel-yaml,
+  setuptools,
+  setuptools-scm,
+  torch,
+  tqdm,
 }:
 
 buildPythonPackage rec {
   pname = "monty";
-  version = "2024.3.31";
+  version = "2024.5.24";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -26,7 +27,7 @@ buildPythonPackage rec {
     owner = "materialsvirtuallab";
     repo = "monty";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Gg9KTsS7Np11jYBA8MgblQM6OmzOM/MPLsVZ6fUKT6g=";
+    hash = "sha256-c2RG38lsYWtwdCzrRTH/l9o4k6UPUOFC+wwV9zjoDvk=";
   };
 
   postPatch = ''
@@ -54,9 +55,7 @@ buildPythonPackage rec {
     torch
   ];
 
-  pythonImportsCheck = [
-    "monty"
-  ];
+  pythonImportsCheck = [ "monty" ];
 
   disabledTests = [
     # Test file was removed and re-added after 2022.9.9
diff --git a/pkgs/development/python-modules/monzopy/default.nix b/pkgs/development/python-modules/monzopy/default.nix
new file mode 100644
index 0000000000000..78b46a115f53c
--- /dev/null
+++ b/pkgs/development/python-modules/monzopy/default.nix
@@ -0,0 +1,40 @@
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pythonOlder,
+}:
+
+buildPythonPackage rec {
+  pname = "monzopy";
+  version = "1.3.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "JakeMartin-ICL";
+    repo = "monzopy";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-AoBfcQ0rilUPMvLCjU2Y+P/wVnb+I40vmq+5lS5eSto=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [ aiohttp ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "monzopy" ];
+
+  meta = with lib; {
+    description = "Module to work with the Monzo API";
+    homepage = "https://github.com/JakeMartin-ICL/monzopy";
+    changelog = "https://github.com/JakeMartin-ICL/monzopy/releases/tag/v${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/moonraker-api/default.nix b/pkgs/development/python-modules/moonraker-api/default.nix
index 9a0437ea056f1..c06a8dc9b268a 100644
--- a/pkgs/development/python-modules/moonraker-api/default.nix
+++ b/pkgs/development/python-modules/moonraker-api/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,18 +28,14 @@ buildPythonPackage rec {
       --replace 'name="moonraker-api",' 'name="moonraker-api",version="${version}",'
   '';
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   nativeCheckInputs = [
     pytest-aiohttp
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "moonraker_api"
-  ];
+  pythonImportsCheck = [ "moonraker_api" ];
 
   meta = with lib; {
     description = "Python API for the Moonraker API";
diff --git a/pkgs/development/python-modules/mopeka-iot-ble/default.nix b/pkgs/development/python-modules/mopeka-iot-ble/default.nix
index 3a9ca598c43e2..7ac84ff2131d1 100644
--- a/pkgs/development/python-modules/mopeka-iot-ble/default.nix
+++ b/pkgs/development/python-modules/mopeka-iot-ble/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, bluetooth-data-tools
-, bluetooth-sensor-state-data
-, buildPythonPackage
-, fetchFromGitHub
-, home-assistant-bluetooth
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, sensor-state-data
+{
+  lib,
+  bluetooth-data-tools,
+  bluetooth-sensor-state-data,
+  buildPythonPackage,
+  fetchFromGitHub,
+  home-assistant-bluetooth,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  sensor-state-data,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
       --replace " --cov=mopeka_iot_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bluetooth-data-tools
@@ -40,13 +39,9 @@ buildPythonPackage rec {
     sensor-state-data
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mopeka_iot_ble"
-  ];
+  pythonImportsCheck = [ "mopeka_iot_ble" ];
 
   meta = with lib; {
     description = "Library for Mopeka IoT BLE devices";
diff --git a/pkgs/development/python-modules/more-itertools/default.nix b/pkgs/development/python-modules/more-itertools/default.nix
index 6ebdc9801030f..0130714fecf73 100644
--- a/pkgs/development/python-modules/more-itertools/default.nix
+++ b/pkgs/development/python-modules/more-itertools/default.nix
@@ -1,33 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, pytestCheckHook
-, six
-, stdenv
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  pytestCheckHook,
+  six,
+  stdenv,
 }:
 
 buildPythonPackage rec {
   pname = "more-itertools";
-  version = "10.2.0";
+  version = "10.3.0";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-j8y0gMQ9PpmgAIdjTAbdArDVD78IizgN5aQaAV7COeE=";
+    hash = "sha256-5dk+9BEiT7zvNmpujdxMV4G8Y1nUNBKmXdWWTkYRFGM=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # iterable = range(10 ** 10)  # Is efficiently reversible
   # OverflowError: Python int too large to convert to C long
diff --git a/pkgs/development/python-modules/more-properties/default.nix b/pkgs/development/python-modules/more-properties/default.nix
index 05c75b8f2107e..53e79468c66bc 100644
--- a/pkgs/development/python-modules/more-properties/default.nix
+++ b/pkgs/development/python-modules/more-properties/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -31,14 +32,12 @@ buildPythonPackage rec {
       --replace dataclasses ""
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "more_properties" ];
 
   meta = {
-    description = "A collection of property variants";
+    description = "Collection of property variants";
     homepage = "https://github.com/madman-bob/python-more-properties";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/morecantile/default.nix b/pkgs/development/python-modules/morecantile/default.nix
new file mode 100644
index 0000000000000..00a6a7c533b47
--- /dev/null
+++ b/pkgs/development/python-modules/morecantile/default.nix
@@ -0,0 +1,54 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  attrs,
+  click,
+  flit,
+  mercantile,
+  pydantic,
+  pyproj,
+  rasterio,
+}:
+
+buildPythonPackage rec {
+  pname = "morecantile";
+  version = "5.3.0";
+  pyproject = true;
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "developmentseed";
+    repo = "morecantile";
+    rev = version;
+    hash = "sha256-F7xYQrOngoRsZjmS6ZHRGN0/GD53AYcMQzyY1LZ1O7I=";
+  };
+
+  nativeBuildInputs = [ flit ];
+
+  propagatedBuildInputs = [
+    attrs
+    click
+    pydantic
+    pyproj
+  ];
+
+  nativeCheckInputs = [
+    mercantile
+    pytestCheckHook
+    rasterio
+  ];
+
+  pythonImportsCheck = [ "morecantile" ];
+
+  meta = {
+    description = "Construct and use map tile grids in different projection";
+    homepage = "https://developmentseed.org/morecantile/";
+    license = lib.licenses.mit;
+    maintainers = lib.teams.geospatial.members;
+    mainProgram = "morecantile";
+  };
+}
diff --git a/pkgs/development/python-modules/moreorless/default.nix b/pkgs/development/python-modules/moreorless/default.nix
index 39e467a59963e..98adafc7d2412 100644
--- a/pkgs/development/python-modules/moreorless/default.nix
+++ b/pkgs/development/python-modules/moreorless/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, parameterized
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  parameterized,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-N11iqsxMGgzwW2QYeOoHQaR/aDEuoUnnd/2Mc5culN0=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    click
-  ];
+  propagatedBuildInputs = [ click ];
 
   nativeCheckInputs = [
     parameterized
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "moreorless"
-  ];
+  pythonImportsCheck = [ "moreorless" ];
 
   pytestFlagsArray = [
     "moreorless/tests/click.py"
diff --git a/pkgs/development/python-modules/moretools/default.nix b/pkgs/development/python-modules/moretools/default.nix
index 7bbed27a8e99a..7787360d58355 100644
--- a/pkgs/development/python-modules/moretools/default.nix
+++ b/pkgs/development/python-modules/moretools/default.nix
@@ -1,6 +1,13 @@
-{ lib, buildPythonPackage, fetchPypi
-, six, path, zetup, pytest
-, decorator }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  path,
+  zetup,
+  pytest,
+  decorator,
+}:
 
 buildPythonPackage rec {
   pname = "moretools";
@@ -17,7 +24,11 @@ buildPythonPackage rec {
   '';
 
   nativeBuildInputs = [ zetup ];
-  nativeCheckInputs = [ six path pytest ];
+  nativeCheckInputs = [
+    six
+    path
+    pytest
+  ];
   propagatedBuildInputs = [ decorator ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/morfessor/default.nix b/pkgs/development/python-modules/morfessor/default.nix
index cf72937a70608..c8e71ac20ed04 100644
--- a/pkgs/development/python-modules/morfessor/default.nix
+++ b/pkgs/development/python-modules/morfessor/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "morfessor" ];
 
   meta = with lib; {
-    description = "A tool for unsupervised and semi-supervised morphological segmentation";
+    description = "Tool for unsupervised and semi-supervised morphological segmentation";
     homepage = "https://github.com/aalto-speech/morfessor";
     license = licenses.bsd2;
     maintainers = with maintainers; [ misuzu ];
diff --git a/pkgs/development/python-modules/morphys/default.nix b/pkgs/development/python-modules/morphys/default.nix
index 1f1c1f3e17efc..4ce36203a700f 100644
--- a/pkgs/development/python-modules/morphys/default.nix
+++ b/pkgs/development/python-modules/morphys/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
 }:
 buildPythonPackage rec {
   pname = "morphys";
diff --git a/pkgs/development/python-modules/mortgage/default.nix b/pkgs/development/python-modules/mortgage/default.nix
index ebe5b55b1dbad..6cc5ccc507f2f 100644
--- a/pkgs/development/python-modules/mortgage/default.nix
+++ b/pkgs/development/python-modules/mortgage/default.nix
@@ -1,31 +1,36 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "mortgage";
   version = "1.0.5";
-  format = "setuptools";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit version pname;
-    sha256 = "18fcb356c631e9cc27fa7019f6ff6021707e34b9ce3a3b7dc815661288709921";
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "jlumbroso";
+    repo = "mortgage";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-UwSEKfMQqxpcF+7TF/+qD6l8gEO/qDCUklpZz1Nt/Ok=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  build-system = [ setuptools ];
 
-  doCheck = false; # No tests in sdist
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabled = pythonOlder "3.5";
+  pythonImportsCheck = [ "mortgage" ];
 
-  meta = {
+  meta = with lib; {
     description = "Mortgage calculator";
-    license = lib.licenses.mit;
+    homepage = "https://github.com/jlumbroso/mortgage";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/motionblinds/default.nix b/pkgs/development/python-modules/motionblinds/default.nix
index 7d8aa5a784006..ddf43e7c065bc 100644
--- a/pkgs/development/python-modules/motionblinds/default.nix
+++ b/pkgs/development/python-modules/motionblinds/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pycryptodomex
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pycryptodomex,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-f5R58p6tMVqmXAjybae8qjeNI3vxtGJ7qxZOl9H5iKw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    pycryptodomex
-  ];
+  propagatedBuildInputs = [ pycryptodomex ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "motionblinds"
-  ];
+  pythonImportsCheck = [ "motionblinds" ];
 
   meta = with lib; {
     description = "Python library for interfacing with Motion Blinds";
diff --git a/pkgs/development/python-modules/motionblindsble/default.nix b/pkgs/development/python-modules/motionblindsble/default.nix
new file mode 100644
index 0000000000000..d1708e08bee43
--- /dev/null
+++ b/pkgs/development/python-modules/motionblindsble/default.nix
@@ -0,0 +1,55 @@
+{
+  lib,
+  bleak-retry-connector,
+  bleak,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pycryptodome,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "motionblindsble";
+  version = "0.1.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "LennP";
+    repo = "motionblindsble";
+    rev = "refs/tags/${version}";
+    hash = "sha256-jWd+7jRuJ8UIIZjx8+7BNCwIo+o4mxAFB2csytmnuso=";
+  };
+
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace-fail "{{VERSION_PLACEHOLDER}}" "${version}"
+  '';
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    bleak
+    bleak-retry-connector
+    pycryptodome
+  ];
+
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "motionblindsble" ];
+
+  meta = with lib; {
+    description = "Module to interface with Motionblinds motors using Bluetooth Low Energy (BLE)";
+    homepage = "https://github.com/LennP/motionblindsble";
+    changelog = "https://github.com/LennP/motionblindsble/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/motioneye-client/default.nix b/pkgs/development/python-modules/motioneye-client/default.nix
index 4f2afc6e41136..1d27f9e0dbbb5 100644
--- a/pkgs/development/python-modules/motioneye-client/default.nix
+++ b/pkgs/development/python-modules/motioneye-client/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-aiohttp
-, pytest-timeout
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-aiohttp,
+  pytest-timeout,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,13 +31,9 @@ buildPythonPackage rec {
       --replace " --cov-report=html:htmlcov --cov-report=xml:coverage.xml --cov-report=term-missing --cov=motioneye_client --cov-fail-under=100" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   nativeCheckInputs = [
     pytest-aiohttp
@@ -44,9 +41,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "motioneye_client"
-  ];
+  pythonImportsCheck = [ "motioneye_client" ];
 
   meta = with lib; {
     description = "Python library for motionEye";
diff --git a/pkgs/development/python-modules/motmetrics/default.nix b/pkgs/development/python-modules/motmetrics/default.nix
index 36fa2d9a7557e..891497a702a10 100644
--- a/pkgs/development/python-modules/motmetrics/default.nix
+++ b/pkgs/development/python-modules/motmetrics/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# build-system
-, setuptools
-
-# dependencies
-, numpy
-, pandas
-, scipy
-, xmltodict
-
-# tests
-, pytestCheckHook
-, pytest-benchmark
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  numpy,
+  pandas,
+  scipy,
+  xmltodict,
+
+  # tests
+  pytestCheckHook,
+  pytest-benchmark,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     hash = "sha256-7LKLHXWgW4QpivAgzvWl6qEG0auVvpiZ6bfDViCKsFY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     numpy
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     pytest-benchmark
   ];
 
-  pythonImportsCheck = [
-    "motmetrics"
-  ];
+  pythonImportsCheck = [ "motmetrics" ];
 
   meta = with lib; {
     description = "Bar_chart: Benchmark multiple object trackers (MOT) in Python";
diff --git a/pkgs/development/python-modules/moto/default.nix b/pkgs/development/python-modules/moto/default.nix
index a329d6aea971d..a013da79a922a 100644
--- a/pkgs/development/python-modules/moto/default.nix
+++ b/pkgs/development/python-modules/moto/default.nix
@@ -1,63 +1,62 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-
-# build-system
-, setuptools
-
-# dependencies
-, boto3
-, botocore
-, cryptography
-, jinja2
-, python-dateutil
-, requests
-, responses
-, werkzeug
-, xmltodict
-
-# optional-dependencies
-, antlr4-python3-runtime
-, aws-xray-sdk
-, cfn-lint
-, flask
-, flask-cors
-, docker
-, graphql-core
-, joserfc
-, jsonpath-ng
-, jsondiff
-, multipart
-, openapi-spec-validator
-, py-partiql-parser
-, pyparsing
-, pyyaml
-
-# tests
-, freezegun
-, pytestCheckHook
-, pytest-order
-, pytest-xdist
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  boto3,
+  botocore,
+  cryptography,
+  jinja2,
+  python-dateutil,
+  requests,
+  responses,
+  werkzeug,
+  xmltodict,
+
+  # optional-dependencies
+  antlr4-python3-runtime,
+  aws-xray-sdk,
+  cfn-lint,
+  flask,
+  flask-cors,
+  docker,
+  graphql-core,
+  joserfc,
+  jsonpath-ng,
+  jsondiff,
+  multipart,
+  openapi-spec-validator,
+  py-partiql-parser,
+  pyparsing,
+  pyyaml,
+
+  # tests
+  freezegun,
+  pytestCheckHook,
+  pytest-order,
+  pytest-xdist,
 }:
 
 buildPythonPackage rec {
   pname = "moto";
-  version = "5.0.5";
+  version = "5.0.9";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Lqyi33dY9oaN9CC/ByXNC5PZhwlgbx+4sjQ7W9yCLZE=";
+    hash = "sha256-63Hxy6AccP/x8WCGrLJNbZrrMoMNZG2JifmKKa6uJLo=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     boto3
     botocore
     cryptography
@@ -69,7 +68,7 @@ buildPythonPackage rec {
     jinja2
   ];
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     # non-exhaustive list of extras, that was cobbled together for testing
     all = [
       antlr4-python3-runtime
@@ -89,9 +88,7 @@ buildPythonPackage rec {
       pyyaml
       setuptools
     ];
-    cognitoidp = [
-      joserfc
-    ];
+    cognitoidp = [ joserfc ];
   };
 
   __darwinAllowLocalNetworking = true;
@@ -101,17 +98,19 @@ buildPythonPackage rec {
     pytestCheckHook
     pytest-order
     pytest-xdist
-  ] ++ passthru.optional-dependencies.all;
+  ] ++ optional-dependencies.all;
 
   # Some tests depend on AWS credentials environment variables to be set.
   env.AWS_ACCESS_KEY_ID = "ak";
   env.AWS_SECRET_ACCESS_KEY = "sk";
 
   pytestFlagsArray = [
-    "-m" "'not network and not requires_docker'"
+    "-m"
+    "'not network and not requires_docker'"
 
     # Matches upstream configuration, presumably due to expensive setup/teardown.
-    "--dist" "loadscope"
+    "--dist"
+    "loadscope"
 
     # Fails at local name resolution
     "--deselect=tests/test_s3/test_multiple_accounts_server.py::TestAccountIdResolution::test_with_custom_request_header"
@@ -157,6 +156,9 @@ buildPythonPackage rec {
     # Threading tests regularly blocks test execution
     "tests/test_utilities/test_threaded_server.py"
     "tests/test_s3/test_s3_bucket_policy.py"
+
+    # https://github.com/getmoto/moto/issues/7786
+    "tests/test_dynamodb/test_dynamodb_import_table.py"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/motor/default.nix b/pkgs/development/python-modules/motor/default.nix
index d551aa19483b2..fa9fc4da9e637 100644
--- a/pkgs/development/python-modules/motor/default.nix
+++ b/pkgs/development/python-modules/motor/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mockupdb
-, pymongo
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mockupdb,
+  pymongo,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-Rj8eYZxmw/cn/vkhLunmHgxMMHIQe80Zhc2p0q3b/AY=";
   };
 
-  propagatedBuildInputs = [
-    pymongo
-  ];
+  propagatedBuildInputs = [ pymongo ];
 
-  nativeCheckInputs = [
-    mockupdb
-  ];
+  nativeCheckInputs = [ mockupdb ];
 
   # network connections
   doCheck = false;
 
-  pythonImportsCheck = [
-    "motor"
-  ];
+  pythonImportsCheck = [ "motor" ];
 
   meta = with lib; {
     description = "Non-blocking MongoDB driver for Tornado or asyncio";
diff --git a/pkgs/development/python-modules/mouseinfo/default.nix b/pkgs/development/python-modules/mouseinfo/default.nix
index 9d4fe2af480f4..d33527b1ec543 100644
--- a/pkgs/development/python-modules/mouseinfo/default.nix
+++ b/pkgs/development/python-modules/mouseinfo/default.nix
@@ -1,10 +1,11 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, pyperclip
-, fetchFromGitHub
-, xlib
-, pillow
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  pyperclip,
+  fetchFromGitHub,
+  xlib,
+  pillow,
 }:
 buildPythonPackage rec {
   pname = "mouseinfo";
@@ -34,7 +35,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "An application to display XY position and RGB color information for the pixel currently under the mouse. Works on Python 2 and 3.";
+    description = "Application to display XY position and RGB color information for the pixel currently under the mouse. Works on Python 2 and 3";
     homepage = "https://github.com/asweigart/mouseinfo";
     license = licenses.gpl3;
     maintainers = with maintainers; [ lucasew ];
diff --git a/pkgs/development/python-modules/moviepy/default.nix b/pkgs/development/python-modules/moviepy/default.nix
index 65f35e85a0f1c..7f1196b461a96 100644
--- a/pkgs/development/python-modules/moviepy/default.nix
+++ b/pkgs/development/python-modules/moviepy/default.nix
@@ -1,62 +1,98 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, numpy
-, decorator
-, imageio
-, imageio-ffmpeg
-, proglog
-, requests
-, tqdm
-  # Advanced image processing (triples size of output)
-, advancedProcessing ? false
-, scikit-image
-, scikit-learn
-, scipy
-, matplotlib
-, youtube-dl
+{
+  lib,
+  buildPythonPackage,
+  decorator,
+  fetchFromGitHub,
+  imageio,
+  imageio-ffmpeg,
+  matplotlib,
+  numpy,
+  proglog,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  scikit-image,
+  scikit-learn,
+  scipy,
+  setuptools,
+  tqdm,
+  youtube-dl,
 }:
 
 buildPythonPackage rec {
   pname = "moviepy";
   version = "1.0.3";
-  format = "setuptools";
+  pyproject = true;
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "2884e35d1788077db3ff89e763c5ba7bfddbd7ae9108c9bc809e7ba58fa433f5";
+  src = fetchFromGitHub {
+    owner = "Zulko";
+    repo = "moviepy";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-l7AwzAKSaEV+pPbltKgwllK6X54oruU2w0AvoCsrESE=";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "decorator>=4.0.2,<5.0" "decorator>=4.0.2,<6.0"
+      --replace-fail "decorator>=4.0.2,<5.0" "decorator>=4.0.2,<6.0"
   '';
 
-  # No tests, require network connection
-  doCheck = false;
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    numpy
+  dependencies = [
     decorator
     imageio
     imageio-ffmpeg
-    tqdm
-    requests
+    numpy
     proglog
-  ] ++ lib.optionals advancedProcessing [
-    scikit-image
-    scikit-learn
-    scipy
-    matplotlib
-    youtube-dl
+    requests
+    tqdm
+  ];
+
+  passthru.optional-dependencies = {
+    optionals = [
+      matplotlib
+      scikit-image
+      scikit-learn
+      scipy
+      youtube-dl
+    ];
+  };
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+
+  pythonImportsCheck = [ "moviepy" ];
+
+  disabledTests = [
+    "test_cuts1"
+    "test_issue"
+    "test_PR"
+    "test_setup"
+    "test_subtitles"
+    "test_sys_write_flush"
+    # media duration mismatch: assert 2.9 == 3.0
+    "test_ffmpeg_parse_infos"
+  ];
+
+  disabledTestPaths = [
+    "tests/test_compositing.py"
+    "tests/test_fx.py"
+    "tests/test_ImageSequenceClip.py"
+    "tests/test_resourcerelease.py"
+    "tests/test_resourcereleasedemo.py"
+    "tests/test_TextClip.py"
+    "tests/test_VideoClip.py"
+    "tests/test_Videos.py"
+    "tests/test_videotools.py"
   ];
 
   meta = with lib; {
     description = "Video editing with Python";
     homepage = "https://zulko.github.io/moviepy/";
+    changelog = "https://github.com/Zulko/moviepy/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/mox3/default.nix b/pkgs/development/python-modules/mox3/default.nix
index 48b4d3f4fc2e0..1228529a0a6d4 100644
--- a/pkgs/development/python-modules/mox3/default.nix
+++ b/pkgs/development/python-modules/mox3/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pythonAtLeast
-, subunit
-, testrepository
-, testtools
-, six
-, pbr
-, fixtures
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pythonAtLeast,
+  subunit,
+  testrepository,
+  testtools,
+  six,
+  pbr,
+  fixtures,
 }:
 
 buildPythonPackage rec {
@@ -22,8 +23,16 @@ buildPythonPackage rec {
     sha256 = "8a526b7b9b6341f541a9aef3e08c93fd84a5373fe89d4cc51dd571f085b2363c";
   };
 
-  buildInputs = [ subunit testrepository testtools six ];
-  propagatedBuildInputs = [ pbr fixtures ];
+  buildInputs = [
+    subunit
+    testrepository
+    testtools
+    six
+  ];
+  propagatedBuildInputs = [
+    pbr
+    fixtures
+  ];
 
   # Disabling as several tests dependencies are missing:
   # https://opendev.org/openstack/mox3/src/branch/master/test-requirements.txt
@@ -34,5 +43,4 @@ buildPythonPackage rec {
     homepage = "https://docs.openstack.org/mox3/latest/";
     license = licenses.asl20;
   };
-
 }
diff --git a/pkgs/development/python-modules/mpd2/default.nix b/pkgs/development/python-modules/mpd2/default.nix
index ce87b43c5fb02..3f8b44f5dcf74 100644
--- a/pkgs/development/python-modules/mpd2/default.nix
+++ b/pkgs/development/python-modules/mpd2/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, twisted
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  twisted,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,26 +20,22 @@ buildPythonPackage rec {
     hash = "sha256-S67DWEzEPtmUjVVZB5+vwmebBrKt4nPpCbNYJlSys/U=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   passthru.optional-dependencies = {
-    twisted = [
-      twisted
-    ];
+    twisted = [ twisted ];
   };
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ] ++ passthru.optional-dependencies.twisted;
+  nativeCheckInputs = [ unittestCheckHook ] ++ passthru.optional-dependencies.twisted;
 
   meta = with lib; {
     changelog = "https://github.com/Mic92/python-mpd2/blob/v${version}/doc/changes.rst";
-    description = "A Python client module for the Music Player Daemon";
+    description = "Python client module for the Music Player Daemon";
     homepage = "https://github.com/Mic92/python-mpd2";
     license = licenses.lgpl3Plus;
-    maintainers = with maintainers; [ mic92 hexa ];
+    maintainers = with maintainers; [
+      mic92
+      hexa
+    ];
   };
-
 }
diff --git a/pkgs/development/python-modules/mpegdash/default.nix b/pkgs/development/python-modules/mpegdash/default.nix
new file mode 100644
index 0000000000000..3480c4dcafd83
--- /dev/null
+++ b/pkgs/development/python-modules/mpegdash/default.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  setuptools,
+}:
+buildPythonPackage rec {
+  pname = "mpegdash";
+  version = "0.4.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "sangwonl";
+    repo = "python-mpegdash";
+    rev = version;
+    hash = "sha256-eKtJ+QzeoMog5X1r1ix9vrmGTi/9KzdJiu80vrTX14I=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  disabledTests = [
+    # requires network access
+    "test_xml2mpd_from_url"
+  ];
+
+  pythonImportsCheck = [ "mpegdash" ];
+
+  meta = {
+    description = "MPEG-DASH MPD(Media Presentation Description) Parser";
+    homepage = "https://github.com/sangwonl/python-mpegdash";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ drawbu ];
+  };
+}
diff --git a/pkgs/development/python-modules/mpi4py/default.nix b/pkgs/development/python-modules/mpi4py/default.nix
index 9119db8a204bd..43c4040fba72d 100644
--- a/pkgs/development/python-modules/mpi4py/default.nix
+++ b/pkgs/development/python-modules/mpi4py/default.nix
@@ -1,5 +1,11 @@
-{ lib, fetchPypi, fetchpatch, python, buildPythonPackage
-, mpi, mpiCheckPhaseHook, openssh
+{
+  lib,
+  fetchPypi,
+  python,
+  buildPythonPackage,
+  mpi,
+  mpiCheckPhaseHook,
+  openssh,
 }:
 
 buildPythonPackage rec {
@@ -42,7 +48,10 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  nativeCheckInputs = [ openssh mpiCheckPhaseHook ];
+  nativeCheckInputs = [
+    openssh
+    mpiCheckPhaseHook
+  ];
 
   meta = with lib; {
     description = "Python bindings for the Message Passing Interface standard";
diff --git a/pkgs/development/python-modules/mpl-scatter-density/default.nix b/pkgs/development/python-modules/mpl-scatter-density/default.nix
index 152c07f10a7eb..832140a313971 100644
--- a/pkgs/development/python-modules/mpl-scatter-density/default.nix
+++ b/pkgs/development/python-modules/mpl-scatter-density/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, pytestCheckHook
-, fetchFromGitHub
-, fetchpatch
-, pythonOlder
-, setuptools-scm
-, setuptools
-, fast-histogram
-, matplotlib
-, numpy
-, wheel
-, pytest-mpl
+{
+  lib,
+  buildPythonPackage,
+  pytestCheckHook,
+  fetchFromGitHub,
+  fetchpatch,
+  pythonOlder,
+  setuptools-scm,
+  setuptools,
+  fast-histogram,
+  matplotlib,
+  numpy,
+  wheel,
+  pytest-mpl,
 }:
 
 buildPythonPackage rec {
@@ -42,7 +43,11 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [ matplotlib numpy fast-histogram ];
+  propagatedBuildInputs = [
+    matplotlib
+    numpy
+    fast-histogram
+  ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/mpldatacursor/default.nix b/pkgs/development/python-modules/mpldatacursor/default.nix
index 649d5ee814d2b..4b33f34b93ede 100644
--- a/pkgs/development/python-modules/mpldatacursor/default.nix
+++ b/pkgs/development/python-modules/mpldatacursor/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, matplotlib
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  matplotlib,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/mplfinance/default.nix b/pkgs/development/python-modules/mplfinance/default.nix
index 600c4ec0d05ae..a49b2a8afcc4d 100644
--- a/pkgs/development/python-modules/mplfinance/default.nix
+++ b/pkgs/development/python-modules/mplfinance/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, matplotlib, pandas }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  matplotlib,
+  pandas,
+}:
 
 buildPythonPackage rec {
   pname = "mplfinance";
@@ -10,7 +16,10 @@ buildPythonPackage rec {
     hash = "sha256-pATiprTELt8GrEkeKjILPfpdNDVoex5t+Mc+6Gg7cPY=";
   };
 
-  propagatedBuildInputs = [ matplotlib pandas ];
+  propagatedBuildInputs = [
+    matplotlib
+    pandas
+  ];
 
   # tests are only included on GitHub where this version misses a tag
   # and half of them fail
diff --git a/pkgs/development/python-modules/mplhep-data/default.nix b/pkgs/development/python-modules/mplhep-data/default.nix
index 12ec813f12b97..0c6baa8b3e3e1 100644
--- a/pkgs/development/python-modules/mplhep-data/default.nix
+++ b/pkgs/development/python-modules/mplhep-data/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -21,14 +22,16 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  pythonImportsCheck = [
-    "mplhep_data"
-  ];
+  pythonImportsCheck = [ "mplhep_data" ];
 
   meta = with lib; {
     description = "Sub-package to hold data (fonts) for mplhep";
     homepage = "https://github.com/scikit-hep/mplhep_data";
-    license = with licenses; [ mit gfl ofl ];
+    license = with licenses; [
+      mit
+      gfl
+      ofl
+    ];
     maintainers = with maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/python-modules/mplhep/default.nix b/pkgs/development/python-modules/mplhep/default.nix
index cbf4e46b499ee..1daa1bc2170fa 100644
--- a/pkgs/development/python-modules/mplhep/default.nix
+++ b/pkgs/development/python-modules/mplhep/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hist
-, matplotlib
-, mplhep-data
-, pytestCheckHook
-, pytest-mock
-, pytest-mpl
-, scipy
-, setuptools
-, setuptools-scm
-, uhi
-, uproot
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hist,
+  matplotlib,
+  mplhep-data,
+  pytestCheckHook,
+  pytest-mock,
+  pytest-mpl,
+  scipy,
+  setuptools,
+  setuptools-scm,
+  uhi,
+  uproot,
 }:
 
 buildPythonPackage rec {
   pname = "mplhep";
-  version = "0.3.47";
+  version = "0.3.49";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-GDLI/Y6tWiI5JcmQJ7BnwvKPGwdAwJDN4yGOgINcdB8=";
+    hash = "sha256-Hxqk0eSEOWSpomrS/vTdJV9/1mKQ/yCJQOBpm9tAvqo=";
   };
 
   nativeBuildInputs = [
@@ -50,9 +51,7 @@ buildPythonPackage rec {
     "test_uproot_versions"
   ];
 
-  pythonImportsCheck = [
-    "mplhep"
-  ];
+  pythonImportsCheck = [ "mplhep" ];
 
   meta = with lib; {
     description = "Extended histogram plots on top of matplotlib and HEP compatible styling similar to current collaboration requirements (ROOT)";
diff --git a/pkgs/development/python-modules/mplleaflet/default.nix b/pkgs/development/python-modules/mplleaflet/default.nix
index d5d779cbd514b..76a37ffefe2c3 100644
--- a/pkgs/development/python-modules/mplleaflet/default.nix
+++ b/pkgs/development/python-modules/mplleaflet/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jinja2
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jinja2,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -10,7 +11,10 @@ buildPythonPackage rec {
   version = "0.0.5";
   format = "setuptools";
 
-  propagatedBuildInputs = [ jinja2 six ];
+  propagatedBuildInputs = [
+    jinja2
+    six
+  ];
 
   # No tests in archive
   doCheck = false;
diff --git a/pkgs/development/python-modules/mpmath/default.nix b/pkgs/development/python-modules/mpmath/default.nix
index 1a8e4c0309792..6f0f289e853b9 100644
--- a/pkgs/development/python-modules/mpmath/default.nix
+++ b/pkgs/development/python-modules/mpmath/default.nix
@@ -1,10 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, gmpy2
-, isPyPy
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gmpy2,
+  isPyPy,
+  setuptools,
+  pytestCheckHook,
+
+  # Reverse dependency
+  sage,
 }:
 
 buildPythonPackage rec {
@@ -19,25 +23,23 @@ buildPythonPackage rec {
     hash = "sha256-9BGcaC3TyolGeO65/H42T/WQY6z5vc1h+MA+8MGFChU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   passthru.optional-dependencies = {
-    gmpy = lib.optionals (!isPyPy) [
-      gmpy2
-    ];
+    gmpy = lib.optionals (!isPyPy) [ gmpy2 ];
+  };
+
+  passthru.tests = {
+    inherit sage;
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    homepage    = "https://mpmath.org/";
-    description = "A pure-Python library for multiprecision floating arithmetic";
-    license     = licenses.bsd3;
+    homepage = "https://mpmath.org/";
+    description = "Pure-Python library for multiprecision floating arithmetic";
+    license = licenses.bsd3;
     maintainers = with maintainers; [ lovek323 ];
-    platforms   = platforms.unix;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/mpris-server/default.nix b/pkgs/development/python-modules/mpris-server/default.nix
index cd790275e0856..06383416d96ca 100644
--- a/pkgs/development/python-modules/mpris-server/default.nix
+++ b/pkgs/development/python-modules/mpris-server/default.nix
@@ -1,12 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonRelaxDepsHook
-, fetchPypi
-, emoji
-, pydbus
-, pygobject3
-, unidecode
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  emoji,
+  pydbus,
+  pygobject3,
+  unidecode,
+  setuptools,
 }:
 buildPythonPackage rec {
   pname = "mpris-server";
@@ -20,7 +20,6 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -31,9 +30,7 @@ buildPythonPackage rec {
     unidecode
   ];
 
-  pythonRelaxDeps = [
-    "emoji"
-  ];
+  pythonRelaxDeps = [ "emoji" ];
 
   pythonImportsCheck = [ "mpris_server" ];
 
diff --git a/pkgs/development/python-modules/mpv/default.nix b/pkgs/development/python-modules/mpv/default.nix
index 3763e25660a53..9f92995dd8bb2 100644
--- a/pkgs/development/python-modules/mpv/default.nix
+++ b/pkgs/development/python-modules/mpv/default.nix
@@ -1,26 +1,25 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, mpv
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mpv,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "mpv";
-  version = "1.0.4";
+  version = "1.0.6";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "jaseg";
     repo = "python-mpv";
     rev = "v${version}";
-    hash = "sha256-qP5Biw4sTLioAhmMZX+Pemue2PWc3N7afAe38dwJv3U=";
+    hash = "sha256-1axVJ8XXs0ZPgsVux3+6YUm1KttLceZyyHOuUEHIFl4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   buildInputs = [ mpv ];
 
@@ -35,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mpv" ];
 
   meta = with lib; {
-    description = "A python interface to the mpv media player";
+    description = "Python interface to the mpv media player";
     homepage = "https://github.com/jaseg/python-mpv";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ onny ];
diff --git a/pkgs/development/python-modules/mpyq/default.nix b/pkgs/development/python-modules/mpyq/default.nix
index f23feb21f054e..bbd0befe1415e 100644
--- a/pkgs/development/python-modules/mpyq/default.nix
+++ b/pkgs/development/python-modules/mpyq/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -14,7 +15,7 @@ buildPythonPackage rec {
   };
 
   meta = {
-    description = "A Python library for extracting MPQ (MoPaQ) files.";
+    description = "Python library for extracting MPQ (MoPaQ) files";
     mainProgram = "mpyq";
     homepage = "https://github.com/eagleflo/mpyq";
     license = lib.licenses.bsd2;
diff --git a/pkgs/development/python-modules/mqtt2influxdb/default.nix b/pkgs/development/python-modules/mqtt2influxdb/default.nix
index 351e1ab69085c..6f6bc9049e8bb 100644
--- a/pkgs/development/python-modules/mqtt2influxdb/default.nix
+++ b/pkgs/development/python-modules/mqtt2influxdb/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, influxdb
-, jsonpath-ng
-, paho-mqtt
-, py-expression-eval
-, pyaml
-, pycron
-, schema
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  influxdb,
+  jsonpath-ng,
+  paho-mqtt,
+  py-expression-eval,
+  pyaml,
+  pycron,
+  schema,
 }:
 buildPythonPackage rec {
   pname = "mqtt2influxdb";
diff --git a/pkgs/development/python-modules/mrjob/default.nix b/pkgs/development/python-modules/mrjob/default.nix
index 0a28d82f74ad4..deb6e0c6ca627 100644
--- a/pkgs/development/python-modules/mrjob/default.nix
+++ b/pkgs/development/python-modules/mrjob/default.nix
@@ -1,26 +1,26 @@
-{ lib
-, buildPythonPackage
-, pythonAtLeast
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  pythonAtLeast,
+  fetchFromGitHub,
 
-# propagates
-, pyyaml
+  # propagates
+  pyyaml,
 
-# optionals
-, boto3
-, botocore
-, google-cloud-dataproc
-, google-cloud-logging
-, google-cloud-storage
-, python-rapidjson
-, simplejson
-, ujson
+  # optionals
+  boto3,
+  botocore,
+  google-cloud-dataproc,
+  google-cloud-logging,
+  google-cloud-storage,
+  python-rapidjson,
+  simplejson,
+  ujson,
 
-
-# tests
-, pyspark
-, unittestCheckHook
-, warcio
+  # tests
+  pyspark,
+  unittestCheckHook,
+  warcio,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +37,7 @@ buildPythonPackage rec {
     hash = "sha256-Yp4yUx6tkyGB622I9y+AWK2AkIDVGKQPMM+LtB/M3uo=";
   };
 
-  propagatedBuildInputs = [
-    pyyaml
-  ];
+  propagatedBuildInputs = [ pyyaml ];
 
   passthru.optional-dependencies = {
     aws = [
@@ -51,15 +49,9 @@ buildPythonPackage rec {
       google-cloud-logging
       google-cloud-storage
     ];
-    rapidjson = [
-      python-rapidjson
-    ];
-    simplejson = [
-      simplejson
-    ];
-    ujson = [
-      ujson
-    ];
+    rapidjson = [ python-rapidjson ];
+    simplejson = [ simplejson ];
+    ujson = [ ujson ];
   };
 
   doCheck = false; # failing tests
@@ -70,9 +62,7 @@ buildPythonPackage rec {
     warcio
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  unittestFlagsArray = [
-    "-v"
-  ];
+  unittestFlagsArray = [ "-v" ];
 
   meta = with lib; {
     changelog = "https://github.com/Yelp/mrjob/blob/v${version}/CHANGES.txt";
diff --git a/pkgs/development/python-modules/mrsqm/default.nix b/pkgs/development/python-modules/mrsqm/default.nix
index 89d64611836e2..49afd2593d828 100644
--- a/pkgs/development/python-modules/mrsqm/default.nix
+++ b/pkgs/development/python-modules/mrsqm/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, cython
-, fftw
-, pandas
-, scikit-learn
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  cython,
+  fftw,
+  pandas,
+  scikit-learn,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
 
   buildInputs = [ fftw ];
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
   propagatedBuildInputs = [
     pandas
diff --git a/pkgs/development/python-modules/ms-active-directory/default.nix b/pkgs/development/python-modules/ms-active-directory/default.nix
index ff908beaa7f22..9f0b1315a8263 100644
--- a/pkgs/development/python-modules/ms-active-directory/default.nix
+++ b/pkgs/development/python-modules/ms-active-directory/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, dnspython
-, fetchFromGitHub
-, ldap3
-, pyasn1
-, pycryptodome
-, pythonOlder
-, pytz
-, six
+{
+  lib,
+  buildPythonPackage,
+  dnspython,
+  fetchFromGitHub,
+  ldap3,
+  pyasn1,
+  pycryptodome,
+  pythonOlder,
+  pytz,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ms_active_directory"
-  ];
+  pythonImportsCheck = [ "ms_active_directory" ];
 
   meta = with lib; {
     description = "Python module for integrating with Microsoft Active Directory domains";
diff --git a/pkgs/development/python-modules/ms-cv/default.nix b/pkgs/development/python-modules/ms-cv/default.nix
index dbcbc6b0be5be..d651ce1a37715 100644
--- a/pkgs/development/python-modules/ms-cv/default.nix
+++ b/pkgs/development/python-modules/ms-cv/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, isPy27
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  isPy27,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
       --replace "pytest-runner" ""
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Correlation vector implementation in python";
diff --git a/pkgs/development/python-modules/msal-extensions/default.nix b/pkgs/development/python-modules/msal-extensions/default.nix
index 0c7fad002e89f..7d2cfd7a70237 100644
--- a/pkgs/development/python-modules/msal-extensions/default.nix
+++ b/pkgs/development/python-modules/msal-extensions/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, msal
-, portalocker
-, setuptools
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  msal,
+  portalocker,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-ScInTvOgFxP5mgep5FRu6YZHPTtXhrcZGFE7Wdvcm4c=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     msal
@@ -33,12 +32,10 @@ buildPythonPackage rec {
   # No tests found
   doCheck = false;
 
-  pythonImportsCheck = [
-    "msal_extensions"
-  ];
+  pythonImportsCheck = [ "msal_extensions" ];
 
   meta = with lib; {
-    description = "The Microsoft Authentication Library Extensions (MSAL-Extensions) for Python";
+    description = "Microsoft Authentication Library Extensions (MSAL-Extensions) for Python";
     homepage = "https://github.com/AzureAD/microsoft-authentication-extensions-for-python";
     changelog = "https://github.com/AzureAD/microsoft-authentication-extensions-for-python/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/msal/default.nix b/pkgs/development/python-modules/msal/default.nix
index a736cffb9b309..07b88859e2edd 100644
--- a/pkgs/development/python-modules/msal/default.nix
+++ b/pkgs/development/python-modules/msal/default.nix
@@ -1,43 +1,39 @@
-{ lib
-, cryptography
-, buildPythonPackage
-, fetchPypi
-, pyjwt
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  cryptography,
+  buildPythonPackage,
+  fetchPypi,
+  pyjwt,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "msal";
-  version = "1.28.0";
+  version = "1.28.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gLur40Vny3NO/S7BhpstmBlcknRVNp2Ad7PFQgiMXJ0=";
+    hash = "sha256-1yu/4tXC8lVfS8YgW+RFDd/RKXZhDdmhapqw8Fxotk0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cryptography
     pyjwt
     requests
-  ]
-  ++ pyjwt.optional-dependencies.crypto;
+  ] ++ pyjwt.optional-dependencies.crypto;
 
   # Tests assume Network Connectivity:
   # https://github.com/AzureAD/microsoft-authentication-library-for-python/blob/e2958961e8ec16d0af4199f60c36c3f913497e48/tests/test_authority.py#L73
   doCheck = false;
 
-  pythonImportsCheck = [
-    "msal"
-  ];
+  pythonImportsCheck = [ "msal" ];
 
   meta = with lib; {
     description = "Library to access the Microsoft Cloud by supporting authentication of users with Microsoft Azure Active Directory accounts (AAD) and Microsoft Accounts (MSA) using industry standard OAuth2 and OpenID Connect";
diff --git a/pkgs/development/python-modules/mscerts/default.nix b/pkgs/development/python-modules/mscerts/default.nix
index 6d7642c894703..b607444fc27f8 100644
--- a/pkgs/development/python-modules/mscerts/default.nix
+++ b/pkgs/development/python-modules/mscerts/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "mscerts";
-  version = "2024.3.27";
+  version = "2024.5.29";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -16,21 +17,17 @@ buildPythonPackage rec {
     owner = "ralphje";
     repo = "mscerts";
     rev = "refs/tags/${version}";
-    hash = "sha256-Hucf3tToYm3P6ebKNlUs5V+X1B95u9P2UC1yOItZOhc=";
+    hash = "sha256-1k0k5BSEyiJ1Brx7P+sgUQI63k1eT59edghnPVuCuZE=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   # extras_require contains signify -> circular dependency
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "mscerts"
-  ];
+  pythonImportsCheck = [ "mscerts" ];
 
   meta = with lib; {
     description = "Makes the Microsoft Trusted Root Program's Certificate Trust Lists available in Python";
diff --git a/pkgs/development/python-modules/msg-parser/default.nix b/pkgs/development/python-modules/msg-parser/default.nix
index 5e45338d0787c..f2ebb4108970c 100644
--- a/pkgs/development/python-modules/msg-parser/default.nix
+++ b/pkgs/development/python-modules/msg-parser/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-# dependencies
-, olefile
-# test dependencies
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  # dependencies
+  olefile,
+  # test dependencies
+  pytestCheckHook,
 }:
 let
   pname = "msg-parser";
@@ -24,16 +25,12 @@ buildPythonPackage {
     hash = "sha256-srDk6w8nzt0dyGCFQWfVCnKb4LawHoqoHX6d1l1dAmM=";
   };
 
-  propagatedBuildInputs = [
-    olefile
-  ];
+  propagatedBuildInputs = [ olefile ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "Python module to read, parse and converting Microsoft Outlook MSG E-Mail files.";
+    description = "Python module to read, parse and converting Microsoft Outlook MSG E-Mail files";
     mainProgram = "msg_parser";
     homepage = "https://github.com/vikramarsid/msg_parser";
     license = licenses.bsd2;
diff --git a/pkgs/development/python-modules/msgpack-numpy/default.nix b/pkgs/development/python-modules/msgpack-numpy/default.nix
index 640b1d2798f06..ff41fa354ebb9 100644
--- a/pkgs/development/python-modules/msgpack-numpy/default.nix
+++ b/pkgs/development/python-modules/msgpack-numpy/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cython
-, msgpack
-, numpy
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cython,
+  msgpack,
+  numpy,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,11 @@ buildPythonPackage rec {
     hash = "sha256-xmfTGAUTQi+cdUW+XuxdKW3Ls1fgb3LtOcxoN5dVbmk=";
   };
 
-  buildInputs = [
-    cython
-  ];
+  buildInputs = [ cython ];
 
   propagatedBuildInputs = [
-   msgpack
-   numpy
+    msgpack
+    numpy
   ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/msgpack/default.nix b/pkgs/development/python-modules/msgpack/default.nix
index e1a114d9344bc..8824d519544c5 100644
--- a/pkgs/development/python-modules/msgpack/default.nix
+++ b/pkgs/development/python-modules/msgpack/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, borgbackup
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  borgbackup,
 }:
 
 buildPythonPackage rec {
@@ -19,17 +20,11 @@ buildPythonPackage rec {
     hash = "sha256-lcArDifnBuSNDlQm0XEMp44PBijW6J1bWluRpfEidPM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "msgpack"
-  ];
+  pythonImportsCheck = [ "msgpack" ];
 
   passthru.tests = {
     # borgbackup is sensible to msgpack versions: https://github.com/borgbackup/borg/issues/3753
@@ -37,7 +32,7 @@ buildPythonPackage rec {
     inherit borgbackup;
   };
 
-  meta = with lib;  {
+  meta = with lib; {
     description = "MessagePack serializer implementation";
     homepage = "https://github.com/msgpack/msgpack-python";
     changelog = "https://github.com/msgpack/msgpack-python/blob/v${version}/ChangeLog.rst";
diff --git a/pkgs/development/python-modules/msgraph-core/default.nix b/pkgs/development/python-modules/msgraph-core/default.nix
index f8ee81afbac24..8bc1b7489301b 100644
--- a/pkgs/development/python-modules/msgraph-core/default.nix
+++ b/pkgs/development/python-modules/msgraph-core/default.nix
@@ -1,59 +1,62 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, httpx
-, microsoft-kiota-abstractions
-, microsoft-kiota-authentication-azure
- ,microsoft-kiota-http
-, requests
-, azure-identity
-, pytestCheckHook
-, responses
+{
+  lib,
+  buildPythonPackage,
+  python-dotenv,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  httpx,
+  microsoft-kiota-abstractions,
+  microsoft-kiota-authentication-azure,
+  microsoft-kiota-http,
+  requests,
+  azure-identity,
+  pytestCheckHook,
+  responses,
 }:
 
 buildPythonPackage rec {
   pname = "msgraph-core";
-  version = "1.0.0";
+  version = "1.1.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.5";
-
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "microsoftgraph";
     repo = "msgraph-sdk-python-core";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VizjN7sXqPvo9VOSaaUnogTlUDJ1OA2COYNTcVRqhJA=";
+    hash = "sha256-bQW1piSypfj3YAfzuEk/AkrB1x0lrHoIDyZv+KeCYgE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     httpx
     microsoft-kiota-abstractions
     microsoft-kiota-authentication-azure
     microsoft-kiota-http
     requests
-
   ];
 
   nativeCheckInputs = [
     azure-identity
     pytestCheckHook
+    python-dotenv
     responses
   ];
 
-  pythonImportsCheck = [
-    "msgraph_core"
+  pythonImportsCheck = [ "msgraph_core" ];
+
+  disabledTestPaths = [
+    # client_id should be the id of a Microsoft Entra application
+    "tests/tasks/test_page_iterator.py"
   ];
 
   meta = {
     description = "Core component of the Microsoft Graph Python SDK";
     homepage = "https://github.com/microsoftgraph/msgraph-sdk-python-core";
+    changelog = "https://github.com/microsoftgraph/msgraph-sdk-python-core/releases/tag/v${version}";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ dotlambda ];
   };
diff --git a/pkgs/development/python-modules/msgraph-sdk/default.nix b/pkgs/development/python-modules/msgraph-sdk/default.nix
index 7dc4e3fd062f2..5740955f6d63f 100644
--- a/pkgs/development/python-modules/msgraph-sdk/default.nix
+++ b/pkgs/development/python-modules/msgraph-sdk/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "msgraph-sdk";
-  version = "1.2.0";
+  version = "1.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "microsoftgraph";
     repo = "msgraph-sdk-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-UaGdusPGWlF7gTzpCq9WrF/evdDSK5srrkH8/Vz9O8M=";
+    hash = "sha256-afnxk79duKzTykNnSHPE6lZhMkOt+9JhEskj/KjQpQI=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/msgspec/default.nix b/pkgs/development/python-modules/msgspec/default.nix
index 6dac69d22db8e..e37cb697318d6 100644
--- a/pkgs/development/python-modules/msgspec/default.nix
+++ b/pkgs/development/python-modules/msgspec/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, msgpack
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  msgpack,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,16 +22,12 @@ buildPythonPackage rec {
     hash = "sha256-xqtV60saQNINPMpOnZRSDnicedPSPBUQwPSE5zJGrTo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Requires libasan to be accessible
   doCheck = false;
 
-  pythonImportsCheck = [
-    "msgspec"
-  ];
+  pythonImportsCheck = [ "msgspec" ];
 
   meta = with lib; {
     description = "Module to handle JSON/MessagePack";
diff --git a/pkgs/development/python-modules/msldap/default.nix b/pkgs/development/python-modules/msldap/default.nix
index 6b013aa02a63f..aed2317480d85 100644
--- a/pkgs/development/python-modules/msldap/default.nix
+++ b/pkgs/development/python-modules/msldap/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, unicrypto
-, asyauth
-, asysocks
-, asn1crypto
-, winacl
-, prompt-toolkit
-, tqdm
-, wcwidth
-, tabulate
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  unicrypto,
+  asyauth,
+  asysocks,
+  asn1crypto,
+  winacl,
+  prompt-toolkit,
+  tqdm,
+  wcwidth,
+  tabulate,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-Zb/g5QLJTSb0XTZvVnzbYkYvJ/ZVvQri8CKP48n5ibg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     unicrypto
@@ -45,9 +44,7 @@ buildPythonPackage rec {
   # Project doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "msldap"
-  ];
+  pythonImportsCheck = [ "msldap" ];
 
   meta = with lib; {
     description = "Python LDAP library for auditing MS AD";
diff --git a/pkgs/development/python-modules/msoffcrypto-tool/default.nix b/pkgs/development/python-modules/msoffcrypto-tool/default.nix
index 830a37164a5e0..1c709d57884d4 100644
--- a/pkgs/development/python-modules/msoffcrypto-tool/default.nix
+++ b/pkgs/development/python-modules/msoffcrypto-tool/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "msoffcrypto-tool";
-  version = "5.4.0";
+  version = "5.4.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "nolze";
     repo = "msoffcrypto-tool";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1LTFwXTIvFdrYyI1pDUPzQHw3/043+FGHDnKYWaomY0=";
+    hash = "sha256-BVm4hMKvvNI3bJ82t4NIRcx8o8mgQgoulIerDwoVIT0=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/msprime/default.nix b/pkgs/development/python-modules/msprime/default.nix
index c09b3b8d7609d..087ee01fdc55b 100644
--- a/pkgs/development/python-modules/msprime/default.nix
+++ b/pkgs/development/python-modules/msprime/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, demes
-, fetchPypi
-, gsl
-, newick
-, numpy
-, oldest-supported-numpy
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, scipy
-, setuptools-scm
-, tskit
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  demes,
+  fetchPypi,
+  gsl,
+  newick,
+  numpy,
+  oldest-supported-numpy,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
+  setuptools-scm,
+  tskit,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     wheel
   ];
 
-  buildInputs = [
-    gsl
-  ];
+  buildInputs = [ gsl ];
 
   propagatedBuildInputs = [
     numpy
@@ -71,9 +70,7 @@ buildPythonPackage rec {
   preCheck = ''
     rm -r msprime
   '';
-  pythonImportsCheck = [
-    "msprime"
-  ];
+  pythonImportsCheck = [ "msprime" ];
 
   meta = with lib; {
     description = "Simulate genealogical trees and genomic sequence data using population genetic models";
diff --git a/pkgs/development/python-modules/msrest/default.nix b/pkgs/development/python-modules/msrest/default.nix
index 5f4f9869e3047..5b01bf17d328a 100644
--- a/pkgs/development/python-modules/msrest/default.nix
+++ b/pkgs/development/python-modules/msrest/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, aiodns
-, aiohttp
-, azure-core
-, buildPythonPackage
-, certifi
-, fetchFromGitHub
-, httpretty
-, isodate
-, pytest-aiohttp
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, requests
-, requests-oauthlib
-, setuptools
-, trio
+{
+  lib,
+  aiodns,
+  aiohttp,
+  azure-core,
+  buildPythonPackage,
+  certifi,
+  fetchFromGitHub,
+  httpretty,
+  isodate,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  requests,
+  requests-oauthlib,
+  setuptools,
+  trio,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     hash = "sha256-1EXXXflhDeU+erdI+NsWxSX76ooDTl3+MyQwRzm2xV0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     azure-core
@@ -53,31 +52,35 @@ buildPythonPackage rec {
     trio
   ];
 
-  disabledTests = [
-    # Test require network access
-    "test_basic_aiohttp"
-    "test_basic_aiohttp"
-    "test_basic_async_requests"
-    "test_basic_async_requests"
-    "test_conf_async_requests"
-    "test_conf_async_requests"
-    "test_conf_async_trio_requests"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    # AttributeError: 'TestAuthentication' object has no attribute...
-    "test_apikey_auth"
-    "test_cs_auth"
-    "test_eventgrid_auth"
-    "test_eventgrid_domain_auth"
-  ];
+  disabledTests =
+    [
+      # Test require network access
+      "test_basic_aiohttp"
+      "test_basic_aiohttp"
+      "test_basic_async_requests"
+      "test_basic_async_requests"
+      "test_conf_async_requests"
+      "test_conf_async_requests"
+      "test_conf_async_trio_requests"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # AttributeError: 'TestAuthentication' object has no attribute...
+      "test_apikey_auth"
+      "test_cs_auth"
+      "test_eventgrid_auth"
+      "test_eventgrid_domain_auth"
+    ];
 
-  pythonImportsCheck = [
-    "msrest"
-  ];
+  pythonImportsCheck = [ "msrest" ];
 
   meta = with lib; {
-    description = "The runtime library for AutoRest generated Python clients";
+    description = "Runtime library for AutoRest generated Python clients";
     homepage = "https://github.com/Azure/msrest-for-python";
     license = licenses.mit;
-    maintainers = with maintainers; [ bendlas jonringer maxwilson ];
+    maintainers = with maintainers; [
+      bendlas
+      jonringer
+      maxwilson
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/msrestazure/default.nix b/pkgs/development/python-modules/msrestazure/default.nix
index b997cd9b5065c..7a5effd2a8758 100644
--- a/pkgs/development/python-modules/msrestazure/default.nix
+++ b/pkgs/development/python-modules/msrestazure/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, adal
-, buildPythonPackage
-, fetchFromGitHub
-, httpretty
-, mock
-, msrest
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  adal,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpretty,
+  mock,
+  msrest,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-ZZVZi0v1ucD2g5FpLaNhfNBf6Ab10fUEcEdkY4ELaEY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     adal
@@ -41,14 +40,15 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "msrest"
-  ];
+  pythonImportsCheck = [ "msrest" ];
 
   meta = with lib; {
-    description = "The runtime library 'msrestazure' for AutoRest generated Python clients";
+    description = "Runtime library 'msrestazure' for AutoRest generated Python clients";
     homepage = "https://azure.microsoft.com/en-us/develop/python/";
     license = licenses.mit;
-    maintainers = with maintainers; [ bendlas jonringer ];
+    maintainers = with maintainers; [
+      bendlas
+      jonringer
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/mss/default.nix b/pkgs/development/python-modules/mss/default.nix
index ecc0787062f8f..b94269a4a3b85 100644
--- a/pkgs/development/python-modules/mss/default.nix
+++ b/pkgs/development/python-modules/mss/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
   # Skipping tests due to most relying on DISPLAY being set
   doCheck = false;
 
-  pythonImportsCheck = [
-    "mss"
-  ];
+  pythonImportsCheck = [ "mss" ];
 
   meta = with lib; {
     description = "Cross-platform multiple screenshots module";
diff --git a/pkgs/development/python-modules/mt-940/default.nix b/pkgs/development/python-modules/mt-940/default.nix
index e8a0321422541..3a664b3933f23 100644
--- a/pkgs/development/python-modules/mt-940/default.nix
+++ b/pkgs/development/python-modules/mt-940/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -26,18 +27,14 @@ buildPythonPackage rec {
     sed -i "/--no-cov/d" pytest.ini
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pyyaml
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "mt940"
-  ];
+  pythonImportsCheck = [ "mt940" ];
 
   meta = with lib; {
     description = "Module to parse MT940 files and returns smart Python collections for statistics and manipulation";
diff --git a/pkgs/development/python-modules/mujoco/default.nix b/pkgs/development/python-modules/mujoco/default.nix
index 9237dbb6501ca..c7d8258e89797 100644
--- a/pkgs/development/python-modules/mujoco/default.nix
+++ b/pkgs/development/python-modules/mujoco/default.nix
@@ -1,23 +1,24 @@
-{ absl-py
-, buildPythonPackage
-, cmake
-, etils
-, fetchPypi
-, glfw
-, lib
-, mujoco
-, numpy
-, perl
-, pybind11
-, pyopengl
-, python
-, setuptools
-, stdenv
+{
+  absl-py,
+  buildPythonPackage,
+  cmake,
+  etils,
+  fetchPypi,
+  glfw,
+  lib,
+  mujoco,
+  numpy,
+  perl,
+  pybind11,
+  pyopengl,
+  python,
+  setuptools,
+  stdenv,
 }:
 
 buildPythonPackage rec {
   pname = "mujoco";
-  version = "3.1.4";
+  inherit (mujoco) version;
 
   pyproject = true;
 
@@ -27,12 +28,18 @@ buildPythonPackage rec {
   # in the project's CI.
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-GdeL1zMri/ArjXyjXTgan48WVPTHDA1/SZxtTYB8QFk=";
+    hash = "sha256-fPiIdSbwcedBHcAs4c1mXjm0tgg/3/Sf4TSKgtIxRlE=";
   };
 
-  nativeBuildInputs = [ cmake setuptools ];
+  nativeBuildInputs = [
+    cmake
+    setuptools
+  ];
   dontUseCmakeConfigure = true;
-  buildInputs = [ mujoco pybind11 ];
+  buildInputs = [
+    mujoco
+    pybind11
+  ];
   propagatedBuildInputs = [
     absl-py
     etils
@@ -53,31 +60,36 @@ buildPythonPackage rec {
   preConfigure =
     # Use non-system eigen3, lodepng, abseil: Remove mirror info and prefill
     # dependency directory. $build from setuptools.
-    (let
-      # E.g. 3.11.2 -> "311"
-      pythonVersionMajorMinor = with lib.versions;
-        "${major python.pythonVersion}${minor python.pythonVersion}";
+    (
+      let
+        # E.g. 3.11.2 -> "311"
+        pythonVersionMajorMinor =
+          with lib.versions;
+          "${major python.pythonVersion}${minor python.pythonVersion}";
 
-      # E.g. "linux-aarch64"
-      platform = with stdenv.hostPlatform.parsed;
-        "${kernel.name}-${cpu.name}";
-    in ''
-      ${perl}/bin/perl -0777 -i -pe "s/GIT_REPO\n.*\n.*GIT_TAG\n.*\n//gm" mujoco/CMakeLists.txt
-      ${perl}/bin/perl -0777 -i -pe "s/(FetchContent_Declare\(\n.*lodepng\n.*)(GIT_REPO.*\n.*GIT_TAG.*\n)(.*\))/\1\3/gm" mujoco/simulate/CMakeLists.txt
+        # E.g. "linux-aarch64"
+        platform = with stdenv.hostPlatform.parsed; "${kernel.name}-${cpu.name}";
+      in
+      ''
+        ${perl}/bin/perl -0777 -i -pe "s/GIT_REPO\n.*\n.*GIT_TAG\n.*\n//gm" mujoco/CMakeLists.txt
+        ${perl}/bin/perl -0777 -i -pe "s/(FetchContent_Declare\(\n.*lodepng\n.*)(GIT_REPO.*\n.*GIT_TAG.*\n)(.*\))/\1\3/gm" mujoco/simulate/CMakeLists.txt
 
-      build="/build/${pname}-${version}/build/temp.${platform}-cpython-${pythonVersionMajorMinor}/"
-      mkdir -p $build/_deps
-      ln -s ${mujoco.pin.lodepng} $build/_deps/lodepng-src
-      ln -s ${mujoco.pin.eigen3} $build/_deps/eigen-src
-      ln -s ${mujoco.pin.abseil-cpp} $build/_deps/abseil-cpp-src
-    '');
+        build="/build/${pname}-${version}/build/temp.${platform}-cpython-${pythonVersionMajorMinor}/"
+        mkdir -p $build/_deps
+        ln -s ${mujoco.pin.lodepng} $build/_deps/lodepng-src
+        ln -s ${mujoco.pin.eigen3} $build/_deps/eigen-src
+        ln -s ${mujoco.pin.abseil-cpp} $build/_deps/abseil-cpp-src
+      ''
+    );
 
-  meta = with lib; {
-    description =
-      "Python bindings for MuJoCo: a general purpose physics simulator.";
+  meta = {
+    description = "Python bindings for MuJoCo: a general purpose physics simulator";
     homepage = "https://mujoco.org/";
     changelog = "https://github.com/google-deepmind/mujoco/releases/tag/${version}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ tmplt ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [
+      GaetanLepage
+      tmplt
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/mujson/default.nix b/pkgs/development/python-modules/mujson/default.nix
index 51a1407dff247..6d980fd74f495 100644
--- a/pkgs/development/python-modules/mujson/default.nix
+++ b/pkgs/development/python-modules/mujson/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/mullvad-api/default.nix b/pkgs/development/python-modules/mullvad-api/default.nix
index bc09093c8d665..2074766ebe6ed 100644
--- a/pkgs/development/python-modules/mullvad-api/default.nix
+++ b/pkgs/development/python-modules/mullvad-api/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/mullvad-closest/default.nix b/pkgs/development/python-modules/mullvad-closest/default.nix
index 62537c244491a..1affe574c0dbd 100644
--- a/pkgs/development/python-modules/mullvad-closest/default.nix
+++ b/pkgs/development/python-modules/mullvad-closest/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, setuptools
-, click
-, geopy
-, ping3
-, requests
-, tabulate
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  setuptools,
+  click,
+  geopy,
+  ping3,
+  requests,
+  tabulate,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-scJiYjEmnDDElE5rHdPbnnuNjjRB0/X3vNGLoi2MAmo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     click
diff --git a/pkgs/development/python-modules/mulpyplexer/default.nix b/pkgs/development/python-modules/mulpyplexer/default.nix
index 29b518262ffaa..5ff36083ef864 100644
--- a/pkgs/development/python-modules/mulpyplexer/default.nix
+++ b/pkgs/development/python-modules/mulpyplexer/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/multi-key-dict/default.nix b/pkgs/development/python-modules/multi-key-dict/default.nix
index c959f2e8f2eca..5cd962b70cf85 100644
--- a/pkgs/development/python-modules/multi-key-dict/default.nix
+++ b/pkgs/development/python-modules/multi-key-dict/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -15,16 +16,12 @@ buildPythonPackage rec {
     hash = "sha256-3uvewXqjChxDLLP0N+gfhiHhwFQqDAYXp09x4jLpk54=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # upstream has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "multi_key_dict"
-  ];
+  pythonImportsCheck = [ "multi_key_dict" ];
 
   meta = with lib; {
     description = "multi_key_dict";
diff --git a/pkgs/development/python-modules/multidict/default.nix b/pkgs/development/python-modules/multidict/default.nix
index 5588fcbdc5b0d..0321c5deba97d 100644
--- a/pkgs/development/python-modules/multidict/default.nix
+++ b/pkgs/development/python-modules/multidict/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
       --replace-fail '"-I",' ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/multimethod/default.nix b/pkgs/development/python-modules/multimethod/default.nix
index cc0ec79acdfed..defec98badfcf 100644
--- a/pkgs/development/python-modules/multimethod/default.nix
+++ b/pkgs/development/python-modules/multimethod/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-KfO+6bZOZOv9SWTV4eqJTWb3/PeCpnXknSF47ddZR5o=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "multimethod"
-  ];
+  pythonImportsCheck = [ "multimethod" ];
 
   meta = with lib; {
     description = "Multiple argument dispatching";
diff --git a/pkgs/development/python-modules/multipart/default.nix b/pkgs/development/python-modules/multipart/default.nix
index 84daaac2773f4..312699ecda416 100644
--- a/pkgs/development/python-modules/multipart/default.nix
+++ b/pkgs/development/python-modules/multipart/default.nix
@@ -1,32 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "multipart";
-  version = "0.2.4";
-
-  format = "setuptools";
+  version = "0.2.5";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "06ba205360bc7096fefe618e4f1e9b2cdb890b4f2157053a81f386912a2522cb";
+    hash = "sha256-+piDjUDJZ7sZWJYmoPuKXEDEId2i/r4bA1H89ibiRlE=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "dont-test-semicolon-separators-in-urlencoded-data.patch";
-      url = "https://github.com/defnull/multipart/commit/4d4ac6b79c453918ebf40c690e8d57d982ee840b.patch";
-      hash = "sha256-rMeMhQEhonWAHzy5M8Im5mL6km5a9O0CGVOV+T3UNqo=";
-    })
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "multipart" ];
 
diff --git a/pkgs/development/python-modules/multipledispatch/default.nix b/pkgs/development/python-modules/multipledispatch/default.nix
index 2fab50a63f042..15ff5d914afd6 100644
--- a/pkgs/development/python-modules/multipledispatch/default.nix
+++ b/pkgs/development/python-modules/multipledispatch/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/mrocklin/multipledispatch/";
-    description = "A relatively sane approach to multiple dispatch in Python";
+    description = "Relatively sane approach to multiple dispatch in Python";
     license = lib.licenses.bsd3;
   };
 }
diff --git a/pkgs/development/python-modules/multiprocess/default.nix b/pkgs/development/python-modules/multiprocess/default.nix
index 2852fbcbd0d6a..57e69de0e7854 100644
--- a/pkgs/development/python-modules/multiprocess/default.nix
+++ b/pkgs/development/python-modules/multiprocess/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, dill
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  dill,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
@@ -16,16 +17,12 @@ buildPythonPackage rec {
     hash = "sha256-77F5fkZbljq/tuBTkquKEYVubfghUrMZsAdhp1QpH2k=";
   };
 
-  propagatedBuildInputs = [
-    dill
-  ];
+  propagatedBuildInputs = [ dill ];
 
   # Python-version dependent tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "multiprocess"
-  ];
+  pythonImportsCheck = [ "multiprocess" ];
 
   meta = with lib; {
     description = "Multiprocessing and multithreading in Python";
diff --git a/pkgs/development/python-modules/multiset/default.nix b/pkgs/development/python-modules/multiset/default.nix
index 27476e44b17f1..917a8c7e3a0fa 100644
--- a/pkgs/development/python-modules/multiset/default.nix
+++ b/pkgs/development/python-modules/multiset/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, setuptools-scm
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,16 +27,12 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  pythonImportsCheck = [
-    "multiset"
-  ];
+  pythonImportsCheck = [ "multiset" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "An implementation of a multiset";
+    description = "Implementation of a multiset";
     homepage = "https://github.com/wheerd/multiset";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/multitasking/default.nix b/pkgs/development/python-modules/multitasking/default.nix
index c3401ed6530c9..e5880849da738 100644
--- a/pkgs/development/python-modules/multitasking/default.nix
+++ b/pkgs/development/python-modules/multitasking/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -14,7 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-TWvDzGX5stynL7Wnh4UKiNro9iDCs2rptVJI5RvNYCY=";
   };
 
-  doCheck = false;  # No tests included
+  doCheck = false; # No tests included
   pythonImportsCheck = [ "multitasking" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/munch/default.nix b/pkgs/development/python-modules/munch/default.nix
index 368cc0eff5ada..db4cfa8b35b69 100644
--- a/pkgs/development/python-modules/munch/default.nix
+++ b/pkgs/development/python-modules/munch/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# build-system
-, pbr
-, setuptools
-
-# tests
-, pytestCheckHook
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  pbr,
+  setuptools,
+
+  # tests
+  pytestCheckHook,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,8 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A dot-accessible dictionary (a la JavaScript objects)";
+    description = "Dot-accessible dictionary (a la JavaScript objects)";
     license = licenses.mit;
     homepage = "https://github.com/Infinidat/munch";
   };
-
 }
diff --git a/pkgs/development/python-modules/mung/default.nix b/pkgs/development/python-modules/mung/default.nix
index 03fcd29dba755..236ab3aba46c1 100644
--- a/pkgs/development/python-modules/mung/default.nix
+++ b/pkgs/development/python-modules/mung/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, lxml
-, numpy
-, pytestCheckHook
-, scikit-image
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  lxml,
+  numpy,
+  pytestCheckHook,
+  scikit-image,
 }:
 let
-  version = "1.2";
+  version = "1.2.1";
 in
 buildPythonPackage {
   pname = "mung";
@@ -19,12 +20,10 @@ buildPythonPackage {
     owner = "OMR-Research";
     repo = "mung";
     rev = "refs/tags/${version}";
-    hash = "sha256-NSKaJkJRevTy5gh6/ik8Qe46bOPdznsmXPgh7Xz7vXQ=";
+    hash = "sha256-QljGoZdUJRClQ/QzUsCKD0/ooWaFrKXI+93WFPvmIjE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     lxml
@@ -32,13 +31,9 @@ buildPythonPackage {
     scikit-image
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mung"
-  ];
+  pythonImportsCheck = [ "mung" ];
 
   meta = with lib; {
     description = "Music Notation Graph: a data model for optical music recognition";
diff --git a/pkgs/development/python-modules/munkres/default.nix b/pkgs/development/python-modules/munkres/default.nix
index d872783d19044..1ba6a82139540 100644
--- a/pkgs/development/python-modules/munkres/default.nix
+++ b/pkgs/development/python-modules/munkres/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, isPy3k
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  isPy3k,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -35,5 +36,4 @@ buildPythonPackage rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ domenkozar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/murmurhash/default.nix b/pkgs/development/python-modules/murmurhash/default.nix
index 6845d8a5b6b0d..bd69447a43236 100644
--- a/pkgs/development/python-modules/murmurhash/default.nix
+++ b/pkgs/development/python-modules/murmurhash/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,16 +23,12 @@ buildPythonPackage rec {
       --replace "'wheel>=0.32.0,<0.33.0'" ""
   '';
 
-  buildInputs = [
-   cython
-  ];
+  buildInputs = [ cython ];
 
   # No test
   doCheck = false;
 
-  pythonImportsCheck = [
-    "murmurhash"
-  ];
+  pythonImportsCheck = [ "murmurhash" ];
 
   meta = with lib; {
     description = "Cython bindings for MurmurHash2";
diff --git a/pkgs/development/python-modules/muscima/default.nix b/pkgs/development/python-modules/muscima/default.nix
index 37eb4950bfb77..03bdd1989b52f 100644
--- a/pkgs/development/python-modules/muscima/default.nix
+++ b/pkgs/development/python-modules/muscima/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, lxml
-, matplotlib
-, numpy
-, pytestCheckHook
-, scikit-image
-, scikit-learn
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxml,
+  matplotlib,
+  numpy,
+  pytestCheckHook,
+  scikit-image,
+  scikit-learn,
 }:
 
 let
@@ -33,9 +34,7 @@ buildPythonPackage {
     matplotlib
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # They hard-code the path to the dataset and expect you to edit the test to update it to your value
diff --git a/pkgs/development/python-modules/music-tag/default.nix b/pkgs/development/python-modules/music-tag/default.nix
index f997ca47253ce..1c396703cd0cd 100644
--- a/pkgs/development/python-modules/music-tag/default.nix
+++ b/pkgs/development/python-modules/music-tag/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mutagen
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mutagen,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -15,22 +16,16 @@ buildPythonPackage rec {
     hash = "sha256-Cqtubu2o3w9TFuwtIZC9dFYbfgNWKrCRzo1Wh828//Y=";
   };
 
-  propagatedBuildInputs = [
-    mutagen
-  ];
+  propagatedBuildInputs = [ mutagen ];
 
-  checkInputs = [
-    pytestCheckHook
-  ];
+  checkInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [ "test" ];
 
   # Tests fail: ModuleNotFoundError: No module named '_test_common'
   doCheck = false;
 
-  pythonImportsCheck = [
-    "music_tag"
-  ];
+  pythonImportsCheck = [ "music_tag" ];
 
   meta = with lib; {
     description = "Simple interface to edit audio file metadata";
diff --git a/pkgs/development/python-modules/musicbrainzngs/default.nix b/pkgs/development/python-modules/musicbrainzngs/default.nix
index 4ceebd32aa63a..5c3acc24846bd 100644
--- a/pkgs/development/python-modules/musicbrainzngs/default.nix
+++ b/pkgs/development/python-modules/musicbrainzngs/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pkgs
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pkgs,
 }:
 
 buildPythonPackage rec {
@@ -16,7 +17,7 @@ buildPythonPackage rec {
 
   buildInputs = [ pkgs.glibcLocales ];
 
-  LC_ALL="en_US.UTF-8";
+  LC_ALL = "en_US.UTF-8";
 
   preCheck = ''
     # Remove tests that rely on networking (breaks sandboxed builds)
@@ -29,5 +30,4 @@ buildPythonPackage rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ domenkozar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/mutag/default.nix b/pkgs/development/python-modules/mutag/default.nix
index 9076464d457ce..d5b6fe944ae27 100644
--- a/pkgs/development/python-modules/mutag/default.nix
+++ b/pkgs/development/python-modules/mutag/default.nix
@@ -1,31 +1,40 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy3k
-, pyparsing
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyparsing,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage {
   pname = "mutag";
-  version = "0.0.2-2ffa0258ca";
-  format = "setuptools";
-  disabled = ! isPy3k;
+  version = "0.0.2-unstable-2018-08-20";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "aroig";
     repo = "mutag";
-    rev = "2ffa0258cadaf79313241f43bf2c1caaf197d9c2";
-    hash = "sha256-YT3DGvYPyTuB70gg6p/3oXcTahEPcNuSIqe56xu3rSs=";
+    rev = "9425169eb5d4aa9eb09f2809a09b83855b3acbef";
+    hash = "sha256-fEMmFRoFyLkqusAuhdx3XEPaPsu1x86ACAz9Vkl9YfA=";
   };
 
-  propagatedBuildInputs = [ pyparsing ];
+  build-system = [ setuptools ];
+
+  dependencies = [ pyparsing ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "mutag" ];
 
   meta = with lib; {
+    description = "Script to change email tags in a mu indexed maildir";
     homepage = "https://github.com/aroig/mutag";
-    description = "A script to change email tags in a mu indexed maildir";
-    mainProgram = "mutag";
-    license = licenses.gpl3;
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
+    mainProgram = "mutag";
   };
-
 }
diff --git a/pkgs/development/python-modules/mutagen/default.nix b/pkgs/development/python-modules/mutagen/default.nix
index 2ffaadaffeaac..e7219e60753fd 100644
--- a/pkgs/development/python-modules/mutagen/default.nix
+++ b/pkgs/development/python-modules/mutagen/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# docs
-, python
-, sphinx
-, sphinx-rtd-theme
+  # docs
+  python,
+  sphinx,
+  sphinx-rtd-theme,
 
-# tests
-, hypothesis
-, pytestCheckHook
+  # tests
+  hypothesis,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -56,9 +57,7 @@ buildPythonPackage rec {
     "test_mock_fileobj"
   ];
 
-  pythonImportsCheck = [
-    "mutagen"
-  ];
+  pythonImportsCheck = [ "mutagen" ];
 
   meta = with lib; {
     description = "Python module for handling audio metadata";
@@ -73,7 +72,9 @@ buildPythonPackage rec {
       manipulate Ogg streams on an individual packet/page level.
     '';
     homepage = "https://mutagen.readthedocs.io";
-    changelog = "https://mutagen.readthedocs.io/en/latest/changelog.html#release-${lib.replaceStrings [ "." ] [ "-" ] version}";
+    changelog = "https://mutagen.readthedocs.io/en/latest/changelog.html#release-${
+      lib.replaceStrings [ "." ] [ "-" ] version
+    }";
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/mutatormath/default.nix b/pkgs/development/python-modules/mutatormath/default.nix
index 27e92103c5a96..1b259cd6ebd0d 100644
--- a/pkgs/development/python-modules/mutatormath/default.nix
+++ b/pkgs/development/python-modules/mutatormath/default.nix
@@ -1,6 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi
-, defcon, fontmath
-, unicodedata2, fs
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  defcon,
+  fontmath,
+  unicodedata2,
+  fs,
 }:
 
 buildPythonPackage rec {
@@ -14,8 +19,15 @@ buildPythonPackage rec {
     extension = "zip";
   };
 
-  propagatedBuildInputs = [ fontmath unicodedata2 defcon ];
-  nativeCheckInputs = [ unicodedata2 fs ];
+  propagatedBuildInputs = [
+    fontmath
+    unicodedata2
+    defcon
+  ];
+  nativeCheckInputs = [
+    unicodedata2
+    fs
+  ];
 
   meta = with lib; {
     description = "Piecewise linear interpolation in multiple dimensions with multiple, arbitrarily placed, masters";
diff --git a/pkgs/development/python-modules/mutesync/default.nix b/pkgs/development/python-modules/mutesync/default.nix
index b574717c0ece6..d998c5ff80134 100644
--- a/pkgs/development/python-modules/mutesync/default.nix
+++ b/pkgs/development/python-modules/mutesync/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/mutf8/default.nix b/pkgs/development/python-modules/mutf8/default.nix
index dd6f554a66afc..c7d2afdd1308b 100644
--- a/pkgs/development/python-modules/mutf8/default.nix
+++ b/pkgs/development/python-modules/mutf8/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,18 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-4Ojn3t0EbOVdrYEiY8JegJuvW9sz8jt9tKFwOluiGQo=";
   };
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
   checkPhase = ''
     # Using pytestCheckHook results in test failures
     pytest
   '';
 
-  pythonImportsCheck = [
-    "mutf8"
-  ];
+  pythonImportsCheck = [ "mutf8" ];
 
   meta = with lib; {
     description = "Fast MUTF-8 encoder & decoder";
diff --git a/pkgs/development/python-modules/mwcli/default.nix b/pkgs/development/python-modules/mwcli/default.nix
index 1ea2a58ea8fae..adcc5ab1e34cc 100644
--- a/pkgs/development/python-modules/mwcli/default.nix
+++ b/pkgs/development/python-modules/mwcli/default.nix
@@ -1,9 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonRelaxDepsHook
-, docopt
-, para
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  docopt,
+  para,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +17,8 @@ buildPythonPackage rec {
   };
 
   # Prevent circular dependency
-  pythonRemoveDeps = [
-    "mwxml"
-  ];
+  pythonRemoveDeps = [ "mwxml" ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   propagatedBuildInputs = [
     docopt
@@ -34,7 +29,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A set of helper functions and classes for mediawiki-utilities command-line utilities";
+    description = "Set of helper functions and classes for mediawiki-utilities command-line utilities";
     homepage = "https://github.com/mediawiki-utilities/python-mwcli";
     license = licenses.mit;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/mwclient/default.nix b/pkgs/development/python-modules/mwclient/default.nix
index 048364d5bb6ee..72fa00155f380 100644
--- a/pkgs/development/python-modules/mwclient/default.nix
+++ b/pkgs/development/python-modules/mwclient/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-oauthlib
-, responses
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-oauthlib,
+  responses,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -41,9 +42,7 @@ buildPythonPackage rec {
       --replace " --cov mwclient test" ""
   '';
 
-  pythonImportsCheck = [
-    "mwclient"
-  ];
+  pythonImportsCheck = [ "mwclient" ];
 
   meta = with lib; {
     description = "Python client library to the MediaWiki API";
diff --git a/pkgs/development/python-modules/mwdblib/default.nix b/pkgs/development/python-modules/mwdblib/default.nix
index 363c909c303b6..d6e1e60cb39a8 100644
--- a/pkgs/development/python-modules/mwdblib/default.nix
+++ b/pkgs/development/python-modules/mwdblib/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, beautifultable
-, buildPythonPackage
-, click
-, click-default-group
-, fetchFromGitHub
-, humanize
-, keyring
-, unittestCheckHook
-, python-dateutil
-, pythonOlder
-, requests
+{
+  lib,
+  beautifultable,
+  buildPythonPackage,
+  click,
+  click-default-group,
+  fetchFromGitHub,
+  humanize,
+  keyring,
+  unittestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ unittestCheckHook ];
 
-  pythonImportsCheck = [
-    "mwdblib"
-  ];
+  pythonImportsCheck = [ "mwdblib" ];
 
   meta = with lib; {
     description = "Python client library for the mwdb service";
diff --git a/pkgs/development/python-modules/mwoauth/default.nix b/pkgs/development/python-modules/mwoauth/default.nix
index 2e92fade6d430..e592420111d68 100644
--- a/pkgs/development/python-modules/mwoauth/default.nix
+++ b/pkgs/development/python-modules/mwoauth/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, oauthlib
-, pyjwt
-, pythonOlder
-, requests
-, requests-oauthlib
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  oauthlib,
+  pyjwt,
+  pythonOlder,
+  requests,
+  requests-oauthlib,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
   # https://github.com/mediawiki-utilities/python-mwoauth/issues/44
   doCheck = false;
 
-  pythonImportsCheck = [
-    "mwoauth"
-  ];
+  pythonImportsCheck = [ "mwoauth" ];
 
   meta = with lib; {
     description = "Python library to perform OAuth handshakes with a MediaWiki installation";
diff --git a/pkgs/development/python-modules/mwparserfromhell/default.nix b/pkgs/development/python-modules/mwparserfromhell/default.nix
index 81c1c20c5d6f3..55d9c63c640d5 100644
--- a/pkgs/development/python-modules/mwparserfromhell/default.nix
+++ b/pkgs/development/python-modules/mwparserfromhell/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
       --replace '"pytest-runner"' ""
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mwparserfromhell"
-  ];
+  pythonImportsCheck = [ "mwparserfromhell" ];
 
   meta = with lib; {
     description = "MWParserFromHell is a parser for MediaWiki wikicode";
diff --git a/pkgs/development/python-modules/mwtypes/default.nix b/pkgs/development/python-modules/mwtypes/default.nix
index b51b5d417a13a..e913286898294 100644
--- a/pkgs/development/python-modules/mwtypes/default.nix
+++ b/pkgs/development/python-modules/mwtypes/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jsonable
-, nose
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jsonable,
+  nose,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -31,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "mwtypes" ];
 
   meta = with lib; {
-    description = "A set of classes for working with MediaWiki data types.";
+    description = "Set of classes for working with MediaWiki data types";
     homepage = "https://github.com/mediawiki-utilities/python-mwtypes";
     license = licenses.mit;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/mwxml/default.nix b/pkgs/development/python-modules/mwxml/default.nix
index 28d3033252093..93090939a80ad 100644
--- a/pkgs/development/python-modules/mwxml/default.nix
+++ b/pkgs/development/python-modules/mwxml/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jsonschema
-, mwcli
-, mwtypes
-, nose
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jsonschema,
+  mwcli,
+  mwtypes,
+  nose,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -29,14 +30,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = [
-    "test_page_with_discussion"
-  ];
+  disabledTests = [ "test_page_with_discussion" ];
 
   pythonImportsCheck = [ "mwxml" ];
 
   meta = with lib; {
-    description = "A set of utilities for processing MediaWiki XML dump data";
+    description = "Set of utilities for processing MediaWiki XML dump data";
     mainProgram = "mwxml";
     homepage = "https://github.com/mediawiki-utilities/python-mwxml";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/mxnet/default.nix b/pkgs/development/python-modules/mxnet/default.nix
index df08e56fbf336..9ee3685511032 100644
--- a/pkgs/development/python-modules/mxnet/default.nix
+++ b/pkgs/development/python-modules/mxnet/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, pkgs
-, requests
-, numpy
-, graphviz
-, python
-, isPy3k
-, isPy310
+{
+  lib,
+  buildPythonPackage,
+  pkgs,
+  requests,
+  numpy,
+  graphviz,
+  python,
+  isPy3k,
+  isPy310,
 }:
 
 buildPythonPackage {
@@ -15,7 +16,11 @@ buildPythonPackage {
   format = "setuptools";
 
   buildInputs = [ pkgs.mxnet ];
-  propagatedBuildInputs = [ requests numpy graphviz ];
+  propagatedBuildInputs = [
+    requests
+    numpy
+    graphviz
+  ];
 
   LD_LIBRARY_PATH = lib.makeLibraryPath [ pkgs.mxnet ];
 
diff --git a/pkgs/development/python-modules/myfitnesspal/default.nix b/pkgs/development/python-modules/myfitnesspal/default.nix
index 27ffdad65e70f..47eb87233ce12 100644
--- a/pkgs/development/python-modules/myfitnesspal/default.nix
+++ b/pkgs/development/python-modules/myfitnesspal/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, blessed
-, browser-cookie3
-, buildPythonPackage
-, cloudscraper
-, fetchPypi
-, keyring
-, keyrings-alt
-, lxml
-, measurement
-, mock
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, requests
-, rich
-, setuptools
-, typing-extensions
+{
+  lib,
+  blessed,
+  browser-cookie3,
+  buildPythonPackage,
+  cloudscraper,
+  fetchPypi,
+  keyring,
+  keyrings-alt,
+  lxml,
+  measurement,
+  mock,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  requests,
+  rich,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     hash = "sha256-H9oKSio+2x4TDCB4YN5mmERUEeETLKahPlW3TDDFE/E=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     blessed
@@ -63,9 +62,7 @@ buildPythonPackage rec {
     "test_integration"
   ];
 
-  pythonImportsCheck = [
-    "myfitnesspal"
-  ];
+  pythonImportsCheck = [ "myfitnesspal" ];
 
   meta = with lib; {
     description = "Python module to access meal tracking data stored in MyFitnessPal";
diff --git a/pkgs/development/python-modules/mygpoclient/default.nix b/pkgs/development/python-modules/mygpoclient/default.nix
index c252f8cc294e8..ed6b434eb7e9f 100644
--- a/pkgs/development/python-modules/mygpoclient/default.nix
+++ b/pkgs/development/python-modules/mygpoclient/default.nix
@@ -1,4 +1,11 @@
-{ lib, stdenv, fetchFromGitHub, buildPythonPackage, nose, minimock }:
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  nose,
+  minimock,
+}:
 
 buildPythonPackage rec {
   pname = "mypgoclient";
@@ -11,7 +18,10 @@ buildPythonPackage rec {
     sha256 = "0aa28wc55x3rxa7clwfv5v5500ffyaq0vkxaa3v01y1r93dxkdvp";
   };
 
-  nativeCheckInputs = [ nose minimock ];
+  nativeCheckInputs = [
+    nose
+    minimock
+  ];
 
   checkPhase = ''
     nosetests
@@ -20,10 +30,10 @@ buildPythonPackage rec {
   doCheck = (!stdenv.isDarwin);
 
   meta = with lib; {
-    description = "A gpodder.net client library";
+    description = "Gpodder.net client library";
     longDescription = ''
-        The mygpoclient library allows developers to utilize a Pythonic interface
-        to the gpodder.net web services.
+      The mygpoclient library allows developers to utilize a Pythonic interface
+      to the gpodder.net web services.
     '';
     homepage = "https://github.com/gpodder/mygpoclient";
     license = with licenses; [ gpl3 ];
diff --git a/pkgs/development/python-modules/myhdl/default.nix b/pkgs/development/python-modules/myhdl/default.nix
index 900e188c61dd9..ec9dfcaf82766 100644
--- a/pkgs/development/python-modules/myhdl/default.nix
+++ b/pkgs/development/python-modules/myhdl/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, verilog
-, ghdl
-, pytest
-, pytest-xdist
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  verilog,
+  ghdl,
+  pytest,
+  pytest-xdist,
 }:
 
 buildPythonPackage rec {
@@ -42,7 +43,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A free, open-source package for using Python as a hardware description and verification language.";
+    description = "Free, open-source package for using Python as a hardware description and verification language";
     homepage = "https://www.myhdl.org/";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/development/python-modules/myhome/default.nix b/pkgs/development/python-modules/myhome/default.nix
index d716d66680804..ce22d1a25c63c 100644
--- a/pkgs/development/python-modules/myhome/default.nix
+++ b/pkgs/development/python-modules/myhome/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, urllib3
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-DJzwvgvSA9Q0kpueUoQV64pdDDNA7WzGu7r+g5aqutk=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -33,13 +32,9 @@ buildPythonPackage rec {
     urllib3
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "myhome"
-  ];
+  pythonImportsCheck = [ "myhome" ];
 
   meta = with lib; {
     description = "Python library for interacting with MyHomeSERVER1";
diff --git a/pkgs/development/python-modules/myjwt/default.nix b/pkgs/development/python-modules/myjwt/default.nix
index d0d39dc9d087f..e7c80a4801679 100644
--- a/pkgs/development/python-modules/myjwt/default.nix
+++ b/pkgs/development/python-modules/myjwt/default.nix
@@ -1,21 +1,21 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, click
-, colorama
-, cryptography
-, exrex
-, fetchFromGitHub
-, poetry-core
-, pyopenssl
-, pyperclip
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, questionary
-, requests
-, requests-mock
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  click,
+  colorama,
+  cryptography,
+  exrex,
+  fetchFromGitHub,
+  poetry-core,
+  pyopenssl,
+  pyperclip,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  questionary,
+  requests,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
@@ -45,7 +45,6 @@ buildPythonPackage rec {
 
   build-system = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   dependencies = [
@@ -65,9 +64,7 @@ buildPythonPackage rec {
     requests-mock
   ];
 
-  pythonImportsCheck = [
-    "myjwt"
-  ];
+  pythonImportsCheck = [ "myjwt" ];
 
   meta = with lib; {
     description = "CLI tool for testing vulnerabilities of JSON Web Tokens (JWT)";
diff --git a/pkgs/development/python-modules/mypy-boto3-builder/default.nix b/pkgs/development/python-modules/mypy-boto3-builder/default.nix
index 1e19b77c9c9c2..af3d186fb5a31 100644
--- a/pkgs/development/python-modules/mypy-boto3-builder/default.nix
+++ b/pkgs/development/python-modules/mypy-boto3-builder/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, black
-, boto3
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, isort
-, jinja2
-, md-toc
-, mdformat
-, newversion
-, pip
-, poetry-core
-, pyparsing
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  black,
+  boto3,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  isort,
+  jinja2,
+  md-toc,
+  mdformat,
+  newversion,
+  pip,
+  poetry-core,
+  pyparsing,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "mypy-boto3-builder";
-  version = "7.23.2";
+  version = "7.24.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -29,12 +30,10 @@ buildPythonPackage rec {
     owner = "youtype";
     repo = "mypy_boto3_builder";
     rev = "refs/tags/${version}";
-    hash = "sha256-v5/3TCEtDXbmitb3e15XWkW8VO5nJk8TCVvVyh5rAMs=";
+    hash = "sha256-RVpyCXIM7ze2iWJsi3i5N5JF2EyASAJ52DpYeebNk5A=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     black
@@ -51,13 +50,9 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mypy_boto3_builder"
-  ];
+  pythonImportsCheck = [ "mypy_boto3_builder" ];
 
   disabledTests = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/mypy-boto3/default.nix b/pkgs/development/python-modules/mypy-boto3/default.nix
index f37179b9d192c..84c247a4fa5cf 100644
--- a/pkgs/development/python-modules/mypy-boto3/default.nix
+++ b/pkgs/development/python-modules/mypy-boto3/default.nix
@@ -1,15 +1,17 @@
-{ lib
-, boto3
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  boto3,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 let
   toUnderscore = str: builtins.replaceStrings [ "-" ] [ "_" ] str;
 
-  buildMypyBoto3Package = serviceName: version: hash:
+  buildMypyBoto3Package =
+    serviceName: version: hash:
     buildPythonPackage rec {
       pname = "mypy-boto3-${serviceName}";
       inherit version;
@@ -17,744 +19,1446 @@ let
 
       disabled = pythonOlder "3.7";
 
-      src = fetchPypi {
-        inherit pname version hash;
-      };
+      src = fetchPypi { inherit pname version hash; };
 
-      build-system = [
-        setuptools
-      ];
+      build-system = [ setuptools ];
 
-      dependencies = [
-        boto3
-      ] ++ lib.optionals (pythonOlder "3.12") [
-        typing-extensions
-      ];
+      dependencies = [ boto3 ] ++ lib.optionals (pythonOlder "3.12") [ typing-extensions ];
 
       # Project has no tests
       doCheck = false;
 
-      pythonImportsCheck = [
-        "mypy_boto3_${toUnderscore serviceName}"
-      ];
+      pythonImportsCheck = [ "mypy_boto3_${toUnderscore serviceName}" ];
 
       meta = with lib; {
         description = "Type annotations for boto3 ${serviceName}";
         homepage = "https://github.com/youtype/mypy_boto3_builder";
         license = with licenses; [ mit ];
-        maintainers = with maintainers; [ fab mbalatsko ];
+        maintainers = with maintainers; [
+          fab
+          mbalatsko
+        ];
       };
     };
 in
 rec {
-  mypy-boto3-accessanalyzer = buildMypyBoto3Package "accessanalyzer" "1.34.67" "sha256-tgiKSWgKebdPAsyuJTQoFGR9BSLfGMeTVbi1rnPnvfQ=";
-
-  mypy-boto3-account = buildMypyBoto3Package "account" "1.34.0" "sha256-C2iAiA83tZ/7XRlccf1iddDfDNkuO2F0B5aOxKbHy2Q=";
+  mypy-boto3-accessanalyzer =
+    buildMypyBoto3Package "accessanalyzer" "1.34.67"
+      "sha256-tgiKSWgKebdPAsyuJTQoFGR9BSLfGMeTVbi1rnPnvfQ=";
 
-  mypy-boto3-acm = buildMypyBoto3Package "acm" "1.34.0" "sha256-SvDBi8A9414Hxb8twcM/6Y2OoUz+/LbZZJ86lu/zmmo=";
+  mypy-boto3-account =
+    buildMypyBoto3Package "account" "1.34.0"
+      "sha256-C2iAiA83tZ/7XRlccf1iddDfDNkuO2F0B5aOxKbHy2Q=";
 
-  mypy-boto3-acm-pca = buildMypyBoto3Package "acm-pca" "1.34.28" "sha256-4x4M49/Ot/HDZrA30PCu0OzXn3636dxCO4exR3lJAUs=";
+  mypy-boto3-acm =
+    buildMypyBoto3Package "acm" "1.34.0"
+      "sha256-SvDBi8A9414Hxb8twcM/6Y2OoUz+/LbZZJ86lu/zmmo=";
 
-  mypy-boto3-alexaforbusiness = buildMypyBoto3Package "alexaforbusiness" "1.34.0" "sha256-wrMSoM3F0HgajmM9X6P+3i6mqD55TWGVv8eJ7XqNjrw=";
+  mypy-boto3-acm-pca =
+    buildMypyBoto3Package "acm-pca" "1.34.28"
+      "sha256-4x4M49/Ot/HDZrA30PCu0OzXn3636dxCO4exR3lJAUs=";
 
-  mypy-boto3-amp = buildMypyBoto3Package "amp" "1.34.39" "sha256-XOousDfEQsZ9z48iH2wVHuUaIwoECwbkHvIAlV3+zu4=";
+  mypy-boto3-alexaforbusiness =
+    buildMypyBoto3Package "alexaforbusiness" "1.34.0"
+      "sha256-wrMSoM3F0HgajmM9X6P+3i6mqD55TWGVv8eJ7XqNjrw=";
 
-  mypy-boto3-amplify = buildMypyBoto3Package "amplify" "1.34.63" "sha256-alOtCCZwBcx6g3lm80AzI5aF8WbEABd44A0e6gfZ42o=";
+  mypy-boto3-amp =
+    buildMypyBoto3Package "amp" "1.34.39"
+      "sha256-XOousDfEQsZ9z48iH2wVHuUaIwoECwbkHvIAlV3+zu4=";
 
-  mypy-boto3-amplifybackend = buildMypyBoto3Package "amplifybackend" "1.34.0" "sha256-wP6fOHAUg4dvrlQ2rUNk/lgIr6JnpWu/0Tr2prTckOk=";
+  mypy-boto3-amplify =
+    buildMypyBoto3Package "amplify" "1.34.63"
+      "sha256-alOtCCZwBcx6g3lm80AzI5aF8WbEABd44A0e6gfZ42o=";
 
-  mypy-boto3-amplifyuibuilder = buildMypyBoto3Package "amplifyuibuilder" "1.34.51" "sha256-umxA1d0jlSysBkUFP8VPRMwuwYxdsRz0yRH7lgr/Hhc=";
+  mypy-boto3-amplifybackend =
+    buildMypyBoto3Package "amplifybackend" "1.34.0"
+      "sha256-wP6fOHAUg4dvrlQ2rUNk/lgIr6JnpWu/0Tr2prTckOk=";
 
-  mypy-boto3-apigateway = buildMypyBoto3Package "apigateway" "1.34.56" "sha256-WrFdsw1zAZg4TWRF1QzB/smDYbhTZt0JKxDpufShoss=";
+  mypy-boto3-amplifyuibuilder =
+    buildMypyBoto3Package "amplifyuibuilder" "1.34.51"
+      "sha256-umxA1d0jlSysBkUFP8VPRMwuwYxdsRz0yRH7lgr/Hhc=";
 
-  mypy-boto3-apigatewaymanagementapi = buildMypyBoto3Package "apigatewaymanagementapi" "1.34.0" "sha256-911Sd+7hnHpAhDFE2lDhl+b3Pewd5QWWOPdg+TcZ6VU=";
+  mypy-boto3-apigateway =
+    buildMypyBoto3Package "apigateway" "1.34.56"
+      "sha256-WrFdsw1zAZg4TWRF1QzB/smDYbhTZt0JKxDpufShoss=";
 
-  mypy-boto3-apigatewayv2 = buildMypyBoto3Package "apigatewayv2" "1.34.0" "sha256-ydpZ3osSSMwTtGsnRn1SygX5d9Kq8jHwqdQDKcmKXTY=";
+  mypy-boto3-apigatewaymanagementapi =
+    buildMypyBoto3Package "apigatewaymanagementapi" "1.34.0"
+      "sha256-911Sd+7hnHpAhDFE2lDhl+b3Pewd5QWWOPdg+TcZ6VU=";
 
-  mypy-boto3-appconfig = buildMypyBoto3Package "appconfig" "1.34.58" "sha256-f073cXEkDyzkPeOPclhS0O6ZVvEmYPkGPMXrAD8LkE4=";
+  mypy-boto3-apigatewayv2 =
+    buildMypyBoto3Package "apigatewayv2" "1.34.0"
+      "sha256-ydpZ3osSSMwTtGsnRn1SygX5d9Kq8jHwqdQDKcmKXTY=";
 
-  mypy-boto3-appconfigdata = buildMypyBoto3Package "appconfigdata" "1.34.24" "sha256-pSo1Qw6ZKN0XzERlCRmCtvJEOjgyd+a82t6Q3pPaU8Q=";
+  mypy-boto3-appconfig =
+    buildMypyBoto3Package "appconfig" "1.34.58"
+      "sha256-f073cXEkDyzkPeOPclhS0O6ZVvEmYPkGPMXrAD8LkE4=";
 
-  mypy-boto3-appfabric = buildMypyBoto3Package "appfabric" "1.34.0" "sha256-wjvOtCvFrj+YPvyqvR8cKIvwvC6x15WeSX6PkNp4OWg=";
+  mypy-boto3-appconfigdata =
+    buildMypyBoto3Package "appconfigdata" "1.34.24"
+      "sha256-pSo1Qw6ZKN0XzERlCRmCtvJEOjgyd+a82t6Q3pPaU8Q=";
 
-  mypy-boto3-appflow = buildMypyBoto3Package "appflow" "1.34.0" "sha256-XruMwzBrjV7QTHOcHKqszt75cHX+578wbTwFMwyXHzE=";
+  mypy-boto3-appfabric =
+    buildMypyBoto3Package "appfabric" "1.34.0"
+      "sha256-wjvOtCvFrj+YPvyqvR8cKIvwvC6x15WeSX6PkNp4OWg=";
 
-  mypy-boto3-appintegrations = buildMypyBoto3Package "appintegrations" "1.34.6" "sha256-iVaOlWOiCeocOJpcsxF0hlzKhGE3iq6Z7OifLWA3kkM=";
+  mypy-boto3-appflow =
+    buildMypyBoto3Package "appflow" "1.34.0"
+      "sha256-XruMwzBrjV7QTHOcHKqszt75cHX+578wbTwFMwyXHzE=";
 
-  mypy-boto3-application-autoscaling = buildMypyBoto3Package "application-autoscaling" "1.34.0" "sha256-xW+Rc6yjDBviNDBDB63ssg0aPZFytaVfrVlA32wY/D4=";
+  mypy-boto3-appintegrations =
+    buildMypyBoto3Package "appintegrations" "1.34.6"
+      "sha256-iVaOlWOiCeocOJpcsxF0hlzKhGE3iq6Z7OifLWA3kkM=";
 
-  mypy-boto3-application-insights = buildMypyBoto3Package "application-insights" "1.34.0" "sha256-p/yLWmIGBSkMcqbjMUjyTYiskfSRWW3hKvtqepJZtyM=";
+  mypy-boto3-application-autoscaling =
+    buildMypyBoto3Package "application-autoscaling" "1.34.0"
+      "sha256-xW+Rc6yjDBviNDBDB63ssg0aPZFytaVfrVlA32wY/D4=";
 
-  mypy-boto3-applicationcostprofiler = buildMypyBoto3Package "applicationcostprofiler" "1.34.0" "sha256-ToSRJScC8711J5fkZj/TNmUrpiBNwTplGjvpu1gidys=";
+  mypy-boto3-application-insights =
+    buildMypyBoto3Package "application-insights" "1.34.0"
+      "sha256-p/yLWmIGBSkMcqbjMUjyTYiskfSRWW3hKvtqepJZtyM=";
 
-  mypy-boto3-appmesh = buildMypyBoto3Package "appmesh" "1.34.0" "sha256-AXJ4z/54qPQeHKbZF6Is4OXt9/gZNacmYnLwfxPcn+E=";
+  mypy-boto3-applicationcostprofiler =
+    buildMypyBoto3Package "applicationcostprofiler" "1.34.0"
+      "sha256-ToSRJScC8711J5fkZj/TNmUrpiBNwTplGjvpu1gidys=";
 
-  mypy-boto3-apprunner = buildMypyBoto3Package "apprunner" "1.34.11" "sha256-p4txQ08e6jpYiJmjG/JIXyObXhTnlXB8S5QDtUPUFt0=";
+  mypy-boto3-appmesh =
+    buildMypyBoto3Package "appmesh" "1.34.0"
+      "sha256-AXJ4z/54qPQeHKbZF6Is4OXt9/gZNacmYnLwfxPcn+E=";
 
-  mypy-boto3-appstream = buildMypyBoto3Package "appstream" "1.34.5" "sha256-1m9YDw1fzoe4Y37yW6a1545SR2QGSrr5qbqYfXEax7o=";
+  mypy-boto3-apprunner =
+    buildMypyBoto3Package "apprunner" "1.34.11"
+      "sha256-p4txQ08e6jpYiJmjG/JIXyObXhTnlXB8S5QDtUPUFt0=";
 
-  mypy-boto3-appsync = buildMypyBoto3Package "appsync" "1.34.49" "sha256-J2qTVaXhqsfdupN6eLgpyGTHkPRRC1TZGNP2PRKF0v0=";
+  mypy-boto3-appstream =
+    buildMypyBoto3Package "appstream" "1.34.5"
+      "sha256-1m9YDw1fzoe4Y37yW6a1545SR2QGSrr5qbqYfXEax7o=";
 
-  mypy-boto3-arc-zonal-shift = buildMypyBoto3Package "arc-zonal-shift" "1.34.0" "sha256-FhQaiu0Sc4HkkaRuhtgvUBMOgj80DbIBzZLEbZB41Cs=";
+  mypy-boto3-appsync =
+    buildMypyBoto3Package "appsync" "1.34.49"
+      "sha256-J2qTVaXhqsfdupN6eLgpyGTHkPRRC1TZGNP2PRKF0v0=";
 
-  mypy-boto3-athena = buildMypyBoto3Package "athena" "1.34.23" "sha256-PDvz2+2XcNi/nYkGjOeb8t1JbIN+SxSSifU6sDXoNyc=";
+  mypy-boto3-arc-zonal-shift =
+    buildMypyBoto3Package "arc-zonal-shift" "1.34.0"
+      "sha256-FhQaiu0Sc4HkkaRuhtgvUBMOgj80DbIBzZLEbZB41Cs=";
 
-  mypy-boto3-auditmanager = buildMypyBoto3Package "auditmanager" "1.34.0" "sha256-22Xkl1A5wzKDpRQcr/lp7gQsDPtQjvjK3nBm5O2ZS+k=";
+  mypy-boto3-athena =
+    buildMypyBoto3Package "athena" "1.34.23"
+      "sha256-PDvz2+2XcNi/nYkGjOeb8t1JbIN+SxSSifU6sDXoNyc=";
 
-  mypy-boto3-autoscaling = buildMypyBoto3Package "autoscaling" "1.34.54" "sha256-MGACE7CeturY9BN6Gq3VAvz4TqeoQ/ASlSdbX9LLTbQ=";
+  mypy-boto3-auditmanager =
+    buildMypyBoto3Package "auditmanager" "1.34.0"
+      "sha256-22Xkl1A5wzKDpRQcr/lp7gQsDPtQjvjK3nBm5O2ZS+k=";
 
-  mypy-boto3-autoscaling-plans = buildMypyBoto3Package "autoscaling-plans" "1.34.0" "sha256-16siojcxNe5MuSZSRJXPAz2UudJozEEyCYUrsGNDAM8=";
+  mypy-boto3-autoscaling =
+    buildMypyBoto3Package "autoscaling" "1.34.54"
+      "sha256-MGACE7CeturY9BN6Gq3VAvz4TqeoQ/ASlSdbX9LLTbQ=";
 
-  mypy-boto3-backup = buildMypyBoto3Package "backup" "1.34.64" "sha256-RvxhEmrOtkvagjaj8x2H7AAp+uK9qDIDe7T9p52rKRc=";
+  mypy-boto3-autoscaling-plans =
+    buildMypyBoto3Package "autoscaling-plans" "1.34.0"
+      "sha256-16siojcxNe5MuSZSRJXPAz2UudJozEEyCYUrsGNDAM8=";
 
-  mypy-boto3-backup-gateway = buildMypyBoto3Package "backup-gateway" "1.34.0" "sha256-nSIEEDKJfI852/WBQ7OuDPuVijEiMr1vhpkzODbhRRc=";
+  mypy-boto3-backup =
+    buildMypyBoto3Package "backup" "1.34.64"
+      "sha256-RvxhEmrOtkvagjaj8x2H7AAp+uK9qDIDe7T9p52rKRc=";
 
-  mypy-boto3-backupstorage = buildMypyBoto3Package "backupstorage" "1.34.0" "sha256-Y8kjZ+ov8OsiJ8Sm1LlvP8YbgVc+AkLkbZIhOh4y7ZY=";
+  mypy-boto3-backup-gateway =
+    buildMypyBoto3Package "backup-gateway" "1.34.0"
+      "sha256-nSIEEDKJfI852/WBQ7OuDPuVijEiMr1vhpkzODbhRRc=";
 
-  mypy-boto3-batch = buildMypyBoto3Package "batch" "1.34.83" "sha256-mJ6t+8ov7x8tfJNavY6qZpHxwenVGhTXy6NRlD7muPc=";
+  mypy-boto3-backupstorage =
+    buildMypyBoto3Package "backupstorage" "1.34.0"
+      "sha256-Y8kjZ+ov8OsiJ8Sm1LlvP8YbgVc+AkLkbZIhOh4y7ZY=";
 
-  mypy-boto3-billingconductor = buildMypyBoto3Package "billingconductor" "1.34.1" "sha256-uXxQkoe2u3idcYta9YFbjxoK8HsvUiRQSyYrYhVi1kU=";
+  mypy-boto3-batch =
+    buildMypyBoto3Package "batch" "1.34.83"
+      "sha256-mJ6t+8ov7x8tfJNavY6qZpHxwenVGhTXy6NRlD7muPc=";
 
-  mypy-boto3-braket = buildMypyBoto3Package "braket" "1.34.39" "sha256-laMrKu9oN5a9yvB8lyhdjpq5hm1HGAFn3iJ0lReRpOI=";
+  mypy-boto3-billingconductor =
+    buildMypyBoto3Package "billingconductor" "1.34.1"
+      "sha256-uXxQkoe2u3idcYta9YFbjxoK8HsvUiRQSyYrYhVi1kU=";
 
-  mypy-boto3-budgets = buildMypyBoto3Package "budgets" "1.34.0" "sha256-gs8JYnpFNOMWppBO2R3DO+c6RecQC0vzaox5DqXCKOA=";
+  mypy-boto3-braket =
+    buildMypyBoto3Package "braket" "1.34.39"
+      "sha256-laMrKu9oN5a9yvB8lyhdjpq5hm1HGAFn3iJ0lReRpOI=";
 
-  mypy-boto3-ce = buildMypyBoto3Package "ce" "1.34.71" "sha256-VfB823/q+ie97Bv5GXhsBaGxAuXSDbfFq2rO6TjThXY=";
+  mypy-boto3-budgets =
+    buildMypyBoto3Package "budgets" "1.34.0"
+      "sha256-gs8JYnpFNOMWppBO2R3DO+c6RecQC0vzaox5DqXCKOA=";
 
-  mypy-boto3-chime = buildMypyBoto3Package "chime" "1.34.0" "sha256-/IBkHJf4t1K/Ubdf/hUw5XToNBTCziMfTSdksxMwA2Q=";
+  mypy-boto3-ce =
+    buildMypyBoto3Package "ce" "1.34.71"
+      "sha256-VfB823/q+ie97Bv5GXhsBaGxAuXSDbfFq2rO6TjThXY=";
 
-  mypy-boto3-chime-sdk-identity = buildMypyBoto3Package "chime-sdk-identity" "1.34.0" "sha256-3gXUFr3+Tc5PgwsQuQY8D2J0SKGQJRXgQz7/XKYNr5k=";
+  mypy-boto3-chime =
+    buildMypyBoto3Package "chime" "1.34.0"
+      "sha256-/IBkHJf4t1K/Ubdf/hUw5XToNBTCziMfTSdksxMwA2Q=";
 
-  mypy-boto3-chime-sdk-media-pipelines = buildMypyBoto3Package "chime-sdk-media-pipelines" "1.34.0" "sha256-h5RD+anRtH0UQ5pFjhygN9oZDFdIRZMfGXSKlT2HuSY=";
+  mypy-boto3-chime-sdk-identity =
+    buildMypyBoto3Package "chime-sdk-identity" "1.34.0"
+      "sha256-3gXUFr3+Tc5PgwsQuQY8D2J0SKGQJRXgQz7/XKYNr5k=";
 
-  mypy-boto3-chime-sdk-meetings = buildMypyBoto3Package "chime-sdk-meetings" "1.34.4" "sha256-AmwzLd8iLGdmo1Ajv4IVrxwyf/UljG0I06um2S3PG+E=";
+  mypy-boto3-chime-sdk-media-pipelines =
+    buildMypyBoto3Package "chime-sdk-media-pipelines" "1.34.0"
+      "sha256-h5RD+anRtH0UQ5pFjhygN9oZDFdIRZMfGXSKlT2HuSY=";
 
-  mypy-boto3-chime-sdk-messaging = buildMypyBoto3Package "chime-sdk-messaging" "1.34.0" "sha256-8Pq48GBFKQRdmoAu9qxAR14xRSP8/roBrZHxzaTBB54=";
+  mypy-boto3-chime-sdk-meetings =
+    buildMypyBoto3Package "chime-sdk-meetings" "1.34.4"
+      "sha256-AmwzLd8iLGdmo1Ajv4IVrxwyf/UljG0I06um2S3PG+E=";
 
-  mypy-boto3-chime-sdk-voice = buildMypyBoto3Package "chime-sdk-voice" "1.34.0" "sha256-9fQQgWFKeabSblJIhP6mN0CEnSixkz1r3mf/k6IL/BE=";
+  mypy-boto3-chime-sdk-messaging =
+    buildMypyBoto3Package "chime-sdk-messaging" "1.34.0"
+      "sha256-8Pq48GBFKQRdmoAu9qxAR14xRSP8/roBrZHxzaTBB54=";
 
-  mypy-boto3-cleanrooms = buildMypyBoto3Package "cleanrooms" "1.34.82" "sha256-KaCs/P3NM3IeZ9V9khIwysyBXBG/8RuGFBAlrbMYn4Y=";
+  mypy-boto3-chime-sdk-voice =
+    buildMypyBoto3Package "chime-sdk-voice" "1.34.0"
+      "sha256-9fQQgWFKeabSblJIhP6mN0CEnSixkz1r3mf/k6IL/BE=";
 
-  mypy-boto3-cloud9 = buildMypyBoto3Package "cloud9" "1.34.24" "sha256-fryD7UfO5cdFS7vMxmZaT9LW4nNSGTQCd3NyD60f9wA=";
+  mypy-boto3-cleanrooms =
+    buildMypyBoto3Package "cleanrooms" "1.34.82"
+      "sha256-KaCs/P3NM3IeZ9V9khIwysyBXBG/8RuGFBAlrbMYn4Y=";
 
-  mypy-boto3-cloudcontrol = buildMypyBoto3Package "cloudcontrol" "1.34.0" "sha256-81M2llb46sviZ874/vHVaqOU1PvQs+Zdil8bxr1pEWM=";
+  mypy-boto3-cloud9 =
+    buildMypyBoto3Package "cloud9" "1.34.24"
+      "sha256-fryD7UfO5cdFS7vMxmZaT9LW4nNSGTQCd3NyD60f9wA=";
 
-  mypy-boto3-clouddirectory = buildMypyBoto3Package "clouddirectory" "1.34.0" "sha256-lWJQClNEhyq9CN8ThcHtVcEsowIp+V8RXh4rgHAclfM=";
+  mypy-boto3-cloudcontrol =
+    buildMypyBoto3Package "cloudcontrol" "1.34.0"
+      "sha256-81M2llb46sviZ874/vHVaqOU1PvQs+Zdil8bxr1pEWM=";
 
-  mypy-boto3-cloudformation = buildMypyBoto3Package "cloudformation" "1.34.77" "sha256-mQAUGCaB+d8iV/GFBWEmwNswvxJg9s09Rs7bPPRn8K0=";
+  mypy-boto3-clouddirectory =
+    buildMypyBoto3Package "clouddirectory" "1.34.0"
+      "sha256-lWJQClNEhyq9CN8ThcHtVcEsowIp+V8RXh4rgHAclfM=";
 
-  mypy-boto3-cloudfront = buildMypyBoto3Package "cloudfront" "1.34.83" "sha256-glPRMg4IS/5Mz6ckyQWgZuu9G3IlPsfA97fx41YpSw0=";
+  mypy-boto3-cloudformation =
+    buildMypyBoto3Package "cloudformation" "1.34.77"
+      "sha256-mQAUGCaB+d8iV/GFBWEmwNswvxJg9s09Rs7bPPRn8K0=";
 
-  mypy-boto3-cloudhsm = buildMypyBoto3Package "cloudhsm" "1.34.0" "sha256-Sd/YlKNm/1VRoJ+e+3YlOf4jKoewYVGM4FNYlST+9AY=";
+  mypy-boto3-cloudfront =
+    buildMypyBoto3Package "cloudfront" "1.34.83"
+      "sha256-glPRMg4IS/5Mz6ckyQWgZuu9G3IlPsfA97fx41YpSw0=";
 
-  mypy-boto3-cloudhsmv2 = buildMypyBoto3Package "cloudhsmv2" "1.34.0" "sha256-TCKdRXnA2x3LBop9boixNmkPafTdIOY8sGaUSeA9Sic=";
+  mypy-boto3-cloudhsm =
+    buildMypyBoto3Package "cloudhsm" "1.34.0"
+      "sha256-Sd/YlKNm/1VRoJ+e+3YlOf4jKoewYVGM4FNYlST+9AY=";
 
-  mypy-boto3-cloudsearch = buildMypyBoto3Package "cloudsearch" "1.34.0" "sha256-S1re04NWngrjlcLIPzP4D0I1cVqvt/Taku6CTTfvtMw=";
+  mypy-boto3-cloudhsmv2 =
+    buildMypyBoto3Package "cloudhsmv2" "1.34.0"
+      "sha256-TCKdRXnA2x3LBop9boixNmkPafTdIOY8sGaUSeA9Sic=";
 
-  mypy-boto3-cloudsearchdomain = buildMypyBoto3Package "cloudsearchdomain" "1.34.0" "sha256-jhhwFXH80aZjVqVMZulwoCvu3EmXj4BbJ3DQ6eJPS4E=";
+  mypy-boto3-cloudsearch =
+    buildMypyBoto3Package "cloudsearch" "1.34.0"
+      "sha256-S1re04NWngrjlcLIPzP4D0I1cVqvt/Taku6CTTfvtMw=";
 
-  mypy-boto3-cloudtrail = buildMypyBoto3Package "cloudtrail" "1.34.59" "sha256-0gwq1zhZcLc8gVGo337AqqC39w8MJR6JK948No/yzVA=";
+  mypy-boto3-cloudsearchdomain =
+    buildMypyBoto3Package "cloudsearchdomain" "1.34.0"
+      "sha256-jhhwFXH80aZjVqVMZulwoCvu3EmXj4BbJ3DQ6eJPS4E=";
 
-  mypy-boto3-cloudtrail-data = buildMypyBoto3Package "cloudtrail-data" "1.34.0" "sha256-ACiJrI+VTHr06i8PKgDY/K8houFUZQNS1lluouadCTQ=";
+  mypy-boto3-cloudtrail =
+    buildMypyBoto3Package "cloudtrail" "1.34.59"
+      "sha256-0gwq1zhZcLc8gVGo337AqqC39w8MJR6JK948No/yzVA=";
 
-  mypy-boto3-cloudwatch = buildMypyBoto3Package "cloudwatch" "1.34.83" "sha256-dm4WbFtGPZiFpZKdwWu1kuD6fXvq9WmqT1AdhahIvBM=";
+  mypy-boto3-cloudtrail-data =
+    buildMypyBoto3Package "cloudtrail-data" "1.34.0"
+      "sha256-ACiJrI+VTHr06i8PKgDY/K8houFUZQNS1lluouadCTQ=";
 
-  mypy-boto3-codeartifact = buildMypyBoto3Package "codeartifact" "1.34.68" "sha256-Ey0cmx0OxN1/VXIyvn0EOBP9qYIuc/XyFVZniHLaNEY=";
+  mypy-boto3-cloudwatch =
+    buildMypyBoto3Package "cloudwatch" "1.34.83"
+      "sha256-dm4WbFtGPZiFpZKdwWu1kuD6fXvq9WmqT1AdhahIvBM=";
 
-  mypy-boto3-codebuild = buildMypyBoto3Package "codebuild" "1.34.83" "sha256-nf1rO/BmEFenb/Z/bWKHRDpZVG3WZb9OPIsxcKOdATo=";
+  mypy-boto3-codeartifact =
+    buildMypyBoto3Package "codeartifact" "1.34.68"
+      "sha256-Ey0cmx0OxN1/VXIyvn0EOBP9qYIuc/XyFVZniHLaNEY=";
 
-  mypy-boto3-codecatalyst = buildMypyBoto3Package "codecatalyst" "1.34.73" "sha256-jQ/DIoWXQWo1oVWi4Gn88cxr78QCs45EVtgfc6fZkFk=";
+  mypy-boto3-codebuild =
+    buildMypyBoto3Package "codebuild" "1.34.83"
+      "sha256-nf1rO/BmEFenb/Z/bWKHRDpZVG3WZb9OPIsxcKOdATo=";
 
-  mypy-boto3-codecommit = buildMypyBoto3Package "codecommit" "1.34.6" "sha256-wCw6e7yvMjM+A6jXfB2D4Z+i9s3e/F9Ih/VxD6iiwws=";
+  mypy-boto3-codecatalyst =
+    buildMypyBoto3Package "codecatalyst" "1.34.73"
+      "sha256-jQ/DIoWXQWo1oVWi4Gn88cxr78QCs45EVtgfc6fZkFk=";
 
-  mypy-boto3-codedeploy = buildMypyBoto3Package "codedeploy" "1.34.0" "sha256-Sxtcl/fO+A2/s/6O3VC1BPIJ3dDamshEEmKXqyg4fN8=";
+  mypy-boto3-codecommit =
+    buildMypyBoto3Package "codecommit" "1.34.6"
+      "sha256-wCw6e7yvMjM+A6jXfB2D4Z+i9s3e/F9Ih/VxD6iiwws=";
 
-  mypy-boto3-codeguru-reviewer = buildMypyBoto3Package "codeguru-reviewer" "1.34.0" "sha256-20W+LBYsQE/pNs94ZbVWNw0+2817gwfGKaJHCoiDsPM=";
+  mypy-boto3-codedeploy =
+    buildMypyBoto3Package "codedeploy" "1.34.0"
+      "sha256-Sxtcl/fO+A2/s/6O3VC1BPIJ3dDamshEEmKXqyg4fN8=";
 
-  mypy-boto3-codeguru-security = buildMypyBoto3Package "codeguru-security" "1.34.0" "sha256-DTtYCgcy3LWGxuxqSAkeS9qoBq1YWwAWfZU2DD44BOY=";
+  mypy-boto3-codeguru-reviewer =
+    buildMypyBoto3Package "codeguru-reviewer" "1.34.0"
+      "sha256-20W+LBYsQE/pNs94ZbVWNw0+2817gwfGKaJHCoiDsPM=";
 
-  mypy-boto3-codeguruprofiler = buildMypyBoto3Package "codeguruprofiler" "1.34.0" "sha256-pAZL9m0SHRYiIrXzBf+IeEkQOXS4/6OJqoDI6og3N5s=";
+  mypy-boto3-codeguru-security =
+    buildMypyBoto3Package "codeguru-security" "1.34.0"
+      "sha256-DTtYCgcy3LWGxuxqSAkeS9qoBq1YWwAWfZU2DD44BOY=";
 
-  mypy-boto3-codepipeline = buildMypyBoto3Package "codepipeline" "1.34.43" "sha256-omGtS0+5qBDBxCcKoOM+dsraE22m129zYUJB2yRxBtQ=";
+  mypy-boto3-codeguruprofiler =
+    buildMypyBoto3Package "codeguruprofiler" "1.34.0"
+      "sha256-pAZL9m0SHRYiIrXzBf+IeEkQOXS4/6OJqoDI6og3N5s=";
 
-  mypy-boto3-codestar = buildMypyBoto3Package "codestar" "1.34.0" "sha256-BAueRLlYZGDiF6DtjxL24twLYYZqD3ErdJ73fsFoG1k=";
+  mypy-boto3-codepipeline =
+    buildMypyBoto3Package "codepipeline" "1.34.43"
+      "sha256-omGtS0+5qBDBxCcKoOM+dsraE22m129zYUJB2yRxBtQ=";
 
-  mypy-boto3-codestar-connections = buildMypyBoto3Package "codestar-connections" "1.34.60" "sha256-WH/cN8BXG7c79gGR/0m3xvEPNdPAFRosInmO9DeAVdM=";
+  mypy-boto3-codestar =
+    buildMypyBoto3Package "codestar" "1.34.0"
+      "sha256-BAueRLlYZGDiF6DtjxL24twLYYZqD3ErdJ73fsFoG1k=";
 
-  mypy-boto3-codestar-notifications = buildMypyBoto3Package "codestar-notifications" "1.34.0" "sha256-JmXEpHbOhcO9F++G+ohXPuXoNILbcL9r5qyH4OooCtc=";
+  mypy-boto3-codestar-connections =
+    buildMypyBoto3Package "codestar-connections" "1.34.60"
+      "sha256-WH/cN8BXG7c79gGR/0m3xvEPNdPAFRosInmO9DeAVdM=";
 
-  mypy-boto3-cognito-identity = buildMypyBoto3Package "cognito-identity" "1.34.0" "sha256-6UlyNX0a1wG5FR/WHMZOwysikGffNCX6Fo1MYvFuFwM=";
+  mypy-boto3-codestar-notifications =
+    buildMypyBoto3Package "codestar-notifications" "1.34.0"
+      "sha256-JmXEpHbOhcO9F++G+ohXPuXoNILbcL9r5qyH4OooCtc=";
 
-  mypy-boto3-cognito-idp = buildMypyBoto3Package "cognito-idp" "1.34.59" "sha256-kZpXb5MzK4IceWnNs9tWWLhQnysfWGuOLf00J4/ypvw=";
+  mypy-boto3-cognito-identity =
+    buildMypyBoto3Package "cognito-identity" "1.34.0"
+      "sha256-6UlyNX0a1wG5FR/WHMZOwysikGffNCX6Fo1MYvFuFwM=";
 
-  mypy-boto3-cognito-sync = buildMypyBoto3Package "cognito-sync" "1.34.0" "sha256-JTkmpEHwKN5IyoGVs4beVAEOr1fZPxBoYjzNBgjTEY0=";
+  mypy-boto3-cognito-idp =
+    buildMypyBoto3Package "cognito-idp" "1.34.59"
+      "sha256-kZpXb5MzK4IceWnNs9tWWLhQnysfWGuOLf00J4/ypvw=";
 
-  mypy-boto3-comprehend = buildMypyBoto3Package "comprehend" "1.34.30" "sha256-G7mSJWcr0ntPX6WoaeTWPw/uB32yn6xXPyyQvDVfa8s=";
+  mypy-boto3-cognito-sync =
+    buildMypyBoto3Package "cognito-sync" "1.34.0"
+      "sha256-JTkmpEHwKN5IyoGVs4beVAEOr1fZPxBoYjzNBgjTEY0=";
 
-  mypy-boto3-comprehendmedical = buildMypyBoto3Package "comprehendmedical" "1.34.0" "sha256-4KzL56xU474te8tW5xVZo6D5Pwe3GLRQbQfX8CXTz9g=";
+  mypy-boto3-comprehend =
+    buildMypyBoto3Package "comprehend" "1.34.30"
+      "sha256-G7mSJWcr0ntPX6WoaeTWPw/uB32yn6xXPyyQvDVfa8s=";
 
-  mypy-boto3-compute-optimizer = buildMypyBoto3Package "compute-optimizer" "1.34.73" "sha256-WOPbzONtQ+hnVYwWCWC2Q/E1mqWNww0K2tbJhZxjAHo=";
+  mypy-boto3-comprehendmedical =
+    buildMypyBoto3Package "comprehendmedical" "1.34.0"
+      "sha256-4KzL56xU474te8tW5xVZo6D5Pwe3GLRQbQfX8CXTz9g=";
 
-  mypy-boto3-config = buildMypyBoto3Package "config" "1.34.45" "sha256-LN1CcIOj9cgzSNCvnUVwLRNPXlitHAlt+5jj6wu6i8E=";
+  mypy-boto3-compute-optimizer =
+    buildMypyBoto3Package "compute-optimizer" "1.34.73"
+      "sha256-WOPbzONtQ+hnVYwWCWC2Q/E1mqWNww0K2tbJhZxjAHo=";
 
-  mypy-boto3-connect = buildMypyBoto3Package "connect" "1.34.82" "sha256-QyZteRrk1d+Qwqj87uUb4f2ZK5SjPdMJV4NGv6kwrl4=";
+  mypy-boto3-config =
+    buildMypyBoto3Package "config" "1.34.45"
+      "sha256-LN1CcIOj9cgzSNCvnUVwLRNPXlitHAlt+5jj6wu6i8E=";
 
-  mypy-boto3-connect-contact-lens = buildMypyBoto3Package "connect-contact-lens" "1.34.0" "sha256-Wx9vcjlgXdWZ2qP3Y/hTY2LAeTd+hyyV5JSIuKQ5I5k=";
+  mypy-boto3-connect =
+    buildMypyBoto3Package "connect" "1.34.82"
+      "sha256-QyZteRrk1d+Qwqj87uUb4f2ZK5SjPdMJV4NGv6kwrl4=";
 
-  mypy-boto3-connectcampaigns = buildMypyBoto3Package "connectcampaigns" "1.34.16" "sha256-CR1FuVJgYODKEhDmmwcWrjPyZm7HsFRlzq3HlnKe81E=";
+  mypy-boto3-connect-contact-lens =
+    buildMypyBoto3Package "connect-contact-lens" "1.34.0"
+      "sha256-Wx9vcjlgXdWZ2qP3Y/hTY2LAeTd+hyyV5JSIuKQ5I5k=";
 
-  mypy-boto3-connectcases = buildMypyBoto3Package "connectcases" "1.34.24" "sha256-a3P7wPx2FQ3V5T68B4fYzuq2juiqs7R8K5WSbyWu5ug=";
+  mypy-boto3-connectcampaigns =
+    buildMypyBoto3Package "connectcampaigns" "1.34.16"
+      "sha256-CR1FuVJgYODKEhDmmwcWrjPyZm7HsFRlzq3HlnKe81E=";
 
-  mypy-boto3-connectparticipant = buildMypyBoto3Package "connectparticipant" "1.34.44" "sha256-kP4ovwHfJoeRjSyfeL0M1U70aJoApMUUWOLFRpt6H+w=";
+  mypy-boto3-connectcases =
+    buildMypyBoto3Package "connectcases" "1.34.24"
+      "sha256-a3P7wPx2FQ3V5T68B4fYzuq2juiqs7R8K5WSbyWu5ug=";
 
-  mypy-boto3-controltower = buildMypyBoto3Package "controltower" "1.34.42" "sha256-HwVES0lu75XkBPE7WQMSP2tOSogAqO3yr+cIeWaw9Is=";
+  mypy-boto3-connectparticipant =
+    buildMypyBoto3Package "connectparticipant" "1.34.44"
+      "sha256-kP4ovwHfJoeRjSyfeL0M1U70aJoApMUUWOLFRpt6H+w=";
 
-  mypy-boto3-cur = buildMypyBoto3Package "cur" "1.34.0" "sha256-vwMILmIX7uzAGXdl1Z5mxVMJlgZCtA3Svp8mFmoZ6tQ=";
+  mypy-boto3-controltower =
+    buildMypyBoto3Package "controltower" "1.34.42"
+      "sha256-HwVES0lu75XkBPE7WQMSP2tOSogAqO3yr+cIeWaw9Is=";
 
-  mypy-boto3-customer-profiles = buildMypyBoto3Package "customer-profiles" "1.34.0" "sha256-LxonO6G0Qa8j6VORcAwvR9j+w879Di5pqTzlicC9Dp8=";
+  mypy-boto3-cur =
+    buildMypyBoto3Package "cur" "1.34.0"
+      "sha256-vwMILmIX7uzAGXdl1Z5mxVMJlgZCtA3Svp8mFmoZ6tQ=";
 
-  mypy-boto3-databrew = buildMypyBoto3Package "databrew" "1.34.0" "sha256-DP1Cuyogrs/K6qM7fnbHWSTPcpjoy1m0XEsq1ONbhxM=";
+  mypy-boto3-customer-profiles =
+    buildMypyBoto3Package "customer-profiles" "1.34.0"
+      "sha256-LxonO6G0Qa8j6VORcAwvR9j+w879Di5pqTzlicC9Dp8=";
 
-  mypy-boto3-dataexchange = buildMypyBoto3Package "dataexchange" "1.34.0" "sha256-gLJ6AJQLKSiGcwWEgDwipg0D1NqYwNFiXwAUGwCJ2+0=";
+  mypy-boto3-databrew =
+    buildMypyBoto3Package "databrew" "1.34.0"
+      "sha256-DP1Cuyogrs/K6qM7fnbHWSTPcpjoy1m0XEsq1ONbhxM=";
 
-  mypy-boto3-datapipeline = buildMypyBoto3Package "datapipeline" "1.34.0" "sha256-Amn6pdW5i8+yBzuSRAmj0EnTYEGjzguQxaoLmhFFXck=";
+  mypy-boto3-dataexchange =
+    buildMypyBoto3Package "dataexchange" "1.34.0"
+      "sha256-gLJ6AJQLKSiGcwWEgDwipg0D1NqYwNFiXwAUGwCJ2+0=";
 
-  mypy-boto3-datasync = buildMypyBoto3Package "datasync" "1.34.37" "sha256-uVZsnbghzbjDAuR+d6l7EET6S9fvx2NYGEllCPLtIXQ=";
+  mypy-boto3-datapipeline =
+    buildMypyBoto3Package "datapipeline" "1.34.0"
+      "sha256-Amn6pdW5i8+yBzuSRAmj0EnTYEGjzguQxaoLmhFFXck=";
 
-  mypy-boto3-dax = buildMypyBoto3Package "dax" "1.34.0" "sha256-DH5kqV+C4vbZ8fbvAtR93jd5YB22hkYe/xgOF4oru1Y=";
+  mypy-boto3-datasync =
+    buildMypyBoto3Package "datasync" "1.34.37"
+      "sha256-uVZsnbghzbjDAuR+d6l7EET6S9fvx2NYGEllCPLtIXQ=";
 
-  mypy-boto3-detective = buildMypyBoto3Package "detective" "1.34.43" "sha256-VevmUTgN0UKhWAtGfSbQoqAhgv19XiOBBoNNsHfHezg=";
+  mypy-boto3-dax =
+    buildMypyBoto3Package "dax" "1.34.0"
+      "sha256-DH5kqV+C4vbZ8fbvAtR93jd5YB22hkYe/xgOF4oru1Y=";
 
-  mypy-boto3-devicefarm = buildMypyBoto3Package "devicefarm" "1.34.0" "sha256-X0D4Am4GUDFl703FmdrPcHXihFdzuch/eQBofDTameQ=";
+  mypy-boto3-detective =
+    buildMypyBoto3Package "detective" "1.34.43"
+      "sha256-VevmUTgN0UKhWAtGfSbQoqAhgv19XiOBBoNNsHfHezg=";
 
-  mypy-boto3-devops-guru = buildMypyBoto3Package "devops-guru" "1.34.0" "sha256-IxSTAjcJcGySV1Zzlxal23nZz7m1eaCDa8UX41+9l5o=";
+  mypy-boto3-devicefarm =
+    buildMypyBoto3Package "devicefarm" "1.34.0"
+      "sha256-X0D4Am4GUDFl703FmdrPcHXihFdzuch/eQBofDTameQ=";
 
-  mypy-boto3-directconnect = buildMypyBoto3Package "directconnect" "1.34.0" "sha256-H3xxqWZwjjzf7gFwsEfAcQmFfm3ZxNOBge0yFsfQpLM=";
+  mypy-boto3-devops-guru =
+    buildMypyBoto3Package "devops-guru" "1.34.0"
+      "sha256-IxSTAjcJcGySV1Zzlxal23nZz7m1eaCDa8UX41+9l5o=";
 
-  mypy-boto3-discovery = buildMypyBoto3Package "discovery" "1.34.0" "sha256-QT3KX4bHVigaeOxMCBBtLR3lbTLOQAl1JDnMzN7gt9s=";
+  mypy-boto3-directconnect =
+    buildMypyBoto3Package "directconnect" "1.34.0"
+      "sha256-H3xxqWZwjjzf7gFwsEfAcQmFfm3ZxNOBge0yFsfQpLM=";
 
-  mypy-boto3-dlm = buildMypyBoto3Package "dlm" "1.34.0" "sha256-uBcxQvYlWvhoVdWThvaETCKCmju0xtIFRcE8Eon6ovI=";
+  mypy-boto3-discovery =
+    buildMypyBoto3Package "discovery" "1.34.0"
+      "sha256-QT3KX4bHVigaeOxMCBBtLR3lbTLOQAl1JDnMzN7gt9s=";
 
-  mypy-boto3-dms = buildMypyBoto3Package "dms" "1.34.0" "sha256-xGGMtqja+ipLpWRMXO1VzxHqjlaZDZ31p634u5kmyNs=";
+  mypy-boto3-dlm =
+    buildMypyBoto3Package "dlm" "1.34.0"
+      "sha256-uBcxQvYlWvhoVdWThvaETCKCmju0xtIFRcE8Eon6ovI=";
 
-  mypy-boto3-docdb = buildMypyBoto3Package "docdb" "1.34.77" "sha256-7iJn4wzvQ6FAD2xU04fLwJW8hWRfmJmFxVH/2KnsUdE=";
+  mypy-boto3-dms =
+    buildMypyBoto3Package "dms" "1.34.0"
+      "sha256-xGGMtqja+ipLpWRMXO1VzxHqjlaZDZ31p634u5kmyNs=";
 
-  mypy-boto3-docdb-elastic = buildMypyBoto3Package "docdb-elastic" "1.34.53" "sha256-sNoS7ujT0rMi4WAFXwIfwkoGP3c88+l6cW7eliHheJ4=";
+  mypy-boto3-docdb =
+    buildMypyBoto3Package "docdb" "1.34.77"
+      "sha256-7iJn4wzvQ6FAD2xU04fLwJW8hWRfmJmFxVH/2KnsUdE=";
 
-  mypy-boto3-drs = buildMypyBoto3Package "drs" "1.34.50" "sha256-UWqnQAyxBnQjGYofZMOD3nhnqxTMh2U7/FNtMId1isk=";
+  mypy-boto3-docdb-elastic =
+    buildMypyBoto3Package "docdb-elastic" "1.34.53"
+      "sha256-sNoS7ujT0rMi4WAFXwIfwkoGP3c88+l6cW7eliHheJ4=";
 
-  mypy-boto3-ds = buildMypyBoto3Package "ds" "1.34.0" "sha256-qVtMpsnVLF2rN4WaEhrqlTvWvW28RcHIBjsZYwmYapc=";
+  mypy-boto3-drs =
+    buildMypyBoto3Package "drs" "1.34.50"
+      "sha256-UWqnQAyxBnQjGYofZMOD3nhnqxTMh2U7/FNtMId1isk=";
 
-  mypy-boto3-dynamodb = buildMypyBoto3Package "dynamodb" "1.34.67" "sha256-CUR+8+pr3+C+TjLKIyg4IFczQdNAvqMGXe0hU8xZPSI=";
+  mypy-boto3-ds =
+    buildMypyBoto3Package "ds" "1.34.0"
+      "sha256-qVtMpsnVLF2rN4WaEhrqlTvWvW28RcHIBjsZYwmYapc=";
 
-  mypy-boto3-dynamodbstreams = buildMypyBoto3Package "dynamodbstreams" "1.34.0" "sha256-Zx5cJE+fU9NcvK5rLR966AGIKUvfIwdpLaWWdLmuDzc=";
+  mypy-boto3-dynamodb =
+    buildMypyBoto3Package "dynamodb" "1.34.67"
+      "sha256-CUR+8+pr3+C+TjLKIyg4IFczQdNAvqMGXe0hU8xZPSI=";
 
-  mypy-boto3-ebs = buildMypyBoto3Package "ebs" "1.34.0" "sha256-xIrrXOayZed+Jcn4CFXXNgKz/G+RdiuwA04wq+Ry/fs=";
+  mypy-boto3-dynamodbstreams =
+    buildMypyBoto3Package "dynamodbstreams" "1.34.0"
+      "sha256-Zx5cJE+fU9NcvK5rLR966AGIKUvfIwdpLaWWdLmuDzc=";
 
-  mypy-boto3-ec2 = buildMypyBoto3Package "ec2" "1.34.78" "sha256-vfKasmXtPV8AlNmwyNNA6tnmtgn1w7m2eQYB6GYfikg=";
+  mypy-boto3-ebs =
+    buildMypyBoto3Package "ebs" "1.34.0"
+      "sha256-xIrrXOayZed+Jcn4CFXXNgKz/G+RdiuwA04wq+Ry/fs=";
 
-  mypy-boto3-ec2-instance-connect = buildMypyBoto3Package "ec2-instance-connect" "1.34.63" "sha256-kExmGXEJ5jrvOewmWx7AjVb3boD5GU0cEUp/2PQhzlw=";
+  mypy-boto3-ec2 =
+    buildMypyBoto3Package "ec2" "1.34.78"
+      "sha256-vfKasmXtPV8AlNmwyNNA6tnmtgn1w7m2eQYB6GYfikg=";
 
-  mypy-boto3-ecr = buildMypyBoto3Package "ecr" "1.34.0" "sha256-uD+wMR6WikLUyoIbAGwY1KPj42S4zr7nWOpPqXxaw0U=";
+  mypy-boto3-ec2-instance-connect =
+    buildMypyBoto3Package "ec2-instance-connect" "1.34.63"
+      "sha256-kExmGXEJ5jrvOewmWx7AjVb3boD5GU0cEUp/2PQhzlw=";
 
-  mypy-boto3-ecr-public = buildMypyBoto3Package "ecr-public" "1.34.0" "sha256-38ZiRVPr9L+KUF6oL23xsIiKMW0pT/nIngFkhSS3z2Y=";
+  mypy-boto3-ecr =
+    buildMypyBoto3Package "ecr" "1.34.0"
+      "sha256-uD+wMR6WikLUyoIbAGwY1KPj42S4zr7nWOpPqXxaw0U=";
 
-  mypy-boto3-ecs = buildMypyBoto3Package "ecs" "1.34.76" "sha256-y8B4Qh1WWJEgP+VHzznJdsdCsAA1pUizEh+qTDDFeoQ=";
+  mypy-boto3-ecr-public =
+    buildMypyBoto3Package "ecr-public" "1.34.0"
+      "sha256-38ZiRVPr9L+KUF6oL23xsIiKMW0pT/nIngFkhSS3z2Y=";
 
-  mypy-boto3-efs = buildMypyBoto3Package "efs" "1.34.0" "sha256-VAK7mfnPBPDC8Azm6Bxl86E8CkeArTmfgqYkIcSblYA=";
+  mypy-boto3-ecs =
+    buildMypyBoto3Package "ecs" "1.34.76"
+      "sha256-y8B4Qh1WWJEgP+VHzznJdsdCsAA1pUizEh+qTDDFeoQ=";
 
-  mypy-boto3-eks = buildMypyBoto3Package "eks" "1.34.73" "sha256-sSVfQvBmH9wYnqInvF8ixsyb0pbvHPx0zQwfPxa5caE=";
+  mypy-boto3-efs =
+    buildMypyBoto3Package "efs" "1.34.0"
+      "sha256-VAK7mfnPBPDC8Azm6Bxl86E8CkeArTmfgqYkIcSblYA=";
 
-  mypy-boto3-elastic-inference = buildMypyBoto3Package "elastic-inference" "1.34.0" "sha256-gbWKw0zDQf3qBlp1KeO7MX1j/GqRUpFAxLG0BKFrHBk=";
+  mypy-boto3-eks =
+    buildMypyBoto3Package "eks" "1.34.73"
+      "sha256-sSVfQvBmH9wYnqInvF8ixsyb0pbvHPx0zQwfPxa5caE=";
 
-  mypy-boto3-elasticache = buildMypyBoto3Package "elasticache" "1.34.72" "sha256-yZd2KB7wIw23PybblyIlCo/5IEFYxAUfbLD2J91eOzw=";
+  mypy-boto3-elastic-inference =
+    buildMypyBoto3Package "elastic-inference" "1.34.0"
+      "sha256-gbWKw0zDQf3qBlp1KeO7MX1j/GqRUpFAxLG0BKFrHBk=";
 
-  mypy-boto3-elasticbeanstalk = buildMypyBoto3Package "elasticbeanstalk" "1.34.0" "sha256-ftVFUwY81mg/9zJ4xxVjhXF1HgKpzj1koIS32cMKRLw=";
+  mypy-boto3-elasticache =
+    buildMypyBoto3Package "elasticache" "1.34.72"
+      "sha256-yZd2KB7wIw23PybblyIlCo/5IEFYxAUfbLD2J91eOzw=";
 
-  mypy-boto3-elastictranscoder = buildMypyBoto3Package "elastictranscoder" "1.34.0" "sha256-tC+9Ks0DDC3zWBd9C964X8TFoL6kblWxG0jUQrzdID0=";
+  mypy-boto3-elasticbeanstalk =
+    buildMypyBoto3Package "elasticbeanstalk" "1.34.0"
+      "sha256-ftVFUwY81mg/9zJ4xxVjhXF1HgKpzj1koIS32cMKRLw=";
 
-  mypy-boto3-elb = buildMypyBoto3Package "elb" "1.34.0" "sha256-5Eh5D872pVDd7Q+DDh3zpGMVgS8fUJsV+63H1fet73s=";
+  mypy-boto3-elastictranscoder =
+    buildMypyBoto3Package "elastictranscoder" "1.34.0"
+      "sha256-tC+9Ks0DDC3zWBd9C964X8TFoL6kblWxG0jUQrzdID0=";
 
-  mypy-boto3-elbv2 = buildMypyBoto3Package "elbv2" "1.34.63" "sha256-snXMLMHLEpJjfX1GJp6FfYgIjkS8vkbf/hESBdhxIfk=";
+  mypy-boto3-elb =
+    buildMypyBoto3Package "elb" "1.34.0"
+      "sha256-5Eh5D872pVDd7Q+DDh3zpGMVgS8fUJsV+63H1fet73s=";
 
-  mypy-boto3-emr = buildMypyBoto3Package "emr" "1.34.75" "sha256-Irxd4i5b1bbZuWBhXfLOuvoS1X5SoZH8GsgbQyy3UrY=";
+  mypy-boto3-elbv2 =
+    buildMypyBoto3Package "elbv2" "1.34.63"
+      "sha256-snXMLMHLEpJjfX1GJp6FfYgIjkS8vkbf/hESBdhxIfk=";
 
-  mypy-boto3-emr-containers = buildMypyBoto3Package "emr-containers" "1.34.78" "sha256-GvoXMnpqahn3DIZFAAye0DGwIkAQhYaXektYC6hN3Ng=";
+  mypy-boto3-emr =
+    buildMypyBoto3Package "emr" "1.34.75"
+      "sha256-Irxd4i5b1bbZuWBhXfLOuvoS1X5SoZH8GsgbQyy3UrY=";
 
-  mypy-boto3-emr-serverless = buildMypyBoto3Package "emr-serverless" "1.34.0" "sha256-YgccYi2+XhKiPGCMimrCooYPRV+iRuA1h120UdqJKUc=";
+  mypy-boto3-emr-containers =
+    buildMypyBoto3Package "emr-containers" "1.34.78"
+      "sha256-GvoXMnpqahn3DIZFAAye0DGwIkAQhYaXektYC6hN3Ng=";
 
-  mypy-boto3-entityresolution = buildMypyBoto3Package "entityresolution" "1.34.0" "sha256-qfRZtRaxysW+Ev16gnj48CePZzLBWrXmrq3tEGtfNbM=";
+  mypy-boto3-emr-serverless =
+    buildMypyBoto3Package "emr-serverless" "1.34.0"
+      "sha256-YgccYi2+XhKiPGCMimrCooYPRV+iRuA1h120UdqJKUc=";
 
-  mypy-boto3-es = buildMypyBoto3Package "es" "1.34.36" "sha256-uVLB1fjZRhlqJ/isKl5TDORmIN4ffKKqzyGZcEffa5g=";
+  mypy-boto3-entityresolution =
+    buildMypyBoto3Package "entityresolution" "1.34.0"
+      "sha256-qfRZtRaxysW+Ev16gnj48CePZzLBWrXmrq3tEGtfNbM=";
 
-  mypy-boto3-events = buildMypyBoto3Package "events" "1.34.17" "sha256-L/78a975mFWw5xBH4et01j4Ba9/aGb5NUK7d/bPtsJU=";
+  mypy-boto3-es =
+    buildMypyBoto3Package "es" "1.34.36"
+      "sha256-uVLB1fjZRhlqJ/isKl5TDORmIN4ffKKqzyGZcEffa5g=";
 
-  mypy-boto3-evidently = buildMypyBoto3Package "evidently" "1.34.0" "sha256-MkBB5iTYJYg2cWFYHR3Qu7TcsDglLPEw0MnoHqij6+A=";
+  mypy-boto3-events =
+    buildMypyBoto3Package "events" "1.34.17"
+      "sha256-L/78a975mFWw5xBH4et01j4Ba9/aGb5NUK7d/bPtsJU=";
 
-  mypy-boto3-finspace = buildMypyBoto3Package "finspace" "1.34.71" "sha256-bgPwDXqu73DjQCADmjTig6kLNOWvQ39flwhyYAbTai4=";
+  mypy-boto3-evidently =
+    buildMypyBoto3Package "evidently" "1.34.0"
+      "sha256-MkBB5iTYJYg2cWFYHR3Qu7TcsDglLPEw0MnoHqij6+A=";
 
-  mypy-boto3-finspace-data = buildMypyBoto3Package "finspace-data" "1.34.0" "sha256-8mND5BbdKY5srFwdpxSyfCUTIP4fa9hztP4daUJOB8k=";
+  mypy-boto3-finspace =
+    buildMypyBoto3Package "finspace" "1.34.71"
+      "sha256-bgPwDXqu73DjQCADmjTig6kLNOWvQ39flwhyYAbTai4=";
 
-  mypy-boto3-firehose = buildMypyBoto3Package "firehose" "1.34.69" "sha256-GCMH/XA9ETSuo39OnlvyhfHDKylsTeLO1R1+7tl2S/E=";
+  mypy-boto3-finspace-data =
+    buildMypyBoto3Package "finspace-data" "1.34.0"
+      "sha256-8mND5BbdKY5srFwdpxSyfCUTIP4fa9hztP4daUJOB8k=";
 
-  mypy-boto3-fis = buildMypyBoto3Package "fis" "1.34.63" "sha256-TJnzgQGDcybpVqg+p7Tuvw/RoY79cQPPChyHWlMxhiY=";
+  mypy-boto3-firehose =
+    buildMypyBoto3Package "firehose" "1.34.69"
+      "sha256-GCMH/XA9ETSuo39OnlvyhfHDKylsTeLO1R1+7tl2S/E=";
 
-  mypy-boto3-fms = buildMypyBoto3Package "fms" "1.34.0" "sha256-tzaSecIXzkC+Zr5MGpU7GaoiGHGsywEglZ8+Ja0XDDo=";
+  mypy-boto3-fis =
+    buildMypyBoto3Package "fis" "1.34.63"
+      "sha256-TJnzgQGDcybpVqg+p7Tuvw/RoY79cQPPChyHWlMxhiY=";
 
-  mypy-boto3-forecast = buildMypyBoto3Package "forecast" "1.34.0" "sha256-DuNZe9Q7HuEeJYuBqo7JRBTJgclyUpU9fJ62SCGYpLQ=";
+  mypy-boto3-fms =
+    buildMypyBoto3Package "fms" "1.34.0"
+      "sha256-tzaSecIXzkC+Zr5MGpU7GaoiGHGsywEglZ8+Ja0XDDo=";
 
-  mypy-boto3-forecastquery = buildMypyBoto3Package "forecastquery" "1.34.0" "sha256-IEKWQbwRDHiT/n5dSXXtLDqRVK12+EiSg9J+dGXfqx8=";
+  mypy-boto3-forecast =
+    buildMypyBoto3Package "forecast" "1.34.0"
+      "sha256-DuNZe9Q7HuEeJYuBqo7JRBTJgclyUpU9fJ62SCGYpLQ=";
 
-  mypy-boto3-frauddetector = buildMypyBoto3Package "frauddetector" "1.34.0" "sha256-EjiFEFpLKN0NmrNY43CFhQZHN+COTwRXx513X6X7vlE=";
+  mypy-boto3-forecastquery =
+    buildMypyBoto3Package "forecastquery" "1.34.0"
+      "sha256-IEKWQbwRDHiT/n5dSXXtLDqRVK12+EiSg9J+dGXfqx8=";
 
-  mypy-boto3-fsx = buildMypyBoto3Package "fsx" "1.34.55" "sha256-XsIX4C8sF1m8jGbwrDWGoV7onHA9tRlI5Dki43bf9FM=";
+  mypy-boto3-frauddetector =
+    buildMypyBoto3Package "frauddetector" "1.34.0"
+      "sha256-EjiFEFpLKN0NmrNY43CFhQZHN+COTwRXx513X6X7vlE=";
 
-  mypy-boto3-gamelift = buildMypyBoto3Package "gamelift" "1.34.1" "sha256-EUdVrcriXRUqjcyKzyuoIdDTxMSAdyKcnbJ96s/Y8Uc=";
+  mypy-boto3-fsx =
+    buildMypyBoto3Package "fsx" "1.34.55"
+      "sha256-XsIX4C8sF1m8jGbwrDWGoV7onHA9tRlI5Dki43bf9FM=";
 
-  mypy-boto3-gamesparks = buildMypyBoto3Package "gamesparks" "1.28.36" "sha256-6lQXNJ55FYvkFA14rgJGhRMjBHA3YrOybnsKNecX7So=";
+  mypy-boto3-gamelift =
+    buildMypyBoto3Package "gamelift" "1.34.1"
+      "sha256-EUdVrcriXRUqjcyKzyuoIdDTxMSAdyKcnbJ96s/Y8Uc=";
 
-  mypy-boto3-glacier = buildMypyBoto3Package "glacier" "1.34.0" "sha256-j8LUD8EjjRL1av7UEXBqNPEARaSFgstaioGJtbel4oM=";
+  mypy-boto3-gamesparks =
+    buildMypyBoto3Package "gamesparks" "1.28.36"
+      "sha256-6lQXNJ55FYvkFA14rgJGhRMjBHA3YrOybnsKNecX7So=";
 
-  mypy-boto3-globalaccelerator = buildMypyBoto3Package "globalaccelerator" "1.34.70" "sha256-7Su+rgV6KD9I4j630Qybufwn39rp/8tYQ2ldEe2Untc=";
+  mypy-boto3-glacier =
+    buildMypyBoto3Package "glacier" "1.34.0"
+      "sha256-j8LUD8EjjRL1av7UEXBqNPEARaSFgstaioGJtbel4oM=";
 
-  mypy-boto3-glue = buildMypyBoto3Package "glue" "1.34.76" "sha256-bo88vETpsKBVDQ7n0a75iJrIyslBUAe0xjcfJp/y9IE=";
+  mypy-boto3-globalaccelerator =
+    buildMypyBoto3Package "globalaccelerator" "1.34.70"
+      "sha256-7Su+rgV6KD9I4j630Qybufwn39rp/8tYQ2ldEe2Untc=";
 
-  mypy-boto3-grafana = buildMypyBoto3Package "grafana" "1.34.58" "sha256-dr+fCDf0DcWGxPPLMnzqrOCRMfoLhznyv6n679fFU/0=";
+  mypy-boto3-glue =
+    buildMypyBoto3Package "glue" "1.34.76"
+      "sha256-bo88vETpsKBVDQ7n0a75iJrIyslBUAe0xjcfJp/y9IE=";
 
-  mypy-boto3-greengrass = buildMypyBoto3Package "greengrass" "1.34.0" "sha256-ZU/xVWGlMngX0JiAhy9NEFDoXS4fsZvmLAkWqv2pocQ=";
+  mypy-boto3-grafana =
+    buildMypyBoto3Package "grafana" "1.34.58"
+      "sha256-dr+fCDf0DcWGxPPLMnzqrOCRMfoLhznyv6n679fFU/0=";
 
-  mypy-boto3-greengrassv2 = buildMypyBoto3Package "greengrassv2" "1.34.0" "sha256-O3g6JHvnfvgKL0ax9R6IWgxdEoALaycfsBAhvWdERH0=";
+  mypy-boto3-greengrass =
+    buildMypyBoto3Package "greengrass" "1.34.0"
+      "sha256-ZU/xVWGlMngX0JiAhy9NEFDoXS4fsZvmLAkWqv2pocQ=";
 
-  mypy-boto3-groundstation = buildMypyBoto3Package "groundstation" "1.34.77" "sha256-g0pN7BeRZMZqyJVjABaRSE77ZMZxDRcLv+/JHjJ/cQc=";
+  mypy-boto3-greengrassv2 =
+    buildMypyBoto3Package "greengrassv2" "1.34.0"
+      "sha256-O3g6JHvnfvgKL0ax9R6IWgxdEoALaycfsBAhvWdERH0=";
 
-  mypy-boto3-guardduty = buildMypyBoto3Package "guardduty" "1.34.73" "sha256-DasHgBMa4/hnh/otzh0Zz4nalmESIS2/HkaY4vTltRs=";
+  mypy-boto3-groundstation =
+    buildMypyBoto3Package "groundstation" "1.34.77"
+      "sha256-g0pN7BeRZMZqyJVjABaRSE77ZMZxDRcLv+/JHjJ/cQc=";
 
-  mypy-boto3-health = buildMypyBoto3Package "health" "1.34.0" "sha256-st3ygy9yZbAbh1ZWnT8XDZTBz1qWhRWXCEfr5ILQHpo=";
+  mypy-boto3-guardduty =
+    buildMypyBoto3Package "guardduty" "1.34.73"
+      "sha256-DasHgBMa4/hnh/otzh0Zz4nalmESIS2/HkaY4vTltRs=";
 
-  mypy-boto3-healthlake = buildMypyBoto3Package "healthlake" "1.34.43" "sha256-Xci7f0/o60v1TAazFC34GjpzOBQlD+SvAMCF4xM3ymI=";
+  mypy-boto3-health =
+    buildMypyBoto3Package "health" "1.34.0"
+      "sha256-st3ygy9yZbAbh1ZWnT8XDZTBz1qWhRWXCEfr5ILQHpo=";
 
-  mypy-boto3-honeycode = buildMypyBoto3Package "honeycode" "1.34.0" "sha256-HNp/STFuMLoO4qyL0iaYeiPpnMV3uzNBNFUDgzrHt9s=";
+  mypy-boto3-healthlake =
+    buildMypyBoto3Package "healthlake" "1.34.43"
+      "sha256-Xci7f0/o60v1TAazFC34GjpzOBQlD+SvAMCF4xM3ymI=";
 
-  mypy-boto3-iam = buildMypyBoto3Package "iam" "1.34.83" "sha256-cmExVhZ1fr91Cd8OmwkdWULkcOtRxLI8ZioGhzqajso=";
+  mypy-boto3-honeycode =
+    buildMypyBoto3Package "honeycode" "1.34.0"
+      "sha256-HNp/STFuMLoO4qyL0iaYeiPpnMV3uzNBNFUDgzrHt9s=";
 
-  mypy-boto3-identitystore = buildMypyBoto3Package "identitystore" "1.34.0" "sha256-OdJsMjraTe4qhpblBOuwr++4QfiMXtaaMHDAEOTBII4=";
+  mypy-boto3-iam =
+    buildMypyBoto3Package "iam" "1.34.83"
+      "sha256-cmExVhZ1fr91Cd8OmwkdWULkcOtRxLI8ZioGhzqajso=";
 
-  mypy-boto3-imagebuilder = buildMypyBoto3Package "imagebuilder" "1.34.57" "sha256-r11JVMvO/IL1d2+fGZoc4nt1JnyUXir38a8i7IsZmLQ=";
+  mypy-boto3-identitystore =
+    buildMypyBoto3Package "identitystore" "1.34.0"
+      "sha256-OdJsMjraTe4qhpblBOuwr++4QfiMXtaaMHDAEOTBII4=";
 
-  mypy-boto3-importexport = buildMypyBoto3Package "importexport" "1.34.0" "sha256-GnIzCaCuRLPdvaAmmID62uY/te1Lx5DFGin2zJuDdAM=";
+  mypy-boto3-imagebuilder =
+    buildMypyBoto3Package "imagebuilder" "1.34.57"
+      "sha256-r11JVMvO/IL1d2+fGZoc4nt1JnyUXir38a8i7IsZmLQ=";
 
-  mypy-boto3-inspector = buildMypyBoto3Package "inspector" "1.34.0" "sha256-85aAE1+azKZ9sFYxLOpVR4SkqrnfFQ1gXgGpzOBK1PE=";
+  mypy-boto3-importexport =
+    buildMypyBoto3Package "importexport" "1.34.0"
+      "sha256-GnIzCaCuRLPdvaAmmID62uY/te1Lx5DFGin2zJuDdAM=";
 
-  mypy-boto3-inspector2 = buildMypyBoto3Package "inspector2" "1.34.29" "sha256-ZMdNVgKXQnEHyK4tV/XegvFX7xdk5A1AiSfpTKWCtcY=";
+  mypy-boto3-inspector =
+    buildMypyBoto3Package "inspector" "1.34.0"
+      "sha256-85aAE1+azKZ9sFYxLOpVR4SkqrnfFQ1gXgGpzOBK1PE=";
 
-  mypy-boto3-internetmonitor = buildMypyBoto3Package "internetmonitor" "1.34.74" "sha256-VFIeJqQHHvbB+mLyzxHpZUvgGS5dJJen4AAJAMJTDqE=";
+  mypy-boto3-inspector2 =
+    buildMypyBoto3Package "inspector2" "1.34.29"
+      "sha256-ZMdNVgKXQnEHyK4tV/XegvFX7xdk5A1AiSfpTKWCtcY=";
 
-  mypy-boto3-iot = buildMypyBoto3Package "iot" "1.34.52" "sha256-YWGotOPKljY4B0JL1I+axk4MJZIk84rVxoZu9tzBGss=";
+  mypy-boto3-internetmonitor =
+    buildMypyBoto3Package "internetmonitor" "1.34.74"
+      "sha256-VFIeJqQHHvbB+mLyzxHpZUvgGS5dJJen4AAJAMJTDqE=";
 
-  mypy-boto3-iot-data = buildMypyBoto3Package "iot-data" "1.34.0" "sha256-N6UoHopsT3FM7bU01eWuqRSyyyaLBekkM+hsOU1byIM=";
+  mypy-boto3-iot =
+    buildMypyBoto3Package "iot" "1.34.52"
+      "sha256-YWGotOPKljY4B0JL1I+axk4MJZIk84rVxoZu9tzBGss=";
 
-  mypy-boto3-iot-jobs-data = buildMypyBoto3Package "iot-jobs-data" "1.34.0" "sha256-ceqk+Gt+IcIVuLp/LMsrjnUXrPt+SY+mI8G3hKdE7TY=";
+  mypy-boto3-iot-data =
+    buildMypyBoto3Package "iot-data" "1.34.0"
+      "sha256-N6UoHopsT3FM7bU01eWuqRSyyyaLBekkM+hsOU1byIM=";
 
-  mypy-boto3-iot-roborunner = buildMypyBoto3Package "iot-roborunner" "1.34.0" "sha256-TfhJHtE2zlEr80SGbxAZfK2+M/ad596fdwex+4GhBf8=";
+  mypy-boto3-iot-jobs-data =
+    buildMypyBoto3Package "iot-jobs-data" "1.34.0"
+      "sha256-ceqk+Gt+IcIVuLp/LMsrjnUXrPt+SY+mI8G3hKdE7TY=";
 
-  mypy-boto3-iot1click-devices = buildMypyBoto3Package "iot1click-devices" "1.34.0" "sha256-Zpv/kw541LoC3Z58eKGe7sK5qioWMGswQS0O+jvNZgY=";
+  mypy-boto3-iot-roborunner =
+    buildMypyBoto3Package "iot-roborunner" "1.34.0"
+      "sha256-TfhJHtE2zlEr80SGbxAZfK2+M/ad596fdwex+4GhBf8=";
 
-  mypy-boto3-iot1click-projects = buildMypyBoto3Package "iot1click-projects" "1.34.0" "sha256-QZ06B5UQSuDPUaXqZYPjawSEjIQjBwP7d5/obpvNivI=";
+  mypy-boto3-iot1click-devices =
+    buildMypyBoto3Package "iot1click-devices" "1.34.0"
+      "sha256-Zpv/kw541LoC3Z58eKGe7sK5qioWMGswQS0O+jvNZgY=";
 
-  mypy-boto3-iotanalytics = buildMypyBoto3Package "iotanalytics" "1.34.0" "sha256-aDlptQYJQ71WWYsgv+bFRoD2fmeGgiUl1Fv/oOAQJEM=";
+  mypy-boto3-iot1click-projects =
+    buildMypyBoto3Package "iot1click-projects" "1.34.0"
+      "sha256-QZ06B5UQSuDPUaXqZYPjawSEjIQjBwP7d5/obpvNivI=";
 
-  mypy-boto3-iotdeviceadvisor = buildMypyBoto3Package "iotdeviceadvisor" "1.34.0" "sha256-DBI4dJXxprfHO3ipLIVb5Ii5NK7qWJRuWjzVfHTnqO4=";
+  mypy-boto3-iotanalytics =
+    buildMypyBoto3Package "iotanalytics" "1.34.0"
+      "sha256-aDlptQYJQ71WWYsgv+bFRoD2fmeGgiUl1Fv/oOAQJEM=";
 
-  mypy-boto3-iotevents = buildMypyBoto3Package "iotevents" "1.34.47" "sha256-ppsjLI2yY9+6SmAh1mfVBuZz+gHNNZS6eKDr3fHHmJM=";
+  mypy-boto3-iotdeviceadvisor =
+    buildMypyBoto3Package "iotdeviceadvisor" "1.34.0"
+      "sha256-DBI4dJXxprfHO3ipLIVb5Ii5NK7qWJRuWjzVfHTnqO4=";
 
-  mypy-boto3-iotevents-data = buildMypyBoto3Package "iotevents-data" "1.34.0" "sha256-K7yAnxjpJfSh6bWnmcdySkCQhhVFt42zU6REiy3zKrk=";
+  mypy-boto3-iotevents =
+    buildMypyBoto3Package "iotevents" "1.34.47"
+      "sha256-ppsjLI2yY9+6SmAh1mfVBuZz+gHNNZS6eKDr3fHHmJM=";
 
-  mypy-boto3-iotfleethub = buildMypyBoto3Package "iotfleethub" "1.34.0" "sha256-wNm6OJUgAhvrXhtGaty19Tyva+nvonDOHsj9RT37FbY=";
+  mypy-boto3-iotevents-data =
+    buildMypyBoto3Package "iotevents-data" "1.34.0"
+      "sha256-K7yAnxjpJfSh6bWnmcdySkCQhhVFt42zU6REiy3zKrk=";
 
-  mypy-boto3-iotfleetwise = buildMypyBoto3Package "iotfleetwise" "1.34.20" "sha256-Pe5Pw19H2y6koJxajW46oazxoFL5UHSOQHgXnhfIQJk=";
+  mypy-boto3-iotfleethub =
+    buildMypyBoto3Package "iotfleethub" "1.34.0"
+      "sha256-wNm6OJUgAhvrXhtGaty19Tyva+nvonDOHsj9RT37FbY=";
 
-  mypy-boto3-iotsecuretunneling = buildMypyBoto3Package "iotsecuretunneling" "1.34.0" "sha256-E8658X3yWpIcRKDTtnacjuAAWqr/qnmYXFRJ/7uyKm8=";
+  mypy-boto3-iotfleetwise =
+    buildMypyBoto3Package "iotfleetwise" "1.34.20"
+      "sha256-Pe5Pw19H2y6koJxajW46oazxoFL5UHSOQHgXnhfIQJk=";
 
-  mypy-boto3-iotsitewise = buildMypyBoto3Package "iotsitewise" "1.34.0" "sha256-/WDIf5WRUYbuhkzjXrX1t3BvHd7ZXBem2o8TysFWYQw=";
+  mypy-boto3-iotsecuretunneling =
+    buildMypyBoto3Package "iotsecuretunneling" "1.34.0"
+      "sha256-E8658X3yWpIcRKDTtnacjuAAWqr/qnmYXFRJ/7uyKm8=";
 
-  mypy-boto3-iotthingsgraph = buildMypyBoto3Package "iotthingsgraph" "1.34.0" "sha256-8D0jqOuusz6SLCr+eKAZpTr9dvdonIc7+UYyXDzVzYQ=";
+  mypy-boto3-iotsitewise =
+    buildMypyBoto3Package "iotsitewise" "1.34.0"
+      "sha256-/WDIf5WRUYbuhkzjXrX1t3BvHd7ZXBem2o8TysFWYQw=";
 
-  mypy-boto3-iottwinmaker = buildMypyBoto3Package "iottwinmaker" "1.34.0" "sha256-K5LEh8wdXvftxGstThSBN73K+1FUVlE40JxvjWv6GMA=";
+  mypy-boto3-iotthingsgraph =
+    buildMypyBoto3Package "iotthingsgraph" "1.34.0"
+      "sha256-8D0jqOuusz6SLCr+eKAZpTr9dvdonIc7+UYyXDzVzYQ=";
 
-  mypy-boto3-iotwireless = buildMypyBoto3Package "iotwireless" "1.34.74" "sha256-57ZO7LlQ9/itiynqSjXu7SJrNLNaFo5WCJBqSXEYeLs=";
+  mypy-boto3-iottwinmaker =
+    buildMypyBoto3Package "iottwinmaker" "1.34.0"
+      "sha256-K5LEh8wdXvftxGstThSBN73K+1FUVlE40JxvjWv6GMA=";
 
-  mypy-boto3-ivs = buildMypyBoto3Package "ivs" "1.34.78" "sha256-ddugPjG15nmI2WsWp27TEQj8jwBLXaogznFwf1UP1nE=";
+  mypy-boto3-iotwireless =
+    buildMypyBoto3Package "iotwireless" "1.34.74"
+      "sha256-57ZO7LlQ9/itiynqSjXu7SJrNLNaFo5WCJBqSXEYeLs=";
 
-  mypy-boto3-ivs-realtime = buildMypyBoto3Package "ivs-realtime" "1.34.62" "sha256-/8P/S2xdYub8/tC0yaUbUfcxfDKpDnfAvmqneXFcAOo=";
+  mypy-boto3-ivs =
+    buildMypyBoto3Package "ivs" "1.34.78"
+      "sha256-ddugPjG15nmI2WsWp27TEQj8jwBLXaogznFwf1UP1nE=";
 
-  mypy-boto3-ivschat = buildMypyBoto3Package "ivschat" "1.34.76" "sha256-y4CqrYMo6BQAhRr3adH3Ndb2q/DkOjef8Q89Vfz4QP4=";
+  mypy-boto3-ivs-realtime =
+    buildMypyBoto3Package "ivs-realtime" "1.34.62"
+      "sha256-/8P/S2xdYub8/tC0yaUbUfcxfDKpDnfAvmqneXFcAOo=";
 
-  mypy-boto3-kafka = buildMypyBoto3Package "kafka" "1.34.61" "sha256-nXd3Qi8IZsQN595vnsMLSn6pfZU70yPb6Ebhv4SijfE=";
+  mypy-boto3-ivschat =
+    buildMypyBoto3Package "ivschat" "1.34.76"
+      "sha256-y4CqrYMo6BQAhRr3adH3Ndb2q/DkOjef8Q89Vfz4QP4=";
 
-  mypy-boto3-kafkaconnect = buildMypyBoto3Package "kafkaconnect" "1.34.50" "sha256-frPPAQeFyO92uMqqzBcSC3MVK4V4hbdO9tx4awAKAUU=";
+  mypy-boto3-kafka =
+    buildMypyBoto3Package "kafka" "1.34.61"
+      "sha256-nXd3Qi8IZsQN595vnsMLSn6pfZU70yPb6Ebhv4SijfE=";
 
-  mypy-boto3-kendra = buildMypyBoto3Package "kendra" "1.34.69" "sha256-OKUSsCfv2X9ad5XUSwm0KRwW++qb+AVtvCOurlRM/bo=";
+  mypy-boto3-kafkaconnect =
+    buildMypyBoto3Package "kafkaconnect" "1.34.50"
+      "sha256-frPPAQeFyO92uMqqzBcSC3MVK4V4hbdO9tx4awAKAUU=";
 
-  mypy-boto3-kendra-ranking = buildMypyBoto3Package "kendra-ranking" "1.34.0" "sha256-hbemz5ECtfP3oi645lZT7CCx31yg8MNqbAD32Am6l1U=";
+  mypy-boto3-kendra =
+    buildMypyBoto3Package "kendra" "1.34.69"
+      "sha256-OKUSsCfv2X9ad5XUSwm0KRwW++qb+AVtvCOurlRM/bo=";
 
-  mypy-boto3-keyspaces = buildMypyBoto3Package "keyspaces" "1.34.45" "sha256-Ucmttfi8oQIPpdfr3KPvrX1Tj3zbYxHGoYH0JNYX5UM=";
+  mypy-boto3-kendra-ranking =
+    buildMypyBoto3Package "kendra-ranking" "1.34.0"
+      "sha256-hbemz5ECtfP3oi645lZT7CCx31yg8MNqbAD32Am6l1U=";
 
-  mypy-boto3-kinesis = buildMypyBoto3Package "kinesis" "1.34.0" "sha256-9ATnW63Vl36fCXQbdpuIiIVL3UEcYxNEaGq4ie/ph0E=";
+  mypy-boto3-keyspaces =
+    buildMypyBoto3Package "keyspaces" "1.34.45"
+      "sha256-Ucmttfi8oQIPpdfr3KPvrX1Tj3zbYxHGoYH0JNYX5UM=";
 
-  mypy-boto3-kinesis-video-archived-media = buildMypyBoto3Package "kinesis-video-archived-media" "1.34.10" "sha256-B66x9erx5SlnDmTBpf4izGckF4GysChy+VRXy9tWSf4=";
+  mypy-boto3-kinesis =
+    buildMypyBoto3Package "kinesis" "1.34.0"
+      "sha256-9ATnW63Vl36fCXQbdpuIiIVL3UEcYxNEaGq4ie/ph0E=";
 
-  mypy-boto3-kinesis-video-media = buildMypyBoto3Package "kinesis-video-media" "1.34.0" "sha256-YgkG14UzymthRLg4cga80ZDK9cxZzFBTISmnfTPt8nM=";
+  mypy-boto3-kinesis-video-archived-media =
+    buildMypyBoto3Package "kinesis-video-archived-media" "1.34.10"
+      "sha256-B66x9erx5SlnDmTBpf4izGckF4GysChy+VRXy9tWSf4=";
 
-  mypy-boto3-kinesis-video-signaling = buildMypyBoto3Package "kinesis-video-signaling" "1.34.0" "sha256-aNFuruM0kQNhp+wEJr+Bo9MzLieG6a8xzbrHGAovgw8=";
+  mypy-boto3-kinesis-video-media =
+    buildMypyBoto3Package "kinesis-video-media" "1.34.0"
+      "sha256-YgkG14UzymthRLg4cga80ZDK9cxZzFBTISmnfTPt8nM=";
 
-  mypy-boto3-kinesis-video-webrtc-storage = buildMypyBoto3Package "kinesis-video-webrtc-storage" "1.34.0" "sha256-Oi6r/AxePB0znUPg3fb22qZLDS4Cola5Vvs38Railnc=";
+  mypy-boto3-kinesis-video-signaling =
+    buildMypyBoto3Package "kinesis-video-signaling" "1.34.0"
+      "sha256-aNFuruM0kQNhp+wEJr+Bo9MzLieG6a8xzbrHGAovgw8=";
 
-  mypy-boto3-kinesisanalytics = buildMypyBoto3Package "kinesisanalytics" "1.34.0" "sha256-eEoSmwMTa/hsbKbuKuzAZv4jHljGKq3b5Rw7K2Pgc50=";
+  mypy-boto3-kinesis-video-webrtc-storage =
+    buildMypyBoto3Package "kinesis-video-webrtc-storage" "1.34.0"
+      "sha256-Oi6r/AxePB0znUPg3fb22qZLDS4Cola5Vvs38Railnc=";
 
-  mypy-boto3-kinesisanalyticsv2 = buildMypyBoto3Package "kinesisanalyticsv2" "1.34.64" "sha256-7sJyrWtBcbrWlCjR7pLdBLgW7sXcRazDPBW+OGwh4Xg=";
+  mypy-boto3-kinesisanalytics =
+    buildMypyBoto3Package "kinesisanalytics" "1.34.0"
+      "sha256-eEoSmwMTa/hsbKbuKuzAZv4jHljGKq3b5Rw7K2Pgc50=";
 
-  mypy-boto3-kinesisvideo = buildMypyBoto3Package "kinesisvideo" "1.34.48" "sha256-uYSkwOuYKF3B+sj5IWbDL789Xue2yNY9g14j/2b6k6w=";
+  mypy-boto3-kinesisanalyticsv2 =
+    buildMypyBoto3Package "kinesisanalyticsv2" "1.34.64"
+      "sha256-7sJyrWtBcbrWlCjR7pLdBLgW7sXcRazDPBW+OGwh4Xg=";
 
-  mypy-boto3-kms = buildMypyBoto3Package "kms" "1.34.65" "sha256-jot13mfxhgvayvQkMxnDvjdwkpGLkwsC2eeAQpMW0II=";
+  mypy-boto3-kinesisvideo =
+    buildMypyBoto3Package "kinesisvideo" "1.34.48"
+      "sha256-uYSkwOuYKF3B+sj5IWbDL789Xue2yNY9g14j/2b6k6w=";
 
-  mypy-boto3-lakeformation = buildMypyBoto3Package "lakeformation" "1.34.7" "sha256-/IPOF44ohg59XX+lmMbx8WsaHFpBaMH440Wm5jgrKD4=";
+  mypy-boto3-kms =
+    buildMypyBoto3Package "kms" "1.34.65"
+      "sha256-jot13mfxhgvayvQkMxnDvjdwkpGLkwsC2eeAQpMW0II=";
 
-  mypy-boto3-lambda = buildMypyBoto3Package "lambda" "1.34.77" "sha256-e4HSpWBPtZLpL+CyhOzSWd4HFwM2CjO3HJtU30bYHJw=";
+  mypy-boto3-lakeformation =
+    buildMypyBoto3Package "lakeformation" "1.34.7"
+      "sha256-/IPOF44ohg59XX+lmMbx8WsaHFpBaMH440Wm5jgrKD4=";
 
-  mypy-boto3-lex-models = buildMypyBoto3Package "lex-models" "1.34.0" "sha256-LkD3CCjJYGwlSYRP0meJUCEdVSGGdSRrL9uBtimX4GU=";
+  mypy-boto3-lambda =
+    buildMypyBoto3Package "lambda" "1.34.77"
+      "sha256-e4HSpWBPtZLpL+CyhOzSWd4HFwM2CjO3HJtU30bYHJw=";
 
-  mypy-boto3-lex-runtime = buildMypyBoto3Package "lex-runtime" "1.34.0" "sha256-oFUSsfT7RXHRAVUUk014lqPylPa+TZuyNuvHRixIxt8=";
+  mypy-boto3-lex-models =
+    buildMypyBoto3Package "lex-models" "1.34.0"
+      "sha256-LkD3CCjJYGwlSYRP0meJUCEdVSGGdSRrL9uBtimX4GU=";
 
-  mypy-boto3-lexv2-models = buildMypyBoto3Package "lexv2-models" "1.34.53" "sha256-xeuLY+rMoqtJc75pf2A/DYcsG86qqsIDO225QIwjlDw=";
+  mypy-boto3-lex-runtime =
+    buildMypyBoto3Package "lex-runtime" "1.34.0"
+      "sha256-oFUSsfT7RXHRAVUUk014lqPylPa+TZuyNuvHRixIxt8=";
 
-  mypy-boto3-lexv2-runtime = buildMypyBoto3Package "lexv2-runtime" "1.34.0" "sha256-V1OkUcwFYp8TVS2ASFjARJUrIKAx/9zcfQbQMngU5Uc=";
+  mypy-boto3-lexv2-models =
+    buildMypyBoto3Package "lexv2-models" "1.34.53"
+      "sha256-xeuLY+rMoqtJc75pf2A/DYcsG86qqsIDO225QIwjlDw=";
 
-  mypy-boto3-license-manager = buildMypyBoto3Package "license-manager" "1.34.0" "sha256-93G6q8UIQ/6VtreLOSTQm99tFvsW917t0UgfKkp0kqs=";
+  mypy-boto3-lexv2-runtime =
+    buildMypyBoto3Package "lexv2-runtime" "1.34.0"
+      "sha256-V1OkUcwFYp8TVS2ASFjARJUrIKAx/9zcfQbQMngU5Uc=";
 
-  mypy-boto3-license-manager-linux-subscriptions = buildMypyBoto3Package "license-manager-linux-subscriptions" "1.34.0" "sha256-yHvpZZn49SjTn/DLjSRhzGc2vg0IVv5GCeOFnhtScKA=";
+  mypy-boto3-license-manager =
+    buildMypyBoto3Package "license-manager" "1.34.0"
+      "sha256-93G6q8UIQ/6VtreLOSTQm99tFvsW917t0UgfKkp0kqs=";
 
-  mypy-boto3-license-manager-user-subscriptions = buildMypyBoto3Package "license-manager-user-subscriptions" "1.34.0" "sha256-PR+u+i5zSHFTN6+GuOcWBcON1E2SNABbPavByXz3unE=";
+  mypy-boto3-license-manager-linux-subscriptions =
+    buildMypyBoto3Package "license-manager-linux-subscriptions" "1.34.0"
+      "sha256-yHvpZZn49SjTn/DLjSRhzGc2vg0IVv5GCeOFnhtScKA=";
 
-  mypy-boto3-lightsail = buildMypyBoto3Package "lightsail" "1.34.75" "sha256-ICBUixptVS5sWBHgYms9GgrY2XQblTZkq3Qr614qZMc=";
+  mypy-boto3-license-manager-user-subscriptions =
+    buildMypyBoto3Package "license-manager-user-subscriptions" "1.34.0"
+      "sha256-PR+u+i5zSHFTN6+GuOcWBcON1E2SNABbPavByXz3unE=";
 
-  mypy-boto3-location = buildMypyBoto3Package "location" "1.34.18" "sha256-rsjIGenXgdEdgxvilA3IKJkYkpDDQNDfjDQRoj/mxSU=";
+  mypy-boto3-lightsail =
+    buildMypyBoto3Package "lightsail" "1.34.75"
+      "sha256-ICBUixptVS5sWBHgYms9GgrY2XQblTZkq3Qr614qZMc=";
 
-  mypy-boto3-logs = buildMypyBoto3Package "logs" "1.34.66" "sha256-z1+sSAHdkvBQB/sbRET/mCWFRNHyHmTpIo40GIBG+EE=";
+  mypy-boto3-location =
+    buildMypyBoto3Package "location" "1.34.18"
+      "sha256-rsjIGenXgdEdgxvilA3IKJkYkpDDQNDfjDQRoj/mxSU=";
 
-  mypy-boto3-lookoutequipment = buildMypyBoto3Package "lookoutequipment" "1.34.47" "sha256-M7NaoRHxlH5/zkuMnOlrco2BCPXErv/N7TAVwv2oZuA=";
+  mypy-boto3-logs =
+    buildMypyBoto3Package "logs" "1.34.66"
+      "sha256-z1+sSAHdkvBQB/sbRET/mCWFRNHyHmTpIo40GIBG+EE=";
 
-  mypy-boto3-lookoutmetrics = buildMypyBoto3Package "lookoutmetrics" "1.34.0" "sha256-2SRBUd8fZ7i2GbDgBWJcYS0Fbr/U65UmrLbHx57IZ5A=";
+  mypy-boto3-lookoutequipment =
+    buildMypyBoto3Package "lookoutequipment" "1.34.47"
+      "sha256-M7NaoRHxlH5/zkuMnOlrco2BCPXErv/N7TAVwv2oZuA=";
 
-  mypy-boto3-lookoutvision = buildMypyBoto3Package "lookoutvision" "1.34.0" "sha256-+zl9JmGel0rkmGeYaHMlBIfPQfHdJQOk+sG/nuHnzD0=";
+  mypy-boto3-lookoutmetrics =
+    buildMypyBoto3Package "lookoutmetrics" "1.34.0"
+      "sha256-2SRBUd8fZ7i2GbDgBWJcYS0Fbr/U65UmrLbHx57IZ5A=";
 
-  mypy-boto3-m2 = buildMypyBoto3Package "m2" "1.34.0" "sha256-ZF3ZViV0pN64OEc8aHuCRR0lnVyHOiTRfqVQGCmMMKE=";
+  mypy-boto3-lookoutvision =
+    buildMypyBoto3Package "lookoutvision" "1.34.0"
+      "sha256-+zl9JmGel0rkmGeYaHMlBIfPQfHdJQOk+sG/nuHnzD0=";
 
-  mypy-boto3-machinelearning = buildMypyBoto3Package "machinelearning" "1.34.0" "sha256-DeiBu3PQMageEUlVdjH/1uELsPwo4IVhYzDlJFBohKg=";
+  mypy-boto3-m2 =
+    buildMypyBoto3Package "m2" "1.34.0"
+      "sha256-ZF3ZViV0pN64OEc8aHuCRR0lnVyHOiTRfqVQGCmMMKE=";
 
-  mypy-boto3-macie = buildMypyBoto3Package "macie" "1.29.0" "sha256-lFOPbIBrGuv9W83fsyzyI5fyOleXf4j3sCh9IM0gaQ4=";
+  mypy-boto3-machinelearning =
+    buildMypyBoto3Package "machinelearning" "1.34.0"
+      "sha256-DeiBu3PQMageEUlVdjH/1uELsPwo4IVhYzDlJFBohKg=";
 
-  mypy-boto3-macie2 = buildMypyBoto3Package "macie2" "1.34.20" "sha256-erqa/ptOBMd8x+N1A6ibSULfBH75gEWsKDd/jhc/9tg=";
+  mypy-boto3-macie =
+    buildMypyBoto3Package "macie" "1.29.0"
+      "sha256-lFOPbIBrGuv9W83fsyzyI5fyOleXf4j3sCh9IM0gaQ4=";
 
-  mypy-boto3-managedblockchain = buildMypyBoto3Package "managedblockchain" "1.34.0" "sha256-gUPuS8/ygIdsfCx6S1zpxP936Ah0o5BT4TaDiEW4wPQ=";
+  mypy-boto3-macie2 =
+    buildMypyBoto3Package "macie2" "1.34.20"
+      "sha256-erqa/ptOBMd8x+N1A6ibSULfBH75gEWsKDd/jhc/9tg=";
 
-  mypy-boto3-managedblockchain-query = buildMypyBoto3Package "managedblockchain-query" "1.34.67" "sha256-c2BoAKpgurKaNOTkl3cqc3X1CiaQVfQL5kvQV3/WLww=";
+  mypy-boto3-managedblockchain =
+    buildMypyBoto3Package "managedblockchain" "1.34.0"
+      "sha256-gUPuS8/ygIdsfCx6S1zpxP936Ah0o5BT4TaDiEW4wPQ=";
 
-  mypy-boto3-marketplace-catalog = buildMypyBoto3Package "marketplace-catalog" "1.34.74" "sha256-+ehJMgzEt0R0sV1IL4/eEEltEIcFDqr4GzeTraabW90=";
+  mypy-boto3-managedblockchain-query =
+    buildMypyBoto3Package "managedblockchain-query" "1.34.67"
+      "sha256-c2BoAKpgurKaNOTkl3cqc3X1CiaQVfQL5kvQV3/WLww=";
 
-  mypy-boto3-marketplace-entitlement = buildMypyBoto3Package "marketplace-entitlement" "1.34.0" "sha256-yGaeDZLEmp/Nap++wI6GgQvVW3HxQFcM+ipk7RAuG4g=";
+  mypy-boto3-marketplace-catalog =
+    buildMypyBoto3Package "marketplace-catalog" "1.34.74"
+      "sha256-+ehJMgzEt0R0sV1IL4/eEEltEIcFDqr4GzeTraabW90=";
 
-  mypy-boto3-marketplacecommerceanalytics = buildMypyBoto3Package "marketplacecommerceanalytics" "1.34.0" "sha256-Gzmd4GQnM2sRrL4/FE9kI0R9ItKJ5xdaC/cCGqQ0XAY=";
+  mypy-boto3-marketplace-entitlement =
+    buildMypyBoto3Package "marketplace-entitlement" "1.34.0"
+      "sha256-yGaeDZLEmp/Nap++wI6GgQvVW3HxQFcM+ipk7RAuG4g=";
 
-  mypy-boto3-mediaconnect = buildMypyBoto3Package "mediaconnect" "1.34.7" "sha256-A8Sal8qNijZ/PdwLLC3mGAt8btMGOHXzOAOVFn+JDtU=";
+  mypy-boto3-marketplacecommerceanalytics =
+    buildMypyBoto3Package "marketplacecommerceanalytics" "1.34.0"
+      "sha256-Gzmd4GQnM2sRrL4/FE9kI0R9ItKJ5xdaC/cCGqQ0XAY=";
 
-  mypy-boto3-mediaconvert = buildMypyBoto3Package "mediaconvert" "1.34.81" "sha256-MGULtrMziQpOXF4eNZabcu83rR13AHBMZrN5RgkqATk=";
+  mypy-boto3-mediaconnect =
+    buildMypyBoto3Package "mediaconnect" "1.34.7"
+      "sha256-A8Sal8qNijZ/PdwLLC3mGAt8btMGOHXzOAOVFn+JDtU=";
 
-  mypy-boto3-medialive = buildMypyBoto3Package "medialive" "1.34.83" "sha256-VFyz2fNgx2fFFsU3843vwpZBQxGrVzNbyZWF1kv6KaY=";
+  mypy-boto3-mediaconvert =
+    buildMypyBoto3Package "mediaconvert" "1.34.81"
+      "sha256-MGULtrMziQpOXF4eNZabcu83rR13AHBMZrN5RgkqATk=";
 
-  mypy-boto3-mediapackage = buildMypyBoto3Package "mediapackage" "1.34.0" "sha256-4DJ2zVk0satmVn+TZdDExx/+ClJpc1bdmbvl72Joe5U=";
+  mypy-boto3-medialive =
+    buildMypyBoto3Package "medialive" "1.34.83"
+      "sha256-VFyz2fNgx2fFFsU3843vwpZBQxGrVzNbyZWF1kv6KaY=";
 
-  mypy-boto3-mediapackage-vod = buildMypyBoto3Package "mediapackage-vod" "1.34.0" "sha256-XwGc3+WD8o/MUfcBocl52TPK/RhiCjEb2qDqcuYwB+g=";
+  mypy-boto3-mediapackage =
+    buildMypyBoto3Package "mediapackage" "1.34.0"
+      "sha256-4DJ2zVk0satmVn+TZdDExx/+ClJpc1bdmbvl72Joe5U=";
 
-  mypy-boto3-mediapackagev2 = buildMypyBoto3Package "mediapackagev2" "1.34.60" "sha256-tm54AEKAAuhp8+KeoW/yesl0M8utg7iIbkOpLyotpa8=";
+  mypy-boto3-mediapackage-vod =
+    buildMypyBoto3Package "mediapackage-vod" "1.34.0"
+      "sha256-XwGc3+WD8o/MUfcBocl52TPK/RhiCjEb2qDqcuYwB+g=";
 
-  mypy-boto3-mediastore = buildMypyBoto3Package "mediastore" "1.34.0" "sha256-v2G2wDXGJwMalYnHTRGvdRTUv41bm8adIOj9tgQV0ys=";
+  mypy-boto3-mediapackagev2 =
+    buildMypyBoto3Package "mediapackagev2" "1.34.60"
+      "sha256-tm54AEKAAuhp8+KeoW/yesl0M8utg7iIbkOpLyotpa8=";
 
-  mypy-boto3-mediastore-data = buildMypyBoto3Package "mediastore-data" "1.34.0" "sha256-bYlKkBh7Kq4PsToHQ4+K5B3h8+IwyS+7ngEJ5AALBus=";
+  mypy-boto3-mediastore =
+    buildMypyBoto3Package "mediastore" "1.34.0"
+      "sha256-v2G2wDXGJwMalYnHTRGvdRTUv41bm8adIOj9tgQV0ys=";
 
-  mypy-boto3-mediatailor = buildMypyBoto3Package "mediatailor" "1.34.65" "sha256-JJDQuyACp+y5PntLhMZ2rIb1wR/IW0PPPqS8HB54mNk=";
+  mypy-boto3-mediastore-data =
+    buildMypyBoto3Package "mediastore-data" "1.34.0"
+      "sha256-bYlKkBh7Kq4PsToHQ4+K5B3h8+IwyS+7ngEJ5AALBus=";
 
-  mypy-boto3-medical-imaging = buildMypyBoto3Package "medical-imaging" "1.34.77" "sha256-biBe/kSBJRnGrYFr55Lc1GEZ5O457qOlujjiYQxp9hc=";
+  mypy-boto3-mediatailor =
+    buildMypyBoto3Package "mediatailor" "1.34.65"
+      "sha256-JJDQuyACp+y5PntLhMZ2rIb1wR/IW0PPPqS8HB54mNk=";
 
-  mypy-boto3-memorydb = buildMypyBoto3Package "memorydb" "1.34.0" "sha256-bq2FQsYZ/7xi2o4cdacva510FjDRfbNRO2IrA0oxtAg=";
+  mypy-boto3-medical-imaging =
+    buildMypyBoto3Package "medical-imaging" "1.34.77"
+      "sha256-biBe/kSBJRnGrYFr55Lc1GEZ5O457qOlujjiYQxp9hc=";
 
-  mypy-boto3-meteringmarketplace = buildMypyBoto3Package "meteringmarketplace" "1.34.0" "sha256-1un4l+XXDAen0NS1lQ2e1XOyUaoOjt+n8AU0VvGlTP0=";
+  mypy-boto3-memorydb =
+    buildMypyBoto3Package "memorydb" "1.34.0"
+      "sha256-bq2FQsYZ/7xi2o4cdacva510FjDRfbNRO2IrA0oxtAg=";
 
-  mypy-boto3-mgh = buildMypyBoto3Package "mgh" "1.34.0" "sha256-tyA+ywgjdRkIU2vbZwCsQfWIYctw/kLjIGTEAZuf8oU=";
+  mypy-boto3-meteringmarketplace =
+    buildMypyBoto3Package "meteringmarketplace" "1.34.0"
+      "sha256-1un4l+XXDAen0NS1lQ2e1XOyUaoOjt+n8AU0VvGlTP0=";
 
-  mypy-boto3-mgn = buildMypyBoto3Package "mgn" "1.34.80" "sha256-eLfAHkhqlU9HK6bLfBFOZ+UzFI1q/vJLFmxQcBRJNt8=";
+  mypy-boto3-mgh =
+    buildMypyBoto3Package "mgh" "1.34.0"
+      "sha256-tyA+ywgjdRkIU2vbZwCsQfWIYctw/kLjIGTEAZuf8oU=";
 
-  mypy-boto3-migration-hub-refactor-spaces = buildMypyBoto3Package "migration-hub-refactor-spaces" "1.34.0" "sha256-T37s/ubwuU1zsKk8DmTFum6Ml3+WNZCJ+q8T6F75iUY=";
+  mypy-boto3-mgn =
+    buildMypyBoto3Package "mgn" "1.34.80"
+      "sha256-eLfAHkhqlU9HK6bLfBFOZ+UzFI1q/vJLFmxQcBRJNt8=";
 
-  mypy-boto3-migrationhub-config = buildMypyBoto3Package "migrationhub-config" "1.34.0" "sha256-feqiUjFrwYaAyRh1MZ96VILeEa/WBzUytsnRxXZMxoQ=";
+  mypy-boto3-migration-hub-refactor-spaces =
+    buildMypyBoto3Package "migration-hub-refactor-spaces" "1.34.0"
+      "sha256-T37s/ubwuU1zsKk8DmTFum6Ml3+WNZCJ+q8T6F75iUY=";
 
-  mypy-boto3-migrationhuborchestrator = buildMypyBoto3Package "migrationhuborchestrator" "1.34.53" "sha256-kreU8blZ61EaKmKJpZ17iS6xFUig5FrMnOs5/1JTn4s=";
+  mypy-boto3-migrationhub-config =
+    buildMypyBoto3Package "migrationhub-config" "1.34.0"
+      "sha256-feqiUjFrwYaAyRh1MZ96VILeEa/WBzUytsnRxXZMxoQ=";
 
-  mypy-boto3-migrationhubstrategy = buildMypyBoto3Package "migrationhubstrategy" "1.34.0" "sha256-N/NcnXF14SAs9F1ZwUYxc/5kp7iUWIFJisUfZxMStLU=";
+  mypy-boto3-migrationhuborchestrator =
+    buildMypyBoto3Package "migrationhuborchestrator" "1.34.53"
+      "sha256-kreU8blZ61EaKmKJpZ17iS6xFUig5FrMnOs5/1JTn4s=";
 
-  mypy-boto3-mobile = buildMypyBoto3Package "mobile" "1.34.0" "sha256-fzP70K6S7KPi6GnEj92shU+Dr07ieqDkmrAUEBxMVdI=";
+  mypy-boto3-migrationhubstrategy =
+    buildMypyBoto3Package "migrationhubstrategy" "1.34.0"
+      "sha256-N/NcnXF14SAs9F1ZwUYxc/5kp7iUWIFJisUfZxMStLU=";
 
-  mypy-boto3-mq = buildMypyBoto3Package "mq" "1.34.0" "sha256-yua6b3bSoXnJjAvsDHa+aE6DebBjQkAKdsy+nM7TcTE=";
+  mypy-boto3-mobile =
+    buildMypyBoto3Package "mobile" "1.34.0"
+      "sha256-fzP70K6S7KPi6GnEj92shU+Dr07ieqDkmrAUEBxMVdI=";
 
-  mypy-boto3-mturk = buildMypyBoto3Package "mturk" "1.34.0" "sha256-qhyVd+9KIaL4hxjjDnw7qdyJdcT6ApCxhoTggOVDr80=";
+  mypy-boto3-mq =
+    buildMypyBoto3Package "mq" "1.34.0"
+      "sha256-yua6b3bSoXnJjAvsDHa+aE6DebBjQkAKdsy+nM7TcTE=";
 
-  mypy-boto3-mwaa = buildMypyBoto3Package "mwaa" "1.34.57" "sha256-D0W/03zhllRLYGyXQ/XvMBlcsKuEb2MPr0hmyUVy5xc=";
+  mypy-boto3-mturk =
+    buildMypyBoto3Package "mturk" "1.34.0"
+      "sha256-qhyVd+9KIaL4hxjjDnw7qdyJdcT6ApCxhoTggOVDr80=";
 
-  mypy-boto3-neptune = buildMypyBoto3Package "neptune" "1.34.0" "sha256-oMS6e1cPfOZhh+obhOZTMjmwScEzwCBtvmjtpPIjltA=";
+  mypy-boto3-mwaa =
+    buildMypyBoto3Package "mwaa" "1.34.57"
+      "sha256-D0W/03zhllRLYGyXQ/XvMBlcsKuEb2MPr0hmyUVy5xc=";
 
-  mypy-boto3-neptunedata = buildMypyBoto3Package "neptunedata" "1.34.0" "sha256-ZKTaSuLNtxUyP1mW2q8RF8jvXKSfEyHZfJp77xRqbZc=";
+  mypy-boto3-neptune =
+    buildMypyBoto3Package "neptune" "1.34.0"
+      "sha256-oMS6e1cPfOZhh+obhOZTMjmwScEzwCBtvmjtpPIjltA=";
 
-  mypy-boto3-network-firewall = buildMypyBoto3Package "network-firewall" "1.34.0" "sha256-I861Vg32yZJjg9/6q2KmFhysk/ysLZAg2ukNlWMEpuY=";
+  mypy-boto3-neptunedata =
+    buildMypyBoto3Package "neptunedata" "1.34.0"
+      "sha256-ZKTaSuLNtxUyP1mW2q8RF8jvXKSfEyHZfJp77xRqbZc=";
 
-  mypy-boto3-networkmanager = buildMypyBoto3Package "networkmanager" "1.34.0" "sha256-vubUkzOk3bBuXVgHzMhYszMOhUqhBoupc7COdP0nneA=";
+  mypy-boto3-network-firewall =
+    buildMypyBoto3Package "network-firewall" "1.34.0"
+      "sha256-I861Vg32yZJjg9/6q2KmFhysk/ysLZAg2ukNlWMEpuY=";
 
-  mypy-boto3-nimble = buildMypyBoto3Package "nimble" "1.34.0" "sha256-i0E9kLunDRl+XzU3Ti3vxqHNa2oGHQQ9xDjCtNKi1Lw=";
+  mypy-boto3-networkmanager =
+    buildMypyBoto3Package "networkmanager" "1.34.0"
+      "sha256-vubUkzOk3bBuXVgHzMhYszMOhUqhBoupc7COdP0nneA=";
 
-  mypy-boto3-oam = buildMypyBoto3Package "oam" "1.34.73" "sha256-MAnS/E6BKcaubeOdblitGzS7y7YUZr35M4679iJL6lE=";
+  mypy-boto3-nimble =
+    buildMypyBoto3Package "nimble" "1.34.0"
+      "sha256-i0E9kLunDRl+XzU3Ti3vxqHNa2oGHQQ9xDjCtNKi1Lw=";
 
-  mypy-boto3-omics = buildMypyBoto3Package "omics" "1.34.83" "sha256-66IykobW8D/oemTVIGf0xw7H+mb4yNzXMQHv/dnzqGg=";
+  mypy-boto3-oam =
+    buildMypyBoto3Package "oam" "1.34.73"
+      "sha256-MAnS/E6BKcaubeOdblitGzS7y7YUZr35M4679iJL6lE=";
 
-  mypy-boto3-opensearch = buildMypyBoto3Package "opensearch" "1.34.43" "sha256-EOl56YqzuIUWlSewnVCtEdzt3Ei5yueP4emtTQq3QrA=";
+  mypy-boto3-omics =
+    buildMypyBoto3Package "omics" "1.34.83"
+      "sha256-66IykobW8D/oemTVIGf0xw7H+mb4yNzXMQHv/dnzqGg=";
 
-  mypy-boto3-opensearchserverless = buildMypyBoto3Package "opensearchserverless" "1.34.0" "sha256-YpbQWnVIXMqTzieWya4MiFz9HpN5YYSSmBjUvmO0VMo=";
+  mypy-boto3-opensearch =
+    buildMypyBoto3Package "opensearch" "1.34.43"
+      "sha256-EOl56YqzuIUWlSewnVCtEdzt3Ei5yueP4emtTQq3QrA=";
 
-  mypy-boto3-opsworks = buildMypyBoto3Package "opsworks" "1.34.0" "sha256-398ugKoRKeRqIH/1upx1K6d0Y/WIsMJCNM2Mmwk+S/A=";
+  mypy-boto3-opensearchserverless =
+    buildMypyBoto3Package "opensearchserverless" "1.34.0"
+      "sha256-YpbQWnVIXMqTzieWya4MiFz9HpN5YYSSmBjUvmO0VMo=";
 
-  mypy-boto3-opsworkscm = buildMypyBoto3Package "opsworkscm" "1.34.0" "sha256-HsUXwbXRPmEaSJjs4EezSHugssLtP2g/NvaI0CnGStA=";
+  mypy-boto3-opsworks =
+    buildMypyBoto3Package "opsworks" "1.34.0"
+      "sha256-398ugKoRKeRqIH/1upx1K6d0Y/WIsMJCNM2Mmwk+S/A=";
 
-  mypy-boto3-organizations = buildMypyBoto3Package "organizations" "1.34.56" "sha256-iVOUgkTI0sNixbfr/Z/H9Hsc2thCqDCqHrlthneZLVU=";
+  mypy-boto3-opsworkscm =
+    buildMypyBoto3Package "opsworkscm" "1.34.0"
+      "sha256-HsUXwbXRPmEaSJjs4EezSHugssLtP2g/NvaI0CnGStA=";
 
-  mypy-boto3-osis = buildMypyBoto3Package "osis" "1.34.0" "sha256-2mSI1VTmQWuwxsCgQtmr1w8xE3zIcwztvMuKMqXFF3k=";
+  mypy-boto3-organizations =
+    buildMypyBoto3Package "organizations" "1.34.56"
+      "sha256-iVOUgkTI0sNixbfr/Z/H9Hsc2thCqDCqHrlthneZLVU=";
 
-  mypy-boto3-outposts = buildMypyBoto3Package "outposts" "1.34.27" "sha256-nkXVo8Qr2k+pV3SChRezoiU0e2kT9kz1vr2J8MLfm+0=";
+  mypy-boto3-osis =
+    buildMypyBoto3Package "osis" "1.34.0"
+      "sha256-2mSI1VTmQWuwxsCgQtmr1w8xE3zIcwztvMuKMqXFF3k=";
 
-  mypy-boto3-panorama = buildMypyBoto3Package "panorama" "1.34.0" "sha256-Pw0yRgawY5TC0OIgcYmzK3KEQusyRf3coThpeHL4X30=";
+  mypy-boto3-outposts =
+    buildMypyBoto3Package "outposts" "1.34.27"
+      "sha256-nkXVo8Qr2k+pV3SChRezoiU0e2kT9kz1vr2J8MLfm+0=";
 
-  mypy-boto3-payment-cryptography = buildMypyBoto3Package "payment-cryptography" "1.34.20" "sha256-WdyhWl00Khf3gA6OeWeKrlgFnTvWhk+AFoS2UhM5Haw=";
+  mypy-boto3-panorama =
+    buildMypyBoto3Package "panorama" "1.34.0"
+      "sha256-Pw0yRgawY5TC0OIgcYmzK3KEQusyRf3coThpeHL4X30=";
 
-  mypy-boto3-payment-cryptography-data = buildMypyBoto3Package "payment-cryptography-data" "1.34.58" "sha256-mc4NO3yjdLlXc9TBkmIsGFqNfW2RT7/jVMC9uhug4tc=";
+  mypy-boto3-payment-cryptography =
+    buildMypyBoto3Package "payment-cryptography" "1.34.20"
+      "sha256-WdyhWl00Khf3gA6OeWeKrlgFnTvWhk+AFoS2UhM5Haw=";
 
-  mypy-boto3-pca-connector-ad = buildMypyBoto3Package "pca-connector-ad" "1.34.0" "sha256-pSGVZPLuj8xcSfLqa+xvf4UL/l2Xb5t43KuXlTCfskc=";
+  mypy-boto3-payment-cryptography-data =
+    buildMypyBoto3Package "payment-cryptography-data" "1.34.58"
+      "sha256-mc4NO3yjdLlXc9TBkmIsGFqNfW2RT7/jVMC9uhug4tc=";
 
-  mypy-boto3-personalize = buildMypyBoto3Package "personalize" "1.34.20" "sha256-1Q+rXczO15oM/KXRLVP8D96HW4nILpxig4stjT1KwuY=";
+  mypy-boto3-pca-connector-ad =
+    buildMypyBoto3Package "pca-connector-ad" "1.34.0"
+      "sha256-pSGVZPLuj8xcSfLqa+xvf4UL/l2Xb5t43KuXlTCfskc=";
 
-  mypy-boto3-personalize-events = buildMypyBoto3Package "personalize-events" "1.34.0" "sha256-dklttvls5In+d9uWONxmhfSOP1TQf+4VMW56JjKICr4=";
+  mypy-boto3-personalize =
+    buildMypyBoto3Package "personalize" "1.34.20"
+      "sha256-1Q+rXczO15oM/KXRLVP8D96HW4nILpxig4stjT1KwuY=";
 
-  mypy-boto3-personalize-runtime = buildMypyBoto3Package "personalize-runtime" "1.34.20" "sha256-sKEXkOlMb7t4jBQrLLx90wFhCN1R4ZOk8w9kMpKI0os=";
+  mypy-boto3-personalize-events =
+    buildMypyBoto3Package "personalize-events" "1.34.0"
+      "sha256-dklttvls5In+d9uWONxmhfSOP1TQf+4VMW56JjKICr4=";
 
-  mypy-boto3-pi = buildMypyBoto3Package "pi" "1.34.0" "sha256-97giGYtpINPHxtcUU6cE/mPF0/r6YfLixAdcC/LGKC0=";
+  mypy-boto3-personalize-runtime =
+    buildMypyBoto3Package "personalize-runtime" "1.34.20"
+      "sha256-sKEXkOlMb7t4jBQrLLx90wFhCN1R4ZOk8w9kMpKI0os=";
 
-  mypy-boto3-pinpoint = buildMypyBoto3Package "pinpoint" "1.34.81" "sha256-vs7gJCsMrpXBhPFwcHmQ/IT4sOYBMJ6IlcCLGMPuog8=";
+  mypy-boto3-pi =
+    buildMypyBoto3Package "pi" "1.34.0"
+      "sha256-97giGYtpINPHxtcUU6cE/mPF0/r6YfLixAdcC/LGKC0=";
 
-  mypy-boto3-pinpoint-email = buildMypyBoto3Package "pinpoint-email" "1.34.0" "sha256-AHwJtYsAxFiEX16L0HZXz9JzjNZck9V40bFwzicMKUE=";
+  mypy-boto3-pinpoint =
+    buildMypyBoto3Package "pinpoint" "1.34.81"
+      "sha256-vs7gJCsMrpXBhPFwcHmQ/IT4sOYBMJ6IlcCLGMPuog8=";
 
-  mypy-boto3-pinpoint-sms-voice = buildMypyBoto3Package "pinpoint-sms-voice" "1.34.0" "sha256-oDhem97q9QpsQNy9zCfWOC1cHup3pvLflClVxeWEBuw=";
+  mypy-boto3-pinpoint-email =
+    buildMypyBoto3Package "pinpoint-email" "1.34.0"
+      "sha256-AHwJtYsAxFiEX16L0HZXz9JzjNZck9V40bFwzicMKUE=";
 
-  mypy-boto3-pinpoint-sms-voice-v2 = buildMypyBoto3Package "pinpoint-sms-voice-v2" "1.34.0" "sha256-Ci/nnvgq6YbVPHLZVmLDHjF8GHpViVP7mfUJREFKndg=";
+  mypy-boto3-pinpoint-sms-voice =
+    buildMypyBoto3Package "pinpoint-sms-voice" "1.34.0"
+      "sha256-oDhem97q9QpsQNy9zCfWOC1cHup3pvLflClVxeWEBuw=";
 
-  mypy-boto3-pipes = buildMypyBoto3Package "pipes" "1.34.83" "sha256-Z//eO1IEEolh+5loNBmS5R5W5sdyGt/0T88kI726PKA=";
+  mypy-boto3-pinpoint-sms-voice-v2 =
+    buildMypyBoto3Package "pinpoint-sms-voice-v2" "1.34.0"
+      "sha256-Ci/nnvgq6YbVPHLZVmLDHjF8GHpViVP7mfUJREFKndg=";
 
-  mypy-boto3-polly = buildMypyBoto3Package "polly" "1.34.43" "sha256-rx5sW32N6H47fpy5yGvwlKKVKS/uIKOtLfsjoGoNPJg=";
+  mypy-boto3-pipes =
+    buildMypyBoto3Package "pipes" "1.34.83"
+      "sha256-Z//eO1IEEolh+5loNBmS5R5W5sdyGt/0T88kI726PKA=";
 
-  mypy-boto3-pricing = buildMypyBoto3Package "pricing" "1.34.69" "sha256-0+bak3+4FQK0vAjI1r7uKvhwspZxt/zLCJRVMvH41qs=";
+  mypy-boto3-polly =
+    buildMypyBoto3Package "polly" "1.34.43"
+      "sha256-rx5sW32N6H47fpy5yGvwlKKVKS/uIKOtLfsjoGoNPJg=";
 
-  mypy-boto3-privatenetworks = buildMypyBoto3Package "privatenetworks" "1.34.0" "sha256-WFX0KaJRo0LCPKEAq8LES0P3WJkt6ywLXqTlOFZyZ1w=";
+  mypy-boto3-pricing =
+    buildMypyBoto3Package "pricing" "1.34.69"
+      "sha256-0+bak3+4FQK0vAjI1r7uKvhwspZxt/zLCJRVMvH41qs=";
 
-  mypy-boto3-proton = buildMypyBoto3Package "proton" "1.34.0" "sha256-wRBMw/7PWi0s9sJTfnDq3MXcbA5pKwogMDC3UZtLJoY=";
+  mypy-boto3-privatenetworks =
+    buildMypyBoto3Package "privatenetworks" "1.34.0"
+      "sha256-WFX0KaJRo0LCPKEAq8LES0P3WJkt6ywLXqTlOFZyZ1w=";
 
-  mypy-boto3-qldb = buildMypyBoto3Package "qldb" "1.34.49" "sha256-yiqWryr4vKt/6k+dVoDMDdtL6yP4ClVY0rFwZDDcvWY=";
+  mypy-boto3-proton =
+    buildMypyBoto3Package "proton" "1.34.0"
+      "sha256-wRBMw/7PWi0s9sJTfnDq3MXcbA5pKwogMDC3UZtLJoY=";
 
-  mypy-boto3-qldb-session = buildMypyBoto3Package "qldb-session" "1.34.0" "sha256-JHePiaFCfIJPxZzvC1U38xrBGkDvB9+yKwPecaZl7BY=";
+  mypy-boto3-qldb =
+    buildMypyBoto3Package "qldb" "1.34.49"
+      "sha256-yiqWryr4vKt/6k+dVoDMDdtL6yP4ClVY0rFwZDDcvWY=";
 
-  mypy-boto3-quicksight = buildMypyBoto3Package "quicksight" "1.34.79" "sha256-oHaZrX3aRoaFs5VLC7dQMihSocWLmCupHGhReXPbGBo=";
+  mypy-boto3-qldb-session =
+    buildMypyBoto3Package "qldb-session" "1.34.0"
+      "sha256-JHePiaFCfIJPxZzvC1U38xrBGkDvB9+yKwPecaZl7BY=";
 
-  mypy-boto3-ram = buildMypyBoto3Package "ram" "1.34.0" "sha256-9sOspEfirpVQ8cT9ILUSWypxBswpAD75A0hHRV7glNg=";
+  mypy-boto3-quicksight =
+    buildMypyBoto3Package "quicksight" "1.34.79"
+      "sha256-oHaZrX3aRoaFs5VLC7dQMihSocWLmCupHGhReXPbGBo=";
 
-  mypy-boto3-rbin = buildMypyBoto3Package "rbin" "1.34.0" "sha256-Y+a/p3r5IgWk4oH6MOeq0e7rMiNvLCqoz1ZE+xXNtOw=";
+  mypy-boto3-ram =
+    buildMypyBoto3Package "ram" "1.34.0"
+      "sha256-9sOspEfirpVQ8cT9ILUSWypxBswpAD75A0hHRV7glNg=";
 
-  mypy-boto3-rds = buildMypyBoto3Package "rds" "1.34.83" "sha256-/H99xDRpX9egs39pRaYkvJ3GM6syh+famJmTTRsCgYs=";
+  mypy-boto3-rbin =
+    buildMypyBoto3Package "rbin" "1.34.0"
+      "sha256-Y+a/p3r5IgWk4oH6MOeq0e7rMiNvLCqoz1ZE+xXNtOw=";
 
-  mypy-boto3-rds-data = buildMypyBoto3Package "rds-data" "1.34.6" "sha256-d+WXt3cSUe5ZxynSjPSJxXgv6evP/rhZrX1ua9rtSx8=";
+  mypy-boto3-rds =
+    buildMypyBoto3Package "rds" "1.34.83"
+      "sha256-/H99xDRpX9egs39pRaYkvJ3GM6syh+famJmTTRsCgYs=";
 
-  mypy-boto3-redshift = buildMypyBoto3Package "redshift" "1.34.57" "sha256-MDhI9DW5I6SWXIAnENiPqSanDjCB3vf2n24eVxzmtso=";
+  mypy-boto3-rds-data =
+    buildMypyBoto3Package "rds-data" "1.34.6"
+      "sha256-d+WXt3cSUe5ZxynSjPSJxXgv6evP/rhZrX1ua9rtSx8=";
 
-  mypy-boto3-redshift-data = buildMypyBoto3Package "redshift-data" "1.34.0" "sha256-NdBZxkLTwnY7fgmoqGZKTN/lhCyY/3VGFWWOGeCf//0=";
+  mypy-boto3-redshift =
+    buildMypyBoto3Package "redshift" "1.34.57"
+      "sha256-MDhI9DW5I6SWXIAnENiPqSanDjCB3vf2n24eVxzmtso=";
 
-  mypy-boto3-redshift-serverless = buildMypyBoto3Package "redshift-serverless" "1.34.16" "sha256-ag5tKb1+4cHiG99OszDNGdnX9RPRPraaqM8p3IqgLBg=";
+  mypy-boto3-redshift-data =
+    buildMypyBoto3Package "redshift-data" "1.34.0"
+      "sha256-NdBZxkLTwnY7fgmoqGZKTN/lhCyY/3VGFWWOGeCf//0=";
 
-  mypy-boto3-rekognition = buildMypyBoto3Package "rekognition" "1.34.82" "sha256-qy7yacSuG6cARR2L/YjBGWYM1BU5/qtMr/H08x3XFIM=";
+  mypy-boto3-redshift-serverless =
+    buildMypyBoto3Package "redshift-serverless" "1.34.16"
+      "sha256-ag5tKb1+4cHiG99OszDNGdnX9RPRPraaqM8p3IqgLBg=";
 
-  mypy-boto3-resiliencehub = buildMypyBoto3Package "resiliencehub" "1.34.0" "sha256-F/ZRCp/M/6kBI4Apb3mISzqe1Zi4Y7gq/vu0dvyyTvM=";
+  mypy-boto3-rekognition =
+    buildMypyBoto3Package "rekognition" "1.34.82"
+      "sha256-qy7yacSuG6cARR2L/YjBGWYM1BU5/qtMr/H08x3XFIM=";
 
-  mypy-boto3-resource-explorer-2 = buildMypyBoto3Package "resource-explorer-2" "1.34.41" "sha256-Q4MCAvEZkYRnDLEF9d8x+FOMUJ9O2eCb2mZr/e8Ut24=";
+  mypy-boto3-resiliencehub =
+    buildMypyBoto3Package "resiliencehub" "1.34.0"
+      "sha256-F/ZRCp/M/6kBI4Apb3mISzqe1Zi4Y7gq/vu0dvyyTvM=";
 
-  mypy-boto3-resource-groups = buildMypyBoto3Package "resource-groups" "1.34.79" "sha256-tSCHhtaSb+dnXD8D2aNR6DBAlhHbvU3zx6YceGTlzgM=";
+  mypy-boto3-resource-explorer-2 =
+    buildMypyBoto3Package "resource-explorer-2" "1.34.41"
+      "sha256-Q4MCAvEZkYRnDLEF9d8x+FOMUJ9O2eCb2mZr/e8Ut24=";
 
-  mypy-boto3-resourcegroupstaggingapi = buildMypyBoto3Package "resourcegroupstaggingapi" "1.34.0" "sha256-ko55TJeH/EGsAp1Y8ZTYhmGEqWGKQTnN3IQEF31V6Ns=";
+  mypy-boto3-resource-groups =
+    buildMypyBoto3Package "resource-groups" "1.34.79"
+      "sha256-tSCHhtaSb+dnXD8D2aNR6DBAlhHbvU3zx6YceGTlzgM=";
 
-  mypy-boto3-robomaker = buildMypyBoto3Package "robomaker" "1.34.0" "sha256-dAL2P2bxhSc5oLZXhhekrt9y4bWXg7kIr+/FVbkFTww=";
+  mypy-boto3-resourcegroupstaggingapi =
+    buildMypyBoto3Package "resourcegroupstaggingapi" "1.34.0"
+      "sha256-ko55TJeH/EGsAp1Y8ZTYhmGEqWGKQTnN3IQEF31V6Ns=";
 
-  mypy-boto3-rolesanywhere = buildMypyBoto3Package "rolesanywhere" "1.34.76" "sha256-y346Go7PySWVFPZI7CvFElW2cK708Q1D3K0LdfPDp0Q=";
+  mypy-boto3-robomaker =
+    buildMypyBoto3Package "robomaker" "1.34.0"
+      "sha256-dAL2P2bxhSc5oLZXhhekrt9y4bWXg7kIr+/FVbkFTww=";
 
-  mypy-boto3-route53 = buildMypyBoto3Package "route53" "1.34.31" "sha256-MtmEtt57vhFRG1O+VnFXFUhSWAQ7JrnV3hBZx4TpOh8=";
+  mypy-boto3-rolesanywhere =
+    buildMypyBoto3Package "rolesanywhere" "1.34.76"
+      "sha256-y346Go7PySWVFPZI7CvFElW2cK708Q1D3K0LdfPDp0Q=";
 
-  mypy-boto3-route53-recovery-cluster = buildMypyBoto3Package "route53-recovery-cluster" "1.34.0" "sha256-1IUmycikAtBBNykch2aj7tI6XLRjN7D56YwJn6QRmIQ=";
+  mypy-boto3-route53 =
+    buildMypyBoto3Package "route53" "1.34.31"
+      "sha256-MtmEtt57vhFRG1O+VnFXFUhSWAQ7JrnV3hBZx4TpOh8=";
 
-  mypy-boto3-route53-recovery-control-config = buildMypyBoto3Package "route53-recovery-control-config" "1.34.0" "sha256-hlwovA3tocSTUzsj+TH4VMO/bDrxDNALrAFiTpcgNa0=";
+  mypy-boto3-route53-recovery-cluster =
+    buildMypyBoto3Package "route53-recovery-cluster" "1.34.0"
+      "sha256-1IUmycikAtBBNykch2aj7tI6XLRjN7D56YwJn6QRmIQ=";
 
-  mypy-boto3-route53-recovery-readiness = buildMypyBoto3Package "route53-recovery-readiness" "1.34.0" "sha256-DyNRWZ9daJ6VFa7moTjgEIdxcCRgjvZ2n7UKyNfr9z4=";
+  mypy-boto3-route53-recovery-control-config =
+    buildMypyBoto3Package "route53-recovery-control-config" "1.34.0"
+      "sha256-hlwovA3tocSTUzsj+TH4VMO/bDrxDNALrAFiTpcgNa0=";
 
-  mypy-boto3-route53domains = buildMypyBoto3Package "route53domains" "1.34.40" "sha256-N81sytOFacuG3pHSk35QbxVxUVEZUx8DK4Y7uUonyh4=";
+  mypy-boto3-route53-recovery-readiness =
+    buildMypyBoto3Package "route53-recovery-readiness" "1.34.0"
+      "sha256-DyNRWZ9daJ6VFa7moTjgEIdxcCRgjvZ2n7UKyNfr9z4=";
 
-  mypy-boto3-route53resolver = buildMypyBoto3Package "route53resolver" "1.34.15" "sha256-ER9jhGIeEeHc0llpy4aqRnI9iFfubJFIik04gB81vr0=";
+  mypy-boto3-route53domains =
+    buildMypyBoto3Package "route53domains" "1.34.40"
+      "sha256-N81sytOFacuG3pHSk35QbxVxUVEZUx8DK4Y7uUonyh4=";
 
-  mypy-boto3-rum = buildMypyBoto3Package "rum" "1.34.49" "sha256-Mq2H+13cjxYRwFfxJpWTAb+W5bx+Vew+jl+zbreRIkQ=";
+  mypy-boto3-route53resolver =
+    buildMypyBoto3Package "route53resolver" "1.34.15"
+      "sha256-ER9jhGIeEeHc0llpy4aqRnI9iFfubJFIik04gB81vr0=";
 
-  mypy-boto3-s3 = buildMypyBoto3Package "s3" "1.34.65" "sha256-L830Es4pJLLws021mr8GqcC75M0zYfFPDSweIRwPfd0=";
+  mypy-boto3-rum =
+    buildMypyBoto3Package "rum" "1.34.49"
+      "sha256-Mq2H+13cjxYRwFfxJpWTAb+W5bx+Vew+jl+zbreRIkQ=";
 
-  mypy-boto3-s3control = buildMypyBoto3Package "s3control" "1.34.83" "sha256-A0P6rAebwt9IUKTderlE8tWQJexUjthpO6KClrDbNyc=";
+  mypy-boto3-s3 =
+    buildMypyBoto3Package "s3" "1.34.65"
+      "sha256-L830Es4pJLLws021mr8GqcC75M0zYfFPDSweIRwPfd0=";
 
-  mypy-boto3-s3outposts = buildMypyBoto3Package "s3outposts" "1.34.0" "sha256-xLuGP9Fe0S7zRimt1AKd9KOrytmNd/GTRg5OVi5Xpos=";
+  mypy-boto3-s3control =
+    buildMypyBoto3Package "s3control" "1.34.83"
+      "sha256-A0P6rAebwt9IUKTderlE8tWQJexUjthpO6KClrDbNyc=";
 
-  mypy-boto3-sagemaker = buildMypyBoto3Package "sagemaker" "1.34.74" "sha256-gTSksOsEH4IRLqw+AZ/CNLO28Ir18oy7iP2h6a38rmE=";
+  mypy-boto3-s3outposts =
+    buildMypyBoto3Package "s3outposts" "1.34.0"
+      "sha256-xLuGP9Fe0S7zRimt1AKd9KOrytmNd/GTRg5OVi5Xpos=";
 
-  mypy-boto3-sagemaker-a2i-runtime = buildMypyBoto3Package "sagemaker-a2i-runtime" "1.34.0" "sha256-jMZ3aWKQPhNec4A/02S1waQi6Mx9JVdENc3kblhsKjA=";
+  mypy-boto3-sagemaker =
+    buildMypyBoto3Package "sagemaker" "1.34.74"
+      "sha256-gTSksOsEH4IRLqw+AZ/CNLO28Ir18oy7iP2h6a38rmE=";
 
-  mypy-boto3-sagemaker-edge = buildMypyBoto3Package "sagemaker-edge" "1.34.0" "sha256-F3IN/KA7uzS16HZydXmFXlXseNIdhCais6Abfq7gRdI=";
+  mypy-boto3-sagemaker-a2i-runtime =
+    buildMypyBoto3Package "sagemaker-a2i-runtime" "1.34.0"
+      "sha256-jMZ3aWKQPhNec4A/02S1waQi6Mx9JVdENc3kblhsKjA=";
 
-  mypy-boto3-sagemaker-featurestore-runtime = buildMypyBoto3Package "sagemaker-featurestore-runtime" "1.34.22" "sha256-4dFjwJSTgudHHgpVl2TxUl8fWskuzWO+BhTqa5k+4mw=";
+  mypy-boto3-sagemaker-edge =
+    buildMypyBoto3Package "sagemaker-edge" "1.34.0"
+      "sha256-F3IN/KA7uzS16HZydXmFXlXseNIdhCais6Abfq7gRdI=";
 
-  mypy-boto3-sagemaker-geospatial = buildMypyBoto3Package "sagemaker-geospatial" "1.34.0" "sha256-9hKKH/025QQYLrlXCOAQoxuWzTMQlmLSov/hVsubF7M=";
+  mypy-boto3-sagemaker-featurestore-runtime =
+    buildMypyBoto3Package "sagemaker-featurestore-runtime" "1.34.22"
+      "sha256-4dFjwJSTgudHHgpVl2TxUl8fWskuzWO+BhTqa5k+4mw=";
 
-  mypy-boto3-sagemaker-metrics = buildMypyBoto3Package "sagemaker-metrics" "1.34.0" "sha256-KniU+0ZJKfjrBKDDZz+QyLb1oomSeD/K6fcJgmMAcJQ=";
+  mypy-boto3-sagemaker-geospatial =
+    buildMypyBoto3Package "sagemaker-geospatial" "1.34.0"
+      "sha256-9hKKH/025QQYLrlXCOAQoxuWzTMQlmLSov/hVsubF7M=";
 
-  mypy-boto3-sagemaker-runtime = buildMypyBoto3Package "sagemaker-runtime" "1.34.0" "sha256-OJYEdi4xILUZoePcGBcLRHAhwppeybNO+l0kyW3a0Co=";
+  mypy-boto3-sagemaker-metrics =
+    buildMypyBoto3Package "sagemaker-metrics" "1.34.0"
+      "sha256-KniU+0ZJKfjrBKDDZz+QyLb1oomSeD/K6fcJgmMAcJQ=";
 
-  mypy-boto3-savingsplans = buildMypyBoto3Package "savingsplans" "1.34.67" "sha256-t+0Ko+Onv24p1Sn59mvR/auXkDTowOEpKwpzuMUqk8w=";
+  mypy-boto3-sagemaker-runtime =
+    buildMypyBoto3Package "sagemaker-runtime" "1.34.0"
+      "sha256-OJYEdi4xILUZoePcGBcLRHAhwppeybNO+l0kyW3a0Co=";
 
-  mypy-boto3-scheduler = buildMypyBoto3Package "scheduler" "1.34.0" "sha256-+gnQjWPtp7KVI/qIY2aXHD9iM7RZIDl0JwRostfhjzc=";
+  mypy-boto3-savingsplans =
+    buildMypyBoto3Package "savingsplans" "1.34.67"
+      "sha256-t+0Ko+Onv24p1Sn59mvR/auXkDTowOEpKwpzuMUqk8w=";
 
-  mypy-boto3-schemas = buildMypyBoto3Package "schemas" "1.34.0" "sha256-OyWnGUQZKwmAw7tRMt63wG7puIWA7WPyV/rZfPO/KSc=";
+  mypy-boto3-scheduler =
+    buildMypyBoto3Package "scheduler" "1.34.0"
+      "sha256-+gnQjWPtp7KVI/qIY2aXHD9iM7RZIDl0JwRostfhjzc=";
 
-  mypy-boto3-sdb = buildMypyBoto3Package "sdb" "1.34.0" "sha256-13BuAQD8uDwwDhCw+8O3V882H6/oor5Z8mBmjb7HHAU=";
+  mypy-boto3-schemas =
+    buildMypyBoto3Package "schemas" "1.34.0"
+      "sha256-OyWnGUQZKwmAw7tRMt63wG7puIWA7WPyV/rZfPO/KSc=";
 
-  mypy-boto3-secretsmanager = buildMypyBoto3Package "secretsmanager" "1.34.72" "sha256-0HM8W1Potee9oA9LQu2ErxLjaiDISJF+ScFzoEIu8Dw=";
+  mypy-boto3-sdb =
+    buildMypyBoto3Package "sdb" "1.34.0"
+      "sha256-13BuAQD8uDwwDhCw+8O3V882H6/oor5Z8mBmjb7HHAU=";
 
-  mypy-boto3-securityhub = buildMypyBoto3Package "securityhub" "1.34.76" "sha256-3Y3uF5b+Mr6YZu9YPM70fFCgkveIeD1BrNfYuuIjay4=";
+  mypy-boto3-secretsmanager =
+    buildMypyBoto3Package "secretsmanager" "1.34.72"
+      "sha256-0HM8W1Potee9oA9LQu2ErxLjaiDISJF+ScFzoEIu8Dw=";
 
-  mypy-boto3-securitylake = buildMypyBoto3Package "securitylake" "1.34.53" "sha256-O/RHRoeUYT5DerEXIQ1NL288bcgA6bGdI29sN7WoQac=";
+  mypy-boto3-securityhub =
+    buildMypyBoto3Package "securityhub" "1.34.76"
+      "sha256-3Y3uF5b+Mr6YZu9YPM70fFCgkveIeD1BrNfYuuIjay4=";
 
-  mypy-boto3-serverlessrepo = buildMypyBoto3Package "serverlessrepo" "1.34.0" "sha256-abWCJqFbD/AyPV+7hmY4OlsedFs+p8WpNSXG7hjrj3s=";
+  mypy-boto3-securitylake =
+    buildMypyBoto3Package "securitylake" "1.34.53"
+      "sha256-O/RHRoeUYT5DerEXIQ1NL288bcgA6bGdI29sN7WoQac=";
 
-  mypy-boto3-service-quotas = buildMypyBoto3Package "service-quotas" "1.34.0" "sha256-wWbm/udCn5Je1gJZ+uDJ4LE8NbQlq1yHVQc6eQ2umIw=";
+  mypy-boto3-serverlessrepo =
+    buildMypyBoto3Package "serverlessrepo" "1.34.0"
+      "sha256-abWCJqFbD/AyPV+7hmY4OlsedFs+p8WpNSXG7hjrj3s=";
 
-  mypy-boto3-servicecatalog = buildMypyBoto3Package "servicecatalog" "1.34.13" "sha256-60XUP/uZDAkB0RaJgUD4wk+DknbsuygMnTmc3bKlr3U=";
+  mypy-boto3-service-quotas =
+    buildMypyBoto3Package "service-quotas" "1.34.0"
+      "sha256-wWbm/udCn5Je1gJZ+uDJ4LE8NbQlq1yHVQc6eQ2umIw=";
 
-  mypy-boto3-servicecatalog-appregistry = buildMypyBoto3Package "servicecatalog-appregistry" "1.34.0" "sha256-XYqa3aiC9pasmkMDXFmHKuK/PWwi6fZs/pt7rXuRFDw=";
+  mypy-boto3-servicecatalog =
+    buildMypyBoto3Package "servicecatalog" "1.34.13"
+      "sha256-60XUP/uZDAkB0RaJgUD4wk+DknbsuygMnTmc3bKlr3U=";
 
-  mypy-boto3-servicediscovery = buildMypyBoto3Package "servicediscovery" "1.34.0" "sha256-h9wTiaEakgBlrlwzUulqoEMWmVAKV/METiQppUC+FVI=";
+  mypy-boto3-servicecatalog-appregistry =
+    buildMypyBoto3Package "servicecatalog-appregistry" "1.34.0"
+      "sha256-XYqa3aiC9pasmkMDXFmHKuK/PWwi6fZs/pt7rXuRFDw=";
 
-  mypy-boto3-ses = buildMypyBoto3Package "ses" "1.34.0" "sha256-ieFDjZ8tTPM5wCRWFjNNUuDKOj8K4s4NH1SiJXxbnaQ=";
+  mypy-boto3-servicediscovery =
+    buildMypyBoto3Package "servicediscovery" "1.34.0"
+      "sha256-h9wTiaEakgBlrlwzUulqoEMWmVAKV/METiQppUC+FVI=";
 
-  mypy-boto3-sesv2 = buildMypyBoto3Package "sesv2" "1.34.56" "sha256-xW5M8RMTSqRvRfbb3+zeL3i3tWO3w8+G9eMgbhI6K9I=";
+  mypy-boto3-ses =
+    buildMypyBoto3Package "ses" "1.34.0"
+      "sha256-ieFDjZ8tTPM5wCRWFjNNUuDKOj8K4s4NH1SiJXxbnaQ=";
 
-  mypy-boto3-shield = buildMypyBoto3Package "shield" "1.34.0" "sha256-w0D4JKdlitCBIF3NaKn+POYch5CPGIiUZXqBoFzjzz4=";
+  mypy-boto3-sesv2 =
+    buildMypyBoto3Package "sesv2" "1.34.56"
+      "sha256-xW5M8RMTSqRvRfbb3+zeL3i3tWO3w8+G9eMgbhI6K9I=";
 
-  mypy-boto3-signer = buildMypyBoto3Package "signer" "1.34.0" "sha256-wR7ZQ8zTjuVPwMqQ7TR+93DWld9JU16rlt2X+z29xZI=";
+  mypy-boto3-shield =
+    buildMypyBoto3Package "shield" "1.34.0"
+      "sha256-w0D4JKdlitCBIF3NaKn+POYch5CPGIiUZXqBoFzjzz4=";
 
-  mypy-boto3-simspaceweaver = buildMypyBoto3Package "simspaceweaver" "1.34.0" "sha256-3J7s6FMRBcI7XaVoXjB3gSNI/Eh7TrE5ij8wRmagK/M=";
+  mypy-boto3-signer =
+    buildMypyBoto3Package "signer" "1.34.0"
+      "sha256-wR7ZQ8zTjuVPwMqQ7TR+93DWld9JU16rlt2X+z29xZI=";
 
-  mypy-boto3-sms = buildMypyBoto3Package "sms" "1.34.0" "sha256-ktneEYqlmdhb386de2oQuDN5W4FLTxjWBmnZ0COVASA=";
+  mypy-boto3-simspaceweaver =
+    buildMypyBoto3Package "simspaceweaver" "1.34.0"
+      "sha256-3J7s6FMRBcI7XaVoXjB3gSNI/Eh7TrE5ij8wRmagK/M=";
 
-  mypy-boto3-sms-voice = buildMypyBoto3Package "sms-voice" "1.34.0" "sha256-KaF8cWo+vin1YA63S6PDTpvjKWtz0Akl18yMVvhjdLo=";
+  mypy-boto3-sms =
+    buildMypyBoto3Package "sms" "1.34.0"
+      "sha256-ktneEYqlmdhb386de2oQuDN5W4FLTxjWBmnZ0COVASA=";
 
-  mypy-boto3-snow-device-management = buildMypyBoto3Package "snow-device-management" "1.34.0" "sha256-buPLN3Qu+asEf2qrv1Jvhu3gKN6aBrK55jB8IxPoFMs=";
+  mypy-boto3-sms-voice =
+    buildMypyBoto3Package "sms-voice" "1.34.0"
+      "sha256-KaF8cWo+vin1YA63S6PDTpvjKWtz0Akl18yMVvhjdLo=";
 
-  mypy-boto3-snowball = buildMypyBoto3Package "snowball" "1.34.58" "sha256-z60jinh1shgZv2Q4uW2eFphJXRC0ONVN5bPE1UBgC9Y=";
+  mypy-boto3-snow-device-management =
+    buildMypyBoto3Package "snow-device-management" "1.34.0"
+      "sha256-buPLN3Qu+asEf2qrv1Jvhu3gKN6aBrK55jB8IxPoFMs=";
 
-  mypy-boto3-sns = buildMypyBoto3Package "sns" "1.34.44" "sha256-qYW1KB0AoVbdfJCT5YE8EMTqa5Hy67cVZ/57t7IQplI=";
+  mypy-boto3-snowball =
+    buildMypyBoto3Package "snowball" "1.34.58"
+      "sha256-z60jinh1shgZv2Q4uW2eFphJXRC0ONVN5bPE1UBgC9Y=";
 
-  mypy-boto3-sqs = buildMypyBoto3Package "sqs" "1.34.0" "sha256-C/iZX1iRmrKVOYEA5y6qfaiYrc/Z0zmkLzxIzkc0GdU=";
+  mypy-boto3-sns =
+    buildMypyBoto3Package "sns" "1.34.44"
+      "sha256-qYW1KB0AoVbdfJCT5YE8EMTqa5Hy67cVZ/57t7IQplI=";
 
-  mypy-boto3-ssm = buildMypyBoto3Package "ssm" "1.34.61" "sha256-TLyZ9CtpE8U2xsxBwC0/Flkg0ee6u5uxd4K0EFVs3gA=";
+  mypy-boto3-sqs =
+    buildMypyBoto3Package "sqs" "1.34.0"
+      "sha256-C/iZX1iRmrKVOYEA5y6qfaiYrc/Z0zmkLzxIzkc0GdU=";
 
-  mypy-boto3-ssm-contacts = buildMypyBoto3Package "ssm-contacts" "1.34.0" "sha256-wkKPGLm24/zgMKitcF9ZaPt/W4m+yHerR1wbEqJALBM=";
+  mypy-boto3-ssm =
+    buildMypyBoto3Package "ssm" "1.34.61"
+      "sha256-TLyZ9CtpE8U2xsxBwC0/Flkg0ee6u5uxd4K0EFVs3gA=";
 
-  mypy-boto3-ssm-incidents = buildMypyBoto3Package "ssm-incidents" "1.34.0" "sha256-OB5/E5ZArGtLZ/UaVjDEnzoH4J4vEFehULG8RKCB6gg=";
+  mypy-boto3-ssm-contacts =
+    buildMypyBoto3Package "ssm-contacts" "1.34.0"
+      "sha256-wkKPGLm24/zgMKitcF9ZaPt/W4m+yHerR1wbEqJALBM=";
 
-  mypy-boto3-ssm-sap = buildMypyBoto3Package "ssm-sap" "1.34.0" "sha256-Sz3inwP5mRKJdFqrf5FYmTp6M9o8J/S4H6k/7SMq25E=";
+  mypy-boto3-ssm-incidents =
+    buildMypyBoto3Package "ssm-incidents" "1.34.0"
+      "sha256-OB5/E5ZArGtLZ/UaVjDEnzoH4J4vEFehULG8RKCB6gg=";
 
-  mypy-boto3-sso = buildMypyBoto3Package "sso" "1.34.0" "sha256-Iu1KwyWW8DjFJcV46L50gK/G8p2nAqxzzjgBAVTX6nU=";
+  mypy-boto3-ssm-sap =
+    buildMypyBoto3Package "ssm-sap" "1.34.0"
+      "sha256-Sz3inwP5mRKJdFqrf5FYmTp6M9o8J/S4H6k/7SMq25E=";
 
-  mypy-boto3-sso-admin = buildMypyBoto3Package "sso-admin" "1.34.0" "sha256-befPkyehC4AKxMotvRzyfZpkqlpkfpI2OKVSw4IFnjo=";
+  mypy-boto3-sso =
+    buildMypyBoto3Package "sso" "1.34.0"
+      "sha256-Iu1KwyWW8DjFJcV46L50gK/G8p2nAqxzzjgBAVTX6nU=";
 
-  mypy-boto3-sso-oidc = buildMypyBoto3Package "sso-oidc" "1.34.0" "sha256-uDHRoc7H3vtM/KYSeH95PdibjiEq/pSSJFcm5kgMMAg=";
+  mypy-boto3-sso-admin =
+    buildMypyBoto3Package "sso-admin" "1.34.0"
+      "sha256-befPkyehC4AKxMotvRzyfZpkqlpkfpI2OKVSw4IFnjo=";
 
-  mypy-boto3-stepfunctions = buildMypyBoto3Package "stepfunctions" "1.34.0" "sha256-BtIpbO51DRfLYhcUIO6kYU8g8pvkXuNhhU+LWZpugRA=";
+  mypy-boto3-sso-oidc =
+    buildMypyBoto3Package "sso-oidc" "1.34.0"
+      "sha256-uDHRoc7H3vtM/KYSeH95PdibjiEq/pSSJFcm5kgMMAg=";
 
-  mypy-boto3-storagegateway = buildMypyBoto3Package "storagegateway" "1.34.27" "sha256-iKn048AdvM6XSOqT/w6edWoe0VMi3V305oHMth/QkF0=";
+  mypy-boto3-stepfunctions =
+    buildMypyBoto3Package "stepfunctions" "1.34.0"
+      "sha256-BtIpbO51DRfLYhcUIO6kYU8g8pvkXuNhhU+LWZpugRA=";
 
-  mypy-boto3-sts = buildMypyBoto3Package "sts" "1.34.0" "sha256-s0fgozbWAWLdlAdNnRD2FPKwmkVcm0JBWFDVTWduIGc=";
+  mypy-boto3-storagegateway =
+    buildMypyBoto3Package "storagegateway" "1.34.27"
+      "sha256-iKn048AdvM6XSOqT/w6edWoe0VMi3V305oHMth/QkF0=";
 
-  mypy-boto3-support = buildMypyBoto3Package "support" "1.34.0" "sha256-3y+uFRJKahLAPoG9gqxK8gqZKJ+OL1Rom/dr/zWIq+k=";
+  mypy-boto3-sts =
+    buildMypyBoto3Package "sts" "1.34.0"
+      "sha256-s0fgozbWAWLdlAdNnRD2FPKwmkVcm0JBWFDVTWduIGc=";
 
-  mypy-boto3-support-app = buildMypyBoto3Package "support-app" "1.34.0" "sha256-/aYEPAnGgAPB6Tnh5jwYASbP2kVJth+3ZxcMCYgo9n0=";
+  mypy-boto3-support =
+    buildMypyBoto3Package "support" "1.34.0"
+      "sha256-3y+uFRJKahLAPoG9gqxK8gqZKJ+OL1Rom/dr/zWIq+k=";
 
-  mypy-boto3-swf = buildMypyBoto3Package "swf" "1.34.0" "sha256-T8QYHzRjjQyLGqSwc7J6hPXqpeoeCUvlpHbXwnT99rQ=";
+  mypy-boto3-support-app =
+    buildMypyBoto3Package "support-app" "1.34.0"
+      "sha256-/aYEPAnGgAPB6Tnh5jwYASbP2kVJth+3ZxcMCYgo9n0=";
 
-  mypy-boto3-synthetics = buildMypyBoto3Package "synthetics" "1.34.0" "sha256-gGEu4vQ5T1gSLM33V8Ouj+ZlPQIoY+RRbUz7nvD7PbY=";
+  mypy-boto3-swf =
+    buildMypyBoto3Package "swf" "1.34.0"
+      "sha256-T8QYHzRjjQyLGqSwc7J6hPXqpeoeCUvlpHbXwnT99rQ=";
 
-  mypy-boto3-textract = buildMypyBoto3Package "textract" "1.34.0" "sha256-AeukQ85jOCNpUxfnedEyacm/bK6pFA32tmhQrieLoMo=";
+  mypy-boto3-synthetics =
+    buildMypyBoto3Package "synthetics" "1.34.0"
+      "sha256-gGEu4vQ5T1gSLM33V8Ouj+ZlPQIoY+RRbUz7nvD7PbY=";
 
-  mypy-boto3-timestream-query = buildMypyBoto3Package "timestream-query" "1.34.65" "sha256-RSGOulFIOZi/9Z5grP/Zv0A5fy3MJTzph+D9a45MkHA=";
+  mypy-boto3-textract =
+    buildMypyBoto3Package "textract" "1.34.0"
+      "sha256-AeukQ85jOCNpUxfnedEyacm/bK6pFA32tmhQrieLoMo=";
 
-  mypy-boto3-timestream-write = buildMypyBoto3Package "timestream-write" "1.34.0" "sha256-fKi5nIyU5BffflHVh21HjcuYE+RXDiq0gXbFOKOAYPE=";
+  mypy-boto3-timestream-query =
+    buildMypyBoto3Package "timestream-query" "1.34.65"
+      "sha256-RSGOulFIOZi/9Z5grP/Zv0A5fy3MJTzph+D9a45MkHA=";
 
-  mypy-boto3-tnb = buildMypyBoto3Package "tnb" "1.34.0" "sha256-32Pcqs7DamX+sZt3pDF+gCjnAs8JhtJm9+Jl0agIuOA=";
+  mypy-boto3-timestream-write =
+    buildMypyBoto3Package "timestream-write" "1.34.0"
+      "sha256-fKi5nIyU5BffflHVh21HjcuYE+RXDiq0gXbFOKOAYPE=";
 
-  mypy-boto3-transcribe = buildMypyBoto3Package "transcribe" "1.34.0" "sha256-cKiJ306Y96xLHB7vX46uaw145BPLK/1g3OrMIMB0pPo=";
+  mypy-boto3-tnb =
+    buildMypyBoto3Package "tnb" "1.34.0"
+      "sha256-32Pcqs7DamX+sZt3pDF+gCjnAs8JhtJm9+Jl0agIuOA=";
 
-  mypy-boto3-transfer = buildMypyBoto3Package "transfer" "1.34.77" "sha256-fqta7EJ7rP8dIKJTG8sJCYCNmcqqNljqf9jyk0j6feA=";
+  mypy-boto3-transcribe =
+    buildMypyBoto3Package "transcribe" "1.34.0"
+      "sha256-cKiJ306Y96xLHB7vX46uaw145BPLK/1g3OrMIMB0pPo=";
 
-  mypy-boto3-translate = buildMypyBoto3Package "translate" "1.34.0" "sha256-4tjjmwMtIPpMwKZ3yqB96XEb1WidCxMIj2Cfjn0nTy8=";
+  mypy-boto3-transfer =
+    buildMypyBoto3Package "transfer" "1.34.77"
+      "sha256-fqta7EJ7rP8dIKJTG8sJCYCNmcqqNljqf9jyk0j6feA=";
 
-  mypy-boto3-verifiedpermissions = buildMypyBoto3Package "verifiedpermissions" "1.34.79" "sha256-su6Lq/NVOp2Shgb6UPdrJLqAv9qG8Mx3bQk9PwihybM=";
+  mypy-boto3-translate =
+    buildMypyBoto3Package "translate" "1.34.0"
+      "sha256-4tjjmwMtIPpMwKZ3yqB96XEb1WidCxMIj2Cfjn0nTy8=";
 
-  mypy-boto3-voice-id = buildMypyBoto3Package "voice-id" "1.34.0" "sha256-c6HseKIqRPs8NmFZYsg+9jWCMGpMi+VpvM9BiWq16PY=";
+  mypy-boto3-verifiedpermissions =
+    buildMypyBoto3Package "verifiedpermissions" "1.34.79"
+      "sha256-su6Lq/NVOp2Shgb6UPdrJLqAv9qG8Mx3bQk9PwihybM=";
 
-  mypy-boto3-vpc-lattice = buildMypyBoto3Package "vpc-lattice" "1.34.0" "sha256-zyqcDplqAYFrUjrz28SHrIemPSTzvfUb7x6CXxXCTNc=";
+  mypy-boto3-voice-id =
+    buildMypyBoto3Package "voice-id" "1.34.0"
+      "sha256-c6HseKIqRPs8NmFZYsg+9jWCMGpMi+VpvM9BiWq16PY=";
 
-  mypy-boto3-waf = buildMypyBoto3Package "waf" "1.34.0" "sha256-TVOBwTITXBYFoGvXULoi8OL7OJXZKJbCpZPaZ5siWXk=";
+  mypy-boto3-vpc-lattice =
+    buildMypyBoto3Package "vpc-lattice" "1.34.0"
+      "sha256-zyqcDplqAYFrUjrz28SHrIemPSTzvfUb7x6CXxXCTNc=";
 
-  mypy-boto3-waf-regional = buildMypyBoto3Package "waf-regional" "1.34.0" "sha256-zv/IPDU6lqmmIfTq57d7VH3SyA7UkgWW2Hysk2zamcM=";
+  mypy-boto3-waf =
+    buildMypyBoto3Package "waf" "1.34.0"
+      "sha256-TVOBwTITXBYFoGvXULoi8OL7OJXZKJbCpZPaZ5siWXk=";
 
-  mypy-boto3-wafv2 = buildMypyBoto3Package "wafv2" "1.34.58" "sha256-gPNY3XJr/50nejQFzti9igktryZHsgQDiB9BOYnT94I=";
+  mypy-boto3-waf-regional =
+    buildMypyBoto3Package "waf-regional" "1.34.0"
+      "sha256-zv/IPDU6lqmmIfTq57d7VH3SyA7UkgWW2Hysk2zamcM=";
 
-  mypy-boto3-wellarchitected = buildMypyBoto3Package "wellarchitected" "1.34.0" "sha256-tzXpOWC6/WJ+/wUgwYtgI7scq7wRpACW8q1z9RwyhbA=";
+  mypy-boto3-wafv2 =
+    buildMypyBoto3Package "wafv2" "1.34.58"
+      "sha256-gPNY3XJr/50nejQFzti9igktryZHsgQDiB9BOYnT94I=";
 
-  mypy-boto3-wisdom = buildMypyBoto3Package "wisdom" "1.34.16" "sha256-VhRrQLqmrHn/uWI6lWFJ27hiSmZbW1y+VE2Uf8ssrOw=";
+  mypy-boto3-wellarchitected =
+    buildMypyBoto3Package "wellarchitected" "1.34.0"
+      "sha256-tzXpOWC6/WJ+/wUgwYtgI7scq7wRpACW8q1z9RwyhbA=";
 
-  mypy-boto3-workdocs = buildMypyBoto3Package "workdocs" "1.34.0" "sha256-96V+xgJ+DvqA4A7teCEpVVirlTVxCehXzNcPWUojPH4=";
+  mypy-boto3-wisdom =
+    buildMypyBoto3Package "wisdom" "1.34.16"
+      "sha256-VhRrQLqmrHn/uWI6lWFJ27hiSmZbW1y+VE2Uf8ssrOw=";
 
-  mypy-boto3-worklink = buildMypyBoto3Package "worklink" "1.34.0" "sha256-dEWnbAtuUH14ojkOdeQvPvnVYZYxEsPvXuamyil2AHE=";
+  mypy-boto3-workdocs =
+    buildMypyBoto3Package "workdocs" "1.34.0"
+      "sha256-96V+xgJ+DvqA4A7teCEpVVirlTVxCehXzNcPWUojPH4=";
 
-  mypy-boto3-workmail = buildMypyBoto3Package "workmail" "1.34.0" "sha256-D0gfIW2sbxQ/JOi5f9S6/KezsEKz4239srdL8EfFjG8=";
+  mypy-boto3-worklink =
+    buildMypyBoto3Package "worklink" "1.34.0"
+      "sha256-dEWnbAtuUH14ojkOdeQvPvnVYZYxEsPvXuamyil2AHE=";
 
-  mypy-boto3-workmailmessageflow = buildMypyBoto3Package "workmailmessageflow" "1.34.0" "sha256-e4wgFvtlfx0u6eGphRU7viGzZ4gbZijj4vjziPLPWX8=";
+  mypy-boto3-workmail =
+    buildMypyBoto3Package "workmail" "1.34.0"
+      "sha256-D0gfIW2sbxQ/JOi5f9S6/KezsEKz4239srdL8EfFjG8=";
 
-  mypy-boto3-workspaces = buildMypyBoto3Package "workspaces" "1.34.58" "sha256-EtAL93MtIZppL57xP4JDGoWT/SqgptRgCJyq/3bm9ts=";
+  mypy-boto3-workmailmessageflow =
+    buildMypyBoto3Package "workmailmessageflow" "1.34.0"
+      "sha256-e4wgFvtlfx0u6eGphRU7viGzZ4gbZijj4vjziPLPWX8=";
 
-  mypy-boto3-workspaces-web = buildMypyBoto3Package "workspaces-web" "1.34.0" "sha256-RImlbT5Lpu2IoTrEQv5Bzk3NnkMV9jQjHGDnxCK3x18=";
+  mypy-boto3-workspaces =
+    buildMypyBoto3Package "workspaces" "1.34.58"
+      "sha256-EtAL93MtIZppL57xP4JDGoWT/SqgptRgCJyq/3bm9ts=";
 
-  mypy-boto3-xray = buildMypyBoto3Package "xray" "1.34.0" "sha256-8weFeYAit/DBFOhReQr5uSy0Am7Sh1fpYtMPtDka+OI=";
+  mypy-boto3-workspaces-web =
+    buildMypyBoto3Package "workspaces-web" "1.34.0"
+      "sha256-RImlbT5Lpu2IoTrEQv5Bzk3NnkMV9jQjHGDnxCK3x18=";
 
+  mypy-boto3-xray =
+    buildMypyBoto3Package "xray" "1.34.0"
+      "sha256-8weFeYAit/DBFOhReQr5uSy0Am7Sh1fpYtMPtDka+OI=";
 }
diff --git a/pkgs/development/python-modules/mypy-protobuf/default.nix b/pkgs/development/python-modules/mypy-protobuf/default.nix
index 32560c7baeef1..0dca10652ac61 100644
--- a/pkgs/development/python-modules/mypy-protobuf/default.nix
+++ b/pkgs/development/python-modules/mypy-protobuf/default.nix
@@ -1,17 +1,21 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, protobuf
-, types-protobuf
-, grpcio-tools
-, pytestCheckHook
-, pythonOlder
+{
+  buildPythonPackage,
+  fetchPypi,
+  grpcio-tools,
+  lib,
+  mypy-protobuf,
+  protobuf,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  testers,
+  types-protobuf,
 }:
 
 buildPythonPackage rec {
   pname = "mypy-protobuf";
   version = "3.6.0";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -20,26 +24,34 @@ buildPythonPackage rec {
     hash = "sha256-AvJC6zQJ9miJ8rGjqlg1bsTZCc3Q+TEVYi6ecDZuyjw=";
   };
 
-  propagatedBuildInputs = [
+
+  pythonRelaxDeps = [ "protobuf" ];
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    grpcio-tools
     protobuf
     types-protobuf
-    grpcio-tools
   ];
 
   doCheck = false; # ModuleNotFoundError: No module named 'testproto'
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "mypy_protobuf"
-  ];
+  pythonImportsCheck = [ "mypy_protobuf" ];
+
+  passthru.tests.version = testers.testVersion {
+    package = mypy-protobuf;
+    command = "${lib.getExe mypy-protobuf} --version";
+  };
 
-  meta = with lib; {
+  meta = {
+    changelog = "https://github.com/nipunn1313/mypy-protobuf/blob/v${version}/CHANGELOG.md";
     description = "Generate mypy stub files from protobuf specs";
-    homepage = "https://github.com/dropbox/mypy-protobuf";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ lnl7 ];
+    homepage = "https://github.com/nipunn1313/mypy-protobuf";
+    license = lib.licenses.asl20;
+    mainProgram = "protoc-gen-mypy";
+    maintainers = with lib.maintainers; [ lnl7 ];
   };
 }
diff --git a/pkgs/development/python-modules/mypy/default.nix b/pkgs/development/python-modules/mypy/default.nix
index c94b83bbb4fb9..ffdd8bc5ac2c2 100644
--- a/pkgs/development/python-modules/mypy/default.nix
+++ b/pkgs/development/python-modules/mypy/default.nix
@@ -1,35 +1,37 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
-, pythonOlder
-
-# build-system
-, setuptools
-, types-psutil
-, types-setuptools
-, wheel
-
-# propagates
-, mypy-extensions
-, tomli
-, typing-extensions
-
-# optionals
-, lxml
-, psutil
-
-# tests
-, attrs
-, filelock
-, pytest-xdist
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+  types-psutil,
+  types-setuptools,
+  wheel,
+
+  # propagates
+  mypy-extensions,
+  tomli,
+  typing-extensions,
+
+  # optionals
+  lxml,
+  psutil,
+
+  # tests
+  attrs,
+  filelock,
+  pytest-xdist,
+  pytestCheckHook,
+  nixosTests,
 }:
 
 buildPythonPackage rec {
   pname = "mypy";
-  version = "1.9.0";
+  version = "1.10.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -37,8 +39,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "python";
     repo = "mypy";
-    rev = "refs/tags/${version}";
-    hash = "sha256-uOOZX8bKRunTOgYVbmetu2m0B7kijxBgWdNiLCAhiQ4=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-NCnc4C/YFKHN/kT7RTFCYs/yC00Kt1E7mWCoQuUjxG8=";
   };
 
   build-system = [
@@ -48,24 +50,16 @@ buildPythonPackage rec {
     types-setuptools
     typing-extensions
     wheel
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   dependencies = [
     mypy-extensions
     typing-extensions
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   optional-dependencies = {
-    dmypy = [
-      psutil
-    ];
-    reports = [
-      lxml
-    ];
+    dmypy = [ psutil ];
+    reports = [ lxml ];
   };
 
   # Compile mypy with mypyc, which makes mypy about 4 times faster. The compiled
@@ -76,17 +70,19 @@ buildPythonPackage rec {
   # when testing reduce optimisation level to reduce build time by 20%
   env.MYPYC_OPT_LEVEL = 1;
 
-  pythonImportsCheck = [
-    "mypy"
-    "mypy.api"
-    "mypy.fastparse"
-    "mypy.types"
-    "mypyc"
-    "mypyc.analysis"
-  ] ++ lib.optionals (!stdenv.hostPlatform.isi686) [
-    # ImportError: cannot import name 'map_instance_to_supertype' from partially initialized module 'mypy.maptype' (most likely due to a circular import)
-    "mypy.report"
-  ];
+  pythonImportsCheck =
+    [
+      "mypy"
+      "mypy.api"
+      "mypy.fastparse"
+      "mypy.types"
+      "mypyc"
+      "mypyc.analysis"
+    ]
+    ++ lib.optionals (!stdenv.hostPlatform.isi686) [
+      # ImportError: cannot import name 'map_instance_to_supertype' from partially initialized module 'mypy.maptype' (most likely due to a circular import)
+      "mypy.report"
+    ];
 
   nativeCheckInputs = [
     attrs
@@ -97,27 +93,36 @@ buildPythonPackage rec {
     tomli
   ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
-  disabledTests = [
-    # fails with typing-extensions>=4.10
-    # https://github.com/python/mypy/issues/17005
-    "test_runtime_typing_objects"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    # requires distutils
-    "test_c_unit_test"
-  ];
-
-  disabledTestPaths = [
-    # fails to find tyoing_extensions
-    "mypy/test/testcmdline.py"
-    "mypy/test/testdaemon.py"
-    # fails to find setuptools
-    "mypyc/test/test_commandline.py"
-    # fails to find hatchling
-    "mypy/test/testpep561.py"
-  ] ++ lib.optionals stdenv.hostPlatform.isi686 [
-    # https://github.com/python/mypy/issues/15221
-    "mypyc/test/test_run.py"
-  ];
+  disabledTests =
+    [
+      # fails with typing-extensions>=4.10
+      # https://github.com/python/mypy/issues/17005
+      "test_runtime_typing_objects"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # requires distutils
+      "test_c_unit_test"
+    ];
+
+  disabledTestPaths =
+    [
+      # fails to find tyoing_extensions
+      "mypy/test/testcmdline.py"
+      "mypy/test/testdaemon.py"
+      # fails to find setuptools
+      "mypyc/test/test_commandline.py"
+      # fails to find hatchling
+      "mypy/test/testpep561.py"
+    ]
+    ++ lib.optionals stdenv.hostPlatform.isi686 [
+      # https://github.com/python/mypy/issues/15221
+      "mypyc/test/test_run.py"
+    ];
+
+  passthru.tests = {
+    # Failing typing checks on the test-driver result in channel blockers.
+    inherit (nixosTests) nixos-test-driver;
+  };
 
   meta = with lib; {
     description = "Optional static typing for Python";
diff --git a/pkgs/development/python-modules/mypy/extensions.nix b/pkgs/development/python-modules/mypy/extensions.nix
index e8622b84eb7c9..3282a6b6e8634 100644
--- a/pkgs/development/python-modules/mypy/extensions.nix
+++ b/pkgs/development/python-modules/mypy/extensions.nix
@@ -1,10 +1,11 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, typing
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  typing,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,22 +22,16 @@ buildPythonPackage rec {
   propagatedBuildInputs = lib.optional (pythonOlder "3.5") typing;
 
   # make the testsuite run with pytest, so we can disable individual tests
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests/testextensions.py"
-  ];
+  pytestFlagsArray = [ "tests/testextensions.py" ];
 
   disabledTests = lib.optionals (pythonAtLeast "3.11") [
     # https://github.com/python/mypy_extensions/issues/24
     "test_typeddict_errors"
   ];
 
-  pythonImportsCheck = [
-    "mypy_extensions"
-  ];
+  pythonImportsCheck = [ "mypy_extensions" ];
 
   meta = with lib; {
     description = "Experimental type system extensions for programs checked with the mypy typechecker";
diff --git a/pkgs/development/python-modules/mysql-connector/default.nix b/pkgs/development/python-modules/mysql-connector/default.nix
index 575c438eb5514..b15a4559aa983 100644
--- a/pkgs/development/python-modules/mysql-connector/default.nix
+++ b/pkgs/development/python-modules/mysql-connector/default.nix
@@ -1,14 +1,15 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, django
-, dnspython
-, fetchFromGitHub
-, protobuf
-, pythonOlder
-, mysql80
-, openssl
-, pkgs
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  django,
+  dnspython,
+  fetchFromGitHub,
+  protobuf,
+  pythonOlder,
+  mysql80,
+  openssl,
+  pkgs,
 }:
 
 buildPythonPackage rec {
@@ -41,10 +42,7 @@ buildPythonPackage rec {
     ./0001-Revert-Fix-MacOS-wheels-platform-tag.patch
   ];
 
-  nativeBuildInputs = [
-    mysql80
-  ];
-
+  nativeBuildInputs = [ mysql80 ];
 
   propagatedBuildInputs = [
     dnspython
@@ -54,15 +52,13 @@ buildPythonPackage rec {
     pkgs.zstd
   ];
 
-  pythonImportsCheck = [
-    "mysql"
-  ];
+  pythonImportsCheck = [ "mysql" ];
 
   # Tests require a running MySQL instance
   doCheck = false;
 
   meta = with lib; {
-    description = "A MySQL driver";
+    description = "MySQL driver";
     longDescription = ''
       A MySQL driver that does not depend on MySQL C client libraries and
       implements the DB API v2.0 specification.
@@ -70,6 +66,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/mysql/mysql-connector-python";
     changelog = "https://raw.githubusercontent.com/mysql/mysql-connector-python/${version}/CHANGES.txt";
     license = licenses.gpl2Only;
-    maintainers = with maintainers; [ neosimsim turion ];
+    maintainers = with maintainers; [
+      neosimsim
+      turion
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/mysqlclient/default.nix b/pkgs/development/python-modules/mysqlclient/default.nix
index e27ee3f7c7be2..e15e7545b75b1 100644
--- a/pkgs/development/python-modules/mysqlclient/default.nix
+++ b/pkgs/development/python-modules/mysqlclient/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, libmysqlclient
-, pkg-config
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  libmysqlclient,
+  pkg-config,
 }:
 
 buildPythonPackage rec {
@@ -10,13 +11,9 @@ buildPythonPackage rec {
   version = "2.2.4";
   format = "setuptools";
 
-  nativeBuildInputs = [
-    pkg-config
-  ];
+  nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [
-    libmysqlclient
-  ];
+  buildInputs = [ libmysqlclient ];
 
   # Tests need a MySQL database
   doCheck = false;
diff --git a/pkgs/development/python-modules/myst-docutils/default.nix b/pkgs/development/python-modules/myst-docutils/default.nix
index 66c07489dfaa0..e342450c0e45b 100644
--- a/pkgs/development/python-modules/myst-docutils/default.nix
+++ b/pkgs/development/python-modules/myst-docutils/default.nix
@@ -1,30 +1,29 @@
-{ lib
-, buildPythonPackage
-, docutils
-, fetchPypi
-, flit-core
-, jinja2
-, markdown-it-py
-, mdit-py-plugins
-, pythonOlder
-, pyyaml
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  docutils,
+  fetchPypi,
+  flit-core,
+  jinja2,
+  markdown-it-py,
+  mdit-py-plugins,
+  pythonOlder,
+  pyyaml,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "myst-docutils";
-  version = "2.0.0";
+  version = "3.0.1";
   format = "pyproject";
 
   src = fetchPypi {
     pname = "myst_docutils";
     inherit version;
-    hash = "sha256-WmmPEg+bINmeId+pjR6bbp8qzjfSXfEel+sQEdPIu8Y=";
+    hash = "sha256-alQvF0OWNjDck022ORJ1Nl4t1jgzMZKEbJxPHsrmBcI=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     docutils
@@ -38,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "myst_parser" ];
 
   meta = with lib; {
-    description = "An extended commonmark compliant parser, with bridges to docutils/sphinx.";
+    description = "Extended commonmark compliant parser, with bridges to docutils/sphinx";
     homepage = "https://github.com/executablebooks/MyST-Parser";
     license = licenses.mit;
     maintainers = with maintainers; [ dpausp ];
diff --git a/pkgs/development/python-modules/myst-nb/default.nix b/pkgs/development/python-modules/myst-nb/default.nix
index 8f23ad5dee84b..c808871be493d 100644
--- a/pkgs/development/python-modules/myst-nb/default.nix
+++ b/pkgs/development/python-modules/myst-nb/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, flit-core
-, importlib-metadata
-, ipython
-, jupyter-cache
-, nbclient
-, myst-parser
-, nbformat
-, pyyaml
-, sphinx
-, sphinx-togglebutton
-, typing-extensions
-, ipykernel
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  flit-core,
+  importlib-metadata,
+  ipython,
+  jupyter-cache,
+  nbclient,
+  myst-parser,
+  nbformat,
+  pyyaml,
+  sphinx,
+  sphinx-togglebutton,
+  typing-extensions,
+  ipykernel,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     hash = "sha256-kniEDoRPXXgLWsxUAMv2PZfKrM+OtEKlXr2aA+JSLV4=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     importlib-metadata
@@ -53,7 +52,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Jupyter Notebook Sphinx reader built on top of the MyST markdown parser";
+    description = "Jupyter Notebook Sphinx reader built on top of the MyST markdown parser";
     homepage = "https://github.com/executablebooks/MyST-NB";
     changelog = "https://github.com/executablebooks/MyST-NB/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/myst-parser/default.nix b/pkgs/development/python-modules/myst-parser/default.nix
index 12ddb2ec769ec..c5b7736c113ad 100644
--- a/pkgs/development/python-modules/myst-parser/default.nix
+++ b/pkgs/development/python-modules/myst-parser/default.nix
@@ -1,28 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, flit-core
-, pythonOlder
-, defusedxml
-, docutils
-, jinja2
-, markdown-it-py
-, mdit-py-plugins
-, pyyaml
-, sphinx
-, typing-extensions
-, beautifulsoup4
-, pytest-param-files
-, pytest-regressions
-, sphinx-pytest
-, pytestCheckHook
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pythonOlder,
+  defusedxml,
+  docutils,
+  jinja2,
+  markdown-it-py,
+  mdit-py-plugins,
+  pyyaml,
+  sphinx,
+  typing-extensions,
+  beautifulsoup4,
+  pytest-param-files,
+  pytest-regressions,
+  sphinx-pytest,
+  pytestCheckHook,
 }:
-
 buildPythonPackage rec {
   pname = "myst-parser";
-  version = "2.0.0";
+  version = "3.0.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -31,20 +29,11 @@ buildPythonPackage rec {
     owner = "executablebooks";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-1BW7Z+0rs5Up+VZ3vDygnhLzE9Y2BqEMnTnflboweu0=";
+    hash = "sha256-TKo1lanZNM+XrOKZ0ZmtlhEPoAYQUspkyHXZm1wNTFE=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "myst-parser-sphinx7.2-compat.patch";
-      url = "https://github.com/executablebooks/MyST-Parser/commit/4f670fc04c438b57a9d4014be74e9a62cc0deba4.patch";
-      hash = "sha256-FCvFSsD7qQwqWjSW7R4Gx+E2jaGkifSZqaRbAglt9Yw=";
-    })
-  ];
-
   nativeBuildInputs = [
     flit-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -66,31 +55,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ markdown-it-py.optional-dependencies.linkify;
 
-  pythonImportsCheck = [
-    "myst_parser"
-  ];
+  pythonImportsCheck = [ "myst_parser" ];
 
-  pythonRelaxDeps = [
-    "docutils"
-  ];
-
-  disabledTests = [
-    # AssertionError due to different files
-    "test_basic"
-    "test_footnotes"
-    "test_gettext_html"
-    "test_fieldlist_extension"
-    # docutils 0.19 expectation mismatches
-    "test_docutils_roles"
-    # sphinx 7.0 expectation mismatches
-    "test_heading_slug_func"
-    "test_references_singlehtml"
-    # sphinx 6.0 expectation mismatches
-    "test_sphinx_directives"
-    # sphinx 5.3 expectation mismatches
-    "test_render"
-    "test_includes"
-  ];
+  pythonRelaxDeps = [ "docutils" ];
 
   meta = with lib; {
     description = "Sphinx and Docutils extension to parse MyST";
diff --git a/pkgs/development/python-modules/n3fit/default.nix b/pkgs/development/python-modules/n3fit/default.nix
index 5c8b06b74a658..01c56659465c2 100644
--- a/pkgs/development/python-modules/n3fit/default.nix
+++ b/pkgs/development/python-modules/n3fit/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, hyperopt
-, keras
-, nnpdf
-, psutil
-, tensorflow
-, validphys2
+{
+  lib,
+  buildPythonPackage,
+  hyperopt,
+  keras,
+  nnpdf,
+  psutil,
+  tensorflow,
+  validphys2,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/nad-receiver/default.nix b/pkgs/development/python-modules/nad-receiver/default.nix
index a53ff6f84f221..1eb1000f02598 100644
--- a/pkgs/development/python-modules/nad-receiver/default.nix
+++ b/pkgs/development/python-modules/nad-receiver/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, pyserial
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  pyserial,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-jRMk/yMA48ei+g/33+mMYwfwixaKTMYcU/z/VOoJbvY=";
   };
 
-  propagatedBuildInputs = [
-    pyserial
-  ];
+  propagatedBuildInputs = [ pyserial ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "nad_receiver" ];
 
diff --git a/pkgs/development/python-modules/nagiosplugin/default.nix b/pkgs/development/python-modules/nagiosplugin/default.nix
index a7e7b016577de..4ba887fb71d7f 100644
--- a/pkgs/development/python-modules/nagiosplugin/default.nix
+++ b/pkgs/development/python-modules/nagiosplugin/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, pytestCheckHook
-, pythonOlder
-, twine
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  twine,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-vOr67DWfAyOT3dVgrizI0WNhODPsY8k85xifhZBOU9Y=";
   };
 
-  nativeBuildInputs = [
-    twine
-  ];
+  nativeBuildInputs = [ twine ];
 
   nativeCheckInputs = [
     numpy
@@ -33,9 +32,7 @@ buildPythonPackage rec {
     "test_check_users"
   ];
 
-  pythonImportsCheck = [
-    "nagiosplugin"
-  ];
+  pythonImportsCheck = [ "nagiosplugin" ];
 
   meta = with lib; {
     description = "Python class library which helps with writing Nagios (Icinga) compatible plugins";
diff --git a/pkgs/development/python-modules/naked/default.nix b/pkgs/development/python-modules/naked/default.nix
index 7a37d66861aa5..9c0c35b0b0e71 100644
--- a/pkgs/development/python-modules/naked/default.nix
+++ b/pkgs/development/python-modules/naked/default.nix
@@ -1,13 +1,14 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, requests
-, pyyaml
-, setuptools
-, wheel
-, nodejs
-, ruby
-, pytestCheckHook
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  requests,
+  pyyaml,
+  setuptools,
+  wheel,
+  nodejs,
+  ruby,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -28,16 +29,23 @@ buildPythonPackage rec {
       --replace /Users/ces/Desktop/code/naked /build/source
   '';
 
-  nativeBuildInputs = [ wheel setuptools ];
+  nativeBuildInputs = [
+    wheel
+    setuptools
+  ];
 
   propagatedBuildInputs = [
     requests
     pyyaml
   ];
 
-  nativeCheckInputs = [ pytestCheckHook nodejs ruby ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    nodejs
+    ruby
+  ];
 
-  preCheck =''
+  preCheck = ''
     cd tests
 
     PATH=$PATH:$out/bin
@@ -94,7 +102,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "Naked" ];
 
   meta = with lib; {
-    description = "A Python command line application framework";
+    description = "Python command line application framework";
     homepage = "https://github.com/chrissimpkins/naked";
     downloadPage = "https://github.com/chrissimpkins/naked/tags";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/name-that-hash/default.nix b/pkgs/development/python-modules/name-that-hash/default.nix
index e68764b13ff7d..ae094b0a142cc 100644
--- a/pkgs/development/python-modules/name-that-hash/default.nix
+++ b/pkgs/development/python-modules/name-that-hash/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, click
-, rich
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  click,
+  rich,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     substituteInPlace pyproject.toml --replace 'rich = ">=9.9,<11.0"' 'rich = ">=9.9"'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     click
diff --git a/pkgs/development/python-modules/namedlist/default.nix b/pkgs/development/python-modules/namedlist/default.nix
index 86d5a9f5b3b27..f4ddbb7dd7ab6 100644
--- a/pkgs/development/python-modules/namedlist/default.nix
+++ b/pkgs/development/python-modules/namedlist/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-NPifyZJZLICzmnCeE27c9B6hfyS6Mer4SjFKAsi5vO8=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   patches = [
     # Deprecation warning using collections.abc, https://gitlab.com/ericvsmith/namedlist/-/merge_requests/1
@@ -36,9 +35,7 @@ buildPythonPackage rec {
     substituteInPlace test/test_namedlist.py --replace "unittest.main()" ""
   '';
 
-  pythonImportsCheck = [
-    "namedlist"
-  ];
+  pythonImportsCheck = [ "namedlist" ];
 
   disabledTests = [
     # AttributeError: module 'collections' has no attribute 'Container'
diff --git a/pkgs/development/python-modules/nameko/default.nix b/pkgs/development/python-modules/nameko/default.nix
index 93bc03bcde95e..b5d445c33f449 100644
--- a/pkgs/development/python-modules/nameko/default.nix
+++ b/pkgs/development/python-modules/nameko/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# install_requires
-, dnspython
-, eventlet
-, kombu
-, mock
-, packaging
-, path
-, pyyaml
-, requests
-, setuptools
-, six
-, werkzeug
-, wrapt
+  # install_requires
+  dnspython,
+  eventlet,
+  kombu,
+  mock,
+  packaging,
+  path,
+  pyyaml,
+  requests,
+  setuptools,
+  six,
+  werkzeug,
+  wrapt,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "path.py" "path"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     dnspython
@@ -57,12 +56,10 @@ buildPythonPackage rec {
   # and most of the tests are network based
   doCheck = false;
 
-  pythonImportsCheck = [
-    "nameko"
-  ];
+  pythonImportsCheck = [ "nameko" ];
 
   meta = with lib; {
-    description = "A microservices framework that lets service developers concentrate on application logic and encourages testability";
+    description = "Microservices framework that lets service developers concentrate on application logic and encourages testability";
     mainProgram = "nameko";
     homepage = "https://www.nameko.io/";
     changelog = "https://github.com/nameko/nameko/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/nameparser/default.nix b/pkgs/development/python-modules/nameparser/default.nix
index 370a5300a04e5..daafd9190c16b 100644
--- a/pkgs/development/python-modules/nameparser/default.nix
+++ b/pkgs/development/python-modules/nameparser/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-qiQArXHM+AcGdbQDEaJXyTRln5GFSxVOG6bCZHYcBJ0=";
   };
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  pythonImportsCheck = [
-    "nameparser"
-  ];
+  pythonImportsCheck = [ "nameparser" ];
 
   meta = with lib; {
     description = "Module for parsing human names into their individual components";
diff --git a/pkgs/development/python-modules/names/default.nix b/pkgs/development/python-modules/names/default.nix
index 3661e7f0d1192..c4648e171a728 100644
--- a/pkgs/development/python-modules/names/default.nix
+++ b/pkgs/development/python-modules/names/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
 
-# pythonPackages
-, pytest
+  # pythonPackages
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "0jfn11bl05k3qkqw0f4vi2i2lhllxdrbb1732qiisdy9fbvv8611";
   };
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
   checkPhase = ''
     pytest
@@ -31,8 +30,6 @@ buildPythonPackage rec {
     mainProgram = "names";
     homepage = "https://github.com/treyhunner/names";
     license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [
-      kamadorueda
-    ];
+    maintainers = with lib.maintainers; [ kamadorueda ];
   };
 }
diff --git a/pkgs/development/python-modules/namex/default.nix b/pkgs/development/python-modules/namex/default.nix
new file mode 100644
index 0000000000000..4e7fadf847962
--- /dev/null
+++ b/pkgs/development/python-modules/namex/default.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  wheel,
+}:
+
+buildPythonPackage rec {
+  pname = "namex";
+  version = "0.0.8";
+  pyproject = true;
+
+  # Not using fetchFromGitHub because the repo does not have any tag/release.
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-MqUPbFZcC7EKp2KYyVlQer3A6FDv4IXcOPNED8s6qQs=";
+  };
+
+  build-system = [
+    setuptools
+    wheel
+  ];
+
+  pythonImportsCheck = [ "namex" ];
+
+  # This packages has no tests.
+  doCheck = false;
+
+  meta = {
+    description = "Simple utility to separate the implementation of your Python package and its public API surface";
+    homepage = "https://github.com/fchollet/namex";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/pkgs/development/python-modules/nampa/default.nix b/pkgs/development/python-modules/nampa/default.nix
index abeedb716ad56..cc31702c94aa5 100644
--- a/pkgs/development/python-modules/nampa/default.nix
+++ b/pkgs/development/python-modules/nampa/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, future
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  future,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -26,20 +27,14 @@ buildPythonPackage rec {
       --replace "0.1.1" "${version}"
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    future
-  ];
+  dependencies = [ future ];
 
   # Not used for binaryninja as plugin
   doCheck = false;
 
-  pythonImportsCheck = [
-    "nampa"
-  ];
+  pythonImportsCheck = [ "nampa" ];
 
   meta = with lib; {
     description = "Python implementation of the FLIRT technology";
diff --git a/pkgs/development/python-modules/nanobind/default.nix b/pkgs/development/python-modules/nanobind/default.nix
index 27460b65a8dba..b02f229ec136f 100644
--- a/pkgs/development/python-modules/nanobind/default.nix
+++ b/pkgs/development/python-modules/nanobind/default.nix
@@ -18,25 +18,26 @@
 }:
 buildPythonPackage rec {
   pname = "nanobind";
-  version = "1.9.2";
+  version = "2.0.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "wjakob";
-    repo = pname;
-    rev = "v${version}";
-    hash = "sha256-6swDqw7sEYOawQbNWD8VfSQoi+9wjhOhOOwPPkahDas=";
+    repo = "nanobind";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-yDFrhSIWywWw7ri5aHRPigi9ujDeazpJa4AVrkLx5BI=";
     fetchSubmodules = true;
   };
 
   disabled = pythonOlder "3.8";
 
-  nativeBuildInputs = [
+  build-system = [
     cmake
     ninja
     scikit-build
     setuptools
   ];
+
   buildInputs = [ eigen ];
   dontUseCmakeBuildDir = true;
 
@@ -55,7 +56,7 @@ buildPythonPackage rec {
     jaxlib
   ];
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/wjakob/nanobind";
     changelog = "https://github.com/wjakob/nanobind/blob/${src.rev}/docs/changelog.rst";
     description = "Tiny and efficient C++/Python bindings";
@@ -66,7 +67,7 @@ buildPythonPackage rec {
       more efficient: bindings compile in a shorter amount of time, produce
       smaller binaries, and have better runtime performance.
     '';
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ parras ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ parras ];
   };
 }
diff --git a/pkgs/development/python-modules/nanoid/default.nix b/pkgs/development/python-modules/nanoid/default.nix
index 5054756a30923..48d1f3f44411b 100644
--- a/pkgs/development/python-modules/nanoid/default.nix
+++ b/pkgs/development/python-modules/nanoid/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,16 +17,12 @@ buildPythonPackage rec {
 
   doCheck = false; # tests not in sdist, git not tagged
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "nanoid"
-  ];
+  pythonImportsCheck = [ "nanoid" ];
 
   meta = with lib; {
-    description = "A tiny, secure, URL-friendly, unique string ID generator for Python";
+    description = "Tiny, secure, URL-friendly, unique string ID generator for Python";
     homepage = "https://github.com/puyuan/py-nanoid";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/nanoleaf/default.nix b/pkgs/development/python-modules/nanoleaf/default.nix
index a77998c994c55..995c56510d65a 100644
--- a/pkgs/development/python-modules/nanoleaf/default.nix
+++ b/pkgs/development/python-modules/nanoleaf/default.nix
@@ -1,25 +1,43 @@
-{ lib, buildPythonPackage, fetchPypi, requests }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "nanoleaf";
   version = "0.4.1";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "17dmxibfjmwnrs6ng5cmvfis3cv6iw267xb8n1pijy15y9dz0s8s";
+    hash = "sha256-GmnwW/IleBlvsGj1YwSPZrOho9uVlWeNzpZX6VbstZ0=";
   };
 
   prePatch = ''
     sed -i '/^gitVersion =/d' setup.py
-    substituteInPlace setup.py --replace 'gitVersion' '"${version}"'
+    substituteInPlace setup.py \
+      --replace-fail 'gitVersion' '"${version}"'
   '';
 
-  propagatedBuildInputs = [ requests ];
+  build-system = [ setuptools ];
+
+  dependencies = [ requests ];
+
+  # Module has no test
+  doCheck = false;
+
+  pythonImportsCheck = [ "nanoleaf" ];
 
   meta = with lib; {
-    description = "A python interface for Nanoleaf Aurora lighting";
+    description = "Module for interacting with Nanoleaf Aurora lighting";
     homepage = "https://github.com/software-2/nanoleaf";
+    changelog = "https://github.com/software-2/nanoleaf/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/nanomsg-python/default.nix b/pkgs/development/python-modules/nanomsg-python/default.nix
index 06b2ed5f634f2..1125b88c0e4ea 100644
--- a/pkgs/development/python-modules/nanomsg-python/default.nix
+++ b/pkgs/development/python-modules/nanomsg-python/default.nix
@@ -1,22 +1,35 @@
-{ lib, buildPythonPackage, fetchFromGitHub, nanomsg }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nanomsg,
+  setuptools,
+  pythonOlder,
+}:
 
 buildPythonPackage {
   pname = "nanomsg-python";
   version = "1.0.20190114";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "tonysimpson";
     repo = "nanomsg-python";
     rev = "3acd9160f90f91034d4a43ce603aaa19fbaf1f2e";
-    sha256 = "1qgybcpmm9xxrn39alcgdcpvwphgm1glkbnwx0ljpz4nd1jsnyrl";
+    hash = "sha256-NHurZWiW/Csp6NyuSV+oD16+L2uPUZWGzb2nWi9b/uE=";
   };
 
+  build-system = [ setuptools ];
+
   buildInputs = [ nanomsg ];
 
   # Tests requires network connections
   doCheck = false;
 
+  pythonImportsCheck = [ "nanomsg" ];
+
   meta = with lib; {
     description = "Bindings for nanomsg";
     homepage = "https://github.com/tonysimpson/nanomsg-python";
diff --git a/pkgs/development/python-modules/nanotime/default.nix b/pkgs/development/python-modules/nanotime/default.nix
index aeabc540eb005..d41126916b0bb 100644
--- a/pkgs/development/python-modules/nanotime/default.nix
+++ b/pkgs/development/python-modules/nanotime/default.nix
@@ -1,24 +1,31 @@
-{ lib, buildPythonPackage, fetchPypi, nose }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pythonOlder,
+}:
 
 buildPythonPackage rec {
   pname = "nanotime";
   version = "0.5.2";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c7cc231fc5f6db401b448d7ab51c96d0a4733f4b69fabe569a576f89ffdf966b";
+    hash = "sha256-x8wjH8X220AbRI16tRyW0KRzP0tp+r5Wmldvif/flms=";
   };
 
-  nativeCheckInputs = [ nose ];
-
-  checkPhase = ''
-    nosetests
-  '';
+  build-system = [ setuptools ];
 
-  # tests currently fail
+  # Tests currently failing
+  # https://github.com/jbenet/nanotime/issues/2
   doCheck = false;
 
+  pythonImportsCheck = [ "nanotime" ];
+
   meta = with lib; {
     description = "Provides a time object that keeps time as the number of nanoseconds since the UNIX epoch";
     homepage = "https://github.com/jbenet/nanotime/tree/master/python";
diff --git a/pkgs/development/python-modules/napalm/default.nix b/pkgs/development/python-modules/napalm/default.nix
index 2c3f2b76f0ae7..bfd35c2fd0994 100644
--- a/pkgs/development/python-modules/napalm/default.nix
+++ b/pkgs/development/python-modules/napalm/default.nix
@@ -1,36 +1,37 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build-system
-, setuptools
-, cffi
+  # build-system
+  setuptools,
+  cffi,
 
-# dependencies
-, future
-, jinja2
-, junos-eznc
-, lxml
-, ncclient
-, netaddr
-, netmiko
-, netutils
-, paramiko
-, pyeapi
-, pyyaml
-, requests
-, scp
-, textfsm
-, ttp
-, ttp-templates
-, typing-extensions
+  # dependencies
+  future,
+  jinja2,
+  junos-eznc,
+  lxml,
+  ncclient,
+  netaddr,
+  netmiko,
+  netutils,
+  paramiko,
+  pyeapi,
+  pyyaml,
+  requests,
+  scp,
+  textfsm,
+  ttp,
+  ttp-templates,
+  typing-extensions,
 
-# tests
-, pytestCheckHook
-, ddt
-, mock
- }:
+  # tests
+  pytestCheckHook,
+  ddt,
+  mock,
+}:
 
 buildPythonPackage rec {
   pname = "napalm";
@@ -46,9 +47,7 @@ buildPythonPackage rec {
     hash = "sha256-Abw3h69qTFwOOFeAfivqAIWLozErJ1yZZfx7CbMy1AI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cffi
@@ -72,11 +71,14 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  nativeCheckInputs = [ pytestCheckHook mock ddt ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    mock
+    ddt
+  ];
 
   meta = with lib; {
-    description =
-      "Network Automation and Programmability Abstraction Layer with Multivendor support";
+    description = "Network Automation and Programmability Abstraction Layer with Multivendor support";
     homepage = "https://github.com/napalm-automation/napalm";
     license = licenses.asl20;
     maintainers = with maintainers; [ ] ++ teams.c3d2.members;
diff --git a/pkgs/development/python-modules/napalm/hp-procurve.nix b/pkgs/development/python-modules/napalm/hp-procurve.nix
index 6402005bed6ef..e7492f0f55ffc 100644
--- a/pkgs/development/python-modules/napalm/hp-procurve.nix
+++ b/pkgs/development/python-modules/napalm/hp-procurve.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, napalm
-, netmiko
-, pip
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  napalm,
+  netmiko,
+  pip,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -29,21 +30,13 @@ buildPythonPackage rec {
       --replace "--cov=napalm_procurve --cov-report term-missing -vs --pylama" ""
   '';
 
-  nativeBuildInputs = [
-    pip
-  ];
+  nativeBuildInputs = [ pip ];
 
-  buildInputs = [
-    napalm
-  ];
+  buildInputs = [ napalm ];
 
-  propagatedBuildInputs = [
-    netmiko
-  ];
+  propagatedBuildInputs = [ netmiko ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # AssertionError: Some methods vary.
@@ -55,9 +48,7 @@ buildPythonPackage rec {
     "test_get_facts"
   ];
 
-  pythonImportsCheck = [
-    "napalm_procurve"
-  ];
+  pythonImportsCheck = [ "napalm_procurve" ];
 
   meta = with lib; {
     description = "HP ProCurve Driver for NAPALM automation frontend";
diff --git a/pkgs/development/python-modules/napari-console/default.nix b/pkgs/development/python-modules/napari-console/default.nix
index 9072ada93f420..a71cad588f1ea 100644
--- a/pkgs/development/python-modules/napari-console/default.nix
+++ b/pkgs/development/python-modules/napari-console/default.nix
@@ -1,50 +1,47 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, imageio
-, ipykernel
-, ipython
-, napari-plugin-engine
-, pythonOlder
-, qtconsole
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  imageio,
+  ipykernel,
+  ipython,
+  napari-plugin-engine,
+  pythonOlder,
+  qtconsole,
+  qtpy,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "napari-console";
-  version = "0.0.7";
-  format = "pyproject";
+  version = "0.0.9";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "napari";
-    repo = pname;
+    repo = "napari-console";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vHLCVMgrcs54pGb48wQpc0h7QBIfE6r7hCSoDNI3QvA=";
+    hash = "sha256-3gOfiPx06G5c4eaLQ5kP45hUr6yw91esznJFacpO66Q=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    imageio
+  dependencies = [
     ipykernel
     ipython
-    napari-plugin-engine
     qtconsole
+    qtpy
   ];
 
   # Circular dependency: napari
   doCheck = false;
 
-  pythonImportsCheck = [
-    "napari_console"
-  ];
+  pythonImportsCheck = [ "napari_console" ];
 
   meta = with lib; {
-    description = "A plugin that adds a console to napari";
+    description = "Plugin that adds a console to napari";
     homepage = "https://github.com/napari/napari-console";
     license = licenses.bsd3;
     maintainers = with maintainers; [ SomeoneSerge ];
diff --git a/pkgs/development/python-modules/napari-npe2/default.nix b/pkgs/development/python-modules/napari-npe2/default.nix
index 298a333f32065..1affda693c99a 100644
--- a/pkgs/development/python-modules/napari-npe2/default.nix
+++ b/pkgs/development/python-modules/napari-npe2/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, appdirs
-, build
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, hatch-vcs
-, magicgui
-, napari # reverse dependency, for tests
-, pydantic
-, pythonOlder
-, pytomlpp
-, pyyaml
-, rich
-, typer
-, tomli-w
+{
+  lib,
+  appdirs,
+  build,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  hatch-vcs,
+  magicgui,
+  napari, # reverse dependency, for tests
+  pydantic,
+  pythonOlder,
+  pytomlpp,
+  pyyaml,
+  rich,
+  typer,
+  tomli-w,
 }:
 
 buildPythonPackage rec {
@@ -50,11 +51,11 @@ buildPythonPackage rec {
     tomli-w
   ];
 
-  pythonImportsCheck = [
-    "npe2"
-  ];
+  pythonImportsCheck = [ "npe2" ];
 
-  passthru.tests = { inherit napari; };
+  passthru.tests = {
+    inherit napari;
+  };
 
   meta = with lib; {
     description = "Plugin system for napari (the image visualizer)";
diff --git a/pkgs/development/python-modules/napari-plugin-engine/default.nix b/pkgs/development/python-modules/napari-plugin-engine/default.nix
index 499f87ecf716f..419c949b4ebcb 100644
--- a/pkgs/development/python-modules/napari-plugin-engine/default.nix
+++ b/pkgs/development/python-modules/napari-plugin-engine/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,16 +21,12 @@ buildPythonPackage rec {
     hash = "sha256-cKpCAEYYRq3UPje7REjzhEe1J9mmrtXs8TBnxWukcNE=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   # Circular dependency: napari
   doCheck = false;
 
-  pythonImportsCheck = [
-    "napari_plugin_engine"
-  ];
+  pythonImportsCheck = [ "napari_plugin_engine" ];
 
   meta = with lib; {
     description = "First generation napari plugin engine";
diff --git a/pkgs/development/python-modules/napari-svg/default.nix b/pkgs/development/python-modules/napari-svg/default.nix
index 3094327dd422f..635d0063f9174 100644
--- a/pkgs/development/python-modules/napari-svg/default.nix
+++ b/pkgs/development/python-modules/napari-svg/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, imageio
-, napari-plugin-engine
-, numpy
-, pythonOlder
-, setuptools-scm
-, vispy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  imageio,
+  napari-plugin-engine,
+  numpy,
+  pythonOlder,
+  setuptools-scm,
+  vispy,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-ywN9lUwBFW8zP7ivP7MNTYFbTCcmaZxAuKr056uY68Q=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     imageio
@@ -38,7 +37,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A plugin for writing svg files from napari";
+    description = "Plugin for writing svg files from napari";
     homepage = "https://github.com/napari/napari-svg";
     changelog = "https://github.com/napari/napari-svg/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/napari/default.nix b/pkgs/development/python-modules/napari/default.nix
index 0bccb016570ca..93252b0e91091 100644
--- a/pkgs/development/python-modules/napari/default.nix
+++ b/pkgs/development/python-modules/napari/default.nix
@@ -1,67 +1,69 @@
-{ lib
-, mkDerivationWith
-, appdirs
-, app-model
-, buildPythonPackage
-, cachey
-, certifi
-, dask
-, docstring-parser
-, fetchFromGitHub
-, imageio
-, jsonschema
-, magicgui
-, napari-console
-, napari-npe2
-, napari-svg
-, numpydoc
-, pint
-, psutil
-, pydantic
-, pyopengl
-, pillow
-, pythonOlder
-, pyyaml
-, scikit-image
-, scipy
-, setuptools-scm
-, sphinx
-, superqt
-, tifffile
-, toolz
-, tqdm
-, typing-extensions
-, vispy
-, wrapQtAppsHook
-, wrapt
+{
+  lib,
+  app-model,
+  appdirs,
+  buildPythonPackage,
+  cachey,
+  certifi,
+  dask,
+  docstring-parser,
+  fetchFromGitHub,
+  imageio,
+  jsonschema,
+  magicgui,
+  mkDerivationWith,
+  napari-console,
+  napari-npe2,
+  napari-svg,
+  numpydoc,
+  pandas,
+  pillow,
+  pint,
+  psutil,
+  pydantic,
+  pyopengl,
+  pythonOlder,
+  pyyaml,
+  scikit-image,
+  scipy,
+  setuptools,
+  setuptools-scm,
+  superqt,
+  tifffile,
+  toolz,
+  tqdm,
+  typing-extensions,
+  vispy,
+  wrapQtAppsHook,
+  wrapt,
 }:
 
 mkDerivationWith buildPythonPackage rec {
   pname = "napari";
   version = "0.4.19.post1";
-  format = "pyproject";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "napari";
-    repo = pname;
+    repo = "napari";
     rev = "refs/tags/v${version}";
     hash = "sha256-qw5WdFPySNkmm+dNu+hqsmr+csBpHnSl9bMpb4nKEqI=";
   };
 
   postPatch = ''
     substituteInPlace setup.cfg \
-      --replace "scikit-image>=0.19.1" "scikit-image" \
-      --replace "sphinx<5" "sphinx" \
-      --replace "vispy>=0.11.0,<0.12" "vispy"
+      --replace-fail "scikit-image[data]>=0.19.1" "scikit-image"
   '';
 
-  nativeBuildInputs = [
+  build-system = [
+    setuptools
     setuptools-scm
-    wrapQtAppsHook
   ];
 
+  nativeBuildInputs = [ wrapQtAppsHook ];
+
   propagatedBuildInputs = [
     app-model
     appdirs
@@ -76,15 +78,15 @@ mkDerivationWith buildPythonPackage rec {
     napari-npe2
     napari-svg
     numpydoc
-    pint
+    pandas
     pillow
+    pint
     psutil
     pydantic
     pyopengl
     pyyaml
     scikit-image
     scipy
-    sphinx
     superqt
     tifffile
     toolz
@@ -101,7 +103,7 @@ mkDerivationWith buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A fast, interactive, multi-dimensional image viewer";
+    description = "Fast, interactive, multi-dimensional image viewer";
     homepage = "https://github.com/napari/napari";
     changelog = "https://github.com/napari/napari/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/nasdaq-data-link/default.nix b/pkgs/development/python-modules/nasdaq-data-link/default.nix
index f72edadaf262a..e560d7033ce51 100644
--- a/pkgs/development/python-modules/nasdaq-data-link/default.nix
+++ b/pkgs/development/python-modules/nasdaq-data-link/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, factory-boy
-, fetchFromGitHub
-, httpretty
-, inflection
-, jsondate
-, mock
-, more-itertools
-, numpy
-, pandas
-, parameterized
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, requests
-, six
+{
+  lib,
+  buildPythonPackage,
+  factory-boy,
+  fetchFromGitHub,
+  httpretty,
+  inflection,
+  jsondate,
+  mock,
+  more-itertools,
+  numpy,
+  pandas,
+  parameterized,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  requests,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -50,9 +51,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "nasdaqdatalink"
-  ];
+  pythonImportsCheck = [ "nasdaqdatalink" ];
 
   meta = with lib; {
     description = "Library for Nasdaq Data Link's RESTful API";
diff --git a/pkgs/development/python-modules/natasha/default.nix b/pkgs/development/python-modules/natasha/default.nix
index 3d25ccf73fc99..50283389107bd 100644
--- a/pkgs/development/python-modules/natasha/default.nix
+++ b/pkgs/development/python-modules/natasha/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pymorphy2
-, razdel
-, navec
-, slovnet
-, yargy
-, ipymarkup
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pymorphy2,
+  razdel,
+  navec,
+  slovnet,
+  yargy,
+  ipymarkup,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-Rgguazgq06a8B9jeRnfHD5VTR+Xrd+8OCsQUfaGLEq0=";
   };
 
-  propagatedBuildInputs = [ pymorphy2 navec razdel slovnet yargy ipymarkup ];
+  propagatedBuildInputs = [
+    pymorphy2
+    navec
+    razdel
+    slovnet
+    yargy
+    ipymarkup
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
   pytestFlagsArray = [ "tests/" ];
diff --git a/pkgs/development/python-modules/nats-python/default.nix b/pkgs/development/python-modules/nats-python/default.nix
index 9662dddd5ddbb..f93b2feab69c9 100644
--- a/pkgs/development/python-modules/nats-python/default.nix
+++ b/pkgs/development/python-modules/nats-python/default.nix
@@ -1,41 +1,39 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  poetry-core,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "nats-python";
   version = "0.8.0";
-  disabled = pythonOlder "3.6";
-  format = "pyproject";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "Gr1N";
     repo = "nats-python";
-    rev = version;
-    sha256 = "1j7skyxldir3mphvnsyhjxmf3cimv4h7n5v58jl2gff4yd0hdw7g";
+    rev = "refs/tags/${version}";
+    hash = "sha256-7/AGQfPEuSeoRGUXeyDZNbLhapfQa7vhrSPHRruf+sg=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
-
   patches = [
     # Switch to poetry-core, https://github.com/Gr1N/nats-python/pull/19
     (fetchpatch {
       name = "use-poetry-core.patch";
       url = "https://github.com/Gr1N/nats-python/commit/71b25b324212dccd7fc06ba3914491adba22e83f.patch";
-      sha256 = "1fip1qpzk2ka7qgkrdpdr6vnrnb1p8cwapa51xp0h26nm7yis1gl";
+      hash = "sha256-9AUd/anWCAhuD0VdxRm6Ydlst8nttjwfPmqK+S8ON7o=";
     })
   ];
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  build-system = [ poetry-core ];
+
+  dependencies = [ setuptools ];
 
   # Tests require a running NATS server
   doCheck = false;
@@ -45,6 +43,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python client for NATS messaging system";
     homepage = "https://github.com/Gr1N/nats-python";
+    changelog = "https://github.com/Gr1N/nats-python/releases/tag/${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/natsort/default.nix b/pkgs/development/python-modules/natsort/default.nix
index aef526b4290ee..d8001e5bd1086 100644
--- a/pkgs/development/python-modules/natsort/default.nix
+++ b/pkgs/development/python-modules/natsort/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fastnumbers
-, fetchPypi
-, glibcLocales
-, hypothesis
-, pyicu
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fastnumbers,
+  fetchPypi,
+  glibcLocales,
+  hypothesis,
+  pyicu,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -40,9 +41,7 @@ buildPythonPackage rec {
     "test_string_component_transform_factory"
   ];
 
-  pythonImportsCheck = [
-    "natsort"
-  ];
+  pythonImportsCheck = [ "natsort" ];
 
   meta = with lib; {
     description = "Natural sorting for Python";
diff --git a/pkgs/development/python-modules/natural/default.nix b/pkgs/development/python-modules/natural/default.nix
new file mode 100644
index 0000000000000..fc6bde5f8dc05
--- /dev/null
+++ b/pkgs/development/python-modules/natural/default.nix
@@ -0,0 +1,32 @@
+{ buildPythonPackage
+, fetchFromGitHub
+, lib
+, setuptools
+, six
+, django
+}:
+buildPythonPackage rec {
+  pname = "natural";
+  version = "0.2.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "tehmaze";
+    repo = "natural";
+    rev = "refs/tags/${version}";
+    hash = "sha256-DERFKDGVUPcjYAxiTYWgWkPp+Myd/9CNytQWgRya570=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [ six ];
+
+  nativeCheckInputs = [ django ];
+
+  meta = {
+    description = "Convert data to their natural (human-readable) format";
+    homepage = "https://github.com/tehmaze/natural";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ sailord vinetos ];
+  };
+}
diff --git a/pkgs/development/python-modules/naturalsort/default.nix b/pkgs/development/python-modules/naturalsort/default.nix
index 9d7572fb0f701..8be9da8328f26 100644
--- a/pkgs/development/python-modules/naturalsort/default.nix
+++ b/pkgs/development/python-modules/naturalsort/default.nix
@@ -1,20 +1,36 @@
-{ lib, buildPythonPackage, fetchFromGitHub }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "naturalsort";
   version = "1.5.1";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "xolox";
     repo = "python-naturalsort";
-    rev = version;
-    sha256 = "0w43vlddzh97hffnvxp2zkrns9qyirx5g8ijxnxkbx1c4b4gq5ih";
+    rev = "refs/tags/${version}";
+    hash = "sha256-MBb8yCIs9DW77TKiV3qOHidt8/zi9m2dgyfB3xrdg3A=";
   };
 
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "natsort" ];
+
   meta = with lib; {
     description = "Simple natural order sorting API for Python that just works";
     homepage = "https://github.com/xolox/python-naturalsort";
+    changelog = "https://github.com/xolox/python-naturalsort/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ eyjhb ];
   };
diff --git a/pkgs/development/python-modules/navec/default.nix b/pkgs/development/python-modules/navec/default.nix
index e5712212eb698..8369edba21699 100644
--- a/pkgs/development/python-modules/navec/default.nix
+++ b/pkgs/development/python-modules/navec/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, razdel
-, gensim
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  razdel,
+  gensim,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,8 +18,14 @@ buildPythonPackage rec {
     hash = "sha256-TyNHSxwnmvbGBfhOeHPofEfKWLDFOKP50w2QxgnJ/SE=";
   };
 
-  propagatedBuildInputs = [ numpy razdel ];
-  nativeCheckInputs = [ pytestCheckHook gensim ];
+  propagatedBuildInputs = [
+    numpy
+    razdel
+  ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    gensim
+  ];
   # TODO: remove when gensim usage will be fixed in `navec`.
   disabledTests = [ "test_gensim" ];
   pythonImportsCheck = [ "navec" ];
diff --git a/pkgs/development/python-modules/nbclassic/default.nix b/pkgs/development/python-modules/nbclassic/default.nix
index d4730414006ca..6ac18bef59372 100644
--- a/pkgs/development/python-modules/nbclassic/default.nix
+++ b/pkgs/development/python-modules/nbclassic/default.nix
@@ -1,59 +1,43 @@
-{ lib
-, argon2-cffi
-, buildPythonPackage
-, fetchPypi
-, ipykernel
-, ipython-genutils
-, jinja2
-, jupyter-client
-, jupyter-core
-, jupyter-server
-, nbconvert
-, nbformat
-, nest-asyncio
-, notebook-shim
-, prometheus-client
-, pytest-jupyter
-, pytest-tornasync
-, pytestCheckHook
-, pythonOlder
-, pyzmq
-, send2trash
-, terminado
-, tornado
-, traitlets
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  babel,
+  ipykernel,
+  ipython-genutils,
+  jupyter-packaging,
+  jupyter-server,
+  nest-asyncio,
+  notebook-shim,
+  pytest-jupyter,
+  pytest-tornasync,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "nbclassic";
-  version = "1.0.0";
-  format = "setuptools";
+  version = "1.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-CuEesjGUVdgFWWvzIDNs2pVUtB2Zq5o8Mb+BgL/6MOM=";
+    hash = "sha256-d7d7qF+emI+brYXfNFtRTp5kx/DoIpkqsd9KeKxk/B4=";
   };
 
-  propagatedBuildInputs = [
-    argon2-cffi
+  build-system = [
+    babel
+    jupyter-packaging
+    jupyter-server
+  ];
+
+  dependencies = [
     ipykernel
     ipython-genutils
-    jinja2
-    jupyter-client
-    jupyter-core
-    jupyter-server
-    nbconvert
-    nbformat
     nest-asyncio
     notebook-shim
-    prometheus-client
-    pyzmq
-    send2trash
-    terminado
-    tornado
-    traitlets
   ];
 
   nativeCheckInputs = [
@@ -62,9 +46,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "nbclassic"
-  ];
+  pythonImportsCheck = [ "nbclassic" ];
 
   __darwinAllowLocalNetworking = true;
 
@@ -72,6 +54,5 @@ buildPythonPackage rec {
     description = "Jupyter lab environment notebook server extension";
     homepage = "https://github.com/jupyter/nbclassic";
     license = with licenses; [ bsd3 ];
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/nbclient/default.nix b/pkgs/development/python-modules/nbclient/default.nix
index 7935d99a527e4..105108d3ab6b6 100644
--- a/pkgs/development/python-modules/nbclient/default.nix
+++ b/pkgs/development/python-modules/nbclient/default.nix
@@ -1,75 +1,78 @@
-{ async-generator
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, ipykernel
-, ipywidgets
-, jupyter-client
-, lib
-, nbconvert
-, nbformat
-, nest-asyncio
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, testpath
-, traitlets
-, xmltodict
+{
+  async-generator,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  ipykernel,
+  ipywidgets,
+  jupyter-client,
+  lib,
+  nbconvert,
+  nbformat,
+  nest-asyncio,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  testpath,
+  traitlets,
+  xmltodict,
 }:
 
-let nbclient = buildPythonPackage rec {
-  pname = "nbclient";
-  version = "0.10.0";
-  format = "pyproject";
+let
+  nbclient = buildPythonPackage rec {
+    pname = "nbclient";
+    version = "0.10.0";
+    format = "pyproject";
 
-  disabled = pythonOlder "3.7";
+    disabled = pythonOlder "3.7";
 
-  src = fetchFromGitHub {
-    owner = "jupyter";
-    repo = pname;
-    rev = "refs/tags/v${version}";
-    hash = "sha256-8OLkpwX4Gpam9VSFUtNS41Ypxe4+2yN3ng6iVY9DSqY=";
-  };
+    src = fetchFromGitHub {
+      owner = "jupyter";
+      repo = pname;
+      rev = "refs/tags/v${version}";
+      hash = "sha256-8OLkpwX4Gpam9VSFUtNS41Ypxe4+2yN3ng6iVY9DSqY=";
+    };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+    nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = [
-    async-generator
-    traitlets
-    nbformat
-    nest-asyncio
-    jupyter-client
-  ];
+    propagatedBuildInputs = [
+      async-generator
+      traitlets
+      nbformat
+      nest-asyncio
+      jupyter-client
+    ];
 
-  # circular dependencies if enabled by default
-  doCheck = false;
+    # circular dependencies if enabled by default
+    doCheck = false;
 
-  nativeCheckInputs = [
-    ipykernel
-    ipywidgets
-    nbconvert
-    pytest-asyncio
-    pytestCheckHook
-    testpath
-    xmltodict
-  ];
+    nativeCheckInputs = [
+      ipykernel
+      ipywidgets
+      nbconvert
+      pytest-asyncio
+      pytestCheckHook
+      testpath
+      xmltodict
+    ];
 
-  preCheck = ''
-    export HOME=$(mktemp -d)
-  '';
+    preCheck = ''
+      export HOME=$(mktemp -d)
+    '';
 
-  passthru.tests = {
-    check = nbclient.overridePythonAttrs (_: { doCheck = true; });
-  };
+    passthru.tests = {
+      check = nbclient.overridePythonAttrs (_: {
+        doCheck = true;
+      });
+    };
 
-  meta = with lib; {
-    homepage = "https://github.com/jupyter/nbclient";
-    description = "A client library for executing notebooks";
-    mainProgram = "jupyter-execute";
-    license = licenses.bsd3;
-    maintainers = [ ];
+    meta = with lib; {
+      homepage = "https://github.com/jupyter/nbclient";
+      description = "Client library for executing notebooks";
+      mainProgram = "jupyter-execute";
+      license = licenses.bsd3;
+      maintainers = [ ];
+    };
   };
-};
-in nbclient
+in
+nbclient
diff --git a/pkgs/development/python-modules/nbconflux/default.nix b/pkgs/development/python-modules/nbconflux/default.nix
index 25d9cc73df53e..1de1a82ac6f1f 100644
--- a/pkgs/development/python-modules/nbconflux/default.nix
+++ b/pkgs/development/python-modules/nbconflux/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy27
-, nbconvert
-, pytestCheckHook
-, requests
-, responses
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy27,
+  nbconvert,
+  pytestCheckHook,
+  requests,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -21,16 +22,22 @@ buildPythonPackage rec {
     hash = "sha256-kHIuboFKLVsu5zlZ0bM1BUoQR8f1l0XWcaaVI9bECJw=";
   };
 
-  propagatedBuildInputs = [ nbconvert requests ];
+  propagatedBuildInputs = [
+    nbconvert
+    requests
+  ];
 
-  nativeCheckInputs = [ pytestCheckHook responses ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    responses
+  ];
 
   patches = [
     # The original setup.py file is missing commas in the install_requires list
     ./setup-py.patch
   ];
 
-  JUPYTER_PATH="${nbconvert}/share/jupyter";
+  JUPYTER_PATH = "${nbconvert}/share/jupyter";
   disabledTests = [
     "test_post_to_confluence"
     "test_optional_components"
diff --git a/pkgs/development/python-modules/nbconvert/default.nix b/pkgs/development/python-modules/nbconvert/default.nix
index b80f75dc45491..870b0dba10883 100644
--- a/pkgs/development/python-modules/nbconvert/default.nix
+++ b/pkgs/development/python-modules/nbconvert/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, fetchurl
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, hatchling
-, beautifulsoup4
-, bleach
-, defusedxml
-, jinja2
-, jupyter-core
-, jupyterlab-pygments
-, markupsafe
-, mistune
-, nbclient
-, packaging
-, pandocfilters
-, pygments
-, tinycss2
-, traitlets
-, importlib-metadata
-, flaky
-, ipykernel
-, ipywidgets
-, pytestCheckHook
+{
+  lib,
+  fetchurl,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  hatchling,
+  beautifulsoup4,
+  bleach,
+  defusedxml,
+  jinja2,
+  jupyter-core,
+  jupyterlab-pygments,
+  markupsafe,
+  mistune,
+  nbclient,
+  packaging,
+  pandocfilters,
+  pygments,
+  tinycss2,
+  traitlets,
+  importlib-metadata,
+  flaky,
+  ipykernel,
+  ipywidgets,
+  pytestCheckHook,
 }:
 
 let
@@ -31,23 +32,22 @@ let
     url = "https://cdn.jupyter.org/notebook/5.4.0/style/style.min.css";
     hash = "sha256-WGWmCfRDewRkvBIc1We2GQdOVAoFFaO4LyIvdk61HgE=";
   };
-in buildPythonPackage rec {
+in
+buildPythonPackage rec {
   pname = "nbconvert";
-  version = "7.16.3";
+  version = "7.16.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-pnM7eM49R8P4XlBJmElbB+bqnPm/bsHJjdpj7GrRkUI=";
+    hash = "sha256-hsqRuiZrCkSNyW+mxbnZiv+r3ihns2MlhwNTaAf59/Q=";
   };
 
   # Add $out/share/jupyter to the list of paths that are used to search for
   # various exporter templates
-  patches = [
-    ./templates.patch
-  ];
+  patches = [ ./templates.patch ];
 
   postPatch = ''
     substituteAllInPlace ./nbconvert/exporters/templateexporter.py
@@ -56,9 +56,7 @@ in buildPythonPackage rec {
     cp ${style-css} share/templates/classic/static/style.css
   '';
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     beautifulsoup4
@@ -75,9 +73,7 @@ in buildPythonPackage rec {
     pygments
     tinycss2
     traitlets
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
   preCheck = ''
     export HOME=$(mktemp -d)
diff --git a/pkgs/development/python-modules/nbdev/default.nix b/pkgs/development/python-modules/nbdev/default.nix
index ee82753ae822e..dc60601b7e6c1 100644
--- a/pkgs/development/python-modules/nbdev/default.nix
+++ b/pkgs/development/python-modules/nbdev/default.nix
@@ -1,41 +1,34 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonRelaxDepsHook
-, setuptools
-, ipywidgets
-, fastcore
-, astunparse
-, watchdog
-, execnb
-, ghapi
-, pyyaml
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  ipywidgets,
+  fastcore,
+  astunparse,
+  watchdog,
+  execnb,
+  ghapi,
+  pyyaml,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "nbdev";
-  version = "2.3.14";
+  version = "2.3.25";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9Tacr4mWmjXspKKCkFDWYeT7KkBh4/3f6UOkfj0/leg=";
+    hash = "sha256-MntVdZ6LazdFCm+h5FaTxvzEwCtoJjrW/EJPTt2fdnU=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
-  pythonRelaxDeps = [
-    "ipywidgets"
-  ];
+  pythonRelaxDeps = [ "ipywidgets" ];
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     astunparse
@@ -50,9 +43,7 @@ buildPythonPackage rec {
   # no real tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "nbdev"
-  ];
+  pythonImportsCheck = [ "nbdev" ];
 
   meta = with lib; {
     homepage = "https://github.com/fastai/nbdev";
diff --git a/pkgs/development/python-modules/nbdime/default.nix b/pkgs/development/python-modules/nbdime/default.nix
index 855192fa5ec54..7441a6123d23f 100644
--- a/pkgs/development/python-modules/nbdime/default.nix
+++ b/pkgs/development/python-modules/nbdime/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, hatch-jupyter-builder
-, hatchling
-, jupyterlab
-, nbformat
-, colorama
-, pygments
-, tornado
-, requests
-, gitpython
-, jupyter-server
-, jupyter-server-mathjax
-, jinja2
-, git
-, pytest-tornado
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  hatch-jupyter-builder,
+  hatchling,
+  jupyterlab,
+  nbformat,
+  colorama,
+  pygments,
+  tornado,
+  requests,
+  gitpython,
+  jupyter-server,
+  jupyter-server-mathjax,
+  jinja2,
+  git,
+  pytest-tornado,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -76,9 +77,7 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [
-    "nbdime"
-  ];
+  pythonImportsCheck = [ "nbdime" ];
 
   meta = with lib; {
     homepage = "https://github.com/jupyter/nbdime";
diff --git a/pkgs/development/python-modules/nbexec/default.nix b/pkgs/development/python-modules/nbexec/default.nix
index faed2eedb4718..370de0db428c0 100644
--- a/pkgs/development/python-modules/nbexec/default.nix
+++ b/pkgs/development/python-modules/nbexec/default.nix
@@ -1,14 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-# build inputs
-, jupyter-client
-, nbformat
-, nbconvert
-# check inputs
-, unittestCheckHook
-, ipykernel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  # build inputs
+  jupyter-client,
+  nbformat,
+  nbconvert,
+  setuptools,
+  # check inputs
+  unittestCheckHook,
+  ipykernel,
 }:
 let
   pname = "nbexec";
@@ -16,7 +18,7 @@ let
 in
 buildPythonPackage {
   inherit pname version;
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
@@ -27,7 +29,9 @@ buildPythonPackage {
     hash = "sha256-Vv6EHX6WlnSmzQAYlO1mHnz5t078z3RQfVfte1+X2pw=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     jupyter-client
     nbformat
     nbconvert
@@ -44,15 +48,17 @@ buildPythonPackage {
   '';
 
   unittestFlagsArray = [
-    "-s" "test" "-v"
+    "-s"
+    "test"
+    "-v"
   ];
 
-  pythonImportsCheck = [
-    "nbexec"
-  ];
+  pythonImportsCheck = [ "nbexec" ];
+
+  __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "A dead-simple tool for executing Jupyter notebooks from the command line.";
+    description = "Dead-simple tool for executing Jupyter notebooks from the command line";
     mainProgram = "nbexec";
     homepage = "https://github.com/jsvine/nbexec";
     changelog = "https://github.com/jsvine/nbexec/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/nbformat/default.nix b/pkgs/development/python-modules/nbformat/default.nix
index 9cf08897935e5..e6eb3344e8d9a 100644
--- a/pkgs/development/python-modules/nbformat/default.nix
+++ b/pkgs/development/python-modules/nbformat/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, hatchling
-, hatch-nodejs-version
-, fastjsonschema
-, jsonschema
-, jupyter-core
-, traitlets
-, pep440
-, pytestCheckHook
-, testpath
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  hatchling,
+  hatch-nodejs-version,
+  fastjsonschema,
+  jsonschema,
+  jupyter-core,
+  traitlets,
+  pep440,
+  pytestCheckHook,
+  testpath,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
     traitlets
   ];
 
-  pythonImportsCheck = [
-    "nbformat"
-  ];
+  pythonImportsCheck = [ "nbformat" ];
 
   nativeCheckInputs = [
     pep440
@@ -50,7 +49,7 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = {
-    description = "The Jupyter Notebook format";
+    description = "Jupyter Notebook format";
     mainProgram = "jupyter-trust";
     homepage = "https://jupyter.org/";
     license = lib.licenses.bsd3;
diff --git a/pkgs/development/python-modules/nbmake/default.nix b/pkgs/development/python-modules/nbmake/default.nix
new file mode 100644
index 0000000000000..4c6d46e6d4706
--- /dev/null
+++ b/pkgs/development/python-modules/nbmake/default.nix
@@ -0,0 +1,68 @@
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  setuptools,
+  wheel,
+  ipykernel,
+  nbclient,
+  nbformat,
+  pygments,
+  pytest,
+  pyyaml,
+  pytest-xdist,
+  pytestCheckHook,
+  typing-extensions,
+}:
+
+buildPythonPackage rec {
+  pname = "nbmake";
+  version = "1.5.4";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "treebeardtech";
+    repo = "nbmake";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-OzjqpipFb5COhqc//Sg6OU65ShPrYe/KtxifToEXveg=";
+  };
+
+  build-system = [
+    poetry-core
+    setuptools
+    wheel
+  ];
+
+  dependencies = [
+    ipykernel
+    nbclient
+    nbformat
+    pygments
+    pytest
+    pyyaml
+  ];
+
+  pythonRelaxDeps = [ "nbclient" ];
+
+  pythonImportsCheck = [ "nbmake" ];
+
+  nativeCheckInputs = [
+    pytest-xdist
+    pytestCheckHook
+    typing-extensions
+  ];
+
+  __darwinAllowLocalNetworking = true;
+
+  meta = {
+    description = "Pytest plugin for testing notebooks";
+    homepage = "https://github.com/treebeardtech/nbmake";
+    changelog = "https://github.com/treebeardtech/nbmake/releases/tag/v${version}";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/pkgs/development/python-modules/nbmerge/default.nix b/pkgs/development/python-modules/nbmerge/default.nix
index 6aaee680582c1..5b825fa91a513 100644
--- a/pkgs/development/python-modules/nbmerge/default.nix
+++ b/pkgs/development/python-modules/nbmerge/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, nbformat
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  nbformat,
+  nose,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-Uqs/SO/AculHCFYcbjW08kLQX5GSU/eAwkN2iy/vhLM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [ nbformat ];
 
@@ -36,12 +35,10 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "nbmerge"
-  ];
+  pythonImportsCheck = [ "nbmerge" ];
 
   meta = {
-    description = "A tool to merge/concatenate Jupyter (IPython) notebooks";
+    description = "Tool to merge/concatenate Jupyter (IPython) notebooks";
     inherit (src.meta) homepage;
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/development/python-modules/nbsmoke/default.nix b/pkgs/development/python-modules/nbsmoke/default.nix
index afea038d6db7b..14cd544647a64 100644
--- a/pkgs/development/python-modules/nbsmoke/default.nix
+++ b/pkgs/development/python-modules/nbsmoke/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
-, jupyter-client
-, ipykernel
-, holoviews
-, nbformat
-, nbconvert
-, pyflakes
-, requests
-, beautifulsoup4
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  jupyter-client,
+  ipykernel,
+  holoviews,
+  nbformat,
+  nbconvert,
+  pyflakes,
+  requests,
+  beautifulsoup4,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/nbsphinx/default.nix b/pkgs/development/python-modules/nbsphinx/default.nix
index de0d972aa9864..4a15448d0839b 100644
--- a/pkgs/development/python-modules/nbsphinx/default.nix
+++ b/pkgs/development/python-modules/nbsphinx/default.nix
@@ -1,28 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, docutils
-, jinja2
-, nbconvert
-, nbformat
-, sphinx
-, traitlets
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  docutils,
+  jinja2,
+  nbconvert,
+  nbformat,
+  sphinx,
+  traitlets,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "nbsphinx";
-  version = "0.9.3";
-  format = "setuptools";
+  version = "0.9.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-7DOchpG2iPhnYQSjZ6S4zz6gH9CJ3CjSTewi1WOxFWI=";
+    hash = "sha256-BCpggG/CPVGbxb71nZVXBxORP+RC/adZ1T46r2IQR5Q=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     docutils
     jinja2
     nbconvert
@@ -36,9 +40,7 @@ buildPythonPackage rec {
 
   JUPYTER_PATH = "${nbconvert}/share/jupyter";
 
-  pythonImportsCheck = [
-    "nbsphinx"
-  ];
+  pythonImportsCheck = [ "nbsphinx" ];
 
   meta = with lib; {
     description = "Jupyter Notebook Tools for Sphinx";
diff --git a/pkgs/development/python-modules/nbtlib/default.nix b/pkgs/development/python-modules/nbtlib/default.nix
index 3ec7ade6a90b4..cb4a0ad4f6f31 100644
--- a/pkgs/development/python-modules/nbtlib/default.nix
+++ b/pkgs/development/python-modules/nbtlib/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -18,23 +19,19 @@ buildPythonPackage rec {
   };
 
   prePatch = ''
-      substituteInPlace pyproject.toml \
-      --replace "poetry>=0.12" "poetry-core" \
-      --replace "poetry.masonry" "poetry.core.masonry"
+    substituteInPlace pyproject.toml \
+    --replace "poetry>=0.12" "poetry-core" \
+    --replace "poetry.masonry" "poetry.core.masonry"
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   pythonImportsCheck = [ "nbtlib" ];
 
   meta = with lib; {
-    description = "A python library to read and edit nbt data";
+    description = "Python library to read and edit nbt data";
     mainProgram = "nbt";
     homepage = "https://github.com/vberlier/nbtlib";
     changelog = "https://github.com/vberlier/nbtlib/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/nbval/default.nix b/pkgs/development/python-modules/nbval/default.nix
index cce567bfacb30..7cc16ab27ff29 100644
--- a/pkgs/development/python-modules/nbval/default.nix
+++ b/pkgs/development/python-modules/nbval/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, coverage
-, ipykernel
-, jupyter-client
-, nbformat
-, pytestCheckHook
-, pytest
-, glibcLocales
-, matplotlib
-, sympy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  coverage,
+  ipykernel,
+  jupyter-client,
+  nbformat,
+  pytestCheckHook,
+  pytest,
+  glibcLocales,
+  matplotlib,
+  sympy,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     hash = "sha256-d8lXl2B7CpaLq9JZfuNJQQLSXDrTdDXeu9rA5G43kJQ=";
   };
 
-  buildInputs = [
-    glibcLocales
-  ];
+  buildInputs = [ glibcLocales ];
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     coverage
@@ -65,12 +62,10 @@ buildPythonPackage rec {
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [
-    "nbval"
-  ];
+  pythonImportsCheck = [ "nbval" ];
 
   meta = with lib; {
-    description = "A py.test plugin to validate Jupyter notebooks";
+    description = "Py.test plugin to validate Jupyter notebooks";
     homepage = "https://github.com/computationalmodelling/nbval";
     changelog = "https://github.com/computationalmodelling/nbval/releases/tag/${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/nbxmpp/default.nix b/pkgs/development/python-modules/nbxmpp/default.nix
index 22cc74504f671..94715f4492035 100644
--- a/pkgs/development/python-modules/nbxmpp/default.nix
+++ b/pkgs/development/python-modules/nbxmpp/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitLab
-, gobject-introspection
-, idna
-, libsoup_3
-, packaging
-, precis-i18n
-, pygobject3
-, pyopenssl
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitLab,
+  gobject-introspection,
+  idna,
+  libsoup_3,
+  packaging,
+  precis-i18n,
+  pygobject3,
+  pyopenssl,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "nbxmpp";
-  version = "4.5.4";
+  version = "5.0.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.10";
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     owner = "gajim";
     repo = "python-nbxmpp";
     rev = "refs/tags/${version}";
-    hash = "sha256-n5Pzw8aikzCml+dOhkLoHR0ytFkEb4AYpw/bIpo6Wd4=";
+    hash = "sha256-WSeY9v1ELIZEWvbVHGZFq+8tZVVPkOwUwQ/4cOh8IwQ=";
   };
 
   nativeBuildInputs = [
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  buildInputs = [
-    precis-i18n
-  ];
+  buildInputs = [ precis-i18n ];
 
   propagatedBuildInputs = [
     gobject-introspection
@@ -47,13 +46,9 @@ buildPythonPackage rec {
     pyopenssl
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "nbxmpp"
-  ];
+  pythonImportsCheck = [ "nbxmpp" ];
 
   meta = with lib; {
     homepage = "https://dev.gajim.org/gajim/python-nbxmpp";
diff --git a/pkgs/development/python-modules/nc-dnsapi/default.nix b/pkgs/development/python-modules/nc-dnsapi/default.nix
index 4229fa613f19d..cf6511b1eb971 100644
--- a/pkgs/development/python-modules/nc-dnsapi/default.nix
+++ b/pkgs/development/python-modules/nc-dnsapi/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -27,6 +28,9 @@ buildPythonPackage rec {
     description = "API wrapper for the netcup DNS api";
     homepage = "https://github.com/nbuchwitz/nc_dnsapi";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ veehaitch trundle ];
+    maintainers = with maintainers; [
+      veehaitch
+      trundle
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/ncclient/default.nix b/pkgs/development/python-modules/ncclient/default.nix
index c3040475cf2e3..11f3424083cb6 100644
--- a/pkgs/development/python-modules/ncclient/default.nix
+++ b/pkgs/development/python-modules/ncclient/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, lxml
-, paramiko
-, pytestCheckHook
-, pythonOlder
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxml,
+  paramiko,
+  pytestCheckHook,
+  pythonOlder,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +29,9 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ncclient"
-  ];
+  pythonImportsCheck = [ "ncclient" ];
 
   meta = with lib; {
     description = "Python library for NETCONF clients";
diff --git a/pkgs/development/python-modules/nclib/default.nix b/pkgs/development/python-modules/nclib/default.nix
index f803a2b39980b..67217d4c22537 100644
--- a/pkgs/development/python-modules/nclib/default.nix
+++ b/pkgs/development/python-modules/nclib/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "nclib"
-  ];
+  pythonImportsCheck = [ "nclib" ];
 
   meta = with lib; {
     description = "Python module that provides netcat features";
diff --git a/pkgs/development/python-modules/ndeflib/default.nix b/pkgs/development/python-modules/ndeflib/default.nix
index 165aed8942dfc..9c410e4d24f95 100644
--- a/pkgs/development/python-modules/ndeflib/default.nix
+++ b/pkgs/development/python-modules/ndeflib/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,24 +22,16 @@ buildPythonPackage rec {
     hash = "sha256-cpfztE+/AW7P0J7QeTDfVGYc2gEkr7gzA352hC9bdTM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ndef"
-  ];
+  pythonImportsCheck = [ "ndef" ];
 
   disabledTests = [
     # AssertionError caused due to wrong size
     "test_decode_error"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    "test_encode_error"
-  ];
+  ] ++ lib.optionals (pythonAtLeast "3.12") [ "test_encode_error" ];
 
   meta = with lib; {
     description = "Python package for parsing and generating NFC Data Exchange Format messages";
diff --git a/pkgs/development/python-modules/ndg-httpsclient/default.nix b/pkgs/development/python-modules/ndg-httpsclient/default.nix
index 71acebc14e011..7ebffc30c4492 100644
--- a/pkgs/development/python-modules/ndg-httpsclient/default.nix
+++ b/pkgs/development/python-modules/ndg-httpsclient/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyasn1
-, pyopenssl
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyasn1,
+  pyopenssl,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,6 @@ buildPythonPackage rec {
     sha256 = "0lhsgs4am4xyjssng5p0vkfwqncczj1dpa0vss4lrhzq86mnn5rz";
   };
 
-
   propagatedBuildInputs = [
     pyasn1
     pyopenssl
@@ -33,5 +33,4 @@ buildPythonPackage rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/ndindex/default.nix b/pkgs/development/python-modules/ndindex/default.nix
index 55704e1eef083..567476d4985cb 100644
--- a/pkgs/development/python-modules/ndindex/default.nix
+++ b/pkgs/development/python-modules/ndindex/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, cython
+  # build-system
+  cython,
 
-# optional
-, numpy
+  # optional
+  numpy,
 
-# tests
-, hypothesis
-, pytest-cov
-, pytestCheckHook
+  # tests
+  hypothesis,
+  pytest-cov,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,22 +27,16 @@ buildPythonPackage rec {
     hash = "sha256-F52ly3NkrZ0H9XoomMqmWfLl+8X0z26Yx67DB8DUqyU=";
   };
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
   postPatch = ''
     substituteInPlace pytest.ini \
       --replace "--cov=ndindex/ --cov-report=term-missing --flakes" ""
   '';
 
-  passthru.optional-dependencies.arrays = [
-    numpy
-  ];
+  passthru.optional-dependencies.arrays = [ numpy ];
 
-  pythonImportsCheck = [
-    "ndindex"
-  ];
+  pythonImportsCheck = [ "ndindex" ];
 
   nativeCheckInputs = [
     hypothesis
diff --git a/pkgs/development/python-modules/ndjson/default.nix b/pkgs/development/python-modules/ndjson/default.nix
index 4bd84a73be0ac..37cc55f336660 100644
--- a/pkgs/development/python-modules/ndjson/default.nix
+++ b/pkgs/development/python-modules/ndjson/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, six
-, watchdog
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  six,
+  watchdog,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     watchdog
   ];
 
-  pythonImportsCheck = [
-    "ndjson"
-  ];
+  pythonImportsCheck = [ "ndjson" ];
 
   meta = with lib; {
     description = "Module supports ndjson";
diff --git a/pkgs/development/python-modules/ndms2-client/default.nix b/pkgs/development/python-modules/ndms2-client/default.nix
index ff872aa6f3861..573188d482ee7 100644
--- a/pkgs/development/python-modules/ndms2-client/default.nix
+++ b/pkgs/development/python-modules/ndms2-client/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     hash = "sha256-A19olC1rTHTy0xyeSP45fqvv9GUynQSrMgXBgW8ySOs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "ndms2_client" ];
 
diff --git a/pkgs/development/python-modules/ndspy/default.nix b/pkgs/development/python-modules/ndspy/default.nix
index c4a7a6bf5578b..2a5ef941e1b35 100644
--- a/pkgs/development/python-modules/ndspy/default.nix
+++ b/pkgs/development/python-modules/ndspy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-V7phRZCA0WbUpYLgS/4nJbje/JM61RksDUZQ2pnbQyU=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ndspy"
-  ];
+  pythonImportsCheck = [ "ndspy" ];
 
   preCheck = ''
     cd tests
diff --git a/pkgs/development/python-modules/ndtypes/default.nix b/pkgs/development/python-modules/ndtypes/default.nix
index bf9c2ad59d6f8..55ec525d44202 100644
--- a/pkgs/development/python-modules/ndtypes/default.nix
+++ b/pkgs/development/python-modules/ndtypes/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, python
-, numpy
-, libndtypes
-, isPy27
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  python,
+  numpy,
+  libndtypes,
+  isPy27,
 }:
 
 buildPythonPackage {
@@ -13,7 +14,10 @@ buildPythonPackage {
   disabled = isPy27;
   inherit (libndtypes) version src meta;
 
-  outputs = [ "out" "dev" ];
+  outputs = [
+    "out"
+    "dev"
+  ];
 
   propagatedBuildInputs = [ numpy ];
 
@@ -27,12 +31,14 @@ buildPythonPackage {
                 'runtime_library_dirs = ["${libndtypes}/lib"]'
   '';
 
-  postInstall = ''
-    mkdir $out/include
-    cp python/ndtypes/*.h $out/include
-  '' + lib.optionalString stdenv.isDarwin ''
-    install_name_tool -add_rpath ${libndtypes}/lib $out/${python.sitePackages}/ndtypes/_ndtypes.*.so
-  '';
+  postInstall =
+    ''
+      mkdir $out/include
+      cp python/ndtypes/*.h $out/include
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      install_name_tool -add_rpath ${libndtypes}/lib $out/${python.sitePackages}/ndtypes/_ndtypes.*.so
+    '';
 
   checkPhase = ''
     pushd python
diff --git a/pkgs/development/python-modules/nengo/default.nix b/pkgs/development/python-modules/nengo/default.nix
index 86231c3f04017..915663c0b13fc 100644
--- a/pkgs/development/python-modules/nengo/default.nix
+++ b/pkgs/development/python-modules/nengo/default.nix
@@ -1,10 +1,13 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, setuptools
-, numpy
-, scipySupport ? false, scipy
-, scikitSupport ? false, scikit-learn
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  setuptools,
+  numpy,
+  scipySupport ? false,
+  scipy,
+  scikitSupport ? false,
+  scikit-learn,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +22,11 @@ buildPythonPackage rec {
     sha256 = "sha256-b9mPjKdewIqIeRrddV1/M3bghSyox7Lz6VbfSLCHZjA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [ numpy ]
-    ++ lib.optionals scipySupport [ scipy ]
-    ++ lib.optionals scikitSupport [ scikit-learn ];
+  propagatedBuildInputs = [
+    numpy
+  ] ++ lib.optionals scipySupport [ scipy ] ++ lib.optionals scikitSupport [ scikit-learn ];
 
   # checks req missing:
   #   pytest-allclose
@@ -36,9 +37,9 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "nengo" ];
 
   meta = with lib; {
-    description = "A Python library for creating and simulating large-scale brain models";
-    homepage    = "https://nengo.ai/";
-    license     = licenses.unfreeRedistributable;
+    description = "Python library for creating and simulating large-scale brain models";
+    homepage = "https://nengo.ai/";
+    license = licenses.unfreeRedistributable;
     maintainers = with maintainers; [ arjix ];
   };
 }
diff --git a/pkgs/development/python-modules/neo/default.nix b/pkgs/development/python-modules/neo/default.nix
index d23d2fdc57ed8..b74e8c3a4df18 100644
--- a/pkgs/development/python-modules/neo/default.nix
+++ b/pkgs/development/python-modules/neo/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-, numpy
-, packaging
-, quantities
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+  numpy,
+  packaging,
+  quantities,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "neo";
-  version = "0.13.0";
+  version = "0.13.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-VnXR+jgaU8LH7ri16SnsA5neILsLUkU+G5nsbWbckfM=";
+    hash = "sha256-gVhbKLZaTciakucc7TlCxdv9qnG90sw4U3G3ebVlTK0=";
   };
 
   nativeBuildInputs = [ setuptools ];
@@ -29,17 +30,13 @@ buildPythonPackage rec {
     quantities
   ];
 
-  nativeCheckInputs = [
-    nose
-  ];
+  nativeCheckInputs = [ nose ];
 
   checkPhase = ''
     nosetests --exclude=iotest
   '';
 
-  pythonImportsCheck = [
-    "neo"
-  ];
+  pythonImportsCheck = [ "neo" ];
 
   meta = with lib; {
     description = "Package for representing electrophysiology data";
diff --git a/pkgs/development/python-modules/neo4j/default.nix b/pkgs/development/python-modules/neo4j/default.nix
index bb1541fe72345..1dc1de3daab13 100644
--- a/pkgs/development/python-modules/neo4j/default.nix
+++ b/pkgs/development/python-modules/neo4j/default.nix
@@ -13,7 +13,7 @@
 
 buildPythonPackage rec {
   pname = "neo4j";
-  version = "5.20.0";
+  version = "5.21.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "neo4j";
     repo = "neo4j-python-driver";
     rev = "refs/tags/${version}";
-    hash = "sha256-ebWEtsgVj2NLYAKe8z6ge6TvnPmXh0Mqkx0b+ZcOePY=";
+    hash = "sha256-SGRe5O+6HqLFu4VQc0QC+91KVjqKeqNt5hIBwophvP0=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/neoteroi-mkdocs/default.nix b/pkgs/development/python-modules/neoteroi-mkdocs/default.nix
index ee4c4a1723595..66ae368c2b249 100644
--- a/pkgs/development/python-modules/neoteroi-mkdocs/default.nix
+++ b/pkgs/development/python-modules/neoteroi-mkdocs/default.nix
@@ -26,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-gpU3G1PeZTKO4fWr4x8Ek0GIBEP3oRAgu7OFn2OZbRE=";
   };
 
-  buildInputs = [
-    hatchling
-  ];
+  buildInputs = [ hatchling ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -49,15 +47,16 @@ buildPythonPackage rec {
     "test_contribs" # checks against its own git repository
   ];
 
-  pythonImportsCheck = [
-    "neoteroi.mkdocs"
-  ];
+  pythonImportsCheck = [ "neoteroi.mkdocs" ];
 
   meta = with lib; {
     homepage = "https://github.com/Neoteroi/mkdocs-plugins";
     description = "Plugins for MkDocs";
     changelog = "https://github.com/Neoteroi/mkdocs-plugins/releases/v${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [aldoborrero zimbatm];
+    maintainers = with maintainers; [
+      aldoborrero
+      zimbatm
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/nessclient/default.nix b/pkgs/development/python-modules/nessclient/default.nix
index 73b6d83dbe86a..160cb669be551 100644
--- a/pkgs/development/python-modules/nessclient/default.nix
+++ b/pkgs/development/python-modules/nessclient/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, justbackoff
-, pythonOlder
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  justbackoff,
+  pythonOlder,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "nessclient"
-  ];
+  pythonImportsCheck = [ "nessclient" ];
 
   meta = with lib; {
     description = "Python implementation/abstraction of the Ness D8x/D16x Serial Interface ASCII protocol";
diff --git a/pkgs/development/python-modules/nest-asyncio/default.nix b/pkgs/development/python-modules/nest-asyncio/default.nix
index 3daac2f31d161..45dc089f74d5a 100644
--- a/pkgs/development/python-modules/nest-asyncio/default.nix
+++ b/pkgs/development/python-modules/nest-asyncio/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "nest_asyncio"
-  ];
+  pythonImportsCheck = [ "nest_asyncio" ];
 
   meta = with lib; {
     description = "Patch asyncio to allow nested event loops";
diff --git a/pkgs/development/python-modules/nested-lookup/default.nix b/pkgs/development/python-modules/nested-lookup/default.nix
index 0a59a372d00e5..3eff01d9480d7 100644
--- a/pkgs/development/python-modules/nested-lookup/default.nix
+++ b/pkgs/development/python-modules/nested-lookup/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-, pytestCheckHook
-, six
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  pytestCheckHook,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -15,13 +16,9 @@ buildPythonPackage rec {
     hash = "sha256-b6gydIyQOB8ikdhQgJ4ySSUZ7l8lPWpay8Kdk37KAug=";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "nested_lookup" ];
 
diff --git a/pkgs/development/python-modules/nestedtext/default.nix b/pkgs/development/python-modules/nestedtext/default.nix
index d0a925859d03c..39fa93e4a2cf5 100644
--- a/pkgs/development/python-modules/nestedtext/default.nix
+++ b/pkgs/development/python-modules/nestedtext/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, docopt
-, fetchFromGitHub
-, flit-core
-, hypothesis
-, inform
-, nestedtext
-, pytestCheckHook
-, pythonOlder
-, quantiphy
-, voluptuous
+{
+  lib,
+  buildPythonPackage,
+  docopt,
+  fetchFromGitHub,
+  flit-core,
+  hypothesis,
+  inform,
+  nestedtext,
+  pytestCheckHook,
+  pythonOlder,
+  quantiphy,
+  voluptuous,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     hash = "sha256-lNqSmEmzuRGdXs/4mwKSh7yDGHnAykpIDIR+abbLCns=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    inform
-  ];
+  propagatedBuildInputs = [ inform ];
 
   nativeCheckInputs = [
     docopt
@@ -57,15 +54,15 @@ buildPythonPackage rec {
   ];
 
   passthru.tests = {
-    runTests = nestedtext.overrideAttrs (_: { doCheck = true; });
+    runTests = nestedtext.overrideAttrs (_: {
+      doCheck = true;
+    });
   };
 
-  pythonImportsCheck = [
-    "nestedtext"
-  ];
+  pythonImportsCheck = [ "nestedtext" ];
 
   meta = with lib; {
-    description = "A human friendly data format";
+    description = "Human friendly data format";
     longDescription = ''
       NestedText is a file format for holding data that is to be entered,
       edited, or viewed by people. It allows data to be organized into a nested
diff --git a/pkgs/development/python-modules/netaddr/default.nix b/pkgs/development/python-modules/netaddr/default.nix
index bcb478e238b96..aaf776d9aabac 100644
--- a/pkgs/development/python-modules/netaddr/default.nix
+++ b/pkgs/development/python-modules/netaddr/default.nix
@@ -1,37 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "netaddr";
-  version = "1.2.1";
+  version = "1.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-brj+3wQSxtKU0GiFwRDelFz00i0rUQ0EBPTgaVCFeYc=";
+    sha256 = "sha256-XDw9mJW1Ubdjd5un23oDSH3B+OOzha+BmvNBrp725Io=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "netaddr"
-  ];
+  pythonImportsCheck = [ "netaddr" ];
 
   meta = with lib; {
-    description = "A network address manipulation library for Python";
+    description = "Network address manipulation library for Python";
     mainProgram = "netaddr";
     homepage = "https://netaddr.readthedocs.io/";
     downloadPage = "https://github.com/netaddr/netaddr/releases";
diff --git a/pkgs/development/python-modules/netapp-lib/default.nix b/pkgs/development/python-modules/netapp-lib/default.nix
index b84ff5613ecc3..4155d3bff0c9d 100644
--- a/pkgs/development/python-modules/netapp-lib/default.nix
+++ b/pkgs/development/python-modules/netapp-lib/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, lxml
-, six
-, xmltodict
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  lxml,
+  six,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/netapp-ontap/default.nix b/pkgs/development/python-modules/netapp-ontap/default.nix
index a770cb63b0b2f..9a11c52d12dee 100644
--- a/pkgs/development/python-modules/netapp-ontap/default.nix
+++ b/pkgs/development/python-modules/netapp-ontap/default.nix
@@ -1,27 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cliche
-, marshmallow
-, pytestCheckHook
-, recline
-, requests
-, requests-toolbelt
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  cliche,
+  fetchPypi,
+  marshmallow,
+  pythonOlder,
+  recline,
+  requests,
+  requests-toolbelt,
+  setuptools,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "netapp-ontap";
-  version = "9.14.1.0";
-  format = "setuptools";
+  version = "9.15.1.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     pname = "netapp_ontap";
     inherit version;
-    sha256 = "sha256-nh7SHcyujTVXSgxQajRA4EueN6Hf8cKueQbsbnr6+qw=";
+    hash = "sha256-cw8wfMKBbzN4HWLg8Xxzpnv05atKWeTZlBaBIaNWTvo=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     marshmallow
     requests
     requests-toolbelt
@@ -31,16 +37,16 @@ buildPythonPackage rec {
     recline
   ];
 
-  # no tests in sdist and no other download available
+  # No tests in sdist and no other download available
   doCheck = false;
 
   pythonImportsCheck = [ "netapp_ontap" ];
 
   meta = with lib; {
-    description = "A library for working with ONTAP's REST APIs simply in Python";
-    mainProgram = "ontap-cli";
+    description = "Library for working with ONTAP's REST APIs simply in Python";
     homepage = "https://devnet.netapp.com/restapi.php";
     license = licenses.bsd3;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "ontap-cli";
   };
 }
diff --git a/pkgs/development/python-modules/netcdf4/default.nix b/pkgs/development/python-modules/netcdf4/default.nix
index 72b03ef5d7f65..d6b76137657eb 100644
--- a/pkgs/development/python-modules/netcdf4/default.nix
+++ b/pkgs/development/python-modules/netcdf4/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, isPyPy
-, python
-, oldest-supported-numpy
-, setuptools
-, wheel
-, certifi
-, numpy
-, zlib
-, netcdf
-, hdf5
-, curl
-, libjpeg
-, cython
-, cftime
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  python,
+  oldest-supported-numpy,
+  setuptools,
+  wheel,
+  certifi,
+  numpy,
+  zlib,
+  netcdf,
+  hdf5,
+  curl,
+  libjpeg,
+  cython,
+  cftime,
 }:
 
 buildPythonPackage rec {
@@ -61,9 +62,7 @@ buildPythonPackage rec {
     NETCDF4_DIR = netcdf;
     CURL_DIR = curl.dev;
     JPEG_DIR = libjpeg.dev;
-  } // lib.optionalAttrs stdenv.cc.isClang {
-    NIX_CFLAGS_COMPILE = "-Wno-error=int-conversion";
-  };
+  } // lib.optionalAttrs stdenv.cc.isClang { NIX_CFLAGS_COMPILE = "-Wno-error=int-conversion"; };
 
   pythonImportsCheck = [ "netCDF4" ];
 
diff --git a/pkgs/development/python-modules/netdata-pandas/default.nix b/pkgs/development/python-modules/netdata-pandas/default.nix
new file mode 100644
index 0000000000000..01fb2d65c65c2
--- /dev/null
+++ b/pkgs/development/python-modules/netdata-pandas/default.nix
@@ -0,0 +1,42 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, pandas
+, requests
+, trio
+, asks
+}:
+
+buildPythonPackage rec {
+  pname = "netdata-pandas";
+  version = "0.0.41";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "netdata";
+    repo = "netdata-pandas";
+    rev = "v${version}";
+    hash = "sha256-AXt8BKWyM3glm5hrRryb+vBzs3z2x61HhbR6DDZkh9o=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+
+  propagatedBuildInputs = [
+    pandas
+    requests
+    trio
+    asks
+  ];
+
+  pythonImportsCheck = [ "netdata_pandas" ];
+
+  meta = with lib; {
+    description = "A helper library to pull data from the netdata REST API into a pandas dataframe.";
+    homepage = "https://github.com/netdata/netdata-pandas";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ raitobezarius ];
+  };
+}
diff --git a/pkgs/development/python-modules/netdata/default.nix b/pkgs/development/python-modules/netdata/default.nix
index a585aa5975e90..7799bddb8589e 100644
--- a/pkgs/development/python-modules/netdata/default.nix
+++ b/pkgs/development/python-modules/netdata/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, httpx
-, pytest-asyncio
-, pytest-httpx
-, pytestCheckHook
-, yarl
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  httpx,
+  pytest-asyncio,
+  pytest-httpx,
+  pytestCheckHook,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-ViiGh5CsRpMJ6zvPmje+eB5LuO6t47bjObaYh5a2Kw8=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     httpx
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "netdata"
-  ];
+  pythonImportsCheck = [ "netdata" ];
 
   meta = with lib; {
     description = "Python API for interacting with Netdata";
diff --git a/pkgs/development/python-modules/netdisco/default.nix b/pkgs/development/python-modules/netdisco/default.nix
index 6ea7841dff875..db1d17de07caf 100644
--- a/pkgs/development/python-modules/netdisco/default.nix
+++ b/pkgs/development/python-modules/netdisco/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, isPy3k, fetchPypi, requests, zeroconf, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  isPy3k,
+  fetchPypi,
+  requests,
+  zeroconf,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "netdisco";
@@ -12,7 +20,10 @@ buildPythonPackage rec {
     hash = "sha256-TbtZBILzd8zEYeAXQnB8y+jx0tGyhXivkdybf+vNy9I=";
   };
 
-  propagatedBuildInputs = [ requests zeroconf ];
+  propagatedBuildInputs = [
+    requests
+    zeroconf
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/nethsm/default.nix b/pkgs/development/python-modules/nethsm/default.nix
index 902fa62e33873..77d25a7a1b1de 100644
--- a/pkgs/development/python-modules/nethsm/default.nix
+++ b/pkgs/development/python-modules/nethsm/default.nix
@@ -1,18 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonRelaxDepsHook
-, flit-core
-, certifi
-, cryptography
-, python-dateutil
-, typing-extensions
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  certifi,
+  cryptography,
+  python-dateutil,
+  typing-extensions,
+  urllib3,
 }:
 
 let
   pname = "nethsm";
-  version = "1.0.0";
+  version = "1.1.0";
 in
 
 buildPythonPackage {
@@ -21,7 +21,7 @@ buildPythonPackage {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-sENuSdA4pYt8v2w2RvDkcQLYCP9V0vZOdWOlkNBi3/o=";
+    hash = "sha256-CQhheHQ0BlfznKjoOSRvbDtnlTvv/SLtl0GWd7LUSt8=";
   };
 
   propagatedBuildInputs = [
@@ -34,7 +34,6 @@ buildPythonPackage {
 
   nativeBuildInputs = [
     flit-core
-    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = true;
diff --git a/pkgs/development/python-modules/netifaces/default.nix b/pkgs/development/python-modules/netifaces/default.nix
index 6d34bc3df4a57..381b8818e77d0 100644
--- a/pkgs/development/python-modules/netifaces/default.nix
+++ b/pkgs/development/python-modules/netifaces/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # No tests implemented
   doCheck = false;
 
-  pythonImportsCheck = [
-    "netifaces"
-  ];
+  pythonImportsCheck = [ "netifaces" ];
 
   meta = with lib; {
     description = "Portable access to network interfaces from Python";
diff --git a/pkgs/development/python-modules/netio/default.nix b/pkgs/development/python-modules/netio/default.nix
index 29159d6288bae..305b177b82455 100644
--- a/pkgs/development/python-modules/netio/default.nix
+++ b/pkgs/development/python-modules/netio/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pyopenssl
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pyopenssl,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -24,21 +24,16 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "pyopenssl"
-  ];
+  pythonRelaxDeps = [ "pyopenssl" ];
 
   propagatedBuildInputs = [
     requests
     pyopenssl
   ];
 
-  pythonImportsCheck = [
-    "Netio"
-  ];
+  pythonImportsCheck = [ "Netio" ];
 
   # Module has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/netmap/default.nix b/pkgs/development/python-modules/netmap/default.nix
index 11133c44f8808..c863ae189dcb8 100644
--- a/pkgs/development/python-modules/netmap/default.nix
+++ b/pkgs/development/python-modules/netmap/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, substituteAll
-, nmap
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  substituteAll,
+  nmap,
+  python,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/netmiko/default.nix b/pkgs/development/python-modules/netmiko/default.nix
index f893ce204455b..868de524a05e0 100644
--- a/pkgs/development/python-modules/netmiko/default.nix
+++ b/pkgs/development/python-modules/netmiko/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-
-# build-system
-, poetry-core
-
-# dependencies
-, ntc-templates
-, paramiko
-, pyserial
-, pyyaml
-, scp
-, textfsm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+
+  # build-system
+  poetry-core,
+
+  # dependencies
+  ntc-templates,
+  paramiko,
+  pyserial,
+  pyyaml,
+  scp,
+  textfsm,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
       --replace "poetry.masonry.api" "poetry.core.masonry.api"
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     ntc-templates
@@ -47,8 +46,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description =
-      "Multi-vendor library to simplify Paramiko SSH connections to network devices";
+    description = "Multi-vendor library to simplify Paramiko SSH connections to network devices";
     homepage = "https://github.com/ktbyers/netmiko/";
     license = licenses.mit;
     maintainers = [ maintainers.astro ];
diff --git a/pkgs/development/python-modules/nettigo-air-monitor/default.nix b/pkgs/development/python-modules/nettigo-air-monitor/default.nix
index a33f9d5286307..11c6592526cc1 100644
--- a/pkgs/development/python-modules/nettigo-air-monitor/default.nix
+++ b/pkgs/development/python-modules/nettigo-air-monitor/default.nix
@@ -12,11 +12,12 @@
   pythonOlder,
   setuptools,
   syrupy,
+  tenacity,
 }:
 
 buildPythonPackage rec {
   pname = "nettigo-air-monitor";
-  version = "3.0.0";
+  version = "3.2.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     owner = "bieniu";
     repo = "nettigo-air-monitor";
     rev = "refs/tags/${version}";
-    hash = "sha256-aiJoY+6sNfBmE1057UuMjV80hjVJ29t2X16IIe6dxWs=";
+    hash = "sha256-2INL6ZXi7f4HD0ilhQLSivk8TfYh3qRSPRsCCtCLAP8=";
   };
 
   build-system = [ setuptools ];
@@ -34,6 +35,7 @@ buildPythonPackage rec {
     aiohttp
     aqipy-atmotech
     dacite
+    tenacity
   ];
 
   nativeCheckInputs = [
@@ -44,6 +46,12 @@ buildPythonPackage rec {
     syrupy
   ];
 
+  disabledTests = [
+    # stuck in epoll
+    "test_retry_fail"
+    "test_retry_success"
+  ];
+
   pythonImportsCheck = [ "nettigo_air_monitor" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/netutils/default.nix b/pkgs/development/python-modules/netutils/default.nix
index 93b1d2b2e3bbf..50473f84651dc 100644
--- a/pkgs/development/python-modules/netutils/default.nix
+++ b/pkgs/development/python-modules/netutils/default.nix
@@ -15,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "netutils";
-  version = "1.8.0";
+  version = "1.8.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +24,7 @@ buildPythonPackage rec {
     owner = "networktocode";
     repo = "netutils";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Eqs/YkU2XrjD7x2WgvvR89/Pdi9AW9vhw3alJ8kIDgc=";
+    hash = "sha256-09SRSzA1RiBhJjq+dlln23myWvXFhr8krsPz7N80JKw=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/networkx/default.nix b/pkgs/development/python-modules/networkx/default.nix
index 40a6cdcf4b2ed..eb3051d8e14bd 100644
--- a/pkgs/development/python-modules/networkx/default.nix
+++ b/pkgs/development/python-modules/networkx/default.nix
@@ -1,24 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# optional-dependencies
-, lxml
-, matplotlib
-, numpy
-, pandas
-, pydot
-, pygraphviz
-, scipy
-, sympy
+  # optional-dependencies
+  lxml,
+  matplotlib,
+  numpy,
+  pandas,
+  pydot,
+  pygraphviz,
+  scipy,
+  sympy,
 
-# tests
-, pytest-xdist
-, pytestCheckHook
+  # tests
+  pytest-xdist,
+  pytestCheckHook,
+
+  # reverse dependency
+  sage,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +38,7 @@ buildPythonPackage rec {
     hash = "sha256-DBJ9iy9IZfWa6cuKr81gtccPMkHr1m997618SrkBJsk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   passthru.optional-dependencies = {
     default = [
@@ -53,6 +55,10 @@ buildPythonPackage rec {
     ];
   };
 
+  passthru.tests = {
+    inherit sage;
+  };
+
   nativeCheckInputs = [
     pytest-xdist
     pytestCheckHook
diff --git a/pkgs/development/python-modules/nevow/default.nix b/pkgs/development/python-modules/nevow/default.nix
index af5b5374b5b04..65350eb230b18 100644
--- a/pkgs/development/python-modules/nevow/default.nix
+++ b/pkgs/development/python-modules/nevow/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, twisted }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  twisted,
+}:
 
 buildPythonPackage rec {
   pname = "nevow";
diff --git a/pkgs/development/python-modules/newick/default.nix b/pkgs/development/python-modules/newick/default.nix
index 317a9c582b3de..ccda2606a56ff 100644
--- a/pkgs/development/python-modules/newick/default.nix
+++ b/pkgs/development/python-modules/newick/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools-scm
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools-scm,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,25 +20,19 @@ buildPythonPackage rec {
     hash = "sha256-TxyR6RYvy2oIcDNZnHrExtPYGspyWOtZqNy488OmWwk=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   postPatch = ''
     # remove coverage arguments to pytest
     sed -i '/--cov/d' setup.cfg
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "newick"
-  ];
+  pythonImportsCheck = [ "newick" ];
 
   meta = with lib; {
-    description = "A python package to read and write the Newick format";
+    description = "Python package to read and write the Newick format";
     homepage = "https://github.com/dlce-eva/python-newick";
     license = licenses.asl20;
     maintainers = with maintainers; [ alxsimon ];
diff --git a/pkgs/development/python-modules/newversion/default.nix b/pkgs/development/python-modules/newversion/default.nix
index fec4f1b0f41f7..5017d68ebe4d8 100644
--- a/pkgs/development/python-modules/newversion/default.nix
+++ b/pkgs/development/python-modules/newversion/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, packaging
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  packaging,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-v9hfk2/hBkWtOobQdaYXNOZTTcEqnMV6JYqtjjoidOs=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    packaging
-  ];
+  propagatedBuildInputs = [ packaging ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "newversion"
-  ];
+  pythonImportsCheck = [ "newversion" ];
 
   meta = with lib; {
     description = "PEP 440 version manager";
diff --git a/pkgs/development/python-modules/nexia/default.nix b/pkgs/development/python-modules/nexia/default.nix
index 79edcd2d1bdfc..48fa24155c7c1 100644
--- a/pkgs/development/python-modules/nexia/default.nix
+++ b/pkgs/development/python-modules/nexia/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aioresponses
-, buildPythonPackage
-, orjson
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
-, setuptools
+{
+  lib,
+  aioresponses,
+  buildPythonPackage,
+  orjson,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
       --replace '"pytest-runner",' ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     orjson
@@ -46,9 +45,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "nexia"
-  ];
+  pythonImportsCheck = [ "nexia" ];
 
   meta = with lib; {
     description = "Python module for Nexia thermostats";
diff --git a/pkgs/development/python-modules/nextcloudmonitor/default.nix b/pkgs/development/python-modules/nextcloudmonitor/default.nix
index 473f7b6b59047..89ab454cae1b1 100644
--- a/pkgs/development/python-modules/nextcloudmonitor/default.nix
+++ b/pkgs/development/python-modules/nextcloudmonitor/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-3RVGE1vMLtVkZ4+/GwnNs4onctSw1dz6bsV1CC/gnpM=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # no tests implemented
   doCheck = false;
diff --git a/pkgs/development/python-modules/nextcord/default.nix b/pkgs/development/python-modules/nextcord/default.nix
index 4a5faf4c33a8e..83b34084a0a54 100644
--- a/pkgs/development/python-modules/nextcord/default.nix
+++ b/pkgs/development/python-modules/nextcord/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, substituteAll
-, ffmpeg
-, libopus
-, aiohttp
-, aiodns
-, brotli
-, faust-cchardet
-, orjson
-, pynacl
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  substituteAll,
+  ffmpeg,
+  libopus,
+  aiohttp,
+  aiodns,
+  brotli,
+  faust-cchardet,
+  orjson,
+  pynacl,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/nfcpy/default.nix b/pkgs/development/python-modules/nfcpy/default.nix
index bf5f538da33c4..35500ccd6a11f 100644
--- a/pkgs/development/python-modules/nfcpy/default.nix
+++ b/pkgs/development/python-modules/nfcpy/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, libusb1
-, mock
-, ndeflib
-, pydes
-, pyserial
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  libusb1,
+  mock,
+  ndeflib,
+  pydes,
+  pyserial,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "nfc"
-  ];
+  pythonImportsCheck = [ "nfc" ];
 
   disabledTestPaths = [
     # AttributeError: 'NoneType' object has no attribute 'EC_KEY'
@@ -51,11 +50,10 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python module to read/write NFC tags or communicate with another NFC device";
+    description = "Python module to read/write NFC tags or communicate with another NFC device";
     homepage = "https://github.com/nfcpy/nfcpy";
     changelog = "https://github.com/nfcpy/nfcpy/blob/v${version}/HISTORY.rst";
     license = licenses.eupl11;
     maintainers = with maintainers; [ fab ];
   };
 }
-
diff --git a/pkgs/development/python-modules/nh3/default.nix b/pkgs/development/python-modules/nh3/default.nix
index 5c627edadeeb8..1699b18c182df 100644
--- a/pkgs/development/python-modules/nh3/default.nix
+++ b/pkgs/development/python-modules/nh3/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, rustPlatform
-, libiconv
-, fetchFromGitHub
-, darwin
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  rustPlatform,
+  libiconv,
+  fetchFromGitHub,
+  darwin,
 }:
 let
   pname = "nh3";
-  version = "0.2.15";
+  version = "0.2.17";
   src = fetchFromGitHub {
     owner = "messense";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-OyTehgnjmDALU2qPRL/HrvoAMyIsmYuTKFlOJT8r+Gk=";
+    hash = "sha256-j9OoXAuuCWsBHanN+SzSip94ZA+kY8HUVvfY/omUSSM=";
   };
 in
 buildPythonPackage {
@@ -25,10 +26,13 @@ buildPythonPackage {
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-fetAE3cj9hh4SoPE72Bqco5ytUMiDqbazeS2MHdUibM=";
+    hash = "sha256-WomlVzKOUfcgAWGJInSvZn9hm+bFpgc4nJbRiyPCU64=";
   };
 
-  nativeBuildInputs = with rustPlatform; [ cargoSetupHook maturinBuildHook ];
+  nativeBuildInputs = with rustPlatform; [
+    cargoSetupHook
+    maturinBuildHook
+  ];
 
   buildInputs = lib.optionals stdenv.isDarwin [
     libiconv
diff --git a/pkgs/development/python-modules/niaaml/default.nix b/pkgs/development/python-modules/niaaml/default.nix
index 8559087214906..27a851e355102 100644
--- a/pkgs/development/python-modules/niaaml/default.nix
+++ b/pkgs/development/python-modules/niaaml/default.nix
@@ -1,20 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, niapy
-, numpy
-, pandas
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, scikit-learn
-, toml-adapt
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  niapy,
+  numpy,
+  pandas,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  scikit-learn,
+  toml-adapt,
 }:
 
 buildPythonPackage rec {
   pname = "niaaml";
-  version = "1.2.0";
+  version = "2.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,16 +23,13 @@ buildPythonPackage rec {
     owner = "lukapecnik";
     repo = "NiaAML";
     rev = "refs/tags/${version}";
-    hash = "sha256-jGbsxYlRJ81g74LqSKpquciPsLP+KSoNBTJPEaD/CHM=";
+    hash = "sha256-VMZLEirE01Q9eyQIhV18PepGWmBcxLIwNeuVf7EuSWE=";
   };
 
-  pythonRelaxDeps = [
-    "pandas"
-  ];
+  pythonRelaxDeps = [ "pandas" ];
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
     toml-adapt
   ];
 
@@ -49,13 +46,9 @@ buildPythonPackage rec {
     toml-adapt -path pyproject.toml -a change -dep niapy -ver X
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "niaaml"
-  ];
+  pythonImportsCheck = [ "niaaml" ];
 
   meta = with lib; {
     description = "Python automated machine learning framework";
diff --git a/pkgs/development/python-modules/niaarm/default.nix b/pkgs/development/python-modules/niaarm/default.nix
index ff61dfd1eb8de..31060540d170c 100644
--- a/pkgs/development/python-modules/niaarm/default.nix
+++ b/pkgs/development/python-modules/niaarm/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, niapy
-, nltk
-, numpy
-, pandas
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, tomli
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  niapy,
+  nltk,
+  numpy,
+  pandas,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  tomli,
 }:
 
 buildPythonPackage rec {
@@ -25,34 +26,26 @@ buildPythonPackage rec {
     hash = "sha256-J3126RSJYBCSyxoPsvsDgmx9E+9fP2h6avPiCHISL7c=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     niapy
     nltk
     numpy
     pandas
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   disabledTests = [
     # Test requires extra nltk data dependency
     "test_text_mining"
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "niaarm"
-  ];
+  pythonImportsCheck = [ "niaarm" ];
 
   meta = with lib; {
-    description = "A minimalistic framework for Numerical Association Rule Mining";
+    description = "Minimalistic framework for Numerical Association Rule Mining";
     mainProgram = "niaarm";
     homepage = "https://github.com/firefly-cpp/NiaARM";
     changelog = "https://github.com/firefly-cpp/NiaARM/blob/${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/niaclass/default.nix b/pkgs/development/python-modules/niaclass/default.nix
index 796bb17063f97..b9ba6558b78dc 100644
--- a/pkgs/development/python-modules/niaclass/default.nix
+++ b/pkgs/development/python-modules/niaclass/default.nix
@@ -1,15 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, niapy
-, numpy
-, pandas
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, scikit-learn
-, toml-adapt
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  niapy,
+  numpy,
+  pandas,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  scikit-learn,
+  toml-adapt,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +26,10 @@ buildPythonPackage rec {
     hash = "sha256-C3EF18lzheE+dXHJA6WJNFECAH4HfPiCDo7QxtHvOLI=";
   };
 
-  pythonRelaxDeps = [
-    "pandas"
-  ];
+  pythonRelaxDeps = [ "pandas" ];
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
     toml-adapt
   ];
 
@@ -48,20 +45,15 @@ buildPythonPackage rec {
     toml-adapt -path pyproject.toml -a change -dep scikit-learn -ver X
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "niaclass"
-  ];
+  pythonImportsCheck = [ "niaclass" ];
 
   meta = with lib; {
-    description = "A framework for solving classification tasks using Nature-inspired algorithms";
+    description = "Framework for solving classification tasks using Nature-inspired algorithms";
     homepage = "https://github.com/lukapecnik/NiaClass";
     changelog = "https://github.com/lukapecnik/NiaClass/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ firefly-cpp ];
   };
 }
-
diff --git a/pkgs/development/python-modules/nianet/default.nix b/pkgs/development/python-modules/nianet/default.nix
index d91f278a59063..6a97617838382 100644
--- a/pkgs/development/python-modules/nianet/default.nix
+++ b/pkgs/development/python-modules/nianet/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, matplotlib
-, niapy
-, numpy
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, scikit-learn
-, toml-adapt
-, tomli
-, torch
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  matplotlib,
+  niapy,
+  numpy,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  scikit-learn,
+  toml-adapt,
+  tomli,
+  torch,
 }:
 
 buildPythonPackage rec {
@@ -50,9 +51,7 @@ buildPythonPackage rec {
     tomli
   ];
 
-  pythonImportsCheck = [
-    "nianet"
-  ];
+  pythonImportsCheck = [ "nianet" ];
 
   meta = with lib; {
     description = "Designing and constructing neural network topologies using nature-inspired algorithms";
diff --git a/pkgs/development/python-modules/niapy/default.nix b/pkgs/development/python-modules/niapy/default.nix
index c05c0fb25a74d..f7cfecd8a5c17 100644
--- a/pkgs/development/python-modules/niapy/default.nix
+++ b/pkgs/development/python-modules/niapy/default.nix
@@ -1,18 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, matplotlib
-, numpy
-, openpyxl
-, pandas
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  matplotlib,
+  numpy,
+  openpyxl,
+  pandas,
+  poetry-core,
+  pytest7CheckHook,
+  pytest-xdist,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "niapy";
-  version = "2.1.0";
+  version = "2.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,28 +22,22 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "NiaOrg";
     repo = "NiaPy";
-    rev = "refs/tags/${version}";
+    rev = "refs/tags/v${version}";
     hash = "sha256-cT5CU1r3LZ9ValJwRUA0PaISmF6kXAz40alXbWYogGA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     matplotlib
     numpy
     openpyxl
     pandas
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytest7CheckHook pytest-xdist ];
 
-  pythonImportsCheck = [
-    "niapy"
-  ];
+  pythonImportsCheck = [ "niapy" ];
 
   meta = with lib; {
     description = "Micro framework for building nature-inspired algorithms";
diff --git a/pkgs/development/python-modules/nibabel/default.nix b/pkgs/development/python-modules/nibabel/default.nix
index 9b70a4fe20748..1fb80ed06f347 100644
--- a/pkgs/development/python-modules/nibabel/default.nix
+++ b/pkgs/development/python-modules/nibabel/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonAtLeast
-, pythonOlder
-, hatchling
-, hatch-vcs
-, numpy
-, packaging
-, importlib-resources
-, pydicom
-, pillow
-, h5py
-, scipy
-, git
-, pytest-doctestplus
-, pytest-httpserver
-, pytest-xdist
-, pytest7CheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
+  pythonOlder,
+  hatchling,
+  hatch-vcs,
+  numpy,
+  packaging,
+  importlib-resources,
+  pydicom,
+  pillow,
+  h5py,
+  scipy,
+  git,
+  pytest-doctestplus,
+  pytest-httpserver,
+  pytest-xdist,
+  pytest7CheckHook,
 }:
 
 buildPythonPackage rec {
@@ -39,28 +40,14 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     numpy
     packaging
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    importlib-resources
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ];
 
   passthru.optional-dependencies = rec {
-    all = dicom
-      ++ dicomfs
-      ++ minc2
-      ++ spm
-      ++ zstd;
-    dicom = [
-      pydicom
-    ];
-    dicomfs = [
-      pillow
-    ] ++ dicom;
-    minc2 = [
-      h5py
-    ];
-    spm = [
-      scipy
-    ];
+    all = dicom ++ dicomfs ++ minc2 ++ spm ++ zstd;
+    dicom = [ pydicom ];
+    dicomfs = [ pillow ] ++ dicom;
+    minc2 = [ h5py ];
+    spm = [ scipy ];
     zstd = [
       # TODO: pyzstd
     ];
diff --git a/pkgs/development/python-modules/nibe/default.nix b/pkgs/development/python-modules/nibe/default.nix
index d065f93ade21f..79b7833c9efcb 100644
--- a/pkgs/development/python-modules/nibe/default.nix
+++ b/pkgs/development/python-modules/nibe/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, aiohttp
-, aresponses
-, async-modbus
-, async-timeout
-, asyncclick
-, buildPythonPackage
-, construct
-, exceptiongroup
-, fetchFromGitHub
-, pandas
-, pytest-asyncio
-, pytestCheckHook
-, python-slugify
-, pythonOlder
-, setuptools
-, tenacity
+{
+  lib,
+  aiohttp,
+  aresponses,
+  async-modbus,
+  async-timeout,
+  asyncclick,
+  buildPythonPackage,
+  construct,
+  exceptiongroup,
+  fetchFromGitHub,
+  pandas,
+  pytest-asyncio,
+  pytestCheckHook,
+  python-slugify,
+  pythonOlder,
+  setuptools,
+  tenacity,
 }:
 
 buildPythonPackage rec {
   pname = "nibe";
-  version = "2.9.0";
+  version = "2.10.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -28,14 +29,12 @@ buildPythonPackage rec {
     owner = "yozik04";
     repo = "nibe";
     rev = "refs/tags/${version}";
-    hash = "sha256-j8P/lhBjlsmnOc4Cv/a2Hdf2EPO8CEpT4IOQHtiBgQA=";
+    hash = "sha256-rm0SV48vo68aiiFcvuSSGwCvQEsagIMh2EQXXmUU5dc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     async-modbus
     async-timeout
     construct
@@ -48,9 +47,7 @@ buildPythonPackage rec {
       pandas
       python-slugify
     ];
-    cli = [
-      asyncclick
-    ];
+    cli = [ asyncclick ];
   };
 
   nativeCheckInputs = [
@@ -59,15 +56,13 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "nibe"
-  ];
+  pythonImportsCheck = [ "nibe" ];
 
   meta = with lib; {
     description = "Library for the communication with Nibe heatpumps";
     homepage = "https://github.com/yozik04/nibe";
     changelog = "https://github.com/yozik04/nibe/releases/tag/${version}";
-    license = with licenses; [ gpl3Plus ];
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/nidaqmx/default.nix b/pkgs/development/python-modules/nidaqmx/default.nix
index 7c010a224340d..c7efc2f3fb120 100644
--- a/pkgs/development/python-modules/nidaqmx/default.nix
+++ b/pkgs/development/python-modules/nidaqmx/default.nix
@@ -1,13 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, six
-, numpy
-, pytestCheckHook
-, pykka
-, enum34
-, pythonOlder
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  six,
+  numpy,
+  pytestCheckHook,
+  pykka,
+  pythonAtLeast,
 }:
 
 # Note we currently do not patch the path to the drivers
@@ -32,8 +31,6 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     numpy
     six
-  ] ++ lib.optionals (pythonOlder "3.4") [
-    enum34
   ];
 
   nativeCheckInputs = [
@@ -48,9 +45,7 @@ buildPythonPackage rec {
   # Fixture "x_series_device" called directly. Fixtures are not meant to be called directly
   doCheck = false;
 
-  pythonImportsCheck = [
-    "nidaqmx.task"
-  ];
+  pythonImportsCheck = [ "nidaqmx.task" ];
 
   meta = {
     description = "API for interacting with the NI-DAQmx driver";
diff --git a/pkgs/development/python-modules/niko-home-control/default.nix b/pkgs/development/python-modules/niko-home-control/default.nix
index 46707205e863b..7d60e69820734 100644
--- a/pkgs/development/python-modules/niko-home-control/default.nix
+++ b/pkgs/development/python-modules/niko-home-control/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nclib
-, netaddr
-, netifaces
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nclib,
+  netaddr,
+  netifaces,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "nikohomecontrol"
-  ];
+  pythonImportsCheck = [ "nikohomecontrol" ];
 
   meta = with lib; {
     description = "Python SDK for Niko Home Control";
diff --git a/pkgs/development/python-modules/nikola/default.nix b/pkgs/development/python-modules/nikola/default.nix
index 2b9e37d62dae6..8085af5e364bb 100644
--- a/pkgs/development/python-modules/nikola/default.nix
+++ b/pkgs/development/python-modules/nikola/default.nix
@@ -1,49 +1,50 @@
-{ lib
-, aiohttp
-, babel
-, blinker
-, buildPythonPackage
-, docutils
-, doit
-, feedparser
-, fetchPypi
-, fetchpatch2
-, freezegun
-, ghp-import
-, hsluv
-, html5lib
-, ipykernel
-, jinja2
-, lxml
-, mako
-, markdown
-, micawber
-, mock
-, natsort
-, notebook
-, phpserialize
-, piexif
-, pillow
-, pygal
-, pygments
-, pyphen
-, pyrss2gen
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, requests
-, ruamel-yaml
-, setuptools
-, toml
-, typogrify
-, unidecode
-, watchdog
-, yapsy
+{
+  lib,
+  aiohttp,
+  babel,
+  blinker,
+  buildPythonPackage,
+  docutils,
+  doit,
+  feedparser,
+  fetchPypi,
+  fetchpatch2,
+  freezegun,
+  ghp-import,
+  hsluv,
+  html5lib,
+  ipykernel,
+  jinja2,
+  lxml,
+  mako,
+  markdown,
+  micawber,
+  mock,
+  natsort,
+  notebook,
+  phpserialize,
+  piexif,
+  pillow,
+  pygal,
+  pygments,
+  pyphen,
+  pyrss2gen,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  requests,
+  ruamel-yaml,
+  setuptools,
+  toml,
+  typogrify,
+  unidecode,
+  watchdog,
+  yapsy,
 }:
 
 buildPythonPackage rec {
   pname = "nikola";
-  version = "8.3.0";
+  version = "8.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -51,7 +52,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "Nikola";
     inherit version;
-    hash = "sha256-VYuhiGLMTHcOZM8/bGZT7Xx5BOHo9gsMPjufYglrBL0=";
+    hash = "sha256-IfJB2Rl3c1MyEiuyNpT3udfpM480VvFD8zosJFDHr7k=";
   };
 
   patches = [
@@ -67,9 +68,7 @@ buildPythonPackage rec {
       --replace-fail "--cov nikola --cov-report term-missing" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -122,9 +121,7 @@ buildPythonPackage rec {
     "test_format_date_locale_variants"
   ];
 
-  pythonImportsCheck = [
-    "nikola"
-  ];
+  pythonImportsCheck = [ "nikola" ];
 
   meta = with lib; {
     description = "Static website and blog generator";
diff --git a/pkgs/development/python-modules/nilearn/default.nix b/pkgs/development/python-modules/nilearn/default.nix
index c4088ca7e42d9..87cd5e8961005 100644
--- a/pkgs/development/python-modules/nilearn/default.nix
+++ b/pkgs/development/python-modules/nilearn/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pytestCheckHook
-, hatch-vcs
-, lxml
-, matplotlib
-, nibabel
-, numpy
-, pandas
-, scikit-learn
-, scipy
-, joblib
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytestCheckHook,
+  hatch-vcs,
+  lxml,
+  matplotlib,
+  nibabel,
+  numpy,
+  pandas,
+  scikit-learn,
+  scipy,
+  joblib,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -30,7 +31,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [ hatch-vcs ];
 
   nativeCheckInputs = [ pytestCheckHook ];
-  disabledTests = [ "test_clean_confounds" ];  # https://github.com/nilearn/nilearn/issues/2608
+  disabledTests = [ "test_clean_confounds" ]; # https://github.com/nilearn/nilearn/issues/2608
   # do subset of tests which don't fetch resources
   pytestFlagsArray = [ "nilearn/connectome/tests" ];
 
@@ -48,7 +49,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://nilearn.github.io";
-    description = "A module for statistical learning on neuroimaging data";
+    description = "Module for statistical learning on neuroimaging data";
     changelog = "https://github.com/nilearn/nilearn/releases/tag/${version}";
     license = licenses.bsd3;
   };
diff --git a/pkgs/development/python-modules/niluclient/default.nix b/pkgs/development/python-modules/niluclient/default.nix
index 7f6aa69da61e5..6e667a2776169 100644
--- a/pkgs/development/python-modules/niluclient/default.nix
+++ b/pkgs/development/python-modules/niluclient/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     sha256 = "11ymn0cr4lchrcnf2xxlgljw223gwln01gxwr7mcgf95yc4006iq";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/nimfa/default.nix b/pkgs/development/python-modules/nimfa/default.nix
index a253b04228f6c..53c9fd3f41f40 100644
--- a/pkgs/development/python-modules/nimfa/default.nix
+++ b/pkgs/development/python-modules/nimfa/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-, numpy
-, scipy
-, matplotlib
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  numpy,
+  scipy,
+  matplotlib,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,15 @@ buildPythonPackage rec {
     sha256 = "39cff2b86856d03ca8a3d9c38598034ecf1a768c325fd3a728bb9eadb8c6b919";
   };
 
-  propagatedBuildInputs = [ numpy scipy ];
-  nativeCheckInputs = [ matplotlib pytest ];
-  doCheck = !isPy3k;  # https://github.com/marinkaz/nimfa/issues/42
+  propagatedBuildInputs = [
+    numpy
+    scipy
+  ];
+  nativeCheckInputs = [
+    matplotlib
+    pytest
+  ];
+  doCheck = !isPy3k; # https://github.com/marinkaz/nimfa/issues/42
 
   meta = with lib; {
     description = "Nonnegative matrix factorization library";
diff --git a/pkgs/development/python-modules/nine/default.nix b/pkgs/development/python-modules/nine/default.nix
index a969399d3384d..70caf70ca0653 100644
--- a/pkgs/development/python-modules/nine/default.nix
+++ b/pkgs/development/python-modules/nine/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -18,5 +19,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/nandoflorestan/nine";
     license = licenses.free;
   };
-
 }
diff --git a/pkgs/development/python-modules/ninebot-ble/default.nix b/pkgs/development/python-modules/ninebot-ble/default.nix
index 79f00a7e19ff7..fc57a8c7de3ff 100644
--- a/pkgs/development/python-modules/ninebot-ble/default.nix
+++ b/pkgs/development/python-modules/ninebot-ble/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, bleak
-, bleak-retry-connector
-, bluetooth-data-tools
-, bluetooth-sensor-state-data
-, buildPythonPackage
-, fetchFromGitHub
-, miauth
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  bleak,
+  bleak-retry-connector,
+  bluetooth-data-tools,
+  bluetooth-sensor-state-data,
+  buildPythonPackage,
+  fetchFromGitHub,
+  miauth,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -41,9 +42,7 @@ buildPythonPackage rec {
   # Module has no test
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ninebot_ble"
-  ];
+  pythonImportsCheck = [ "ninebot_ble" ];
 
   meta = with lib; {
     description = "Ninebot scooter BLE client";
@@ -53,4 +52,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ fab ];
   };
 }
-
diff --git a/pkgs/development/python-modules/ninja/default.nix b/pkgs/development/python-modules/ninja/default.nix
index 4bf4c83ad4340..a735308e657e5 100644
--- a/pkgs/development/python-modules/ninja/default.nix
+++ b/pkgs/development/python-modules/ninja/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, flit-core
-, ninja
+{
+  lib,
+  buildPythonPackage,
+  flit-core,
+  ninja,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
 
   inherit (ninja) setupHook;
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   preBuild = ''
     cp "${ninja.src}/misc/ninja_syntax.py" ninja/ninja_syntax.py
@@ -36,7 +35,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A small build system with a focus on speed";
+    description = "Small build system with a focus on speed";
     mainProgram = "ninja";
     longDescription = ''
       This is a stub of the ninja package on PyPI that uses the ninja program
@@ -44,6 +43,9 @@ buildPythonPackage rec {
     '';
     homepage = "https://github.com/scikit-build/ninja-python-distributions";
     license = licenses.asl20;
-    maintainers = with maintainers; [ _999eagle tjni ];
+    maintainers = with maintainers; [
+      _999eagle
+      tjni
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/nipreps-versions/default.nix b/pkgs/development/python-modules/nipreps-versions/default.nix
index 1c54ab9d905e4..ab824cdda0c25 100644
--- a/pkgs/development/python-modules/nipreps-versions/default.nix
+++ b/pkgs/development/python-modules/nipreps-versions/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, flit-scm
-, packaging
-, setuptools-scm
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  flit-scm,
+  packaging,
+  setuptools-scm,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    packaging
-  ];
+  propagatedBuildInputs = [ packaging ];
 
   nativeCheckInputs = [ pytestCheckHook ];
   pythonImportsCheck = [ "nipreps_versions" ];
diff --git a/pkgs/development/python-modules/nipy/default.nix b/pkgs/development/python-modules/nipy/default.nix
index a5807ae224d5f..e245aafa0791b 100644
--- a/pkgs/development/python-modules/nipy/default.nix
+++ b/pkgs/development/python-modules/nipy/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, cython
-, meson-python
-, ninja
-, setuptools
+  # build-system
+  cython,
+  meson-python,
+  ninja,
+  setuptools,
 
-# dependencies
-, numpy
-, scipy
-, nibabel
-, sympy
-, transforms3d
+  # dependencies
+  numpy,
+  scipy,
+  nibabel,
+  sympy,
+  transforms3d,
 
-# optional-dependencies
-, matplotlib
+  # optional-dependencies
+  matplotlib,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -52,13 +53,9 @@ buildPythonPackage rec {
     transforms3d
   ];
 
-  optional-dependencies.optional = [
-    matplotlib
-  ];
+  optional-dependencies.optional = [ matplotlib ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ optional-dependencies.optional;
+  nativeCheckInputs = [ pytestCheckHook ] ++ optional-dependencies.optional;
 
   doCheck = false; # partial imports … circular dependencies. needs more time to figure out.
 
@@ -74,5 +71,4 @@ buildPythonPackage rec {
     downloadPage = "https://github.com/nipy/nipy";
     license = licenses.bsd3;
   };
-
 }
diff --git a/pkgs/development/python-modules/nipype/default.nix b/pkgs/development/python-modules/nipype/default.nix
index 2c6d00517df18..5ac5192eeb19d 100644
--- a/pkgs/development/python-modules/nipype/default.nix
+++ b/pkgs/development/python-modules/nipype/default.nix
@@ -1,43 +1,44 @@
-{ lib, stdenv
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pythonRelaxDepsHook
-# python dependencies
-, click
-, python-dateutil
-, etelemetry
-, filelock
-, funcsigs
-, future
-, looseversion
-, mock
-, networkx
-, nibabel
-, numpy
-, packaging
-, prov
-, psutil
-, pybids
-, pydot
-, pytest
-, pytest-xdist
-, pytest-forked
-, rdflib
-, scipy
-, simplejson
-, traits
-, xvfbwrapper
-, codecov
-# other dependencies
-, which
-, bash
-, glibcLocales
-, callPackage
-# causes Python packaging conflict with any package requiring rdflib,
-# so use the unpatched rdflib by default (disables Nipype provenance tracking);
-# see https://github.com/nipy/nipype/issues/2888:
-, useNeurdflib ? false
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  # python dependencies
+  click,
+  python-dateutil,
+  etelemetry,
+  filelock,
+  funcsigs,
+  future,
+  looseversion,
+  mock,
+  networkx,
+  nibabel,
+  numpy,
+  packaging,
+  prov,
+  psutil,
+  pybids,
+  pydot,
+  pytest,
+  pytest-xdist,
+  pytest-forked,
+  rdflib,
+  scipy,
+  simplejson,
+  traits,
+  xvfbwrapper,
+  codecov,
+  # other dependencies
+  which,
+  bash,
+  glibcLocales,
+  callPackage,
+  # causes Python packaging conflict with any package requiring rdflib,
+  # so use the unpatched rdflib by default (disables Nipype provenance tracking);
+  # see https://github.com/nipy/nipype/issues/2888:
+  useNeurdflib ? false,
 }:
 
 buildPythonPackage rec {
@@ -56,9 +57,6 @@ buildPythonPackage rec {
       --replace "/usr/bin/env bash" "${bash}/bin/bash"
   '';
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   pythonRelaxDeps = [ "traits" ];
 
diff --git a/pkgs/development/python-modules/nitime/default.nix b/pkgs/development/python-modules/nitime/default.nix
index cba5f0da29dbf..e9a1ac4c3a18e 100644
--- a/pkgs/development/python-modules/nitime/default.nix
+++ b/pkgs/development/python-modules/nitime/default.nix
@@ -1,29 +1,30 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pytestCheckHook
-, cython
-, setuptools
-, setuptools-scm
-, wheel
-, numpy
-, scipy
-, matplotlib
-, networkx
-, nibabel
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytestCheckHook,
+  cython,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  numpy,
+  scipy,
+  matplotlib,
+  networkx,
+  nibabel,
 }:
 
 buildPythonPackage rec {
   pname = "nitime";
-  version = "0.10.2";
+  version = "0.11";
   disabled = pythonOlder "3.7";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-NCaWr7ZqL1XV0QfUD+4+Yn33N1cCP33ib5oJ91OtJLU=";
+    hash = "sha256-4Ie8fuk9CKdn/64TsCfN2No2dU16ICpBRWYerqqF0/0=";
   };
 
   # Upstream wants to build against the oldest version of numpy possible, but
@@ -50,7 +51,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ pytestCheckHook ];
 
-  doCheck = !stdenv.isDarwin;  # tests hang indefinitely
+  doCheck = !stdenv.isDarwin; # tests hang indefinitely
 
   pythonImportsCheck = [ "nitime" ];
 
diff --git a/pkgs/development/python-modules/nitransforms/default.nix b/pkgs/development/python-modules/nitransforms/default.nix
index a05c9661e69e6..51f499d6ab17c 100644
--- a/pkgs/development/python-modules/nitransforms/default.nix
+++ b/pkgs/development/python-modules/nitransforms/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pythonRelaxDepsHook
-, h5py
-, nibabel
-, numpy
-, scipy
-, setuptools-scm
-, toml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  h5py,
+  nibabel,
+  numpy,
+  scipy,
+  setuptools-scm,
+  toml,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +22,16 @@ buildPythonPackage rec {
     hash = "sha256-Lty4aPzSlwRJSqCXeIVICF+gudYqto1OS4cVZyrB2nY=";
   };
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
-  buildInputs = [ setuptools-scm toml ];
-  propagatedBuildInputs = [ h5py nibabel numpy scipy ];
+  buildInputs = [
+    setuptools-scm
+    toml
+  ];
+  propagatedBuildInputs = [
+    h5py
+    nibabel
+    numpy
+    scipy
+  ];
 
   pythonRelaxDeps = [ "scipy" ];
 
diff --git a/pkgs/development/python-modules/niworkflows/default.nix b/pkgs/development/python-modules/niworkflows/default.nix
index 1616cfff46379..d6eb920d36d4c 100644
--- a/pkgs/development/python-modules/niworkflows/default.nix
+++ b/pkgs/development/python-modules/niworkflows/default.nix
@@ -1,42 +1,43 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatch-vcs
-, hatchling
-, pytestCheckHook
-, attrs
-, importlib-resources
-, jinja2
-, looseversion
-, matplotlib
-, nibabel
-, nilearn
-, nipype
-, nitransforms
-, numpy
-, packaging
-, pandas
-, pybids
-, pyyaml
-, scikit-image
-, scipy
-, seaborn
-, svgutils
-, templateflow
-, traits
-, transforms3d
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatch-vcs,
+  hatchling,
+  pytestCheckHook,
+  attrs,
+  importlib-resources,
+  jinja2,
+  looseversion,
+  matplotlib,
+  nibabel,
+  nilearn,
+  nipype,
+  nitransforms,
+  numpy,
+  packaging,
+  pandas,
+  pybids,
+  pyyaml,
+  scikit-image,
+  scipy,
+  seaborn,
+  svgutils,
+  templateflow,
+  traits,
+  transforms3d,
 }:
 
 buildPythonPackage rec {
   pname = "niworkflows";
-  version = "1.10.1";
+  version = "1.10.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "nipreps";
     repo = "niworkflows";
     rev = "refs/tags/${version}";
-    hash = "sha256-ZOn3KSaPAA8zTdyexrjF9Wkb5C5qA/5eSJahg2DcX20=";
+    hash = "sha256-29ZxLuKrvgCIOMMCUpi0HHhlNlgqUrUrSCiikwecmKw=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/nix-kernel/default.nix b/pkgs/development/python-modules/nix-kernel/default.nix
index c03db9cf42f24..a0b65797ff43e 100644
--- a/pkgs/development/python-modules/nix-kernel/default.nix
+++ b/pkgs/development/python-modules/nix-kernel/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy3k
-, pexpect
-, notebook
-, nix
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy3k,
+  pexpect,
+  notebook,
+  nix,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/nix-prefetch-github/default.nix b/pkgs/development/python-modules/nix-prefetch-github/default.nix
index 6424c5a7bc0f4..de23fe6548bdf 100644
--- a/pkgs/development/python-modules/nix-prefetch-github/default.nix
+++ b/pkgs/development/python-modules/nix-prefetch-github/default.nix
@@ -1,14 +1,15 @@
-{ fetchFromGitHub
-, lib
-, buildPythonPackage
-, git
-, which
-, pythonOlder
-, unittestCheckHook
-, sphinxHook
-, sphinx-argparse
-, parameterized
-, setuptools
+{
+  fetchFromGitHub,
+  lib,
+  buildPythonPackage,
+  git,
+  which,
+  pythonOlder,
+  unittestCheckHook,
+  sphinxHook,
+  sphinx-argparse,
+  parameterized,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -16,7 +17,10 @@ buildPythonPackage rec {
   version = "7.1.0";
   pyproject = true;
 
-  outputs = [ "out" "man" ];
+  outputs = [
+    "out"
+    "man"
+  ];
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
@@ -26,8 +30,17 @@ buildPythonPackage rec {
     hash = "sha256-eQd/MNlnuzXzgFzvwUMchvHoIvkIrbpGKV7iknO14Cc=";
   };
 
-  nativeBuildInputs = [ sphinxHook sphinx-argparse setuptools ];
-  nativeCheckInputs = [ unittestCheckHook git which parameterized ];
+  nativeBuildInputs = [
+    sphinxHook
+    sphinx-argparse
+    setuptools
+  ];
+  nativeCheckInputs = [
+    unittestCheckHook
+    git
+    which
+    parameterized
+  ];
 
   sphinxBuilders = [ "man" ];
   sphinxRoot = "docs";
diff --git a/pkgs/development/python-modules/nixpkgs-pytools/default.nix b/pkgs/development/python-modules/nixpkgs-pytools/default.nix
index d6c3c89887ec6..a8bedf7bc2e08 100644
--- a/pkgs/development/python-modules/nixpkgs-pytools/default.nix
+++ b/pkgs/development/python-modules/nixpkgs-pytools/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jinja2
-, setuptools
-, rope
-, isPy27
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jinja2,
+  setuptools,
+  rope,
+  isPy27,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/nixpkgs/default.nix b/pkgs/development/python-modules/nixpkgs/default.nix
index 6deb9bac96ed4..989eb91287d89 100644
--- a/pkgs/development/python-modules/nixpkgs/default.nix
+++ b/pkgs/development/python-modules/nixpkgs/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pbr
-, pythonix
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pbr,
+  pythonix,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
   pname = "nixpkgs";
   version = "0.2.4";
   format = "setuptools";
-  disabled = ! pythonAtLeast "3.5";
+  disabled = !pythonAtLeast "3.5";
 
   src = fetchPypi {
     inherit pname version;
@@ -30,5 +31,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ t184256 ];
   };
-
 }
diff --git a/pkgs/development/python-modules/nkdfu/default.nix b/pkgs/development/python-modules/nkdfu/default.nix
index 28274467efb9e..0ebb513c2b187 100644
--- a/pkgs/development/python-modules/nkdfu/default.nix
+++ b/pkgs/development/python-modules/nkdfu/default.nix
@@ -1,4 +1,13 @@
-{ lib, buildPythonPackage, fetchPypi, flit-core, fire, tqdm, intelhex, libusb1 }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  fire,
+  tqdm,
+  intelhex,
+  libusb1,
+}:
 
 buildPythonPackage rec {
   pname = "nkdfu";
@@ -10,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-8l913dOCxHKFtpQ83p9RV3sUlu0oT5PVi14FSuYJ9fg=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     fire
diff --git a/pkgs/development/python-modules/nlpcloud/default.nix b/pkgs/development/python-modules/nlpcloud/default.nix
index cbc28feb15777..f9e16e828652d 100644
--- a/pkgs/development/python-modules/nlpcloud/default.nix
+++ b/pkgs/development/python-modules/nlpcloud/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -14,16 +15,12 @@ buildPythonPackage rec {
     hash = "sha256-NmNu1Rf6mN+Q8FdpeNYQ508ksqkIV7oOp8CrlDN1qPU=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # upstream has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "nlpcloud"
-  ];
+  pythonImportsCheck = [ "nlpcloud" ];
 
   meta = with lib; {
     description = "Python client for the NLP Cloud API";
diff --git a/pkgs/development/python-modules/nltk/default.nix b/pkgs/development/python-modules/nltk/default.nix
index cfac189b06f56..2c71a15a021e8 100644
--- a/pkgs/development/python-modules/nltk/default.nix
+++ b/pkgs/development/python-modules/nltk/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, click
-, joblib
-, regex
-, tqdm
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  click,
+  joblib,
+  regex,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -36,15 +37,13 @@ buildPythonPackage rec {
   # best.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "nltk"
-  ];
+  pythonImportsCheck = [ "nltk" ];
 
   meta = with lib; {
     description = "Natural Language Processing ToolKit";
     mainProgram = "nltk";
     homepage = "http://nltk.org/";
     license = licenses.asl20;
-    maintainers = with maintainers; [ lheckemann ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/nmapthon2/default.nix b/pkgs/development/python-modules/nmapthon2/default.nix
index 4c8a66c91a55c..8f2ade7951a59 100644
--- a/pkgs/development/python-modules/nmapthon2/default.nix
+++ b/pkgs/development/python-modules/nmapthon2/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, appdirs
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  appdirs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-4Na75TdKDywUomJF4tDWUWwCCtcOSxBUMOF7+FDhbpY=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests/scanner_tests.py"
-  ];
+  pytestFlagsArray = [ "tests/scanner_tests.py" ];
 
-  pythonImportsCheck = [
-    "nmapthon2"
-  ];
+  pythonImportsCheck = [ "nmapthon2" ];
 
   meta = with lib; {
     description = "Python library to automate nmap";
diff --git a/pkgs/development/python-modules/nocasedict/default.nix b/pkgs/development/python-modules/nocasedict/default.nix
index 9d727ec0ecba2..22a9234125622 100644
--- a/pkgs/development/python-modules/nocasedict/default.nix
+++ b/pkgs/development/python-modules/nocasedict/default.nix
@@ -1,34 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest7CheckHook
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest7CheckHook,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "nocasedict";
-  version = "2.0.1";
+  version = "2.0.3";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-lgy2mfEgnagKw546tQqnNC/oyp9wYGwjRHpRBVBDXlA=";
+    hash = "sha256-HJImx/WoqXrVHcsK4xV6cg4/fLnEVo0i6joF4/hWWKk=";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  nativeCheckInputs = [
-    pytest7CheckHook
-  ];
+  nativeCheckInputs = [ pytest7CheckHook ];
 
-  pythonImportsCheck = [
-    "nocasedict"
-  ];
+  pythonImportsCheck = [ "nocasedict" ];
 
   meta = with lib; {
-    description = "A case-insensitive ordered dictionary for Python";
+    description = "Case-insensitive ordered dictionary for Python";
     homepage = "https://github.com/pywbem/nocasedict";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ freezeboy ];
diff --git a/pkgs/development/python-modules/nocaselist/default.nix b/pkgs/development/python-modules/nocaselist/default.nix
index fcad1844e2f65..c8129568a5ce8 100644
--- a/pkgs/development/python-modules/nocaselist/default.nix
+++ b/pkgs/development/python-modules/nocaselist/default.nix
@@ -1,37 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest7CheckHook
-, pythonOlder
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest7CheckHook,
+  pythonOlder,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "nocaselist";
-  version = "2.0.0";
+  version = "2.0.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-RWqgAMZ3fF0hsCnFLlMvlDKNT7TxWtKk3T3WLbMLOJI=";
+    hash = "sha256-MnCLcAoaUxM+a7XMUzMsl3Wwx8lZpflyV5MXH9L0yKU=";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  nativeCheckInputs = [
-    pytest7CheckHook
-  ];
+  nativeCheckInputs = [ pytest7CheckHook ];
 
-  pythonImportsCheck = [
-    "nocaselist"
-  ];
+  pythonImportsCheck = [ "nocaselist" ];
 
   meta = with lib; {
-    description = "A case-insensitive list for Python";
+    description = "Case-insensitive list for Python";
     homepage = "https://github.com/pywbem/nocaselist";
     changelog = "https://github.com/pywbem/nocaselist/blob/${version}/docs/changes.rst";
     license = licenses.lgpl21Plus;
diff --git a/pkgs/development/python-modules/nocturne/default.nix b/pkgs/development/python-modules/nocturne/default.nix
index 036c3af91e194..0934e6fd2535d 100644
--- a/pkgs/development/python-modules/nocturne/default.nix
+++ b/pkgs/development/python-modules/nocturne/default.nix
@@ -1,14 +1,15 @@
-{ buildPythonPackage
-, cmake
-, fetchFromGitHub
-, gtest
-, hydra-core
-, lib
-, nlohmann_json
-, pybind11
-, pyvirtualdisplay
-, sfml
-, substituteAll
+{
+  buildPythonPackage,
+  cmake,
+  fetchFromGitHub,
+  gtest,
+  hydra-core,
+  lib,
+  nlohmann_json,
+  pybind11,
+  pyvirtualdisplay,
+  sfml,
+  substituteAll,
 }:
 
 buildPythonPackage rec {
@@ -43,17 +44,18 @@ buildPythonPackage rec {
   buildInputs = [ sfml ];
 
   # hydra-core and pyvirtualdisplay are not declared as dependences but they are requirements
-  propagatedBuildInputs = [ hydra-core pyvirtualdisplay ];
+  propagatedBuildInputs = [
+    hydra-core
+    pyvirtualdisplay
+  ];
 
   # Test suite requires hydra-submitit-launcher which is not packaged as of 2022-01-02
   doCheck = false;
 
-  pythonImportsCheck = [
-    "nocturne"
-  ];
+  pythonImportsCheck = [ "nocturne" ];
 
   meta = with lib; {
-    description = "A data-driven, fast driving simulator for multi-agent coordination under partial observability";
+    description = "Data-driven, fast driving simulator for multi-agent coordination under partial observability";
     homepage = "https://github.com/facebookresearch/nocturne";
     license = licenses.mit;
     maintainers = with maintainers; [ samuela ];
diff --git a/pkgs/development/python-modules/node-semver/default.nix b/pkgs/development/python-modules/node-semver/default.nix
index 2fb460bc006d8..90815a55efb6e 100644
--- a/pkgs/development/python-modules/node-semver/default.nix
+++ b/pkgs/development/python-modules/node-semver/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,17 +20,13 @@ buildPythonPackage rec {
     hash = "sha256-Ncl+RUvy9G9lF3EzLz2HfiDB02tEgAlZ34Wbn4mlF6Y=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "nodesemver"
-  ];
+  pythonImportsCheck = [ "nodesemver" ];
 
   meta = with lib; {
     changelog = "https://github.com/podhmo/python-node-semver/blob/${version}/CHANGES.txt";
-    description = "A port of node-semver";
+    description = "Port of node-semver";
     homepage = "https://github.com/podhmo/python-semver";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/nodeenv/default.nix b/pkgs/development/python-modules/nodeenv/default.nix
index 8efd0b492e76a..6ee3b9033f3dd 100644
--- a/pkgs/development/python-modules/nodeenv/default.nix
+++ b/pkgs/development/python-modules/nodeenv/default.nix
@@ -1,30 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pytestCheckHook
-, python
-, pythonOlder
-, setuptools
-, which
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pytestCheckHook,
+  python,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  which,
 }:
 
 buildPythonPackage rec {
   pname = "nodeenv";
-  version = "1.8.0";
-  format = "setuptools";
+  version = "1.9.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "ekalinin";
-    repo = pname;
+    repo = "nodeenv";
     rev = "refs/tags/${version}";
-    hash = "sha256-aW/aNZbFXfP4bF/Nlvv419IDfaJRA1pJYM7awj+6Hz0=";
+    hash = "sha256-nud8HSfx1ri0UZf25VPCy7swfaSM13u5+HzozK+ikeY=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
     setuptools
+    setuptools-scm
   ];
 
   nativeCheckInputs = [
@@ -37,9 +40,7 @@ buildPythonPackage rec {
       --replace '["which", candidate]' '["${lib.getBin which}/bin/which", candidate]'
   '';
 
-  pythonImportsCheck = [
-    "nodeenv"
-  ];
+  pythonImportsCheck = [ "nodeenv" ];
 
   disabledTests = [
     # Test requires coverage
diff --git a/pkgs/development/python-modules/nodepy-runtime/default.nix b/pkgs/development/python-modules/nodepy-runtime/default.nix
index baa078f9082e0..ed76a6c56c956 100644
--- a/pkgs/development/python-modules/nodepy-runtime/default.nix
+++ b/pkgs/development/python-modules/nodepy-runtime/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, localimport
-, pathlib2
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  localimport,
+  pathlib2,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     six
   ];
 
-  pythonImportsCheck = [
-    "nodepy"
-  ];
+  pythonImportsCheck = [ "nodepy" ];
 
   meta = with lib; {
     homepage = "https://github.com/nodepy/nodepy";
diff --git a/pkgs/development/python-modules/noise/default.nix b/pkgs/development/python-modules/noise/default.nix
index 10521f06723ab..940447c711a8f 100644
--- a/pkgs/development/python-modules/noise/default.nix
+++ b/pkgs/development/python-modules/noise/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "noise";
diff --git a/pkgs/development/python-modules/noiseprotocol/default.nix b/pkgs/development/python-modules/noiseprotocol/default.nix
index d1cc83e517ad3..8192e2dd4f30d 100644
--- a/pkgs/development/python-modules/noiseprotocol/default.nix
+++ b/pkgs/development/python-modules/noiseprotocol/default.nix
@@ -1,18 +1,30 @@
-{ lib, buildPythonPackage, fetchFromGitHub, cryptography, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "noiseprotocol";
   version = "0.3.1";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "plizonczyk";
     repo = "noiseprotocol";
-    rev = "v${version}";
-    sha256 = "1mk0rqpjifdv3v1cjwkdnjbrfmzzjm9f3qqs1r8vii4j2wvhm6am";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-VZkKNxeSxLhRDhrj4VKV/1eXl7RtcsnCHru5KC/OYNY=";
   };
 
-  propagatedBuildInputs = [ cryptography ];
+  build-system = [ setuptools ];
+
+  dependencies = [ cryptography ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
@@ -21,6 +33,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Noise Protocol Framework";
     homepage = "https://github.com/plizonczyk/noiseprotocol/";
+    changelog = "https://github.com/plizonczyk/noiseprotocol/blob/v${version}/CHANGELOG.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/nomadnet/default.nix b/pkgs/development/python-modules/nomadnet/default.nix
index d7548d3f8bd80..6ffc0da4c30f7 100644
--- a/pkgs/development/python-modules/nomadnet/default.nix
+++ b/pkgs/development/python-modules/nomadnet/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, lxmf
-, pythonOlder
-, qrcode
-, rns
-, setuptools
-, urwid
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxmf,
+  pythonOlder,
+  qrcode,
+  rns,
+  setuptools,
+  urwid,
 }:
 
 buildPythonPackage rec {
   pname = "nomadnet";
-  version = "0.4.8";
+  version = "0.4.9";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,14 +21,12 @@ buildPythonPackage rec {
     owner = "markqvist";
     repo = "NomadNet";
     rev = "refs/tags/${version}";
-    hash = "sha256-a8fLfTJePf+pejDTqYNXCZda24LaNtOwxwEmEMAnB0I=";
+    hash = "sha256-Ut/YifODoiHCo3bhN8nV5ZPNIr70FM6MjlZCrUuNaFc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     rns
     lxmf
     urwid
@@ -37,16 +36,14 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "nomadnet"
-  ];
+  pythonImportsCheck = [ "nomadnet" ];
 
   meta = with lib; {
     description = "Off-grid, resilient mesh communication";
-    mainProgram = "nomadnet";
     homepage = "https://github.com/markqvist/NomadNet";
     changelog = "https://github.com/markqvist/NomadNet/releases/tag/${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "nomadnet";
   };
 }
diff --git a/pkgs/development/python-modules/noneprompt/default.nix b/pkgs/development/python-modules/noneprompt/default.nix
new file mode 100644
index 0000000000000..77cd491486959
--- /dev/null
+++ b/pkgs/development/python-modules/noneprompt/default.nix
@@ -0,0 +1,39 @@
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  poetry-core,
+  prompt-toolkit,
+  pythonOlder,
+}:
+
+buildPythonPackage rec {
+  pname = "noneprompt";
+  version = "0.1.9";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-M4uLuJqNIu818d7bOqfBsijPE5lzvcQ8X/w+72RFfbk=";
+  };
+
+  build-system = [ poetry-core ];
+
+  dependencies = [ prompt-toolkit ];
+
+  # no test
+  doCheck = false;
+
+  pythonImportsCheck = [ "noneprompt" ];
+
+  meta = {
+    description = "Prompt toolkit for console interaction";
+    homepage = "https://github.com/nonebot/noneprompt";
+    changelog = "https://github.com/nonebot/noneprompt/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ moraxyc ];
+    mainProgram = "noneprompt";
+  };
+}
diff --git a/pkgs/development/python-modules/norfair/default.nix b/pkgs/development/python-modules/norfair/default.nix
index 17c4e3553531e..c3c50cd13334d 100644
--- a/pkgs/development/python-modules/norfair/default.nix
+++ b/pkgs/development/python-modules/norfair/default.nix
@@ -1,16 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, filterpy
-, importlib-metadata
-, numpy
-, rich
-, scipy
-, motmetrics
-, opencv4
-, pytestCheckHook
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  filterpy,
+  importlib-metadata,
+  numpy,
+  rich,
+  scipy,
+  motmetrics,
+  opencv4,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -27,12 +27,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "rich"
-  ];
+  pythonRelaxDeps = [ "rich" ];
 
   propagatedBuildInputs = [
     filterpy
@@ -43,21 +40,13 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    metrics = [
-      motmetrics
-    ];
-    video = [
-      opencv4
-    ];
+    metrics = [ motmetrics ];
+    video = [ opencv4 ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "norfair"
-  ];
+  pythonImportsCheck = [ "norfair" ];
 
   meta = with lib; {
     description = "Lightweight Python library for adding real-time multi-object tracking to any detector";
diff --git a/pkgs/development/python-modules/normality/default.nix b/pkgs/development/python-modules/normality/default.nix
index 862b3af929585..966e399b24780 100644
--- a/pkgs/development/python-modules/normality/default.nix
+++ b/pkgs/development/python-modules/normality/default.nix
@@ -1,43 +1,48 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, text-unidecode
-, chardet
-, banal
-, pyicu
-, pytestCheckHook
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  setuptools,
+  setuptools-scm,
+  text-unidecode,
+  charset-normalizer,
+  chardet,
+  banal,
+  pyicu,
+  pytestCheckHook,
 }:
 buildPythonPackage rec {
   pname = "normality";
-  version = "2.2.5";
-  format = "setuptools";
+  version = "2.5.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pudo";
     repo = "normality";
     rev = version;
-    sha256 = "n8Ycm5DeFItmMJTolazZKGIyN7CTg2ajDCwi/UqzVe8=";
+    hash = "sha256-cGQpNhUqlT2B9wKDoDeDmyCNQLwWR7rTCLxnPHhMR0w=";
   };
 
+  buildInputs = [
+    setuptools
+    setuptools-scm
+  ];
+
   propagatedBuildInputs = [
+    charset-normalizer
     text-unidecode
     chardet
     banal
     pyicu
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
-
-  pythonImportsCheck = [
-    "normality"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
+  pythonImportsCheck = [ "normality" ];
 
   meta = with lib; {
     description = "Micro-library to normalize text strings";
     homepage = "https://github.com/pudo/normality";
     license = licenses.mit;
-    maintainers = [ ];
+    maintainers = with lib.maintainers; [ sigmanificient ];
   };
 }
diff --git a/pkgs/development/python-modules/nose-cov/default.nix b/pkgs/development/python-modules/nose-cov/default.nix
deleted file mode 100644
index 8bb314f116f0d..0000000000000
--- a/pkgs/development/python-modules/nose-cov/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ buildPythonPackage, fetchPypi, lib, nose, cov-core }:
-
-buildPythonPackage rec {
-  pname = "nose-cov";
-  version = "1.6";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "04j4fw01bv648gimqqj4z88606lcczbm1k326agcc74gb4sh7v4b";
-  };
-
-  propagatedBuildInputs = [ nose cov-core ];
-
-  meta = with lib; {
-    homepage = "https://pypi.org/project/nose-cov/";
-    license = licenses.mit;
-    description = "This plugin produces coverage reports. It also supports coverage of subprocesses.";
-    maintainers = with maintainers; [ ];
-  };
-}
diff --git a/pkgs/development/python-modules/nose-cprof/default.nix b/pkgs/development/python-modules/nose-cprof/default.nix
deleted file mode 100644
index 58ffc4a25c680..0000000000000
--- a/pkgs/development/python-modules/nose-cprof/default.nix
+++ /dev/null
@@ -1,26 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-}:
-
-
-buildPythonPackage rec {
-  pname = "nose-cprof";
-  version = "0.2.1";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0178834759b63dc50388444d4ff8d1ae84e1ba110bb167419afee6bf4699b119";
-  };
-
-  buildInputs = [ nose ];
-
-  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/pkgs/development/python-modules/nose-exclude/default.nix b/pkgs/development/python-modules/nose-exclude/default.nix
deleted file mode 100644
index 38d6cd3bb78ea..0000000000000
--- a/pkgs/development/python-modules/nose-exclude/default.nix
+++ /dev/null
@@ -1,28 +0,0 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, nose
-}:
-
-buildPythonPackage rec {
-  pname = "nose-exclude";
-  version = "0.5.0";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "f78fa8b41eeb815f0486414f710f1eea0949e346cfb11d59ba6295ed69e84304";
-  };
-
-  propagatedBuildInputs = [ nose ];
-
-  # "OSError: AF_UNIX path too long" for darwin
-  doCheck = !stdenv.isDarwin;
-
-  meta = {
-    license = lib.licenses.lgpl21;
-    description = "Exclude specific directories from nosetests runs";
-    homepage = "https://github.com/kgrandis/nose-exclude";
-  };
-}
diff --git a/pkgs/development/python-modules/nose-pattern-exclude/default.nix b/pkgs/development/python-modules/nose-pattern-exclude/default.nix
index cb0ef287cef14..62fc26fe7b7a8 100644
--- a/pkgs/development/python-modules/nose-pattern-exclude/default.nix
+++ b/pkgs/development/python-modules/nose-pattern-exclude/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, nose }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+}:
 
 buildPythonPackage rec {
   pname = "nose-pattern-exclude";
diff --git a/pkgs/development/python-modules/nose-randomly/default.nix b/pkgs/development/python-modules/nose-randomly/default.nix
deleted file mode 100644
index afb797d3e2f25..0000000000000
--- a/pkgs/development/python-modules/nose-randomly/default.nix
+++ /dev/null
@@ -1,34 +0,0 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, nose
-, numpy
-}:
-
-buildPythonPackage rec {
-  pname = "nose-randomly";
-  version = "1.2.6";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "7e483a3d79e13ae760d6ade57ae07ae45bb4b223b61a805e958b4c077116c67c";
-  };
-
-  nativeCheckInputs = [ numpy nose ];
-
-  checkPhase = if stdenv.isDarwin then ''
-    # Work around "OSError: AF_UNIX path too long"
-    TMPDIR="/tmp" nosetests
-  '' else ''
-    nosetests
-  '';
-
-  meta = with lib; {
-    description = "Nose plugin to randomly order tests and control random.seed";
-    homepage = "https://github.com/adamchainz/nose-randomly";
-    license = licenses.bsd3;
-    maintainers = [ ];
-  };
-}
diff --git a/pkgs/development/python-modules/nose-timer/default.nix b/pkgs/development/python-modules/nose-timer/default.nix
index 51b4bf80d0e8c..a002e6bfb1dac 100644
--- a/pkgs/development/python-modules/nose-timer/default.nix
+++ b/pkgs/development/python-modules/nose-timer/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nose
-, mock
-, parameterized
-, termcolor
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nose,
+  mock,
+  parameterized,
+  termcolor,
 }:
 
 buildPythonPackage rec {
@@ -37,7 +38,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "nosetimer" ];
 
   meta = with lib; {
-    description = "A timer plugin for nosetests";
+    description = "Timer plugin for nosetests";
     homepage = "https://github.com/mahmoudimus/nose-timer";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/development/python-modules/nose-warnings-filters/default.nix b/pkgs/development/python-modules/nose-warnings-filters/default.nix
index 4de67b60c468f..39ad8c46f723a 100644
--- a/pkgs/development/python-modules/nose-warnings-filters/default.nix
+++ b/pkgs/development/python-modules/nose-warnings-filters/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  nose,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/nose-xunitmp/default.nix b/pkgs/development/python-modules/nose-xunitmp/default.nix
new file mode 100644
index 0000000000000..18c235dfaade0
--- /dev/null
+++ b/pkgs/development/python-modules/nose-xunitmp/default.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  wheel,
+  nose,
+}:
+
+buildPythonPackage rec {
+  pname = "nose-xunitmp";
+  version = "0.4.1";
+  pyproject = true;
+
+  src = fetchPypi {
+    pname = "nose_xunitmp";
+    inherit version;
+    hash = "sha256-wt9y9HYHUdMBU9Rzgiqr8afD1GL2ZKp/f9uNxibcfEA=";
+  };
+
+  build-system = [
+    setuptools
+    wheel
+  ];
+
+  dependencies = [ nose ];
+
+  pythonImportsCheck = [ "nose_xunitmp" ];
+
+  meta = {
+    description = "Xunit output when running multiprocess tests using nose";
+    homepage = "https://pypi.org/project/nose_xunitmp/";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/pkgs/development/python-modules/nose/default.nix b/pkgs/development/python-modules/nose/default.nix
index d59dd0db64615..f864cfb9125f3 100644
--- a/pkgs/development/python-modules/nose/default.nix
+++ b/pkgs/development/python-modules/nose/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-, isPyPy
-, python
- ,pythonAtLeast
-, coverage
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  isPyPy,
+  python,
+  pythonAtLeast,
+  coverage,
 }:
 
 buildPythonPackage rec {
@@ -37,16 +38,21 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ coverage ];
 
   doCheck = false; # lot's of transient errors, too much hassle
-  checkPhase = if isPy3k then ''
-    ${python.pythonOnBuildForHost.interpreter} setup.py build_tests
-  '' else "" + ''
-    rm functional_tests/test_multiprocessing/test_concurrent_shared.py* # see https://github.com/nose-devs/nose/commit/226bc671c73643887b36b8467b34ad485c2df062
-    ${python.pythonOnBuildForHost.interpreter} selftest.py
-  '';
+  checkPhase =
+    if isPy3k then
+      ''
+        ${python.pythonOnBuildForHost.interpreter} setup.py build_tests
+      ''
+    else
+      ""
+      + ''
+        rm functional_tests/test_multiprocessing/test_concurrent_shared.py* # see https://github.com/nose-devs/nose/commit/226bc671c73643887b36b8467b34ad485c2df062
+        ${python.pythonOnBuildForHost.interpreter} selftest.py
+      '';
 
   meta = with lib; {
     broken = isPyPy; # missing 2to3 conversion utility
-    description = "A unittest-based testing framework for python that makes writing and running tests easier";
+    description = "Unittest-based testing framework for python that makes writing and running tests easier";
     mainProgram = "nosetests";
     homepage = "https://nose.readthedocs.io/";
     license = licenses.lgpl3;
diff --git a/pkgs/development/python-modules/nose2/default.nix b/pkgs/development/python-modules/nose2/default.nix
index 4d6e6b3e5c83d..95a564c14c58d 100644
--- a/pkgs/development/python-modules/nose2/default.nix
+++ b/pkgs/development/python-modules/nose2/default.nix
@@ -1,43 +1,38 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# optional-dependencies
-, coverage
+  # optional-dependencies
+  coverage,
 
-# tests
-, unittestCheckHook
+  # tests
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "nose2";
-  version = "0.14.1";
+  version = "0.15.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-f48Dohyd4sMwFZM6/O9yv45KLV3+w7QAkih95uQbCTo=";
+    hash = "sha256-NncPUZ31vs08v+C+5Ku/v5ufa0604DNh0oK378/E8N8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   passthru.optional-dependencies = {
-    coverage = [
-      coverage
-    ];
+    coverage = [ coverage ];
   };
 
-  pythonImportsCheck = [
-    "nose2"
-  ];
+  pythonImportsCheck = [ "nose2" ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/nose3/default.nix b/pkgs/development/python-modules/nose3/default.nix
index df6d75a07dc5a..df0fde3fc4a35 100644
--- a/pkgs/development/python-modules/nose3/default.nix
+++ b/pkgs/development/python-modules/nose3/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, coverage
-, fetchPypi
-, isPyPy
-, isPy311
-, python
-, pythonAtLeast
-, stdenv
+{
+  lib,
+  buildPythonPackage,
+  coverage,
+  fetchPypi,
+  isPyPy,
+  isPy311,
+  python,
+  pythonAtLeast,
+  stdenv,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/nosejs/default.nix b/pkgs/development/python-modules/nosejs/default.nix
deleted file mode 100644
index 782673d4e498b..0000000000000
--- a/pkgs/development/python-modules/nosejs/default.nix
+++ /dev/null
@@ -1,29 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-}:
-
-buildPythonPackage rec {
-  pname = "nosejs";
-  version = "0.9.4";
-
-  src = fetchPypi {
-    pname = "NoseJS";
-    inherit version;
-    sha256 = "0qrhkd3sga56qf6k0sqyhwfcladwi05gl6aqmr0xriiq1sgva5dy";
-  };
-
-  nativeCheckInputs = [ nose ];
-
-  checkPhase = ''
-    nosetests -v
-  '';
-
-  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/pkgs/development/python-modules/nosexcover/default.nix b/pkgs/development/python-modules/nosexcover/default.nix
deleted file mode 100644
index 19d34904739ba..0000000000000
--- a/pkgs/development/python-modules/nosexcover/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonAtLeast
-, coverage
-, nose
-}:
-
-buildPythonPackage rec {
-  pname = "nosexcover";
-  version = "1.0.11";
-  format = "setuptools";
-
-  # requires the imp module
-  disabled = pythonAtLeast "3.12";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "298c3c655da587f6cab8a666e9f4b150320032431062dea91353988d45c8b883";
-  };
-
-  propagatedBuildInputs = [ coverage nose ];
-
-  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/pkgs/development/python-modules/notebook-shim/default.nix b/pkgs/development/python-modules/notebook-shim/default.nix
index c352bd00083c2..11c17bd7516f7 100644
--- a/pkgs/development/python-modules/notebook-shim/default.nix
+++ b/pkgs/development/python-modules/notebook-shim/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, jupyter-server
-, pytestCheckHook
-, pytest-tornasync
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  jupyter-server,
+  pytestCheckHook,
+  pytest-tornasync,
 }:
 
 buildPythonPackage rec {
@@ -46,6 +47,6 @@ buildPythonPackage rec {
     '';
     homepage = "https://github.com/jupyter/notebook_shim";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ friedelino ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/notebook/default.nix b/pkgs/development/python-modules/notebook/default.nix
index 6f09fdae9c67e..8d9095bc3c111 100644
--- a/pkgs/development/python-modules/notebook/default.nix
+++ b/pkgs/development/python-modules/notebook/default.nix
@@ -1,29 +1,30 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, hatch-jupyter-builder
-, hatchling
-, jupyter-server
-, jupyterlab
-, jupyterlab-server
-, notebook-shim
-, tornado
-, pytest-jupyter
-, pytestCheckHook
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  hatch-jupyter-builder,
+  hatchling,
+  jupyter-server,
+  jupyterlab,
+  jupyterlab-server,
+  notebook-shim,
+  tornado,
+  pytest-jupyter,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "notebook";
-  version = "7.1.3";
-  disabled = pythonOlder "3.8";
+  version = "7.2.1";
+  pyproject = true;
 
-  format = "pyproject";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Qfzr/0TPe7k3cYCAi8uuBmYptV2MdyLx6751ykT5z8E=";
+    hash = "sha256-Qoe22ll0CzIXPQHWQfdj0pL0nDDnpRuJxGuoRzEmNB4=";
   };
 
   postPatch = ''
@@ -31,13 +32,13 @@ buildPythonPackage rec {
       --replace "timeout = 300" ""
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     hatch-jupyter-builder
     hatchling
     jupyterlab
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     jupyter-server
     jupyterlab
     jupyterlab-server
@@ -51,7 +52,8 @@ buildPythonPackage rec {
   ];
 
   pytestFlagsArray = [
-    "-W" "ignore::DeprecationWarning"
+    "-W"
+    "ignore::DeprecationWarning"
   ];
 
   env = {
diff --git a/pkgs/development/python-modules/notedown/default.nix b/pkgs/development/python-modules/notedown/default.nix
index f272f5cb0d4b9..72666397f044c 100644
--- a/pkgs/development/python-modules/notedown/default.nix
+++ b/pkgs/development/python-modules/notedown/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-, nbconvert
-, nbformat
-, notebook
-, pandoc-attributes
-, six
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  nbconvert,
+  nbformat,
+  notebook,
+  pandoc-attributes,
+  six,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/notifications-android-tv/default.nix b/pkgs/development/python-modules/notifications-android-tv/default.nix
index 00e43cfe18797..e8ed0bd97f69e 100644
--- a/pkgs/development/python-modules/notifications-android-tv/default.nix
+++ b/pkgs/development/python-modules/notifications-android-tv/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, httpx
-, poetry-core
-, pytest-asyncio
-, pytest-httpx
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpx,
+  poetry-core,
+  pytest-asyncio,
+  pytest-httpx,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,19 +23,13 @@ buildPythonPackage rec {
     hash = "sha256-Xr+d2uYzgFp/Fb00ymov02+GYnwjGc3FbJ/rIvQXzCE=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    httpx
-  ];
+  propagatedBuildInputs = [ httpx ];
 
   pythonImportsCheck = [ "notifications_android_tv" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   checkInputs = [
     pytest-asyncio
diff --git a/pkgs/development/python-modules/notifications-python-client/default.nix b/pkgs/development/python-modules/notifications-python-client/default.nix
index 353c5fc3d42e2..1915ccd3fee98 100644
--- a/pkgs/development/python-modules/notifications-python-client/default.nix
+++ b/pkgs/development/python-modules/notifications-python-client/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, docopt
-, fetchFromGitHub
-, freezegun
-, mock
-, pyjwt
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  docopt,
+  fetchFromGitHub,
+  freezegun,
+  mock,
+  pyjwt,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "notifications-python-client";
-  version = "9.0.0";
+  version = "9.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -24,7 +25,7 @@ buildPythonPackage rec {
     owner = "alphagov";
     repo = "notifications-python-client";
     rev = "refs/tags/${version}";
-    hash = "sha256-HDxCVwagHFenx0S2TPxiMIyyq4ovxe0yNi76sX2CC9s=";
+    hash = "sha256-qjiI+aTJLOz3XSTHKrpZrJ/wg1xP+V7ww0//xX3Kf1E=";
   };
 
   postPatch = ''
@@ -32,9 +33,7 @@ buildPythonPackage rec {
       --replace "pytest-runner" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     docopt
@@ -50,9 +49,7 @@ buildPythonPackage rec {
     requests-mock
   ];
 
-  pythonImportsCheck = [
-    "notifications_python_client"
-  ];
+  pythonImportsCheck = [ "notifications_python_client" ];
 
   meta = with lib; {
     description = "Python client for the GOV.UK Notify API";
diff --git a/pkgs/development/python-modules/notify-events/default.nix b/pkgs/development/python-modules/notify-events/default.nix
index 97d888ae23ce5..6a5d1a4bd07a3 100644
--- a/pkgs/development/python-modules/notify-events/default.nix
+++ b/pkgs/development/python-modules/notify-events/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     sha256 = "e63ba935c3300ff7f48cba115f7cb4474906e83c2e9b60b95a0881eb949701e7";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # upstream has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/notify-py/default.nix b/pkgs/development/python-modules/notify-py/default.nix
index 9e4a972386995..38f4ff5af1403 100644
--- a/pkgs/development/python-modules/notify-py/default.nix
+++ b/pkgs/development/python-modules/notify-py/default.nix
@@ -1,24 +1,24 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, substituteAll
-, alsa-utils
-, libnotify
-, which
-, poetry-core
-, pythonRelaxDepsHook
-, jeepney
-, loguru
-, pytest
-, dbus
-, coreutils
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  substituteAll,
+  alsa-utils,
+  libnotify,
+  which,
+  poetry-core,
+  jeepney,
+  loguru,
+  pytest,
+  dbus,
+  coreutils,
 }:
 
 buildPythonPackage rec {
   pname = "notify-py";
-  version = "0.3.42";
+  version = "0.3.43";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -27,57 +27,54 @@ buildPythonPackage rec {
     owner = "ms7m";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-XtjJImH9UwPPZS/Yqs8S5xGXOLBRmJRawzxWXoPWvrM=";
+    hash = "sha256-4PJ/0dLG3bWDuF1G/qUmvNaIUFXgPP2S/0uhZz86WRA=";
   };
 
-  patches = lib.optionals stdenv.isLinux [
-    # hardcode paths to aplay and notify-send
-    (substituteAll {
-      src = ./linux-paths.patch;
-      aplay = "${alsa-utils}/bin/aplay";
-      notifysend = "${libnotify}/bin/notify-send";
-    })
-  ] ++ lib.optionals stdenv.isDarwin [
-    # hardcode path to which
-    (substituteAll {
-      src = ./darwin-paths.patch;
-      which = "${which}/bin/which";
-    })
-  ];
+  patches =
+    lib.optionals stdenv.isLinux [
+      # hardcode paths to aplay and notify-send
+      (substituteAll {
+        src = ./linux-paths.patch;
+        aplay = "${alsa-utils}/bin/aplay";
+        notifysend = "${libnotify}/bin/notify-send";
+      })
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # hardcode path to which
+      (substituteAll {
+        src = ./darwin-paths.patch;
+        which = "${which}/bin/which";
+      })
+    ];
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "loguru"
-  ];
+  pythonRelaxDeps = [ "loguru" ];
 
-  propagatedBuildInputs = [
-    loguru
-  ] ++ lib.optionals stdenv.isLinux [
-    jeepney
-  ];
+  propagatedBuildInputs = [ loguru ] ++ lib.optionals stdenv.isLinux [ jeepney ];
 
-  nativeCheckInputs = [
-    pytest
-  ] ++ lib.optionals stdenv.isLinux [
-    dbus
-  ];
+  nativeCheckInputs = [ pytest ] ++ lib.optionals stdenv.isLinux [ dbus ];
 
-  checkPhase = if stdenv.isDarwin then ''
-    # Tests search for "afplay" binary which is built in to macOS and not available in nixpkgs
-    mkdir $TMP/bin
-    ln -s ${coreutils}/bin/true $TMP/bin/afplay
-    PATH="$TMP/bin:$PATH" pytest
-  '' else if stdenv.isLinux then ''
-    dbus-run-session \
-      --config-file=${dbus}/share/dbus-1/session.conf \
-      pytest
-  '' else ''
-    pytest
-  '';
+  checkPhase =
+    if stdenv.isDarwin then
+      ''
+        # Tests search for "afplay" binary which is built in to macOS and not available in nixpkgs
+        mkdir $TMP/bin
+        ln -s ${coreutils}/bin/true $TMP/bin/afplay
+        PATH="$TMP/bin:$PATH" pytest
+      ''
+    else if stdenv.isLinux then
+      ''
+        dbus-run-session \
+          --config-file=${dbus}/share/dbus-1/session.conf \
+          pytest
+      ''
+    else
+      ''
+        pytest
+      '';
 
   # GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name
   # org.freedesktop.Notifications was not provided by any .service files
@@ -91,6 +88,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/ms7m/notify-py";
     changelog = "https://github.com/ms7m/notify-py/releases/tag/v${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ austinbutler dotlambda ];
+    maintainers = with maintainers; [
+      austinbutler
+      dotlambda
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/notify2/default.nix b/pkgs/development/python-modules/notify2/default.nix
index 1f087cb77a363..b2e5c33faaa46 100644
--- a/pkgs/development/python-modules/notify2/default.nix
+++ b/pkgs/development/python-modules/notify2/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
-, pygobject3
-, dbus-python
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+  pygobject3,
+  dbus-python,
 }:
 
 buildPythonPackage rec {
@@ -15,11 +16,12 @@ buildPythonPackage rec {
     sha256 = "0z8rrv9rsg1r2qgh2dxj3dfj5xnki98kgi3w839kqby4a26i1yik";
   };
 
-
   # Tests require Xorg and Dbus instance
   doCheck = false;
-  propagatedBuildInputs = [ pygobject3
-                            dbus-python ];
+  propagatedBuildInputs = [
+    pygobject3
+    dbus-python
+  ];
 
   meta = {
     description = "Pure Python interface to DBus notifications";
diff --git a/pkgs/development/python-modules/notion-client/default.nix b/pkgs/development/python-modules/notion-client/default.nix
index 1f9f5f1d65e97..6ec520c3ae470 100644
--- a/pkgs/development/python-modules/notion-client/default.nix
+++ b/pkgs/development/python-modules/notion-client/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, setuptools
-, anyio
-, httpx
-, pytest-asyncio
-, pytest-vcr
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
+  anyio,
+  httpx,
+  pytest-asyncio,
+  pytest-vcr,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +25,9 @@ buildPythonPackage rec {
     hash = "sha256-IEWFrdqrawFbuwA8bUewanmBoGWsjHJ7ucgvHQEaMcA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    httpx
-  ];
+  propagatedBuildInputs = [ httpx ];
 
   # disable coverage options as they don't provide us value, and they break the default pytestCheckHook
   preCheck = ''
@@ -44,9 +41,7 @@ buildPythonPackage rec {
     pytest-vcr
   ];
 
-  pythonImportsCheck = [
-    "notion_client"
-  ];
+  pythonImportsCheck = [ "notion_client" ];
 
   meta = with lib; {
     description = "Python client for the official Notion API";
diff --git a/pkgs/development/python-modules/notmuch/default.nix b/pkgs/development/python-modules/notmuch/default.nix
index a67888564c6ba..eb5f017e0e3da 100644
--- a/pkgs/development/python-modules/notmuch/default.nix
+++ b/pkgs/development/python-modules/notmuch/default.nix
@@ -1,8 +1,9 @@
-{ lib
+{
+  lib,
 
-, buildPythonPackage
-, notmuch
-, python
+  buildPythonPackage,
+  notmuch,
+  python,
 }:
 
 buildPythonPackage {
@@ -12,7 +13,10 @@ buildPythonPackage {
 
   format = "setuptools";
 
-  buildInputs = [ python notmuch ];
+  buildInputs = [
+    python
+    notmuch
+  ];
 
   postPatch = ''
     sed -i -e '/CDLL/s@"libnotmuch\.@"${notmuch}/lib/libnotmuch.@' \
@@ -24,10 +28,9 @@ buildPythonPackage {
   pythonImportsCheck = [ "notmuch" ];
 
   meta = with lib; {
-    description = "A Python wrapper around notmuch";
+    description = "Python wrapper around notmuch";
     homepage = "https://notmuchmail.org/";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/notmuch2/default.nix b/pkgs/development/python-modules/notmuch2/default.nix
index 08d0cd0929f62..14eb6e67d09f6 100644
--- a/pkgs/development/python-modules/notmuch2/default.nix
+++ b/pkgs/development/python-modules/notmuch2/default.nix
@@ -1,9 +1,10 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, notmuch
-, python
-, cffi
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  notmuch,
+  python,
+  cffi,
 }:
 
 buildPythonPackage {
@@ -13,11 +14,10 @@ buildPythonPackage {
 
   sourceRoot = "notmuch-${notmuch.version}/bindings/python-cffi";
 
-  nativeBuildInputs = [
-    cffi
-  ];
+  nativeBuildInputs = [ cffi ];
   buildInputs = [
-    python notmuch
+    python
+    notmuch
   ];
 
   propagatedBuildInputs = [ cffi ];
diff --git a/pkgs/development/python-modules/nototools/default.nix b/pkgs/development/python-modules/nototools/default.nix
index 4b20eba21b0a5..ea555a5e0977d 100644
--- a/pkgs/development/python-modules/nototools/default.nix
+++ b/pkgs/development/python-modules/nototools/default.nix
@@ -1,13 +1,42 @@
-{ fetchFromGitHub, lib, buildPythonPackage, pythonOlder
-, afdko, appdirs, attrs, booleanoperations, brotlipy, click
-, defcon, fontmath, fontparts, fontpens, fonttools, lxml
-, mutatormath, pathspec, psautohint, pyclipper, pytz, regex, scour
-, toml, typed-ast, ufonormalizer, ufoprocessor, unicodedata2, zopfli
-, pillow, six, bash, setuptools-scm }:
+{
+  fetchFromGitHub,
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  afdko,
+  appdirs,
+  attrs,
+  booleanoperations,
+  brotlipy,
+  click,
+  defcon,
+  fontmath,
+  fontparts,
+  fontpens,
+  fonttools,
+  lxml,
+  mutatormath,
+  pathspec,
+  psautohint,
+  pyclipper,
+  pytz,
+  regex,
+  scour,
+  toml,
+  typed-ast,
+  ufonormalizer,
+  ufoprocessor,
+  unicodedata2,
+  zopfli,
+  pillow,
+  six,
+  bash,
+  setuptools-scm,
+}:
 
 buildPythonPackage rec {
   pname = "nototools";
-  version = "0.2.19";
+  version = "0.2.20";
 
   disabled = pythonOlder "3.6";
 
@@ -15,7 +44,7 @@ buildPythonPackage rec {
     owner = "googlefonts";
     repo = "nototools";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-anAz+5PIhGhpFunjV2EVk2CrbXq2U0e+LINYUnS0IKU=";
+    sha256 = "sha256-id4UhyWOFHrtmBZHhnaY2jHDIK0s7rcGBpg4QsBTLKs=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/notus-scanner/default.nix b/pkgs/development/python-modules/notus-scanner/default.nix
index 9d402201dcce9..afe74c20e94e4 100644
--- a/pkgs/development/python-modules/notus-scanner/default.nix
+++ b/pkgs/development/python-modules/notus-scanner/default.nix
@@ -8,7 +8,6 @@
   pytestCheckHook,
   python-gnupg,
   pythonOlder,
-  pythonRelaxDepsHook,
   sentry-sdk,
   tomli,
 }:
@@ -34,7 +33,6 @@ buildPythonPackage rec {
 
   build-system = [ poetry-core ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   propagatedBuildInputs = [
     paho-mqtt
diff --git a/pkgs/development/python-modules/nox/default.nix b/pkgs/development/python-modules/nox/default.nix
index a006c0cbd2d6f..2f60f1199180a 100644
--- a/pkgs/development/python-modules/nox/default.nix
+++ b/pkgs/development/python-modules/nox/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, argcomplete
-, buildPythonPackage
-, colorlog
-, fetchFromGitHub
-, hatchling
-, importlib-metadata
-, jinja2
-, packaging
-, pytestCheckHook
-, pythonOlder
-, tox
-, typing-extensions
-, virtualenv
+{
+  lib,
+  argcomplete,
+  buildPythonPackage,
+  colorlog,
+  fetchFromGitHub,
+  hatchling,
+  importlib-metadata,
+  jinja2,
+  packaging,
+  pytestCheckHook,
+  pythonOlder,
+  tox,
+  typing-extensions,
+  virtualenv,
 }:
 
 buildPythonPackage rec {
@@ -28,19 +29,19 @@ buildPythonPackage rec {
     hash = "sha256-PagZR2IdS1gS/ukl4b0Al9sdEsFnFwP8oy0eOGKJHMs=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = [
-    argcomplete
-    colorlog
-    packaging
-    virtualenv
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-    importlib-metadata
-  ];
+  propagatedBuildInputs =
+    [
+      argcomplete
+      colorlog
+      packaging
+      virtualenv
+    ]
+    ++ lib.optionals (pythonOlder "3.8") [
+      typing-extensions
+      importlib-metadata
+    ];
 
   nativeCheckInputs = [
     jinja2
@@ -48,9 +49,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "nox"
-  ];
+  pythonImportsCheck = [ "nox" ];
 
   disabledTests = [
     # our conda is not available on 3.11
@@ -67,6 +66,9 @@ buildPythonPackage rec {
     homepage = "https://nox.thea.codes/";
     changelog = "https://github.com/wntrblm/nox/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
-    maintainers = with maintainers; [ doronbehar fab ];
+    maintainers = with maintainers; [
+      doronbehar
+      fab
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/nplusone/default.nix b/pkgs/development/python-modules/nplusone/default.nix
index ff0aa18a2d36f..76b22857f172f 100644
--- a/pkgs/development/python-modules/nplusone/default.nix
+++ b/pkgs/development/python-modules/nplusone/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, blinker
-, buildPythonPackage
-, django
-, fetchFromGitHub
-, flake8
-, flask-sqlalchemy
-, isPy27
-, mock
-, peewee
-, pytest-django
-, pytestCheckHook
-, six
-, sqlalchemy
-, webtest
+{
+  lib,
+  blinker,
+  buildPythonPackage,
+  django,
+  fetchFromGitHub,
+  flake8,
+  flask-sqlalchemy,
+  isPy27,
+  mock,
+  peewee,
+  pytest-django,
+  pytestCheckHook,
+  six,
+  sqlalchemy,
+  webtest,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/nptyping/default.nix b/pkgs/development/python-modules/nptyping/default.nix
index eeb12a570fbd0..ac53dc38d35b9 100644
--- a/pkgs/development/python-modules/nptyping/default.nix
+++ b/pkgs/development/python-modules/nptyping/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, beartype
-, invoke
-, numpy
-, pandas
-, feedparser
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  beartype,
+  invoke,
+  numpy,
+  pandas,
+  feedparser,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-hz4YrcvARCAA7TXapmneIwle/F4pzcIYLPSmiFHC0VQ=";
   };
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   nativeCheckInputs = [
     beartype
@@ -55,9 +54,7 @@ buildPythonPackage rec {
     "tests/test_beartype.py"
   ];
 
-  pythonImportsCheck = [
-    "nptyping"
-  ];
+  pythonImportsCheck = [ "nptyping" ];
 
   meta = with lib; {
     description = "Type hints for numpy";
diff --git a/pkgs/development/python-modules/npyscreen/default.nix b/pkgs/development/python-modules/npyscreen/default.nix
index 764e46dcadec1..f2a250b2cba9a 100644
--- a/pkgs/development/python-modules/npyscreen/default.nix
+++ b/pkgs/development/python-modules/npyscreen/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "npyscreen";
@@ -6,8 +10,8 @@ buildPythonPackage rec {
   format = "setuptools";
 
   src = fetchPypi {
-   inherit pname version;
-   sha256 = "0vhjwn0dan3zmffvh80dxb4x67jysvvf1imp6pk4dsfslpwy0bk2";
+    inherit pname version;
+    sha256 = "0vhjwn0dan3zmffvh80dxb4x67jysvvf1imp6pk4dsfslpwy0bk2";
   };
 
   # Tests are outdated
diff --git a/pkgs/development/python-modules/nsapi/default.nix b/pkgs/development/python-modules/nsapi/default.nix
index 4e3a7bc5bf3c5..63bd70151c894 100644
--- a/pkgs/development/python-modules/nsapi/default.nix
+++ b/pkgs/development/python-modules/nsapi/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, future
-, pythonOlder
-, pytz
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  future,
+  pythonOlder,
+  pytz,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/nsz/default.nix b/pkgs/development/python-modules/nsz/default.nix
index 7e8c3b4cdf8d8..64fb82e1ea069 100644
--- a/pkgs/development/python-modules/nsz/default.nix
+++ b/pkgs/development/python-modules/nsz/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pycryptodome
-, pythonOlder
-, enlighten
-, zstandard
-, withGUI ? true
-, kivy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pycryptodome,
+  pythonOlder,
+  enlighten,
+  zstandard,
+  withGUI ? true,
+  kivy,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/ntc-templates/default.nix b/pkgs/development/python-modules/ntc-templates/default.nix
index 04b2c8c17f1ad..478a401501806 100644
--- a/pkgs/development/python-modules/ntc-templates/default.nix
+++ b/pkgs/development/python-modules/ntc-templates/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, poetry-core
-, textfsm
-, invoke
-, pytestCheckHook
-, ruamel-yaml
-, toml
-, yamllint
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  poetry-core,
+  textfsm,
+  invoke,
+  pytestCheckHook,
+  ruamel-yaml,
+  toml,
+  yamllint,
 }:
 
 buildPythonPackage rec {
   pname = "ntc-templates";
-  version = "4.4.0";
+  version = "5.1.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,16 +23,12 @@ buildPythonPackage rec {
     owner = "networktocode";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-8Lzh6ku2TUQFatqbOb5JIc/WkRPegx/gNnT53DErMuk=";
+    hash = "sha256-SnmI1/lB1p/zldgn9jIid4yJ5+ubr5mh/IAqXY/1Wbc=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    textfsm
-  ];
+  propagatedBuildInputs = [ textfsm ];
 
   nativeCheckInputs = [
     invoke
diff --git a/pkgs/development/python-modules/ntplib/default.nix b/pkgs/development/python-modules/ntplib/default.nix
index 8c937e36f4141..9c388e0437d38 100644
--- a/pkgs/development/python-modules/ntplib/default.nix
+++ b/pkgs/development/python-modules/ntplib/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -21,5 +22,4 @@ buildPythonPackage rec {
     homepage = "http://code.google.com/p/ntplib/";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/nuheat/default.nix b/pkgs/development/python-modules/nuheat/default.nix
index 97607ceab3dcf..b05f151f797ad 100644
--- a/pkgs/development/python-modules/nuheat/default.nix
+++ b/pkgs/development/python-modules/nuheat/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, parameterized
-, pytestCheckHook
-, pythonOlder
-, requests
-, responses
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  parameterized,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-EsPuwILfKc1Bpvu0Qos7yooC3dBaqf46lWhiSZdu3sc=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     mock
@@ -34,9 +33,7 @@ buildPythonPackage rec {
     responses
   ];
 
-  pythonImportsCheck = [
-    "nuheat"
-  ];
+  pythonImportsCheck = [ "nuheat" ];
 
   meta = with lib; {
     description = "Library to interact with NuHeat Signature and Mapei Mapeheat radiant floor thermostats";
diff --git a/pkgs/development/python-modules/nuitka/default.nix b/pkgs/development/python-modules/nuitka/default.nix
index 936084c98399f..e4613db87f7f6 100644
--- a/pkgs/development/python-modules/nuitka/default.nix
+++ b/pkgs/development/python-modules/nuitka/default.nix
@@ -1,32 +1,36 @@
-{ lib
-, buildPythonPackage
-, ccache
-, fetchFromGitHub
-, isPyPy
-, ordered-set
-, python3
-, setuptools
-, zstandard
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  ccache,
+  fetchFromGitHub,
+  isPyPy,
+  ordered-set,
+  python3,
+  setuptools,
+  zstandard,
+  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "nuitka";
-  version = "2.1.4";
+  version = "2.2.3";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Nuitka";
     repo = "Nuitka";
     rev = version;
-    hash = "sha256-bV5zTYwhR/3dTM1Ij+aC6TbcPODZ5buwQi7xN8axZi0=";
+    hash = "sha256-nKdCMgA92v9VsSgfktXDbSh3DyKsGlcTjpn0Y7u4rxU=";
   };
 
   # default lto off for darwin
   patches = [ ./darwin-lto.patch ];
 
-  build-system = [ setuptools wheel ];
-  nativeCheckInputs = [ ccache  ];
+  build-system = [
+    setuptools
+    wheel
+  ];
+  nativeCheckInputs = [ ccache ];
 
   dependencies = [
     ordered-set
@@ -51,5 +55,4 @@ buildPythonPackage rec {
     license = licenses.asl20;
     homepage = "https://nuitka.net/";
   };
-
 }
diff --git a/pkgs/development/python-modules/nulltype/default.nix b/pkgs/development/python-modules/nulltype/default.nix
index f04f9df780dca..0d735b695eaf6 100644
--- a/pkgs/development/python-modules/nulltype/default.nix
+++ b/pkgs/development/python-modules/nulltype/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -15,13 +16,9 @@ buildPythonPackage rec {
     sha256 = "0wpjbsmm0c9ifg9y6cnfz49qq9pa5f99nnqp6wdlv42ymfr3rak4";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "nulltype"
-  ];
+  pythonImportsCheck = [ "nulltype" ];
 
   meta = with lib; {
     description = "Python library to handle Null values and sentinels like (but not) None, False and True";
diff --git a/pkgs/development/python-modules/num2words/default.nix b/pkgs/development/python-modules/num2words/default.nix
index 0a492b32f310a..0cda8c4cf0835 100644
--- a/pkgs/development/python-modules/num2words/default.nix
+++ b/pkgs/development/python-modules/num2words/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
-, docopt
-, delegator-py
-, pytest
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+  docopt,
+  delegator-py,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ docopt ];
 
-  nativeCheckInputs = [ delegator-py pytest ];
+  nativeCheckInputs = [
+    delegator-py
+    pytest
+  ];
 
   checkPhase = ''
     pytest -k 'not cli_with_lang'
@@ -31,7 +35,6 @@ buildPythonPackage rec {
     license = licenses.lgpl21;
     maintainers = with maintainers; [ jonringer ];
 
-    longDescription =
-    "num2words is a library that converts numbers like 42 to words like forty-two. It supports multiple languages (see the list below for full list of languages) and can even generate ordinal numbers like forty-second";
+    longDescription = "num2words is a library that converts numbers like 42 to words like forty-two. It supports multiple languages (see the list below for full list of languages) and can even generate ordinal numbers like forty-second";
   };
 }
diff --git a/pkgs/development/python-modules/numba-scipy/default.nix b/pkgs/development/python-modules/numba-scipy/default.nix
index 22e3db22f3023..c31f77f8517e4 100644
--- a/pkgs/development/python-modules/numba-scipy/default.nix
+++ b/pkgs/development/python-modules/numba-scipy/default.nix
@@ -1,12 +1,12 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, scipy
-, numba
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  scipy,
+  numba,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,16 +28,13 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytestCheckHook
-    pythonRelaxDepsHook
   ];
   pythonRelaxDeps = [
     "scipy"
     "numba"
   ];
 
-  pythonImportsCheck = [
-    "numba_scipy"
-  ];
+  pythonImportsCheck = [ "numba_scipy" ];
 
   meta = with lib; {
     broken = stdenv.isDarwin;
diff --git a/pkgs/development/python-modules/numba/default.nix b/pkgs/development/python-modules/numba/default.nix
index bc199e2c6edc7..4c79076be77ff 100644
--- a/pkgs/development/python-modules/numba/default.nix
+++ b/pkgs/development/python-modules/numba/default.nix
@@ -1,38 +1,39 @@
-{ lib
-, stdenv
-, pythonAtLeast
-, pythonOlder
-, fetchFromGitHub
-, python
-, buildPythonPackage
-, setuptools
-, numpy
-, llvmlite
-, libcxx
-, importlib-metadata
-, substituteAll
-, runCommand
-, symlinkJoin
-, writers
-, numba
-
-, config
-
-# CUDA-only dependencies:
-, addDriverRunpath
-, autoAddDriverRunpath
-, cudaPackages
-
-# CUDA flags:
-, cudaSupport ? config.cudaSupport
+{
+  lib,
+  stdenv,
+  pythonAtLeast,
+  pythonOlder,
+  fetchFromGitHub,
+  python,
+  buildPythonPackage,
+  setuptools,
+  numpy,
+  numpy_2,
+  llvmlite,
+  libcxx,
+  importlib-metadata,
+  substituteAll,
+  runCommand,
+  symlinkJoin,
+  writers,
+  numba,
+
+  config,
+
+  # CUDA-only dependencies:
+  addDriverRunpath,
+  autoAddDriverRunpath,
+  cudaPackages,
+
+  # CUDA flags:
+  cudaSupport ? config.cudaSupport,
 }:
 
 let
   cudatoolkit = cudaPackages.cuda_nvcc;
-in buildPythonPackage rec {
-  # Using an untagged version, with numpy 1.25 support, when it's released
-  # also drop the versioneer patch in postPatch
-  version = "0.59.1";
+in
+buildPythonPackage rec {
+  version = "0.60.0";
   pname = "numba";
   pyproject = true;
 
@@ -54,7 +55,7 @@ in buildPythonPackage rec {
     # use `forceFetchGit = true;`.` If in the future we'll observe the hash
     # changes too often, we can always use forceFetchGit, and inject the
     # relevant strings ourselves, using `sed` commands, in extraPostFetch.
-    hash = "sha256-4udpgLLHbHNtxPiYVkj+gxAjTWV3ClZOv98Y313/qbc=";
+    hash = "sha256-hUL281wHLA7wo8umzBNhiGJikyIF2loCzjLECuC+pO0=";
   };
 
   postPatch = ''
@@ -66,24 +67,23 @@ in buildPythonPackage rec {
 
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1";
 
-  nativeBuildInputs = [
-    numpy
-  ] ++ lib.optionals cudaSupport [
+  build-system = [
+    setuptools
+    numpy_2
+  ];
+
+  nativeBuildInputs = lib.optionals cudaSupport [
     autoAddDriverRunpath
     cudaPackages.cuda_nvcc
   ];
 
-  buildInputs = lib.optionals cudaSupport [
-    cudaPackages.cuda_cudart
-  ];
+  buildInputs = lib.optionals cudaSupport [ cudaPackages.cuda_cudart ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     numpy
     llvmlite
     setuptools
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ importlib-metadata ];
 
   patches = lib.optionals cudaSupport [
     (substituteAll {
@@ -107,9 +107,7 @@ in buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "numba"
-  ];
+  pythonImportsCheck = [ "numba" ];
 
   passthru.testers.cuda-detect =
     writers.writePython3Bin "numba-cuda-detect"
@@ -124,17 +122,22 @@ in buildPythonPackage rec {
     # sandbox manually if you have the appropriate hardware; support will be detected
     # and the corresponding tests enabled automatically.
     # Also, the full suite currently does not complete on anything but x86_64-linux.
-    fullSuite = runCommand "${pname}-test" {} ''
+    fullSuite = runCommand "${pname}-test" { } ''
       pushd $(mktemp -d)
       # pip and python in $PATH is needed for the test suite to pass fully
-      PATH=${python.withPackages (p: [ p.numba p.pip ])}/bin:$PATH
+      PATH=${
+        python.withPackages (p: [
+          p.numba
+          p.pip
+        ])
+      }/bin:$PATH
       HOME=$PWD python -m numba.runtests -m $NIX_BUILD_CORES
       popd
       touch $out # stop Nix from complaining no output was generated and failing the build
     '';
   };
 
-  meta =  with lib; {
+  meta = with lib; {
     description = "Compiling Python code using LLVM";
     homepage = "https://numba.pydata.org/";
     license = licenses.bsd2;
diff --git a/pkgs/development/python-modules/numcodecs/default.nix b/pkgs/development/python-modules/numcodecs/default.nix
index a0a452a0ecc22..23f49c77ad438 100644
--- a/pkgs/development/python-modules/numcodecs/default.nix
+++ b/pkgs/development/python-modules/numcodecs/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, setuptools
-, setuptools-scm
-, cython
-, numpy
-, msgpack
-, py-cpuinfo
-, pytestCheckHook
-, python
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchpatch,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  cython,
+  numpy,
+  msgpack,
+  py-cpuinfo,
+  pytestCheckHook,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -42,27 +43,27 @@ buildPythonPackage rec {
     py-cpuinfo
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   passthru.optional-dependencies = {
     msgpack = [ msgpack ];
     # zfpy = [ zfpy ];
   };
 
-  preBuild = if (stdenv.hostPlatform.isx86 && !stdenv.hostPlatform.avx2Support) then ''
-    export DISABLE_NUMCODECS_AVX2=
-  '' else null;
+  preBuild =
+    if (stdenv.hostPlatform.isx86 && !stdenv.hostPlatform.avx2Support) then
+      ''
+        export DISABLE_NUMCODECS_AVX2=
+      ''
+    else
+      null;
 
   nativeCheckInputs = [
     pytestCheckHook
     msgpack
   ];
 
-  pytestFlagsArray = [
-    "$out/${python.sitePackages}/numcodecs"
-  ];
+  pytestFlagsArray = [ "$out/${python.sitePackages}/numcodecs" ];
 
   disabledTests = [
     "test_backwards_compatibility"
@@ -76,7 +77,7 @@ buildPythonPackage rec {
     "test_non_numpy_inputs"
   ];
 
-  meta = with lib;{
+  meta = with lib; {
     homepage = "https://github.com/zarr-developers/numcodecs";
     license = licenses.mit;
     description = "Buffer compression and transformation codecs for use in data storage and communication applications";
diff --git a/pkgs/development/python-modules/numdifftools/default.nix b/pkgs/development/python-modules/numdifftools/default.nix
index fced2ae4ceada..dc2831a524725 100644
--- a/pkgs/development/python-modules/numdifftools/default.nix
+++ b/pkgs/development/python-modules/numdifftools/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, pytestCheckHook
-, pythonOlder
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
       --replace "statsmodels>=0.6" ""
   '';
 
-  pythonImportsCheck = [
-    "numdifftools"
-  ];
+  pythonImportsCheck = [ "numdifftools" ];
 
   meta = with lib; {
     description = "Library to solve automatic numerical differentiation problems in one or more variables";
diff --git a/pkgs/development/python-modules/numericalunits/default.nix b/pkgs/development/python-modules/numericalunits/default.nix
index cc04bea1e3a14..922e26d3057be 100644
--- a/pkgs/development/python-modules/numericalunits/default.nix
+++ b/pkgs/development/python-modules/numericalunits/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "http://pypi.python.org/pypi/numericalunits";
-    description = "A package that lets you define quantities with unit";
+    description = "Package that lets you define quantities with unit";
     license = licenses.mit;
     maintainers = [ ];
   };
diff --git a/pkgs/development/python-modules/numexpr/default.nix b/pkgs/development/python-modules/numexpr/default.nix
index ca8e329771fe2..0368e3217968c 100644
--- a/pkgs/development/python-modules/numexpr/default.nix
+++ b/pkgs/development/python-modules/numexpr/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, pytestCheckHook
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  pytestCheckHook,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -32,18 +33,14 @@ buildPythonPackage rec {
     numpy
   ];
 
-  dependencies = [
-    numpy
-  ];
+  dependencies = [ numpy ];
 
   preBuild = ''
     # Remove existing site.cfg, use the one we built for numpy
     ln -s ${numpy.cfg} site.cfg
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     pushd $out
@@ -60,9 +57,7 @@ buildPythonPackage rec {
     "test_omp_num_threads_empty_string"
   ];
 
-  pythonImportsCheck = [
-    "numexpr"
-  ];
+  pythonImportsCheck = [ "numexpr" ];
 
   meta = with lib; {
     description = "Fast numerical array expression evaluator for NumPy";
diff --git a/pkgs/development/python-modules/numpy-stl/default.nix b/pkgs/development/python-modules/numpy-stl/default.nix
index 056d893ba75f1..100adcfc424f7 100644
--- a/pkgs/development/python-modules/numpy-stl/default.nix
+++ b/pkgs/development/python-modules/numpy-stl/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, cython
-, enum34
-, fetchPypi
-, nine
-, numpy
-, pytestCheckHook
-, python-utils
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  enum34,
+  fetchPypi,
+  nine,
+  numpy,
+  pytestCheckHook,
+  python-utils,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     python-utils
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "stl" ];
 
diff --git a/pkgs/development/python-modules/numpy/default.nix b/pkgs/development/python-modules/numpy/1.nix
index c2d38cc31b248..f20bd095cf97f 100644
--- a/pkgs/development/python-modules/numpy/default.nix
+++ b/pkgs/development/python-modules/numpy/1.nix
@@ -1,30 +1,34 @@
-{ lib
-, stdenv
-, fetchPypi
-, python
-, pythonAtLeast
-, pythonOlder
-, buildPythonPackage
-, writeTextFile
-
-# build-system
-, cython
-, gfortran
-, meson-python
-, mesonEmulatorHook
-, pkg-config
-, xcbuild
-
-# native dependencies
-, blas
-, lapack
-
-# tests
-, hypothesis
-, pytest-xdist
-, pytestCheckHook
-, setuptools
-, typing-extensions
+{
+  lib,
+  stdenv,
+  fetchPypi,
+  python,
+  pythonAtLeast,
+  pythonOlder,
+  buildPythonPackage,
+  writeTextFile,
+
+  # build-system
+  cython,
+  gfortran,
+  meson-python,
+  mesonEmulatorHook,
+  pkg-config,
+  xcbuild,
+
+  # native dependencies
+  blas,
+  lapack,
+
+  # Reverse dependency
+  sage,
+
+  # tests
+  hypothesis,
+  pytest-xdist,
+  pytestCheckHook,
+  setuptools,
+  typing-extensions,
 }:
 
 assert (!blas.isILP64) && (!lapack.isILP64);
@@ -32,7 +36,7 @@ assert (!blas.isILP64) && (!lapack.isILP64);
 let
   cfg = writeTextFile {
     name = "site.cfg";
-    text = lib.generators.toINI {} {
+    text = lib.generators.toINI { } {
       ${blas.implementation} = {
         include_dirs = "${lib.getDev blas}/include:${lib.getDev lapack}/include";
         library_dirs = "${blas}/lib:${lapack}/lib";
@@ -51,7 +55,8 @@ let
       };
     };
   };
-in buildPythonPackage rec {
+in
+buildPythonPackage rec {
   pname = "numpy";
   version = "1.26.4";
   pyproject = true;
@@ -63,18 +68,17 @@ in buildPythonPackage rec {
     hash = "sha256-KgKrqe0S5KxOs+qUIcQgMBoMZGDZgw10qd+H76SRIBA=";
   };
 
-  patches = [
-    # Disable `numpy/core/tests/test_umath.py::TestComplexFunctions::test_loss_of_precision[complex256]`
-    # on x86_64-darwin because it fails under Rosetta 2 due to issues with trig functions and
-    # 80-bit long double complex numbers.
-    ./disable-failing-long-double-test-Rosetta-2.patch
-  ]
-  # We patch cpython/distutils to fix https://bugs.python.org/issue1222585
-  # Patching of numpy.distutils is needed to prevent it from undoing the
-  # patch to distutils.
-  ++ lib.optionals python.hasDistutilsCxxPatch [
-    ./numpy-distutils-C++.patch
-  ];
+  patches =
+    [
+      # Disable `numpy/core/tests/test_umath.py::TestComplexFunctions::test_loss_of_precision[complex256]`
+      # on x86_64-darwin because it fails under Rosetta 2 due to issues with trig functions and
+      # 80-bit long double complex numbers.
+      ./disable-failing-long-double-test-Rosetta-2.patch
+    ]
+    # We patch cpython/distutils to fix https://bugs.python.org/issue1222585
+    # Patching of numpy.distutils is needed to prevent it from undoing the
+    # patch to distutils.
+    ++ lib.optionals python.hasDistutilsCxxPatch [ ./numpy-distutils-C++.patch ];
 
   postPatch = ''
     # fails with multiple errors because we are not using the pinned setuptools version
@@ -93,16 +97,15 @@ in buildPythonPackage rec {
       --replace-fail "meson-python>=0.15.0,<0.16.0" "meson-python"
   '';
 
-  nativeBuildInputs = [
-    cython
-    gfortran
-    meson-python
-    pkg-config
-  ] ++ lib.optionals (stdenv.isDarwin) [
-    xcbuild.xcrun
-  ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [
-    mesonEmulatorHook
-  ];
+  nativeBuildInputs =
+    [
+      cython
+      gfortran
+      meson-python
+      pkg-config
+    ]
+    ++ lib.optionals (stdenv.isDarwin) [ xcbuild.xcrun ]
+    ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ mesonEmulatorHook ];
 
   buildInputs = [
     blas
@@ -145,38 +148,46 @@ in buildPythonPackage rec {
 
   # https://github.com/numpy/numpy/blob/a277f6210739c11028f281b8495faf7da298dbef/numpy/_pytesttester.py#L180
   pytestFlagsArray = [
-    "-m" "not\\ slow" # fast test suite
+    "-m"
+    "not\\ slow" # fast test suite
   ];
 
   # https://github.com/numpy/numpy/issues/24548
-  disabledTests = lib.optionals stdenv.isi686 [
-    "test_new_policy" # AssertionError: assert False
-    "test_identityless_reduction_huge_array" # ValueError: Maximum allowed dimension exceeded
-    "test_float_remainder_overflow" # AssertionError: FloatingPointError not raised by divmod
-    "test_int" # AssertionError: selectedintkind(19): expected 16 but got -1
-  ] ++ lib.optionals stdenv.isAarch32 [
-    "test_impossible_feature_enable" # AssertionError: Failed to generate error
-    "test_features" # AssertionError: Failure Detection
-    "test_new_policy" # AssertionError: assert False
-    "test_identityless_reduction_huge_array" # ValueError: Maximum allowed dimension exceeded
-    "test_unary_spurious_fpexception"#  AssertionError: Got warnings: [<warnings.WarningMessage object at 0xd1197430>]
-    "test_int" # AssertionError: selectedintkind(19): expected 16 but got -1
-    "test_real" # AssertionError: selectedrealkind(16): expected 10 but got -1
-    "test_quad_precision" # AssertionError: selectedrealkind(32): expected 16 but got -1
-    "test_big_arrays" # ValueError: array is too big; `arr.size * arr.dtype.itemsize` is larger tha...
-    "test_multinomial_pvals_float32" # Failed: DID NOT RAISE <class 'ValueError'>
-  ] ++ lib.optionals stdenv.isAarch64 [
-    "test_big_arrays" # OOM on a 16G machine
-  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
-    # can fail on virtualized machines confused over their cpu identity
-    "test_dispatcher"
-  ];
+  disabledTests =
+    lib.optionals stdenv.isi686 [
+      "test_new_policy" # AssertionError: assert False
+      "test_identityless_reduction_huge_array" # ValueError: Maximum allowed dimension exceeded
+      "test_float_remainder_overflow" # AssertionError: FloatingPointError not raised by divmod
+      "test_int" # AssertionError: selectedintkind(19): expected 16 but got -1
+    ]
+    ++ lib.optionals stdenv.isAarch32 [
+      "test_impossible_feature_enable" # AssertionError: Failed to generate error
+      "test_features" # AssertionError: Failure Detection
+      "test_new_policy" # AssertionError: assert False
+      "test_identityless_reduction_huge_array" # ValueError: Maximum allowed dimension exceeded
+      "test_unary_spurious_fpexception" # AssertionError: Got warnings: [<warnings.WarningMessage object at 0xd1197430>]
+      "test_int" # AssertionError: selectedintkind(19): expected 16 but got -1
+      "test_real" # AssertionError: selectedrealkind(16): expected 10 but got -1
+      "test_quad_precision" # AssertionError: selectedrealkind(32): expected 16 but got -1
+      "test_big_arrays" # ValueError: array is too big; `arr.size * arr.dtype.itemsize` is larger tha...
+      "test_multinomial_pvals_float32" # Failed: DID NOT RAISE <class 'ValueError'>
+    ]
+    ++ lib.optionals stdenv.isAarch64 [
+      "test_big_arrays" # OOM on a 16G machine
+    ]
+    ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
+      # can fail on virtualized machines confused over their cpu identity
+      "test_dispatcher"
+    ];
 
   passthru = {
     # just for backwards compatibility
     blas = blas.provider;
     blasImplementation = blas.implementation;
     inherit cfg;
+    tests = {
+      inherit sage;
+    };
   };
 
   # Disable test
diff --git a/pkgs/development/python-modules/numpy/2.nix b/pkgs/development/python-modules/numpy/2.nix
new file mode 100644
index 0000000000000..6b52b7acec733
--- /dev/null
+++ b/pkgs/development/python-modules/numpy/2.nix
@@ -0,0 +1,180 @@
+{
+  lib,
+  stdenv,
+  fetchPypi,
+  python,
+  pythonAtLeast,
+  pythonOlder,
+  buildPythonPackage,
+  writeTextFile,
+
+  # build-system
+  cython,
+  gfortran,
+  meson-python,
+  mesonEmulatorHook,
+  pkg-config,
+  xcbuild,
+
+  # native dependencies
+  blas,
+  lapack,
+
+  # Reverse dependency
+  sage,
+
+  # tests
+  hypothesis,
+  pytest-xdist,
+  pytestCheckHook,
+  setuptools,
+  typing-extensions,
+}:
+
+assert (!blas.isILP64) && (!lapack.isILP64);
+
+let
+  cfg = writeTextFile {
+    name = "site.cfg";
+    text = lib.generators.toINI { } {
+      ${blas.implementation} = {
+        include_dirs = "${lib.getDev blas}/include:${lib.getDev lapack}/include";
+        library_dirs = "${blas}/lib:${lapack}/lib";
+        runtime_library_dirs = "${blas}/lib:${lapack}/lib";
+        libraries = "lapack,lapacke,blas,cblas";
+      };
+      lapack = {
+        include_dirs = "${lib.getDev lapack}/include";
+        library_dirs = "${lapack}/lib";
+        runtime_library_dirs = "${lapack}/lib";
+      };
+      blas = {
+        include_dirs = "${lib.getDev blas}/include";
+        library_dirs = "${blas}/lib";
+        runtime_library_dirs = "${blas}/lib";
+      };
+    };
+  };
+in
+buildPythonPackage rec {
+  pname = "numpy";
+  version = "2.0.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchPypi {
+    inherit pname version;
+    extension = "tar.gz";
+    hash = "sha256-z10cnmg3+K+fkra9PobVE83BH2D9YhhcxJ7H0aujSGQ=";
+  };
+
+  patches = lib.optionals python.hasDistutilsCxxPatch [
+    # We patch cpython/distutils to fix https://bugs.python.org/issue1222585
+    # Patching of numpy.distutils is needed to prevent it from undoing the
+    # patch to distutils.
+    ./numpy-distutils-C++.patch
+  ];
+
+  postPatch = ''
+    # remove needless reference to full Python path stored in built wheel
+    substituteInPlace numpy/meson.build \
+      --replace-fail 'py.full_path()' "'python'"
+  '';
+
+  build-system =
+    [
+      cython
+      gfortran
+      meson-python
+      pkg-config
+    ]
+    ++ lib.optionals stdenv.isDarwin [ xcbuild.xcrun ]
+    ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ mesonEmulatorHook ];
+
+  # we default openblas to build with 64 threads
+  # if a machine has more than 64 threads, it will segfault
+  # see https://github.com/OpenMathLib/OpenBLAS/issues/2993
+  preConfigure = ''
+    sed -i 's/-faltivec//' numpy/distutils/system_info.py
+    export OMP_NUM_THREADS=$((NIX_BUILD_CORES > 64 ? 64 : NIX_BUILD_CORES))
+  '';
+
+  # HACK: copy mesonEmulatorHook's flags to the variable used by meson-python
+  postConfigure = ''
+    mesonFlags="$mesonFlags ''${mesonFlagsArray[@]}"
+  '';
+
+  buildInputs = [
+    blas
+    lapack
+  ];
+
+  preBuild = ''
+    ln -s ${cfg} site.cfg
+  '';
+
+  enableParallelBuilding = true;
+
+  nativeCheckInputs = [
+    hypothesis
+    pytestCheckHook
+    pytest-xdist
+    setuptools
+    typing-extensions
+  ];
+
+  preCheck = ''
+    pushd $out
+  '';
+
+  postCheck = ''
+    popd
+  '';
+
+  # https://github.com/numpy/numpy/blob/a277f6210739c11028f281b8495faf7da298dbef/numpy/_pytesttester.py#L180
+  pytestFlagsArray = [
+    "-m"
+    "not\\ slow" # fast test suite
+  ];
+
+  disabledTests =
+    lib.optionals (pythonAtLeast "3.13") [
+      # https://github.com/numpy/numpy/issues/26713
+      "test_iter_refcount"
+    ]
+    ++ lib.optionals stdenv.isAarch32 [
+      # https://github.com/numpy/numpy/issues/24548
+      "test_impossible_feature_enable" # AssertionError: Failed to generate error
+      "test_features" # AssertionError: Failure Detection
+      "test_new_policy" # AssertionError: assert False
+      "test_identityless_reduction_huge_array" # ValueError: Maximum allowed dimension exceeded
+      "test_unary_spurious_fpexception" # AssertionError: Got warnings: [<warnings.WarningMessage object at 0xd1197430>]
+      "test_int" # AssertionError: selectedintkind(19): expected 16 but got -1
+      "test_real" # AssertionError: selectedrealkind(16): expected 10 but got -1
+      "test_quad_precision" # AssertionError: selectedrealkind(32): expected 16 but got -1
+      "test_big_arrays" # ValueError: array is too big; `arr.size * arr.dtype.itemsize` is larger tha...
+      "test_multinomial_pvals_float32" # Failed: DID NOT RAISE <class 'ValueError'>
+    ]
+    ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
+      # AssertionError: (np.int64(0), np.longdouble('9.9999999999999994515e-21'), np.longdouble('3.9696755572509052902e+20'), 'arctanh')
+      "test_loss_of_precision"
+    ];
+
+  passthru = {
+    # just for backwards compatibility
+    blas = blas.provider;
+    blasImplementation = blas.implementation;
+    inherit cfg;
+    tests = {
+      inherit sage;
+    };
+  };
+
+  meta = {
+    changelog = "https://github.com/numpy/numpy/releases/tag/v${version}";
+    description = "Scientific tools for Python";
+    homepage = "https://numpy.org/";
+    license = lib.licenses.bsd3;
+  };
+}
diff --git a/pkgs/development/python-modules/numpydoc/default.nix b/pkgs/development/python-modules/numpydoc/default.nix
index 01ee7116febda..bbf4482452d37 100644
--- a/pkgs/development/python-modules/numpydoc/default.nix
+++ b/pkgs/development/python-modules/numpydoc/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, setuptools
-, jinja2
-, sphinx
-, tabulate
-, pytestCheckHook
-, matplotlib
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  setuptools,
+  jinja2,
+  sphinx,
+  tabulate,
+  pytestCheckHook,
+  matplotlib,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
       --replace "--cov=numpydoc" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     jinja2
@@ -51,9 +50,7 @@ buildPythonPackage rec {
     "test_reference"
   ];
 
-  pythonImportsCheck = [
-    "numpydoc"
-  ];
+  pythonImportsCheck = [ "numpydoc" ];
 
   meta = {
     changelog = "https://github.com/numpy/numpydoc/releases/tag/v${version}";
@@ -61,5 +58,5 @@ buildPythonPackage rec {
     mainProgram = "validate-docstrings";
     homepage = "https://github.com/numpy/numpydoc";
     license = lib.licenses.free;
-   };
+  };
 }
diff --git a/pkgs/development/python-modules/numpyro/default.nix b/pkgs/development/python-modules/numpyro/default.nix
index a38b43b2d8f96..b26e61b945ce3 100644
--- a/pkgs/development/python-modules/numpyro/default.nix
+++ b/pkgs/development/python-modules/numpyro/default.nix
@@ -1,31 +1,35 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, jax
-, jaxlib
-, multipledispatch
-, numpy
-, tqdm
-, funsor
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  jax,
+  jaxlib,
+  multipledispatch,
+  numpy,
+  tqdm,
+  funsor,
+  pytestCheckHook,
 # TODO: uncomment when tensorflow-probability gets fixed.
 # , tensorflow-probability
 }:
 
 buildPythonPackage rec {
   pname = "numpyro";
-  version = "0.14.0";
-  format = "setuptools";
+  version = "0.15.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit version pname;
-    hash = "sha256-PkPqqchDRz166TnBg+ENsU4ju0KwrR3pCuFaRRF23kg=";
+    hash = "sha256-4WyfR8wx4qollYSgtslEMSCB0zypJAYCJjKtWEsOYA0=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     jax
     jaxlib
     multipledispatch
@@ -40,9 +44,7 @@ buildPythonPackage rec {
     # tensorflow-probability
   ];
 
-  pythonImportsCheck = [
-    "numpyro"
-  ];
+  pythonImportsCheck = [ "numpyro" ];
 
   disabledTests = [
     # AssertionError due to tolerance issues
@@ -65,9 +67,7 @@ buildPythonPackage rec {
   ];
 
   # TODO: remove when tensorflow-probability gets fixed.
-  disabledTestPaths = [
-    "test/test_distributions.py"
-  ];
+  disabledTestPaths = [ "test/test_distributions.py" ];
 
   meta = with lib; {
     description = "Library for probabilistic programming with NumPy";
diff --git a/pkgs/development/python-modules/nunavut/default.nix b/pkgs/development/python-modules/nunavut/default.nix
index a0b82d76ff2a8..c6650b4324e47 100644
--- a/pkgs/development/python-modules/nunavut/default.nix
+++ b/pkgs/development/python-modules/nunavut/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, importlib-resources
-, pydsdl
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  importlib-resources,
+  pydsdl,
+  pyyaml,
 }:
 
- buildPythonPackage rec {
+buildPythonPackage rec {
   pname = "nunavut";
   version = "2.3.1";
   format = "setuptools";
@@ -39,12 +40,10 @@
   # https://github.com/UAVCAN/nunavut/issues/182
   doCheck = false;
 
-  pythonImportsCheck = [
-    "nunavut"
-  ];
+  pythonImportsCheck = [ "nunavut" ];
 
   meta = with lib; {
-    description = "A UAVCAN DSDL template engine";
+    description = "UAVCAN DSDL template engine";
     mainProgram = "nnvg";
     longDescription = ''
       It exposes a pydsdl abstract syntax tree to Jinja2 templates allowing
@@ -53,6 +52,9 @@
     homepage = "https://nunavut.readthedocs.io/";
     changelog = "https://github.com/OpenCyphal/nunavut/releases/tag/${version}";
     maintainers = with maintainers; [ wucke13 ];
-    license = with licenses; [ bsd3 mit ];
+    license = with licenses; [
+      bsd3
+      mit
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/nutils/default.nix b/pkgs/development/python-modules/nutils/default.nix
index 3447f4deddf3a..86185683c4ce7 100644
--- a/pkgs/development/python-modules/nutils/default.nix
+++ b/pkgs/development/python-modules/nutils/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, treelog
-, stringly
-, flit-core
-, bottombar
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  treelog,
+  stringly,
+  flit-core,
+  bottombar,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "nutils";
-  version = "8.6";
+  version = "8.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -22,12 +23,10 @@ buildPythonPackage rec {
     owner = "evalf";
     repo = "nutils";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vfdb7+jcJ5EuWDoZyRExWEPEWt+lgbzmAL3QhguLtHE=";
+    hash = "sha256-wxouS0FXrdIhm6nTVBuzkwHceJnZ7f7k8nMFxFsZchE=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     numpy
@@ -36,13 +35,9 @@ buildPythonPackage rec {
     bottombar
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "nutils"
-  ];
+  pythonImportsCheck = [ "nutils" ];
 
   disabledTestPaths = [
     # AttributeError: type object 'setup' has no attribute '__code__'
diff --git a/pkgs/development/python-modules/nvchecker/default.nix b/pkgs/development/python-modules/nvchecker/default.nix
index a9dde5d6626ad..d0c88698a6c04 100644
--- a/pkgs/development/python-modules/nvchecker/default.nix
+++ b/pkgs/development/python-modules/nvchecker/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, platformdirs
-, buildPythonPackage
-, docutils
-, fetchFromGitHub
-, flaky
-, installShellFiles
-, pycurl
-, pytest-asyncio
-, pytest-httpbin
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, structlog
-, tomli
-, tornado
-, awesomeversion
-, packaging
-, lxml
+{
+  lib,
+  platformdirs,
+  buildPythonPackage,
+  docutils,
+  fetchFromGitHub,
+  flaky,
+  installShellFiles,
+  pycurl,
+  pytest-asyncio,
+  pytest-httpbin,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  structlog,
+  tomli,
+  tornado,
+  awesomeversion,
+  packaging,
+  lxml,
 }:
 
 buildPythonPackage rec {
@@ -44,9 +45,7 @@ buildPythonPackage rec {
     platformdirs
     tornado
     pycurl
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   __darwinAllowLocalNetworking = true;
 
@@ -66,13 +65,9 @@ buildPythonPackage rec {
     installManPage docs/_build/man/nvchecker.1
   '';
 
-  pythonImportsCheck = [
-    "nvchecker"
-  ];
+  pythonImportsCheck = [ "nvchecker" ];
 
-  pytestFlagsArray = [
-    "-m 'not needs_net'"
-  ];
+  pytestFlagsArray = [ "-m 'not needs_net'" ];
 
   optional-dependencies = {
     # vercmp = [ pyalpm ];
diff --git a/pkgs/development/python-modules/nvdlib/default.nix b/pkgs/development/python-modules/nvdlib/default.nix
index e79b8c0513cd6..1d3a7b4a3e3c3 100644
--- a/pkgs/development/python-modules/nvdlib/default.nix
+++ b/pkgs/development/python-modules/nvdlib/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, responses
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  responses,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "nvdlib";
-  version = "0.7.6";
+  version = "0.7.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,25 +20,19 @@ buildPythonPackage rec {
     owner = "Vehemont";
     repo = "nvdlib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-p2xx+QC0P30FR+nMiFW/PoINbcTM49ufADW9B9u2WxI=";
+    hash = "sha256-/UmBNdch9yM6yCVcJbzsCx6om4XlqQa40X/fgEYgRuI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     pytestCheckHook
     responses
   ];
 
-  pythonImportsCheck = [
-    "nvdlib"
-  ];
+  pythonImportsCheck = [ "nvdlib" ];
 
   meta = with lib; {
     description = "Module to interact with the National Vulnerability CVE/CPE API";
diff --git a/pkgs/development/python-modules/nvidia-ml-py/default.nix b/pkgs/development/python-modules/nvidia-ml-py/default.nix
index b88947b15c70c..52e7c04ca060f 100644
--- a/pkgs/development/python-modules/nvidia-ml-py/default.nix
+++ b/pkgs/development/python-modules/nvidia-ml-py/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, substituteAll
-, addOpenGLRunpath
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  substituteAll,
+  addOpenGLRunpath,
 }:
 
 buildPythonPackage rec {
   pname = "nvidia-ml-py";
-  version = "12.550.52";
+  version = "12.555.43";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
     extension = "tar.gz";
-    hash = "sha256-3+3XFDNccuZaMshun12xzUlSbUTW2McoCdmWlY9zTAc=";
+    hash = "sha256-6efxLvHsI0uw3CLSvcdi/6+rOUvcRyoHpDd8lbv5Ov4=";
   };
 
   patches = [
diff --git a/pkgs/development/python-modules/nwdiag/default.nix b/pkgs/development/python-modules/nwdiag/default.nix
index 54bd6a1f9fea4..9f5365633104c 100644
--- a/pkgs/development/python-modules/nwdiag/default.nix
+++ b/pkgs/development/python-modules/nwdiag/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, blockdiag
-, fetchFromGitHub
-, buildPythonPackage
-, pynose
-, pytestCheckHook
-, setuptools
-, pythonOlder
+{
+  lib,
+  blockdiag,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pynose,
+  pytestCheckHook,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-uKrdkXpL5YBr953sRsHknYg+2/WwrZmyDf8BMA2+0tU=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    blockdiag
-  ];
+  dependencies = [ blockdiag ];
 
   nativeCheckInputs = [
     pynose
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "src/nwdiag/tests/"
-  ];
+  pytestFlagsArray = [ "src/nwdiag/tests/" ];
 
   disabledTests = [
     # AttributeError: 'TestRstDirectives' object has no attribute 'assertRegexpMatches'
@@ -45,9 +40,7 @@ buildPythonPackage rec {
     "noviewbox"
   ];
 
-  pythonImportsCheck = [
-    "nwdiag"
-  ];
+  pythonImportsCheck = [ "nwdiag" ];
 
   meta = with lib; {
     description = "Generate network-diagram image from spec-text file (similar to Graphviz)";
diff --git a/pkgs/development/python-modules/nxt-python/default.nix b/pkgs/development/python-modules/nxt-python/default.nix
index efbec58b936a8..e7d9de8e1c7a7 100644
--- a/pkgs/development/python-modules/nxt-python/default.nix
+++ b/pkgs/development/python-modules/nxt-python/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pybluez
-, pytestCheckHook
-, pythonOlder
-, pyusb
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pybluez,
+  pytestCheckHook,
+  pythonOlder,
+  pyusb,
 }:
 
 buildPythonPackage rec {
@@ -22,27 +23,17 @@ buildPythonPackage rec {
     hash = "sha256-v65KEP5DuJsZAifd1Rh46x9lSAgBZgyo+e8PKSDKnhw=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    pyusb
-  ];
+  dependencies = [ pyusb ];
 
   optional-dependencies = {
-    bluetooth = [
-      pybluez
-    ];
+    bluetooth = [ pybluez ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "nxt"
-  ];
+  pythonImportsCheck = [ "nxt" ];
 
   meta = with lib; {
     description = "Python driver/interface for Lego Mindstorms NXT robot";
diff --git a/pkgs/development/python-modules/oasatelematics/default.nix b/pkgs/development/python-modules/oasatelematics/default.nix
index c4d7ca1213872..5313b8a6fbd69 100644
--- a/pkgs/development/python-modules/oasatelematics/default.nix
+++ b/pkgs/development/python-modules/oasatelematics/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -20,16 +21,12 @@ buildPythonPackage rec {
     hash = "sha256-3O7XbNVj1S3ZwheklEhm0ivw16Tj7drML/xYC9383Kg=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "oasatelematics"
-  ];
+  pythonImportsCheck = [ "oasatelematics" ];
 
   meta = with lib; {
     description = "Python wrapper for the OASA Telematics API";
diff --git a/pkgs/development/python-modules/oath/default.nix b/pkgs/development/python-modules/oath/default.nix
index 525988d2dd651..3eb51d6866fea 100644
--- a/pkgs/development/python-modules/oath/default.nix
+++ b/pkgs/development/python-modules/oath/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -13,13 +14,9 @@ buildPythonPackage rec {
     inherit pname version;
     hash = "sha256-vWsg0g8sTj9TUj7pACEdynWu7KcvT1qf2NyswXX+HAs=";
   };
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "oath"
-  ];
+  pythonImportsCheck = [ "oath" ];
 
   meta = with lib; {
     description = "Python implementation of the three main OATH specifications: HOTP, TOTP and OCRA";
diff --git a/pkgs/development/python-modules/oauth/default.nix b/pkgs/development/python-modules/oauth/default.nix
index 434f40b17cd97..3510461dba3c8 100644
--- a/pkgs/development/python-modules/oauth/default.nix
+++ b/pkgs/development/python-modules/oauth/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -21,5 +22,4 @@ buildPythonPackage rec {
     description = "Library for OAuth version 1.0a";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/oauth2/default.nix b/pkgs/development/python-modules/oauth2/default.nix
index 981299a9ac05c..a45aa21abf37e 100644
--- a/pkgs/development/python-modules/oauth2/default.nix
+++ b/pkgs/development/python-modules/oauth2/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, httplib2
-, mock
-, coverage
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  httplib2,
+  mock,
+  coverage,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,10 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ httplib2 ];
-  buildInputs = [ mock coverage ];
+  buildInputs = [
+    mock
+    coverage
+  ];
 
   # ServerNotFoundError: Unable to find the server at oauth-sandbox.sevengoslings.net
   doCheck = false;
@@ -29,5 +33,4 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
   };
-
 }
diff --git a/pkgs/development/python-modules/oauth2client/default.nix b/pkgs/development/python-modules/oauth2client/default.nix
index a924fa81c7aed..c6fc4b6b290c9 100644
--- a/pkgs/development/python-modules/oauth2client/default.nix
+++ b/pkgs/development/python-modules/oauth2client/default.nix
@@ -1,5 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi
-, six, httplib2, pyasn1-modules, rsa }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  httplib2,
+  pyasn1-modules,
+  rsa,
+}:
 
 buildPythonPackage rec {
   pname = "oauth2client";
@@ -11,11 +18,16 @@ buildPythonPackage rec {
     sha256 = "d486741e451287f69568a4d26d70d9acd73a2bbfa275746c535b4209891cccc6";
   };
 
-  propagatedBuildInputs = [ six httplib2 pyasn1-modules rsa ];
+  propagatedBuildInputs = [
+    six
+    httplib2
+    pyasn1-modules
+    rsa
+  ];
   doCheck = false;
 
   meta = with lib; {
-    description = "A client library for OAuth 2.0";
+    description = "Client library for OAuth 2.0";
     homepage = "https://github.com/google/oauth2client/";
     license = licenses.bsd2;
   };
diff --git a/pkgs/development/python-modules/oauthenticator/default.nix b/pkgs/development/python-modules/oauthenticator/default.nix
index 1e5bd396cd8bb..1f4ff0ea627f7 100644
--- a/pkgs/development/python-modules/oauthenticator/default.nix
+++ b/pkgs/development/python-modules/oauthenticator/default.nix
@@ -1,28 +1,34 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, google-api-python-client
-, google-auth-oauthlib
-, jupyterhub
-, mwoauth
-, pyjwt
-, pytest-asyncio
-, pytestCheckHook
-, requests-mock
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  google-api-python-client,
+  google-auth-oauthlib,
+  jsonschema,
+  jupyterhub,
+  mwoauth,
+  pyjwt,
+  pytest-asyncio,
+  pytestCheckHook,
+  requests,
+  requests-mock,
+  ruamel-yaml,
+  setuptools,
+  tornado,
+  traitlets,
 }:
 
 buildPythonPackage rec {
   pname = "oauthenticator";
-  version = "16.3.0";
+  version = "16.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-QMddGJUfafXoBxMCjlx1lH45a4Bab3AP4j8Px7JxYaQ=";
+    hash = "sha256-gFhhOCcmorkrLxrup9fICh5ueCrc64fxfuZXTQG1tMk=";
   };
 
   postPatch = ''
@@ -30,13 +36,16 @@ buildPythonPackage rec {
       --replace-fail " --cov=oauthenticator" ""
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
+    jsonschema
     jupyterhub
     pyjwt
+    requests
+    ruamel-yaml
+    tornado
+    traitlets
   ];
 
   passthru.optional-dependencies = {
@@ -44,9 +53,7 @@ buildPythonPackage rec {
       google-api-python-client
       google-auth-oauthlib
     ];
-    mediawiki = [
-      mwoauth
-    ];
+    mediawiki = [ mwoauth ];
   };
 
   nativeCheckInputs = [
@@ -71,13 +78,11 @@ buildPythonPackage rec {
     "test_openshift"
   ];
 
-  pythonImportsCheck = [
-    "oauthenticator"
-  ];
+  pythonImportsCheck = [ "oauthenticator" ];
 
   meta = with lib; {
     description = "Authenticate JupyterHub users with common OAuth providers";
-    homepage =  "https://github.com/jupyterhub/oauthenticator";
+    homepage = "https://github.com/jupyterhub/oauthenticator";
     changelog = "https://github.com/jupyterhub/oauthenticator/blob/${version}/docs/source/reference/changelog.md";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/oauthlib/default.nix b/pkgs/development/python-modules/oauthlib/default.nix
index 9f240535256af..e8211953bb44c 100644
--- a/pkgs/development/python-modules/oauthlib/default.nix
+++ b/pkgs/development/python-modules/oauthlib/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, blinker
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, mock
-, pyjwt
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  blinker,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  mock,
+  pyjwt,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 
-# for passthru.tests
-, django-allauth
-, django-oauth-toolkit
-, google-auth-oauthlib
-, requests-oauthlib
+  # for passthru.tests
+  django-allauth,
+  django-oauth-toolkit,
+  google-auth-oauthlib,
+  requests-oauthlib,
 }:
 
 buildPythonPackage rec {
@@ -30,13 +31,14 @@ buildPythonPackage rec {
     hash = "sha256-KADS1pEaLYi86LEt2VVuz8FVTBANzxC8EeQLgGMxuBU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   passthru.optional-dependencies = {
     rsa = [ cryptography ];
-    signedtoken = [ cryptography pyjwt ];
+    signedtoken = [
+      cryptography
+      pyjwt
+    ];
     signals = [ blinker ];
   };
 
@@ -45,16 +47,15 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "oauthlib"
-  ];
+  pythonImportsCheck = [ "oauthlib" ];
 
   passthru.tests = {
     inherit
       django-allauth
       django-oauth-toolkit
       google-auth-oauthlib
-      requests-oauthlib;
+      requests-oauthlib
+      ;
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/obfsproxy/default.nix b/pkgs/development/python-modules/obfsproxy/default.nix
index cb00eb5dafd54..c9b7f9f13c4cb 100644
--- a/pkgs/development/python-modules/obfsproxy/default.nix
+++ b/pkgs/development/python-modules/obfsproxy/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchgit
-, pyptlib
-, twisted
-, pycrypto
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  fetchgit,
+  pyptlib,
+  twisted,
+  pycrypto,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -23,15 +24,19 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "argparse" ""
   '';
 
-  propagatedBuildInputs = [ pyptlib twisted pycrypto pyyaml ];
+  propagatedBuildInputs = [
+    pyptlib
+    twisted
+    pycrypto
+    pyyaml
+  ];
 
   # No tests in archive
   doCheck = false;
 
   meta = with lib; {
-    description = "A pluggable transport proxy";
+    description = "Pluggable transport proxy";
     homepage = "https://www.torproject.org/projects/obfsproxy";
     maintainers = with maintainers; [ thoughtpolice ];
   };
-
 }
diff --git a/pkgs/development/python-modules/objax/default.nix b/pkgs/development/python-modules/objax/default.nix
index 7f2725e9d286b..4d8a0d607dbf3 100644
--- a/pkgs/development/python-modules/objax/default.nix
+++ b/pkgs/development/python-modules/objax/default.nix
@@ -1,19 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, jax
-, jaxlib
-, keras
-, numpy
-, parameterized
-, pillow
-, pytestCheckHook
-, pythonOlder
-, scipy
-, setuptools
-, tensorboard
-, tensorflow
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jax,
+  jaxlib,
+  keras,
+  numpy,
+  parameterized,
+  pillow,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
+  setuptools,
+  tensorboard,
+  tensorflow,
 }:
 
 buildPythonPackage rec {
@@ -30,17 +30,18 @@ buildPythonPackage rec {
     hash = "sha256-WD+pmR8cEay4iziRXqF3sHUzCMBjmLJ3wZ3iYOD+hzk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
+  patches = [
+    # Issue reported upstream: https://github.com/google/objax/issues/270
+    ./replace-deprecated-device_buffers.patch
   ];
 
+  build-system = [ setuptools ];
+
   # Avoid propagating the dependency on `jaxlib`, see
   # https://github.com/NixOS/nixpkgs/issues/156767
-  buildInputs = [
-    jaxlib
-  ];
+  buildInputs = [ jaxlib ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     jax
     numpy
     parameterized
@@ -49,9 +50,7 @@ buildPythonPackage rec {
     tensorboard
   ];
 
-  pythonImportsCheck = [
-    "objax"
-  ];
+  pythonImportsCheck = [ "objax" ];
 
   # This is necessay to ignore the presence of two protobufs version (tensorflow is bringing an
   # older version).
@@ -63,9 +62,7 @@ buildPythonPackage rec {
     tensorflow
   ];
 
-  pytestFlagsArray = [
-    "tests/*.py"
-  ];
+  pytestFlagsArray = [ "tests/*.py" ];
 
   disabledTests = [
     # Test requires internet access for prefetching some weights
diff --git a/pkgs/development/python-modules/objax/replace-deprecated-device_buffers.patch b/pkgs/development/python-modules/objax/replace-deprecated-device_buffers.patch
new file mode 100644
index 0000000000000..fc0fd50a90ce8
--- /dev/null
+++ b/pkgs/development/python-modules/objax/replace-deprecated-device_buffers.patch
@@ -0,0 +1,14 @@
+diff --git a/objax/util/util.py b/objax/util/util.py
+index c31a356..344cf9a 100644
+--- a/objax/util/util.py
++++ b/objax/util/util.py
+@@ -117,7 +117,8 @@ def get_local_devices():
+     if _local_devices is None:
+         x = jn.zeros((jax.local_device_count(), 1), dtype=jn.float32)
+         sharded_x = map_to_device(x)
+-        _local_devices = [b.device() for b in sharded_x.device_buffers]
++        device_buffers = [buf.data for buf in sharded_x.addressable_shards]
++        _local_devices = [list(b.devices())[0] for b in device_buffers]
+     return _local_devices
+ 
+ 
diff --git a/pkgs/development/python-modules/objgraph/default.nix b/pkgs/development/python-modules/objgraph/default.nix
index c0c88870f3526..36017bb2e1e80 100644
--- a/pkgs/development/python-modules/objgraph/default.nix
+++ b/pkgs/development/python-modules/objgraph/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, graphviz
-, graphvizPkgs
-, isPyPy
-, python
-, pythonOlder
-, substituteAll
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  graphviz,
+  graphvizPkgs,
+  isPyPy,
+  python,
+  pythonOlder,
+  substituteAll,
 }:
 
 buildPythonPackage rec {
@@ -29,14 +30,10 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    ipython = [
-      graphviz
-    ];
+    ipython = [ graphviz ];
   };
 
-  pythonImportsCheck = [
-    "objgraph"
-  ];
+  pythonImportsCheck = [ "objgraph" ];
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/objsize/default.nix b/pkgs/development/python-modules/objsize/default.nix
index a002597da50a2..d5e93d99e24b4 100644
--- a/pkgs/development/python-modules/objsize/default.nix
+++ b/pkgs/development/python-modules/objsize/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "objsize";
   version = "0.7.0";
-  pyproject= true;
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -26,17 +27,11 @@ buildPythonPackage rec {
     wheel
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "objsize"
-  ];
+  pythonImportsCheck = [ "objsize" ];
 
-  pytestFlagsArray = [
-    "test_objsize.py"
-  ];
+  pytestFlagsArray = [ "test_objsize.py" ];
 
   meta = with lib; {
     description = "Traversal over objects subtree and calculate the total size";
diff --git a/pkgs/development/python-modules/obspy/default.nix b/pkgs/development/python-modules/obspy/default.nix
index 422a0553e101c..be94fa1bd0c7c 100644
--- a/pkgs/development/python-modules/obspy/default.nix
+++ b/pkgs/development/python-modules/obspy/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, decorator
-, future
-, lxml
-, matplotlib
-, numpy
-, requests
-, scipy
-, sqlalchemy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  decorator,
+  future,
+  lxml,
+  matplotlib,
+  numpy,
+  requests,
+  scipy,
+  sqlalchemy,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/oca-port/default.nix b/pkgs/development/python-modules/oca-port/default.nix
index c6429d3582bc5..93a7dafb02d0a 100644
--- a/pkgs/development/python-modules/oca-port/default.nix
+++ b/pkgs/development/python-modules/oca-port/default.nix
@@ -1,12 +1,13 @@
-{ buildPythonPackage
-, click
-, fetchPypi
-, gitpython
-, lib
-, nix-update-script
-, requests
-, setuptools-scm
-, setuptools
+{
+  buildPythonPackage,
+  click,
+  fetchPypi,
+  gitpython,
+  lib,
+  nix-update-script,
+  requests,
+  setuptools-scm,
+  setuptools,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/ochre/default.nix b/pkgs/development/python-modules/ochre/default.nix
index e3604446e7e20..023fb09d1ef44 100644
--- a/pkgs/development/python-modules/ochre/default.nix
+++ b/pkgs/development/python-modules/ochre/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, hypothesis
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  hypothesis,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-U6qycLnldwNze3XMAn6DS3XGX4RaCZgW0pH/y/FEAkk=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     hypothesis
@@ -30,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ochre" ];
 
   meta = with lib; {
-    description = "A down-to-earth approach to colors";
+    description = "Down-to-earth approach to colors";
     homepage = "https://github.com/getcuia/ochre";
     changelog = "https://github.com/getcuia/ochre/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/oci/default.nix b/pkgs/development/python-modules/oci/default.nix
index b1bb84dba7865..847d45fc823d3 100644
--- a/pkgs/development/python-modules/oci/default.nix
+++ b/pkgs/development/python-modules/oci/default.nix
@@ -1,20 +1,20 @@
-{ lib
-, buildPythonPackage
-, certifi
-, circuitbreaker
-, cryptography
-, fetchFromGitHub
-, pyopenssl
-, python-dateutil
-, pythonOlder
-, pythonRelaxDepsHook
-, pytz
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  certifi,
+  circuitbreaker,
+  cryptography,
+  fetchFromGitHub,
+  pyopenssl,
+  python-dateutil,
+  pythonOlder,
+  pytz,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "oci";
-  version = "2.126.1";
+  version = "2.128.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "oracle";
     repo = "oci-python-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-emWfpI+4oyb3p8RzhLKm1iWkvLu7OZTrEnyvZ5AI9Zw=";
+    hash = "sha256-AT4jE4apkZ0uK1Z03nVnMN9CS5uiMwPNsarq7pY+Pnw=";
   };
 
   pythonRelaxDeps = [
@@ -32,7 +32,6 @@ buildPythonPackage rec {
   ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -48,15 +47,16 @@ buildPythonPackage rec {
   # Tests fail: https://github.com/oracle/oci-python-sdk/issues/164
   doCheck = false;
 
-  pythonImportsCheck = [
-    "oci"
-  ];
+  pythonImportsCheck = [ "oci" ];
 
   meta = with lib; {
     description = "Oracle Cloud Infrastructure Python SDK";
     homepage = "https://github.com/oracle/oci-python-sdk";
     changelog = "https://github.com/oracle/oci-python-sdk/blob/v${version}/CHANGELOG.rst";
-    license = with licenses; [ asl20 /* or */ upl ];
+    license = with licenses; [
+      asl20 # or
+      upl
+    ];
     maintainers = with maintainers; [ ilian ];
   };
 }
diff --git a/pkgs/development/python-modules/ocifs/default.nix b/pkgs/development/python-modules/ocifs/default.nix
index 8fab505c310d1..d613106bc7186 100644
--- a/pkgs/development/python-modules/ocifs/default.nix
+++ b/pkgs/development/python-modules/ocifs/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, fsspec
-, oci
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  fsspec,
+  oci,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-IGl9G4NyzhcqrfYfgeZin+wt1OwHmh6780MPfZBwsXA=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     fsspec
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ocifs"
-  ];
+  pythonImportsCheck = [ "ocifs" ];
 
   meta = with lib; {
     description = "Oracle Cloud Infrastructure Object Storage fsspec implementation";
diff --git a/pkgs/development/python-modules/ocrmypdf/default.nix b/pkgs/development/python-modules/ocrmypdf/default.nix
index eb5cf1ecfed2c..b9b961e6c9c40 100644
--- a/pkgs/development/python-modules/ocrmypdf/default.nix
+++ b/pkgs/development/python-modules/ocrmypdf/default.nix
@@ -1,35 +1,36 @@
-{ lib
-, buildPythonPackage
-, deprecation
-, fetchFromGitHub
-, ghostscript
-, hypothesis
-, img2pdf
-, importlib-resources
-, jbig2enc
-, packaging
-, pdfminer-six
-, pillow-heif
-, pikepdf
-, pillow
-, pluggy
-, pngquant
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, rich
-, reportlab
-, setuptools-scm
-, substituteAll
-, tesseract
-, tqdm
-, unpaper
-, installShellFiles
+{
+  lib,
+  buildPythonPackage,
+  deprecation,
+  fetchFromGitHub,
+  ghostscript,
+  hypothesis,
+  img2pdf,
+  importlib-resources,
+  jbig2enc,
+  packaging,
+  pdfminer-six,
+  pillow-heif,
+  pikepdf,
+  pillow,
+  pluggy,
+  pngquant,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  rich,
+  reportlab,
+  setuptools-scm,
+  substituteAll,
+  tesseract,
+  tqdm,
+  unpaper,
+  installShellFiles,
 }:
 
 buildPythonPackage rec {
   pname = "ocrmypdf";
-  version = "16.2.0";
+  version = "16.3.1";
 
   disabled = pythonOlder "3.10";
 
@@ -45,7 +46,7 @@ buildPythonPackage rec {
     postFetch = ''
       rm "$out/.git_archival.txt"
     '';
-    hash = "sha256-sqhuQ+no6UymxbVtDtWiYQK8kKpO1y37NxLDmRT1LEQ=";
+    hash = "sha256-AGBLxN4XVP298a2DS14nfpDFbYTCvX3gx/BNVAj0iH8=";
   };
 
   patches = [
@@ -60,13 +61,9 @@ buildPythonPackage rec {
     })
   ];
 
-  build-system = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
-  nativeBuildInputs = [
-    installShellFiles
-  ];
+  nativeBuildInputs = [ installShellFiles ];
 
   dependencies = [
     deprecation
@@ -87,9 +84,7 @@ buildPythonPackage rec {
     reportlab
   ];
 
-  pythonImportsCheck = [
-    "ocrmypdf"
-  ];
+  pythonImportsCheck = [ "ocrmypdf" ];
 
   postInstall = ''
     installShellCompletion --cmd ocrmypdf \
@@ -100,8 +95,13 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/ocrmypdf/OCRmyPDF";
     description = "Adds an OCR text layer to scanned PDF files, allowing them to be searched";
-    license = with licenses; [ mpl20 mit ];
-    maintainers = with maintainers; [ kiwi dotlambda ];
+    license = with licenses; [
+      mpl20
+      mit
+    ];
+    maintainers = with maintainers; [
+      dotlambda
+    ];
     changelog = "https://github.com/ocrmypdf/OCRmyPDF/blob/${src.rev}/docs/release_notes.rst";
     mainProgram = "ocrmypdf";
   };
diff --git a/pkgs/development/python-modules/od/default.nix b/pkgs/development/python-modules/od/default.nix
index 510d042e7296c..f9e9a5bee056f 100644
--- a/pkgs/development/python-modules/od/default.nix
+++ b/pkgs/development/python-modules/od/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, repeated-test
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  repeated-test,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-uGkj2Z8mLg51IV+FOqwZl1hT7zVyjmD1CcY/VbH4tKk=";
   };
 
-  nativeCheckInputs = [
-    repeated-test
-  ];
+  nativeCheckInputs = [ repeated-test ];
 
-  pythonImportsCheck = [
-    "od"
-  ];
+  pythonImportsCheck = [ "od" ];
 
   meta = with lib; {
     description = "Shorthand syntax for building OrderedDicts";
diff --git a/pkgs/development/python-modules/odfpy/default.nix b/pkgs/development/python-modules/odfpy/default.nix
index 9b9f44d211bcd..9d063ebe463a0 100644
--- a/pkgs/development/python-modules/odfpy/default.nix
+++ b/pkgs/development/python-modules/odfpy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, defusedxml
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  defusedxml,
+  pytest,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/odp-amsterdam/default.nix b/pkgs/development/python-modules/odp-amsterdam/default.nix
index a9a2770efd6b2..aa9f39a40c56c 100644
--- a/pkgs/development/python-modules/odp-amsterdam/default.nix
+++ b/pkgs/development/python-modules/odp-amsterdam/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonRelaxDepsHook
-, pythonOlder
-, pytest-asyncio
-, pytestCheckHook
-, pytz
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
+  pytest-asyncio,
+  pytestCheckHook,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -33,12 +33,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "pytz"
-  ];
+  pythonRelaxDeps = [ "pytz" ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -51,9 +48,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "odp_amsterdam"
-  ];
+  pythonImportsCheck = [ "odp_amsterdam" ];
 
   meta = with lib; {
     description = "Python client for getting garage occupancy in Amsterdam";
diff --git a/pkgs/development/python-modules/oelint-parser/default.nix b/pkgs/development/python-modules/oelint-parser/default.nix
index 9fc4de88fb9f2..be36594a57cfe 100644
--- a/pkgs/development/python-modules/oelint-parser/default.nix
+++ b/pkgs/development/python-modules/oelint-parser/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, nix-update-script
-, fetchPypi
-, buildPythonPackage
-, deprecated
-, regex
-, pip
+{
+  lib,
+  nix-update-script,
+  fetchPypi,
+  buildPythonPackage,
+  deprecated,
+  regex,
+  pip,
 }:
 
 buildPythonPackage rec {
   pname = "oelint-parser";
-  version = "3.5.0";
+  version = "3.5.3";
   format = "setuptools";
 
   src = fetchPypi {
     inherit version;
     pname = "oelint_parser";
-    hash = "sha256-MvLHi0/tMkWBARyIVm/cuMbS2euK37xvQUbkmOrUyVU=";
+    hash = "sha256-ExW/wSuuLQH6MB9PIXjmHgdUxhqX6AXnKPDe9PJ2T/4=";
   };
 
   buildInputs = [ pip ];
diff --git a/pkgs/development/python-modules/oemthermostat/default.nix b/pkgs/development/python-modules/oemthermostat/default.nix
index f40e39f10bf63..154a3f7f1e6b3 100644
--- a/pkgs/development/python-modules/oemthermostat/default.nix
+++ b/pkgs/development/python-modules/oemthermostat/default.nix
@@ -1,45 +1,39 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "oemthermostat";
   version = "1.1.1";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "Cadair";
     repo = "openenergymonitor_thermostat";
-    rev = "v${version}";
-    sha256 = "vrMw3/X8MtejO1WyUA1DOlfVCPTCPgcK5p3+OlTWcM4=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-vrMw3/X8MtejO1WyUA1DOlfVCPTCPgcK5p3+OlTWcM4=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  dependencies = [ requests ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "oemthermostat"
-  ];
+  pythonImportsCheck = [ "oemthermostat" ];
 
   meta = with lib; {
     description = "Python module to interact with OpenEnergyMonitor thermostats";
     homepage = "https://github.com/Cadair/openenergymonitor_thermostat";
+    changelog = "https://github.com/Cadair/openenergymonitor_thermostat/blob/v${version}/CHANGELOG.rst";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/offtrac/default.nix b/pkgs/development/python-modules/offtrac/default.nix
index 51ce4210e5618..268346ce38d3d 100644
--- a/pkgs/development/python-modules/offtrac/default.nix
+++ b/pkgs/development/python-modules/offtrac/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -20,5 +21,4 @@ buildPythonPackage rec {
     description = "Trac xmlrpc library";
     license = licenses.gpl2;
   };
-
 }
diff --git a/pkgs/development/python-modules/ofxclient/default.nix b/pkgs/development/python-modules/ofxclient/default.nix
index c0c06b1ca91e5..f763c6f232949 100644
--- a/pkgs/development/python-modules/ofxclient/default.nix
+++ b/pkgs/development/python-modules/ofxclient/default.nix
@@ -1,5 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi,
- ofxhome, ofxparse, beautifulsoup4, lxml, keyring
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  ofxhome,
+  ofxparse,
+  beautifulsoup4,
+  lxml,
+  keyring,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +26,13 @@ buildPythonPackage rec {
   # ImportError: No module named tests
   doCheck = false;
 
-  propagatedBuildInputs = [ ofxhome ofxparse beautifulsoup4 lxml keyring ];
+  propagatedBuildInputs = [
+    ofxhome
+    ofxparse
+    beautifulsoup4
+    lxml
+    keyring
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/captin411/ofxclient";
diff --git a/pkgs/development/python-modules/ofxhome/default.nix b/pkgs/development/python-modules/ofxhome/default.nix
index 09f901a30008e..7f4aa00dd213c 100644
--- a/pkgs/development/python-modules/ofxhome/default.nix
+++ b/pkgs/development/python-modules/ofxhome/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, nose }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+}:
 
 buildPythonPackage rec {
   version = "0.3.3";
diff --git a/pkgs/development/python-modules/ofxparse/default.nix b/pkgs/development/python-modules/ofxparse/default.nix
index c133db4b42654..6d1da80a8c04c 100644
--- a/pkgs/development/python-modules/ofxparse/default.nix
+++ b/pkgs/development/python-modules/ofxparse/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
-, beautifulsoup4
-, lxml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  beautifulsoup4,
+  lxml,
 }:
 
 buildPythonPackage rec {
@@ -16,12 +17,15 @@ buildPythonPackage rec {
     sha256 = "19y4sp5l9jqiqzzlbqdfiab42qx7d84n4xm4s7jfq397666vcyh5";
   };
 
-  propagatedBuildInputs = [ six beautifulsoup4 lxml ];
+  propagatedBuildInputs = [
+    six
+    beautifulsoup4
+    lxml
+  ];
 
   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/pkgs/development/python-modules/ofxtools/default.nix b/pkgs/development/python-modules/ofxtools/default.nix
index 67bb7ded1042d..552267ee759d7 100644
--- a/pkgs/development/python-modules/ofxtools/default.nix
+++ b/pkgs/development/python-modules/ofxtools/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nose
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nose,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/okonomiyaki/default.nix b/pkgs/development/python-modules/okonomiyaki/default.nix
index 4c51df76f14e6..816b93c833a70 100644
--- a/pkgs/development/python-modules/okonomiyaki/default.nix
+++ b/pkgs/development/python-modules/okonomiyaki/default.nix
@@ -1,16 +1,18 @@
-{ buildPythonPackage
-, stdenv
-, fetchFromGitHub
-, lib
-, attrs
-, distro
-, jsonschema
-, six
-, zipfile2
-, hypothesis
-, mock
-, packaging
-, testfixtures
+{
+  buildPythonPackage,
+  stdenv,
+  fetchFromGitHub,
+  lib,
+  attrs,
+  distro,
+  jsonschema,
+  six,
+  zipfile2,
+  hypothesis,
+  mock,
+  packaging,
+  testfixtures,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -25,24 +27,38 @@ buildPythonPackage rec {
     hash = "sha256-MEll1H7l41m8uz2/WK/Ilm7Dubg0uqYwe+ZgakO1aXQ=";
   };
 
-  propagatedBuildInputs = [ distro attrs jsonschema six zipfile2 ];
+  propagatedBuildInputs = [
+    distro
+    attrs
+    jsonschema
+    six
+    zipfile2
+  ];
 
-  preCheck = ''
-    substituteInPlace okonomiyaki/runtimes/tests/test_runtime.py \
-      --replace 'runtime_info = PythonRuntime.from_running_python()' 'raise unittest.SkipTest() #'
-   '' + lib.optionalString stdenv.isDarwin ''
-    substituteInPlace okonomiyaki/platforms/tests/test_pep425.py \
-      --replace 'self.assertEqual(platform_tag, self.tag.platform)' 'raise unittest.SkipTest()'
-  '';
+  preCheck =
+    ''
+      substituteInPlace okonomiyaki/runtimes/tests/test_runtime.py \
+        --replace 'runtime_info = PythonRuntime.from_running_python()' 'raise unittest.SkipTest() #'
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      substituteInPlace okonomiyaki/platforms/tests/test_pep425.py \
+        --replace 'self.assertEqual(platform_tag, self.tag.platform)' 'raise unittest.SkipTest()'
+    '';
 
-  checkInputs = [ hypothesis mock packaging testfixtures ];
+  checkInputs = [
+    hypothesis
+    mock
+    packaging
+    testfixtures
+  ];
 
   pythonImportsCheck = [ "okonomiyaki" ];
 
   meta = with lib; {
     homepage = "https://github.com/enthought/okonomiyaki";
-    description = "An experimental library aimed at consolidating a lot of low-level code used for Enthought's eggs";
+    description = "Experimental library aimed at consolidating a lot of low-level code used for Enthought's eggs";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.bsd3;
+    broken = pythonAtLeast "3.12"; # multiple tests are failing
   };
 }
diff --git a/pkgs/development/python-modules/okta/default.nix b/pkgs/development/python-modules/okta/default.nix
index 13218b0d8f08b..239a204c0fb41 100644
--- a/pkgs/development/python-modules/okta/default.nix
+++ b/pkgs/development/python-modules/okta/default.nix
@@ -1,35 +1,36 @@
-{ lib
-, stdenv
-, aenum
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, flatdict
-, pycryptodome
-, pycryptodomex
-, pydash
-, pyfakefs
-, pytest-asyncio
-, pytest-mock
-, pytest-recording
-, pytestCheckHook
-, python-jose
-, pythonOlder
-, pyyaml
-, xmltodict
-, yarl
+{
+  lib,
+  stdenv,
+  aenum,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  flatdict,
+  pycryptodome,
+  pycryptodomex,
+  pydash,
+  pyfakefs,
+  pytest-asyncio,
+  pytest-mock,
+  pytest-recording,
+  pytestCheckHook,
+  python-jose,
+  pythonOlder,
+  pyyaml,
+  xmltodict,
+  yarl,
 }:
 
 buildPythonPackage rec {
   pname = "okta";
-  version = "2.9.5";
+  version = "2.9.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-qMcO0TTbMPjc+r2IOlwJqbaSOztat9MmYWH4kgy9vwA=";
+    hash = "sha256-wW3QiWcyH9byMywsRAdWLulFUagouWM87vMJtQ+q2UE=";
   };
 
   propagatedBuildInputs = [
@@ -53,9 +54,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "tests/"
-  ];
+  pytestFlagsArray = [ "tests/" ];
 
   disabledTests = [
     "test_client_raise_exception"
diff --git a/pkgs/development/python-modules/oldest-supported-numpy/default.nix b/pkgs/development/python-modules/oldest-supported-numpy/default.nix
index a0ec902984e1b..521094a8e4c07 100644
--- a/pkgs/development/python-modules/oldest-supported-numpy/default.nix
+++ b/pkgs/development/python-modules/oldest-supported-numpy/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
       --replace 'numpy==' 'numpy>='
   '';
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   # package has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/olefile/default.nix b/pkgs/development/python-modules/olefile/default.nix
index f0df020d39c33..d69d11a331e6d 100644
--- a/pkgs/development/python-modules/olefile/default.nix
+++ b/pkgs/development/python-modules/olefile/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -15,20 +16,19 @@ buildPythonPackage rec {
     sha256 = "sha256-WZODOBoL89+9kyygymUVrNF07UiHDL9/7hI9aYwZLBw=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "olefile"
-  ];
+  pythonImportsCheck = [ "olefile" ];
 
   meta = with lib; {
     description = "Python package to parse, read and write Microsoft OLE2 files";
     homepage = "https://www.decalage.info/python/olefileio";
     # BSD2 + reference to Pillow
     # http://olefile.readthedocs.io/en/latest/License.html
-    license = with licenses; [ bsd2 /* and */ hpnd ];
+    license = with licenses; [
+      bsd2 # and
+      hpnd
+    ];
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/oletools/default.nix b/pkgs/development/python-modules/oletools/default.nix
index d7df0523eac50..72fc64e65c5b2 100644
--- a/pkgs/development/python-modules/oletools/default.nix
+++ b/pkgs/development/python-modules/oletools/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, colorclass
-, easygui
-, fetchFromGitHub
-, msoffcrypto-tool
-, olefile
-, pcodedmp
-, pyparsing
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  colorclass,
+  easygui,
+  fetchFromGitHub,
+  msoffcrypto-tool,
+  olefile,
+  pcodedmp,
+  pyparsing,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -35,9 +36,7 @@ buildPythonPackage rec {
     pyparsing
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace setup.py \
@@ -50,14 +49,15 @@ buildPythonPackage rec {
     "test_xlm"
   ];
 
-  pythonImportsCheck = [
-    "oletools"
-  ];
+  pythonImportsCheck = [ "oletools" ];
 
   meta = with lib; {
     description = "Module to analyze MS OLE2 files and MS Office documents";
     homepage = "https://github.com/decalage2/oletools";
-    license = with licenses; [ bsd2 /* and */ mit ];
+    license = with licenses; [
+      bsd2 # and
+      mit
+    ];
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/ollama/default.nix b/pkgs/development/python-modules/ollama/default.nix
index 4d1999a8aae87..33433bc17ac91 100644
--- a/pkgs/development/python-modules/ollama/default.nix
+++ b/pkgs/development/python-modules/ollama/default.nix
@@ -9,12 +9,11 @@
   pytest-httpserver,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
 }:
 
 buildPythonPackage rec {
   pname = "ollama";
-  version = "0.1.9";
+  version = "0.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +22,7 @@ buildPythonPackage rec {
     owner = "ollama";
     repo = "ollama-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ilJgRMzCn/T+6Lr7IuvaCnKhN5cyyEOWuV0N1FtR+Yg=";
+    hash = "sha256-+1qhmz5WehbtjE+Dh/WTsqpiAmTjJg+tBjvYRQYkYy0=";
   };
 
   postPatch = ''
@@ -35,7 +34,6 @@ buildPythonPackage rec {
 
   build-system = [ poetry-core ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [ httpx ];
 
diff --git a/pkgs/development/python-modules/ome-zarr/default.nix b/pkgs/development/python-modules/ome-zarr/default.nix
index 0412a0f807189..297d35fb0deb4 100644
--- a/pkgs/development/python-modules/ome-zarr/default.nix
+++ b/pkgs/development/python-modules/ome-zarr/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pytestCheckHook
-, aiohttp
-, dask
-, distributed
-, fsspec
-, numpy
-, requests
-, scikit-image
-, toolz
-, zarr
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pytestCheckHook,
+  aiohttp,
+  dask,
+  distributed,
+  fsspec,
+  numpy,
+  requests,
+  scikit-image,
+  toolz,
+  zarr,
 }:
 
 buildPythonPackage rec {
   pname = "ome-zarr";
-  version = "0.8.3";
+  version = "0.9.0";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
@@ -24,7 +25,7 @@ buildPythonPackage rec {
     owner = "ome";
     repo = "ome-zarr-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-JuNXVse/n/lFbNaLwMcir8NBHiRxcbYvtbxePwI6YoY=";
+    hash = "sha256-YOG9+ONf2OnkSZBL/Vb8Inebx4XDSGJb2fqypaWebhY=";
   };
 
   propagatedBuildInputs = [
@@ -39,15 +40,34 @@ buildPythonPackage rec {
     toolz
   ] ++ fsspec.passthru.optional-dependencies.s3;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # attempts to access network
     "test_s3_info"
   ];
 
+  pytestFlagsArray = [
+    # Fail with RecursionError
+    # https://github.com/ome/ome-zarr-py/issues/352
+    "--deselect=tests/test_cli.py::TestCli::test_astronaut_download"
+    "--deselect=tests/test_cli.py::TestCli::test_astronaut_info"
+    "--deselect=tests/test_cli.py::TestCli::test_coins_info"
+    "--deselect=tests/test_emitter.py::test_close"
+    "--deselect=tests/test_emitter.py::test_create_wrong_encoding"
+    "--deselect=tests/test_node.py::TestNode::test_image"
+    "--deselect=tests/test_node.py::TestNode::test_label"
+    "--deselect=tests/test_node.py::TestNode::test_labels"
+    "--deselect=tests/test_ome_zarr.py::TestOmeZarr::test_download"
+    "--deselect=tests/test_ome_zarr.py::TestOmeZarr::test_info"
+    "--deselect=tests/test_reader.py::TestReader::test_image"
+    "--deselect=tests/test_reader.py::TestReader::test_label"
+    "--deselect=tests/test_reader.py::TestReader::test_labels"
+    "--deselect=tests/test_starting_points.py::TestStartingPoints::test_label"
+    "--deselect=tests/test_starting_points.py::TestStartingPoints::test_labels"
+    "--deselect=tests/test_starting_points.py::TestStartingPoints::test_top_level"
+  ];
+
   pythonImportsCheck = [
     "ome_zarr"
     "ome_zarr.cli"
@@ -62,7 +82,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Implementation of next-generation file format (NGFF) specifications for storing bioimaging data in the cloud.";
+    description = "Implementation of next-generation file format (NGFF) specifications for storing bioimaging data in the cloud";
     homepage = "https://pypi.org/project/ome-zarr";
     changelog = "https://github.com/ome/ome-zarr-py/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd2;
diff --git a/pkgs/development/python-modules/omegaconf/default.nix b/pkgs/development/python-modules/omegaconf/default.nix
index 445d15f439401..4386f2170c2f8 100644
--- a/pkgs/development/python-modules/omegaconf/default.nix
+++ b/pkgs/development/python-modules/omegaconf/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, antlr4
-, antlr4-python3-runtime
-, attrs
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, jre_minimal
-, pydevd
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, substituteAll
+{
+  lib,
+  antlr4,
+  antlr4-python3-runtime,
+  attrs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  jre_minimal,
+  pydevd,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  substituteAll,
 }:
 
 buildPythonPackage rec {
@@ -46,13 +47,9 @@ buildPythonPackage rec {
     sed -i 's/antlr4-python3-runtime==.*/antlr4-python3-runtime/' requirements/base.txt
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  nativeBuildInputs = [
-    jre_minimal
-  ];
+  nativeBuildInputs = [ jre_minimal ];
 
   dependencies = [
     antlr4-python3-runtime
@@ -66,18 +63,14 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "omegaconf"
-  ];
+  pythonImportsCheck = [ "omegaconf" ];
 
   pytestFlagsArray = [
     "-W"
     "ignore::DeprecationWarning"
   ];
 
-  disabledTests = [
-    "test_eq"
-  ];
+  disabledTests = [ "test_eq" ];
 
   meta = with lib; {
     description = "Framework for configuring complex applications";
diff --git a/pkgs/development/python-modules/omemo-dr/default.nix b/pkgs/development/python-modules/omemo-dr/default.nix
index 03850fc8cca70..e6b1317738c1d 100644
--- a/pkgs/development/python-modules/omemo-dr/default.nix
+++ b/pkgs/development/python-modules/omemo-dr/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchPypi
-, protobuf
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  protobuf,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,22 +21,16 @@ buildPythonPackage rec {
     hash = "sha256-KoqMdyMdc5Sb3TdSeNTVomElK9ruUstiQayyUcIC02E=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cryptography
     protobuf
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "omemo_dr"
-  ];
+  pythonImportsCheck = [ "omemo_dr" ];
 
   meta = with lib; {
     description = "OMEMO Double Ratchet";
diff --git a/pkgs/development/python-modules/omnikinverter/default.nix b/pkgs/development/python-modules/omnikinverter/default.nix
index 4d9a2c97c5663..3c4ba18ba9956 100644
--- a/pkgs/development/python-modules/omnikinverter/default.nix
+++ b/pkgs/development/python-modules/omnikinverter/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
       --replace "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -48,9 +47,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "omnikinverter"
-  ];
+  pythonImportsCheck = [ "omnikinverter" ];
 
   meta = with lib; {
     description = "Python module for the Omnik Inverter";
diff --git a/pkgs/development/python-modules/omnilogic/default.nix b/pkgs/development/python-modules/omnilogic/default.nix
index 343b65522cae4..4e8f8234f4d14 100644
--- a/pkgs/development/python-modules/omnilogic/default.nix
+++ b/pkgs/development/python-modules/omnilogic/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, xmltodict
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
+{
+  lib,
+  aiohttp,
+  xmltodict,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "omnilogic"
-  ];
+  pythonImportsCheck = [ "omnilogic" ];
 
   meta = with lib; {
     description = "Python interface for the Hayward Omnilogic pool control system";
diff --git a/pkgs/development/python-modules/omorfi/default.nix b/pkgs/development/python-modules/omorfi/default.nix
index 55fe7a0454aec..c73147faddfdd 100644
--- a/pkgs/development/python-modules/omorfi/default.nix
+++ b/pkgs/development/python-modules/omorfi/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, pkgs
-, lib
-, stdenv
-, hfst
+{
+  buildPythonPackage,
+  pkgs,
+  lib,
+  stdenv,
+  hfst,
 }:
 
 buildPythonPackage rec {
@@ -12,9 +13,7 @@ buildPythonPackage rec {
 
   sourceRoot = "${src.name}/src/python";
 
-  propagatedBuildInputs = [
-    hfst
-  ];
+  propagatedBuildInputs = [ hfst ];
 
   # Fixes some improper import paths
   patches = [ ./importfix.patch ];
diff --git a/pkgs/development/python-modules/omrdatasettools/default.nix b/pkgs/development/python-modules/omrdatasettools/default.nix
index c210349ad631d..a61bc96dc78f2 100644
--- a/pkgs/development/python-modules/omrdatasettools/default.nix
+++ b/pkgs/development/python-modules/omrdatasettools/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, h5py
-, ipython
-, lxml
-, mung
-, muscima
-, numpy
-, pillow
-, pytestCheckHook
-, scikit-image
-, sphinx-rtd-theme
-, sympy
-, pandas
-, pyhamcrest
-, tqdm
-, twine
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  h5py,
+  ipython,
+  lxml,
+  mung,
+  muscima,
+  numpy,
+  pillow,
+  pytestCheckHook,
+  scikit-image,
+  sphinx-rtd-theme,
+  sympy,
+  pandas,
+  pyhamcrest,
+  tqdm,
+  twine,
 }:
 
 buildPythonPackage rec {
@@ -45,9 +46,7 @@ buildPythonPackage rec {
     ipython
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # The download tests require internet access
diff --git a/pkgs/development/python-modules/oncalendar/default.nix b/pkgs/development/python-modules/oncalendar/default.nix
index f37261a058bda..85d163a77eefa 100644
--- a/pkgs/development/python-modules/oncalendar/default.nix
+++ b/pkgs/development/python-modules/oncalendar/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "oncalendar" ];
 
   meta = with lib; {
-    description = "A systemd OnCalendar expression parser and evaluator";
+    description = "Systemd OnCalendar expression parser and evaluator";
     homepage = "https://github.com/cuu508/oncalendar";
     license = licenses.bsd3;
     maintainers = with maintainers; [ phaer ];
diff --git a/pkgs/development/python-modules/onetimepad/default.nix b/pkgs/development/python-modules/onetimepad/default.nix
index a1baab63934a3..affa6182b7d70 100644
--- a/pkgs/development/python-modules/onetimepad/default.nix
+++ b/pkgs/development/python-modules/onetimepad/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "onetimepad" ];
 
   meta = {
-    description = "A hacky implementation of one-time pad";
+    description = "Hacky implementation of one-time pad";
     mainProgram = "onetimepad";
     homepage = "https://jailuthra.in/onetimepad";
     license = lib.licenses.mit;
diff --git a/pkgs/development/python-modules/onigurumacffi/default.nix b/pkgs/development/python-modules/onigurumacffi/default.nix
index 5bb8abcff64d5..09be239936528 100644
--- a/pkgs/development/python-modules/onigurumacffi/default.nix
+++ b/pkgs/development/python-modules/onigurumacffi/default.nix
@@ -1,4 +1,9 @@
-{ lib, python3Packages, fetchPypi, oniguruma }:
+{
+  lib,
+  python3Packages,
+  fetchPypi,
+  oniguruma,
+}:
 python3Packages.buildPythonPackage rec {
   pname = "onigurumacffi";
   version = "1.3.0";
diff --git a/pkgs/development/python-modules/onkyo-eiscp/default.nix b/pkgs/development/python-modules/onkyo-eiscp/default.nix
index 2a54df8e5e8c8..ab82ef0b7bdfb 100644
--- a/pkgs/development/python-modules/onkyo-eiscp/default.nix
+++ b/pkgs/development/python-modules/onkyo-eiscp/default.nix
@@ -1,5 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi
-, docopt, netifaces }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  docopt,
+  netifaces,
+}:
 
 buildPythonPackage rec {
   pname = "onkyo-eiscp";
@@ -11,7 +16,10 @@ buildPythonPackage rec {
     sha256 = "761abb16c654a1136763b927d094174d41f282809e44ea32cd47e199dd79d9c9";
   };
 
-  propagatedBuildInputs = [ docopt netifaces ];
+  propagatedBuildInputs = [
+    docopt
+    netifaces
+  ];
 
   meta = with lib; {
     description = "Control Onkyo receivers over ethernet";
diff --git a/pkgs/development/python-modules/online-judge-api-client/default.nix b/pkgs/development/python-modules/online-judge-api-client/default.nix
index 8c17aed69179b..964f6232303bd 100644
--- a/pkgs/development/python-modules/online-judge-api-client/default.nix
+++ b/pkgs/development/python-modules/online-judge-api-client/default.nix
@@ -1,24 +1,33 @@
-{ lib
-, appdirs
-, beautifulsoup4
-, buildPythonPackage
-, colorlog
-, fetchFromGitHub
-, git
-, jsonschema
-, lxml
-, markdown
-, python
-, requests
-, substituteAll
-, toml
+{
+  lib,
+  appdirs,
+  beautifulsoup4,
+  buildPythonPackage,
+  colorlog,
+  fetchFromGitHub,
+  git,
+  jsonschema,
+  lxml,
+  markdown,
+  python,
+  requests,
+  substituteAll,
+  toml,
 }:
 
 let
   # NOTE This is needed to download & run another Python program internally in
   #      order to generate test cases for library-checker problems.
-  pythonEnv = python.withPackages (ps: with ps; [ colorlog jinja2 markdown toml ]);
-in buildPythonPackage rec {
+  pythonEnv = python.withPackages (
+    ps: with ps; [
+      colorlog
+      jinja2
+      markdown
+      toml
+    ]
+  );
+in
+buildPythonPackage rec {
   pname = "online-judge-api-client";
   version = "10.10.1";
   format = "setuptools";
@@ -50,7 +59,10 @@ in buildPythonPackage rec {
   # Requires internet access
   doCheck = false;
 
-  pythonImportsCheck = [ "onlinejudge" "onlinejudge_api" ];
+  pythonImportsCheck = [
+    "onlinejudge"
+    "onlinejudge_api"
+  ];
 
   meta = with lib; {
     description = "API client to develop tools for competitive programming";
diff --git a/pkgs/development/python-modules/online-judge-tools/default.nix b/pkgs/development/python-modules/online-judge-tools/default.nix
index a86b411452376..3b24ba31d3560 100644
--- a/pkgs/development/python-modules/online-judge-tools/default.nix
+++ b/pkgs/development/python-modules/online-judge-tools/default.nix
@@ -1,30 +1,45 @@
-{ lib
-, buildPythonPackage
-, colorama
-, fetchFromGitHub
-, online-judge-api-client
-, requests
+{
+  lib,
+  buildPythonPackage,
+  colorama,
+  fetchFromGitHub,
+  online-judge-api-client,
+  packaging,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "online-judge-tools";
-  version = "11.5.1";
-  format = "setuptools";
+  version = "12.0.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "online-judge-tools";
     repo = "oj";
-    rev = "v${version}";
-    sha256 = "0zkzmmjgjb6lyrzq1ip54cpnp7al9a7mcyjyi5vx58bvnx3q0c6m";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-m6V4Sq3yU/KPnbpA0oCLI/qaSrAPA6TutcBL5Crb/Cc=";
   };
 
-  propagatedBuildInputs = [ colorama online-judge-api-client requests ];
+  build-system = [ setuptools ];
+
+  dependencies = [
+    colorama
+    online-judge-api-client
+    packaging
+    requests
+  ];
+
+  pythonImportsCheck = [
+    "onlinejudge"
+    "onlinejudge_command"
+  ];
 
   # Requires internet access
   doCheck = false;
 
   meta = with lib; {
-    description = "Tools for various online judges. Download sample cases, generate additional test cases, test your code, and submit it.";
+    description = "Tools for various online judges. Download sample cases, generate additional test cases, test your code, and submit it";
     mainProgram = "oj";
     homepage = "https://github.com/online-judge-tools/oj";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/onlykey-solo-python/default.nix b/pkgs/development/python-modules/onlykey-solo-python/default.nix
index 23e11bc7c3072..53831b63c40cd 100644
--- a/pkgs/development/python-modules/onlykey-solo-python/default.nix
+++ b/pkgs/development/python-modules/onlykey-solo-python/default.nix
@@ -1,14 +1,15 @@
-{ buildPythonPackage
-, click
-, ecdsa
-, fetchpatch
-, fetchPypi
-, fido2
-, intelhex
-, lib
-, pyserial
-, pyusb
-, requests
+{
+  buildPythonPackage,
+  click,
+  ecdsa,
+  fetchpatch,
+  fetchPypi,
+  fido2,
+  intelhex,
+  lib,
+  pyserial,
+  pyusb,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -34,7 +35,15 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [ click ecdsa fido2 intelhex pyserial pyusb requests ];
+  propagatedBuildInputs = [
+    click
+    ecdsa
+    fido2
+    intelhex
+    pyserial
+    pyusb
+    requests
+  ];
 
   # no tests
   doCheck = false;
@@ -48,4 +57,3 @@ buildPythonPackage rec {
     license = licenses.asl20;
   };
 }
-
diff --git a/pkgs/development/python-modules/onnx/default.nix b/pkgs/development/python-modules/onnx/default.nix
index bcfd0cf6e3cf2..082d0e0a313aa 100644
--- a/pkgs/development/python-modules/onnx/default.nix
+++ b/pkgs/development/python-modules/onnx/default.nix
@@ -1,30 +1,31 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, cmake
-, fetchFromGitHub
-, fetchpatch
-, gtest
-, nbval
-, numpy
-, parameterized
-, protobuf_21
-, pybind11
-, pytestCheckHook
-, pythonOlder
-, tabulate
-, typing-extensions
-, abseil-cpp
-, google-re2
-, pillow
-, protobuf
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cmake,
+  fetchFromGitHub,
+  gtest,
+  nbval,
+  numpy,
+  parameterized,
+  protobuf_21,
+  pybind11,
+  pytestCheckHook,
+  pythonOlder,
+  tabulate,
+  typing-extensions,
+  abseil-cpp,
+  google-re2,
+  pillow,
+  protobuf,
 }:
 
 let
   gtestStatic = gtest.override { static = true; };
-in buildPythonPackage rec {
+in
+buildPythonPackage rec {
   pname = "onnx";
-  version = "1.15.0";
+  version = "1.16.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -33,19 +34,10 @@ in buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-Jzga1IiUO5LN5imSUmnbsjYtapRatTihx38EOUjm9Os=";
+    hash = "sha256-I1wwfn91hdH3jORIKny0Xc73qW2P04MjkVCgcaNnQUE=";
   };
 
-  patches = [
-    ./1.15.0-CVE-2024-27318.patch
-    (fetchpatch {
-      name = "CVE-2024-27319.patch";
-      url = "https://github.com/onnx/onnx/commit/08a399ba75a805b7813ab8936b91d0e274b08287.patch";
-      hash = "sha256-9X92N9i/hpQjDGe4I/C+FwUcTUTtP2Nf7+pcTA2sXoA=";
-    })
-  ];
-
-  nativeBuildInputs = [
+  build-system = [
     cmake
     pybind11
   ];
@@ -54,10 +46,11 @@ in buildPythonPackage rec {
     abseil-cpp
     protobuf
     google-re2
+    gtestStatic
     pillow
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     protobuf_21
     protobuf
     numpy
@@ -117,28 +110,30 @@ in buildPythonPackage rec {
     "onnx/examples"
   ];
 
-  disabledTests = [
-    # attempts to fetch data from web
-    "test_bvlc_alexnet_cpu"
-    "test_densenet121_cpu"
-    "test_inception_v1_cpu"
-    "test_inception_v2_cpu"
-    "test_resnet50_cpu"
-    "test_shufflenet_cpu"
-    "test_squeezenet_cpu"
-    "test_vgg19_cpu"
-    "test_zfnet512_cpu"
-  ] ++ lib.optionals stdenv.isAarch64 [
-    # AssertionError: Output 0 of test 0 in folder
-    "test__pytorch_converted_Conv2d_depthwise_padded"
-    "test__pytorch_converted_Conv2d_dilated"
-    "test_dft"
-    "test_dft_axis"
-    # AssertionError: Mismatch in test 'test_Conv2d_depthwise_padded'
-    "test_xor_bcast4v4d"
-    # AssertionError: assert 1 == 0
-    "test_ops_tested"
-  ];
+  disabledTests =
+    [
+      # attempts to fetch data from web
+      "test_bvlc_alexnet_cpu"
+      "test_densenet121_cpu"
+      "test_inception_v1_cpu"
+      "test_inception_v2_cpu"
+      "test_resnet50_cpu"
+      "test_shufflenet_cpu"
+      "test_squeezenet_cpu"
+      "test_vgg19_cpu"
+      "test_zfnet512_cpu"
+    ]
+    ++ lib.optionals stdenv.isAarch64 [
+      # AssertionError: Output 0 of test 0 in folder
+      "test__pytorch_converted_Conv2d_depthwise_padded"
+      "test__pytorch_converted_Conv2d_dilated"
+      "test_dft"
+      "test_dft_axis"
+      # AssertionError: Mismatch in test 'test_Conv2d_depthwise_padded'
+      "test_xor_bcast4v4d"
+      # AssertionError: assert 1 == 0
+      "test_ops_tested"
+    ];
 
   disabledTestPaths = [
     # Unexpected output fields from running code: {'stderr'}
@@ -152,9 +147,7 @@ in buildPythonPackage rec {
     .setuptools-cmake-build/onnx_gtests
   '';
 
-  pythonImportsCheck = [
-    "onnx"
-  ];
+  pythonImportsCheck = [ "onnx" ];
 
   meta = with lib; {
     description = "Open Neural Network Exchange";
diff --git a/pkgs/development/python-modules/onnxconverter-common/default.nix b/pkgs/development/python-modules/onnxconverter-common/default.nix
index 1da4168d22b74..94cc0b8813515 100644
--- a/pkgs/development/python-modules/onnxconverter-common/default.nix
+++ b/pkgs/development/python-modules/onnxconverter-common/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, packaging
-, protobuf
-, onnx
-, unittestCheckHook
-, onnxruntime
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  packaging,
+  protobuf,
+  onnx,
+  unittestCheckHook,
+  onnxruntime,
 }:
 
 buildPythonPackage rec {
@@ -29,16 +30,17 @@ buildPythonPackage rec {
     onnx
   ];
 
-  pythonImportsCheck = [
-    "onnxconverter_common"
-  ];
+  pythonImportsCheck = [ "onnxconverter_common" ];
 
   nativeCheckInputs = [
     onnxruntime
     unittestCheckHook
   ];
 
-  unittestFlagsArray = [ "-s" "tests" ];
+  unittestFlagsArray = [
+    "-s"
+    "tests"
+  ];
 
   # Failing tests
   # https://github.com/microsoft/onnxconverter-common/issues/242
diff --git a/pkgs/development/python-modules/onnxmltools/default.nix b/pkgs/development/python-modules/onnxmltools/default.nix
index b24537ddcdf35..656e3631a9ca5 100644
--- a/pkgs/development/python-modules/onnxmltools/default.nix
+++ b/pkgs/development/python-modules/onnxmltools/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, onnx
-, skl2onnx
-# native check inputs
-, pytestCheckHook
-, pandas
-, xgboost
-, onnxruntime
-, scikit-learn
-, pyspark
-, lightgbm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  onnx,
+  skl2onnx,
+  # native check inputs
+  pytestCheckHook,
+  pandas,
+  xgboost,
+  onnxruntime,
+  scikit-learn,
+  pyspark,
+  lightgbm,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/onnxruntime-tools/default.nix b/pkgs/development/python-modules/onnxruntime-tools/default.nix
index 6f8a5001b1ffb..462cdb7f23361 100644
--- a/pkgs/development/python-modules/onnxruntime-tools/default.nix
+++ b/pkgs/development/python-modules/onnxruntime-tools/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, coloredlogs
-, numpy
-, onnx
-, packaging
-, psutil
-, py-cpuinfo
-, py3nvml
-, sympy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  coloredlogs,
+  numpy,
+  onnx,
+  packaging,
+  psutil,
+  py-cpuinfo,
+  py3nvml,
+  sympy,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/onnxruntime/default.nix b/pkgs/development/python-modules/onnxruntime/default.nix
index 328825698f899..b7475fd5b4800 100644
--- a/pkgs/development/python-modules/onnxruntime/default.nix
+++ b/pkgs/development/python-modules/onnxruntime/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, autoPatchelfHook
-, pythonRelaxDepsHook
-, onnxruntime
-, coloredlogs
-, numpy
-, packaging
-, oneDNN
-, re2
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  autoPatchelfHook,
+  onnxruntime,
+  coloredlogs,
+  numpy,
+  packaging,
+  oneDNN,
+  re2,
 
 }:
 
@@ -35,11 +35,7 @@ buildPythonPackage {
     chmod +w dist
   '';
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ] ++ lib.optionals stdenv.isLinux [
-    autoPatchelfHook
-  ];
+  nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ];
 
   # This project requires fairly large dependencies such as sympy which we really don't always need.
   pythonRemoveDeps = [
@@ -49,17 +45,22 @@ buildPythonPackage {
   ];
 
   # Libraries are not linked correctly.
-  buildInputs = [
-    oneDNN
-    re2
-    onnxruntime.protobuf
-  ] ++ lib.optionals onnxruntime.passthru.cudaSupport (with onnxruntime.passthru.cudaPackages; [
-    libcublas # libcublasLt.so.XX libcublas.so.XX
-    libcurand # libcurand.so.XX
-    libcufft # libcufft.so.XX
-    cudnn # libcudnn.soXX
-    cuda_cudart # libcudart.so.XX
-  ]);
+  buildInputs =
+    [
+      oneDNN
+      re2
+      onnxruntime.protobuf
+    ]
+    ++ lib.optionals onnxruntime.passthru.cudaSupport (
+      with onnxruntime.passthru.cudaPackages;
+      [
+        libcublas # libcublasLt.so.XX libcublas.so.XX
+        libcurand # libcurand.so.XX
+        libcufft # libcufft.so.XX
+        cudnn # libcudnn.soXX
+        cuda_cudart # libcudart.so.XX
+      ]
+    );
 
   propagatedBuildInputs = [
     coloredlogs
diff --git a/pkgs/development/python-modules/onvif-zeep-async/default.nix b/pkgs/development/python-modules/onvif-zeep-async/default.nix
index aacdb41fda1f7..8da15eabe8112 100644
--- a/pkgs/development/python-modules/onvif-zeep-async/default.nix
+++ b/pkgs/development/python-modules/onvif-zeep-async/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, ciso8601
-, fetchPypi
-, httpx
-, pythonOlder
-, zeep
+{
+  lib,
+  buildPythonPackage,
+  ciso8601,
+  fetchPypi,
+  httpx,
+  pythonOlder,
+  zeep,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     zeep
   ];
 
-  pythonImportsCheck = [
-    "onvif"
-  ];
+  pythonImportsCheck = [ "onvif" ];
 
   # Tests are not shipped
   doCheck = false;
diff --git a/pkgs/development/python-modules/onvif-zeep/default.nix b/pkgs/development/python-modules/onvif-zeep/default.nix
index 2c2946d53c00b..07a7141e48675 100644
--- a/pkgs/development/python-modules/onvif-zeep/default.nix
+++ b/pkgs/development/python-modules/onvif-zeep/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, zeep
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  zeep,
 }:
 
 buildPythonPackage rec {
@@ -16,17 +17,11 @@ buildPythonPackage rec {
     hash = "sha256-qou8Aqc+qlCJSwwY45+o0xilg6ZkxlvzWzyAKdHEC0k=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    zeep
-  ];
+  propagatedBuildInputs = [ zeep ];
 
-  pythonImportsCheck = [
-    "onvif"
-  ];
+  pythonImportsCheck = [ "onvif" ];
 
   # Tests require hardware
   doCheck = false;
diff --git a/pkgs/development/python-modules/oocsi/default.nix b/pkgs/development/python-modules/oocsi/default.nix
index 0739098913896..0bf286c3263b6 100644
--- a/pkgs/development/python-modules/oocsi/default.nix
+++ b/pkgs/development/python-modules/oocsi/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # Tests are not shipped
   doCheck = false;
 
-  pythonImportsCheck = [
-    "oocsi"
-  ];
+  pythonImportsCheck = [ "oocsi" ];
 
   meta = with lib; {
     description = "OOCSI library for Python";
diff --git a/pkgs/development/python-modules/opcua-widgets/default.nix b/pkgs/development/python-modules/opcua-widgets/default.nix
index 0f078aa6fc479..4d0ff49f2cce2 100644
--- a/pkgs/development/python-modules/opcua-widgets/default.nix
+++ b/pkgs/development/python-modules/opcua-widgets/default.nix
@@ -1,9 +1,10 @@
-{ pkgs
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pyqt5
-, asyncua
+{
+  pkgs,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pyqt5,
+  asyncua,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/open-clip-torch/default.nix b/pkgs/development/python-modules/open-clip-torch/default.nix
index 6de2c610fbf63..7efac863326c2 100644
--- a/pkgs/development/python-modules/open-clip-torch/default.nix
+++ b/pkgs/development/python-modules/open-clip-torch/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, braceexpand
-, ftfy
-, huggingface-hub
-, pandas
-, protobuf
-, pytestCheckHook
-, regex
-, sentencepiece
-, timm
-, torch
-, torchvision
-, tqdm
-, transformers
-, setuptools
-, webdataset
-, wheel
-, fetchFromGitHub
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  braceexpand,
+  ftfy,
+  huggingface-hub,
+  pandas,
+  protobuf,
+  pytestCheckHook,
+  regex,
+  sentencepiece,
+  timm,
+  torch,
+  torchvision,
+  tqdm,
+  transformers,
+  setuptools,
+  webdataset,
+  wheel,
+  fetchFromGitHub,
 }:
 buildPythonPackage rec {
   pname = "open-clip-torch";
@@ -58,26 +59,28 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "open_clip" ];
 
-  disabledTestPaths = lib.optionals (stdenv.isAarch64 || stdenv.isDarwin) [
-    "tests/test_wds.py"
-  ];
+  disabledTestPaths = lib.optionals (stdenv.isAarch64 || stdenv.isDarwin) [ "tests/test_wds.py" ];
 
-  disabledTests = [
-    # requires network
-    "test_download_pretrained_from_hfh"
-    "test_inference_simple"
-    "test_inference_with_data"
-    "test_pretrained_text_encoder"
-    "test_training_mt5"
-  ] ++ lib.optionals (stdenv.isAarch64 && stdenv.isLinux) [
-    "test_training"
-    "test_training_coca"
-    "test_training_unfreezing_vit"
-    "test_training_clip_with_jit"
-  ];
+  disabledTests =
+    [
+      # requires network
+      "test_download_pretrained_from_hfh"
+      "test_inference_simple"
+      "test_inference_with_data"
+      "test_pretrained_text_encoder"
+      "test_training_mt5"
+      # fails due to type errors
+      "test_num_shards"
+    ]
+    ++ lib.optionals (stdenv.isAarch64 && stdenv.isLinux) [
+      "test_training"
+      "test_training_coca"
+      "test_training_unfreezing_vit"
+      "test_training_clip_with_jit"
+    ];
 
   meta = with lib; {
-    description = "An open source implementation of CLIP";
+    description = "Open source implementation of CLIP";
     homepage = "https://github.com/mlfoundations/open_clip";
     license = licenses.asl20;
     maintainers = with maintainers; [ iynaix ];
diff --git a/pkgs/development/python-modules/open-garage/default.nix b/pkgs/development/python-modules/open-garage/default.nix
index 3064bceda1a07..ff50be9476e4c 100644
--- a/pkgs/development/python-modules/open-garage/default.nix
+++ b/pkgs/development/python-modules/open-garage/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "opengarage"
-  ];
+  pythonImportsCheck = [ "opengarage" ];
 
   meta = with lib; {
     description = "Python module to communicate with opengarage.io";
diff --git a/pkgs/development/python-modules/open-interpreter/default.nix b/pkgs/development/python-modules/open-interpreter/default.nix
index 2f256aa327011..0fd3600d5d3e7 100644
--- a/pkgs/development/python-modules/open-interpreter/default.nix
+++ b/pkgs/development/python-modules/open-interpreter/default.nix
@@ -1,29 +1,29 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
-, pythonRelaxDepsHook
-, poetry-core
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  poetry-core,
 
-, appdirs
-, astor
-, inquirer
-, litellm
-, pyyaml
-, rich
-, six
-, tiktoken
-, tokentrim
-, wget
-, psutil
-, html2image
-, ipykernel
-, jupyter-client
-, matplotlib
-, toml
-, posthog
-, openai
-, setuptools
+  appdirs,
+  astor,
+  inquirer,
+  litellm,
+  pyyaml,
+  rich,
+  six,
+  tiktoken,
+  tokentrim,
+  wget,
+  psutil,
+  html2image,
+  ipykernel,
+  jupyter-client,
+  matplotlib,
+  toml,
+  posthog,
+  openai,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -45,13 +45,10 @@ buildPythonPackage rec {
     substituteInPlace pyproject.toml --replace 'git-python = "^1.0.3"' ""
   '';
 
-  pythonRelaxDeps = [
-    "tiktoken"
-  ];
+  pythonRelaxDeps = [ "tiktoken" ];
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/open-meteo/default.nix b/pkgs/development/python-modules/open-meteo/default.nix
index 6da3633723694..88d54404cf1f3 100644
--- a/pkgs/development/python-modules/open-meteo/default.nix
+++ b/pkgs/development/python-modules/open-meteo/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, mashumaro
-, orjson
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mashumaro,
+  orjson,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
       --replace "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -48,9 +47,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "open_meteo"
-  ];
+  pythonImportsCheck = [ "open_meteo" ];
 
   meta = with lib; {
     changelog = "https://github.com/frenck/python-open-meteo/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/openai-triton/bin.nix b/pkgs/development/python-modules/openai-triton/bin.nix
index f5a4148d28a7b..bdf722bbc0fca 100644
--- a/pkgs/development/python-modules/openai-triton/bin.nix
+++ b/pkgs/development/python-modules/openai-triton/bin.nix
@@ -1,19 +1,19 @@
-{ lib
-, stdenv
-, addOpenGLRunpath
-, cudaPackages
-, buildPythonPackage
-, fetchurl
-, isPy38
-, isPy39
-, isPy310
-, isPy311
-, python
-, autoPatchelfHook
-, filelock
-, lit
-, pythonRelaxDepsHook
-, zlib
+{
+  lib,
+  stdenv,
+  addOpenGLRunpath,
+  cudaPackages,
+  buildPythonPackage,
+  fetchurl,
+  isPy38,
+  isPy39,
+  isPy310,
+  isPy311,
+  python,
+  autoPatchelfHook,
+  filelock,
+  lit,
+  zlib,
 }:
 
 buildPythonPackage rec {
@@ -22,19 +22,24 @@ buildPythonPackage rec {
   format = "wheel";
 
   src =
-    let pyVerNoDot = lib.replaceStrings [ "." ] [ "" ] python.pythonVersion;
-        unsupported = throw "Unsupported system";
-        srcs = (import ./binary-hashes.nix version)."${stdenv.system}-${pyVerNoDot}" or unsupported;
-    in fetchurl srcs;
+    let
+      pyVerNoDot = lib.replaceStrings [ "." ] [ "" ] python.pythonVersion;
+      unsupported = throw "Unsupported system";
+      srcs = (import ./binary-hashes.nix version)."${stdenv.system}-${pyVerNoDot}" or unsupported;
+    in
+    fetchurl srcs;
 
   disabled = !(isPy38 || isPy39 || isPy310 || isPy311);
 
-  pythonRemoveDeps = [ "cmake" "torch" ];
+  pythonRemoveDeps = [
+    "cmake"
+    # torch and triton refer to each other so this hook is included to mitigate that.
+    "torch"
+  ];
 
   buildInputs = [ zlib ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook # torch and triton refer to each other so this hook is included to mitigate that.
     autoPatchelfHook
   ];
 
@@ -47,34 +52,44 @@ buildPythonPackage rec {
   dontStrip = true;
 
   # If this breaks, consider replacing with "${cuda_nvcc}/bin/ptxas"
-  postFixup = ''
-    chmod +x "$out/${python.sitePackages}/triton/third_party/cuda/bin/ptxas"
-  '' +
-  (let
-    # Bash was getting weird without linting,
-    # but basically upstream contains [cc, ..., "-lcuda", ...]
-    # and we replace it with [..., "-lcuda", "-L/run/opengl-driver/lib", "-L$stubs", ...]
-    old = [ "-lcuda" ];
-    new = [ "-lcuda" "-L${addOpenGLRunpath.driverLink}" "-L${cudaPackages.cuda_cudart}/lib/stubs/" ];
-
-    quote = x: ''"${x}"'';
-    oldStr = lib.concatMapStringsSep ", " quote old;
-    newStr = lib.concatMapStringsSep ", " quote new;
-  in
+  postFixup =
     ''
-      substituteInPlace $out/${python.sitePackages}/triton/common/build.py \
-        --replace '${oldStr}' '${newStr}'
-    '');
+      chmod +x "$out/${python.sitePackages}/triton/third_party/cuda/bin/ptxas"
+    ''
+    + (
+      let
+        # Bash was getting weird without linting,
+        # but basically upstream contains [cc, ..., "-lcuda", ...]
+        # and we replace it with [..., "-lcuda", "-L/run/opengl-driver/lib", "-L$stubs", ...]
+        old = [ "-lcuda" ];
+        new = [
+          "-lcuda"
+          "-L${addOpenGLRunpath.driverLink}"
+          "-L${cudaPackages.cuda_cudart}/lib/stubs/"
+        ];
+
+        quote = x: ''"${x}"'';
+        oldStr = lib.concatMapStringsSep ", " quote old;
+        newStr = lib.concatMapStringsSep ", " quote new;
+      in
+      ''
+        substituteInPlace $out/${python.sitePackages}/triton/common/build.py \
+          --replace '${oldStr}' '${newStr}'
+      ''
+    );
 
   meta = with lib; {
-    description = "A language and compiler for custom Deep Learning operations";
+    description = "Language and compiler for custom Deep Learning operations";
     homepage = "https://github.com/openai/triton/";
     changelog = "https://github.com/openai/triton/releases/tag/v${version}";
     # Includes NVIDIA's ptxas, but redistributions of the binary are not limited.
     # https://docs.nvidia.com/cuda/eula/index.html
     # triton's license is MIT.
     # openai-triton-bin includes ptxas binary, therefore unfreeRedistributable is set.
-    license = with licenses; [ unfreeRedistributable mit ];
+    license = with licenses; [
+      unfreeRedistributable
+      mit
+    ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ junjihashimoto ];
diff --git a/pkgs/development/python-modules/openai-triton/binary-hashes.nix b/pkgs/development/python-modules/openai-triton/binary-hashes.nix
index d5f588dc947c7..5c542ac187ee3 100644
--- a/pkgs/development/python-modules/openai-triton/binary-hashes.nix
+++ b/pkgs/development/python-modules/openai-triton/binary-hashes.nix
@@ -5,7 +5,8 @@
 
 # To add a new version, run "prefetch.sh 'new-version'" to paste the generated file as follows.
 
-version : builtins.getAttr version {
+version:
+builtins.getAttr version {
   "2.1.0" = {
     x86_64-linux-38 = {
       name = "triton-2.1.0-cp38-cp38-linux_x86_64.whl";
diff --git a/pkgs/development/python-modules/openai-triton/default.nix b/pkgs/development/python-modules/openai-triton/default.nix
index 2bdb8d918af3f..051e844ff56f4 100644
--- a/pkgs/development/python-modules/openai-triton/default.nix
+++ b/pkgs/development/python-modules/openai-triton/default.nix
@@ -1,29 +1,29 @@
-{ lib
-, config
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, addOpenGLRunpath
-, setuptools
-, pytestCheckHook
-, pythonRelaxDepsHook
-, cmake
-, ninja
-, pybind11
-, gtest
-, zlib
-, ncurses
-, libxml2
-, lit
-, llvm
-, filelock
-, torchWithRocm
-, python
-
-, runCommand
-
-, cudaPackages
-, cudaSupport ? config.cudaSupport
+{
+  lib,
+  config,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  addOpenGLRunpath,
+  setuptools,
+  pytestCheckHook,
+  cmake,
+  ninja,
+  pybind11,
+  gtest,
+  zlib,
+  ncurses,
+  libxml2,
+  lit,
+  llvm,
+  filelock,
+  torchWithRocm,
+  python,
+
+  runCommand,
+
+  cudaPackages,
+  cudaSupport ? config.cudaSupport,
 }:
 
 let
@@ -41,22 +41,23 @@ buildPythonPackage rec {
     hash = "sha256-8UTUwLH+SriiJnpejdrzz9qIquP2zBp1/uwLdHmv0XQ=";
   };
 
-  patches = [
-    # fix overflow error
-    (fetchpatch {
-      url = "https://github.com/openai/triton/commit/52c146f66b79b6079bcd28c55312fc6ea1852519.patch";
-      hash = "sha256-098/TCQrzvrBAbQiaVGCMaF3o5Yc3yWDxzwSkzIuAtY=";
-    })
-  ] ++ lib.optionals (!cudaSupport) [
-    ./0000-dont-download-ptxas.patch
-    # openai-triton wants to get ptxas version even if ptxas is not
-    # used, resulting in ptxas not found error.
-    ./0001-ptxas-disable-version-key-for-non-cuda-targets.patch
-  ];
+  patches =
+    [
+      # fix overflow error
+      (fetchpatch {
+        url = "https://github.com/openai/triton/commit/52c146f66b79b6079bcd28c55312fc6ea1852519.patch";
+        hash = "sha256-098/TCQrzvrBAbQiaVGCMaF3o5Yc3yWDxzwSkzIuAtY=";
+      })
+    ]
+    ++ lib.optionals (!cudaSupport) [
+      ./0000-dont-download-ptxas.patch
+      # openai-triton wants to get ptxas version even if ptxas is not
+      # used, resulting in ptxas not found error.
+      ./0001-ptxas-disable-version-key-for-non-cuda-targets.patch
+    ];
 
   nativeBuildInputs = [
     setuptools
-    pythonRelaxDepsHook
     # pytestCheckHook # Requires torch (circular dependency) and probably needs GPUs:
     cmake
     ninja
@@ -84,58 +85,67 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  postPatch = let
-    # Bash was getting weird without linting,
-    # but basically upstream contains [cc, ..., "-lcuda", ...]
-    # and we replace it with [..., "-lcuda", "-L/run/opengl-driver/lib", "-L$stubs", ...]
-    old = [ "-lcuda" ];
-    new = [ "-lcuda" "-L${addOpenGLRunpath.driverLink}" "-L${cudaPackages.cuda_cudart}/lib/stubs/" ];
-
-    quote = x: ''"${x}"'';
-    oldStr = lib.concatMapStringsSep ", " quote old;
-    newStr = lib.concatMapStringsSep ", " quote new;
-  in ''
-    # Use our `cmakeFlags` instead and avoid downloading dependencies
-    substituteInPlace python/setup.py \
-      --replace "= get_thirdparty_packages(triton_cache_path)" "= os.environ[\"cmakeFlags\"].split()"
-
-    # Already defined in llvm, when built with -DLLVM_INSTALL_UTILS
-    substituteInPlace bin/CMakeLists.txt \
-      --replace "add_subdirectory(FileCheck)" ""
-
-    # Don't fetch googletest
-    substituteInPlace unittest/CMakeLists.txt \
-      --replace "include (\''${CMAKE_CURRENT_SOURCE_DIR}/googletest.cmake)" ""\
-      --replace "include(GoogleTest)" "find_package(GTest REQUIRED)"
-  '' + lib.optionalString cudaSupport ''
-    # Use our linker flags
-    substituteInPlace python/triton/common/build.py \
-      --replace '${oldStr}' '${newStr}'
-  '';
+  postPatch =
+    let
+      # Bash was getting weird without linting,
+      # but basically upstream contains [cc, ..., "-lcuda", ...]
+      # and we replace it with [..., "-lcuda", "-L/run/opengl-driver/lib", "-L$stubs", ...]
+      old = [ "-lcuda" ];
+      new = [
+        "-lcuda"
+        "-L${addOpenGLRunpath.driverLink}"
+        "-L${cudaPackages.cuda_cudart}/lib/stubs/"
+      ];
+
+      quote = x: ''"${x}"'';
+      oldStr = lib.concatMapStringsSep ", " quote old;
+      newStr = lib.concatMapStringsSep ", " quote new;
+    in
+    ''
+      # Use our `cmakeFlags` instead and avoid downloading dependencies
+      substituteInPlace python/setup.py \
+        --replace "= get_thirdparty_packages(triton_cache_path)" "= os.environ[\"cmakeFlags\"].split()"
+
+      # Already defined in llvm, when built with -DLLVM_INSTALL_UTILS
+      substituteInPlace bin/CMakeLists.txt \
+        --replace "add_subdirectory(FileCheck)" ""
+
+      # Don't fetch googletest
+      substituteInPlace unittest/CMakeLists.txt \
+        --replace "include (\''${CMAKE_CURRENT_SOURCE_DIR}/googletest.cmake)" ""\
+        --replace "include(GoogleTest)" "find_package(GTest REQUIRED)"
+    ''
+    + lib.optionalString cudaSupport ''
+      # Use our linker flags
+      substituteInPlace python/triton/common/build.py \
+        --replace '${oldStr}' '${newStr}'
+    '';
 
   # Avoid GLIBCXX mismatch with other cuda-enabled python packages
-  preConfigure = ''
-    # Ensure that the build process uses the requested number of cores
-    export MAX_JOBS="$NIX_BUILD_CORES"
-
-    # Upstream's setup.py tries to write cache somewhere in ~/
-    export HOME=$(mktemp -d)
-
-    # Upstream's github actions patch setup.cfg to write base-dir. May be redundant
-    echo "
-    [build_ext]
-    base-dir=$PWD" >> python/setup.cfg
-
-    # The rest (including buildPhase) is relative to ./python/
-    cd python
-  '' + lib.optionalString cudaSupport ''
-    export CC=${cudaPackages.backendStdenv.cc}/bin/cc;
-    export CXX=${cudaPackages.backendStdenv.cc}/bin/c++;
-
-    # Work around download_and_copy_ptxas()
-    mkdir -p $PWD/triton/third_party/cuda/bin
-    ln -s ${ptxas} $PWD/triton/third_party/cuda/bin
-  '';
+  preConfigure =
+    ''
+      # Ensure that the build process uses the requested number of cores
+      export MAX_JOBS="$NIX_BUILD_CORES"
+
+      # Upstream's setup.py tries to write cache somewhere in ~/
+      export HOME=$(mktemp -d)
+
+      # Upstream's github actions patch setup.cfg to write base-dir. May be redundant
+      echo "
+      [build_ext]
+      base-dir=$PWD" >> python/setup.cfg
+
+      # The rest (including buildPhase) is relative to ./python/
+      cd python
+    ''
+    + lib.optionalString cudaSupport ''
+      export CC=${cudaPackages.backendStdenv.cc}/bin/cc;
+      export CXX=${cudaPackages.backendStdenv.cc}/bin/c++;
+
+      # Work around download_and_copy_ptxas()
+      mkdir -p $PWD/triton/third_party/cuda/bin
+      ln -s ${ptxas} $PWD/triton/third_party/cuda/bin
+    '';
 
   # CMake is run by setup.py instead
   dontUseCmakeConfigure = true;
@@ -168,13 +178,16 @@ buildPythonPackage rec {
     inherit torchWithRocm;
     # Implemented as alternative to pythonImportsCheck, in case if circular dependency on torch occurs again,
     # and pythonImportsCheck is commented back.
-    import-triton = runCommand "import-triton" { nativeBuildInputs = [(python.withPackages (ps: [ps.openai-triton]))]; } ''
-      python << \EOF
-      import triton
-      import triton.language
-      EOF
-      touch "$out"
-    '';
+    import-triton =
+      runCommand "import-triton"
+        { nativeBuildInputs = [ (python.withPackages (ps: [ ps.openai-triton ])) ]; }
+        ''
+          python << \EOF
+          import triton
+          import triton.language
+          EOF
+          touch "$out"
+        '';
   };
 
   pythonRemoveDeps = [
@@ -189,8 +202,11 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Language and compiler for writing highly efficient custom Deep-Learning primitives";
     homepage = "https://github.com/openai/triton";
-    platforms = lib.platforms.unix;
+    platforms = platforms.linux;
     license = licenses.mit;
-    maintainers = with maintainers; [ SomeoneSerge Madouura ];
+    maintainers = with maintainers; [
+      SomeoneSerge
+      Madouura
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/openai-whisper/default.nix b/pkgs/development/python-modules/openai-whisper/default.nix
index 0038098e586ab..d6933e1aeea1b 100644
--- a/pkgs/development/python-modules/openai-whisper/default.nix
+++ b/pkgs/development/python-modules/openai-whisper/default.nix
@@ -1,26 +1,28 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, substituteAll
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  substituteAll,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# runtime
-, ffmpeg-headless
+  # runtime
+  ffmpeg-headless,
 
-# propagates
-, more-itertools
-, numba
-, numpy
-, openai-triton
-, tiktoken
-, torch
-, tqdm
+  # propagates
+  more-itertools,
+  numba,
+  numpy,
+  openai-triton,
+  tiktoken,
+  torch,
+  tqdm,
 
-# tests
-, pytestCheckHook
-, scipy
+  # tests
+  pytestCheckHook,
+  scipy,
 }:
 
 buildPythonPackage rec {
@@ -42,20 +44,16 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-    scipy
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     more-itertools
     numba
     numpy
-    openai-triton
     tiktoken
     torch
     tqdm
-  ];
+  ] ++ lib.optionals (lib.meta.availableOn stdenv.hostPlatform openai-triton) [ openai-triton ];
 
   preCheck = ''
     export HOME=$TMPDIR
@@ -63,6 +61,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     pytestCheckHook
+    scipy
   ];
 
   disabledTests = [
@@ -79,6 +78,9 @@ buildPythonPackage rec {
     mainProgram = "whisper";
     homepage = "https://github.com/openai/whisper";
     license = licenses.mit;
-    maintainers = with maintainers; [ hexa MayNiklas ];
+    maintainers = with maintainers; [
+      hexa
+      MayNiklas
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/openai/default.nix b/pkgs/development/python-modules/openai/default.nix
index a2720bfb8567a..ac6fb58446fcd 100644
--- a/pkgs/development/python-modules/openai/default.nix
+++ b/pkgs/development/python-modules/openai/default.nix
@@ -25,7 +25,7 @@
 
 buildPythonPackage rec {
   pname = "openai";
-  version = "1.23.6";
+  version = "1.35.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7.1";
@@ -34,7 +34,7 @@ buildPythonPackage rec {
     owner = "openai";
     repo = "openai-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-b7LkZc8XGNOG0HHStlFikatKWQ5gob98XLsei/vOq4c=";
+    hash = "sha256-GOduJdMNVWK3Hl05mQI7kpgzugEX2MJKEqTyR/ldW9Q=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/openaiauth/default.nix b/pkgs/development/python-modules/openaiauth/default.nix
index 1b33438e070fe..834ca3ed258b3 100644
--- a/pkgs/development/python-modules/openaiauth/default.nix
+++ b/pkgs/development/python-modules/openaiauth/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, tls-client
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  tls-client,
 }:
 
 buildPythonPackage rec {
@@ -19,20 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-9SrptiheiM5s9YI6Ht68ahDGMFADWfBQgAWUBY3EEJ8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    tls-client
-  ];
+  propagatedBuildInputs = [ tls-client ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "OpenAIAuth"
-  ];
+  pythonImportsCheck = [ "OpenAIAuth" ];
 
   meta = with lib; {
     description = "Library for authenticating with the OpenAI API";
diff --git a/pkgs/development/python-modules/openant/default.nix b/pkgs/development/python-modules/openant/default.nix
index 0a655030a37d9..a4a54e9a879dc 100644
--- a/pkgs/development/python-modules/openant/default.nix
+++ b/pkgs/development/python-modules/openant/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, pyusb
-, influxdb-client
-, pyserial
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  pyusb,
+  influxdb-client,
+  pyserial,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-wDtHlkVyD7mMDXZ4LGMgatr9sSlQKVbgkYsKvHGr9Pc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   postInstall = ''
     install -dm755 "$out/etc/udev/rules.d"
@@ -35,21 +34,13 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ pyusb ];
 
   passthru.optional-dependencies = {
-    serial = [
-      pyserial
-    ];
-    influx = [
-      influxdb-client
-    ];
+    serial = [ pyserial ];
+    influx = [ influxdb-client ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "openant"
-  ];
+  pythonImportsCheck = [ "openant" ];
 
   meta = with lib; {
     homepage = "https://github.com/Tigge/openant";
@@ -57,5 +48,4 @@ buildPythonPackage rec {
     mainProgram = "openant";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/openapi-core/default.nix b/pkgs/development/python-modules/openapi-core/default.nix
index 5e1c1d8ae9600..61c4d891bbef4 100644
--- a/pkgs/development/python-modules/openapi-core/default.nix
+++ b/pkgs/development/python-modules/openapi-core/default.nix
@@ -1,36 +1,37 @@
-{ lib
-, aiohttp
-, aioitertools
-, asgiref
-, buildPythonPackage
-, django
-, falcon
-, fastapi
-, fetchFromGitHub
-, flask
-, httpx
-, isodate
-, jsonschema
-, jsonschema-spec
-, more-itertools
-, multidict
-, openapi-schema-validator
-, openapi-spec-validator
-, parse
-, poetry-core
-, pytest-aiohttp
-, pytest7CheckHook
-, pythonOlder
-, responses
-, requests
-, starlette
-, webob
-, werkzeug
+{
+  lib,
+  aiohttp,
+  aioitertools,
+  asgiref,
+  buildPythonPackage,
+  django,
+  falcon,
+  fastapi,
+  fetchFromGitHub,
+  flask,
+  httpx,
+  isodate,
+  jsonschema,
+  jsonschema-spec,
+  more-itertools,
+  multidict,
+  openapi-schema-validator,
+  openapi-spec-validator,
+  parse,
+  poetry-core,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  responses,
+  requests,
+  starlette,
+  webob,
+  werkzeug,
 }:
 
 buildPythonPackage rec {
   pname = "openapi-core";
-  version = "0.19.0";
+  version = "0.19.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -39,16 +40,14 @@ buildPythonPackage rec {
     owner = "p1c2u";
     repo = "openapi-core";
     rev = "refs/tags/${version}";
-    hash = "sha256-+YYcSNX717JjVHMk4Seb145iq9/rQZEVQn27Ulk1A3E=";
+    hash = "sha256-6FFJsXObIA9tchTJJmoSu9u+/ZuKuw29AYsLEmvHXrY=";
   };
 
   postPatch = ''
     sed -i "/--cov/d" pyproject.toml
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     isodate
@@ -67,21 +66,11 @@ buildPythonPackage rec {
       aiohttp
       multidict
     ];
-    django = [
-      django
-    ];
-    falcon = [
-      falcon
-    ];
-    fastapi = [
-      fastapi
-    ];
-    flask = [
-      flask
-    ];
-    requests = [
-      requests
-    ];
+    django = [ django ];
+    falcon = [ falcon ];
+    fastapi = [ fastapi ];
+    flask = [ flask ];
+    requests = [ requests ];
     starlette = [
       aioitertools
       starlette
@@ -93,13 +82,14 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     httpx
     pytest-aiohttp
-    pytest7CheckHook
+    pytestCheckHook
     responses
     webob
   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
   pytestFlagsArray = [
-    "-W" "ignore::DeprecationWarning"
+    "-W"
+    "ignore::DeprecationWarning"
   ];
 
   disabledTestPaths = [
diff --git a/pkgs/development/python-modules/openapi-schema-validator/default.nix b/pkgs/development/python-modules/openapi-schema-validator/default.nix
index 4b0608c7572e4..f8a3918055628 100644
--- a/pkgs/development/python-modules/openapi-schema-validator/default.nix
+++ b/pkgs/development/python-modules/openapi-schema-validator/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-
-# build-system
-, poetry-core
-
-# propagates
-, jsonschema
-, jsonschema-specifications
-, rfc3339-validator
-
-# tests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # build-system
+  poetry-core,
+
+  # propagates
+  jsonschema,
+  jsonschema-specifications,
+  rfc3339-validator,
+
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
     sed -i "/--cov/d" pyproject.toml
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     jsonschema
@@ -43,9 +42,7 @@ buildPythonPackage rec {
     rfc3339-validator
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # https://github.com/python-openapi/openapi-schema-validator/issues/153
diff --git a/pkgs/development/python-modules/openapi-spec-validator/default.nix b/pkgs/development/python-modules/openapi-spec-validator/default.nix
index c43439e36ba0a..54c7d5fc19b97 100644
--- a/pkgs/development/python-modules/openapi-spec-validator/default.nix
+++ b/pkgs/development/python-modules/openapi-spec-validator/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
 
-# build-system
-, poetry-core
+  # build-system
+  poetry-core,
 
-# propagates
-, importlib-resources
-, jsonschema
-, jsonschema-path
-, lazy-object-proxy
-, openapi-schema-validator
+  # propagates
+  importlib-resources,
+  jsonschema,
+  jsonschema-path,
+  lazy-object-proxy,
+  openapi-schema-validator,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -36,22 +37,16 @@ buildPythonPackage rec {
     sed -i '/--cov/d' pyproject.toml
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     jsonschema
     jsonschema-path
     lazy-object-proxy
     openapi-schema-validator
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    importlib-resources
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # network access
diff --git a/pkgs/development/python-modules/openapi3/default.nix b/pkgs/development/python-modules/openapi3/default.nix
index 72e852d209c93..ed2b1d5904aa6 100644
--- a/pkgs/development/python-modules/openapi3/default.nix
+++ b/pkgs/development/python-modules/openapi3/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, requests
-, pyyaml
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  requests,
+  pyyaml,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,26 +20,20 @@ buildPythonPackage rec {
     hash = "sha256-ohpJBXPYnKaa2ny+WFrbL8pJZCV/bzod9THxKBVFXSw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     requests
     pyyaml
   ];
 
-  nativeCheckinputs = [
-    pytestCheckHook
-  ];
+  nativeCheckinputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-   "openapi3"
-  ];
+  pythonImportsCheck = [ "openapi3" ];
 
   meta = with lib; {
     changelog = "https://github.com/Dorthu/openapi3/releases/tag/${version}";
-    description = "A Python3 OpenAPI 3 Spec Parser";
+    description = "Python3 OpenAPI 3 Spec Parser";
     homepage = "https://github.com/Dorthu/openapi3";
     license = licenses.bsd3;
     maintainers = with maintainers; [ techknowlogick ];
diff --git a/pkgs/development/python-modules/openbabel-bindings/default.nix b/pkgs/development/python-modules/openbabel-bindings/default.nix
index 6cac1fb385b22..b0e935061743a 100644
--- a/pkgs/development/python-modules/openbabel-bindings/default.nix
+++ b/pkgs/development/python-modules/openbabel-bindings/default.nix
@@ -1,4 +1,9 @@
-{ lib, openbabel, python, buildPythonPackage }:
+{
+  lib,
+  openbabel,
+  python,
+  buildPythonPackage,
+}:
 
 buildPythonPackage rec {
   inherit (openbabel) pname version;
diff --git a/pkgs/development/python-modules/opencensus-context/default.nix b/pkgs/development/python-modules/opencensus-context/default.nix
index ae7897eae7acf..1cd1b16a14abd 100644
--- a/pkgs/development/python-modules/opencensus-context/default.nix
+++ b/pkgs/development/python-modules/opencensus-context/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-, unittestCheckHook
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-oDEIw8ENjIC7Xd9cih8DMWH6YZcqmRf5ubOhhRfwCIw=";
   };
 
-  pythonNamespaces = [
-    "opencensus.common"
-  ];
+  pythonNamespaces = [ "opencensus.common" ];
 
   doCheck = false; # No tests in archive
 
diff --git a/pkgs/development/python-modules/opencensus-ext-azure/default.nix b/pkgs/development/python-modules/opencensus-ext-azure/default.nix
index 4effafe3311a0..dc0aa827b99ba 100644
--- a/pkgs/development/python-modules/opencensus-ext-azure/default.nix
+++ b/pkgs/development/python-modules/opencensus-ext-azure/default.nix
@@ -1,12 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, azure-core
-, azure-identity
-, opencensus
-, psutil
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  azure-core,
+  azure-identity,
+  opencensus,
+  psutil,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -14,8 +14,6 @@ buildPythonPackage rec {
   version = "1.1.13";
   format = "setuptools";
 
-  disabled = pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-rsMEchdwBTebpWpwKgl9YYxfV1WOG7ZnbsdflIEwaSo=";
@@ -37,6 +35,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/census-instrumentation/opencensus-python/tree/master/contrib/opencensus-ext-azure";
     description = "OpenCensus Azure Monitor Exporter";
     license = licenses.asl20;
-    maintainers = with maintainers; [ billhuang evilmav ];
+    maintainers = with maintainers; [
+      billhuang
+      evilmav
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/opencensus/default.nix b/pkgs/development/python-modules/opencensus/default.nix
index a1fde6da755db..dc52ff0d91802 100644
--- a/pkgs/development/python-modules/opencensus/default.nix
+++ b/pkgs/development/python-modules/opencensus/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-, unittestCheckHook
-, google-api-core
-, opencensus-context
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  unittestCheckHook,
+  google-api-core,
+  opencensus-context,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,14 @@ buildPythonPackage rec {
     opencensus-context
   ];
 
-  pythonNamespaces = [
-    "opencensus.common"
-  ];
+  pythonNamespaces = [ "opencensus.common" ];
 
   doCheck = false; # No tests in sdist
 
-  pythonImportsCheck = [
-    "opencensus.common"
-  ];
+  pythonImportsCheck = [ "opencensus.common" ];
 
   meta = with lib; {
-    description = "A stats collection and distributed tracing framework";
+    description = "Stats collection and distributed tracing framework";
     homepage = "https://github.com/census-instrumentation/opencensus-python";
     license = licenses.asl20;
     maintainers = with maintainers; [ billhuang ];
diff --git a/pkgs/development/python-modules/opencontainers/default.nix b/pkgs/development/python-modules/opencontainers/default.nix
index f60eb0dd65685..b2677b7044e40 100644
--- a/pkgs/development/python-modules/opencontainers/default.nix
+++ b/pkgs/development/python-modules/opencontainers/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -19,17 +20,11 @@ buildPythonPackage rec {
     sed -i "/pytest-runner/d" setup.py
   '';
 
-  passthru.optional-dependencies.reggie = [
-    requests
-  ];
+  passthru.optional-dependencies.reggie = [ requests ];
 
-  pythonImportsCheck = [
-    "opencontainers"
-  ];
+  pythonImportsCheck = [ "opencontainers" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.reggie;
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.reggie;
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/openerz-api/default.nix b/pkgs/development/python-modules/openerz-api/default.nix
index 698816a62620b..500aa9ca3af2f 100644
--- a/pkgs/development/python-modules/openerz-api/default.nix
+++ b/pkgs/development/python-modules/openerz-api/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
-, testfixtures
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
+  testfixtures,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-CwK61StspZJt0TALv76zfibUzlriwp9HRoYOtX9bU+c=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     pytestCheckHook
     testfixtures
   ];
 
-  pythonImportsCheck = [
-    "openerz_api"
-  ];
+  pythonImportsCheck = [ "openerz_api" ];
 
   meta = with lib; {
     description = "Python module to interact with the OpenERZ API";
diff --git a/pkgs/development/python-modules/openevsewifi/default.nix b/pkgs/development/python-modules/openevsewifi/default.nix
index 86bb9636a2e3f..8a65b3e56f34c 100644
--- a/pkgs/development/python-modules/openevsewifi/default.nix
+++ b/pkgs/development/python-modules/openevsewifi/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, deprecated
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
+{
+  lib,
+  buildPythonPackage,
+  deprecated,
+  fetchFromGitHub,
+  fetchpatch,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-7+BC5WG0JoyHNjgsoJBQRVDpmdXMJCV4bMf6pIaS5qo=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     deprecated
@@ -52,9 +51,7 @@ buildPythonPackage rec {
       --replace 'pytest-cov = "^2.8.1"' ""
   '';
 
-  pythonImportsCheck = [
-    "openevsewifi"
-  ];
+  pythonImportsCheck = [ "openevsewifi" ];
 
   meta = with lib; {
     description = "Module for communicating with the wifi module from OpenEVSE";
diff --git a/pkgs/development/python-modules/openhomedevice/default.nix b/pkgs/development/python-modules/openhomedevice/default.nix
index 2e7ddf92a1d63..b08b23905ce8c 100644
--- a/pkgs/development/python-modules/openhomedevice/default.nix
+++ b/pkgs/development/python-modules/openhomedevice/default.nix
@@ -1,28 +1,32 @@
-{ lib
-, aioresponses
-, async-upnp-client
-, buildPythonPackage
-, fetchFromGitHub
-, lxml
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aioresponses,
+  async-upnp-client,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxml,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "openhomedevice";
-  version = "2.2";
-  format = "setuptools";
+  version = "2.3";
+  pyproject = true;
 
-  disabled = pythonOlder "3.5";
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "bazwilliams";
-    repo = pname;
+    repo = "openhomedevice";
     rev = "refs/tags/${version}";
-    hash = "sha256-GGp7nKFH01m1KW6yMkKlAdd26bDi8JDWva6OQ0CWMIw=";
+    hash = "sha256-q8UG+PYtJ7lLlnw2Rt5O/SxOrUtYmwO1cEG1WocaQ7M=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     async-upnp-client
     lxml
   ];
@@ -32,13 +36,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "openhomedevice"
-  ];
+  pythonImportsCheck = [ "openhomedevice" ];
 
-  pytestFlagsArray = [
-    "tests/*.py"
-  ];
+  pytestFlagsArray = [ "tests/*.py" ];
 
   meta = with lib; {
     description = "Python module to access Linn Ds and Openhome devices";
diff --git a/pkgs/development/python-modules/openidc-client/default.nix b/pkgs/development/python-modules/openidc-client/default.nix
index a2110cb6a309d..99a00cde6621c 100644
--- a/pkgs/development/python-modules/openidc-client/default.nix
+++ b/pkgs/development/python-modules/openidc-client/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, requests }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+}:
 
 buildPythonPackage rec {
   pname = "openidc-client";
@@ -14,7 +19,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A CLI python OpenID Connect client with token caching and management";
+    description = "CLI python OpenID Connect client with token caching and management";
     homepage = "https://github.com/puiterwijk";
     license = licenses.mit;
     maintainers = with maintainers; [ disassembler ];
diff --git a/pkgs/development/python-modules/openllm-client/default.nix b/pkgs/development/python-modules/openllm-client/default.nix
index 221f0ab8011c2..1cb07bc76d05c 100644
--- a/pkgs/development/python-modules/openllm-client/default.nix
+++ b/pkgs/development/python-modules/openllm-client/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, bentoml
-, hatch-fancy-pypi-readme
-, hatch-vcs
-, hatchling
-, anyio
-, distro
-, httpx
-, httpx-auth
-, openllm-core
-, soundfile
-, transformers
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  bentoml,
+  hatch-fancy-pypi-readme,
+  hatch-vcs,
+  hatchling,
+  anyio,
+  distro,
+  httpx,
+  httpx-auth,
+  openllm-core,
+  soundfile,
+  transformers,
 }:
 
 buildPythonPackage rec {
@@ -44,12 +45,8 @@ buildPythonPackage rec {
   ];
 
   optional-dependencies = {
-    grpc = [
-      bentoml
-    ] ++ bentoml.optional-dependencies.grpc;
-    auth = [
-      httpx-auth
-    ];
+    grpc = [ bentoml ] ++ bentoml.optional-dependencies.grpc;
+    auth = [ httpx-auth ];
     agents = [
       transformers
       # diffusers
diff --git a/pkgs/development/python-modules/openllm-core/default.nix b/pkgs/development/python-modules/openllm-core/default.nix
index f59d92615cf80..1da77dee3242b 100644
--- a/pkgs/development/python-modules/openllm-core/default.nix
+++ b/pkgs/development/python-modules/openllm-core/default.nix
@@ -1,30 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pythonRelaxDepsHook
-, accelerate
-, attrs
-, bitsandbytes
-, bentoml
-, cattrs
-, click-option-group
-, datasets
-, deepmerge
-, hatch-fancy-pypi-readme
-, hatch-vcs
-, hatchling
-, inflection
-, mypy-extensions
-, orjson
-, peft
-, transformers
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  accelerate,
+  attrs,
+  bitsandbytes,
+  bentoml,
+  cattrs,
+  click-option-group,
+  datasets,
+  deepmerge,
+  hatch-fancy-pypi-readme,
+  hatch-vcs,
+  hatchling,
+  inflection,
+  mypy-extensions,
+  orjson,
+  peft,
+  pydantic,
+  transformers,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "openllm-core";
-  version = "0.4.44";
+  version = "0.5.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -33,25 +34,20 @@ buildPythonPackage rec {
     owner = "bentoml";
     repo = "OpenLLM";
     rev = "refs/tags/v${version}";
-    hash = "sha256-kRR715Vnt9ZAmxuWvtH0z093crH0JFrEKPtbjO3QMRc=";
+    hash = "sha256-sEZLszzoo39WUnziHGp7zWNO0YaqkXeXAoIxvyhw42w=";
   };
 
   sourceRoot = "${src.name}/openllm-core";
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace-fail "hatch-vcs==0.3.0" "hatch-vcs" \
-      --replace-fail "hatchling==1.18.0" "hatchling" \
-      --replace-fail "hatch-fancy-pypi-readme==23.1.0" "hatch-fancy-pypi-readme"
+      --replace-fail "hatch-vcs==" "hatch-vcs>=" \
+      --replace-fail "hatchling==" "hatchling>=" \
+      --replace-fail "hatch-fancy-pypi-readme==" "hatch-fancy-pypi-readme>="
   '';
 
-  pythonRelaxDeps = [
-    "cattrs"
-  ];
+  pythonRelaxDeps = [ "cattrs" ];
 
   build-system = [
     hatch-fancy-pypi-readme
@@ -62,6 +58,7 @@ buildPythonPackage rec {
   dependencies = [
     attrs
     cattrs
+    pydantic
     # not listed in pyproject.toml, but required at runtime
     click-option-group
     deepmerge
@@ -75,9 +72,7 @@ buildPythonPackage rec {
     vllm = [
       # vllm
     ];
-    bentoml = [
-      bentoml
-    ];
+    bentoml = [ bentoml ];
     fine-tune = [
       accelerate
       bitsandbytes
@@ -85,13 +80,15 @@ buildPythonPackage rec {
       peft
       transformers
       # trl
-    ] ++ transformers.optional-dependencies.torch
-      ++ transformers.optional-dependencies.tokenizers;
-    full = with optional-dependencies; (
-      vllm
-      # use absolute path to disambiguate with derivbation argument
-      ++ optional-dependencies.bentoml
-      ++ fine-tune );
+    ] ++ transformers.optional-dependencies.torch ++ transformers.optional-dependencies.tokenizers;
+    full =
+      with optional-dependencies;
+      (
+        vllm
+        # use absolute path to disambiguate with derivbation argument
+        ++ optional-dependencies.bentoml
+        ++ fine-tune
+      );
   };
 
   # there is no tests
diff --git a/pkgs/development/python-modules/openllm/default.nix b/pkgs/development/python-modules/openllm/default.nix
index 8a37e257ffa98..5d5af060d8465 100644
--- a/pkgs/development/python-modules/openllm/default.nix
+++ b/pkgs/development/python-modules/openllm/default.nix
@@ -1,47 +1,47 @@
-{ lib
-, buildPythonPackage
-, hatch-fancy-pypi-readme
-, hatch-vcs
-, hatchling
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, accelerate
-, bentoml
-, bitsandbytes
-, build
-, click
-, ctranslate2
-, datasets
-, docker
-, einops
-, ghapi
-, huggingface-hub
-, hypothesis
-, ipython
-, jupyter
-, jupytext
-, nbformat
-, notebook
-, openai
-, openllm-client
-, openllm-core
-, optimum
-, peft
-, pytest-mock
-, pytest-randomly
-, pytest-rerunfailures
-, pytest-xdist
-, safetensors
-, scipy
-, sentencepiece
-, soundfile
-, syrupy
-, tabulate
-, tiktoken
-, transformers
-, openai-triton
-, xformers
+{
+  lib,
+  buildPythonPackage,
+  hatch-fancy-pypi-readme,
+  hatch-vcs,
+  hatchling,
+  pytestCheckHook,
+  pythonOlder,
+  accelerate,
+  bentoml,
+  bitsandbytes,
+  build,
+  click,
+  ctranslate2,
+  datasets,
+  docker,
+  einops,
+  ghapi,
+  huggingface-hub,
+  hypothesis,
+  ipython,
+  jupyter,
+  jupytext,
+  nbformat,
+  notebook,
+  openai,
+  openllm-client,
+  openllm-core,
+  optimum,
+  peft,
+  pytest-mock,
+  pytest-randomly,
+  pytest-rerunfailures,
+  pytest-xdist,
+  safetensors,
+  scipy,
+  sentencepiece,
+  soundfile,
+  syrupy,
+  tabulate,
+  tiktoken,
+  transformers,
+  openai-triton,
+  xformers,
 }:
 
 buildPythonPackage rec {
@@ -53,9 +53,6 @@ buildPythonPackage rec {
 
   sourceRoot = "${src.name}/openllm-python";
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   pythonRemoveDeps = [
     # remove cuda-python as it has an unfree license
@@ -68,25 +65,27 @@ buildPythonPackage rec {
     hatchling
   ];
 
-  dependencies = [
-    accelerate
-    bentoml
-    bitsandbytes
-    build
-    click
-    einops
-    ghapi
-    openllm-client
-    openllm-core
-    optimum
-    safetensors
-    scipy
-    sentencepiece
-    transformers
-  ] ++ bentoml.optional-dependencies.io
-  ++ tabulate.optional-dependencies.widechars
-  ++ transformers.optional-dependencies.tokenizers
-  ++ transformers.optional-dependencies.torch;
+  dependencies =
+    [
+      accelerate
+      bentoml
+      bitsandbytes
+      build
+      click
+      einops
+      ghapi
+      openllm-client
+      openllm-core
+      optimum
+      safetensors
+      scipy
+      sentencepiece
+      transformers
+    ]
+    ++ bentoml.optional-dependencies.io
+    ++ tabulate.optional-dependencies.widechars
+    ++ transformers.optional-dependencies.tokenizers
+    ++ transformers.optional-dependencies.torch;
 
   optional-dependencies = {
     agents = [
@@ -103,12 +102,8 @@ buildPythonPackage rec {
     chatglm = [
       # cpm-kernels
     ];
-    ctranslate = [
-      ctranslate2
-    ];
-    falcon = [
-      xformers
-    ];
+    ctranslate = [ ctranslate2 ];
+    falcon = [ xformers ];
     fine-tune = [
       datasets
       huggingface-hub
@@ -121,12 +116,8 @@ buildPythonPackage rec {
     gptq = [
       # auto-gptq
     ]; # ++ autogptq.optional-dependencies.triton;
-    grpc = [
-      bentoml
-    ] ++ bentoml.optional-dependencies.grpc;
-    mpt = [
-      openai-triton
-    ];
+    grpc = [ bentoml ] ++ bentoml.optional-dependencies.grpc;
+    mpt = [ openai-triton ];
     openai = [
       openai
       tiktoken
@@ -138,18 +129,29 @@ buildPythonPackage rec {
       nbformat
       notebook
     ];
-    starcoder = [
-      bitsandbytes
-    ];
+    starcoder = [ bitsandbytes ];
     vllm = [
       # vllm
     ];
-    full = with optional-dependencies; (
-      agents ++ awq ++ baichuan ++ chatglm ++ ctranslate ++ falcon ++ fine-tune ++ ggml ++ gptq ++ mpt
-      # disambiguate between derivation input and passthru field
-      ++ optional-dependencies.openai
-      ++ playground ++ starcoder ++ vllm
-    );
+    full =
+      with optional-dependencies;
+      (
+        agents
+        ++ awq
+        ++ baichuan
+        ++ chatglm
+        ++ ctranslate
+        ++ falcon
+        ++ fine-tune
+        ++ ggml
+        ++ gptq
+        ++ mpt
+        # disambiguate between derivation input and passthru field
+        ++ optional-dependencies.openai
+        ++ playground
+        ++ starcoder
+        ++ vllm
+      );
     all = optional-dependencies.full;
   };
 
@@ -190,6 +192,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/bentoml/OpenLLM/tree/main/openllm-python";
     changelog = "https://github.com/bentoml/OpenLLM/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
-    maintainers = with maintainers; [ happysalada natsukium ];
+    maintainers = with maintainers; [
+      happysalada
+      natsukium
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/openpyxl/default.nix b/pkgs/development/python-modules/openpyxl/default.nix
index c8934bf888a1d..7fdf319f9e619 100644
--- a/pkgs/development/python-modules/openpyxl/default.nix
+++ b/pkgs/development/python-modules/openpyxl/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, et-xmlfile
-, fetchFromGitLab
-, lxml
-, pandas
-, pillow
-, pytest7CheckHook
-, pythonAtLeast
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  et-xmlfile,
+  fetchFromGitLab,
+  lxml,
+  pandas,
+  pillow,
+  pytest7CheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     hash = "sha256-SWRbjA83AOLrfe6on2CSb64pH5EWXkfyYcTqWJNBEP0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    et-xmlfile
-  ];
+  propagatedBuildInputs = [ et-xmlfile ];
 
   nativeCheckInputs = [
     lxml
@@ -45,31 +42,31 @@ buildPythonPackage rec {
     "-W"
     "ignore::DeprecationWarning"
   ];
-  disabledTests = [
-    # Tests broken since lxml 2.12; https://foss.heptapod.net/openpyxl/openpyxl/-/issues/2116
-    "test_read"
-    "test_read_comments"
-    "test_ignore_external_blip"
-    "test_from_xml"
-    "test_filenames"
-    "test_exts"
-    "test_from_complex"
-    "test_merge_named_styles"
-    "test_unprotected_cell"
-    "test_none_values"
-    "test_rgb_colors"
-    "test_named_styles"
-    "test_read_ole_link"
-  ] ++ lib.optionals (pythonAtLeast "3.11") [
-    "test_broken_sheet_ref"
-    "test_name_invalid_index"
-    "test_defined_names_print_area"
-    "test_no_styles"
-  ];
+  disabledTests =
+    [
+      # Tests broken since lxml 2.12; https://foss.heptapod.net/openpyxl/openpyxl/-/issues/2116
+      "test_read"
+      "test_read_comments"
+      "test_ignore_external_blip"
+      "test_from_xml"
+      "test_filenames"
+      "test_exts"
+      "test_from_complex"
+      "test_merge_named_styles"
+      "test_unprotected_cell"
+      "test_none_values"
+      "test_rgb_colors"
+      "test_named_styles"
+      "test_read_ole_link"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.11") [
+      "test_broken_sheet_ref"
+      "test_name_invalid_index"
+      "test_defined_names_print_area"
+      "test_no_styles"
+    ];
 
-  pythonImportsCheck = [
-    "openpyxl"
-  ];
+  pythonImportsCheck = [ "openpyxl" ];
 
   meta = with lib; {
     description = "Python library to read/write Excel 2010 xlsx/xlsm files";
diff --git a/pkgs/development/python-modules/openrazer/common.nix b/pkgs/development/python-modules/openrazer/common.nix
index e263f07e0d021..2d5db38d963af 100644
--- a/pkgs/development/python-modules/openrazer/common.nix
+++ b/pkgs/development/python-modules/openrazer/common.nix
@@ -1,6 +1,5 @@
-{ lib
-, fetchFromGitHub
-}: rec {
+{ lib, fetchFromGitHub }:
+rec {
   version = "3.8.0";
   pyproject = true;
 
diff --git a/pkgs/development/python-modules/openrazer/daemon.nix b/pkgs/development/python-modules/openrazer/daemon.nix
index aa6055c19c70f..f1af8a82faf71 100644
--- a/pkgs/development/python-modules/openrazer/daemon.nix
+++ b/pkgs/development/python-modules/openrazer/daemon.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, daemonize
-, dbus-python
-, fetchFromGitHub
-, gobject-introspection
-, gtk3
-, makeWrapper
-, pygobject3
-, pyudev
-, setproctitle
-, setuptools
-, wrapGAppsHook3
-, notify2
+{
+  lib,
+  buildPythonPackage,
+  daemonize,
+  dbus-python,
+  fetchFromGitHub,
+  gobject-introspection,
+  gtk3,
+  pygobject3,
+  pyudev,
+  setproctitle,
+  setuptools,
+  wrapGAppsNoGuiHook,
+  notify2,
+  glib
 }:
 
 let
@@ -20,7 +21,10 @@ in
 buildPythonPackage (common // {
   pname = "openrazer-daemon";
 
-  outputs = [ "out" "man" ];
+  outputs = [
+    "out"
+    "man"
+  ];
 
   sourceRoot = "${common.src.name}/daemon";
 
@@ -29,13 +33,16 @@ buildPythonPackage (common // {
       --replace-fail "plugdev" "openrazer"
   '';
 
-  nativeBuildInputs = [ setuptools ];
+  nativeBuildInputs = [ setuptools wrapGAppsNoGuiHook gobject-introspection ];
+
+  buildInputs = [
+    glib
+    gtk3
+  ];
 
   propagatedBuildInputs = [
     daemonize
     dbus-python
-    gobject-introspection
-    gtk3
     pygobject3
     pyudev
     setproctitle
@@ -49,8 +56,14 @@ buildPythonPackage (common // {
   # no tests run
   doCheck = false;
 
+  dontWrapGApps = true;
+
+  preFixup = ''
+    makeWrapperArgs+=("''${gappsWrapperArgs[@]}")
+  '';
+
   meta = common.meta // {
-    description = "An entirely open source user-space daemon that allows you to manage your Razer peripherals on GNU/Linux";
+    description = "Entirely open source user-space daemon that allows you to manage your Razer peripherals on GNU/Linux";
     mainProgram = "openrazer-daemon";
   };
 })
diff --git a/pkgs/development/python-modules/openrazer/pylib.nix b/pkgs/development/python-modules/openrazer/pylib.nix
index d4da892c30583..577f8595aba6b 100644
--- a/pkgs/development/python-modules/openrazer/pylib.nix
+++ b/pkgs/development/python-modules/openrazer/pylib.nix
@@ -1,32 +1,36 @@
-{ lib
-, buildPythonPackage
-, dbus-python
-, fetchFromGitHub
-, numpy
-, openrazer-daemon
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  dbus-python,
+  fetchFromGitHub,
+  numpy,
+  openrazer-daemon,
+  setuptools,
 }:
 
 let
   common = import ./common.nix { inherit lib fetchFromGitHub; };
 in
-buildPythonPackage (common // {
-  pname = "openrazer";
+buildPythonPackage (
+  common
+  // {
+    pname = "openrazer";
 
-  sourceRoot = "${common.src.name}/pylib";
+    sourceRoot = "${common.src.name}/pylib";
 
-  nativeBuildInputs = [ setuptools ];
+    nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    dbus-python
-    numpy
-    openrazer-daemon
-  ];
+    propagatedBuildInputs = [
+      dbus-python
+      numpy
+      openrazer-daemon
+    ];
 
-  # no tests run
-  doCheck = false;
+    # no tests run
+    doCheck = false;
 
-  meta = common.meta // {
-    description = "An entirely open source Python library that allows you to manage your Razer peripherals on GNU/Linux";
-  };
-})
+    meta = common.meta // {
+      description = "Entirely open source Python library that allows you to manage your Razer peripherals on GNU/Linux";
+    };
+  }
+)
diff --git a/pkgs/development/python-modules/openrgb-python/default.nix b/pkgs/development/python-modules/openrgb-python/default.nix
index c41c1d9760b59..90b710c6e0350 100644
--- a/pkgs/development/python-modules/openrgb-python/default.nix
+++ b/pkgs/development/python-modules/openrgb-python/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-2eeb2XHYvBaHkHHs9KxZKDGXtcLaT28c/aLC9pxrRmM=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "openrgb"
-  ];
+  pythonImportsCheck = [ "openrgb" ];
 
   meta = with lib; {
     description = "Module for the OpenRGB SDK";
diff --git a/pkgs/development/python-modules/openrouteservice/default.nix b/pkgs/development/python-modules/openrouteservice/default.nix
index 72945907d4ebd..eae98abfeeb9f 100644
--- a/pkgs/development/python-modules/openrouteservice/default.nix
+++ b/pkgs/development/python-modules/openrouteservice/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, responses, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  responses,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "openrouteservice";
@@ -12,7 +18,10 @@ buildPythonPackage rec {
     sha256 = "1d5qbygb81fhpwfdm1a118r3xv45xz9n9avfkgxkvw1n8y6ywz2q";
   };
 
-  nativeCheckInputs = [ pytestCheckHook responses ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    responses
+  ];
 
   disabledTests = [
     # touches network
@@ -23,7 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/GIScience/openrouteservice-py";
-    description = "The Python API to consume openrouteservice(s) painlessly";
+    description = "Python API to consume openrouteservice(s) painlessly";
     license = licenses.asl20;
     maintainers = with maintainers; [ Scriptkiddi ];
   };
diff --git a/pkgs/development/python-modules/opensearch-py/default.nix b/pkgs/development/python-modules/opensearch-py/default.nix
index da0c13d63d614..a73c319fd10b2 100644
--- a/pkgs/development/python-modules/opensearch-py/default.nix
+++ b/pkgs/development/python-modules/opensearch-py/default.nix
@@ -1,45 +1,44 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, certifi
-, python-dateutil
-, requests
-, six
-, urllib3
+  # dependencies
+  certifi,
+  python-dateutil,
+  requests,
+  six,
+  urllib3,
 
-# optional-dependencies
-, aiohttp
+  # optional-dependencies
+  aiohttp,
 
-# tests
-, botocore
-, mock
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
-, pyyaml
-, pytz
+  # tests
+  botocore,
+  mock,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  pyyaml,
+  pytz,
 }:
 
 buildPythonPackage rec {
   pname = "opensearch-py";
-  version = "2.4.2";
+  version = "2.6.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "opensearch-project";
     repo = "opensearch-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MPuHdjhsrccKYUIDlDYGoXBbBu/V+q43Puf0e5j8vhU=";
+    hash = "sha256-qpay0EDD99MzxDMkjk3hU/34rxLD71PM8zdcIcHj/0Q=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     certifi
@@ -49,9 +48,7 @@ buildPythonPackage rec {
     urllib3
   ];
 
-  passthru.optional-dependencies.async = [
-    aiohttp
-  ];
+  passthru.optional-dependencies.async = [ aiohttp ];
 
   nativeCheckInputs = [
     botocore
diff --git a/pkgs/development/python-modules/opensensemap-api/default.nix b/pkgs/development/python-modules/opensensemap-api/default.nix
index a5730f8ba9fda..ab9b93fc6f389 100644
--- a/pkgs/development/python-modules/opensensemap-api/default.nix
+++ b/pkgs/development/python-modules/opensensemap-api/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "opensensemap_api"
-  ];
+  pythonImportsCheck = [ "opensensemap_api" ];
 
   meta = with lib; {
     description = "OpenSenseMap API Python client";
diff --git a/pkgs/development/python-modules/opensfm/default.nix b/pkgs/development/python-modules/opensfm/default.nix
index 674ec572e1408..bd5b97ab2852a 100644
--- a/pkgs/development/python-modules/opensfm/default.nix
+++ b/pkgs/development/python-modules/opensfm/default.nix
@@ -1,46 +1,42 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, cmake
-, opencv4
-, ceres-solver
-, suitesparse
-, metis
-, eigen
-, pkg-config
-, pybind11
-, numpy
-, pyyaml
-, lapack
-, gtest
-, gflags
-, glog
-, pytestCheckHook
-, networkx
-, pillow
-, exifread
-, gpxpy
-, pyproj
-, python-dateutil
-, joblib
-, repoze-lru
-, xmltodict
-, cloudpickle
-, scipy
-, sphinx
-, matplotlib
-, fpdf
-,
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cmake,
+  opencv4,
+  ceres-solver,
+  suitesparse,
+  metis,
+  eigen,
+  pkg-config,
+  pybind11,
+  numpy,
+  pyyaml,
+  lapack,
+  gtest,
+  gflags,
+  glog,
+  pytestCheckHook,
+  networkx,
+  pillow,
+  exifread,
+  gpxpy,
+  pyproj,
+  python-dateutil,
+  joblib,
+  repoze-lru,
+  xmltodict,
+  cloudpickle,
+  scipy,
+  sphinx,
+  matplotlib,
+  fpdf,
 }:
 
 let
   ceresSplit = (builtins.length ceres-solver.outputs) > 1;
-  ceres' =
-    if ceresSplit
-    then ceres-solver.dev
-    else ceres-solver;
+  ceres' = if ceresSplit then ceres-solver.dev else ceres-solver;
 in
 buildPythonPackage rec {
   pname = "opensfm";
@@ -71,7 +67,11 @@ buildPythonPackage rec {
     sed -i -e 's/^.*BuildDoc.*$//' setup.py
   '';
 
-  nativeBuildInputs = [ cmake pkg-config sphinx ];
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+    sphinx
+  ];
   buildInputs = [
     ceres'
     suitesparse
@@ -109,12 +109,14 @@ buildPythonPackage rec {
     "-Sopensfm/src"
   ];
 
-  disabledTests = [
-    "test_run_all" # Matplotlib issues. Broken integration is less useless than a broken build
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_reconstruction_incremental"
-    "test_reconstruction_triangulation"
-  ];
+  disabledTests =
+    [
+      "test_run_all" # Matplotlib issues. Broken integration is less useless than a broken build
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      "test_reconstruction_incremental"
+      "test_reconstruction_triangulation"
+    ];
 
   pythonImportsCheck = [ "opensfm" ];
 
diff --git a/pkgs/development/python-modules/openshift/default.nix b/pkgs/development/python-modules/openshift/default.nix
index 0a75792644b18..1e257094a18d5 100644
--- a/pkgs/development/python-modules/openshift/default.nix
+++ b/pkgs/development/python-modules/openshift/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, jinja2
-, kubernetes
-, ruamel-yaml
-, six
-, python-string-utils
-, pytest-bdd
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jinja2,
+  kubernetes,
+  ruamel-yaml,
+  six,
+  python-string-utils,
+  pytest-bdd,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -37,7 +38,7 @@ buildPythonPackage rec {
     six
   ];
 
-  pythonImportsCheck = ["openshift"];
+  pythonImportsCheck = [ "openshift" ];
 
   nativeCheckInputs = [
     pytest-bdd
diff --git a/pkgs/development/python-modules/opensimplex/default.nix b/pkgs/development/python-modules/opensimplex/default.nix
index 6ddf5c6d03788..634efaf196b20 100644
--- a/pkgs/development/python-modules/opensimplex/default.nix
+++ b/pkgs/development/python-modules/opensimplex/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/openstackdocstheme/default.nix b/pkgs/development/python-modules/openstackdocstheme/default.nix
index 1ac6b6cae5460..20c0dd9c176c1 100644
--- a/pkgs/development/python-modules/openstackdocstheme/default.nix
+++ b/pkgs/development/python-modules/openstackdocstheme/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, dulwich
-, pbr
-, sphinx
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  dulwich,
+  pbr,
+  sphinx,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -26,7 +27,11 @@ buildPythonPackage rec {
     rm test-requirements.txt
   '';
 
-  propagatedBuildInputs = [ dulwich pbr sphinx ];
+  propagatedBuildInputs = [
+    dulwich
+    pbr
+    sphinx
+  ];
 
   # no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/openstacksdk/default.nix b/pkgs/development/python-modules/openstacksdk/default.nix
index 3f997d4d4cede..47809462a26dd 100644
--- a/pkgs/development/python-modules/openstacksdk/default.nix
+++ b/pkgs/development/python-modules/openstacksdk/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, callPackage
-, fetchPypi
-, platformdirs
-, cryptography
-, dogpile-cache
-, jmespath
-, jsonpatch
-, keystoneauth1
-, munch
-, netifaces
-, os-service-types
-, pbr
-, pythonOlder
-, pyyaml
-, requestsexceptions
+{
+  lib,
+  buildPythonPackage,
+  callPackage,
+  fetchPypi,
+  platformdirs,
+  cryptography,
+  dogpile-cache,
+  jmespath,
+  jsonpatch,
+  keystoneauth1,
+  munch,
+  netifaces,
+  os-service-types,
+  pbr,
+  pythonOlder,
+  pyyaml,
+  requestsexceptions,
 }:
 
 buildPythonPackage rec {
@@ -51,12 +52,10 @@ buildPythonPackage rec {
     tests = callPackage ./tests.nix { };
   };
 
-  pythonImportsCheck = [
-    "openstack"
-  ];
+  pythonImportsCheck = [ "openstack" ];
 
   meta = with lib; {
-    description = "An SDK for building applications to work with OpenStack";
+    description = "SDK for building applications to work with OpenStack";
     mainProgram = "openstack-inventory";
     homepage = "https://github.com/openstack/openstacksdk";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/openstacksdk/tests.nix b/pkgs/development/python-modules/openstacksdk/tests.nix
index c3f16f7d9ef67..0b71fc111b8b8 100644
--- a/pkgs/development/python-modules/openstacksdk/tests.nix
+++ b/pkgs/development/python-modules/openstacksdk/tests.nix
@@ -1,16 +1,17 @@
-{ buildPythonPackage
-, ddt
-, hacking
-, jsonschema
-, lib
-, openstacksdk
-, oslo-config
-, oslotest
-, prometheus-client
-, requests-mock
-, stdenv
-, stestr
-, testscenarios
+{
+  buildPythonPackage,
+  ddt,
+  hacking,
+  jsonschema,
+  lib,
+  openstacksdk,
+  oslo-config,
+  oslotest,
+  prometheus-client,
+  requests-mock,
+  stdenv,
+  stestr,
+  testscenarios,
 }:
 
 buildPythonPackage {
@@ -34,32 +35,35 @@ buildPythonPackage {
     testscenarios
   ];
 
-  checkPhase = ''
-    stestr run -e <(echo "
-  '' + lib.optionalString stdenv.isAarch64 ''
-    openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_node_set_provision_state_with_retries
-    openstack.tests.unit.cloud.test_role_assignment.TestRoleAssignment.test_grant_role_user_domain_exists
-    openstack.tests.unit.cloud.test_volume_backups.TestVolumeBackups.test_delete_volume_backup_force
-    openstack.tests.unit.object_store.v1.test_proxy.TestTempURLBytesPathAndKey.test_set_account_temp_url_key_second
-    openstack.tests.unit.cloud.test_security_groups.TestSecurityGroups.test_delete_security_group_neutron_not_found
-  '' + ''
-    openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_wait_for_baremetal_node_lock_locked
-    openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_inspect_machine_inspect_failed
-    openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_inspect_machine_available_wait
-    openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_inspect_machine_wait
-    openstack.tests.unit.cloud.test_image.TestImage.test_create_image_task
-    openstack.tests.unit.image.v2.test_proxy.TestImageProxy.test_wait_for_task_error_396
-    openstack.tests.unit.image.v2.test_proxy.TestImageProxy.test_wait_for_task_wait
-    openstack.tests.unit.test_resource.TestWaitForStatus.test_callback
-    openstack.tests.unit.test_resource.TestWaitForStatus.test_status_fails
-    openstack.tests.unit.test_resource.TestWaitForStatus.test_status_fails_different_attribute
-    openstack.tests.unit.test_resource.TestWaitForStatus.test_status_match
-    openstack.tests.unit.test_resource.TestWaitForStatus.test_status_match_with_none
-    openstack.tests.unit.test_stats.TestStats.test_list_projects
-    openstack.tests.unit.test_stats.TestStats.test_projects
-    openstack.tests.unit.test_stats.TestStats.test_servers
-    openstack.tests.unit.test_stats.TestStats.test_servers_no_detail
-    openstack.tests.unit.test_stats.TestStats.test_timeout
-    ")
-  '';
+  checkPhase =
+    ''
+      stestr run -e <(echo "
+    ''
+    + lib.optionalString stdenv.isAarch64 ''
+      openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_node_set_provision_state_with_retries
+      openstack.tests.unit.cloud.test_role_assignment.TestRoleAssignment.test_grant_role_user_domain_exists
+      openstack.tests.unit.cloud.test_volume_backups.TestVolumeBackups.test_delete_volume_backup_force
+      openstack.tests.unit.object_store.v1.test_proxy.TestTempURLBytesPathAndKey.test_set_account_temp_url_key_second
+      openstack.tests.unit.cloud.test_security_groups.TestSecurityGroups.test_delete_security_group_neutron_not_found
+    ''
+    + ''
+      openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_wait_for_baremetal_node_lock_locked
+      openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_inspect_machine_inspect_failed
+      openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_inspect_machine_available_wait
+      openstack.tests.unit.cloud.test_baremetal_node.TestBaremetalNode.test_inspect_machine_wait
+      openstack.tests.unit.cloud.test_image.TestImage.test_create_image_task
+      openstack.tests.unit.image.v2.test_proxy.TestImageProxy.test_wait_for_task_error_396
+      openstack.tests.unit.image.v2.test_proxy.TestImageProxy.test_wait_for_task_wait
+      openstack.tests.unit.test_resource.TestWaitForStatus.test_callback
+      openstack.tests.unit.test_resource.TestWaitForStatus.test_status_fails
+      openstack.tests.unit.test_resource.TestWaitForStatus.test_status_fails_different_attribute
+      openstack.tests.unit.test_resource.TestWaitForStatus.test_status_match
+      openstack.tests.unit.test_resource.TestWaitForStatus.test_status_match_with_none
+      openstack.tests.unit.test_stats.TestStats.test_list_projects
+      openstack.tests.unit.test_stats.TestStats.test_projects
+      openstack.tests.unit.test_stats.TestStats.test_servers
+      openstack.tests.unit.test_stats.TestStats.test_servers_no_detail
+      openstack.tests.unit.test_stats.TestStats.test_timeout
+      ")
+    '';
 }
diff --git a/pkgs/development/python-modules/openstep-plist/default.nix b/pkgs/development/python-modules/openstep-plist/default.nix
index 7921023f29420..28680e26b0911 100644
--- a/pkgs/development/python-modules/openstep-plist/default.nix
+++ b/pkgs/development/python-modules/openstep-plist/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cython
-, setuptools
-, setuptools-scm
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cython,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +25,9 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "openstep_plist"
-  ];
+  pythonImportsCheck = [ "openstep_plist" ];
 
   meta = {
     changelog = "https://github.com/fonttools/openstep-plist/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/opentelemetry-api/default.nix b/pkgs/development/python-modules/opentelemetry-api/default.nix
index 153400f30aced..8fde20af6cbf2 100644
--- a/pkgs/development/python-modules/opentelemetry-api/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-api/default.nix
@@ -1,21 +1,21 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, deprecated
-, hatchling
-, importlib-metadata
-, opentelemetry-test-utils
-, setuptools
-, pytestCheckHook
-, pythonRelaxDepsHook
-, writeScript
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  deprecated,
+  hatchling,
+  importlib-metadata,
+  opentelemetry-test-utils,
+  setuptools,
+  pytestCheckHook,
+  writeScript,
 }:
 
 let
   self = buildPythonPackage rec {
     pname = "opentelemetry-api";
-    version = "1.24.0";
+    version = "1.25.0";
     pyproject = true;
 
     disabled = pythonOlder "3.8";
@@ -25,27 +25,20 @@ let
       owner = "open-telemetry";
       repo = "opentelemetry-python";
       rev = "refs/tags/v${version}";
-      hash = "sha256-id5cwNl2idgZa1AFfolzEo5vzspv3V2c1Vtzg3EWDZs=";
+      hash = "sha256-9mxgPYliGkNsZGOhF9YCmxZjP3hc2UUmxSpWY4IMLCo=";
     };
 
     sourceRoot = "${src.name}/opentelemetry-api";
 
-    nativeBuildInputs = [
-      pythonRelaxDepsHook
-    ];
 
-    build-system = [
-      hatchling
-    ];
+    build-system = [ hatchling ];
 
     dependencies = [
       deprecated
       importlib-metadata
     ];
 
-    pythonRelaxDeps = [
-      "importlib-metadata"
-    ];
+    pythonRelaxDeps = [ "importlib-metadata" ];
 
     nativeCheckInputs = [
       opentelemetry-test-utils
@@ -77,4 +70,5 @@ let
       maintainers = teams.deshaw.members ++ [ maintainers.natsukium ];
     };
   };
-in self
+in
+self
diff --git a/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-common/default.nix b/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-common/default.nix
index bc8bbec64e976..0dc9b6a423822 100644
--- a/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-common/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-common/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, hatchling
-, opentelemetry-api
-, opentelemetry-proto
-, opentelemetry-test-utils
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  hatchling,
+  opentelemetry-api,
+  opentelemetry-proto,
+  opentelemetry-test-utils,
+  pytestCheckHook,
 }:
 
 buildPythonPackage {
@@ -17,13 +18,9 @@ buildPythonPackage {
 
   sourceRoot = "${opentelemetry-api.src.name}/exporter/opentelemetry-exporter-otlp-proto-common";
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
-  dependencies = [
-    opentelemetry-proto
-  ];
+  dependencies = [ opentelemetry-proto ];
 
   nativeCheckInputs = [
     opentelemetry-test-utils
diff --git a/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-grpc/default.nix b/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-grpc/default.nix
index 9f1fe62dfbb47..5df83c4ad4330 100644
--- a/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-grpc/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-grpc/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, deprecated
-, googleapis-common-protos
-, grpcio
-, hatchling
-, opentelemetry-api
-, opentelemetry-exporter-otlp-proto-common
-, opentelemetry-proto
-, opentelemetry-test-utils
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  deprecated,
+  googleapis-common-protos,
+  grpcio,
+  hatchling,
+  opentelemetry-api,
+  opentelemetry-exporter-otlp-proto-common,
+  opentelemetry-proto,
+  opentelemetry-test-utils,
+  pytestCheckHook,
 }:
 
 buildPythonPackage {
@@ -21,9 +22,7 @@ buildPythonPackage {
 
   sourceRoot = "${opentelemetry-api.src.name}/exporter/opentelemetry-exporter-otlp-proto-grpc";
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   dependencies = [
     deprecated
@@ -39,9 +38,7 @@ buildPythonPackage {
     pytestCheckHook
   ];
 
-  disabledTestPaths = [
-    "tests/performance/benchmarks/"
-  ];
+  disabledTestPaths = [ "tests/performance/benchmarks/" ];
 
   pythonImportsCheck = [ "opentelemetry.exporter.otlp.proto.grpc" ];
 
diff --git a/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-http/default.nix b/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-http/default.nix
index 8c82d0b8b5808..2bab0a3bb80cd 100644
--- a/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-http/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-exporter-otlp-proto-http/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, deprecated
-, googleapis-common-protos
-, hatchling
-, opentelemetry-api
-, opentelemetry-exporter-otlp-proto-common
-, opentelemetry-proto
-, opentelemetry-sdk
-, opentelemetry-test-utils
-, requests
-, responses
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  deprecated,
+  googleapis-common-protos,
+  hatchling,
+  opentelemetry-api,
+  opentelemetry-exporter-otlp-proto-common,
+  opentelemetry-proto,
+  opentelemetry-sdk,
+  opentelemetry-test-utils,
+  requests,
+  responses,
+  pytestCheckHook,
 }:
 
 buildPythonPackage {
@@ -23,9 +24,7 @@ buildPythonPackage {
 
   sourceRoot = "${opentelemetry-api.src.name}/exporter/opentelemetry-exporter-otlp-proto-http";
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   dependencies = [
     deprecated
diff --git a/pkgs/development/python-modules/opentelemetry-exporter-otlp/default.nix b/pkgs/development/python-modules/opentelemetry-exporter-otlp/default.nix
index 75748e3b70ac0..710674a0b9bba 100644
--- a/pkgs/development/python-modules/opentelemetry-exporter-otlp/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-exporter-otlp/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, hatchling
-, opentelemetry-api
-, opentelemetry-exporter-otlp-proto-grpc
-, opentelemetry-exporter-otlp-proto-http
-, opentelemetry-test-utils
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  hatchling,
+  opentelemetry-api,
+  opentelemetry-exporter-otlp-proto-grpc,
+  opentelemetry-exporter-otlp-proto-http,
+  opentelemetry-test-utils,
+  pytestCheckHook,
 }:
 
 buildPythonPackage {
@@ -18,9 +19,7 @@ buildPythonPackage {
 
   sourceRoot = "${opentelemetry-api.src.name}/exporter/opentelemetry-exporter-otlp";
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   dependencies = [
     opentelemetry-exporter-otlp-proto-grpc
diff --git a/pkgs/development/python-modules/opentelemetry-exporter-prometheus/default.nix b/pkgs/development/python-modules/opentelemetry-exporter-prometheus/default.nix
index 1ccd6b472e183..ef0d80d4b65ce 100644
--- a/pkgs/development/python-modules/opentelemetry-exporter-prometheus/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-exporter-prometheus/default.nix
@@ -1,27 +1,29 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, hatchling
-, opentelemetry-api
-, opentelemetry-sdk
-, opentelemetry-test-utils
-, prometheus-client
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  hatchling,
+  opentelemetry-api,
+  opentelemetry-instrumentation,
+  opentelemetry-sdk,
+  opentelemetry-test-utils,
+  prometheus-client,
+  pytestCheckHook,
 }:
 
 buildPythonPackage {
   inherit (opentelemetry-api) src;
   pname = "opentelemetry-exporter-prometheus";
-  version = "0.44b0";
+  # This package is in the same repository as `opentelemetry-api`,
+  # but its version is synchronized with `opentelemetry-instrumentation` in another repository.
+  version = opentelemetry-instrumentation.version;
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   sourceRoot = "${opentelemetry-api.src.name}/exporter/opentelemetry-exporter-prometheus";
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   dependencies = [
     opentelemetry-api
diff --git a/pkgs/development/python-modules/opentelemetry-instrumentation-aiohttp-client/default.nix b/pkgs/development/python-modules/opentelemetry-instrumentation-aiohttp-client/default.nix
index df5a9b037652a..0da97f5a23169 100644
--- a/pkgs/development/python-modules/opentelemetry-instrumentation-aiohttp-client/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-instrumentation-aiohttp-client/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, hatchling
-, opentelemetry-api
-, opentelemetry-instrumentation
-, opentelemetry-semantic-conventions
-, opentelemetry-test-utils
-, opentelemetry-util-http
-, wrapt
-, pytestCheckHook
-, aiohttp
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  hatchling,
+  opentelemetry-api,
+  opentelemetry-instrumentation,
+  opentelemetry-semantic-conventions,
+  opentelemetry-test-utils,
+  opentelemetry-util-http,
+  wrapt,
+  pytestCheckHook,
+  aiohttp,
 }:
 
 buildPythonPackage {
@@ -21,9 +22,7 @@ buildPythonPackage {
 
   sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-aiohttp-client";
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   dependencies = [
     aiohttp
diff --git a/pkgs/development/python-modules/opentelemetry-instrumentation-asgi/default.nix b/pkgs/development/python-modules/opentelemetry-instrumentation-asgi/default.nix
index 7eb2a66797459..9d745e0261d32 100644
--- a/pkgs/development/python-modules/opentelemetry-instrumentation-asgi/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-instrumentation-asgi/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, asgiref
-, hatchling
-, opentelemetry-api
-, opentelemetry-instrumentation
-, opentelemetry-semantic-conventions
-, opentelemetry-test-utils
-, opentelemetry-util-http
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  asgiref,
+  hatchling,
+  opentelemetry-api,
+  opentelemetry-instrumentation,
+  opentelemetry-semantic-conventions,
+  opentelemetry-test-utils,
+  opentelemetry-util-http,
+  pytestCheckHook,
 }:
 
 buildPythonPackage {
@@ -20,9 +21,7 @@ buildPythonPackage {
 
   sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-asgi";
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   dependencies = [
     asgiref
diff --git a/pkgs/development/python-modules/opentelemetry-instrumentation-django/default.nix b/pkgs/development/python-modules/opentelemetry-instrumentation-django/default.nix
index 9e27e60e2ddec..30b2fd0e35fc0 100644
--- a/pkgs/development/python-modules/opentelemetry-instrumentation-django/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-instrumentation-django/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, django
-, hatchling
-, opentelemetry-api
-, opentelemetry-instrumentation
-, opentelemetry-instrumentation-asgi
-, opentelemetry-instrumentation-wsgi
-, opentelemetry-semantic-conventions
-, opentelemetry-test-utils
-, opentelemetry-util-http
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  django,
+  hatchling,
+  opentelemetry-api,
+  opentelemetry-instrumentation,
+  opentelemetry-instrumentation-asgi,
+  opentelemetry-instrumentation-wsgi,
+  opentelemetry-semantic-conventions,
+  opentelemetry-test-utils,
+  opentelemetry-util-http,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
 
   sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-django";
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   dependencies = [
     django
diff --git a/pkgs/development/python-modules/opentelemetry-instrumentation-fastapi/default.nix b/pkgs/development/python-modules/opentelemetry-instrumentation-fastapi/default.nix
index a4da7665172e9..178c39fffb34a 100644
--- a/pkgs/development/python-modules/opentelemetry-instrumentation-fastapi/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-instrumentation-fastapi/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fastapi
-, hatchling
-, httpx
-, opentelemetry-api
-, opentelemetry-instrumentation
-, opentelemetry-instrumentation-asgi
-, opentelemetry-semantic-conventions
-, opentelemetry-test-utils
-, opentelemetry-util-http
-, pytestCheckHook
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fastapi,
+  hatchling,
+  httpx,
+  opentelemetry-api,
+  opentelemetry-instrumentation,
+  opentelemetry-instrumentation-asgi,
+  opentelemetry-semantic-conventions,
+  opentelemetry-test-utils,
+  opentelemetry-util-http,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage {
@@ -23,9 +24,7 @@ buildPythonPackage {
 
   sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-fastapi";
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   dependencies = [
     fastapi
@@ -43,9 +42,7 @@ buildPythonPackage {
     requests
   ];
 
-  pythonImportsCheck = [
-    "opentelemetry.instrumentation.fastapi"
-  ];
+  pythonImportsCheck = [ "opentelemetry.instrumentation.fastapi" ];
 
   meta = opentelemetry-instrumentation.meta // {
     description = "OpenTelemetry Instrumentation for fastapi";
diff --git a/pkgs/development/python-modules/opentelemetry-instrumentation-flask/default.nix b/pkgs/development/python-modules/opentelemetry-instrumentation-flask/default.nix
index 0e1daa3f3a91c..779e018ae4134 100644
--- a/pkgs/development/python-modules/opentelemetry-instrumentation-flask/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-instrumentation-flask/default.nix
@@ -1,15 +1,16 @@
-{ buildPythonPackage
-, flask
-, hatchling
-, opentelemetry-api
-, opentelemetry-instrumentation
-, opentelemetry-instrumentation-wsgi
-, opentelemetry-semantic-conventions
-, opentelemetry-test-utils
-, opentelemetry-util-http
-, packaging
-, pytestCheckHook
-, pythonOlder
+{
+  buildPythonPackage,
+  flask,
+  hatchling,
+  opentelemetry-api,
+  opentelemetry-instrumentation,
+  opentelemetry-instrumentation-wsgi,
+  opentelemetry-semantic-conventions,
+  opentelemetry-test-utils,
+  opentelemetry-util-http,
+  packaging,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/opentelemetry-instrumentation-grpc/default.nix b/pkgs/development/python-modules/opentelemetry-instrumentation-grpc/default.nix
index 2a2cae6f6de43..1d400f8e53b02 100644
--- a/pkgs/development/python-modules/opentelemetry-instrumentation-grpc/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-instrumentation-grpc/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, hatchling
-, opentelemetry-api
-, opentelemetry-instrumentation
-, opentelemetry-sdk
-, opentelemetry-semantic-conventions
-, opentelemetry-test-utils
-, wrapt
-, pytestCheckHook
-, grpcio
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  hatchling,
+  opentelemetry-api,
+  opentelemetry-instrumentation,
+  opentelemetry-sdk,
+  opentelemetry-semantic-conventions,
+  opentelemetry-test-utils,
+  wrapt,
+  pytestCheckHook,
+  grpcio,
 }:
 
 buildPythonPackage {
@@ -22,9 +23,7 @@ buildPythonPackage {
 
   sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-grpc";
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   dependencies = [
     opentelemetry-api
diff --git a/pkgs/development/python-modules/opentelemetry-instrumentation-wsgi/default.nix b/pkgs/development/python-modules/opentelemetry-instrumentation-wsgi/default.nix
index 2e3d60b28442a..eaca2e81e161a 100644
--- a/pkgs/development/python-modules/opentelemetry-instrumentation-wsgi/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-instrumentation-wsgi/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, hatchling
-, opentelemetry-api
-, opentelemetry-instrumentation
-, opentelemetry-semantic-conventions
-, opentelemetry-test-utils
-, opentelemetry-util-http
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  hatchling,
+  opentelemetry-api,
+  opentelemetry-instrumentation,
+  opentelemetry-semantic-conventions,
+  opentelemetry-test-utils,
+  opentelemetry-util-http,
+  pytestCheckHook,
 }:
 
 buildPythonPackage {
@@ -19,9 +20,7 @@ buildPythonPackage {
 
   sourceRoot = "${opentelemetry-instrumentation.src.name}/instrumentation/opentelemetry-instrumentation-wsgi";
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   dependencies = [
     opentelemetry-instrumentation
diff --git a/pkgs/development/python-modules/opentelemetry-instrumentation/default.nix b/pkgs/development/python-modules/opentelemetry-instrumentation/default.nix
index 38205814d0476..1939a63fa6a14 100644
--- a/pkgs/development/python-modules/opentelemetry-instrumentation/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-instrumentation/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, hatchling
-, opentelemetry-api
-, opentelemetry-test-utils
-, setuptools
-, wrapt
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  hatchling,
+  opentelemetry-api,
+  opentelemetry-test-utils,
+  setuptools,
+  wrapt,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "opentelemetry-instrumentation";
-  version = "0.45b0";
+  version = "0.46b0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,14 +23,12 @@ buildPythonPackage rec {
     owner = "open-telemetry";
     repo = "opentelemetry-python-contrib";
     rev = "refs/tags/v${version}";
-    hash = "sha256-snpanTREdvfqpqPI8UWzm55pDK8Q77guqgT8kFULRKU=";
+    hash = "sha256-BC/RJL4GgC3vGe4bC9mavPNpE+j8ZIkOKCbK4I4LuGQ=";
   };
 
   sourceRoot = "${src.name}/opentelemetry-instrumentation";
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   dependencies = [
     opentelemetry-api
diff --git a/pkgs/development/python-modules/opentelemetry-proto/default.nix b/pkgs/development/python-modules/opentelemetry-proto/default.nix
index 58869327a1aeb..a2036ddfb77b0 100644
--- a/pkgs/development/python-modules/opentelemetry-proto/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-proto/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, hatchling
-, opentelemetry-api
-, protobuf
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  hatchling,
+  opentelemetry-api,
+  protobuf,
+  pytestCheckHook,
 }:
 
 buildPythonPackage {
@@ -16,17 +17,11 @@ buildPythonPackage {
 
   sourceRoot = "${opentelemetry-api.src.name}/opentelemetry-proto";
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
-  dependencies = [
-    protobuf
-  ];
+  dependencies = [ protobuf ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "opentelemetry.proto" ];
 
diff --git a/pkgs/development/python-modules/opentelemetry-sdk/default.nix b/pkgs/development/python-modules/opentelemetry-sdk/default.nix
index bee9dc01e6b0c..29f69f428b885 100644
--- a/pkgs/development/python-modules/opentelemetry-sdk/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-sdk/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, flaky
-, hatchling
-, opentelemetry-api
-, opentelemetry-semantic-conventions
-, opentelemetry-test-utils
-, setuptools
-, typing-extensions
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  flaky,
+  hatchling,
+  opentelemetry-api,
+  opentelemetry-semantic-conventions,
+  opentelemetry-test-utils,
+  setuptools,
+  typing-extensions,
+  pytestCheckHook,
 }:
 
 let
@@ -21,9 +22,7 @@ let
 
     sourceRoot = "${opentelemetry-api.src.name}/opentelemetry-sdk";
 
-    build-system = [
-      hatchling
-    ];
+    build-system = [ hatchling ];
 
     dependencies = [
       opentelemetry-api
@@ -37,9 +36,7 @@ let
       pytestCheckHook
     ];
 
-    disabledTestPaths = [
-      "tests/performance/benchmarks/"
-    ];
+    disabledTestPaths = [ "tests/performance/benchmarks/" ];
 
     pythonImportsCheck = [ "opentelemetry.sdk" ];
 
@@ -53,4 +50,5 @@ let
       description = "OpenTelemetry Python SDK";
     };
   };
-in self
+in
+self
diff --git a/pkgs/development/python-modules/opentelemetry-semantic-conventions/default.nix b/pkgs/development/python-modules/opentelemetry-semantic-conventions/default.nix
index a2a88906ec073..ab2db17a42186 100644
--- a/pkgs/development/python-modules/opentelemetry-semantic-conventions/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-semantic-conventions/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, hatchling
-, opentelemetry-api
-, pytestCheckHook
+{
+  buildPythonPackage,
+  pythonOlder,
+  hatchling,
+  opentelemetry-api,
+  opentelemetry-instrumentation,
+  pytestCheckHook,
 }:
 
 buildPythonPackage {
   inherit (opentelemetry-api) src;
   pname = "opentelemetry-semantic-conventions";
-  version = "0.44b0";
+  # This package is in the same repository as `opentelemetry-api`,
+  # but its version is synchronized with `opentelemetry-instrumentation` in another repository.
+  version = opentelemetry-instrumentation.version;
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   sourceRoot = "${opentelemetry-api.src.name}/opentelemetry-semantic-conventions";
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  dependencies = [ opentelemetry-api ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "opentelemetry.semconv" ];
 
diff --git a/pkgs/development/python-modules/opentelemetry-test-utils/default.nix b/pkgs/development/python-modules/opentelemetry-test-utils/default.nix
index d255845658c22..b6af8dea4f4fc 100644
--- a/pkgs/development/python-modules/opentelemetry-test-utils/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-test-utils/default.nix
@@ -1,25 +1,27 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, asgiref
-, hatchling
-, opentelemetry-api
-, opentelemetry-sdk
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  asgiref,
+  hatchling,
+  opentelemetry-api,
+  opentelemetry-instrumentation,
+  opentelemetry-sdk,
 }:
 
 buildPythonPackage {
   inherit (opentelemetry-api) src;
   pname = "opentelemetry-test-utils";
-  version = "0.44b0";
+  # This package is in the same repository as `opentelemetry-api`,
+  # but its version is synchronized with `opentelemetry-instrumentation` in another repository.
+  version = opentelemetry-instrumentation.version;
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   sourceRoot = "${opentelemetry-api.src.name}/tests/opentelemetry-test-utils";
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   dependencies = [
     asgiref
diff --git a/pkgs/development/python-modules/opentelemetry-util-http/default.nix b/pkgs/development/python-modules/opentelemetry-util-http/default.nix
index 128f503d832d1..ee1d76c04a992 100644
--- a/pkgs/development/python-modules/opentelemetry-util-http/default.nix
+++ b/pkgs/development/python-modules/opentelemetry-util-http/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, hatchling
-, opentelemetry-instrumentation
-, opentelemetry-test-utils
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  hatchling,
+  opentelemetry-instrumentation,
+  opentelemetry-test-utils,
+  pytestCheckHook,
 }:
 
 buildPythonPackage {
@@ -16,9 +17,7 @@ buildPythonPackage {
 
   sourceRoot = "${opentelemetry-instrumentation.src.name}/util/opentelemetry-util-http";
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   nativeCheckInputs = [
     opentelemetry-instrumentation
diff --git a/pkgs/development/python-modules/opentimestamps/default.nix b/pkgs/development/python-modules/opentimestamps/default.nix
index fbd3b2852eed6..c7edcd84370de 100644
--- a/pkgs/development/python-modules/opentimestamps/default.nix
+++ b/pkgs/development/python-modules/opentimestamps/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, bitcoinlib
-, buildPythonPackage
-, fetchFromGitHub
-, git
-, gitpython
-, pycryptodomex
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  bitcoinlib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  git,
+  gitpython,
+  pycryptodomex,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     pycryptodomex
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Remove a failing test which expects the test source file to reside in the
   # project's Git repo
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     rm opentimestamps/tests/core/test_git.py
   '';
 
-  pythonImportsCheck = [
-    "opentimestamps"
-  ];
+  pythonImportsCheck = [ "opentimestamps" ];
 
   meta = with lib; {
     description = "Create and verify OpenTimestamps proofs";
diff --git a/pkgs/development/python-modules/opentracing/default.nix b/pkgs/development/python-modules/opentracing/default.nix
index 706c47714afe1..c0f61bb107431 100644
--- a/pkgs/development/python-modules/opentracing/default.nix
+++ b/pkgs/development/python-modules/opentracing/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonAtLeast
-, isPy27
-, futures ? null
-, gevent
-, mock
-, pytestCheckHook
-, tornado
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
+  isPy27,
+  futures ? null,
+  gevent,
+  mock,
+  pytestCheckHook,
+  tornado,
+  six,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/opentsne/default.nix b/pkgs/development/python-modules/opentsne/default.nix
index ba3e0b8460b19..9dfe9b1ebde3e 100644
--- a/pkgs/development/python-modules/opentsne/default.nix
+++ b/pkgs/development/python-modules/opentsne/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cython
-, numpy
-, oldest-supported-numpy
-, scipy
-, scikit-learn
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cython,
+  numpy,
+  oldest-supported-numpy,
+  scipy,
+  scikit-learn,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 let
@@ -40,9 +41,7 @@ let
       scikit-learn
     ];
 
-    pythonImportsCheck = [
-      "openTSNE"
-    ];
+    pythonImportsCheck = [ "openTSNE" ];
 
     doCheck = false;
 
@@ -57,7 +56,10 @@ let
         doInstall = false;
 
         doCheck = true;
-        nativeCheckInputs = [ pytestCheckHook self ];
+        nativeCheckInputs = [
+          pytestCheckHook
+          self
+        ];
       });
     };
 
@@ -69,4 +71,5 @@ let
       maintainers = with maintainers; [ lucasew ];
     };
   };
-in self
+in
+self
diff --git a/pkgs/development/python-modules/opentypespec/default.nix b/pkgs/development/python-modules/opentypespec/default.nix
index 0355ec02146dd..ea4f2ca3530d1 100644
--- a/pkgs/development/python-modules/opentypespec/default.nix
+++ b/pkgs/development/python-modules/opentypespec/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -15,10 +16,12 @@ buildPythonPackage rec {
   };
 
   doCheck = true;
-  nativeCheckInputs = [
-    unittestCheckHook
+  nativeCheckInputs = [ unittestCheckHook ];
+  unittestFlagsArray = [
+    "-s"
+    "test"
+    "-v"
   ];
-  unittestFlagsArray = [ "-s" "test" "-v" ];
 
   meta = with lib; {
     description = "Python library for OpenType specification metadata";
@@ -27,4 +30,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ danc86 ];
   };
 }
-
diff --git a/pkgs/development/python-modules/openusd/default.nix b/pkgs/development/python-modules/openusd/default.nix
index bc67c43a6b0b8..d20bcf4c1f1c6 100644
--- a/pkgs/development/python-modules/openusd/default.nix
+++ b/pkgs/development/python-modules/openusd/default.nix
@@ -18,6 +18,8 @@
   lib,
   libGL,
   libX11,
+  libXt,
+  materialx,
   ninja,
   numpy,
   opencolorio,
@@ -49,13 +51,13 @@ in
 
 buildPythonPackage rec {
   pname = "openusd";
-  version = "24.03";
+  version = "24.05";
 
   src = fetchFromGitHub {
     owner = "PixarAnimationStudios";
     repo = "OpenUSD";
     rev = "refs/tags/v${version}";
-    hash = "sha256-EYf8GhXhsAx0Wxz9ibDZEV4E5scL3GPiu3Nje7N5C/I=";
+    hash = "sha256-akwLIB5YUbnDiaQXX/K5YLXzWlTYWZG51dtxbSFxPt0=";
   };
 
   stdenv = if python.stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else python.stdenv;
@@ -86,6 +88,7 @@ buildPythonPackage rec {
     (lib.cmakeBool "PXR_BUILD_PYTHON_DOCUMENTATION" withDocs)
     (lib.cmakeBool "PXR_BUILD_USDVIEW" withUsdView)
     (lib.cmakeBool "PXR_BUILD_USD_TOOLS" withTools)
+    (lib.cmakeBool "PXR_ENABLE_MATERIALX_SUPPORT" true)
     (lib.cmakeBool "PXR_ENABLE_OSL_SUPPORT" (!stdenv.isDarwin && withOsl))
   ];
 
@@ -111,6 +114,7 @@ buildPythonPackage rec {
       embree
       flex
       imath
+      materialx
       opencolorio
       openimageio
       opensubdiv
@@ -120,6 +124,7 @@ buildPythonPackage rec {
     ++ lib.optionals stdenv.isLinux [
       libGL
       libX11
+      libXt
     ]
     ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk_11_0.frameworks; [ Cocoa ])
     ++ lib.optionals withOsl [ osl ]
diff --git a/pkgs/development/python-modules/openvino/default.nix b/pkgs/development/python-modules/openvino/default.nix
index 660e6c41c014a..b43534bfd8afd 100644
--- a/pkgs/development/python-modules/openvino/default.nix
+++ b/pkgs/development/python-modules/openvino/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, openvino-native
-, numpy
-, python
+{
+  lib,
+  buildPythonPackage,
+  openvino-native,
+  numpy,
+  python,
 }:
 
 buildPythonPackage {
@@ -12,9 +13,7 @@ buildPythonPackage {
 
   src = openvino-native.python;
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   installPhase = ''
     runHook preInstall
diff --git a/pkgs/development/python-modules/openwebifpy/default.nix b/pkgs/development/python-modules/openwebifpy/default.nix
index 160a7708bdf69..a43b7c872e54a 100644
--- a/pkgs/development/python-modules/openwebifpy/default.nix
+++ b/pkgs/development/python-modules/openwebifpy/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, aiohttp
-, yarl
+  # dependencies
+  aiohttp,
+  yarl,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,22 +27,16 @@ buildPythonPackage rec {
     hash = "sha256-qL/H2F+/d/JWwmUbZhvoMlZZDGgEpRBmHabt1MWjGAs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
     yarl
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "openwebif"
-  ];
+  pythonImportsCheck = [ "openwebif" ];
 
   disabledTests = [
     # https://github.com/autinerd/openwebifpy/issues/1
@@ -57,4 +52,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ hexa ];
   };
 }
-
diff --git a/pkgs/development/python-modules/openwrt-luci-rpc/default.nix b/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
index b1e47f13c4369..1d955c7c84468 100644
--- a/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
+++ b/pkgs/development/python-modules/openwrt-luci-rpc/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchPypi
-, packaging
-, pytestCheckHook
-, requests
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchPypi,
+  packaging,
+  pytestCheckHook,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     packaging
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "openwrt_luci_rpc" ];
 
diff --git a/pkgs/development/python-modules/openwrt-ubus-rpc/default.nix b/pkgs/development/python-modules/openwrt-ubus-rpc/default.nix
index c5a5ac35b3cd6..efafabe29d61e 100644
--- a/pkgs/development/python-modules/openwrt-ubus-rpc/default.nix
+++ b/pkgs/development/python-modules/openwrt-ubus-rpc/default.nix
@@ -1,34 +1,43 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
+  setuptools,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "openwrt-ubus-rpc";
   version = "0.0.3";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "Noltari";
     repo = "python-ubus-rpc";
-    rev = version;
-    sha256 = "19scncc1w9ar3pw4yrw24akjgm74n2m7y308hzl1i360daf5p21k";
+    rev = "refs/tags/${version}";
+    hash = "sha256-M4hbnGrAjBjohwgMf6qw5NQnpyKCZ0/4HVklHhizTKc=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     requests
     urllib3
   ];
 
   # Project has no tests
   doCheck = false;
+
   pythonImportsCheck = [ "openwrt.ubus" ];
 
   meta = with lib; {
     description = "Python API for OpenWrt ubus RPC";
     homepage = "https://github.com/Noltari/python-ubus-rpc";
+    changelog = "https://github.com/Noltari/python-ubus-rpc/releases/tag/${version}";
     license = with licenses; [ gpl2Only ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/opower/default.nix b/pkgs/development/python-modules/opower/default.nix
index 2c00224e92295..3aea4088e47a1 100644
--- a/pkgs/development/python-modules/opower/default.nix
+++ b/pkgs/development/python-modules/opower/default.nix
@@ -1,19 +1,20 @@
 {
   lib,
   aiohttp,
+  aiozoneinfo,
   arrow,
   buildPythonPackage,
   fetchFromGitHub,
   pyotp,
-  pytestCheckHook,
   python-dotenv,
+  pytestCheckHook,
   pythonOlder,
   setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "opower";
-  version = "0.4.4";
+  version = "0.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -22,19 +23,22 @@ buildPythonPackage rec {
     owner = "tronikos";
     repo = "opower";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GG7r0/rZcB4cuog3m0qCOrmcYiscPQggQhRC9sQGG40=";
+    hash = "sha256-Rv5ttUUlBqa4yFEV5WWrZ+fhL/mrvjoYFsMN6xnFUhQ=";
   };
 
   build-system = [ setuptools ];
 
   dependencies = [
     aiohttp
+    aiozoneinfo
     arrow
     pyotp
-    python-dotenv
   ];
 
-  nativeCheckInputs = [ pytestCheckHook ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    python-dotenv
+  ];
 
   pythonImportsCheck = [ "opower" ];
 
diff --git a/pkgs/development/python-modules/opsdroid-get-image-size/default.nix b/pkgs/development/python-modules/opsdroid-get-image-size/default.nix
index 777788eeb48d9..06b64b0cc7181 100644
--- a/pkgs/development/python-modules/opsdroid-get-image-size/default.nix
+++ b/pkgs/development/python-modules/opsdroid-get-image-size/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     hash = "sha256-Cp2tvsdCZ+/86DF7FRNwx5diGcUWLYcFwQns7nYXkog=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # test data not included on pypi
   doCheck = false;
diff --git a/pkgs/development/python-modules/opt-einsum/default.nix b/pkgs/development/python-modules/opt-einsum/default.nix
index e943d67c7baa2..801c1b49841aa 100644
--- a/pkgs/development/python-modules/opt-einsum/default.nix
+++ b/pkgs/development/python-modules/opt-einsum/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, setuptools
-, numpy
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchpatch,
+  fetchPypi,
+  setuptools,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,21 +31,13 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "opt_einsum"
-  ];
+  pythonImportsCheck = [ "opt_einsum" ];
 
   meta = with lib; {
     description = "Optimizing NumPy's einsum function with order optimization and GPU support";
diff --git a/pkgs/development/python-modules/optax/default.nix b/pkgs/development/python-modules/optax/default.nix
index 950e9c91dbf57..14082067893a3 100644
--- a/pkgs/development/python-modules/optax/default.nix
+++ b/pkgs/development/python-modules/optax/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, absl-py
-, buildPythonPackage
-, flit-core
-, chex
-, fetchFromGitHub
-, jaxlib
-, numpy
-, callPackage
-, pythonOlder
+{
+  lib,
+  absl-py,
+  buildPythonPackage,
+  flit-core,
+  chex,
+  fetchFromGitHub,
+  jaxlib,
+  numpy,
+  callPackage,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -29,13 +30,9 @@ buildPythonPackage rec {
     "testsout"
   ];
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  buildInputs = [
-    jaxlib
-  ];
+  buildInputs = [ jaxlib ];
 
   propagatedBuildInputs = [
     absl-py
@@ -48,9 +45,7 @@ buildPythonPackage rec {
     cp -R examples $testsout/examples
   '';
 
-  pythonImportsCheck = [
-    "optax"
-  ];
+  pythonImportsCheck = [ "optax" ];
 
   # check in passthru.tests.pytest to escape infinite recursion with flax
   doCheck = false;
diff --git a/pkgs/development/python-modules/optax/tests.nix b/pkgs/development/python-modules/optax/tests.nix
index 1ab548f2f399e..ae5c8fe6d441a 100644
--- a/pkgs/development/python-modules/optax/tests.nix
+++ b/pkgs/development/python-modules/optax/tests.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
-, dm-haiku
-, pytest-xdist
-, pytestCheckHook
-, tensorflow
-, tensorflow-datasets
-, flax
-, optax
+{
+  buildPythonPackage,
+  dm-haiku,
+  pytest-xdist,
+  pytestCheckHook,
+  tensorflow,
+  tensorflow-datasets,
+  flax,
+  optax,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/optimum/default.nix b/pkgs/development/python-modules/optimum/default.nix
index 5c096eab5952c..07c80298754a7 100644
--- a/pkgs/development/python-modules/optimum/default.nix
+++ b/pkgs/development/python-modules/optimum/default.nix
@@ -1,29 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, coloredlogs
-, datasets
-, evaluate
-, h5py
-, huggingface-hub
-, numpy
-, onnx
-, onnxruntime
-, packaging
-, protobuf
-, sympy
-, tensorflow
-, tf2onnx
-, timm
-, torch
-, transformers
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  coloredlogs,
+  datasets,
+  diffusers,
+  evaluate,
+  h5py,
+  huggingface-hub,
+  numpy,
+  onnx,
+  onnxruntime,
+  packaging,
+  protobuf,
+  setuptools,
+  sympy,
+  tensorflow,
+  tf2onnx,
+  timm,
+  torch,
+  transformers,
 }:
 
 buildPythonPackage rec {
   pname = "optimum";
-  version = "1.19.1";
-  format = "setuptools";
+  version = "1.20.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -31,10 +34,12 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "optimum";
     rev = "refs/tags/v${version}";
-    hash = "sha256-EHu3p3M7xBjMnf3tKsneYOZtd9YWsC0qok1fnk4TMAg=";
+    hash = "sha256-aQNDVNWTgY2LEtug229SEZRMvKHpsQfiTPWW4Lh3hs4=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     coloredlogs
     datasets
     huggingface-hub
@@ -45,7 +50,7 @@ buildPythonPackage rec {
     transformers
   ] ++ transformers.optional-dependencies.sentencepiece;
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     onnxruntime = [
       onnx
       onnxruntime
@@ -67,9 +72,7 @@ buildPythonPackage rec {
       h5py
       numpy
     ];
-    diffusers = [
-      # diffusers
-    ];
+    diffusers = [ diffusers ];
     intel = [
       # optimum-intel
     ];
diff --git a/pkgs/development/python-modules/optree/default.nix b/pkgs/development/python-modules/optree/default.nix
new file mode 100644
index 0000000000000..27a057b24ddd8
--- /dev/null
+++ b/pkgs/development/python-modules/optree/default.nix
@@ -0,0 +1,55 @@
+{
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  lib,
+  cmake,
+  setuptools,
+  typing-extensions,
+  pybind11,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "optree";
+  version = "0.11.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "metaopt";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-VnnnEoXkYJO+S7baH+JZvsW18Tk3TiY9+Cd230OlZWo=";
+  };
+
+  dontUseCmakeConfigure = true;
+
+  propagatedBuildInputs = [ typing-extensions ];
+  nativeBuildInputs = [
+    setuptools
+    pybind11
+    cmake
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+  # prevent import failures from pytest
+  preCheck = ''
+    rm -r optree
+  '';
+  disabledTests = [
+    # Fails because the 'test_treespec' module can't be found
+    "test_treespec_pickle_missing_registration"
+  ];
+  pythonImportsCheck = [ "optree" ];
+
+  meta = with lib; {
+    homepage = "https://github.com/metaopt/optree";
+    changelog = "https://github.com/metaopt/optree/releases/tag/v${version}";
+    description = "Optimized PyTree Utilities";
+    maintainers = with maintainers; [ pandapip1 ];
+    license = licenses.asl20;
+  };
+}
diff --git a/pkgs/development/python-modules/optuna/default.nix b/pkgs/development/python-modules/optuna/default.nix
index 97f065323c728..8ace135676fec 100644
--- a/pkgs/development/python-modules/optuna/default.nix
+++ b/pkgs/development/python-modules/optuna/default.nix
@@ -1,44 +1,45 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, alembic
-, boto3
-, botorch
-, catboost
-, cma
-, cmaes
-, colorlog
-, distributed
-, fakeredis
-, google-cloud-storage
-, lightgbm
-, matplotlib
-, mlflow
-, moto
-, numpy
-, packaging
-, pandas
-, plotly
-, pytest-xdist
-, pytorch-lightning
-, pyyaml
-, redis
-, scikit-learn
-, scikit-optimize
-, scipy
-, setuptools
-, shap
-, sqlalchemy
-, tensorflow
-, torch
-, torchaudio
-, torchvision
-, tqdm
-, wandb
-, wheel
-, xgboost
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  alembic,
+  boto3,
+  botorch,
+  catboost,
+  cma,
+  cmaes,
+  colorlog,
+  distributed,
+  fakeredis,
+  google-cloud-storage,
+  lightgbm,
+  matplotlib,
+  mlflow,
+  moto,
+  numpy,
+  packaging,
+  pandas,
+  plotly,
+  pytest-xdist,
+  pytorch-lightning,
+  pyyaml,
+  redis,
+  scikit-learn,
+  scikit-optimize,
+  scipy,
+  setuptools,
+  shap,
+  sqlalchemy,
+  tensorflow,
+  torch,
+  torchaudio,
+  torchvision,
+  tqdm,
+  wandb,
+  wheel,
+  xgboost,
 }:
 
 buildPythonPackage rec {
@@ -114,12 +115,9 @@ buildPythonPackage rec {
     pytest-xdist
     pytestCheckHook
     scipy
-  ] ++ fakeredis.optional-dependencies.lua
-    ++ passthru.optional-dependencies.optional;
+  ] ++ fakeredis.optional-dependencies.lua ++ passthru.optional-dependencies.optional;
 
-  pytestFlagsArray = [
-    "-m 'not integration'"
-  ];
+  pytestFlagsArray = [ "-m 'not integration'" ];
 
   disabledTestPaths = [
     # require unpackaged kaleido and building it is a bit difficult
@@ -128,12 +126,10 @@ buildPythonPackage rec {
     "tests/artifacts_tests/test_boto3.py"
   ];
 
-  pythonImportsCheck = [
-    "optuna"
-  ];
+  pythonImportsCheck = [ "optuna" ];
 
   meta = with lib; {
-    description = "A hyperparameter optimization framework";
+    description = "Hyperparameter optimization framework";
     homepage = "https://optuna.org/";
     changelog = "https://github.com/optuna/optuna/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/opuslib/default.nix b/pkgs/development/python-modules/opuslib/default.nix
index c30d708511866..3e6ea255621db 100644
--- a/pkgs/development/python-modules/opuslib/default.nix
+++ b/pkgs/development/python-modules/opuslib/default.nix
@@ -1,17 +1,20 @@
-{ buildPythonPackage,
+{
+  buildPythonPackage,
   fetchFromGitHub,
   fetchpatch,
   isPy27,
   libopus,
-  nose,
-  lib, stdenv,
+  pynose,
+  lib,
+  stdenv,
   substituteAll,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "opuslib";
   version = "3.0.3";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = isPy27;
 
@@ -41,7 +44,9 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeCheckInputs = [ nose ];
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [ pynose ];
 
   meta = with lib; {
     description = "Python bindings to the libopus, IETF low-delay audio codec";
diff --git a/pkgs/development/python-modules/opytimark/default.nix b/pkgs/development/python-modules/opytimark/default.nix
index 69eb61f795bf5..29b5fcee2c51c 100644
--- a/pkgs/development/python-modules/opytimark/default.nix
+++ b/pkgs/development/python-modules/opytimark/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, numpy
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +29,9 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # several tests are failing
   disabledTests = [
@@ -44,9 +41,7 @@ buildPythonPackage rec {
     "cec_benchmark"
   ];
 
-  pythonImportsCheck = [
-    "opytimark"
-  ];
+  pythonImportsCheck = [ "opytimark" ];
 
   meta = with lib; {
     description = "Library consisting of optimization benchmarking functions";
diff --git a/pkgs/development/python-modules/oracledb/default.nix b/pkgs/development/python-modules/oracledb/default.nix
index 356883e2c56ea..c1989cbe33b79 100644
--- a/pkgs/development/python-modules/oracledb/default.nix
+++ b/pkgs/development/python-modules/oracledb/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "oracledb";
-  version = "2.2.0";
+  version = "2.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9Sx984sTJDtc5YNFe4B0ijRoK5u4Nw2iSXhotxl2eYs=";
+    hash = "sha256-hGTG8ClfMxja9sLHLIPC3Lw34T+P1E4+Of+GZfRC1rY=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/oralb-ble/default.nix b/pkgs/development/python-modules/oralb-ble/default.nix
index 08b0abb2ded85..11eba7e06ab1c 100644
--- a/pkgs/development/python-modules/oralb-ble/default.nix
+++ b/pkgs/development/python-modules/oralb-ble/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, bleak
-, bleak-retry-connector
-, bluetooth-data-tools
-, bluetooth-sensor-state-data
-, buildPythonPackage
-, fetchFromGitHub
-, home-assistant-bluetooth
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  bleak,
+  bleak-retry-connector,
+  bluetooth-data-tools,
+  bluetooth-sensor-state-data,
+  buildPythonPackage,
+  fetchFromGitHub,
+  home-assistant-bluetooth,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
       --replace-fail " --cov=oralb_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bleak
@@ -48,9 +47,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "oralb_ble"
-  ];
+  pythonImportsCheck = [ "oralb_ble" ];
 
   disabledTests = [
     # Test is outdated, TypeError: BLEDevice.__init__() missing 2 required...
diff --git a/pkgs/development/python-modules/orange-canvas-core/default.nix b/pkgs/development/python-modules/orange-canvas-core/default.nix
index 592aa2afa509a..7aaef933a66c4 100644
--- a/pkgs/development/python-modules/orange-canvas-core/default.nix
+++ b/pkgs/development/python-modules/orange-canvas-core/default.nix
@@ -1,29 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, anyqt
-, cachecontrol
-, commonmark
-, dictdiffer
-, docutils
-, filelock
-, lockfile
-, numpy
-, pytest-qt
-, pytestCheckHook
-, qasync
-, qt5
-, requests-cache
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  anyqt,
+  cachecontrol,
+  commonmark,
+  dictdiffer,
+  docutils,
+  filelock,
+  lockfile,
+  numpy,
+  pytest-qt,
+  pytestCheckHook,
+  qasync,
+  qt5,
+  requests-cache,
 }:
 
 buildPythonPackage rec {
   pname = "orange-canvas-core";
-  version = "0.2.0";
+  version = "0.2.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-KMEFZkAZkDhuDPpAts+u825p5pFJZbyrsMW/S1AArp4=";
+    hash = "sha256-f0E/7jnzoIrV4V1KSbec0MZB/BLz0UVbBCsc3v4dp0o=";
   };
 
   propagatedBuildInputs = [
@@ -53,9 +54,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTestPaths = [
-    "orangecanvas/canvas/items/tests/test_graphicstextitem.py"
-  ];
+  disabledTestPaths = [ "orangecanvas/canvas/items/tests/test_graphicstextitem.py" ];
 
   meta = {
     description = "Orange framework for building graphical user interfaces for editing workflows";
diff --git a/pkgs/development/python-modules/orange-widget-base/default.nix b/pkgs/development/python-modules/orange-widget-base/default.nix
index 95dadbb04d796..50a1e956919a5 100644
--- a/pkgs/development/python-modules/orange-widget-base/default.nix
+++ b/pkgs/development/python-modules/orange-widget-base/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pyqt5
-, pyqtwebengine
-, matplotlib
-, orange-canvas-core
-, pyqtgraph
-, typing-extensions
-, qt5
-, pytestCheckHook
-, pytest-qt
-, appnope
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pyqt5,
+  pyqtwebengine,
+  matplotlib,
+  orange-canvas-core,
+  pyqtgraph,
+  typing-extensions,
+  qt5,
+  pytestCheckHook,
+  pytest-qt,
+  appnope,
 }:
 
 buildPythonPackage rec {
   pname = "orange-widget-base";
-  version = "4.23.0";
+  version = "4.24.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-mz+BcZEdg1p9V0ewYRrw3jKBWLMbL9RR6o4hUEUx9DA=";
+    hash = "sha256-2cBg7s4+qMrb2G4sMk5yednOzJCNheHIQ3lty4KAg18=";
   };
 
   propagatedBuildInputs = [
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     pyqtgraph
     pyqtwebengine
     typing-extensions
-  ] ++ lib.optionals stdenv.isDarwin [
-    appnope
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ appnope ];
 
   pythonImportsCheck = [ "orangewidget" ];
 
diff --git a/pkgs/development/python-modules/orange3/default.nix b/pkgs/development/python-modules/orange3/default.nix
index 1c4531254ae8c..338a046d85dbb 100644
--- a/pkgs/development/python-modules/orange3/default.nix
+++ b/pkgs/development/python-modules/orange3/default.nix
@@ -1,53 +1,57 @@
-{ lib
-, baycomp
-, bottleneck
-, buildPythonPackage
-, chardet
-, copyDesktopItems
-, pythonRelaxDepsHook
-, cython
-, catboost
-, xgboost
-, fetchFromGitHub
-, fetchurl
-, httpx
-, joblib
-, keyring
-, keyrings-alt
-, makeDesktopItem
-, matplotlib
-, nix-update-script
-, numpy
-, oldest-supported-numpy
-, openpyxl
-, opentsne
-, orange-canvas-core
-, orange-widget-base
-, pandas
-, pyqtgraph
-, pyqtwebengine
-, python
-, python-louvain
-, pythonOlder
-, pyyaml
-, qt5
-, qtconsole
-, recommonmark
-, requests
-, scikit-learn
-, scipy
-, serverfiles
-, setuptools
-, sphinx
-, wheel
-, xlrd
-, xlsxwriter
+{
+  lib,
+  stdenv,
+  baycomp,
+  bottleneck,
+  buildPythonPackage,
+  chardet,
+  copyDesktopItems,
+  cython,
+  catboost,
+  xgboost,
+  fetchFromGitHub,
+  fetchurl,
+  httpx,
+  joblib,
+  keyring,
+  keyrings-alt,
+  makeDesktopItem,
+  matplotlib,
+  nix-update-script,
+  numpy,
+  oldest-supported-numpy,
+  openpyxl,
+  opentsne,
+  orange-canvas-core,
+  orange-widget-base,
+  pandas,
+  pytestCheckHook,
+  pytest-qt,
+  pyqtgraph,
+  pyqtwebengine,
+  python,
+  python-louvain,
+  pythonOlder,
+  pyyaml,
+  pip,
+  qt5,
+  qtconsole,
+  recommonmark,
+  requests,
+  scikit-learn,
+  scipy,
+  serverfiles,
+  setuptools,
+  sphinx,
+  wheel,
+  xlrd,
+  xlsxwriter,
 }:
 
 let
   self = buildPythonPackage rec {
     pname = "orange3";
-    version = "3.36.2";
+    version = "3.37.0";
     pyproject = true;
 
     disabled = pythonOlder "3.7";
@@ -56,7 +60,7 @@ let
       owner = "biolab";
       repo = "orange3";
       rev = "refs/tags/${version}";
-      hash = "sha256-v9lk5vGhBaR2PHZ+Jq0hy1WaCsbeLe+vZlTaHBkfacU=";
+      hash = "sha256-3PybiHXH6oIYJb78/a7LnQA6cYUicDx4Mf65QhIhT4w=";
     };
 
     postPatch = ''
@@ -69,7 +73,6 @@ let
 
     nativeBuildInputs = [
       copyDesktopItems
-      pythonRelaxDepsHook
       oldest-supported-numpy
       cython
       qt5.wrapQtAppsHook
@@ -112,6 +115,7 @@ let
       keyrings-alt
       pyyaml
       baycomp
+      pip
     ];
 
     # FIXME: ImportError: cannot import name '_variable' from partially initialized module 'Orange.data' (most likely due to a circular import) (/build/source/Orange/data/__init__.py)
@@ -120,7 +124,10 @@ let
     # FIXME: pythonRelaxDeps is not relaxing the scikit-learn version constraint, had to disable this
     dontCheckRuntimeDeps = true;
 
-    pythonImportsCheck = [ "Orange" "Orange.data._variable" ];
+    pythonImportsCheck = [
+      "Orange"
+      "Orange.data._variable"
+    ];
 
     desktopItems = [
       (makeDesktopItem {
@@ -131,8 +138,19 @@ let
         comment = "Explore, analyze, and visualize your data";
         icon = "orange-canvas";
         mimeTypes = [ "application/x-extension-ows" ];
-        categories = [ "Science" "Education" "ArtificialIntelligence" "DataVisualization" "NumericalAnalysis" "Qt" ];
-        keywords = [ "Machine Learning" "Scientific Visualization" "Statistical Analysis" ];
+        categories = [
+          "Science"
+          "Education"
+          "ArtificialIntelligence"
+          "DataVisualization"
+          "NumericalAnalysis"
+          "Qt"
+        ];
+        keywords = [
+          "Machine Learning"
+          "Scientific Visualization"
+          "Statistical Analysis"
+        ];
       })
     ];
 
@@ -146,9 +164,9 @@ let
 
     passthru = {
       updateScript = nix-update-script { };
-      tests.unittests = self.overridePythonAttrs (old: {
-        pname = "${old.pname}-tests";
-        format = "other";
+      tests.unittests = stdenv.mkDerivation {
+        name = "${self.name}-tests";
+        inherit (self) src;
 
         preCheck = ''
           export HOME=$(mktemp -d)
@@ -160,23 +178,35 @@ let
           cp -r ${self}/${python.sitePackages}/Orange .
           chmod +w -R .
 
-          rm Orange/tests/test_url_reader.py # uses network
-          rm Orange/tests/test_ada_boost.py # broken: The 'base_estimator' parameter of AdaBoostRegressor must be an object implementing 'fit' and 'predict' or a str among {'deprecated'}. Got None instead.
-        '';
+          substituteInPlace Orange/classification/tests/test_xgb_cls.py \
+            --replace test_learners mk_test_learners
+
+          substituteInPlace Orange/modelling/tests/test_xgb.py \
+            --replace test_learners mk_test_learners
+
+          substituteInPlace Orange/**/tests/*.py \
+            --replace test_filename filename_test
+
+          # TODO: debug why orange is crashing on GC, may be a upstream issue
+          chmod +x Orange/__init__.py
+          echo "import gc; gc.disable()" | tee -a Orange/__init__.py
 
-        checkPhase = ''
-          runHook preCheck
-          ${python.interpreter} -m unittest -b -v ./Orange/**/test*.py
-          runHook postCheck
         '';
 
-        postInstall = "";
+        nativeBuildInputs = [
+          pytestCheckHook
+          pytest-qt
+        ];
+
+        postCheck = ''
+          touch $out
+        '';
 
         doBuild = false;
         doInstall = false;
 
-        nativeBuildInputs = [ self ] ++ old.nativeBuildInputs;
-      });
+        buildInputs = [ self ];
+      };
     };
 
     meta = with lib; {
diff --git a/pkgs/development/python-modules/oras/default.nix b/pkgs/development/python-modules/oras/default.nix
index 16a8a9d9fd6b6..987b41dfaa2d6 100644
--- a/pkgs/development/python-modules/oras/default.nix
+++ b/pkgs/development/python-modules/oras/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "oras";
-  version = "0.1.29";
+  version = "0.1.30";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "oras-project";
     repo = "oras-py";
     rev = "refs/tags/${version}";
-    hash = "sha256-ZV+J5zqRBRIddWdmLzzjpZi3M5E/HfkG8lWK9xzy5tw=";
+    hash = "sha256-qdWGqa5W+WI+lQ2TDZUuJF7PSmkc1Kv7UbWL6+Rfyio=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/orbax-checkpoint/default.nix b/pkgs/development/python-modules/orbax-checkpoint/default.nix
index aa5a5572dec99..cfe81127811a7 100644
--- a/pkgs/development/python-modules/orbax-checkpoint/default.nix
+++ b/pkgs/development/python-modules/orbax-checkpoint/default.nix
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "orbax-checkpoint";
-  version = "0.5.9";
+  version = "0.5.17";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "orbax_checkpoint";
     inherit version;
-    hash = "sha256-H96IkUM3IxV79uddNBCU0dq+0dvPx8/Ps4HeCItGi2A=";
+    hash = "sha256-cFV0oLQdk1sXMS/jaYjnLaHzPVfZdzKTeneoTAJ5P5Q=";
   };
 
   build-system = [ flit-core ];
diff --git a/pkgs/development/python-modules/ordered-set/default.nix b/pkgs/development/python-modules/ordered-set/default.nix
index d0ac537171a52..adaaa210cdd41 100644
--- a/pkgs/development/python-modules/ordered-set/default.nix
+++ b/pkgs/development/python-modules/ordered-set/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, flit-core
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  flit-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,20 +19,14 @@ buildPythonPackage rec {
     hash = "sha256-aUqORMh2V8WSku3nKJHrkdNBMfZTFGOqswCRkcdzZKg=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ordered_set"
-  ];
+  pythonImportsCheck = [ "ordered_set" ];
 
   meta = with lib; {
-    description = "A MutableSet that remembers its order, so that every entry has an index.";
+    description = "MutableSet that remembers its order, so that every entry has an index";
     homepage = "https://github.com/rspeer/ordered-set";
     license = licenses.mit;
     maintainers = with maintainers; [ MostAwesomeDude ];
diff --git a/pkgs/development/python-modules/orderedmultidict/default.nix b/pkgs/development/python-modules/orderedmultidict/default.nix
index fb7c4395e56c7..1d625b114f236 100644
--- a/pkgs/development/python-modules/orderedmultidict/default.nix
+++ b/pkgs/development/python-modules/orderedmultidict/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi, flake8, six, pythonOlder, importlib-metadata }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flake8,
+  six,
+  pythonOlder,
+  importlib-metadata,
+}:
 
 buildPythonPackage rec {
   pname = "orderedmultidict";
@@ -12,13 +20,10 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ flake8 ];
 
-  propagatedBuildInputs = [ six ]
-    ++ lib.optionals (pythonOlder "3.8") [
-      importlib-metadata
-    ];
+  propagatedBuildInputs = [ six ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   meta = with lib; {
-    description = "Ordered Multivalue Dictionary.";
+    description = "Ordered Multivalue Dictionary";
     homepage = "https://github.com/gruns/orderedmultidict";
     license = licenses.publicDomain;
     maintainers = with maintainers; [ vanzef ];
diff --git a/pkgs/development/python-modules/orderedset/default.nix b/pkgs/development/python-modules/orderedset/default.nix
index 1ab63309c3913..a1835c6cdac6b 100644
--- a/pkgs/development/python-modules/orderedset/default.nix
+++ b/pkgs/development/python-modules/orderedset/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "orderedset";
@@ -11,7 +15,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "An Ordered Set implementation in Cython";
+    description = "Ordered Set implementation in Cython";
     homepage = "https://pypi.python.org/pypi/orderedset";
     license = licenses.bsd3;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/orgparse/default.nix b/pkgs/development/python-modules/orgparse/default.nix
index 67988d5529ff9..488a0e6e4d987 100644
--- a/pkgs/development/python-modules/orgparse/default.nix
+++ b/pkgs/development/python-modules/orgparse/default.nix
@@ -1,4 +1,8 @@
-{ lib, python3Packages, fetchPypi }:
+{
+  lib,
+  python3Packages,
+  fetchPypi,
+}:
 
 python3Packages.buildPythonPackage rec {
   pname = "orgparse";
diff --git a/pkgs/development/python-modules/orjson/default.nix b/pkgs/development/python-modules/orjson/default.nix
index bd1d06e5c266c..c1d58c0a1c546 100644
--- a/pkgs/development/python-modules/orjson/default.nix
+++ b/pkgs/development/python-modules/orjson/default.nix
@@ -1,36 +1,37 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build-system
-, rustPlatform
-, cffi
+  # build-system
+  rustPlatform,
+  cffi,
 
-# native dependencies
-, libiconv
+  # native dependencies
+  libiconv,
 
-# tests
-, numpy
-, psutil
-, pytestCheckHook
-, python-dateutil
-, pytz
-, xxhash
-, python
+  # tests
+  numpy,
+  psutil,
+  pytestCheckHook,
+  python-dateutil,
+  pytz,
+  xxhash,
+  python,
 
-# for passthru.tests
-, falcon
-, fastapi
-, gradio
-, mashumaro
-, ufolib2
+  # for passthru.tests
+  falcon,
+  fastapi,
+  gradio,
+  mashumaro,
+  ufolib2,
 }:
 
 buildPythonPackage rec {
   pname = "orjson";
-  version = "3.10.1";
+  version = "3.10.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -39,27 +40,25 @@ buildPythonPackage rec {
     owner = "ijl";
     repo = "orjson";
     rev = "refs/tags/${version}";
-    hash = "sha256-vEJriLd7f+zlYcMIyhDTkq2kmNc5MaNLHo0qMLS5hro=";
+    hash = "sha256-Q2zi3mNgCFrg7Ucana0+lmR9C9kkuUidEJj8GneR2W4=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-yQkpjedHwgsZiiZEzYV66aa9RepCFW0PBqtD29tfoMI=";
+    hash = "sha256-yhLKw4BhdIHgcu4iVlXQlHk/8J+3NK6LlmSWbm/5y4Q=";
   };
 
   maturinBuildFlags = [ "--interpreter ${python.executable}" ];
 
-  nativeBuildInputs = [
-    cffi
-  ] ++ (with rustPlatform; [
-    cargoSetupHook
-    maturinBuildHook
-  ]);
+  nativeBuildInputs =
+    [ cffi ]
+    ++ (with rustPlatform; [
+      cargoSetupHook
+      maturinBuildHook
+    ]);
 
-  buildInputs = lib.optionals stdenv.isDarwin [
-    libiconv
-  ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   nativeCheckInputs = [
     numpy
@@ -70,9 +69,7 @@ buildPythonPackage rec {
     xxhash
   ];
 
-  pythonImportsCheck = [
-    "orjson"
-  ];
+  pythonImportsCheck = [ "orjson" ];
 
   passthru.tests = {
     inherit
@@ -81,14 +78,17 @@ buildPythonPackage rec {
       gradio
       mashumaro
       ufolib2
-    ;
+      ;
   };
 
   meta = with lib; {
     description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy";
     homepage = "https://github.com/ijl/orjson";
     changelog = "https://github.com/ijl/orjson/blob/${version}/CHANGELOG.md";
-    license = with licenses; [ asl20 mit ];
+    license = with licenses; [
+      asl20
+      mit
+    ];
     platforms = platforms.unix;
     maintainers = with maintainers; [ misuzu ];
   };
diff --git a/pkgs/development/python-modules/orm/default.nix b/pkgs/development/python-modules/orm/default.nix
index 1b3ed285029fe..a498127b4f116 100644
--- a/pkgs/development/python-modules/orm/default.nix
+++ b/pkgs/development/python-modules/orm/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiomysql
-, aiosqlite
-, asyncpg
-, buildPythonPackage
-, databases
-, fetchFromGitHub
-, pythonOlder
-, typesystem
+{
+  lib,
+  aiomysql,
+  aiosqlite,
+  asyncpg,
+  buildPythonPackage,
+  databases,
+  fetchFromGitHub,
+  pythonOlder,
+  typesystem,
 }:
 
 buildPythonPackage rec {
@@ -39,12 +40,10 @@ buildPythonPackage rec {
   # Tests require databases
   doCheck = false;
 
-  pythonImportsCheck = [
-    "orm"
-  ];
+  pythonImportsCheck = [ "orm" ];
 
   meta = with lib; {
-    description = "An async ORM";
+    description = "Async ORM";
     homepage = "https://github.com/encode/orm";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/ormar/default.nix b/pkgs/development/python-modules/ormar/default.nix
index e50d9b2788fa3..a2ef75c52bb1e 100644
--- a/pkgs/development/python-modules/ormar/default.nix
+++ b/pkgs/development/python-modules/ormar/default.nix
@@ -1,33 +1,33 @@
-{ lib
-, aiomysql
-, aiopg
-, aiosqlite
-, asyncpg
-, buildPythonPackage
-, cryptography
-, databases
-, fastapi
-, fetchFromGitHub
-, httpx
-, importlib-metadata
-, mysqlclient
-, nest-asyncio
-, orjson
-, poetry-core
-, psycopg2
-, pydantic
-, pymysql
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, sqlalchemy
-, typing-extensions
+{
+  lib,
+  aiomysql,
+  aiopg,
+  aiosqlite,
+  asyncpg,
+  buildPythonPackage,
+  cryptography,
+  databases,
+  fastapi,
+  fetchFromGitHub,
+  httpx,
+  importlib-metadata,
+  mysqlclient,
+  nest-asyncio,
+  orjson,
+  poetry-core,
+  psycopg2,
+  pydantic,
+  pymysql,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  sqlalchemy,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "ormar";
-  version = "0.12.2";
+  version = "0.20.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -36,7 +36,7 @@ buildPythonPackage rec {
     owner = "collerek";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-Yd5ex0bcy61zq5Sn2dKeb98s/CMxUWnyGx6jFWQ3RUs=";
+    hash = "sha256-DzvmJpWJANIoc5lvWAD0b2bhbKdDEpNL2l3TqXSZSnc=";
   };
 
   pythonRelaxDeps = [
@@ -47,42 +47,29 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = [
-    databases
-    psycopg2
-    pydantic
-    sqlalchemy
-    psycopg2
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-    importlib-metadata
-  ];
+  propagatedBuildInputs =
+    [
+      databases
+      psycopg2
+      pydantic
+      sqlalchemy
+      psycopg2
+    ]
+    ++ lib.optionals (pythonOlder "3.8") [
+      typing-extensions
+      importlib-metadata
+    ];
 
   passthru.optional-dependencies = {
-    postgresql = [
-      asyncpg
-    ];
-    postgres = [
-      asyncpg
-    ];
-    aiopg = [
-      aiopg
-    ];
-    mysql = [
-      aiomysql
-    ];
-    sqlite = [
-      aiosqlite
-    ];
-    orjson = [
-      orjson
-    ];
-    crypto = [
-      cryptography
-    ];
+    postgresql = [ asyncpg ];
+    postgres = [ asyncpg ];
+    aiopg = [ aiopg ];
+    mysql = [ aiomysql ];
+    sqlite = [ aiosqlite ];
+    orjson = [ orjson ];
+    crypto = [ cryptography ];
     all = [
       aiomysql
       aiopg
@@ -95,9 +82,7 @@ buildPythonPackage rec {
     ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   checkInputs = [
     fastapi
@@ -106,9 +91,7 @@ buildPythonPackage rec {
     pytest-asyncio
   ] ++ passthru.optional-dependencies.all;
 
-  disabledTestPaths = [
-    "benchmarks/test_benchmark_*.py"
-  ];
+  disabledTestPaths = [ "benchmarks/test_benchmark_*.py" ];
 
   disabledTests = [
     # TypeError: Object of type bytes is not JSON serializable
@@ -154,9 +137,7 @@ buildPythonPackage rec {
     "test_quering_of_related_model_works_but_no_result"
   ];
 
-  pythonImportsCheck = [
-    "ormar"
-  ];
+  pythonImportsCheck = [ "ormar" ];
 
   meta = with lib; {
     description = "Async ORM with fastapi in mind and pydantic validation";
diff --git a/pkgs/development/python-modules/orvibo/default.nix b/pkgs/development/python-modules/orvibo/default.nix
index 0b08b3d1a0c1c..15ff4dcee51bf 100644
--- a/pkgs/development/python-modules/orvibo/default.nix
+++ b/pkgs/development/python-modules/orvibo/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/os-service-types/default.nix b/pkgs/development/python-modules/os-service-types/default.nix
index 7ec653e4fcad5..e17e8f5fffe48 100644
--- a/pkgs/development/python-modules/os-service-types/default.nix
+++ b/pkgs/development/python-modules/os-service-types/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pbr
-, six
-, callPackage
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pbr,
+  six,
+  callPackage,
 }:
 
 buildPythonPackage rec {
@@ -22,7 +23,10 @@ buildPythonPackage rec {
     rm test-requirements.txt
   '';
 
-  propagatedBuildInputs = [ pbr six ];
+  propagatedBuildInputs = [
+    pbr
+    six
+  ];
 
   # check in passthru.tests.pytest to escape infinite recursion with other oslo components
   doCheck = false;
diff --git a/pkgs/development/python-modules/os-service-types/tests.nix b/pkgs/development/python-modules/os-service-types/tests.nix
index a0996765cb6b9..f5cbe994e9e8f 100644
--- a/pkgs/development/python-modules/os-service-types/tests.nix
+++ b/pkgs/development/python-modules/os-service-types/tests.nix
@@ -1,10 +1,11 @@
-{ buildPythonPackage
-, keystoneauth1
-, os-service-types
-, oslotest
-, requests-mock
-, stestr
-, testscenarios
+{
+  buildPythonPackage,
+  keystoneauth1,
+  os-service-types,
+  oslotest,
+  requests-mock,
+  stestr,
+  testscenarios,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/osc-diagram/default.nix b/pkgs/development/python-modules/osc-diagram/default.nix
index f2802ed08e76d..a411e2b4824ef 100644
--- a/pkgs/development/python-modules/osc-diagram/default.nix
+++ b/pkgs/development/python-modules/osc-diagram/default.nix
@@ -1,10 +1,10 @@
 {
-  lib
-  , buildPythonPackage
-  , diagrams
-  , fetchFromGitHub
-  , osc-sdk-python
-  , setuptools
+  lib,
+  buildPythonPackage,
+  diagrams,
+  fetchFromGitHub,
+  osc-sdk-python,
+  setuptools,
 }:
 
 buildPythonPackage {
@@ -19,9 +19,7 @@ buildPythonPackage {
     hash = "sha256-2Iaar2twemw4xv1GGqHd3xiNCHrZLsZXtP7e9tNVpEU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     diagrams
diff --git a/pkgs/development/python-modules/osc-lib/default.nix b/pkgs/development/python-modules/osc-lib/default.nix
index 1bde4e8eedb5d..84443f5b7733e 100644
--- a/pkgs/development/python-modules/osc-lib/default.nix
+++ b/pkgs/development/python-modules/osc-lib/default.nix
@@ -1,15 +1,16 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, cliff
-, oslo-i18n
-, oslo-utils
-, openstacksdk
-, pbr
-, requests-mock
-, simplejson
-, stestr
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cliff,
+  oslo-i18n,
+  oslo-utils,
+  openstacksdk,
+  pbr,
+  requests-mock,
+  simplejson,
+  stestr,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
   # fake version to make pbr.packaging happy and not reject it...
   PBR_VERSION = version;
 
-  nativeBuildInputs = [
-    pbr
-  ];
+  nativeBuildInputs = [ pbr ];
 
   propagatedBuildInputs = [
     cliff
diff --git a/pkgs/development/python-modules/osc-sdk-python/default.nix b/pkgs/development/python-modules/osc-sdk-python/default.nix
index 74d617efe5008..0bbfc103b0411 100644
--- a/pkgs/development/python-modules/osc-sdk-python/default.nix
+++ b/pkgs/development/python-modules/osc-sdk-python/default.nix
@@ -1,38 +1,34 @@
 {
-  lib
-  , buildPythonPackage
-  , fetchFromGitHub
-  , pytestCheckHook
-  , requests
-  , ruamel-yaml
-  , setuptools
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  requests,
+  ruamel-yaml,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "osc-sdk-python";
-  version = "0.27.0";
+  version = "0.29.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "outscale";
     repo = "osc-sdk-python";
     rev = "v${version}";
-    hash = "sha256-dp4yE8cTeXAPoixJ6ZtsvcTSKdYpDIebHkddUiqJe5Q=";
+    hash = "sha256-WtKG2ujEGUW0nhYWxfYDkxicN/uEqBxKCh9FcCfjmHM=";
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     requests
     ruamel-yaml
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace setup.py \
@@ -40,13 +36,9 @@ buildPythonPackage rec {
   '';
 
   # Only keep test not requiring access and secret keys
-  pytestFlagsArray = [
-    "tests/test_net.py"
-  ];
+  pytestFlagsArray = [ "tests/test_net.py" ];
 
-  pythonImportsCheck = [
-    "osc_sdk_python"
-  ];
+  pythonImportsCheck = [ "osc_sdk_python" ];
 
   meta = with lib; {
     description = "SDK to perform actions on Outscale API";
diff --git a/pkgs/development/python-modules/osc/default.nix b/pkgs/development/python-modules/osc/default.nix
index ef96910759625..96533b823651e 100644
--- a/pkgs/development/python-modules/osc/default.nix
+++ b/pkgs/development/python-modules/osc/default.nix
@@ -1,30 +1,38 @@
-{ stdenv
-, bashInteractive
-, buildPythonPackage
-, cryptography
-, diffstat
-, fetchFromGitHub
-, lib
-, rpm
-, urllib3
-, keyring
+{
+  stdenv,
+  bashInteractive,
+  buildPythonPackage,
+  cryptography,
+  diffstat,
+  fetchFromGitHub,
+  lib,
+  rpm,
+  urllib3,
+  keyring,
 }:
 
 buildPythonPackage rec {
   pname = "osc";
-  version = "1.6.1";
+  version = "1.7.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "openSUSE";
     repo = "osc";
     rev = version;
-    hash = "sha256-U76nAE7NdLIdrKzRC0sP8hy6G6A8Tr4Qe2PGZI2xvyk=";
+    hash = "sha256-ze5mgFU3jc+hB1W2ayj4i2dBFJ0CXsZULzbdFMz3G3Y=";
   };
 
   buildInputs = [ bashInteractive ]; # needed for bash-completion helper
-  nativeCheckInputs = [ rpm diffstat ];
-  propagatedBuildInputs = [ urllib3 cryptography keyring ];
+  nativeCheckInputs = [
+    rpm
+    diffstat
+  ];
+  propagatedBuildInputs = [
+    urllib3
+    cryptography
+    keyring
+  ];
 
   postInstall = ''
     install -D -m444 contrib/osc.fish $out/etc/fish/completions/osc.fish
@@ -45,8 +53,10 @@ buildPythonPackage rec {
     homepage = "https://github.com/openSUSE/osc";
     description = "opensuse-commander with svn like handling";
     mainProgram = "osc";
-    maintainers = with maintainers; [ peti saschagrunert ];
+    maintainers = with maintainers; [
+      peti
+      saschagrunert
+    ];
     license = licenses.gpl2;
   };
-
 }
diff --git a/pkgs/development/python-modules/oscpy/default.nix b/pkgs/development/python-modules/oscpy/default.nix
index 9ccbedb180606..9889b746405a2 100644
--- a/pkgs/development/python-modules/oscpy/default.nix
+++ b/pkgs/development/python-modules/oscpy/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "oscpy";
@@ -26,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "oscpy" ];
 
   meta = with lib; {
-    description = "A modern implementation of OSC for python2/3";
+    description = "Modern implementation of OSC for python2/3";
     mainProgram = "oscli";
     license = licenses.mit;
     homepage = "https://github.com/kivy/oscpy";
diff --git a/pkgs/development/python-modules/oscrypto/default.nix b/pkgs/development/python-modules/oscrypto/default.nix
index c3cea1d5bcde5..1ddfce166c382 100644
--- a/pkgs/development/python-modules/oscrypto/default.nix
+++ b/pkgs/development/python-modules/oscrypto/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, stdenv
-, asn1crypto
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, openssl
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  asn1crypto,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  openssl,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -41,17 +42,11 @@ buildPythonPackage rec {
     done
   '';
 
-  propagatedBuildInputs = [
-    asn1crypto
-  ];
+  propagatedBuildInputs = [ asn1crypto ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "oscrypto"
-  ];
+  pythonImportsCheck = [ "oscrypto" ];
 
   doCheck = !stdenv.isDarwin;
 
diff --git a/pkgs/development/python-modules/oscscreen/default.nix b/pkgs/development/python-modules/oscscreen/default.nix
index c0eab771d148b..a9f9a9873df54 100644
--- a/pkgs/development/python-modules/oscscreen/default.nix
+++ b/pkgs/development/python-modules/oscscreen/default.nix
@@ -1,8 +1,8 @@
 {
-  lib
-  , buildPythonPackage
-  , fetchFromGitHub
-  , setuptools
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-0Im1kVFa11AW+7Oe95XvkfxSlaux6bkKaHSQy6hJCN8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   pythonImportsCheck = [ "oscscreen" ];
 
diff --git a/pkgs/development/python-modules/oset/default.nix b/pkgs/development/python-modules/oset/default.nix
index 7cc3238060293..e1c79446e3972 100644
--- a/pkgs/development/python-modules/oset/default.nix
+++ b/pkgs/development/python-modules/oset/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "oset";
@@ -16,5 +20,4 @@ buildPythonPackage rec {
     description = "Ordered set";
     license = licenses.psfl;
   };
-
 }
diff --git a/pkgs/development/python-modules/oslo-concurrency/default.nix b/pkgs/development/python-modules/oslo-concurrency/default.nix
index 13fbdbcaac64a..ef4b6f2c4bc52 100644
--- a/pkgs/development/python-modules/oslo-concurrency/default.nix
+++ b/pkgs/development/python-modules/oslo-concurrency/default.nix
@@ -1,19 +1,20 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, bash
-, coreutils
-, eventlet
-, fasteners
-, fixtures
-, iana-etc
-, libredirect
-, oslo-config
-, oslo-utils
-, oslotest
-, pbr
-, stestr
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  bash,
+  coreutils,
+  eventlet,
+  fasteners,
+  fixtures,
+  iana-etc,
+  libredirect,
+  oslo-config,
+  oslo-utils,
+  oslotest,
+  pbr,
+  stestr,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/oslo-config/default.nix b/pkgs/development/python-modules/oslo-config/default.nix
index f73090cf812a1..172c7a56b9a70 100644
--- a/pkgs/development/python-modules/oslo-config/default.nix
+++ b/pkgs/development/python-modules/oslo-config/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, debtcollector
-, netaddr
-, oslo-i18n
-, pbr
-, pyyaml
-, requests
-, rfc3986
-, stevedore
-, callPackage
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  debtcollector,
+  netaddr,
+  oslo-i18n,
+  pbr,
+  pyyaml,
+  requests,
+  rfc3986,
+  stevedore,
+  callPackage,
 }:
 
 buildPythonPackage rec {
@@ -44,7 +45,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   passthru.tests = {
-    tests = callPackage ./tests.nix {};
+    tests = callPackage ./tests.nix { };
   };
 
   pythonImportsCheck = [ "oslo_config" ];
diff --git a/pkgs/development/python-modules/oslo-config/tests.nix b/pkgs/development/python-modules/oslo-config/tests.nix
index 0540760e57a06..7f6a3dfbf6f02 100644
--- a/pkgs/development/python-modules/oslo-config/tests.nix
+++ b/pkgs/development/python-modules/oslo-config/tests.nix
@@ -1,16 +1,17 @@
-{ buildPythonPackage
-, oslo-config
-, docutils
-, oslo-log
-, oslotest
-, requests-mock
-, sphinx
-, stestr
-, testscenarios
+{
+  buildPythonPackage,
+  oslo-config,
+  docutils,
+  oslo-log,
+  oslotest,
+  requests-mock,
+  sphinx,
+  stestr,
+  testscenarios,
 }:
 
 buildPythonPackage {
-pname = "oslo-config-tests";
+  pname = "oslo-config-tests";
   inherit (oslo-config) version src;
   format = "other";
 
diff --git a/pkgs/development/python-modules/oslo-context/default.nix b/pkgs/development/python-modules/oslo-context/default.nix
index ce9b5d6dcf994..cbb8cad1bbae9 100644
--- a/pkgs/development/python-modules/oslo-context/default.nix
+++ b/pkgs/development/python-modules/oslo-context/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi, debtcollector, oslotest, stestr, pbr }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  debtcollector,
+  oslotest,
+  stestr,
+  pbr,
+}:
 
 buildPythonPackage rec {
   pname = "oslo.context";
diff --git a/pkgs/development/python-modules/oslo-db/default.nix b/pkgs/development/python-modules/oslo-db/default.nix
index b4dce2cc09b5e..6b2c64de5d0c7 100644
--- a/pkgs/development/python-modules/oslo-db/default.nix
+++ b/pkgs/development/python-modules/oslo-db/default.nix
@@ -1,32 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, alembic
-, debtcollector
-, oslo-config
-, oslo-context
-, oslo-i18n
-, oslo-utils
-, oslotest
-, pbr
-, psycopg2
-, setuptools
-, sqlalchemy
-, stevedore
-, stestr
-, testresources
-, testscenarios
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  alembic,
+  debtcollector,
+  oslo-config,
+  oslo-context,
+  oslo-i18n,
+  oslo-utils,
+  oslotest,
+  pbr,
+  psycopg2,
+  setuptools,
+  sqlalchemy,
+  stevedore,
+  stestr,
+  testresources,
+  testscenarios,
 }:
 
 buildPythonPackage rec {
   pname = "oslo-db";
-  version = "15.0.0";
+  version = "15.1.0";
   pyproject = true;
 
   src = fetchPypi {
     pname = "oslo.db";
     inherit version;
-    hash = "sha256-6QJDUgX1xQtw7mNYY8i06lS9Hr4ABpXAZeMN1C2Xb/o=";
+    hash = "sha256-FqvjqOYf52zaLwPZx9xZEITRnvYU8xiHvylp7fsg6E4=";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/development/python-modules/oslo-i18n/default.nix b/pkgs/development/python-modules/oslo-i18n/default.nix
index 814c7dfc0dc12..ca79dec476eae 100644
--- a/pkgs/development/python-modules/oslo-i18n/default.nix
+++ b/pkgs/development/python-modules/oslo-i18n/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, oslotest
-, pbr
-, setuptools
-, testscenarios
-, stestr
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  oslotest,
+  pbr,
+  setuptools,
+  testscenarios,
+  stestr,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/oslo-log/default.nix b/pkgs/development/python-modules/oslo-log/default.nix
index bc4584bcee5a4..882131c7c60b9 100644
--- a/pkgs/development/python-modules/oslo-log/default.nix
+++ b/pkgs/development/python-modules/oslo-log/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, eventlet
-, oslo-config
-, oslo-context
-, oslo-serialization
-, oslo-utils
-, oslotest
-, pbr
-, pyinotify
-, python-dateutil
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  eventlet,
+  oslo-config,
+  oslo-context,
+  oslo-serialization,
+  oslo-utils,
+  oslotest,
+  pbr,
+  pyinotify,
+  python-dateutil,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "oslo-log";
-  version = "5.5.1";
+  version = "6.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -25,7 +26,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "oslo.log";
     inherit version;
-    hash = "sha256-SEFIUSxdsqizXIPNmX6ZU3Vf2L+oqvbuDMjHrrdCkhA=";
+    hash = "sha256-ifDW+iy6goH4m1CKf+Sb+5far1XFJ4GH1FowaZceaH8=";
   };
 
   propagatedBuildInputs = [
@@ -35,9 +36,7 @@ buildPythonPackage rec {
     oslo-utils
     pbr
     python-dateutil
-  ] ++ lib.optionals stdenv.isLinux [
-    pyinotify
-  ];
+  ] ++ lib.optionals stdenv.isLinux [ pyinotify ];
 
   nativeCheckInputs = [
     eventlet
@@ -52,9 +51,7 @@ buildPythonPackage rec {
     "test_log_config_append_invalid"
   ];
 
-  pythonImportsCheck = [
-    "oslo_log"
-  ];
+  pythonImportsCheck = [ "oslo_log" ];
 
   meta = with lib; {
     description = "oslo.log library";
diff --git a/pkgs/development/python-modules/oslo-serialization/default.nix b/pkgs/development/python-modules/oslo-serialization/default.nix
index 1399503c0f9d9..28be76c8d13f7 100644
--- a/pkgs/development/python-modules/oslo-serialization/default.nix
+++ b/pkgs/development/python-modules/oslo-serialization/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, msgpack
-, oslo-utils
-, oslotest
-, pbr
-, pytz
-, stestr
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msgpack,
+  oslo-utils,
+  oslotest,
+  pbr,
+  pytz,
+  stestr,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,16 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ pbr ];
 
-  propagatedBuildInputs = [ msgpack oslo-utils pytz ];
+  propagatedBuildInputs = [
+    msgpack
+    oslo-utils
+    pytz
+  ];
 
-  nativeCheckInputs = [ oslotest stestr ];
+  nativeCheckInputs = [
+    oslotest
+    stestr
+  ];
 
   checkPhase = ''
     stestr run
diff --git a/pkgs/development/python-modules/oslo-utils/default.nix b/pkgs/development/python-modules/oslo-utils/default.nix
index 503143f75d318..b812207a5abbf 100644
--- a/pkgs/development/python-modules/oslo-utils/default.nix
+++ b/pkgs/development/python-modules/oslo-utils/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, ddt
-, debtcollector
-, eventlet
-, fixtures
-, iso8601
-, netaddr
-, netifaces
-, oslo-i18n
-, oslotest
-, packaging
-, pbr
-, pyparsing
-, pytz
-, setuptools
-, stestr
-, testscenarios
-, tzdata
-, pyyaml
-, iana-etc
-, libredirect
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  ddt,
+  debtcollector,
+  eventlet,
+  fixtures,
+  iso8601,
+  netaddr,
+  netifaces,
+  oslo-i18n,
+  oslotest,
+  packaging,
+  pbr,
+  pyparsing,
+  pytz,
+  setuptools,
+  stestr,
+  testscenarios,
+  tzdata,
+  pyyaml,
+  iana-etc,
+  libredirect,
 }:
 
 buildPythonPackage rec {
@@ -70,7 +71,7 @@ buildPythonPackage rec {
   # disabled tests:
   # https://bugs.launchpad.net/oslo.utils/+bug/2054134
   # netaddr default behaviour changed to be stricter
-  checkPhase =''
+  checkPhase = ''
     echo "nameserver 127.0.0.1" > resolv.conf
     export NIX_REDIRECTS=/etc/protocols=${iana-etc}/etc/protocols:/etc/resolv.conf=$(realpath resolv.conf)
     export LD_PRELOAD=${libredirect}/lib/libredirect.so
diff --git a/pkgs/development/python-modules/oslotest/default.nix b/pkgs/development/python-modules/oslotest/default.nix
index 2f400b0312a15..55553b98e1e3d 100644
--- a/pkgs/development/python-modules/oslotest/default.nix
+++ b/pkgs/development/python-modules/oslotest/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fixtures
-, pbr
-, six
-, subunit
-, callPackage
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fixtures,
+  pbr,
+  six,
+  subunit,
+  callPackage,
 }:
 
 buildPythonPackage rec {
@@ -30,7 +31,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   passthru.tests = {
-    tests = callPackage ./tests.nix {};
+    tests = callPackage ./tests.nix { };
   };
 
   pythonImportsCheck = [ "oslotest" ];
diff --git a/pkgs/development/python-modules/oslotest/tests.nix b/pkgs/development/python-modules/oslotest/tests.nix
index f80073e1c1bd1..d7667166b18bc 100644
--- a/pkgs/development/python-modules/oslotest/tests.nix
+++ b/pkgs/development/python-modules/oslotest/tests.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, oslo-config
-, oslotest
-, stestr
+{
+  buildPythonPackage,
+  oslo-config,
+  oslotest,
+  stestr,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/osmnx/default.nix b/pkgs/development/python-modules/osmnx/default.nix
index 0800d71a8dfbd..97488f2810fd2 100644
--- a/pkgs/development/python-modules/osmnx/default.nix
+++ b/pkgs/development/python-modules/osmnx/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, folium
-, gdal
-, geopandas
-, hatchling
-, matplotlib
-, networkx
-, numpy
-, pandas
-, pythonOlder
-, rasterio
-, requests
-, rtree
-, scikit-learn
-, scipy
-, shapely
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  folium,
+  gdal,
+  geopandas,
+  hatchling,
+  matplotlib,
+  networkx,
+  numpy,
+  pandas,
+  pythonOlder,
+  rasterio,
+  requests,
+  rtree,
+  scikit-learn,
+  scipy,
+  shapely,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     hash = "sha256-od/0IuiK2CvrD0lfcTzkImK/5hcm6m61ULYzEtv/YeA=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     geopandas
@@ -55,9 +54,7 @@ buildPythonPackage rec {
   # Tests require network
   doCheck = false;
 
-  pythonImportsCheck = [
-    "osmnx"
-  ];
+  pythonImportsCheck = [ "osmnx" ];
 
   meta = with lib; {
     description = "Package to easily download, construct, project, visualize, and analyze complex street networks from OpenStreetMap with NetworkX";
@@ -67,4 +64,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ psyanticy ];
   };
 }
-
diff --git a/pkgs/development/python-modules/osmpythontools/default.nix b/pkgs/development/python-modules/osmpythontools/default.nix
index 1e4f8fd9f822a..b64ea716e5538 100644
--- a/pkgs/development/python-modules/osmpythontools/default.nix
+++ b/pkgs/development/python-modules/osmpythontools/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, beautifulsoup4
-, geojson
-, lxml
-, matplotlib
-, numpy
-, pandas
-, ujson
-, xarray
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  beautifulsoup4,
+  geojson,
+  lxml,
+  matplotlib,
+  numpy,
+  pandas,
+  ujson,
+  xarray,
 }:
 
 buildPythonPackage rec {
@@ -47,7 +48,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A library to access OpenStreetMap-related services";
+    description = "Library to access OpenStreetMap-related services";
     longDescription = ''
       The python package OSMPythonTools provides easy access to
       OpenStreetMap-related services, among them an Overpass endpoint,
diff --git a/pkgs/development/python-modules/ospd/default.nix b/pkgs/development/python-modules/ospd/default.nix
index a9e6ba10d9811..e18bc804cfdae 100644
--- a/pkgs/development/python-modules/ospd/default.nix
+++ b/pkgs/development/python-modules/ospd/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, defusedxml
-, deprecated
-, fetchFromGitHub
-, lxml
-, paramiko
-, psutil
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  defusedxml,
+  deprecated,
+  fetchFromGitHub,
+  lxml,
+  paramiko,
+  psutil,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -33,13 +34,9 @@ buildPythonPackage rec {
     psutil
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ospd"
-  ];
+  pythonImportsCheck = [ "ospd" ];
 
   meta = with lib; {
     description = "Framework for vulnerability scanners which support OSP";
diff --git a/pkgs/development/python-modules/osqp/default.nix b/pkgs/development/python-modules/osqp/default.nix
index 38004632402b9..d3dbb48df72ff 100644
--- a/pkgs/development/python-modules/osqp/default.nix
+++ b/pkgs/development/python-modules/osqp/default.nix
@@ -1,29 +1,29 @@
-{ lib
-, buildPythonPackage
-, cmake
-, cvxopt
-, fetchPypi
-, future
-, numpy
-, oldest-supported-numpy
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, qdldl
-, scipy
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  cmake,
+  cvxopt,
+  fetchPypi,
+  future,
+  numpy,
+  oldest-supported-numpy,
+  pytestCheckHook,
+  pythonOlder,
+  qdldl,
+  scipy,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "osqp";
-  version = "0.6.5";
+  version = "0.6.7";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-soEK7nviNzrdi2wL5a2ZuBAoh3SrykIXUcsDLWpa7e8=";
+    hash = "sha256-O3ARmFV6SZxg67U9fyUBkGSFXHMvTz+84gVdeJ5Tph0=";
   };
 
   dontUseCmakeConfigure = true;
@@ -32,12 +32,9 @@ buildPythonPackage rec {
     cmake
     oldest-supported-numpy
     setuptools-scm
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "scipy"
-  ];
+  pythonRelaxDeps = [ "scipy" ];
 
   propagatedBuildInputs = [
     future
@@ -51,25 +48,24 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "osqp"
-  ];
+  pythonImportsCheck = [ "osqp" ];
 
-  disabledTests = [
-    # Need an unfree license package - mkl
-    "test_issue14"
-  ]
-  # disable tests failing after scipy 1.12 update
-  # https://github.com/osqp/osqp-python/issues/121
-  # re-enable once unit tests fixed
-  ++ [
-    "feasibility_tests"
-    "polish_tests"
-    "update_matrices_tests"
-  ];
+  disabledTests =
+    [
+      # Need an unfree license package - mkl
+      "test_issue14"
+    ]
+    # disable tests failing after scipy 1.12 update
+    # https://github.com/osqp/osqp-python/issues/121
+    # re-enable once unit tests fixed
+    ++ [
+      "feasibility_tests"
+      "polish_tests"
+      "update_matrices_tests"
+    ];
 
   meta = with lib; {
-    description = "The Operator Splitting QP Solver";
+    description = "Operator Splitting QP Solver";
     longDescription = ''
       Numerical optimization package for solving problems in the form
         minimize        0.5 x' P x + q' x
diff --git a/pkgs/development/python-modules/oss2/default.nix b/pkgs/development/python-modules/oss2/default.nix
index a62410ecdc42c..374f526b57f54 100644
--- a/pkgs/development/python-modules/oss2/default.nix
+++ b/pkgs/development/python-modules/oss2/default.nix
@@ -1,17 +1,17 @@
-{ lib
-, aliyun-python-sdk-core
-, aliyun-python-sdk-kms
-, aliyun-python-sdk-sts
-, buildPythonPackage
-, crcmod
-, fetchFromGitHub
-, mock
-, pycryptodome
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
-, six
+{
+  lib,
+  aliyun-python-sdk-core,
+  aliyun-python-sdk-kms,
+  aliyun-python-sdk-sts,
+  buildPythonPackage,
+  crcmod,
+  fetchFromGitHub,
+  mock,
+  pycryptodome,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +28,6 @@ buildPythonPackage rec {
     hash = "sha256-jDSXPVyy8XvPgsGZXsdfavFPptq28pCwr9C63OZvNrY=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   propagatedBuildInputs = [
     requests
@@ -49,9 +46,7 @@ buildPythonPackage rec {
 
   pythonRelaxDeps = true;
 
-  pythonImportsCheck = [
-    "oss2"
-  ];
+  pythonImportsCheck = [ "oss2" ];
 
   disabledTestPaths = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/ossfs/default.nix b/pkgs/development/python-modules/ossfs/default.nix
index 97f61f62199b4..940f5a20b3429 100644
--- a/pkgs/development/python-modules/ossfs/default.nix
+++ b/pkgs/development/python-modules/ossfs/default.nix
@@ -1,12 +1,12 @@
-{ lib
-, aiooss2
-, buildPythonPackage
-, fetchFromGitHub
-, fsspec
-, oss2
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools-scm
+{
+  lib,
+  aiooss2,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fsspec,
+  oss2,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -30,7 +30,6 @@ buildPythonPackage rec {
   ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools-scm
   ];
 
@@ -43,9 +42,7 @@ buildPythonPackage rec {
   # Most tests require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ossfs"
-  ];
+  pythonImportsCheck = [ "ossfs" ];
 
   meta = with lib; {
     description = "Filesystem for Alibaba Cloud (Aliyun) Object Storage System (OSS)";
diff --git a/pkgs/development/python-modules/ots-python/default.nix b/pkgs/development/python-modules/ots-python/default.nix
index f6a86a564136b..7aba8368fd8b0 100644
--- a/pkgs/development/python-modules/ots-python/default.nix
+++ b/pkgs/development/python-modules/ots-python/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, substituteAll
-, opentype-sanitizer
-, setuptools-scm
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  substituteAll,
+  opentype-sanitizer,
+  setuptools-scm,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -28,17 +29,11 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
-    opentype-sanitizer
-  ];
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  propagatedBuildInputs = [ opentype-sanitizer ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   doCheck = true;
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Python wrapper for ots (OpenType Sanitizer)";
diff --git a/pkgs/development/python-modules/outcome/default.nix b/pkgs/development/python-modules/outcome/default.nix
index 0fa4ba74deabc..e0e98cee88724 100644
--- a/pkgs/development/python-modules/outcome/default.nix
+++ b/pkgs/development/python-modules/outcome/default.nix
@@ -1,26 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, attrs
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  attrs,
+  pytest,
 }:
 
 buildPythonPackage rec {
   pname = "outcome";
   version = "1.3.0.post0";
 
-  disabled = pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-nc8C5l8pcbgAR7N3Ro5yomjhXArzzxI45v8U9/kRQ7g=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [ pytest ];
   propagatedBuildInputs = [ attrs ];
@@ -28,9 +24,12 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "Capture the outcome of Python function calls.";
+    description = "Capture the outcome of Python function calls";
     homepage = "https://github.com/python-trio/outcome";
-    license = with lib.licenses; [ mit asl20 ];
+    license = with lib.licenses; [
+      mit
+      asl20
+    ];
     maintainers = with lib.maintainers; [ catern ];
   };
 }
diff --git a/pkgs/development/python-modules/outlines/default.nix b/pkgs/development/python-modules/outlines/default.nix
index 5e33127f3e0c2..b7e51351f7ef3 100644
--- a/pkgs/development/python-modules/outlines/default.nix
+++ b/pkgs/development/python-modules/outlines/default.nix
@@ -1,32 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, interegular
-, cloudpickle
-, diskcache
-, joblib
-, jsonschema
-, pydantic
-, lark
-, nest-asyncio
-, numba
-, scipy
-, torch
-, transformers
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  interegular,
+  cloudpickle,
+  diskcache,
+  joblib,
+  jsonschema,
+  pydantic,
+  lark,
+  nest-asyncio,
+  numba,
+  scipy,
+  torch,
+  transformers,
 }:
 
 buildPythonPackage rec {
   pname = "outlines";
-  version = "0.0.38";
+  version = "0.0.45";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "outlines-dev";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-kOd2J6PV2idWaltkGUVNXfB+1dNU1f8vbnHQ5i1WxG8=";
+    hash = "sha256-VJ/q3NBNatBv3gsV637sciiOHdDJRnMlcisu5GRmWM0=";
   };
 
   nativeBuildInputs = [
@@ -49,9 +50,7 @@ buildPythonPackage rec {
     transformers
   ];
 
-  pythonImportsCheck = [
-    "outlines"
-  ];
+  pythonImportsCheck = [ "outlines" ];
 
   meta = with lib; {
     description = "Structured text generation";
diff --git a/pkgs/development/python-modules/outspin/default.nix b/pkgs/development/python-modules/outspin/default.nix
new file mode 100644
index 0000000000000..ae01566d9cd5e
--- /dev/null
+++ b/pkgs/development/python-modules/outspin/default.nix
@@ -0,0 +1,32 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "outspin";
+  version = "0.3.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "trag1c";
+    repo = "outspin";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-j+J3n/p+DcfnhGfC4/NDBDl5bF39L5kIPeGJW0Zm7ls=";
+  };
+
+  build-system = [ poetry-core ];
+  pythonImportsCheck = [ "outspin" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    changelog = "https://github.com/trag1c/outspin/blob/${src.rev}/CHANGELOG.md";
+    description = "Conveniently read single char inputs in the console";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sigmanificient ];
+  };
+}
diff --git a/pkgs/development/python-modules/overly/default.nix b/pkgs/development/python-modules/overly/default.nix
index 8fec61e13845d..f234c910865eb 100644
--- a/pkgs/development/python-modules/overly/default.nix
+++ b/pkgs/development/python-modules/overly/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, h11
-, sansio-multipart
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  h11,
+  sansio-multipart,
 }:
 
 buildPythonPackage rec {
@@ -31,10 +32,10 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "overly" ];
 
   meta = {
-    description = "An overly configurable http server for client testing";
+    description = "Overly configurable http server for client testing";
     homepage = "https://github.com/theelous3/overly";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ dotlambda ];
-    broken = stdenv.isDarwin;  # https://github.com/theelous3/overly/issues/2
+    broken = stdenv.isDarwin; # https://github.com/theelous3/overly/issues/2
   };
 }
diff --git a/pkgs/development/python-modules/overpy/default.nix b/pkgs/development/python-modules/overpy/default.nix
index 37abe95511176..ad08945d95e3c 100644
--- a/pkgs/development/python-modules/overpy/default.nix
+++ b/pkgs/development/python-modules/overpy/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +29,9 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "overpy"
-  ];
+  pythonImportsCheck = [ "overpy" ];
 
   meta = with lib; {
     description = "Python Wrapper to access the Overpass API";
diff --git a/pkgs/development/python-modules/overrides/default.nix b/pkgs/development/python-modules/overrides/default.nix
index 93dea37791a57..a19db6995ee89 100644
--- a/pkgs/development/python-modules/overrides/default.nix
+++ b/pkgs/development/python-modules/overrides/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
-, pythonOlder
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,22 +22,16 @@ buildPythonPackage rec {
     hash = "sha256-gQDw5/RpAFNYWFOuxIAArPkCOoBYWUnsDtv1FEFteHo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = lib.optionals (pythonAtLeast "3.12") [
     # KeyError: 'assertRaises'
     "test_enforcing_when_incompatible"
   ];
 
-  pythonImportsCheck = [
-    "overrides"
-  ];
+  pythonImportsCheck = [ "overrides" ];
 
   meta = with lib; {
     description = "Decorator to automatically detect mismatch when overriding a method";
diff --git a/pkgs/development/python-modules/ovh/default.nix b/pkgs/development/python-modules/ovh/default.nix
index 7ac42a4ff0de3..f1cfb05367390 100644
--- a/pkgs/development/python-modules/ovh/default.nix
+++ b/pkgs/development/python-modules/ovh/default.nix
@@ -1,34 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "ovh";
-  version = "1.1.0";
+  version = "1.1.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-EI+bWjtHEZPOSkWJx3gvS8y//gugMWl3TrBHKsKO9nk=";
+    hash = "sha256-Yarx6ymS/Vr4Gbpa3Qgmbp7eLgAkUeOhYGpMNn3aoE8=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ovh"
-  ];
+  pythonImportsCheck = [ "ovh" ];
 
   disabledTests = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/ovmfvartool/default.nix b/pkgs/development/python-modules/ovmfvartool/default.nix
index fd15a3a12a4f4..aaee10b25a37e 100644
--- a/pkgs/development/python-modules/ovmfvartool/default.nix
+++ b/pkgs/development/python-modules/ovmfvartool/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pyyaml }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyyaml,
+}:
 
 buildPythonPackage rec {
   pname = "ovmfvartool";
@@ -24,6 +29,9 @@ buildPythonPackage rec {
     mainProgram = "ovmfvartool";
     homepage = "https://github.com/hlandau/ovmfvartool";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ baloo raitobezarius ];
+    maintainers = with maintainers; [
+      baloo
+      raitobezarius
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/owslib/default.nix b/pkgs/development/python-modules/owslib/default.nix
index 8bf7b8bcbe857..645715a4f0af5 100644
--- a/pkgs/development/python-modules/owslib/default.nix
+++ b/pkgs/development/python-modules/owslib/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, lxml
-, pyproj
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pytz
-, pyyaml
-, requests
-, python
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  lxml,
+  pyproj,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  pytz,
+  pyyaml,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "owslib";
-  version = "0.30.0";
+  version = "0.31.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -23,8 +24,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "geopython";
     repo = "OWSLib";
-    rev = "refs/tags/${version}";
-    hash = "sha256-miKAgZBiqZ6+0qDvlf8+VZ6omH5hlImO0E7AVK7FuD0=";
+    rev = version;
+    hash = "sha256-vjJsLavVOqTTrVtYbtA0G+nl0HanKeGtzNFFj92Frw8=";
   };
 
   postPatch = ''
@@ -41,32 +42,18 @@ buildPythonPackage rec {
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "owslib"
-  ];
+  pythonImportsCheck = [ "owslib" ];
 
   preCheck = ''
     # _pytest.pathlib.ImportPathMismatchError: ('owslib.swe.sensor.sml', '/build/source/build/...
     export PY_IGNORE_IMPORTMISMATCH=1
   '';
 
-  disabledTests = [
-    # Tests require network access
-    "test_ows_interfaces_wcs"
-    "test_wfs_110_remotemd"
-    "test_wfs_200_remotemd"
-    "test_wms_130_remotemd"
-    "test_wmts_example_informatievlaanderen"
-    "test_opensearch_creodias"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_ogcapi_processes_pygeoapi"
-    "test_ogcapi_records_pycsw"
-    "test_ogcapi_records_pygeoapi"
-    "test_wms_getfeatureinfo_130"
+  pytestFlagsArray = [
+    # disable tests which require network access
+    "-m 'not online'"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/oyaml/default.nix b/pkgs/development/python-modules/oyaml/default.nix
index 6e43b4c0e9c67..ffa881c8c06e3 100644
--- a/pkgs/development/python-modules/oyaml/default.nix
+++ b/pkgs/development/python-modules/oyaml/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
   # pythonPackages
-, pytestCheckHook
-, pythonOlder
-, pyyaml
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -22,17 +23,11 @@ buildPythonPackage rec {
     hash = "sha256-1rSEhiULlAweLDqUFX+JBFxe3iW9kNlRA2zjcG8MYSg=";
   };
 
-  propagatedBuildInputs = [
-    pyyaml
-  ];
+  propagatedBuildInputs = [ pyyaml ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "oyaml"
-  ];
+  pythonImportsCheck = [ "oyaml" ];
 
   meta = with lib; {
     description = "Drop-in replacement for PyYAML which preserves dict ordering";
diff --git a/pkgs/development/python-modules/p1monitor/default.nix b/pkgs/development/python-modules/p1monitor/default.nix
index c45af36a86333..039f24c98356d 100644
--- a/pkgs/development/python-modules/p1monitor/default.nix
+++ b/pkgs/development/python-modules/p1monitor/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
       --replace 'addopts = "--cov"' ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "p1monitor"
-  ];
+  pythonImportsCheck = [ "p1monitor" ];
 
   meta = with lib; {
     description = "Module for interacting with the P1 Monitor";
diff --git a/pkgs/development/python-modules/pa-ringbuffer/default.nix b/pkgs/development/python-modules/pa-ringbuffer/default.nix
index a18eda1f92bf6..4ddd9af2b063a 100644
--- a/pkgs/development/python-modules/pa-ringbuffer/default.nix
+++ b/pkgs/development/python-modules/pa-ringbuffer/default.nix
@@ -1,4 +1,8 @@
-{ fetchFromGitHub, buildPythonPackage, lib }:
+{
+  fetchFromGitHub,
+  buildPythonPackage,
+  lib,
+}:
 
 buildPythonPackage rec {
   pname = "pa-ringbuffer";
diff --git a/pkgs/development/python-modules/packageurl-python/default.nix b/pkgs/development/python-modules/packageurl-python/default.nix
index 430cd58024dd5..8ce0a1ed40206 100644
--- a/pkgs/development/python-modules/packageurl-python/default.nix
+++ b/pkgs/development/python-modules/packageurl-python/default.nix
@@ -1,34 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "packageurl-python";
-  version = "0.15.0";
+  version = "0.15.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-8hmyzmNIGFonvWpy5v3J+YTmyfoVfv+ny5PjQcSc3MI=";
+    pname = "packageurl_python";
+    inherit version;
+    hash = "sha256-mje5p8rZoocrRhIVG6N0n9neyQSFV3wU03S25mt+3wM=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "packageurl"
-  ];
+  pythonImportsCheck = [ "packageurl" ];
 
   meta = with lib; {
     description = "Python parser and builder for package URLs";
diff --git a/pkgs/development/python-modules/packaging/default.nix b/pkgs/development/python-modules/packaging/default.nix
index 32ce7fd8accb6..4ddebe8901df2 100644
--- a/pkgs/development/python-modules/packaging/default.nix
+++ b/pkgs/development/python-modules/packaging/default.nix
@@ -1,32 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# build-system
-, flit-core
+  # build-system
+  flit-core,
 
-# tests
-, pretend
-, pytestCheckHook
+  # tests
+  pretend,
+  pytestCheckHook,
 }:
 
 let
   packaging = buildPythonPackage rec {
     pname = "packaging";
-    version = "24.0";
+    version = "24.1";
     pyproject = true;
 
     disabled = pythonOlder "3.7";
 
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-64LF4+ViCQdHZuaIW7BLjDigwBXQowA26+fs40yZiek=";
+      hash = "sha256-Am7XLI7T/M5b+JUFciWGmJJ/0dvaEKXpgc3wrDf08AI=";
     };
 
-    nativeBuildInputs = [
-      flit-core
-    ];
+    nativeBuildInputs = [ flit-core ];
 
     nativeCheckInputs = [
       pytestCheckHook
@@ -45,14 +44,19 @@ let
     # Prevent circular dependency with pytest
     doCheck = false;
 
-    passthru.tests = packaging.overridePythonAttrs (_: { doCheck = true; });
+    passthru.tests = packaging.overridePythonAttrs (_: {
+      doCheck = true;
+    });
 
     meta = with lib; {
       changelog = "https://github.com/pypa/packaging/blob/${version}/CHANGELOG.rst";
       description = "Core utilities for Python packages";
       downloadPage = "https://github.com/pypa/packaging";
       homepage = "https://packaging.pypa.io/";
-      license = with licenses; [ bsd2 asl20 ];
+      license = with licenses; [
+        bsd2
+        asl20
+      ];
       maintainers = teams.python.members ++ (with maintainers; [ bennofs ]);
     };
   };
diff --git a/pkgs/development/python-modules/packbits/default.nix b/pkgs/development/python-modules/packbits/default.nix
index 8e9b655c0a3b1..acca93d0c57b6 100644
--- a/pkgs/development/python-modules/packbits/default.nix
+++ b/pkgs/development/python-modules/packbits/default.nix
@@ -1,11 +1,12 @@
-{ stdenv
-, buildPythonPackage
-, fetchPypi
-, pyparsing
-, six
-, pytest
-, pretend
-, lib
+{
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pyparsing,
+  six,
+  pytest,
+  pretend,
+  lib,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/packet-python/default.nix b/pkgs/development/python-modules/packet-python/default.nix
index 8c88e6dc6ea7f..bc50624aa03b1 100644
--- a/pkgs/development/python-modules/packet-python/default.nix
+++ b/pkgs/development/python-modules/packet-python/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
@@ -24,18 +25,14 @@ buildPythonPackage rec {
       --replace "pytest-runner" ""
   '';
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     pytestCheckHook
     requests-mock
   ];
 
-  pythonImportsCheck = [
-    "packet"
-  ];
+  pythonImportsCheck = [ "packet" ];
 
   meta = with lib; {
     description = "Python client for the Packet API";
diff --git a/pkgs/development/python-modules/packvers/default.nix b/pkgs/development/python-modules/packvers/default.nix
index 5ec3bd628c3e8..50bdaff9db6f3 100644
--- a/pkgs/development/python-modules/packvers/default.nix
+++ b/pkgs/development/python-modules/packvers/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pretend
-, pyparsing
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pretend,
+  pyparsing,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,24 +22,23 @@ buildPythonPackage rec {
     hash = "sha256-nCSYL0g7mXi9pGFt24pOXbmmYsaRuB+rRZrygf8DTLE=";
   };
 
-  propagatedBuildInputs = [
-    pyparsing
-  ];
+  propagatedBuildInputs = [ pyparsing ];
 
   nativeCheckInputs = [
     pretend
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "packvers"
-  ];
+  pythonImportsCheck = [ "packvers" ];
 
   meta = with lib; {
     description = "Module for version handling of modules";
     homepage = "https://github.com/nexB/dparse2";
     changelog = "https://github.com/nexB/packvers/blob/${version}/CHANGELOG.rst";
-    license = with licenses; [ asl20 /* and */ bsd2 ];
+    license = with licenses; [
+      asl20 # and
+      bsd2
+    ];
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/pad4pi/default.nix b/pkgs/development/python-modules/pad4pi/default.nix
index bc6c0d27aff43..a5e0a8ebca69d 100644
--- a/pkgs/development/python-modules/pad4pi/default.nix
+++ b/pkgs/development/python-modules/pad4pi/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, rpi-gpio }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  rpi-gpio,
+}:
 
 buildPythonPackage rec {
   pname = "pad4pi";
diff --git a/pkgs/development/python-modules/paddle-bfloat/default.nix b/pkgs/development/python-modules/paddle-bfloat/default.nix
index a1d6c591fcf2b..351c617d8ca0f 100644
--- a/pkgs/development/python-modules/paddle-bfloat/default.nix
+++ b/pkgs/development/python-modules/paddle-bfloat/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pythonAtLeast
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pythonAtLeast,
+  numpy,
 }:
 let
   pname = "paddle-bfloat";
@@ -28,13 +29,11 @@ buildPythonPackage {
 
   disabled = pythonOlder "3.9" || pythonAtLeast "3.12";
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   pythonImportsCheck = [ "paddle_bfloat" ];
 
-# upstream has no tests
+  # upstream has no tests
   doCheck = false;
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/paddle2onnx/default.nix b/pkgs/development/python-modules/paddle2onnx/default.nix
index 0ba25c3046c41..ee429fb164d05 100644
--- a/pkgs/development/python-modules/paddle2onnx/default.nix
+++ b/pkgs/development/python-modules/paddle2onnx/default.nix
@@ -1,34 +1,37 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, python
-, onnx
-, isPy311
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pythonAtLeast,
+  python,
+  onnx,
 }:
 let
   pname = "paddle2onnx";
-  version = "1.2.0";
+  version = "1.2.4";
   format = "wheel";
-  pyShortVersion = "cp${builtins.replaceStrings ["."] [""] python.pythonVersion}";
+  pyShortVersion = "cp${builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion}";
   src = fetchPypi {
     inherit pname version format;
     dist = pyShortVersion;
     python = pyShortVersion;
     abi = pyShortVersion;
     platform = "manylinux_2_12_x86_64.manylinux2010_x86_64";
-    hash = "sha256-18eStagm7V4D87fiPoigAyXxVGoo//8UENutSqNfUBI=";
+    hash = "sha256-2muP4Y1zvqYVxvN6I9wjdMY+YE2d0nRmIwFFI/BsIKE=";
   };
 in
 buildPythonPackage {
-  inherit pname version src format;
+  inherit
+    pname
+    version
+    src
+    format
+    ;
 
-  disabled = pythonOlder "3.8" || isPy311;
+  disabled = pythonOlder "3.8" || pythonAtLeast "3.11";
 
-  propagatedBuildInputs = [
-    onnx
-  ];
+  propagatedBuildInputs = [ onnx ];
 
   meta = with lib; {
     description = "ONNX Model Exporter for PaddlePaddle";
diff --git a/pkgs/development/python-modules/paddleocr/default.nix b/pkgs/development/python-modules/paddleocr/default.nix
index 4cc4d283a8316..8033d8c79e6df 100644
--- a/pkgs/development/python-modules/paddleocr/default.nix
+++ b/pkgs/development/python-modules/paddleocr/default.nix
@@ -1,34 +1,34 @@
-{ lib
-, buildPythonPackage
-, pythonRelaxDepsHook
-, fetchFromGitHub
-, attrdict
-, beautifulsoup4
-, cython
-, fire
-, fonttools
-, lmdb
-, lxml
-, numpy
-, opencv4
-, openpyxl
-, pdf2docx
-, pillow
-, premailer
-, pyclipper
-, pymupdf
-, python-docx
-, rapidfuzz
-, scikit-image
-, shapely
-, tqdm
-, paddlepaddle
-, lanms-neo
-, polygon3
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  attrdict,
+  beautifulsoup4,
+  cython,
+  fire,
+  fonttools,
+  lmdb,
+  lxml,
+  numpy,
+  opencv4,
+  openpyxl,
+  pdf2docx,
+  pillow,
+  premailer,
+  pyclipper,
+  pymupdf,
+  python-docx,
+  rapidfuzz,
+  scikit-image,
+  shapely,
+  tqdm,
+  paddlepaddle,
+  lanms-neo,
+  polygon3,
 }:
 
 let
-  version = "2.7.1";
+  version = "2.7.5";
 in
 buildPythonPackage {
   pname = "paddleocr";
@@ -38,8 +38,8 @@ buildPythonPackage {
   src = fetchFromGitHub {
     owner = "PaddlePaddle";
     repo = "PaddleOCR";
-    rev = "v${version}";
-    hash = "sha256-5Dt4UL+7dwJNjcNnCVi3o8bLCt7/m/M6oh1vPu9rza8=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-8mnSV4ga6G2cbYCX84XJRFiLCoXstTAtqvg9QqVN6GI=";
   };
 
   patches = [
@@ -54,7 +54,6 @@ buildPythonPackage {
     ./remove-import-imaug.patch
   ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
   # trying to relax only pymupdf makes the whole build fail
   pythonRelaxDeps = true;
   pythonRemoveDeps = [
@@ -106,6 +105,10 @@ buildPythonPackage {
     '';
     changelog = "https://github.com/PaddlePaddle/PaddleOCR/releases/tag/v${version}";
     maintainers = with maintainers; [ happysalada ];
-    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
+    platforms = [
+      "x86_64-linux"
+      "x86_64-darwin"
+      "aarch64-darwin"
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/paddlepaddle/default.nix b/pkgs/development/python-modules/paddlepaddle/default.nix
index b9cc87b21e338..b263cdc8e1b99 100644
--- a/pkgs/development/python-modules/paddlepaddle/default.nix
+++ b/pkgs/development/python-modules/paddlepaddle/default.nix
@@ -1,40 +1,47 @@
-{ stdenv
-, config
-, lib
-, buildPythonPackage
-, fetchPypi
-, python
-, pythonOlder
-, pythonAtLeast
-, openssl_1_1
-, zlib
-, setuptools
-, cudaSupport ? config.cudaSupport or false
-, cudaPackages_11 ? {}
-, addOpenGLRunpath
-# runtime dependencies
-, httpx
-, numpy
-, protobuf
-, pillow
-, decorator
-, astor
-, paddle-bfloat
-, opt-einsum
+{
+  stdenv,
+  config,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  pythonOlder,
+  pythonAtLeast,
+  openssl_1_1,
+  zlib,
+  setuptools,
+  cudaSupport ? config.cudaSupport or false,
+  cudaPackages_11 ? { },
+  addOpenGLRunpath,
+  # runtime dependencies
+  httpx,
+  numpy,
+  protobuf,
+  pillow,
+  decorator,
+  astor,
+  paddle-bfloat,
+  opt-einsum,
 }:
 
 let
   pname = "paddlepaddle" + lib.optionalString cudaSupport "-gpu";
   version = "2.5.0";
   format = "wheel";
-  pyShortVersion = "cp${builtins.replaceStrings ["."] [""] python.pythonVersion}";
+  pyShortVersion = "cp${builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion}";
   cpuOrGpu = if cudaSupport then "gpu" else "cpu";
   allHashAndPlatform = import ./binary-hashes.nix;
-  hash = allHashAndPlatform."${stdenv.system}"."${cpuOrGpu}"."${pyShortVersion}"
-    or (throw "${pname} has no binary-hashes.nix entry for '${stdenv.system}.${cpuOrGpu}.${pyShortVersion}' attribute");
+  hash =
+    allHashAndPlatform."${stdenv.system}"."${cpuOrGpu}"."${pyShortVersion}"
+      or (throw "${pname} has no binary-hashes.nix entry for '${stdenv.system}.${cpuOrGpu}.${pyShortVersion}' attribute");
   platform = allHashAndPlatform."${stdenv.system}".platform;
   src = fetchPypi ({
-    inherit version format hash platform;
+    inherit
+      version
+      format
+      hash
+      platform
+      ;
     pname = builtins.replaceStrings [ "-" ] [ "_" ] pname;
     dist = pyShortVersion;
     python = pyShortVersion;
@@ -42,7 +49,12 @@ let
   });
 in
 buildPythonPackage {
-  inherit pname version format src;
+  inherit
+    pname
+    version
+    format
+    src
+    ;
 
   disabled = pythonOlder "3.9" || pythonAtLeast "3.11";
 
@@ -50,11 +62,18 @@ buildPythonPackage {
     # TODO: remove openssl_1_1 and zlib, maybe by building paddlepaddle from
     # source as suggested in the following comment:
     # https://github.com/NixOS/nixpkgs/pull/243583#issuecomment-1641450848
-    [ openssl_1_1 zlib ] ++ lib.optionals cudaSupport (with cudaPackages_11; [
-      cudatoolkit.lib
-      cudatoolkit.out
-      cudnn
-    ])
+    [
+      openssl_1_1
+      zlib
+    ]
+    ++ lib.optionals cudaSupport (
+      with cudaPackages_11;
+      [
+        cudatoolkit.lib
+        cudatoolkit.out
+        cudnn
+      ]
+    )
   );
 
   postFixup = lib.optionalString stdenv.isLinux ''
@@ -68,9 +87,7 @@ buildPythonPackage {
     fixRunPath $out/${python.sitePackages}/paddle/fluid/libpaddle.so
   '';
 
-  nativeBuildInputs = [
-    addOpenGLRunpath
-  ];
+  nativeBuildInputs = [ addOpenGLRunpath ];
 
   propagatedBuildInputs = [
     setuptools
@@ -94,6 +111,11 @@ buildPythonPackage {
     homepage = "https://github.com/PaddlePaddle/Paddle";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
-    platforms = [ "x86_64-linux" ] ++ optionals (!cudaSupport) [ "x86_64-darwin" "aarch64-darwin" ];
+    platforms =
+      [ "x86_64-linux" ]
+      ++ optionals (!cudaSupport) [
+        "x86_64-darwin"
+        "aarch64-darwin"
+      ];
   };
 }
diff --git a/pkgs/development/python-modules/pagelabels/default.nix b/pkgs/development/python-modules/pagelabels/default.nix
index 44b246869aa5f..70f1e8d6670f7 100644
--- a/pkgs/development/python-modules/pagelabels/default.nix
+++ b/pkgs/development/python-modules/pagelabels/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pdfrw }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pdfrw,
+}:
 
 buildPythonPackage rec {
   pname = "pagelabels";
@@ -16,7 +21,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "Python library to manipulate PDF page labels.";
+    description = "Python library to manipulate PDF page labels";
     homepage = "https://github.com/lovasoa/pagelabels-py";
     maintainers = with maintainers; [ teto ];
     license = licenses.gpl3;
diff --git a/pkgs/development/python-modules/paginate/default.nix b/pkgs/development/python-modules/paginate/default.nix
index ad22a818aee32..891e02814b859 100644
--- a/pkgs/development/python-modules/paginate/default.nix
+++ b/pkgs/development/python-modules/paginate/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,17 +23,11 @@ buildPythonPackage rec {
     hash = "sha256-HZWwOYOCk4mAmz8OnM9hhlf8HA+jC75dYVeo0l4a09o=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "paginate"
-  ];
+  pythonImportsCheck = [ "paginate" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = lib.optionals (pythonAtLeast "3.12") [
     # https://github.com/Pylons/paginate/issues/19
diff --git a/pkgs/development/python-modules/paho-mqtt/default.nix b/pkgs/development/python-modules/paho-mqtt/default.nix
index 8c0e54d18d608..83582102767b8 100644
--- a/pkgs/development/python-modules/paho-mqtt/default.nix
+++ b/pkgs/development/python-modules/paho-mqtt/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, isPy3k
-, pytestCheckHook
-, mock
-, six
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy3k,
+  pytestCheckHook,
+  mock,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -23,20 +24,19 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     pytestCheckHook
     six
-  ] ++ lib.optionals (!isPy3k) [
-    mock
-  ];
+  ] ++ lib.optionals (!isPy3k) [ mock ];
 
   doCheck = !stdenv.isDarwin;
 
-  pythonImportsCheck = [
-    "paho.mqtt"
-  ];
+  pythonImportsCheck = [ "paho.mqtt" ];
 
   meta = with lib; {
     description = "MQTT version 3.1.1 client class";
     homepage = "https://eclipse.org/paho";
     license = licenses.epl10;
-    maintainers = with maintainers; [ mog dotlambda ];
+    maintainers = with maintainers; [
+      mog
+      dotlambda
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/palace/default.nix b/pkgs/development/python-modules/palace/default.nix
index 5529d344dfff7..43d7e9aa33335 100644
--- a/pkgs/development/python-modules/palace/default.nix
+++ b/pkgs/development/python-modules/palace/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromSourcehut
-, pythonOlder
-, cmake
-, cython_0
-, setuptools
-, alure2
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromSourcehut,
+  pythonOlder,
+  cmake,
+  cython_0,
+  setuptools,
+  alure2,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
 
   dontUseCmakeConfigure = true;
 
-  propagatedBuildInputs = [
-    alure2
-  ];
+  propagatedBuildInputs = [ alure2 ];
 
   doCheck = false; # FIXME: tests need an audio device
 
diff --git a/pkgs/development/python-modules/palettable/default.nix b/pkgs/development/python-modules/palettable/default.nix
index 2f7cb7138c4cb..acdf8eaf3a82d 100644
--- a/pkgs/development/python-modules/palettable/default.nix
+++ b/pkgs/development/python-modules/palettable/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -15,13 +16,9 @@ buildPythonPackage rec {
     sha256 = "sha256-CU3X2aX8HMpIVHc+XB/GoxWzO9WzqPRwZJKPrK8EkKg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [
     "palettable"
@@ -30,7 +27,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A library of color palettes";
+    description = "Library of color palettes";
     homepage = "https://jiffyclub.github.io/palettable/";
     changelog = "https://github.com/jiffyclub/palettable/blob/v${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pallets-sphinx-themes/default.nix b/pkgs/development/python-modules/pallets-sphinx-themes/default.nix
index 9020e458bc085..bba0de1f208f2 100644
--- a/pkgs/development/python-modules/pallets-sphinx-themes/default.nix
+++ b/pkgs/development/python-modules/pallets-sphinx-themes/default.nix
@@ -1,18 +1,27 @@
-{ lib, buildPythonPackage, fetchFromGitHub, sphinx, packaging }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  sphinx,
+  packaging,
+}:
 
 buildPythonPackage rec {
   pname = "pallets-sphinx-themes";
-  version = "2.1.1";
+  version = "2.1.3";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "pallets";
     repo = "pallets-sphinx-themes";
     rev = "refs/tags/${version}";
-    sha256 = "sha256-Z03rsqkwF2rYaqRZflf5qc5EdHPIEcEcB1ftYIm5DQs=";
+    sha256 = "sha256-uXSejJLVmYpzRCP92JQKHosnlx7dgZlFf5XzbxOfvII=";
   };
 
-  propagatedBuildInputs = [ packaging sphinx ];
+  propagatedBuildInputs = [
+    packaging
+    sphinx
+  ];
 
   pythonImportsCheck = [ "pallets_sphinx_themes" ];
 
diff --git a/pkgs/development/python-modules/pamela/default.nix b/pkgs/development/python-modules/pamela/default.nix
index 389cf10a772e0..ad16f250130fd 100644
--- a/pkgs/development/python-modules/pamela/default.nix
+++ b/pkgs/development/python-modules/pamela/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pkgs
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pkgs,
 }:
 
 buildPythonPackage rec {
@@ -27,5 +28,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/minrk/pamela";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/pamqp/default.nix b/pkgs/development/python-modules/pamqp/default.nix
index b3ad60e7d1c81..184df403f5e72 100644
--- a/pkgs/development/python-modules/pamqp/default.nix
+++ b/pkgs/development/python-modules/pamqp/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +22,9 @@ buildPythonPackage rec {
     hash = "sha256-0vjiPBLd8afnATjmV2sINsBd4j7L544u5DA3jLiLSsY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [
     "pamqp.base"
diff --git a/pkgs/development/python-modules/panacotta/default.nix b/pkgs/development/python-modules/panacotta/default.nix
index a70add0e9b805..d9f198ea9ba81 100644
--- a/pkgs/development/python-modules/panacotta/default.nix
+++ b/pkgs/development/python-modules/panacotta/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "panacotta"
-  ];
+  pythonImportsCheck = [ "panacotta" ];
 
   meta = with lib; {
     description = "Python API for controlling Panasonic Blu-Ray players";
diff --git a/pkgs/development/python-modules/panasonic-viera/default.nix b/pkgs/development/python-modules/panasonic-viera/default.nix
index 78d726b92a8b3..6cbdd76236d5d 100644
--- a/pkgs/development/python-modules/panasonic-viera/default.nix
+++ b/pkgs/development/python-modules/panasonic-viera/default.nix
@@ -1,24 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, aiohttp
-, pycryptodome
-, xmltodict
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  aiohttp,
+  pycryptodome,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
   pname = "panasonic-viera";
-  version = "0.4.0";
-
-  format = "setuptools";
+  version = "0.4.2";
+  pyproject = true;
 
   src = fetchPypi {
     pname = "panasonic_viera";
     inherit version;
-    sha256 = "baad2db7958ddbc7288d0f1c50a9eeddd8b83f3d30ad14ac3f6c51fe953e0eb6";
+    hash = "sha256-gcFAFwEdCqiC1yHIA2B/gzmwvRwMC9fDxkgCbzIOpjM=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ poetry-core ];
+
+  dependencies = [
     aiohttp
     pycryptodome
     xmltodict
diff --git a/pkgs/development/python-modules/pandas-datareader/default.nix b/pkgs/development/python-modules/pandas-datareader/default.nix
index e5222cf7ef83d..0520c04d23918 100644
--- a/pkgs/development/python-modules/pandas-datareader/default.nix
+++ b/pkgs/development/python-modules/pandas-datareader/default.nix
@@ -1,33 +1,43 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, pandas
-, lxml
-, requests
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  pythonAtLeast,
+  fetchPypi,
+  setuptools,
+  pandas,
+  lxml,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "pandas-datareader";
   version = "0.10.0";
-  format = "setuptools";
-  disabled = isPy27;
+  pyproject = true;
+
+  disabled = pythonOlder "3.6" || pythonAtLeast "3.12";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "9fc3c63d39bc0c10c2683f1c6d503ff625020383e38f6cbe14134826b454d5a6";
   };
 
+  build-system = [ setuptools ];
+
+  dependencies = [
+    pandas
+    lxml
+    requests
+  ];
+
   # Tests are trying to load data over the network
   doCheck = false;
   pythonImportsCheck = [ "pandas_datareader" ];
 
-  propagatedBuildInputs = [ pandas lxml requests ];
-
   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;
+    license = licenses.bsd3;
     maintainers = with maintainers; [ evax ];
     platforms = platforms.unix;
   };
diff --git a/pkgs/development/python-modules/pandas-stubs/default.nix b/pkgs/development/python-modules/pandas-stubs/default.nix
index c0a753f5c02a1..322c3a39744af 100644
--- a/pkgs/development/python-modules/pandas-stubs/default.nix
+++ b/pkgs/development/python-modules/pandas-stubs/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, stdenv
-, beautifulsoup4
-, buildPythonPackage
-, fetchFromGitHub
-, html5lib
-, jinja2
-, lxml
-, matplotlib
-, odfpy
-, openpyxl
-, pandas
-, poetry-core
-, pyarrow
-, pyreadstat
-, pytestCheckHook
-, pythonOlder
-, scipy
-, sqlalchemy
-, tables
-, tabulate
-, types-pytz
-, typing-extensions
-, xarray
-, xlsxwriter
+{
+  lib,
+  stdenv,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitHub,
+  html5lib,
+  jinja2,
+  lxml,
+  matplotlib,
+  odfpy,
+  openpyxl,
+  pandas,
+  poetry-core,
+  pyarrow,
+  pyreadstat,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
+  sqlalchemy,
+  tables,
+  tabulate,
+  types-pytz,
+  typing-extensions,
+  xarray,
+  xlsxwriter,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
     hash = "sha256-416vyaHcSfTfkSNKZ05edozfsMmNKcpOZAoPenCLFzQ=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     pandas
@@ -68,20 +67,20 @@ buildPythonPackage rec {
     xlsxwriter
   ];
 
-  disabledTests = [
-    # AttributeErrors, missing dependencies, error and warning checks
-    "test_types_groupby"
-    "test_frame_groupby_resample"
-    "test_orc"
-    "test_all_read_without_lxml_dtype_backend"
-    "test_show_version"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_plotting" # Fatal Python error: Illegal instruction
-  ];
+  disabledTests =
+    [
+      # AttributeErrors, missing dependencies, error and warning checks
+      "test_types_groupby"
+      "test_frame_groupby_resample"
+      "test_orc"
+      "test_all_read_without_lxml_dtype_backend"
+      "test_show_version"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      "test_plotting" # Fatal Python error: Illegal instruction
+    ];
 
-  pythonImportsCheck = [
-    "pandas"
-  ];
+  pythonImportsCheck = [ "pandas" ];
 
   meta = with lib; {
     description = "Type annotations for Pandas";
diff --git a/pkgs/development/python-modules/pandas/default.nix b/pkgs/development/python-modules/pandas/default.nix
index a5bb890a398d4..3323c5c9a83bf 100644
--- a/pkgs/development/python-modules/pandas/default.nix
+++ b/pkgs/development/python-modules/pandas/default.nix
@@ -1,272 +1,267 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  pythonOlder,
 
-# build-system
-, cython
-, meson-python
-, meson
-, oldest-supported-numpy
-, pkg-config
-, versioneer
-, wheel
+  # build-system
+  cython,
+  meson-python,
+  meson,
+  oldest-supported-numpy,
+  pkg-config,
+  versioneer,
+  wheel,
 
-# propagates
-, numpy
-, python-dateutil
-, pytz
-, tzdata
+  # propagates
+  numpy,
+  python-dateutil,
+  pytz,
+  tzdata,
 
-# optionals
-, beautifulsoup4
-, bottleneck
-, blosc2
-, fsspec
-, gcsfs
-, html5lib
-, jinja2
-, lxml
-, matplotlib
-, numba
-, numexpr
-, odfpy
-, openpyxl
-, psycopg2
-, pyarrow
-, pymysql
-, pyqt5
-, pyreadstat
-, qtpy
-, s3fs
-, scipy
-, sqlalchemy
-, tables
-, tabulate
-, xarray
-, xlrd
-, xlsxwriter
-, zstandard
+  # optionals
+  beautifulsoup4,
+  bottleneck,
+  blosc2,
+  fsspec,
+  gcsfs,
+  html5lib,
+  jinja2,
+  lxml,
+  matplotlib,
+  numba,
+  numexpr,
+  odfpy,
+  openpyxl,
+  psycopg2,
+  pyarrow,
+  pymysql,
+  pyqt5,
+  pyreadstat,
+  qtpy,
+  s3fs,
+  scipy,
+  sqlalchemy,
+  tables,
+  tabulate,
+  xarray,
+  xlrd,
+  xlsxwriter,
+  zstandard,
 
-# tests
-, adv_cmds
-, glibc
-, glibcLocales
-, hypothesis
-, pytestCheckHook
-, pytest-xdist
-, pytest-asyncio
-, python
-, runtimeShell
+  # tests
+  adv_cmds,
+  glibc,
+  glibcLocales,
+  hypothesis,
+  pytestCheckHook,
+  pytest-xdist,
+  pytest-asyncio,
+  python,
+  runtimeShell,
 }:
 
-let pandas = buildPythonPackage rec {
-  pname = "pandas";
-  version = "2.2.1";
-  pyproject = true;
+let
+  pandas = buildPythonPackage rec {
+    pname = "pandas";
+    version = "2.2.2";
+    pyproject = true;
 
-  disabled = pythonOlder "3.9";
+    disabled = pythonOlder "3.9";
 
-  src = fetchFromGitHub {
-    owner = "pandas-dev";
-    repo = "pandas";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-eyVUIYG0KCAEJbh/qZiEjGpdXq7A+2Lab+5bp+7t4cw=";
-  };
+    src = fetchFromGitHub {
+      owner = "pandas-dev";
+      repo = "pandas";
+      rev = "refs/tags/v${version}";
+      hash = "sha256-+zQKrsJmP3FJeOiYwNH1u96+/ECDHQF39evzur3cKjc=";
+    };
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace-fail "Cython==3.0.5" "Cython>=3.0.5" \
-      --replace-fail "meson-python==0.13.1" "meson-python>=0.13.1" \
-      --replace-fail "meson==1.2.1" "meson>=1.2.1"
-  '';
+    postPatch = ''
+      substituteInPlace pyproject.toml \
+        --replace-fail "Cython==3.0.5" "Cython>=3.0.5" \
+        --replace-fail "meson-python==0.13.1" "meson-python>=0.13.1" \
+        --replace-fail "meson==1.2.1" "meson>=1.2.1" \
+        --replace-fail "numpy>=2.0.0rc1" "numpy"
+    '';
 
-  nativeBuildInputs = [
-    cython
-    meson-python
-    meson
-    numpy
-    pkg-config
-    versioneer
-    wheel
-  ]
-  ++ versioneer.optional-dependencies.toml
-  ++ lib.optionals (pythonOlder "3.12") [
-    oldest-supported-numpy
-  ];
+    nativeBuildInputs =
+      [
+        cython
+        meson-python
+        meson
+        numpy
+        pkg-config
+        versioneer
+        wheel
+      ]
+      ++ versioneer.optional-dependencies.toml
+      ++ lib.optionals (pythonOlder "3.12") [ oldest-supported-numpy ];
 
-  enableParallelBuilding = true;
+    enableParallelBuilding = true;
 
-  propagatedBuildInputs = [
-    numpy
-    python-dateutil
-    pytz
-    tzdata
-  ];
+    propagatedBuildInputs = [
+      numpy
+      python-dateutil
+      pytz
+      tzdata
+    ];
 
-  passthru.optional-dependencies = let
-    extras = {
-      aws = [
-        s3fs
-      ];
-      clipboard = [
-        pyqt5
-        qtpy
-      ];
-      compression = [
-        zstandard
-      ];
-      computation = [
-        scipy
-        xarray
-      ];
-      excel = [
-        odfpy
-        openpyxl
-        # TODO: pyxlsb
-        xlrd
-        xlsxwriter
-      ];
-      feather = [
-        pyarrow
-      ];
-      fss = [
-        fsspec
-      ];
-      gcp = [
-        gcsfs
-        # TODO: pandas-gqb
-      ];
-      hdf5 = [
-        blosc2
-        tables
-      ];
-      html = [
-        beautifulsoup4
-        html5lib
-        lxml
-      ];
-      mysql = [
-        sqlalchemy
-        pymysql
-      ];
-      output_formatting = [
-        jinja2
-        tabulate
-      ];
-      parquet = [
-        pyarrow
-      ];
-      performance = [
-        bottleneck
-        numba
-        numexpr
-      ];
-      plot = [
-        matplotlib
-      ];
-      postgresql = [
-        sqlalchemy
-        psycopg2
-      ];
-      spss = [
-        pyreadstat
-      ];
-      sql-other = [
-        sqlalchemy
-      ];
-      xml = [
-        lxml
-      ];
-    };
-  in extras // {
-    all = lib.concatLists (lib.attrValues extras);
-  };
+    passthru.optional-dependencies =
+      let
+        extras = {
+          aws = [ s3fs ];
+          clipboard = [
+            pyqt5
+            qtpy
+          ];
+          compression = [ zstandard ];
+          computation = [
+            scipy
+            xarray
+          ];
+          excel = [
+            odfpy
+            openpyxl
+            # TODO: pyxlsb
+            xlrd
+            xlsxwriter
+          ];
+          feather = [ pyarrow ];
+          fss = [ fsspec ];
+          gcp = [
+            gcsfs
+            # TODO: pandas-gqb
+          ];
+          hdf5 = [
+            blosc2
+            tables
+          ];
+          html = [
+            beautifulsoup4
+            html5lib
+            lxml
+          ];
+          mysql = [
+            sqlalchemy
+            pymysql
+          ];
+          output_formatting = [
+            jinja2
+            tabulate
+          ];
+          parquet = [ pyarrow ];
+          performance = [
+            bottleneck
+            numba
+            numexpr
+          ];
+          plot = [ matplotlib ];
+          postgresql = [
+            sqlalchemy
+            psycopg2
+          ];
+          spss = [ pyreadstat ];
+          sql-other = [ sqlalchemy ];
+          xml = [ lxml ];
+        };
+      in
+      extras // { all = lib.concatLists (lib.attrValues extras); };
 
-  doCheck = false; # various infinite recursions
+    doCheck = false; # various infinite recursions
 
-  passthru.tests.pytest = pandas.overridePythonAttrs (_: { doCheck = true; });
+    passthru.tests.pytest = pandas.overridePythonAttrs (_: {
+      doCheck = true;
+    });
 
-  nativeCheckInputs = [
-    glibcLocales
-    hypothesis
-    pytest-asyncio
-    pytest-xdist
-    pytestCheckHook
-  ]
-  ++ lib.flatten (lib.attrValues passthru.optional-dependencies)
-  ++ lib.optionals (stdenv.isLinux) [
-    # for locale executable
-    glibc
-  ]
-  ++ lib.optionals (stdenv.isDarwin) [
-    # for locale executable
-    adv_cmds
-  ];
+    nativeCheckInputs =
+      [
+        glibcLocales
+        hypothesis
+        pytest-asyncio
+        pytest-xdist
+        pytestCheckHook
+      ]
+      ++ lib.flatten (lib.attrValues passthru.optional-dependencies)
+      ++ lib.optionals (stdenv.isLinux) [
+        # for locale executable
+        glibc
+      ]
+      ++ lib.optionals (stdenv.isDarwin) [
+        # for locale executable
+        adv_cmds
+      ];
 
-  # don't max out build cores, it breaks tests
-  dontUsePytestXdist = true;
+    # don't max out build cores, it breaks tests
+    dontUsePytestXdist = true;
 
-  __darwinAllowLocalNetworking = true;
+    __darwinAllowLocalNetworking = true;
 
-  pytestFlagsArray = [
-    # https://github.com/pandas-dev/pandas/blob/main/test_fast.sh
-    "-m" "'not single_cpu and not slow and not network and not db and not slow_arm'"
-    # https://github.com/pandas-dev/pandas/issues/54907
-    "--no-strict-data-files"
-    "--numprocesses" "4"
-  ];
+    pytestFlagsArray = [
+      # https://github.com/pandas-dev/pandas/blob/main/test_fast.sh
+      "-m"
+      "'not single_cpu and not slow and not network and not db and not slow_arm'"
+      # https://github.com/pandas-dev/pandas/issues/54907
+      "--no-strict-data-files"
+      "--numprocesses"
+      "4"
+    ];
 
-  disabledTests = [
-    # AssertionError: Did not see expected warning of class 'FutureWarning'
-    "test_parsing_tzlocal_deprecated"
-  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
-    # tests/generic/test_finalize.py::test_binops[and_-args4-right] - AssertionError: assert {} == {'a': 1}
-    "test_binops"
-    # These tests are unreliable on aarch64-darwin. See https://github.com/pandas-dev/pandas/issues/38921.
-    "test_rolling"
-  ] ++ lib.optional stdenv.is32bit [
-    # https://github.com/pandas-dev/pandas/issues/37398
-    "test_rolling_var_numerical_issues"
-  ];
+    disabledTests =
+      [
+        # AssertionError: Did not see expected warning of class 'FutureWarning'
+        "test_parsing_tzlocal_deprecated"
+      ]
+      ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+        # tests/generic/test_finalize.py::test_binops[and_-args4-right] - AssertionError: assert {} == {'a': 1}
+        "test_binops"
+        # These tests are unreliable on aarch64-darwin. See https://github.com/pandas-dev/pandas/issues/38921.
+        "test_rolling"
+      ]
+      ++ lib.optional stdenv.is32bit [
+        # https://github.com/pandas-dev/pandas/issues/37398
+        "test_rolling_var_numerical_issues"
+      ];
 
-  # Tests have relative paths, and need to reference compiled C extensions
-  # so change directory where `import .test` is able to be resolved
-  preCheck = ''
-    export HOME=$TMPDIR
-    export LC_ALL="en_US.UTF-8"
-    cd $out/${python.sitePackages}/pandas
-  ''
-  # TODO: Get locale and clipboard support working on darwin.
-  #       Until then we disable the tests.
-  + lib.optionalString stdenv.isDarwin ''
-    # Fake the impure dependencies pbpaste and pbcopy
-    echo "#!${runtimeShell}" > pbcopy
-    echo "#!${runtimeShell}" > pbpaste
-    chmod a+x pbcopy pbpaste
-    export PATH=$(pwd):$PATH
-  '';
+    # Tests have relative paths, and need to reference compiled C extensions
+    # so change directory where `import .test` is able to be resolved
+    preCheck =
+      ''
+        export HOME=$TMPDIR
+        export LC_ALL="en_US.UTF-8"
+        cd $out/${python.sitePackages}/pandas
+      ''
+      # TODO: Get locale and clipboard support working on darwin.
+      #       Until then we disable the tests.
+      + lib.optionalString stdenv.isDarwin ''
+        # Fake the impure dependencies pbpaste and pbcopy
+        echo "#!${runtimeShell}" > pbcopy
+        echo "#!${runtimeShell}" > pbpaste
+        chmod a+x pbcopy pbpaste
+        export PATH=$(pwd):$PATH
+      '';
 
-  pythonImportsCheck = [
-    "pandas"
-  ];
+    pythonImportsCheck = [ "pandas" ];
 
-  meta = with lib; {
-    # pandas devs no longer test i686, it's commonly broken
-    # broken = stdenv.isi686;
-    changelog = "https://pandas.pydata.org/docs/whatsnew/index.html";
-    description = "Powerful data structures for data analysis, time series, and statistics";
-    downloadPage = "https://github.com/pandas-dev/pandas";
-    homepage = "https://pandas.pydata.org";
-    license = licenses.bsd3;
-    longDescription = ''
-      Flexible and powerful data analysis / manipulation library for
-      Python, providing labeled data structures similar to R data.frame
-      objects, statistical functions, and much more.
-    '';
-    maintainers = with maintainers; [ raskin knedlsepp ];
+    meta = with lib; {
+      # pandas devs no longer test i686, it's commonly broken
+      # broken = stdenv.isi686;
+      changelog = "https://pandas.pydata.org/docs/whatsnew/index.html";
+      description = "Powerful data structures for data analysis, time series, and statistics";
+      downloadPage = "https://github.com/pandas-dev/pandas";
+      homepage = "https://pandas.pydata.org";
+      license = licenses.bsd3;
+      longDescription = ''
+        Flexible and powerful data analysis / manipulation library for
+        Python, providing labeled data structures similar to R data.frame
+        objects, statistical functions, and much more.
+      '';
+      maintainers = with maintainers; [
+        raskin
+        knedlsepp
+      ];
+    };
   };
-};
-in pandas
+in
+pandas
diff --git a/pkgs/development/python-modules/pandoc-attributes/default.nix b/pkgs/development/python-modules/pandoc-attributes/default.nix
index 8c97744e9a118..8322f38835308 100644
--- a/pkgs/development/python-modules/pandoc-attributes/default.nix
+++ b/pkgs/development/python-modules/pandoc-attributes/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-, pandocfilters
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  pandocfilters,
 }:
 
 buildPythonPackage rec {
@@ -14,16 +15,14 @@ buildPythonPackage rec {
     sha256 = "69221502dac74f5df1317011ce62c85a83eef5da3b71c63b1908e98224304a8c";
   };
 
-  propagatedBuildInputs = [
-    pandocfilters
-  ];
+  propagatedBuildInputs = [ pandocfilters ];
 
   # No tests in pypi source
   doCheck = false;
 
   meta = {
     homepage = "https://github.com/aaren/pandoc-attributes";
-    description = "An Attribute class to be used with pandocfilters";
+    description = "Attribute class to be used with pandocfilters";
     license = lib.licenses.bsd2;
     maintainers = with lib.maintainers; [ vcanadi ];
   };
diff --git a/pkgs/development/python-modules/pandoc-xnos/default.nix b/pkgs/development/python-modules/pandoc-xnos/default.nix
index 8d5a4694b1ac4..c41e2811ae31d 100644
--- a/pkgs/development/python-modules/pandoc-xnos/default.nix
+++ b/pkgs/development/python-modules/pandoc-xnos/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, pandocfilters
-, psutil
-, setuptools
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  pandocfilters,
+  psutil,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,18 +19,14 @@ buildPythonPackage rec {
     hash = "sha256-beiGvN0DS6s8wFjcDKozDuwAM2OApX3lTRaUDRUqLeU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pandocfilters
     psutil
   ];
 
-  pythonImportsCheck = [
-    "pandocxnos"
-  ];
+  pythonImportsCheck = [ "pandocxnos" ];
 
   # tests need some patching
   doCheck = false;
diff --git a/pkgs/development/python-modules/pandocfilters/default.nix b/pkgs/development/python-modules/pandocfilters/default.nix
index b9310fdbae846..37ce5a14d7d06 100644
--- a/pkgs/development/python-modules/pandocfilters/default.nix
+++ b/pkgs/development/python-modules/pandocfilters/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,8 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A python module for writing pandoc filters, with a collection of examples";
+    description = "Python module for writing pandoc filters, with a collection of examples";
     homepage = "https://github.com/jgm/pandocfilters";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/panel/default.nix b/pkgs/development/python-modules/panel/default.nix
index d8e0e071df4dc..f034d572b3b6c 100644
--- a/pkgs/development/python-modules/panel/default.nix
+++ b/pkgs/development/python-modules/panel/default.nix
@@ -1,22 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonRelaxDepsHook
-, bleach
-, bokeh
-, param
-, pyviz-comms
-, markdown
-, pyct
-, requests
-, setuptools
-, tqdm
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  bleach,
+  bokeh,
+  param,
+  pyviz-comms,
+  markdown,
+  pyct,
+  requests,
+  setuptools,
+  tqdm,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "panel";
-  version = "1.4.1";
+  version = "1.4.4";
 
   format = "wheel";
 
@@ -25,18 +25,13 @@ buildPythonPackage rec {
   # tries to fetch even more artifacts
   src = fetchPypi {
     inherit pname version format;
-    hash = "sha256-x7ywbO2uY1r06bDXV/+X/7cs9f6jFawyDHeo8pLWZVE=";
+    hash = "sha256-tJu5Z2VnsMBzC/aTSMBXJHCAgRrsVjZN1Pz7qA5eCaA=";
     dist = "py3";
     python = "py3";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
-  pythonRelaxDeps = [
-    "bokeh"
-  ];
+  pythonRelaxDeps = [ "bokeh" ];
 
   propagatedBuildInputs = [
     bleach
@@ -51,15 +46,13 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  pythonImportsCheck = [
-    "panel"
-  ];
+  pythonImportsCheck = [ "panel" ];
 
   # infinite recursion in test dependencies (hvplot)
   doCheck = false;
 
   meta = with lib; {
-    description = "A high level dashboarding library for python visualization libraries";
+    description = "High level dashboarding library for python visualization libraries";
     mainProgram = "panel";
     homepage = "https://github.com/holoviz/panel";
     changelog = "https://github.com/holoviz/panel/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/panflute/default.nix b/pkgs/development/python-modules/panflute/default.nix
index 0d145759842e7..d33e3b6cd0a4f 100644
--- a/pkgs/development/python-modules/panflute/default.nix
+++ b/pkgs/development/python-modules/panflute/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchPypi
-, click
-, pyyaml
-, buildPythonPackage
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  click,
+  pyyaml,
+  buildPythonPackage,
+  pythonOlder,
 }:
 
-buildPythonPackage rec{
+buildPythonPackage rec {
   pname = "panflute";
   version = "2.3.1";
   format = "setuptools";
@@ -23,9 +24,7 @@ buildPythonPackage rec{
     pyyaml
   ];
 
-  pythonImportsCheck = [
-    "panflute"
-  ];
+  pythonImportsCheck = [ "panflute" ];
 
   meta = with lib; {
     description = "Pythonic alternative to John MacFarlane's pandocfilters, with extra helper functions";
diff --git a/pkgs/development/python-modules/panphon/default.nix b/pkgs/development/python-modules/panphon/default.nix
index 6ae6291345053..22bd61f6f9bc0 100644
--- a/pkgs/development/python-modules/panphon/default.nix
+++ b/pkgs/development/python-modules/panphon/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-
-, unittestCheckHook
-
-, setuptools
-
-, unicodecsv
-, pyyaml
-, regex
-, numpy
-, editdistance
-, munkres
-, levenshtein
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+
+  unittestCheckHook,
+
+  setuptools,
+
+  unicodecsv,
+  pyyaml,
+  regex,
+  numpy,
+  editdistance,
+  munkres,
+  levenshtein,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-gio52n1NZWeyCK+eJW/Fp827wjvwnMNDFAR4pKa8VcY=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     setuptools # need for pkg_resources
@@ -40,11 +39,12 @@ buildPythonPackage rec {
     levenshtein # need for align_wordlists.py script
   ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [ "-s" "test" ];
+  unittestFlagsArray = [
+    "-s"
+    "test"
+  ];
 
   pythonImportsCheck = [
     "panphon"
diff --git a/pkgs/development/python-modules/paperbush/default.nix b/pkgs/development/python-modules/paperbush/default.nix
new file mode 100644
index 0000000000000..e2a06a1f72d29
--- /dev/null
+++ b/pkgs/development/python-modules/paperbush/default.nix
@@ -0,0 +1,29 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+}:
+
+buildPythonPackage rec {
+  pname = "paperbush";
+  version = "0.2.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "trag1c";
+    repo = "paperbush";
+    rev = "refs/tags/${version}";
+    hash = "sha256-wJV+2aGK9eSw2iToiHh0I7vYAuND2pRYGhnf7CB1a+0=";
+  };
+
+  build-system = [ poetry-core ];
+  pythonImportsCheck = [ "paperbush" ];
+
+  meta = with lib; {
+    changelog = "https://github.com/trag1c/paperbush/blob/${src.rev}/CHANGELOG.md";
+    description = "Super concise argument parsing tool for Python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ sigmanificient ];
+  };
+}
diff --git a/pkgs/development/python-modules/papermill/default.nix b/pkgs/development/python-modules/papermill/default.nix
index 743812b84b62a..280f541b32f4c 100644
--- a/pkgs/development/python-modules/papermill/default.nix
+++ b/pkgs/development/python-modules/papermill/default.nix
@@ -1,31 +1,32 @@
-{ lib
-, stdenv
-, aiohttp
-, ansicolors
-, azure-datalake-store
-, azure-identity
-, azure-storage-blob
-, boto3
-, buildPythonPackage
-, click
-, entrypoints
-, fetchFromGitHub
-, gcsfs
-, ipykernel
-, moto
-, nbclient
-, nbformat
-, pyarrow
-, pygithub
-, pytest-mock
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, pyyaml
-, requests
-, setuptools
-, tenacity
-, tqdm
+{
+  lib,
+  stdenv,
+  aiohttp,
+  ansicolors,
+  azure-datalake-store,
+  azure-identity,
+  azure-storage-blob,
+  boto3,
+  buildPythonPackage,
+  click,
+  entrypoints,
+  fetchFromGitHub,
+  gcsfs,
+  ipykernel,
+  moto,
+  nbclient,
+  nbformat,
+  pyarrow,
+  pygithub,
+  pytest-mock,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  pyyaml,
+  requests,
+  setuptools,
+  tenacity,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -42,9 +43,7 @@ buildPythonPackage rec {
     hash = "sha256-NxC5+hRDdMCl/7ZIho5ml4hdENrgO+wzi87GRPeMv8Q=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     click
@@ -56,9 +55,7 @@ buildPythonPackage rec {
     entrypoints
     tenacity
     ansicolors
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    aiohttp
-  ];
+  ] ++ lib.optionals (pythonAtLeast "3.12") [ aiohttp ];
 
   passthru.optional-dependencies = {
     azure = [
@@ -66,26 +63,20 @@ buildPythonPackage rec {
       azure-identity
       azure-storage-blob
     ];
-    gcs = [
-      gcsfs
-    ];
-    github = [
-      pygithub
-    ];
-    hdfs = [
-      pyarrow
-    ];
-    s3 = [
-      boto3
-    ];
+    gcs = [ gcsfs ];
+    github = [ pygithub ];
+    hdfs = [ pyarrow ];
+    s3 = [ boto3 ];
   };
 
-  nativeCheckInputs = [
-    ipykernel
-    moto
-    pytest-mock
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.azure
+  nativeCheckInputs =
+    [
+      ipykernel
+      moto
+      pytest-mock
+      pytestCheckHook
+    ]
+    ++ passthru.optional-dependencies.azure
     ++ passthru.optional-dependencies.s3
     ++ passthru.optional-dependencies.gcs;
 
@@ -93,17 +84,17 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  pythonImportsCheck = [
-    "papermill"
-  ];
+  pythonImportsCheck = [ "papermill" ];
 
-  disabledTests = [
-    # pytest 8 compat
-    "test_read_with_valid_file_extension"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # might fail due to the sandbox
-    "test_end2end_autosave_slow_notebook"
-  ];
+  disabledTests =
+    [
+      # pytest 8 compat
+      "test_read_with_valid_file_extension"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # might fail due to the sandbox
+      "test_end2end_autosave_slow_notebook"
+    ];
 
   disabledTestPaths = [
     # ImportError: cannot import name 'mock_s3' from 'moto'
diff --git a/pkgs/development/python-modules/papis-python-rofi/default.nix b/pkgs/development/python-modules/papis-python-rofi/default.nix
index 53bf62c5db155..c23b6cffa2a44 100644
--- a/pkgs/development/python-modules/papis-python-rofi/default.nix
+++ b/pkgs/development/python-modules/papis-python-rofi/default.nix
@@ -1,4 +1,8 @@
-{ buildPythonPackage, lib, fetchPypi }:
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "papis-python-rofi";
@@ -14,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "A Python module to make simple GUIs with Rofi";
+    description = "Python module to make simple GUIs with Rofi";
     homepage = "https://github.com/alejandrogallo/python-rofi";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.nico202 ];
diff --git a/pkgs/development/python-modules/papis/default.nix b/pkgs/development/python-modules/papis/default.nix
index fe56f71ed4ebb..8f9dfbe49291a 100644
--- a/pkgs/development/python-modules/papis/default.nix
+++ b/pkgs/development/python-modules/papis/default.nix
@@ -1,33 +1,34 @@
-{ lib
-, stdenv
-, arxiv2bib
-, beautifulsoup4
-, bibtexparser
-, buildPythonPackage
-, chardet
-, click
-, colorama
-, configparser
-, dominate
-, fetchFromGitHub
-, filetype
-, habanero
-, isbnlib
-, lxml
-, prompt-toolkit
-, pygments
-, pyparsing
-, pytestCheckHook
-, python-doi
-, python-slugify
-, pythonAtLeast
-, pythonOlder
-, pyyaml
-, requests
-, stevedore
-, tqdm
-, typing-extensions
-, whoosh
+{
+  lib,
+  stdenv,
+  arxiv2bib,
+  beautifulsoup4,
+  bibtexparser,
+  buildPythonPackage,
+  chardet,
+  click,
+  colorama,
+  configparser,
+  dominate,
+  fetchFromGitHub,
+  filetype,
+  habanero,
+  isbnlib,
+  lxml,
+  prompt-toolkit,
+  pygments,
+  pyparsing,
+  pytestCheckHook,
+  python-doi,
+  python-slugify,
+  pythonAtLeast,
+  pythonOlder,
+  pyyaml,
+  requests,
+  stevedore,
+  tqdm,
+  typing-extensions,
+  whoosh,
 }:
 
 buildPythonPackage rec {
@@ -75,17 +76,13 @@ buildPythonPackage rec {
       --replace "--cov=papis" ""
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export HOME=$(mktemp -d);
   '';
 
-  pytestFlagsArray = [
-    "papis tests"
-  ];
+  pytestFlagsArray = [ "papis tests" ];
 
   disabledTestPaths = [
     "tests/downloaders"
@@ -104,13 +101,9 @@ buildPythonPackage rec {
     "test_valid_dblp_key"
     "test_validate_arxivid"
     "test_yaml"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_default_opener"
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ "test_default_opener" ];
 
-  pythonImportsCheck = [
-    "papis"
-  ];
+  pythonImportsCheck = [ "papis" ];
 
   meta = with lib; {
     description = "Powerful command-line document and bibliography manager";
@@ -118,6 +111,9 @@ buildPythonPackage rec {
     homepage = "https://papis.readthedocs.io/";
     changelog = "https://github.com/papis/papis/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ nico202 teto ];
+    maintainers = with maintainers; [
+      nico202
+      teto
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/para/default.nix b/pkgs/development/python-modules/para/default.nix
index 765672d7a3626..c5ef2bcdc1a75 100644
--- a/pkgs/development/python-modules/para/default.nix
+++ b/pkgs/development/python-modules/para/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,7 +24,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "para" ];
 
   meta = with lib; {
-    description = "A set utilities that ake advantage of python's 'multiprocessing' module to distribute CPU-intensive tasks";
+    description = "Set utilities that ake advantage of python's 'multiprocessing' module to distribute CPU-intensive tasks";
     homepage = "https://pypi.org/project/para";
     license = licenses.mit;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/param/default.nix b/pkgs/development/python-modules/param/default.nix
index b80f6199ad56c..40d813731278e 100644
--- a/pkgs/development/python-modules/param/default.nix
+++ b/pkgs/development/python-modules/param/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-
-# build-system
-, hatchling
-, hatch-vcs
-
-# tests
-, numpy
-, pandas
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # build-system
+  hatchling,
+  hatch-vcs,
+
+  # tests
+  numpy,
+  pandas,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -41,12 +42,11 @@ buildPythonPackage rec {
   ];
 
   pytestFlagsArray = [
-    "-W" "ignore::DeprecationWarning"
+    "-W"
+    "ignore::DeprecationWarning"
   ];
 
-  pythonImportsCheck = [
-    "param"
-  ];
+  pythonImportsCheck = [ "param" ];
 
   meta = with lib; {
     description = "Declarative Python programming using Parameters";
diff --git a/pkgs/development/python-modules/parameter-expansion-patched/default.nix b/pkgs/development/python-modules/parameter-expansion-patched/default.nix
index 8e73457557f7e..0ef4297214086 100644
--- a/pkgs/development/python-modules/parameter-expansion-patched/default.nix
+++ b/pkgs/development/python-modules/parameter-expansion-patched/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-/128ifveWC8zNlYtGWtxB3HpK6p7bVk1ahSwhaC2dAs=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "parameter_expansion"
-  ];
+  pythonImportsCheck = [ "parameter_expansion" ];
 
   meta = with lib; {
     description = "POSIX parameter expansion in Python";
diff --git a/pkgs/development/python-modules/parameterized/default.nix b/pkgs/development/python-modules/parameterized/default.nix
index 9f8fa4ad1e9fb..04bcad91f36f7 100644
--- a/pkgs/development/python-modules/parameterized/default.nix
+++ b/pkgs/development/python-modules/parameterized/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mock
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -28,22 +29,16 @@ buildPythonPackage rec {
       --replace "assertRaisesRegexp" "assertRaisesRegex"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   checkInputs = [
     mock
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "parameterized/test.py"
-  ];
+  pytestFlagsArray = [ "parameterized/test.py" ];
 
-  pythonImportsCheck = [
-    "parameterized"
-  ];
+  pythonImportsCheck = [ "parameterized" ];
 
   meta = with lib; {
     description = "Parameterized testing with any Python test framework";
diff --git a/pkgs/development/python-modules/parametrize-from-file/default.nix b/pkgs/development/python-modules/parametrize-from-file/default.nix
index b6ee36c3dce2f..1f116f46e7e60 100644
--- a/pkgs/development/python-modules/parametrize-from-file/default.nix
+++ b/pkgs/development/python-modules/parametrize-from-file/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, pytestCheckHook
-, numpy
-, decopatch
-, more-itertools
-, nestedtext
-, pyyaml
-, tidyexc
-, toml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  pytestCheckHook,
+  numpy,
+  decopatch,
+  more-itertools,
+  nestedtext,
+  pyyaml,
+  tidyexc,
+  toml,
 }:
 
 buildPythonPackage rec {
   pname = "parametrize-from-file";
-  version = "0.19.0";
+  version = "0.20.0";
   format = "pyproject";
 
   src = fetchPypi {
     inherit version;
     pname = "parametrize_from_file";
-    hash = "sha256-FPTO2hYZT7bsQyPNcjBEk8SZKp51o/eMV5/U58W5SPI=";
+    hash = "sha256-t4WLNDkC/ErBnOGK6FoYIfjoL/zF9MxPThJtGM1nUL4=";
   };
 
   # patch out coveralls since it doesn't provide us value
@@ -31,9 +32,7 @@ buildPythonPackage rec {
       --replace "more_itertools~=8.10" "more_itertools"
   '';
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   nativeCheckInputs = [
     numpy
@@ -49,9 +48,7 @@ buildPythonPackage rec {
     toml
   ];
 
-  pythonImportsCheck = [
-    "parametrize_from_file"
-  ];
+  pythonImportsCheck = [ "parametrize_from_file" ];
 
   disabledTests = [
     # https://github.com/kalekundert/parametrize_from_file/issues/19
diff --git a/pkgs/development/python-modules/paramiko/default.nix b/pkgs/development/python-modules/paramiko/default.nix
index 36bc0c793f7a8..e5909fca7b3c9 100644
--- a/pkgs/development/python-modules/paramiko/default.nix
+++ b/pkgs/development/python-modules/paramiko/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, bcrypt
-, buildPythonPackage
-, cryptography
-, fetchpatch
-, fetchPypi
-, gssapi
-, icecream
-, invoke
-, mock
-, pyasn1
-, pynacl
-, pytestCheckHook
-, six
+{
+  lib,
+  bcrypt,
+  buildPythonPackage,
+  cryptography,
+  fetchpatch,
+  fetchPypi,
+  gssapi,
+  icecream,
+  invoke,
+  mock,
+  pyasn1,
+  pynacl,
+  pytestCheckHook,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -46,8 +47,14 @@ buildPythonPackage rec {
   ] ++ passthru.optional-dependencies.ed25519; # remove on 3.0 update
 
   passthru.optional-dependencies = {
-    gssapi = [ pyasn1 gssapi ];
-    ed25519 = [ pynacl bcrypt ];
+    gssapi = [
+      pyasn1
+      gssapi
+    ];
+    ed25519 = [
+      pynacl
+      bcrypt
+    ];
     invoke = [ invoke ];
   };
 
@@ -63,9 +70,7 @@ buildPythonPackage rec {
     "tests/test_ssh_gss.py"
   ];
 
-  pythonImportsCheck = [
-    "paramiko"
-  ];
+  pythonImportsCheck = [ "paramiko" ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/paramz/default.nix b/pkgs/development/python-modules/paramz/default.nix
index bed92d7a3565c..c2c817a58d714 100644
--- a/pkgs/development/python-modules/paramz/default.nix
+++ b/pkgs/development/python-modules/paramz/default.nix
@@ -1,4 +1,14 @@
-{ lib, buildPythonPackage, fetchpatch, fetchPypi, numpy, scipy, six, decorator, nose }:
+{
+  lib,
+  buildPythonPackage,
+  fetchpatch,
+  fetchPypi,
+  numpy,
+  scipy,
+  six,
+  decorator,
+  nose,
+}:
 
 buildPythonPackage rec {
   pname = "paramz";
@@ -23,13 +33,18 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [ numpy scipy six decorator ];
+  propagatedBuildInputs = [
+    numpy
+    scipy
+    six
+    decorator
+  ];
   nativeCheckInputs = [ nose ];
 
   pythonImportsCheck = [ "paramz" ];
 
   checkPhase = ''
-      nosetests -v paramz/tests
+    nosetests -v paramz/tests
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/paranoid-crypto/default.nix b/pkgs/development/python-modules/paranoid-crypto/default.nix
index f4ee6d2fe0b76..206fd2acf1c34 100644
--- a/pkgs/development/python-modules/paranoid-crypto/default.nix
+++ b/pkgs/development/python-modules/paranoid-crypto/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, absl-py
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, fpylll
-, gmpy
-, protobuf
-, pybind11
-, pytestCheckHook
-, pythonOlder
-, scipy
-, sympy
+{
+  lib,
+  absl-py,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  fpylll,
+  gmpy,
+  protobuf,
+  pybind11,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
+  sympy,
 }:
 
 buildPythonPackage rec {
@@ -57,9 +58,7 @@ buildPythonPackage rec {
     "paranoid_crypto/lib/randomness_tests/"
   ];
 
-  pythonImportsCheck = [
-    "paranoid_crypto"
-  ];
+  pythonImportsCheck = [ "paranoid_crypto" ];
 
   meta = with lib; {
     description = "Library contains checks for well known weaknesses on cryptographic artifacts";
diff --git a/pkgs/development/python-modules/parfive/default.nix b/pkgs/development/python-modules/parfive/default.nix
index 22f0c1c39ecae..e0e55e49f35a8 100644
--- a/pkgs/development/python-modules/parfive/default.nix
+++ b/pkgs/development/python-modules/parfive/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, aiofiles
-, aioftp
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, pytest-asyncio
-, pytest-localserver
-, pytest-socket
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
-, tqdm
+{
+  lib,
+  aiofiles,
+  aioftp,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  pytest-asyncio,
+  pytest-localserver,
+  pytest-socket,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-zWy0GSQhMHMM9B1M9vKE6/UPGnHObJUI4EZ+yY8X3I4=";
   };
 
-  buildInputs = [
-    setuptools-scm
-  ];
+  buildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     aioftp
@@ -50,12 +49,10 @@ buildPythonPackage rec {
     "test_ftp_http"
   ];
 
-  pythonImportsCheck = [
-    "parfive"
-  ];
+  pythonImportsCheck = [ "parfive" ];
 
   meta = with lib; {
-    description = "A HTTP and FTP parallel file downloader";
+    description = "HTTP and FTP parallel file downloader";
     mainProgram = "parfive";
     homepage = "https://parfive.readthedocs.io/";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/parse-type/default.nix b/pkgs/development/python-modules/parse-type/default.nix
index 45af3a0e7fb28..69f562f512ff1 100644
--- a/pkgs/development/python-modules/parse-type/default.nix
+++ b/pkgs/development/python-modules/parse-type/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, parse
-, pytestCheckHook
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  parse,
+  pytestCheckHook,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace pytest.ini \
diff --git a/pkgs/development/python-modules/parse/default.nix b/pkgs/development/python-modules/parse/default.nix
index b1aa2baedfacc..76c6fdc51a5da 100644
--- a/pkgs/development/python-modules/parse/default.nix
+++ b/pkgs/development/python-modules/parse/default.nix
@@ -1,31 +1,29 @@
-{ lib, fetchFromGitHub
-, buildPythonPackage
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  setuptools,
+  pytestCheckHook,
 }:
 buildPythonPackage rec {
   pname = "parse";
-  version = "1.20.1";
+  version = "1.20.2";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "r1chardj0n3s";
     repo = "parse";
     rev = "refs/tags/${version}";
-    hash = "sha256-FAAs39peR+Ibv0RKLrcnY2w0Z2EjVYyZ8U4HcbjTiew=";
+    hash = "sha256-i/H3E/Z8vqt2jLS8BaVHJuD2Fbi7TP7EeOjXAJ16bWg=";
   };
 
   postPatch = ''
     rm .pytest.ini
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     homepage = "https://github.com/r1chardj0n3s/parse";
diff --git a/pkgs/development/python-modules/parsedatetime/default.nix b/pkgs/development/python-modules/parsedatetime/default.nix
index ccb5bbcfda18c..f07e2a1e043f7 100644
--- a/pkgs/development/python-modules/parsedatetime/default.nix
+++ b/pkgs/development/python-modules/parsedatetime/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, future
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  future,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/parsedmarc/default.nix b/pkgs/development/python-modules/parsedmarc/default.nix
index 3a2dbe638dbb6..7dd87d5f6af48 100644
--- a/pkgs/development/python-modules/parsedmarc/default.nix
+++ b/pkgs/development/python-modules/parsedmarc/default.nix
@@ -1,36 +1,36 @@
-{ lib
-, azure-identity
-, azure-monitor-ingestion
-, boto3
-, buildPythonPackage
-, dateparser
-, dnspython
-, elastic-transport
-, elasticsearch
-, elasticsearch-dsl
-, expiringdict
-, fetchPypi
-, fetchurl
-, geoip2
-, google-api-core
-, google-api-python-client
-, google-auth
-, google-auth-httplib2
-, google-auth-oauthlib
-, hatchling
-, imapclient
-, kafka-python
-, lxml
-, mailsuite
-, msgraph-core
-, nixosTests
-, opensearch-py
-, publicsuffixlist
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
-, tqdm
-, xmltodict
+{
+  lib,
+  azure-identity,
+  azure-monitor-ingestion,
+  boto3,
+  buildPythonPackage,
+  dateparser,
+  dnspython,
+  elastic-transport,
+  elasticsearch,
+  elasticsearch-dsl,
+  expiringdict,
+  fetchPypi,
+  fetchurl,
+  geoip2,
+  google-api-core,
+  google-api-python-client,
+  google-auth,
+  google-auth-httplib2,
+  google-auth-oauthlib,
+  hatchling,
+  imapclient,
+  kafka-python,
+  lxml,
+  mailsuite,
+  msgraph-core,
+  nixosTests,
+  opensearch-py,
+  publicsuffixlist,
+  pythonOlder,
+  requests,
+  tqdm,
+  xmltodict,
 }:
 
 let
@@ -41,19 +41,18 @@ let
 in
 buildPythonPackage rec {
   pname = "parsedmarc";
-  version = "8.11.0";
+  version = "8.12.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-OBxiaXB8NKNMviRI19rYYJxpnfnaEL3zSPmYB4urIug=";
+    hash = "sha256-mscc3TRMYuaTqrrxGPCVVKa2fg5sXwK/BglpbvLXbLc=";
   };
 
   nativeBuildInputs = [
     hatchling
-    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = [
@@ -93,9 +92,7 @@ buildPythonPackage rec {
   # https://github.com/domainaware/parsedmarc/issues/426
   doCheck = false;
 
-  pythonImportsCheck = [
-    "parsedmarc"
-  ];
+  pythonImportsCheck = [ "parsedmarc" ];
 
   passthru = {
     inherit dashboard;
@@ -105,7 +102,9 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python module and CLI utility for parsing DMARC reports";
     homepage = "https://domainaware.github.io/parsedmarc/";
-    changelog = "https://github.com/domainaware/parsedmarc/blob/master/CHANGELOG.md#${lib.replaceStrings [ "." ] [ "" ] version}";
+    changelog = "https://github.com/domainaware/parsedmarc/blob/master/CHANGELOG.md#${
+      lib.replaceStrings [ "." ] [ "" ] version
+    }";
     license = licenses.asl20;
     maintainers = with maintainers; [ talyz ];
     mainProgram = "parsedmarc";
diff --git a/pkgs/development/python-modules/parsel/default.nix b/pkgs/development/python-modules/parsel/default.nix
index 639f973e77541..457456c678bfb 100644
--- a/pkgs/development/python-modules/parsel/default.nix
+++ b/pkgs/development/python-modules/parsel/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, cssselect
-, fetchPypi
-, jmespath
-, lxml
-, packaging
-, psutil
-, pytestCheckHook
-, pythonOlder
-, w3lib
+{
+  lib,
+  buildPythonPackage,
+  cssselect,
+  fetchPypi,
+  jmespath,
+  lxml,
+  packaging,
+  psutil,
+  pytestCheckHook,
+  pythonOlder,
+  w3lib,
 }:
 
 buildPythonPackage rec {
@@ -41,9 +42,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "parsel"
-  ];
+  pythonImportsCheck = [ "parsel" ];
 
   meta = with lib; {
     description = "Python library to extract data from HTML and XML using XPath and CSS selectors";
diff --git a/pkgs/development/python-modules/parsimonious/default.nix b/pkgs/development/python-modules/parsimonious/default.nix
index b156321cefece..1c25d44e39c6f 100644
--- a/pkgs/development/python-modules/parsimonious/default.nix
+++ b/pkgs/development/python-modules/parsimonious/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, regex
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  regex,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     hash = "sha256-goFgDaGA7IrjVCekq097gr/sHj0eUvgMtg6oK5USUBw=";
   };
 
-  propagatedBuildInputs = [
-    regex
-  ];
+  propagatedBuildInputs = [ regex ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # test_benchmarks.py tests are actually benchmarks and may fail due to
diff --git a/pkgs/development/python-modules/parsley/default.nix b/pkgs/development/python-modules/parsley/default.nix
index f8972ac33805b..7da4675609d47 100644
--- a/pkgs/development/python-modules/parsley/default.nix
+++ b/pkgs/development/python-modules/parsley/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,7 @@ buildPythonPackage rec {
   meta = with lib; {
     license = licenses.mit;
     homepage = "https://launchpad.net/parsley";
-    description = "A parser generator library based on OMeta, and other useful parsing tools.";
+    description = "Parser generator library based on OMeta, and other useful parsing tools";
     maintainers = with maintainers; [ seppeljordan ];
   };
 }
diff --git a/pkgs/development/python-modules/parso/default.nix b/pkgs/development/python-modules/parso/default.nix
index 03b052a46dd76..e39173147e7d2 100644
--- a/pkgs/development/python-modules/parso/default.nix
+++ b/pkgs/development/python-modules/parso/default.nix
@@ -1,10 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, pythonAtLeast
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,7 +26,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python Parser";
+    description = "Python Parser";
     homepage = "https://parso.readthedocs.io/en/latest/";
     changelog = "https://github.com/davidhalter/parso/blob/master/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/parsy/default.nix b/pkgs/development/python-modules/parsy/default.nix
index 07e9bfb2be769..3c60ec41fcecc 100644
--- a/pkgs/development/python-modules/parsy/default.nix
+++ b/pkgs/development/python-modules/parsy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-/Bu3xZUpXI4WiYJKKWTJTdSFq8pwC1PFDw0Kr8s3Fe8=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "parsy"
-  ];
+  pythonImportsCheck = [ "parsy" ];
 
   meta = with lib; {
     homepage = "https://github.com/python-parsy/parsy";
diff --git a/pkgs/development/python-modules/partd/default.nix b/pkgs/development/python-modules/partd/default.nix
index b5f8afce9d3b2..0dd614644d2d5 100644
--- a/pkgs/development/python-modules/partd/default.nix
+++ b/pkgs/development/python-modules/partd/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch2
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch2,
+  pythonOlder,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, locket
-, toolz
+  # dependencies
+  locket,
+  toolz,
 
-# optional-dependencies
-, blosc2
-, numpy
-, pandas
-, pyzmq
+  # optional-dependencies
+  blosc2,
+  numpy,
+  pandas,
+  pyzmq,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -43,9 +44,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     locket
@@ -61,9 +60,7 @@ buildPythonPackage rec {
     ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
     description = "Appendable key-value storage";
diff --git a/pkgs/development/python-modules/particle/default.nix b/pkgs/development/python-modules/particle/default.nix
index 1b99947b58ec5..49771e8728eac 100644
--- a/pkgs/development/python-modules/particle/default.nix
+++ b/pkgs/development/python-modules/particle/default.nix
@@ -1,17 +1,17 @@
-{ lib
-, attrs
-, buildPythonPackage
-, deprecated
-, fetchFromGitHub
-, fetchPypi
-, hatch-vcs
-, hatchling
-, hepunits
-, pandas
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
-, tabulate
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  deprecated,
+  fetchPypi,
+  hatch-vcs,
+  hatchling,
+  hepunits,
+  pandas,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  tabulate,
 }:
 
 buildPythonPackage rec {
@@ -50,13 +50,9 @@ buildPythonPackage rec {
     pandas
   ];
 
-  pythonImportsCheck = [
-    "particle"
-  ];
+  pythonImportsCheck = [ "particle" ];
 
-  disabledTestPaths = [
-    "tests/particle/test_performance.py"
-  ];
+  disabledTestPaths = [ "tests/particle/test_performance.py" ];
 
   meta = with lib; {
     description = "Package to deal with particles, the PDG particle data table and others";
diff --git a/pkgs/development/python-modules/parts/default.nix b/pkgs/development/python-modules/parts/default.nix
index 126cabfc8f674..5f942a17c58f6 100644
--- a/pkgs/development/python-modules/parts/default.nix
+++ b/pkgs/development/python-modules/parts/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "parts";
-  version = "1.7.0";
+  version = "2.0.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-TbcFgWKKgHXFyi1NqwVy1ITGHESb4ZusivOpFWazN1s=";
+    hash = "sha256-wQgiwr7iOBvy24/w1C311PivWLtXLD/Djs34zo1Zid4=";
   };
 
   nativeBuildInputs = [
@@ -26,9 +27,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "parts"
-  ];
+  pythonImportsCheck = [ "parts" ];
 
   meta = with lib; {
     description = "Library for common list functions related to partitioning lists";
diff --git a/pkgs/development/python-modules/parver/default.nix b/pkgs/development/python-modules/parver/default.nix
index b18d7db34766b..546699b2ab0c1 100644
--- a/pkgs/development/python-modules/parver/default.nix
+++ b/pkgs/development/python-modules/parver/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, attrs
-, pytestCheckHook
-, hypothesis
-, pretend
-, arpeggio
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  attrs,
+  pytestCheckHook,
+  hypothesis,
+  pretend,
+  arpeggio,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -21,16 +22,12 @@ buildPythonPackage rec {
     hash = "sha256-uf3h5ruc6fB+COnEvqjYglxeeOGKAFLQLgK/lRfrR3c=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     attrs
     arpeggio
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/pasimple/default.nix b/pkgs/development/python-modules/pasimple/default.nix
index 6dc52b2101580..515fb636ae319 100644
--- a/pkgs/development/python-modules/pasimple/default.nix
+++ b/pkgs/development/python-modules/pasimple/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pulseaudio
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pulseaudio,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
       "_libpulse_simple = ctypes.CDLL('${lib.getLib pulseaudio}/lib/libpulse-simple.so.0')"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   pythonImportsCheck = [
     "pasimple"
@@ -36,7 +35,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A python wrapper for the \"PulseAudio simple API\". Supports playing and recording audio via PulseAudio and PipeWire";
+    description = "Python wrapper for the \"PulseAudio simple API\". Supports playing and recording audio via PulseAudio and PipeWire";
     homepage = "https://github.com/henrikschnor/pasimple";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
diff --git a/pkgs/development/python-modules/passlib/default.nix b/pkgs/development/python-modules/passlib/default.nix
index cf264c504353a..786cfc618d5b2 100644
--- a/pkgs/development/python-modules/passlib/default.nix
+++ b/pkgs/development/python-modules/passlib/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, argon2-cffi
-, bcrypt
-, cryptography
-, pytestCheckHook
-, pythonOlder
-, pytest-xdist
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  argon2-cffi,
+  bcrypt,
+  cryptography,
+  pytestCheckHook,
+  pythonOlder,
+  pytest-xdist,
 }:
 
 buildPythonPackage rec {
@@ -27,16 +28,16 @@ buildPythonPackage rec {
     totp = [ cryptography ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-    pytest-xdist
-  ] ++ passthru.optional-dependencies.argon2
-  ++ passthru.optional-dependencies.bcrypt
-  ++ passthru.optional-dependencies.totp;
+  nativeCheckInputs =
+    [
+      pytestCheckHook
+      pytest-xdist
+    ]
+    ++ passthru.optional-dependencies.argon2
+    ++ passthru.optional-dependencies.bcrypt
+    ++ passthru.optional-dependencies.totp;
 
-  pythonImportsCheck = [
-    "passlib"
-  ];
+  pythonImportsCheck = [ "passlib" ];
 
   disabledTests = [
     # timming sensitive
@@ -54,7 +55,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A password hashing library for Python";
+    description = "Password hashing library for Python";
     homepage = "https://foss.heptapod.net/python-libs/passlib";
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/paste/default.nix b/pkgs/development/python-modules/paste/default.nix
index a13706dacb549..cbe0e02928a9f 100644
--- a/pkgs/development/python-modules/paste/default.nix
+++ b/pkgs/development/python-modules/paste/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, setuptools
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "paste";
-  version = "3.9.0";
+  version = "3.10.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +20,7 @@ buildPythonPackage rec {
     owner = "cdent";
     repo = "paste";
     rev = "refs/tags/${version}";
-    hash = "sha256-HdeShtslnvjmuiUb0W3ASnSWcZnyDJcthsIOjYmuD8I=";
+    hash = "sha256-NY/h6hbpluEu1XAv3o4mqoG+l0LXfM1dw7+G0Rm1E4o=";
   };
 
   postPatch = ''
@@ -31,18 +32,14 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     # needs to be modified after Sat, 1 Jan 2005 12:00:00 GMT
     touch tests/urlparser_data/secured.txt
   '';
 
-  pythonNamespaces = [
-    "paste"
-  ];
+  pythonNamespaces = [ "paste" ];
 
   meta = with lib; {
     description = "Tools for using a Web Server Gateway Interface stack";
diff --git a/pkgs/development/python-modules/pastedeploy/default.nix b/pkgs/development/python-modules/pastedeploy/default.nix
index 749d3574d701c..a68134dfdc315 100644
--- a/pkgs/development/python-modules/pastedeploy/default.nix
+++ b/pkgs/development/python-modules/pastedeploy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +25,9 @@ buildPythonPackage rec {
       --replace " --cov" ""
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "paste.deploy"
-  ];
+  pythonImportsCheck = [ "paste.deploy" ];
 
   meta = with lib; {
     description = "Load, configure, and compose WSGI applications and servers";
diff --git a/pkgs/development/python-modules/pastel/default.nix b/pkgs/development/python-modules/pastel/default.nix
index 59fd518eca620..2ed649704fe12 100644
--- a/pkgs/development/python-modules/pastel/default.nix
+++ b/pkgs/development/python-modules/pastel/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "pastel";
diff --git a/pkgs/development/python-modules/pastescript/default.nix b/pkgs/development/python-modules/pastescript/default.nix
index 3d42c40c1230b..1fc44b80b6833 100644
--- a/pkgs/development/python-modules/pastescript/default.nix
+++ b/pkgs/development/python-modules/pastescript/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-, python
-, pytestCheckHook
-, six
-, paste
-, pastedeploy
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+  python,
+  pytestCheckHook,
+  six,
+  paste,
+  pastedeploy,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "pastescript";
-  version = "3.5.1";
+  version = "3.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +21,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PasteScript";
     inherit version;
-    hash = "sha256-zRtgbNReloT/20SL1tmq70IN0u/n5rYsbTc6Rv9DyDU=";
+    hash = "sha256-HCLSt81TUWRr7tKMb3DrSipLklZR2a/Ko1AdBsq7UXE=";
   };
 
   propagatedBuildInputs = [
@@ -37,13 +38,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonNamespaces = [
-    "paste"
-  ];
-
-  disabledTestPaths = [
-    "appsetup/testfiles"
-  ];
+  disabledTestPaths = [ "appsetup/testfiles" ];
 
   pythonImportsCheck = [
     "paste.script"
@@ -52,7 +47,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A pluggable command-line frontend, including commands to setup package file layouts";
+    description = "Pluggable command-line frontend, including commands to setup package file layouts";
     mainProgram = "paster";
     homepage = "https://github.com/cdent/pastescript/";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/patator/default.nix b/pkgs/development/python-modules/patator/default.nix
index 016f93b41975f..ea0f1ce93b9db 100644
--- a/pkgs/development/python-modules/patator/default.nix
+++ b/pkgs/development/python-modules/patator/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, ajpy
-, buildPythonPackage
-, cx-oracle
-, dnspython
-, fetchPypi
-, impacket
-, ipy
-, mysqlclient
-, paramiko
-, psycopg2
-, pyasn1
-, pycrypto
-, pycurl
-, pyopenssl
-, pysnmp
-, pysqlcipher3
-, pythonOlder
+{
+  lib,
+  ajpy,
+  buildPythonPackage,
+  cx-oracle,
+  dnspython,
+  fetchPypi,
+  impacket,
+  ipy,
+  mysqlclient,
+  paramiko,
+  psycopg2,
+  pyasn1,
+  pycrypto,
+  pycurl,
+  pyopenssl,
+  pysnmp,
+  pysqlcipher3,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/patch-ng/default.nix b/pkgs/development/python-modules/patch-ng/default.nix
index d91ca4be74dbd..77b0b02fa0c84 100644
--- a/pkgs/development/python-modules/patch-ng/default.nix
+++ b/pkgs/development/python-modules/patch-ng/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -14,10 +15,9 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "Library to parse and apply unified diffs.";
+    description = "Library to parse and apply unified diffs";
     homepage = "https://github.com/conan-io/python-patch";
     license = licenses.mit;
     maintainers = with maintainers; [ HaoZeke ];
   };
-
 }
diff --git a/pkgs/development/python-modules/patch/default.nix b/pkgs/development/python-modules/patch/default.nix
index d307399707c1b..1dea1cf9f1784 100644
--- a/pkgs/development/python-modules/patch/default.nix
+++ b/pkgs/development/python-modules/patch/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchzip
+{
+  lib,
+  buildPythonPackage,
+  fetchzip,
 }:
 
 buildPythonPackage rec {
@@ -18,10 +19,9 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A library to parse and apply unified diffs";
+    description = "Library to parse and apply unified diffs";
     homepage = "https://github.com/techtonik/python-patch/";
     license = licenses.mit;
     maintainers = [ maintainers.igsha ];
   };
-
 }
diff --git a/pkgs/development/python-modules/path-and-address/default.nix b/pkgs/development/python-modules/path-and-address/default.nix
index 4a72431c7521f..09918dec93094 100644
--- a/pkgs/development/python-modules/path-and-address/default.nix
+++ b/pkgs/development/python-modules/path-and-address/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -26,7 +27,6 @@ buildPythonPackage rec {
     description = "Functions for server CLI applications used by humans";
     homepage = "https://github.com/joeyespo/path-and-address";
     license = licenses.mit;
-    maintainers = with maintainers; [ koral];
+    maintainers = with maintainers; [ koral ];
   };
-
 }
diff --git a/pkgs/development/python-modules/path/default.nix b/pkgs/development/python-modules/path/default.nix
index 3629d8b11db56..9703edabc12f3 100644
--- a/pkgs/development/python-modules/path/default.nix
+++ b/pkgs/development/python-modules/path/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, more-itertools
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  more-itertools,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
     "test_utime"
   ];
 
-  pythonImportsCheck = [
-    "path"
-  ];
+  pythonImportsCheck = [ "path" ];
 
   meta = with lib; {
     description = "Object-oriented file system path manipulation";
diff --git a/pkgs/development/python-modules/pathable/default.nix b/pkgs/development/python-modules/pathable/default.nix
index 789162b1fe527..c0bd7ccb8cedb 100644
--- a/pkgs/development/python-modules/pathable/default.nix
+++ b/pkgs/development/python-modules/pathable/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -20,21 +21,15 @@ buildPythonPackage rec {
     hash = "sha256-4QRFjbeaggoEPVGAmSY+qVMNW0DKqarNfRXaH6B58ew=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     sed -i "/--cov/d" pyproject.toml
   '';
 
-  pythonImportsCheck = [
-    "pathable"
-  ];
+  pythonImportsCheck = [ "pathable" ];
 
   meta = with lib; {
     description = "Library for object-oriented paths";
diff --git a/pkgs/development/python-modules/pathlib-abc/default.nix b/pkgs/development/python-modules/pathlib-abc/default.nix
index b048fc3748c1a..0eb8930822ad0 100644
--- a/pkgs/development/python-modules/pathlib-abc/default.nix
+++ b/pkgs/development/python-modules/pathlib-abc/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, hatchling
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  hatchling,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "pathlib-abc";
-  version = "0.2.0";
+  version = "0.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -16,20 +17,14 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pathlib_abc";
     inherit version;
-    hash = "sha256-ua9rOf1RMhSFZ47DgD0KEeAqIuhp6AUsrLbo9l3nuGI=";
+    hash = "sha256-CE573ZGbD3d0kUqeZM2GobOYYPgfeB3XJCWGMfKRWr4=";
   };
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
-  pythonImportsCheck = [
-    "pathlib_abc"
-  ];
+  pythonImportsCheck = [ "pathlib_abc" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Python base classes for rich path objects";
diff --git a/pkgs/development/python-modules/pathlib/default.nix b/pkgs/development/python-modules/pathlib/default.nix
deleted file mode 100644
index 1e34b92a4314d..0000000000000
--- a/pkgs/development/python-modules/pathlib/default.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, unittestCheckHook
-, pythonAtLeast
-}:
-
-buildPythonPackage rec {
-  pname = "pathlib";
-  version = "1.0.1";
-  format = "setuptools";
-  disabled = pythonAtLeast "3.4"; # Was added to std library in Python 3.4
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "17zajiw4mjbkkv6ahp3xf025qglkj0805m9s41c45zryzj6p2h39";
-  };
-
-  nativeCheckInputs = [ unittestCheckHook ];
-
-  meta = {
-    description = "Object-oriented filesystem paths";
-    homepage = "https://pathlib.readthedocs.org/";
-    license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ ];
-  };
-}
diff --git a/pkgs/development/python-modules/pathlib2/default.nix b/pkgs/development/python-modules/pathlib2/default.nix
index 15238a8589908..5cbe0f41d36f9 100644
--- a/pkgs/development/python-modules/pathlib2/default.nix
+++ b/pkgs/development/python-modules/pathlib2/default.nix
@@ -1,12 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
-, pythonOlder
-, scandir ? null
-, glibcLocales
-, mock
-, typing
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  pythonOlder,
+  scandir ? null,
+  glibcLocales,
+  typing,
 }:
 
 buildPythonPackage rec {
@@ -19,17 +19,20 @@ buildPythonPackage rec {
     hash = "sha256-n+DtrYmLg8DD4ZnIQrJ+0hZkXS4Xd1ey3Wc4TUETxkE=";
   };
 
-  propagatedBuildInputs = [ six ]
-    ++ lib.optionals (pythonOlder "3.5") [ scandir typing ];
-  nativeCheckInputs = [ glibcLocales ]
-    ++ lib.optional (pythonOlder "3.3") mock;
+  propagatedBuildInputs =
+    [ six ]
+    ++ lib.optionals (pythonOlder "3.5") [
+      scandir
+      typing
+    ];
+  nativeCheckInputs = [ glibcLocales ];
 
   preCheck = ''
     export LC_ALL="en_US.UTF-8"
   '';
 
   meta = with lib; {
-    description = "This module offers classes representing filesystem paths with semantics appropriate for different operating systems.";
+    description = "This module offers classes representing filesystem paths with semantics appropriate for different operating systems";
     homepage = "https://pypi.org/project/pathlib2/";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/pathos/default.nix b/pkgs/development/python-modules/pathos/default.nix
index 690734a4e0f8f..75bdc9eaeb645 100644
--- a/pkgs/development/python-modules/pathos/default.nix
+++ b/pkgs/development/python-modules/pathos/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, dill
-, fetchFromGitHub
-, multiprocess
-, pox
-, ppft
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dill,
+  fetchFromGitHub,
+  multiprocess,
+  pox,
+  ppft,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
   # Require network
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pathos"
-  ];
+  pythonImportsCheck = [ "pathos" ];
 
   meta = with lib; {
     description = "Parallel graph management and execution in heterogeneous computing";
diff --git a/pkgs/development/python-modules/pathspec/default.nix b/pkgs/development/python-modules/pathspec/default.nix
index dc3c854cfe72d..4804cfa1c7aa7 100644
--- a/pkgs/development/python-modules/pathspec/default.nix
+++ b/pkgs/development/python-modules/pathspec/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, flit-core
-, unittestCheckHook
-
-# for passthru.tests
-, awsebcli
-, black
-, hatchling
-, yamllint
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  flit-core,
+  unittestCheckHook,
+
+  # for passthru.tests
+  awsebcli,
+  black,
+  hatchling,
+  yamllint,
 }:
 
 buildPythonPackage rec {
@@ -22,20 +23,19 @@ buildPythonPackage rec {
     hash = "sha256-pILVFQOhqzOxxnpsOBOiaVPb3HHDHayu+ag4xOKfVxI=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  pythonImportsCheck = [
-    "pathspec"
-  ];
+  pythonImportsCheck = [ "pathspec" ];
 
-  checkInputs = [
-    unittestCheckHook
-  ];
+  checkInputs = [ unittestCheckHook ];
 
   passthru.tests = {
-    inherit awsebcli black hatchling yamllint;
+    inherit
+      awsebcli
+      black
+      hatchling
+      yamllint
+      ;
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/pathtools/default.nix b/pkgs/development/python-modules/pathtools/default.nix
index 453dc9df36ef8..a3c42d4738fc1 100644
--- a/pkgs/development/python-modules/pathtools/default.nix
+++ b/pkgs/development/python-modules/pathtools/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -23,5 +24,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ goibhniu ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pathvalidate/default.nix b/pkgs/development/python-modules/pathvalidate/default.nix
index c3098c24b56d1..773f9372edbc2 100644
--- a/pkgs/development/python-modules/pathvalidate/default.nix
+++ b/pkgs/development/python-modules/pathvalidate/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-XoN4z2cSv/Z/vnqDB9mfqMGgyyiqR3BW+Pw3Tw3/JK0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Requires `pytest-md-report`, causing infinite recursion.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pathvalidate"
-  ];
+  pythonImportsCheck = [ "pathvalidate" ];
 
   meta = with lib; {
     description = "Library to sanitize/validate a string such as filenames/file-paths/etc";
diff --git a/pkgs/development/python-modules/pathy/default.nix b/pkgs/development/python-modules/pathy/default.nix
index 559a3d71ecfc0..3e384c62a98a3 100644
--- a/pkgs/development/python-modules/pathy/default.nix
+++ b/pkgs/development/python-modules/pathy/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mock
-, pathlib-abc
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
-, smart-open
-, typer
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  pathlib-abc,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  smart-open,
+  typer,
 }:
 
 buildPythonPackage rec {
@@ -23,17 +23,10 @@ buildPythonPackage rec {
     hash = "sha256-uz0OawuL92709jxxkeluCvLtZcj9tfoXSI+ch55jcG0=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
-  pythonRelaxDeps = [
-    "smart-open"
-  ];
+  pythonRelaxDeps = [ "smart-open" ];
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     pathlib-abc
@@ -53,12 +46,10 @@ buildPythonPackage rec {
     "pathy/_tests/test_s3.py"
   ];
 
-  pythonImportsCheck = [
-    "pathy"
-  ];
+  pythonImportsCheck = [ "pathy" ];
 
   meta = with lib; {
-    description = "A Path interface for local and cloud bucket storage";
+    description = "Path interface for local and cloud bucket storage";
     mainProgram = "pathy";
     homepage = "https://github.com/justindujardin/pathy";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/patiencediff/default.nix b/pkgs/development/python-modules/patiencediff/default.nix
index d75854a5cfebf..075259be8124f 100644
--- a/pkgs/development/python-modules/patiencediff/default.nix
+++ b/pkgs/development/python-modules/patiencediff/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "patiencediff";
-  version = "0.2.14";
+  version = "0.2.15";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -17,20 +18,14 @@ buildPythonPackage rec {
     owner = "breezy-team";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-KTOESjaj8fMxJZ7URqg6UMpiQppqZAlk4IPWEw4/Nvw=";
+    hash = "sha256-SFu1oN1yE9tKeBgWhgWjDpR31AptGrls0D5kKQed+HI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "patiencediff"
-  ];
+  pythonImportsCheck = [ "patiencediff" ];
 
   meta = with lib; {
     description = "C implementation of patiencediff algorithm for Python";
diff --git a/pkgs/development/python-modules/patool/default.nix b/pkgs/development/python-modules/patool/default.nix
index a81b253718702..feaef66da2b76 100644
--- a/pkgs/development/python-modules/patool/default.nix
+++ b/pkgs/development/python-modules/patool/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, p7zip
-, cabextract
-, zip
-, lzip
-, zpaq
-, gnutar
-, unar  # Free alternative to unrar
-, gnugrep
-, diffutils
-, file
-, gzip
-, bzip2
-, xz
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  p7zip,
+  cabextract,
+  zip,
+  lzip,
+  zpaq,
+  gnutar,
+  unar, # Free alternative to unrar
+  gnugrep,
+  diffutils,
+  file,
+  gzip,
+  bzip2,
+  xz,
 }:
 
 let
@@ -60,9 +61,7 @@ buildPythonPackage rec {
     "test_unzip_file"
     "test_zip"
     "test_zip_file"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_ar"
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ "test_ar" ];
 
   meta = with lib; {
     description = "portable archive file manager";
diff --git a/pkgs/development/python-modules/patrowl4py/default.nix b/pkgs/development/python-modules/patrowl4py/default.nix
index e756dc838019c..ada7a272918fe 100644
--- a/pkgs/development/python-modules/patrowl4py/default.nix
+++ b/pkgs/development/python-modules/patrowl4py/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, attrs
-, buildPythonPackage
-, certifi
-, chardet
-, fetchFromGitHub
-, idna
-, iniconfig
-, more-itertools
-, packaging
-, pluggy
-, py
-, pyparsing
-, python-slugify
-, requests
-, six
-, text-unidecode
-, toml
-, urllib3
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  certifi,
+  chardet,
+  fetchFromGitHub,
+  idna,
+  iniconfig,
+  more-itertools,
+  packaging,
+  pluggy,
+  py,
+  pyparsing,
+  python-slugify,
+  requests,
+  six,
+  text-unidecode,
+  toml,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -53,9 +54,7 @@ buildPythonPackage rec {
   # Tests require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "patrowl4py"
-  ];
+  pythonImportsCheck = [ "patrowl4py" ];
 
   meta = with lib; {
     description = "Python API Client for PatrOwl";
diff --git a/pkgs/development/python-modules/patsy/default.nix b/pkgs/development/python-modules/patsy/default.nix
index 48797d05142b0..d5acbee88521b 100644
--- a/pkgs/development/python-modules/patsy/default.nix
+++ b/pkgs/development/python-modules/patsy/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, setuptools
-, six
-, numpy
-, scipy # optional, allows spline-related features (see patsy's docs)
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  setuptools,
+  six,
+  numpy,
+  scipy, # optional, allows spline-related features (see patsy's docs)
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-lcbUenIiU1+Ev/f2PXMD8uKXdHpZjbic9cZ/DAx9LNs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     six
@@ -28,19 +27,14 @@ buildPythonPackage rec {
     scipy
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "patsy"
-  ];
+  pythonImportsCheck = [ "patsy" ];
 
   meta = {
-    description = "A Python package for describing statistical models";
+    description = "Python package for describing statistical models";
     homepage = "https://github.com/pydata/patsy";
     license = lib.licenses.bsd2;
     maintainers = with lib.maintainers; [ ilya-kolpakov ];
   };
 }
-
diff --git a/pkgs/development/python-modules/paver/default.nix b/pkgs/development/python-modules/paver/default.nix
index 525d28d34232e..8eec65073f1c7 100644
--- a/pkgs/development/python-modules/paver/default.nix
+++ b/pkgs/development/python-modules/paver/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, cogapp
-, fetchPypi
-, mock
-, nose
-, pytestCheckHook
-, pythonOlder
-, six
-, virtualenv
+{
+  lib,
+  buildPythonPackage,
+  cogapp,
+  fetchPypi,
+  mock,
+  nose,
+  pytestCheckHook,
+  pythonOlder,
+  six,
+  virtualenv,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-0+ZJiIFIWrdQ7+QMUniYKpNDvGJ+E3sRrc7WJ3GTCMc=";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   checkInputs = [
     cogapp
@@ -35,9 +34,7 @@ buildPythonPackage rec {
     virtualenv
   ];
 
-  pythonImportsCheck = [
-    "paver"
-  ];
+  pythonImportsCheck = [ "paver" ];
 
   disabledTestPaths = [
     # Test depends on distutils
@@ -45,7 +42,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python-based build/distribution/deployment scripting tool";
+    description = "Python-based build/distribution/deployment scripting tool";
     mainProgram = "paver";
     homepage = "https://github.com/paver/paver";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/paypal-checkout-serversdk/default.nix b/pkgs/development/python-modules/paypal-checkout-serversdk/default.nix
index 711056008c9b5..d2792aaacd019 100644
--- a/pkgs/development/python-modules/paypal-checkout-serversdk/default.nix
+++ b/pkgs/development/python-modules/paypal-checkout-serversdk/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# propagates
-, paypalhttp
+  # propagates
+  paypalhttp,
 
-# tersts
-, pytestCheckHook
-, responses
+  # tersts
+  pytestCheckHook,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     rm -rf sample
   '';
 
-  propagatedBuildInputs = [
-    paypalhttp
-  ];
+  propagatedBuildInputs = [ paypalhttp ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/paypalhttp/default.nix b/pkgs/development/python-modules/paypalhttp/default.nix
index 25c6aa1ba878d..4a0c7115c74ec 100644
--- a/pkgs/development/python-modules/paypalhttp/default.nix
+++ b/pkgs/development/python-modules/paypalhttp/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# propagates
-, pyopenssl
-, requests
-, six
-
-# tests
-, pytestCheckHook
-, responses
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # propagates
+  pyopenssl,
+  requests,
+  six,
+
+  # tests
+  pytestCheckHook,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -24,6 +25,11 @@ buildPythonPackage rec {
     hash = "sha256-3ihcpYtpcejPkiyf4g4jveyNU6flQB2sv9EZ5Pd7tUc=";
   };
 
+  postPatch = ''
+    substituteInPlace tests/http_response_test.py \
+      --replace-fail assertEquals assertEqual
+  '';
+
   propagatedBuildInputs = [
     requests
     six
diff --git a/pkgs/development/python-modules/paypalrestsdk/default.nix b/pkgs/development/python-modules/paypalrestsdk/default.nix
index ed6e60a19044d..e665813250708 100644
--- a/pkgs/development/python-modules/paypalrestsdk/default.nix
+++ b/pkgs/development/python-modules/paypalrestsdk/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pyopenssl
-, pythonOlder
-, requests
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pyopenssl,
+  pythonOlder,
+  requests,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-2sI2SSqawSYKdgAUouVqs4sJ2BQylbXollRTWbYf7dY=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     pyopenssl
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "paypalrestsdk"
-  ];
+  pythonImportsCheck = [ "paypalrestsdk" ];
 
   meta = with lib; {
     description = "Python APIs to create, process and manage payment";
diff --git a/pkgs/development/python-modules/pbkdf2/default.nix b/pkgs/development/python-modules/pbkdf2/default.nix
index 9068b6887b47a..138a9489ac327 100644
--- a/pkgs/development/python-modules/pbkdf2/default.nix
+++ b/pkgs/development/python-modules/pbkdf2/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "pbkdf2";
diff --git a/pkgs/development/python-modules/pbr/default.nix b/pkgs/development/python-modules/pbr/default.nix
index 7889471ebf293..1c215cb307ca1 100644
--- a/pkgs/development/python-modules/pbr/default.nix
+++ b/pkgs/development/python-modules/pbr/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, callPackage
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  callPackage,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     hash = "sha256-0TdxIqWgDi+UDuSCmZUY7+FtdF1COmcMJ3c9+8PJp9k=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # check in passthru.tests.pytest to escape infinite recursion with fixtures
   doCheck = false;
diff --git a/pkgs/development/python-modules/pbr/tests.nix b/pkgs/development/python-modules/pbr/tests.nix
index 05266a0eb7dfb..70e768814db95 100644
--- a/pkgs/development/python-modules/pbr/tests.nix
+++ b/pkgs/development/python-modules/pbr/tests.nix
@@ -1,13 +1,14 @@
-{ buildPythonPackage
-, build
-, git
-, gnupg
-, pbr
-, sphinx
-, stestr
-, testresources
-, testscenarios
-, virtualenv
+{
+  buildPythonPackage,
+  build,
+  git,
+  gnupg,
+  pbr,
+  sphinx,
+  stestr,
+  testresources,
+  testscenarios,
+  virtualenv,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/pbs-installer/default.nix b/pkgs/development/python-modules/pbs-installer/default.nix
index ab892b5260e77..a905568ffc7b1 100644
--- a/pkgs/development/python-modules/pbs-installer/default.nix
+++ b/pkgs/development/python-modules/pbs-installer/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pdm-backend
-, httpx
-, zstandard
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pdm-backend,
+  httpx,
+  zstandard,
 }:
 
 buildPythonPackage rec {
   pname = "pbs-installer";
-  version = "2024.4.1";
+  version = "2024.4.24";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -17,22 +18,16 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "frostming";
     repo = "pbs-installer";
-    rev = version;
-    hash = "sha256-0LuajPD/sM0LoyRoCkGJ9medUcWNEPqvY76GgK2rIac=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-a35xQEdo7OOFlXk2vsTdVpEhqPRKFZRQzNnZw3c7ybA=";
   };
 
-  build-system = [
-    pdm-backend
-  ];
+  build-system = [ pdm-backend ];
 
   optional-dependencies = {
     all = optional-dependencies.install ++ optional-dependencies.download;
-    download = [
-      httpx
-    ];
-    install = [
-      zstandard
-    ];
+    download = [ httpx ];
+    install = [ zstandard ];
   };
 
   pythonImportsCheck = [ "pbs_installer" ];
diff --git a/pkgs/development/python-modules/pc-ble-driver-py/default.nix b/pkgs/development/python-modules/pc-ble-driver-py/default.nix
index 11b442218809d..8ba9c4b5deb19 100644
--- a/pkgs/development/python-modules/pc-ble-driver-py/default.nix
+++ b/pkgs/development/python-modules/pc-ble-driver-py/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, boost
-, buildPythonPackage
-, cmake
-, cryptography
-, fetchFromGitHub
-, git
-, pc-ble-driver
-, pythonAtLeast
-, pythonOlder
-, scikit-build
-, setuptools
-, swig
-, wrapt
+{
+  lib,
+  boost,
+  buildPythonPackage,
+  cmake,
+  cryptography,
+  fetchFromGitHub,
+  git,
+  pc-ble-driver,
+  pythonAtLeast,
+  pythonOlder,
+  scikit-build,
+  setuptools,
+  swig,
+  wrapt,
 }:
 
 buildPythonPackage rec {
@@ -51,9 +52,7 @@ buildPythonPackage rec {
   # doCheck tries to write to the global python directory to install things
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pc_ble_driver_py"
-  ];
+  pythonImportsCheck = [ "pc_ble_driver_py" ];
 
   meta = with lib; {
     description = "Bluetooth Low Energy nRF5 SoftDevice serialization";
diff --git a/pkgs/development/python-modules/pcapy-ng/default.nix b/pkgs/development/python-modules/pcapy-ng/default.nix
index da490bd304ebc..3e4ac41c1673d 100644
--- a/pkgs/development/python-modules/pcapy-ng/default.nix
+++ b/pkgs/development/python-modules/pcapy-ng/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, libpcap
-, pkgconfig
-, pytestCheckHook
-, python
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  libpcap,
+  pkgconfig,
+  pytestCheckHook,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,27 +29,19 @@ buildPythonPackage rec {
     pkgconfig
   ];
 
-  buildInputs = [
-    libpcap
-  ];
+  buildInputs = [ libpcap ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     cd tests
   '';
 
-  pythonImportsCheck = [
-    "pcapy"
-  ];
+  pythonImportsCheck = [ "pcapy" ];
 
   doCheck = pythonOlder "3.10";
 
-  pytestFlagsArray = [
-    "pcapytests.py"
-  ];
+  pytestFlagsArray = [ "pcapytests.py" ];
 
   meta = with lib; {
     description = "Module to interface with the libpcap packet capture library";
diff --git a/pkgs/development/python-modules/pcbnewtransition/default.nix b/pkgs/development/python-modules/pcbnewtransition/default.nix
index 956be1966b66f..03fc11db59252 100644
--- a/pkgs/development/python-modules/pcbnewtransition/default.nix
+++ b/pkgs/development/python-modules/pcbnewtransition/default.nix
@@ -1,9 +1,10 @@
-{ pythonOlder
-, buildPythonPackage
-, fetchPypi
-, lib
-, kicad
-, versioneer
+{
+  pythonOlder,
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  kicad,
+  versioneer,
 }:
 buildPythonPackage rec {
   pname = "pcbnewtransition";
@@ -18,23 +19,20 @@ buildPythonPackage rec {
     hash = "sha256-+mRExuDuEYxSSlrkEjSyPK+RRJZo+YJH7WnUVfjblRQ=";
   };
 
-  propagatedBuildInputs = [
-    kicad
-  ];
+  propagatedBuildInputs = [ kicad ];
 
-  nativeBuildInputs = [
-    versioneer
-  ];
+  nativeBuildInputs = [ versioneer ];
 
-  pythonImportsCheck = [
-    "pcbnewTransition"
-  ];
+  pythonImportsCheck = [ "pcbnewTransition" ];
 
   meta = with lib; {
     description = "Library that allows you to support both, KiCad 5, 6 and 7 in your plugins";
     homepage = "https://github.com/yaqwsx/pcbnewTransition";
     changelog = "https://github.com/yaqwsx/pcbnewTransition/releases/tag/v${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ jfly matusf ];
+    maintainers = with maintainers; [
+      jfly
+      matusf
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pcffont/default.nix b/pkgs/development/python-modules/pcffont/default.nix
new file mode 100644
index 0000000000000..0f5a49c0692fe
--- /dev/null
+++ b/pkgs/development/python-modules/pcffont/default.nix
@@ -0,0 +1,45 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytestCheckHook,
+  nix-update-script,
+  hatchling,
+  bdffont,
+}:
+
+buildPythonPackage rec {
+  pname = "pcffont";
+  version = "0.0.14";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchPypi {
+    pname = "pcffont";
+    inherit version;
+    hash = "sha256-S3mK4tY7zNGRX8K81QJVvaYpIaTDLx5zn4vKbhrK9VM=";
+  };
+
+  build-system = [ hatchling ];
+
+  dependencies = [ bdffont ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "pcffont" ];
+
+  passthru.updateScript = nix-update-script { };
+
+  meta = {
+    homepage = "https://github.com/TakWolf/pcffont";
+    description = "A library for manipulating Portable Compiled Format (PCF) Fonts";
+    platforms = lib.platforms.all;
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [
+      TakWolf
+      h7x4
+    ];
+  };
+}
diff --git a/pkgs/development/python-modules/pcodedmp/default.nix b/pkgs/development/python-modules/pcodedmp/default.nix
index 9c9ae3f6f7cb0..4a5a1b153f7e1 100644
--- a/pkgs/development/python-modules/pcodedmp/default.nix
+++ b/pkgs/development/python-modules/pcodedmp/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Module doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pcodedmp"
-  ];
+  pythonImportsCheck = [ "pcodedmp" ];
 
   meta = with lib; {
     description = "Python VBA p-code disassembler";
diff --git a/pkgs/development/python-modules/pcpp/default.nix b/pkgs/development/python-modules/pcpp/default.nix
index 683c113327403..a0311740164d4 100644
--- a/pkgs/development/python-modules/pcpp/default.nix
+++ b/pkgs/development/python-modules/pcpp/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,9 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/ned14/pcpp";
-    description = "A C99 preprocessor written in pure Python";
+    description = "C99 preprocessor written in pure Python";
     mainProgram = "pcpp";
     license = licenses.bsd0;
     maintainers = with maintainers; [ rakesh4g ];
- };
+  };
 }
diff --git a/pkgs/development/python-modules/pdb2pqr/default.nix b/pkgs/development/python-modules/pdb2pqr/default.nix
index dc44880b138ed..e082eab102bae 100644
--- a/pkgs/development/python-modules/pdb2pqr/default.nix
+++ b/pkgs/development/python-modules/pdb2pqr/default.nix
@@ -1,16 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pythonRelaxDepsHook
-, mmcif-pdbx
-, numpy
-, propka
-, requests
-, docutils
-, pytestCheckHook
-, pandas
-, testfixtures
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  mmcif-pdbx,
+  numpy,
+  propka,
+  requests,
+  docutils,
+  pytestCheckHook,
+  pandas,
+  testfixtures,
 }:
 
 buildPythonPackage rec {
@@ -25,13 +25,8 @@ buildPythonPackage rec {
     hash = "sha256-He301TJ1bzWub0DZ6Ro/Xc+JMtJBbyygVpWjPY6RMbA=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
-  pythonRelaxDeps = [
-    "docutils"
-  ];
+  pythonRelaxDeps = [ "docutils" ];
 
   propagatedBuildInputs = [
     mmcif-pdbx
@@ -59,9 +54,7 @@ buildPythonPackage rec {
     "test_basic"
   ];
 
-  pythonImportsCheck = [
-    "pdb2pqr"
-  ];
+  pythonImportsCheck = [ "pdb2pqr" ];
 
   meta = with lib; {
     description = "Software for determining titration states, adding missing atoms, and assigning charges/radii to biomolecules";
diff --git a/pkgs/development/python-modules/pdbfixer/default.nix b/pkgs/development/python-modules/pdbfixer/default.nix
index 9b0f0bfe86aa5..0042364a3218f 100644
--- a/pkgs/development/python-modules/pdbfixer/default.nix
+++ b/pkgs/development/python-modules/pdbfixer/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, numpy
-, openmm
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  numpy,
+  openmm,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     openmm
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export PATH=$out/bin:$PATH
diff --git a/pkgs/development/python-modules/pdf2docx/default.nix b/pkgs/development/python-modules/pdf2docx/default.nix
index 88372271aa529..af91594808b5f 100644
--- a/pkgs/development/python-modules/pdf2docx/default.nix
+++ b/pkgs/development/python-modules/pdf2docx/default.nix
@@ -1,19 +1,19 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, python
-, buildPythonPackage
-, pythonRelaxDepsHook
-, imagemagick
-, pip
-, pytestCheckHook
-, pymupdf
-, fire
-, fonttools
-, numpy
-, opencv4
-, tkinter
-, python-docx
+{
+  stdenv,
+  lib,
+  fetchFromGitHub,
+  python,
+  buildPythonPackage,
+  imagemagick,
+  pip,
+  pytestCheckHook,
+  pymupdf,
+  fire,
+  fonttools,
+  numpy,
+  opencv4,
+  tkinter,
+  python-docx,
 }:
 let
   version = "0.5.8";
@@ -32,7 +32,6 @@ buildPythonPackage {
 
   nativeBuildInputs = [
     pip
-    pythonRelaxDepsHook
     imagemagick
   ];
 
@@ -61,7 +60,10 @@ buildPythonPackage {
 
   nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [ "-v" "./test/test.py::TestConversion" ];
+  pytestFlagsArray = [
+    "-v"
+    "./test/test.py::TestConversion"
+  ];
 
   # Test fails due to "RuntimeError: cannot find builtin font with name 'Arial'":
   disabledTests = [ "test_unnamed_fonts" ];
diff --git a/pkgs/development/python-modules/pdf2image/default.nix b/pkgs/development/python-modules/pdf2image/default.nix
index 009dad8b08195..d7983145cd349 100644
--- a/pkgs/development/python-modules/pdf2image/default.nix
+++ b/pkgs/development/python-modules/pdf2image/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pillow
-, poppler_utils
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pillow,
+  poppler_utils,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     sed -i '0,/poppler_path=None/s||poppler_path="${poppler_utils}/bin"|' pdf2image/pdf2image.py
   '';
 
-  propagatedBuildInputs = [
-    pillow
-  ];
+  propagatedBuildInputs = [ pillow ];
 
-  pythonImportsCheck = [
-    "pdf2image"
-  ];
+  pythonImportsCheck = [ "pdf2image" ];
 
   meta = with lib; {
     description = "Module that wraps the pdftoppm utility to convert PDF to PIL Image object";
diff --git a/pkgs/development/python-modules/pdfkit/default.nix b/pkgs/development/python-modules/pdfkit/default.nix
index e055ed9718420..2ed46f02c65d4 100644
--- a/pkgs/development/python-modules/pdfkit/default.nix
+++ b/pkgs/development/python-modules/pdfkit/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -21,5 +22,4 @@ buildPythonPackage rec {
     description = "Wkhtmltopdf python wrapper to convert html to pdf using the webkit rendering engine and qt";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/pdfminer-six/default.nix b/pkgs/development/python-modules/pdfminer-six/default.nix
index f203850469cf2..d07e11c8fcbfd 100644
--- a/pkgs/development/python-modules/pdfminer-six/default.nix
+++ b/pkgs/development/python-modules/pdfminer-six/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, importlib-metadata
-, isPy3k
-, cryptography
-, charset-normalizer
-, pythonOlder
-, typing-extensions
-, pytestCheckHook
-, setuptools
-, substituteAll
-, ocrmypdf
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  importlib-metadata,
+  isPy3k,
+  cryptography,
+  charset-normalizer,
+  pythonOlder,
+  typing-extensions,
+  pytestCheckHook,
+  setuptools,
+  substituteAll,
+  ocrmypdf,
 }:
 
 buildPythonPackage rec {
@@ -34,17 +35,17 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    charset-normalizer
-    cryptography
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-    typing-extensions
-  ];
+  propagatedBuildInputs =
+    [
+      charset-normalizer
+      cryptography
+    ]
+    ++ lib.optionals (pythonOlder "3.8") [
+      importlib-metadata
+      typing-extensions
+    ];
 
   postInstall = ''
     for file in $out/bin/*.py; do
@@ -57,9 +58,7 @@ buildPythonPackage rec {
     "pdfminer.high_level"
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   passthru = {
     tests = {
diff --git a/pkgs/development/python-modules/pdfplumber/default.nix b/pkgs/development/python-modules/pdfplumber/default.nix
index 80e937d4c48cc..b42070e321707 100644
--- a/pkgs/development/python-modules/pdfplumber/default.nix
+++ b/pkgs/development/python-modules/pdfplumber/default.nix
@@ -1,22 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, jupyterlab
-, nbexec
-, pandas
-, pandas-stubs
-, pdfminer-six
-, pillow
-, pytest-parallel
-, pytestCheckHook
-, pythonOlder
-, types-pillow
-, wand
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ghostscript,
+  jupyterlab,
+  nbexec,
+  pandas,
+  pandas-stubs,
+  pdfminer-six,
+  pillow,
+  pytest-parallel,
+  pytestCheckHook,
+  pythonOlder,
+  types-pillow,
+  wand,
 }:
 
 buildPythonPackage rec {
   pname = "pdfplumber";
-  version = "0.11.0";
+  version = "0.11.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -25,7 +27,7 @@ buildPythonPackage rec {
     owner = "jsvine";
     repo = "pdfplumber";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sjiCxE2WcvBASANCeookNn1n9M+mY0/8QGOCen+pzqM=";
+    hash = "sha256-5A1hjmC6GCS0Uqq5AiCEGqDTwASbJBX0pJGNNyvP3+4=";
   };
 
   postPatch = ''
@@ -44,6 +46,7 @@ buildPythonPackage rec {
   '';
 
   nativeCheckInputs = [
+    ghostscript
     jupyterlab
     nbexec
     pandas
@@ -53,9 +56,7 @@ buildPythonPackage rec {
     types-pillow
   ];
 
-  pythonImportsCheck = [
-    "pdfplumber"
-  ];
+  pythonImportsCheck = [ "pdfplumber" ];
 
   disabledTests = [
     # flaky
@@ -65,8 +66,8 @@ buildPythonPackage rec {
   disabledTestPaths = [
     # Tests requires pypdfium2
     "tests/test_display.py"
-    # Tests require Ghostscript
-    "tests/test_repair.py"
+    # Tests requires pypdfium2
+    "tests/test_issues.py"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pdfrw/default.nix b/pkgs/development/python-modules/pdfrw/default.nix
index 8eccbfbb7f1f7..d5c889185d0fe 100644
--- a/pkgs/development/python-modules/pdfrw/default.nix
+++ b/pkgs/development/python-modules/pdfrw/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "pdfrw";
@@ -14,9 +18,9 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "pdfrw is a pure Python library that reads and writes PDFs.";
+    description = "pdfrw is a pure Python library that reads and writes PDFs";
     homepage = "https://github.com/pmaupin/pdfrw";
     maintainers = with maintainers; [ teto ];
-    license =  licenses.mit;
+    license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/pdfrw2/default.nix b/pkgs/development/python-modules/pdfrw2/default.nix
index 6ed93640af7e6..34381e4eb8cc1 100644
--- a/pkgs/development/python-modules/pdfrw2/default.nix
+++ b/pkgs/development/python-modules/pdfrw2/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pillow
-, pycryptodome
-, reportlab
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pillow,
+  pycryptodome,
+  reportlab,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-5qnMq4Pnaaeov+Lb3fD0ndfr5SAy6SlXTwG7v6IZce0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pillow
diff --git a/pkgs/development/python-modules/pdftotext/default.nix b/pkgs/development/python-modules/pdftotext/default.nix
index 9d3971ce323df..f16fd012e72c4 100644
--- a/pkgs/development/python-modules/pdftotext/default.nix
+++ b/pkgs/development/python-modules/pdftotext/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, poppler }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poppler,
+}:
 
 buildPythonPackage rec {
   pname = "pdftotext";
diff --git a/pkgs/development/python-modules/pdfx/default.nix b/pkgs/development/python-modules/pdfx/default.nix
index ba9a0f79bf2aa..6bdd81de8bbca 100644
--- a/pkgs/development/python-modules/pdfx/default.nix
+++ b/pkgs/development/python-modules/pdfx/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pdfminer-six, chardet, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pdfminer-six,
+  chardet,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "pdfx";
@@ -18,7 +25,10 @@ buildPythonPackage rec {
       --replace "pdfminer.six==20201018" "pdfminer.six"
   '';
 
-  propagatedBuildInputs = [ pdfminer-six chardet ];
+  propagatedBuildInputs = [
+    pdfminer-six
+    chardet
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/pdm-backend/default.nix b/pkgs/development/python-modules/pdm-backend/default.nix
index 8c199ffd8e8b5..889c36936afc3 100644
--- a/pkgs/development/python-modules/pdm-backend/default.nix
+++ b/pkgs/development/python-modules/pdm-backend/default.nix
@@ -1,49 +1,52 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-
-# propagates
-, importlib-metadata
-
-# tests
-, editables
-, git
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+
+  # propagates
+  importlib-metadata,
+
+  # tests
+  editables,
+  git,
+  mercurial,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pdm-backend";
-  version = "2.2.1";
+  version = "2.3.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pdm-project";
     repo = "pdm-backend";
     rev = "refs/tags/${version}";
-    hash = "sha256-WvRpZD486yGP9qqxZyiErfEuIyrULDbzKAoFwroV1KE=";
+    hash = "sha256-I1bAjryLDXzlstIHK4cD6/HPJBGGskRUVp7B2PDwXhc=";
   };
 
   env.PDM_BUILD_SCM_VERSION = version;
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
+  dependencies = lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
-  pythonImportsCheck = [
-    "pdm.backend"
-  ];
+  pythonImportsCheck = [ "pdm.backend" ];
 
   nativeCheckInputs = [
     editables
     git
+    mercurial
     pytestCheckHook
     setuptools
   ];
 
   preCheck = ''
     unset PDM_BUILD_SCM_VERSION
+
+    # tests require a configured git identity
+    export HOME=$TMPDIR
+    git config --global user.email nixbld@localhost
   '';
 
   setupHook = ./setup-hook.sh;
@@ -51,7 +54,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/pdm-project/pdm-backend";
     changelog = "https://github.com/pdm-project/pdm-backend/releases/tag/${version}";
-    description = "Yet another PEP 517 backend.";
+    description = "Yet another PEP 517 backend";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
   };
diff --git a/pkgs/development/python-modules/pdm-pep517/default.nix b/pkgs/development/python-modules/pdm-pep517/default.nix
index be5573a0055cd..0e08e9bd8a830 100644
--- a/pkgs/development/python-modules/pdm-pep517/default.nix
+++ b/pkgs/development/python-modules/pdm-pep517/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, git
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  git,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -32,7 +33,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/pdm-project/pdm-pep517";
-    description = "Yet another PEP 517 backend.";
+    description = "Yet another PEP 517 backend";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
   };
diff --git a/pkgs/development/python-modules/pdoc-pyo3-sample-library/default.nix b/pkgs/development/python-modules/pdoc-pyo3-sample-library/default.nix
index 37fd1d1378dc0..cf53273f73bbd 100644
--- a/pkgs/development/python-modules/pdoc-pyo3-sample-library/default.nix
+++ b/pkgs/development/python-modules/pdoc-pyo3-sample-library/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, rustPlatform
-, cargo
-, rustc
-, libiconv
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  rustPlatform,
+  cargo,
+  rustc,
+  libiconv,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     rustc
   ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
-    libiconv
-  ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   pythonImportsCheck = [ "pdoc_pyo3_sample_library" ];
 
@@ -41,7 +40,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "A sample PyO3 library used in pdoc tests";
+    description = "Sample PyO3 library used in pdoc tests";
     homepage = "https://github.com/mitmproxy/pdoc-pyo3-sample-library";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.pbsds ];
diff --git a/pkgs/development/python-modules/pdoc/default.nix b/pkgs/development/python-modules/pdoc/default.nix
index c6ebbc72f5ce1..43ef11bebd580 100644
--- a/pkgs/development/python-modules/pdoc/default.nix
+++ b/pkgs/development/python-modules/pdoc/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, jinja2
-, pdoc-pyo3-sample-library
-, pygments
-, markupsafe
-, astunparse
-, pytestCheckHook
-, hypothesis
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  jinja2,
+  pdoc-pyo3-sample-library,
+  pygments,
+  markupsafe,
+  astunparse,
+  pytestCheckHook,
+  hypothesis,
 }:
 
 buildPythonPackage rec {
   pname = "pdoc";
-  version = "14.4.0";
+  version = "14.5.0";
   disabled = pythonOlder "3.8";
 
   pyproject = true;
@@ -23,12 +24,10 @@ buildPythonPackage rec {
     owner = "mitmproxy";
     repo = "pdoc";
     rev = "v${version}";
-    hash = "sha256-2k9uIK6TvoGtVqnh97g9f5QvjhyZlznRvYdw5sPaeVE=";
+    hash = "sha256-lie+lPUVWVgbSGC09gMmy4Z2BdC2CHFYQ60isExvhSk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   dependencies = [
     jinja2
diff --git a/pkgs/development/python-modules/pdoc3/default.nix b/pkgs/development/python-modules/pdoc3/default.nix
index 72e2046105a97..03fb3fd84c2f2 100644
--- a/pkgs/development/python-modules/pdoc3/default.nix
+++ b/pkgs/development/python-modules/pdoc3/default.nix
@@ -1,13 +1,14 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, pythonOlder
-, mako
-, markdown
-, setuptools-git
-, setuptools-scm
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  pythonOlder,
+  mako,
+  markdown,
+  setuptools-git,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -33,7 +34,7 @@ buildPythonPackage rec {
       name = "fix-test-for-python310.patch";
       url = "https://github.com/pdoc3/pdoc/commit/80af5d40d3ca39e2701c44941c1003ae6a280799.patch";
       hash = "sha256-69Cn+BY7feisSHugONIF/PRgEDEfnvnS/RBHWv1P8/w=";
-      excludes = [".github/workflows/ci.yml"];
+      excludes = [ ".github/workflows/ci.yml" ];
     })
   ];
 
@@ -48,7 +49,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Auto-generate API documentation for Python projects.";
+    description = "Auto-generate API documentation for Python projects";
     homepage = "https://pdoc3.github.io/pdoc/";
     license = with licenses; [ agpl3Plus ];
     maintainers = with maintainers; [ catern ];
diff --git a/pkgs/development/python-modules/pdunehd/default.nix b/pkgs/development/python-modules/pdunehd/default.nix
index 6d9248b2db101..009c811601cb5 100644
--- a/pkgs/development/python-modules/pdunehd/default.nix
+++ b/pkgs/development/python-modules/pdunehd/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, requests
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     sha256 = "sha256-8CL7ZQ+tV0CKdqWWiPDbo6Q5d1iIj/vNbYshdjUpYSw=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # no tests implemented
   doCheck = false;
diff --git a/pkgs/development/python-modules/peaqevcore/default.nix b/pkgs/development/python-modules/peaqevcore/default.nix
index cbc81c1a03403..3f23d3aaffa52 100644
--- a/pkgs/development/python-modules/peaqevcore/default.nix
+++ b/pkgs/development/python-modules/peaqevcore/default.nix
@@ -8,14 +8,14 @@
 
 buildPythonPackage rec {
   pname = "peaqevcore";
-  version = "19.9.2";
+  version = "19.10.24";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-X5JKfIE6rISXb3F2liuyLrVHm5xw3DoFeMhqhEsdEIY=";
+    hash = "sha256-jpJVYANreHUW6vclkdNdnaFb/QxFfJf0nuTBl3K3qBY=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pebble/default.nix b/pkgs/development/python-modules/pebble/default.nix
index b576c7d4c1fcd..827e45f12590a 100644
--- a/pkgs/development/python-modules/pebble/default.nix
+++ b/pkgs/development/python-modules/pebble/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,15 +20,11 @@ buildPythonPackage rec {
     hash = "sha256-J4TBR3ZvBjiM6nhAhLFL7JP9uqeTgw8ZgxVaozCipuQ=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   doCheck = !stdenv.isDarwin;
 
-  pythonImportsCheck = [
-    "pebble"
-  ];
+  pythonImportsCheck = [ "pebble" ];
 
   meta = with lib; {
     description = "API to manage threads and processes within an application";
diff --git a/pkgs/development/python-modules/pecan/default.nix b/pkgs/development/python-modules/pecan/default.nix
index 1de099579de39..24b9cddf97b4b 100644
--- a/pkgs/development/python-modules/pecan/default.nix
+++ b/pkgs/development/python-modules/pecan/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, logutils
-, mako
-, webob
-, webtest
-, pythonOlder
-, pytestCheckHook
-, genshi
-, gunicorn
-, jinja2
-, sqlalchemy
-, virtualenv
-, setuptools
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  logutils,
+  mako,
+  webob,
+  webtest,
+  pythonOlder,
+  pytestCheckHook,
+  genshi,
+  gunicorn,
+  jinja2,
+  sqlalchemy,
+  virtualenv,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -44,13 +45,9 @@ buildPythonPackage rec {
     webtest
   ];
 
-  pytestFlagsArray = [
-    "--pyargs pecan"
-  ];
+  pytestFlagsArray = [ "--pyargs pecan" ];
 
-  pythonImportsCheck = [
-    "pecan"
-  ];
+  pythonImportsCheck = [ "pecan" ];
 
   meta = with lib; {
     changelog = "https://pecan.readthedocs.io/en/latest/changes.html";
diff --git a/pkgs/development/python-modules/peco/default.nix b/pkgs/development/python-modules/peco/default.nix
index 961b0c623d92b..22f5d29faf8e9 100644
--- a/pkgs/development/python-modules/peco/default.nix
+++ b/pkgs/development/python-modules/peco/default.nix
@@ -1,29 +1,28 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, pydantic
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  pydantic,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "peco";
-  version = "0.0.29";
-  format = "pyproject";
+  version = "0.1.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zL0tBTwm+l5eyxlWr2xoE+nLpMfUKri1/yD+WgTUqHQ=";
+    hash = "sha256-p9Uxckc88HbUUtpg3fHGwYojU57mCuRzh3M1RAjKLX0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     pydantic
   ];
@@ -31,13 +30,12 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "peco"
-  ];
+  pythonImportsCheck = [ "peco" ];
 
   meta = with lib; {
     description = "Library for interacting with the PECO outage map";
     homepage = "https://github.com/IceBotYT/peco-outage-api";
+    changelog = "https://github.com/IceBotYT/peco-outage-api/releases/tag/${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/peewee-migrate/default.nix b/pkgs/development/python-modules/peewee-migrate/default.nix
index dc7cefd00c0d3..ba31350184f27 100644
--- a/pkgs/development/python-modules/peewee-migrate/default.nix
+++ b/pkgs/development/python-modules/peewee-migrate/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-
-# build-system
-, poetry-core
-
-# runtime
-, click
-, peewee
-
-# tests
-, psycopg2
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # build-system
+  poetry-core,
+
+  # runtime
+  click,
+  peewee,
+
+  # tests
+  psycopg2,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -33,18 +34,14 @@ buildPythonPackage rec {
     sed -i '/addopts/d' pyproject.toml
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     peewee
     click
   ];
 
-  pythonImportsCheck = [
-    "peewee_migrate"
-  ];
+  pythonImportsCheck = [ "peewee_migrate" ];
 
   nativeCheckInputs = [
     psycopg2
diff --git a/pkgs/development/python-modules/peewee/default.nix b/pkgs/development/python-modules/peewee/default.nix
index d839ad705ea77..93b27731359c7 100644
--- a/pkgs/development/python-modules/peewee/default.nix
+++ b/pkgs/development/python-modules/peewee/default.nix
@@ -1,32 +1,36 @@
-{ lib
-, apsw
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, flask
-, python
-, sqlite
-, withMysql ? false
-, mysql-connector
-, withPostgres ? false
-, psycopg2
-, pythonOlder
+{
+  lib,
+  apsw,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  flask,
+  python,
+  sqlite,
+  withMysql ? false,
+  mysql-connector,
+  withPostgres ? false,
+  psycopg2,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "peewee";
-  version = "3.17.1";
-  format = "setuptools";
+  version = "3.17.5";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "coleifer";
-    repo = pname;
+    repo = "peewee";
     rev = "refs/tags/${version}";
-    hash = "sha256-Gob2qBPPxAeIO/I7+9r4dBIxhvKnnZWD2nYcrMANM8U=";
+    hash = "sha256-2SrqWPyeDBKOweLu7bEcDIAqCCtnKv0VBdzfpaA22ow=";
   };
 
+  build-system = [ setuptools ];
+
   buildInputs = [
     sqlite
     cython
@@ -34,15 +38,9 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     apsw
-  ] ++ lib.optionals withPostgres [
-    psycopg2
-  ] ++ lib.optionals withMysql [
-    mysql-connector
-  ];
+  ] ++ lib.optionals withPostgres [ psycopg2 ] ++ lib.optionals withMysql [ mysql-connector ];
 
-  nativeCheckInputs = [
-    flask
-  ];
+  nativeCheckInputs = [ flask ];
 
   doCheck = withPostgres;
 
@@ -51,15 +49,14 @@ buildPythonPackage rec {
     ${python.interpreter} runtests.py
   '';
 
-  pythonImportsCheck = [
-    "peewee"
-  ];
+  pythonImportsCheck = [ "peewee" ];
 
   meta = with lib; {
     description = "Python ORM with support for various database implementation";
-    mainProgram = "pwiz.py";
     homepage = "http://peewee-orm.com";
+    changelog = "https://github.com/coleifer/peewee/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "pwiz.py";
   };
 }
diff --git a/pkgs/development/python-modules/pefile/default.nix b/pkgs/development/python-modules/pefile/default.nix
index 55bd8c0cc07d3..c5eadd8e5cd16 100644
--- a/pkgs/development/python-modules/pefile/default.nix
+++ b/pkgs/development/python-modules/pefile/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, future
-, fetchFromGitHub
-, setuptools-scm
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  future,
+  fetchPypi,
+  setuptools-scm,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -13,27 +14,20 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.6";
 
-  src = fetchFromGitHub {
-    owner = "erocarrera";
-    repo = pname;
-    rev = "refs/tags/v${version}";
-    hash = "sha256-lD8GpNl+cVNYTZUKFRF1/2kDwEbn/ekRBNBTYuFmFW0=";
+  # DON'T fetch from github, the repo is >60 MB due to test artifacts, which we cannot use
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-guYRQASz1pEcd8OVPjg4ZUsEURuLZuhYPbcMZZmAF9w=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    future
-  ];
+  propagatedBuildInputs = [ future ];
 
-  # Test data encrypted
+  # Test data contains properitary executables and malware, and is therefore encrypted
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pefile"
-  ];
+  pythonImportsCheck = [ "pefile" ];
 
   meta = with lib; {
     description = "Multi-platform Python module to parse and work with Portable Executable (aka PE) files";
diff --git a/pkgs/development/python-modules/peft/default.nix b/pkgs/development/python-modules/peft/default.nix
index 3b65f6c68e926..76eaac3b2df22 100644
--- a/pkgs/development/python-modules/peft/default.nix
+++ b/pkgs/development/python-modules/peft/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, numpy
-, packaging
-, psutil
-, pyyaml
-, torch
-, transformers
-, accelerate
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  numpy,
+  packaging,
+  psutil,
+  pyyaml,
+  torch,
+  transformers,
+  accelerate,
 }:
 
 buildPythonPackage rec {
   pname = "peft";
-  version = "0.10.0";
+  version = "0.11.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -23,7 +24,7 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-Aln5WyDgNnxOUwyhOz9NGsnV1zXt/Rs57ULxR5ZJXNM=";
+    hash = "sha256-FV/S/N9wA+rUos/uQIzvPWmWCIFi8wi2Tt6jMzvYfYQ=";
   };
 
   nativeBuildInputs = [ setuptools ];
@@ -38,10 +39,8 @@ buildPythonPackage rec {
     accelerate
   ];
 
-  doCheck = false;  # tries to download pretrained models
-  pythonImportsCheck = [
-    "peft"
-  ];
+  doCheck = false; # tries to download pretrained models
+  pythonImportsCheck = [ "peft" ];
 
   meta = with lib; {
     homepage = "https://github.com/huggingface/peft";
diff --git a/pkgs/development/python-modules/pegen/default.nix b/pkgs/development/python-modules/pegen/default.nix
index 4f348a2f00976..55628d53983d4 100644
--- a/pkgs/development/python-modules/pegen/default.nix
+++ b/pkgs/development/python-modules/pegen/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -27,21 +28,19 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pegen"
-  ];
+  pythonImportsCheck = [ "pegen" ];
 
-  disabledTests = [
-    # ValueError: Expected locations of (1, 3) and...
-    "test_invalid_call_arguments"
-  ] ++ lib.optionals (pythonAtLeast "3.11") [
-    # https://github.com/we-like-parsers/pegen/issues/89
-    "test_invalid_def_stmt"
-  ];
+  disabledTests =
+    [
+      # ValueError: Expected locations of (1, 3) and...
+      "test_invalid_call_arguments"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.11") [
+      # https://github.com/we-like-parsers/pegen/issues/89
+      "test_invalid_def_stmt"
+    ];
 
   meta = with lib; {
     description = "Library to generate PEG parsers";
diff --git a/pkgs/development/python-modules/pelican/default.nix b/pkgs/development/python-modules/pelican/default.nix
index 23e0ae1aff943..9f77c7546ac13 100644
--- a/pkgs/development/python-modules/pelican/default.nix
+++ b/pkgs/development/python-modules/pelican/default.nix
@@ -1,37 +1,37 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pythonRelaxDepsHook
-
-# build-system
-, pdm-backend
-
-# native dependencies
-, glibcLocales
-, git
-, pandoc
-, typogrify
-
-# dependencies
-, backports-zoneinfo
-, blinker
-, docutils
-, feedgenerator
-, jinja2
-, markdown
-, ordered-set
-, pygments
-, python-dateutil
-, rich
-, tzdata
-, unidecode
-, watchfiles
-
-# tests
-, mock
-, pytestCheckHook
-, pytest-xdist
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # build-system
+  pdm-backend,
+
+  # native dependencies
+  glibcLocales,
+  git,
+  pandoc,
+  typogrify,
+
+  # dependencies
+  backports-zoneinfo,
+  blinker,
+  docutils,
+  feedgenerator,
+  jinja2,
+  markdown,
+  ordered-set,
+  pygments,
+  python-dateutil,
+  rich,
+  tzdata,
+  unidecode,
+  watchfiles,
+
+  # tests
+  mock,
+  pytestCheckHook,
+  pytest-xdist,
 }:
 
 buildPythonPackage rec {
@@ -60,12 +60,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     pdm-backend
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "unidecode"
-  ];
+  pythonRelaxDeps = [ "unidecode" ];
 
   buildInputs = [
     glibcLocales
@@ -87,9 +84,7 @@ buildPythonPackage rec {
     tzdata
     unidecode
     watchfiles
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    backports-zoneinfo
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ backports-zoneinfo ];
 
   nativeCheckInputs = [
     mock
@@ -108,6 +103,7 @@ buildPythonPackage rec {
     "test_basic_generation_works"
     "test_custom_generation_works"
     "test_custom_locale_generation_works"
+    "test_deprecated_attribute"
   ];
 
   env.LC_ALL = "en_US.UTF-8";
@@ -127,6 +123,9 @@ buildPythonPackage rec {
     description = "Static site generator that requires no database or server-side logic";
     homepage = "https://getpelican.com/";
     license = licenses.agpl3Only;
-    maintainers = with maintainers; [ offline prikhi ];
+    maintainers = with maintainers; [
+      offline
+      prikhi
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pem/default.nix b/pkgs/development/python-modules/pem/default.nix
index 84500acaccb0f..cc2572c8ebc58 100644
--- a/pkgs/development/python-modules/pem/default.nix
+++ b/pkgs/development/python-modules/pem/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, certifi
-, cryptography
-, fetchFromGitHub
-, hatch-fancy-pypi-readme
-, hatch-vcs
-, hatchling
-, pretend
-, pyopenssl
-, pytestCheckHook
-, pythonOlder
-, twisted
+{
+  lib,
+  buildPythonPackage,
+  certifi,
+  cryptography,
+  fetchFromGitHub,
+  hatch-fancy-pypi-readme,
+  hatch-vcs,
+  hatchling,
+  pretend,
+  pyopenssl,
+  pytestCheckHook,
+  pythonOlder,
+  twisted,
 }:
 
 buildPythonPackage rec {
@@ -42,9 +43,7 @@ buildPythonPackage rec {
     twisted
   ] ++ twisted.optional-dependencies.tls;
 
-  pythonImportsCheck = [
-    "pem"
-  ];
+  pythonImportsCheck = [ "pem" ];
 
   meta = with lib; {
     description = "Easy PEM file parsing in Python";
diff --git a/pkgs/development/python-modules/pencompy/default.nix b/pkgs/development/python-modules/pencompy/default.nix
index b2648e36e5a12..3bf69fa1192dd 100644
--- a/pkgs/development/python-modules/pencompy/default.nix
+++ b/pkgs/development/python-modules/pencompy/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pencompy"
-  ];
+  pythonImportsCheck = [ "pencompy" ];
 
   meta = with lib; {
     description = "Library for interacting with Pencom relay boards";
diff --git a/pkgs/development/python-modules/pendulum/default.nix b/pkgs/development/python-modules/pendulum/default.nix
index 78e9c675ea8db..fb412e99c0d5c 100644
--- a/pkgs/development/python-modules/pendulum/default.nix
+++ b/pkgs/development/python-modules/pendulum/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, isPyPy
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  isPyPy,
 
-# build-system
-, poetry-core
-, rustPlatform
+  # build-system
+  poetry-core,
+  rustPlatform,
 
-# native dependencies
-, iconv
+  # native dependencies
+  iconv,
 
-# dependencies
-, backports-zoneinfo
-, importlib-resources
-, python-dateutil
-, time-machine
-, tzdata
+  # dependencies
+  backports-zoneinfo,
+  importlib-resources,
+  python-dateutil,
+  time-machine,
+  tzdata,
 
-# tests
-, pytestCheckHook
-, pytz
+  # tests
+  pytestCheckHook,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -59,35 +60,32 @@ buildPythonPackage rec {
     rustPlatform.cargoSetupHook
   ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
-    iconv
-  ];
+  buildInputs = lib.optionals stdenv.isDarwin [ iconv ];
 
-  propagatedBuildInputs = [
-    python-dateutil
-    tzdata
-  ] ++ lib.optional (!isPyPy) [
-    time-machine
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    backports-zoneinfo
-    importlib-resources
-  ];
+  propagatedBuildInputs =
+    [
+      python-dateutil
+      tzdata
+    ]
+    ++ lib.optional (!isPyPy) [ time-machine ]
+    ++ lib.optionals (pythonOlder "3.9") [
+      backports-zoneinfo
+      importlib-resources
+    ];
 
-  pythonImportsCheck = [
-    "pendulum"
-  ];
+  pythonImportsCheck = [ "pendulum" ];
 
   nativeCheckInputs = [
     pytestCheckHook
     pytz
   ];
 
-  disabledTestPaths = [
-    "tests/benchmarks"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # PermissionError: [Errno 1] Operation not permitted: '/etc/localtime'
-    "tests/testing/test_time_travel.py"
-  ];
+  disabledTestPaths =
+    [ "tests/benchmarks" ]
+    ++ lib.optionals stdenv.isDarwin [
+      # PermissionError: [Errno 1] Operation not permitted: '/etc/localtime'
+      "tests/testing/test_time_travel.py"
+    ];
 
   meta = with lib; {
     description = "Python datetimes made easy";
diff --git a/pkgs/development/python-modules/pep440/default.nix b/pkgs/development/python-modules/pep440/default.nix
index e083bb622b873..8bf685faaecc1 100644
--- a/pkgs/development/python-modules/pep440/default.nix
+++ b/pkgs/development/python-modules/pep440/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,22 +19,16 @@ buildPythonPackage rec {
     hash = "sha256-WLNyRswrE/7hyio8CSyzcE0h7PYhpb27Fo5E5pf20E0=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # Don't run CLI tests
     "tests/test_cli.py"
   ];
 
-  pythonImportsCheck = [
-    "pep440"
-  ];
+  pythonImportsCheck = [ "pep440" ];
 
   meta = with lib; {
     description = "Python module to check whether versions number match PEP 440";
diff --git a/pkgs/development/python-modules/pep517/default.nix b/pkgs/development/python-modules/pep517/default.nix
index 470c67d6ae071..db633e8d6d364 100644
--- a/pkgs/development/python-modules/pep517/default.nix
+++ b/pkgs/development/python-modules/pep517/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, tomli
-, pythonOlder
-, importlib-metadata
-, zipp
-, pytestCheckHook
-, setuptools
-, testpath
-, mock
-, pip
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  tomli,
+  pythonOlder,
+  importlib-metadata,
+  zipp,
+  pytestCheckHook,
+  setuptools,
+  testpath,
+  mock,
+  pip,
 }:
 
 buildPythonPackage rec {
@@ -23,15 +24,14 @@ buildPythonPackage rec {
     hash = "sha256-Gy+i/9OTi7S+/+XWFGy8sr2plqWk2p8xq//Ysk4Hsxc=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    tomli
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata zipp
-  ];
+  propagatedBuildInputs =
+    [ tomli ]
+    ++ lib.optionals (pythonOlder "3.8") [
+      importlib-metadata
+      zipp
+    ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/pep8-naming/default.nix b/pkgs/development/python-modules/pep8-naming/default.nix
index 5fd696523d845..9ab07cfd76783 100644
--- a/pkgs/development/python-modules/pep8-naming/default.nix
+++ b/pkgs/development/python-modules/pep8-naming/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flake8
-, python
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flake8,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "pep8-naming";
-  version = "0.13.3";
+  version = "0.14.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,13 +17,11 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "PyCQA";
     repo = pname;
-    rev = version;
-    hash = "sha256-l7zZUOMWyTxnTbkFkzfABY/eVMKnv0kNJ0UPzJo0W1Y=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-uIVk8+5rVEIBZLz70WUi0O6/Q9ERptJ3b7314gLPeHk=";
   };
 
-  propagatedBuildInputs = [
-    flake8
-  ];
+  propagatedBuildInputs = [ flake8 ];
 
   checkPhase = ''
     runHook preCheck
@@ -30,9 +29,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "pep8ext_naming"
-  ];
+  pythonImportsCheck = [ "pep8ext_naming" ];
 
   meta = with lib; {
     description = "Check PEP-8 naming conventions, plugin for flake8";
diff --git a/pkgs/development/python-modules/pep8/default.nix b/pkgs/development/python-modules/pep8/default.nix
index 425ad42e787c2..01e2928707979 100644
--- a/pkgs/development/python-modules/pep8/default.nix
+++ b/pkgs/development/python-modules/pep8/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -23,5 +24,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/peppercorn/default.nix b/pkgs/development/python-modules/peppercorn/default.nix
index 086c5edcee329..1fb8d48a05e55 100644
--- a/pkgs/development/python-modules/peppercorn/default.nix
+++ b/pkgs/development/python-modules/peppercorn/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -14,10 +15,9 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A library for converting a token stream into a data structure for use in web form posts";
+    description = "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 ];
     platforms = platforms.all;
   };
-
 }
diff --git a/pkgs/development/python-modules/percol/default.nix b/pkgs/development/python-modules/percol/default.nix
index 2a58aa4f86788..9e0ec0df24eab 100644
--- a/pkgs/development/python-modules/percol/default.nix
+++ b/pkgs/development/python-modules/percol/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, cmigemo }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cmigemo,
+}:
 
 buildPythonPackage rec {
   pname = "percol";
diff --git a/pkgs/development/python-modules/perfplot/default.nix b/pkgs/development/python-modules/perfplot/default.nix
index 1dfc78ffca46d..b8c37ed5d6f97 100644
--- a/pkgs/development/python-modules/perfplot/default.nix
+++ b/pkgs/development/python-modules/perfplot/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, matplotlib
-, matplotx
-, numpy
-, rich
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  matplotlib,
+  matplotx,
+  numpy,
+  rich,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-bu6eYQukhLE8sLkS3PbqTgXOqJFXJYXTcXAhmjaq48g=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     matplotlib
@@ -40,13 +39,9 @@ buildPythonPackage rec {
   # Not sure of the details, but we can avoid it by changing the matplotlib backend during testing.
   env.MPLBACKEND = lib.optionalString stdenv.isDarwin "Agg";
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "perfplot"
-  ];
+  pythonImportsCheck = [ "perfplot" ];
 
   meta = with lib; {
     description = "Performance plots for Python code snippets";
diff --git a/pkgs/development/python-modules/periodictable/default.nix b/pkgs/development/python-modules/periodictable/default.nix
index 94a7120eebe48..25a575e146918 100644
--- a/pkgs/development/python-modules/periodictable/default.nix
+++ b/pkgs/development/python-modules/periodictable/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, numpy
-, pyparsing
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  numpy,
+  pyparsing,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +25,9 @@ buildPythonPackage rec {
     pyparsing
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "periodictable"
-  ];
+  pythonImportsCheck = [ "periodictable" ];
 
   meta = with lib; {
     description = "Extensible periodic table of the elements";
diff --git a/pkgs/development/python-modules/periodiq/default.nix b/pkgs/development/python-modules/periodiq/default.nix
index 2d14561d120dd..19eea2d9290ee 100644
--- a/pkgs/development/python-modules/periodiq/default.nix
+++ b/pkgs/development/python-modules/periodiq/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitLab
-, poetry-core
-, dramatiq
-, pendulum
-, setuptools
-, pytest-mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitLab,
+  poetry-core,
+  dramatiq,
+  pendulum,
+  setuptools,
+  pytest-mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
       --replace 'poetry.masonry.api' 'poetry.core.masonry.api'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     dramatiq
@@ -41,7 +40,10 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  nativeCheckInputs = [ pytestCheckHook pytest-mock ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-mock
+  ];
 
   pytestFlagsArray = [ "tests/unit" ];
 
diff --git a/pkgs/development/python-modules/permissionedforms/default.nix b/pkgs/development/python-modules/permissionedforms/default.nix
index c317826391ddb..8abf3f5abf997 100644
--- a/pkgs/development/python-modules/permissionedforms/default.nix
+++ b/pkgs/development/python-modules/permissionedforms/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, django
-, django-modelcluster
-, fetchFromGitHub
-, lib
-, python
+{
+  buildPythonPackage,
+  django,
+  django-modelcluster,
+  fetchFromGitHub,
+  lib,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "sha256-DQzPGmh5UEVpGWnW3IrEVPkZZ8mdiW9J851Ej4agTDc=";
   };
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   checkInputs = [ django-modelcluster ];
 
@@ -31,7 +30,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "permissionedforms" ];
 
   meta = with lib; {
-    description = "A Django extension for creating forms that vary according to user permissions";
+    description = "Django extension for creating forms that vary according to user permissions";
     homepage = "https://github.com/wagtail/permissionedforms";
     changelog = "https://github.com/wagtail/permissionedforms/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/persim/default.nix b/pkgs/development/python-modules/persim/default.nix
index 45114af407c40..6626c31c855b8 100644
--- a/pkgs/development/python-modules/persim/default.nix
+++ b/pkgs/development/python-modules/persim/default.nix
@@ -1,17 +1,18 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, deprecated
-, hopcroftkarp
-, joblib
-, matplotlib
-, numpy
-, scikit-learn
-, scipy
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  deprecated,
+  hopcroftkarp,
+  joblib,
+  matplotlib,
+  numpy,
+  scikit-learn,
+  scipy,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
     scipy
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     # specifically needed for darwin
@@ -47,9 +46,7 @@ buildPythonPackage rec {
     echo "backend: ps" > $HOME/.matplotlib/matplotlibrc
   '';
 
-  pythonImportsCheck = [
-    "persim"
-  ];
+  pythonImportsCheck = [ "persim" ];
 
   disabledTests = lib.optionals (pythonAtLeast "3.10") [
     # AttributeError: module 'collections' has no attribute 'Iterable'
diff --git a/pkgs/development/python-modules/persist-queue/default.nix b/pkgs/development/python-modules/persist-queue/default.nix
index 9682ac59946b1..4f37222bf4467 100644
--- a/pkgs/development/python-modules/persist-queue/default.nix
+++ b/pkgs/development/python-modules/persist-queue/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, nose2
-, msgpack
-, cbor2
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  nose2,
+  msgpack,
+  cbor2,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/persistent/default.nix b/pkgs/development/python-modules/persistent/default.nix
index 5c7f27a5be311..cffa4633a117f 100644
--- a/pkgs/development/python-modules/persistent/default.nix
+++ b/pkgs/development/python-modules/persistent/default.nix
@@ -1,38 +1,40 @@
-{ lib
-, buildPythonPackage
-, cffi
-, fetchPypi
-, zope-interface
-, sphinx
-, manuel
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+
+  # build-systems
+  setuptools,
+
+  # dependencies
+  cffi,
+  zope-deferredimport,
+  zope-interface,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "persistent";
-  version = "5.2";
-  format = "setuptools";
+  version = "6.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2+pdH/nbTkUco5vAtCqepTfmyskoKujAeA+4/64+yDQ=";
+    hash = "sha256-CDZQwP/ty4gDKJY8KUuVEaArawXkIec3p9Vfnu2I+18=";
   };
 
-  nativeBuildInputs = [
-    sphinx
-    manuel
-  ];
+  build-system = [ setuptools ];
 
   propagatedBuildInputs = [
     zope-interface
-    cffi
-  ];
+    zope-deferredimport
+  ]
+  ++ lib.optionals (!isPyPy) [ cffi ];
 
-  pythonImportsCheck = [
-    "persistent"
-  ];
+  pythonImportsCheck = [ "persistent" ];
 
   meta = with lib; {
     description = "Automatic persistence for Python objects";
diff --git a/pkgs/development/python-modules/persisting-theory/default.nix b/pkgs/development/python-modules/persisting-theory/default.nix
index 0890f86fc160c..9dca828eb3672 100644
--- a/pkgs/development/python-modules/persisting-theory/default.nix
+++ b/pkgs/development/python-modules/persisting-theory/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-D4QPoiJHvKpRQJTafzsmxgI1lCmrEtLNiL4GtJozYpA=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "persisting_theory" ];
 
diff --git a/pkgs/development/python-modules/pescea/default.nix b/pkgs/development/python-modules/pescea/default.nix
index 415fcd5a09a05..979c19319c9de 100644
--- a/pkgs/development/python-modules/pescea/default.nix
+++ b/pkgs/development/python-modules/pescea/default.nix
@@ -1,12 +1,13 @@
-{ stdenv
-, lib
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
+{
+  stdenv,
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-5TkFrGaSkQOORhf5a7SjkzggFLPyqe9k3M0B4ljhWTQ=";
   };
 
-  propagatedBuildInputs = [
-    async-timeout
-  ];
+  propagatedBuildInputs = [ async-timeout ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -47,9 +46,7 @@ buildPythonPackage rec {
     "test_flow_control"
   ];
 
-  pythonImportsCheck = [
-    "pescea"
-  ];
+  pythonImportsCheck = [ "pescea" ];
 
   meta = with lib; {
     broken = stdenv.isDarwin;
diff --git a/pkgs/development/python-modules/pettingzoo/default.nix b/pkgs/development/python-modules/pettingzoo/default.nix
new file mode 100644
index 0000000000000..1e03c7734dde4
--- /dev/null
+++ b/pkgs/development/python-modules/pettingzoo/default.nix
@@ -0,0 +1,132 @@
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  gymnasium,
+  numpy,
+  chess,
+  pillow,
+  pybox2d,
+  pygame,
+  pymunk,
+  rlcard,
+  scipy,
+  pre-commit,
+  pynput,
+  pytest,
+  pytest-cov,
+  pytest-markdown-docs,
+  pytest-xdist,
+  pytestCheckHook,
+  stdenv,
+}:
+
+buildPythonPackage rec {
+  pname = "pettingzoo";
+  version = "1.24.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "Farama-Foundation";
+    repo = "PettingZoo";
+    rev = "refs/tags/${version}";
+    hash = "sha256-TVM4MrA4W6AIWEdBIecI85ahJAAc21f27OzCxSpOoZU=";
+  };
+
+  build-system = [
+    setuptools
+    wheel
+  ];
+
+  dependencies = [
+    gymnasium
+    numpy
+  ];
+
+  passthru.optional-dependencies = {
+    all = [
+      chess
+      # multi-agent-ale-py
+      pillow
+      pybox2d
+      pygame
+      pymunk
+      rlcard
+      scipy
+      # shimmy
+    ];
+    atari = [
+      # multi-agent-ale-py
+      pygame
+    ];
+    butterfly = [
+      pygame
+      pymunk
+    ];
+    classic = [
+      chess
+      pygame
+      rlcard
+      # shimmy
+    ];
+    mpe = [ pygame ];
+    other = [ pillow ];
+    sisl = [
+      pybox2d
+      pygame
+      pymunk
+      scipy
+    ];
+    testing = [
+      # autorom
+      pre-commit
+      pynput
+      pytest
+      pytest-cov
+      pytest-markdown-docs
+      pytest-xdist
+    ];
+  };
+
+  pythonImportsCheck = [ "pettingzoo" ];
+
+  nativeCheckInputs = [
+    chess
+    pygame
+    pymunk
+    pytest-markdown-docs
+    pytest-xdist
+    pytestCheckHook
+    rlcard
+  ];
+
+  disabledTestPaths = [
+    # Require unpackaged multi_agent_ale_py
+    "test/all_parameter_combs_test.py"
+    "test/pickle_test.py"
+    "test/unwrapped_test.py"
+  ];
+
+  disabledTests =
+    [
+      # ImportError: cannot import name 'pytest_plugins' from 'pettingzoo.classic'
+      "test_chess"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # Crashes on darwin: `Fatal Python error: Aborted`
+      "test_multi_episode_parallel_env_wrapper"
+    ];
+
+  meta = with lib; {
+    description = "API standard for multi-agent reinforcement learning environments, with popular reference environments and related utilities";
+    homepage = "https://github.com/Farama-Foundation/PettingZoo";
+    changelog = "https://github.com/Farama-Foundation/PettingZoo/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/pkgs/development/python-modules/pex/default.nix b/pkgs/development/python-modules/pex/default.nix
index daabf4625ce50..24fdc105e18b0 100644
--- a/pkgs/development/python-modules/pex/default.nix
+++ b/pkgs/development/python-modules/pex/default.nix
@@ -1,38 +1,38 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatchling
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatchling,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "pex";
-  version = "2.3.1";
+  version = "2.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-0SZMkRYcIRObRUdEyAU+Jbiq0tFdqJIyGBtPOPP1RXU=";
+    hash = "sha256-WH6aklJP8Wk1XgxULedM/rIt6XWAV5ur9hOAta7TsD4=";
   };
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   # A few more dependencies I don't want to handle right now...
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pex"
-  ];
+  pythonImportsCheck = [ "pex" ];
 
   meta = with lib; {
     description = "Python library and tool for generating .pex (Python EXecutable) files";
     homepage = "https://github.com/pantsbuild/pex";
     changelog = "https://github.com/pantsbuild/pex/releases/tag/v${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [ copumpkin phaer ];
+    maintainers = with maintainers; [
+      copumpkin
+      phaer
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pexif/default.nix b/pkgs/development/python-modules/pexif/default.nix
index fb61b376021ad..9b2f9e16ead9a 100644
--- a/pkgs/development/python-modules/pexif/default.nix
+++ b/pkgs/development/python-modules/pexif/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,8 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A module for editing JPEG EXIF data";
+    description = "Module for editing JPEG EXIF data";
     homepage = "http://www.benno.id.au/code/pexif/";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/pexpect/default.nix b/pkgs/development/python-modules/pexpect/default.nix
index e8c5efc3cba3f..0371859c5066f 100644
--- a/pkgs/development/python-modules/pexpect/default.nix
+++ b/pkgs/development/python-modules/pexpect/default.nix
@@ -1,8 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, ptyprocess
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  ptyprocess,
+
+  # Reverse dependency
+  sage,
 }:
 
 buildPythonPackage (rec {
@@ -15,15 +19,17 @@ buildPythonPackage (rec {
     hash = "sha256-7n1BEj88mREFDqLC2sEHVo3EOy07DHVXozISw5jq0w8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Wants to run pythonin a subprocess
   doCheck = false;
 
   propagatedBuildInputs = [ ptyprocess ];
 
+  passthru.tests = {
+    inherit sage;
+  };
+
   meta = with lib; {
     homepage = "http://www.noah.org/wiki/Pexpect";
     description = "Automate interactive console applications such as ssh, ftp, etc";
diff --git a/pkgs/development/python-modules/pfzy/default.nix b/pkgs/development/python-modules/pfzy/default.nix
index 48c084495a691..7b1ef211aad69 100644
--- a/pkgs/development/python-modules/pfzy/default.nix
+++ b/pkgs/development/python-modules/pfzy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-+Ba/yLUfT0SPPAJd+pKyjSvNrVpEwxW3xEKFx4JzpYk=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  pythonImportsCheck = [
-    "pfzy"
-  ];
+  pythonImportsCheck = [ "pfzy" ];
 
   meta = with lib; {
     description = "Python port of the fzy fuzzy string matching algorithm";
diff --git a/pkgs/development/python-modules/pg8000/default.nix b/pkgs/development/python-modules/pg8000/default.nix
index 05e5201375813..2607688f4cf55 100644
--- a/pkgs/development/python-modules/pg8000/default.nix
+++ b/pkgs/development/python-modules/pg8000/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, importlib-metadata
-, passlib
-, python-dateutil
-, pythonOlder
-, scramp
-, hatchling
-, versioningit
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  importlib-metadata,
+  passlib,
+  python-dateutil,
+  pythonOlder,
+  scramp,
+  hatchling,
+  versioningit,
 }:
 
 buildPythonPackage rec {
   pname = "pg8000";
-  version = "1.31.1";
+  version = "1.31.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-sREw1MYV3TBi6o/tgUMGSnl4t/5tRPFLciYdQ8jicIc=";
+    hash = "sha256-HqRs8J2Oygf+fqre/XlR43vuf6vmdd8WTxpXL/swCHY=";
   };
 
   build-system = [
@@ -31,16 +32,12 @@ buildPythonPackage rec {
     passlib
     python-dateutil
     scramp
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # Tests require a running PostgreSQL instance
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pg8000"
-  ];
+  pythonImportsCheck = [ "pg8000" ];
 
   meta = with lib; {
     description = "Python driver for PostgreSQL";
diff --git a/pkgs/development/python-modules/pgcli/default.nix b/pkgs/development/python-modules/pgcli/default.nix
index f60a5fd9dae52..38bbed27eef56 100644
--- a/pkgs/development/python-modules/pgcli/default.nix
+++ b/pkgs/development/python-modules/pgcli/default.nix
@@ -1,33 +1,35 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, cli-helpers
-, click
-, configobj
-, prompt-toolkit
-, psycopg
-, pygments
-, sqlparse
-, pgspecial
-, setproctitle
-, keyring
-, pendulum
-, pytestCheckHook
-, sshtunnel
-, mock
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  cli-helpers,
+  click,
+  configobj,
+  prompt-toolkit,
+  psycopg,
+  pygments,
+  sqlparse,
+  pgspecial,
+  setproctitle,
+  keyring,
+  pendulum,
+  pytestCheckHook,
+  setuptools,
+  sshtunnel,
+  mock,
 }:
 
 # this is a pythonPackage because of the ipython line magics in pgcli.magic
 # integrating with ipython-sql
 buildPythonPackage rec {
   pname = "pgcli";
-  version = "4.0.1";
-  format = "setuptools";
+  version = "4.1.0";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-8v7qIJnOGtXoqdXZOw7a9g3GHpeyG3XpHZcjk5zlO9I=";
+    hash = "sha256-P9Fsi1G9AUX/YYwscyZLzYVLqGaqIG1PB2hR9kG5shU=";
   };
 
   propagatedBuildInputs = [
@@ -45,9 +47,16 @@ buildPythonPackage rec {
     sshtunnel
   ];
 
-  nativeCheckInputs = [ pytestCheckHook mock ];
+  nativeBuildInputs = [ setuptools ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    mock
+  ];
 
-  disabledTests = lib.optionals stdenv.isDarwin [ "test_application_name_db_uri" ];
+  disabledTests = [
+    # requires running postgres
+    "test_application_name_in_env"
+  ] ++ lib.optionals stdenv.isDarwin [ "test_application_name_db_uri" ];
 
   meta = with lib; {
     description = "Command-line interface for PostgreSQL";
@@ -59,6 +68,9 @@ buildPythonPackage rec {
     homepage = "https://pgcli.com";
     changelog = "https://github.com/dbcli/pgcli/raw/v${version}/changelog.rst";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ dywedir SuperSandro2000 ];
+    maintainers = with maintainers; [
+      dywedir
+      SuperSandro2000
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pglast/default.nix b/pkgs/development/python-modules/pglast/default.nix
index 7e5208c1bcd71..4fe0061f3392b 100644
--- a/pkgs/development/python-modules/pglast/default.nix
+++ b/pkgs/development/python-modules/pglast/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -18,18 +19,14 @@ buildPythonPackage rec {
     hash = "sha256-mGP7o52Wun6AdE2jMAJBmLR10EmN50qzbMzB06BFXMg=";
   };
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  propagatedBuildInputs = [ setuptools ];
 
   postPatch = ''
     substituteInPlace setup.cfg \
       --replace "--cov=pglast --cov-report term-missing" ""
   '';
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
   # pytestCheckHook doesn't work
   # ImportError: cannot import name 'parse_sql' from 'pglast'
diff --git a/pkgs/development/python-modules/pgmpy/default.nix b/pkgs/development/python-modules/pgmpy/default.nix
index a953b575b591d..d9505528c64b1 100644
--- a/pkgs/development/python-modules/pgmpy/default.nix
+++ b/pkgs/development/python-modules/pgmpy/default.nix
@@ -1,33 +1,35 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-# build inputs
-, networkx
-, numpy
-, scipy
-, scikit-learn
-, pandas
-, pyparsing
-, torch
-, statsmodels
-, tqdm
-, joblib
-, opt-einsum
-# check inputs
-, pytestCheckHook
-, pytest-cov
-, coverage
-, mock
-, black
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  pythonOlder,
+  # build inputs
+  networkx,
+  numpy,
+  scipy,
+  scikit-learn,
+  pandas,
+  pyparsing,
+  torch,
+  statsmodels,
+  tqdm,
+  joblib,
+  opt-einsum,
+  # check inputs
+  pytestCheckHook,
+  pytest-cov,
+  coverage,
+  mock,
+  black,
 }:
 let
   pname = "pgmpy";
   version = "0.1.25";
-  # optional-dependencies = {
-  #   all = [ daft ];
-  # };
 in
+# optional-dependencies = {
+#   all = [ daft ];
+# };
 buildPythonPackage {
   inherit pname version;
   format = "setuptools";
@@ -41,6 +43,14 @@ buildPythonPackage {
     hash = "sha256-d2TNcJQ82XxTWdetLgtKXRpFulAEEzrr+cyRewoA6YI=";
   };
 
+  # TODO: Remove this patch after updating to pgmpy 0.1.26.
+  # The PR https://github.com/pgmpy/pgmpy/pull/1745 will have been merged.
+  # It contains the fix below, among other things, which is why we do not use fetchpatch.
+  postPatch = lib.optionalString (pythonAtLeast "3.12") ''
+    substituteInPlace pgmpy/tests/test_estimators/test_MarginalEstimator.py \
+      --replace-fail 'self.assert_' 'self.assertTrue'
+  '';
+
   propagatedBuildInputs = [
     networkx
     numpy
diff --git a/pkgs/development/python-modules/pgpdump/default.nix b/pkgs/development/python-modules/pgpdump/default.nix
index d3f87c9e19476..832b2e46c960a 100644
--- a/pkgs/development/python-modules/pgpdump/default.nix
+++ b/pkgs/development/python-modules/pgpdump/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -21,5 +22,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/toofishes/python-pgpdump";
     license = licenses.bsd3;
   };
-
 }
diff --git a/pkgs/development/python-modules/pgpy/default.nix b/pkgs/development/python-modules/pgpy/default.nix
index fc9c0c656961d..d9366a7542768 100644
--- a/pkgs/development/python-modules/pgpy/default.nix
+++ b/pkgs/development/python-modules/pgpy/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, pythonOlder
-, fetchFromGitHub
-, buildPythonPackage
-, setuptools
-, pyasn1
-, cryptography
-, pytestCheckHook
+{
+  lib,
+  pythonOlder,
+  fetchFromGitHub,
+  buildPythonPackage,
+  setuptools,
+  pyasn1,
+  cryptography,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,18 +24,14 @@ buildPythonPackage rec {
     hash = "sha256-47YiHNxmjyCOYHHUV3Zyhs3Att9HZtCXYfbN34ooTxU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pyasn1
     cryptography
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     homepage = "https://github.com/SecurityInnovation/PGPy";
@@ -44,6 +41,9 @@ buildPythonPackage rec {
       programs, conforming to the OpenPGP specification per RFC 4880.
     '';
     license = licenses.bsd3;
-    maintainers = with maintainers; [ eadwu dotlambda ];
+    maintainers = with maintainers; [
+      eadwu
+      dotlambda
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pgsanity/default.nix b/pkgs/development/python-modules/pgsanity/default.nix
index ea133ad8c2004..c0a4919f8a723 100644
--- a/pkgs/development/python-modules/pgsanity/default.nix
+++ b/pkgs/development/python-modules/pgsanity/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, python
-, fetchPypi
-, buildPythonPackage
-, postgresql
-, unittestCheckHook
+{
+  lib,
+  python,
+  fetchPypi,
+  buildPythonPackage,
+  postgresql,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,7 +17,10 @@ buildPythonPackage rec {
     sha256 = "de0bbd6fe4f98bf5139cb5f466eac2e2abaf5a7b050b9e4867b87bf360873173";
   };
 
-  nativeCheckInputs = [ unittestCheckHook postgresql ];
+  nativeCheckInputs = [
+    unittestCheckHook
+    postgresql
+  ];
   propagatedBuildInputs = [ postgresql ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pgspecial/default.nix b/pkgs/development/python-modules/pgspecial/default.nix
index 5c4e1bf84a2ac..6ce163dd74c40 100644
--- a/pkgs/development/python-modules/pgspecial/default.nix
+++ b/pkgs/development/python-modules/pgspecial/default.nix
@@ -1,24 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, psycopg
-, click
-, configobj
-, sqlparse
+{
+  lib,
+  buildPythonPackage,
+  click,
+  configobj,
+  fetchPypi,
+  psycopg,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  sqlparse,
 }:
 
 buildPythonPackage rec {
   pname = "pgspecial";
-  version = "2.1.1";
-  format = "setuptools";
+  version = "2.1.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-o4I5zZYfrDPObaNcRm11istvlCkBWY19905bgv5vVjY=";
+    hash = "sha256-8EGeGzt4+zpy/jtUb2eIpxIJFTLVmf51k7X27lWoj4c=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     click
     sqlparse
     psycopg
@@ -30,13 +37,14 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # requires a postgresql server
+    # Test requires a Postgresql server
     "test_slash_dp_pattern_schema"
   ];
 
   meta = with lib; {
     description = "Meta-commands handler for Postgres Database";
     homepage = "https://github.com/dbcli/pgspecial";
+    changelog = "https://github.com/dbcli/pgspecial/releases/tag/v${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/pgvector/default.nix b/pkgs/development/python-modules/pgvector/default.nix
index 383029504b544..208165e65fbc9 100644
--- a/pkgs/development/python-modules/pgvector/default.nix
+++ b/pkgs/development/python-modules/pgvector/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, asyncpg
-, buildPythonPackage
-, django
-, fetchFromGitHub
-, numpy
-, peewee
-, postgresql
-, postgresqlTestHook
-, psycopg
-, psycopg2
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, sqlalchemy
-, sqlmodel
+{
+  lib,
+  asyncpg,
+  buildPythonPackage,
+  django,
+  fetchFromGitHub,
+  numpy,
+  peewee,
+  postgresql,
+  postgresqlTestHook,
+  psycopg,
+  psycopg2,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  sqlalchemy,
+  sqlmodel,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     hash = "sha256-XKoaEwLW59pV4Dwis7p2L65XoO2zUEa1kXxz6Lgs2d8=";
   };
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   nativeCheckInputs = [
     asyncpg
diff --git a/pkgs/development/python-modules/phe/default.nix b/pkgs/development/python-modules/phe/default.nix
index 0dc423883c4bd..0e9fa4b5be985 100644
--- a/pkgs/development/python-modules/phe/default.nix
+++ b/pkgs/development/python-modules/phe/default.nix
@@ -1,31 +1,48 @@
-{ lib, buildPythonPackage, fetchPypi, isPyPy, isPy3k, click, gmpy2, numpy } :
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPyPy,
+  isPy3k,
+  setuptools,
+  click,
+  gmpy2,
+  pytestCheckHook,
+  numpy,
+}:
 
-let
+buildPythonPackage rec {
   pname = "phe";
-  version = "1.5.0";
-  format = "setuptools";
-in
+  version = "1.5.1";
+  pyproject = true;
 
-buildPythonPackage {
-  inherit pname version;
+  # https://github.com/data61/python-paillier/issues/51
+  disabled = isPyPy || !isPy3k;
 
-  # https://github.com/n1analytics/python-paillier/issues/51
-  disabled = isPyPy || ! isPy3k;
-
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-mS+3CR0kJ/DZczlG+PNQrN1NHQEgV/Kq02S6eflwM5w=";
+  src = fetchFromGitHub {
+    owner = "data61";
+    repo = "python-paillier";
+    rev = "refs/tags/${version}";
+    hash = "sha256-P//4ZL4+2zcB5sWvujs2N0CHFz+EBLERWrPGLLHj6CY=";
   };
 
-  buildInputs = [ click gmpy2 numpy ];
+  build-system = [ setuptools ];
+
+  dependencies = [
+    click
+    gmpy2 # optional, but major speed improvement
+  ];
 
-  # 29/233 tests fail
-  doCheck = false;
+  nativeCheckInputs = [
+    pytestCheckHook
+    numpy
+  ];
 
   meta = with lib; {
-    description = "A library for Partially Homomorphic Encryption in Python";
+    description = "Library for Partially Homomorphic Encryption in Python";
     mainProgram = "pheutil";
-    homepage = "https://github.com/n1analytics/python-paillier";
+    homepage = "https://github.com/data61/python-paillier";
     license = licenses.gpl3;
+    maintainers = with maintainers; [ tomasajt ];
   };
 }
diff --git a/pkgs/development/python-modules/phik/default.nix b/pkgs/development/python-modules/phik/default.nix
index b2dae6f29b1ee..af3c33f908bee 100644
--- a/pkgs/development/python-modules/phik/default.nix
+++ b/pkgs/development/python-modules/phik/default.nix
@@ -1,22 +1,20 @@
-{ lib
-, buildPythonPackage
-, cmake
-, fetchFromGitHub
-, joblib
-, jupyter
-, jupyter-client
-, matplotlib
-, nbconvert
-, ninja
-, numba
-, numpy
-, pandas
-, pybind11
-, pytestCheckHook
-, pythonOlder
-, scikit-build
-, scipy
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  cmake,
+  fetchFromGitHub,
+  joblib,
+  matplotlib,
+  ninja,
+  numpy,
+  pandas,
+  pathspec,
+  pyproject-metadata,
+  pybind11,
+  pytestCheckHook,
+  pythonOlder,
+  scikit-build-core,
+  scipy,
 }:
 
 buildPythonPackage rec {
@@ -24,7 +22,7 @@ buildPythonPackage rec {
   version = "0.12.4";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "KaveIO";
@@ -33,58 +31,35 @@ buildPythonPackage rec {
     hash = "sha256-YsH7vVn6gzejunUjUY/RIcvWtaQ/W1gbciJWKi5LDTk=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     cmake
     ninja
-    scikit-build
-    setuptools
+    pathspec
+    pybind11
+    pyproject-metadata
+    scikit-build-core
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     joblib
+    matplotlib
     numpy
-    scipy
     pandas
-    matplotlib
-    numba
-    pybind11
+    scipy
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-    nbconvert
-    jupyter
-    jupyter-client
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  # Uses setuptools to drive build process
+  # Uses scikit-build-core to drive build process
   dontUseCmakeConfigure = true;
 
-  pythonImportsCheck = [
-    "phik"
-  ];
-
-  postInstall = ''
-    rm -r $out/bin
-  '';
+  pythonImportsCheck = [ "phik" ];
 
   preCheck = ''
     # import from $out
     rm -r phik
   '';
 
-  disabledTests = [
-    # TypeError: 'numpy.float64' object cannot be interpreted as an integer
-    # https://github.com/KaveIO/PhiK/issues/73
-    "test_significance_matrix_hybrid"
-    "test_significance_matrix_mc"
-  ];
-
-  disabledTestPaths = [
-    # Don't test integrations
-    "tests/phik_python/integration/"
-  ];
-
   meta = with lib; {
     description = "Phi_K correlation analyzer library";
     longDescription = ''
diff --git a/pkgs/development/python-modules/phone-modem/default.nix b/pkgs/development/python-modules/phone-modem/default.nix
index 8ec54bd84012f..aea3e26e3e6a0 100644
--- a/pkgs/development/python-modules/phone-modem/default.nix
+++ b/pkgs/development/python-modules/phone-modem/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aioserial
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  aioserial,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
       --replace "aioserial==1.3.0" "aioserial"
   '';
 
-  propagatedBuildInputs = [
-    aioserial
-  ];
+  propagatedBuildInputs = [ aioserial ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/phonemizer/default.nix b/pkgs/development/python-modules/phonemizer/default.nix
index 26a95b1d5847c..ab45d086eacd0 100644
--- a/pkgs/development/python-modules/phonemizer/default.nix
+++ b/pkgs/development/python-modules/phonemizer/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, stdenv
-, substituteAll
-, buildPythonPackage
-, fetchPypi
-, joblib
-, segments
-, attrs
-, dlinfo
-, typing-extensions
-, espeak-ng
-, pytestCheckHook
-, pytest-cov
+{
+  lib,
+  stdenv,
+  substituteAll,
+  buildPythonPackage,
+  fetchPypi,
+  joblib,
+  segments,
+  attrs,
+  dlinfo,
+  typing-extensions,
+  espeak-ng,
+  pytestCheckHook,
+  pytest-cov,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/phonenumbers/default.nix b/pkgs/development/python-modules/phonenumbers/default.nix
index 85153b6fa9052..8df6d6fc3d90c 100644
--- a/pkgs/development/python-modules/phonenumbers/default.nix
+++ b/pkgs/development/python-modules/phonenumbers/default.nix
@@ -1,33 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "phonenumbers";
-  version = "8.13.34";
+  version = "8.13.39";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-fCZ2vge30PdEEeJ14GYDgKDsPuDTWfBw1xlCS9LF9i4=";
+    hash = "sha256-23yklw0gayBWIxEFMAdTsaWyKfQ0FvjCswEOY/u2jXc=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests/*.py"
-  ];
+  pytestFlagsArray = [ "tests/*.py" ];
 
-  pythonImportsCheck = [
-    "phonenumbers"
-  ];
+  pythonImportsCheck = [ "phonenumbers" ];
 
   meta = with lib; {
     description = "Python module for handling international phone numbers";
diff --git a/pkgs/development/python-modules/phonopy/default.nix b/pkgs/development/python-modules/phonopy/default.nix
index 0cdd9d8bff130..38b239651b7c0 100644
--- a/pkgs/development/python-modules/phonopy/default.nix
+++ b/pkgs/development/python-modules/phonopy/default.nix
@@ -1,32 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, pyyaml
-, matplotlib
-, h5py
-, scipy
-, spglib
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  pyyaml,
+  matplotlib,
+  h5py,
+  scipy,
+  spglib,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "phonopy";
-  version = "2.22.1";
+  version = "2.24.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-nux6/1z1xBr+4+fWrR/oOc+zVOI9j60p/SHHAPZ+hWI=";
+    hash = "sha256-VHtifCC28GKIE+0oz1wMgmZ9G6+rT8nF0PG6tYkhjG8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     h5py
@@ -37,18 +36,14 @@ buildPythonPackage rec {
     spglib
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # prevent pytest from importing local directory
   preCheck = ''
     rm -r phonopy
   '';
 
-  pythonImportsCheck = [
-    "phonopy"
-  ];
+  pythonImportsCheck = [ "phonopy" ];
 
   meta = with lib; {
     description = "Modulefor phonon calculations at harmonic and quasi-harmonic levels";
diff --git a/pkgs/development/python-modules/photutils/default.nix b/pkgs/development/python-modules/photutils/default.nix
new file mode 100644
index 0000000000000..091e9cfd9741e
--- /dev/null
+++ b/pkgs/development/python-modules/photutils/default.nix
@@ -0,0 +1,89 @@
+{
+  lib,
+  astropy,
+  bottleneck,
+  buildPythonPackage,
+  cython,
+  extension-helpers,
+  fetchFromGitHub,
+  gwcs,
+  matplotlib,
+  numpy,
+  photutils,
+  pythonOlder,
+  rasterio,
+  scikit-image,
+  scikit-learn,
+  scipy,
+  setuptools-scm,
+  setuptools,
+  shapely,
+  tomli,
+  tqdm,
+  python,
+  wheel,
+}:
+
+buildPythonPackage rec {
+  pname = "photutils";
+  version = "1.12.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "astropy";
+    repo = "photutils";
+    rev = "refs/tags/${version}";
+    hash = "sha256-k5MxpkCAvefSRoNPMAVIvNcCTU5HPicU4XSFXk13O9Q=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "'numpy>=2.0.0rc1'," ""
+  '';
+
+  build-system = [
+    setuptools
+    setuptools-scm
+    wheel
+  ];
+
+  nativeBuildInputs = [
+    cython
+    extension-helpers
+    numpy
+  ];
+
+  dependencies = [
+    astropy
+    numpy
+  ];
+
+  passthru.optional-dependencies = {
+    all = [
+      bottleneck
+      gwcs
+      matplotlib
+      rasterio
+      scikit-image
+      scikit-learn
+      scipy
+      shapely
+      tqdm
+    ];
+  };
+
+  # With 1.12.0 tests have issues importing modules
+  doCheck = false;
+
+  pythonImportsCheck = [ "photutils" ];
+
+  meta = with lib; {
+    description = "Astropy package for source detection and photometry";
+    homepage = "https://github.com/astropy/photutils";
+    changelog = "https://github.com/astropy/photutils/blob/${version}/CHANGES.rst";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/phpserialize/default.nix b/pkgs/development/python-modules/phpserialize/default.nix
index 5c5d9929100d5..89e7c9d30b555 100644
--- a/pkgs/development/python-modules/phpserialize/default.nix
+++ b/pkgs/development/python-modules/phpserialize/default.nix
@@ -1,4 +1,8 @@
-{lib, buildPythonPackage, fetchPypi}:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "phpserialize";
@@ -14,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "A port of the serialize and unserialize functions of PHP to Python";
+    description = "Port of the serialize and unserialize functions of PHP to Python";
     homepage = "https://github.com/mitsuhiko/phpserialize";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ jluttine ];
diff --git a/pkgs/development/python-modules/phunspell/default.nix b/pkgs/development/python-modules/phunspell/default.nix
new file mode 100644
index 0000000000000..c4d8cf4ddc160
--- /dev/null
+++ b/pkgs/development/python-modules/phunspell/default.nix
@@ -0,0 +1,53 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+
+  setuptools,
+
+  spylls,
+}:
+
+buildPythonPackage rec {
+  pname = "phunspell";
+  version = "0.1.6";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "dvwright";
+    repo = "phunspell";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-TlO9Ccr2iRN+s3JV+3P36RF9oFY32fj+24sKslZZCVk=";
+  };
+
+  patches = [
+    (fetchpatch {
+      name = "fix-package-data-warning.patch";
+      url = "https://github.com/dvwright/phunspell/commit/70a0ee8af8442797e03916cea31637c21e6d32d9.patch";
+      hash = "sha256-kSaKHd7dVJM8+2dqxjs26Hv0feNXAXXymUE97DNVBFM=";
+    })
+    (fetchpatch {
+      name = "replace-description-file-deprecated-option.patch";
+      url = "https://github.com/dvwright/phunspell/commit/331c593b486cebe1a9b72befa568de9b51033f15.patch";
+      hash = "sha256-gdYfeG1vBtjnDDCjmg+ZSuToqVe0hrzB3RIqBLGNvBQ=";
+    })
+  ];
+
+  build-system = [ setuptools ];
+
+  dependencies = [ spylls ];
+
+  # for tests need lots of RAM, just skip...
+  doCheck = false;
+
+  pythonImportsCheck = [ "phunspell" ];
+
+  meta = with lib; {
+    description = "Pure Python spell checker, wrapping spylls a port of Hunspell";
+    homepage = "https://github.com/dvwright/phunspell";
+    changelog = "https://github.com/dvwright/phunspell/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ vizid ];
+  };
+}
diff --git a/pkgs/development/python-modules/phx-class-registry/default.nix b/pkgs/development/python-modules/phx-class-registry/default.nix
index 0997f7987ada8..8843e0039ad80 100644
--- a/pkgs/development/python-modules/phx-class-registry/default.nix
+++ b/pkgs/development/python-modules/phx-class-registry/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,18 +18,17 @@ buildPythonPackage rec {
     hash = "sha256-kJbyUzyklVSvW6bBxTTTrY+WhfcV0GUf/+Pzyv+7sEA=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "class_registry"
-  ];
+  pythonImportsCheck = [ "class_registry" ];
 
   meta = with lib; {
     description = "Factory and registry pattern for Python classes";
     homepage = "https://class-registry.readthedocs.io/en/latest/";
     license = licenses.mit;
-    maintainers = with maintainers; [ hrdinka tomhoule ];
+    maintainers = with maintainers; [
+      hrdinka
+      tomhoule
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pi1wire/default.nix b/pkgs/development/python-modules/pi1wire/default.nix
index 6d3debdcaa2fb..ca57c6fd8b355 100644
--- a/pkgs/development/python-modules/pi1wire/default.nix
+++ b/pkgs/development/python-modules/pi1wire/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-l/5w71QsAW4BvILOaLdUVvQ8xxUm1ZTzUESRFzUgtic=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     "test_find_all_sensors" # flaky
diff --git a/pkgs/development/python-modules/piano-transcription-inference/default.nix b/pkgs/development/python-modules/piano-transcription-inference/default.nix
index be46384649be3..4727cee21c43b 100644
--- a/pkgs/development/python-modules/piano-transcription-inference/default.nix
+++ b/pkgs/development/python-modules/piano-transcription-inference/default.nix
@@ -1,14 +1,15 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, fetchurl
-, librosa
-, matplotlib
-, mido
-, torch
-, torchlibrosa
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  fetchurl,
+  librosa,
+  matplotlib,
+  mido,
+  torch,
+  torchlibrosa,
 }:
 
 buildPythonPackage rec {
@@ -71,7 +72,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "piano_transcription_inference" ];
 
   meta = with lib; {
-    description = "A piano transcription inference package";
+    description = "Piano transcription inference package";
     homepage = "https://github.com/qiuqiangkong/piano_transcription_inference";
     license = licenses.mit;
     maintainers = with maintainers; [ azuwis ];
diff --git a/pkgs/development/python-modules/piccata/default.nix b/pkgs/development/python-modules/piccata/default.nix
index 20bbc0066d23f..847bd778a8854 100644
--- a/pkgs/development/python-modules/piccata/default.nix
+++ b/pkgs/development/python-modules/piccata/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy27
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy27,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,18 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-Vuhwt+esTkvyEIRVYaRGvNMTAXVWBBv/6lpaxN5RrBA=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # No communication possible in the sandbox
     "test_client_server_communication"
   ];
 
-  pythonImportsCheck = [
-    "piccata"
-  ];
+  pythonImportsCheck = [ "piccata" ];
 
   meta = with lib; {
     description = "Simple CoAP (RFC7252) toolkit";
diff --git a/pkgs/development/python-modules/piccolo-theme/default.nix b/pkgs/development/python-modules/piccolo-theme/default.nix
index b6406ca42269c..49dd8b2c3c4d7 100644
--- a/pkgs/development/python-modules/piccolo-theme/default.nix
+++ b/pkgs/development/python-modules/piccolo-theme/default.nix
@@ -1,27 +1,39 @@
-{ lib, buildPythonPackage, fetchPypi, sphinx }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  sphinx,
+}:
 
 buildPythonPackage rec {
   pname = "piccolo-theme";
-  version = "0.21.0";
+  version = "0.23.0";
   format = "setuptools";
 
-  src = fetchPypi {
+  disabled = pythonOlder "3.9";
+
+ src = fetchPypi {
     pname = "piccolo_theme";
     inherit version;
-    hash = "sha256-mQqZ6Rwx0VoDBVQ0zbvCOmAMKAMv67Xd1ksYW6w2QPM=";
+    hash = "sha256-jlnKZK2wuEM+n+3Y59U6+LyQJRBUwQAn0NarAGlNdx0=";
   };
 
-  propagatedBuildInputs = [
-    sphinx
-  ];
+  dependencies = [ sphinx ];
+
+  # Module has no tests
+  doCheck = false;
 
   pythonImportsCheck = [ "piccolo_theme" ];
 
   meta = with lib; {
     description = "Clean and modern Sphinx theme";
     homepage = "https://piccolo-theme.readthedocs.io";
-    license = with licenses; [ mit asl20 ];
+    changelog = "https://github.com/piccolo-orm/piccolo_theme/releases/tag/${version}";
+    license = with licenses; [
+      mit
+      asl20
+    ];
     maintainers = with maintainers; [ loicreynier ];
-    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/pickleshare/default.nix b/pkgs/development/python-modules/pickleshare/default.nix
index d6be608aaa2bb..be52d4d0e4f17 100644
--- a/pkgs/development/python-modules/pickleshare/default.nix
+++ b/pkgs/development/python-modules/pickleshare/default.nix
@@ -1,9 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, path
-, pathlib2
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  path,
 }:
 
 buildPythonPackage rec {
@@ -16,8 +15,7 @@ buildPythonPackage rec {
     sha256 = "87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca";
   };
 
-  propagatedBuildInputs = [ path ]
-    ++ lib.optional (pythonOlder "3.4") pathlib2;
+  propagatedBuildInputs = [ path ];
 
   # No proper test suite
   doCheck = false;
@@ -27,5 +25,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/vivainio/pickleshare";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/picobox/default.nix b/pkgs/development/python-modules/picobox/default.nix
index 221493eb2194c..b180c5618daca 100644
--- a/pkgs/development/python-modules/picobox/default.nix
+++ b/pkgs/development/python-modules/picobox/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flask
-, hatchling
-, hatch-vcs
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+  hatchling,
+  hatch-vcs,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "picobox"
-  ];
+  pythonImportsCheck = [ "picobox" ];
 
   meta = with lib; {
     description = "Opinionated dependency injection framework";
diff --git a/pkgs/development/python-modules/picos/default.nix b/pkgs/development/python-modules/picos/default.nix
index 5bc5e35c6332e..5d5e715ec6486 100644
--- a/pkgs/development/python-modules/picos/default.nix
+++ b/pkgs/development/python-modules/picos/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitLab
-, numpy
-, cvxopt
-, python
-, networkx
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitLab,
+  numpy,
+  cvxopt,
+  python,
+  networkx,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
   };
 
   # Needed only for the tests
-  nativeCheckInputs = [
-    networkx
-  ];
+  nativeCheckInputs = [ networkx ];
 
   propagatedBuildInputs = [
     numpy
@@ -34,7 +33,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Python interface to conic optimization solvers";
+    description = "Python interface to conic optimization solvers";
     homepage = "https://gitlab.com/picos-api/picos";
     license = licenses.gpl3;
     maintainers = with maintainers; [ tobiasBora ];
diff --git a/pkgs/development/python-modules/picosvg/default.nix b/pkgs/development/python-modules/picosvg/default.nix
index 74a6b408f6a87..2e938d5115d8d 100644
--- a/pkgs/development/python-modules/picosvg/default.nix
+++ b/pkgs/development/python-modules/picosvg/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools-scm
-, absl-py
-, lxml
-, skia-pathops
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools-scm,
+  absl-py,
+  lxml,
+  skia-pathops,
+  pytestCheckHook,
 }:
 buildPythonPackage rec {
   pname = "picosvg";
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-jG1rfamegnX8GXDwqkGFBFzUeycRLDObJvGbxNk6OpM=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     absl-py
@@ -30,9 +29,7 @@ buildPythonPackage rec {
     skia-pathops
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # a few tests are failing on aarch64
   doCheck = !stdenv.isAarch64;
diff --git a/pkgs/development/python-modules/pid/default.nix b/pkgs/development/python-modules/pid/default.nix
index de7856accabc5..7c50878f92d67 100644
--- a/pkgs/development/python-modules/pid/default.nix
+++ b/pkgs/development/python-modules/pid/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
 }:
 
 buildPythonPackage rec {
@@ -24,5 +25,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/trbs/pid/";
     license = licenses.asl20;
   };
-
 }
diff --git a/pkgs/development/python-modules/piep/default.nix b/pkgs/development/python-modules/piep/default.nix
index 0825380a925ba..6fc53f1bec978 100644
--- a/pkgs/development/python-modules/piep/default.nix
+++ b/pkgs/development/python-modules/piep/default.nix
@@ -1,30 +1,35 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-, pygments
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pygments,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   version = "0.10.0";
-  format = "setuptools";
   pname = "piep";
-  disabled = isPy3k;
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-aM7KQJZr1P0Hs2ReyRj2ItGUo+fRJ+TU3lLAU2Mu8KA=";
   };
 
-  propagatedBuildInputs = [ pygments ];
-  nativeCheckInputs = [ nose ];
+  build-system = [ setuptools ];
+
+  dependencies = [ pygments ];
+
+  pythonImportsCheck = [ "piep" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Bringing the power of python to stream editing";
     homepage = "https://github.com/timbertson/piep";
     maintainers = with maintainers; [ timbertson ];
-    license = licenses.gpl3;
+    license = licenses.gpl3Only;
+    mainProgram = "piep";
   };
-
 }
diff --git a/pkgs/development/python-modules/piexif/default.nix b/pkgs/development/python-modules/piexif/default.nix
index f2d7dbe2b11ae..9abd4d5cdc108 100644
--- a/pkgs/development/python-modules/piexif/default.nix
+++ b/pkgs/development/python-modules/piexif/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch, pillow }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pillow,
+}:
 
 buildPythonPackage rec {
   pname = "piexif";
diff --git a/pkgs/development/python-modules/pijuice/default.nix b/pkgs/development/python-modules/pijuice/default.nix
index ecbe9343008b4..1f4513ec6d893 100644
--- a/pkgs/development/python-modules/pijuice/default.nix
+++ b/pkgs/development/python-modules/pijuice/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
-, smbus-cffi
-, urwid
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  smbus-cffi,
+  urwid,
 }:
 
 buildPythonPackage rec {
@@ -35,7 +36,10 @@ buildPythonPackage rec {
     cd Software/Source
   '';
 
-  propagatedBuildInputs = [ smbus-cffi urwid ];
+  propagatedBuildInputs = [
+    smbus-cffi
+    urwid
+  ];
 
   # Remove the following files from the package:
   #
diff --git a/pkgs/development/python-modules/pika-pool/default.nix b/pkgs/development/python-modules/pika-pool/default.nix
index 0374a5c16d0d9..42b52c525853b 100644
--- a/pkgs/development/python-modules/pika-pool/default.nix
+++ b/pkgs/development/python-modules/pika-pool/default.nix
@@ -1,5 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi
-, pika
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pika,
 }:
 
 buildPythonPackage rec {
@@ -23,6 +26,6 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/bninja/pika-pool";
     license = licenses.bsdOriginal;
-    description = "Pools for pikas.";
+    description = "Pools for pikas";
   };
 }
diff --git a/pkgs/development/python-modules/pika/default.nix b/pkgs/development/python-modules/pika/default.nix
index ead9239f5cde7..f6a71c1a37c15 100644
--- a/pkgs/development/python-modules/pika/default.nix
+++ b/pkgs/development/python-modules/pika/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, gevent
-, twisted
-, tornado
+  # dependencies
+  gevent,
+  twisted,
+  tornado,
 
-# tests
-, nose2
-, mock
+  # tests
+  nose2,
+  mock,
 
 }:
 
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     hash = "sha256-60Z+y3YXazUghfnOy4e7HzM18iju5m5OEt4I3Wg6ty4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     gevent
diff --git a/pkgs/development/python-modules/pikepdf/default.nix b/pkgs/development/python-modules/pikepdf/default.nix
index ba0ce17b0c3a0..14ae97ea96868 100644
--- a/pkgs/development/python-modules/pikepdf/default.nix
+++ b/pkgs/development/python-modules/pikepdf/default.nix
@@ -1,30 +1,31 @@
-{ lib
-, attrs
-, buildPythonPackage
-, fetchFromGitHub
-, hypothesis
-, pythonOlder
-, jbig2dec
-, deprecated
-, lxml
-, mupdf-headless
-, numpy
-, packaging
-, pillow
-, psutil
-, pybind11
-, pytest-xdist
-, pytestCheckHook
-, python-dateutil
-, python-xmp-toolkit
-, qpdf
-, setuptools
-, substituteAll
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hypothesis,
+  pythonOlder,
+  jbig2dec,
+  deprecated,
+  lxml,
+  mupdf-headless,
+  numpy,
+  packaging,
+  pillow,
+  psutil,
+  pybind11,
+  pytest-xdist,
+  pytestCheckHook,
+  python-dateutil,
+  python-xmp-toolkit,
+  qpdf,
+  setuptools,
+  substituteAll,
 }:
 
 buildPythonPackage rec {
   pname = "pikepdf";
-  version = "8.14.0";
+  version = "9.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -39,7 +40,7 @@ buildPythonPackage rec {
     postFetch = ''
       rm "$out/.git_archival.txt"
     '';
-    hash = "sha256-3ORvbhO3eLu/NIE0Lwdf93QtUHUmyMf7LmdMBJpkYIg=";
+    hash = "sha256-dTEYI3dGu3Q/80lijp0ooApveSL1VWVHwLw7covnYYc=";
   };
 
   patches = [
@@ -52,14 +53,12 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "shims_enabled = not cflags_defined" "shims_enabled = False"
+      --replace-fail "shims_enabled = not cflags_defined" "shims_enabled = False"
   '';
 
-  buildInputs = [
-    qpdf
-  ];
+  buildInputs = [ qpdf ];
 
-  nativeBuildInputs = [
+  build-system = [
     pybind11
     setuptools
   ];
@@ -75,7 +74,7 @@ buildPythonPackage rec {
     python-xmp-toolkit
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     deprecated
     lxml
     packaging
@@ -88,7 +87,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/pikepdf/pikepdf";
     description = "Read and write PDFs with Python, powered by qpdf";
     license = licenses.mpl20;
-    maintainers = with maintainers; [ kiwi dotlambda ];
+    maintainers = with maintainers; [ dotlambda ];
     changelog = "https://github.com/pikepdf/pikepdf/blob/${src.rev}/docs/releasenotes/version${lib.versions.major version}.rst";
   };
 }
diff --git a/pkgs/development/python-modules/pilkit/default.nix b/pkgs/development/python-modules/pilkit/default.nix
index 76f6238349a58..f8638d93578b2 100644
--- a/pkgs/development/python-modules/pilkit/default.nix
+++ b/pkgs/development/python-modules/pilkit/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pillow
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pillow,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
     hash = "sha256-NmD9PFCkz3lz4AnGoQUpkt35q0zvDVm+kx7lVDFBcHk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    pillow
-  ];
+  propagatedBuildInputs = [ pillow ];
 
   nativeCheckInputs = [
     mock
@@ -42,12 +39,10 @@ buildPythonPackage rec {
       --replace "Image.ANTIALIAS" "Image.Resampling.LANCZOS"
   '';
 
-  pythonImportsCheck = [
-    "pilkit"
-  ];
+  pythonImportsCheck = [ "pilkit" ];
 
   meta = with lib; {
-    description = "A collection of utilities and processors for the Python Imaging Library";
+    description = "Collection of utilities and processors for the Python Imaging Library";
     homepage = "https://github.com/matthewwithanm/pilkit/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ domenkozar ];
diff --git a/pkgs/development/python-modules/pillow-heif/default.nix b/pkgs/development/python-modules/pillow-heif/default.nix
index d91408fc864d2..4674a8b39c99b 100644
--- a/pkgs/development/python-modules/pillow-heif/default.nix
+++ b/pkgs/development/python-modules/pillow-heif/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-
-# build-system
-, cmake
-, nasm
-, pkg-config
-, setuptools
-
-# native dependencies
-, libheif
-, libaom
-, libde265
-, x265
-
-# dependencies
-, pillow
-
-# tests
-, opencv4
-, numpy
-, pympler
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  cmake,
+  nasm,
+  pkg-config,
+  setuptools,
+
+  # native dependencies
+  libheif,
+  libaom,
+  libde265,
+  x265,
+
+  # dependencies
+  pillow,
+
+  # tests
+  opencv4,
+  numpy,
+  pympler,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -64,13 +65,9 @@ buildPythonPackage rec {
     RELEASE_FULL_FLAG = 1;
   };
 
-  propagatedBuildInputs = [
-    pillow
-  ];
+  propagatedBuildInputs = [ pillow ];
 
-  pythonImportsCheck = [
-    "pillow_heif"
-  ];
+  pythonImportsCheck = [ "pillow_heif" ];
 
   nativeCheckInputs = [
     opencv4
@@ -79,29 +76,35 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = [
-    # Time based
-    "test_decode_threads"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # https://github.com/bigcat88/pillow_heif/issues/89
-    # not reproducible in nixpkgs
-    "test_opencv_crash"
-  ] ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
-    # RuntimeError: Encoder plugin generated an error: Unsupported bit depth: Bit depth not supported by x265
-    "test_open_heif_compare_non_standard_modes_data"
-    "test_open_save_disable_16bit"
-    "test_save_bgr_16bit_to_10_12_bit"
-    "test_save_bgra_16bit_to_10_12_bit"
-    "test_premultiplied_alpha"
-    "test_hdr_save"
-    "test_I_color_modes_to_10_12_bit"
-  ];
+  disabledTests =
+    [
+      # Time based
+      "test_decode_threads"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # https://github.com/bigcat88/pillow_heif/issues/89
+      # not reproducible in nixpkgs
+      "test_opencv_crash"
+    ]
+    ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
+      # RuntimeError: Encoder plugin generated an error: Unsupported bit depth: Bit depth not supported by x265
+      "test_open_heif_compare_non_standard_modes_data"
+      "test_open_save_disable_16bit"
+      "test_save_bgr_16bit_to_10_12_bit"
+      "test_save_bgra_16bit_to_10_12_bit"
+      "test_premultiplied_alpha"
+      "test_hdr_save"
+      "test_I_color_modes_to_10_12_bit"
+    ];
 
   meta = {
     changelog = "https://github.com/bigcat88/pillow_heif/releases/tag/v${version}";
     description = "Python library for working with HEIF images and plugin for Pillow";
     homepage = "https://github.com/bigcat88/pillow_heif";
-    license = with lib.licenses; [ bsd3 lgpl3 ];
+    license = with lib.licenses; [
+      bsd3
+      lgpl3
+    ];
     maintainers = with lib.maintainers; [ dandellion ];
   };
 }
diff --git a/pkgs/development/python-modules/pillow-jpls/default.nix b/pkgs/development/python-modules/pillow-jpls/default.nix
index 6f5b77c50e4c2..7aebaf432c001 100644
--- a/pkgs/development/python-modules/pillow-jpls/default.nix
+++ b/pkgs/development/python-modules/pillow-jpls/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, cmake
-, ninja
-, scikit-build-core
-, charls
-, eigen
-, fmt
-, numpy
-, pillow
-, pybind11
-, setuptools
-, pathspec
-, pyproject-metadata
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  cmake,
+  ninja,
+  scikit-build-core,
+  charls,
+  eigen,
+  fmt,
+  numpy,
+  pillow,
+  pybind11,
+  setuptools,
+  pathspec,
+  pyproject-metadata,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -32,11 +33,17 @@ buildPythonPackage rec {
     hash = "sha256-Rc4/S8BrYoLdn7eHDBaoUt1Qy+h0TMAN5ixCAuRmfPU=";
   };
 
+  env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
+  dontUseCmakeConfigure = true;
+
   postPatch = ''
-    substituteInPlace pyproject.toml --replace '"conan~=2.0.16",' ""
+    substituteInPlace pyproject.toml \
+      --replace-fail '"conan~=2.0.16",' "" \
+      --replace-fail '"pybind11~=2.11.1",' '"pybind11",'
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     cmake
     ninja
     pybind11
@@ -44,36 +51,36 @@ buildPythonPackage rec {
     setuptools
     setuptools-scm
   ];
+
   buildInputs = [
     charls
     eigen
     fmt
   ];
-  propagatedBuildInputs = [
+
+  dependencies = [
     numpy
     pillow
     pathspec
     pyproject-metadata
   ];
 
-  pypaBuildFlags = [ "-C" "cmake.args='--preset=sysdeps'" ];
-  dontUseCmakeConfigure = true;
+  pypaBuildFlags = [
+    "-C"
+    "cmake.args='--preset=sysdeps'"
+  ];
 
-  env.SETUPTOOLS_SCM_PRETEND_VERSION = version;
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  checkInputs = [
-    pytestCheckHook
-  ];
-  # prevent importing from build during test collection:
+  # Prevent importing from build during test collection:
   preCheck = ''rm -rf pillow_jpls'';
 
-  pythonImportsCheck = [
-    "pillow_jpls"
-  ];
+  pythonImportsCheck = [ "pillow_jpls" ];
 
   meta = with lib; {
-    description = "A JPEG-LS plugin for the Python Pillow library";
+    description = "JPEG-LS plugin for the Python Pillow library";
     homepage = "https://github.com/planetmarshall/pillow-jpls";
+    changelog = "https://github.com/planetmarshall/pillow-jpls/releases/tag/v${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bcdarwin ];
   };
diff --git a/pkgs/development/python-modules/pillow-simd/default.nix b/pkgs/development/python-modules/pillow-simd/default.nix
index 55842f20019de..f061a17048b83 100644
--- a/pkgs/development/python-modules/pillow-simd/default.nix
+++ b/pkgs/development/python-modules/pillow-simd/default.nix
@@ -1,37 +1,62 @@
-{ lib, stdenv, buildPythonPackage, fetchFromGitHub, isPyPy, isPy3k
-, olefile, freetype, libjpeg, zlib, libtiff, libwebp, libxcrypt, tcl, lcms2
-, libxcb, tk, libX11, openjpeg, libimagequant, pyroma, numpy, defusedxml
-, pytestCheckHook, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPyPy,
+  isPy3k,
+  olefile,
+  freetype,
+  libjpeg,
+  zlib,
+  libtiff,
+  libwebp,
+  libxcrypt,
+  tcl,
+  lcms2,
+  libxcb,
+  tk,
+  libX11,
+  openjpeg,
+  libimagequant,
+  pyroma,
+  numpy,
+  defusedxml,
+  pytestCheckHook,
+  setuptools,
 }@args:
 
-import ../pillow/generic.nix (rec {
-  pname = "Pillow-SIMD";
-  # check for release version on https://pypi.org/project/Pillow-SIMD/#history
-  # does not match the latest pillow release version!
-  version = "9.0.0.post1";
-  format = "setuptools";
+import ../pillow/generic.nix (
+  rec {
+    pname = "Pillow-SIMD";
+    # check for release version on https://pypi.org/project/Pillow-SIMD/#history
+    # does not match the latest pillow release version!
+    version = "9.0.0.post1";
+    format = "setuptools";
 
-  disabled = !isPy3k;
+    disabled = !isPy3k;
 
-  src = fetchFromGitHub {
-    owner = "uploadcare";
-    repo = "pillow-simd";
-    rev = "v${version}";
-    hash = "sha256-qTZYhgHjVMXqoYl3mG1xVrFaWrPidSY8HlyFQizV27Y=";
-  };
+    src = fetchFromGitHub {
+      owner = "uploadcare";
+      repo = "pillow-simd";
+      rev = "v${version}";
+      hash = "sha256-qTZYhgHjVMXqoYl3mG1xVrFaWrPidSY8HlyFQizV27Y=";
+    };
 
-  meta = with lib; {
-    broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
-    homepage = "https://python-pillow.github.io/pillow-perf/";
-    description = "The friendly PIL fork - SIMD version";
-    longDescription = ''
-      Pillow-SIMD is "following" Pillow. Pillow-SIMD versions are 100% compatible drop-in replacements for Pillow of the same version.
+    meta = with lib; {
+      broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
+      homepage = "https://python-pillow.github.io/pillow-perf/";
+      description = "Friendly PIL fork - SIMD version";
+      longDescription = ''
+        Pillow-SIMD is "following" Pillow. Pillow-SIMD versions are 100% compatible drop-in replacements for Pillow of the same version.
 
-      SIMD stands for "single instruction, multiple data" and its essence is in performing the same operation on multiple data points simultaneously by using multiple processing elements. Common CPU SIMD instruction sets are MMX, SSE-SSE4, AVX, AVX2, AVX512, NEON.
+        SIMD stands for "single instruction, multiple data" and its essence is in performing the same operation on multiple data points simultaneously by using multiple processing elements. Common CPU SIMD instruction sets are MMX, SSE-SSE4, AVX, AVX2, AVX512, NEON.
 
-      Currently, Pillow-SIMD can be compiled with SSE4 (default) or AVX2 support.
-    '';
-    license = licenses.hpnd;
-    maintainers = with maintainers; [ ];
-  };
-} // args )
+        Currently, Pillow-SIMD can be compiled with SSE4 (default) or AVX2 support.
+      '';
+      license = licenses.hpnd;
+      maintainers = with maintainers; [ ];
+    };
+  }
+  // args
+)
diff --git a/pkgs/development/python-modules/pillow/default.nix b/pkgs/development/python-modules/pillow/default.nix
index a576b47bda19e..420ed7bf53a62 100644
--- a/pkgs/development/python-modules/pillow/default.nix
+++ b/pkgs/development/python-modules/pillow/default.nix
@@ -1,42 +1,77 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, isPyPy
-, defusedxml, olefile, freetype, libjpeg, zlib, libtiff, libwebp, libxcrypt, tcl, lcms2, tk, libX11
-, libxcb, openjpeg, libimagequant, numpy, pytestCheckHook, setuptools
-# for passthru.tests
-, imageio, matplotlib, pilkit, pydicom, reportlab
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  isPyPy,
+  defusedxml,
+  olefile,
+  freetype,
+  libjpeg,
+  zlib,
+  libtiff,
+  libwebp,
+  libxcrypt,
+  tcl,
+  lcms2,
+  tk,
+  libX11,
+  libxcb,
+  openjpeg,
+  libimagequant,
+  numpy,
+  pytestCheckHook,
+  setuptools,
+  # for passthru.tests
+  imageio,
+  matplotlib,
+  pilkit,
+  pydicom,
+  reportlab,
+  sage,
 }@args:
 
-import ./generic.nix (rec {
-  pname = "pillow";
-  version = "10.3.0";
-  format = "pyproject";
+import ./generic.nix (
+  rec {
+    pname = "pillow";
+    version = "10.3.0";
+    format = "pyproject";
 
-  disabled = pythonOlder "3.8";
+    disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    pname = "pillow";
-    inherit version;
-    hash = "sha256-nSRV+/RMkUhAx5PomqgtDhdjoUJToAB0NxmuWUaBSy0=";
-  };
+    src = fetchPypi {
+      pname = "pillow";
+      inherit version;
+      hash = "sha256-nSRV+/RMkUhAx5PomqgtDhdjoUJToAB0NxmuWUaBSy0=";
+    };
 
-  passthru.tests = {
-    inherit imageio matplotlib pilkit pydicom reportlab;
-  };
+    passthru.tests = {
+      inherit
+        imageio
+        matplotlib
+        pilkit
+        pydicom
+        reportlab
+        sage
+        ;
+    };
 
-  meta = with lib; {
-    homepage = "https://python-pillow.org/";
-    description = "The friendly PIL fork (Python Imaging Library)";
-    longDescription = ''
-      The Python Imaging Library (PIL) adds image processing
-      capabilities to your Python interpreter.  This library
-      supports many file formats, and provides powerful image
-      processing and graphics capabilities.
-    '';
-    license = licenses.hpnd;
-    maintainers = with maintainers; [ goibhniu prikhi ];
-  };
-} // args )
+    meta = with lib; {
+      homepage = "https://python-pillow.org/";
+      description = "Friendly PIL fork (Python Imaging Library)";
+      longDescription = ''
+        The Python Imaging Library (PIL) adds image processing
+        capabilities to your Python interpreter.  This library
+        supports many file formats, and provides powerful image
+        processing and graphics capabilities.
+      '';
+      license = licenses.hpnd;
+      maintainers = with maintainers; [
+        goibhniu
+        prikhi
+      ];
+    };
+  }
+  // args
+)
diff --git a/pkgs/development/python-modules/pillow/generic.nix b/pkgs/development/python-modules/pillow/generic.nix
index 33276d3abd08e..83816d8958acd 100644
--- a/pkgs/development/python-modules/pillow/generic.nix
+++ b/pkgs/development/python-modules/pillow/generic.nix
@@ -1,17 +1,26 @@
-{ pname
-, version
-, disabled
-, src
-, patches ? []
-, meta
-, passthru ? {}
-, ...
+{
+  pname,
+  version,
+  disabled,
+  src,
+  patches ? [ ],
+  meta,
+  passthru ? { },
+  ...
 }@args:
 
 with args;
 
 buildPythonPackage rec {
-  inherit pname version format src meta passthru patches;
+  inherit
+    pname
+    version
+    format
+    src
+    meta
+    passthru
+    patches
+    ;
 
   # Disable imagefont tests, because they don't work well with infinality:
   # https://github.com/python-pillow/Pillow/issues/1259
@@ -19,31 +28,52 @@ buildPythonPackage rec {
     rm Tests/test_imagefont.py
   '';
 
-  disabledTests = [
-    # Code quality mismathch 9 vs 10
-    "test_pyroma"
+  disabledTests =
+    [
+      # Code quality mismathch 9 vs 10
+      "test_pyroma"
 
-    # pillow-simd
-    "test_roundtrip"
-    "test_basic"
-    "test_custom_metadata"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # Disable darwin tests which require executables: `iconutil` and `screencapture`
-    "test_grab"
-    "test_grabclipboard"
-    "test_save"
-  ];
+      # pillow-simd
+      "test_roundtrip"
+      "test_basic"
+      "test_custom_metadata"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # Disable darwin tests which require executables: `iconutil` and `screencapture`
+      "test_grab"
+      "test_grabclipboard"
+      "test_save"
+    ];
 
-  propagatedBuildInputs = [ olefile ]
-    ++ lib.optionals (lib.versionAtLeast version "8.2.0") [ defusedxml ];
+  propagatedBuildInputs = [
+    olefile
+  ] ++ lib.optionals (lib.versionAtLeast version "8.2.0") [ defusedxml ];
 
-  nativeCheckInputs = [ pytestCheckHook numpy ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    numpy
+  ];
 
   nativeBuildInputs = [ setuptools ];
 
-  buildInputs = [ freetype libjpeg openjpeg libimagequant zlib libtiff libwebp libxcrypt tcl lcms2 ]
+  buildInputs =
+    [
+      freetype
+      libjpeg
+      openjpeg
+      libimagequant
+      zlib
+      libtiff
+      libwebp
+      libxcrypt
+      tcl
+      lcms2
+    ]
     ++ lib.optionals (lib.versionAtLeast version "7.1.0") [ libxcb ]
-    ++ 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
@@ -54,24 +84,27 @@ buildPythonPackage rec {
   # setting here, instead of passing the `--disable-platform-guessing`
   # command-line option, since the command-line option doesn't work when we run
   # tests.
-  preConfigure = let
-    libinclude' = pkg: ''"${pkg.out}/lib", "${pkg.out}/include"'';
-    libinclude = pkg: ''"${pkg.out}/lib", "${pkg.dev}/include"'';
-  in ''
-    sed -i "setup.py" \
-        -e 's|^FREETYPE_ROOT =.*$|FREETYPE_ROOT = ${libinclude freetype}|g ;
-            s|^JPEG_ROOT =.*$|JPEG_ROOT = ${libinclude libjpeg}|g ;
-            s|^JPEG2K_ROOT =.*$|JPEG2K_ROOT = ${libinclude openjpeg}|g ;
-            s|^IMAGEQUANT_ROOT =.*$|IMAGEQUANT_ROOT = ${libinclude' libimagequant}|g ;
-            s|^ZLIB_ROOT =.*$|ZLIB_ROOT = ${libinclude zlib}|g ;
-            s|^LCMS_ROOT =.*$|LCMS_ROOT = ${libinclude lcms2}|g ;
-            s|^TIFF_ROOT =.*$|TIFF_ROOT = ${libinclude libtiff}|g ;
-            s|^TCL_ROOT=.*$|TCL_ROOT = ${libinclude' tcl}|g ;
-            s|self\.disable_platform_guessing = None|self.disable_platform_guessing = True|g ;'
-    export LDFLAGS="$LDFLAGS -L${libwebp}/lib"
-    export CFLAGS="$CFLAGS -I${libwebp}/include"
-  '' + lib.optionalString (lib.versionAtLeast version "7.1.0") ''
-    export LDFLAGS="$LDFLAGS -L${libxcb}/lib"
-    export CFLAGS="$CFLAGS -I${libxcb.dev}/include"
-  '';
+  preConfigure =
+    let
+      libinclude' = pkg: ''"${pkg.out}/lib", "${pkg.out}/include"'';
+      libinclude = pkg: ''"${pkg.out}/lib", "${pkg.dev}/include"'';
+    in
+    ''
+      sed -i "setup.py" \
+          -e 's|^FREETYPE_ROOT =.*$|FREETYPE_ROOT = ${libinclude freetype}|g ;
+              s|^JPEG_ROOT =.*$|JPEG_ROOT = ${libinclude libjpeg}|g ;
+              s|^JPEG2K_ROOT =.*$|JPEG2K_ROOT = ${libinclude openjpeg}|g ;
+              s|^IMAGEQUANT_ROOT =.*$|IMAGEQUANT_ROOT = ${libinclude' libimagequant}|g ;
+              s|^ZLIB_ROOT =.*$|ZLIB_ROOT = ${libinclude zlib}|g ;
+              s|^LCMS_ROOT =.*$|LCMS_ROOT = ${libinclude lcms2}|g ;
+              s|^TIFF_ROOT =.*$|TIFF_ROOT = ${libinclude libtiff}|g ;
+              s|^TCL_ROOT=.*$|TCL_ROOT = ${libinclude' tcl}|g ;
+              s|self\.disable_platform_guessing = None|self.disable_platform_guessing = True|g ;'
+      export LDFLAGS="$LDFLAGS -L${libwebp}/lib"
+      export CFLAGS="$CFLAGS -I${libwebp}/include"
+    ''
+    + lib.optionalString (lib.versionAtLeast version "7.1.0") ''
+      export LDFLAGS="$LDFLAGS -L${libxcb}/lib"
+      export CFLAGS="$CFLAGS -I${libxcb.dev}/include"
+    '';
 }
diff --git a/pkgs/development/python-modules/pillowfight/default.nix b/pkgs/development/python-modules/pillowfight/default.nix
index 097fb810ad88c..e4536867e074d 100644
--- a/pkgs/development/python-modules/pillowfight/default.nix
+++ b/pkgs/development/python-modules/pillowfight/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pillow
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pillow,
 }:
 
 buildPythonPackage rec {
@@ -21,5 +22,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/beanbaginc/pillowfight";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/pims/default.nix b/pkgs/development/python-modules/pims/default.nix
index 5de3ec424f601..ca8a72fff516b 100644
--- a/pkgs/development/python-modules/pims/default.nix
+++ b/pkgs/development/python-modules/pims/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, imageio
-, numpy
-, pytestCheckHook
-, pythonOlder
-, scikit-image
-, slicerator
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  imageio,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  scikit-image,
+  slicerator,
 }:
 
 buildPythonPackage rec {
   pname = "pims";
-  version = "0.6.1";
+  version = "0.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +21,7 @@ buildPythonPackage rec {
     owner = "soft-matter";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-QdllA1QTSJ8vWaSJ0XoUanX53sb4RaOmdXBCFEsoWMU=";
+    hash = "sha256-3SBZk11w6eTZFmETMRJaYncxY38CYne1KzoF5oRgzuY=";
   };
 
   propagatedBuildInputs = [
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     scikit-image
   ];
 
-  pythonImportsCheck = [
-    "pims"
-  ];
+  pythonImportsCheck = [ "pims" ];
 
   pytestFlagsArray = [
     "-W"
diff --git a/pkgs/development/python-modules/pinboard/default.nix b/pkgs/development/python-modules/pinboard/default.nix
index b7dab8e44fc8e..dd4e489defd63 100644
--- a/pkgs/development/python-modules/pinboard/default.nix
+++ b/pkgs/development/python-modules/pinboard/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchFromGitHub }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+}:
 
 buildPythonPackage rec {
   pname = "pinboard";
@@ -16,7 +20,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Python wrapper for Pinboard.in";
+    description = "Python wrapper for Pinboard.in";
     mainProgram = "pinboard";
     maintainers = with maintainers; [ djanatyn ];
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/pinecone-client/default.nix b/pkgs/development/python-modules/pinecone-client/default.nix
index ae21d2042c57e..38ec710a14f43 100644
--- a/pkgs/development/python-modules/pinecone-client/default.nix
+++ b/pkgs/development/python-modules/pinecone-client/default.nix
@@ -1,24 +1,24 @@
-{ lib
-, buildPythonPackage
-, dnspython
-, fetchPypi
-, loguru
-, numpy
-, poetry-core
-, python-dateutil
-, pythonOlder
-, pythonRelaxDepsHook
-, pyyaml
-, requests
-, setuptools
-, tqdm
-, typing-extensions
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  dnspython,
+  fetchPypi,
+  loguru,
+  numpy,
+  poetry-core,
+  python-dateutil,
+  pythonOlder,
+  pyyaml,
+  requests,
+  setuptools,
+  tqdm,
+  typing-extensions,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "pinecone-client";
-  version = "4.0.0";
+  version = "4.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,16 +26,11 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "pinecone_client";
     inherit version;
-    hash = "sha256-1E2yEuZKo0PRTvybCOnkXZi6e2gfYymLhwM1QuoBfyM=";
+    hash = "sha256-sueMKd5QwYDb/nXhXwjIfsGjpPG8ayvh8Myu4atENPo=";
   };
 
-  pythonRelaxDeps = [
-    "urllib3"
-  ];
+  pythonRelaxDeps = [ "urllib3" ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   build-system = [
     setuptools
@@ -57,12 +52,10 @@ buildPythonPackage rec {
   # Tests require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pinecone"
-  ];
+  pythonImportsCheck = [ "pinecone" ];
 
   meta = with lib; {
-    description = "The Pinecone python client";
+    description = "Pinecone python client";
     homepage = "https://www.pinecone.io/";
     changelog = "https://github.com/pinecone-io/pinecone-python-client/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pins/default.nix b/pkgs/development/python-modules/pins/default.nix
index 3d02d7b03728b..30f9c503c34b1 100644
--- a/pkgs/development/python-modules/pins/default.nix
+++ b/pkgs/development/python-modules/pins/default.nix
@@ -1,33 +1,34 @@
-{ lib
-, adlfs
-, appdirs
-, buildPythonPackage
-, fastparquet
-, fetchFromGitHub
-, fsspec
-, gcsfs
-, humanize
-, importlib-metadata
-, importlib-resources
-, jinja2
-, joblib
-, pandas
-, pyarrow
-, pytest-cases
-, pytest-parallel
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, requests
-, s3fs
-, setuptools
-, setuptools-scm
-, xxhash
+{
+  lib,
+  adlfs,
+  appdirs,
+  buildPythonPackage,
+  fastparquet,
+  fetchFromGitHub,
+  fsspec,
+  gcsfs,
+  humanize,
+  importlib-metadata,
+  importlib-resources,
+  jinja2,
+  joblib,
+  pandas,
+  pyarrow,
+  pytest-cases,
+  pytest-parallel,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  requests,
+  s3fs,
+  setuptools,
+  setuptools-scm,
+  xxhash,
 }:
 
 buildPythonPackage rec {
   pname = "pins";
-  version = "0.8.4";
+  version = "0.8.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -36,15 +37,15 @@ buildPythonPackage rec {
     owner = "rstudio";
     repo = "pins-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-rNIjHwFELHoxDxC/T5vPzHA6Ifjz01rJpTK6kjUxOIM=";
+    hash = "sha256-TRwdd0vxqXZgongjooJG5rzTnopUsjfl2I8z3nBocdg=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     appdirs
     fsspec
     humanize
@@ -59,15 +60,9 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    aws = [
-      s3fs
-    ];
-    azure = [
-      adlfs
-    ];
-    gcs = [
-      gcsfs
-    ];
+    aws = [ s3fs ];
+    azure = [ adlfs ];
+    gcs = [ gcsfs ];
   };
 
   nativeCheckInputs = [
@@ -78,13 +73,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "pins"
-  ];
+  pythonImportsCheck = [ "pins" ];
 
-  pytestFlagsArray = [
-    "pins/tests/"
-  ];
+  pytestFlagsArray = [ "pins/tests/" ];
 
   disabledTestPaths = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/pint-pandas/default.nix b/pkgs/development/python-modules/pint-pandas/default.nix
index d446483502236..33a982ce11ec7 100644
--- a/pkgs/development/python-modules/pint-pandas/default.nix
+++ b/pkgs/development/python-modules/pint-pandas/default.nix
@@ -1,13 +1,14 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, wheel
-, pint
-, pandas
-, pytestCheckHook
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  pint,
+  pandas,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
     pandas
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     broken = stdenv.isDarwin;
diff --git a/pkgs/development/python-modules/pint/default.nix b/pkgs/development/python-modules/pint/default.nix
index 9a9029aca0623..db795dc38c47f 100644
--- a/pkgs/development/python-modules/pint/default.nix
+++ b/pkgs/development/python-modules/pint/default.nix
@@ -1,43 +1,49 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# build-system
-, setuptools
-, setuptools-scm
+  # build-system
+  setuptools,
+  setuptools-scm,
 
-# propagates
-, typing-extensions
+  # dependencies
+  appdirs,
+  flexcache,
+  flexparser,
+  typing-extensions,
 
-# tests
-, pytestCheckHook
-, pytest-subtests
-, pytest-benchmark
-, numpy
-, matplotlib
-, uncertainties
+  # tests
+  pytestCheckHook,
+  pytest-subtests,
+  pytest-benchmark,
+  numpy,
+  matplotlib,
+  uncertainties,
 }:
 
 buildPythonPackage rec {
   pname = "pint";
-  version = "0.23";
+  version = "0.24";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
-    inherit version;
-    pname = "Pint";
-    hash = "sha256-4VCbkWBtvFJSfGAKTvdP+sEv/3Boiv8g6QckCTRuybQ=";
+    inherit pname version;
+    hash = "sha256-xsfAJ7ghQT2xrEazt70pZZKEi1rsKaiM/G43j9E3GQM=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    appdirs
+    flexcache
+    flexparser
     typing-extensions
   ];
 
@@ -50,9 +56,7 @@ buildPythonPackage rec {
     uncertainties
   ];
 
-  pytestFlagsArray = [
-    "--benchmark-disable"
-  ];
+  pytestFlagsArray = [ "--benchmark-disable" ];
 
   preCheck = ''
     export HOME=$(mktemp -d)
diff --git a/pkgs/development/python-modules/pip-api/default.nix b/pkgs/development/python-modules/pip-api/default.nix
index 16f1f074d0448..c6239ac4d1511 100644
--- a/pkgs/development/python-modules/pip-api/default.nix
+++ b/pkgs/development/python-modules/pip-api/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pip
-, pretend
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, virtualenv
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pip,
+  pretend,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  virtualenv,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     hash = "sha256-bDM31YpVB0pZMqeGTCbnINSmJc03N0HuU8hcc8nnHgw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    pip
-  ];
+  propagatedBuildInputs = [ pip ];
 
   nativeCheckInputs = [
     pretend
@@ -37,9 +34,7 @@ buildPythonPackage rec {
     virtualenv
   ];
 
-  pythonImportsCheck = [
-    "pip_api"
-  ];
+  pythonImportsCheck = [ "pip_api" ];
 
   disabledTests = [
     "test_hash"
diff --git a/pkgs/development/python-modules/pip-requirements-parser/default.nix b/pkgs/development/python-modules/pip-requirements-parser/default.nix
index 84cc2ed513a17..e72824c804a4b 100644
--- a/pkgs/development/python-modules/pip-requirements-parser/default.nix
+++ b/pkgs/development/python-modules/pip-requirements-parser/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, packaging
-, pyparsing
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  packaging,
+  pyparsing,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -24,22 +25,16 @@ buildPythonPackage rec {
 
   dontConfigure = true;
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     packaging
     pyparsing
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pip_requirements_parser"
-  ];
+  pythonImportsCheck = [ "pip_requirements_parser" ];
 
   disabledTests = [
     "test_RequirementsFile_to_dict"
diff --git a/pkgs/development/python-modules/pip-system-certs/default.nix b/pkgs/development/python-modules/pip-system-certs/default.nix
index 5325550ee04e6..0476aed562123 100644
--- a/pkgs/development/python-modules/pip-system-certs/default.nix
+++ b/pkgs/development/python-modules/pip-system-certs/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, wheel
-, git-versioner
-, wrapt
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  wheel,
+  git-versioner,
+  wrapt,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     git-versioner
   ];
 
-  propagatedBuildInputs = [
-    wrapt
-  ];
+  propagatedBuildInputs = [ wrapt ];
 
   pythonImportsCheck = [
     "pip_system_certs.wrapt_requests"
@@ -39,5 +38,4 @@ buildPythonPackage rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ slotThe ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pip-tools/default.nix b/pkgs/development/python-modules/pip-tools/default.nix
index ba8747cbe2050..10f83a4203d85 100644
--- a/pkgs/development/python-modules/pip-tools/default.nix
+++ b/pkgs/development/python-modules/pip-tools/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, build
-, click
-, fetchPypi
-, pep517
-, pip
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
-, tomli
-, tomli-w
-, wheel
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  build,
+  click,
+  fetchPypi,
+  pep517,
+  pip,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  tomli,
+  tomli-w,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
 
   patches = [ ./fix-setup-py-bad-syntax-detection.patch ];
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     build
@@ -41,9 +40,7 @@ buildPythonPackage rec {
     pip
     setuptools
     wheel
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   __darwinAllowLocalNetworking = true;
 
@@ -73,9 +70,7 @@ buildPythonPackage rec {
     "test_error_in_pyproject_toml"
   ];
 
-  pythonImportsCheck = [
-    "piptools"
-  ];
+  pythonImportsCheck = [ "piptools" ];
 
   meta = with lib; {
     description = "Keeps your pinned dependencies fresh";
diff --git a/pkgs/development/python-modules/pip/default.nix b/pkgs/development/python-modules/pip/default.nix
index 72b7eb88df727..058970320f90d 100644
--- a/pkgs/development/python-modules/pip/default.nix
+++ b/pkgs/development/python-modules/pip/default.nix
@@ -1,23 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, installShellFiles
-, mock
-, scripttest
-, setuptools
-, virtualenv
-, wheel
-, pretend
-, pytest
-
-# docs
-, sphinx
-
-# coupled downsteam dependencies
-, pip-tools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  installShellFiles,
+  wheel,
+  setuptools,
+
+  # docs
+  sphinx,
+
+  # checks
+  freezegun,
+  git,
+  mock,
+  scripttest,
+  virtualenv,
+  pretend,
+  proxy-py,
+  pytestCheckHook,
+  tomli-w,
+  werkzeug,
+
+  # coupled downsteam dependencies
+  pip-tools,
 }:
 
-buildPythonPackage rec {
+let self = buildPythonPackage rec {
   pname = "pip";
   version = "24.0";
   format = "pyproject";
@@ -71,11 +81,21 @@ buildPythonPackage rec {
     cd ..
   '';
 
-  nativeCheckInputs = [ mock scripttest virtualenv pretend pytest ];
-
-  # Pip wants pytest, but tests are not distributed
   doCheck = false;
 
+  nativeCheckInputs = [
+    freezegun
+    git
+    mock
+    scripttest
+    virtualenv
+    pretend
+    pytestCheckHook
+    proxy-py
+    tomli-w
+    werkzeug
+  ];
+
   postInstall = ''
     installManPage docs/build/man/*
 
@@ -85,12 +105,16 @@ buildPythonPackage rec {
       --zsh <($out/bin/pip completion --zsh --no-cache-dir)
   '';
 
-  passthru.tests = { inherit pip-tools; };
+  passthru.tests = {
+    inherit pip-tools;
+    pytest = self.overridePythonAttrs { doCheck = true; };
+  };
 
   meta = {
-    description = "The PyPA recommended tool for installing Python packages";
+    description = "PyPA recommended tool for installing Python packages";
     license = with lib.licenses; [ mit ];
     homepage = "https://pip.pypa.io/";
     changelog = "https://pip.pypa.io/en/stable/news/#v${lib.replaceStrings [ "." ] [ "-" ] version}";
   };
-}
+};
+in self
diff --git a/pkgs/development/python-modules/pipdate/default.nix b/pkgs/development/python-modules/pipdate/default.nix
index 41aaf498d917a..da4cef42adf92 100644
--- a/pkgs/development/python-modules/pipdate/default.nix
+++ b/pkgs/development/python-modules/pipdate/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, appdirs
-, buildPythonPackage
-, fetchPypi
-, importlib-metadata
-, packaging
-, pythonOlder
-, requests
-, rich
-, setuptools
-, wheel
+{
+  lib,
+  appdirs,
+  buildPythonPackage,
+  fetchPypi,
+  importlib-metadata,
+  packaging,
+  pythonOlder,
+  requests,
+  rich,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-G2t+wsVGj7cDbsnWss7XqKU421WqygPzAZkhbTu9Jks=";
   };
 
-  nativeBuildInputs = [
-    wheel
-  ];
+  nativeBuildInputs = [ wheel ];
 
   propagatedBuildInputs = [
     appdirs
@@ -32,9 +31,7 @@ buildPythonPackage rec {
     requests
     rich
     setuptools
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # Tests require network access and pythonImportsCheck requires configuration file
   doCheck = false;
diff --git a/pkgs/development/python-modules/pipdeptree/default.nix b/pkgs/development/python-modules/pipdeptree/default.nix
index 8dad1316c1a7f..7414085188995 100644
--- a/pkgs/development/python-modules/pipdeptree/default.nix
+++ b/pkgs/development/python-modules/pipdeptree/default.nix
@@ -7,6 +7,7 @@
   graphviz,
   hatchling,
   hatch-vcs,
+  packaging,
   pytest-mock,
   pytestCheckHook,
   pip,
@@ -15,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "pipdeptree";
-  version = "2.19.1";
+  version = "2.23.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,7 +25,7 @@ buildPythonPackage rec {
     owner = "tox-dev";
     repo = "pipdeptree";
     rev = "refs/tags/${version}";
-    hash = "sha256-kXRz78UHQtVyHFFnURSjOOXX8Me2I5tG2bX+u2yGyzY=";
+    hash = "sha256-Er47yUaRCtTYQOhttOMIaM2EFf0l5rMH5YV1kpMCDls=";
   };
 
   build-system = [
@@ -32,7 +33,10 @@ buildPythonPackage rec {
     hatch-vcs
   ];
 
-  dependencies = [ pip ];
+  dependencies = [
+    pip
+    packaging
+  ];
 
   passthru.optional-dependencies = {
     graphviz = [ graphviz ];
diff --git a/pkgs/development/python-modules/pipenv-poetry-migrate/default.nix b/pkgs/development/python-modules/pipenv-poetry-migrate/default.nix
index 9f04970f9680d..38f6af66ad9d2 100644
--- a/pkgs/development/python-modules/pipenv-poetry-migrate/default.nix
+++ b/pkgs/development/python-modules/pipenv-poetry-migrate/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, poetry-core
-, tomlkit
-, typer
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  poetry-core,
+  tomlkit,
+  typer,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pipenv-poetry-migrate";
-  version = "0.5.5";
+  version = "0.5.7";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -20,12 +21,10 @@ buildPythonPackage rec {
     owner = "yhino";
     repo = "pipenv-poetry-migrate";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6K8rTfASpK7OvBwUy40X6xzgpfWL7lIJvpfRiGfBK6U=";
+    hash = "sha256-u58+NRSV+mN6Vd1zyR2UM1rEbjZY1pNnLKSRj/JNxhU=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     setuptools # for pkg_resources
@@ -33,9 +32,7 @@ buildPythonPackage rec {
     typer
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "This is simple migration script, migrate pipenv to poetry";
diff --git a/pkgs/development/python-modules/piper-phonemize/default.nix b/pkgs/development/python-modules/piper-phonemize/default.nix
index cd09567a61e36..9b8f929b4ea5d 100644
--- a/pkgs/development/python-modules/piper-phonemize/default.nix
+++ b/pkgs/development/python-modules/piper-phonemize/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, onnxruntime-native
-, piper-phonemize-native
-, pybind11
-, setuptools
+{
+  buildPythonPackage,
+  onnxruntime-native,
+  piper-phonemize-native,
+  pybind11,
+  setuptools,
 }:
 
 buildPythonPackage {
@@ -20,9 +21,7 @@ buildPythonPackage {
     piper-phonemize-native.espeak-ng
   ];
 
-  pythonImportsCheck = [
-    "piper_phonemize"
-  ];
+  pythonImportsCheck = [ "piper_phonemize" ];
 
   # no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/pipetools/default.nix b/pkgs/development/python-modules/pipetools/default.nix
new file mode 100644
index 0000000000000..8ef8830494e1e
--- /dev/null
+++ b/pkgs/development/python-modules/pipetools/default.nix
@@ -0,0 +1,32 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "pipetools";
+  version = "1.1.0";
+
+  # Used github as the src since the pypi package does not include the tests
+  src = fetchFromGitHub {
+    owner = "0101";
+    repo = pname;
+    rev = "6cba9fadab07a16fd85eed16d5cffc609f84c62b";
+    hash = "sha256-BoZFePQCQfz1dkct5p/WQLuXoNX3eLcnKf3Mf0fG6u8=";
+  };
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  propagatedBuildInputs = [ setuptools ];
+
+  pythonImportsCheck = [ "pipetools" ];
+
+  meta = {
+    description = "Library that enables function composition similar to using Unix pipes";
+    homepage = "https://0101.github.io/pipetools/";
+    license = lib.licenses.mit;
+  };
+}
diff --git a/pkgs/development/python-modules/pipx/default.nix b/pkgs/development/python-modules/pipx/default.nix
index 39837783976a7..d3f8f3f43b14e 100644
--- a/pkgs/development/python-modules/pipx/default.nix
+++ b/pkgs/development/python-modules/pipx/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, argcomplete
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, hatch-vcs
-, installShellFiles
-, packaging
-, platformdirs
-, pytestCheckHook
-, pythonOlder
-, tomli
-, userpath
-, git
+{
+  lib,
+  argcomplete,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  hatch-vcs,
+  installShellFiles,
+  packaging,
+  platformdirs,
+  pytestCheckHook,
+  pythonOlder,
+  tomli,
+  userpath,
+  git,
 }:
 
 buildPythonPackage rec {
   pname = "pipx";
-  version = "1.4.3";
+  version = "1.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     owner = "pypa";
     repo = "pipx";
     rev = "refs/tags/${version}";
-    hash = "sha256-NxXOeVXwBhGqi4DUABV8UV+cDER0ROBFdgiyYTzdvuo=";
+    hash = "sha256-B57EIUIwy0XG5bnIwxYKgm3WwckdJWWAeUl84mWC1Ds=";
   };
 
   build-system = [
@@ -38,13 +39,9 @@ buildPythonPackage rec {
     packaging
     platformdirs
     userpath
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
-  nativeBuildInputs = [
-      installShellFiles
-  ];
+  nativeBuildInputs = [ installShellFiles ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -80,11 +77,23 @@ buildPythonPackage rec {
     "legacy_venv"
     "determination"
     "json"
+    "test_auto_update_shared_libs"
+    "test_cli"
+    "test_cli_global"
+    "test_fetch_missing_python"
+    "test_list_does_not_trigger_maintenance"
+    "test_list_pinned_packages"
     "test_list_short"
+    "test_list_standalone_interpreter"
+    "test_list_unused_standalone_interpreters"
+    "test_list_used_standalone_interpreters"
+    "test_pin"
     "test_skip_maintenance"
+    "test_unpin"
+    "test_unpin_warning"
   ];
 
-  postInstall =  ''
+  postInstall = ''
     installShellCompletion --cmd pipx \
       --bash <(${argcomplete}/bin/register-python-argcomplete pipx --shell bash) \
       --zsh <(${argcomplete}/bin/register-python-argcomplete pipx --shell zsh) \
diff --git a/pkgs/development/python-modules/pivy/default.nix b/pkgs/development/python-modules/pivy/default.nix
index ff5a1fdeafa7d..a5ad0d280fd81 100644
--- a/pkgs/development/python-modules/pivy/default.nix
+++ b/pkgs/development/python-modules/pivy/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pkgs, qtbase, qmake, soqt }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pkgs,
+  qtbase,
+  qmake,
+  soqt,
+}:
 
 buildPythonPackage rec {
   pname = "pivy";
@@ -15,14 +23,26 @@ buildPythonPackage rec {
   dontUseCmakeConfigure = true;
 
   nativeBuildInputs = with pkgs; [
-    swig qmake cmake
+    swig
+    qmake
+    cmake
   ];
 
-  buildInputs = with pkgs; with xorg; [
-    coin3d soqt qtbase
-    libGLU libGL
-    libXi libXext libSM libICE libX11
-  ];
+  buildInputs =
+    with pkgs;
+    with xorg;
+    [
+      coin3d
+      soqt
+      qtbase
+      libGLU
+      libGL
+      libXi
+      libXext
+      libSM
+      libICE
+      libX11
+    ];
 
   env.NIX_CFLAGS_COMPILE = toString [
     "-I${qtbase.dev}/include/QtCore"
@@ -32,7 +52,7 @@ buildPythonPackage rec {
   ];
 
   dontUseQmakeConfigure = true;
-  dontWrapQtApps =true;
+  dontWrapQtApps = true;
   doCheck = false;
 
   postPatch = ''
@@ -42,9 +62,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/coin3d/pivy/";
-    description = "A Python binding for Coin";
+    description = "Python binding for Coin";
     license = licenses.bsd0;
     maintainers = with maintainers; [ gebner ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pixcat/default.nix b/pkgs/development/python-modules/pixcat/default.nix
index e316e2c516307..0ca0a099f39bd 100644
--- a/pkgs/development/python-modules/pixcat/default.nix
+++ b/pkgs/development/python-modules/pixcat/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, blessed
-, docopt
-, pillow
-, requests
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  blessed,
+  docopt,
+  pillow,
+  requests,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pixel-font-builder/default.nix b/pkgs/development/python-modules/pixel-font-builder/default.nix
index 0ef77bd5521c9..b080d9f6b6273 100644
--- a/pkgs/development/python-modules/pixel-font-builder/default.nix
+++ b/pkgs/development/python-modules/pixel-font-builder/default.nix
@@ -1,54 +1,55 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, nix-update-script
-, hatch-vcs
-, hatchling
-, bdffont
-, brotli
-, fonttools
-, pypng
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytestCheckHook,
+  nix-update-script,
+  hatchling,
+  fonttools,
+  brotli,
+  bdffont,
+  pcffont,
+  pypng,
 }:
 
 buildPythonPackage rec {
   pname = "pixel-font-builder";
-  version = "0.0.19";
+  version = "0.0.26";
+  pyproject = true;
 
   disabled = pythonOlder "3.11";
 
   src = fetchPypi {
     pname = "pixel_font_builder";
     inherit version;
-    hash = "sha256-f38DyM5hojHfv8k/W6kcHxbOjz43hHW6i4Scm6NbHiQ=";
+    hash = "sha256-bgs2FbOA5tcUXe5+KuVztWGAv5yFxQNBaiZMeZ+ic+8=";
   };
 
-  format = "pyproject";
+  build-system = [ hatchling ];
 
-  nativeBuildInputs = [
-    hatch-vcs
-    hatchling
-  ];
-
-  nativeCheckInputs = [
-    pytestCheckHook
+  dependencies = [
+    fonttools
+    brotli
+    bdffont
+    pcffont
     pypng
   ];
 
-  propagatedBuildInputs = [
-    bdffont
-    brotli
-    fonttools
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "pixel_font_builder" ];
 
   passthru.updateScript = nix-update-script { };
 
   meta = {
     homepage = "https://github.com/TakWolf/pixel-font-builder";
-    description = "A library that helps create pixel style fonts";
+    description = "Library that helps create pixel style fonts";
     platforms = lib.platforms.all;
     license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ h7x4 ];
+    maintainers = with lib.maintainers; [
+      TakWolf
+      h7x4
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pixel-ring/default.nix b/pkgs/development/python-modules/pixel-ring/default.nix
index b0a7e35273288..1628276f5b19d 100644
--- a/pkgs/development/python-modules/pixel-ring/default.nix
+++ b/pkgs/development/python-modules/pixel-ring/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, pyusb
-, spidev
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  pyusb,
+  spidev,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pixelmatch/default.nix b/pkgs/development/python-modules/pixelmatch/default.nix
index b6a7b74701cbb..bda5d66cf4ca4 100644
--- a/pkgs/development/python-modules/pixelmatch/default.nix
+++ b/pkgs/development/python-modules/pixelmatch/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchgit
-, pillow
-, poetry-core
-, pytest-benchmark
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchgit,
+  pillow,
+  poetry-core,
+  pytest-benchmark,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     fetchLFS = true;
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     pillow
@@ -33,13 +32,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "--benchmark-disable"
-  ];
+  pytestFlagsArray = [ "--benchmark-disable" ];
 
-  pythonImportsCheck = [
-    "pixelmatch"
-  ];
+  pythonImportsCheck = [ "pixelmatch" ];
 
   meta = with lib; {
     description = "Pixel-level image comparison library";
diff --git a/pkgs/development/python-modules/pkce/default.nix b/pkgs/development/python-modules/pkce/default.nix
index e302e1c978ca0..08539054316a7 100644
--- a/pkgs/development/python-modules/pkce/default.nix
+++ b/pkgs/development/python-modules/pkce/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pkg-about/default.nix b/pkgs/development/python-modules/pkg-about/default.nix
index fafe0b2e98079..f94b8382274d4 100644
--- a/pkgs/development/python-modules/pkg-about/default.nix
+++ b/pkgs/development/python-modules/pkg-about/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, importlib-metadata
-, importlib-resources
-, setuptools
-, packaging
-, tomli
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  importlib-metadata,
+  importlib-resources,
+  setuptools,
+  packaging,
+  tomli,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -42,13 +43,9 @@ buildPythonPackage rec {
     tomli
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pkg_about"
-  ];
+  pythonImportsCheck = [ "pkg_about" ];
 
   meta = with lib; {
     description = "Python metadata sharing at runtime";
diff --git a/pkgs/development/python-modules/pkgconfig/default.nix b/pkgs/development/python-modules/pkgconfig/default.nix
index 89fc2fd32f740..aa69c7f286ca9 100644
--- a/pkgs/development/python-modules/pkgconfig/default.nix
+++ b/pkgs/development/python-modules/pkgconfig/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, poetry-core
-, pkg-config
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  poetry-core,
+  pkg-config,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pkginfo/default.nix b/pkgs/development/python-modules/pkginfo/default.nix
index 3a79cdbbf0126..589721c4106e0 100644
--- a/pkgs/development/python-modules/pkginfo/default.nix
+++ b/pkgs/development/python-modules/pkginfo/default.nix
@@ -1,26 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "pkginfo";
-  version = "1.10.0";
+  version = "1.11.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Xfc4NTmNENt5+O7NXNhrH20pMXWJ6nB5aZTUk5mvYpc=";
+    hash = "sha256-Lg3KHPTI45ZE7tMkCOqZZu4V4NMkxiuomaOTs8a0Z6o=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pkginfo"
-  ];
+  pythonImportsCheck = [ "pkginfo" ];
 
   meta = with lib; {
     description = "Query metadatdata from sdists, bdists or installed packages";
diff --git a/pkgs/development/python-modules/pkginfo2/default.nix b/pkgs/development/python-modules/pkginfo2/default.nix
index 74d05de7ad975..c46bf6f66ea65 100644
--- a/pkgs/development/python-modules/pkginfo2/default.nix
+++ b/pkgs/development/python-modules/pkginfo2/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-E9EyaN3ncf/34vvvhRe0rwV28VrjqJo79YFgXq2lKWU=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pkginfo2"
-  ];
+  pythonImportsCheck = [ "pkginfo2" ];
 
   meta = with lib; {
     description = "Query metadatdata from sdists, bdists or installed packages";
diff --git a/pkgs/development/python-modules/pkgutil-resolve-name/default.nix b/pkgs/development/python-modules/pkgutil-resolve-name/default.nix
index ddb610b53bcfa..6c7a65e62a532 100644
--- a/pkgs/development/python-modules/pkgutil-resolve-name/default.nix
+++ b/pkgs/development/python-modules/pkgutil-resolve-name/default.nix
@@ -1,10 +1,11 @@
-{ buildPythonPackage
-, fetchPypi
-, fetchpatch
-, lib
-, nix-update-script
-, pythonOlder
-, flit-core
+{
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  lib,
+  nix-update-script,
+  pythonOlder,
+  flit-core,
 }:
 buildPythonPackage rec {
   pname = "pkgutil-resolve-name";
@@ -21,15 +22,14 @@ buildPythonPackage rec {
 
   patches = [
     # Raise flit-core version constrains
-    (fetchpatch { # https://github.com/graingert/pkgutil-resolve-name/pull/5
+    (fetchpatch {
+      # https://github.com/graingert/pkgutil-resolve-name/pull/5
       url = "https://github.com/graingert/pkgutil-resolve-name/commit/042834290c735fa836bb308ce9e93c9f64d67cbe.patch";
       hash = "sha256-M1rcrkdFcoFa3IncPnJaRhnXbelyk56QnMGtmgB6bvk=";
     })
   ];
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   # has no tests
   doCheck = false;
@@ -38,7 +38,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://pypi.org/project/pkgutil_resolve_name/";
-    description = "A backport of Python 3.9’s pkgutil.resolve_name.";
+    description = "Backport of Python 3.9’s pkgutil.resolve_name";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ yajo ];
   };
diff --git a/pkgs/development/python-modules/pkuseg/default.nix b/pkgs/development/python-modules/pkuseg/default.nix
index 1d25692cb5b20..5afc1ceeb89cf 100644
--- a/pkgs/development/python-modules/pkuseg/default.nix
+++ b/pkgs/development/python-modules/pkuseg/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-, pythonAtLeast
-, cython
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  pythonAtLeast,
+  cython,
+  numpy,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pkutils/default.nix b/pkgs/development/python-modules/pkutils/default.nix
index e3957533ea994..724e991ee143d 100644
--- a/pkgs/development/python-modules/pkutils/default.nix
+++ b/pkgs/development/python-modules/pkutils/default.nix
@@ -1,10 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nose3
-, pythonOlder
-, pythonRelaxDepsHook
-, semver
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nose3,
+  pythonOlder,
+  semver,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +21,12 @@ buildPythonPackage rec {
     hash = "sha256-AK+xX+LPz6IVLZedsqMUm7G28ue0s3pXgIzxS4EHHLE=";
   };
 
-  pythonRelaxDeps = [
-    "semver"
-  ];
+  pythonRelaxDeps = [ "semver" ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
-  propagatedBuildInputs = [
-    semver
-  ];
+  propagatedBuildInputs = [ semver ];
 
-  nativeCheckInputs = [
-    nose3
-  ];
+  nativeCheckInputs = [ nose3 ];
 
   checkPhase = ''
     runHook preCheck
@@ -43,12 +34,10 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "pkutils"
-  ];
+  pythonImportsCheck = [ "pkutils" ];
 
   meta = with lib; {
-    description = "A Python packaging utility library";
+    description = "Python packaging utility library";
     homepage = "https://github.com/reubano/pkutils/";
     license = licenses.mit;
     maintainers = with maintainers; [ drewrisinger ];
diff --git a/pkgs/development/python-modules/plac/default.nix b/pkgs/development/python-modules/plac/default.nix
index bc00253aafde3..66aaa4e9425ba 100644
--- a/pkgs/development/python-modules/plac/default.nix
+++ b/pkgs/development/python-modules/plac/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "plac"
-  ];
+  pythonImportsCheck = [ "plac" ];
 
   meta = with lib; {
     description = "Parsing the Command Line the Easy Way";
diff --git a/pkgs/development/python-modules/plaid-python/default.nix b/pkgs/development/python-modules/plaid-python/default.nix
index f3a92c1954c85..5bd7bc2ada3e8 100644
--- a/pkgs/development/python-modules/plaid-python/default.nix
+++ b/pkgs/development/python-modules/plaid-python/default.nix
@@ -1,25 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nulltype
-, python-dateutil
-, urllib3
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nulltype,
+  python-dateutil,
+  urllib3,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "plaid-python";
-  version = "21.0.0";
-  format = "setuptools";
+  version = "23.0.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-ksYTV10FGUjBIkJru4CiJIlPLT4S7fbpsNrjYczTFlI=";
+    pname = "plaid_python";
+    inherit version;
+    hash = "sha256-1/819y1zcjoVwv5ITdvhno/X7piWdO22vYMovupwKXo=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     nulltype
     python-dateutil
     urllib3
@@ -28,9 +33,7 @@ buildPythonPackage rec {
   # Tests require a Client IP
   doCheck = false;
 
-  pythonImportsCheck = [
-    "plaid"
-  ];
+  pythonImportsCheck = [ "plaid" ];
 
   meta = with lib; {
     description = "Python client library for the Plaid API and Link";
diff --git a/pkgs/development/python-modules/plantuml-markdown/default.nix b/pkgs/development/python-modules/plantuml-markdown/default.nix
index 8013e90e71f82..c4e53362c78cd 100644
--- a/pkgs/development/python-modules/plantuml-markdown/default.nix
+++ b/pkgs/development/python-modules/plantuml-markdown/default.nix
@@ -1,19 +1,20 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, plantuml
-, markdown
-, requests
-, six
-, runCommand
-, writeText
-, plantuml-markdown
-, pythonOlder
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  plantuml,
+  markdown,
+  requests,
+  six,
+  runCommand,
+  writeText,
+  plantuml-markdown,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "plantuml-markdown";
-  version = "3.9.5";
+  version = "3.9.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +23,7 @@ buildPythonPackage rec {
     owner = "mikitex70";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-bfbji517y0/PXMfLg2gGWlogg7IPhXvQ5vekLzc4/ow=";
+    hash = "sha256-/lsu7kiUyQ6LUFINX+/aCFSKm1pGyIfUzSuUehwCz7I=";
   };
 
   propagatedBuildInputs = [
@@ -35,9 +36,7 @@ buildPythonPackage rec {
   # The package uses a custom script that downloads a certain version of plantuml for testing.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "plantuml_markdown"
-  ];
+  pythonImportsCheck = [ "plantuml_markdown" ];
 
   passthru.tests.example-doc =
     let
@@ -47,10 +46,7 @@ buildPythonPackage rec {
         ```
       '';
     in
-    runCommand "plantuml-markdown-example-doc"
-      {
-        nativeBuildInputs = [ plantuml-markdown ];
-      } ''
+    runCommand "plantuml-markdown-example-doc" { nativeBuildInputs = [ plantuml-markdown ]; } ''
       markdown_py -x plantuml_markdown ${exampleDoc} > $out
 
       ! grep -q "Error" $out
diff --git a/pkgs/development/python-modules/plantuml/default.nix b/pkgs/development/python-modules/plantuml/default.nix
index 1053403dcf71d..068bbfd899af7 100644
--- a/pkgs/development/python-modules/plantuml/default.nix
+++ b/pkgs/development/python-modules/plantuml/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
   # Runtime dependencies
-, httplib2
-, six
+  httplib2,
+  six,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/plaster-pastedeploy/default.nix b/pkgs/development/python-modules/plaster-pastedeploy/default.nix
index 722d06a103778..94ff14306b77c 100644
--- a/pkgs/development/python-modules/plaster-pastedeploy/default.nix
+++ b/pkgs/development/python-modules/plaster-pastedeploy/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, plaster
-, pastedeploy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  plaster,
+  pastedeploy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,10 @@ buildPythonPackage rec {
     hash = "sha256-viYubS5BpyZIddqi/ihQy7BhVyi83JKCj9xyc244FBI=";
   };
 
-  propagatedBuildInputs = [ plaster pastedeploy ];
+  propagatedBuildInputs = [
+    plaster
+    pastedeploy
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/plaster/default.nix b/pkgs/development/python-modules/plaster/default.nix
index b0ce5c418df45..3585d4a7721b6 100644
--- a/pkgs/development/python-modules/plaster/default.nix
+++ b/pkgs/development/python-modules/plaster/default.nix
@@ -1,5 +1,8 @@
-{ buildPythonPackage, fetchPypi
-, pytest, pytest-cov
+{
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  pytest-cov,
 }:
 
 buildPythonPackage rec {
@@ -16,5 +19,8 @@ buildPythonPackage rec {
     py.test
   '';
 
-  nativeCheckInputs = [ pytest pytest-cov ];
+  nativeCheckInputs = [
+    pytest
+    pytest-cov
+  ];
 }
diff --git a/pkgs/development/python-modules/platformdirs/default.nix b/pkgs/development/python-modules/platformdirs/default.nix
index 7c45f33cb598c..977127a694e69 100644
--- a/pkgs/development/python-modules/platformdirs/default.nix
+++ b/pkgs/development/python-modules/platformdirs/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, appdirs
-, buildPythonPackage
-, fetchFromGitHub
-, hatch-vcs
-, hatchling
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  appdirs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatch-vcs,
+  hatchling,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "platformdirs";
-  version = "4.2.0";
+  version = "4.2.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -20,7 +21,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-DjRqOIkyhkA3Z1gl2o78R4kp23qJBj+pRmDBld8AbDI=";
+    hash = "sha256-WsHB+Si8RnJ9b8dYA9m7YRin3UYdJlL1v6/v8SExXtY=";
   };
 
   nativeBuildInputs = [
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "platformdirs"
-  ];
+  pythonImportsCheck = [ "platformdirs" ];
 
   meta = with lib; {
     description = "Module for determining appropriate platform-specific directories";
diff --git a/pkgs/development/python-modules/playsound/default.nix b/pkgs/development/python-modules/playsound/default.nix
index 0eb7e56c7b2be..7fb3220810d37 100644
--- a/pkgs/development/python-modules/playsound/default.nix
+++ b/pkgs/development/python-modules/playsound/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/playwright-stealth/default.nix b/pkgs/development/python-modules/playwright-stealth/default.nix
index a805d36f432f5..0ee048182ba6a 100644
--- a/pkgs/development/python-modules/playwright-stealth/default.nix
+++ b/pkgs/development/python-modules/playwright-stealth/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, playwright
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  playwright,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,20 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-ZWmuVwjEgrPmfxjvws3TdocW6tyNH++fyRfKQ0oJ6bo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    playwright
-  ];
+  propagatedBuildInputs = [ playwright ];
 
   # Tests require Chromium binary
   doCheck = false;
 
-  pythonImportsCheck = [
-    "playwright_stealth"
-  ];
+  pythonImportsCheck = [ "playwright_stealth" ];
 
   meta = with lib; {
     description = "Playwright stealth";
diff --git a/pkgs/development/python-modules/playwright/default.nix b/pkgs/development/python-modules/playwright/default.nix
index ff22cdf0cb8d8..12b98826b7a71 100644
--- a/pkgs/development/python-modules/playwright/default.nix
+++ b/pkgs/development/python-modules/playwright/default.nix
@@ -1,17 +1,17 @@
-{ lib
-, stdenv
-, auditwheel
-, buildPythonPackage
-, git
-, greenlet
-, fetchFromGitHub
-, pyee
-, python
-, pythonOlder
-, setuptools
-, setuptools-scm
-, playwright-driver
-, pythonRelaxDepsHook
+{
+  lib,
+  stdenv,
+  auditwheel,
+  buildPythonPackage,
+  git,
+  greenlet,
+  fetchFromGitHub,
+  pyee,
+  python,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  playwright-driver,
 }:
 
 let
@@ -20,7 +20,7 @@ in
 buildPythonPackage rec {
   pname = "playwright";
   # run ./pkgs/development/python-modules/playwright/update.sh to update
-  version = "1.42.0";
+  version = "1.44.0";
   pyproject = true;
   disabled = pythonOlder "3.7";
 
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "microsoft";
     repo = "playwright-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GfaZ6wMbJShyTTcV9uulmsL8OI/OA+YDMvS2s3ePnjs=";
+    hash = "sha256-RM04I1QiyJhPvKdAdy8w2GmOOR+BWilxrZ5QUrwxBWA=";
   };
 
   patches = [
@@ -51,7 +51,7 @@ buildPythonPackage rec {
 
     substituteInPlace setup.py \
       --replace "setuptools-scm==8.0.4" "setuptools-scm" \
-      --replace "wheel==0.41.2" "wheel"
+      --replace-fail "wheel==0.42.0" "wheel"
 
     substituteInPlace pyproject.toml \
       --replace 'requires = ["setuptools==68.2.2", "setuptools-scm==8.0.4", "wheel==0.42.0", "auditwheel==5.4.0"]' \
@@ -67,17 +67,13 @@ buildPythonPackage rec {
       --replace "@driver@" "${driver}/bin/playwright"
   '';
 
-
   nativeBuildInputs = [
     git
     setuptools-scm
     setuptools
-    pythonRelaxDepsHook
   ] ++ lib.optionals stdenv.isLinux [ auditwheel ];
 
-  pythonRelaxDeps = [
-    "pyee"
-  ];
+  pythonRelaxDeps = [ "pyee" ];
 
   propagatedBuildInputs = [
     greenlet
@@ -91,9 +87,7 @@ buildPythonPackage rec {
   # Skip tests because they require network access.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "playwright"
-  ];
+  pythonImportsCheck = [ "playwright" ];
 
   passthru = {
     inherit driver;
@@ -109,7 +103,15 @@ buildPythonPackage rec {
     mainProgram = "playwright";
     homepage = "https://github.com/microsoft/playwright-python";
     license = licenses.asl20;
-    maintainers = with maintainers; [ techknowlogick yrd ];
-    platforms = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
+    maintainers = with maintainers; [
+      techknowlogick
+      yrd
+    ];
+    platforms = [
+      "x86_64-linux"
+      "aarch64-linux"
+      "x86_64-darwin"
+      "aarch64-darwin"
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/playwrightcapture/default.nix b/pkgs/development/python-modules/playwrightcapture/default.nix
index 37766343c2699..439743042d1ef 100644
--- a/pkgs/development/python-modules/playwrightcapture/default.nix
+++ b/pkgs/development/python-modules/playwrightcapture/default.nix
@@ -1,16 +1,17 @@
 {
   lib,
+  aiohttp,
+  aiohttp-socks,
   beautifulsoup4,
   buildPythonPackage,
   dateparser,
   fetchFromGitHub,
-  playwright,
   playwright-stealth,
+  playwright,
   poetry-core,
   puremagic,
   pydub,
   pythonOlder,
-  pythonRelaxDepsHook,
   pytz,
   requests,
   setuptools,
@@ -21,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "playwrightcapture";
-  version = "1.24.7";
+  version = "1.24.11";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -30,7 +31,7 @@ buildPythonPackage rec {
     owner = "Lookyloo";
     repo = "PlaywrightCapture";
     rev = "refs/tags/v${version}";
-    hash = "sha256-mCwV5rgJLns4LvCVwnGAJeqs426GK/8rfp93YKH34VA=";
+    hash = "sha256-aDD+eovq6V7c69ORqekcfmDgTGJqvd2lYMIQ2+9TFYY=";
   };
 
   pythonRelaxDeps = [
@@ -42,9 +43,10 @@ buildPythonPackage rec {
 
   build-system = [ poetry-core ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
+    aiohttp
+    aiohttp-socks
     beautifulsoup4
     dateparser
     playwright
diff --git a/pkgs/development/python-modules/pleroma-bot/default.nix b/pkgs/development/python-modules/pleroma-bot/default.nix
index 773b9bccdf5f4..9678a3449f823 100644
--- a/pkgs/development/python-modules/pleroma-bot/default.nix
+++ b/pkgs/development/python-modules/pleroma-bot/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, requests-mock
-, oauthlib
-, requests-oauthlib
-, requests
-, pyaml
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  requests-mock,
+  oauthlib,
+  requests-oauthlib,
+  requests,
+  pyaml,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
     requests-mock
   ];
 
-  pythonImportsCheck = [
-    "pleroma_bot"
-  ];
+  pythonImportsCheck = [ "pleroma_bot" ];
 
   meta = with lib; {
     description = "Bot for mirroring one or multiple Twitter accounts in Pleroma/Mastodon";
diff --git a/pkgs/development/python-modules/plexapi/default.nix b/pkgs/development/python-modules/plexapi/default.nix
index 1519e44dac0bd..0e2717c3b2bed 100644
--- a/pkgs/development/python-modules/plexapi/default.nix
+++ b/pkgs/development/python-modules/plexapi/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
-, setuptools
-, tqdm
-, websocket-client
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
+  setuptools,
+  tqdm,
+  websocket-client,
 }:
 
 buildPythonPackage rec {
   pname = "plexapi";
-  version = "4.15.12";
+  version = "4.15.13";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,12 +20,10 @@ buildPythonPackage rec {
     owner = "pkkid";
     repo = "python-plexapi";
     rev = "refs/tags/${version}";
-    hash = "sha256-i+Vg1SWxDKprZu+crf0iallaAIApDpidJ//2mivAn18=";
+    hash = "sha256-i898cHYOSrzSreWBmW7W9QBUoyIDKwmt4k2wgutN3bw=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     requests
@@ -35,9 +34,7 @@ buildPythonPackage rec {
   # Tests require a running Plex instance
   doCheck = false;
 
-  pythonImportsCheck = [
-    "plexapi"
-  ];
+  pythonImportsCheck = [ "plexapi" ];
 
   meta = with lib; {
     description = "Python bindings for the Plex API";
diff --git a/pkgs/development/python-modules/plexauth/default.nix b/pkgs/development/python-modules/plexauth/default.nix
index fd7f11e14d27e..caa1dcdf1d74c 100644
--- a/pkgs/development/python-modules/plexauth/default.nix
+++ b/pkgs/development/python-modules/plexauth/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, aiohttp, isPy27 }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  aiohttp,
+  isPy27,
+}:
 
 buildPythonPackage rec {
   pname = "plexauth";
@@ -19,9 +25,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   # at least guarantee the module can be imported
-  pythonImportsCheck = [
-    "plexauth"
-  ];
+  pythonImportsCheck = [ "plexauth" ];
 
   meta = with lib; {
     homepage = "https://github.com/jjlawren/python-plexauth/";
diff --git a/pkgs/development/python-modules/plexwebsocket/default.nix b/pkgs/development/python-modules/plexwebsocket/default.nix
index eaaed97c01b76..bd361fb4493e5 100644
--- a/pkgs/development/python-modules/plexwebsocket/default.nix
+++ b/pkgs/development/python-modules/plexwebsocket/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-gT9RWpaR33ROs6ttjH2joNPi99Ng94Tp/R9eZY1eGZk=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Package does not include tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "plexwebsocket"
-  ];
+  pythonImportsCheck = [ "plexwebsocket" ];
 
   meta = with lib; {
     description = "Library to react to events issued over Plex websockets";
diff --git a/pkgs/development/python-modules/plone-testing/default.nix b/pkgs/development/python-modules/plone-testing/default.nix
index ce7f0f3ef626c..044bf148a336b 100644
--- a/pkgs/development/python-modules/plone-testing/default.nix
+++ b/pkgs/development/python-modules/plone-testing/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
-, zope-testing
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  zope-testing,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -15,7 +16,11 @@ buildPythonPackage rec {
     sha256 = "sha256-xdzm4LG/W5ziYXaXbCOfQbZYZvaUUih3lWhkLzWqeUc=";
   };
 
-  propagatedBuildInputs = [ six setuptools zope-testing ];
+  propagatedBuildInputs = [
+    six
+    setuptools
+    zope-testing
+  ];
 
   # Huge amount of testing dependencies (including Zope2)
   doCheck = false;
diff --git a/pkgs/development/python-modules/plotext/default.nix b/pkgs/development/python-modules/plotext/default.nix
index 7342067b8ead0..94ba9f6c5d21a 100644
--- a/pkgs/development/python-modules/plotext/default.nix
+++ b/pkgs/development/python-modules/plotext/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/plotly/default.nix b/pkgs/development/python-modules/plotly/default.nix
index a0e26e354ed9a..98ade26c76949 100644
--- a/pkgs/development/python-modules/plotly/default.nix
+++ b/pkgs/development/python-modules/plotly/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytz
-, requests
-, six
-, tenacity
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytz,
+  requests,
+  six,
+  tenacity,
 }:
 
 buildPythonPackage rec {
   pname = "plotly";
-  version = "5.21.0";
+  version = "5.22.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-aSQ/jBZdS+JsDfHG8LeyWOLf7v4DJ2NAStfn+318IHM=";
+    hash = "sha256-hZ/a29hrV3CuJGblQrdhskfRxrSdrtdluVu4xwY+dGk=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/plotnine/default.nix b/pkgs/development/python-modules/plotnine/default.nix
index fb86d44472d26..6368f8c667853 100644
--- a/pkgs/development/python-modules/plotnine/default.nix
+++ b/pkgs/development/python-modules/plotnine/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "plotnine";
-  version = "0.13.5";
+  version = "0.13.6";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "has2k1";
     repo = "plotnine";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vGxsBcY4CRT4rBUq0AQ4oo0etKK+CtUD487VvnoK/rI=";
+    hash = "sha256-/yxRYK3ZTrYj+l3TQhFllyICnJjCZPd4ebNurCLZAYg=";
   };
 
   postPatch = ''
@@ -57,6 +57,12 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "plotnine" ];
 
+  disabledTests = [
+    # Tries to change locale. The issued warning causes this test to fail.
+    # UserWarning: Could not set locale to English/United States. Some date-related tests may fail
+    "test_no_after_scale_warning"
+  ];
+
   disabledTestPaths = [
     # Assertion Errors:
     # Generated plot images do not exactly match the expected files.
diff --git a/pkgs/development/python-modules/pluggy/default.nix b/pkgs/development/python-modules/pluggy/default.nix
index a768e8ce942f9..ff03c4a6a5336 100644
--- a/pkgs/development/python-modules/pluggy/default.nix
+++ b/pkgs/development/python-modules/pluggy/default.nix
@@ -1,15 +1,16 @@
-{ buildPythonPackage
-, lib
-, fetchFromGitHub
-, setuptools-scm
-, pythonOlder
-, importlib-metadata
-, callPackage
+{
+  buildPythonPackage,
+  lib,
+  fetchFromGitHub,
+  setuptools-scm,
+  pythonOlder,
+  importlib-metadata,
+  callPackage,
 }:
 
 buildPythonPackage rec {
   pname = "pluggy";
-  version = "1.4.0";
+  version = "1.5.0";
 
   disabled = pythonOlder "3.8";
 
@@ -19,10 +20,10 @@ buildPythonPackage rec {
     owner = "pytest-dev";
     repo = "pluggy";
     rev = "refs/tags/${version}";
-    hash = "sha256-1XHJwODmpYQkYZvnZck6RrtT4lOeCf8cr1QFx9DCbzw=";
+    hash = "sha256-f0DxyZZk6RoYtOEXLACcsOn2B+Hot4U4g5Ogr/hKmOE=";
   };
 
-  nativeBuildInputs = [ setuptools-scm ];
+  build-system = [ setuptools-scm ];
 
   # To prevent infinite recursion with pytest
   doCheck = false;
diff --git a/pkgs/development/python-modules/pluggy/tests.nix b/pkgs/development/python-modules/pluggy/tests.nix
index dc6e16e7b2d79..8eec02011202e 100644
--- a/pkgs/development/python-modules/pluggy/tests.nix
+++ b/pkgs/development/python-modules/pluggy/tests.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, pluggy
-, pytestCheckHook
+{
+  buildPythonPackage,
+  pluggy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/pluginbase/default.nix b/pkgs/development/python-modules/pluginbase/default.nix
index be228d2318655..cc330ac93f9b6 100644
--- a/pkgs/development/python-modules/pluginbase/default.nix
+++ b/pkgs/development/python-modules/pluginbase/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchPypi, buildPythonPackage, pytest }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pytest,
+}:
 
 buildPythonPackage rec {
   version = "1.0.1";
@@ -19,7 +24,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/mitsuhiko/pluginbase";
-    description = "A support library for building plugins sytems in Python";
+    description = "Support library for building plugins sytems in Python";
     license = licenses.bsd3;
     platforms = platforms.all;
   };
diff --git a/pkgs/development/python-modules/plugincode/default.nix b/pkgs/development/python-modules/plugincode/default.nix
index 6e49474cc63d2..9d82132c196b3 100644
--- a/pkgs/development/python-modules/plugincode/default.nix
+++ b/pkgs/development/python-modules/plugincode/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, setuptools-scm
-, click
-, commoncode
-, pluggy
-, pytestCheckHook
-, pytest-xdist
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  setuptools-scm,
+  click,
+  commoncode,
+  pluggy,
+  pytestCheckHook,
+  pytest-xdist,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
 
   dontConfigure = true;
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     click
@@ -39,9 +38,8 @@ buildPythonPackage rec {
     pytest-xdist
   ];
 
-  pythonImportsCheck = [
-    "plugincode"
-  ];
+  # wants to read /etc/os-release and crashes because that is not available in the sandbox
+  # pythonImportsCheck = [ "plugincode" ];
 
   disabledTests = [
     # We don't want black as an input
diff --git a/pkgs/development/python-modules/plugnplay/default.nix b/pkgs/development/python-modules/plugnplay/default.nix
index 1b8449ffe7cec..4882641e538ea 100644
--- a/pkgs/development/python-modules/plugnplay/default.nix
+++ b/pkgs/development/python-modules/plugnplay/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 buildPythonPackage rec {
   pname = "plugnplay";
@@ -15,12 +16,10 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "plugnplay"
-  ];
+  pythonImportsCheck = [ "plugnplay" ];
 
   meta = with lib; {
-    description = "A Generic plug-in system for python applications";
+    description = "Generic plug-in system for python applications";
     homepage = "https://github.com/daltonmatos/plugnplay";
     license = licenses.gpl2Only;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/plugp100/default.nix b/pkgs/development/python-modules/plugp100/default.nix
new file mode 100644
index 0000000000000..cd2c09467ffd3
--- /dev/null
+++ b/pkgs/development/python-modules/plugp100/default.nix
@@ -0,0 +1,51 @@
+{
+  stdenv,
+  pkgs,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  certifi,
+  scapy,
+  urllib3,
+  semantic-version,
+  aiohttp,
+  jsons,
+  requests,
+  # Test inputs
+  pytestCheckHook,
+  pyyaml,
+  pytest-asyncio,
+  async-timeout,
+  }:
+
+buildPythonPackage rec {
+  pname = "plugp100";
+  version = "5.1.3";
+
+  src = fetchFromGitHub {
+    owner = "petretiandrea";
+    repo = "plugp100";
+    rev = version;
+    sha256 = "sha256-V+9cVBMN8H4oFU51T9BDrLF46xgQHqIsMj8nuPedUGA=";
+  };
+
+  propagatedBuildInputs =
+    [ certifi jsons requests aiohttp semantic-version scapy urllib3 pyyaml ];
+
+  nativeCheckInputs = [ pytestCheckHook pytest-asyncio async-timeout ];
+
+  disabledTestPaths = [
+    "tests/integration/"
+    "tests/unit/hub_child/"
+    "tests/unit/test_plug_strip.py"
+    "tests/unit/test_hub.py "
+    "tests/unit/test_klap_protocol.py"
+  ];
+
+  meta = with lib; {
+    description = "Python library to control Tapo Plug P100 devices";
+    homepage = "https://github.com/petretiandrea/plugp100";
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ pyle ];
+  };
+}
diff --git a/pkgs/development/python-modules/plugwise/default.nix b/pkgs/development/python-modules/plugwise/default.nix
index 358b81eb4c209..e40bea699f8b4 100644
--- a/pkgs/development/python-modules/plugwise/default.nix
+++ b/pkgs/development/python-modules/plugwise/default.nix
@@ -22,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "plugwise";
-  version = "0.37.3";
+  version = "0.37.4.1";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -31,7 +31,7 @@ buildPythonPackage rec {
     owner = "plugwise";
     repo = "python-plugwise";
     rev = "refs/tags/v${version}";
-    hash = "sha256-aQz0p+DNi1XVoFwdFjc3RjpHqA2kGf4pU1QS6m271gU=";
+    hash = "sha256-4B/rnwrkeridIgMD8gUVYXYVbrmQhQqDOa8Ot1ae/Ls=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/plum-py/default.nix b/pkgs/development/python-modules/plum-py/default.nix
index 721786e608d9d..c2bca8e10fb6c 100644
--- a/pkgs/development/python-modules/plum-py/default.nix
+++ b/pkgs/development/python-modules/plum-py/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, baseline
-, buildPythonPackage
-, fetchFromGitLab
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  baseline,
+  buildPythonPackage,
+  fetchFromGitLab,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,13 +31,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "plum"
-  ];
+  pythonImportsCheck = [ "plum" ];
 
-  pytestFlagsArray = [
-    "tests"
-  ];
+  pytestFlagsArray = [ "tests" ];
 
   disabledTestPaths = [
     # tests enum.IntFlag behaviour which has been disallowed in python 3.11.6
diff --git a/pkgs/development/python-modules/plumbum/default.nix b/pkgs/development/python-modules/plumbum/default.nix
index 0eb7baadcfbfb..b1722a47a516c 100644
--- a/pkgs/development/python-modules/plumbum/default.nix
+++ b/pkgs/development/python-modules/plumbum/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, hatch-vcs
-, openssh
-, ps
-, psutil
-, pytest-mock
-, pytest-timeout
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  hatch-vcs,
+  openssh,
+  ps,
+  psutil,
+  pytest-mock,
+  pytest-timeout,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pluthon/default.nix b/pkgs/development/python-modules/pluthon/default.nix
index 1ff7d05300023..537eebe52a503 100644
--- a/pkgs/development/python-modules/pluthon/default.nix
+++ b/pkgs/development/python-modules/pluthon/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, setuptools
-, pythonOlder
-# Python deps
-, uplc
-, graphlib-backport
-, ordered-set
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  setuptools,
+  pythonOlder,
+  # Python deps
+  uplc,
+  graphlib-backport,
+  ordered-set,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/plux/default.nix b/pkgs/development/python-modules/plux/default.nix
index b778a2dd17219..f3ec73ed07fd5 100644
--- a/pkgs/development/python-modules/plux/default.nix
+++ b/pkgs/development/python-modules/plux/default.nix
@@ -1,16 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pytestCheckHook
-, setuptools
-, stevedore
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  setuptools,
+  stevedore,
+  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "plux";
-  version = "1.5.0";
+  version = "1.10.0";
   pyproject = true;
 
   # Tests are not available from PyPi
@@ -18,21 +18,21 @@ buildPythonPackage rec {
     owner = "localstack";
     repo = "plux";
     rev = "refs/tags/v${version}";
-    hash = "sha256-XHRQTgvxXJCjCD/9Invf/5OCtp12A5poRUv8tR9DJsk=";
+    hash = "sha256-krlI7WimBluzkw3MVtGeotK5NFf+gsaUfL4CfhNPfpE=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     wheel
   ];
 
-  propagatedBuildInputs = [
-    stevedore
-  ];
+  dependencies = [ stevedore ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  preCheck = ''
+    export HOME=$TMPDIR
+  '';
 
   pythonImportsCheck = [ "plugin.core" ];
 
diff --git a/pkgs/development/python-modules/ply/default.nix b/pkgs/development/python-modules/ply/default.nix
index fca97226d6775..e4a4118bb53f8 100644
--- a/pkgs/development/python-modules/ply/default.nix
+++ b/pkgs/development/python-modules/ply/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/plyer/default.nix b/pkgs/development/python-modules/plyer/default.nix
index c6af90310c7b5..6a77e4a56005a 100644
--- a/pkgs/development/python-modules/plyer/default.nix
+++ b/pkgs/development/python-modules/plyer/default.nix
@@ -1,4 +1,12 @@
-{ stdenv, lib, buildPythonPackage, fetchFromGitHub, fetchpatch, keyring, mock, pytestCheckHook }:
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  keyring,
+  mock,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "plyer";
@@ -25,7 +33,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ keyring ];
 
-  nativeCheckInputs = [ mock pytestCheckHook ];
+  nativeCheckInputs = [
+    mock
+    pytestCheckHook
+  ];
 
   pytestFlagsArray = [ "plyer/tests" ];
   disabledTests = [
diff --git a/pkgs/development/python-modules/plyfile/default.nix b/pkgs/development/python-modules/plyfile/default.nix
index 2eff69c4ad8da..419d58964639f 100644
--- a/pkgs/development/python-modules/plyfile/default.nix
+++ b/pkgs/development/python-modules/plyfile/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
 
-# build-system
-, pdm-pep517
+  # build-system
+  pdm-pep517,
 
-# dependencies
-, numpy
+  # dependencies
+  numpy,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,22 +25,15 @@ buildPythonPackage rec {
     hash = "sha256-HlyqljfjuaZoG5f2cfDQj+7KS0en7pW2PPEnpvH8U+E=";
   };
 
-  nativeBuildInputs = [
-    pdm-pep517
-  ];
+  nativeBuildInputs = [ pdm-pep517 ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "NumPy-based text/binary PLY file reader/writer for Python";
-    homepage    = "https://github.com/dranjan/python-plyfile";
+    homepage = "https://github.com/dranjan/python-plyfile";
     maintainers = with maintainers; [ abbradar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/plyplus/default.nix b/pkgs/development/python-modules/plyplus/default.nix
index 209985815ffca..53761eb0a4d09 100644
--- a/pkgs/development/python-modules/plyplus/default.nix
+++ b/pkgs/development/python-modules/plyplus/default.nix
@@ -1,4 +1,10 @@
-{ lib, fetchPypi, buildPythonPackage, ply, isPy3k }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  ply,
+  isPy3k,
+}:
 buildPythonPackage rec {
   pname = "plyplus";
   version = "0.7.5";
@@ -15,7 +21,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/erezsh/plyplus";
-    description = "A general-purpose parser built on top of PLY";
+    description = "General-purpose parser built on top of PLY";
     maintainers = with lib.maintainers; [ twey ];
     license = lib.licenses.mit;
   };
diff --git a/pkgs/development/python-modules/plyvel/default.nix b/pkgs/development/python-modules/plyvel/default.nix
index 794585c54b800..5e7874057258a 100644
--- a/pkgs/development/python-modules/plyvel/default.nix
+++ b/pkgs/development/python-modules/plyvel/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pkgs
-, pytest
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pkgs,
+  pytest,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pmdarima/default.nix b/pkgs/development/python-modules/pmdarima/default.nix
index 9592ae32e09d6..0b03e9bcf6bb4 100644
--- a/pkgs/development/python-modules/pmdarima/default.nix
+++ b/pkgs/development/python-modules/pmdarima/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cython
-, joblib
-, matplotlib
-, numpy
-, pandas
-, scikit-learn
-, scipy
-, statsmodels
-, urllib3
-, pythonOlder
-, python
-, pytest7CheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cython,
+  joblib,
+  matplotlib,
+  numpy,
+  pandas,
+  scikit-learn,
+  scipy,
+  statsmodels,
+  urllib3,
+  pythonOlder,
+  python,
+  pytest7CheckHook,
 }:
 
 buildPythonPackage rec {
@@ -52,7 +53,7 @@ buildPythonPackage rec {
     pytest7CheckHook
   ];
 
-  disabledTests= [
+  disabledTests = [
     # touches internet
     "test_load_from_web"
   ];
@@ -60,7 +61,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pmdarima" ];
 
   meta = with lib; {
-    description = "A statistical library designed to fill the void in Python's time series analysis capabilities, including the equivalent of R's auto.arima function";
+    description = "Statistical library designed to fill the void in Python's time series analysis capabilities, including the equivalent of R's auto.arima function";
     homepage = "https://github.com/alkaline-ml/pmdarima";
     changelog = "https://github.com/alkaline-ml/pmdarima/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pmdsky-debug-py/default.nix b/pkgs/development/python-modules/pmdsky-debug-py/default.nix
index 17511c8fc23b8..839ed1f303323 100644
--- a/pkgs/development/python-modules/pmdsky-debug-py/default.nix
+++ b/pkgs/development/python-modules/pmdsky-debug-py/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
 }:
 
 #This package is auto-generated. It could totally be possible to generate it from upstream, but seems unecessary
diff --git a/pkgs/development/python-modules/pmsensor/default.nix b/pkgs/development/python-modules/pmsensor/default.nix
index 48156a3eae95c..0ec79d38ff130 100644
--- a/pkgs/development/python-modules/pmsensor/default.nix
+++ b/pkgs/development/python-modules/pmsensor/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyserial
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyserial,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     sha256 = "7fc03aafb791ca70d847c9ab97cf181bc7d8f7345efb4b0c3f66c07b9c7dee69";
   };
 
-  propagatedBuildInputs = [
-    pyserial
-  ];
+  propagatedBuildInputs = [ pyserial ];
 
   # no tests implemented
   doCheck = false;
diff --git a/pkgs/development/python-modules/pmw/default.nix b/pkgs/development/python-modules/pmw/default.nix
index ab9f3fb60b286..98988926b21e4 100644
--- a/pkgs/development/python-modules/pmw/default.nix
+++ b/pkgs/development/python-modules/pmw/default.nix
@@ -1,4 +1,9 @@
-{ lib , buildPythonPackage , fetchPypi, tkinter }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  tkinter,
+}:
 
 buildPythonPackage rec {
   pname = "pmw";
@@ -17,7 +22,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "A toolkit for building high-level compound widgets in Python using the Tkinter module";
+    description = "Toolkit for building high-level compound widgets in Python using the Tkinter module";
     homepage = "https://pmw.sourceforge.net/";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ mounium ];
diff --git a/pkgs/development/python-modules/pnglatex/default.nix b/pkgs/development/python-modules/pnglatex/default.nix
index 05b36b2248395..a46359bf76e52 100644
--- a/pkgs/development/python-modules/pnglatex/default.nix
+++ b/pkgs/development/python-modules/pnglatex/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, poppler_utils, netpbm }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poppler_utils,
+  netpbm,
+}:
 
 buildPythonPackage rec {
 
@@ -21,7 +27,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/MaT1g3R/pnglatex";
-    description = "a small program that converts LaTeX snippets to png";
+    description = "Small program that converts LaTeX snippets to png";
     mainProgram = "pnglatex";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ GaetanLepage ];
diff --git a/pkgs/development/python-modules/pocket/default.nix b/pkgs/development/python-modules/pocket/default.nix
index 799f5ef261fa5..05b15b5c4d6a4 100644
--- a/pkgs/development/python-modules/pocket/default.nix
+++ b/pkgs/development/python-modules/pocket/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Wrapper for the pocket API";
-    homepage    = "https://github.com/tapanpandita/pocket";
-    license     = licenses.bsd3;
+    homepage = "https://github.com/tapanpandita/pocket";
+    license = licenses.bsd3;
     maintainers = with maintainers; [ ericsagnes ];
   };
-
 }
diff --git a/pkgs/development/python-modules/podcastparser/default.nix b/pkgs/development/python-modules/podcastparser/default.nix
index d844a19f902ee..f2f458a2ee01f 100644
--- a/pkgs/development/python-modules/podcastparser/default.nix
+++ b/pkgs/development/python-modules/podcastparser/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +25,9 @@ buildPythonPackage rec {
       --replace "--cov=podcastparser --cov-report html --doctest-modules" ""
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "podcastparser"
-  ];
+  pythonImportsCheck = [ "podcastparser" ];
 
   meta = with lib; {
     description = "Module to parse podcasts";
diff --git a/pkgs/development/python-modules/podcats/default.nix b/pkgs/development/python-modules/podcats/default.nix
index e1cb4a05a7843..e8069792072bb 100644
--- a/pkgs/development/python-modules/podcats/default.nix
+++ b/pkgs/development/python-modules/podcats/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, flask, mutagen }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+  mutagen,
+}:
 
 buildPythonPackage rec {
   pname = "podcats";
@@ -17,7 +23,10 @@ buildPythonPackage rec {
       --replace 'debug=True' 'debug=True, use_reloader=False'
   '';
 
-  propagatedBuildInputs = [ flask mutagen ];
+  propagatedBuildInputs = [
+    flask
+    mutagen
+  ];
 
   meta = {
     description = "Application that generates RSS feeds for podcast episodes from local audio files";
diff --git a/pkgs/development/python-modules/podman/default.nix b/pkgs/development/python-modules/podman/default.nix
index 92a73abb45388..3ba10ffb06b61 100644
--- a/pkgs/development/python-modules/podman/default.nix
+++ b/pkgs/development/python-modules/podman/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fixtures
-, pytestCheckHook
-, pythonOlder
-, pyxdg
-, requests
-, requests-mock
-, rich
-, setuptools
-, tomli
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fixtures,
+  pytestCheckHook,
+  pythonOlder,
+  pyxdg,
+  requests,
+  requests-mock,
+  rich,
+  setuptools,
+  tomli,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-3tbhTg060/K4ejT/xjItSu9zf05LR/d0vkg4XDsspEE=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   propagatedBuildInputs = [
     pyxdg
@@ -49,9 +48,7 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  pythonImportsCheck = [
-    "podman"
-  ];
+  pythonImportsCheck = [ "podman" ];
 
   disabledTests = [
     # Integration tests require a running container setup
diff --git a/pkgs/development/python-modules/poetry-core/default.nix b/pkgs/development/python-modules/poetry-core/default.nix
index c7010ef0432cf..a93473db5ccc9 100644
--- a/pkgs/development/python-modules/poetry-core/default.nix
+++ b/pkgs/development/python-modules/poetry-core/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, build
-, git
-, pytest-mock
-, pytestCheckHook
-, setuptools
-, tomli-w
-, virtualenv
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  build,
+  git,
+  pytest-mock,
+  pytestCheckHook,
+  setuptools,
+  tomli-w,
+  virtualenv,
 }:
 
 buildPythonPackage rec {
@@ -42,14 +43,10 @@ buildPythonPackage rec {
     "default_src_with_excluded_data"
   ];
 
-  pythonImportsCheck = [
-    "poetry.core"
-  ];
+  pythonImportsCheck = [ "poetry.core" ];
 
   # Allow for package to use pep420's native namespaces
-  pythonNamespaces = [
-    "poetry"
-  ];
+  pythonNamespaces = [ "poetry" ];
 
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-int-conversion";
 
diff --git a/pkgs/development/python-modules/poetry-dynamic-versioning/default.nix b/pkgs/development/python-modules/poetry-dynamic-versioning/default.nix
index 6e375def3c65b..690a155d056ef 100644
--- a/pkgs/development/python-modules/poetry-dynamic-versioning/default.nix
+++ b/pkgs/development/python-modules/poetry-dynamic-versioning/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, dunamai
-, fetchFromGitHub
-, jinja2
-, poetry-core
-, poetry
-, pytestCheckHook
-, pythonOlder
-, tomlkit
+{
+  lib,
+  buildPythonPackage,
+  dunamai,
+  fetchFromGitHub,
+  jinja2,
+  poetry-core,
+  poetry,
+  pytestCheckHook,
+  pythonOlder,
+  tomlkit,
 }:
 
 buildPythonPackage rec {
   pname = "poetry-dynamic-versioning";
-  version = "1.2.0";
+  version = "1.4.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -21,12 +22,10 @@ buildPythonPackage rec {
     owner = "mtkennerly";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-qkRnlLLzbYf7C2VjPDjYfllej8an4WftNahPLz/Wkxw=";
+    hash = "sha256-dhAqDRMRcIYUluYgBlhyPPDZTnLlDrhcAOnT0dHk3Mo=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     dunamai
@@ -50,9 +49,7 @@ buildPythonPackage rec {
     "test_integration"
   ];
 
-  pythonImportsCheck = [
-    "poetry_dynamic_versioning"
-  ];
+  pythonImportsCheck = [ "poetry_dynamic_versioning" ];
 
   setupHook = ./setup-hook.sh;
 
diff --git a/pkgs/development/python-modules/poetry-semver/default.nix b/pkgs/development/python-modules/poetry-semver/default.nix
index 422dbd04f881e..df4ef9c76f0e0 100644
--- a/pkgs/development/python-modules/poetry-semver/default.nix
+++ b/pkgs/development/python-modules/poetry-semver/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A semantic versioning library for Python.";
+    description = "Semantic versioning library for Python";
     homepage = "https://github.com/python-poetry/semver";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
diff --git a/pkgs/development/python-modules/polarizationsolver/default.nix b/pkgs/development/python-modules/polarizationsolver/default.nix
index aebc74ede9ced..be7bea5a634a1 100644
--- a/pkgs/development/python-modules/polarizationsolver/default.nix
+++ b/pkgs/development/python-modules/polarizationsolver/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
-, lib
-, fetchFromGitLab
-, python
-, numpy
-, scipy
-, periodictable
-, fields
+{
+  buildPythonPackage,
+  lib,
+  fetchFromGitLab,
+  python,
+  numpy,
+  scipy,
+  periodictable,
+  fields,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/polars/default.nix b/pkgs/development/python-modules/polars/default.nix
index 73edfeadcd53b..c6aca67e2859b 100644
--- a/pkgs/development/python-modules/polars/default.nix
+++ b/pkgs/development/python-modules/polars/default.nix
@@ -1,22 +1,21 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, rustPlatform
-, cmake
-, libiconv
-, fetchFromGitHub
-, typing-extensions
-, jemalloc
-, rust-jemalloc-sys
-, darwin
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  rustPlatform,
+  cmake,
+  libiconv,
+  fetchFromGitHub,
+  typing-extensions,
+  jemalloc,
+  rust-jemalloc-sys,
+  darwin,
 }:
 
 let
   rust-jemalloc-sys' = rust-jemalloc-sys.override {
-    jemalloc = jemalloc.override {
-      disableInitExecTls = true;
-    };
+    jemalloc = jemalloc.override { disableInitExecTls = true; };
   };
 in
 
@@ -41,41 +40,42 @@ buildPythonPackage rec {
     #sed -i 's/version = "0.18.0"/version = "${version}"/g' Cargo.lock
   '';
 
-  cargoDeps = rustPlatform.importCargoLock {
-    lockFile = ./Cargo.lock;
-  };
+  cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; };
 
   buildAndTestSubdir = "py-polars";
 
   # Revisit this whenever package or Rust is upgraded
   RUSTC_BOOTSTRAP = 1;
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [ typing-extensions ];
 
   # trick taken from the polars repo since there seems to be a problem
   # with simd enabled with our stable rust (instead of nightly).
-  maturinBuildFlags = [ "--no-default-features" "--features=all" ];
+  maturinBuildFlags = [
+    "--no-default-features"
+    "--features=all"
+  ];
 
   dontUseCmakeConfigure = true;
 
-  nativeBuildInputs = [
-    # needed for libz-ng-sys
-    # TODO: use pkgs.zlib-ng
-    cmake
-  ] ++ (with rustPlatform; [
-    cargoSetupHook
-    maturinBuildHook
-  ]);
-
-  buildInputs = [
-    rust-jemalloc-sys'
-  ] ++ lib.optionals stdenv.isDarwin [
-    libiconv
-    darwin.apple_sdk.frameworks.Security
-    darwin.apple_sdk.frameworks.SystemConfiguration
-  ];
+  nativeBuildInputs =
+    [
+      # needed for libz-ng-sys
+      # TODO: use pkgs.zlib-ng
+      cmake
+    ]
+    ++ (with rustPlatform; [
+      cargoSetupHook
+      maturinBuildHook
+    ]);
+
+  buildInputs =
+    [ rust-jemalloc-sys' ]
+    ++ lib.optionals stdenv.isDarwin [
+      libiconv
+      darwin.apple_sdk.frameworks.Security
+      darwin.apple_sdk.frameworks.SystemConfiguration
+    ];
 
   # nativeCheckInputs = [
   #   pytestCheckHook
@@ -87,9 +87,7 @@ buildPythonPackage rec {
   #   pydot
   # ];
 
-  pythonImportsCheck = [
-    "polars"
-  ];
+  pythonImportsCheck = [ "polars" ];
 
   meta = with lib; {
     description = "Fast multi-threaded DataFrame library";
diff --git a/pkgs/development/python-modules/polib/default.nix b/pkgs/development/python-modules/polib/default.nix
index 73276d9b65993..c4f4726c5e891 100644
--- a/pkgs/development/python-modules/polib/default.nix
+++ b/pkgs/development/python-modules/polib/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "polib";
@@ -14,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A library to manipulate gettext files (po and mo files)";
+    description = "Library to manipulate gettext files (po and mo files)";
     homepage = "https://bitbucket.org/izi/polib/";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/policyuniverse/default.nix b/pkgs/development/python-modules/policyuniverse/default.nix
index e324813c6a587..99a37254018c9 100644
--- a/pkgs/development/python-modules/policyuniverse/default.nix
+++ b/pkgs/development/python-modules/policyuniverse/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # Tests are not shipped and there are no GitHub tags
   doCheck = false;
 
-  pythonImportsCheck = [
-    "policyuniverse"
-  ];
+  pythonImportsCheck = [ "policyuniverse" ];
 
   meta = with lib; {
     description = "Parse and Process AWS IAM Policies, Statements, ARNs and wildcards";
diff --git a/pkgs/development/python-modules/polling/default.nix b/pkgs/development/python-modules/polling/default.nix
index ee8165858933e..edca7ccbd3ba1 100644
--- a/pkgs/development/python-modules/polling/default.nix
+++ b/pkgs/development/python-modules/polling/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     wheel
   ];
 
-  pythonImportsCheck = [
-    "polling"
-  ];
+  pythonImportsCheck = [ "polling" ];
 
   nativeCheckInputs = [
     mock
diff --git a/pkgs/development/python-modules/polygon3/default.nix b/pkgs/development/python-modules/polygon3/default.nix
index e8bb253202bc1..80a3a5ea7256a 100644
--- a/pkgs/development/python-modules/polygon3/default.nix
+++ b/pkgs/development/python-modules/polygon3/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/polyline/default.nix b/pkgs/development/python-modules/polyline/default.nix
index 6ed2daae7e887..713b235f0f8f3 100644
--- a/pkgs/development/python-modules/polyline/default.nix
+++ b/pkgs/development/python-modules/polyline/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -31,13 +32,9 @@ buildPythonPackage rec {
     wheel
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "polyline"
-  ];
+  pythonImportsCheck = [ "polyline" ];
 
   meta = with lib; {
     description = "Python implementation of Google's Encoded Polyline Algorithm Format";
diff --git a/pkgs/development/python-modules/polyswarm-api/default.nix b/pkgs/development/python-modules/polyswarm-api/default.nix
index cde3bcc8ca347..cf514b8535115 100644
--- a/pkgs/development/python-modules/polyswarm-api/default.nix
+++ b/pkgs/development/python-modules/polyswarm-api/default.nix
@@ -7,7 +7,6 @@
   pytestCheckHook,
   python-dateutil,
   pythonOlder,
-  pythonRelaxDepsHook,
   requests,
   responses,
   setuptools,
@@ -16,7 +15,7 @@
 
 buildPythonPackage rec {
   pname = "polyswarm-api";
-  version = "3.6.0";
+  version = "3.7.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,12 +24,11 @@ buildPythonPackage rec {
     owner = "polyswarm";
     repo = "polyswarm-api";
     rev = "refs/tags/${version}";
-    hash = "sha256-iY0I5z+aDLQekjgHT5v/ZprCkCgNPkyImmmaCQgnoYc=";
+    hash = "sha256-zEh8qus/+3mcAaY+SK6FLT6wB6UtGLKPoR1WVZdn9vM=";
   };
 
   pythonRelaxDeps = [ "future" ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   build-system = [ setuptools ];
 
diff --git a/pkgs/development/python-modules/pomegranate/default.nix b/pkgs/development/python-modules/pomegranate/default.nix
index 0c07483b07114..ddaffc7459289 100644
--- a/pkgs/development/python-modules/pomegranate/default.nix
+++ b/pkgs/development/python-modules/pomegranate/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# build-system
-, setuptools
-
-# dependencies
-, numpy
-, joblib
-, networkx
-, scipy
-, pyyaml
-, cython
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  numpy,
+  joblib,
+  networkx,
+  scipy,
+  pyyaml,
+  cython,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-PoDAtNm/snq4isotkoCTVYUuwr9AKKwiXIojUFMH/YE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     numpy
diff --git a/pkgs/development/python-modules/pontos/default.nix b/pkgs/development/python-modules/pontos/default.nix
index 8716316d5779e..b5b41ae6d9923 100644
--- a/pkgs/development/python-modules/pontos/default.nix
+++ b/pkgs/development/python-modules/pontos/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, colorful
-, fetchFromGitHub
-, git
-, httpx
-, lxml
-, packaging
-, poetry-core
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, semver
-, shtab
-, rich
-, tomlkit
+{
+  lib,
+  buildPythonPackage,
+  colorful,
+  fetchFromGitHub,
+  git,
+  httpx,
+  lxml,
+  packaging,
+  poetry-core,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  semver,
+  shtab,
+  rich,
+  tomlkit,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     hash = "sha256-DXZDXipYBClqSdlTJsaPWaKr3qTiJ3osm3hHPp/MPow=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     colorful
@@ -73,9 +72,7 @@ buildPythonPackage rec {
     "test_verify_version_does_not_match"
   ];
 
-  pythonImportsCheck = [
-    "pontos"
-  ];
+  pythonImportsCheck = [ "pontos" ];
 
   meta = with lib; {
     description = "Collection of Python utilities, tools, classes and functions";
diff --git a/pkgs/development/python-modules/pony/default.nix b/pkgs/development/python-modules/pony/default.nix
index 46a4daffe6254..20d39a3592b2d 100644
--- a/pkgs/development/python-modules/pony/default.nix
+++ b/pkgs/development/python-modules/pony/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, pythonAtLeast
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  pythonAtLeast,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +22,9 @@ buildPythonPackage rec {
     hash = "sha256-wBqw+YHKlxYplgsYL1pbkusHyPfCaVPcH/Yku6WDYbE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Tests are outdated
@@ -42,15 +39,16 @@ buildPythonPackage rec {
     "test_query"
   ];
 
-  pythonImportsCheck = [
-    "pony"
-  ];
+  pythonImportsCheck = [ "pony" ];
 
   meta = with lib; {
     description = "Library for advanced object-relational mapping";
     homepage = "https://ponyorm.org/";
     changelog = "https://github.com/ponyorm/pony/releases/tag/v${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [ d-goldin xvapx ];
+    maintainers = with maintainers; [
+      d-goldin
+      xvapx
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/ponywhoosh/default.nix b/pkgs/development/python-modules/ponywhoosh/default.nix
index 2a905326cbc22..52d982173d479 100644
--- a/pkgs/development/python-modules/ponywhoosh/default.nix
+++ b/pkgs/development/python-modules/ponywhoosh/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, pony, whoosh }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pony,
+  whoosh,
+}:
 
 buildPythonPackage rec {
   pname = "ponywhoosh";
diff --git a/pkgs/development/python-modules/pooch/default.nix b/pkgs/development/python-modules/pooch/default.nix
index 63228be0d9dc0..ed35b18025ceb 100644
--- a/pkgs/development/python-modules/pooch/default.nix
+++ b/pkgs/development/python-modules/pooch/default.nix
@@ -1,29 +1,30 @@
-{ lib
-, buildPythonPackage
-, isPy27
-, fetchPypi
-, setuptools
-, setuptools-scm
-, wheel
-, pytestCheckHook
-, packaging
-, platformdirs
-, requests
-, tqdm
-, paramiko
-, xxhash
+{
+  lib,
+  buildPythonPackage,
+  isPy27,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  pytestCheckHook,
+  packaging,
+  platformdirs,
+  requests,
+  tqdm,
+  paramiko,
+  xxhash,
 }:
 
 buildPythonPackage rec {
   pname = "pooch";
-  version = "1.8.1";
+  version = "1.8.2";
   format = "pyproject";
 
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-J+9jCX3ZpuT50mlPXPvy8KXe+kT8yv7AjWAecx10YnA=";
+    hash = "sha256-dlYfDeaKAdpN9q846ZVcTJ0aXJDac/fkAnalco7IPRA=";
   };
 
   nativeBuildInputs = [
@@ -49,9 +50,7 @@ buildPythonPackage rec {
     export HOME=$TMPDIR
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # tries to touch network
   disabledTests = [
@@ -70,14 +69,12 @@ buildPythonPackage rec {
     "test_load_registry_from_doi"
     "test_retrieve"
     "test_stream_download"
-
   ];
 
   meta = with lib; {
-    description = "A friend to fetch your data files.";
+    description = "Friend to fetch your data files";
     homepage = "https://github.com/fatiando/pooch";
     license = licenses.bsd3;
     maintainers = with maintainers; [ GuillaumeDesforges ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pook/default.nix b/pkgs/development/python-modules/pook/default.nix
index 6abc4b43f34e8..285e66f89a982 100644
--- a/pkgs/development/python-modules/pook/default.nix
+++ b/pkgs/development/python-modules/pook/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, furl
-, hatchling
-, jsonschema
-, pytest-asyncio
-, pytest-httpbin
-, pytest7CheckHook
-, pythonOlder
-, requests
-, xmltodict
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  furl,
+  hatchling,
+  jsonschema,
+  pytest-asyncio,
+  pytest-httpbin,
+  pytest7CheckHook,
+  pythonOlder,
+  requests,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-sdfkMvPSlVK7EoDUEuJbiuocOjGJygqiCiftrsjnDhU=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     pytest7CheckHook
   ];
 
-  pythonImportsCheck = [
-    "pook"
-  ];
+  pythonImportsCheck = [ "pook" ];
 
   disabledTestPaths = [
     # Don't test integrations
diff --git a/pkgs/development/python-modules/poolsense/default.nix b/pkgs/development/python-modules/poolsense/default.nix
index 85c8a8ec518f5..fb69913c6bc15 100644
--- a/pkgs/development/python-modules/poolsense/default.nix
+++ b/pkgs/development/python-modules/poolsense/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/poppler-qt5/default.nix b/pkgs/development/python-modules/poppler-qt5/default.nix
index 06c0e7a6e6ee9..dd5434422144e 100644
--- a/pkgs/development/python-modules/poppler-qt5/default.nix
+++ b/pkgs/development/python-modules/poppler-qt5/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, isPy3k
-, fetchPypi
-, sip
-, qtbase
-, qmake
-, pyqt5
-, pyqt-builder
-, poppler
-, pkg-config
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  isPy3k,
+  fetchPypi,
+  sip,
+  qtbase,
+  qmake,
+  pyqt5,
+  pyqt-builder,
+  poppler,
+  pkg-config,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,17 @@ buildPythonPackage rec {
     sha256 = "sha256-tHfohB8OoOCf2rby8wXPON+XfZ4ULlaTo3RgXXXdb+A=";
   };
 
-
-  buildInputs = [ qtbase.dev poppler pyqt-builder ];
-  nativeBuildInputs = [ pkg-config qmake sip setuptools ];
+  buildInputs = [
+    qtbase.dev
+    poppler
+    pyqt-builder
+  ];
+  nativeBuildInputs = [
+    pkg-config
+    qmake
+    sip
+    setuptools
+  ];
   propagatedBuildInputs = [ pyqt5.dev ];
 
   format = "pyproject";
diff --git a/pkgs/development/python-modules/port-for/default.nix b/pkgs/development/python-modules/port-for/default.nix
index ae3c00e6d4355..535cfbd5baf81 100644
--- a/pkgs/development/python-modules/port-for/default.nix
+++ b/pkgs/development/python-modules/port-for/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
   pythonImportsCheck = [ "port_for" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/portalocker/default.nix b/pkgs/development/python-modules/portalocker/default.nix
index cd66b0950eefb..5092394d6af0f 100644
--- a/pkgs/development/python-modules/portalocker/default.nix
+++ b/pkgs/development/python-modules/portalocker/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-
-# build-system
-, setuptools
-, setuptools-scm
-
-# dependencies
-, redis
-
-# tests
-, pygments
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+  setuptools-scm,
+
+  # dependencies
+  redis,
+
+  # tests
+  pygments,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -36,22 +37,18 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    redis
-  ];
+  propagatedBuildInputs = [ redis ];
 
   nativeCheckInputs = [
     pygments
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "portalocker"
-  ];
+  pythonImportsCheck = [ "portalocker" ];
 
   meta = with lib; {
     changelog = "https://github.com/wolph/portalocker/releases/tag/v${version}";
-    description = "A library to provide an easy API to file locking";
+    description = "Library to provide an easy API to file locking";
     homepage = "https://github.com/WoLpH/portalocker";
     license = licenses.psfl;
     maintainers = with maintainers; [ jonringer ];
diff --git a/pkgs/development/python-modules/portend/default.nix b/pkgs/development/python-modules/portend/default.nix
index 73356631615f8..2b89a74928dbb 100644
--- a/pkgs/development/python-modules/portend/default.nix
+++ b/pkgs/development/python-modules/portend/default.nix
@@ -1,6 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi
-, pythonOlder
-, pytestCheckHook, setuptools-scm, tempora  }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools-scm,
+  tempora,
+}:
 
 buildPythonPackage rec {
   pname = "portend";
@@ -20,9 +26,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "portend"
-  ];
+  pythonImportsCheck = [ "portend" ];
 
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
diff --git a/pkgs/development/python-modules/portion/default.nix b/pkgs/development/python-modules/portion/default.nix
new file mode 100644
index 0000000000000..51ca2c1190264
--- /dev/null
+++ b/pkgs/development/python-modules/portion/default.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  sortedcontainers,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "portion";
+  version = "2.4.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "AlexandreDecan";
+    repo = "portion";
+    rev = "refs/tags/${version}";
+    hash = "sha256-URoyuE0yivUqPjJZbvATkAnTxicY4F2eiJ16rIUdY3Y=";
+  };
+
+  build-system = [
+    setuptools
+    wheel
+  ];
+
+  dependencies = [ sortedcontainers ];
+
+  pythonImportsCheck = [ "portion" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Portion, a Python library providing data structure and operations for intervals";
+    homepage = "https://github.com/AlexandreDecan/portion";
+    changelog = "https://github.com/AlexandreDecan/portion/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.lgpl3;
+    maintainers = with maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/pkgs/development/python-modules/portpicker/default.nix b/pkgs/development/python-modules/portpicker/default.nix
index 65c4059b4fc26..b19dd5b1bf107 100644
--- a/pkgs/development/python-modules/portpicker/default.nix
+++ b/pkgs/development/python-modules/portpicker/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, psutil
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  psutil,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-vVB/1vlvZe4CeB8uZ06dxsmbv6bjw5mS45FiBMnUMfo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    psutil
-  ];
+  propagatedBuildInputs = [ psutil ];
 
-  pythonImportsCheck = [
-    "portpicker"
-  ];
+  pythonImportsCheck = [ "portpicker" ];
 
   meta = with lib; {
     description = "Library to choose unique available network ports";
diff --git a/pkgs/development/python-modules/posix-ipc/default.nix b/pkgs/development/python-modules/posix-ipc/default.nix
index 58f13f20cf039..d081801ce48a5 100644
--- a/pkgs/development/python-modules/posix-ipc/default.nix
+++ b/pkgs/development/python-modules/posix-ipc/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-xK5CkThqVFVMIxBtgUfHIRNRfmBxKa/DWBYQg7QHl/M=";
   };
 
-  pythonImportsCheck = [
-    "posix_ipc"
-  ];
+  pythonImportsCheck = [ "posix_ipc" ];
 
   meta = with lib; {
     description = "POSIX IPC primitives (semaphores, shared memory and message queues)";
diff --git a/pkgs/development/python-modules/posthog/default.nix b/pkgs/development/python-modules/posthog/default.nix
index 03372065aedd9..2ff4d4a8f1916 100644
--- a/pkgs/development/python-modules/posthog/default.nix
+++ b/pkgs/development/python-modules/posthog/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-# build inputs
-, requests
-, six
-, monotonic
-, backoff
-, python-dateutil
-# check inputs
-, pytestCheckHook
-, mock
-, freezegun
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  # build inputs
+  requests,
+  six,
+  monotonic,
+  backoff,
+  python-dateutil,
+  # check inputs
+  pytestCheckHook,
+  mock,
+  freezegun,
 }:
 let
   pname = "posthog";
@@ -41,9 +42,7 @@ buildPythonPackage {
     freezegun
   ];
 
-  pythonImportsCheck = [
-    "posthog"
-  ];
+  pythonImportsCheck = [ "posthog" ];
 
   disabledTests = [
     "test_load_feature_flags_wrong_key"
diff --git a/pkgs/development/python-modules/pot/default.nix b/pkgs/development/python-modules/pot/default.nix
index 321ad2e2dba78..381bd2bb2193c 100644
--- a/pkgs/development/python-modules/pot/default.nix
+++ b/pkgs/development/python-modules/pot/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, autograd
-, buildPythonPackage
-, fetchFromGitHub
-, cupy
-, cvxopt
-, cython
-, oldest-supported-numpy
-, matplotlib
-, numpy
-, tensorflow
-, pymanopt
-, pytestCheckHook
-, pythonOlder
-, scikit-learn
-, scipy
-, enableDimensionalityReduction ? false
-, enableGPU ? false
+{
+  lib,
+  autograd,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cupy,
+  cvxopt,
+  cython,
+  oldest-supported-numpy,
+  matplotlib,
+  numpy,
+  tensorflow,
+  pymanopt,
+  pytestCheckHook,
+  pythonOlder,
+  scikit-learn,
+  scipy,
+  enableDimensionalityReduction ? false,
+  enableGPU ? false,
 }:
 
 buildPythonPackage rec {
@@ -37,15 +38,16 @@ buildPythonPackage rec {
     oldest-supported-numpy
   ];
 
-  propagatedBuildInputs = [
-    numpy
-    scipy
-  ] ++ lib.optionals enableGPU [
-    cupy
-  ] ++ lib.optionals enableDimensionalityReduction [
-    autograd
-    pymanopt
-  ];
+  propagatedBuildInputs =
+    [
+      numpy
+      scipy
+    ]
+    ++ lib.optionals enableGPU [ cupy ]
+    ++ lib.optionals enableDimensionalityReduction [
+      autograd
+      pymanopt
+    ];
 
   nativeCheckInputs = [
     cvxopt
@@ -104,9 +106,7 @@ buildPythonPackage rec {
     "test_emd1d_device_tf"
   ];
 
-  disabledTestPaths = lib.optionals (!enableDimensionalityReduction) [
-    "test/test_dr.py"
-  ];
+  disabledTestPaths = lib.optionals (!enableDimensionalityReduction) [ "test/test_dr.py" ];
 
   pythonImportsCheck = [
     "ot"
diff --git a/pkgs/development/python-modules/potr/default.nix b/pkgs/development/python-modules/potr/default.nix
index 671010bb9009a..f6e6f72755f89 100644
--- a/pkgs/development/python-modules/potr/default.nix
+++ b/pkgs/development/python-modules/potr/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchPypi, buildPythonPackage, pycrypto }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pycrypto,
+}:
 
 buildPythonPackage rec {
   pname = "python-potr";
@@ -12,7 +17,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ pycrypto ];
 
   meta = with lib; {
-    description = "A pure Python OTR implementation";
+    description = "Pure Python OTR implementation";
     homepage = "http://python-otr.pentabarf.de/";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/power/default.nix b/pkgs/development/python-modules/power/default.nix
index 7d82d8e8acb63..97c490523f162 100644
--- a/pkgs/development/python-modules/power/default.nix
+++ b/pkgs/development/python-modules/power/default.nix
@@ -1,7 +1,8 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -23,5 +24,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/Kentzo/Power";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/powerline-mem-segment/default.nix b/pkgs/development/python-modules/powerline-mem-segment/default.nix
index 64eae31c0a250..99a38c7d6248b 100644
--- a/pkgs/development/python-modules/powerline-mem-segment/default.nix
+++ b/pkgs/development/python-modules/powerline-mem-segment/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, psutil
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  psutil,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "powerlinemem" ];
 
   meta = with lib; {
-    description = "Segment for Powerline showing the current memory usage in percent or absolute values.";
+    description = "Segment for Powerline showing the current memory usage in percent or absolute values";
     homepage = "https://github.com/mKaloer/powerline_mem_segment";
     license = licenses.asl20;
     maintainers = with maintainers; [ thomasjm ];
diff --git a/pkgs/development/python-modules/powerline/default.nix b/pkgs/development/python-modules/powerline/default.nix
index 5516db843bcfc..6578c6f435596 100644
--- a/pkgs/development/python-modules/powerline/default.nix
+++ b/pkgs/development/python-modules/powerline/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, socat
-, psutil
-, python-hglib
-, pygit2
-, pyuv
-, i3ipc
-, stdenv
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  socat,
+  psutil,
+  python-hglib,
+  pygit2,
+  pyuv,
+  i3ipc,
+  stdenv,
 }:
 
 # TODO: bzr support is missing because nixpkgs switched to `breezy`
 
 buildPythonPackage rec {
-  version  = "2.8.3";
+  version = "2.8.3";
   pname = "powerline";
   format = "setuptools";
 
@@ -49,8 +50,8 @@ buildPythonPackage rec {
   '';
 
   meta = {
-    homepage    = "https://github.com/powerline/powerline";
-    description = "The ultimate statusline/prompt utility";
-    license     = lib.licenses.mit;
+    homepage = "https://github.com/powerline/powerline";
+    description = "Ultimate statusline/prompt utility";
+    license = lib.licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/pox/default.nix b/pkgs/development/python-modules/pox/default.nix
index e3926ed045b0c..2c82fc966e946 100644
--- a/pkgs/development/python-modules/pox/default.nix
+++ b/pkgs/development/python-modules/pox/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # Test sare failing the sandbox
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pox"
-  ];
+  pythonImportsCheck = [ "pox" ];
 
   meta = with lib; {
     description = "Utilities for filesystem exploration and automated builds";
diff --git a/pkgs/development/python-modules/poyo/default.nix b/pkgs/development/python-modules/poyo/default.nix
index a4eaad98b8dd9..6b18f11fd5caf 100644
--- a/pkgs/development/python-modules/poyo/default.nix
+++ b/pkgs/development/python-modules/poyo/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -15,8 +16,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/hackebrot/poyo";
-    description = "A lightweight YAML Parser for Python";
+    description = "Lightweight YAML Parser for Python";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/ppdeep/default.nix b/pkgs/development/python-modules/ppdeep/default.nix
index 4ea7033b11f39..9685a656480c9 100644
--- a/pkgs/development/python-modules/ppdeep/default.nix
+++ b/pkgs/development/python-modules/ppdeep/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/ppft/default.nix b/pkgs/development/python-modules/ppft/default.nix
index d72fe679c2265..ec61d57fc46c9 100644
--- a/pkgs/development/python-modules/ppft/default.nix
+++ b/pkgs/development/python-modules/ppft/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, python
-, pythonOlder
-, six
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  pythonOlder,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-dqQpp9e3TE10P226g1HljWK2Qy7WXfn+IEeQFg2rmW0=";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   # darwin seems to hang
   doCheck = !stdenv.isDarwin;
@@ -32,9 +31,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "ppft"
-  ];
+  pythonImportsCheck = [ "ppft" ];
 
   meta = with lib; {
     description = "Distributed and parallel Python";
diff --git a/pkgs/development/python-modules/pplpy/default.nix b/pkgs/development/python-modules/pplpy/default.nix
index 641008be07fca..98f97f9466ae7 100644
--- a/pkgs/development/python-modules/pplpy/default.nix
+++ b/pkgs/development/python-modules/pplpy/default.nix
@@ -1,14 +1,18 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, gmp
-, mpfr
-, libmpc
-, ppl
-, cython
-, cysignals
-, gmpy2
-, sphinx
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  gmp,
+  mpfr,
+  libmpc,
+  ppl,
+  cython,
+  cysignals,
+  gmpy2,
+  sphinx,
+
+  # Reverse dependency
+  sage,
 }:
 
 buildPythonPackage rec {
@@ -38,7 +42,10 @@ buildPythonPackage rec {
     gmpy2
   ];
 
-  outputs = [ "out" "doc" ];
+  outputs = [
+    "out"
+    "doc"
+  ];
 
   postBuild = ''
     # Find the build result in order to put it into PYTHONPATH. The doc
@@ -54,8 +61,12 @@ buildPythonPackage rec {
     mv docs/build/html "$doc/share/doc/pplpy"
   '';
 
+  passthru.tests = {
+    inherit sage;
+  };
+
   meta = with lib; {
-    description = "A Python wrapper for ppl";
+    description = "Python wrapper for ppl";
     homepage = "https://gitlab.com/videlec/pplpy";
     maintainers = teams.sage.members;
     license = licenses.gpl3;
diff --git a/pkgs/development/python-modules/pprintpp/default.nix b/pkgs/development/python-modules/pprintpp/default.nix
index 0e058cab0560c..cd7e115d5aff2 100644
--- a/pkgs/development/python-modules/pprintpp/default.nix
+++ b/pkgs/development/python-modules/pprintpp/default.nix
@@ -57,7 +57,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A drop-in replacement for pprint that's actually pretty";
+    description = "Drop-in replacement for pprint that's actually pretty";
     homepage = "https://github.com/wolever/pprintpp";
     changelog = "https://github.com/wolever/pprintpp/blob/${version}/CHANGELOG.txt";
     license = licenses.bsd2;
diff --git a/pkgs/development/python-modules/pproxy/default.nix b/pkgs/development/python-modules/pproxy/default.nix
index a7028757b0ba7..c08d2de25aa8d 100644
--- a/pkgs/development/python-modules/pproxy/default.nix
+++ b/pkgs/development/python-modules/pproxy/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pycryptodome
-, uvloop
-, setuptools
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pycryptodome,
+  uvloop,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,14 @@ buildPythonPackage rec {
     sha256 = "sha256-bOqDdNiaZ5MRi/UeF0hJwMs+rfQBKRsTmXrZ6ieIguo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pycryptodome
     uvloop
   ];
 
-  pythonImportsCheck = [
-    "pproxy"
-  ];
+  pythonImportsCheck = [ "pproxy" ];
 
   disabledTests = [
     # Tests try to connect to outside Internet, so disabled
diff --git a/pkgs/development/python-modules/ppscore/default.nix b/pkgs/development/python-modules/ppscore/default.nix
index b87e0e4c98397..544681c2c704d 100644
--- a/pkgs/development/python-modules/ppscore/default.nix
+++ b/pkgs/development/python-modules/ppscore/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pandas
-, pytestCheckHook
-, pythonOlder
-, scikit-learn
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pandas,
+  pytestCheckHook,
+  pythonOlder,
+  scikit-learn,
 }:
 
 buildPythonPackage rec {
@@ -31,13 +32,11 @@ buildPythonPackage rec {
     scikit-learn
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ppscore"
-  ];
+  pythonRelaxDeps = [ "pandas" ];
+
+  pythonImportsCheck = [ "ppscore" ];
 
   meta = with lib; {
     description = "Python implementation of the Predictive Power Score (PPS)";
diff --git a/pkgs/development/python-modules/pq/default.nix b/pkgs/development/python-modules/pq/default.nix
index cc65a00759981..5c6a85b29c835 100644
--- a/pkgs/development/python-modules/pq/default.nix
+++ b/pkgs/development/python-modules/pq/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/prance/default.nix b/pkgs/development/python-modules/prance/default.nix
index b479451e065c5..36d40f0711d95 100644
--- a/pkgs/development/python-modules/prance/default.nix
+++ b/pkgs/development/python-modules/prance/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, chardet
-, click
-, flex
-, packaging
-, pyicu
-, requests
-, ruamel-yaml
-, setuptools-scm
-, six
-, swagger-spec-validator
-, pytestCheckHook
-, openapi-spec-validator
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  chardet,
+  click,
+  flex,
+  packaging,
+  pyicu,
+  requests,
+  ruamel-yaml,
+  setuptools-scm,
+  six,
+  swagger-spec-validator,
+  pytestCheckHook,
+  openapi-spec-validator,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
       --replace "--cov=prance --cov-report=term-missing --cov-fail-under=90" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     chardet
@@ -61,9 +60,7 @@ buildPythonPackage rec {
   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
   # Disable tests that require network
-  disabledTestPaths = [
-    "tests/test_convert.py"
-  ];
+  disabledTestPaths = [ "tests/test_convert.py" ];
   disabledTests = [
     "test_convert_defaults"
     "test_convert_output"
diff --git a/pkgs/development/python-modules/praw/default.nix b/pkgs/development/python-modules/praw/default.nix
index 09417a8d82b5f..08fb2795bd179 100644
--- a/pkgs/development/python-modules/praw/default.nix
+++ b/pkgs/development/python-modules/praw/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, betamax
-, betamax-matchers
-, betamax-serializers
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, prawcore
-, pytestCheckHook
-, pythonOlder
-, requests-toolbelt
-, update-checker
-, websocket-client
+{
+  lib,
+  betamax,
+  betamax-matchers,
+  betamax-serializers,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  prawcore,
+  pytestCheckHook,
+  pythonOlder,
+  requests-toolbelt,
+  update-checker,
+  websocket-client,
 }:
 
 buildPythonPackage rec {
@@ -47,9 +48,7 @@ buildPythonPackage rec {
     "tests/integration"
   ];
 
-  pythonImportsCheck = [
-    "praw"
-  ];
+  pythonImportsCheck = [ "praw" ];
 
   meta = with lib; {
     description = "Python Reddit API wrapper";
diff --git a/pkgs/development/python-modules/prawcore/default.nix b/pkgs/development/python-modules/prawcore/default.nix
index 6231ff2b81273..0300ae150da99 100644
--- a/pkgs/development/python-modules/prawcore/default.nix
+++ b/pkgs/development/python-modules/prawcore/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, betamax
-, betamax-matchers
-, betamax-serializers
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, mock
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-toolbelt
-, testfixtures
+{
+  lib,
+  betamax,
+  betamax-matchers,
+  betamax-serializers,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-toolbelt,
+  testfixtures,
 }:
 
 buildPythonPackage rec {
@@ -27,13 +28,9 @@ buildPythonPackage rec {
     hash = "sha256-tECZRx6VgyiJDKHvj4Rf1sknFqUhz3sDFEsAMOeB7/g=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     testfixtures
@@ -50,9 +47,7 @@ buildPythonPackage rec {
     "tests/integration"
   ];
 
-  pythonImportsCheck = [
-    "prawcore"
-  ];
+  pythonImportsCheck = [ "prawcore" ];
 
   meta = with lib; {
     description = "Low-level communication layer for PRAW";
diff --git a/pkgs/development/python-modules/prayer-times-calculator/default.nix b/pkgs/development/python-modules/prayer-times-calculator/default.nix
index 88699a077bbe7..d4a72de66f5f3 100644
--- a/pkgs/development/python-modules/prayer-times-calculator/default.nix
+++ b/pkgs/development/python-modules/prayer-times-calculator/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-HeGUnApQZ12aieaV/UBbJqqpEn4i/ZZKw41H/Yx3+cY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "prayer_times_calculator"
-  ];
+  pythonImportsCheck = [ "prayer_times_calculator" ];
 
   meta = with lib; {
     description = "Python client for the Prayer Times API";
diff --git a/pkgs/development/python-modules/pre-commit-hooks/default.nix b/pkgs/development/python-modules/pre-commit-hooks/default.nix
index 11f226aa0c54b..646d2b343518e 100644
--- a/pkgs/development/python-modules/pre-commit-hooks/default.nix
+++ b/pkgs/development/python-modules/pre-commit-hooks/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, git
-, pytestCheckHook
-, pythonOlder
-, ruamel-yaml
-, tomli
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  git,
+  pytestCheckHook,
+  pythonOlder,
+  ruamel-yaml,
+  tomli,
 }:
 
 buildPythonPackage rec {
@@ -23,11 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-p/pPpuuNjVxHSPyi4RL2DJlj9weSq8QinugQ4zmv9Ck=";
   };
 
-  propagatedBuildInputs = [
-    ruamel-yaml
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  propagatedBuildInputs = [ ruamel-yaml ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   nativeCheckInputs = [
     git
@@ -48,9 +45,7 @@ buildPythonPackage rec {
     git init .
   '';
 
-  pythonImportsCheck = [
-    "pre_commit_hooks"
-  ];
+  pythonImportsCheck = [ "pre_commit_hooks" ];
 
   meta = with lib; {
     description = "Some out-of-the-box hooks for pre-commit";
diff --git a/pkgs/development/python-modules/precis-i18n/default.nix b/pkgs/development/python-modules/precis-i18n/default.nix
index 87a91743b674c..5802f01cc0006 100644
--- a/pkgs/development/python-modules/precis-i18n/default.nix
+++ b/pkgs/development/python-modules/precis-i18n/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-0Z8JbakShuB8FFGl3NS8VFpHAQgr2P900HVxUafAmyU=";
   };
 
-  pythonImportsCheck = [
-    "precis_i18n"
-  ];
+  pythonImportsCheck = [ "precis_i18n" ];
 
   meta = with lib; {
     description = "Internationalized usernames and passwords";
diff --git a/pkgs/development/python-modules/prefixed/default.nix b/pkgs/development/python-modules/prefixed/default.nix
index fadc4be3ff2c3..174c25358ee63 100644
--- a/pkgs/development/python-modules/prefixed/default.nix
+++ b/pkgs/development/python-modules/prefixed/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-0QrJCs/EzBTYLBQIszCy/ahe187CIGqADUOJn4w4UmU=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "prefixed"
-  ];
+  pythonImportsCheck = [ "prefixed" ];
 
   meta = with lib; {
     description = "Prefixed alternative numeric library";
diff --git a/pkgs/development/python-modules/preggy/default.nix b/pkgs/development/python-modules/preggy/default.nix
index a69044eb14ec7..5c4241a6477ee 100644
--- a/pkgs/development/python-modules/preggy/default.nix
+++ b/pkgs/development/python-modules/preggy/default.nix
@@ -1,12 +1,26 @@
-{ lib, buildPythonPackage, fetchPypi, six, unidecode, nose, yanc }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  unidecode,
+  nose,
+  yanc,
+}:
 
 buildPythonPackage rec {
   pname = "preggy";
   version = "1.4.4";
   format = "setuptools";
 
-  propagatedBuildInputs = [ six unidecode ];
-  nativeCheckInputs = [ nose yanc ];
+  propagatedBuildInputs = [
+    six
+    unidecode
+  ];
+  nativeCheckInputs = [
+    nose
+    yanc
+  ];
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/premailer/default.nix b/pkgs/development/python-modules/premailer/default.nix
index 2143ad2edc2a8..69e4a00c5955c 100644
--- a/pkgs/development/python-modules/premailer/default.nix
+++ b/pkgs/development/python-modules/premailer/default.nix
@@ -1,5 +1,15 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27,
-  cssselect, cssutils, lxml, mock, nose, requests, cachetools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  cssselect,
+  cssutils,
+  lxml,
+  mock,
+  nose,
+  requests,
+  cachetools,
 }:
 
 buildPythonPackage rec {
@@ -13,8 +23,17 @@ buildPythonPackage rec {
     sha256 = "d1875a8411f5dc92b53ef9f193db6c0f879dc378d618e0ad292723e388bfe4c2";
   };
 
-  buildInputs = [ mock nose ];
-  propagatedBuildInputs = [ cachetools cssselect cssutils lxml requests ];
+  buildInputs = [
+    mock
+    nose
+  ];
+  propagatedBuildInputs = [
+    cachetools
+    cssselect
+    cssutils
+    lxml
+    requests
+  ];
 
   meta = {
     description = "Turns CSS blocks into style attributes ";
diff --git a/pkgs/development/python-modules/preprocess-cancellation/default.nix b/pkgs/development/python-modules/preprocess-cancellation/default.nix
index 22d3936b248e4..7294e7808e57b 100644
--- a/pkgs/development/python-modules/preprocess-cancellation/default.nix
+++ b/pkgs/development/python-modules/preprocess-cancellation/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, setuptools
-, shapely
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  setuptools,
+  shapely,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -40,13 +41,9 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  propagatedBuildInputs = [
-    shapely
-  ];
+  propagatedBuildInputs = [ shapely ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "preprocess_cancellation" ];
 
diff --git a/pkgs/development/python-modules/preshed/default.nix b/pkgs/development/python-modules/preshed/default.nix
index 2314555fcb588..e901288445585 100644
--- a/pkgs/development/python-modules/preshed/default.nix
+++ b/pkgs/development/python-modules/preshed/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, cymem
-, cython
-, python
-, fetchPypi
-, murmurhash
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  cymem,
+  cython,
+  python,
+  fetchPypi,
+  murmurhash,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,25 +22,19 @@ buildPythonPackage rec {
     hash = "sha256-chhjxSRP/NJlGtCSiVGix8d7EC9OEaJRrYXTfudiFmA=";
   };
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
   propagatedBuildInputs = [
     cymem
     murmurhash
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Tests have import issues with 3.0.8
   doCheck = false;
 
-  pythonImportsCheck = [
-    "preshed"
-  ];
+  pythonImportsCheck = [ "preshed" ];
 
   # don't update to 4.0.0, version was yanked
   passthru.skipBulkUpdate = true;
diff --git a/pkgs/development/python-modules/pretend/default.nix b/pkgs/development/python-modules/pretend/default.nix
index 231b953923e4d..3e4396a4043c9 100644
--- a/pkgs/development/python-modules/pretend/default.nix
+++ b/pkgs/development/python-modules/pretend/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-OqMfeIMFNBBLq6ejR3uOCIHZ9aA4zew7iefVlAsy1JQ=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pretend"
-  ];
+  pythonImportsCheck = [ "pretend" ];
 
   meta = with lib; {
     description = "Module for stubbing";
diff --git a/pkgs/development/python-modules/pretty-errors/default.nix b/pkgs/development/python-modules/pretty-errors/default.nix
new file mode 100644
index 0000000000000..64e769b8ddd94
--- /dev/null
+++ b/pkgs/development/python-modules/pretty-errors/default.nix
@@ -0,0 +1,39 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  wheel,
+  colorama,
+}:
+
+buildPythonPackage rec {
+  pname = "pretty-errors";
+  version = "1.2.25";
+  pyproject = true;
+
+  src = fetchPypi {
+    pname = "pretty_errors";
+    inherit version;
+    hash = "sha256-oWulx1LIfCY7+S+LS1hiTjseKScak5H1ZPErhuk8Z1U=";
+  };
+
+  build-system = [
+    setuptools
+    wheel
+  ];
+
+  dependencies = [ colorama ];
+
+  pythonImportsCheck = [ "pretty_errors" ];
+
+  # No test
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Prettifies Python exception output to make it legible";
+    homepage = "https://pypi.org/project/pretty-errors/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/pkgs/development/python-modules/prettytable/default.nix b/pkgs/development/python-modules/prettytable/default.nix
index 91d2d5a427a71..f7fd2f5bfca2f 100644
--- a/pkgs/development/python-modules/prettytable/default.nix
+++ b/pkgs/development/python-modules/prettytable/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatch-vcs
-, hatchling
-, pytest-lazy-fixture
-, pytestCheckHook
-, pythonOlder
-, wcwidth
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatch-vcs,
+  hatchling,
+  pytest-lazy-fixtures,
+  pytestCheckHook,
+  pythonOlder,
+  wcwidth,
 }:
 
 buildPythonPackage rec {
   pname = "prettytable";
-  version = "3.9.0";
+  version = "3.10.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +21,7 @@ buildPythonPackage rec {
     owner = "jazzband";
     repo = "prettytable";
     rev = "refs/tags/${version}";
-    hash= "sha256-yIO4eO2VdOnUt9qoNQOeq/c0os2LQ3mqAkCOIuoGpyg=";
+    hash = "sha256-S23nUCA2WTxnCKKKFrtN9HYjP0SHUBPPsVNAc4SYlVg=";
   };
 
   nativeBuildInputs = [
@@ -28,18 +29,14 @@ buildPythonPackage rec {
     hatchling
   ];
 
-  propagatedBuildInputs = [
-    wcwidth
-  ];
+  propagatedBuildInputs = [ wcwidth ];
 
   nativeCheckInputs = [
-    pytest-lazy-fixture
+    pytest-lazy-fixtures
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "prettytable"
-  ];
+  pythonImportsCheck = [ "prettytable" ];
 
   meta = with lib; {
     description = "Display tabular data in a visually appealing ASCII table format";
@@ -48,5 +45,4 @@ buildPythonPackage rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/primecountpy/default.nix b/pkgs/development/python-modules/primecountpy/default.nix
index 463a0cf50be64..1d9a31791e237 100644
--- a/pkgs/development/python-modules/primecountpy/default.nix
+++ b/pkgs/development/python-modules/primecountpy/default.nix
@@ -1,9 +1,13 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, primecount
-, cython
-, cysignals
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  primecount,
+  cython,
+  cysignals,
+
+  # Reverse dependency
+  sage,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +22,20 @@ buildPythonPackage rec {
 
   buildInputs = [ primecount ];
 
-  propagatedBuildInputs = [ cython cysignals ];
+  propagatedBuildInputs = [
+    cython
+    cysignals
+  ];
 
   # depends on pytest-cython for "pytest --doctest-cython"
   doCheck = false;
 
   pythonImportsCheck = [ "primecountpy" ];
 
+  passthru.tests = {
+    inherit sage;
+  };
+
   meta = with lib; {
     description = "Cython interface for C++ primecount library";
     homepage = "https://github.com/dimpase/primecountpy/";
diff --git a/pkgs/development/python-modules/primepy/default.nix b/pkgs/development/python-modules/primepy/default.nix
index 583aa3919dcf0..f8c7dff7b9eb4 100644
--- a/pkgs/development/python-modules/primepy/default.nix
+++ b/pkgs/development/python-modules/primepy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/primer3/default.nix b/pkgs/development/python-modules/primer3/default.nix
index 78d43a08b4acd..336042e595d45 100644
--- a/pkgs/development/python-modules/primer3/default.nix
+++ b/pkgs/development/python-modules/primer3/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, cython
-, gcc
-, click
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cython,
+  gcc,
+  click,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     cython
     setuptools
-  ] ++ lib.optionals stdenv.isDarwin [
-    gcc
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ gcc ];
 
   nativeCheckInputs = [
     click
@@ -44,9 +43,7 @@ buildPythonPackage rec {
     python setup.py build_ext --inplace
   '';
 
-  pythonImportsCheck = [
-    "primer3"
-  ];
+  pythonImportsCheck = [ "primer3" ];
 
   meta = with lib; {
     description = "Oligo analysis and primer design";
diff --git a/pkgs/development/python-modules/priority/default.nix b/pkgs/development/python-modules/priority/default.nix
index 8f12f7f2144e4..5ba1bd0113127 100644
--- a/pkgs/development/python-modules/priority/default.nix
+++ b/pkgs/development/python-modules/priority/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, hypothesis
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  hypothesis,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     sha256 = "c965d54f1b8d0d0b19479db3924c7c36cf672dbf2aec92d43fbdaf4492ba18c0";
   };
 
-  pythonImportsCheck = [
-     "priority"
-  ];
+  pythonImportsCheck = [ "priority" ];
 
   nativeCheckInputs = [
     hypothesis
@@ -27,7 +26,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A pure-Python implementation of the HTTP/2 priority tree";
+    description = "Pure-Python implementation of the HTTP/2 priority tree";
     homepage = "https://github.com/python-hyper/priority/";
     license = licenses.mit;
     maintainers = with maintainers; [ qyliss ];
diff --git a/pkgs/development/python-modules/prisma/default.nix b/pkgs/development/python-modules/prisma/default.nix
index 6f7c79715618e..23eb592a57069 100644
--- a/pkgs/development/python-modules/prisma/default.nix
+++ b/pkgs/development/python-modules/prisma/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, httpx
-, jinja2
-, nodeenv
-, pydantic
-, pytestCheckHook
-, python-dotenv
-, pythonOlder
-, setuptools
-, strenum
-, tomlkit
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  httpx,
+  jinja2,
+  nodeenv,
+  pydantic,
+  pytestCheckHook,
+  python-dotenv,
+  pythonOlder,
+  setuptools,
+  strenum,
+  tomlkit,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     hash = "sha256-7pibexiFsyrwC6rVv0CGHRbQU4G3rOXVhQW/7c/vKJA=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     click
@@ -42,16 +41,12 @@ buildPythonPackage rec {
     python-dotenv
     tomlkit
     typing-extensions
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    strenum
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ strenum ];
 
   # Building the client requires network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "prisma"
-  ];
+  pythonImportsCheck = [ "prisma" ];
 
   meta = with lib; {
     description = "Auto-generated and fully type-safe database client for prisma";
diff --git a/pkgs/development/python-modules/prison/default.nix b/pkgs/development/python-modules/prison/default.nix
index e85ca0f7eb600..32d7a9ead8c6b 100644
--- a/pkgs/development/python-modules/prison/default.nix
+++ b/pkgs/development/python-modules/prison/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, six
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  six,
+  nose,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-qor40vUQeTdlO3vwug3GGNX5vkNaF0H7EWlRdsY4bvc=";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  nativeCheckInputs = [
-    nose
-  ];
+  nativeCheckInputs = [ nose ];
 
   meta = with lib; {
     description = "Rison encoder/decoder";
diff --git a/pkgs/development/python-modules/private-gpt/default.nix b/pkgs/development/python-modules/private-gpt/default.nix
new file mode 100644
index 0000000000000..7012ff5cf5fc9
--- /dev/null
+++ b/pkgs/development/python-modules/private-gpt/default.nix
@@ -0,0 +1,96 @@
+{
+  lib,
+  buildPythonPackage,
+  python,
+  fetchFromGitHub,
+  poetry-core,
+  fastapi,
+  injector,
+  llama-index-core,
+  llama-index-readers-file,
+  huggingface-hub,
+  python-multipart,
+  pyyaml,
+  transformers,
+  uvicorn,
+  watchdog,
+  gradio,
+  fetchurl,
+  fetchpatch,
+}:
+
+buildPythonPackage rec {
+  pname = "private-gpt";
+  version = "0.5.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "zylon-ai";
+    repo = "private-gpt";
+    rev = "v${version}";
+    hash = "sha256-bjydzJhOJjmbflcJbuMyNsmby7HtNPFW3MY2Tw12cHw=";
+  };
+
+  patches = [
+    # Fix a vulnerability, to be removed in the next bump version
+    # See https://github.com/zylon-ai/private-gpt/pull/1890
+    (fetchpatch {
+      url = "https://github.com/zylon-ai/private-gpt/commit/86368c61760c9cee5d977131d23ad2a3e063cbe9.patch";
+      hash = "sha256-4ysRUuNaHW4bmNzg4fn++89b430LP6AzYDoX2HplVH0=";
+    })
+  ];
+
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    fastapi
+    injector
+    llama-index-core
+    llama-index-readers-file
+    python-multipart
+    pyyaml
+    transformers
+    uvicorn
+    watchdog
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+
+  # This is needed for running the tests and the service in offline mode,
+  # See related issue at https://github.com/zylon-ai/private-gpt/issues/1870
+  passthru.cl100k_base.tiktoken = fetchurl {
+    url = "https://openaipublic.blob.core.windows.net/encodings/cl100k_base.tiktoken";
+    hash = "sha256-Ijkht27pm96ZW3/3OFE+7xAPtR0YyTWXoRO8/+hlsqc=";
+  };
+
+  passthru.optional-dependencies = with python.pkgs; {
+    embeddings-huggingface = [
+      huggingface-hub
+      llama-index-embeddings-huggingface
+    ];
+    embeddings-ollama = [ llama-index-embeddings-ollama ];
+    embeddings-openai = [ llama-index-embeddings-openai ];
+    embeddings-sagemaker = [ boto3 ];
+    llms-ollama = [ llama-index-llms-ollama ];
+    llms-openai = [ llama-index-llms-openai ];
+    llms-openai-like = [ llama-index-llms-openai-like ];
+    llms-sagemaker = [ boto3 ];
+    ui = [ gradio ];
+    vector-stores-chroma = [ llama-index-vector-stores-chroma ];
+    vector-stores-postgres = [ llama-index-vector-stores-postgres ];
+    vector-stores-qdrant = [ llama-index-vector-stores-qdrant ];
+  };
+
+  postInstall = ''
+    cp settings*.yaml $out/${python.sitePackages}/private_gpt/
+  '';
+
+  pythonImportsCheck = [ "private_gpt" ];
+
+  meta = {
+    changelog = "https://github.com/zylon-ai/private-gpt/blob/${src.rev}/CHANGELOG.md";
+    description = "Interact with your documents using the power of GPT, 100% privately, no data leaks";
+    homepage = "https://github.com/zylon-ai/private-gpt";
+    license = lib.licenses.asl20;
+    mainProgram = "private-gpt";
+    maintainers = with lib.maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/proboscis/default.nix b/pkgs/development/python-modules/proboscis/default.nix
deleted file mode 100644
index f6285605c3998..0000000000000
--- a/pkgs/development/python-modules/proboscis/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi, nose }:
-
-buildPythonPackage rec {
-  pname = "proboscis";
-  version = "1.2.6.0";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "b822b243a7c82030fce0de97bdc432345941306d2c24ef227ca561dd019cd238";
-  };
-
-  propagatedBuildInputs = [ nose ];
-  doCheck = false;
-
-  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/pkgs/development/python-modules/process-tests/default.nix b/pkgs/development/python-modules/process-tests/default.nix
index acffc0dca510d..99ed394c1ffd5 100644
--- a/pkgs/development/python-modules/process-tests/default.nix
+++ b/pkgs/development/python-modules/process-tests/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-5dV96nFhJR6RytuEvz7MhSdfsSH9R45Xn4AHd7HUJL0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # No tests
   doCheck = false;
@@ -26,5 +25,4 @@ buildPythonPackage rec {
     license = licenses.bsd2;
     homepage = "https://github.com/ionelmc/python-process-tests";
   };
-
 }
diff --git a/pkgs/development/python-modules/procmon-parser/default.nix b/pkgs/development/python-modules/procmon-parser/default.nix
index b45d72f3d07d8..963f7ff9d358d 100644
--- a/pkgs/development/python-modules/procmon-parser/default.nix
+++ b/pkgs/development/python-modules/procmon-parser/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, construct
-, fetchFromGitHub
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, six
+{
+  lib,
+  buildPythonPackage,
+  construct,
+  fetchFromGitHub,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     python-dateutil
   ];
 
-  pythonImportsCheck = [
-    "procmon_parser"
-  ];
+  pythonImportsCheck = [ "procmon_parser" ];
 
   meta = with lib; {
     description = "Parser to process monitor file formats";
diff --git a/pkgs/development/python-modules/prodict/default.nix b/pkgs/development/python-modules/prodict/default.nix
index b793c27729853..fdee36a3c615f 100644
--- a/pkgs/development/python-modules/prodict/default.nix
+++ b/pkgs/development/python-modules/prodict/default.nix
@@ -1,12 +1,13 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, lib
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  lib,
 }:
 
 buildPythonPackage rec {
-  pname   = "prodict";
+  pname = "prodict";
   version = "0.8.6";
   format = "setuptools";
   disabled = pythonOlder "3.7";
@@ -21,9 +22,7 @@ buildPythonPackage rec {
   # make setuptools happy on case-sensitive filesystems
   postPatch = ''if [[ ! -f README.md ]]; then mv README.MD README.md; fi'';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "prodict" ];
 
diff --git a/pkgs/development/python-modules/proglog/default.nix b/pkgs/development/python-modules/proglog/default.nix
index b8e327e91c48b..ebb674d14bda9 100644
--- a/pkgs/development/python-modules/proglog/default.nix
+++ b/pkgs/development/python-modules/proglog/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchPypi, buildPythonPackage, tqdm }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  tqdm,
+}:
 
 buildPythonPackage rec {
   pname = "proglog";
diff --git a/pkgs/development/python-modules/progress/default.nix b/pkgs/development/python-modules/progress/default.nix
index 51c707bdde91d..20c2954a10f70 100644
--- a/pkgs/development/python-modules/progress/default.nix
+++ b/pkgs/development/python-modules/progress/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/progressbar/default.nix b/pkgs/development/python-modules/progressbar/default.nix
index 2a8f85893a52d..beae027d52d46 100644
--- a/pkgs/development/python-modules/progressbar/default.nix
+++ b/pkgs/development/python-modules/progressbar/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "progressbar";
diff --git a/pkgs/development/python-modules/progressbar2/default.nix b/pkgs/development/python-modules/progressbar2/default.nix
index 082cff10b8a8a..314f55047593f 100644
--- a/pkgs/development/python-modules/progressbar2/default.nix
+++ b/pkgs/development/python-modules/progressbar2/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, dill
-, freezegun
-, pytestCheckHook
-, python-utils
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  dill,
+  freezegun,
+  pytestCheckHook,
+  python-utils,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    python-utils
-  ];
+  propagatedBuildInputs = [ python-utils ];
 
   nativeCheckInputs = [
     dill
@@ -41,9 +40,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "progressbar"
-  ];
+  pythonImportsCheck = [ "progressbar" ];
 
   meta = with lib; {
     description = "Text progressbar library";
diff --git a/pkgs/development/python-modules/progressbar33/default.nix b/pkgs/development/python-modules/progressbar33/default.nix
index 4ed2e42eb161f..ba11ecd893ded 100644
--- a/pkgs/development/python-modules/progressbar33/default.nix
+++ b/pkgs/development/python-modules/progressbar33/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "progressbar33";
diff --git a/pkgs/development/python-modules/prometheus-api-client/default.nix b/pkgs/development/python-modules/prometheus-api-client/default.nix
index 842b4c0b22ab0..27b3df9700a48 100644
--- a/pkgs/development/python-modules/prometheus-api-client/default.nix
+++ b/pkgs/development/python-modules/prometheus-api-client/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, dateparser
-, httmock
-, matplotlib
-, numpy
-, pandas
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  dateparser,
+  httmock,
+  matplotlib,
+  numpy,
+  pandas,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -30,25 +31,16 @@ buildPythonPackage rec {
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  checkInputs = [
-    httmock
-  ];
+  checkInputs = [ httmock ];
 
-  disabledTestPaths = [
-    "tests/test_prometheus_connect.py"
-  ];
-
-  pythonImportsCheck = [
-    "prometheus_api_client"
-  ];
+  disabledTestPaths = [ "tests/test_prometheus_connect.py" ];
 
+  pythonImportsCheck = [ "prometheus_api_client" ];
 
   meta = with lib; {
-    description = "A Python wrapper for the Prometheus HTTP API";
+    description = "Python wrapper for the Prometheus HTTP API";
     longDescription = ''
       The prometheus-api-client library consists of multiple modules which
       assist in connecting to a Prometheus host, fetching the required metrics
diff --git a/pkgs/development/python-modules/prometheus-client/default.nix b/pkgs/development/python-modules/prometheus-client/default.nix
index e81613a7062be..db541075d773d 100644
--- a/pkgs/development/python-modules/prometheus-client/default.nix
+++ b/pkgs/development/python-modules/prometheus-client/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, twisted
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  twisted,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,24 +22,15 @@ buildPythonPackage rec {
     hash = "sha256-IMw0mpOUzjXBy4bMTeSFMc5pdibI5lGxZHKiufjPLbM=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  optional-dependencies.twisted = [
-    twisted
-  ];
+  optional-dependencies.twisted = [ twisted ];
 
   __darwinAllowLocalNetworking = true;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ]
-  ++ lib.flatten (lib.attrValues optional-dependencies);
+  nativeCheckInputs = [ pytestCheckHook ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
-  pythonImportsCheck = [
-    "prometheus_client"
-  ];
+  pythonImportsCheck = [ "prometheus_client" ];
 
   meta = with lib; {
     description = "Prometheus instrumentation library for Python applications";
diff --git a/pkgs/development/python-modules/prometheus-flask-exporter/default.nix b/pkgs/development/python-modules/prometheus-flask-exporter/default.nix
index b2acd8e5bbdd8..2aa6ce30ebe4e 100644
--- a/pkgs/development/python-modules/prometheus-flask-exporter/default.nix
+++ b/pkgs/development/python-modules/prometheus-flask-exporter/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flask
-, prometheus-client
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+  prometheus-client,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,10 @@ buildPythonPackage rec {
     hash = "sha256-GAQ80J7at8Apqu+DUMN3+rLi/lrNv5Y7w/DKpUN2iu8=";
   };
 
-  propagatedBuildInputs = [ flask prometheus-client ];
+  propagatedBuildInputs = [
+    flask
+    prometheus-client
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
   pytestFlagsArray = [ "tests/" ];
diff --git a/pkgs/development/python-modules/prometheus-pandas/default.nix b/pkgs/development/python-modules/prometheus-pandas/default.nix
index ff7cadd8f58b2..670d9c4cf5607 100644
--- a/pkgs/development/python-modules/prometheus-pandas/default.nix
+++ b/pkgs/development/python-modules/prometheus-pandas/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, numpy
-, pandas
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  numpy,
+  pandas,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-1eaTmNui3cAisKEhBMEpOv+UndJZwb4GGK2M76xiy7k=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     numpy
@@ -28,9 +27,7 @@ buildPythonPackage rec {
   # There are no tests. :(
   doCheck = false;
 
-  pythonImportsCheck = [
-    "prometheus_pandas"
-  ];
+  pythonImportsCheck = [ "prometheus_pandas" ];
 
   meta = with lib; {
     homepage = "https://github.com/dcoles/prometheus-pandas";
diff --git a/pkgs/development/python-modules/prometrix/default.nix b/pkgs/development/python-modules/prometrix/default.nix
index 58b3ac27361e3..52e0621136c7e 100644
--- a/pkgs/development/python-modules/prometrix/default.nix
+++ b/pkgs/development/python-modules/prometrix/default.nix
@@ -1,36 +1,41 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, boto3
-, botocore
-, dateparser
-, matplotlib
-, numpy
-, pandas
-, poetry-core
-, prometheus-api-client
-, pydantic_1
-, requests
+{
+  lib,
+  boto3,
+  botocore,
+  buildPythonPackage,
+  dateparser,
+  fetchFromGitHub,
+  matplotlib,
+  numpy,
+  pandas,
+  poetry-core,
+  prometheus-api-client,
+  pydantic,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "prometrix";
-  version = "unstable-2024-02-20";
-  format = "pyproject";
+  version = "0.1.18-unstable-2024-04-30";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "robusta-dev";
     repo = "prometrix";
-    rev = "ab2dad2192ed3df91c1a25446a4f54b8f2f6742f";
-    hash = "sha256-/72Qkd2BojYgiQi5rq7dVsEje7M0aQQXhenvIM7lSy4=";
+    # https://github.com/robusta-dev/prometrix/issues/19
+    rev = "35128847d46016b88455e0a98f0eeec08d042107";
+    hash = "sha256-g8ZqgL9ETVwpKLMQS7s7A4GpSGfaFEDLOr8JBvFl2C4=";
   };
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace-fail 'pydantic = "^1.8.1"' 'pydantic = "*"'
-  '';
+  pythonRelaxDeps = [
+    "pydantic"
+    "urllib3"
+  ];
+
+  build-system = [ poetry-core ];
+
 
-  propagatedBuildInputs = [
+  dependencies = [
     boto3
     botocore
     dateparser
@@ -38,17 +43,15 @@ buildPythonPackage rec {
     numpy
     pandas
     prometheus-api-client
-    pydantic_1
+    pydantic
     requests
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  # Fixture is missing
+  # https://github.com/robusta-dev/prometrix/issues/9
+  doCheck = false;
 
-  pythonImportsCheck = [
-    "prometrix"
-  ];
+  pythonImportsCheck = [ "prometrix" ];
 
   meta = with lib; {
     description = "Unified Prometheus client";
@@ -56,7 +59,11 @@ buildPythonPackage rec {
       This Python package provides a unified Prometheus client that can be used
       to connect to and query various types of Prometheus instances.
     '';
+    homepage = "https://github.com/robusta-dev/prometrix";
     license = licenses.mit;
     maintainers = with maintainers; [ azahi ];
+    # prometheus-api-client 0.5.5 is not working
+    # https://github.com/robusta-dev/prometrix/issues/14
+    broken = versionAtLeast prometheus-api-client.version "0.5.3";
   };
 }
diff --git a/pkgs/development/python-modules/promise/default.nix b/pkgs/development/python-modules/promise/default.nix
index a9c4c416b7fcd..95abec75b9742 100644
--- a/pkgs/development/python-modules/promise/default.nix
+++ b/pkgs/development/python-modules/promise/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, mock
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  mock,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
       --replace "assert_exc.traceback[-1].path.strpath" "str(assert_exc.traceback[-1].path)"
   '';
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   nativeCheckInputs = [
     mock
@@ -47,13 +46,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTestPaths = [
-    "tests/test_benchmark.py"
-  ];
+  disabledTestPaths = [ "tests/test_benchmark.py" ];
 
-  pythonImportsCheck = [
-    "promise"
-  ];
+  pythonImportsCheck = [ "promise" ];
 
   meta = with lib; {
     description = "Ultra-performant Promise implementation in Python";
diff --git a/pkgs/development/python-modules/prompt-toolkit/1.nix b/pkgs/development/python-modules/prompt-toolkit/1.nix
index f92ceeb86fff5..1a6dd3223df01 100644
--- a/pkgs/development/python-modules/prompt-toolkit/1.nix
+++ b/pkgs/development/python-modules/prompt-toolkit/1.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, docopt
-, six
-, wcwidth
-, pygments
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  docopt,
+  six,
+  wcwidth,
+  pygments,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,16 @@ buildPythonPackage rec {
     sha256 = "dd4fca02c8069497ad931a2d09914c6b0d1b50151ce876bc15bde4c747090126";
   };
 
-  propagatedBuildInputs = [ docopt six wcwidth pygments ];
+  propagatedBuildInputs = [
+    docopt
+    six
+    wcwidth
+    pygments
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = [
-    "test_pathcompleter_can_expanduser"
-  ];
+  disabledTests = [ "test_pathcompleter_can_expanduser" ];
 
   meta = with lib; {
     description = "Python library for building powerful interactive command lines";
diff --git a/pkgs/development/python-modules/prompt-toolkit/default.nix b/pkgs/development/python-modules/prompt-toolkit/default.nix
index faadc19f7a6e5..0a415b1926fe4 100644
--- a/pkgs/development/python-modules/prompt-toolkit/default.nix
+++ b/pkgs/development/python-modules/prompt-toolkit/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, six
-, wcwidth
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  six,
+  wcwidth,
 }:
 
 buildPythonPackage rec {
   pname = "prompt-toolkit";
-  version = "3.0.43";
+  version = "3.0.47";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -17,7 +18,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "prompt_toolkit";
     inherit version;
-    hash = "sha256-NSe3ryYQbLxloEC8yEg5o1ZuwbBRuwv+lTYx5wSw/30=";
+    hash = "sha256-Hhspy1gICx5p8gfIk6GnvxbRJ6XDDJ0Xolpdd3kuU2A=";
   };
 
   propagatedBuildInputs = [
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     wcwidth
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # tests/test_completion.py:206: AssertionError
@@ -35,9 +34,7 @@ buildPythonPackage rec {
     "test_pathcompleter_can_expanduser"
   ];
 
-  pythonImportsCheck = [
-    "prompt_toolkit"
-  ];
+  pythonImportsCheck = [ "prompt_toolkit" ];
 
   meta = with lib; {
     description = "Python library for building powerful interactive command lines";
diff --git a/pkgs/development/python-modules/prompthub-py/default.nix b/pkgs/development/python-modules/prompthub-py/default.nix
index 0f1fbe5427b0a..8becc3b2ac300 100644
--- a/pkgs/development/python-modules/prompthub-py/default.nix
+++ b/pkgs/development/python-modules/prompthub-py/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, pyyaml
-, requests
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  pyyaml,
+  requests,
 }:
 let
   pname = "prompthub-py";
@@ -24,9 +25,7 @@ buildPythonPackage {
 
   disabled = pythonOlder "3.8";
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     pyyaml
@@ -34,7 +33,7 @@ buildPythonPackage {
   ];
 
   meta = with lib; {
-    description = "A simple client to fetch prompts from Prompt Hub using its REST API.";
+    description = "Simple client to fetch prompts from Prompt Hub using its REST API";
     homepage = "https://github.com/deepset-ai/prompthub-py";
     changelog = "https://github.com/deepset-ai/prompthub-py/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/property-manager/default.nix b/pkgs/development/python-modules/property-manager/default.nix
index f293c2f13b355..e1eee500812eb 100644
--- a/pkgs/development/python-modules/property-manager/default.nix
+++ b/pkgs/development/python-modules/property-manager/default.nix
@@ -1,4 +1,13 @@
-{ lib, buildPythonPackage, fetchFromGitHub, humanfriendly, verboselogs, coloredlogs, pytest, pytest-cov }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  humanfriendly,
+  verboselogs,
+  coloredlogs,
+  pytest,
+  pytest-cov,
+}:
 
 buildPythonPackage rec {
   pname = "property-manager";
@@ -12,8 +21,15 @@ buildPythonPackage rec {
     sha256 = "1v7hjm7qxpgk92i477fjhpcnjgp072xgr8jrgmbrxfbsv4cvl486";
   };
 
-  propagatedBuildInputs = [ coloredlogs humanfriendly verboselogs ];
-  nativeCheckInputs = [ pytest pytest-cov ];
+  propagatedBuildInputs = [
+    coloredlogs
+    humanfriendly
+    verboselogs
+  ];
+  nativeCheckInputs = [
+    pytest
+    pytest-cov
+  ];
 
   meta = with lib; {
     description = "Useful property variants for Python programming";
diff --git a/pkgs/development/python-modules/prophet/default.nix b/pkgs/development/python-modules/prophet/default.nix
index 5c1e079612044..8f33fc7aa808d 100644
--- a/pkgs/development/python-modules/prophet/default.nix
+++ b/pkgs/development/python-modules/prophet/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
 
-, cmdstanpy
-, numpy
-, matplotlib
-, pandas
-, holidays
-, tqdm
-, importlib-resources
+  cmdstanpy,
+  numpy,
+  matplotlib,
+  pandas,
+  holidays,
+  tqdm,
+  importlib-resources,
 
-, dask
-, distributed
+  dask,
+  distributed,
 
-, pytestCheckHook
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -48,7 +49,10 @@ buildPythonPackage rec {
     importlib-resources
   ];
 
-  passthru.optional-dependencies.parallel = [ dask distributed ] ++ dask.optional-dependencies.dataframe;
+  passthru.optional-dependencies.parallel = [
+    dask
+    distributed
+  ] ++ dask.optional-dependencies.dataframe;
 
   preCheck = ''
     # use the generated files from $out for testing
@@ -62,7 +66,7 @@ buildPythonPackage rec {
 
   meta = {
     changelog = "https://github.com/facebook/prophet/releases/tag/${src.rev}";
-    description = "A tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth";
+    description = "Tool for producing high quality forecasts for time series data that has multiple seasonality with linear or non-linear growth";
     homepage = "https://facebook.github.io/prophet/";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ tomasajt ];
diff --git a/pkgs/development/python-modules/propka/default.nix b/pkgs/development/python-modules/propka/default.nix
index 2e29476774d13..e9b93b3904679 100644
--- a/pkgs/development/python-modules/propka/default.nix
+++ b/pkgs/development/python-modules/propka/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-EJQqCe4WPOpqsSxxfbTjF0qETpSPYqpixpylweTCjko=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "propka"
-  ];
+  pythonImportsCheck = [ "propka" ];
 
   meta = with lib; {
-    description = "A predictor of the pKa values of ionizable groups in proteins and protein-ligand complexes based in the 3D structure";
+    description = "Predictor of the pKa values of ionizable groups in proteins and protein-ligand complexes based in the 3D structure";
     mainProgram = "propka3";
     homepage = "https://github.com/jensengroup/propka";
     changelog = "https://github.com/jensengroup/propka/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/proto-plus/default.nix b/pkgs/development/python-modules/proto-plus/default.nix
index e7997e71b7a86..df76396f68e34 100644
--- a/pkgs/development/python-modules/proto-plus/default.nix
+++ b/pkgs/development/python-modules/proto-plus/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-, protobuf
-, googleapis-common-protos
-, pytestCheckHook
-, pytz
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  protobuf,
+  googleapis-common-protos,
+  pytestCheckHook,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,11 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ protobuf ];
 
-  nativeCheckInputs = [ pytestCheckHook pytz googleapis-common-protos ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytz
+    googleapis-common-protos
+  ];
 
   pythonImportsCheck = [ "proto" ];
 
diff --git a/pkgs/development/python-modules/protobuf/3.nix b/pkgs/development/python-modules/protobuf/3.nix
index 9685ec88d99cf..75a697dc35b08 100644
--- a/pkgs/development/python-modules/protobuf/3.nix
+++ b/pkgs/development/python-modules/protobuf/3.nix
@@ -1,12 +1,13 @@
-{ buildPackages
-, buildPythonPackage
-, fetchpatch
-, isPyPy
-, lib
-, protobuf
-, pytestCheckHook
-, pythonAtLeast
-, tzdata
+{
+  buildPackages,
+  buildPythonPackage,
+  fetchpatch,
+  isPyPy,
+  lib,
+  protobuf,
+  pytestCheckHook,
+  pythonAtLeast,
+  tzdata,
 }:
 
 assert lib.versionAtLeast protobuf.version "3.21" -> throw "Protobuf 3.20 or older required";
@@ -61,9 +62,7 @@ buildPythonPackage {
 
   setupPyGlobalFlags = [ "--cpp_implementation" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = lib.optionals isPyPy [
     # error message differs
diff --git a/pkgs/development/python-modules/protobuf/default.nix b/pkgs/development/python-modules/protobuf/default.nix
index 73e013d00af8c..9d10deca12a58 100644
--- a/pkgs/development/python-modules/protobuf/default.nix
+++ b/pkgs/development/python-modules/protobuf/default.nix
@@ -1,14 +1,15 @@
-{ buildPackages
-, buildPythonPackage
-, fetchpatch
-, isPyPy
-, lib
-, numpy
-, protobuf
-, pytestCheckHook
-, pythonAtLeast
-, substituteAll
-, tzdata
+{
+  buildPackages,
+  buildPythonPackage,
+  fetchpatch,
+  isPyPy,
+  lib,
+  numpy,
+  protobuf,
+  pytestCheckHook,
+  pythonAtLeast,
+  substituteAll,
+  tzdata,
 }:
 
 assert lib.versionOlder protobuf.version "21" -> throw "Protobuf 21 or newer required";
@@ -26,21 +27,22 @@ buildPythonPackage {
 
   sourceRoot = "${protobuf.src.name}/python";
 
-  patches = lib.optionals (lib.versionAtLeast protobuf.version "22") [
-    # Replace the vendored abseil-cpp with nixpkgs'
-    (substituteAll {
-      src = ./use-nixpkgs-abseil-cpp.patch;
-      abseil_cpp_include_path = "${lib.getDev protobuf.abseil-cpp}/include";
-    })
-  ]
-  ++ lib.optionals (pythonAtLeast "3.11" && lib.versionOlder protobuf.version "22") [
-    (fetchpatch {
-      name = "support-python311.patch";
-      url = "https://github.com/protocolbuffers/protobuf/commit/2206b63c4649cf2e8a06b66c9191c8ef862ca519.diff";
-      stripLen = 1; # because sourceRoot above
-      hash = "sha256-3GaoEyZIhS3QONq8LEvJCH5TdO9PKnOgcQF0GlEiwFo=";
-    })
-  ];
+  patches =
+    lib.optionals (lib.versionAtLeast protobuf.version "22") [
+      # Replace the vendored abseil-cpp with nixpkgs'
+      (substituteAll {
+        src = ./use-nixpkgs-abseil-cpp.patch;
+        abseil_cpp_include_path = "${lib.getDev protobuf.abseil-cpp}/include";
+      })
+    ]
+    ++ lib.optionals (pythonAtLeast "3.11" && lib.versionOlder protobuf.version "22") [
+      (fetchpatch {
+        name = "support-python311.patch";
+        url = "https://github.com/protocolbuffers/protobuf/commit/2206b63c4649cf2e8a06b66c9191c8ef862ca519.diff";
+        stripLen = 1; # because sourceRoot above
+        hash = "sha256-3GaoEyZIhS3QONq8LEvJCH5TdO9PKnOgcQF0GlEiwFo=";
+      })
+    ];
 
   prePatch = ''
     if [[ "$(<../version.json)" != *'"python": "'"$version"'"'* ]]; then
@@ -80,9 +82,7 @@ buildPythonPackage {
 
   nativeCheckInputs = [
     pytestCheckHook
-  ] ++ lib.optionals (lib.versionAtLeast protobuf.version "22") [
-    numpy
-  ];
+  ] ++ lib.optionals (lib.versionAtLeast protobuf.version "22") [ numpy ];
 
   disabledTests = lib.optionals isPyPy [
     # error message differs
@@ -94,17 +94,21 @@ buildPythonPackage {
     "testStrictUtf8Check"
   ];
 
-  disabledTestPaths = lib.optionals (lib.versionAtLeast protobuf.version "23") [
-    # The following commit (I think) added some internal test logic for Google
-    # that broke generator_test.py. There is a new proto file that setup.py is
-    # not generating into a .py file. However, adding this breaks a bunch of
-    # conflict detection in descriptor_test.py that I don't understand. So let's
-    # just disable generator_test.py for now.
-    #
-    #   https://github.com/protocolbuffers/protobuf/commit/5abab0f47e81ac085f0b2d17ec3b3a3b252a11f1
-    #
-    "google/protobuf/internal/generator_test.py"
-  ];
+  disabledTestPaths =
+    lib.optionals (lib.versionAtLeast protobuf.version "23") [
+      # The following commit (I think) added some internal test logic for Google
+      # that broke generator_test.py. There is a new proto file that setup.py is
+      # not generating into a .py file. However, adding this breaks a bunch of
+      # conflict detection in descriptor_test.py that I don't understand. So let's
+      # just disable generator_test.py for now.
+      #
+      #   https://github.com/protocolbuffers/protobuf/commit/5abab0f47e81ac085f0b2d17ec3b3a3b252a11f1
+      #
+      "google/protobuf/internal/generator_test.py"
+    ]
+    ++ lib.optionals (lib.versionAtLeast protobuf.version "25") [
+      "minimal_test.py" # ModuleNotFoundError: No module named 'google3'
+    ];
 
   pythonImportsCheck = [
     "google.protobuf"
@@ -122,6 +126,6 @@ buildPythonPackage {
     maintainers = with maintainers; [ knedlsepp ];
     # Tests are currently failing because backend is unavailable and causes tests to fail
     # Progress tracked in https://github.com/NixOS/nixpkgs/pull/264902
-    broken = lib.versionAtLeast protobuf.version "25";
+    broken = lib.versionAtLeast protobuf.version "26";
   };
 }
diff --git a/pkgs/development/python-modules/protobuf3-to-dict/default.nix b/pkgs/development/python-modules/protobuf3-to-dict/default.nix
index 4160f7760a0c4..e613c1d23eb28 100644
--- a/pkgs/development/python-modules/protobuf3-to-dict/default.nix
+++ b/pkgs/development/python-modules/protobuf3-to-dict/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, protobuf, six }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  protobuf,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "protobuf3-to-dict";
@@ -14,10 +20,13 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "protobuf_to_dict" ];
 
-  propagatedBuildInputs = [ protobuf six ];
+  propagatedBuildInputs = [
+    protobuf
+    six
+  ];
 
   meta = with lib; {
-    description = "A teeny Python library for creating Python dicts from protocol buffers and the reverse";
+    description = "Teeny Python library for creating Python dicts from protocol buffers and the reverse";
     homepage = "https://github.com/kaporzhu/protobuf-to-dict";
     license = licenses.publicDomain;
     maintainers = with maintainers; [ nequissimus ];
diff --git a/pkgs/development/python-modules/proton-client/default.nix b/pkgs/development/python-modules/proton-client/default.nix
index c8714a741a478..4e178ce26c929 100644
--- a/pkgs/development/python-modules/proton-client/default.nix
+++ b/pkgs/development/python-modules/proton-client/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, substituteAll
-, bcrypt
-, pyopenssl
-, python-gnupg
-, pytestCheckHook
-, requests
-, openssl
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  substituteAll,
+  bcrypt,
+  pyopenssl,
+  python-gnupg,
+  pytestCheckHook,
+  requests,
+  openssl,
 }:
 
 buildPythonPackage rec {
@@ -56,7 +57,7 @@ buildPythonPackage rec {
     description = "Python Proton client module";
     homepage = "https://github.com/ProtonMail/proton-python-client";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/python-modules/proton-core/default.nix b/pkgs/development/python-modules/proton-core/default.nix
index 07eb0b9fc7072..c19ef3b31d17a 100644
--- a/pkgs/development/python-modules/proton-core/default.nix
+++ b/pkgs/development/python-modules/proton-core/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, aiohttp
-, bcrypt
-, pyopenssl
-, python-gnupg
-, requests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  aiohttp,
+  bcrypt,
+  pyopenssl,
+  python-gnupg,
+  requests,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-072XuHvgWludlFwp/tqLpuAU89vzifFhwQ01FuiCoL8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     bcrypt
@@ -41,9 +40,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "proton" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # Single test, requires internet connection
@@ -71,6 +68,6 @@ buildPythonPackage rec {
     description = "Core logic used by the other Proton components";
     homepage = "https://github.com/ProtonVPN/python-proton-core";
     license = lib.licenses.gpl3Only;
-    maintainers = with lib.maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/proton-keyring-linux-secretservice/default.nix b/pkgs/development/python-modules/proton-keyring-linux-secretservice/default.nix
index db8a0d14cdb31..ab9cefd53a993 100644
--- a/pkgs/development/python-modules/proton-keyring-linux-secretservice/default.nix
+++ b/pkgs/development/python-modules/proton-keyring-linux-secretservice/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, proton-keyring-linux
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  proton-keyring-linux,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     hash = "sha256-IZPT2bL/1YD2TH/djwIQHUE1RRbYMTkQDacjjoqDQWo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    proton-keyring-linux
-  ];
+  propagatedBuildInputs = [ proton-keyring-linux ];
 
   postPatch = ''
     substituteInPlace setup.cfg \
@@ -33,14 +30,12 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "proton.keyring_linux" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "ProtonVPN component to access Linux's keyring secret service API";
     homepage = "https://github.com/ProtonVPN/python-proton-keyring-linux-secretservice";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/proton-keyring-linux/default.nix b/pkgs/development/python-modules/proton-keyring-linux/default.nix
index 231a482658b37..a0f63f4222da2 100644
--- a/pkgs/development/python-modules/proton-keyring-linux/default.nix
+++ b/pkgs/development/python-modules/proton-keyring-linux/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, keyring
-, proton-core
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  keyring,
+  proton-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-c2wdbd8Hkz2hF9zYMy4/V/W6uZRItz7tWqLJqTsJoHU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     keyring
@@ -35,14 +34,12 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "proton.keyring_linux.core" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "ProtonVPN core component to access Linux's keyring";
     homepage = "https://github.com/ProtonVPN/python-proton-keyring-linux";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/proton-vpn-api-core/default.nix b/pkgs/development/python-modules/proton-vpn-api-core/default.nix
index 3e602ab839de8..c3597acd9e5ce 100644
--- a/pkgs/development/python-modules/proton-vpn-api-core/default.nix
+++ b/pkgs/development/python-modules/proton-vpn-api-core/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, proton-core
-, proton-vpn-connection
-, proton-vpn-logger
-, proton-vpn-killswitch
-, proton-vpn-session
-, sentry-sdk
-, distro
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  proton-core,
+  proton-vpn-connection,
+  proton-vpn-logger,
+  proton-vpn-killswitch,
+  proton-vpn-session,
+  sentry-sdk,
+  distro,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-BGei6tw6VTKkHmaIWa2VJfKOL5cRUbauOQ7zp1RY9Bo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     distro
@@ -45,9 +44,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "proton.vpn.core" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     # Needed for Permission denied: '/homeless-shelter'
@@ -58,6 +55,6 @@ buildPythonPackage rec {
     description = "Acts as a facade to the other Proton VPN components, exposing a uniform API to the available Proton VPN services";
     homepage = "https://github.com/ProtonVPN/python-proton-vpn-api-core";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/proton-vpn-connection/default.nix b/pkgs/development/python-modules/proton-vpn-connection/default.nix
index 9fb7250f10b33..0df1b42a2bc40 100644
--- a/pkgs/development/python-modules/proton-vpn-connection/default.nix
+++ b/pkgs/development/python-modules/proton-vpn-connection/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, proton-core
-, proton-vpn-killswitch
-, proton-vpn-logger
-, jinja2
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  proton-core,
+  proton-vpn-killswitch,
+  proton-vpn-logger,
+  jinja2,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-Ze/te0G0tDzyZPGVVqvuJlZoHWJqJ36LnHO+Cy5nxx8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     jinja2
@@ -39,9 +38,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "proton.vpn.connection" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Permission denied: '/run'
@@ -66,6 +63,6 @@ buildPythonPackage rec {
     description = "Defines the interface that VPN connection backends should implement";
     homepage = "https://github.com/ProtonVPN/python-proton-vpn-connection";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/proton-vpn-killswitch-network-manager/default.nix b/pkgs/development/python-modules/proton-vpn-killswitch-network-manager/default.nix
index 78e9b29a29254..68e024501cb65 100644
--- a/pkgs/development/python-modules/proton-vpn-killswitch-network-manager/default.nix
+++ b/pkgs/development/python-modules/proton-vpn-killswitch-network-manager/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, gobject-introspection
-, setuptools
-, networkmanager
-, proton-vpn-killswitch
-, proton-vpn-logger
-, pycairo
-, pygobject3
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gobject-introspection,
+  setuptools,
+  networkmanager,
+  proton-vpn-killswitch,
+  proton-vpn-logger,
+  pycairo,
+  pygobject3,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -45,14 +46,12 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "proton.vpn.killswitch.backend.linux.networkmanager" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Implementation of the proton-vpn-killswitch interface using Network Manager";
     homepage = "https://github.com/ProtonVPN/python-proton-vpn-killswitch-network-manager";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/proton-vpn-killswitch/default.nix b/pkgs/development/python-modules/proton-vpn-killswitch/default.nix
index 912980453ad9c..c2ed563df880e 100644
--- a/pkgs/development/python-modules/proton-vpn-killswitch/default.nix
+++ b/pkgs/development/python-modules/proton-vpn-killswitch/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, proton-core
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  proton-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     hash = "sha256-XZqjAhxgIiATJd3JcW2WWUMC1b6+cfZRhXlIPyMUFH8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    proton-core
-  ];
+  propagatedBuildInputs = [ proton-core ];
 
   postPatch = ''
     substituteInPlace setup.cfg \
@@ -33,14 +30,12 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "proton.vpn.killswitch.interface" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Defines the ProtonVPN kill switch interface";
     homepage = "https://github.com/ProtonVPN/python-proton-vpn-killswitch";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/proton-vpn-logger/default.nix b/pkgs/development/python-modules/proton-vpn-logger/default.nix
index 9c581f400c738..d492ed146eb7e 100644
--- a/pkgs/development/python-modules/proton-vpn-logger/default.nix
+++ b/pkgs/development/python-modules/proton-vpn-logger/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, proton-core
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  proton-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     hash = "sha256-/LfMjyTs/EusgnKEQugsdJzqDZBvaAhbsTUVLDCRw0I=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    proton-core
-  ];
+  propagatedBuildInputs = [ proton-core ];
 
   postPatch = ''
     substituteInPlace setup.cfg \
@@ -33,9 +30,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "proton.vpn.logging" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     # Needed for Permission denied: '/homeless-shelter'
@@ -46,6 +41,6 @@ buildPythonPackage rec {
     description = "General purpose logging package for the entire ProtonVPN Linux client";
     homepage = "https://github.com/ProtonVPN/python-proton-vpn-logger";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/proton-vpn-network-manager-openvpn/default.nix b/pkgs/development/python-modules/proton-vpn-network-manager-openvpn/default.nix
index 57c2615f53fcd..c10b489ed6b0d 100644
--- a/pkgs/development/python-modules/proton-vpn-network-manager-openvpn/default.nix
+++ b/pkgs/development/python-modules/proton-vpn-network-manager-openvpn/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, gobject-introspection
-, setuptools
-, proton-core
-, proton-vpn-network-manager
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gobject-introspection,
+  setuptools,
+  proton-core,
+  proton-vpn-network-manager,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -38,14 +39,12 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "proton.vpn.backend.linux.networkmanager.protocol" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Adds support for the OpenVPN protocol using NetworkManager";
     homepage = "https://github.com/ProtonVPN/python-proton-vpn-network-manager-openvpn";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/proton-vpn-network-manager/default.nix b/pkgs/development/python-modules/proton-vpn-network-manager/default.nix
index 0327354e79277..97dd1d52dca98 100644
--- a/pkgs/development/python-modules/proton-vpn-network-manager/default.nix
+++ b/pkgs/development/python-modules/proton-vpn-network-manager/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, gobject-introspection
-, setuptools
-, networkmanager
-, proton-core
-, proton-vpn-connection
-, pycairo
-, pygobject3
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gobject-introspection,
+  setuptools,
+  networkmanager,
+  proton-core,
+  proton-vpn-connection,
+  pycairo,
+  pygobject3,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -55,6 +56,6 @@ buildPythonPackage rec {
     description = "Provides the necessary functionality for other ProtonVPN components to interact with NetworkManager";
     homepage = "https://github.com/ProtonVPN/python-proton-vpn-network-manager";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/proton-vpn-session/default.nix b/pkgs/development/python-modules/proton-vpn-session/default.nix
index 6295038b6f9ee..5210c42373111 100644
--- a/pkgs/development/python-modules/proton-vpn-session/default.nix
+++ b/pkgs/development/python-modules/proton-vpn-session/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, cryptography
-, distro
-, proton-core
-, proton-vpn-logger
-, pynacl
-, aiohttp
-, pyopenssl
-, pytest-asyncio
-, requests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  cryptography,
+  distro,
+  proton-core,
+  proton-vpn-logger,
+  pynacl,
+  aiohttp,
+  pyopenssl,
+  pytest-asyncio,
+  requests,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-/5ju/2bxhqK6JWchkxFe3amBKHtO98GCVQWIrUsn+nQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cryptography
@@ -62,6 +61,6 @@ buildPythonPackage rec {
     description = "Provides utility classes to manage VPN sessions";
     homepage = "https://github.com/ProtonVPN/python-proton-vpn-session";
     license = lib.licenses.gpl3Only;
-    maintainers = with lib.maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/protonup-ng/default.nix b/pkgs/development/python-modules/protonup-ng/default.nix
index 02695a5e3515f..8e69e1c743d3c 100644
--- a/pkgs/development/python-modules/protonup-ng/default.nix
+++ b/pkgs/development/python-modules/protonup-ng/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, pythonOlder, fetchPypi, requests, configparser }:
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  requests,
+  configparser,
+}:
 
 buildPythonPackage rec {
   pname = "protonup-ng";
@@ -16,7 +23,10 @@ buildPythonPackage rec {
       --replace "argparse" ""
   '';
 
-  propagatedBuildInputs = [ requests configparser ];
+  propagatedBuildInputs = [
+    requests
+    configparser
+  ];
 
   doCheck = false; # protonup does not have any tests
   pythonImportsCheck = [ "protonup" ];
@@ -25,7 +35,10 @@ buildPythonPackage rec {
     homepage = "https://github.com/cloudishBenne/protonup-ng";
     description = "CLI program and API to automate the installation and update of GloriousEggroll's Proton-GE";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ Madouura cafkafk ];
+    maintainers = with maintainers; [
+      Madouura
+      cafkafk
+    ];
     mainProgram = "protonup";
   };
 }
diff --git a/pkgs/development/python-modules/protonvpn-nm-lib/default.nix b/pkgs/development/python-modules/protonvpn-nm-lib/default.nix
index 7d4b65db3ddae..a5067b1525cf7 100644
--- a/pkgs/development/python-modules/protonvpn-nm-lib/default.nix
+++ b/pkgs/development/python-modules/protonvpn-nm-lib/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, substituteAll
-, dbus-python
-, distro
-, jinja2
-, keyring
-, proton-client
-, pygobject3
-, pyxdg
-, systemd
-, ncurses
-, networkmanager
-, pkgs-systemd
-, python
-, xdg-utils
-, makeWrapper
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  substituteAll,
+  dbus-python,
+  distro,
+  jinja2,
+  keyring,
+  proton-client,
+  pygobject3,
+  pyxdg,
+  systemd,
+  ncurses,
+  networkmanager,
+  pkgs-systemd,
+  python,
+  xdg-utils,
+  makeWrapper,
 }:
 
 buildPythonPackage rec {
@@ -76,7 +77,7 @@ buildPythonPackage rec {
     mainProgram = "protonvpn_reconnector.py";
     homepage = "https://github.com/ProtonVPN/protonvpn-nm-lib";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/python-modules/prov/default.nix b/pkgs/development/python-modules/prov/default.nix
index 64e63b9c954b8..233f71b0a3d91 100644
--- a/pkgs/development/python-modules/prov/default.nix
+++ b/pkgs/development/python-modules/prov/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, lxml
-, networkx
-, python-dateutil
-, rdflib
-, pydot
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  lxml,
+  networkx,
+  python-dateutil,
+  rdflib,
+  pydot,
 }:
 
 buildPythonPackage rec {
   pname = "prov";
-  version = "2.0.0";
+  version = "2.0.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "b6438f2195ecb9f6e8279b58971e02bc51814599b5d5383366eef91d867422ee";
+    sha256 = "sha256-DiOMFAXRpVxyvTmzttc9b3q/2dCn+rLsBpOhmimlYX8=";
   };
 
   propagatedBuildInputs = [
@@ -25,16 +26,12 @@ buildPythonPackage rec {
     rdflib
   ];
 
-  nativeCheckInputs = [
-    pydot
-  ];
+  nativeCheckInputs = [ pydot ];
 
   # Multiple tests are out-dated and failing
   doCheck = false;
 
-  pythonImportsCheck = [
-    "prov"
-  ];
+  pythonImportsCheck = [ "prov" ];
 
   meta = with lib; {
     description = "Python library for W3C Provenance Data Model (PROV)";
diff --git a/pkgs/development/python-modules/prox-tv/default.nix b/pkgs/development/python-modules/prox-tv/default.nix
index 67f9be4dba4ca..bd8219751872e 100644
--- a/pkgs/development/python-modules/prox-tv/default.nix
+++ b/pkgs/development/python-modules/prox-tv/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, blas
-, lapack
-, buildPythonPackage
-, cffi
-, fetchFromGitHub
-, nose
-, numpy
-, stdenv
+{
+  lib,
+  blas,
+  lapack,
+  buildPythonPackage,
+  cffi,
+  fetchFromGitHub,
+  nose,
+  numpy,
+  stdenv,
 }:
 
 buildPythonPackage {
@@ -21,9 +22,7 @@ buildPythonPackage {
     sha256 = "0mlrjbb5rw78dgijkr3bspmsskk6jqs9y7xpsgs35i46dvb327q5";
   };
 
-  nativeCheckInputs = [
-    nose
-  ];
+  nativeCheckInputs = [ nose ];
 
   propagatedBuildInputs = [
     numpy
@@ -37,13 +36,16 @@ buildPythonPackage {
 
   propagatedNativeBuildInputs = [ cffi ];
 
-  buildInputs = [ blas lapack ];
+  buildInputs = [
+    blas
+    lapack
+  ];
 
   enableParallelBuilding = true;
 
   meta = with lib; {
     homepage = "https://github.com/albarji/proxTV";
-    description = "A toolbox for fast Total Variation proximity operators";
+    description = "Toolbox for fast Total Variation proximity operators";
     license = licenses.bsd2;
     maintainers = with maintainers; [ multun ];
   };
diff --git a/pkgs/development/python-modules/proxmoxer/default.nix b/pkgs/development/python-modules/proxmoxer/default.nix
index 98063a560472b..229634d64d597 100644
--- a/pkgs/development/python-modules/proxmoxer/default.nix
+++ b/pkgs/development/python-modules/proxmoxer/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, paramiko
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-toolbelt
-, responses
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  paramiko,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-toolbelt,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
     "tests/test_openssh.py"
   ];
 
-  pythonImportsCheck = [
-    "proxmoxer"
-  ];
+  pythonImportsCheck = [ "proxmoxer" ];
 
   meta = with lib; {
     description = "Python wrapper for Proxmox API v2";
diff --git a/pkgs/development/python-modules/proxy-db/default.nix b/pkgs/development/python-modules/proxy-db/default.nix
index a4a6fef11188e..7ccfe3bb890a5 100644
--- a/pkgs/development/python-modules/proxy-db/default.nix
+++ b/pkgs/development/python-modules/proxy-db/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
-, six
-, sqlalchemy
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
+  six,
+  sqlalchemy,
 }:
 
 buildPythonPackage rec {
@@ -42,9 +43,7 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  pythonImportsCheck = [
-    "proxy_db"
-  ];
+  pythonImportsCheck = [ "proxy_db" ];
 
   meta = with lib; {
     description = "Module to manage proxies in a local database";
diff --git a/pkgs/development/python-modules/proxy-py/default.nix b/pkgs/development/python-modules/proxy-py/default.nix
index 72630b722bc4e..6a09b16a5cd9c 100644
--- a/pkgs/development/python-modules/proxy-py/default.nix
+++ b/pkgs/development/python-modules/proxy-py/default.nix
@@ -4,7 +4,6 @@
   bash,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   gnumake,
   h2,
   hpack,
@@ -24,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "proxy-py";
-  version = "2.4.4rc5";
+  version = "2.4.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -33,7 +32,7 @@ buildPythonPackage rec {
     owner = "abhinavsingh";
     repo = "proxy.py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ngIskWzN6699C0WjSX/ZbHxV3Eb8ikQPNYZFzfzt7xU=";
+    hash = "sha256-QWwIbNt2MtRfQaX7uZJzYmS++2MH+gTjWO0aEKYSETI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/proxy-tools/default.nix b/pkgs/development/python-modules/proxy-tools/default.nix
index beb91a4333882..b7c858d052005 100644
--- a/pkgs/development/python-modules/proxy-tools/default.nix
+++ b/pkgs/development/python-modules/proxy-tools/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     hash = "sha256-zLN1H1KcBH4tilhEDYayBTA88P6BRveE0cvNlPCigBA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # no tests in pypi
   doCheck = false;
diff --git a/pkgs/development/python-modules/psautohint/default.nix b/pkgs/development/python-modules/psautohint/default.nix
index 0702d4891cbc9..9782458b4ccb2 100644
--- a/pkgs/development/python-modules/psautohint/default.nix
+++ b/pkgs/development/python-modules/psautohint/default.nix
@@ -1,9 +1,17 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
-, fonttools
-, lxml, fs # for fonttools extras
-, setuptools-scm
-, pytestCheckHook, pytest-cov, pytest-xdist
-, runAllTests ? false, psautohint # for passthru.tests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  fonttools,
+  lxml,
+  fs, # for fonttools extras
+  setuptools-scm,
+  pytestCheckHook,
+  pytest-cov,
+  pytest-xdist,
+  runAllTests ? false,
+  psautohint, # for passthru.tests
 }:
 
 buildPythonPackage rec {
@@ -29,7 +37,11 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [ fonttools lxml fs ];
+  propagatedBuildInputs = [
+    fonttools
+    lxml
+    fs
+  ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/pscript/default.nix b/pkgs/development/python-modules/pscript/default.nix
index 76af30e2c125d..59afdd5ea5670 100644
--- a/pkgs/development/python-modules/pscript/default.nix
+++ b/pkgs/development/python-modules/pscript/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, nodejs
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  nodejs,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     rm -rf pscript_legacy
   '';
 
-  pythonImportsCheck = [
-    "pscript"
-  ];
+  pythonImportsCheck = [ "pscript" ];
 
   meta = with lib; {
     description = "Python to JavaScript compiler";
diff --git a/pkgs/development/python-modules/psd-tools/default.nix b/pkgs/development/python-modules/psd-tools/default.nix
index d732d0ce84a40..1f28bf2a244d9 100644
--- a/pkgs/development/python-modules/psd-tools/default.nix
+++ b/pkgs/development/python-modules/psd-tools/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, attrs
-, docopt
-, pillow
-, scikit-image
-, scipy
-, numpy
-, aggdraw
-, pytestCheckHook
-, pytest-cov
-, ipython
-, cython
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  attrs,
+  docopt,
+  pillow,
+  scikit-image,
+  scipy,
+  numpy,
+  aggdraw,
+  pytestCheckHook,
+  pytest-cov,
+  ipython,
+  cython,
 }:
 
 buildPythonPackage rec {
   pname = "psd-tools";
-  version = "1.9.32";
+  version = "1.9.33";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -26,16 +27,14 @@ buildPythonPackage rec {
     owner = "psd-tools";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-H235bZOzTxmmLEFje8hhYxrN4l1S34tD1LMhsymRy9w=";
+    hash = "sha256-4Y4VLfGwopfeIppxwvGKSuelUDAXg67rM/ES9BrTP24=";
   };
 
   postPatch = ''
     sed -i "/addopts =/d" pyproject.toml
   '';
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
   propagatedBuildInputs = [
     aggdraw
@@ -53,9 +52,7 @@ buildPythonPackage rec {
     pytest-cov
   ];
 
-  pythonImportsCheck = [
-    "psd_tools"
-  ];
+  pythonImportsCheck = [ "psd_tools" ];
 
   meta = with lib; {
     description = "Python package for reading Adobe Photoshop PSD files";
diff --git a/pkgs/development/python-modules/psrpcore/default.nix b/pkgs/development/python-modules/psrpcore/default.nix
index 102d9ce9b7c0c..72c8da5f54078 100644
--- a/pkgs/development/python-modules/psrpcore/default.nix
+++ b/pkgs/development/python-modules/psrpcore/default.nix
@@ -1,5 +1,6 @@
 {
   lib,
+  stdenv,
   buildPythonPackage,
   cryptography,
   fetchFromGitHub,
@@ -42,5 +43,6 @@ buildPythonPackage rec {
     changelog = "https://github.com/jborean93/psrpcore/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/python-modules/psutil-home-assistant/default.nix b/pkgs/development/python-modules/psutil-home-assistant/default.nix
index 9ea18d7853b0e..40edb0b5270fd 100644
--- a/pkgs/development/python-modules/psutil-home-assistant/default.nix
+++ b/pkgs/development/python-modules/psutil-home-assistant/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, psutil
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  psutil,
+  pytestCheckHook,
 }:
 
-
 buildPythonPackage rec {
   pname = "psutil-home-assistant";
   version = "0.0.1";
@@ -18,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-6bj1aaa/JYZFVwUAJfxISRoldgTmumCG8WrlKhkb6kM=";
   };
 
-  propagatedBuildInputs = [
-    psutil
-  ];
+  propagatedBuildInputs = [ psutil ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     changelog = "https://github.com/home-assistant-libs/psutil-home-assistant/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/psutil/default.nix b/pkgs/development/python-modules/psutil/default.nix
index a27bb429c7c1c..6d95fa0c218e8 100644
--- a/pkgs/development/python-modules/psutil/default.nix
+++ b/pkgs/development/python-modules/psutil/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, CoreFoundation
-, fetchPypi
-, IOKit
-, pytestCheckHook
-, python
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  CoreFoundation,
+  fetchPypi,
+  IOKit,
+  pytestCheckHook,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "psutil";
-  version = "5.9.8";
+  version = "6.0.0";
   format = "setuptools";
 
   inherit stdenv;
@@ -20,7 +21,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-a+Em4yJUht/yhqj7mgYkalJT9MfFO0depfWsk05kGUw=";
+    hash = "sha256-j6rk8xC22Wn6JsoFRTOLIfc8axXbfEqNk0pUgvqoGPI=";
   };
 
   postPatch = ''
@@ -33,15 +34,10 @@ buildPythonPackage rec {
 
   buildInputs =
     # workaround for https://github.com/NixOS/nixpkgs/issues/146760
-    lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
-      CoreFoundation
-    ] ++ lib.optionals stdenv.isDarwin [
-      IOKit
-  ];
+    lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [ CoreFoundation ]
+    ++ lib.optionals stdenv.isDarwin [ IOKit ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Segfaults on darwin:
   # https://github.com/giampaolo/psutil/issues/1715
@@ -69,9 +65,7 @@ buildPythonPackage rec {
     "test_disk_partitions" # problematic on Hydra's Linux builders, apparently
   ];
 
-  pythonImportsCheck = [
-    "psutil"
-  ];
+  pythonImportsCheck = [ "psutil" ];
 
   meta = with lib; {
     description = "Process and system utilization information interface";
diff --git a/pkgs/development/python-modules/psychrolib/default.nix b/pkgs/development/python-modules/psychrolib/default.nix
index cda0523b9698a..144d65b3f5785 100644
--- a/pkgs/development/python-modules/psychrolib/default.nix
+++ b/pkgs/development/python-modules/psychrolib/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,16 +23,12 @@ buildPythonPackage rec {
 
   sourceRoot = "${src.name}/src/python";
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "psychrolib"
-  ];
+  pythonImportsCheck = [ "psychrolib" ];
 
   meta = with lib; {
     description = "Library of psychrometric functions to calculate thermodynamic properties";
diff --git a/pkgs/development/python-modules/psycopg/ctypes.patch b/pkgs/development/python-modules/psycopg/ctypes.patch
index d2b0842b44b4f..b3816d9c8d7c4 100644
--- a/pkgs/development/python-modules/psycopg/ctypes.patch
+++ b/pkgs/development/python-modules/psycopg/ctypes.patch
@@ -1,5 +1,5 @@
 diff --git a/psycopg/psycopg/pq/_pq_ctypes.py b/psycopg/psycopg/pq/_pq_ctypes.py
-index 9ca1d129..02929ab6 100644
+index cfc68672..02929ab6 100644
 --- a/psycopg/psycopg/pq/_pq_ctypes.py
 +++ b/psycopg/psycopg/pq/_pq_ctypes.py
 @@ -11,14 +11,10 @@ from ctypes import Structure, CFUNCTYPE, POINTER
@@ -18,12 +18,15 @@ index 9ca1d129..02929ab6 100644
  
  
  class FILE(Structure):
-@@ -28,9 +24,7 @@ class FILE(Structure):
+@@ -28,12 +24,7 @@ class FILE(Structure):
  FILE_ptr = POINTER(FILE)
  
  if sys.platform == "linux":
 -    libcname = ctypes.util.find_library("c")
--    assert libcname
+-    if not libcname:
+-        # Likely this is a system using musl libc, see the following bug:
+-        # https://github.com/python/cpython/issues/65821
+-        libcname = "libc.so"
 -    libc = ctypes.cdll.LoadLibrary(libcname)
 +    libc = ctypes.cdll.LoadLibrary("@libc@")
  
diff --git a/pkgs/development/python-modules/psycopg/default.nix b/pkgs/development/python-modules/psycopg/default.nix
index 65d9e35236206..c98ee99f154ec 100644
--- a/pkgs/development/python-modules/psycopg/default.nix
+++ b/pkgs/development/python-modules/psycopg/default.nix
@@ -1,46 +1,47 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, fetchurl
-, pythonOlder
-, substituteAll
-
-# build
-, postgresql
-, setuptools
-
-# propagates
-, backports-zoneinfo
-, typing-extensions
-
-# psycopg-c
-, cython
-, tomli
-
-# docs
-, furo
-, shapely
-, sphinxHook
-, sphinx-autodoc-typehints
-
-# tests
-, anyio
-, pproxy
-, pytest-randomly
-, pytestCheckHook
-, postgresqlTestHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchurl,
+  pythonOlder,
+  substituteAll,
+
+  # build
+  postgresql,
+  setuptools,
+
+  # propagates
+  backports-zoneinfo,
+  typing-extensions,
+
+  # psycopg-c
+  cython,
+  tomli,
+
+  # docs
+  furo,
+  shapely,
+  sphinxHook,
+  sphinx-autodoc-typehints,
+
+  # tests
+  anyio,
+  pproxy,
+  pytest-randomly,
+  pytestCheckHook,
+  postgresqlTestHook,
 }:
 
 let
   pname = "psycopg";
-  version = "3.1.17";
+  version = "3.1.19";
 
   src = fetchFromGitHub {
     owner = "psycopg";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-Paq4Wkvv6d6+fNcvRO/yfj7OWCMygqccKIdfsohHUMM=";
+    hash = "sha256-Fvg67sGWSNwChZTO5QdLSOKrbGfxzQZJqCjI5Jidcqo=";
   };
 
   patches = [
@@ -99,9 +100,7 @@ let
       cd psycopg_pool
     '';
 
-    propagatedBuildInputs = [
-      typing-extensions
-    ];
+    propagatedBuildInputs = [ typing-extensions ];
 
     # tested in psycopg
     doCheck = false;
@@ -110,7 +109,6 @@ let
       description = "Connection Pool for Psycopg";
     };
   };
-
 in
 
 buildPythonPackage rec {
@@ -150,9 +148,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     psycopg-c
     typing-extensions
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    backports-zoneinfo
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ backports-zoneinfo ];
 
   pythonImportsCheck = [
     "psycopg"
@@ -165,16 +161,17 @@ buildPythonPackage rec {
     pool = [ psycopg-pool ];
   };
 
-  nativeCheckInputs = [
-    anyio
-    pproxy
-    pytest-randomly
-    pytestCheckHook
-    postgresql
-  ]
-  ++ lib.optional (stdenv.isLinux) postgresqlTestHook
-  ++ passthru.optional-dependencies.c
-  ++ passthru.optional-dependencies.pool;
+  nativeCheckInputs =
+    [
+      anyio
+      pproxy
+      pytest-randomly
+      pytestCheckHook
+      postgresql
+    ]
+    ++ lib.optional (stdenv.isLinux) postgresqlTestHook
+    ++ passthru.optional-dependencies.c
+    ++ passthru.optional-dependencies.pool;
 
   env = {
     postgresqlEnableTCP = 1;
@@ -182,11 +179,13 @@ buildPythonPackage rec {
     PGDATABASE = "psycopg";
   };
 
-  preCheck = ''
-    cd ..
-  '' + lib.optionalString (stdenv.isLinux) ''
-    export PSYCOPG_TEST_DSN="host=/build/run/postgresql user=$PGUSER"
-  '';
+  preCheck =
+    ''
+      cd ..
+    ''
+    + lib.optionalString (stdenv.isLinux) ''
+      export PSYCOPG_TEST_DSN="host=/build/run/postgresql user=$PGUSER"
+    '';
 
   disabledTests = [
     # don't depend on mypy for tests
@@ -204,10 +203,13 @@ buildPythonPackage rec {
   ];
 
   pytestFlagsArray = [
-    "-o" "cache_dir=$TMPDIR"
-    "-m" "'not refcount and not timing'"
+    "-o"
+    "cache_dir=$TMPDIR"
+    "-m"
+    "'not refcount and not timing'"
     # pytest.PytestRemovedIn9Warning: Marks applied to fixtures have no effect
-    "-W" "ignore::pytest.PytestRemovedIn9Warning"
+    "-W"
+    "ignore::pytest.PytestRemovedIn9Warning"
   ];
 
   postCheck = ''
diff --git a/pkgs/development/python-modules/psycopg2/default.nix b/pkgs/development/python-modules/psycopg2/default.nix
index 54d2ec7493339..471cff85da6ed 100644
--- a/pkgs/development/python-modules/psycopg2/default.nix
+++ b/pkgs/development/python-modules/psycopg2/default.nix
@@ -1,15 +1,16 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, pythonOlder
-, isPyPy
-, fetchPypi
-, postgresql
-, postgresqlTestHook
-, openssl
-, sphinxHook
-, sphinx-better-theme
-, buildPackages
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  isPyPy,
+  fetchPypi,
+  postgresql,
+  postgresqlTestHook,
+  openssl,
+  sphinxHook,
+  sphinx-better-theme,
+  buildPackages,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,10 @@ buildPythonPackage rec {
   # c.f. https://github.com/NixOS/nixpkgs/pull/104151#issuecomment-729750892
   disabled = pythonOlder "3.6" || isPyPy;
 
-  outputs = [ "out" "doc" ];
+  outputs = [
+    "out"
+    "doc"
+  ];
 
   src = fetchPypi {
     inherit pname version;
@@ -41,11 +45,7 @@ buildPythonPackage rec {
     sphinx-better-theme
   ];
 
-  buildInputs = [
-    postgresql
-  ] ++ lib.optionals stdenv.isDarwin [
-    openssl
-  ];
+  buildInputs = [ postgresql ] ++ lib.optionals stdenv.isDarwin [ openssl ];
 
   sphinxRoot = "doc/src";
 
@@ -53,24 +53,25 @@ buildPythonPackage rec {
   #   current transaction is aborted, commands ignored until end of transaction block
   doCheck = false;
 
-  nativeCheckInputs = [
-    postgresqlTestHook
-  ];
+  nativeCheckInputs = [ postgresqlTestHook ];
 
   env = {
     PGDATABASE = "psycopg2_test";
   };
 
-  pythonImportsCheck = [
-    "psycopg2"
-  ];
+  pythonImportsCheck = [ "psycopg2" ];
 
-  disallowedReferences = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ buildPackages.postgresql ];
+  disallowedReferences = lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+    buildPackages.postgresql
+  ];
 
   meta = with lib; {
     description = "PostgreSQL database adapter for the Python programming language";
     homepage = "https://www.psycopg.org";
-    license = with licenses; [ lgpl3Plus zpl20 ];
+    license = with licenses; [
+      lgpl3Plus
+      zpl20
+    ];
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/psycopg2cffi/default.nix b/pkgs/development/python-modules/psycopg2cffi/default.nix
index f791f953d3f0a..b8c86c970a841 100644
--- a/pkgs/development/python-modules/psycopg2cffi/default.nix
+++ b/pkgs/development/python-modules/psycopg2cffi/default.nix
@@ -1,39 +1,51 @@
-{ buildPythonPackage
-, cffi
-, fetchFromGitHub
-, lib
-, postgresql
-, postgresqlTestHook
-, pytestCheckHook
-, six
+{
+  buildPythonPackage,
+  cffi,
+  fetchFromGitHub,
+  lib,
+  postgresql,
+  postgresqlTestHook,
+  pytestCheckHook,
+  setuptools,
+  six,
+  stdenv,
 }:
 
 buildPythonPackage rec {
   pname = "psycopg2cffi";
-  version = "2.8.1";
-  format = "setuptools";
-
-  # NB: This is a fork.
-  # The original repo exists at https://github.com/chtd/psycopg2cffi, however
-  # this is mostly unmaintained and does not build for PyPy. Given that the
-  # whole point of this cffi alternative to psycopg2 is to use it with PyPy, I
-  # chose to use a working fork instead, which was linked in the relevant issue:
-  # https://github.com/chtd/psycopg2cffi/issues/113#issuecomment-730548574
-  #
-  # If/when these changes get merged back upstream we should revert to using the
-  # original source as opposed to the fork.
+  version = "2.9.0";
+  pyproject = true;
+
   src = fetchFromGitHub {
-    owner = "Omegapol";
-    repo = pname;
-    rev = "c202b25cd861d5e8f0f55c329764ff1da9f020c0";
-    sha256 = "09hsnjkix1c0vlhmfvrp8pchpnz2ya4xrchyq15czj527nx2dmy2";
+    owner = "chtd";
+    repo = "psycopg2cffi";
+    rev = "refs/tags/${version}";
+    hash = "sha256-9r5MYxw9cvdbLVj8StmMmn0AKQepOpCc7TIBGXZGWe4=";
   };
 
-  nativeBuildInputs = [ postgresql ];
+  postPatch = ''
+    substituteInPlace psycopg2cffi/_impl/_build_libpq.py \
+      --replace-fail "from distutils import sysconfig" "import sysconfig" \
+      --replace-fail "sysconfig.get_python_inc()" "sysconfig.get_path('include')"
+  '';
+
+  build-system = [
+    postgresql
+    setuptools
+  ];
+
+  dependencies = [
+    cffi
+    six
+  ];
 
-  propagatedBuildInputs = [ six cffi ];
+  # FATAL: could not create shared memory segment: Operation not permitted
+  doCheck = !stdenv.isDarwin;
 
-  nativeCheckInputs = [ postgresqlTestHook pytestCheckHook ];
+  nativeCheckInputs = [
+    postgresqlTestHook
+    pytestCheckHook
+  ];
 
   disabledTests = [
     # AssertionError: '{}' != []
@@ -47,7 +59,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "psycopg2cffi" ];
 
   meta = with lib; {
-    description = "An implementation of the psycopg2 module using cffi";
+    description = "Implementation of the psycopg2 module using cffi";
     homepage = "https://pypi.org/project/psycopg2cffi/";
     license = with licenses; [ lgpl3Plus ];
     maintainers = with maintainers; [ lovesegfault ];
diff --git a/pkgs/development/python-modules/psygnal/default.nix b/pkgs/development/python-modules/psygnal/default.nix
index a4b07f7612431..24ce03dad6578 100644
--- a/pkgs/development/python-modules/psygnal/default.nix
+++ b/pkgs/development/python-modules/psygnal/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatch-vcs
-, hatchling
-, mypy-extensions
-, numpy
-, pydantic
-, pytestCheckHook
-, pythonOlder
-, toolz
-, typing-extensions
-, wrapt
-, attrs
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatch-vcs,
+  hatchling,
+  mypy-extensions,
+  numpy,
+  pydantic,
+  pytestCheckHook,
+  pythonOlder,
+  toolz,
+  typing-extensions,
+  wrapt,
+  attrs,
 }:
 
 buildPythonPackage rec {
   pname = "psygnal";
-  version = "0.11.0";
+  version = "0.11.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     owner = "pyapp-kit";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-LZkYlqplapV2jD5yV5Co8zhGdHP0dqkIAoIj1AFETbA=";
+    hash = "sha256-eGJWtmw2Ps3jII4T8E6s3djzxfqcSdyPemvejal0cn4=";
   };
 
   buildInputs = [
@@ -47,9 +48,7 @@ buildPythonPackage rec {
     attrs
   ];
 
-  pythonImportsCheck = [
-    "psygnal"
-  ];
+  pythonImportsCheck = [ "psygnal" ];
 
   meta = with lib; {
     description = "Implementation of Qt Signals";
diff --git a/pkgs/development/python-modules/ptable/default.nix b/pkgs/development/python-modules/ptable/default.nix
index 8589ed16277f4..8847ef8a1bdc8 100644
--- a/pkgs/development/python-modules/ptable/default.nix
+++ b/pkgs/development/python-modules/ptable/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, nose }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nose,
+}:
 
 buildPythonPackage {
   pname = "ptable";
@@ -21,7 +26,7 @@ buildPythonPackage {
 
   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";
+    description = "Simple Python library designed to make it quick and easy to represent tabular data in visually appealing ASCII tables";
     mainProgram = "ptable";
     license = licenses.bsd3;
     maintainers = [ maintainers.mmahut ];
diff --git a/pkgs/development/python-modules/ptest/default.nix b/pkgs/development/python-modules/ptest/default.nix
index 1b063e784a9db..a9772dcb26541 100644
--- a/pkgs/development/python-modules/ptest/default.nix
+++ b/pkgs/development/python-modules/ptest/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
   pname = "ptest";
-  version =  "1.7.4";
+  version = "1.7.4";
   format = "setuptools";
 
   src = fetchFromGitHub {
@@ -20,5 +21,4 @@ buildPythonPackage rec {
     homepage = "https://pypi.python.org/pypi/ptest";
     license = licenses.asl20;
   };
-
 }
diff --git a/pkgs/development/python-modules/ptpython/default.nix b/pkgs/development/python-modules/ptpython/default.nix
index 4376089566493..bd920162aad42 100644
--- a/pkgs/development/python-modules/ptpython/default.nix
+++ b/pkgs/development/python-modules/ptpython/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, appdirs
-, importlib-metadata
-, jedi
-, prompt-toolkit
-, pygments
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  appdirs,
+  importlib-metadata,
+  jedi,
+  prompt-toolkit,
+  pygments,
 }:
 
 buildPythonPackage rec {
   pname = "ptpython";
-  version = "3.0.26";
+  version = "3.0.27";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-yPsUBlAtw0nZnFfq8G5xFvOy3qyU8C80K65ocIkJ90M=";
+    hash = "sha256-JLD9qUtz0cmaJ+b9DQi+by582nmi25lcfjx7ixJUutk=";
   };
 
   propagatedBuildInputs = [
@@ -26,19 +27,15 @@ buildPythonPackage rec {
     jedi
     prompt-toolkit
     pygments
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # no tests to run
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ptpython"
-  ];
+  pythonImportsCheck = [ "ptpython" ];
 
   meta = with lib; {
-    description = "An advanced Python REPL";
+    description = "Advanced Python REPL";
     homepage = "https://github.com/prompt-toolkit/ptpython";
     changelog = "https://github.com/prompt-toolkit/ptpython/blob/${version}/CHANGELOG";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/ptyprocess/default.nix b/pkgs/development/python-modules/ptyprocess/default.nix
index 17a961620da5f..0cc11d0910a02 100644
--- a/pkgs/development/python-modules/ptyprocess/default.nix
+++ b/pkgs/development/python-modules/ptyprocess/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, flit-core
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  flit-core,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,25 +26,23 @@ buildPythonPackage rec {
       url = "https://github.com/pexpect/ptyprocess/commit/40c1ccf3432a6787be1801ced721540e34c6cd87.patch";
       hash = "sha256-IemngBqBq3QRCmVscWtsuXHiFgvTOJIIB9SyAvsqHd0=";
     })
+    (fetchpatch {
+      url = "https://github.com/pexpect/ptyprocess/commit/a44312974bd9084aa568d2e18ce5b2a7e0e45983.patch";
+      hash = "sha256-DEO4FbzKNAXADYocSQhhwjQTGGu9V5pqd38u1sWhpOI=";
+    })
   ];
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  build-system = [ flit-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ptyprocess"
-  ];
+  pythonImportsCheck = [ "ptyprocess" ];
 
-  meta = with lib; {
+  meta = {
     description = "Run a subprocess in a pseudo terminal";
     homepage = "https://github.com/pexpect/ptyprocess";
     changelog = "https://github.com/pexpect/ptyprocess/releases/tag/${version}";
-    license = licenses.isc;
-    maintainers = with maintainers; [ ];
+    license = lib.licenses.isc;
+    maintainers = with lib.maintainers; [ getchoo ];
   };
 }
diff --git a/pkgs/development/python-modules/publicsuffixlist/default.nix b/pkgs/development/python-modules/publicsuffixlist/default.nix
index c7793a14a8960..9d594dbede783 100644
--- a/pkgs/development/python-modules/publicsuffixlist/default.nix
+++ b/pkgs/development/python-modules/publicsuffixlist/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "publicsuffixlist";
-  version = "0.10.0.20240502";
+  version = "0.10.1.20240618";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Hy0DmawyjUXn35tTV39Mpp+Xe16hDTbkyQoBdKS/d0o=";
+    hash = "sha256-+wJoH/vCwNPmQlQfikDmnqbNQlMLA315N+U4Yvy/mMw=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pubnub/default.nix b/pkgs/development/python-modules/pubnub/default.nix
index 58b6bd159d508..868926ba95f13 100644
--- a/pkgs/development/python-modules/pubnub/default.nix
+++ b/pkgs/development/python-modules/pubnub/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "pubnub";
-  version = "7.4.4";
+  version = "8.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "pubnub";
     repo = "python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-4Paodw3t2RvAKrDMcWHIGLs5JNtH/9sP+BTyAm/hj4E=";
+    hash = "sha256-GKJv/GJ/h/LVbEa8Wz7iXc8J38UTTlNa0/08+p5sYCA=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pubnubsub-handler/default.nix b/pkgs/development/python-modules/pubnubsub-handler/default.nix
index 8d8c8da9620e3..2bb9a0e75f73e 100644
--- a/pkgs/development/python-modules/pubnubsub-handler/default.nix
+++ b/pkgs/development/python-modules/pubnubsub-handler/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pubnub
-, pycryptodomex
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pubnub,
+  pycryptodomex,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pudb/default.nix b/pkgs/development/python-modules/pudb/default.nix
index 2ab448e77f1cd..cfafbc0fb7a67 100644
--- a/pkgs/development/python-modules/pudb/default.nix
+++ b/pkgs/development/python-modules/pudb/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jedi
-, pygments
-, urwid
-, urwid-readline
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jedi,
+  pygments,
+  urwid,
+  urwid-readline,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -38,12 +39,10 @@ buildPythonPackage rec {
     export HOME=$TMPDIR
   '';
 
-  pythonImportsCheck = [
-    "pudb"
-  ];
+  pythonImportsCheck = [ "pudb" ];
 
   meta = with lib; {
-    description = "A full-screen, console-based Python debugger";
+    description = "Full-screen, console-based Python debugger";
     mainProgram = "pudb";
     homepage = "https://github.com/inducer/pudb";
     changelog = "https://github.com/inducer/pudb/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/pueblo/default.nix b/pkgs/development/python-modules/pueblo/default.nix
index 6b11cdad611dc..bbc2d480d9242 100644
--- a/pkgs/development/python-modules/pueblo/default.nix
+++ b/pkgs/development/python-modules/pueblo/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, versioningit
-, platformdirs
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  versioningit,
+  platformdirs,
 }:
 
 buildPythonPackage rec {
@@ -28,8 +29,8 @@ buildPythonPackage rec {
   ];
 
   propagatedBuildInputs = [
-  #  contextlib-chdir
-  #  importlib-metadata
+    #  contextlib-chdir
+    #  importlib-metadata
     platformdirs
   ];
 
diff --git a/pkgs/development/python-modules/pulp/default.nix b/pkgs/development/python-modules/pulp/default.nix
index 8e318822f086c..c0955bc96aa6d 100644
--- a/pkgs/development/python-modules/pulp/default.nix
+++ b/pkgs/development/python-modules/pulp/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, cbc
-, amply
-, buildPythonPackage
-, fetchFromGitHub
-, pyparsing
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  cbc,
+  amply,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyparsing,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -33,13 +34,9 @@ buildPythonPackage rec {
     pyparsing
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pulp"
-  ];
+  pythonImportsCheck = [ "pulp" ];
 
   meta = with lib; {
     description = "Module to generate MPS or LP files";
diff --git a/pkgs/development/python-modules/pulsar-client/default.nix b/pkgs/development/python-modules/pulsar-client/default.nix
index d2448043a64af..2c236dca67fd2 100644
--- a/pkgs/development/python-modules/pulsar-client/default.nix
+++ b/pkgs/development/python-modules/pulsar-client/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, python
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  python,
 }:
 let
   version = "3.4.0";
@@ -11,13 +12,24 @@ let
 
   Srcs =
     let
-      getSrcFromPypi = { platform, dist, hash }: fetchPypi {
-        inherit version platform dist hash;
-        pname = "pulsar_client";
-        format = "wheel";
-        python = dist;
-        abi = dist;
-      };
+      getSrcFromPypi =
+        {
+          platform,
+          dist,
+          hash,
+        }:
+        fetchPypi {
+          inherit
+            version
+            platform
+            dist
+            hash
+            ;
+          pname = "pulsar_client";
+          format = "wheel";
+          python = dist;
+          abi = dist;
+        };
     in
     {
       "3.9-x86_64-linux" = getSrcFromPypi {
@@ -101,15 +113,16 @@ let
         hash = "sha256-Hgd6SDm+Pq094/BbTCRCadyi3wf0fOoLkFRMfp3BZC8=";
       };
     };
-
-in buildPythonPackage {
+in
+buildPythonPackage {
   pname = "pulsar-client";
   inherit version;
 
   format = "wheel";
 
-  src = Srcs."${pythonVersion}-${stdenv.hostPlatform.system}"
-    or (throw "Unsupported '${pythonVersion}-${stdenv.hostPlatform.system}' target");
+  src =
+    Srcs."${pythonVersion}-${stdenv.hostPlatform.system}"
+      or (throw "Unsupported '${pythonVersion}-${stdenv.hostPlatform.system}' target");
 
   meta = with lib; {
     description = "Client for pulsar";
diff --git a/pkgs/development/python-modules/pulsar/default.nix b/pkgs/development/python-modules/pulsar/default.nix
index b6dfde67706b5..516a718b758de 100644
--- a/pkgs/development/python-modules/pulsar/default.nix
+++ b/pkgs/development/python-modules/pulsar/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, cmake
-, pkg-config
-, libpulsar
-, pybind11
-, certifi
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  cmake,
+  pkg-config,
+  libpulsar,
+  pybind11,
+  certifi,
 }:
 
 buildPythonPackage rec {
@@ -39,16 +40,12 @@ buildPythonPackage rec {
     cd ..
   '';
 
-  propagatedBuildInputs = [
-    certifi
-  ];
+  propagatedBuildInputs = [ certifi ];
 
   # Requires to setup a cluster
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pulsar"
-  ];
+  pythonImportsCheck = [ "pulsar" ];
 
   meta = with lib; {
     description = "Apache Pulsar Python client library";
diff --git a/pkgs/development/python-modules/pulsectl/default.nix b/pkgs/development/python-modules/pulsectl/default.nix
index 5b87a24ddf551..abdc439fd611e 100644
--- a/pkgs/development/python-modules/pulsectl/default.nix
+++ b/pkgs/development/python-modules/pulsectl/default.nix
@@ -1,13 +1,23 @@
-{ lib, buildPythonPackage, fetchPypi, libpulseaudio, glibc, substituteAll, stdenv, pulseaudio, unittestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  libpulseaudio,
+  glibc,
+  substituteAll,
+  stdenv,
+  pulseaudio,
+  unittestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "pulsectl";
-  version = "23.5.2";
+  version = "24.4.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-6RHTmOrwU5zzxjtCFzV7UaPRt+SlBgfRWRzytJ9dLGo=";
+    hash = "sha256-aX7VDn1FLnhniuOOKrk1hDAIvsRIlVKDzQ+zYoZ+MWU=";
   };
 
   patches = [
@@ -19,11 +29,12 @@ buildPythonPackage rec {
     })
   ];
 
-  pythonImportsCheck = [
-    "pulsectl"
-  ];
+  pythonImportsCheck = [ "pulsectl" ];
 
-  nativeCheckInputs = [ unittestCheckHook pulseaudio ];
+  nativeCheckInputs = [
+    unittestCheckHook
+    pulseaudio
+  ];
 
   preCheck = ''
     export HOME=$TMPDIR
diff --git a/pkgs/development/python-modules/pulumi-aws/default.nix b/pkgs/development/python-modules/pulumi-aws/default.nix
index 1255e4b9b7aa0..8d276960ac2ed 100644
--- a/pkgs/development/python-modules/pulumi-aws/default.nix
+++ b/pkgs/development/python-modules/pulumi-aws/default.nix
@@ -1,27 +1,29 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, parver
-, pulumi
-, pythonOlder
-, semver
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  parver,
+  pulumi,
+  pythonOlder,
+  semver,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pulumi-aws";
   # Version is independant of pulumi's.
-  version = "6.25.0";
-  format = "setuptools";
+  version = "6.41.0";
 
-  disabled = pythonOlder "3.7";
+  pyproject = true;
+  build-system = [ setuptools ];
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "pulumi";
     repo = "pulumi-aws";
     rev = "refs/tags/v${version}";
-    hash = "sha256-RtJIl90rTMFv4mLrDd2SxLYYLf0yKS//7+sxVBdNX8g=";
+    hash = "sha256-7l+m4ULDGa15QNu6l2kURQznKP2Ut9Y1P9njV7s9nzc=";
   };
 
   sourceRoot = "${src.name}/sdk/python";
@@ -35,9 +37,7 @@ buildPythonPackage rec {
   # Checks require cloud resources
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pulumi_aws"
-  ];
+  pythonImportsCheck = [ "pulumi_aws" ];
 
   meta = with lib; {
     description = "Pulumi python amazon web services provider";
diff --git a/pkgs/development/python-modules/pulumi/default.nix b/pkgs/development/python-modules/pulumi/default.nix
index b61bc41505db4..7353649c5a562 100644
--- a/pkgs/development/python-modules/pulumi/default.nix
+++ b/pkgs/development/python-modules/pulumi/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, protobuf
-, dill
-, grpcio
-, pulumi
-, isPy27
-, semver
-, pip
-, pytestCheckHook
-, pyyaml
-, six
+{
+  lib,
+  buildPythonPackage,
+  protobuf,
+  dill,
+  grpcio,
+  pulumi,
+  isPy27,
+  semver,
+  pip,
+  pytestCheckHook,
+  pyyaml,
+  six,
 }:
 buildPythonPackage rec {
   inherit (pulumi) version src;
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "test/"
-  ];
+  pytestFlagsArray = [ "test/" ];
 
   sourceRoot = "${src.name}/sdk/python/lib";
 
diff --git a/pkgs/development/python-modules/pure-cdb/default.nix b/pkgs/development/python-modules/pure-cdb/default.nix
index f8df017c9b18c..175841ed25343 100644
--- a/pkgs/development/python-modules/pure-cdb/default.nix
+++ b/pkgs/development/python-modules/pure-cdb/default.nix
@@ -1,10 +1,14 @@
-{ lib, fetchFromGitHub, buildPythonPackage, pythonOlder, flake8 }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  flake8,
+}:
 
 buildPythonPackage rec {
   pname = "pure-cdb";
   version = "4.0.0";
   format = "setuptools";
-  disabled = pythonOlder "3.4";
 
   # Archive on pypi has no tests.
   src = fetchFromGitHub {
diff --git a/pkgs/development/python-modules/pure-eval/default.nix b/pkgs/development/python-modules/pure-eval/default.nix
index 60615c0a0640b..a94abf72712a2 100644
--- a/pkgs/development/python-modules/pure-eval/default.nix
+++ b/pkgs/development/python-modules/pure-eval/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools-scm
-, toml
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools-scm,
+  toml,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-9N+UcgAv30s4ctgsBrOHiix4BoXhKPgxH/GOz/NIFdU=";
   };
 
-  buildInputs = [
-    setuptools-scm
-  ];
+  buildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    toml
-  ];
+  propagatedBuildInputs = [ toml ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pure_eval"
-  ];
+  pythonImportsCheck = [ "pure_eval" ];
 
   meta = with lib; {
     description = "Safely evaluate AST nodes without side effects";
diff --git a/pkgs/development/python-modules/pure-pcapy3/default.nix b/pkgs/development/python-modules/pure-pcapy3/default.nix
index 8e07377723e00..5851e3e274390 100644
--- a/pkgs/development/python-modules/pure-pcapy3/default.nix
+++ b/pkgs/development/python-modules/pure-pcapy3/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
       --replace-fail "assertEquals" "assertEqual"
   '';
 
-  pythonImportsCheck = [
-    "pure_pcapy"
-  ];
+  pythonImportsCheck = [ "pure_pcapy" ];
 
   meta = with lib; {
     description = "Reimplementation of pcapy";
diff --git a/pkgs/development/python-modules/pure-protobuf/default.nix b/pkgs/development/python-modules/pure-protobuf/default.nix
index e68746ddd8dbb..283d59ef29030 100644
--- a/pkgs/development/python-modules/pure-protobuf/default.nix
+++ b/pkgs/development/python-modules/pure-protobuf/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, poetry-dynamic-versioning
-, typing-extensions
-, pytestCheckHook
-, pytest-benchmark
-, pytest-cov
-, pydantic
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  poetry-dynamic-versioning,
+  typing-extensions,
+  pytestCheckHook,
+  pytest-benchmark,
+  pytest-cov,
+  pydantic,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  dependencies = [
-    typing-extensions
-  ];
+  dependencies = [ typing-extensions ];
 
   nativeCheckInputs = [
     pydantic
@@ -43,13 +42,9 @@ buildPythonPackage rec {
     pytest-cov
   ];
 
-  pytestFlagsArray = [
-    "--benchmark-disable"
-  ];
+  pytestFlagsArray = [ "--benchmark-disable" ];
 
-  pythonImportsCheck = [
-    "pure_protobuf"
-  ];
+  pythonImportsCheck = [ "pure_protobuf" ];
 
   meta = with lib; {
     description = "Python implementation of Protocol Buffers with dataclass-based schemas";
diff --git a/pkgs/development/python-modules/pure-python-adb-homeassistant/default.nix b/pkgs/development/python-modules/pure-python-adb-homeassistant/default.nix
index 6a734f93ab996..974a70f2f7a66 100644
--- a/pkgs/development/python-modules/pure-python-adb-homeassistant/default.nix
+++ b/pkgs/development/python-modules/pure-python-adb-homeassistant/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 buildPythonPackage rec {
   pname = "pure-python-adb-homeassistant";
diff --git a/pkgs/development/python-modules/pure-python-adb/default.nix b/pkgs/development/python-modules/pure-python-adb/default.nix
index 531e1c30a1ef9..39ca6addf0080 100644
--- a/pkgs/development/python-modules/pure-python-adb/default.nix
+++ b/pkgs/development/python-modules/pure-python-adb/default.nix
@@ -1,9 +1,10 @@
-{ aiofiles
-, buildPythonPackage
-, fetchPypi
-, lib
-, pythonOlder
-, pytestCheckHook
+{
+  aiofiles,
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,23 +20,14 @@ buildPythonPackage rec {
   };
 
   passthru.optional-dependencies = {
-    async = [
-      aiofiles
-    ];
+    async = [ aiofiles ];
   };
 
   doCheck = pythonOlder "3.10"; # all tests result in RuntimeError on 3.10
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ]
-  ++ passthru.optional-dependencies.async;
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.async;
 
-  pythonImportsCheck = [
-    "ppadb.client"
-  ] ++ lib.optionals doCheck [
-    "ppadb.client_async"
-  ];
+  pythonImportsCheck = [ "ppadb.client" ] ++ lib.optionals doCheck [ "ppadb.client_async" ];
 
   meta = with lib; {
     description = "Pure python implementation of the adb client";
diff --git a/pkgs/development/python-modules/puremagic/default.nix b/pkgs/development/python-modules/puremagic/default.nix
index d9171b6497c65..b3bcbbacec39c 100644
--- a/pkgs/development/python-modules/puremagic/default.nix
+++ b/pkgs/development/python-modules/puremagic/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "puremagic";
-  version = "1.22";
+  version = "1.24";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "cdgriffith";
     repo = "puremagic";
     rev = "refs/tags/${version}";
-    hash = "sha256-48gtwH6NXj/n3mm313Im1ey4ZH9TbsSFwjsQuBGuqwA=";
+    hash = "sha256-omVSSxMAQQm+Sy023xIGBYm55qrb1dbds1Jj9WCtNfw=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/purepng/default.nix b/pkgs/development/python-modules/purepng/default.nix
index a147f0a55306a..056532f8e1cc6 100644
--- a/pkgs/development/python-modules/purepng/default.nix
+++ b/pkgs/development/python-modules/purepng/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, python
-, fetchFromGitHub
-, fetchpatch
-, cython ? null
-, numpy ? null
+{
+  lib,
+  buildPythonPackage,
+  python,
+  fetchFromGitHub,
+  fetchpatch,
+  cython ? null,
+  numpy ? null,
 }:
 
 buildPythonPackage {
@@ -26,7 +27,11 @@ buildPythonPackage {
       sha256 = "1ag0pji3p012hmj8kadcd0vydv9702188c0isizsi964qcl4va6m";
     })
   ];
-  patchFlags = [ "-p1" "-d" "code" ];
+  patchFlags = [
+    "-p1"
+    "-d"
+    "code"
+  ];
 
   # cython is optional - if not supplied, the "pure python" implementation will be used
   nativeBuildInputs = [ cython ];
diff --git a/pkgs/development/python-modules/purl/default.nix b/pkgs/development/python-modules/purl/default.nix
index 8e0ba9c2eb5a6..874d3459334de 100644
--- a/pkgs/development/python-modules/purl/default.nix
+++ b/pkgs/development/python-modules/purl/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, six
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  six,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,17 +18,11 @@ buildPythonPackage rec {
     hash = "sha256-Jb3JRW/PtQ7NlO4eQ9DmTPu/sjvFTg2mztphoIF79gc=";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "purl"
-  ];
+  pythonImportsCheck = [ "purl" ];
 
   meta = with lib; {
     description = "Immutable URL class for easy URL-building and manipulation";
diff --git a/pkgs/development/python-modules/push-receiver/default.nix b/pkgs/development/python-modules/push-receiver/default.nix
index ef73b6d0b3c45..d5f4732bb3131 100644
--- a/pkgs/development/python-modules/push-receiver/default.nix
+++ b/pkgs/development/python-modules/push-receiver/default.nix
@@ -1,10 +1,11 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-, appdirs
-, http-ece
-, oscrypto
-, protobuf
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  appdirs,
+  http-ece,
+  oscrypto,
+  protobuf,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pushbullet-py/default.nix b/pkgs/development/python-modules/pushbullet-py/default.nix
index 1ef8728d0614e..0b986dff66361 100644
--- a/pkgs/development/python-modules/pushbullet-py/default.nix
+++ b/pkgs/development/python-modules/pushbullet-py/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, requests
-, websocket-client
-, python-magic
-, cryptography
-, pytestCheckHook
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  requests,
+  websocket-client,
+  python-magic,
+  cryptography,
+  pytestCheckHook,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     sha256 = "917883e1af4a0c979ce46076b391e0243eb8fe0a81c086544bcfa10f53e5ae64";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cryptography
@@ -35,22 +34,22 @@ buildPythonPackage rec {
     export PUSHBULLET_API_KEY=""
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = [
-    "test_auth_fail"
-    "test_auth_success"
-    "test_decryption"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    # AttributeError: 'called_once_with' is not a valid assertion. Use a spec for the mock if 'called_once_with' is meant to be an attribute.. Did you mean: 'assert_called_once_with'?
-    "test_new_device_ok"
-    "test_new_chat_ok"
-  ];
+  disabledTests =
+    [
+      "test_auth_fail"
+      "test_auth_success"
+      "test_decryption"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # AttributeError: 'called_once_with' is not a valid assertion. Use a spec for the mock if 'called_once_with' is meant to be an attribute.. Did you mean: 'assert_called_once_with'?
+      "test_new_device_ok"
+      "test_new_chat_ok"
+    ];
 
   meta = with lib; {
-    description = "A simple python client for pushbullet.com";
+    description = "Simple python client for pushbullet.com";
     homepage = "https://github.com/randomchars/pushbullet.py";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/pushover-complete/default.nix b/pkgs/development/python-modules/pushover-complete/default.nix
index f660e23bd0198..bd53166c58ff7 100644
--- a/pkgs/development/python-modules/pushover-complete/default.nix
+++ b/pkgs/development/python-modules/pushover-complete/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, requests
-, six
-, pytestCheckHook
-, pythonOlder
-, requests-toolbelt
-, responses
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  requests,
+  six,
+  pytestCheckHook,
+  pythonOlder,
+  requests-toolbelt,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -36,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pushover_complete" ];
 
   meta = with lib; {
-    description = "A Python package for interacting with *all* aspects of the Pushover API";
+    description = "Python package for interacting with *all* aspects of the Pushover API";
     homepage = "https://github.com/scolby33/pushover_complete";
     license = licenses.mit;
     maintainers = [ maintainers.mic92 ];
diff --git a/pkgs/development/python-modules/pvextractor/default.nix b/pkgs/development/python-modules/pvextractor/default.nix
index 4d39db14d7145..a176ae73ee699 100644
--- a/pkgs/development/python-modules/pvextractor/default.nix
+++ b/pkgs/development/python-modules/pvextractor/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, astropy
-, qtpy
-, pyqt6
-, pyqt-builder
-, setuptools
-, setuptools-scm
-, scipy
-, matplotlib
-, spectral-cube
-, pytestCheckHook
-, pytest-astropy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  astropy,
+  qtpy,
+  pyqt6,
+  pyqt-builder,
+  setuptools,
+  setuptools-scm,
+  scipy,
+  matplotlib,
+  spectral-cube,
+  pytestCheckHook,
+  pytest-astropy,
 }:
 
 buildPythonPackage rec {
@@ -30,7 +31,10 @@ buildPythonPackage rec {
   };
 
   buildInputs = [ pyqt-builder ];
-  nativeBuildInputs = [ setuptools setuptools-scm ];
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
   propagatedBuildInputs = [
     astropy
     scipy
diff --git a/pkgs/development/python-modules/pvlib/default.nix b/pkgs/development/python-modules/pvlib/default.nix
index 986fd4ed8b4df..4abf6f2874973 100644
--- a/pkgs/development/python-modules/pvlib/default.nix
+++ b/pkgs/development/python-modules/pvlib/default.nix
@@ -1,43 +1,42 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, h5py
-, numpy
-, pandas
-, pytestCheckHook
-, pytest-mock
-, pytest-remotedata
-, pytest-rerunfailures
-, pytest-timeout
-, pythonOlder
-, pytz
-, requests
-, requests-mock
-, scipy
-, setuptools
-, setuptools-scm
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  h5py,
+  numpy,
+  pandas,
+  pytestCheckHook,
+  pytest-mock,
+  pytest-remotedata,
+  pytest-rerunfailures,
+  pytest-timeout,
+  pythonOlder,
+  pytz,
+  requests,
+  requests-mock,
+  scipy,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "pvlib";
-  version = "0.10.4";
+  version = "0.10.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
-  src = fetchPypi{
+  src = fetchPypi {
     inherit pname version;
-    hash = "sha256-DF+ov+ixSjmjC/7+WmzwFksuvYKikSbbPZBqhNk5+HI=";
+    hash = "sha256-I+y59o4L+wLOF+hARLUh+341NYHlOKMfnq0ETs0ZUL0=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
-    wheel
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     h5py
     numpy
     pandas
@@ -47,21 +46,19 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
-    pytestCheckHook
     pytest-mock
     pytest-remotedata
     pytest-rerunfailures
     pytest-timeout
+    pytestCheckHook
     requests-mock
   ];
 
-  pythonImportsCheck = [
-    "pvlib"
-  ];
+  pythonImportsCheck = [ "pvlib" ];
 
   meta = with lib; {
-    homepage = "https://pvlib-python.readthedocs.io";
     description = "Simulate the performance of photovoltaic energy systems";
+    homepage = "https://pvlib-python.readthedocs.io";
     changelog = "https://pvlib-python.readthedocs.io/en/v${version}/whatsnew.html";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jluttine ];
diff --git a/pkgs/development/python-modules/pvo/default.nix b/pkgs/development/python-modules/pvo/default.nix
index d886bbd30ac9f..213475f27e88f 100644
--- a/pkgs/development/python-modules/pvo/default.nix
+++ b/pkgs/development/python-modules/pvo/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, mashumaro
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, syrupy
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  mashumaro,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  syrupy,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
       --replace "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -50,9 +49,7 @@ buildPythonPackage rec {
     syrupy
   ];
 
-  pythonImportsCheck = [
-    "pvo"
-  ];
+  pythonImportsCheck = [ "pvo" ];
 
   meta = with lib; {
     description = "Python module to interact with the PVOutput API";
diff --git a/pkgs/development/python-modules/pweave/default.nix b/pkgs/development/python-modules/pweave/default.nix
index 2c85434ac6bcf..b5721e2782690 100644
--- a/pkgs/development/python-modules/pweave/default.nix
+++ b/pkgs/development/python-modules/pweave/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mock
-, matplotlib
-, pkgs
-, nbconvert
-, markdown
-, isPy3k
-, ipykernel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  matplotlib,
+  pkgs,
+  nbconvert,
+  markdown,
+  isPy3k,
+  ipykernel,
 }:
 
 buildPythonPackage rec {
@@ -23,8 +24,16 @@ buildPythonPackage rec {
 
   disabled = !isPy3k;
 
-  buildInputs = [ mock pkgs.glibcLocales ];
-  propagatedBuildInputs = [ ipykernel matplotlib nbconvert markdown ];
+  buildInputs = [
+    mock
+    pkgs.glibcLocales
+  ];
+  propagatedBuildInputs = [
+    ipykernel
+    matplotlib
+    nbconvert
+    markdown
+  ];
 
   # fails due to trying to run CSS as test
   doCheck = false;
@@ -34,5 +43,4 @@ buildPythonPackage rec {
     homepage = "https://mpastell.com/pweave/";
     license = licenses.bsd3;
   };
-
 }
diff --git a/pkgs/development/python-modules/pwlf/default.nix b/pkgs/development/python-modules/pwlf/default.nix
index 8259a41e2e40a..95dbc3ac83b89 100644
--- a/pkgs/development/python-modules/pwlf/default.nix
+++ b/pkgs/development/python-modules/pwlf/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, scipy
-, numpy
-, pydoe
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  scipy,
+  numpy,
+  pydoe,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     pydoe
   ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   pythonImportsCheck = [ "pwlf" ];
 
diff --git a/pkgs/development/python-modules/pwndbg/default.nix b/pkgs/development/python-modules/pwndbg/default.nix
index 7bee0345afdb7..e4b77db14eab7 100644
--- a/pkgs/development/python-modules/pwndbg/default.nix
+++ b/pkgs/development/python-modules/pwndbg/default.nix
@@ -1,24 +1,24 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, capstone
-, future
-, ipython
-, psutil
-, pwntools
-, pycparser
-, pyelftools
-, pygments
-, requests
-, rpyc
-, sortedcontainers
-, tabulate
-, typing-extensions
-, unicorn
-, gdb-pt-dump
-, poetry-core
-, pythonRelaxDepsHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  capstone,
+  future,
+  ipython,
+  psutil,
+  pwntools,
+  pycparser,
+  pyelftools,
+  pygments,
+  requests,
+  rpyc,
+  sortedcontainers,
+  tabulate,
+  typing-extensions,
+  unicorn,
+  gdb-pt-dump,
+  poetry-core,
 }:
 let
   # The newest gdb-pt-dump is incompatible with pwndbg 2024.02.14.
@@ -49,7 +49,9 @@ buildPythonPackage rec {
     hash = "sha256-/pDo2J5EtpWWCurD7H34AlTlQi7WziIRRxHxGm3K2yk=";
   };
 
-  nativeBuildInputs = [ poetry-core pythonRelaxDepsHook ];
+  nativeBuildInputs = [
+    poetry-core
+  ];
   pythonRelaxDeps = true;
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pwntools/default.nix b/pkgs/development/python-modules/pwntools/default.nix
index db91bf50182e5..6ab1dedd83fa3 100644
--- a/pkgs/development/python-modules/pwntools/default.nix
+++ b/pkgs/development/python-modules/pwntools/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, debugger
-, fetchPypi
-, mako
-, packaging
-, pysocks
-, pygments
-, ropgadget
-, capstone
-, colored-traceback
-, paramiko
-, pip
-, psutil
-, pyelftools
-, pyserial
-, python-dateutil
-, requests
-, rpyc
-, tox
-, unicorn
-, intervaltree
-, installShellFiles
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  debugger,
+  fetchPypi,
+  mako,
+  packaging,
+  pysocks,
+  pygments,
+  ropgadget,
+  capstone,
+  colored-traceback,
+  paramiko,
+  pip,
+  psutil,
+  pyelftools,
+  pyserial,
+  python-dateutil,
+  requests,
+  rpyc,
+  tox,
+  unicorn,
+  intervaltree,
+  installShellFiles,
 }:
 
 let
@@ -43,9 +44,7 @@ buildPythonPackage rec {
     sed -i 's/gdb-multiarch/${debuggerName}/' pwnlib/gdb.py
   '';
 
-  nativeBuildInputs = [
-    installShellFiles
-  ];
+  nativeBuildInputs = [ installShellFiles ];
 
   propagatedBuildInputs = [
     mako
@@ -84,6 +83,10 @@ buildPythonPackage rec {
     homepage = "https://pwntools.com";
     changelog = "https://github.com/Gallopsled/pwntools/releases/tag/${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ bennofs kristoff3r pamplemousse ];
+    maintainers = with maintainers; [
+      bennofs
+      kristoff3r
+      pamplemousse
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pxml/default.nix b/pkgs/development/python-modules/pxml/default.nix
deleted file mode 100644
index 360a761d88972..0000000000000
--- a/pkgs/development/python-modules/pxml/default.nix
+++ /dev/null
@@ -1,37 +0,0 @@
-{ lib
-, pythonAtLeast
-, buildPythonPackage
-, fetchPypi
-, blessings
-, six
-, nose
-, coverage
-}:
-
-buildPythonPackage rec {
-  pname = "pxml";
-  version = "0.2.13";
-  format = "setuptools";
-  disabled = pythonAtLeast "3.8";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "0c9zzfv6ciyf9qm7556wil45xxgykg1cj8isp1b88gimwcb2hxg4";
-  };
-
-  propagatedBuildInputs = [ blessings six ];
-  nativeCheckInputs = [ nose coverage ];
-
-  # test_prefixedWhitespace fails due to a python3 StringIO issue requiring
-  # bytes rather than str
-  checkPhase = ''
-    nosetests -e 'test_prefixedWhitespace'
-  '';
-
-  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 ];
-    license = licenses.gpl3;
-  };
-}
diff --git a/pkgs/development/python-modules/py-air-control-exporter/default.nix b/pkgs/development/python-modules/py-air-control-exporter/default.nix
index 714cd613fcea3..b38fe6cf0cd5b 100644
--- a/pkgs/development/python-modules/py-air-control-exporter/default.nix
+++ b/pkgs/development/python-modules/py-air-control-exporter/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchPypi
-, flask
-, isPy27
-, nixosTests
-, prometheus-client
-, py-air-control
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchPypi,
+  flask,
+  isPy27,
+  nixosTests,
+  prometheus-client,
+  py-air-control,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +29,13 @@ buildPythonPackage rec {
     py-air-control
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "py_air_control_exporter" ];
 
-  passthru.tests = { inherit (nixosTests.prometheus-exporters) py-air-control; };
+  passthru.tests = {
+    inherit (nixosTests.prometheus-exporters) py-air-control;
+  };
 
   meta = with lib; {
     description = "Exports Air Quality Metrics to Prometheus";
diff --git a/pkgs/development/python-modules/py-air-control/default.nix b/pkgs/development/python-modules/py-air-control/default.nix
index 47470eb48fe9e..73cac52da8284 100644
--- a/pkgs/development/python-modules/py-air-control/default.nix
+++ b/pkgs/development/python-modules/py-air-control/default.nix
@@ -1,4 +1,11 @@
-{ buildPythonPackage, coapthon3, fetchFromGitHub, isPy27, lib, pycryptodomex }:
+{
+  buildPythonPackage,
+  coapthon3,
+  fetchFromGitHub,
+  isPy27,
+  lib,
+  pycryptodomex,
+}:
 
 buildPythonPackage rec {
   pname = "py-air-control";
@@ -13,7 +20,10 @@ buildPythonPackage rec {
     sha256 = "0mkggl5hwmj90djxbbz4svim6iv7xl8k324cb4rlc75p5rgcdwmh";
   };
 
-  propagatedBuildInputs = [ pycryptodomex coapthon3 ];
+  propagatedBuildInputs = [
+    pycryptodomex
+    coapthon3
+  ];
 
   # tests sometimes hang forever on tear-down
   doCheck = false;
@@ -21,7 +31,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     inherit (src.meta) homepage;
-    description = "Command Line App for Controlling Philips Air Purifiers.";
+    description = "Command Line App for Controlling Philips Air Purifiers";
     license = licenses.mit;
     maintainers = with maintainers; [ urbas ];
   };
diff --git a/pkgs/development/python-modules/py-aosmith/default.nix b/pkgs/development/python-modules/py-aosmith/default.nix
index bce96a1d320ba..5b504e647ea64 100644
--- a/pkgs/development/python-modules/py-aosmith/default.nix
+++ b/pkgs/development/python-modules/py-aosmith/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, aiohttp
-, tenacity
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  aiohttp,
+  tenacity,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-TjBjyWxBPrZEY/o1DZ+GiFTHTW37WwFN0oyJSyGru28=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
diff --git a/pkgs/development/python-modules/py-bip39-bindings/default.nix b/pkgs/development/python-modules/py-bip39-bindings/default.nix
index 7de906d4256f2..24521f5289ac1 100644
--- a/pkgs/development/python-modules/py-bip39-bindings/default.nix
+++ b/pkgs/development/python-modules/py-bip39-bindings/default.nix
@@ -1,12 +1,14 @@
-{ lib
-, fetchFromGitHub
-, fetchpatch
-, buildPythonPackage
-, pythonOlder
-, pytestCheckHook
-, rustPlatform
-, stdenv
-, libiconv }:
+{
+  lib,
+  fetchFromGitHub,
+  fetchpatch,
+  buildPythonPackage,
+  pythonOlder,
+  pytestCheckHook,
+  rustPlatform,
+  stdenv,
+  libiconv,
+}:
 
 buildPythonPackage rec {
   pname = "py-bip39-bindings";
@@ -30,9 +32,7 @@ buildPythonPackage rec {
     })
   ];
 
-  cargoDeps = rustPlatform.importCargoLock {
-    lockFile = ./Cargo.lock;
-  };
+  cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; };
 
   postPatch = ''
     cp ${./Cargo.lock} Cargo.lock
@@ -45,17 +45,11 @@ buildPythonPackage rec {
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests.py"
-  ];
+  pytestFlagsArray = [ "tests.py" ];
 
-  pythonImportsCheck = [
-    "bip39"
-  ];
+  pythonImportsCheck = [ "bip39" ];
 
   meta = with lib; {
     description = "Python bindings for the tiny-bip39 library";
diff --git a/pkgs/development/python-modules/py-canary/default.nix b/pkgs/development/python-modules/py-canary/default.nix
index 7e0200abea3c8..ecfb6a8d072af 100644
--- a/pkgs/development/python-modules/py-canary/default.nix
+++ b/pkgs/development/python-modules/py-canary/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "py-canary";
-  version = "0.5.3";
+  version = "0.5.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -20,16 +21,12 @@ buildPythonPackage rec {
     owner = "snjoetw";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-873XAf0jOX5pjrNRELEcTWCauk80FUYxTu7G7jc3MHE=";
+    hash = "sha256-zylWkssU85eSfR+Di7vQGTr6hOQkqXCObv/PCDHoKHA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     mock
@@ -37,9 +34,7 @@ buildPythonPackage rec {
     requests-mock
   ];
 
-  pythonImportsCheck = [
-    "canary"
-  ];
+  pythonImportsCheck = [ "canary" ];
 
   disabledTests = [
     # Test requires network access
diff --git a/pkgs/development/python-modules/py-cid/default.nix b/pkgs/development/python-modules/py-cid/default.nix
index 947583f0a7b3f..7b986be7dc422 100644
--- a/pkgs/development/python-modules/py-cid/default.nix
+++ b/pkgs/development/python-modules/py-cid/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, base58
-, py-multibase
-, py-multicodec
-, morphys
-, py-multihash
-, hypothesis
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  base58,
+  py-multibase,
+  py-multicodec,
+  morphys,
+  py-multihash,
+  hypothesis,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/py-cpuinfo/default.nix b/pkgs/development/python-modules/py-cpuinfo/default.nix
index ed6bdab5cfa4f..7c26fe29f2f2f 100644
--- a/pkgs/development/python-modules/py-cpuinfo/default.nix
+++ b/pkgs/development/python-modules/py-cpuinfo/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, sysctl
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  sysctl,
 }:
 
 buildPythonPackage rec {
@@ -15,15 +16,13 @@ buildPythonPackage rec {
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
-     owner = "workhorsy";
-     repo = pname;
-     rev = "v${version}";
-     hash = "sha256-Q5u0guAqDVhf6bvJTzNvCpWbIzjxxAjE7s0OuXj9T4Q=";
+    owner = "workhorsy";
+    repo = pname;
+    rev = "v${version}";
+    hash = "sha256-Q5u0guAqDVhf6bvJTzNvCpWbIzjxxAjE7s0OuXj9T4Q=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # On Darwin sysctl is used to read CPU information.
   postPatch = lib.optionalString stdenv.isDarwin ''
@@ -32,9 +31,7 @@ buildPythonPackage rec {
       --replace "_run_and_get_stdout(['sysctl'" "_run_and_get_stdout(['${sysctl}/bin/sysctl'"
   '';
 
-  pythonImportsCheck = [
-    "cpuinfo"
-  ];
+  pythonImportsCheck = [ "cpuinfo" ];
 
   meta = with lib; {
     description = "Get CPU info with pure Python";
diff --git a/pkgs/development/python-modules/py-deprecate/default.nix b/pkgs/development/python-modules/py-deprecate/default.nix
index de7e506c0db31..c6c2c62ee0416 100644
--- a/pkgs/development/python-modules/py-deprecate/default.nix
+++ b/pkgs/development/python-modules/py-deprecate/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, scikit-learn
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  scikit-learn,
 }:
 
 let
@@ -28,12 +29,9 @@ buildPythonPackage {
   pythonImportsCheck = [ "deprecate" ];
 
   meta = with lib; {
-    description = "A module for marking deprecated functions or classes and re-routing to the new successors' instance. Used by torchmetrics";
+    description = "Module for marking deprecated functions or classes and re-routing to the new successors' instance. Used by torchmetrics";
     homepage = "https://borda.github.io/pyDeprecate/";
     license = licenses.asl20;
-    maintainers = with maintainers; [
-      SomeoneSerge
-    ];
+    maintainers = with maintainers; [ SomeoneSerge ];
   };
 }
-
diff --git a/pkgs/development/python-modules/py-desmume/default.nix b/pkgs/development/python-modules/py-desmume/default.nix
index 1009a1fbedb7a..311d4fdac0652 100644
--- a/pkgs/development/python-modules/py-desmume/default.nix
+++ b/pkgs/development/python-modules/py-desmume/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, alsa-lib
-, buildPythonPackage
-, fetchFromGitHub
-, gitpython
-, libpcap
-, meson
-, ninja
-, openal
-, pillow
-, pkg-config
-, pygobject3
-, pythonOlder
-, SDL2
-, soundtouch
+{
+  lib,
+  alsa-lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gitpython,
+  libpcap,
+  meson,
+  ninja,
+  openal,
+  pillow,
+  pkg-config,
+  pygobject3,
+  pythonOlder,
+  SDL2,
+  soundtouch,
 }:
 
 buildPythonPackage rec {
@@ -50,15 +51,11 @@ buildPythonPackage rec {
     pygobject3
   ];
 
-  hardeningDisable = [
-    "format"
-  ];
+  hardeningDisable = [ "format" ];
 
   doCheck = false; # there are no tests
 
-  pythonImportsCheck = [
-    "desmume"
-  ];
+  pythonImportsCheck = [ "desmume" ];
 
   meta = with lib; {
     description = "Python library to interface with DeSmuME, the Nintendo DS emulator";
diff --git a/pkgs/development/python-modules/py-dmidecode/default.nix b/pkgs/development/python-modules/py-dmidecode/default.nix
index bcd850def6250..893121ff1e3d3 100644
--- a/pkgs/development/python-modules/py-dmidecode/default.nix
+++ b/pkgs/development/python-modules/py-dmidecode/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, dmidecode
-, fetchPypi
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dmidecode,
+  fetchPypi,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,20 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-pS1fRWuWLnXuNEGYXU/j1njC8THWQOHbnVOF9+c13Cw=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    dmidecode
-  ];
+  propagatedBuildInputs = [ dmidecode ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dmidecode"
-  ];
+  pythonImportsCheck = [ "dmidecode" ];
 
   meta = with lib; {
     description = "Python library that parses the output of dmidecode";
diff --git a/pkgs/development/python-modules/py-dormakaba-dkey/default.nix b/pkgs/development/python-modules/py-dormakaba-dkey/default.nix
index 405c1e61cad6a..ea0896225a002 100644
--- a/pkgs/development/python-modules/py-dormakaba-dkey/default.nix
+++ b/pkgs/development/python-modules/py-dormakaba-dkey/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, bleak
-, bleak-retry-connector
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, fetchpatch
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  bleak,
+  bleak-retry-connector,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  fetchpatch,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -47,9 +48,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "py_dormakaba_dkey"
-  ];
+  pythonImportsCheck = [ "py_dormakaba_dkey" ];
 
   meta = with lib; {
     description = "Library to interact with a Dormakaba dkey lock";
diff --git a/pkgs/development/python-modules/py-ecc/default.nix b/pkgs/development/python-modules/py-ecc/default.nix
index d7769ea4873d9..2e2f1dd1bb16d 100644
--- a/pkgs/development/python-modules/py-ecc/default.nix
+++ b/pkgs/development/python-modules/py-ecc/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cached-property
-, eth-typing
-, eth-utils
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cached-property,
+  eth-typing,
+  eth-utils,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-DKe+bI1GEzXg4Y4n5OA1/hWYz9L3X1AvaOFPEnCaAfs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cached-property
@@ -33,9 +32,7 @@ buildPythonPackage rec {
     eth-utils
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = lib.optionals (pythonAtLeast "3.12") [
     # https://github.com/ethereum/py_ecc/issues/133
diff --git a/pkgs/development/python-modules/py-eth-sig-utils/default.nix b/pkgs/development/python-modules/py-eth-sig-utils/default.nix
index ed92c9c2e41eb..6c009fd9c5922 100644
--- a/pkgs/development/python-modules/py-eth-sig-utils/default.nix
+++ b/pkgs/development/python-modules/py-eth-sig-utils/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, eth-abi
-, py-ecc
-, pycryptodome
-, python
-, rlp
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  eth-abi,
+  py-ecc,
+  pycryptodome,
+  python,
+  rlp,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/py-expression-eval/default.nix b/pkgs/development/python-modules/py-expression-eval/default.nix
index 13797e3adc784..f184c025e218e 100644
--- a/pkgs/development/python-modules/py-expression-eval/default.nix
+++ b/pkgs/development/python-modules/py-expression-eval/default.nix
@@ -1,4 +1,5 @@
-{ lib,
+{
+  lib,
   buildPythonPackage,
   fetchFromGitHub,
 }:
diff --git a/pkgs/development/python-modules/py-libzfs/default.nix b/pkgs/development/python-modules/py-libzfs/default.nix
index 661a79dd64855..ce976862ea255 100644
--- a/pkgs/development/python-modules/py-libzfs/default.nix
+++ b/pkgs/development/python-modules/py-libzfs/default.nix
@@ -1,23 +1,32 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, cython_0
-, zfs
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch2,
+  cython_0,
+  zfs,
 }:
 
 buildPythonPackage rec {
   pname = "py-libzfs";
-  version = "22.12.4.2";
+  version = "24.04.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "truenas";
     repo = pname;
     rev = "TS-${version}";
-    hash = "sha256-vBLbjP1gQEQNsTLc2W6uRzCFHQXZp+jGiwE0Pe8VTuw=";
+    hash = "sha256-Uiu0RNE06++iNWUNcKpbZvreT2D7/EqHlFZJXKe3F4A=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      url = "https://github.com/truenas/py-libzfs/commit/b5ffe1f1d6097df6e2f5cc6dd3c968872ec60804.patch";
+      hash = "sha256-6r5hQ/o7c4vq4Tfh0l1WbeK3AuPvi+1wzkwkIn1qEes=";
+    })
+  ];
+
   nativeBuildInputs = [ cython_0 ];
   buildInputs = [ zfs ];
 
@@ -42,4 +51,3 @@ buildPythonPackage rec {
     platforms = platforms.linux;
   };
 }
-
diff --git a/pkgs/development/python-modules/py-lru-cache/default.nix b/pkgs/development/python-modules/py-lru-cache/default.nix
index 85045a156bd5e..a9d7488695017 100644
--- a/pkgs/development/python-modules/py-lru-cache/default.nix
+++ b/pkgs/development/python-modules/py-lru-cache/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -15,10 +16,9 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "An in-memory LRU cache for python";
+    description = "In-memory LRU cache for python";
     homepage = "https://github.com/stucchio/Python-LRU-cache";
     license = licenses.gpl3;
     maintainers = [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/py-multiaddr/default.nix b/pkgs/development/python-modules/py-multiaddr/default.nix
index 28ee3cffb9172..95016f826c622 100644
--- a/pkgs/development/python-modules/py-multiaddr/default.nix
+++ b/pkgs/development/python-modules/py-multiaddr/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, varint
-, base58
-, netaddr
-, idna
-, py-cid
-, py-multicodec
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  varint,
+  base58,
+  netaddr,
+  idna,
+  py-cid,
+  py-multicodec,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -37,16 +38,17 @@ buildPythonPackage rec {
     py-multicodec
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "multiaddr" ];
 
   meta = with lib; {
     description = "Composable and future-proof network addresses";
     homepage = "https://github.com/multiformats/py-multiaddr";
-    license = with licenses; [ mit asl20 ];
+    license = with licenses; [
+      mit
+      asl20
+    ];
     maintainers = with maintainers; [ Luflosi ];
   };
 }
diff --git a/pkgs/development/python-modules/py-multibase/default.nix b/pkgs/development/python-modules/py-multibase/default.nix
index 50f1d9e9b3760..250c1290579da 100644
--- a/pkgs/development/python-modules/py-multibase/default.nix
+++ b/pkgs/development/python-modules/py-multibase/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, morphys
-, pytestCheckHook
-, python-baseconv
-, pythonOlder
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  morphys,
+  pytestCheckHook,
+  python-baseconv,
+  pythonOlder,
+  six,
 }:
 buildPythonPackage rec {
   pname = "py-multibase";
@@ -33,13 +34,9 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "multibase"
-  ];
+  pythonImportsCheck = [ "multibase" ];
 
   meta = with lib; {
     description = "Module for distinguishing base encodings and other simple string encodings";
diff --git a/pkgs/development/python-modules/py-multicodec/default.nix b/pkgs/development/python-modules/py-multicodec/default.nix
index 21f396d9c2a22..a657d8eb459d6 100644
--- a/pkgs/development/python-modules/py-multicodec/default.nix
+++ b/pkgs/development/python-modules/py-multicodec/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, morphys
-, pytestCheckHook
-, pythonOlder
-, six
-, varint
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  morphys,
+  pytestCheckHook,
+  pythonOlder,
+  six,
+  varint,
 }:
 
 buildPythonPackage rec {
@@ -37,13 +38,9 @@ buildPythonPackage rec {
     varint
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "multicodec"
-  ];
+  pythonImportsCheck = [ "multicodec" ];
 
   meta = with lib; {
     description = "Compact self-describing codecs";
diff --git a/pkgs/development/python-modules/py-multihash/default.nix b/pkgs/development/python-modules/py-multihash/default.nix
index 9ae0d1a1d3dbd..9ad80769e9544 100644
--- a/pkgs/development/python-modules/py-multihash/default.nix
+++ b/pkgs/development/python-modules/py-multihash/default.nix
@@ -1,12 +1,12 @@
-{ lib
-, base58
-, buildPythonPackage
-, fetchFromGitHub
-, morphys
-, pytestCheckHook
-, pythonOlder
-, six
-, varint
+{
+  lib,
+  base58,
+  buildPythonPackage,
+  fetchFromGitHub,
+  morphys,
+  pytestCheckHook,
+  six,
+  varint,
 }:
 
 buildPythonPackage rec {
@@ -14,8 +14,6 @@ buildPythonPackage rec {
   version = "2.0.1";
   format = "setuptools";
 
-  disabled = pythonOlder "3.4";
-
   src = fetchFromGitHub {
     owner = "multiformats";
     repo = pname;
@@ -35,13 +33,9 @@ buildPythonPackage rec {
     varint
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "multihash"
-  ];
+  pythonImportsCheck = [ "multihash" ];
 
   meta = with lib; {
     description = "Self describing hashes - for future proofing";
diff --git a/pkgs/development/python-modules/py-nextbusnext/default.nix b/pkgs/development/python-modules/py-nextbusnext/default.nix
index 090883bad3d96..8aeae2b22b1fd 100644
--- a/pkgs/development/python-modules/py-nextbusnext/default.nix
+++ b/pkgs/development/python-modules/py-nextbusnext/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-5zD8AKb4/4x4cVA922OlzSOXlg3F6QCcr16agEQkUWM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "py_nextbus"
-  ];
+  pythonImportsCheck = [ "py_nextbus" ];
 
   meta = with lib; {
     description = "Minimalistic Python client for the NextBus public API";
diff --git a/pkgs/development/python-modules/py-nightscout/default.nix b/pkgs/development/python-modules/py-nightscout/default.nix
index 3330b68c949e8..e690f1b1cacaf 100644
--- a/pkgs/development/python-modules/py-nightscout/default.nix
+++ b/pkgs/development/python-modules/py-nightscout/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pytz
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -36,10 +37,7 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
-
-  pythonImportsCheck = [
-    "py_nightscout"
-  ];
+  pythonImportsCheck = [ "py_nightscout" ];
 
   meta = with lib; {
     description = "Python library that provides an interface to Nightscout";
diff --git a/pkgs/development/python-modules/py-partiql-parser/default.nix b/pkgs/development/python-modules/py-partiql-parser/default.nix
index 95cfa9e9c9b74..f3978e4fb6957 100644
--- a/pkgs/development/python-modules/py-partiql-parser/default.nix
+++ b/pkgs/development/python-modules/py-partiql-parser/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, hatchling
-, sure
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  hatchling,
+  sure,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,17 @@ buildPythonPackage rec {
     hash = "sha256-BSqc3xibStb3J6Rua4dDp/eRD5/ns/dU1vGa4vL1Cyo=";
   };
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   nativeCheckInputs = [
     pytestCheckHook
     sure
   ];
 
-  pythonImportsCheck = [
-    "py_partiql_parser"
-  ];
+  pythonImportsCheck = [ "py_partiql_parser" ];
 
   meta = with lib; {
-    description = "A tokenizer/parser/executor for the PartiQL-language";
+    description = "Tokenizer/parser/executor for the PartiQL-language";
     homepage = "https://github.com/getmoto/py-partiql-parser";
     changelog = "https://github.com/getmoto/py-partiql-parser/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/py-pdf-parser/default.nix b/pkgs/development/python-modules/py-pdf-parser/default.nix
index 36df1c18f0b41..84d2e77d45af6 100644
--- a/pkgs/development/python-modules/py-pdf-parser/default.nix
+++ b/pkgs/development/python-modules/py-pdf-parser/default.nix
@@ -1,12 +1,12 @@
-{ lib
-, buildPythonPackage
-, docopt
-, fetchPypi
-, pdfminer-six
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
-, wand
+{
+  lib,
+  buildPythonPackage,
+  docopt,
+  fetchPypi,
+  pdfminer-six,
+  pythonOlder,
+  setuptools,
+  wand,
 }:
 
 buildPythonPackage rec {
@@ -23,7 +23,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     setuptools
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -47,7 +46,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A tool to help extracting information from structured PDFs";
+    description = "Tool to help extracting information from structured PDFs";
     homepage = "https://github.com/jstockwin/py-pdf-parser";
     changelog = "https://github.com/jstockwin/py-pdf-parser/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/py-radix-sr/default.nix b/pkgs/development/python-modules/py-radix-sr/default.nix
index 26a9d2f555def..50061cab48aa1 100644
--- a/pkgs/development/python-modules/py-radix-sr/default.nix
+++ b/pkgs/development/python-modules/py-radix-sr/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -38,7 +39,10 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python radix tree for IPv4 and IPv6 prefix matching";
     homepage = "https://github.com/SEKOIA-IO/py-radix";
-    license = with licenses; [ isc bsdOriginal ];
+    license = with licenses; [
+      isc
+      bsdOriginal
+    ];
     maintainers = teams.wdz.members;
   };
 }
diff --git a/pkgs/development/python-modules/py-scrypt/default.nix b/pkgs/development/python-modules/py-scrypt/default.nix
index a997bc11ef0d2..c0fe6b756b348 100644
--- a/pkgs/development/python-modules/py-scrypt/default.nix
+++ b/pkgs/development/python-modules/py-scrypt/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, openssl
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  openssl,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Bindings for scrypt key derivation function library";
     homepage = "https://pypi.python.org/pypi/scrypt";
-    maintainers = [];
+    maintainers = [ ];
     license = licenses.bsd2;
   };
 }
diff --git a/pkgs/development/python-modules/py-serializable/default.nix b/pkgs/development/python-modules/py-serializable/default.nix
index dd7b8dd4312dd..b0e0f0284cb4e 100644
--- a/pkgs/development/python-modules/py-serializable/default.nix
+++ b/pkgs/development/python-modules/py-serializable/default.nix
@@ -26,6 +26,8 @@ buildPythonPackage rec {
 
   build-system = [ poetry-core ];
 
+  pythonRelaxDeps = [ "defusedxml" ];
+
   dependencies = [ defusedxml ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/py-slvs/default.nix b/pkgs/development/python-modules/py-slvs/default.nix
new file mode 100644
index 0000000000000..775de5a238bd1
--- /dev/null
+++ b/pkgs/development/python-modules/py-slvs/default.nix
@@ -0,0 +1,50 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  swig,
+  cmake,
+  ninja,
+  setuptools,
+  scikit-build,
+}:
+
+buildPythonPackage rec {
+  pname = "py-slvs";
+  version = "1.0.6";
+
+  src = fetchPypi {
+    pname = "py_slvs";
+    inherit version;
+    sha256 = "sha256-U6T/aXy0JTC1ptL5oBmch0ytSPmIkRA8XOi31NpArnI=";
+  };
+
+  pyproject = true;
+
+  nativeBuildInputs = [
+    swig
+  ];
+
+  build-system = [
+    cmake
+    ninja
+    setuptools
+    scikit-build
+  ];
+
+  dontUseCmakeConfigure = true;
+
+  pythonImportsCheck = [
+    "py_slvs"
+  ];
+
+  meta = {
+    description = "Python binding of SOLVESPACE geometry constraint solver";
+    homepage = "https://github.com/realthunder/slvs_py";
+    license = lib.licenses.gpl3Only;
+    maintainers = with lib.maintainers; [
+      traverseda
+    ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/py-sneakers/default.nix b/pkgs/development/python-modules/py-sneakers/default.nix
index b69516d47a777..bcb9c07fb3230 100644
--- a/pkgs/development/python-modules/py-sneakers/default.nix
+++ b/pkgs/development/python-modules/py-sneakers/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "py_sneakers"
-  ];
+  pythonImportsCheck = [ "py_sneakers" ];
 
   meta = with lib; {
     description = "Library to emulate the Sneakers movie effect";
diff --git a/pkgs/development/python-modules/py-sonic/default.nix b/pkgs/development/python-modules/py-sonic/default.nix
index 826c23120ed99..5120e8a77b038 100644
--- a/pkgs/development/python-modules/py-sonic/default.nix
+++ b/pkgs/development/python-modules/py-sonic/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27 }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+}:
 
 buildPythonPackage rec {
   pname = "py-sonic";
@@ -17,7 +22,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/crustymonkey/py-sonic";
-    description = "A python wrapper library for the Subsonic REST API";
+    description = "Python wrapper library for the Subsonic REST API";
     license = licenses.gpl3;
     maintainers = with maintainers; [ wenngle ];
   };
diff --git a/pkgs/development/python-modules/py-sr25519-bindings/default.nix b/pkgs/development/python-modules/py-sr25519-bindings/default.nix
index c001344a293b1..51915de513a78 100644
--- a/pkgs/development/python-modules/py-sr25519-bindings/default.nix
+++ b/pkgs/development/python-modules/py-sr25519-bindings/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, fetchFromGitHub
-, fetchpatch
-, buildPythonPackage
-, pythonOlder
-, pytestCheckHook
-, rustPlatform
-, stdenv
-, py-bip39-bindings
-, libiconv }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  pytestCheckHook,
+  rustPlatform,
+  stdenv,
+  py-bip39-bindings,
+  libiconv,
+}:
 
 buildPythonPackage rec {
   pname = "py-sr25519-bindings";
@@ -41,18 +42,17 @@ buildPythonPackage rec {
     py-bip39-bindings
   ];
 
-  pytestFlagsArray = [
-    "tests.py"
-  ];
+  pytestFlagsArray = [ "tests.py" ];
 
-  pythonImportsCheck = [
-    "sr25519"
-  ];
+  pythonImportsCheck = [ "sr25519" ];
 
   meta = with lib; {
     description = "Python bindings for sr25519 library";
     homepage = "https://github.com/polkascan/py-sr25519-bindings";
     license = licenses.asl20;
-    maintainers = with maintainers; [ onny stargate01 ];
+    maintainers = with maintainers; [
+      onny
+      stargate01
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/py-stringmatching/default.nix b/pkgs/development/python-modules/py-stringmatching/default.nix
index 305451aeb1654..0d7f845b8a5b4 100644
--- a/pkgs/development/python-modules/py-stringmatching/default.nix
+++ b/pkgs/development/python-modules/py-stringmatching/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pytestCheckHook
-, numpy
-, pythonOlder
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pytestCheckHook,
+  numpy,
+  pythonOlder,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -20,26 +21,20 @@ buildPythonPackage rec {
     hash = "sha256-2XuhtWKtmO/8lGaHxdqwdMF6UVEUqw3PUCIC1c7J8rU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     numpy
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     cd $out
   '';
 
-  pythonImportsCheck = [
-    "py_stringmatching"
-  ];
+  pythonImportsCheck = [ "py_stringmatching" ];
 
   meta = with lib; {
     description = "Python string matching library including string tokenizers and string similarity measures";
diff --git a/pkgs/development/python-modules/py-synologydsm-api/default.nix b/pkgs/development/python-modules/py-synologydsm-api/default.nix
index 415d95f8b324e..e81173c5cae00 100644
--- a/pkgs/development/python-modules/py-synologydsm-api/default.nix
+++ b/pkgs/development/python-modules/py-synologydsm-api/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "py-synologydsm-api";
-  version = "2.4.2";
+  version = "2.4.4";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -20,7 +21,7 @@ buildPythonPackage rec {
     owner = "mib1185";
     repo = "py-synologydsm-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-uqQY0vt+3JGjciG0t9eh8zK5dnq1QhU6FkzWkKX/+DM=";
+    hash = "sha256-46KoOKBiulTYH2x8ftFPVDF0oeBG1Pe9PkonxIV7528=";
   };
 
   nativeBuildInputs = [
@@ -33,13 +34,9 @@ buildPythonPackage rec {
     async-timeout
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "synology_dsm"
-  ];
+  pythonImportsCheck = [ "synology_dsm" ];
 
   meta = with lib; {
     description = "Python API for Synology DSM";
diff --git a/pkgs/development/python-modules/py-tes/default.nix b/pkgs/development/python-modules/py-tes/default.nix
index 6fba131e07139..b7d46b97f5b1b 100644
--- a/pkgs/development/python-modules/py-tes/default.nix
+++ b/pkgs/development/python-modules/py-tes/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, attrs
-, buildPythonPackage
-, fetchFromGitHub
-, future
-, python-dateutil
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  future,
+  python-dateutil,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
     requests-mock
   ];
 
-  pythonImportsCheck = [
-    "tes"
-  ];
+  pythonImportsCheck = [ "tes" ];
 
   meta = with lib; {
     description = "Python SDK for the GA4GH Task Execution API";
diff --git a/pkgs/development/python-modules/py-ubjson/default.nix b/pkgs/development/python-modules/py-ubjson/default.nix
index f9518fdead937..7eca2165efc1d 100644
--- a/pkgs/development/python-modules/py-ubjson/default.nix
+++ b/pkgs/development/python-modules/py-ubjson/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,22 +17,16 @@ buildPythonPackage rec {
     sha256 = "1frn97xfa88zrfmpnvdk1pc03yihlchhph99bhjayvzlfcrhm5v3";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # https://github.com/Iotic-Labs/py-ubjson/issues/18
     "test_recursion"
   ];
 
-  pytestFlagsArray = [
-    "test/test.py"
-  ];
+  pytestFlagsArray = [ "test/test.py" ];
 
-  pythonImportsCheck = [
-    "ubjson"
-  ];
+  pythonImportsCheck = [ "ubjson" ];
 
   meta = with lib; {
     description = "Universal Binary JSON draft-12 serializer for Python";
diff --git a/pkgs/development/python-modules/py-vapid/default.nix b/pkgs/development/python-modules/py-vapid/default.nix
index 89b7a045d0c1d..5a546643e17e9 100644
--- a/pkgs/development/python-modules/py-vapid/default.nix
+++ b/pkgs/development/python-modules/py-vapid/default.nix
@@ -1,27 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mock
-, pytestCheckHook
-, cryptography
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  pytestCheckHook,
+  cryptography,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "py-vapid";
-  version = "1.9.0";
+  version = "1.9.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-BmSreJl0LvKyhzl6TUYe9pHtDML1hyBRKNjPYX/9uRk=";
+    pname = "py_vapid";
+    inherit version;
+    hash = "sha256-/itUYb9Fx7r/EDnfaYHwO4f6qHzeBIKt36NbP+Y2rBs=";
   };
 
-  propagatedBuildInputs = [
-    cryptography
-  ];
+  propagatedBuildInputs = [ cryptography ];
 
   nativeCheckInputs = [
     mock
diff --git a/pkgs/development/python-modules/py-zabbix/default.nix b/pkgs/development/python-modules/py-zabbix/default.nix
index b39a706c65387..e9251892bd07f 100644
--- a/pkgs/development/python-modules/py-zabbix/default.nix
+++ b/pkgs/development/python-modules/py-zabbix/default.nix
@@ -1,15 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "py-zabbix";
   version = "1.1.7";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -29,17 +32,21 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "pyzabbix" ];
 
-  pythonImportsCheck = [
-    "pyzabbix"
+  disabledTests = lib.optionals (pythonAtLeast "3.12") [
+    # AttributeError: 'RawConfigParser' object has no attribute 'readfp'
+    "config"
   ];
 
   meta = with lib; {
     description = "Python module to interact with Zabbix";
     homepage = "https://github.com/adubkov/py-zabbix";
+    changelog = "https://github.com/adubkov/py-zabbix/releases/tag/${version}";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/py/default.nix b/pkgs/development/python-modules/py/default.nix
index 3dec18b6e0fc7..7cfe0a7e05b7b 100644
--- a/pkgs/development/python-modules/py/default.nix
+++ b/pkgs/development/python-modules/py/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools-scm }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+}:
 
 buildPythonPackage rec {
   pname = "py";
@@ -15,9 +20,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools-scm ];
 
-  pythonImportsCheck = [
-    "py"
-  ];
+  pythonImportsCheck = [ "py" ];
 
   meta = with lib; {
     description = "Library with cross-python path, ini-parsing, io, code, log facilities";
diff --git a/pkgs/development/python-modules/py17track/default.nix b/pkgs/development/python-modules/py17track/default.nix
index 6294b6b1c0665..e0ddc1e17666f 100644
--- a/pkgs/development/python-modules/py17track/default.nix
+++ b/pkgs/development/python-modules/py17track/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, aresponses
-, attrs
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, pytz
+{
+  lib,
+  aiohttp,
+  aresponses,
+  attrs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -40,9 +41,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -63,9 +62,7 @@ buildPythonPackage rec {
     "examples/"
   ];
 
-  pythonImportsCheck = [
-    "py17track"
-  ];
+  pythonImportsCheck = [ "py17track" ];
 
   meta = with lib; {
     description = "Python library to track package info from 17track.com";
diff --git a/pkgs/development/python-modules/py2bit/default.nix b/pkgs/development/python-modules/py2bit/default.nix
index 9f45e4e2d9e35..96fbdeeb0ab58 100644
--- a/pkgs/development/python-modules/py2bit/default.nix
+++ b/pkgs/development/python-modules/py2bit/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/deeptools/py2bit";
     description = "File access to 2bit files";
     longDescription = ''
-        A python extension, written in C, for quick access to 2bit files. The extension uses lib2bit for file access.
+      A python extension, written in C, for quick access to 2bit files. The extension uses lib2bit for file access.
     '';
     license = licenses.mit;
     maintainers = with maintainers; [ scalavision ];
diff --git a/pkgs/development/python-modules/py3buddy/default.nix b/pkgs/development/python-modules/py3buddy/default.nix
index 2b3f3f48f1375..33a5cfc593a35 100644
--- a/pkgs/development/python-modules/py3buddy/default.nix
+++ b/pkgs/development/python-modules/py3buddy/default.nix
@@ -1,7 +1,9 @@
-{ lib, stdenv
-, fetchFromGitHub
-, python
-, pyusb
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  python,
+  pyusb,
 }:
 
 stdenv.mkDerivation (finalAttrs: {
diff --git a/pkgs/development/python-modules/py3dns/default.nix b/pkgs/development/python-modules/py3dns/default.nix
index 5e8027bb60060..14ad167716559 100644
--- a/pkgs/development/python-modules/py3dns/default.nix
+++ b/pkgs/development/python-modules/py3dns/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -27,5 +28,4 @@ buildPythonPackage rec {
     homepage = "https://launchpad.net/py3dns";
     license = licenses.psfl;
   };
-
 }
diff --git a/pkgs/development/python-modules/py3exiv2/default.nix b/pkgs/development/python-modules/py3exiv2/default.nix
index e8c5c6cd15160..38bdf6c4c18d8 100644
--- a/pkgs/development/python-modules/py3exiv2/default.nix
+++ b/pkgs/development/python-modules/py3exiv2/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, boost
-, buildPythonPackage
-, exiv2
-, fetchPypi
-, libcxx
-, pythonOlder
+{
+  lib,
+  stdenv,
+  boost,
+  buildPythonPackage,
+  exiv2,
+  fetchPypi,
+  libcxx,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Work around Python distutils compiling C++ with $CC (see issue #26709)
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-I${lib.getDev libcxx}/include/c++/v1";
 
-  pythonImportsCheck = [
-    "pyexiv2"
-  ];
+  pythonImportsCheck = [ "pyexiv2" ];
 
   # Tests are not shipped
   doCheck = false;
diff --git a/pkgs/development/python-modules/py3langid/default.nix b/pkgs/development/python-modules/py3langid/default.nix
index 84e758bfc5ef2..248a3bfa2088c 100644
--- a/pkgs/development/python-modules/py3langid/default.nix
+++ b/pkgs/development/python-modules/py3langid/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, numpy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  numpy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     hash = "sha256-tN4B2tfnAfKdIWoJNeheCWzIZ1kD0j6oRFsrtfCQuW8=";
   };
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # nixify path to the courlan binary in the test suite
   postPatch = ''
diff --git a/pkgs/development/python-modules/py3nvml/default.nix b/pkgs/development/python-modules/py3nvml/default.nix
index e551298e69fea..af83b78621770 100644
--- a/pkgs/development/python-modules/py3nvml/default.nix
+++ b/pkgs/development/python-modules/py3nvml/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, xmltodict
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-Ce4dBFmKbmZOJEZfgEzjv+EZpv21Ni3xwWj4qpKfvXM=";
   };
 
-  propagatedBuildInputs = [
-    xmltodict
-  ];
+  propagatedBuildInputs = [ xmltodict ];
 
   pythonImportsCheck = [ "py3nvml" ];
 
@@ -24,7 +23,10 @@ buildPythonPackage rec {
     description = "Python 3 Bindings for the NVIDIA Management Library";
     mainProgram = "py3smi";
     homepage = "https://pypi.org/project/py3nvml/";
-    license = with licenses; [ bsd3 bsd2 ];
+    license = with licenses; [
+      bsd3
+      bsd2
+    ];
     maintainers = with maintainers; [ happysalada ];
   };
 }
diff --git a/pkgs/development/python-modules/py3rijndael/default.nix b/pkgs/development/python-modules/py3rijndael/default.nix
index 74a91b6ee2f4c..5e39b14149b27 100644
--- a/pkgs/development/python-modules/py3rijndael/default.nix
+++ b/pkgs/development/python-modules/py3rijndael/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 let
@@ -17,9 +18,7 @@ buildPythonPackage {
     hash = "sha256-tmVaPr/zoQVA6u0EnoeI7qOsk9a3GzpqwrACJLvs6ag=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Rijndael algorithm library";
diff --git a/pkgs/development/python-modules/py3status/default.nix b/pkgs/development/python-modules/py3status/default.nix
index 6ec4405a03684..d21e806016210 100644
--- a/pkgs/development/python-modules/py3status/default.nix
+++ b/pkgs/development/python-modules/py3status/default.nix
@@ -1,40 +1,39 @@
-{ lib
-, buildPythonPackage
-, acpi
-, alsa-utils
-, coreutils
-, dbus-python
-, fetchPypi
-, file
-, hatchling
-, i3
-, i3ipc
-, libnotify
-, lm_sensors
-, procps
-, pydbus
-, pygobject3
-, pyserial
-, pytz
-, requests
-, setuptools
-, tzlocal
-, xorg
+{
+  lib,
+  buildPythonPackage,
+  acpi,
+  alsa-utils,
+  coreutils,
+  dbus-python,
+  fetchPypi,
+  file,
+  hatchling,
+  i3,
+  i3ipc,
+  libnotify,
+  lm_sensors,
+  procps,
+  pydbus,
+  pygobject3,
+  pyserial,
+  pytz,
+  requests,
+  setuptools,
+  tzlocal,
+  xorg,
 }:
 
 buildPythonPackage rec {
   pname = "py3status";
-  version = "3.57";
+  version = "3.58";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-6l0l7sbPspdF/TYTOKaWsgOdpfDUs0PyFVKGUBNPwIA=";
+    hash = "sha256-SJScEz9WsqB0jRAHmUHpmnAbuqnRnHUUgc1rDN0tScw=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     pytz
diff --git a/pkgs/development/python-modules/py4j/default.nix b/pkgs/development/python-modules/py4j/default.nix
index fa7fb2cee1db1..9433dbdf37e3b 100644
--- a/pkgs/development/python-modules/py4j/default.nix
+++ b/pkgs/development/python-modules/py4j/default.nix
@@ -1,4 +1,8 @@
-{ buildPythonPackage, fetchPypi, lib }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+}:
 
 buildPythonPackage rec {
   pname = "py4j";
@@ -15,7 +19,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   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.";
+    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/";
     sourceProvenance = with sourceTypes; [
       fromSource
diff --git a/pkgs/development/python-modules/py65/default.nix b/pkgs/development/python-modules/py65/default.nix
index 3c06f5932f001..9f73ed1eb686c 100644
--- a/pkgs/development/python-modules/py65/default.nix
+++ b/pkgs/development/python-modules/py65/default.nix
@@ -1,40 +1,42 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "py65";
-  version = "1.1.0";
-  format = "setuptools";
-
-  disabled = pythonOlder "3.6";
+  version = "1.2.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "mnaberez";
     repo = "py65";
     rev = "refs/tags/${version}";
-    hash = "sha256-WLs3TAZovuphWZIvMvM3CZnqg1aZfMF4Yrqw46k+bLA=";
+    hash = "sha256-BMX+sMPx/YBFA4NFkaY0rl0EPicGHgb6xXVvLEIdllA=";
   };
 
-  postPatch = ''
-    substituteInPlace py65/tests/test_monitor.py \
-          --replace "test_argv_rom" "dont_test_argv_rom" \
-          --replace "test_argv_combination_rom_mpu" "dont_test_argv_combination_rom_mpu"
-  '';
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [ unittestCheckHook ];
 
   meta = {
-    homepage = "https://py65.readthedocs.io/";
+    homepage = "https://github.com/mnaberez/py65";
     description = "Emulate 6502-based microcomputer systems in Python";
-    mainProgram = "py65mon";
     longDescription = ''
       Py65 includes a program called Py65Mon that functions as a machine
       language monitor. This kind of program is sometimes also called a
       debugger. Py65Mon provides a command line with many convenient commands
       for interacting with the simulated 6502-based system.
     '';
+    changelog = "https://github.com/mnaberez/py65/blob/${src.rev}/CHANGES.txt";
     license = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [ AndersonTorres tomasajt ];
+    mainProgram = "py65mon";
+    maintainers = with lib.maintainers; [
+      AndersonTorres
+      tomasajt
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
index 90b623c35ef49..e5f32b9507560 100644
--- a/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
+++ b/pkgs/development/python-modules/pyTelegramBotAPI/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "pytelegrambotapi";
-  version = "4.17.0";
+  version = "4.19.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "eternnoir";
     repo = "pyTelegramBotAPI";
     rev = "refs/tags/${version}";
-    hash = "sha256-Asw6wpZs0FgsUYLVQ4u4qQgIFdvShcsN3XvgHn48cbI=";
+    hash = "sha256-vyhX6TG3B6f1u49ngzdaCOZwSnEUQ2XMiq80bqCSmxU=";
   };
 
   build-system = [ hatchling ];
diff --git a/pkgs/development/python-modules/pyacaia-async/default.nix b/pkgs/development/python-modules/pyacaia-async/default.nix
index 7d69f39ceb1ec..02f930d3bc895 100644
--- a/pkgs/development/python-modules/pyacaia-async/default.nix
+++ b/pkgs/development/python-modules/pyacaia-async/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, bleak
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  bleak,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -25,21 +26,20 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    bleak
-  ];
+  propagatedBuildInputs = [ bleak ];
 
   # Module has no tests in PyPI releases
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyacaia_async"
-  ];
+  pythonImportsCheck = [ "pyacaia_async" ];
 
   meta = with lib; {
     description = "Module to interact with Acaia scales";
     homepage = "https://github.com/zweckj/pyacaia_async";
-    license = with licenses; [ gpl3Only mit ];
+    license = with licenses; [
+      gpl3Only
+      mit
+    ];
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/pyacoustid/default.nix b/pkgs/development/python-modules/pyacoustid/default.nix
index c5428a30bda80..3f8721e61e049 100644
--- a/pkgs/development/python-modules/pyacoustid/default.nix
+++ b/pkgs/development/python-modules/pyacoustid/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
-, audioread
-, pkgs
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  audioread,
+  pkgs,
 }:
 
 buildPythonPackage rec {
@@ -16,7 +17,10 @@ buildPythonPackage rec {
     sha256 = "sha256-X09IcZHBnruQgnCxt7UpfxMtozKxVouWqRRXTAee0Xc=";
   };
 
-  propagatedBuildInputs = [ requests audioread ];
+  propagatedBuildInputs = [
+    requests
+    audioread
+  ];
 
   postPatch = ''
     sed -i \
diff --git a/pkgs/development/python-modules/pyaehw4a1/default.nix b/pkgs/development/python-modules/pyaehw4a1/default.nix
index 2f500ea91a226..1506bfd80a788 100644
--- a/pkgs/development/python-modules/pyaehw4a1/default.nix
+++ b/pkgs/development/python-modules/pyaehw4a1/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, isPy27
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  isPy27,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyaes/default.nix b/pkgs/development/python-modules/pyaes/default.nix
index 4d98e7cfac63f..e38123f54e246 100644
--- a/pkgs/development/python-modules/pyaes/default.nix
+++ b/pkgs/development/python-modules/pyaes/default.nix
@@ -1,4 +1,8 @@
-{ lib, fetchPypi, buildPythonPackage }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+}:
 
 buildPythonPackage rec {
   pname = "pyaes";
diff --git a/pkgs/development/python-modules/pyaftership/default.nix b/pkgs/development/python-modules/pyaftership/default.nix
index 7c1c76c4adb5b..372b22b6505f6 100644
--- a/pkgs/development/python-modules/pyaftership/default.nix
+++ b/pkgs/development/python-modules/pyaftership/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, aiohttp
-, aresponses
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  aiohttp,
+  aresponses,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-njlDScmxIYWxB4EL9lOSGCXqZDzP999gI9EkpcZyFlE=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   nativeCheckInputs = [
     aresponses
@@ -39,9 +38,7 @@ buildPythonPackage rec {
       --replace 'version="main",' 'version="${version}",'
   '';
 
-  pythonImportsCheck = [
-    "pyaftership"
-  ];
+  pythonImportsCheck = [ "pyaftership" ];
 
   meta = with lib; {
     description = "Python wrapper package for the AfterShip API";
diff --git a/pkgs/development/python-modules/pyahocorasick/default.nix b/pkgs/development/python-modules/pyahocorasick/default.nix
index 26bdb55d5d441..51ec19016c776 100644
--- a/pkgs/development/python-modules/pyahocorasick/default.nix
+++ b/pkgs/development/python-modules/pyahocorasick/default.nix
@@ -1,9 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-SCIgu0uEjiSUiIP0WesJG+y+3ZqFBfI5PdgUzviOVrs=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ahocorasick"
-  ];
+  pythonImportsCheck = [ "ahocorasick" ];
 
   meta = with lib; {
     description = "Python module implementing Aho-Corasick algorithm";
diff --git a/pkgs/development/python-modules/pyairnow/default.nix b/pkgs/development/python-modules/pyairnow/default.nix
index c4a549847a26a..e3d93e1cfb122 100644
--- a/pkgs/development/python-modules/pyairnow/default.nix
+++ b/pkgs/development/python-modules/pyairnow/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pytest-aiohttp
-, poetry-core
-, pytest-asyncio
-, pytest-cov
-, pytestCheckHook
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pytest-aiohttp,
+  poetry-core,
+  pytest-asyncio,
+  pytest-cov,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyairvisual/default.nix b/pkgs/development/python-modules/pyairvisual/default.nix
index 3e3b44cb237e6..f8a731582e1db 100644
--- a/pkgs/development/python-modules/pyairvisual/default.nix
+++ b/pkgs/development/python-modules/pyairvisual/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, certifi
-, fetchFromGitHub
-, numpy
-, poetry-core
-, pygments
-, pysmb
-, pytest-aiohttp
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  certifi,
+  fetchFromGitHub,
+  numpy,
+  poetry-core,
+  pygments,
+  pysmb,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     hash = "sha256-uN31LeHYmg4V6Ln3EQp765nOsN5v56TxjYSS/g6TUCY=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -56,9 +55,7 @@ buildPythonPackage rec {
     "examples/"
   ];
 
-  pythonImportsCheck = [
-    "pyairvisual"
-  ];
+  pythonImportsCheck = [ "pyairvisual" ];
 
   meta = with lib; {
     description = "Python library for interacting with AirVisual";
diff --git a/pkgs/development/python-modules/pyais/default.nix b/pkgs/development/python-modules/pyais/default.nix
new file mode 100644
index 0000000000000..2070b0616cb10
--- /dev/null
+++ b/pkgs/development/python-modules/pyais/default.nix
@@ -0,0 +1,49 @@
+{
+  lib,
+  attrs,
+  bitarray,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "pyais";
+  version = "2.6.5";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "M0r13n";
+    repo = "pyais";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-/I/4ATvX/0ya8xtineXyjSFJBGhDNy/tosh2NdnKLK4=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  dependencies = [
+    attrs
+    bitarray
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "pyais" ];
+
+  disabledTestPaths = [
+    # Tests the examples which have additional requirements
+    "tests/test_examples.py"
+  ];
+
+  meta = with lib; {
+    description = "Module for decoding and encoding AIS messages (AIVDM/AIVDO)";
+    homepage = "https://github.com/M0r13n/pyais";
+    changelog = "https://github.com/M0r13n/pyais/blob/${version}/CHANGELOG.txt";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyalgotrade/default.nix b/pkgs/development/python-modules/pyalgotrade/default.nix
index a3014aa292883..d463972524f33 100644
--- a/pkgs/development/python-modules/pyalgotrade/default.nix
+++ b/pkgs/development/python-modules/pyalgotrade/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, matplotlib
-, numpy
-, python-dateutil
-, pytz
-, requests
-, retrying
-, scipy
-, six
-, tornado
-, tweepy
-, ws4py
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  matplotlib,
+  numpy,
+  python-dateutil,
+  pytz,
+  requests,
+  retrying,
+  scipy,
+  six,
+  tornado,
+  tweepy,
+  ws4py,
 }:
 
 buildPythonPackage rec {
@@ -26,8 +27,17 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    matplotlib numpy python-dateutil pytz requests
-    retrying scipy six tornado tweepy ws4py
+    matplotlib
+    numpy
+    python-dateutil
+    pytz
+    requests
+    retrying
+    scipy
+    six
+    tornado
+    tweepy
+    ws4py
   ];
 
   # no tests in PyPI tarball
@@ -38,5 +48,4 @@ buildPythonPackage rec {
     homepage = "http://gbeced.github.io/pyalgotrade/";
     license = licenses.asl20;
   };
-
 }
diff --git a/pkgs/development/python-modules/pyamg/default.nix b/pkgs/development/python-modules/pyamg/default.nix
index 6c33a2d9ca24e..83b59caaa8b2d 100644
--- a/pkgs/development/python-modules/pyamg/default.nix
+++ b/pkgs/development/python-modules/pyamg/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, scipy
-, pytest
-, python
-, pybind11
-, setuptools-scm
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  scipy,
+  pytest,
+  python,
+  pybind11,
+  setuptools-scm,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-+Q+d55W04pWJ7dLrRG0R3bRmZ46+gj7TKfzzV1nqOQw=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     numpy
diff --git a/pkgs/development/python-modules/pyaml/default.nix b/pkgs/development/python-modules/pyaml/default.nix
index f9b70e83157e6..cd640d600c57c 100644
--- a/pkgs/development/python-modules/pyaml/default.nix
+++ b/pkgs/development/python-modules/pyaml/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pyyaml
-, unidecode
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pyyaml,
+  unidecode,
 }:
 
 buildPythonPackage rec {
@@ -16,17 +17,11 @@ buildPythonPackage rec {
     hash = "sha256-Dkg9kokBDnR6Ml3EMXG8w51lYt0d1HGejMfnyWyZ/OY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    pyyaml
-  ];
+  propagatedBuildInputs = [ pyyaml ];
 
-  nativeCheckInputs = [
-    unidecode
-  ];
+  nativeCheckInputs = [ unidecode ];
 
   pythonImportsCheck = [ "pyaml" ];
 
diff --git a/pkgs/development/python-modules/pyannotate/default.nix b/pkgs/development/python-modules/pyannotate/default.nix
index abf751e88afd0..ced51705b96a6 100644
--- a/pkgs/development/python-modules/pyannotate/default.nix
+++ b/pkgs/development/python-modules/pyannotate/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mypy-extensions
-, pytestCheckHook
-, pythonOlder
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mypy-extensions,
+  pytestCheckHook,
+  pythonOlder,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     mypy-extensions
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [
     "pyannotate_runtime"
diff --git a/pkgs/development/python-modules/pyannote-audio/default.nix b/pkgs/development/python-modules/pyannote-audio/default.nix
index 1a9403493eac5..9f4510785b0f8 100644
--- a/pkgs/development/python-modules/pyannote-audio/default.nix
+++ b/pkgs/development/python-modules/pyannote-audio/default.nix
@@ -1,41 +1,42 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, asteroid-filterbanks
-, einops
-, huggingface-hub
-, pytorch-lightning
-, omegaconf
-, pyannote-core
-, pyannote-database
-, pyannote-metrics
-, pyannote-pipeline
-, pytorch-metric-learning
-, rich
-, semver
-, soundfile
-, speechbrain
-, tensorboardx
-, torch
-, torch-audiomentations
-, torchaudio
-, torchmetrics
-, numpy
-, pyscaffold
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  asteroid-filterbanks,
+  einops,
+  huggingface-hub,
+  pytorch-lightning,
+  omegaconf,
+  pyannote-core,
+  pyannote-database,
+  pyannote-metrics,
+  pyannote-pipeline,
+  pytorch-metric-learning,
+  rich,
+  semver,
+  soundfile,
+  speechbrain,
+  tensorboardx,
+  torch,
+  torch-audiomentations,
+  torchaudio,
+  torchmetrics,
+  numpy,
+  pyscaffold,
 }:
 
 buildPythonPackage rec {
   pname = "pyannote-audio";
-  version = "3.1.1";
+  version = "3.3.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pyannote";
     repo = "pyannote-audio";
-    rev = version;
-    hash = "sha256-BxmEJE6v+QkEaAJ2oB2LwDQIoRajv6F9SRc8lP9iRLM=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-AFBT6vpOgEIqEn778TWJ04gai7UOyfOeZdmtliYJLvs=";
     fetchSubmodules = true;
   };
 
diff --git a/pkgs/development/python-modules/pyannote-core/default.nix b/pkgs/development/python-modules/pyannote-core/default.nix
index 453bb0c4d60de..85c01bcee578f 100644
--- a/pkgs/development/python-modules/pyannote-core/default.nix
+++ b/pkgs/development/python-modules/pyannote-core/default.nix
@@ -1,12 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, sortedcontainers
-, numpy
-, scipy
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  pandas,
+  pytestCheckHook,
+  scipy,
+  setuptools,
+  sortedcontainers,
+  typing-extensions,
+  versioneer,
 }:
 
 buildPythonPackage rec {
@@ -17,20 +20,30 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "pyannote";
     repo = "pyannote-core";
-    rev = version;
+    rev = "refs/tags/${version}";
     hash = "sha256-XQVEMy60LkfFr2TKXTeg6cGHRx5BUZ5qDgzIdKy/19Y=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    # Remove vendorized versioneer.py
+    rm versioneer.py
+  '';
+
+  build-system = [
+    setuptools
+    versioneer
+  ];
+
+  dependencies = [
     sortedcontainers
     numpy
     scipy
     typing-extensions
   ];
 
-  nativeBuildInputs = [
-    setuptools
-    wheel
+  nativeCheckInputs = [
+    pandas
+    pytestCheckHook
   ];
 
   pythonImportsCheck = [ "pyannote.core" ];
@@ -38,6 +51,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Advanced data structures for handling temporal segments with attached labels";
     homepage = "https://github.com/pyannote/pyannote-core";
+    changelog = "https://github.com/pyannote/pyannote-core/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/pyannote-database/default.nix b/pkgs/development/python-modules/pyannote-database/default.nix
index e3e3ac56ca703..8cb35b26061da 100644
--- a/pkgs/development/python-modules/pyannote-database/default.nix
+++ b/pkgs/development/python-modules/pyannote-database/default.nix
@@ -1,12 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, pyannote-core
-, pyyaml
-, pandas
-, typer
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pandas,
+  pyannote-core,
+  pythonOlder,
+  pyyaml,
+  setuptools,
+  typer,
+  versioneer,
 }:
 
 buildPythonPackage rec {
@@ -14,32 +16,39 @@ buildPythonPackage rec {
   version = "5.0.1";
   pyproject = true;
 
+  disabled = pythonOlder "3.9";
+
   src = fetchFromGitHub {
     owner = "pyannote";
     repo = "pyannote-database";
-    rev = version;
+    rev = "refs/tags/${version}";
     hash = "sha256-A7Xr24O8OvVAlURrR+SDCh8Uv9Yz3AUJSFDyDShVVjA=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    # Remove vendorized versioneer.py
+    rm versioneer.py
+  '';
+
+  build-system = [
+    setuptools
+    versioneer
+  ];
+
+  dependencies = [
     pyannote-core
     pyyaml
     pandas
     typer
   ];
 
-  nativeBuildInputs = [
-    setuptools
-    wheel
-  ];
-
   pythonImportsCheck = [ "pyannote.database" ];
 
   meta = with lib; {
     description = "Reproducible experimental protocols for multimedia (audio, video, text) database";
-    mainProgram = "pyannote-database";
     homepage = "https://github.com/pyannote/pyannote-database";
     license = licenses.mit;
     maintainers = with maintainers; [ matthewcroughan ];
+    mainProgram = "pyannote-database";
   };
 }
diff --git a/pkgs/development/python-modules/pyannote-metrics/default.nix b/pkgs/development/python-modules/pyannote-metrics/default.nix
index 1ab1a9668160e..314cc5110cf15 100644
--- a/pkgs/development/python-modules/pyannote-metrics/default.nix
+++ b/pkgs/development/python-modules/pyannote-metrics/default.nix
@@ -1,18 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, pyannote-core
-, pyannote-database
-, pandas
-, scipy
-, scikit-learn
-, docopt
-, tabulate
-, matplotlib
-, sympy
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  docopt,
+  fetchFromGitHub,
+  matplotlib,
+  numpy,
+  pandas,
+  pyannote-core,
+  pyannote-database,
+  pythonOlder,
+  scikit-learn,
+  scipy,
+  setuptools,
+  sympy,
+  tabulate,
+  versioneer,
 }:
 
 buildPythonPackage rec {
@@ -20,14 +22,26 @@ buildPythonPackage rec {
   version = "3.2.1";
   pyproject = true;
 
+  disabled = pythonOlder "3.8";
+
   src = fetchFromGitHub {
     owner = "pyannote";
     repo = "pyannote-metrics";
-    rev = version;
+    rev = "refs/tags/${version}";
     hash = "sha256-V4qyaCaFsoikfFILm2sccf6m7lqJSDTdLxS1sr/LXAY=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    # Remove vendorized versioneer.py
+    rm versioneer.py
+  '';
+
+  build-system = [
+    setuptools
+    versioneer
+  ];
+
+  dependencies = [
     pyannote-core
     pyannote-database
     pandas
@@ -40,18 +54,14 @@ buildPythonPackage rec {
     numpy
   ];
 
-  nativeBuildInputs = [
-    setuptools
-    wheel
-  ];
-
   pythonImportsCheck = [ "pyannote.metrics" ];
 
   meta = with lib; {
-    description = "A toolkit for reproducible evaluation, diagnostic, and error analysis of speaker diarization systems";
-    mainProgram = "pyannote-metrics";
+    description = "Toolkit for reproducible evaluation, diagnostic, and error analysis of speaker diarization systems";
     homepage = "https://github.com/pyannote/pyannote-metrics";
+    changelog = "http://pyannote.github.io/pyannote-metrics/changelog.html";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "pyannote-metrics";
   };
 }
diff --git a/pkgs/development/python-modules/pyannote-pipeline/default.nix b/pkgs/development/python-modules/pyannote-pipeline/default.nix
index 00b7eab6344a1..0b85c50474d58 100644
--- a/pkgs/development/python-modules/pyannote-pipeline/default.nix
+++ b/pkgs/development/python-modules/pyannote-pipeline/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, pyannote-core
-, pyannote-database
-, pyyaml
-, optuna
-, tqdm
-, docopt
-, filelock
-, scikit-learn
+{
+  lib,
+  buildPythonPackage,
+  docopt,
+  fetchFromGitHub,
+  filelock,
+  optuna,
+  pyannote-core,
+  pyannote-database,
+  pyyaml,
+  scikit-learn,
+  setuptools,
+  tqdm,
+  versioneer,
 }:
 
 buildPythonPackage rec {
@@ -21,11 +22,21 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "pyannote";
     repo = "pyannote-pipeline";
-    rev = version;
+    rev = "refs/tags/${version}";
     hash = "sha256-0wSgy6kbKi9Wa5dimOz34IV5/8fSwaHDMUpaBW7tm2Y=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    # Remove vendorized versioeer.py
+    rm versioneer.py
+  '';
+
+  build-system = [
+    setuptools
+    versioneer
+  ];
+
+  dependencies = [
     pyannote-core
     pyannote-database
     pyyaml
@@ -36,18 +47,13 @@ buildPythonPackage rec {
     scikit-learn
   ];
 
-  nativeBuildInputs = [
-    setuptools
-    wheel
-  ];
-
   pythonImportsCheck = [ "pyannote.pipeline" ];
 
   meta = with lib; {
     description = "Tunable pipelines";
-    mainProgram = "pyannote-pipeline";
     homepage = "https://github.com/pyannote/pyannote-pipeline";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
+    mainProgram = "pyannote-pipeline";
   };
 }
diff --git a/pkgs/development/python-modules/pyarlo/default.nix b/pkgs/development/python-modules/pyarlo/default.nix
index 199dc61015a70..a9b9c8c040db6 100644
--- a/pkgs/development/python-modules/pyarlo/default.nix
+++ b/pkgs/development/python-modules/pyarlo/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pytestCheckHook
-, requests
-, requests-mock
-, sseclient-py
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pytestCheckHook,
+  requests,
+  requests-mock,
+  sseclient-py,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyarr/default.nix b/pkgs/development/python-modules/pyarr/default.nix
index ef2e3a5b0a096..13d97943cb5c1 100644
--- a/pkgs/development/python-modules/pyarr/default.nix
+++ b/pkgs/development/python-modules/pyarr/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, overrides
-, poetry-core
-, pythonOlder
-, requests
-, pytestCheckHook
-, types-requests
-, responses
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  overrides,
+  poetry-core,
+  pythonOlder,
+  requests,
+  pytestCheckHook,
+  types-requests,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
       --replace "poetry.masonry.api" "poetry.core.masonry.api"
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     overrides
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     responses
   ];
 
-  pythonImportsCheck = [
-    "pyarr"
-  ];
+  pythonImportsCheck = [ "pyarr" ];
 
   disabledTests = [
     # Tests require a running sonarr instance
diff --git a/pkgs/development/python-modules/pyarrow-hotfix/default.nix b/pkgs/development/python-modules/pyarrow-hotfix/default.nix
index 38a8dc4b6ea85..ec0cf110311bd 100644
--- a/pkgs/development/python-modules/pyarrow-hotfix/default.nix
+++ b/pkgs/development/python-modules/pyarrow-hotfix/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-LlSbxIxvouzvlP6PB8J8fJaxWoRbxz4wTs7Gb5LbM4A=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  pythonImportsCheck = [
-    "pyarrow_hotfix"
-  ];
+  pythonImportsCheck = [ "pyarrow_hotfix" ];
 
   meta = with lib; {
     description = "Hotfix for the PyArrow security vulnerability CVE-2023-47248";
diff --git a/pkgs/development/python-modules/pyarrow/default.nix b/pkgs/development/python-modules/pyarrow/default.nix
index d88cd0abeba92..d275e44f649dc 100644
--- a/pkgs/development/python-modules/pyarrow/default.nix
+++ b/pkgs/development/python-modules/pyarrow/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, python
-, pythonAtLeast
-, pythonOlder
-, arrow-cpp
-, cffi
-, cloudpickle
-, cmake
-, cython_0
-, fsspec
-, hypothesis
-, numpy
-, pandas
-, pytestCheckHook
-, pytest-lazy-fixture
-, pkg-config
-, setuptools
-, setuptools-scm
-, oldest-supported-numpy
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  python,
+  pythonAtLeast,
+  pythonOlder,
+  arrow-cpp,
+  cffi,
+  cloudpickle,
+  cmake,
+  cython_0,
+  fsspec,
+  hypothesis,
+  numpy,
+  pandas,
+  pytestCheckHook,
+  pytest-lazy-fixture,
+  pkg-config,
+  setuptools,
+  setuptools-scm,
+  oldest-supported-numpy,
 }:
 
 let
@@ -73,9 +74,7 @@ buildPythonPackage rec {
   PYARROW_WITH_GCS = zero_or_one arrow-cpp.enableGcs;
   PYARROW_BUNDLE_ARROW_CPP_HEADERS = zero_or_one false;
 
-  PYARROW_CMAKE_OPTIONS = [
-    "-DCMAKE_INSTALL_RPATH=${ARROW_HOME}/lib"
-  ];
+  PYARROW_CMAKE_OPTIONS = [ "-DCMAKE_INSTALL_RPATH=${ARROW_HOME}/lib" ];
 
   ARROW_HOME = arrow-cpp;
   PARQUET_HOME = arrow-cpp;
@@ -99,77 +98,86 @@ buildPythonPackage rec {
     find "$PWD/pyarrow/src/arrow" -type f -name '*.h' -exec cp {} "$pyarrow_include/arrow/python" \;
   '';
 
-  pytestFlagsArray = [
-    # A couple of tests are missing fixture imports, luckily pytest offers a
-    # clean solution.
-    "--fixtures pyarrow/tests/conftest.py"
-    # Deselect a single test because pyarrow prints a 2-line error message where
-    # only a single line is expected. The additional line of output comes from
-    # the glog library which is an optional dependency of arrow-cpp that is
-    # enabled in nixpkgs.
-    # Upstream Issue: https://issues.apache.org/jira/browse/ARROW-11393
-    "--deselect=pyarrow/tests/test_memory.py::test_env_var"
-    # these tests require access to s3 via the internet
-    "--deselect=pyarrow/tests/test_fs.py::test_resolve_s3_region"
-    "--deselect=pyarrow/tests/test_fs.py::test_s3_real_aws"
-    "--deselect=pyarrow/tests/test_fs.py::test_s3_real_aws_region_selection"
-    "--deselect=pyarrow/tests/test_fs.py::test_s3_options"
-    # Flaky test
-    "--deselect=pyarrow/tests/test_flight.py::test_roundtrip_errors"
-    "--deselect=pyarrow/tests/test_pandas.py::test_threaded_pandas_import"
-    # Flaky test, works locally but not on Hydra
-    "--deselect=pyarrow/tests/test_csv.py::TestThreadedCSVTableRead::test_cancellation"
-    # expects arrow-cpp headers to be bundled
-    "--deselect=pyarrow/tests/test_cpp_internals.py::test_pyarrow_include"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # Requires loopback networking
-    "--deselect=pyarrow/tests/test_ipc.py::test_socket_"
-    "--deselect=pyarrow/tests/test_flight.py::test_never_sends_data"
-    "--deselect=pyarrow/tests/test_flight.py::test_large_descriptor"
-    "--deselect=pyarrow/tests/test_flight.py::test_large_metadata_client"
-    "--deselect=pyarrow/tests/test_flight.py::test_none_action_side_effect"
-    # fails to compile
-    "--deselect=pyarrow/tests/test_cython.py::test_cython_api"
-  ] ++ lib.optionals (pythonAtLeast "3.11") [
-    # Repr output is printing number instead of enum name so these tests fail
-    "--deselect=pyarrow/tests/test_fs.py::test_get_file_info"
-  ] ++ lib.optionals stdenv.isLinux [
-    # this test requires local networking
-    "--deselect=pyarrow/tests/test_fs.py::test_filesystem_from_uri_gcs"
-  ];
+  pytestFlagsArray =
+    [
+      # A couple of tests are missing fixture imports, luckily pytest offers a
+      # clean solution.
+      "--fixtures pyarrow/tests/conftest.py"
+      # Deselect a single test because pyarrow prints a 2-line error message where
+      # only a single line is expected. The additional line of output comes from
+      # the glog library which is an optional dependency of arrow-cpp that is
+      # enabled in nixpkgs.
+      # Upstream Issue: https://issues.apache.org/jira/browse/ARROW-11393
+      "--deselect=pyarrow/tests/test_memory.py::test_env_var"
+      # these tests require access to s3 via the internet
+      "--deselect=pyarrow/tests/test_fs.py::test_resolve_s3_region"
+      "--deselect=pyarrow/tests/test_fs.py::test_s3_real_aws"
+      "--deselect=pyarrow/tests/test_fs.py::test_s3_real_aws_region_selection"
+      "--deselect=pyarrow/tests/test_fs.py::test_s3_options"
+      # Flaky test
+      "--deselect=pyarrow/tests/test_flight.py::test_roundtrip_errors"
+      "--deselect=pyarrow/tests/test_pandas.py::test_threaded_pandas_import"
+      # Flaky test, works locally but not on Hydra
+      "--deselect=pyarrow/tests/test_csv.py::TestThreadedCSVTableRead::test_cancellation"
+      # expects arrow-cpp headers to be bundled
+      "--deselect=pyarrow/tests/test_cpp_internals.py::test_pyarrow_include"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # Requires loopback networking
+      "--deselect=pyarrow/tests/test_ipc.py::test_socket_"
+      "--deselect=pyarrow/tests/test_flight.py::test_never_sends_data"
+      "--deselect=pyarrow/tests/test_flight.py::test_large_descriptor"
+      "--deselect=pyarrow/tests/test_flight.py::test_large_metadata_client"
+      "--deselect=pyarrow/tests/test_flight.py::test_none_action_side_effect"
+      # fails to compile
+      "--deselect=pyarrow/tests/test_cython.py::test_cython_api"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.11") [
+      # Repr output is printing number instead of enum name so these tests fail
+      "--deselect=pyarrow/tests/test_fs.py::test_get_file_info"
+    ]
+    ++ lib.optionals stdenv.isLinux [
+      # this test requires local networking
+      "--deselect=pyarrow/tests/test_fs.py::test_filesystem_from_uri_gcs"
+    ];
 
   disabledTests = [ "GcsFileSystem" ];
 
   dontUseSetuptoolsCheck = true;
 
-  preCheck = ''
-    shopt -s extglob
-    rm -r pyarrow/!(conftest.py|tests)
-    mv pyarrow/conftest.py pyarrow/tests/parent_conftest.py
-    substituteInPlace pyarrow/tests/conftest.py --replace ..conftest .parent_conftest
-  '' + lib.optionalString stdenv.isDarwin ''
-    # OSError: [Errno 24] Too many open files
-    ulimit -n 1024
-  '';
-
-  pythonImportsCheck = [
-    "pyarrow"
-  ] ++ map (module: "pyarrow.${module}") [
-    "compute"
-    "csv"
-    "dataset"
-    "feather"
-    "flight"
-    "fs"
-    "json"
-    "parquet"
-  ];
+  preCheck =
+    ''
+      shopt -s extglob
+      rm -r pyarrow/!(conftest.py|tests)
+      mv pyarrow/conftest.py pyarrow/tests/parent_conftest.py
+      substituteInPlace pyarrow/tests/conftest.py --replace ..conftest .parent_conftest
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      # OSError: [Errno 24] Too many open files
+      ulimit -n 1024
+    '';
+
+  pythonImportsCheck =
+    [ "pyarrow" ]
+    ++ map (module: "pyarrow.${module}") [
+      "compute"
+      "csv"
+      "dataset"
+      "feather"
+      "flight"
+      "fs"
+      "json"
+      "parquet"
+    ];
 
   meta = with lib; {
-    description = "A cross-language development platform for in-memory data";
+    description = "Cross-language development platform for in-memory data";
     homepage = "https://arrow.apache.org/";
     license = licenses.asl20;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ veprbl cpcloud ];
+    maintainers = with maintainers; [
+      veprbl
+      cpcloud
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pyasn/default.nix b/pkgs/development/python-modules/pyasn/default.nix
index 6da1ae55f5993..7e684c27ae1e6 100644
--- a/pkgs/development/python-modules/pyasn/default.nix
+++ b/pkgs/development/python-modules/pyasn/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, fetchFromGitHub, python, }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchFromGitHub,
+  python,
+}:
 
 buildPythonPackage rec {
   pname = "pyasn";
@@ -29,7 +35,10 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Offline IP address to Autonomous System Number lookup module";
     homepage = "https://github.com/hadiasghari/pyasn";
-    license = with licenses; [ bsdOriginal mit ];
+    license = with licenses; [
+      bsdOriginal
+      mit
+    ];
     maintainers = with maintainers; [ onny ];
   };
 }
diff --git a/pkgs/development/python-modules/pyasn1-modules/default.nix b/pkgs/development/python-modules/pyasn1-modules/default.nix
index 28516a203e4bf..7c7b4b3600704 100644
--- a/pkgs/development/python-modules/pyasn1-modules/default.nix
+++ b/pkgs/development/python-modules/pyasn1-modules/default.nix
@@ -1,42 +1,40 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyasn1
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pyasn1,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "pyasn1-modules";
-  version = "0.3.0";
-  format = "setuptools";
+  version = "0.4.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "pyasn1";
-    repo = pname;
+    repo = "pyasn1-modules";
     rev = "refs/tags/v${version}";
-    hash = "sha256-AAS1VuppCIxgswpLSHFAc6q9cyJBLpdDuU9D1KU13vg=";
+    hash = "sha256-UJycVfj08+3zjHPji5Qlh3yqeS30dEwu1pyrN1yo1Vc=";
   };
 
-  propagatedBuildInputs = [
-    pyasn1
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  dependencies = [ pyasn1 ];
 
-  pythonImportsCheck = [
-    "pyasn1_modules"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  meta = with lib; {
-    description = "A collection of ASN.1-based protocols modules";
-    homepage = "https://github.com/pyasn1/pyasn1-modules";
+  pythonImportsCheck = [ "pyasn1_modules" ];
+
+  meta = {
+    description = "Collection of ASN.1-based protocols modules";
+    homepage = "https://pyasn1.readthedocs.io";
     changelog = "https://github.com/pyasn1/pyasn1-modules/releases/tag/v${version}";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    license = lib.licenses.bsd2;
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pyasn1/default.nix b/pkgs/development/python-modules/pyasn1/default.nix
index c9e542a6e1ba8..bbceb87e16f47 100644
--- a/pkgs/development/python-modules/pyasn1/default.nix
+++ b/pkgs/development/python-modules/pyasn1/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-OjWrLEte+Y4X397IqwdARvvaduKBxacGzNgjKM/I9kw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "pyasn1"
-  ];
+  pythonImportsCheck = [ "pyasn1" ];
 
   meta = with lib; {
     description = "Generic ASN.1 library for Python";
diff --git a/pkgs/development/python-modules/pyasuswrt/default.nix b/pkgs/development/python-modules/pyasuswrt/default.nix
index 6ad2ab682e4b5..85449618a7e46 100644
--- a/pkgs/development/python-modules/pyasuswrt/default.nix
+++ b/pkgs/development/python-modules/pyasuswrt/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-kg475AWmc0i/W4dBg8jFmNyz3V67xjvzPkSlS09/9Oc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Tests require physical hardware
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyasuswrt"
-  ];
+  pythonImportsCheck = [ "pyasuswrt" ];
 
   meta = with lib; {
     description = "Library for communication with ASUSWRT routers via HTTP";
diff --git a/pkgs/development/python-modules/pyasyncore/default.nix b/pkgs/development/python-modules/pyasyncore/default.nix
index 1d02c8ae66405..22f1098ee4836 100644
--- a/pkgs/development/python-modules/pyasyncore/default.nix
+++ b/pkgs/development/python-modules/pyasyncore/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,9 @@ buildPythonPackage rec {
     hash = "sha256-ptqOsbkY7XYZT5sh6vctfxZ7BZPX2eLjo6XwZfcmtgk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "asyncore"
-  ];
+  pythonImportsCheck = [ "asyncore" ];
 
   doCheck = false; # no tests
 
diff --git a/pkgs/development/python-modules/pyatag/default.nix b/pkgs/development/python-modules/pyatag/default.nix
index 7e7a3ba593d35..a65888221d860 100644
--- a/pkgs/development/python-modules/pyatag/default.nix
+++ b/pkgs/development/python-modules/pyatag/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,13 +21,9 @@ buildPythonPackage rec {
     hash = "sha256-3h9mpopTbEULCx7rcEt/I/ZnUA0L/fJ7Y3L5h/6EuC4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # no tests implemented
   doCheck = false;
diff --git a/pkgs/development/python-modules/pyatem/default.nix b/pkgs/development/python-modules/pyatem/default.nix
index 1792d2699d802..e9bf94be5dc1d 100644
--- a/pkgs/development/python-modules/pyatem/default.nix
+++ b/pkgs/development/python-modules/pyatem/default.nix
@@ -1,36 +1,35 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromSourcehut
-
-# build-system
-, setuptools
-
-# dependencies
-, pyusb
-, tqdm
-, zeroconf
-
-# tests
-, pillow
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromSourcehut,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  pyusb,
+  tqdm,
+  zeroconf,
+
+  # tests
+  pillow,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "pyatem";
-  version = "0.10.0"; # check latest version in setup.py
+  version = "0.11.0"; # check latest version in setup.py
   pyproject = true;
 
   src = fetchFromSourcehut {
     owner = "~martijnbraam";
     repo = "pyatem";
     rev = version;
-    hash = "sha256-O+f1vVwfGJjLem25hsYE1Q1V4vzjrc0HxTBUCANCEwE=";
+    hash = "sha256-VBuOnUVB6n8ahVtunubgao9jHPu9ncX0dhDT0PdSFhU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pyusb
@@ -53,9 +52,7 @@ buildPythonPackage rec {
     popd
   '';
 
-  pythonImportsCheck = [
-    "pyatem"
-  ];
+  pythonImportsCheck = [ "pyatem" ];
 
   meta = with lib; {
     description = "Library for controlling Blackmagic Design ATEM video mixers";
diff --git a/pkgs/development/python-modules/pyathena/default.nix b/pkgs/development/python-modules/pyathena/default.nix
index 00c4fd2bd8740..8a81fa5b34f4c 100644
--- a/pkgs/development/python-modules/pyathena/default.nix
+++ b/pkgs/development/python-modules/pyathena/default.nix
@@ -1,33 +1,32 @@
-{ lib
-, boto3
-, botocore
-, buildPythonPackage
-, fastparquet
-, fetchPypi
-, fsspec
-, hatchling
-, pandas
-, pyarrow
-, pythonOlder
-, sqlalchemy
-, tenacity
+{
+  lib,
+  boto3,
+  botocore,
+  buildPythonPackage,
+  fastparquet,
+  fetchPypi,
+  fsspec,
+  hatchling,
+  pandas,
+  pyarrow,
+  pythonOlder,
+  sqlalchemy,
+  tenacity,
 }:
 
 buildPythonPackage rec {
   pname = "pyathena";
-  version = "3.7.0";
+  version = "3.8.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-PqIrXLsdi4jAE7K5WUFuTdRPs29GLUefNQlU6hzrLWI=";
+    hash = "sha256-mcYIYOgww4UM0CAcdtOD12pp53clPdDqN85bLRHGDag=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     boto3
@@ -37,18 +36,10 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    pandas = [
-      pandas
-    ];
-    sqlalchemy = [
-      sqlalchemy
-    ];
-    arrow = [
-      pyarrow
-    ];
-    fastparquet = [
-      fastparquet
-    ];
+    pandas = [ pandas ];
+    sqlalchemy = [ sqlalchemy ];
+    arrow = [ pyarrow ];
+    fastparquet = [ fastparquet ];
   };
 
   # Nearly all tests depend on a working AWS Athena instance,
@@ -56,9 +47,7 @@ buildPythonPackage rec {
   # https://github.com/laughingman7743/PyAthena/#testing
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyathena"
-  ];
+  pythonImportsCheck = [ "pyathena" ];
 
   meta = with lib; {
     description = "Python DB API 2.0 (PEP 249) client for Amazon Athena";
diff --git a/pkgs/development/python-modules/pyatmo/default.nix b/pkgs/development/python-modules/pyatmo/default.nix
index 7b40a3880e21f..77a4b8249d074 100644
--- a/pkgs/development/python-modules/pyatmo/default.nix
+++ b/pkgs/development/python-modules/pyatmo/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, oauthlib
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-oauthlib
-, requests-mock
-, setuptools-scm
-, time-machine
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  oauthlib,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-oauthlib,
+  requests-mock,
+  setuptools-scm,
+  time-machine,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,9 @@ buildPythonPackage rec {
       --replace "requests~=2.24" "requests"
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  pythonRelaxDeps = [ "requests-oauthlib" ];
+
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -53,9 +54,7 @@ buildPythonPackage rec {
     time-machine
   ];
 
-  pythonImportsCheck = [
-    "pyatmo"
-  ];
+  pythonImportsCheck = [ "pyatmo" ];
 
   meta = with lib; {
     description = "Simple API to access Netatmo weather station data";
diff --git a/pkgs/development/python-modules/pyatome/default.nix b/pkgs/development/python-modules/pyatome/default.nix
index 2022260d48170..52717116afb4c 100644
--- a/pkgs/development/python-modules/pyatome/default.nix
+++ b/pkgs/development/python-modules/pyatome/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
-, simplejson
-, fake-useragent
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  simplejson,
+  fake-useragent,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
   # No tests in PyPI tarballs
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyatome"
-  ];
+  pythonImportsCheck = [ "pyatome" ];
 
   meta = with lib; {
     description = "Python module to get energy consumption data from Atome";
diff --git a/pkgs/development/python-modules/pyatspi/default.nix b/pkgs/development/python-modules/pyatspi/default.nix
index 0fbd5b97f680d..df80e01731eef 100644
--- a/pkgs/development/python-modules/pyatspi/default.nix
+++ b/pkgs/development/python-modules/pyatspi/default.nix
@@ -1,4 +1,14 @@
-{ lib, fetchurl, pkg-config, buildPythonPackage, isPy3k, at-spi2-core, pygobject3, gnome, python }:
+{
+  lib,
+  fetchurl,
+  pkg-config,
+  buildPythonPackage,
+  isPy3k,
+  at-spi2-core,
+  pygobject3,
+  gnome,
+  python,
+}:
 
 buildPythonPackage rec {
   pname = "pyatspi";
@@ -17,9 +27,7 @@ buildPythonPackage rec {
     pygobject3
   ];
 
-  configureFlags = [
-    "PYTHON=${python.pythonOnBuildForHost.interpreter}"
-  ];
+  configureFlags = [ "PYTHON=${python.pythonOnBuildForHost.interpreter}" ];
 
   postPatch = ''
     # useless python existence check for us
diff --git a/pkgs/development/python-modules/pyatv/default.nix b/pkgs/development/python-modules/pyatv/default.nix
index a422e45057b8f..10667bc2f4f23 100644
--- a/pkgs/development/python-modules/pyatv/default.nix
+++ b/pkgs/development/python-modules/pyatv/default.nix
@@ -1,31 +1,31 @@
-{ lib
-, buildPythonPackage
-, aiohttp
-, async-timeout
-, chacha20poly1305-reuseable
-, cryptography
-, deepdiff
-, fetchFromGitHub
-, ifaddr
-, mediafile
-, miniaudio
-, protobuf
-, pydantic
-, pyfakefs
-, pytest-aiohttp
-, pytest-asyncio
-, pytest-httpserver
-, pytest-timeout
-, pytestCheckHook
-, pythonRelaxDepsHook
-, pythonAtLeast
-, pythonOlder
-, requests
-, setuptools
-, srptools
-, stdenv
-, tabulate
-, zeroconf
+{
+  lib,
+  buildPythonPackage,
+  aiohttp,
+  async-timeout,
+  chacha20poly1305-reuseable,
+  cryptography,
+  deepdiff,
+  fetchFromGitHub,
+  ifaddr,
+  mediafile,
+  miniaudio,
+  protobuf,
+  pydantic,
+  pyfakefs,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytest-httpserver,
+  pytest-timeout,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  requests,
+  setuptools,
+  srptools,
+  stdenv,
+  tabulate,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
@@ -63,7 +63,6 @@ buildPythonPackage rec {
   ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -93,16 +92,19 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = [
-    # https://github.com/postlund/pyatv/issues/2307
-    "test_zeroconf_service_published"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    # https://github.com/postlund/pyatv/issues/2365
-    "test_simple_dispatch"
-  ] ++ lib.optionals (stdenv.isDarwin) [
-    # tests/protocols/raop/test_raop_functional.py::test_stream_retransmission[raop_properties2-2-True] - assert False
-    "test_stream_retransmission"
-  ];
+  disabledTests =
+    [
+      # https://github.com/postlund/pyatv/issues/2307
+      "test_zeroconf_service_published"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # https://github.com/postlund/pyatv/issues/2365
+      "test_simple_dispatch"
+    ]
+    ++ lib.optionals (stdenv.isDarwin) [
+      # tests/protocols/raop/test_raop_functional.py::test_stream_retransmission[raop_properties2-2-True] - assert False
+      "test_stream_retransmission"
+    ];
 
   disabledTestPaths = [
     # Test doesn't work in the sandbox
@@ -112,9 +114,7 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [
-    "pyatv"
-  ];
+  pythonImportsCheck = [ "pyatv" ];
 
   meta = with lib; {
     description = "Python client library for the Apple TV";
diff --git a/pkgs/development/python-modules/pyaudio/default.nix b/pkgs/development/python-modules/pyaudio/default.nix
index d9d4aa7b70e73..d6d2749d6034f 100644
--- a/pkgs/development/python-modules/pyaudio/default.nix
+++ b/pkgs/development/python-modules/pyaudio/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPyPy
-, pkgs
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  pkgs,
 }:
 
 buildPythonPackage rec {
@@ -23,5 +24,4 @@ buildPythonPackage rec {
     homepage = "https://people.csail.mit.edu/hubert/pyaudio/";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/pyaussiebb/default.nix b/pkgs/development/python-modules/pyaussiebb/default.nix
index 4443dfee6252c..f33fe89fc2ea5 100644
--- a/pkgs/development/python-modules/pyaussiebb/default.nix
+++ b/pkgs/development/python-modules/pyaussiebb/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, loguru
-, pydantic
-, poetry-core
-, pythonOlder
-, requests
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  loguru,
+  pydantic,
+  poetry-core,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-XNf9vYMlTLqhYIVNw9GjPcXpOm5EYCcC4aGukR8g3zc=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -42,9 +41,7 @@ buildPythonPackage rec {
   # Tests require credentials and requests-testing
   doCheck = false;
 
-  pythonImportsCheck = [
-    "aussiebb"
-  ];
+  pythonImportsCheck = [ "aussiebb" ];
 
   meta = with lib; {
     description = "Module for interacting with the Aussie Broadband APIs";
diff --git a/pkgs/development/python-modules/pyautogui/default.nix b/pkgs/development/python-modules/pyautogui/default.nix
index 04cd0513dd2b3..a76479f797258 100644
--- a/pkgs/development/python-modules/pyautogui/default.nix
+++ b/pkgs/development/python-modules/pyautogui/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mouseinfo
-, pygetwindow
-, pymsgbox
-, pyperclip
-, pyscreeze
-, pytweening
-, tkinter
-, xlib
-, xvfb-run
-, scrot
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mouseinfo,
+  pygetwindow,
+  pymsgbox,
+  pyperclip,
+  pyscreeze,
+  pytweening,
+  tkinter,
+  xlib,
+  xvfb-run,
+  scrot,
 }:
 buildPythonPackage rec {
   pname = "pyautogui";
@@ -24,7 +25,10 @@ buildPythonPackage rec {
     hash = "sha256-R9tcTqxUaqw63FLOGFRaO/Oz6kD7V6MPHdQ8A29NdXw=";
   };
 
-  nativeCheckInputs = [ xvfb-run scrot ];
+  nativeCheckInputs = [
+    xvfb-run
+    scrot
+  ];
   checkPhase = ''
     xvfb-run python -c 'import pyautogui'
     # The tests depend on some specific things that xvfb cant provide, like keyboard and mouse
@@ -48,7 +52,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "PyAutoGUI lets Python control the mouse and keyboard, and other GUI automation tasks.";
+    description = "PyAutoGUI lets Python control the mouse and keyboard, and other GUI automation tasks";
     homepage = "https://github.com/asweigart/pyautogui";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lucasew ];
diff --git a/pkgs/development/python-modules/pyavm/default.nix b/pkgs/development/python-modules/pyavm/default.nix
index 45cf827a82a8a..1d42aa9989f9a 100644
--- a/pkgs/development/python-modules/pyavm/default.nix
+++ b/pkgs/development/python-modules/pyavm/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-
-# build-system
-, setuptools
-, setuptools-scm
-
-# tests
-, astropy
-, numpy
-, pillow
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+
+  # build-system
+  setuptools,
+  setuptools-scm,
+
+  # tests
+  astropy,
+  numpy,
+  pillow,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pyavm"
-  ];
+  pythonImportsCheck = [ "pyavm" ];
 
   meta = with lib; {
     description = "Simple pure-python AVM meta-data handling";
diff --git a/pkgs/development/python-modules/pyaxmlparser/default.nix b/pkgs/development/python-modules/pyaxmlparser/default.nix
index 818ea47fc497a..cb2122eaaba32 100644
--- a/pkgs/development/python-modules/pyaxmlparser/default.nix
+++ b/pkgs/development/python-modules/pyaxmlparser/default.nix
@@ -1,4 +1,12 @@
-{ buildPythonPackage, lib, lxml, click, fetchFromGitHub, pytestCheckHook, asn1crypto }:
+{
+  buildPythonPackage,
+  lib,
+  lxml,
+  click,
+  fetchFromGitHub,
+  pytestCheckHook,
+  asn1crypto,
+}:
 
 buildPythonPackage rec {
   version = "0.3.27";
@@ -12,7 +20,11 @@ buildPythonPackage rec {
     hash = "sha256-NtAsO/I1jDEv676yhAgLguQnB/kHdAqPoLt2QFWbvmw=";
   };
 
-  propagatedBuildInputs = [ asn1crypto click lxml ];
+  propagatedBuildInputs = [
+    asn1crypto
+    click
+    lxml
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
@@ -21,7 +33,10 @@ buildPythonPackage rec {
     mainProgram = "apkinfo";
     homepage = "https://github.com/appknox/pyaxmlparser";
     # Files from Androguard are licensed ASL 2.0
-    license = with licenses; [ mit asl20 ];
+    license = with licenses; [
+      mit
+      asl20
+    ];
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pybalboa/default.nix b/pkgs/development/python-modules/pybalboa/default.nix
index 38435c6d22b32..5cfa4813951e9 100644
--- a/pkgs/development/python-modules/pybalboa/default.nix
+++ b/pkgs/development/python-modules/pybalboa/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-7vjdRGnEnMf32pZwoKRxX16hxkyf0CXlncpbBJMQtfI=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pybalboa"
-  ];
+  pythonImportsCheck = [ "pybalboa" ];
 
   meta = with lib; {
     description = " Python module to interface with a Balboa Spa";
diff --git a/pkgs/development/python-modules/pybars3/default.nix b/pkgs/development/python-modules/pybars3/default.nix
index ad7294fd63582..8bd031801137e 100644
--- a/pkgs/development/python-modules/pybars3/default.nix
+++ b/pkgs/development/python-modules/pybars3/default.nix
@@ -1,8 +1,9 @@
-{ python3
-, fetchPypi
-, lib
-, pymeta3
-, buildPythonPackage
+{
+  python3,
+  fetchPypi,
+  lib,
+  pymeta3,
+  buildPythonPackage,
 }:
 buildPythonPackage rec {
   pname = "pybars3";
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-ashH6QXlO5xbk2rxEskQR14nv3Z/efRSjBb5rx7A4lI=";
   };
 
-  propagatedBuildInputs = [
-    pymeta3
-  ];
+  propagatedBuildInputs = [ pymeta3 ];
 
   checkPhase = ''
     runHook preCheck
@@ -24,15 +23,16 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "pybars"
-  ];
+  pythonImportsCheck = [ "pybars" ];
 
   meta = with lib; {
     description = "Handlebars.js template support for Python 3 and 2";
     homepage = "https://github.com/wbond/pybars3";
     changelog = "https://github.com/wbond/pybars3/releases/tag/${version}";
     license = licenses.lgpl3Only;
-    maintainers = with maintainers; [ jfly matusf ];
+    maintainers = with maintainers; [
+      jfly
+      matusf
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pybase64/default.nix b/pkgs/development/python-modules/pybase64/default.nix
index fdc65a0abe72b..50b7bcbd26441 100644
--- a/pkgs/development/python-modules/pybase64/default.nix
+++ b/pkgs/development/python-modules/pybase64/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-Mu+ZPFWCHayavXZ+5GVqUBOy7YvxElyruufoTSuZEDg=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pybase64"
-  ];
+  pythonImportsCheck = [ "pybase64" ];
 
   meta = with lib; {
     description = "Fast Base64 encoding/decoding";
diff --git a/pkgs/development/python-modules/pybids/default.nix b/pkgs/development/python-modules/pybids/default.nix
index d702b4d509d37..86c52795c3ab4 100644
--- a/pkgs/development/python-modules/pybids/default.nix
+++ b/pkgs/development/python-modules/pybids/default.nix
@@ -1,29 +1,29 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
-, setuptools
-, formulaic
-, click
-, num2words
-, numpy
-, scipy
-, pandas
-, nibabel
-, bids-validator
-, sqlalchemy
-, pytestCheckHook
-, versioneer
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  formulaic,
+  click,
+  num2words,
+  numpy,
+  scipy,
+  pandas,
+  nibabel,
+  bids-validator,
+  sqlalchemy,
+  pytestCheckHook,
+  versioneer,
 }:
 
 buildPythonPackage rec {
   pname = "pybids";
-  version = "0.16.4";
+  version = "0.16.5";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-pahl8wi6Sf8AuVqkvi7H90ViHr+9utb14ZVmKK3rFm4=";
+    hash = "sha256-5MAp5CYlOh1WxsXOE/LHVNm/K4VGFaLKWaaKYwKjQIM=";
   };
 
   pythonRelaxDeps = [
@@ -32,7 +32,6 @@ buildPythonPackage rec {
   ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
     versioneer
   ] ++ versioneer.optional-dependencies.toml;
@@ -49,28 +48,28 @@ buildPythonPackage rec {
     sqlalchemy
   ];
 
-  pythonImportsCheck = [
-    "bids"
-  ];
+  pythonImportsCheck = [ "bids" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
-    # looks for missing data:
+    # Test looks for missing data
     "test_config_filename"
-    # regression associated with formulaic >= 0.6.0
+    # Regression associated with formulaic >= 0.6.0
     # (see https://github.com/bids-standard/pybids/issues/1000)
     "test_split"
+    # AssertionError, TypeError
+    "test_run_variable_collection_bad_length_to_df_all_dense_var"
+    "test_extension_initial_dot"
+    "test_to_df"
   ];
 
   meta = with lib; {
     description = "Python tools for querying and manipulating BIDS datasets";
-    mainProgram = "pybids";
     homepage = "https://github.com/bids-standard/pybids";
     changelog = "https://github.com/bids-standard/pybids/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
+    mainProgram = "pybids";
   };
 }
diff --git a/pkgs/development/python-modules/pybigwig/default.nix b/pkgs/development/python-modules/pybigwig/default.nix
index efbc350530e57..c53941e8b5dfe 100644
--- a/pkgs/development/python-modules/pybigwig/default.nix
+++ b/pkgs/development/python-modules/pybigwig/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, pytestCheckHook
-, pythonOlder
-, zlib
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  zlib,
 }:
 
 buildPythonPackage rec {
@@ -21,22 +22,16 @@ buildPythonPackage rec {
     hash = "sha256-wJC5eXIC9PNlbCtmq671WuoIJVkh3aX7K6WArJWjyFg=";
   };
 
-  buildInputs = [
-    zlib
-  ];
+  buildInputs = [ zlib ];
 
   nativeCheckInputs = [
     numpy
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pyBigWig"
-  ];
+  pythonImportsCheck = [ "pyBigWig" ];
 
-  pytestFlagsArray = [
-    "pyBigWigTest/test*.py"
-  ];
+  pytestFlagsArray = [ "pyBigWigTest/test*.py" ];
 
   disabledTests = [
     # Test file is donwloaded from GitHub
diff --git a/pkgs/development/python-modules/pybind11/default.nix b/pkgs/development/python-modules/pybind11/default.nix
index 1a06de633b689..b0b7661607127 100644
--- a/pkgs/development/python-modules/pybind11/default.nix
+++ b/pkgs/development/python-modules/pybind11/default.nix
@@ -1,20 +1,23 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, cmake
-, ninja
-, setuptools
-, boost
-, eigen
-, python
-, catch
-, numpy
-, pytestCheckHook
-, libxcrypt
-, makeSetupHook
-}: let
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  fetchpatch2,
+  cmake,
+  ninja,
+  setuptools,
+  boost,
+  eigen,
+  python,
+  catch,
+  numpy,
+  pytestCheckHook,
+  libxcrypt,
+  makeSetupHook,
+}:
+let
   setupHook = makeSetupHook {
     name = "pybind11-setup-hook";
     substitutions = {
@@ -30,14 +33,23 @@
   # but clang has a check hard-coded requiring 10.13 because that’s when Apple first shipped a
   # support for C++17 aligned allocations on macOS.
   # Tell clang we’re targeting 10.13 on x86_64-darwin while continuing to use the default SDK.
-  stdenv' = if stdenv.isDarwin && stdenv.isx86_64
-    then python.stdenv.override (oldStdenv: {
-      buildPlatform = oldStdenv.buildPlatform // { darwinMinVersion = "10.13"; };
-      targetPlatform = oldStdenv.targetPlatform // { darwinMinVersion = "10.13"; };
-      hostPlatform = oldStdenv.hostPlatform // { darwinMinVersion = "10.13"; };
-    })
-    else python.stdenv;
-in buildPythonPackage rec {
+  stdenv' =
+    if stdenv.isDarwin && stdenv.isx86_64 then
+      python.stdenv.override (oldStdenv: {
+        buildPlatform = oldStdenv.buildPlatform // {
+          darwinMinVersion = "10.13";
+        };
+        targetPlatform = oldStdenv.targetPlatform // {
+          darwinMinVersion = "10.13";
+        };
+        hostPlatform = oldStdenv.hostPlatform // {
+          darwinMinVersion = "10.13";
+        };
+      })
+    else
+      python.stdenv;
+in
+buildPythonPackage rec {
   pname = "pybind11";
   version = "2.12.0";
   pyproject = true;
@@ -49,6 +61,14 @@ in buildPythonPackage rec {
     hash = "sha256-DVkI5NxM5uME9m3PFYVpJOOa2j+yjL6AJn76fCTv2nE=";
   };
 
+  patches = [
+    (fetchpatch2 {
+      # https://github.com/pybind/pybind11/pull/5127
+      url = "https://github.com/pybind/pybind11/commit/540bef2d2c9fb54fa7c1474ee1af959ce90f2b32.patch";
+      hash = "sha256-0ZWlH/5kQ3An/tu6ulOXO2k32asATrr1mlI4nGjIqaI=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace-fail "timeout=300" ""
@@ -77,9 +97,7 @@ in buildPythonPackage rec {
   cmakeFlags = [
     "-DBoost_INCLUDE_DIR=${lib.getDev boost}/include"
     "-DEIGEN3_INCLUDE_DIR=${lib.getDev eigen}/include/eigen3"
-  ] ++ lib.optionals (python.isPy3k && !stdenv.cc.isClang) [
-    "-DPYBIND11_CXX_STANDARD=-std=c++17"
-  ];
+  ] ++ lib.optionals (python.isPy3k && !stdenv.cc.isClang) [ "-DPYBIND11_CXX_STANDARD=-std=c++17" ];
 
   postBuild = ''
     # build tests
@@ -130,6 +148,9 @@ in buildPythonPackage rec {
       bindings of existing C++ code.
     '';
     license = licenses.bsd3;
-    maintainers = with maintainers; [ yuriaisaka dotlambda ];
+    maintainers = with maintainers; [
+      yuriaisaka
+      dotlambda
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pybindgen/default.nix b/pkgs/development/python-modules/pybindgen/default.nix
index a7a5de92e9e81..63321d5c53c06 100644
--- a/pkgs/development/python-modules/pybindgen/default.nix
+++ b/pkgs/development/python-modules/pybindgen/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-, pygccxml
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  pygccxml,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-jH8iORpJqEUY9aKtBuOlseg50Q402nYxUZyKKPy6N2Q=";
   };
 
-  buildInputs = [
-    setuptools-scm
-  ];
+  buildInputs = [ setuptools-scm ];
 
-  nativeCheckInputs = [
-    pygccxml
-  ];
+  nativeCheckInputs = [ pygccxml ];
 
-  pythonImportsCheck = [
-    "pybindgen"
-  ];
+  pythonImportsCheck = [ "pybindgen" ];
 
   # Fails to import module 'cxxfilt' from pygccxml on Py3k
   doCheck = (!isPy3k);
diff --git a/pkgs/development/python-modules/pyblackbird/default.nix b/pkgs/development/python-modules/pyblackbird/default.nix
index e710ccb214800..9219d9ede21a6 100644
--- a/pkgs/development/python-modules/pyblackbird/default.nix
+++ b/pkgs/development/python-modules/pyblackbird/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyserial
-, pyserial-asyncio
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyserial,
+  pyserial-asyncio,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Test setup try to create a serial port
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyblackbird"
-  ];
+  pythonImportsCheck = [ "pyblackbird" ];
 
   meta = with lib; {
     description = "Python implementation for Monoprice Blackbird units";
diff --git a/pkgs/development/python-modules/pybloom-live/default.nix b/pkgs/development/python-modules/pybloom-live/default.nix
index 0499350a7c827..5000e4b72c635 100644
--- a/pkgs/development/python-modules/pybloom-live/default.nix
+++ b/pkgs/development/python-modules/pybloom-live/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, bitarray
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
-, xxhash
+{
+  lib,
+  bitarray,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wheel,
+  xxhash,
 }:
 
 buildPythonPackage rec {
@@ -32,16 +33,12 @@ buildPythonPackage rec {
     xxhash
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pybloom_live"
-  ];
+  pythonImportsCheck = [ "pybloom_live" ];
 
   meta = with lib; {
-    description = "A Probabilistic data structure";
+    description = "Probabilistic data structure";
     homepage = "https://github.com/joseph-fox/python-bloomfilter";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/pybluez/default.nix b/pkgs/development/python-modules/pybluez/default.nix
index 55262a07a4cad..d3842358db2f1 100644
--- a/pkgs/development/python-modules/pybluez/default.nix
+++ b/pkgs/development/python-modules/pybluez/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, bluez
-, gattlib
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  bluez,
+  gattlib,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     hash = "sha256-GA58DfCFaVzZQA1HYpGQ68bznrt4SX1ojyOVn8hyCGo=";
   };
 
-  buildInputs = [
-    bluez
-  ];
+  buildInputs = [ bluez ];
 
-  propagatedBuildInputs = [
-    gattlib
-  ];
+  propagatedBuildInputs = [ gattlib ];
 
   # there are no tests
   doCheck = false;
@@ -41,5 +38,4 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ leenaars ];
     broken = stdenv.isDarwin; # requires pyobjc-core, pyobjc-framework-Cocoa
   };
-
 }
diff --git a/pkgs/development/python-modules/pybox2d/default.nix b/pkgs/development/python-modules/pybox2d/default.nix
index c7a8e7d83ebfb..0d7069c736ca8 100644
--- a/pkgs/development/python-modules/pybox2d/default.nix
+++ b/pkgs/development/python-modules/pybox2d/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, swig
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  swig,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-yjLFvsg8GQLxjN1vtZM9zl+kAmD4+eS/vzRkpj0SCjY=";
   };
 
-  nativeBuildInputs = [
-    swig
-  ];
+  nativeBuildInputs = [ swig ];
 
   # We need to build the package explicitly a first time so that the library/Box2D/Box2D.py file
   # gets generated.
diff --git a/pkgs/development/python-modules/pybravia/default.nix b/pkgs/development/python-modules/pybravia/default.nix
index b738d3adf01e5..b94efc55b3c9b 100644
--- a/pkgs/development/python-modules/pybravia/default.nix
+++ b/pkgs/development/python-modules/pybravia/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-Ux9EereKKbgaVQORliW6J5FSBlytLM+m4PVFBk+OW6k=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pybravia"
-  ];
+  pythonImportsCheck = [ "pybravia" ];
 
   meta = with lib; {
     description = "Library for remote control of Sony Bravia TVs 2013 and newer";
diff --git a/pkgs/development/python-modules/pybrowserid/darwin_fix.patch b/pkgs/development/python-modules/pybrowserid/darwin_fix.patch
new file mode 100644
index 0000000000000..7e85c08d810e1
--- /dev/null
+++ b/pkgs/development/python-modules/pybrowserid/darwin_fix.patch
@@ -0,0 +1,231 @@
+commit 4e68d9bfd12de51d8e6dc8ac622317f7755f1080
+Author: Palmer Cox <p@lmercox.com>
+Date:   Tue May 14 23:07:48 2024 -0400
+
+    python312Packages.pybrowserid: Fix on Darwin
+    
+    The WorkerPoolVerifier works by spawning one or more child processes in
+    order to run the verification process. This is fine on Linux when using
+    the default "fork" method of the multiprocessing module. However, this
+    breaks when using the "spawn" or "forkserver" method since those methods
+    require that the arguments passed into the Process object be pickleable.
+    Specifically we're passing threading.Lock objects to the child process
+    which are not pickleable.
+    
+    Passing a Lock to a child process spawned via fork mostly does nothing -
+    the child process ends up with its own copy of the Lock which its free
+    to lock or unlock as it pleases and it has no effect on the parent
+    process. So, we don't actually need to pass the Lock to the child
+    process since it has never done anything. All we need to do is _not_
+    pass it since it causes errors when its passed because its not
+    pickleable. We don't need to re-create its functionality.
+    
+    Anyway, there are two places where we are passing locks to the child
+    process. The first is the WorkerPoolVerifier class. This lock isn't
+    actually being used - its just passed because we're passing the "self"
+    object to the worker thread. So, we can fix this by making the target
+    method to run in the worker thread a free-function and only passing the
+    object we need - thus avoiding passing the unused Lock that triggers the
+    pickle error.
+    
+    The other place that a Lock is passed ia via the FIFOCache. We can work
+    around this by making the Lock a global variable instead of an instance
+    variable. This shouldn't cause any significant performance issues
+    because the FIFOCache only holds this lock for brief periods when its
+    updating itself - its not doing any network call or long running
+    operations. Anyway, because its a global variable now, its not passed to
+    the process and we avoid the pickle error.
+    
+    The other problem we have to fix are the tests on Darwin. There are two
+    problems - both due to Darwin defaulting to the "spawn" start method
+    for child Processes:
+    
+    1. When we spawn a new Python process, it inherits the same __main__
+       module as its parent. When running tests, this __main__ module is the
+       unittest module. And, it start trying to run tests when its loaded.
+       This spawns more processes which also try to run tests, and so on.
+    
+    2. The test code tries to mock out the network access. However, when we
+       spawn a new Python process these mocks are lost.
+    
+    Anyway, we fix this issues by creating a temporary replacement for the
+    __main__ module which we install before running the WorkerPoolVerifier
+    tests. This module avoids trying to run the unit tests and also applies
+    the necessary mock to avoid network access.
+
+diff --git a/browserid/supportdoc.py b/browserid/supportdoc.py
+index d995fed..249b37e 100644
+--- a/browserid/supportdoc.py
++++ b/browserid/supportdoc.py
+@@ -26,6 +26,9 @@ DEFAULT_TRUSTED_SECONDARIES = ("browserid.org", "diresworb.org",
+                                "login.persona.org")
+ 
+ 
++FIFO_CACHE_LOCK = threading.Lock()
++
++
+ class SupportDocumentManager(object):
+     """Manager for mapping hostnames to their BrowserID support documents.
+ 
+@@ -131,7 +134,6 @@ class FIFOCache(object):
+         self.max_size = max_size
+         self.items_map = {}
+         self.items_queue = collections.deque()
+-        self._lock = threading.Lock()
+ 
+     def __getitem__(self, key):
+         """Lookup the given key in the cache.
+@@ -147,7 +149,7 @@ class FIFOCache(object):
+                 # it hasn't been updated by another thread in the meantime.
+                 # This is a little more work during eviction, but it means we
+                 # can avoid locking in the common case of non-expired items.
+-                self._lock.acquire()
++                FIFO_CACHE_LOCK.acquire()
+                 try:
+                     if self.items_map[key][0] == timestamp:
+                         # Just delete it from items_map.  Trying to find
+@@ -157,7 +159,7 @@ class FIFOCache(object):
+                 except KeyError:
+                     pass
+                 finally:
+-                    self._lock.release()
++                    FIFO_CACHE_LOCK.release()
+                     raise KeyError
+         return value
+ 
+@@ -168,7 +170,7 @@ class FIFOCache(object):
+         there's enough room in the cache and evicting items if necessary.
+         """
+         now = time.time()
+-        with self._lock:
++        with FIFO_CACHE_LOCK:
+             # First we need to make sure there's enough room.
+             # This is a great opportunity to evict any expired items,
+             # helping to keep memory small for sparse caches.
+diff --git a/browserid/tests/dummy_main_module_for_unit_test_worker_processes.py b/browserid/tests/dummy_main_module_for_unit_test_worker_processes.py
+new file mode 100644
+index 0000000..388f86f
+--- /dev/null
++++ b/browserid/tests/dummy_main_module_for_unit_test_worker_processes.py
+@@ -0,0 +1,29 @@
++"""
++This module is necessary as a hack to get tests to pass on Darwin.
++
++The reason is that the tests attempt to start up a multiprocessing.Process.
++Doing that spawns a new Python process with the same __main__ module as the
++parent process. The first problem is that the default start mode for Processes
++on Darwin with "spawn" as opposed to "fork" as on Linux. This means that a
++fully new Python interpretter is started with the same __main__ module. When
++running tests, that __main__ module is the standard library unittest module.
++Unfortunately, that module unconditionally runs unit tests without checking
++that __name__ == "__main__". The end result is that every time a worker process
++is spawned it immediately attemps to run the tests which spawn more processes
++and so on.
++
++So, we work around that by replacing the __main__ module with this one before
++any processes are spawned. This prevents the infinite spawning of processes
++since this module doesn't try to run any unit tests.
++
++Additionally, this also patches the supportdoc fetching methods - which is
++necessary to actually get the tests to pass.
++"""
++
++import multiprocessing
++
++from browserid.tests.support import patched_supportdoc_fetching
++
++if multiprocessing.current_process().name != "MainProcess":
++    patched_supportdoc_fetching().__enter__()
++
+diff --git a/browserid/tests/test_verifiers.py b/browserid/tests/test_verifiers.py
+index d95ff8f..e8b867f 100644
+--- a/browserid/tests/test_verifiers.py
++++ b/browserid/tests/test_verifiers.py
+@@ -454,15 +454,27 @@ class TestDummyVerifier(unittest.TestCase, VerifierTestCases):
+ class TestWorkerPoolVerifier(TestDummyVerifier):
+ 
+     def setUp(self):
++        from browserid.tests import dummy_main_module_for_unit_test_worker_processes
++        import sys
++
+         super(TestWorkerPoolVerifier, self).setUp()
++
++        self.__old_main = sys.modules["__main__"]
++        sys.modules["__main__"] = dummy_main_module_for_unit_test_worker_processes
++
+         self.verifier = WorkerPoolVerifier(
+                 verifier=LocalVerifier(["*"])
+         )
+ 
+     def tearDown(self):
++        import sys
++
+         super(TestWorkerPoolVerifier, self).tearDown()
++
+         self.verifier.close()
+ 
++        sys.modules["__main__"] = self.__old_main
++
+ 
+ class TestShortcutFunction(unittest.TestCase):
+ 
+diff --git a/browserid/verifiers/workerpool.py b/browserid/verifiers/workerpool.py
+index c669107..d250222 100644
+--- a/browserid/verifiers/workerpool.py
++++ b/browserid/verifiers/workerpool.py
+@@ -32,7 +32,6 @@ class WorkerPoolVerifier(object):
+         if verifier is None:
+             verifier = LocalVerifier()
+         self.num_procs = num_procs
+-        self.verifier = verifier
+         # Create the various communication channels.
+         # Yes, this duplicates a lot of the logic from multprocessing.Pool.
+         # I don't want to have to constantly pickle the verifier object
+@@ -53,7 +52,7 @@ class WorkerPoolVerifier(object):
+         self._result_thread.start()
+         self._processes = []
+         for n in range(num_procs):
+-            proc = multiprocessing.Process(target=self._run_worker)
++            proc = multiprocessing.Process(target=_run_worker, args=(self._work_queue, verifier, self._result_queue))
+             self._processes.append(proc)
+             proc.start()
+ 
+@@ -128,21 +127,21 @@ class WorkerPoolVerifier(object):
+                 self._waiting_conds[job_id] = (ok, result)
+                 cond.notify()
+ 
+-    def _run_worker(self):
+-        """Method to run for the background worker processes.
++def _run_worker(work_queue, verifier, result_queue):
++    """Method to run for the background worker processes.
+ 
+-        This method loops through jobs from the work queue, executing them
+-        with the verifier object and pushing the result back via the result
+-        queue.
+-        """
+-        while True:
+-            job_id, args, kwds = self._work_queue.get()
+-            if job_id is None:
+-                break
+-            try:
+-                result = self.verifier.verify(*args, **kwds)
+-                ok = True
+-            except Exception as e:
+-                result = e
+-                ok = False
+-            self._result_queue.put((job_id, ok, result))
++    This method loops through jobs from the work queue, executing them
++    with the verifier object and pushing the result back via the result
++    queue.
++    """
++    while True:
++        job_id, args, kwds = work_queue.get()
++        if job_id is None:
++            break
++        try:
++            result = verifier.verify(*args, **kwds)
++            ok = True
++        except Exception as e:
++            result = e
++            ok = False
++        result_queue.put((job_id, ok, result))
diff --git a/pkgs/development/python-modules/pybrowserid/default.nix b/pkgs/development/python-modules/pybrowserid/default.nix
index 1a4cd7c43058c..e6742c5e3654d 100644
--- a/pkgs/development/python-modules/pybrowserid/default.nix
+++ b/pkgs/development/python-modules/pybrowserid/default.nix
@@ -1,24 +1,46 @@
-{ lib, buildPythonPackage, fetchPypi
-, requests, mock }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  requests,
+  unittestCheckHook,
+  mock,
+}:
 
 buildPythonPackage rec {
   pname = "pybrowserid";
   version = "0.14.0";
+  pyproject = true;
 
   src = fetchPypi {
     pname = "PyBrowserID";
     inherit version;
-    sha256 = "1qvi79kfb8x9kxkm5lw2mp42hm82cpps1xknmsb5ghkwx1lpc8kc";
+    hash = "sha256-bCJ2aeh8wleWrnb2oO9lAlUoyK2C01Jnn6mj5WY6ceM=";
   };
 
-  propagatedBuildInputs = [ requests ];
+  patches = [ ./darwin_fix.patch ];
 
-  nativeCheckInputs = [ mock ];
+  postPatch = ''
+    substituteInPlace browserid/tests/* \
+        --replace-warn 'assertEquals' 'assertEqual'
+  '';
+
+  build-system = [ setuptools ];
+
+  dependencies = [ requests ];
+
+  pythonImportsCheck = [ "browserid" ];
+
+  nativeCheckInputs = [
+    unittestCheckHook
+    mock
+  ];
 
   meta = with lib; {
     description = "Python library for the BrowserID Protocol";
-    homepage    = "https://github.com/mozilla/PyBrowserID";
-    license     = licenses.mpl20;
+    homepage = "https://github.com/mozilla/PyBrowserID";
+    license = licenses.mpl20;
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pybrowsers/default.nix b/pkgs/development/python-modules/pybrowsers/default.nix
index 859b1faa4b4e2..76e427fef92f4 100644
--- a/pkgs/development/python-modules/pybrowsers/default.nix
+++ b/pkgs/development/python-modules/pybrowsers/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
-, pyxdg
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
+  pyxdg,
 }:
 
 buildPythonPackage rec {
@@ -24,20 +25,14 @@ buildPythonPackage rec {
     sed -i "/--cov/d" pyproject.toml
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    pyxdg
-  ];
+  propagatedBuildInputs = [ pyxdg ];
 
   # Tests want to interact with actual browsers
   doCheck = false;
 
-  pythonImportsCheck = [
-    "browsers"
-  ];
+  pythonImportsCheck = [ "browsers" ];
 
   meta = with lib; {
     description = "Python library for detecting and launching browsers";
diff --git a/pkgs/development/python-modules/pybtex-docutils/default.nix b/pkgs/development/python-modules/pybtex-docutils/default.nix
index b2c05f73bc636..e1651297a77c1 100644
--- a/pkgs/development/python-modules/pybtex-docutils/default.nix
+++ b/pkgs/development/python-modules/pybtex-docutils/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, docutils
-, fetchPypi
-, pybtex
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  docutils,
+  fetchPypi,
+  pybtex,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,16 +25,12 @@ buildPythonPackage rec {
     pybtex
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pybtex_docutils"
-  ];
+  pythonImportsCheck = [ "pybtex_docutils" ];
 
   meta = with lib; {
-    description = "A docutils backend for pybtex";
+    description = "Docutils backend for pybtex";
     homepage = "https://github.com/mcmtroffaes/pybtex-docutils";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/pybtex/default.nix b/pkgs/development/python-modules/pybtex/default.nix
index 04a9ba95a89e1..94df8e4f62bb6 100644
--- a/pkgs/development/python-modules/pybtex/default.nix
+++ b/pkgs/development/python-modules/pybtex/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, latexcodec
-, pyyaml
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  latexcodec,
+  pyyaml,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -27,7 +28,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://pybtex.org/";
-    description = "A BibTeX-compatible bibliography processor written in Python";
+    description = "BibTeX-compatible bibliography processor written in Python";
     license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/pybullet/default.nix b/pkgs/development/python-modules/pybullet/default.nix
index 3c11dd822c211..95dbed9a924c4 100644
--- a/pkgs/development/python-modules/pybullet/default.nix
+++ b/pkgs/development/python-modules/pybullet/default.nix
@@ -1,10 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, libGLU, libGL
-, xorg
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  libGLU,
+  libGL,
+  xorg,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +19,15 @@ buildPythonPackage rec {
     hash = "sha256-2idSVDPIhpjcn9i8IPpK5NB3OLRlZjNlnr2CwtKITgg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   buildInputs = [
-    libGLU libGL
+    libGLU
+    libGL
     xorg.libX11
   ];
 
-  propagatedBuildInputs =  [ numpy ];
+  propagatedBuildInputs = [ numpy ];
 
   patches = [
     # make sure X11 and OpenGL can be found at runtime
diff --git a/pkgs/development/python-modules/pycairo/default.nix b/pkgs/development/python-modules/pycairo/default.nix
index a2b865e7b71cb..4f4859e007c39 100644
--- a/pkgs/development/python-modules/pycairo/default.nix
+++ b/pkgs/development/python-modules/pycairo/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, pythonOlder
-, fetchFromGitHub
-, meson
-, ninja
-, buildPythonPackage
-, pytestCheckHook
-, pkg-config
-, cairo
-, libxcrypt
-, python
+{
+  lib,
+  pythonOlder,
+  fetchFromGitHub,
+  meson,
+  ninja,
+  buildPythonPackage,
+  pytestCheckHook,
+  pkg-config,
+  cairo,
+  libxcrypt,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -32,15 +33,9 @@ buildPythonPackage rec {
     pkg-config
   ];
 
-  buildInputs = [
-    cairo
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    libxcrypt
-  ];
+  buildInputs = [ cairo ] ++ lib.optionals (pythonOlder "3.9") [ libxcrypt ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   mesonFlags = [
     # This is only used for figuring out what version of Python is in
@@ -52,7 +47,10 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python 3 bindings for cairo";
     homepage = "https://pycairo.readthedocs.io/";
-    license = with licenses; [ lgpl21Only mpl11 ];
+    license = with licenses; [
+      lgpl21Only
+      mpl11
+    ];
     platforms = lib.platforms.linux ++ lib.platforms.darwin;
   };
 }
diff --git a/pkgs/development/python-modules/pycangjie/default.nix b/pkgs/development/python-modules/pycangjie/default.nix
index 5fd7e130c248c..caca2f9f3d0a6 100644
--- a/pkgs/development/python-modules/pycangjie/default.nix
+++ b/pkgs/development/python-modules/pycangjie/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, fetchFromGitHub
-, bash
-, autoconf
-, automake
-, libtool
-, pkg-config
-, libcangjie
-, sqlite
-, buildPythonPackage
-, cython
+{
+  lib,
+  fetchFromGitHub,
+  bash,
+  autoconf,
+  automake,
+  libtool,
+  pkg-config,
+  libcangjie,
+  sqlite,
+  buildPythonPackage,
+  cython,
 }:
 
 buildPythonPackage {
@@ -23,8 +24,17 @@ buildPythonPackage {
     hash = "sha256-sS0Demzm89WtEIN4Efz0OTsUQ/c3gIX+/koekQGOca4=";
   };
 
-  nativeBuildInputs = [ pkg-config libtool autoconf automake cython ];
-  buildInputs = [ libcangjie sqlite ];
+  nativeBuildInputs = [
+    pkg-config
+    libtool
+    autoconf
+    automake
+    cython
+  ];
+  buildInputs = [
+    libcangjie
+    sqlite
+  ];
 
   preConfigure = ''
     find . -name '*.sh' -exec sed -e 's@#!/bin/bash@${bash}/bin/bash@' -i '{}' ';'
diff --git a/pkgs/development/python-modules/pycapnp/default.nix b/pkgs/development/python-modules/pycapnp/default.nix
index e10075e277265..8d34b1f39e3c7 100644
--- a/pkgs/development/python-modules/pycapnp/default.nix
+++ b/pkgs/development/python-modules/pycapnp/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, capnproto
-, cython
-, fetchFromGitHub
-, isPy27
-, isPyPy
-, pkgconfig
+{
+  lib,
+  buildPythonPackage,
+  capnproto,
+  cython,
+  fetchFromGitHub,
+  isPy27,
+  isPyPy,
+  pkgconfig,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,10 @@ buildPythonPackage rec {
     sha256 = "1xi6df93ggkpmwckwbi356v7m32zv5qry8s45hvsps66dz438kmi";
   };
 
-  nativeBuildInputs = [ cython pkgconfig ];
+  nativeBuildInputs = [
+    cython
+    pkgconfig
+  ];
 
   buildInputs = [ capnproto ];
 
diff --git a/pkgs/development/python-modules/pycaption/default.nix b/pkgs/development/python-modules/pycaption/default.nix
index 900f93bbea879..61cde1daca706 100644
--- a/pkgs/development/python-modules/pycaption/default.nix
+++ b/pkgs/development/python-modules/pycaption/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, beautifulsoup4
-, lxml
-, cssutils
-, nltk
-, pytest-lazy-fixture
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  beautifulsoup4,
+  lxml,
+  cssutils,
+  nltk,
+  pytest-lazy-fixture,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "pycaption";
-  version = "2.2.6";
+  version = "2.2.11";
 
   disabled = pythonOlder "3.8";
 
@@ -23,12 +24,10 @@ buildPythonPackage rec {
     owner = "pbs";
     repo = "pycaption";
     rev = "refs/tags/${version}";
-    hash = "sha256-XN83L6WsRyl9G0ia4uz3SCVcwwUNUyfNMB64RfZh+PA=";
+    hash = "sha256-ae3aldx/8nRnqut7py2KmqETQuAUt2wpDwFA/30UiGg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     beautifulsoup4
diff --git a/pkgs/development/python-modules/pycardano/default.nix b/pkgs/development/python-modules/pycardano/default.nix
index 75bef6723d5df..cc1f79c9b2c54 100644
--- a/pkgs/development/python-modules/pycardano/default.nix
+++ b/pkgs/development/python-modules/pycardano/default.nix
@@ -1,35 +1,37 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonRelaxDepsHook
-# Python deps
-, blockfrost-python
-, cachetools
-, cbor2
-, cose
-, ecpy
-, frozendict
-, frozenlist
-, mnemonic
-, poetry-core
-, pprintpp
-, pynacl
-, setuptools
-, typeguard
-, websocket-client
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  # Python deps
+  blockfrost-python,
+  cachetools,
+  cbor2,
+  cose,
+  ecpy,
+  frozendict,
+  frozenlist,
+  mnemonic,
+  poetry-core,
+  pprintpp,
+  pynacl,
+  setuptools,
+  typeguard,
+  websocket-client,
 }:
 
 let
   cose_0_9_dev8 = cose.overridePythonAttrs (old: rec {
     version = "0.9.dev8";
-    src = (old.src.override {
-      rev = "v${version}";
-      hash = "sha256-/jwq2C2nvHInsgPG4jZCr+XsvlUJdYewAkasrUPVaHM=";
-    });
+    src = (
+      old.src.override {
+        rev = "v${version}";
+        hash = "sha256-/jwq2C2nvHInsgPG4jZCr+XsvlUJdYewAkasrUPVaHM=";
+      }
+    );
     pythonImportsCheck = [ "cose" ];
   });
-
-in buildPythonPackage rec {
+in
+buildPythonPackage rec {
   pname = "pycardano";
   version = "0.10.0";
 
@@ -42,9 +44,6 @@ in buildPythonPackage rec {
     hash = "sha256-LP/W8IC2del476fGFq10VMWwMrbAoCCcZOngA8unBM0=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   propagatedBuildInputs = [
     blockfrost-python
@@ -68,7 +67,7 @@ in buildPythonPackage rec {
   pythonImportsCheck = [ "pycardano" ];
 
   meta = with lib; {
-    description = "A lightweight Cardano library in Python";
+    description = "Lightweight Cardano library in Python";
     homepage = "https://github.com/Python-Cardano/pycardano";
     license = licenses.mit;
     maintainers = with maintainers; [ t4ccer ];
diff --git a/pkgs/development/python-modules/pycares/default.nix b/pkgs/development/python-modules/pycares/default.nix
index fcd6327bd2224..e973ff42cdcb5 100644
--- a/pkgs/development/python-modules/pycares/default.nix
+++ b/pkgs/development/python-modules/pycares/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiodns
-, buildPythonPackage
-, c-ares
-, cffi
-, fetchPypi
-, idna
-, pythonOlder
-, tornado
+{
+  lib,
+  aiodns,
+  buildPythonPackage,
+  c-ares,
+  cffi,
+  fetchPypi,
+  idna,
+  pythonOlder,
+  tornado,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-9HV51Qjy9W7d0WznIEV4KtOxs7Z4CYaZ4rahswcz4cI=";
   };
 
-  buildInputs = [
-    c-ares
-  ];
+  buildInputs = [ c-ares ];
 
   propagatedBuildInputs = [
     cffi
     idna
   ];
 
-  propagatedNativeBuildInputs = [
-    cffi
-  ];
+  propagatedNativeBuildInputs = [ cffi ];
 
   # Requires network access
   doCheck = false;
@@ -41,9 +38,7 @@ buildPythonPackage rec {
     inherit aiodns tornado;
   };
 
-  pythonImportsCheck = [
-    "pycares"
-  ];
+  pythonImportsCheck = [ "pycares" ];
 
   meta = with lib; {
     description = "Python interface for c-ares";
diff --git a/pkgs/development/python-modules/pycarwings2/default.nix b/pkgs/development/python-modules/pycarwings2/default.nix
index 0158e2c018565..2d83d009aad89 100644
--- a/pkgs/development/python-modules/pycarwings2/default.nix
+++ b/pkgs/development/python-modules/pycarwings2/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, iso8601
-, requests
-, pycryptodome
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  iso8601,
+  requests,
+  pycryptodome,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     pycryptodome
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace setup.py \
@@ -46,9 +45,7 @@ buildPythonPackage rec {
     "test_bad_password"
   ];
 
-  pythonImportsCheck = [
-    "pycarwings2"
-  ];
+  pythonImportsCheck = [ "pycarwings2" ];
 
   meta = with lib; {
     description = "Python library for interacting with the NissanConnect EV";
diff --git a/pkgs/development/python-modules/pycatch22/default.nix b/pkgs/development/python-modules/pycatch22/default.nix
index c82088d9adbe8..69b218ec66b05 100644
--- a/pkgs/development/python-modules/pycatch22/default.nix
+++ b/pkgs/development/python-modules/pycatch22/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pandas
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pandas,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "pycatch22";
-  version = "0.4.4";
+  version = "0.4.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     owner = "DynamicsAndNeuralSystems";
     repo = "pycatch22";
     rev = "refs/tags/v${version}";
-    hash = "sha256-l41LLo9k075EL8rV48bwa4Yw12XuqNJSDYtd9kyqS3U=";
+    hash = "sha256-NvZrjOdC6rV4hwCuGcc2Br/VDhLwZcYpfnNvQpqU134=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pandas
-  ];
+  nativeCheckInputs = [ pandas ];
 
   # This packages does not have real tests
   # But we can run this file as smoketest
@@ -38,9 +35,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "pycatch22"
-  ];
+  pythonImportsCheck = [ "pycatch22" ];
 
   meta = with lib; {
     description = "Python implementation of catch22";
diff --git a/pkgs/development/python-modules/pycategories/default.nix b/pkgs/development/python-modules/pycategories/default.nix
index 6586f598ca0a7..98a8e360d1572 100644
--- a/pkgs/development/python-modules/pycategories/default.nix
+++ b/pkgs/development/python-modules/pycategories/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, callPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  callPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
   # and shouldn't be used in production code
   propagatedBuildInputs = [ (callPackage ./infix.nix { }) ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Implementation of some concepts from category theory";
diff --git a/pkgs/development/python-modules/pycategories/infix.nix b/pkgs/development/python-modules/pycategories/infix.nix
index f3b4d2548181c..e3c09476b4013 100644
--- a/pkgs/development/python-modules/pycategories/infix.nix
+++ b/pkgs/development/python-modules/pycategories/infix.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/borntyping/python-infix";
-    description = "A decorator that allows functions to be used as infix functions";
+    description = "Decorator that allows functions to be used as infix functions";
     license = lib.licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/pycddl/default.nix b/pkgs/development/python-modules/pycddl/default.nix
index 9cd2d1fab2024..b1ffac55aad64 100644
--- a/pkgs/development/python-modules/pycddl/default.nix
+++ b/pkgs/development/python-modules/pycddl/default.nix
@@ -1,26 +1,31 @@
-{ lib
-, pythonOlder
-, fetchPypi
-, buildPythonPackage
-, rustPlatform
-, pytestCheckHook
-, psutil
-, cbor2
+{
+  lib,
+  pythonOlder,
+  fetchPypi,
+  buildPythonPackage,
+  rustPlatform,
+  pytestCheckHook,
+  psutil,
+  cbor2,
+  hypothesis,
 }:
 
 buildPythonPackage rec {
   pname = "pycddl";
-  version = "0.5.2";
+  version = "0.6.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LdecJPSov2Y/QI4MWb20DcF0EtMuDO0VwiQDUeD55GI=";
+    hash = "sha256-63fe8UJXEH6t4l7ujV8JDvlGb7q3kL6fHHATFdklzFc=";
   };
 
-  nativeBuildInputs = with rustPlatform; [ maturinBuildHook cargoSetupHook ];
+  nativeBuildInputs = with rustPlatform; [
+    maturinBuildHook
+    cargoSetupHook
+  ];
 
   postPatch = ''
     # We don't place pytest-benchmark in the closure because we have no
@@ -37,10 +42,21 @@ buildPythonPackage rec {
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-FJET2Xb1cq4aePFhPXpp2oEPIOtpugYWNFAa2Dj0F6Y=";
+    hash = "sha256-ssDEKRd3Y9/10oXBZHCxvlRkl9KMh3pGYbCkM4rXThQ=";
   };
 
-  nativeCheckInputs = [ pytestCheckHook psutil cbor2 ];
+  nativeCheckInputs = [
+    hypothesis
+    pytestCheckHook
+    psutil
+    cbor2
+  ];
+
+  disabledTests =[
+    # flaky
+    "test_memory_usage"
+  ];
+
   pythonImportsCheck = [ "pycddl" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pycdio/default.nix b/pkgs/development/python-modules/pycdio/default.nix
index e8f0323b2f92e..78a620eb0dd76 100644
--- a/pkgs/development/python-modules/pycdio/default.nix
+++ b/pkgs/development/python-modules/pycdio/default.nix
@@ -1,9 +1,11 @@
-{ lib, stdenv
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, nose
-, pkgs
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  nose,
+  pkgs,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +29,15 @@ buildPythonPackage rec {
     patchShebangs .
   '';
 
-  nativeBuildInputs = [ nose pkgs.pkg-config pkgs.swig ];
-  buildInputs = [ setuptools pkgs.libcdio ]
-    ++ lib.optional stdenv.isDarwin pkgs.libiconv;
+  nativeBuildInputs = [
+    nose
+    pkgs.pkg-config
+    pkgs.swig
+  ];
+  buildInputs = [
+    setuptools
+    pkgs.libcdio
+  ] ++ 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.
@@ -43,5 +51,4 @@ buildPythonPackage rec {
     description = "Wrapper around libcdio (CD Input and Control library)";
     license = licenses.gpl3Plus;
   };
-
 }
diff --git a/pkgs/development/python-modules/pycec/default.nix b/pkgs/development/python-modules/pycec/default.nix
index 832d38d72677a..dd18f56d9826e 100644
--- a/pkgs/development/python-modules/pycec/default.nix
+++ b/pkgs/development/python-modules/pycec/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, libcec
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  libcec,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-5KQyHjAvHWeHFqcFHFJxDOPwWuVcFAN2wVdz9a77dzU=";
   };
 
-  propagatedBuildInputs = [
-    libcec
-  ];
+  propagatedBuildInputs = [ libcec ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pycec"
-  ];
+  pythonImportsCheck = [ "pycec" ];
 
   meta = with lib; {
     description = "Python modules to access HDMI CEC devices";
diff --git a/pkgs/development/python-modules/pycep-parser/default.nix b/pkgs/development/python-modules/pycep-parser/default.nix
index 9231fbdf47f28..c8e5f12ddd53f 100644
--- a/pkgs/development/python-modules/pycep-parser/default.nix
+++ b/pkgs/development/python-modules/pycep-parser/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, assertpy
-, buildPythonPackage
-, fetchFromGitHub
-, lark
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, regex
-, typing-extensions
+{
+  lib,
+  assertpy,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lark,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  regex,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-qogUjj/GwMGwFEin+xJCSOCf5Ut8bgsFakyoMhkyKgU=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     lark
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pycep"
-  ];
+  pythonImportsCheck = [ "pycep" ];
 
   meta = with lib; {
     description = "Python based Bicep parser";
diff --git a/pkgs/development/python-modules/pycfdns/default.nix b/pkgs/development/python-modules/pycfdns/default.nix
index 339ade0ca71f2..e54034e6dbd76 100644
--- a/pkgs/development/python-modules/pycfdns/default.nix
+++ b/pkgs/development/python-modules/pycfdns/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,20 +26,14 @@ buildPythonPackage rec {
       --replace 'version="0",' 'version="${version}",'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pycfdns"
-  ];
+  pythonImportsCheck = [ "pycfdns" ];
 
   meta = with lib; {
     description = "Python module for updating Cloudflare DNS A records";
diff --git a/pkgs/development/python-modules/pycflow2dot/default.nix b/pkgs/development/python-modules/pycflow2dot/default.nix
index 7bcd95e30d90c..19289d0b6cbde 100644
--- a/pkgs/development/python-modules/pycflow2dot/default.nix
+++ b/pkgs/development/python-modules/pycflow2dot/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cflow
-, graphviz
-, pydot
-, networkx
-, which
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cflow,
+  graphviz,
+  pydot,
+  networkx,
+  which,
 }:
 
 buildPythonPackage rec {
@@ -36,8 +37,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Layout C call graphs from cflow using GraphViz dot";
     mainProgram = "cflow2dot";
-    homepage    = "https://github.com/johnyf/pycflow2dot";
-    license     = licenses.gpl3Plus;
+    homepage = "https://github.com/johnyf/pycflow2dot";
+    license = licenses.gpl3Plus;
     maintainers = with maintainers; [ evils ];
   };
 }
diff --git a/pkgs/development/python-modules/pycfmodel/default.nix b/pkgs/development/python-modules/pycfmodel/default.nix
index e0d072684e269..e16ec8a669ab6 100644
--- a/pkgs/development/python-modules/pycfmodel/default.nix
+++ b/pkgs/development/python-modules/pycfmodel/default.nix
@@ -1,34 +1,34 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, httpx
-, pydantic
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpx,
+  pydantic,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pycfmodel";
-  version = "0.22.0";
+  version = "1.0.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "Skyscanner";
     repo = "pycfmodel";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-NLi94W99LhrBXNFItMfJczV9EZlgvmvkavrfDQJs0YU=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-iCjOSwW6rdG3H4e/B/um+QioP45nOr9OcPAwXxZs3mU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  pythonRelaxDeps = [ "pydantic" ];
+
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    pydantic
-  ];
+
+  dependencies = [ pydantic ];
 
   nativeCheckInputs = [
     httpx
@@ -42,11 +42,13 @@ buildPythonPackage rec {
     "test_valid_es_domain_from_aws_documentation_examples_resource_can_be_built"
     "test_valid_opensearch_domain_from_aws_documentation_examples_resource_can_be_built"
     "test_resolve_booleans_different_properties_for_generic_resource"
+    "test_loose_ip"
+    "test_extra_fields_not_allowed_s3_bucket"
+    "test_raise_error_if_invalid_fields_in_resource"
+    ""
   ];
 
-  pythonImportsCheck = [
-    "pycfmodel"
-  ];
+  pythonImportsCheck = [ "pycfmodel" ];
 
   meta = with lib; {
     description = "Model for Cloud Formation scripts";
@@ -54,6 +56,5 @@ buildPythonPackage rec {
     changelog = "https://github.com/Skyscanner/pycfmodel/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
-    broken = versionAtLeast pydantic.version "2";
   };
 }
diff --git a/pkgs/development/python-modules/pychannels/default.nix b/pkgs/development/python-modules/pychannels/default.nix
index e7185f3697dcd..48310b769912e 100644
--- a/pkgs/development/python-modules/pychannels/default.nix
+++ b/pkgs/development/python-modules/pychannels/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pychart/default.nix b/pkgs/development/python-modules/pychart/default.nix
index aa9ef1c11c9bb..c6fa67c0912e6 100644
--- a/pkgs/development/python-modules/pychart/default.nix
+++ b/pkgs/development/python-modules/pychart/default.nix
@@ -1,11 +1,16 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27 }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+}:
 
 buildPythonPackage rec {
   pname = "pychart";
   version = "1.39";
   format = "setuptools";
 
-  disabled = ! isPy27;
+  disabled = !isPy27;
 
   src = fetchPypi {
     inherit pname version;
diff --git a/pkgs/development/python-modules/pychm/default.nix b/pkgs/development/python-modules/pychm/default.nix
index 175acf928256e..6636f052b0a6c 100644
--- a/pkgs/development/python-modules/pychm/default.nix
+++ b/pkgs/development/python-modules/pychm/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, chmlib
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  chmlib,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pychromecast/default.nix b/pkgs/development/python-modules/pychromecast/default.nix
index 5e4e971432edc..f14248b781b08 100644
--- a/pkgs/development/python-modules/pychromecast/default.nix
+++ b/pkgs/development/python-modules/pychromecast/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, casttube
-, fetchPypi
-, pythonOlder
-, protobuf
-, setuptools
-, wheel
-, zeroconf
+{
+  lib,
+  buildPythonPackage,
+  casttube,
+  fetchPypi,
+  pythonOlder,
+  protobuf,
+  setuptools,
+  wheel,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
@@ -43,9 +44,7 @@ buildPythonPackage rec {
   # no tests available
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pychromecast"
-  ];
+  pythonImportsCheck = [ "pychromecast" ];
 
   meta = with lib; {
     description = "Library for Python to communicate with the Google Chromecast";
diff --git a/pkgs/development/python-modules/pycketcasts/default.nix b/pkgs/development/python-modules/pycketcasts/default.nix
index e7cc9fe856ed9..7b4c51fcc6e85 100644
--- a/pkgs/development/python-modules/pycketcasts/default.nix
+++ b/pkgs/development/python-modules/pycketcasts/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python-magic
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python-magic,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pycketcasts"
-  ];
+  pythonImportsCheck = [ "pycketcasts" ];
 
   meta = with lib; {
     description = "Module to interact with PocketCast's unofficial API";
diff --git a/pkgs/development/python-modules/pyclimacell/default.nix b/pkgs/development/python-modules/pyclimacell/default.nix
index f8f58b19ccd20..8b61e177f5db2 100644
--- a/pkgs/development/python-modules/pyclimacell/default.nix
+++ b/pkgs/development/python-modules/pyclimacell/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, pytz
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     pytz
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "pyclimacell" ];
 
diff --git a/pkgs/development/python-modules/pyclip/default.nix b/pkgs/development/python-modules/pyclip/default.nix
index 88fd8db0419e7..65f9afc40903f 100644
--- a/pkgs/development/python-modules/pyclip/default.nix
+++ b/pkgs/development/python-modules/pyclip/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, buildPythonPackage
-, pytest
-, pythonOlder
-, xclip
-, xvfb-run
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pytest,
+  pythonOlder,
+  xclip,
+  xvfb-run,
 }:
 
 buildPythonPackage rec {
@@ -27,12 +28,12 @@ buildPythonPackage rec {
       --replace docs/README.md README.md
   '';
 
-  nativeCheckInputs = [
-    pytest
-  ] ++ lib.optionals stdenv.isLinux [
-    xclip
-    xvfb-run
-  ];
+  nativeCheckInputs =
+    [ pytest ]
+    ++ lib.optionals stdenv.isLinux [
+      xclip
+      xvfb-run
+    ];
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/pyclipper/default.nix b/pkgs/development/python-modules/pyclipper/default.nix
index b7b15c260fdbf..edde76cd28d8e 100644
--- a/pkgs/development/python-modules/pyclipper/default.nix
+++ b/pkgs/development/python-modules/pyclipper/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, setuptools-scm
-, cython
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  setuptools-scm,
+  cython,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     cython
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyclipper"
-  ];
+  pythonImportsCheck = [ "pyclipper" ];
 
   meta = with lib; {
     description = "Cython wrapper for clipper library";
diff --git a/pkgs/development/python-modules/pycm/default.nix b/pkgs/development/python-modules/pycm/default.nix
index 58570c1779020..0c22e1ac607d7 100644
--- a/pkgs/development/python-modules/pycm/default.nix
+++ b/pkgs/development/python-modules/pycm/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, matplotlib
-, numpy
-, pytestCheckHook
-, pythonOlder
-, seaborn
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  matplotlib,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  seaborn,
 }:
 
 buildPythonPackage rec {
@@ -28,8 +29,13 @@ buildPythonPackage rec {
     seaborn
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  disabledTests = [
+    # Minor tolerance issues with Python 3.12; should be fixed in next release
+    # (see https://github.com/sepandhaghighi/pycm/pull/528)
+    "verified_test"
+    "function_test"
   ];
 
   postPatch = ''
@@ -38,15 +44,10 @@ buildPythonPackage rec {
     # Also depends on python3Packages.notebook
     rm Otherfiles/notebook_check.py
     substituteInPlace setup.py \
-      --replace '=get_requires()' '=[]'
+      --replace-fail '=get_requires()' '=[]'
   '';
 
-  # https://github.com/sepandhaghighi/pycm/issues/488
-  pytestFlagsArray = [ "Test" ];
-
-  pythonImportsCheck = [
-    "pycm"
-  ];
+  pythonImportsCheck = [ "pycm" ];
 
   meta = with lib; {
     description = "Multiclass confusion matrix library";
diff --git a/pkgs/development/python-modules/pycmarkgfm/default.nix b/pkgs/development/python-modules/pycmarkgfm/default.nix
index 79700a7bdc7f0..41aedf437fcfd 100644
--- a/pkgs/development/python-modules/pycmarkgfm/default.nix
+++ b/pkgs/development/python-modules/pycmarkgfm/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27, cffi, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  cffi,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "pycmarkgfm";
diff --git a/pkgs/development/python-modules/pycocotools/default.nix b/pkgs/development/python-modules/pycocotools/default.nix
index 6cba9e71a7560..64f64a51fc588 100644
--- a/pkgs/development/python-modules/pycocotools/default.nix
+++ b/pkgs/development/python-modules/pycocotools/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cython
-, matplotlib
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cython,
+  matplotlib,
 }:
 
 buildPythonPackage rec {
   pname = "pycocotools";
-  version = "2.0.7";
+  version = "2.0.8";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2ot4FRlu6/Ctq/Z/zEWRJsvGSYu8arH9FEw3FGXYaHk=";
+    hash = "sha256-jyvO23hromw2ejaA+cTrWyrZ3MsrNOrrIF4KAh4d+40=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/pycodestyle/default.nix b/pkgs/development/python-modules/pycodestyle/default.nix
index f17001efdda16..9c6133207a3c8 100644
--- a/pkgs/development/python-modules/pycodestyle/default.nix
+++ b/pkgs/development/python-modules/pycodestyle/default.nix
@@ -1,14 +1,15 @@
-{ buildPythonPackage
-, pythonOlder
-, fetchPypi
-, lib
-, python
-, pytestCheckHook
+{
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  lib,
+  python,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "pycodestyle";
-  version = "2.11.1";
+  version = "2.12.0";
 
   disabled = pythonOlder "3.6";
 
@@ -16,16 +17,12 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-QboOevyXUt+1PO1UieifgYa+AOWZ5xJmBpW3p1/yZj8=";
+    hash = "sha256-RC+VAUG09D33Ut0wNRH/3tOgTCtvt/ZZgFdPDDHm55w=";
   };
 
-  pythonImportsCheck = [
-    "pycodestyle"
-  ];
+  pythonImportsCheck = [ "pycodestyle" ];
 
-  nativCheckInputs = [
-    pytestCheckHook
-  ];
+  nativCheckInputs = [ pytestCheckHook ];
 
   # https://github.com/PyCQA/pycodestyle/blob/2.11.0/tox.ini#L16
   postCheck = ''
@@ -38,8 +35,6 @@ buildPythonPackage rec {
     mainProgram = "pycodestyle";
     homepage = "https://pycodestyle.pycqa.org/";
     license = licenses.mit;
-    maintainers = with maintainers; [
-      kamadorueda
-    ];
+    maintainers = with maintainers; [ kamadorueda ];
   };
 }
diff --git a/pkgs/development/python-modules/pycognito/default.nix b/pkgs/development/python-modules/pycognito/default.nix
index e0f4e1d190a7f..fc601fca868d1 100644
--- a/pkgs/development/python-modules/pycognito/default.nix
+++ b/pkgs/development/python-modules/pycognito/default.nix
@@ -1,38 +1,42 @@
-{ lib
-, boto3
-, buildPythonPackage
-, envs
-, fetchFromGitHub
-, isPy27
-, freezegun
-, mock
-, moto
-, pyjwt
-, pytestCheckHook
-, requests
-, requests-mock
+{
+  lib,
+  boto3,
+  buildPythonPackage,
+  envs,
+  fetchFromGitHub,
+  freezegun,
+  mock,
+  moto,
+  pyjwt,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pycognito";
-  version = "2024.2.0";
-  format = "setuptools";
-  disabled = isPy27;
+  version = "2024.5.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "pvizeli";
-    repo = pname;
+    repo = "pycognito";
     rev = "refs/tags/${version}";
-    hash = "sha256-VYko5KcJvnhPUceTll2BBJWb88SYnSL7S3mZ7XSLPSQ=";
+    hash = "sha256-U23fFLru4j6GnWMcYtsCW9BVJkVcCoefPH6oMijYGew=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     boto3
     envs
     pyjwt
     requests
-  ]
-  ++ pyjwt.optional-dependencies.crypto;
+  ] ++ pyjwt.optional-dependencies.crypto;
 
   nativeCheckInputs = [
     freezegun
@@ -40,18 +44,12 @@ buildPythonPackage rec {
     moto
     pytestCheckHook
     requests-mock
-  ]
-  ++ moto.optional-dependencies.cognitoidp;
-
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace 'python-jose[cryptography]' 'python-jose'
-  '';
+  ] ++ moto.optional-dependencies.cognitoidp;
 
   pytestFlagsArray = [ "tests.py" ];
 
   disabledTests = [
-    # requires network access
+    # Test requires network access
     "test_srp_requests_http_auth"
   ];
 
@@ -60,6 +58,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python class to integrate Boto3's Cognito client so it is easy to login users. With SRP support";
     homepage = "https://github.com/pvizeli/pycognito";
+    changelog = "https://github.com/NabuCasa/pycognito/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ mic92 ];
   };
diff --git a/pkgs/development/python-modules/pycoin/default.nix b/pkgs/development/python-modules/pycoin/default.nix
index 4fe038b8ab2b2..e12e19a3ac723 100644
--- a/pkgs/development/python-modules/pycoin/default.nix
+++ b/pkgs/development/python-modules/pycoin/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, gnupg
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  gnupg,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pycollada/default.nix b/pkgs/development/python-modules/pycollada/default.nix
index 4b66ba84d2da0..8a27f29682b08 100644
--- a/pkgs/development/python-modules/pycollada/default.nix
+++ b/pkgs/development/python-modules/pycollada/default.nix
@@ -1,4 +1,10 @@
-{ lib, fetchPypi, buildPythonPackage, numpy, python-dateutil }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  numpy,
+  python-dateutil,
+}:
 
 buildPythonPackage rec {
   pname = "pycollada";
@@ -10,7 +16,10 @@ buildPythonPackage rec {
     sha256 = "sha256-86N1nMTOwdWekyqtdDmdvPVB0YhiqtkDx3AEDaQq8g4=";
   };
 
-  propagatedBuildInputs = [ numpy python-dateutil ];
+  propagatedBuildInputs = [
+    numpy
+    python-dateutil
+  ];
 
   # Some tests fail because they refer to test data files that don't exist
   # (upstream packaging issue)
diff --git a/pkgs/development/python-modules/pycomfoconnect/default.nix b/pkgs/development/python-modules/pycomfoconnect/default.nix
index a325583648ffb..f80e6318bc9ea 100644
--- a/pkgs/development/python-modules/pycomfoconnect/default.nix
+++ b/pkgs/development/python-modules/pycomfoconnect/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, protobuf
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  protobuf,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-I/0vCgSEi6mgYg1fMH4Ha7PoonewtqYYsvXZT8y4rJE=";
   };
 
-  propagatedBuildInputs = [
-    protobuf
-  ];
+  propagatedBuildInputs = [ protobuf ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pycomfoconnect"
-  ];
+  pythonImportsCheck = [ "pycomfoconnect" ];
 
   meta = with lib; {
     description = "Python module to interact with ComfoAir Q350/450/600 units";
diff --git a/pkgs/development/python-modules/pycomm3/default.nix b/pkgs/development/python-modules/pycomm3/default.nix
new file mode 100644
index 0000000000000..08c4281151932
--- /dev/null
+++ b/pkgs/development/python-modules/pycomm3/default.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  pythonOlder,
+}:
+
+buildPythonPackage rec {
+  pname = "pycomm3";
+  version = "1.2.14";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "ottowayi";
+    repo = "pycomm3";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-KdvmISMH2HHU8N665QevVw7q9Qs5CwjXxcWpLoziY/Y=";
+  };
+
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "pycomm3" ];
+
+  disabledTestPaths = [
+    # Don't test examples as some have aditional requirements
+    "examples/"
+    # No physical PLC available
+    "tests/online/"
+  ];
+
+  meta = with lib; {
+    description = "Python Ethernet/IP library for communicating with Allen-Bradley PLCs";
+    homepage = "https://github.com/ottowayi/pycomm3";
+    changelog = "https://github.com/ottowayi/pycomm3/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pycomposefile/default.nix b/pkgs/development/python-modules/pycomposefile/default.nix
index 2789fbb69d225..9ede189034507 100644
--- a/pkgs/development/python-modules/pycomposefile/default.nix
+++ b/pkgs/development/python-modules/pycomposefile/default.nix
@@ -1,36 +1,37 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pyyaml
-, twine
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyyaml,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pycomposefile";
-  version = "0.0.30";
-  format = "setuptools";
+  version = "0.0.31";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    extension = "tar.gz";
-    hash = "sha256-GQopIO8F+G5iDz4NF2GTHCpXo4uqKHdHIzffacihylM=";
+    hash = "sha256-SYul81giQLUM1FdgfabKJyrbSu4xdoaWblcE87ZbBwg=";
   };
 
-  nativeBuildInput = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ pyyaml ];
 
-  propagatedBuildInputs = [
-    pyyaml
-    twine
-  ];
+  # Tests are broken
+  doCheck = false;
 
-  doCheck = false; # tests are broken
+  pythonImportsCheck = [ "pycomposefile" ];
 
   meta = with lib; {
     description = "Python library for structured deserialization of Docker Compose files";
     homepage = "https://github.com/smurawski/pycomposefile";
+    changelog = "https://github.com/smurawski/pycomposefile/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ mdarocha ];
   };
diff --git a/pkgs/development/python-modules/pycontracts/default.nix b/pkgs/development/python-modules/pycontracts/default.nix
index bc17546643d52..7286de19ab78f 100644
--- a/pkgs/development/python-modules/pycontracts/default.nix
+++ b/pkgs/development/python-modules/pycontracts/default.nix
@@ -1,5 +1,13 @@
-{ lib, buildPythonPackage, fetchPypi
-, nose, pyparsing, decorator, six, future }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+  pyparsing,
+  decorator,
+  six,
+  future,
+}:
 
 buildPythonPackage rec {
   pname = "pycontracts";
@@ -12,7 +20,12 @@ buildPythonPackage rec {
   };
 
   buildInputs = [ nose ];
-  propagatedBuildInputs = [ pyparsing decorator six future ];
+  propagatedBuildInputs = [
+    pyparsing
+    decorator
+    six
+    future
+  ];
 
   meta = with lib; {
     description = "Allows to declare constraints on function parameters and return values";
diff --git a/pkgs/development/python-modules/pycontrol4/default.nix b/pkgs/development/python-modules/pycontrol4/default.nix
index e45c448bba0fe..e2ced48ec29a4 100644
--- a/pkgs/development/python-modules/pycontrol4/default.nix
+++ b/pkgs/development/python-modules/pycontrol4/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, aiohttp
-, xmltodict
-, python-socketio
-, websocket-client
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  aiohttp,
+  xmltodict,
+  python-socketio,
+  websocket-client,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
       --replace "python-socketio>=4,<5" "python-socketio>=4"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
diff --git a/pkgs/development/python-modules/pycookiecheat/default.nix b/pkgs/development/python-modules/pycookiecheat/default.nix
index 4a539f5ee191c..c90aee856a3c2 100644
--- a/pkgs/development/python-modules/pycookiecheat/default.nix
+++ b/pkgs/development/python-modules/pycookiecheat/default.nix
@@ -1,29 +1,29 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, keyring
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, playwright
-, setuptools
-, setuptools-scm
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  keyring,
+  pytestCheckHook,
+  pythonOlder,
+  playwright,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "pycookiecheat";
-  version = "0.6.0";
-  format = "pyproject";
+  version = "0.7.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "n8henrie";
     repo = "pycookiecheat";
     rev = "refs/tags/v${version}";
-    hash = "sha256-mSc5FqMM8BICVEdSdsIny9Bnk6qCRekPk4RkBusDoVA=";
+    hash = "sha256-x568e4M7fz93hq0y06Grz9GlrjGV38GxWd+PhNiAyBY=";
   };
 
   pythonRelaxDeps = [
@@ -31,13 +31,13 @@ buildPythonPackage rec {
     "keyring"
   ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+
+  dependencies = [
     cryptography
     keyring
   ];
@@ -47,9 +47,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pycookiecheat"
-  ];
+  pythonImportsCheck = [ "pycookiecheat" ];
 
   preCheck = ''
     export HOME=$(mktemp -d)
@@ -57,15 +55,14 @@ buildPythonPackage rec {
 
   disabledTests = [
     # Tests want to use playwright executable
-    "test_no_cookies"
     "test_fake_cookie"
     "test_firefox_cookies"
-    "test_load_firefox_cookie_db"
-    "test_firefox_no_cookies"
     "test_firefox_get_default_profile"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_slack_config"
-  ];
+    "test_firefox_no_cookies"
+    "test_load_firefox_cookie_db"
+    "test_no_cookies"
+    "test_warns_for_string_browser"
+  ] ++ lib.optionals stdenv.isDarwin [ "test_slack_config" ];
 
   meta = with lib; {
     description = "Borrow cookies from your browser's authenticated session for use in Python scripts";
diff --git a/pkgs/development/python-modules/pycoolmasternet-async/default.nix b/pkgs/development/python-modules/pycoolmasternet-async/default.nix
index d8aa5760d5d95..2da04fea37a43 100644
--- a/pkgs/development/python-modules/pycoolmasternet-async/default.nix
+++ b/pkgs/development/python-modules/pycoolmasternet-async/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
   # no tests implemented
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pycoolmasternet_async"
-  ];
+  pythonImportsCheck = [ "pycoolmasternet_async" ];
 
   meta = with lib; {
     description = "Python library to control CoolMasterNet HVAC bridges over asyncio";
diff --git a/pkgs/development/python-modules/pycosat/default.nix b/pkgs/development/python-modules/pycosat/default.nix
index 536f98cb27337..4b633d197db14 100644
--- a/pkgs/development/python-modules/pycosat/default.nix
+++ b/pkgs/development/python-modules/pycosat/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pycotap/default.nix b/pkgs/development/python-modules/pycotap/default.nix
index 3f1007317abf7..7b730f20f0d4b 100644
--- a/pkgs/development/python-modules/pycotap/default.nix
+++ b/pkgs/development/python-modules/pycotap/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "pycotap";
diff --git a/pkgs/development/python-modules/pycountry/default.nix b/pkgs/development/python-modules/pycountry/default.nix
index 75287c6cbf6b2..5a4fd3fc1bb5d 100644
--- a/pkgs/development/python-modules/pycountry/default.nix
+++ b/pkgs/development/python-modules/pycountry/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, fetchpatch2
-, poetry-core
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  fetchpatch2,
+  poetry-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,7 +26,11 @@ buildPythonPackage rec {
     (fetchpatch2 {
       name = "fix-usage-of-importlib_metadata.patch";
       url = "https://github.com/pycountry/pycountry/commit/824d2535833d061c04a1f1b6b964f42bb53bced2.patch";
-      excludes = [ "HISTORY.txt" "poetry.lock" "pyproject.toml" ];
+      excludes = [
+        "HISTORY.txt"
+        "poetry.lock"
+        "pyproject.toml"
+      ];
       hash = "sha256-U4fbZP++d6YfTJkVG3k2rBC8nOF9NflM6+ONlwBNu+g=";
     })
   ];
@@ -34,17 +39,11 @@ buildPythonPackage rec {
     sed -i "/addopts/d" pytest.ini
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pycountry"
-  ];
+  pythonImportsCheck = [ "pycountry" ];
 
   meta = {
     homepage = "https://github.com/pycountry/pycountry";
diff --git a/pkgs/development/python-modules/pycparser/default.nix b/pkgs/development/python-modules/pycparser/default.nix
index 89771e7df8f7a..fbdb230e3a874 100644
--- a/pkgs/development/python-modules/pycparser/default.nix
+++ b/pkgs/development/python-modules/pycparser/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, unittestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  unittestCheckHook,
+  pythonOlder,
+}:
 
 buildPythonPackage rec {
   pname = "pycparser";
@@ -11,8 +17,12 @@ buildPythonPackage rec {
   };
 
   nativeCheckInputs = [ unittestCheckHook ];
+  disabled = pythonOlder "3.8";
 
-  unittestFlagsArray = [ "-s" "tests" ];
+  unittestFlagsArray = [
+    "-s"
+    "tests"
+  ];
 
   meta = with lib; {
     description = "C parser in Python";
diff --git a/pkgs/development/python-modules/pycrc/default.nix b/pkgs/development/python-modules/pycrc/default.nix
index 71404dd4d5ad1..146f0bf2600e6 100644
--- a/pkgs/development/python-modules/pycrc/default.nix
+++ b/pkgs/development/python-modules/pycrc/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "pycrc";
diff --git a/pkgs/development/python-modules/pycrdt-websocket/default.nix b/pkgs/development/python-modules/pycrdt-websocket/default.nix
index 74e34811279f8..4e727cc583162 100644
--- a/pkgs/development/python-modules/pycrdt-websocket/default.nix
+++ b/pkgs/development/python-modules/pycrdt-websocket/default.nix
@@ -1,21 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, hatchling
-, aiosqlite
-, anyio
-, channels
-, pycrdt
-, pytest-asyncio
-, pytestCheckHook
-, uvicorn
-, websockets
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  hatchling,
+  anyio,
+  channels,
+  httpx-ws,
+  hypercorn,
+  pycrdt,
+  pytest-asyncio,
+  pytestCheckHook,
+  sqlite-anyio,
+  trio,
+  uvicorn,
+  websockets,
 }:
 
 buildPythonPackage rec {
   pname = "pycrdt-websocket";
-  version = "0.12.7";
+  version = "0.13.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,32 +28,29 @@ buildPythonPackage rec {
     owner = "jupyter-server";
     repo = "pycrdt-websocket";
     rev = "refs/tags/v${version}";
-    hash = "sha256-e4VEEudsdtfC2ek8wODxxoFuaOwl4GKS1cX3QeshuD8=";
+    hash = "sha256-dzlmgxrdQ97+DO/vDtoX7PIOpngEE+FGUGq1vdVmhNw=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
-  propagatedBuildInputs = [
-    aiosqlite
+  dependencies = [
     anyio
     pycrdt
+    sqlite-anyio
   ];
 
-  passthru.optional-dependencies = {
-    django = [
-      channels
-    ];
+  optional-dependencies = {
+    django = [ channels ];
   };
 
-  pythonImportsCheck = [
-    "pycrdt_websocket"
-  ];
+  pythonImportsCheck = [ "pycrdt_websocket" ];
 
   nativeCheckInputs = [
+    httpx-ws
+    hypercorn
     pytest-asyncio
     pytestCheckHook
+    trio
     uvicorn
     websockets
   ];
diff --git a/pkgs/development/python-modules/pycrdt/Cargo.lock b/pkgs/development/python-modules/pycrdt/Cargo.lock
index ac98cbf0d09ff..a0140aa4c2609 100644
--- a/pkgs/development/python-modules/pycrdt/Cargo.lock
+++ b/pkgs/development/python-modules/pycrdt/Cargo.lock
@@ -4,9 +4,9 @@ version = 3
 
 [[package]]
 name = "arc-swap"
-version = "1.7.0"
+version = "1.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b3d0060af21e8d11a926981cc00c6c1541aa91dd64b9f881985c3da1094425f"
+checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457"
 
 [[package]]
 name = "atomic_refcell"
@@ -16,21 +16,21 @@ checksum = "41e67cd8309bbd06cd603a9e693a784ac2e5d1e955f11286e355089fcab3047c"
 
 [[package]]
 name = "autocfg"
-version = "1.1.0"
+version = "1.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
+checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
 
 [[package]]
 name = "bitflags"
-version = "1.3.2"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
 
 [[package]]
 name = "bumpalo"
-version = "3.15.4"
+version = "3.16.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ff69b9dd49fd426c69a0db9fc04dd934cdb6645ff000864d98f7e2af8830eaa"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
 
 [[package]]
 name = "cfg-if"
@@ -40,18 +40,18 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
 
 [[package]]
 name = "fastrand"
-version = "2.0.1"
+version = "2.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5"
+checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
 dependencies = [
  "getrandom",
 ]
 
 [[package]]
 name = "getrandom"
-version = "0.2.12"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5"
+checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7"
 dependencies = [
  "cfg-if",
  "js-sys",
@@ -68,15 +68,15 @@ checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
 
 [[package]]
 name = "indoc"
-version = "2.0.4"
+version = "2.0.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e186cfbae8084e513daff4240b4797e342f988cecda4fb6c939150f96315fd8"
+checksum = "b248f5224d1d606005e02c97f5aa4e88eeb230488bcc03bc9ca4d7991399f2b5"
 
 [[package]]
 name = "itoa"
-version = "1.0.10"
+version = "1.0.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
 
 [[package]]
 name = "js-sys"
@@ -89,15 +89,15 @@ dependencies = [
 
 [[package]]
 name = "libc"
-version = "0.2.153"
+version = "0.2.154"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd"
+checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
 
 [[package]]
 name = "lock_api"
-version = "0.4.11"
+version = "0.4.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
 dependencies = [
  "autocfg",
  "scopeguard",
@@ -111,9 +111,9 @@ checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
 
 [[package]]
 name = "memoffset"
-version = "0.9.0"
+version = "0.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
 dependencies = [
  "autocfg",
 ]
@@ -126,9 +126,9 @@ checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
 
 [[package]]
 name = "parking_lot"
-version = "0.12.1"
+version = "0.12.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb"
 dependencies = [
  "lock_api",
  "parking_lot_core",
@@ -136,9 +136,9 @@ dependencies = [
 
 [[package]]
 name = "parking_lot_core"
-version = "0.9.9"
+version = "0.9.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
 dependencies = [
  "cfg-if",
  "libc",
@@ -155,16 +155,16 @@ checksum = "7170ef9988bc169ba16dd36a7fa041e5c4cbeb6a35b76d4c03daded371eae7c0"
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.79"
+version = "1.0.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e835ff2298f5721608eb1a980ecaee1aef2c132bf95ecc026a11b7bf3c01c02e"
+checksum = "8ad3d49ab951a01fbaafe34f2ec74122942fe18a3f9814c3268f1bb72042131b"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "pycrdt"
-version = "0.8.13"
+version = "0.8.24"
 dependencies = [
  "pyo3",
  "yrs",
@@ -235,27 +235,27 @@ dependencies = [
 
 [[package]]
 name = "quote"
-version = "1.0.35"
+version = "1.0.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
 name = "redox_syscall"
-version = "0.4.1"
+version = "0.5.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
 dependencies = [
  "bitflags",
 ]
 
 [[package]]
 name = "ryu"
-version = "1.0.17"
+version = "1.0.18"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+checksum = "f3cb5ba0dc43242ce17de99c180e96db90b235b8a9fdc9543c96d2209116bd9f"
 
 [[package]]
 name = "scopeguard"
@@ -265,18 +265,18 @@ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
 
 [[package]]
 name = "serde"
-version = "1.0.197"
+version = "1.0.200"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3fb1c873e1b9b056a4dc4c0c198b24c3ffa059243875552b2bd0933b1aee4ce2"
+checksum = "ddc6f9cc94d67c0e21aaf7eda3a010fd3af78ebf6e096aa6e2e13c79749cce4f"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.197"
+version = "1.0.200"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7eb0b34b42edc17f6b7cac84a52a1c5f0e1bb2227e997ca9011ea3dd34e8610b"
+checksum = "856f046b9400cee3c8c94ed572ecdb752444c24528c035cd35882aad6f492bcb"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -285,9 +285,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.114"
+version = "1.0.116"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
+checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
 dependencies = [
  "itoa",
  "ryu",
@@ -305,15 +305,15 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.13.1"
+version = "1.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
 
 [[package]]
 name = "syn"
-version = "2.0.53"
+version = "2.0.61"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7383cd0e49fff4b6b90ca5670bfd3e9d6a733b3f90c686605aa7eec8c4996032"
+checksum = "c993ed8ccba56ae856363b1845da7266a7cb78e1d146c8a32d54b45a8b831fc9"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -328,18 +328,18 @@ checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
 
 [[package]]
 name = "thiserror"
-version = "1.0.58"
+version = "1.0.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "03468839009160513471e86a034bb2c5c0e4baae3b43f79ffc55c4a5427b3297"
+checksum = "579e9083ca58dd9dcf91a9923bb9054071b9ebbd800b342194c9feb0ee89fc18"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.58"
+version = "1.0.60"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c61f3ba182994efc43764a46c018c347bc492c79f024e705f46567b418f6d4f7"
+checksum = "e2470041c06ec3ac1ab38d0356a6119054dedaea53e12fbefc0de730a1c08524"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -420,13 +420,14 @@ checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
 
 [[package]]
 name = "windows-targets"
-version = "0.48.5"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
 dependencies = [
  "windows_aarch64_gnullvm",
  "windows_aarch64_msvc",
  "windows_i686_gnu",
+ "windows_i686_gnullvm",
  "windows_i686_msvc",
  "windows_x86_64_gnu",
  "windows_x86_64_gnullvm",
@@ -435,51 +436,57 @@ dependencies = [
 
 [[package]]
 name = "windows_aarch64_gnullvm"
-version = "0.48.5"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
 
 [[package]]
 name = "windows_aarch64_msvc"
-version = "0.48.5"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
 
 [[package]]
 name = "windows_i686_gnu"
-version = "0.48.5"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
 
 [[package]]
 name = "windows_i686_msvc"
-version = "0.48.5"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
 
 [[package]]
 name = "windows_x86_64_gnu"
-version = "0.48.5"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
 
 [[package]]
 name = "windows_x86_64_gnullvm"
-version = "0.48.5"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
 
 [[package]]
 name = "windows_x86_64_msvc"
-version = "0.48.5"
+version = "0.52.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
 
 [[package]]
 name = "yrs"
-version = "0.18.0"
+version = "0.18.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5ad19cd99f9c036345d66331db64c7b2c823ca1ac2c30c5ca26eed149c6b4672"
+checksum = "d58fbc807677598fedfab76f99f6e1aa5c644411255002b5438ea0ab14672398"
 dependencies = [
  "arc-swap",
  "atomic_refcell",
diff --git a/pkgs/development/python-modules/pycrdt/default.nix b/pkgs/development/python-modules/pycrdt/default.nix
index c77c360516a05..85a994d9f201a 100644
--- a/pkgs/development/python-modules/pycrdt/default.nix
+++ b/pkgs/development/python-modules/pycrdt/default.nix
@@ -1,35 +1,35 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, libiconv
-, cargo
-, rustPlatform
-, rustc
-, pydantic
-, pytestCheckHook
-, y-py
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  libiconv,
+  cargo,
+  rustPlatform,
+  rustc,
+  objsize,
+  pydantic,
+  pytestCheckHook,
+  y-py,
 }:
 
 buildPythonPackage rec {
   pname = "pycrdt";
-  version = "0.8.13";
+  version = "0.8.24";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "jupyter-server";
     repo = "pycrdt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-puYJ0mR1JpwD823P6JrXmNjFvqZUPqEj2T4Wk81oBMU=";
+    hash = "sha256-3j5OhjeVE42n4EEOOMUGlQGdnQ/xia0KD543uCMFpCo=";
   };
 
   postPatch = ''
     cp ${./Cargo.lock} Cargo.lock
   '';
 
-  cargoDeps = rustPlatform.importCargoLock {
-    lockFile = ./Cargo.lock;
-  };
+  cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; };
 
   nativeBuildInputs = [
     cargo
@@ -38,19 +38,15 @@ buildPythonPackage rec {
     rustc
   ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
-    libiconv
-  ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   pythonImportsCheck = [ "pycrdt" ];
 
-  # requires pydantic>=2.5
-  doCheck = false;
-
   nativeCheckInputs = [
+    objsize
+    pydantic
     pytestCheckHook
     y-py
-    pydantic
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pycritty/default.nix b/pkgs/development/python-modules/pycritty/default.nix
index 1044d2e72e77c..770d7c3ca29a2 100644
--- a/pkgs/development/python-modules/pycritty/default.nix
+++ b/pkgs/development/python-modules/pycritty/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, pyyaml }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pyyaml,
+}:
 
 buildPythonPackage rec {
   pname = "pycritty";
@@ -25,7 +31,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pycritty" ];
 
   meta = with lib; {
-    description = "A CLI tool for changing your alacritty configuration on the fly";
+    description = "CLI tool for changing your alacritty configuration on the fly";
     mainProgram = "pycritty";
     homepage = "https://github.com/antoniosarosi/pycritty";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pycron/default.nix b/pkgs/development/python-modules/pycron/default.nix
index 2e607b50dd745..c861dfaa4b37c 100644
--- a/pkgs/development/python-modules/pycron/default.nix
+++ b/pkgs/development/python-modules/pycron/default.nix
@@ -1,24 +1,40 @@
-{ lib, buildPythonPackage, fetchFromGitHub, udatetime, pytz, pendulum, nose
-, delorean, coveralls, arrow
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  arrow,
+  delorean,
+  pendulum,
+  pynose,
+  pytestCheckHook,
+  pytz,
+  udatetime,
 }:
 
 buildPythonPackage rec {
   pname = "pycron";
   version = "3.0.0";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "kipe";
-    repo = pname;
+    repo = "pycron";
     rev = version;
-    sha256 = "12hkqrdfg3jbqkmck8i00ssyaw1c4hhvdhjxkmh2gm9pd99z5bpv";
+    hash = "sha256-+67yU2o31SdgnV3CtiEkLHDltQYgosnqxEuO51rGE4o=";
   };
 
-  nativeCheckInputs = [ arrow coveralls delorean nose pendulum pytz udatetime ];
+  build-system = [ setuptools ];
 
-  checkPhase = ''
-    nosetests
-  '';
+  nativeCheckInputs = [
+    arrow
+    delorean
+    pendulum
+    pynose
+    pytestCheckHook
+    pytz
+    udatetime
+  ];
 
   pythonImportsCheck = [ "pycron" ];
 
diff --git a/pkgs/development/python-modules/pycrypto/default.nix b/pkgs/development/python-modules/pycrypto/default.nix
index 72b91834eed7e..72000acad17ef 100644
--- a/pkgs/development/python-modules/pycrypto/default.nix
+++ b/pkgs/development/python-modules/pycrypto/default.nix
@@ -9,7 +9,7 @@ buildPythonPackage rec {
   format = "setuptools";
 
   # Cannot build wheel otherwise (zip 1980 issue)
-  SOURCE_DATE_EPOCH=315532800;
+  SOURCE_DATE_EPOCH = 315532800;
 
   # We need to have a dist-info folder, so let's create one with setuptools
   unpackPhase = ''
diff --git a/pkgs/development/python-modules/pycryptodome/default.nix b/pkgs/development/python-modules/pycryptodome/default.nix
index 358348d865d85..e9d1254ede328 100644
--- a/pkgs/development/python-modules/pycryptodome/default.nix
+++ b/pkgs/development/python-modules/pycryptodome/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, callPackage
-, fetchFromGitHub
-, gmp
+{
+  lib,
+  buildPythonPackage,
+  callPackage,
+  fetchFromGitHub,
+  gmp,
 }:
 
 let
@@ -25,19 +26,18 @@ buildPythonPackage rec {
       --replace 'load_lib("gmp"' 'load_lib("${gmp}/lib/libgmp.so.10"'
   '';
 
-  nativeCheckInputs = [
-    test-vectors
-  ];
+  nativeCheckInputs = [ test-vectors ];
 
-  pythonImportsCheck = [
-    "Crypto"
-  ];
+  pythonImportsCheck = [ "Crypto" ];
 
   meta = with lib; {
     description = "Self-contained cryptographic library";
     homepage = "https://github.com/Legrandin/pycryptodome";
     changelog = "https://github.com/Legrandin/pycryptodome/blob/v${version}/Changelog.rst";
-    license = with licenses; [ bsd2 /* and */ asl20 ];
+    license = with licenses; [
+      bsd2 # and
+      asl20
+    ];
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/pycryptodome/vectors.nix b/pkgs/development/python-modules/pycryptodome/vectors.nix
index 3b6e2844df4c3..349738ee0b2aa 100644
--- a/pkgs/development/python-modules/pycryptodome/vectors.nix
+++ b/pkgs/development/python-modules/pycryptodome/vectors.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -15,21 +16,20 @@ buildPythonPackage rec {
     extension = "zip";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pycryptodome_test_vectors"
-  ];
+  pythonImportsCheck = [ "pycryptodome_test_vectors" ];
 
   meta = with lib; {
     description = "Test vectors for PyCryptodome cryptographic library";
     homepage = "https://www.pycryptodome.org/";
-    license = with licenses; [ bsd2 /* and */ asl20 ];
+    license = with licenses; [
+      bsd2 # and
+      asl20
+    ];
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/pycryptodomex/default.nix b/pkgs/development/python-modules/pycryptodomex/default.nix
index 9d476ea4728c1..b2ced090667df 100644
--- a/pkgs/development/python-modules/pycryptodomex/default.nix
+++ b/pkgs/development/python-modules/pycryptodomex/default.nix
@@ -7,7 +7,5 @@
     touch .separate_namespace
   '';
 
-  pythonImportsCheck = [
-    "Cryptodome"
-  ];
+  pythonImportsCheck = [ "Cryptodome" ];
 }))
diff --git a/pkgs/development/python-modules/pycsdr/default.nix b/pkgs/development/python-modules/pycsdr/default.nix
index 08f03019dd785..53a8f25d78d8b 100644
--- a/pkgs/development/python-modules/pycsdr/default.nix
+++ b/pkgs/development/python-modules/pycsdr/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, csdr }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  csdr,
+}:
 
 buildPythonPackage rec {
   pname = "pycsdr";
diff --git a/pkgs/development/python-modules/pyct/default.nix b/pkgs/development/python-modules/pyct/default.nix
index 4897a7e549172..4bc528b64f95f 100644
--- a/pkgs/development/python-modules/pyct/default.nix
+++ b/pkgs/development/python-modules/pyct/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, param
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  param,
+  pytestCheckHook,
+  pythonAtLeast,
+  pyyaml,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -13,7 +14,7 @@ buildPythonPackage rec {
   version = "0.5.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonAtLeast "3.12";
 
   src = fetchPypi {
     inherit pname version;
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyct"
-  ];
+  pythonImportsCheck = [ "pyct" ];
 
   meta = with lib; {
     description = "ClI for Python common tasks for users";
diff --git a/pkgs/development/python-modules/pyctr/default.nix b/pkgs/development/python-modules/pyctr/default.nix
index cf225369b3958..1267085c86e86 100644
--- a/pkgs/development/python-modules/pyctr/default.nix
+++ b/pkgs/development/python-modules/pyctr/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pycryptodomex
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pycryptodomex,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-fiDJWcypFabnUoS313f56ypDuDrLASHrkk0Em8bymmw=";
   };
 
-  propagatedBuildInputs = [
-    pycryptodomex
-  ];
+  propagatedBuildInputs = [ pycryptodomex ];
 
-  pythonImportsCheck = [
-    "pyctr"
-  ];
+  pythonImportsCheck = [ "pyctr" ];
 
   meta = with lib; {
     description = "Python library to interact with Nintendo 3DS files";
diff --git a/pkgs/development/python-modules/pycuda/compyte.nix b/pkgs/development/python-modules/pycuda/compyte.nix
index cfa685c1ac9ce..b25844738acae 100644
--- a/pkgs/development/python-modules/pycuda/compyte.nix
+++ b/pkgs/development/python-modules/pycuda/compyte.nix
@@ -1,6 +1,4 @@
-{ mkDerivation
-, fetchFromGitHub
-}:
+{ mkDerivation, fetchFromGitHub }:
 
 mkDerivation {
   pname = "compyte";
@@ -17,5 +15,4 @@ mkDerivation {
     mkdir -p $out
     cp -r * $out
   '';
-
 }
diff --git a/pkgs/development/python-modules/pycuda/default.nix b/pkgs/development/python-modules/pycuda/default.nix
index 129bd6269cd45..145bdcaad36b8 100644
--- a/pkgs/development/python-modules/pycuda/default.nix
+++ b/pkgs/development/python-modules/pycuda/default.nix
@@ -1,24 +1,23 @@
-{ buildPythonPackage
-, addOpenGLRunpath
-, fetchPypi
-, fetchFromGitHub
-, mako
-, boost
-, numpy
-, pytools
-, pytest
-, decorator
-, appdirs
-, six
-, cudaPackages
-, python
-, mkDerivation
-, lib
+{
+  buildPythonPackage,
+  addOpenGLRunpath,
+  fetchPypi,
+  fetchFromGitHub,
+  mako,
+  boost,
+  numpy,
+  pytools,
+  pytest,
+  decorator,
+  appdirs,
+  six,
+  cudaPackages,
+  python,
+  mkDerivation,
+  lib,
 }:
 let
-  compyte = import ./compyte.nix {
-    inherit mkDerivation fetchFromGitHub;
-  };
+  compyte = import ./compyte.nix { inherit mkDerivation fetchFromGitHub; };
 
   inherit (cudaPackages) cudatoolkit;
 in
@@ -58,9 +57,7 @@ buildPythonPackage rec {
     py.test
   '';
 
-  nativeBuildInputs = [
-    addOpenGLRunpath
-  ];
+  nativeBuildInputs = [ addOpenGLRunpath ];
 
   propagatedBuildInputs = [
     numpy
@@ -77,9 +74,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/inducer/pycuda/";
-    description = "CUDA integration for Python.";
+    description = "CUDA integration for Python";
     license = licenses.mit;
     maintainers = with maintainers; [ artuuge ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pycups/default.nix b/pkgs/development/python-modules/pycups/default.nix
index 12adc1f669afc..79c1646b1059c 100644
--- a/pkgs/development/python-modules/pycups/default.nix
+++ b/pkgs/development/python-modules/pycups/default.nix
@@ -1,4 +1,11 @@
-{ stdenv, lib, buildPythonPackage, fetchPypi, cups, libiconv }:
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cups,
+  libiconv,
+}:
 
 buildPythonPackage rec {
   pname = "pycups";
diff --git a/pkgs/development/python-modules/pycurl/default.nix b/pkgs/development/python-modules/pycurl/default.nix
index 3e966057bb243..38d46c58e7b13 100644
--- a/pkgs/development/python-modules/pycurl/default.nix
+++ b/pkgs/development/python-modules/pycurl/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, isPyPy
-, fetchPypi
-, pythonOlder
-, curl
-, openssl
-, bottle
-, pytestCheckHook
-, flaky
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  isPyPy,
+  fetchPypi,
+  pythonOlder,
+  curl,
+  openssl,
+  bottle,
+  pytestCheckHook,
+  flaky,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     openssl
   ];
 
-  nativeBuildInputs = [
-    curl
-  ];
+  nativeBuildInputs = [ curl ];
 
   __darwinAllowLocalNetworking = true;
 
@@ -53,38 +52,43 @@ buildPythonPackage rec {
     export HOME=$TMPDIR
   '';
 
-  disabledTests = [
-    # tests that require network access
-    "test_keyfunction"
-    "test_keyfunction_bogus_return"
-    # OSError: tests/fake-curl/libcurl/with_openssl.so: cannot open shared object file: No such file or directory
-    "test_libcurl_ssl_openssl"
-    # OSError: tests/fake-curl/libcurl/with_nss.so: cannot open shared object file: No such file or directory
-    "test_libcurl_ssl_nss"
-    # OSError: tests/fake-curl/libcurl/with_gnutls.so: cannot open shared object file: No such file or directory
-    "test_libcurl_ssl_gnutls"
-    # AssertionError: assert 'crypto' in ['curl']
-    "test_ssl_in_static_libs"
-    # tests that require curl with http3Support
-    "test_http_version_3"
-    # https://github.com/pycurl/pycurl/issues/819
-    "test_multi_socket_select"
-    # https://github.com/pycurl/pycurl/issues/729
-    "test_easy_pause_unpause"
-    "test_multi_socket_action"
-    # https://github.com/pycurl/pycurl/issues/822
-    "test_request_with_verifypeer"
-    # https://github.com/pycurl/pycurl/issues/836
-    "test_proxy_tlsauth"
-  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
-    # Fatal Python error: Segmentation fault
-    "cadata_test"
-  ];
+  disabledTests =
+    [
+      # tests that require network access
+      "test_keyfunction"
+      "test_keyfunction_bogus_return"
+      # OSError: tests/fake-curl/libcurl/with_openssl.so: cannot open shared object file: No such file or directory
+      "test_libcurl_ssl_openssl"
+      # OSError: tests/fake-curl/libcurl/with_nss.so: cannot open shared object file: No such file or directory
+      "test_libcurl_ssl_nss"
+      # OSError: tests/fake-curl/libcurl/with_gnutls.so: cannot open shared object file: No such file or directory
+      "test_libcurl_ssl_gnutls"
+      # AssertionError: assert 'crypto' in ['curl']
+      "test_ssl_in_static_libs"
+      # tests that require curl with http3Support
+      "test_http_version_3"
+      # https://github.com/pycurl/pycurl/issues/819
+      "test_multi_socket_select"
+      # https://github.com/pycurl/pycurl/issues/729
+      "test_easy_pause_unpause"
+      "test_multi_socket_action"
+      # https://github.com/pycurl/pycurl/issues/822
+      "test_request_with_verifypeer"
+      # https://github.com/pycurl/pycurl/issues/836
+      "test_proxy_tlsauth"
+    ]
+    ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+      # Fatal Python error: Segmentation fault
+      "cadata_test"
+    ];
 
   meta = with lib; {
     homepage = "http://pycurl.io/";
     description = "Python Interface To The cURL library";
-    license = with licenses; [ lgpl2Only mit ];
+    license = with licenses; [
+      lgpl2Only
+      mit
+    ];
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pycxx/default.nix b/pkgs/development/python-modules/pycxx/default.nix
index 5cc1056f83271..a99dd7445f2cb 100644
--- a/pkgs/development/python-modules/pycxx/default.nix
+++ b/pkgs/development/python-modules/pycxx/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchurl, python }:
+{
+  lib,
+  buildPythonPackage,
+  fetchurl,
+  python,
+}:
 
 buildPythonPackage rec {
   pname = "pycxx";
@@ -10,7 +15,10 @@ buildPythonPackage rec {
     sha256 = "MUMU+/qsm92WENYFxfjQsSuR8/nE/asYG8HgIbaAaz0=";
   };
 
-  outputs = [ "out" "dev" ];
+  outputs = [
+    "out"
+    "dev"
+  ];
 
   postInstall = ''
     mkdir -p $dev/include
diff --git a/pkgs/development/python-modules/pycycling/default.nix b/pkgs/development/python-modules/pycycling/default.nix
new file mode 100644
index 0000000000000..6f277cffc8ff4
--- /dev/null
+++ b/pkgs/development/python-modules/pycycling/default.nix
@@ -0,0 +1,33 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  bleak,
+}:
+
+buildPythonPackage rec {
+  pname = "pycycling";
+  version = "0.4.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-yi3ZcyhhOtHp46MK0R15/dic+b1oYjy4tFVRH3ssbE8=";
+  };
+
+  build-system = [ setuptools ];
+
+  propagatedBuildInputs = [
+    bleak
+  ];
+
+  pythonImportsCheck = [ pname ];
+
+  meta = with lib; {
+    description = "Package for interacting with Bluetooth Low Energy (BLE) compatible bike trainers, power meters, radars and heart rate monitors";
+    homepage = "https://github.com/zacharyedwardbull/pycycling";
+    changelog = "https://github.com/zacharyedwardbull/pycycling/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ viraptor ];
+  };
+}
diff --git a/pkgs/development/python-modules/pycyphal/default.nix b/pkgs/development/python-modules/pycyphal/default.nix
index 9067a3f06ad53..36d138b188cd1 100644
--- a/pkgs/development/python-modules/pycyphal/default.nix
+++ b/pkgs/development/python-modules/pycyphal/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, can
-, cobs
-, libpcap
-, nunavut
-, numpy
-, pyserial
-, pytestCheckHook
-, pytest-asyncio
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  can,
+  cobs,
+  libpcap,
+  nunavut,
+  numpy,
+  pyserial,
+  pytestCheckHook,
+  pytest-asyncio,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -34,24 +35,18 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    transport-can-pythoncan = [
-      can
-    ] ++ can.optional-dependencies.serial;
+    transport-can-pythoncan = [ can ] ++ can.optional-dependencies.serial;
     transport-serial = [
       cobs
       pyserial
     ];
-    transport-udp = [
-      libpcap
-    ];
+    transport-udp = [ libpcap ];
   };
 
   nativeCheckInputs = [
     pytestCheckHook
     pytest-asyncio
-  ] ++ builtins.foldl' (x: y: x ++ y) [ ]
-    (builtins.attrValues passthru.optional-dependencies)
-  ;
+  ] ++ builtins.foldl' (x: y: x ++ y) [ ] (builtins.attrValues passthru.optional-dependencies);
 
   preCheck = ''
     export HOME=$TMPDIR
@@ -82,12 +77,10 @@ buildPythonPackage rec {
     "tests/transport"
   ];
 
-  pythonImportsCheck = [
-    "pycyphal"
-  ];
+  pythonImportsCheck = [ "pycyphal" ];
 
   meta = with lib; {
-    description = "A full-featured implementation of the Cyphal protocol stack in Python";
+    description = "Full-featured implementation of the Cyphal protocol stack in Python";
     longDescription = ''
       Cyphal is an open technology for real-time intravehicular distributed computing and communication based on modern networking standards (Ethernet, CAN FD, etc.).
     '';
diff --git a/pkgs/development/python-modules/pydaikin/default.nix b/pkgs/development/python-modules/pydaikin/default.nix
index d669efbffbebb..c551f3db55886 100644
--- a/pkgs/development/python-modules/pydaikin/default.nix
+++ b/pkgs/development/python-modules/pydaikin/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromBitbucket
-, freezegun
-, netifaces
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, urllib3
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromBitbucket,
+  freezegun,
+  netifaces,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pydaikin"
-  ];
+  pythonImportsCheck = [ "pydaikin" ];
 
   meta = with lib; {
     description = "Python Daikin HVAC appliances interface";
diff --git a/pkgs/development/python-modules/pydal/default.nix b/pkgs/development/python-modules/pydal/default.nix
index 541d7124f11a7..e425d21f52e0e 100644
--- a/pkgs/development/python-modules/pydal/default.nix
+++ b/pkgs/development/python-modules/pydal/default.nix
@@ -1,30 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pydal";
-  version = "20231114.3";
+  version = "20240601.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-xC0W/Knju205mu+yQ0wOcIYu4Tx1Q3hS9CGSBDLuX7E=";
+    hash = "sha256-t7Sl81YpdQZk4Q2ERz6jiJsD3ERmC8QVlr0d/RrNmhU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [
     "tests/*.py"
@@ -40,12 +37,12 @@ buildPythonPackage rec {
     "--deselect=tests/validators.py::TestValidators::test_IS_IN_DB"
   ];
 
-  pythonImportsCheck = ["pydal"];
+  pythonImportsCheck = [ "pydal" ];
 
   meta = with lib; {
     description = "Python Database Abstraction Layer";
     homepage = "https://github.com/web2py/pydal";
-    license = with licenses; [ bsd3 ] ;
+    license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ wamserma ];
   };
 }
diff --git a/pkgs/development/python-modules/pydanfossair/default.nix b/pkgs/development/python-modules/pydanfossair/default.nix
index 226e5a1aa4ef8..dd8a8d9c71afd 100644
--- a/pkgs/development/python-modules/pydanfossair/default.nix
+++ b/pkgs/development/python-modules/pydanfossair/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pydantic-compat/default.nix b/pkgs/development/python-modules/pydantic-compat/default.nix
index 33ed206578ed7..a9a9e781269bb 100644
--- a/pkgs/development/python-modules/pydantic-compat/default.nix
+++ b/pkgs/development/python-modules/pydantic-compat/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, git
-, hatch-vcs
-, hatchling
-, importlib-metadata
-, pydantic
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  git,
+  hatch-vcs,
+  hatchling,
+  importlib-metadata,
+  pydantic,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -36,13 +37,9 @@ buildPythonPackage rec {
     pydantic
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pydantic_compat"
-  ];
+  pythonImportsCheck = [ "pydantic_compat" ];
 
   meta = with lib; {
     description = "Compatibility layer for pydantic v1/v2";
diff --git a/pkgs/development/python-modules/pydantic-core/default.nix b/pkgs/development/python-modules/pydantic-core/default.nix
index 6242c205ea70b..b0a84ed3fbdbe 100644
--- a/pkgs/development/python-modules/pydantic-core/default.nix
+++ b/pkgs/development/python-modules/pydantic-core/default.nix
@@ -1,40 +1,39 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, cargo
-, rustPlatform
-, rustc
-, libiconv
-, typing-extensions
-, pytestCheckHook
-, hypothesis
-, pytest-timeout
-, pytest-mock
-, dirty-equals
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cargo,
+  rustPlatform,
+  rustc,
+  libiconv,
+  typing-extensions,
+  pytestCheckHook,
+  hypothesis,
+  pytest-timeout,
+  pytest-mock,
+  dirty-equals,
 }:
 
 let
   pydantic-core = buildPythonPackage rec {
     pname = "pydantic-core";
-    version = "2.16.3";
+    version = "2.18.4";
     pyproject = true;
 
     src = fetchFromGitHub {
       owner = "pydantic";
       repo = "pydantic-core";
       rev = "refs/tags/v${version}";
-      hash = "sha256-RXytujvx/23Z24TWpvnHdjJ4/dXqjs5uiavUmukaD9A=";
+      hash = "sha256-wt6HG2jQU09Zxhxhzb49HvNnxahfSk2xvNApVZkqqbw=";
     };
 
-    patches = [
-      ./01-remove-benchmark-flags.patch
-    ];
+    patches = [ ./01-remove-benchmark-flags.patch ];
 
     cargoDeps = rustPlatform.fetchCargoTarball {
       inherit src;
       name = "${pname}-${version}";
-      hash = "sha256-wj9u6s/3E3EWfQydkLrwHbJBvm8DwcGCoQQpSw1+q7U=";
+      hash = "sha256-m0xP4fIFgInkUeAy4HqfTKHEiqmWpYO8CgKzxg+WXiU=";
     };
 
     nativeBuildInputs = [
@@ -48,13 +47,9 @@ let
       typing-extensions
     ];
 
-    buildInputs = lib.optionals stdenv.isDarwin [
-      libiconv
-    ];
+    buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
-    dependencies = [
-      typing-extensions
-    ];
+    dependencies = [ typing-extensions ];
 
     pythonImportsCheck = [ "pydantic_core" ];
 
@@ -88,4 +83,5 @@ let
       maintainers = with maintainers; [ blaggacao ];
     };
   };
-in pydantic-core
+in
+pydantic-core
diff --git a/pkgs/development/python-modules/pydantic-extra-types/default.nix b/pkgs/development/python-modules/pydantic-extra-types/default.nix
index 7595ac0b1d573..6a9cfaaeb29f5 100644
--- a/pkgs/development/python-modules/pydantic-extra-types/default.nix
+++ b/pkgs/development/python-modules/pydantic-extra-types/default.nix
@@ -1,34 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, pydantic
-, pendulum
-, phonenumbers
-, pycountry
-, python-ulid
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  pydantic,
+  pendulum,
+  phonenumbers,
+  pycountry,
+  python-ulid,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "pydantic-extra-types";
-  version = "2.6.0";
+  version = "2.8.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pydantic";
     repo = "pydantic-extra-types";
     rev = "refs/tags/v${version}";
-    hash = "sha256-XLVhoZ3+TfVYEuk/5fORaGpCBaB5NcuskWhHgt+llS0=";
+    hash = "sha256-YNr3eKwlPmLpYp0Z4WAOmWNMjta22ZZMuSlONkONxZU=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = [
-    pydantic
-  ];
+  propagatedBuildInputs = [ pydantic ];
 
   passthru.optional-dependencies = {
     all = [
@@ -41,9 +38,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "pydantic_extra_types" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.all;
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.all;
 
   meta = with lib; {
     changelog = "https://github.com/pydantic/pydantic-extra-types/blob/${src.rev}/HISTORY.md";
diff --git a/pkgs/development/python-modules/pydantic-scim/default.nix b/pkgs/development/python-modules/pydantic-scim/default.nix
index b8ac4c729a69a..a8ba4155bf97e 100644
--- a/pkgs/development/python-modules/pydantic-scim/default.nix
+++ b/pkgs/development/python-modules/pydantic-scim/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pydantic
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pydantic,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +29,9 @@ buildPythonPackage rec {
       --replace 'version=get_version(),' 'version="${version}",'
   '';
 
-  propagatedBuildInputs = [
-    pydantic
-  ] ++ pydantic.optional-dependencies.email;
+  propagatedBuildInputs = [ pydantic ] ++ pydantic.optional-dependencies.email;
 
-  pythonImportsCheck = [
-    "pydanticscim"
-  ];
+  pythonImportsCheck = [ "pydanticscim" ];
 
   # no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/pydantic-settings/default.nix b/pkgs/development/python-modules/pydantic-settings/default.nix
index 250c1b8756301..2d158699724a9 100644
--- a/pkgs/development/python-modules/pydantic-settings/default.nix
+++ b/pkgs/development/python-modules/pydantic-settings/default.nix
@@ -1,69 +1,69 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, hatchling
-, pydantic
-, python-dotenv
-, pytestCheckHook
-, pytest-examples
-, pytest-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  hatchling,
+  pydantic,
+  python-dotenv,
+  pytestCheckHook,
+  pytest-examples,
+  pytest-mock,
 }:
 
-let self = buildPythonPackage rec {
-  pname = "pydantic-settings";
-  version = "2.2.1";
-  pyproject = true;
+let
+  self = buildPythonPackage rec {
+    pname = "pydantic-settings";
+    version = "2.3.2";
+    pyproject = true;
 
-  disabled = pythonOlder "3.8";
+    disabled = pythonOlder "3.8";
 
-  src = fetchFromGitHub {
-    owner = "pydantic";
-    repo = "pydantic-settings";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-4o8LlIFVizoxb484lVT67e24jhtUl49otr1lX/2zZ4M=";
-  };
+    src = fetchFromGitHub {
+      owner = "pydantic";
+      repo = "pydantic-settings";
+      rev = "refs/tags/v${version}";
+      hash = "sha256-1wnTAoF9xi1xLgSWl0FhtIddWPpHgDJPxJlsctJvFQo=";
+    };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+    nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = [
-    pydantic
-    python-dotenv
-  ];
+    propagatedBuildInputs = [
+      pydantic
+      python-dotenv
+    ];
 
-  pythonImportsCheck = [ "pydantic_settings" ];
+    pythonImportsCheck = [ "pydantic_settings" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-    pytest-examples
-    pytest-mock
-  ];
+    nativeCheckInputs = [
+      pytestCheckHook
+      pytest-examples
+      pytest-mock
+    ];
 
-  disabledTests = [
-    # expected to fail
-    "test_docs_examples[docs/index.md:212-246]"
-  ];
+    disabledTests = [
+      # expected to fail
+      "test_docs_examples[docs/index.md:212-246]"
+    ];
 
-  preCheck = ''
-    export HOME=$TMPDIR
-  '';
+    preCheck = ''
+      export HOME=$TMPDIR
+    '';
 
-  # ruff is a dependency of pytest-examples which is required to run the tests.
-  # We do not want all of the downstream packages that depend on pydantic-settings to also depend on ruff.
-  doCheck = false;
-  passthru.tests = {
-    pytest = self.overridePythonAttrs {
-      doCheck = true;
+    # ruff is a dependency of pytest-examples which is required to run the tests.
+    # We do not want all of the downstream packages that depend on pydantic-settings to also depend on ruff.
+    doCheck = false;
+    passthru.tests = {
+      pytest = self.overridePythonAttrs { doCheck = true; };
     };
-  };
 
-  meta = with lib; {
-    description = "Settings management using pydantic";
-    homepage = "https://github.com/pydantic/pydantic-settings";
-    license = licenses.mit;
-    broken = lib.versionOlder pydantic.version "2.0.0";
-    maintainers = with maintainers; [ ];
+    meta = with lib; {
+      description = "Settings management using pydantic";
+      homepage = "https://github.com/pydantic/pydantic-settings";
+      license = licenses.mit;
+      broken = lib.versionOlder pydantic.version "2.0.0";
+      maintainers = with maintainers; [ ];
+    };
   };
-}; in self
+in
+self
diff --git a/pkgs/development/python-modules/pydantic-yaml-0/default.nix b/pkgs/development/python-modules/pydantic-yaml-0/default.nix
index 74c44b255283a..d225d0e07150f 100644
--- a/pkgs/development/python-modules/pydantic-yaml-0/default.nix
+++ b/pkgs/development/python-modules/pydantic-yaml-0/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, deprecated
-, importlib-metadata
-, pydantic_1
-, ruamel-yaml
-, semver
-, types-deprecated
-, setuptools
-, setuptools-scm
-, pytest-mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  deprecated,
+  importlib-metadata,
+  pydantic_1,
+  ruamel-yaml,
+  semver,
+  types-deprecated,
+  setuptools,
+  setuptools-scm,
+  pytest-mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -46,9 +47,7 @@ buildPythonPackage rec {
     types-deprecated
   ];
 
-  pythonImportsCheck = [
-    "pydantic_yaml"
-  ];
+  pythonImportsCheck = [ "pydantic_yaml" ];
 
   nativeCheckInputs = [
     pytest-mock
@@ -56,11 +55,10 @@ buildPythonPackage rec {
   ];
 
   meta = {
-    description = "A small helper library that adds some YAML capabilities to pydantic";
+    description = "Small helper library that adds some YAML capabilities to pydantic";
     homepage = "https://github.com/NowanIlfideme/pydantic-yaml";
     changelog = "https://github.com/NowanIlfideme/pydantic-yaml/releases/tag/v${version}";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ jnsgruk ];
   };
 }
-
diff --git a/pkgs/development/python-modules/pydantic/1.nix b/pkgs/development/python-modules/pydantic/1.nix
index 6078acc356ce2..2b268d2bf543f 100644
--- a/pkgs/development/python-modules/pydantic/1.nix
+++ b/pkgs/development/python-modules/pydantic/1.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, cython_0
-, email-validator
-, fetchFromGitHub
-, pytest-mock
-, pytest7CheckHook
-, python-dotenv
-, pythonAtLeast
-, pythonOlder
-, setuptools
-, typing-extensions
-, libxcrypt
+{
+  lib,
+  buildPythonPackage,
+  cython_0,
+  email-validator,
+  fetchFromGitHub,
+  pytest-mock,
+  pytest7CheckHook,
+  python-dotenv,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
+  libxcrypt,
 }:
 
 buildPythonPackage rec {
   pname = "pydantic";
-  version = "1.10.14";
+  version = "1.10.16";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -24,7 +25,7 @@ buildPythonPackage rec {
     owner = "pydantic";
     repo = "pydantic";
     rev = "refs/tags/v${version}";
-    hash = "sha256-tcaHSPZggVwyzCgDmwOgcGqUmUrJOmkdSNudJTFQ3bc=";
+    hash = "sha256-dn/ZsxbkyK2sJxpo6IsoMBRjq1STdu+xuqHXoNG+Kzk=";
   };
 
   nativeBuildInputs = [
@@ -32,21 +33,13 @@ buildPythonPackage rec {
     cython_0
   ];
 
-  buildInputs = lib.optionals (pythonOlder "3.9") [
-    libxcrypt
-  ];
+  buildInputs = lib.optionals (pythonOlder "3.9") [ libxcrypt ];
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ typing-extensions ];
 
   passthru.optional-dependencies = {
-    dotenv = [
-      python-dotenv
-    ];
-    email = [
-      email-validator
-    ];
+    dotenv = [ python-dotenv ];
+    email = [ email-validator ];
   };
 
   nativeCheckInputs = [
@@ -56,7 +49,8 @@ buildPythonPackage rec {
 
   pytestFlagsArray = [
     # https://github.com/pydantic/pydantic/issues/4817
-    "-W" "ignore::pytest.PytestReturnNotNoneWarning"
+    "-W"
+    "ignore::pytest.PytestReturnNotNoneWarning"
   ];
 
   preCheck = ''
diff --git a/pkgs/development/python-modules/pydantic/default.nix b/pkgs/development/python-modules/pydantic/default.nix
index 59ec82ce829b1..f47c028ac54c0 100644
--- a/pkgs/development/python-modules/pydantic/default.nix
+++ b/pkgs/development/python-modules/pydantic/default.nix
@@ -1,34 +1,35 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pythonOlder
-
-# build-system
-, hatchling
-, hatch-fancy-pypi-readme
-
-# native dependencies
-, libxcrypt
-
-# dependencies
-, annotated-types
-, pydantic-core
-, typing-extensions
-
-# tests
-, cloudpickle
-, email-validator
-, dirty-equals
-, faker
-, pytestCheckHook
-, pytest-mock
-, eval-type-backport
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pythonOlder,
+
+  # build-system
+  hatchling,
+  hatch-fancy-pypi-readme,
+
+  # native dependencies
+  libxcrypt,
+
+  # dependencies
+  annotated-types,
+  pydantic-core,
+  typing-extensions,
+
+  # tests
+  cloudpickle,
+  email-validator,
+  dirty-equals,
+  faker,
+  pytestCheckHook,
+  pytest-mock,
+  eval-type-backport,
 }:
 
 buildPythonPackage rec {
   pname = "pydantic";
-  version = "2.6.3";
+  version = "2.7.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -37,21 +38,10 @@ buildPythonPackage rec {
     owner = "pydantic";
     repo = "pydantic";
     rev = "refs/tags/v${version}";
-    hash = "sha256-neTdG/IcXopCmevzFY5/XDlhPHmOb6dhyAnzaobmeG8=";
+    hash = "sha256-S4FZUnOsKC8J0xyTeXhMmCACCma+VfCSmrE6sYAnpok=";
   };
 
-  patches = [
-    (fetchpatch {
-      # https://github.com/pydantic/pydantic/pull/8678
-      name = "fix-pytest8-compatibility.patch";
-      url = "https://github.com/pydantic/pydantic/commit/825a6920e177a3b65836c13c7f37d82b810ce482.patch";
-      hash = "sha256-Dap5DtDzHw0jS/QUo5CRI9sLDJ719GRyC4ZNDWEdzus=";
-    })
-  ];
-
-  buildInputs = lib.optionals (pythonOlder "3.9") [
-    libxcrypt
-  ];
+  buildInputs = lib.optionals (pythonOlder "3.9") [ libxcrypt ];
 
   build-system = [
     hatch-fancy-pypi-readme
@@ -65,9 +55,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    email = [
-      email-validator
-    ];
+    email = [ email-validator ];
   };
 
   nativeCheckInputs =
@@ -84,10 +72,10 @@ buildPythonPackage rec {
   preCheck = ''
     export HOME=$(mktemp -d)
     substituteInPlace pyproject.toml \
-      --replace "'--benchmark-columns', 'min,mean,stddev,outliers,rounds,iterations'," "" \
-      --replace "'--benchmark-group-by', 'group'," "" \
-      --replace "'--benchmark-warmup', 'on'," "" \
-      --replace "'--benchmark-disable'," ""
+      --replace-fail "'--benchmark-columns', 'min,mean,stddev,outliers,rounds,iterations'," "" \
+      --replace-fail "'--benchmark-group-by', 'group'," "" \
+      --replace-fail "'--benchmark-warmup', 'on'," "" \
+      --replace-fail "'--benchmark-disable'," ""
   '';
 
   pytestFlagsArray = [
diff --git a/pkgs/development/python-modules/pydata-google-auth/default.nix b/pkgs/development/python-modules/pydata-google-auth/default.nix
index f24f2e78470bb..da4d1ad65f3c5 100644
--- a/pkgs/development/python-modules/pydata-google-auth/default.nix
+++ b/pkgs/development/python-modules/pydata-google-auth/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, google-auth
-, google-auth-oauthlib
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  google-auth,
+  google-auth-oauthlib,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-Wo+tXbzOuz/cW8GuWoSxLA/Lr2S9NMdePa8tIV39mbY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     google-auth
@@ -30,9 +29,7 @@ buildPythonPackage rec {
   # tests require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pydata_google_auth"
-  ];
+  pythonImportsCheck = [ "pydata_google_auth" ];
 
   meta = with lib; {
     description = "Helpers for authenticating to Google APIs";
diff --git a/pkgs/development/python-modules/pydata-sphinx-theme/default.nix b/pkgs/development/python-modules/pydata-sphinx-theme/default.nix
index 38509d5ba2edd..081c08582b6e3 100644
--- a/pkgs/development/python-modules/pydata-sphinx-theme/default.nix
+++ b/pkgs/development/python-modules/pydata-sphinx-theme/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, sphinx
-, accessible-pygments
-, beautifulsoup4
-, docutils
-, packaging
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  sphinx,
+  accessible-pygments,
+  beautifulsoup4,
+  docutils,
+  packaging,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "pydata-sphinx-theme";
-  version = "0.15.2";
+  version = "0.15.3";
 
   format = "wheel";
 
@@ -23,7 +24,7 @@ buildPythonPackage rec {
     dist = "py3";
     python = "py3";
     pname = "pydata_sphinx_theme";
-    hash = "sha256-DF+h+pipsm2uWQZm/1dvJ+Jse6cI/udU7Lngc1ntRYg=";
+    hash = "sha256-pI7gSdybD3Bk27j3Bksc865Iqhk/qv4Uq9QDobcQKBA=";
   };
 
   propagatedBuildInputs = [
@@ -35,9 +36,7 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  pythonImportsCheck = [
-    "pydata_sphinx_theme"
-  ];
+  pythonImportsCheck = [ "pydata_sphinx_theme" ];
 
   meta = with lib; {
     description = "Bootstrap-based Sphinx theme from the PyData community";
diff --git a/pkgs/development/python-modules/pydateinfer/default.nix b/pkgs/development/python-modules/pydateinfer/default.nix
index a2fb97236dfd4..777e78efc9b1f 100644
--- a/pkgs/development/python-modules/pydateinfer/default.nix
+++ b/pkgs/development/python-modules/pydateinfer/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, unittestCheckHook
-, pytz
-, pyyaml
-, argparse
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  unittestCheckHook,
+  pytz,
+  pyyaml,
+  argparse,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-0gy7wfT/uMTmpdIF2OPGVeUh+4yqJSI2Ebif0Lf/DLM=";
   };
 
-  propagatedBuildInputs = [
-    pytz
-  ];
+  propagatedBuildInputs = [ pytz ];
 
   preCheck = "cd dateinfer";
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/pydbus/default.nix b/pkgs/development/python-modules/pydbus/default.nix
index fc8965fd3538e..aedc5d852ff04 100644
--- a/pkgs/development/python-modules/pydbus/default.nix
+++ b/pkgs/development/python-modules/pydbus/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pygobject3
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pygobject3,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
       --replace "getargspec" "getfullargspec"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    pygobject3
-  ];
+  propagatedBuildInputs = [ pygobject3 ];
 
   pythonImportsCheck = [
     "pydbus"
diff --git a/pkgs/development/python-modules/pydeck/default.nix b/pkgs/development/python-modules/pydeck/default.nix
index 6edd7a379b3ee..e0c77c5a2ce1c 100644
--- a/pkgs/development/python-modules/pydeck/default.nix
+++ b/pkgs/development/python-modules/pydeck/default.nix
@@ -1,29 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, ipykernel
-, ipywidgets
-, jinja2
-, jupyter
-, numpy
-, pandas
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, traitlets
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  ipykernel,
+  ipywidgets,
+  jinja2,
+  jupyter,
+  numpy,
+  pandas,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  traitlets,
+  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "pydeck";
-  version = "0.8.0";
+  version = "0.9.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-B+3egz98/O9nSRJDURlap9zSRmPUkJ/XiY29C2+8Aew=";
+    hash = "sha256-90R1rmN5UdY/LuWDJnV/jU+c2fKkV89ClQcVAD4stgU=";
   };
 
   # upstream has an invalid pyproject.toml
diff --git a/pkgs/development/python-modules/pydeconz/default.nix b/pkgs/development/python-modules/pydeconz/default.nix
index f9de6f4ad8803..68e31e0002701 100644
--- a/pkgs/development/python-modules/pydeconz/default.nix
+++ b/pkgs/development/python-modules/pydeconz/default.nix
@@ -1,43 +1,42 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, orjson
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  orjson,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pydeconz";
-  version = "115";
+  version = "116";
   pyproject = true;
 
-  disabled = pythonOlder "3.11";
+  disabled = pythonOlder "3.12";
 
   src = fetchFromGitHub {
     owner = "Kane610";
     repo = "deconz";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NjzONVSJ4GEaIeC5ytnTi8JpZY1yIq3LN8vbMy3n0vs=";
+    hash = "sha256-XtcAs+xKSTJcQN0mCj6ewkT7owvA7nlZ8PhWfL9NZh8=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "--cov=pydeconz --cov-report term-missing" "" \
-      --replace "setuptools==" "setuptools>=" \
-      --replace "wheel==" "wheel>="
+      --replace-fail "--cov=pydeconz --cov-report term-missing" "" \
+      --replace-fail "setuptools==" "setuptools>=" \
+      --replace-fail "wheel==" "wheel>="
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
-    wheel
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     orjson
   ];
@@ -48,16 +47,14 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pydeconz"
-  ];
+  pythonImportsCheck = [ "pydeconz" ];
 
   meta = with lib; {
     description = "Python library wrapping the Deconz REST API";
-    mainProgram = "pydeconz";
     homepage = "https://github.com/Kane610/deconz";
     changelog = "https://github.com/Kane610/deconz/releases/tag/v${version}";
-    license = with licenses; [ mit ];
+    license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "pydeconz";
   };
 }
diff --git a/pkgs/development/python-modules/pydelijn/default.nix b/pkgs/development/python-modules/pydelijn/default.nix
index 728160fe8d1fa..be679c748b31f 100644
--- a/pkgs/development/python-modules/pydelijn/default.nix
+++ b/pkgs/development/python-modules/pydelijn/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pytz
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pydelijn"
-  ];
+  pythonImportsCheck = [ "pydelijn" ];
 
   meta = with lib; {
     description = "Python package to retrieve realtime data of passages at stops of De Lijn";
diff --git a/pkgs/development/python-modules/pydenticon/default.nix b/pkgs/development/python-modules/pydenticon/default.nix
index d0a17a0357d63..91fd500cbaca5 100644
--- a/pkgs/development/python-modules/pydenticon/default.nix
+++ b/pkgs/development/python-modules/pydenticon/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pillow
-, mock
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pillow,
+  mock,
 }:
 
 buildPythonPackage rec {
@@ -15,12 +16,14 @@ buildPythonPackage rec {
     sha256 = "2ef363cdd6f4f0193ce62257486027e36884570f6140bbde51de72df321b77f1";
   };
 
-  propagatedBuildInputs = [ pillow mock ];
+  propagatedBuildInputs = [
+    pillow
+    mock
+  ];
 
   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/pkgs/development/python-modules/pydeps/default.nix b/pkgs/development/python-modules/pydeps/default.nix
index 0488e35a1be8c..23f9353ac9ca5 100644
--- a/pkgs/development/python-modules/pydeps/default.nix
+++ b/pkgs/development/python-modules/pydeps/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, graphviz
-, stdlib-list
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, setuptools
-, toml
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  graphviz,
+  stdlib-list,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  setuptools,
+  toml,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +25,9 @@ buildPythonPackage rec {
     hash = "sha256-d6EeeNem+HfuipKF5ZOI48c11j0ozGrBP4XlqTx+fJ4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  buildInputs = [
-    graphviz
-  ];
+  buildInputs = [ graphviz ];
 
   propagatedBuildInputs = [
     graphviz
@@ -54,9 +51,7 @@ buildPythonPackage rec {
     "test_find_package_names"
   ];
 
-  pythonImportsCheck = [
-    "pydeps"
-  ];
+  pythonImportsCheck = [ "pydeps" ];
 
   meta = with lib; {
     description = "Python module dependency visualization";
diff --git a/pkgs/development/python-modules/pydes/default.nix b/pkgs/development/python-modules/pydes/default.nix
index 13820649912b5..e04090e686dbd 100644
--- a/pkgs/development/python-modules/pydes/default.nix
+++ b/pkgs/development/python-modules/pydes/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, python }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+}:
 
 buildPythonPackage rec {
   pname = "pydes";
@@ -19,7 +24,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyDes" ];
 
   meta = with lib; {
-    description = "A pure python module which implements the DES and Triple-DES encryption algorithms";
+    description = "Pure python module which implements the DES and Triple-DES encryption algorithms";
     homepage = "https://github.com/twhiteman/pyDes";
     license = licenses.mit;
     maintainers = with maintainers; [ j0hax ];
diff --git a/pkgs/development/python-modules/pydevccu/default.nix b/pkgs/development/python-modules/pydevccu/default.nix
index 9dd93cd5fa625..9b8599a31b283 100644
--- a/pkgs/development/python-modules/pydevccu/default.nix
+++ b/pkgs/development/python-modules/pydevccu/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pydevccu"
-  ];
+  pythonImportsCheck = [ "pydevccu" ];
 
   meta = with lib; {
     description = "HomeMatic CCU XML-RPC Server with fake devices";
diff --git a/pkgs/development/python-modules/pydevd/default.nix b/pkgs/development/python-modules/pydevd/default.nix
index f603e9accfd09..8cb99dd9806ff 100644
--- a/pkgs/development/python-modules/pydevd/default.nix
+++ b/pkgs/development/python-modules/pydevd/default.nix
@@ -1,15 +1,17 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, numpy
-, psutil
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, trio
-, untangle
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  numpy,
+  psutil,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  trio,
+  untangle,
 }:
 
 buildPythonPackage rec {
@@ -22,57 +24,60 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "fabioz";
     repo = "PyDev.Debugger";
-    rev = "pydev_debugger_${lib.replaceStrings ["."] ["_"] version}";
+    rev = "pydev_debugger_${lib.replaceStrings [ "." ] [ "_" ] version}";
     hash = "sha256-aylmLN7lVUza2lt2K48rJsx3XatXPgPjcmPZ05raLX0=";
   };
 
   __darwinAllowLocalNetworking = true;
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   nativeCheckInputs = [
     numpy
     psutil
+    pytest-xdist
     pytestCheckHook
     trio
     untangle
   ];
 
-  disabledTests = [
-    # Require network connection
-    "test_completion_sockets_and_messages"
-    "test_path_translation"
-    "test_attach_to_pid_no_threads"
-    "test_attach_to_pid_halted"
-    "test_remote_debugger_threads"
-    "test_path_translation_and_source_reference"
-    "test_attach_to_pid"
-    "test_terminate"
-    "test_gui_event_loop_custom"
-    # AssertionError: assert '/usr/bin/' == '/usr/bin'
-    # https://github.com/fabioz/PyDev.Debugger/issues/227
-    "test_to_server_and_to_client"
-    # AssertionError pydevd_tracing.set_trace_to_threads(tracing_func) == 0
-    "test_step_next_step_in_multi_threads"
-    "test_tracing_basic"
-    "test_tracing_other_threads"
-    # subprocess.CalledProcessError
-    "test_find_main_thread_id"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    "test_case_handled_and_unhandled_exception_generator"
-    "test_case_stop_async_iteration_exception"
-    "test_case_unhandled_exception_generator"
-    "test_function_breakpoints_async"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_multiprocessing_simple"
-    "test_evaluate_exception_trace"
-  ];
+  disabledTests =
+    [
+      # Require network connection
+      "test_completion_sockets_and_messages"
+      "test_path_translation"
+      "test_attach_to_pid_no_threads"
+      "test_attach_to_pid_halted"
+      "test_remote_debugger_threads"
+      "test_path_translation_and_source_reference"
+      "test_attach_to_pid"
+      "test_terminate"
+      "test_gui_event_loop_custom"
+      # AssertionError: assert '/usr/bin/' == '/usr/bin'
+      # https://github.com/fabioz/PyDev.Debugger/issues/227
+      "test_to_server_and_to_client"
+      # AssertionError pydevd_tracing.set_trace_to_threads(tracing_func) == 0
+      "test_step_next_step_in_multi_threads"
+      "test_tracing_basic"
+      "test_tracing_other_threads"
+      # subprocess.CalledProcessError
+      "test_find_main_thread_id"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      "test_case_handled_and_unhandled_exception_generator"
+      "test_case_stop_async_iteration_exception"
+      "test_case_unhandled_exception_generator"
+      "test_function_breakpoints_async"
+      # raise segmentation fault
+      # https://github.com/fabioz/PyDev.Debugger/issues/269
+      "test_evaluate_expression"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      "test_multiprocessing_simple"
+      "test_evaluate_exception_trace"
+    ];
 
-  pythonImportsCheck = [
-    "pydevd"
-  ];
+  pythonImportsCheck = [ "pydevd" ];
 
   meta = with lib; {
     description = "PyDev.Debugger (used in PyDev, PyCharm and VSCode Python)";
diff --git a/pkgs/development/python-modules/pydevtool/default.nix b/pkgs/development/python-modules/pydevtool/default.nix
index c9a0d67fcebf5..de29d377379b9 100644
--- a/pkgs/development/python-modules/pydevtool/default.nix
+++ b/pkgs/development/python-modules/pydevtool/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchPypi
-, setuptools
-, buildPythonPackage
-, doit
+{
+  lib,
+  fetchPypi,
+  setuptools,
+  buildPythonPackage,
+  doit,
 }:
 
 buildPythonPackage rec {
@@ -15,17 +16,11 @@ buildPythonPackage rec {
     hash = "sha256-JeO6Tz0zzKwz7iuXdZlYSNSemzGLehRkd/tdUveG/Io=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    doit
-  ];
+  propagatedBuildInputs = [ doit ];
 
-  pythonImportsCheck = [
-    "pydevtool"
-  ];
+  pythonImportsCheck = [ "pydevtool" ];
 
   meta = with lib; {
     homepage = "https://github.com/pydoit/pydevtool";
@@ -33,5 +28,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pydexcom/default.nix b/pkgs/development/python-modules/pydexcom/default.nix
index bd639205c1116..254b8a06a72f8 100644
--- a/pkgs/development/python-modules/pydexcom/default.nix
+++ b/pkgs/development/python-modules/pydexcom/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -26,16 +27,12 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Tests are interacting with the Dexcom API
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pydexcom"
-  ];
+  pythonImportsCheck = [ "pydexcom" ];
 
   meta = with lib; {
     description = "Python API to interact with Dexcom Share service";
diff --git a/pkgs/development/python-modules/pydicom-seg/default.nix b/pkgs/development/python-modules/pydicom-seg/default.nix
index 52708208d4c9c..9f06d7b44dd07 100644
--- a/pkgs/development/python-modules/pydicom-seg/default.nix
+++ b/pkgs/development/python-modules/pydicom-seg/default.nix
@@ -1,15 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pythonOlder
-, pytestCheckHook
-, pythonRelaxDepsHook
-, poetry-core
-, jsonschema
-, numpy
-, pydicom
-, simpleitk
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pythonOlder,
+  pytestCheckHook,
+  poetry-core,
+  jsonschema,
+  numpy,
+  pydicom,
+  simpleitk,
 }:
 
 buildPythonPackage rec {
@@ -36,13 +36,10 @@ buildPythonPackage rec {
     })
   ];
 
-  pythonRelaxDeps = [
-    "jsonschema"
-  ];
+  pythonRelaxDeps = [ "jsonschema" ];
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -52,13 +49,9 @@ buildPythonPackage rec {
     simpleitk
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pydicom_seg"
-  ];
+  pythonImportsCheck = [ "pydicom_seg" ];
 
   meta = with lib; {
     description = "Medical segmentation file reading and writing";
diff --git a/pkgs/development/python-modules/pydicom/default.nix b/pkgs/development/python-modules/pydicom/default.nix
index 6bcb0c42fa583..e2d86333c1cc5 100644
--- a/pkgs/development/python-modules/pydicom/default.nix
+++ b/pkgs/development/python-modules/pydicom/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, numpy
-, pillow
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  numpy,
+  pillow,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 let
@@ -29,7 +30,6 @@ let
     rev = "cbb9b2148bccf0f550e3758c07aca3d0e328e768";
     hash = "sha256-nF/j7pfcEpWHjjsqqTtIkW8hCEbuQ3J4IxpRk0qc1CQ=";
   };
-
 in
 buildPythonPackage {
   inherit pname version src;
@@ -42,9 +42,7 @@ buildPythonPackage {
     ./pillow-10.1.0-compat.patch
   ];
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     numpy
@@ -52,9 +50,7 @@ buildPythonPackage {
     setuptools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Setting $HOME to prevent pytest to try to create a folder inside
   # /homeless-shelter which is read-only.
@@ -65,20 +61,21 @@ buildPythonPackage {
     ln -s ${test_data}/data_store/data $HOME/.pydicom/data
   '';
 
-  disabledTests = [
-    # tries to remove a dicom inside $HOME/.pydicom/data/ and download it again
-    "test_fetch_data_files"
-  ] ++ lib.optionals stdenv.isAarch64 [
-    # https://github.com/pydicom/pydicom/issues/1386
-    "test_array"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # flaky, hard to reproduce failure outside hydra
-    "test_time_check"
-  ];
+  disabledTests =
+    [
+      # tries to remove a dicom inside $HOME/.pydicom/data/ and download it again
+      "test_fetch_data_files"
+    ]
+    ++ lib.optionals stdenv.isAarch64 [
+      # https://github.com/pydicom/pydicom/issues/1386
+      "test_array"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # flaky, hard to reproduce failure outside hydra
+      "test_time_check"
+    ];
 
-  pythonImportsCheck = [
-    "pydicom"
-  ];
+  pythonImportsCheck = [ "pydicom" ];
 
   meta = with lib; {
     description = "Python package for working with DICOM files";
diff --git a/pkgs/development/python-modules/pydigiham/default.nix b/pkgs/development/python-modules/pydigiham/default.nix
index a4e7f3db82b70..bfa7ba32e07b4 100644
--- a/pkgs/development/python-modules/pydigiham/default.nix
+++ b/pkgs/development/python-modules/pydigiham/default.nix
@@ -1,4 +1,13 @@
-{ lib, buildPythonPackage, fetchFromGitHub, python, digiham, csdr, pycsdr, codecserver }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  digiham,
+  csdr,
+  pycsdr,
+  codecserver,
+}:
 
 buildPythonPackage rec {
   pname = "pydigiham";
@@ -13,7 +22,10 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ digiham ];
-  buildInputs = [ codecserver pycsdr ];
+  buildInputs = [
+    codecserver
+    pycsdr
+  ];
   # make pycsdr header files available
   preBuild = ''
     ln -s ${pycsdr}/include/${python.libPrefix}/pycsdr src/pycsdr
diff --git a/pkgs/development/python-modules/pydiscourse/default.nix b/pkgs/development/python-modules/pydiscourse/default.nix
index 01bce56302339..6b0aa9131b668 100644
--- a/pkgs/development/python-modules/pydiscourse/default.nix
+++ b/pkgs/development/python-modules/pydiscourse/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-KqJ6ag4owG7US5Q4Ygjq263ds1o/JhEJ3bNa8YecYtE=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     pytest-mock
@@ -32,12 +31,10 @@ buildPythonPackage rec {
     requests-mock
   ];
 
-  pythonImportsCheck = [
-    "pydiscourse"
-  ];
+  pythonImportsCheck = [ "pydiscourse" ];
 
   meta = with lib; {
-    description = "A Python library for working with Discourse";
+    description = "Python library for working with Discourse";
     mainProgram = "pydiscoursecli";
     homepage = "https://github.com/pydiscourse/pydiscourse";
     changelog = "https://github.com/pydiscourse/pydiscourse/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/pydiscovergy/default.nix b/pkgs/development/python-modules/pydiscovergy/default.nix
index f671ec1e5e60f..919eec4fae1f8 100644
--- a/pkgs/development/python-modules/pydiscovergy/default.nix
+++ b/pkgs/development/python-modules/pydiscovergy/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, authlib
-, buildPythonPackage
-, fetchFromGitHub
-, httpx
-, mashumaro
-, orjson
-, pytest-httpx
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, pytz
-, respx
+{
+  lib,
+  authlib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpx,
+  mashumaro,
+  orjson,
+  pytest-asyncio,
+  pytest-httpx,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  respx,
 }:
 
 buildPythonPackage rec {
   pname = "pydiscovergy";
-  version = "3.0.0";
-  format = "pyproject";
+  version = "3.0.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.10";
 
@@ -25,19 +26,17 @@ buildPythonPackage rec {
     owner = "jpbede";
     repo = "pydiscovergy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ArcH/4ZyOtIGmoXArU+oEd357trJnS9umlN9B+U0dBI=";
+    hash = "sha256-0zyg1EBPOfcA1jAgtNbDCVaTv9hJQ2Xidl+doHbjKrM=";
   };
 
   postPatch = ''
     sed -i '/addopts =/d' pyproject.toml
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  build-system = [ poetry-core ];
+
 
-  propagatedBuildInputs = [
+  dependencies = [
     authlib
     httpx
     mashumaro
@@ -46,17 +45,16 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
+    pytest-asyncio
     pytest-httpx
     pytestCheckHook
     respx
   ];
 
-  pythonImportsCheck = [
-    "pydiscovergy"
-  ];
+  pythonImportsCheck = [ "pydiscovergy" ];
 
   meta = with lib; {
-    description = "Async Python 3 library for interacting with the Discovergy API";
+    description = "Library for interacting with the Discovergy API";
     homepage = "https://github.com/jpbede/pydiscovergy";
     changelog = "https://github.com/jpbede/pydiscovergy/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pydispatcher/default.nix b/pkgs/development/python-modules/pydispatcher/default.nix
index 0d4ef3ce3f5e6..7094534c1563f 100644
--- a/pkgs/development/python-modules/pydispatcher/default.nix
+++ b/pkgs/development/python-modules/pydispatcher/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -15,14 +16,11 @@ buildPythonPackage rec {
     hash = "sha256-t3fGrQgNwbrXSkwp1qRpFPpnAaxw+UsNZvvP3mL1vjE=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     homepage = "https://pydispatcher.sourceforge.net/";
     description = "Signal-registration and routing infrastructure for use in multiple contexts";
     license = licenses.bsd3;
   };
-
 }
diff --git a/pkgs/development/python-modules/pydmd/default.nix b/pkgs/development/python-modules/pydmd/default.nix
index 3cf1f14f70e2e..f6a83e7c6ed90 100644
--- a/pkgs/development/python-modules/pydmd/default.nix
+++ b/pkgs/development/python-modules/pydmd/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, future
-, matplotlib
-, numpy
-, pytestCheckHook
-, pytest-mock
-, pythonOlder
-, scipy
-, ezyrb
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  future,
+  matplotlib,
+  numpy,
+  pytestCheckHook,
+  pytest-mock,
+  pythonOlder,
+  scipy,
+  ezyrb,
 }:
 
 let
@@ -28,9 +29,7 @@ let
       hash = "sha256-vprvq3sl/eNtu4cqg0A4XV96dzUt0nOtPmfwEv0h+PI=";
     };
 
-    build-system = [
-      setuptools
-  ];
+    build-system = [ setuptools ];
 
     propagatedBuildInputs = [
       future
@@ -45,16 +44,12 @@ let
       pytest-mock
     ];
 
-    pytestFlagsArray = [
-      "tests/test_dmdbase.py"
-    ];
+    pytestFlagsArray = [ "tests/test_dmdbase.py" ];
 
-    pythonImportsCheck = [
-      "pydmd"
-    ];
+    pythonImportsCheck = [ "pydmd" ];
 
     passthru.tests = self.overrideAttrs (old: {
-      pytestFlagsArray = [];
+      pytestFlagsArray = [ ];
     });
 
     meta = with lib; {
@@ -66,4 +61,5 @@ let
       broken = stdenv.hostPlatform.isAarch64;
     };
   };
-in self
+in
+self
diff --git a/pkgs/development/python-modules/pydocstyle/default.nix b/pkgs/development/python-modules/pydocstyle/default.nix
index d8207e37b6002..8e53cf0865019 100644
--- a/pkgs/development/python-modules/pydocstyle/default.nix
+++ b/pkgs/development/python-modules/pydocstyle/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, fetchpatch2
-, poetry-core
-, snowballstemmer
-, tomli
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  fetchpatch2,
+  poetry-core,
+  snowballstemmer,
+  tomli,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -32,28 +33,18 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace 'version = "0.0.0-dev"' 'version = "${version}"'
   '';
 
-  propagatedBuildInputs = [
-    snowballstemmer
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  propagatedBuildInputs = [ snowballstemmer ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
-  passthru.optional-dependencies.toml = [
-    tomli
-  ];
+  passthru.optional-dependencies.toml = [ tomli ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.toml;
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.toml;
 
   disabledTestPaths = [
     "src/tests/test_integration.py" # runs pip install
diff --git a/pkgs/development/python-modules/pydocumentdb/default.nix b/pkgs/development/python-modules/pydocumentdb/default.nix
index e2c075ae7f389..5c8eb0990fd00 100644
--- a/pkgs/development/python-modules/pydocumentdb/default.nix
+++ b/pkgs/development/python-modules/pydocumentdb/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
-, six
-, requests
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+  six,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,10 @@ buildPythonPackage rec {
     touch changelog.md
   '';
 
-  propagatedBuildInputs = [ six requests ];
+  propagatedBuildInputs = [
+    six
+    requests
+  ];
 
   # requires an active Azure Cosmos service
   doCheck = false;
diff --git a/pkgs/development/python-modules/pydoe/default.nix b/pkgs/development/python-modules/pydoe/default.nix
index 5767442bef252..04a943c4cb984 100644
--- a/pkgs/development/python-modules/pydoe/default.nix
+++ b/pkgs/development/python-modules/pydoe/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, wheel
-, scipy
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  wheel,
+  scipy,
+  numpy,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pydoods/default.nix b/pkgs/development/python-modules/pydoods/default.nix
index ff0872e423771..e74d54245d18e 100644
--- a/pkgs/development/python-modules/pydoods/default.nix
+++ b/pkgs/development/python-modules/pydoods/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     sha256 = "1brpcfj1iy9mhf2inla4gi681zlh7g4qvhr6vrprk6r693glpn3x";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/pydot/default.nix b/pkgs/development/python-modules/pydot/default.nix
index 94494842a9d02..524010a89a49a 100644
--- a/pkgs/development/python-modules/pydot/default.nix
+++ b/pkgs/development/python-modules/pydot/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, substituteAll
-, graphviz
-, python
-, pytestCheckHook
-, chardet
-, pythonOlder
-, pyparsing
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  substituteAll,
+  graphviz,
+  python,
+  pytestCheckHook,
+  chardet,
+  pythonOlder,
+  pyparsing,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     sha256 = "sha256-YCRq8hUSP6Bi8hzXkb5n3aI6bygN8J9okZ5jeh5PMjU=";
   };
 
-  propagatedBuildInputs = [
-    pyparsing
-  ];
+  propagatedBuildInputs = [ pyparsing ];
 
   nativeCheckInputs = [
     chardet
@@ -48,18 +47,14 @@ buildPythonPackage rec {
       --replace "path = os.path.join(test_dir, TESTS_DIR_1)" "path = os.path.join('test/', TESTS_DIR_1)"
   '';
 
-  pytestFlagsArray = [
-    "test/pydot_unittest.py"
-  ];
+  pytestFlagsArray = [ "test/pydot_unittest.py" ];
 
   disabledTests = [
     # broken, fixed after 2.0.0
     "test_graph_with_shapefiles"
   ];
 
-  pythonImportsCheck = [
-    "pydot"
-  ];
+  pythonImportsCheck = [ "pydot" ];
 
   meta = with lib; {
     description = "Allows to create both directed and non directed graphs from Python";
diff --git a/pkgs/development/python-modules/pydrawise/default.nix b/pkgs/development/python-modules/pydrawise/default.nix
index 6d1f6aff06bf6..1aad1ae6668ca 100644
--- a/pkgs/development/python-modules/pydrawise/default.nix
+++ b/pkgs/development/python-modules/pydrawise/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "pydrawise";
-  version = "2024.4.1";
+  version = "2024.6.4";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "dknowles2";
     repo = "pydrawise";
     rev = "refs/tags/${version}";
-    hash = "sha256-rJul7UAhgB0a6+3buPlfjnhhy2QOo82gvmRtZB+vrko=";
+    hash = "sha256-I1VS9uNKybokbkKh6QVjsf5cLV3vg19EnblOheAyxn8=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/pydrive2/default.nix b/pkgs/development/python-modules/pydrive2/default.nix
index 32bb5d78984f3..f96380877eccb 100644
--- a/pkgs/development/python-modules/pydrive2/default.nix
+++ b/pkgs/development/python-modules/pydrive2/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, appdirs
-, buildPythonPackage
-, fetchPypi
-, fsspec
-, funcy
-, google-api-python-client
-, oauth2client
-, pyopenssl
-, pythonOlder
-, pyyaml
-, setuptools
-, setuptools-scm
-, tqdm
+{
+  lib,
+  appdirs,
+  buildPythonPackage,
+  fetchPypi,
+  fsspec,
+  funcy,
+  google-api-python-client,
+  oauth2client,
+  pyopenssl,
+  pythonOlder,
+  pyyaml,
+  setuptools,
+  setuptools-scm,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -51,9 +52,7 @@ buildPythonPackage rec {
   # Tests require a account and network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pydrive2"
-  ];
+  pythonImportsCheck = [ "pydrive2" ];
 
   meta = with lib; {
     description = "Google Drive API Python wrapper library";
diff --git a/pkgs/development/python-modules/pydroid-ipcam/default.nix b/pkgs/development/python-modules/pydroid-ipcam/default.nix
index 7013c70cdf5e6..661081d1940b2 100644
--- a/pkgs/development/python-modules/pydroid-ipcam/default.nix
+++ b/pkgs/development/python-modules/pydroid-ipcam/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pydroid_ipcam"
-  ];
+  pythonImportsCheck = [ "pydroid_ipcam" ];
 
   meta = with lib; {
     description = "Python library for Android IP Webcam";
diff --git a/pkgs/development/python-modules/pydruid/default.nix b/pkgs/development/python-modules/pydruid/default.nix
index 9ede441bd817a..69ba702507b0c 100644
--- a/pkgs/development/python-modules/pydruid/default.nix
+++ b/pkgs/development/python-modules/pydruid/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
   # required dependencies
-, requests
-, setuptools
+  requests,
+  setuptools,
   # optional dependencies
-, pandas
-, tornado
-, sqlalchemy
+  pandas,
+  tornado,
+  sqlalchemy,
   # test dependencies
-, pycurl
-, pytestCheckHook
+  pycurl,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -33,22 +34,16 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace '"console_scripts": ["pydruid = pydruid.console:main"],' ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     pytestCheckHook
     pycurl
   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "pydruid"
-  ];
+  pythonImportsCheck = [ "pydruid" ];
 
   passthru = {
     optional-dependencies = {
diff --git a/pkgs/development/python-modules/pydsdl/default.nix b/pkgs/development/python-modules/pydsdl/default.nix
index b3dfed8c6cac1..d74657c16784d 100644
--- a/pkgs/development/python-modules/pydsdl/default.nix
+++ b/pkgs/development/python-modules/pydsdl/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
- buildPythonPackage rec {
+buildPythonPackage rec {
   pname = "pydsdl";
   version = "1.18.0";
   format = "setuptools";
@@ -26,9 +27,7 @@
   # Module doesn't contain tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pydsdl"
-  ];
+  pythonImportsCheck = [ "pydsdl" ];
 
   meta = with lib; {
     description = "Library to process Cyphal DSDL";
diff --git a/pkgs/development/python-modules/pydub/default.nix b/pkgs/development/python-modules/pydub/default.nix
index 7ec3da3531cf2..e9fa5c8f70632 100644
--- a/pkgs/development/python-modules/pydub/default.nix
+++ b/pkgs/development/python-modules/pydub/default.nix
@@ -1,11 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, ffmpeg-full
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  ffmpeg-full,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  substituteAll,
 }:
 
 buildPythonPackage rec {
@@ -29,14 +31,18 @@ buildPythonPackage rec {
       url = "https://github.com/jiaaro/pydub/commit/66c1bf7813ae8621a71484fdcdf609734c0d8efd.patch";
       hash = "sha256-3OIzvTgGK3r4/s5y7izHvouB4uJEmjO6cgKvegtTf7A=";
     })
+    # Fix paths to ffmpeg, ffplay and ffprobe
+    (substituteAll {
+      src = ./ffmpeg-fix-path.patch;
+      ffmpeg = lib.getExe ffmpeg-full;
+      ffplay = lib.getExe' ffmpeg-full "ffplay";
+      ffprobe = lib.getExe' ffmpeg-full "ffprobe";
+    })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
-    ffmpeg-full
     pytestCheckHook
   ];
 
@@ -46,9 +52,7 @@ buildPythonPackage rec {
     "pydub.playback"
   ];
 
-  pytestFlagsArray = [
-    "test/test.py"
-  ];
+  pytestFlagsArray = [ "test/test.py" ];
 
   meta = with lib; {
     description = "Manipulate audio with a simple and easy high level interface";
diff --git a/pkgs/development/python-modules/pydub/ffmpeg-fix-path.patch b/pkgs/development/python-modules/pydub/ffmpeg-fix-path.patch
new file mode 100644
index 0000000000000..1da979dcec8e5
--- /dev/null
+++ b/pkgs/development/python-modules/pydub/ffmpeg-fix-path.patch
@@ -0,0 +1,28 @@
+diff --git a/pydub/utils.py b/pydub/utils.py
+index 2694f90..7764b3f 100644
+--- a/pydub/utils.py
++++ b/pydub/utils.py
+@@ -172,7 +172,7 @@ def get_encoder_name():
+     else:
+         # should raise exception
+         warn("Couldn't find ffmpeg or avconv - defaulting to ffmpeg, but may not work", RuntimeWarning)
+-        return "ffmpeg"
++        return "@ffmpeg@"
+
+
+ def get_player_name():
+@@ -186,7 +186,7 @@ def get_player_name():
+     else:
+         # should raise exception
+         warn("Couldn't find ffplay or avplay - defaulting to ffplay, but may not work", RuntimeWarning)
+-        return "ffplay"
++        return "@ffplay@"
+
+
+ def get_prober_name():
+@@ -200,7 +200,7 @@ def get_prober_name():
+     else:
+         # should raise exception
+         warn("Couldn't find ffprobe or avprobe - defaulting to ffprobe, but may not work", RuntimeWarning)
+-        return "ffprobe"
++        return "@ffprobe@"
diff --git a/pkgs/development/python-modules/pyduke-energy/default.nix b/pkgs/development/python-modules/pyduke-energy/default.nix
index d0342f8cff688..4f668b9e79ae6 100644
--- a/pkgs/development/python-modules/pyduke-energy/default.nix
+++ b/pkgs/development/python-modules/pyduke-energy/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, jsonpickle
-, paho-mqtt
-, pytest-asyncio
-, pytest-timeout
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jsonpickle,
+  paho-mqtt,
+  pytest-asyncio,
+  pytest-timeout,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pyduke_energy"
-  ];
+  pythonImportsCheck = [ "pyduke_energy" ];
 
   meta = with lib; {
     description = "Python module for the Duke Energy API";
diff --git a/pkgs/development/python-modules/pyduotecno/default.nix b/pkgs/development/python-modules/pyduotecno/default.nix
index a52d43e06a0f3..e8ea8acf0c4cf 100644
--- a/pkgs/development/python-modules/pyduotecno/default.nix
+++ b/pkgs/development/python-modules/pyduotecno/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "pyduotecno";
-  version = "2024.3.2";
+  version = "2024.5.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "Cereal2nd";
     repo = "pyDuotecno";
     rev = "refs/tags/${version}";
-    hash = "sha256-aak1e8NOxj7kncOyChpCEAQP1jpduhiSKDqm3mf5bqs=";
+    hash = "sha256-huzv7f1Aq/n3cD9S4oXqGQogq7VpPpzAUqkOhiB879A=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pydy/default.nix b/pkgs/development/python-modules/pydy/default.nix
index c7ee5359bee41..d6e0d6bf9775b 100644
--- a/pkgs/development/python-modules/pydy/default.nix
+++ b/pkgs/development/python-modules/pydy/default.nix
@@ -1,43 +1,47 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-, cython
-, numpy
-, scipy
-, sympy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  scipy,
+  sympy,
+  setuptools,
+  pynose,
+  cython,
 }:
 
 buildPythonPackage rec {
   pname = "pydy";
   version = "0.7.1";
-  format = "setuptools";
+
+  pyproject = true;
+  build-system = [ setuptools ];
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-aaRinJMGR8v/OVkeSp1hA4+QLOrmDWq50wvA6b/suvk=";
   };
 
-  propagatedBuildInputs = [
+  dependencies = [
     numpy
     scipy
     sympy
   ];
 
   nativeCheckInputs = [
-    nose
+    pynose
     cython
-    pytestCheckHook
   ];
 
-  disabledTests = [
-    # Tests not fixed yet. Check https://github.com/pydy/pydy/issues/465
-    "test_generate_cse"
-    "test_generate_code_blocks"
-    "test_doprint"
-    "test_OctaveMatrixGenerator"
-  ];
+  checkPhase = ''
+    runHook preCheck
+
+    nosetests pydy
+
+    runHook postCheck
+  '';
+
+  pythonImportsCheck = [ "pydy" ];
 
   meta = with lib; {
     description = "Python tool kit for multi-body dynamics";
diff --git a/pkgs/development/python-modules/pydyf/default.nix b/pkgs/development/python-modules/pydyf/default.nix
index 1e9d2584a20f8..d39f36b39e9e3 100644
--- a/pkgs/development/python-modules/pydyf/default.nix
+++ b/pkgs/development/python-modules/pydyf/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, ghostscript
-, pillow
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  ghostscript,
+  pillow,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "pydyf";
-  version = "0.9.0";
+  version = "0.10.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-1bJE6PwkEZznvV1R6i1nc8D/iKqBWX21VrxEDGuIBhA=";
+    hash = "sha256-NXGUWT769h17SKuXw9WXIhFJNJZ8PfPXh4ym3SWwTDA=";
   };
 
   postPatch = ''
@@ -25,9 +26,7 @@ buildPythonPackage rec {
       --replace "--isort --flake8 --cov --no-cov-on-fail" ""
   '';
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   nativeCheckInputs = [
     ghostscript
@@ -35,9 +34,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pydyf"
-  ];
+  pythonImportsCheck = [ "pydyf" ];
 
   meta = with lib; {
     description = "Low-level PDF generator written in Python and based on PDF specification 1.7";
diff --git a/pkgs/development/python-modules/pyebus/default.nix b/pkgs/development/python-modules/pyebus/default.nix
index 8659f0a38e974..dd299aae5878a 100644
--- a/pkgs/development/python-modules/pyebus/default.nix
+++ b/pkgs/development/python-modules/pyebus/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, anytree
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, poetry-core
-, pythonOlder
+{
+  lib,
+  anytree,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,20 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-6ooOSJAIi8vYmCjDHnbMGQJfPqPmzA5thDSg+iM7T+8=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    anytree
-  ];
+  propagatedBuildInputs = [ anytree ];
 
   # https://github.com/c0fec0de/pyebus/issues/3
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyebus"
-  ];
+  pythonImportsCheck = [ "pyebus" ];
 
   meta = with lib; {
     description = "Pythonic Interface to EBUS Daemon (ebusd)";
diff --git a/pkgs/development/python-modules/pyechonest/default.nix b/pkgs/development/python-modules/pyechonest/default.nix
index 3b4f4620e1469..c1a8766528d94 100644
--- a/pkgs/development/python-modules/pyechonest/default.nix
+++ b/pkgs/development/python-modules/pyechonest/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+}:
 
 buildPythonPackage rec {
   pname = "pyechonest";
diff --git a/pkgs/development/python-modules/pyeclib/default.nix b/pkgs/development/python-modules/pyeclib/default.nix
index b367f680e5051..70fb7aeb59754 100644
--- a/pkgs/development/python-modules/pyeclib/default.nix
+++ b/pkgs/development/python-modules/pyeclib/default.nix
@@ -1,4 +1,11 @@
-{ lib, stdenv, buildPythonPackage, fetchFromGitHub, liberasurecode, six }:
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  liberasurecode,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "pyeclib";
@@ -21,12 +28,14 @@ buildPythonPackage rec {
       --replace '"Darwin"' '"macOS"'
   '';
 
-  preBuild = let
-    ldLibraryPathEnvName = if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH";
-  in ''
-    # required for the custom _find_library function in setup.py
-    export ${ldLibraryPathEnvName}="${lib.makeLibraryPath [ liberasurecode ]}"
-  '';
+  preBuild =
+    let
+      ldLibraryPathEnvName = if stdenv.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH";
+    in
+    ''
+      # required for the custom _find_library function in setup.py
+      export ${ldLibraryPathEnvName}="${lib.makeLibraryPath [ liberasurecode ]}"
+    '';
 
   buildInputs = [ liberasurecode ];
 
@@ -35,7 +44,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyeclib" ];
 
   meta = with lib; {
-    description = "This library provides a simple Python interface for implementing erasure codes.";
+    description = "This library provides a simple Python interface for implementing erasure codes";
     homepage = "https://github.com/openstack/pyeclib";
     license = licenses.bsd2;
     maintainers = teams.openstack.members;
diff --git a/pkgs/development/python-modules/pyecoforest/default.nix b/pkgs/development/python-modules/pyecoforest/default.nix
index a116a35420897..b0c69a520ade0 100644
--- a/pkgs/development/python-modules/pyecoforest/default.nix
+++ b/pkgs/development/python-modules/pyecoforest/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, httpx
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, respx
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpx,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  respx,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +29,9 @@ buildPythonPackage rec {
       --replace-fail "--cov=pyecoforest --cov-report=term-missing:skip-covered" ""
   '';
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    httpx
-  ];
+  dependencies = [ httpx ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -42,10 +39,17 @@ buildPythonPackage rec {
     respx
   ];
 
-  pythonImportsCheck = [
-    "pyecoforest"
+  disabledTests = [
+    # respx.models.AllMockedAssertionError
+    "test_get"
+    "test_get_errors"
+    "test_set_temperature"
+    "test_set_power"
+    "test_turn"
   ];
 
+  pythonImportsCheck = [ "pyecoforest" ];
+
   meta = with lib; {
     description = "Module for interacting with Ecoforest devices";
     homepage = "https://github.com/pjanuario/pyecoforest";
diff --git a/pkgs/development/python-modules/pyeconet/default.nix b/pkgs/development/python-modules/pyeconet/default.nix
index d479564b763b5..137ca9d577577 100644
--- a/pkgs/development/python-modules/pyeconet/default.nix
+++ b/pkgs/development/python-modules/pyeconet/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, paho-mqtt
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  paho-mqtt,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-R6PA/i35vo253J4yowe2fPRZEqStAqmm98k81KDHLQk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     paho-mqtt
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Tests require credentials
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyeconet"
-  ];
+  pythonImportsCheck = [ "pyeconet" ];
 
   meta = with lib; {
     description = "Python interface to the EcoNet API";
diff --git a/pkgs/development/python-modules/pyecowitt/default.nix b/pkgs/development/python-modules/pyecowitt/default.nix
index b5f4a5fadbacf..0786f87c7e293 100644
--- a/pkgs/development/python-modules/pyecowitt/default.nix
+++ b/pkgs/development/python-modules/pyecowitt/default.nix
@@ -1,39 +1,40 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyecowitt";
   version = "0.21";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "garbled1";
-    repo = pname;
-    rev = version;
-    sha256 = "5VdVo6j2HZXSCWU4NvfWzyS/KJfVb7N1KSMeu8TvWaQ=";
+    repo = "pyecowitt";
+    rev = "refs/tags/${version}";
+    hash = "sha256-5VdVo6j2HZXSCWU4NvfWzyS/KJfVb7N1KSMeu8TvWaQ=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ aiohttp ];
 
   # Project thas no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyecowitt"
-  ];
+  pythonImportsCheck = [ "pyecowitt" ];
 
   meta = with lib; {
     description = "Python module for the EcoWitt Protocol";
     homepage = "https://github.com/garbled1/pyecowitt";
-    license = with licenses; [ asl20 ];
+    changelog = "https://github.com/garbled1/pyecowitt/releases/tag/${version}";
+    license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/pyedimax/default.nix b/pkgs/development/python-modules/pyedimax/default.nix
index e96147ef67a03..dff8a0ffa899f 100644
--- a/pkgs/development/python-modules/pyedimax/default.nix
+++ b/pkgs/development/python-modules/pyedimax/default.nix
@@ -1,29 +1,37 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyedimax";
   version = "0.2.1";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1i3gr5vygqh2ryg67sl13aaql7nvf3nbybrg54628r4g7911b5rk";
+    hash = "sha256-M5cVQjqPZCQMKS8vv+xw2x6KlRqB6mOezwLi53fJb8Q=";
   };
 
-  propagatedBuildInputs = [ requests ];
+  build-system = [ setuptools ];
+
+  dependencies = [ requests ];
 
-  # Project has no tests
+  # Module has no tests
   doCheck = false;
+
   pythonImportsCheck = [ "pyedimax" ];
 
   meta = with lib; {
     description = "Python library for interfacing with the Edimax smart plugs";
     homepage = "https://github.com/andreipop2005/pyedimax";
-    license = with licenses; [ mit ];
+    license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/pyee/default.nix b/pkgs/development/python-modules/pyee/default.nix
index 281611c31bddd..9da32d7034b83 100644
--- a/pkgs/development/python-modules/pyee/default.nix
+++ b/pkgs/development/python-modules/pyee/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mock
-, pytest-asyncio
-, pytest-trio
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
-, twisted
-, typing-extensions
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  pytest-asyncio,
+  pytest-trio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  twisted,
+  typing-extensions,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ typing-extensions ];
 
   nativeCheckInputs = [
     mock
@@ -43,12 +42,10 @@ buildPythonPackage rec {
     twisted
   ];
 
-  pythonImportsCheck = [
-    "pyee"
-  ];
+  pythonImportsCheck = [ "pyee" ];
 
   meta = with lib; {
-    description = "A port of Node.js's EventEmitter to Python";
+    description = "Port of Node.js's EventEmitter to Python";
     homepage = "https://github.com/jfhbrook/pyee";
     license = licenses.mit;
     maintainers = with maintainers; [ kmein ];
diff --git a/pkgs/development/python-modules/pyefergy/default.nix b/pkgs/development/python-modules/pyefergy/default.nix
index 87f2abda0c0b8..47e4e41e624fe 100644
--- a/pkgs/development/python-modules/pyefergy/default.nix
+++ b/pkgs/development/python-modules/pyefergy/default.nix
@@ -1,47 +1,52 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, iso4217
-, pytest-asyncio
-, pythonOlder
-, pytz
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  poetry-dynamic-versioning,
+  iso4217,
+  pythonOlder,
+  pytz,
 }:
 
 buildPythonPackage rec {
   pname = "pyefergy";
-  version = "22.1.1";
-  format = "setuptools";
+  version = "22.5.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "tkdrob";
-    repo = pname;
-    rev = version;
-    hash = "sha256-AdoM+PcVoajxhnEfkyN9UuNufChu8XGmZDLNC3mjrps=";
+    repo = "pyefergy";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-4M3r/+C42X95/7BGZAJbkXKKFEkGzLlvX0Ynv+eL8qc=";
   };
 
-  postPatch = ''
-    # setuptools.extern.packaging.version.InvalidVersion: Invalid version: 'master'
-    substituteInPlace setup.py \
-      --replace 'version="master",' 'version="${version}",'
-  '';
+  build-system = [
+    poetry-core
+    poetry-dynamic-versioning
+  ];
+
+  pythonRemoveDeps = [
+    "codecov"
+    "types-pytz"
+  ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     iso4217
     pytz
   ];
 
   # Tests require network access
-  doCheck  =false;
+  doCheck = false;
 
-  pythonImportsCheck = [
-    "pyefergy"
-  ];
+  pythonImportsCheck = [ "pyefergy" ];
 
   meta = with lib; {
+    changelog = "https://github.com/tkdrob/pyefergy/releases/tag/v${version}";
     description = "Python API library for Efergy energy meters";
     homepage = "https://github.com/tkdrob/pyefergy";
     license = with licenses; [ mit ];
diff --git a/pkgs/development/python-modules/pyeight/default.nix b/pkgs/development/python-modules/pyeight/default.nix
index 3dec94efd3e98..6ccc5f099e4cb 100644
--- a/pkgs/development/python-modules/pyeight/default.nix
+++ b/pkgs/development/python-modules/pyeight/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyeight"
-  ];
+  pythonImportsCheck = [ "pyeight" ];
 
   meta = with lib; {
     description = "Python library to interface with the Eight Sleep API";
diff --git a/pkgs/development/python-modules/pyelftools/default.nix b/pkgs/development/python-modules/pyelftools/default.nix
index 063215f5bc6e1..b9976b5d91028 100644
--- a/pkgs/development/python-modules/pyelftools/default.nix
+++ b/pkgs/development/python-modules/pyelftools/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, pythonOlder
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-kX89fMXqrEvhMAAjqKHzHmrYizKBt1uCWMOJtFNNhy4=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   doCheck = stdenv.hostPlatform.system == "x86_64-linux" && stdenv.hostPlatform.isGnu;
 
@@ -34,16 +33,23 @@ buildPythonPackage rec {
     ${python.interpreter} test/run_readelf_tests.py --parallel
   '';
 
-  pythonImportsCheck = [
-    "elftools"
-  ];
+  pythonImportsCheck = [ "elftools" ];
 
-  meta = with lib; {
+  meta = {
     description = "Python library for analyzing ELF files and DWARF debugging information";
     homepage = "https://github.com/eliben/pyelftools";
     changelog = "https://github.com/eliben/pyelftools/blob/v${version}/CHANGES";
-    license = licenses.publicDomain;
-    maintainers = with maintainers; [ igsha pamplemousse ];
+    license = with lib.licenses; [
+      # Public domain with Unlicense waiver.
+      unlicense
+      # pyelftools bundles construct library that is licensed under MIT license.
+      # See elftools/construct/{LICENSE,README} in the source code.
+      mit
+    ];
+    maintainers = with lib.maintainers; [
+      igsha
+      pamplemousse
+    ];
     mainProgram = "readelf.py";
   };
 }
diff --git a/pkgs/development/python-modules/pyemby/default.nix b/pkgs/development/python-modules/pyemby/default.nix
index 2646744d0bf8c..4233a5a817bfe 100644
--- a/pkgs/development/python-modules/pyemby/default.nix
+++ b/pkgs/development/python-modules/pyemby/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyemd/default.nix b/pkgs/development/python-modules/pyemd/default.nix
index 1fd61b054f67a..16d5cde886911 100644
--- a/pkgs/development/python-modules/pyemd/default.nix
+++ b/pkgs/development/python-modules/pyemd/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, cython
-, oldest-supported-numpy
-, packaging
-, setuptools
-, setuptools-scm
-, wheel
-, numpy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  cython,
+  oldest-supported-numpy,
+  packaging,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  numpy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -35,16 +36,12 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A Python wrapper for Ofir Pele and Michael Werman's implementation of the Earth Mover's Distance";
+    description = "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/pkgs/development/python-modules/pyemvue/default.nix b/pkgs/development/python-modules/pyemvue/default.nix
index b6f42daac6208..641339d487a9d 100644
--- a/pkgs/development/python-modules/pyemvue/default.nix
+++ b/pkgs/development/python-modules/pyemvue/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-
-# build-system
-, hatchling
-
-# propagated modules
-, requests
-, python-dateutil
-, pycognito
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+
+  # build-system
+  hatchling,
+
+  # propagated modules
+  requests,
+  python-dateutil,
+  pycognito,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-cgQARaGM6Jb2kEcG7HqPStRPkhHldJ7UbxQpxN6JbZE=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     requests
@@ -40,7 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/magico13/PyEmVue/releases/tag/v${version}";
-    description = "A Python library for reading data from the Emporia Vue energy monitoring system";
+    description = "Python library for reading data from the Emporia Vue energy monitoring system";
     homepage = "https://github.com/magico13/PyEmVue";
     license = licenses.mit;
     maintainers = with maintainers; [ presto8 ];
diff --git a/pkgs/development/python-modules/pyenchant/default.nix b/pkgs/development/python-modules/pyenchant/default.nix
index 448183cf0f580..d7661d9b24a0f 100644
--- a/pkgs/development/python-modules/pyenchant/default.nix
+++ b/pkgs/development/python-modules/pyenchant/default.nix
@@ -1,8 +1,10 @@
-{ lib, stdenv
-, buildPythonPackage
-, isPy27
-, fetchPypi
-, enchant2
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  isPy27,
+  fetchPypi,
+  enchant2,
 }:
 
 buildPythonPackage rec {
@@ -18,20 +20,22 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ enchant2 ];
 
-  postPatch = let
-    libext = stdenv.hostPlatform.extensions.sharedLibrary;
-  in ''
-    # Use the $PYENCHANT_LIBRARY_PATH envvar lookup line to hard-code the
-    # location of the nix enchant-2 library into _enchant.py.
-    #
-    # Also, they hardcode a bad path for Darwin in their library search code;
-    # This code should never be hit, but in case it does, we don't want to have
-    # it "accidentally" work by pulling something from /opt.
-    substituteInPlace enchant/_enchant.py                  \
-      --replace 'os.environ.get("PYENCHANT_LIBRARY_PATH")' \
-                "'${enchant2}/lib/libenchant-2${libext}'"  \
-      --replace '/opt/local/lib/' ""
-  '';
+  postPatch =
+    let
+      libext = stdenv.hostPlatform.extensions.sharedLibrary;
+    in
+    ''
+      # Use the $PYENCHANT_LIBRARY_PATH envvar lookup line to hard-code the
+      # location of the nix enchant-2 library into _enchant.py.
+      #
+      # Also, they hardcode a bad path for Darwin in their library search code;
+      # This code should never be hit, but in case it does, we don't want to have
+      # it "accidentally" work by pulling something from /opt.
+      substituteInPlace enchant/_enchant.py                  \
+        --replace 'os.environ.get("PYENCHANT_LIBRARY_PATH")' \
+                  "'${enchant2}/lib/libenchant-2${libext}'"  \
+        --replace '/opt/local/lib/' ""
+    '';
 
   # dictionaries needed for tests
   doCheck = false;
@@ -41,5 +45,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/pyenchant/pyenchant";
     license = licenses.lgpl21;
   };
-
 }
diff --git a/pkgs/development/python-modules/pyenphase/default.nix b/pkgs/development/python-modules/pyenphase/default.nix
index 45e4b014db726..3081ed70edb5b 100644
--- a/pkgs/development/python-modules/pyenphase/default.nix
+++ b/pkgs/development/python-modules/pyenphase/default.nix
@@ -19,7 +19,7 @@
 
 buildPythonPackage rec {
   pname = "pyenphase";
-  version = "1.20.2";
+  version = "1.20.3";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -28,7 +28,7 @@ buildPythonPackage rec {
     owner = "pyenphase";
     repo = "pyenphase";
     rev = "refs/tags/v${version}";
-    hash = "sha256-sjZaLqTYoXJ1cpaSuyLNAsUrACOMVah7DKaKxGkG0zE=";
+    hash = "sha256-4lMsyzw56gFimUs52mEzy5eKYF9s2ClNi3yfdIBbccY=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pyenvisalink/default.nix b/pkgs/development/python-modules/pyenvisalink/default.nix
index 8ea5a09e0e4be..84167f4ae58d1 100644
--- a/pkgs/development/python-modules/pyenvisalink/default.nix
+++ b/pkgs/development/python-modules/pyenvisalink/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, colorlog
-, fetchPypi
-, pyserial
-, pythonOlder
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  colorlog,
+  fetchPypi,
+  pyserial,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "pyenvisalink";
-  version = "4.6";
+  version = "4.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-CQvomHYNMrf0oQjNCcLyisxIV2+3TOgEPzA9seZYsOs=";
+    hash = "sha256-b5v/7+B/yyCnKrWCs0scAuIgV1wSLk6cVa57n+HncUw=";
   };
 
   propagatedBuildInputs = [
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Tests require an Envisalink device
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyenvisalink"
-  ];
+  pythonImportsCheck = [ "pyenvisalink" ];
 
   meta = with lib; {
     description = "Python interface for Envisalink 2DS/3 Alarm API";
diff --git a/pkgs/development/python-modules/pyephember/default.nix b/pkgs/development/python-modules/pyephember/default.nix
index 48cad7bc1954e..45d9227d7b9df 100644
--- a/pkgs/development/python-modules/pyephember/default.nix
+++ b/pkgs/development/python-modules/pyephember/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, paho-mqtt
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  paho-mqtt,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyephember"
-  ];
+  pythonImportsCheck = [ "pyephember" ];
 
   meta = with lib; {
     description = "Python client to the EPH Control Systems Ember API";
diff --git a/pkgs/development/python-modules/pyepsg/default.nix b/pkgs/development/python-modules/pyepsg/default.nix
index 0fb511e1c8341..f7b7a3e11a6ae 100644
--- a/pkgs/development/python-modules/pyepsg/default.nix
+++ b/pkgs/development/python-modules/pyepsg/default.nix
@@ -1,4 +1,9 @@
-{ buildPythonPackage, lib, fetchPypi, requests }:
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+  requests,
+}:
 
 buildPythonPackage rec {
   pname = "pyepsg";
@@ -20,5 +25,4 @@ buildPythonPackage rec {
     homepage = "https://pyepsg.readthedocs.io/en/latest/";
     maintainers = with maintainers; [ mredaelli ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pyerfa/default.nix b/pkgs/development/python-modules/pyerfa/default.nix
index fd7348f3ca59a..68e5f7d97496e 100644
--- a/pkgs/development/python-modules/pyerfa/default.nix
+++ b/pkgs/development/python-modules/pyerfa/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jinja2
-, setuptools
-, setuptools-scm
-, liberfa
-, packaging
-, numpy
-, pytestCheckHook
-, pytest-doctestplus
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jinja2,
+  setuptools,
+  setuptools-scm,
+  liberfa,
+  packaging,
+  numpy,
+  pytestCheckHook,
+  pytest-doctestplus,
 }:
 
 buildPythonPackage rec {
@@ -33,12 +34,8 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  dependencies = [
-    numpy
-  ];
-  buildInputs = [
-    liberfa
-  ];
+  dependencies = [ numpy ];
+  buildInputs = [ liberfa ];
 
   preBuild = ''
     export PYERFA_USE_SYSTEM_LIBERFA=1
@@ -56,19 +53,17 @@ buildPythonPackage rec {
   preCheck = ''
     cd $out
   '';
-  pythonImportsCheck = [
-    "erfa"
-  ];
+  pythonImportsCheck = [ "erfa" ];
 
   meta = with lib; {
     description = "Python bindings for ERFA routines";
     longDescription = ''
-        PyERFA is the Python wrapper for the ERFA library (Essential Routines
-        for Fundamental Astronomy), a C library containing key algorithms for
-        astronomy, which is based on the SOFA library published by the
-        International Astronomical Union (IAU). All C routines are wrapped as
-        Numpy universal functions, so that they can be called with scalar or
-        array inputs.
+      PyERFA is the Python wrapper for the ERFA library (Essential Routines
+      for Fundamental Astronomy), a C library containing key algorithms for
+      astronomy, which is based on the SOFA library published by the
+      International Astronomical Union (IAU). All C routines are wrapped as
+      Numpy universal functions, so that they can be called with scalar or
+      array inputs.
     '';
     homepage = "https://github.com/liberfa/pyerfa";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/pyeverlights/default.nix b/pkgs/development/python-modules/pyeverlights/default.nix
index 22183ddcea285..dd9abeca4f313 100644
--- a/pkgs/development/python-modules/pyeverlights/default.nix
+++ b/pkgs/development/python-modules/pyeverlights/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyevilgenius/default.nix b/pkgs/development/python-modules/pyevilgenius/default.nix
index 079b1825440aa..40d48342e57e3 100644
--- a/pkgs/development/python-modules/pyevilgenius/default.nix
+++ b/pkgs/development/python-modules/pyevilgenius/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, async-timeout
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  async-timeout,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Project has no test
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyevilgenius"
-  ];
+  pythonImportsCheck = [ "pyevilgenius" ];
 
   meta = with lib; {
     description = "Python SDK to interact with Evil Genius Labs devices";
diff --git a/pkgs/development/python-modules/pyevmasm/default.nix b/pkgs/development/python-modules/pyevmasm/default.nix
index 581825f0d16b8..c683c93143b27 100644
--- a/pkgs/development/python-modules/pyevmasm/default.nix
+++ b/pkgs/development/python-modules/pyevmasm/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, future
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  future,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyexcel-io/default.nix b/pkgs/development/python-modules/pyexcel-io/default.nix
index 3c9dd3b09b87b..93244293adab6 100644
--- a/pkgs/development/python-modules/pyexcel-io/default.nix
+++ b/pkgs/development/python-modules/pyexcel-io/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, lml
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  lml,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-9ghL8a+l+/TGHPffRDcPpROCGvGIsC4+GbXvtm2Klp8=";
   };
 
-  propagatedBuildInputs = [
-    lml
-  ];
+  propagatedBuildInputs = [ lml ];
 
   # Tests depend on stuff that depends on this.
   doCheck = false;
diff --git a/pkgs/development/python-modules/pyexcel-ods/default.nix b/pkgs/development/python-modules/pyexcel-ods/default.nix
index 22339eb15bfec..646bd2e8adc7a 100644
--- a/pkgs/development/python-modules/pyexcel-ods/default.nix
+++ b/pkgs/development/python-modules/pyexcel-ods/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyexcel-io
-, odfpy
-, nose
-, pyexcel
-, pyexcel-xls
-, psutil
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyexcel-io,
+  odfpy,
+  nose,
+  pyexcel,
+  pyexcel-xls,
+  psutil,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyexcel-xls/default.nix b/pkgs/development/python-modules/pyexcel-xls/default.nix
index 2188d25532ca9..5ff87b2390eb7 100644
--- a/pkgs/development/python-modules/pyexcel-xls/default.nix
+++ b/pkgs/development/python-modules/pyexcel-xls/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyexcel-io
-, xlrd
-, xlwt
-, nose
-, pyexcel
-, mock
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyexcel-io,
+  xlrd,
+  xlwt,
+  nose,
+  pyexcel,
+  mock,
 }:
 
 buildPythonPackage rec {
@@ -38,7 +39,7 @@ buildPythonPackage rec {
   checkPhase = "nosetests --exclude test_issue_151";
 
   meta = {
-    description = "A wrapper library to read, manipulate and write data in xls using xlrd and xlwt";
+    description = "Wrapper library to read, manipulate and write data in xls using xlrd and xlwt";
     homepage = "http://docs.pyexcel.org/";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/development/python-modules/pyexcel/default.nix b/pkgs/development/python-modules/pyexcel/default.nix
index 6c35f7b10af5f..439164698590e 100644
--- a/pkgs/development/python-modules/pyexcel/default.nix
+++ b/pkgs/development/python-modules/pyexcel/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-, chardet
-, lml
-, pyexcel-io
-, texttable
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  chardet,
+  lml,
+  pyexcel-io,
+  texttable,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     texttable
   ];
 
-  pythonImportsCheck = [
-    "pyexcel"
-  ];
+  pythonImportsCheck = [ "pyexcel" ];
 
   # Tests depend on pyexcel-xls & co. causing circular dependency.
   # https://github.com/pyexcel/pyexcel/blob/dev/tests/requirements.txt
diff --git a/pkgs/development/python-modules/pyexiftool/default.nix b/pkgs/development/python-modules/pyexiftool/default.nix
index e7240658ef330..36ed807a17bba 100644
--- a/pkgs/development/python-modules/pyexiftool/default.nix
+++ b/pkgs/development/python-modules/pyexiftool/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, exiftool
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  exiftool,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -27,21 +28,20 @@ buildPythonPackage rec {
                      'DEFAULT_EXECUTABLE = "${lib.getExe exiftool}"'
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   pythonImportsCheck = [ "exiftool" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
     changelog = "https://github.com/sylikc/pyexiftool/blob/${src.rev}/CHANGELOG.md";
     description = "Python wrapper for exiftool";
     homepage = "https://github.com/sylikc/pyexiftool";
-    license = with lib.licenses; [ bsd3 /* or */ gpl3Plus ];
+    license = with lib.licenses; [
+      bsd3 # or
+      gpl3Plus
+    ];
     maintainers = with lib.maintainers; [ dotlambda ];
   };
 }
diff --git a/pkgs/development/python-modules/pyexploitdb/default.nix b/pkgs/development/python-modules/pyexploitdb/default.nix
index c59205aa3f1a3..c86678cbc499f 100644
--- a/pkgs/development/python-modules/pyexploitdb/default.nix
+++ b/pkgs/development/python-modules/pyexploitdb/default.nix
@@ -1,26 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, gitpython
-, pytestCheckHook
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  gitpython,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyexploitdb";
-  version = "0.2.9";
-  format = "setuptools";
+  version = "0.2.22";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     pname = "pyExploitDb";
     inherit version;
-    hash = "sha256-q16YB0lLlw9nXohcT20l41Bv40CqshWzE8nVBBSEppE=";
+    hash = "sha256-zLGJ8MYfyXrJwy8GywOq9fM9rMMmRTgPrgiByGwQ+gM=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     gitpython
     requests
   ];
@@ -28,14 +32,12 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyExploitDb"
-  ];
+  pythonImportsCheck = [ "pyExploitDb" ];
 
   meta = with lib; {
     description = "Library to fetch the most recent exploit-database";
     homepage = "https://github.com/GoVanguard/pyExploitDb";
-    changelog = "https://github.com/GoVanguard/pyExploitDb/blob/master/Changelog.txt";
+    changelog = "https://github.com/GoVanguard/pyExploitDb/blob/master/ChangeLog.md";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/pyezviz/default.nix b/pkgs/development/python-modules/pyezviz/default.nix
index 1f3f6662f386f..43fd100d7ce00 100644
--- a/pkgs/development/python-modules/pyezviz/default.nix
+++ b/pkgs/development/python-modules/pyezviz/default.nix
@@ -1,29 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, paho-mqtt
-, pandas
-, pycryptodome
-, pythonOlder
-, requests
-, xmltodict
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  paho-mqtt,
+  pandas,
+  pycryptodome,
+  pythonOlder,
+  requests,
+  setuptools,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
   pname = "pyezviz";
-  version = "0.2.2.3";
-  format = "setuptools";
+  version = "0.2.2.4";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "baqs";
     repo = "pyEzviz";
     rev = "refs/tags/${version}";
-    hash = "sha256-HZLWpoo0luAqqwLA3t7cDh0yVP6znrzMoUg7cuexd28=";
+    hash = "sha256-ngQu9g0qvJ3zDaTdGqJDGRoMhnGYdp5jHDoPiuXOwGs=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     paho-mqtt
     pandas
     pycryptodome
@@ -34,16 +38,14 @@ buildPythonPackage rec {
   # Project has no tests. test_cam_rtsp.py is more a sample for using the module
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyezviz"
-  ];
+  pythonImportsCheck = [ "pyezviz" ];
 
   meta = with lib; {
     description = "Python interface for for Ezviz cameras";
-    mainProgram = "pyezviz";
     homepage = "https://github.com/baqs/pyEzviz/";
     changelog = "https://github.com/BaQs/pyEzviz/releases/tag/${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "pyezviz";
   };
 }
diff --git a/pkgs/development/python-modules/pyface/default.nix b/pkgs/development/python-modules/pyface/default.nix
index fd0f1409ca750..c93c7d266f5a2 100644
--- a/pkgs/development/python-modules/pyface/default.nix
+++ b/pkgs/development/python-modules/pyface/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, importlib-metadata
-, importlib-resources
-, setuptools
-, traits
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  importlib-metadata,
+  importlib-resources,
+  setuptools,
+  traits,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-fhNhg0e3pkjtIM29T9GlFkj1AQKR815OD/G/cKcgy/g=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     importlib-metadata
@@ -32,9 +31,7 @@ buildPythonPackage rec {
 
   doCheck = false; # Needs X server
 
-  pythonImportsCheck = [
-    "pyface"
-  ];
+  pythonImportsCheck = [ "pyface" ];
 
   meta = with lib; {
     description = "Traits-capable windowing framework";
diff --git a/pkgs/development/python-modules/pyfaidx/default.nix b/pkgs/development/python-modules/pyfaidx/default.nix
index 4999b1dcddf99..551814d9fe81e 100644
--- a/pkgs/development/python-modules/pyfaidx/default.nix
+++ b/pkgs/development/python-modules/pyfaidx/default.nix
@@ -1,39 +1,37 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, importlib-metadata
-, nose
-, numpy
-, setuptools
-, setuptools-scm
-, six
-, glibcLocales
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  glibcLocales,
+  importlib-metadata,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "pyfaidx";
   version = "0.8.1.1";
-  format = "pyproject";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-bwSCNSYZ8sxWADyiIyG9sNB2S2VnlbweQGKx+psIaGs=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    importlib-metadata
-    six
-  ];
+  dependencies = [ importlib-metadata ];
 
   nativeCheckInputs = [
     glibcLocales
-    nose
     numpy
     pytestCheckHook
   ];
@@ -43,15 +41,14 @@ buildPythonPackage rec {
     "tests/test_Fasta_bgzip.py"
   ];
 
-  pythonImportsCheck = [
-    "pyfaidx"
-  ];
+  pythonImportsCheck = [ "pyfaidx" ];
 
   meta = with lib; {
-    homepage = "https://github.com/mdshw5/pyfaidx";
     description = "Python classes for indexing, retrieval, and in-place modification of FASTA files using a samtools compatible index";
-    mainProgram = "faidx";
+    homepage = "https://github.com/mdshw5/pyfaidx";
+    changelog = "https://github.com/mdshw5/pyfaidx/releases/tag/v${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jbedo ];
+    mainProgram = "faidx";
   };
 }
diff --git a/pkgs/development/python-modules/pyfakefs/default.nix b/pkgs/development/python-modules/pyfakefs/default.nix
index 6e31c1e2e2364..ff29175870ab4 100644
--- a/pkgs/development/python-modules/pyfakefs/default.nix
+++ b/pkgs/development/python-modules/pyfakefs/default.nix
@@ -1,50 +1,49 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-
-# build-system
-, setuptools
-
-# tests
-, pandas
-, pytestCheckHook
-, undefined
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+
+  # tests
+  pandas,
+  pytestCheckHook,
+  undefined,
 }:
 
 buildPythonPackage rec {
   pname = "pyfakefs";
-  version = "5.4.1";
+  version = "5.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-IMtR6GDC8/+DhZFirVE0u4sKHnqB3woYz8zEhi0Nncw=";
+    hash = "sha256-dEiqoHFC+JLQpOtSpe0yBqnwLGWZ5obNl9YkwYl5wVQ=";
   };
 
-  postPatch = ''
-    # test doesn't work in sandbox
-    substituteInPlace pyfakefs/tests/fake_filesystem_test.py \
-      --replace "test_expand_root" "notest_expand_root"
-    substituteInPlace pyfakefs/tests/fake_os_test.py \
-      --replace "test_path_links_not_resolved" "notest_path_links_not_resolved" \
-      --replace "test_append_mode_tell_linux_windows" "notest_append_mode_tell_linux_windows"
-  '' + (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"
-  '');
-
-  nativeBuildInputs = [
-    setuptools
-  ];
-
-  pythonImportsCheck = [
-    "pyfakefs"
-  ];
+  postPatch =
+    ''
+      # test doesn't work in sandbox
+      substituteInPlace pyfakefs/tests/fake_filesystem_test.py \
+        --replace "test_expand_root" "notest_expand_root"
+      substituteInPlace pyfakefs/tests/fake_os_test.py \
+        --replace "test_path_links_not_resolved" "notest_path_links_not_resolved" \
+        --replace "test_append_mode_tell_linux_windows" "notest_append_mode_tell_linux_windows"
+    ''
+    + (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"
+    '');
+
+  nativeBuildInputs = [ setuptools ];
+
+  pythonImportsCheck = [ "pyfakefs" ];
 
   nativeCheckInputs = [
     pandas
diff --git a/pkgs/development/python-modules/pyfakewebcam/default.nix b/pkgs/development/python-modules/pyfakewebcam/default.nix
index 22e56a0a36c7a..681b06644ac59 100644
--- a/pkgs/development/python-modules/pyfakewebcam/default.nix
+++ b/pkgs/development/python-modules/pyfakewebcam/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, numpy, opencv4 }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  opencv4,
+}:
 
 buildPythonPackage rec {
   pname = "pyfakewebcam";
@@ -10,14 +16,17 @@ buildPythonPackage rec {
     sha256 = "152nglscxmv7600i1i2gahny5z0bybnqgq3npak8npb0lsnwxn1a";
   };
 
-  propagatedBuildInputs = [ numpy opencv4 ];
+  propagatedBuildInputs = [
+    numpy
+    opencv4
+  ];
 
   # No tests are available
   doCheck = false;
   pythonImportsCheck = [ "pyfakewebcam" ];
 
   meta = with lib; {
-    description = "A library for writing RGB frames to a fake webcam device on Linux";
+    description = "Library for writing RGB frames to a fake webcam device on Linux";
     homepage = "https://github.com/jremmons/pyfakewebcam";
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ emilytrau ];
diff --git a/pkgs/development/python-modules/pyfantom/default.nix b/pkgs/development/python-modules/pyfantom/default.nix
index 106bfa8d893f1..901a2be7484f7 100644
--- a/pkgs/development/python-modules/pyfantom/default.nix
+++ b/pkgs/development/python-modules/pyfantom/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchgit
+{
+  lib,
+  buildPythonPackage,
+  fetchgit,
 }:
 
 buildPythonPackage {
@@ -21,5 +22,4 @@ buildPythonPackage {
     description = "Wrapper for the LEGO Mindstorms Fantom Driver";
     license = licenses.gpl2;
   };
-
 }
diff --git a/pkgs/development/python-modules/pyfcm/default.nix b/pkgs/development/python-modules/pyfcm/default.nix
index 997c9e1863865..342b3b88976ac 100644
--- a/pkgs/development/python-modules/pyfcm/default.nix
+++ b/pkgs/development/python-modules/pyfcm/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, requests
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyfftw/default.nix b/pkgs/development/python-modules/pyfftw/default.nix
deleted file mode 100644
index cf5573c8c2b9b..0000000000000
--- a/pkgs/development/python-modules/pyfftw/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi
-, fftw, fftwFloat, fftwLongDouble, numpy, scipy, cython_0, dask }:
-
-buildPythonPackage rec {
-  version = "0.13.1";
-  pname = "pyFFTW";
-
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-CRVekKDG0MHy0fNmgYCn3pX7n4P+9RN6ES+wWXjocyA=";
-  };
-
-  preConfigure = ''
-    export LDFLAGS="-L${fftw.out}/lib -L${fftwFloat.out}/lib -L${fftwLongDouble.out}/lib"
-    export CFLAGS="-I${fftw.dev}/include -I${fftwFloat.dev}/include -I${fftwLongDouble.dev}/include"
-  '';
-
-  buildInputs = [ fftw fftwFloat fftwLongDouble];
-
-  propagatedBuildInputs = [ numpy scipy cython_0 dask ];
-
-  # Tests cannot import pyfftw. pyfftw works fine though.
-  doCheck = false;
-  pythonImportsCheck = [ "pyfftw" ];
-
-  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/pkgs/development/python-modules/pyfido/default.nix b/pkgs/development/python-modules/pyfido/default.nix
index 8a092e7e934d8..af48a98473019 100644
--- a/pkgs/development/python-modules/pyfido/default.nix
+++ b/pkgs/development/python-modules/pyfido/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyfiglet/default.nix b/pkgs/development/python-modules/pyfiglet/default.nix
index 4226fca32f7f7..20c448b36c644 100644
--- a/pkgs/development/python-modules/pyfiglet/default.nix
+++ b/pkgs/development/python-modules/pyfiglet/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   version = "1.0.2";
@@ -15,7 +19,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "FIGlet in pure Python";
     mainProgram = "pyfiglet";
-    license     = licenses.gpl2Plus;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ thoughtpolice ];
   };
 }
diff --git a/pkgs/development/python-modules/pyfireservicerota/default.nix b/pkgs/development/python-modules/pyfireservicerota/default.nix
index fcdfdd0442d48..4042c0a235c53 100644
--- a/pkgs/development/python-modules/pyfireservicerota/default.nix
+++ b/pkgs/development/python-modules/pyfireservicerota/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, fetchpatch2
-, pdm-backend
-, pytz
-, oauthlib
-, requests
-, websocket-client
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  pdm-backend,
+  pytz,
+  oauthlib,
+  requests,
+  websocket-client,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +29,7 @@ buildPythonPackage rec {
       --replace-fail '"aiohttp_retry",' ""
   '';
 
-  nativeBuildInputs = [
-    pdm-backend
-  ];
+  nativeBuildInputs = [ pdm-backend ];
 
   propagatedBuildInputs = [
     pytz
diff --git a/pkgs/development/python-modules/pyflakes/default.nix b/pkgs/development/python-modules/pyflakes/default.nix
index fab3c7d789b2e..aaf9e961cb23b 100644
--- a/pkgs/development/python-modules/pyflakes/default.nix
+++ b/pkgs/development/python-modules/pyflakes/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,20 +22,16 @@ buildPythonPackage rec {
     hash = "sha256-ouCkkm9OrYob00uLTilqgWsTWfHhzaiZp7sa2C5liqk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "pyflakes" ];
 
   meta = with lib; {
     homepage = "https://github.com/PyCQA/pyflakes";
     changelog = "https://github.com/PyCQA/pyflakes/blob/${src.rev}/NEWS.rst";
-    description = "A simple program which checks Python source files for errors";
+    description = "Simple program which checks Python source files for errors";
     mainProgram = "pyflakes";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/pyflexit/default.nix b/pkgs/development/python-modules/pyflexit/default.nix
index 6f1f582a931dd..22190d150b407 100644
--- a/pkgs/development/python-modules/pyflexit/default.nix
+++ b/pkgs/development/python-modules/pyflexit/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyflic/default.nix b/pkgs/development/python-modules/pyflic/default.nix
index 4ac6d735742e4..7e636607b0ed8 100644
--- a/pkgs/development/python-modules/pyflic/default.nix
+++ b/pkgs/development/python-modules/pyflic/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyflick/default.nix b/pkgs/development/python-modules/pyflick/default.nix
index 437f084748732..f9f7f084e0be1 100644
--- a/pkgs/development/python-modules/pyflick/default.nix
+++ b/pkgs/development/python-modules/pyflick/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, aiohttp
-, python-dateutil
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  aiohttp,
+  python-dateutil,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyfluidsynth/default.nix b/pkgs/development/python-modules/pyfluidsynth/default.nix
index f037b3c4badac..838ecd29dbfab 100644
--- a/pkgs/development/python-modules/pyfluidsynth/default.nix
+++ b/pkgs/development/python-modules/pyfluidsynth/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, wheel
-, numpy
-, fluidsynth
-, stdenv
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  wheel,
+  numpy,
+  fluidsynth,
+  stdenv,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   pythonImportsCheck = [ "fluidsynth" ];
 
diff --git a/pkgs/development/python-modules/pyflume/default.nix b/pkgs/development/python-modules/pyflume/default.nix
index 4a49c8160a252..32f0016deed24 100644
--- a/pkgs/development/python-modules/pyflume/default.nix
+++ b/pkgs/development/python-modules/pyflume/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, pyjwt
-, ratelimit
-, requests
-, requests-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  pyjwt,
+  ratelimit,
+  requests,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pyflume"
-  ];
+  pythonImportsCheck = [ "pyflume" ];
 
   meta = with lib; {
     description = "Python module to work with Flume sensors";
diff --git a/pkgs/development/python-modules/pyfma/default.nix b/pkgs/development/python-modules/pyfma/default.nix
index e0934dc34b89a..b661edcc895d7 100644
--- a/pkgs/development/python-modules/pyfma/default.nix
+++ b/pkgs/development/python-modules/pyfma/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, importlib-metadata
-, numpy
-, pybind11
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  importlib-metadata,
+  numpy,
+  pybind11,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,23 +23,13 @@ buildPythonPackage rec {
     sha256 = "12i68jj9n1qj9phjnj6f0kmfhlsd3fqjlk9p6d4gs008azw5m8yn";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  buildInputs = [
-    pybind11
-  ];
+  buildInputs = [ pybind11 ];
 
-  propagatedBuildInputs = [
-    numpy
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  propagatedBuildInputs = [ numpy ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "pyfma" ];
 
diff --git a/pkgs/development/python-modules/pyfnip/default.nix b/pkgs/development/python-modules/pyfnip/default.nix
index 0dca398df7ccd..fd829efbbd83d 100644
--- a/pkgs/development/python-modules/pyfnip/default.nix
+++ b/pkgs/development/python-modules/pyfnip/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyformlang/default.nix b/pkgs/development/python-modules/pyformlang/default.nix
index 1f25eac53a9f1..8747d55313eb0 100644
--- a/pkgs/development/python-modules/pyformlang/default.nix
+++ b/pkgs/development/python-modules/pyformlang/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, networkx
-, numpy
-, pydot
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  networkx,
+  numpy,
+  pydot,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -33,13 +34,9 @@ buildPythonPackage rec {
     pydot
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyformlang"
-  ];
+  pythonImportsCheck = [ "pyformlang" ];
 
   meta = with lib; {
     description = "Framework for formal grammars";
diff --git a/pkgs/development/python-modules/pyfreedompro/default.nix b/pkgs/development/python-modules/pyfreedompro/default.nix
index 9a18a3f849943..bbb4766547144 100644
--- a/pkgs/development/python-modules/pyfreedompro/default.nix
+++ b/pkgs/development/python-modules/pyfreedompro/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, aiohttp
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  aiohttp,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     sha256 = "92812070a0c74761fa0c8cac98ddbe0bca781c8de80e2b08dbd04492e831c172";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # upstream has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/pyfribidi/default.nix b/pkgs/development/python-modules/pyfribidi/default.nix
index a47dff1326458..59aef896beeec 100644
--- a/pkgs/development/python-modules/pyfribidi/default.nix
+++ b/pkgs/development/python-modules/pyfribidi/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, isPyPy
-, six
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,8 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ six ];
 
   meta = with lib; {
-    description = "A simple wrapper around fribidi";
+    description = "Simple wrapper around fribidi";
     homepage = "https://github.com/pediapress/pyfribidi";
     license = licenses.gpl2;
   };
-
 }
diff --git a/pkgs/development/python-modules/pyfritzhome/default.nix b/pkgs/development/python-modules/pyfritzhome/default.nix
index 4118e780d3d0b..72731b0d1a313 100644
--- a/pkgs/development/python-modules/pyfritzhome/default.nix
+++ b/pkgs/development/python-modules/pyfritzhome/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-YzrRkFa4J3NXdc4W5CHrHvqSVJ8yBGtaf6gRqmiY7gI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cryptography
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyfritzhome"
-  ];
+  pythonImportsCheck = [ "pyfritzhome" ];
 
   meta = with lib; {
     description = "Python Library to access AVM FRITZ!Box homeautomation";
diff --git a/pkgs/development/python-modules/pyfronius/default.nix b/pkgs/development/python-modules/pyfronius/default.nix
index 7176e6f48d451..7887c9f5f5795 100644
--- a/pkgs/development/python-modules/pyfronius/default.nix
+++ b/pkgs/development/python-modules/pyfronius/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-7GtY/6uuLe7K9T7xMVt2ytpA6MKVWnyEoLtA5dSMiH4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyfronius"
-  ];
+  pythonImportsCheck = [ "pyfronius" ];
 
   meta = with lib; {
     description = "Python module to communicate with Fronius Symo";
diff --git a/pkgs/development/python-modules/pyftgl/default.nix b/pkgs/development/python-modules/pyftgl/default.nix
index 822c040c7e746..4dd6aa9b6dd64 100644
--- a/pkgs/development/python-modules/pyftgl/default.nix
+++ b/pkgs/development/python-modules/pyftgl/default.nix
@@ -1,12 +1,19 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, boost, freetype, ftgl, libGLU, libGL
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  stdenv,
+  boost,
+  freetype,
+  ftgl,
+  libGLU,
+  libGL,
+  python,
 }:
 
 let
 
   pythonVersion = with lib.versions; "${major python.version}${minor python.version}";
-
 in
 
 buildPythonPackage rec {
@@ -25,7 +32,17 @@ buildPythonPackage rec {
     sed -i "s,'boost_python','boost_python${pythonVersion}',g" setup.py
   '';
 
-  buildInputs = [ boost freetype ftgl libGLU libGL ];
+  env = lib.optionalAttrs stdenv.hostPlatform.isDarwin {
+    NIX_CFLAGS_COMPILE = "-L${libGL}/Library/Frameworks/OpenGL.framework/Versions/Current/Libraries";
+  };
+
+  buildInputs = [
+    boost
+    freetype
+    ftgl
+    libGLU
+    libGL
+  ];
 
   meta = with lib; {
     description = "Python bindings for FTGL (FreeType for OpenGL)";
diff --git a/pkgs/development/python-modules/pyfttt/default.nix b/pkgs/development/python-modules/pyfttt/default.nix
index e630fe2c41507..f31759aedc752 100644
--- a/pkgs/development/python-modules/pyfttt/default.nix
+++ b/pkgs/development/python-modules/pyfttt/default.nix
@@ -1,5 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi
-, requests }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+}:
 
 buildPythonPackage rec {
   pname = "pyfttt";
diff --git a/pkgs/development/python-modules/pyfume/default.nix b/pkgs/development/python-modules/pyfume/default.nix
index 5f3db44b0f114..b79bf238d48cf 100644
--- a/pkgs/development/python-modules/pyfume/default.nix
+++ b/pkgs/development/python-modules/pyfume/default.nix
@@ -1,31 +1,35 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fst-pso
-, numpy
-, pandas
-, pythonOlder
-, scipy
-, setuptools
-, simpful
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fst-pso,
+  numpy,
+  pandas,
+  pythonOlder,
+  scipy,
+  setuptools,
+  simpful,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "pyfume";
-  version = "0.3.1";
+  version = "0.3.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    pname = "pyFUME";
-    inherit version;
-    hash = "sha256-8J9qhSaTlb/KiCjegmc8iaGaZOXJ0Pk1EquOTEUUtW0=";
+    inherit pname version;
+    hash = "sha256-UwW5OwFfu01lDKwz72iB2egbOoxb+t8UnEFIUjZmffU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
+  nativeBuildInputs = [ setuptools ];
+
+  pythonRelaxDeps = [
+    "numpy"
+    "pandas"
+    "scipy"
   ];
 
   propagatedBuildInputs = [
@@ -40,12 +44,10 @@ buildPythonPackage rec {
   # Module has not test
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyfume"
-  ];
+  pythonImportsCheck = [ "pyfume" ];
 
   meta = with lib; {
-    description = "A Python package for fuzzy model estimation";
+    description = "Python package for fuzzy model estimation";
     homepage = "https://github.com/CaroFuchs/pyFUME";
     changelog = "https://github.com/CaroFuchs/pyFUME/releases/tag/${version}";
     license = with licenses; [ gpl3Only ];
diff --git a/pkgs/development/python-modules/pyfuse3/default.nix b/pkgs/development/python-modules/pyfuse3/default.nix
index 851b37bbfb9ca..9715516089797 100644
--- a/pkgs/development/python-modules/pyfuse3/default.nix
+++ b/pkgs/development/python-modules/pyfuse3/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, cython
-, pkg-config
-, setuptools
-, fuse3
-, trio
-, python
-, pytestCheckHook
-, pytest-trio
-, which
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  cython,
+  pkg-config,
+  setuptools,
+  fuse3,
+  trio,
+  python,
+  pytestCheckHook,
+  pytest-trio,
+  which,
 }:
 
 buildPythonPackage rec {
@@ -66,7 +67,10 @@ buildPythonPackage rec {
     description = "Python 3 bindings for libfuse 3 with async I/O support";
     homepage = "https://github.com/libfuse/pyfuse3";
     license = licenses.lgpl2Plus;
-    maintainers = with maintainers; [ nyanloutre dotlambda ];
+    maintainers = with maintainers; [
+      nyanloutre
+      dotlambda
+    ];
     changelog = "https://github.com/libfuse/pyfuse3/blob/${version}/Changes.rst";
   };
 }
diff --git a/pkgs/development/python-modules/pyfxa/default.nix b/pkgs/development/python-modules/pyfxa/default.nix
index 39794d592103c..3332c711bfb3e 100644
--- a/pkgs/development/python-modules/pyfxa/default.nix
+++ b/pkgs/development/python-modules/pyfxa/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchPypi
-, grequests
-, hawkauthlib
-, mock
-, pybrowserid
-, pyjwt
-, pytestCheckHook
-, pythonOlder
-, requests
-, responses
-, setuptools
-, six
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  grequests,
+  hawkauthlib,
+  mock,
+  pybrowserid,
+  pyjwt,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  responses,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "pyfxa";
   version = "0.7.8";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -28,7 +29,9 @@ buildPythonPackage rec {
     hash = "sha256-DMFZl1hbYNaScOTWkAbK2nKti6wD5SS5A30q7TW5vO4=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     cryptography
     hawkauthlib
     pybrowserid
@@ -45,9 +48,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "fxa"
-  ];
+  pythonImportsCheck = [ "fxa" ];
 
   disabledTestPaths = [
     # Requires network access
diff --git a/pkgs/development/python-modules/pyfzf/default.nix b/pkgs/development/python-modules/pyfzf/default.nix
index 3578f863fa483..296d2d11670e2 100644
--- a/pkgs/development/python-modules/pyfzf/default.nix
+++ b/pkgs/development/python-modules/pyfzf/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fzf
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fzf,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-w+ZjQGFd/lR2TiTHc2uQSJXORmzJJZXsr9BO4PIw/Co=";
   };
 
-  propagatedBuildInputs = [
-    fzf
-  ];
+  propagatedBuildInputs = [ fzf ];
 
-  pythonImportsCheck = [
-    "pyfzf"
-  ];
+  pythonImportsCheck = [ "pyfzf" ];
 
   # Module has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/pygal/default.nix b/pkgs/development/python-modules/pygal/default.nix
index 6defbca5e5df3..bed6aabe4057c 100644
--- a/pkgs/development/python-modules/pygal/default.nix
+++ b/pkgs/development/python-modules/pygal/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, importlib-metadata
+  # dependencies
+  importlib-metadata,
 
-# optional-dependencies
-, lxml
-, cairosvg
+  # optional-dependencies
+  lxml,
+  cairosvg,
 
-# tests
-, pyquery
-, pytestCheckHook
+  # tests
+  pyquery,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -32,13 +33,9 @@ buildPythonPackage rec {
       --replace pytest-runner ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    importlib-metadata
-  ];
+  propagatedBuildInputs = [ importlib-metadata ];
 
   passthru.optional-dependencies = {
     lxml = [ lxml ];
diff --git a/pkgs/development/python-modules/pygame-ce/default.nix b/pkgs/development/python-modules/pygame-ce/default.nix
index a476ecd58b850..588b87c166d11 100644
--- a/pkgs/development/python-modules/pygame-ce/default.nix
+++ b/pkgs/development/python-modules/pygame-ce/default.nix
@@ -1,25 +1,26 @@
-{ stdenv
-, lib
-, substituteAll
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
-, python
-, pkg-config
-, setuptools
-, cython
+{
+  stdenv,
+  lib,
+  substituteAll,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  python,
+  pkg-config,
+  setuptools,
+  cython,
 
-, AppKit
-, fontconfig
-, freetype
-, libjpeg
-, libpng
-, libX11
-, portmidi
-, SDL2
-, SDL2_image
-, SDL2_mixer
-, SDL2_ttf
+  AppKit,
+  fontconfig,
+  freetype,
+  libjpeg,
+  libpng,
+  libX11,
+  portmidi,
+  SDL2,
+  SDL2_image,
+  SDL2_mixer,
+  SDL2_ttf,
 }:
 
 buildPythonPackage rec {
@@ -41,30 +42,36 @@ buildPythonPackage rec {
   patches = [
     (substituteAll {
       src = ./fix-dependency-finding.patch;
-      buildinputs_include = builtins.toJSON (builtins.concatMap (dep: [
-        "${lib.getDev dep}/"
-        "${lib.getDev dep}/include"
-        "${lib.getDev dep}/include/SDL2"
-      ]) buildInputs);
-      buildinputs_lib = builtins.toJSON (builtins.concatMap (dep: [
-        "${lib.getLib dep}/"
-        "${lib.getLib dep}/lib"
-      ]) buildInputs);
+      buildinputs_include = builtins.toJSON (
+        builtins.concatMap (dep: [
+          "${lib.getDev dep}/"
+          "${lib.getDev dep}/include"
+          "${lib.getDev dep}/include/SDL2"
+        ]) buildInputs
+      );
+      buildinputs_lib = builtins.toJSON (
+        builtins.concatMap (dep: [
+          "${lib.getLib dep}/"
+          "${lib.getLib dep}/lib"
+        ]) buildInputs
+      );
     })
     # Skip tests that should be disabled without video driver
     ./skip-surface-tests.patch
   ];
 
-  postPatch = ''
-    substituteInPlace buildconfig/config_{unix,darwin}.py \
-      --replace-fail 'from distutils' 'from setuptools._distutils'
-    substituteInPlace src_py/sysfont.py \
-      --replace-fail 'path="fc-list"' 'path="${fontconfig}/bin/fc-list"' \
-      --replace-fail /usr/X11/bin/fc-list ${fontconfig}/bin/fc-list
-  '' + lib.optionalString stdenv.isDarwin ''
-    # flaky
-    rm test/system_test.py
-  '';
+  postPatch =
+    ''
+      substituteInPlace buildconfig/config_{unix,darwin}.py \
+        --replace-fail 'from distutils' 'from setuptools._distutils'
+      substituteInPlace src_py/sysfont.py \
+        --replace-fail 'path="fc-list"' 'path="${fontconfig}/bin/fc-list"' \
+        --replace-fail /usr/X11/bin/fc-list ${fontconfig}/bin/fc-list
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      # flaky
+      rm test/system_test.py
+    '';
 
   nativeBuildInputs = [
     pkg-config
@@ -82,19 +89,19 @@ buildPythonPackage rec {
     SDL2_image
     SDL2_mixer
     SDL2_ttf
-  ] ++ lib.optionals stdenv.isDarwin [
-    AppKit
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ AppKit ];
 
   preConfigure = ''
     ${python.pythonOnBuildForHost.interpreter} buildconfig/config.py
   '';
 
-  env = {
-    SDL_CONFIG = "${SDL2.dev}/bin/sdl2-config";
-  } // lib.optionalAttrs stdenv.cc.isClang {
-    NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-function-pointer-types";
-  };
+  env =
+    {
+      SDL_CONFIG = "${SDL2.dev}/bin/sdl2-config";
+    }
+    // lib.optionalAttrs stdenv.cc.isClang {
+      NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-function-pointer-types";
+    };
 
   preCheck = ''
     export HOME=$(mktemp -d)
@@ -109,9 +116,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "pygame"
-  ];
+  pythonImportsCheck = [ "pygame" ];
 
   meta = with lib; {
     description = "Pygame Community Edition (CE) - library for multimedia application built on SDL";
diff --git a/pkgs/development/python-modules/pygame-gui/default.nix b/pkgs/development/python-modules/pygame-gui/default.nix
index e74448a30768d..5906a6f9a9cb1 100644
--- a/pkgs/development/python-modules/pygame-gui/default.nix
+++ b/pkgs/development/python-modules/pygame-gui/default.nix
@@ -1,16 +1,18 @@
-{ lib
-, pkgs
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pygame-ce
-, python-i18n
-, pytestCheckHook
+{
+  lib,
+  pkgs,
+  buildPythonPackage,
+  nix-update-script,
+  fetchFromGitHub,
+  setuptools,
+  pygame-ce,
+  python-i18n,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "pygame-gui";
-  version = "0610";
+  version = "0612";
   pyproject = true;
   # nixpkgs-update: no auto update
 
@@ -18,12 +20,10 @@ buildPythonPackage rec {
     owner = "MyreMylar";
     repo = "pygame_gui";
     rev = "refs/tags/v_${version}";
-    hash = "sha256-PVNi/I174AyEEjc+N2UGtgOYSGAgVQbqrKkWZnjOxFY=";
+    hash = "sha256-6Ps3pmQ8tYwQyv0TliOvUNLy3GjSJ2jdDQTTxfYej0o=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pygame-ce
@@ -55,14 +55,19 @@ buildPythonPackage rec {
     "test_process_event_text_ctrl_x"
   ];
 
-  disabledTestPaths = [
-    "tests/test_performance/test_text_performance.py"
-  ];
+  disabledTestPaths = [ "tests/test_performance/test_text_performance.py" ];
+
+  passthru.updateScript = nix-update-script {
+    extraArgs = [ "--version-regex" "v_(.*)" ];
+  };
 
   meta = with lib; {
-    description = "A GUI system for pygame";
+    description = "GUI system for pygame";
     homepage = "https://github.com/MyreMylar/pygame_gui";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [ emilytrau pbsds ];
+    maintainers = with maintainers; [
+      emilytrau
+      pbsds
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pygame-sdl2/default.nix b/pkgs/development/python-modules/pygame-sdl2/default.nix
index 0201c9cb4a8a0..f788c969a8f4e 100644
--- a/pkgs/development/python-modules/pygame-sdl2/default.nix
+++ b/pkgs/development/python-modules/pygame-sdl2/default.nix
@@ -1,16 +1,32 @@
-{ lib, buildPythonPackage, fetchurl, isPy27, renpy
-, cython_0, SDL2, SDL2_image, SDL2_ttf, SDL2_mixer, libjpeg, libpng }:
-
-buildPythonPackage rec {
+{
+  lib,
+  buildPythonPackage,
+  fetchurl,
+  isPy27,
+  renpy,
+  cython_0,
+  SDL2,
+  SDL2_image,
+  SDL2_ttf,
+  SDL2_mixer,
+  libjpeg,
+  libpng,
+  setuptools,
+}:
+let
   pname = "pygame-sdl2";
   version = "2.1.0";
-  format = "setuptools";
   renpy_version = renpy.base_version;
+in
+
+buildPythonPackage {
+  inherit pname version;
   name = "${pname}-${version}-${renpy_version}";
+  pyproject = true;
 
   src = fetchurl {
     url = "https://www.renpy.org/dl/${renpy_version}/pygame_sdl2-${version}+renpy${renpy_version}.tar.gz";
-    hash = "sha256-mrfrsRAVEqw7fwtYdeATp/8AtMn74x9pJEXwYZPOl2I=";
+    hash = "sha256-Zib39NyQ1pGVCWPrK5/Tl3dAylUlmKZKxU8pf+OpAdY=";
   };
 
   # force rebuild of headers needed for install
@@ -24,27 +40,29 @@ buildPythonPackage rec {
   '';
 
   nativeBuildInputs = [
-    SDL2.dev cython_0
+    SDL2.dev
+    cython_0
+    setuptools
   ];
 
   buildInputs = [
-    SDL2 SDL2_image SDL2_ttf SDL2_mixer
-    libjpeg libpng
+    SDL2
+    SDL2_image
+    SDL2_ttf
+    SDL2_mixer
+    libjpeg
+    libpng
   ];
 
-
   doCheck = isPy27; # python3 tests are non-functional
 
-  postInstall = ''
-    ( cd "$out"/include/python*/ ;
-      ln -s pygame-sdl2 pygame_sdl2 || true ; )
-  '';
-
-  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
-    license     = licenses.lgpl2;
-    maintainers = with maintainers; [ raskin ];
+  meta = {
+    description = "Reimplementation of parts of pygame API using SDL2";
+    homepage = "https://github.com/renpy/pygame_sdl2";
+    license = with lib.licenses; [
+      lgpl2
+      zlib
+    ];
+    maintainers = with lib.maintainers; [ raskin ];
   };
 }
diff --git a/pkgs/development/python-modules/pygame/default.nix b/pkgs/development/python-modules/pygame/default.nix
index fca187c8cc58a..65315b3243b89 100644
--- a/pkgs/development/python-modules/pygame/default.nix
+++ b/pkgs/development/python-modules/pygame/default.nix
@@ -1,31 +1,32 @@
-{ stdenv
-, lib
-, substituteAll
-, fetchpatch
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
-
-# build-system
-, cython
-, setuptools
-, pkg-config
-
-# native dependencies
-, AppKit
-, fontconfig
-, freetype
-, libjpeg
-, libpng
-, libX11
-, portmidi
-, SDL2
-, SDL2_image
-, SDL2_mixer
-, SDL2_ttf
-
-# tests
-, python
+{
+  stdenv,
+  lib,
+  substituteAll,
+  fetchpatch,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+
+  # build-system
+  cython,
+  setuptools,
+  pkg-config,
+
+  # native dependencies
+  AppKit,
+  fontconfig,
+  freetype,
+  libjpeg,
+  libpng,
+  libX11,
+  portmidi,
+  SDL2,
+  SDL2_image,
+  SDL2_mixer,
+  SDL2_ttf,
+
+  # tests
+  python,
 }:
 
 buildPythonPackage rec {
@@ -50,15 +51,19 @@ buildPythonPackage rec {
     # Patch pygame's dependency resolution to let it find build inputs
     (substituteAll {
       src = ./fix-dependency-finding.patch;
-      buildinputs_include = builtins.toJSON (builtins.concatMap (dep: [
-        "${lib.getDev dep}/"
-        "${lib.getDev dep}/include"
-        "${lib.getDev dep}/include/SDL2"
-      ]) buildInputs);
-      buildinputs_lib = builtins.toJSON (builtins.concatMap (dep: [
-        "${lib.getLib dep}/"
-        "${lib.getLib dep}/lib"
-      ]) buildInputs);
+      buildinputs_include = builtins.toJSON (
+        builtins.concatMap (dep: [
+          "${lib.getDev dep}/"
+          "${lib.getDev dep}/include"
+          "${lib.getDev dep}/include/SDL2"
+        ]) buildInputs
+      );
+      buildinputs_lib = builtins.toJSON (
+        builtins.concatMap (dep: [
+          "${lib.getLib dep}/"
+          "${lib.getLib dep}/lib"
+        ]) buildInputs
+      );
     })
     # Skip tests that should be disabled without video driver
     ./skip-surface-tests.patch
@@ -94,9 +99,7 @@ buildPythonPackage rec {
     SDL2_image
     SDL2_mixer
     SDL2_ttf
-  ] ++ lib.optionals stdenv.isDarwin [
-    AppKit
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ AppKit ];
 
   preConfigure = ''
     ${python.pythonOnBuildForHost.interpreter} buildconfig/config.py
diff --git a/pkgs/development/python-modules/pygatt/default.nix b/pkgs/development/python-modules/pygatt/default.nix
index 67a7fea6b3341..fd9b7521e25e5 100644
--- a/pkgs/development/python-modules/pygatt/default.nix
+++ b/pkgs/development/python-modules/pygatt/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pynose
-, pexpect
-, pyserial
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pynose,
+  pexpect,
+  pyserial,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -34,17 +35,11 @@ buildPythonPackage rec {
        --replace-fail "assertEquals" "assertEqual"
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    pyserial
-  ];
+  dependencies = [ pyserial ];
 
-  passthru.optional-dependencies.GATTTOOL = [
-    pexpect
-  ];
+  passthru.optional-dependencies.GATTTOOL = [ pexpect ];
 
   nativeBuildInputs = [
     # For cross compilation the doCheck is false and therefor the
@@ -58,15 +53,16 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ passthru.optional-dependencies.GATTTOOL;
 
-  pythonImportsCheck = [
-    "pygatt"
-  ];
+  pythonImportsCheck = [ "pygatt" ];
 
   meta = with lib; {
     description = "Python wrapper the BGAPI for accessing Bluetooth LE Devices";
     homepage = "https://github.com/peplin/pygatt";
     changelog = "https://github.com/peplin/pygatt/blob/v${version}/CHANGELOG.rst";
-    license = with licenses; [ asl20 mit ];
+    license = with licenses; [
+      asl20
+      mit
+    ];
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/pygccxml/default.nix b/pkgs/development/python-modules/pygccxml/default.nix
index 0d9b12edec7dc..d079ff5e1d0c5 100644
--- a/pkgs/development/python-modules/pygccxml/default.nix
+++ b/pkgs/development/python-modules/pygccxml/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, castxml
-, fetchFromGitHub
-, buildPythonPackage
-, llvmPackages
-, pythonOlder
-, setuptools
+{
+  lib,
+  castxml,
+  fetchFromGitHub,
+  buildPythonPackage,
+  llvmPackages,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-wHZy2BG3h+OMTvIAPtLlq1vsW5V/TqZdnzBJ9VipMiQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   buildInputs = [
     castxml
diff --git a/pkgs/development/python-modules/pygdbmi/default.nix b/pkgs/development/python-modules/pygdbmi/default.nix
index e7df202704e43..429222e76a2e8 100644
--- a/pkgs/development/python-modules/pygdbmi/default.nix
+++ b/pkgs/development/python-modules/pygdbmi/default.nix
@@ -1,9 +1,10 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, gdb
-, pytest
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gdb,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,10 @@ buildPythonPackage rec {
     hash = "sha256-JqEDN8Pg/JttyYQbwkxKkLYuxVnvV45VlClD23eaYyc=";
   };
 
-  nativeCheckInputs = [ gdb pytest ];
+  nativeCheckInputs = [
+    gdb
+    pytest
+  ];
 
   # tests require gcc for some reason
   doCheck = !stdenv.hostPlatform.isDarwin;
diff --git a/pkgs/development/python-modules/pygeoip/default.nix b/pkgs/development/python-modules/pygeoip/default.nix
index 66d7140f38e06..b4bdc7c405e7c 100644
--- a/pkgs/development/python-modules/pygeoip/default.nix
+++ b/pkgs/development/python-modules/pygeoip/default.nix
@@ -1,5 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi
-, nose }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+}:
 
 buildPythonPackage rec {
   pname = "pygeoip";
diff --git a/pkgs/development/python-modules/pygeos/default.nix b/pkgs/development/python-modules/pygeos/default.nix
deleted file mode 100644
index 298d4bdff7fe8..0000000000000
--- a/pkgs/development/python-modules/pygeos/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, geos_3_11
-, pytestCheckHook
-, cython_0
-, numpy
-}:
-
-buildPythonPackage rec {
-  pname = "pygeos";
-  version = "0.14";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-MPvBf2SEQgC4UTO4hfz7ZVQbh3lTH270+P5GfT+6diM=";
-  };
-
-  nativeBuildInputs = [
-    geos_3_11 # for geos-config
-    cython_0
-  ];
-
-  propagatedBuildInputs = [
-    numpy
-  ];
-
-  # The cythonized extensions are required to exist in the pygeos/ directory
-  # for the package to function. Therefore override of buildPhase was
-  # necessary.
-  buildPhase = ''
-    ${python.pythonOnBuildForHost.interpreter} setup.py build_ext --inplace
-    ${python.pythonOnBuildForHost.interpreter} setup.py bdist_wheel
-  '';
-
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
-
-  pythonImportsCheck = [
-    "pygeos"
-  ];
-
-  meta = with lib; {
-    description = "Wraps GEOS geometry functions in numpy ufuncs";
-    homepage = "https://github.com/pygeos/pygeos";
-    changelog = "https://github.com/pygeos/pygeos/blob/${version}/CHANGELOG.rst";
-    license = licenses.bsd3;
-    maintainers = teams.geospatial.members;
-  };
-}
diff --git a/pkgs/development/python-modules/pygetwindow/default.nix b/pkgs/development/python-modules/pygetwindow/default.nix
index 2969fe850d489..238bffdeb2765 100644
--- a/pkgs/development/python-modules/pygetwindow/default.nix
+++ b/pkgs/development/python-modules/pygetwindow/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyrect
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyrect,
 }:
 buildPythonPackage rec {
   pname = "pygetwindow";
@@ -17,12 +18,10 @@ buildPythonPackage rec {
   # This lib officially only works completely on Windows and partially on MacOS but pyautogui requires it
   # pythonImportsCheck = [ "pygetwindow" ];
 
-  propagatedBuildInputs = [
-    pyrect
-  ];
+  propagatedBuildInputs = [ pyrect ];
 
   meta = with lib; {
-    description = "A simple, cross-platform module for obtaining GUI information on applications' windows.";
+    description = "Simple, cross-platform module for obtaining GUI information on applications' windows";
     homepage = "https://github.com/asweigart/PyGetWindow";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lucasew ];
diff --git a/pkgs/development/python-modules/pygit2/default.nix b/pkgs/development/python-modules/pygit2/default.nix
index 1e17f95e54a70..c541fe5aac650 100644
--- a/pkgs/development/python-modules/pygit2/default.nix
+++ b/pkgs/development/python-modules/pygit2/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, cacert
-, cached-property
-, cffi
-, fetchPypi
-, isPyPy
-, libgit2
-, pycparser
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cacert,
+  cached-property,
+  cffi,
+  fetchPypi,
+  isPyPy,
+  libgit2,
+  pycparser,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -29,28 +30,18 @@ buildPythonPackage rec {
     export DYLD_LIBRARY_PATH="${libgit2}/lib"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  buildInputs = [
-    libgit2
-  ];
+  buildInputs = [ libgit2 ];
 
   propagatedBuildInputs = [
     cached-property
     pycparser
-  ] ++ lib.optionals (!isPyPy) [
-    cffi
-  ];
+  ] ++ lib.optionals (!isPyPy) [ cffi ];
 
-  propagatedNativeBuildInputs = lib.optionals (!isPyPy) [
-    cffi
-  ];
+  propagatedNativeBuildInputs = lib.optionals (!isPyPy) [ cffi ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # Disable tests that require networking
@@ -63,12 +54,10 @@ buildPythonPackage rec {
   # https://github.com/NixOS/nixpkgs/pull/72544#issuecomment-582674047
   SSL_CERT_FILE = "${cacert}/etc/ssl/certs/ca-bundle.crt";
 
-  pythonImportsCheck = [
-    "pygit2"
-  ];
+  pythonImportsCheck = [ "pygit2" ];
 
   meta = with lib; {
-    description = "A set of Python bindings to the libgit2 shared library";
+    description = "Set of Python bindings to the libgit2 shared library";
     homepage = "https://github.com/libgit2/pygit2";
     changelog = "https://github.com/libgit2/pygit2/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl2Only;
diff --git a/pkgs/development/python-modules/pygitguardian/default.nix b/pkgs/development/python-modules/pygitguardian/default.nix
index 1325a31fe1339..ff07c7253b296 100644
--- a/pkgs/development/python-modules/pygitguardian/default.nix
+++ b/pkgs/development/python-modules/pygitguardian/default.nix
@@ -1,16 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, marshmallow
-, marshmallow-dataclass
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
-, responses
-, setuptools
-, typing-extensions
-, vcrpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  marshmallow,
+  marshmallow-dataclass,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  responses,
+  setuptools,
+  typing-extensions,
+  vcrpy,
 }:
 
 buildPythonPackage rec {
@@ -27,12 +27,9 @@ buildPythonPackage rec {
     hash = "sha256-Uw65+YOnln+IOyT+RgqMEWt5cOZsaeS8Nu8U6ooivWA=";
   };
 
-  pythonRelaxDeps = [
-    "marshmallow-dataclass"
-  ];
+  pythonRelaxDeps = [ "marshmallow-dataclass" ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -49,9 +46,7 @@ buildPythonPackage rec {
     responses
   ];
 
-  pythonImportsCheck = [
-    "pygitguardian"
-  ];
+  pythonImportsCheck = [ "pygitguardian" ];
 
   disabledTests = [
     # Tests require an API key
diff --git a/pkgs/development/python-modules/pygithub/default.nix b/pkgs/development/python-modules/pygithub/default.nix
index 926f16c46af37..843fce747184c 100644
--- a/pkgs/development/python-modules/pygithub/default.nix
+++ b/pkgs/development/python-modules/pygithub/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, deprecated
-, fetchFromGitHub
-, pynacl
-, typing-extensions
-, pyjwt
-, pythonOlder
-, requests
-, setuptools
-, setuptools-scm
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  deprecated,
+  fetchFromGitHub,
+  pynacl,
+  typing-extensions,
+  pyjwt,
+  pythonOlder,
+  requests,
+  setuptools,
+  setuptools-scm,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -43,9 +44,7 @@ buildPythonPackage rec {
   # Test suite makes REST calls against github.com
   doCheck = false;
 
-  pythonImportsCheck = [
-    "github"
-  ];
+  pythonImportsCheck = [ "github" ];
 
   meta = with lib; {
     description = "Python library to access the GitHub API v3";
diff --git a/pkgs/development/python-modules/pyglet/default.nix b/pkgs/development/python-modules/pyglet/default.nix
index 21ecabb0ff867..5d86b61555a42 100644
--- a/pkgs/development/python-modules/pyglet/default.nix
+++ b/pkgs/development/python-modules/pyglet/default.nix
@@ -1,20 +1,22 @@
-{ lib, stdenv
-, buildPythonPackage
-, fetchPypi
-, unzip
-, pythonOlder
-, libGL
-, libGLU
-, xorg
-, pytestCheckHook
-, glibc
-, gtk2-x11
-, gdk-pixbuf
-, fontconfig
-, freetype
-, ffmpeg-full
-, openal
-, libpulseaudio
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  unzip,
+  pythonOlder,
+  libGL,
+  libGLU,
+  xorg,
+  pytestCheckHook,
+  glibc,
+  gtk2-x11,
+  gdk-pixbuf,
+  fontconfig,
+  freetype,
+  ffmpeg-full,
+  openal,
+  libpulseaudio,
 }:
 
 buildPythonPackage rec {
@@ -33,51 +35,53 @@ buildPythonPackage rec {
   # Even naively searching `LD_LIBRARY_PATH` won't work since `libc.so` is a linker script and
   # ctypes.cdll.LoadLibrary cannot deal with those. Therefore, just hardcode the paths to the
   # necessary libraries.
-  postPatch = let
-    ext = stdenv.hostPlatform.extensions.sharedLibrary;
-  in ''
-    cat > pyglet/lib.py <<EOF
-    import ctypes
-    def load_library(*names, **kwargs):
-        for name in names:
-            path = None
-            if name == 'GL':
-                path = '${libGL}/lib/libGL${ext}'
-            elif name == 'EGL':
-                path = '${libGL}/lib/libEGL${ext}'
-            elif name == 'GLU':
-                path = '${libGLU}/lib/libGLU${ext}'
-            elif name == 'c':
-                path = '${glibc}/lib/libc${ext}.6'
-            elif name == 'X11':
-                path = '${xorg.libX11}/lib/libX11${ext}'
-            elif name == 'gdk-x11-2.0':
-                path = '${gtk2-x11}/lib/libgdk-x11-2.0${ext}'
-            elif name == 'gdk_pixbuf-2.0':
-                path = '${gdk-pixbuf}/lib/libgdk_pixbuf-2.0${ext}'
-            elif name == 'Xext':
-                path = '${xorg.libXext}/lib/libXext${ext}'
-            elif name == 'fontconfig':
-                path = '${fontconfig.lib}/lib/libfontconfig${ext}'
-            elif name == 'freetype':
-                path = '${freetype}/lib/libfreetype${ext}'
-            elif name[0:2] == 'av' or name[0:2] == 'sw':
-                path = '${lib.getLib ffmpeg-full}/lib/lib' + name + '${ext}'
-            elif name == 'openal':
-                path = '${openal}/lib/libopenal${ext}'
-            elif name == 'pulse':
-                path = '${libpulseaudio}/lib/libpulse${ext}'
-            elif name == 'Xi':
-                path = '${xorg.libXi}/lib/libXi${ext}'
-            elif name == 'Xinerama':
-                path = '${xorg.libXinerama}/lib/libXinerama${ext}'
-            elif name == 'Xxf86vm':
-                path = '${xorg.libXxf86vm}/lib/libXxf86vm${ext}'
-            if path is not None:
-                return ctypes.cdll.LoadLibrary(path)
-        raise Exception("Could not load library {}".format(names))
-    EOF
-  '';
+  postPatch =
+    let
+      ext = stdenv.hostPlatform.extensions.sharedLibrary;
+    in
+    ''
+      cat > pyglet/lib.py <<EOF
+      import ctypes
+      def load_library(*names, **kwargs):
+          for name in names:
+              path = None
+              if name == 'GL':
+                  path = '${libGL}/lib/libGL${ext}'
+              elif name == 'EGL':
+                  path = '${libGL}/lib/libEGL${ext}'
+              elif name == 'GLU':
+                  path = '${libGLU}/lib/libGLU${ext}'
+              elif name == 'c':
+                  path = '${glibc}/lib/libc${ext}.6'
+              elif name == 'X11':
+                  path = '${xorg.libX11}/lib/libX11${ext}'
+              elif name == 'gdk-x11-2.0':
+                  path = '${gtk2-x11}/lib/libgdk-x11-2.0${ext}'
+              elif name == 'gdk_pixbuf-2.0':
+                  path = '${gdk-pixbuf}/lib/libgdk_pixbuf-2.0${ext}'
+              elif name == 'Xext':
+                  path = '${xorg.libXext}/lib/libXext${ext}'
+              elif name == 'fontconfig':
+                  path = '${fontconfig.lib}/lib/libfontconfig${ext}'
+              elif name == 'freetype':
+                  path = '${freetype}/lib/libfreetype${ext}'
+              elif name[0:2] == 'av' or name[0:2] == 'sw':
+                  path = '${lib.getLib ffmpeg-full}/lib/lib' + name + '${ext}'
+              elif name == 'openal':
+                  path = '${openal}/lib/libopenal${ext}'
+              elif name == 'pulse':
+                  path = '${libpulseaudio}/lib/libpulse${ext}'
+              elif name == 'Xi':
+                  path = '${xorg.libXi}/lib/libXi${ext}'
+              elif name == 'Xinerama':
+                  path = '${xorg.libXinerama}/lib/libXinerama${ext}'
+              elif name == 'Xxf86vm':
+                  path = '${xorg.libXxf86vm}/lib/libXxf86vm${ext}'
+              if path is not None:
+                  return ctypes.cdll.LoadLibrary(path)
+          raise Exception("Could not load library {}".format(names))
+      EOF
+    '';
 
   nativeBuildInputs = [ unzip ];
 
@@ -85,9 +89,7 @@ buildPythonPackage rec {
   # tests do run and pass in nix-shell, however.
   doCheck = false;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export PYGLET_HEADLESS=True
@@ -105,7 +107,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "http://www.pyglet.org/";
-    description = "A cross-platform windowing and multimedia library";
+    description = "Cross-platform windowing and multimedia library";
     license = licenses.bsd3;
     platforms = platforms.mesaPlatforms;
   };
diff --git a/pkgs/development/python-modules/pyglm/default.nix b/pkgs/development/python-modules/pyglm/default.nix
index 17fe906a47c5f..5074546308a1b 100644
--- a/pkgs/development/python-modules/pyglm/default.nix
+++ b/pkgs/development/python-modules/pyglm/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,21 +19,15 @@ buildPythonPackage rec {
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "glm"
-  ];
+  pythonImportsCheck = [ "glm" ];
 
   meta = with lib; {
     homepage = "https://github.com/Zuzu-Typ/PyGLM";
-    description = "An OpenGL Mathematics (GLM) library for Python written in C++";
+    description = "OpenGL Mathematics (GLM) library for Python written in C++";
     changelog = "https://github.com/Zuzu-Typ/PyGLM/releases/tag/${src.rev}";
     license = licenses.zlib;
     maintainers = with maintainers; [ sund3RRR ];
diff --git a/pkgs/development/python-modules/pygls/default.nix b/pkgs/development/python-modules/pygls/default.nix
index e85c985b6c5ae..c75cf68715ed8 100644
--- a/pkgs/development/python-modules/pygls/default.nix
+++ b/pkgs/development/python-modules/pygls/default.nix
@@ -1,15 +1,15 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, lsprotocol
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, typeguard
-, websockets
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lsprotocol,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  typeguard,
+  websockets,
 }:
 
 buildPythonPackage rec {
@@ -33,7 +33,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -42,9 +41,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    ws = [
-      websockets
-    ];
+    ws = [ websockets ];
   };
 
   nativeCheckInputs = [
@@ -60,9 +57,7 @@ buildPythonPackage rec {
     ulimit -n 1024
   '';
 
-  pythonImportsCheck = [
-    "pygls"
-  ];
+  pythonImportsCheck = [ "pygls" ];
 
   meta = with lib; {
     description = "Pythonic generic implementation of the Language Server Protocol";
diff --git a/pkgs/development/python-modules/pygltflib/default.nix b/pkgs/development/python-modules/pygltflib/default.nix
index 7212192b260fc..bbfb1d08745d2 100644
--- a/pkgs/development/python-modules/pygltflib/default.nix
+++ b/pkgs/development/python-modules/pygltflib/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitLab
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, dataclasses-json
-, deprecated
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitLab,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  dataclasses-json,
+  deprecated,
+  pytestCheckHook,
 }:
 
 let
@@ -32,18 +33,14 @@ buildPythonPackage rec {
     hash = "sha256-rUAg05M5biVsdG2yEH0Olng/0jH1R/Jo5/+j4ToKkTI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     dataclasses-json
     deprecated
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
   preCheck = ''
     ln -s ${gltf-sample-models} glTF-Sample-Models
   '';
diff --git a/pkgs/development/python-modules/pygmars/default.nix b/pkgs/development/python-modules/pygmars/default.nix
index 1cfa0838dac82..7d250017b5d87 100644
--- a/pkgs/development/python-modules/pygmars/default.nix
+++ b/pkgs/development/python-modules/pygmars/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, setuptools-scm
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  setuptools-scm,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,17 +29,11 @@ buildPythonPackage rec {
 
   dontConfigure = true;
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pygmars"
-  ];
+  pythonImportsCheck = [ "pygmars" ];
 
   meta = with lib; {
     description = "Python lexing and parsing library";
diff --git a/pkgs/development/python-modules/pygments-better-html/default.nix b/pkgs/development/python-modules/pygments-better-html/default.nix
index 635707160305b..2f880a0ea8673 100644
--- a/pkgs/development/python-modules/pygments-better-html/default.nix
+++ b/pkgs/development/python-modules/pygments-better-html/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pygments
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pygments,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
   pname = "pygments_better_html";
   version = "0.1.5";
-  disabled = ! isPy3k;
+  disabled = !isPy3k;
 
   src = fetchPypi {
     inherit pname version;
@@ -24,7 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/Kwpolska/pygments_better_html";
-    description = "Improved line numbering for Pygments’ HTML formatter.";
+    description = "Improved line numbering for Pygments’ HTML formatter";
     license = licenses.bsd3;
     maintainers = with maintainers; [ hexa ];
   };
diff --git a/pkgs/development/python-modules/pygments-markdown-lexer/default.nix b/pkgs/development/python-modules/pygments-markdown-lexer/default.nix
index edd212b60d9d7..dd454bc4e8071 100644
--- a/pkgs/development/python-modules/pygments-markdown-lexer/default.nix
+++ b/pkgs/development/python-modules/pygments-markdown-lexer/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pygments
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pygments,
 }:
 
 buildPythonPackage rec {
@@ -24,5 +25,4 @@ buildPythonPackage rec {
     description = "Pygments Markdown Lexer – A Markdown lexer for Pygments to highlight Markdown code snippets";
     license = licenses.asl20;
   };
-
 }
diff --git a/pkgs/development/python-modules/pygments-style-github/default.nix b/pkgs/development/python-modules/pygments-style-github/default.nix
index 3bf20f31c7643..3c6945e66dfeb 100644
--- a/pkgs/development/python-modules/pygments-style-github/default.nix
+++ b/pkgs/development/python-modules/pygments-style-github/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pygments }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pygments,
+}:
 
 buildPythonPackage rec {
   pname = "pygments-style-github";
@@ -18,7 +23,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pygments_style_github" ];
 
   meta = with lib; {
-    description = "A port of the github color scheme for pygments";
+    description = "Port of the github color scheme for pygments";
     homepage = "https://github.com/hugomaiavieira/pygments-style-github";
     license = licenses.bsd3;
     maintainers = with maintainers; [ drupol ];
diff --git a/pkgs/development/python-modules/pygments/default.nix b/pkgs/development/python-modules/pygments/default.nix
index 4be48e1c93309..ff8569b9b8ebf 100644
--- a/pkgs/development/python-modules/pygments/default.nix
+++ b/pkgs/development/python-modules/pygments/default.nix
@@ -1,29 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-
-# build-system
-, hatchling
-
-# tests
-, pytestCheckHook
-, wcag-contrast-ratio
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+
+  # build-system
+  hatchling,
+
+  # tests
+  pytestCheckHook,
+  wcag-contrast-ratio,
+  pythonOlder
 }:
 
-let pygments = buildPythonPackage
-  rec {
+let
+  pygments = buildPythonPackage rec {
     pname = "pygments";
-    version = "2.17.2";
+    version = "2.18.0";
     pyproject = true;
 
+    disabled = pythonOlder "3.8"; # 2.18.0 requirement
+
     src = fetchPypi {
       inherit pname version;
-      hash = "sha256-2kbOyf0t5b46inhPQ05MSrZwtP9U1gXEwnF+nUnEw2c=";
+      hash = "sha256-eG/4AvMukTEb/ziJ9umoboFQX+mfJzW7bWCuDFAE8Zk=";
     };
 
-    nativeBuildInputs = [
-      hatchling
-    ];
+    nativeBuildInputs = [ hatchling ];
 
     # circular dependencies if enabled by default
     doCheck = false;
@@ -38,21 +40,22 @@ let pygments = buildPythonPackage
       "tests/examplefiles/bash/ltmain.sh"
     ];
 
-    pythonImportsCheck = [
-      "pygments"
-    ];
+    pythonImportsCheck = [ "pygments" ];
 
     passthru.tests = {
-      check = pygments.overridePythonAttrs (_: { doCheck = true; });
+      check = pygments.overridePythonAttrs (_: {
+        doCheck = true;
+      });
     };
 
     meta = with lib; {
       changelog = "https://github.com/pygments/pygments/releases/tag/${version}";
       homepage = "https://pygments.org/";
-      description = "A generic syntax highlighter";
+      description = "Generic syntax highlighter";
       mainProgram = "pygmentize";
       license = licenses.bsd2;
-      maintainers = with maintainers; [ ];
+      maintainers = with maintainers; [ sigmanificient ];
     };
   };
-in pygments
+in
+pygments
diff --git a/pkgs/development/python-modules/pygmo/default.nix b/pkgs/development/python-modules/pygmo/default.nix
index c829ff91f6969..dc23c6379319a 100644
--- a/pkgs/development/python-modules/pygmo/default.nix
+++ b/pkgs/development/python-modules/pygmo/default.nix
@@ -1,63 +1,62 @@
-{ lib
-, stdenv
-, toPythonModule
-, fetchFromGitHub
-, cmake
-, boost
-, eigen
-, ipopt
-, nlopt
-, pagmo2
-, python
-, cloudpickle
-, ipyparallel
-, numba
-, numpy
-, pybind11
+{
+  lib,
+  stdenv,
+  toPythonModule,
+  fetchFromGitHub,
+  cmake,
+  boost,
+  eigen,
+  ipopt,
+  nlopt,
+  pagmo2,
+  python,
+  cloudpickle,
+  ipyparallel,
+  numba,
+  numpy,
+  pybind11,
 }:
 
-toPythonModule (stdenv.mkDerivation rec {
-  pname = "pygmo";
-  version = "2.19.6";
-
-  src = fetchFromGitHub {
-    owner = "esa";
-    repo = "pygmo2";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-umXK8LGJJ6Xj6UbJ5k/DM/nYayjl+jBXtjar5/dWqFM=";
-  };
-
-  cmakeFlags = [
-    "-DPYGMO_INSTALL_PATH=${placeholder "out"}/${python.sitePackages}"
-  ];
-
-  nativeBuildInputs = [
-    cmake
-  ];
-
-  propagatedBuildInputs = [
-    cloudpickle
-    ipyparallel
-    numba
-    numpy
-    python
-  ];
-
-  buildInputs = [
-    boost
-    eigen
-    ipopt
-    nlopt
-    pagmo2
-    pybind11
-  ];
-
-  doCheck = true;
-
-  meta = with lib; {
-    description = "Parallel optimisation for Python";
-    homepage = "https://github.com/esa/pygmo2";
-    license = licenses.gpl3Plus;
-    maintainers = [ ];
-  };
-})
+toPythonModule (
+  stdenv.mkDerivation rec {
+    pname = "pygmo";
+    version = "2.19.6";
+
+    src = fetchFromGitHub {
+      owner = "esa";
+      repo = "pygmo2";
+      rev = "refs/tags/v${version}";
+      hash = "sha256-umXK8LGJJ6Xj6UbJ5k/DM/nYayjl+jBXtjar5/dWqFM=";
+    };
+
+    cmakeFlags = [ "-DPYGMO_INSTALL_PATH=${placeholder "out"}/${python.sitePackages}" ];
+
+    nativeBuildInputs = [ cmake ];
+
+    propagatedBuildInputs = [
+      cloudpickle
+      ipyparallel
+      numba
+      numpy
+      python
+    ];
+
+    buildInputs = [
+      boost
+      eigen
+      ipopt
+      nlopt
+      pagmo2
+      pybind11
+    ];
+
+    doCheck = true;
+
+    meta = with lib; {
+      description = "Parallel optimisation for Python";
+      homepage = "https://github.com/esa/pygmo2";
+      license = licenses.gpl3Plus;
+      maintainers = [ ];
+    };
+  }
+)
diff --git a/pkgs/development/python-modules/pygmt/default.nix b/pkgs/development/python-modules/pygmt/default.nix
index c455bbcfab16e..90b00d9cd3440 100644
--- a/pkgs/development/python-modules/pygmt/default.nix
+++ b/pkgs/development/python-modules/pygmt/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, stdenv
-, pythonOlder
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools-scm
-, gmt
-, numpy
-, netcdf4
-, pandas
-, packaging
-, xarray
-, pytest-mpl
-, ipython
-, ghostscript
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  pythonOlder,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools-scm,
+  gmt,
+  numpy,
+  netcdf4,
+  pandas,
+  packaging,
+  xarray,
+  pytest-mpl,
+  ipython,
+  ghostscript,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -35,9 +36,7 @@ buildPythonPackage rec {
       --replace "env.get(\"GMT_LIBRARY_PATH\", \"\")" "env.get(\"GMT_LIBRARY_PATH\", \"${gmt}/lib\")"
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     numpy
@@ -61,12 +60,10 @@ buildPythonPackage rec {
     export HOME=$TMP
   '';
 
-  pythonImportsCheck = [
-    "pygmt"
-  ];
+  pythonImportsCheck = [ "pygmt" ];
 
   meta = with lib; {
-    description = "A Python interface for the Generic Mapping Tools";
+    description = "Python interface for the Generic Mapping Tools";
     homepage = "https://github.com/GenericMappingTools/pygmt";
     license = licenses.bsd3;
     changelog = "https://github.com/GenericMappingTools/pygmt/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/pygnmi/default.nix b/pkgs/development/python-modules/pygnmi/default.nix
index a83aaabfc5750..caef1f11eb354 100644
--- a/pkgs/development/python-modules/pygnmi/default.nix
+++ b/pkgs/development/python-modules/pygnmi/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cryptography
-, dictdiffer
-, grpcio
-, protobuf
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cryptography,
+  dictdiffer,
+  grpcio,
+  protobuf,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -34,13 +35,9 @@ buildPythonPackage rec {
   # TypeError: expected string or bytes-like object
   doCheck = false;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pygnmi"
-  ];
+  pythonImportsCheck = [ "pygnmi" ];
 
   meta = with lib; {
     description = "Pure Python gNMI client to manage network functions and collect telemetry";
diff --git a/pkgs/development/python-modules/pygobject/3.nix b/pkgs/development/python-modules/pygobject/3.nix
index f1dff5b24e31c..185e7fd5ddf8f 100644
--- a/pkgs/development/python-modules/pygobject/3.nix
+++ b/pkgs/development/python-modules/pygobject/3.nix
@@ -1,25 +1,29 @@
-{ lib
-, stdenv
-, fetchurl
-, buildPythonPackage
-, pkg-config
-, glib
-, gobject-introspection
-, pycairo
-, cairo
-, ncurses
-, meson
-, ninja
-, pythonOlder
-, gnome
-, python
+{
+  lib,
+  stdenv,
+  fetchurl,
+  buildPythonPackage,
+  pkg-config,
+  glib,
+  gobject-introspection,
+  pycairo,
+  cairo,
+  ncurses,
+  meson,
+  ninja,
+  pythonOlder,
+  gnome,
+  python,
 }:
 
 buildPythonPackage rec {
   pname = "pygobject";
   version = "3.48.2";
 
-  outputs = [ "out" "dev" ];
+  outputs = [
+    "out"
+    "dev"
+  ];
 
   disabled = pythonOlder "3.8";
 
@@ -30,9 +34,7 @@ buildPythonPackage rec {
     hash = "sha256-B5SutKm+MaCSrCBiG19U7CgPkYWUPTKLEFza5imK0ac=";
   };
 
-  depsBuildBuild = [
-    pkg-config
-  ];
+  depsBuildBuild = [ pkg-config ];
 
   nativeBuildInputs = [
     pkg-config
@@ -44,9 +46,7 @@ buildPythonPackage rec {
   buildInputs = [
     cairo
     glib
-  ] ++ lib.optionals stdenv.isDarwin [
-    ncurses
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ ncurses ];
 
   propagatedBuildInputs = [
     pycairo
diff --git a/pkgs/development/python-modules/pygogo/default.nix b/pkgs/development/python-modules/pygogo/default.nix
index 4a6a89844e6a3..889e2c7b06c33 100644
--- a/pkgs/development/python-modules/pygogo/default.nix
+++ b/pkgs/development/python-modules/pygogo/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, pythonOlder
-, buildPythonPackage
-, fetchFromGitHub
-, pkutils
+{
+  lib,
+  pythonOlder,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pkutils,
   # Check Inputs
-, nose
+  nose,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +22,9 @@ buildPythonPackage rec {
     sha256 = "19rdf4sjrm5lp1vq1bki21a9lrkzz8sgrfwgjdkq4sgy90hn1jn9";
   };
 
-  nativeBuildInputs = [
-    pkutils
-  ];
+  nativeBuildInputs = [ pkutils ];
 
-  nativeCheckInputs = [
-    nose
-  ];
+  nativeCheckInputs = [ nose ];
 
   postPatch = ''
     substituteInPlace dev-requirements.txt \
@@ -40,9 +37,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "pygogo"
-  ];
+  pythonImportsCheck = [ "pygogo" ];
 
   meta = with lib; {
     description = "Python logging library";
diff --git a/pkgs/development/python-modules/pygount/default.nix b/pkgs/development/python-modules/pygount/default.nix
index 4b12364288368..19e733c6f5449 100644
--- a/pkgs/development/python-modules/pygount/default.nix
+++ b/pkgs/development/python-modules/pygount/default.nix
@@ -1,29 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, chardet
-, gitpython
-, pygments
-, rich
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  chardet,
+  gitpython,
+  pygments,
+  rich,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "pygount";
-  version = "1.6.1";
+  version = "1.8.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "roskakori";
     repo = "pygount";
     rev = "refs/tags/v${version}";
-    hash = "sha256-j+mXIyF/54MCm0yv7Z+ymy/EeZz7iS/a+/5I9lo1+Zo=";
+    hash = "sha256-PFqcSnJoGL4bXFy3hu3Iurbb8QK1NqCDs8aJmMxP4Hc=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     chardet
@@ -32,9 +31,7 @@ buildPythonPackage rec {
     rich
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # requires network access
@@ -42,9 +39,7 @@ buildPythonPackage rec {
     "test_can_extract_and_close_and_find_files_from_cloned_git_remote_url_with_revision"
   ];
 
-  pythonImportsCheck = [
-    "pygount"
-  ];
+  pythonImportsCheck = [ "pygount" ];
 
   meta = with lib; {
     description = "Count lines of code for hundreds of languages using pygments";
diff --git a/pkgs/development/python-modules/pygpgme/default.nix b/pkgs/development/python-modules/pygpgme/default.nix
index f4a09dbbfa0f6..76eb40701cee1 100644
--- a/pkgs/development/python-modules/pygpgme/default.nix
+++ b/pkgs/development/python-modules/pygpgme/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchurl
-, gpgme
-, isPyPy
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchurl,
+  gpgme,
+  isPyPy,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -27,7 +28,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://launchpad.net/pygpgme";
-    description = "A Python wrapper for the GPGME library";
+    description = "Python wrapper for the GPGME library";
     license = licenses.lgpl21;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/pygraphviz/default.nix b/pkgs/development/python-modules/pygraphviz/default.nix
index 61fee2859d184..201902949cf2a 100644
--- a/pkgs/development/python-modules/pygraphviz/default.nix
+++ b/pkgs/development/python-modules/pygraphviz/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, substituteAll
-, graphviz
-, coreutils
-, pkg-config
-, setuptools
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  substituteAll,
+  graphviz,
+  coreutils,
+  pkg-config,
+  setuptools,
+  pytest,
 }:
 
 buildPythonPackage rec {
   pname = "pygraphviz";
-  version = "1.12";
+  version = "1.13";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -20,15 +21,18 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "pygraphviz";
     repo = "pygraphviz";
-    rev = "pygraphviz-${version}";
-    hash = "sha256-XDP77H724eiMa/V18OtLxpUpxlIVDmcFLMYOAbazquo=";
+    rev = "refs/tags/pygraphviz-${version}";
+    hash = "sha256-/H7eHgs3jtbgat8//1Y1S3iV5s0UBKW+J+zK+f8qGqI=";
   };
 
   patches = [
     # pygraphviz depends on graphviz executables and wc being in PATH
     (substituteAll {
       src = ./path.patch;
-      path = lib.makeBinPath [ graphviz coreutils ];
+      path = lib.makeBinPath [
+        graphviz
+        coreutils
+      ];
     })
   ];
 
@@ -53,6 +57,9 @@ buildPythonPackage rec {
     description = "Python interface to Graphviz graph drawing package";
     homepage = "https://github.com/pygraphviz/pygraphviz";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ matthiasbeyer dotlambda ];
+    maintainers = with maintainers; [
+      matthiasbeyer
+      dotlambda
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pygreat/default.nix b/pkgs/development/python-modules/pygreat/default.nix
index 2b1bccc8d2b23..6f66c9eb5dc7d 100644
--- a/pkgs/development/python-modules/pygreat/default.nix
+++ b/pkgs/development/python-modules/pygreat/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, isPy3k, fetchFromGitHub, future, pyusb }:
+{
+  lib,
+  buildPythonPackage,
+  isPy3k,
+  fetchFromGitHub,
+  future,
+  pyusb,
+}:
 
 buildPythonPackage {
   pname = "pygreat";
@@ -12,7 +19,10 @@ buildPythonPackage {
     sha256 = "1h0z83k1k4z8j36z936h61l8j3cjr3wsxr86k91v5c5h93g9dkqh";
   };
 
-  propagatedBuildInputs = [ future pyusb ];
+  propagatedBuildInputs = [
+    future
+    pyusb
+  ];
 
   disabled = !isPy3k;
 
@@ -28,5 +38,4 @@ buildPythonPackage {
     homepage = "https://greatscottgadgets.com/greatfet/";
     license = with licenses; [ bsd3 ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pygrok/default.nix b/pkgs/development/python-modules/pygrok/default.nix
index 9da5545d28736..3313a921808df 100644
--- a/pkgs/development/python-modules/pygrok/default.nix
+++ b/pkgs/development/python-modules/pygrok/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, regex, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  regex,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "pygrok";
@@ -14,14 +20,14 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ regex ];
 
-  nativeCheckInputs =  [ pytest ];
+  nativeCheckInputs = [ pytest ];
   checkPhase = ''
     pytest
   '';
 
   meta = with lib; {
     maintainers = with maintainers; [ winpat ];
-    description = "A python implementation of jordansissel's grok regular expression library";
+    description = "Python implementation of jordansissel's grok regular expression library";
     homepage = "https://github.com/garyelephant/pygrok";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/development/python-modules/pygsl/default.nix b/pkgs/development/python-modules/pygsl/default.nix
index 13a4644962b39..2549a2d7f4978 100644
--- a/pkgs/development/python-modules/pygsl/default.nix
+++ b/pkgs/development/python-modules/pygsl/default.nix
@@ -1,39 +1,40 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, gsl
-, swig
-, numpy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gsl,
+  swig,
+  numpy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "pygsl";
-  version = "2.3.3";
+  version = "2.3.4";
   format = "setuptools";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-F3m85Bs8sONw0Rv0EAOFK6R1DFHfW4dxuzQmXo4PHfM=";
+  src = fetchFromGitHub {
+    owner = "pygsl";
+    repo = "pygsl";
+    rev = "refs/tags/v.${version}";
+    hash = "sha256-2TalLKDDoJdKGZHr7eNNvVW8fL7wQJjnZv34LJokfow=";
   };
 
   nativeBuildInputs = [
     gsl.dev
     swig
   ];
-  buildInputs = [
-    gsl
-  ];
-  propagatedBuildInputs = [
-    numpy
-  ];
+  buildInputs = [ gsl ];
+  dependencies = [ numpy ];
+
+  preBuild = ''
+    python setup.py build_ext --inplace
+  '';
 
   preCheck = ''
     cd tests
   '';
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
     description = "Python interface for GNU Scientific Library";
diff --git a/pkgs/development/python-modules/pygtail/default.nix b/pkgs/development/python-modules/pygtail/default.nix
index 02f0dce14b591..a2d4a41c80aeb 100644
--- a/pkgs/development/python-modules/pygtail/default.nix
+++ b/pkgs/development/python-modules/pygtail/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchFromGitHub }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+}:
 
 buildPythonPackage rec {
   pname = "pygtail";
@@ -19,7 +23,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A library for reading log file lines that have not been read";
+    description = "Library for reading log file lines that have not been read";
     mainProgram = "pygtail";
     license = licenses.gpl2Plus;
     homepage = "https://github.com/bgreenlee/pygtail";
diff --git a/pkgs/development/python-modules/pygtfs/default.nix b/pkgs/development/python-modules/pygtfs/default.nix
index cabb211d484c4..c38fed72fd974 100644
--- a/pkgs/development/python-modules/pygtfs/default.nix
+++ b/pkgs/development/python-modules/pygtfs/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, docopt
-, fetchPypi
-, nose
-, pytz
-, pythonOlder
-, setuptools-scm
-, six
-, sqlalchemy
+{
+  lib,
+  buildPythonPackage,
+  docopt,
+  fetchPypi,
+  nose,
+  pytz,
+  pythonOlder,
+  setuptools-scm,
+  six,
+  sqlalchemy,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
       --replace "pytz>=2012d" "pytz"
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     docopt
@@ -39,13 +38,9 @@ buildPythonPackage rec {
     sqlalchemy
   ];
 
-  nativeCheckInputs = [
-    nose
-  ];
+  nativeCheckInputs = [ nose ];
 
-  pythonImportsCheck = [
-    "pygtfs"
-  ];
+  pythonImportsCheck = [ "pygtfs" ];
 
   meta = with lib; {
     description = "Python module for GTFS";
diff --git a/pkgs/development/python-modules/pygti/default.nix b/pkgs/development/python-modules/pygti/default.nix
index 5c7631a31c3ef..3f9239bd84584 100644
--- a/pkgs/development/python-modules/pygti/default.nix
+++ b/pkgs/development/python-modules/pygti/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools-scm
-, aiohttp
-, pytz
-, voluptuous
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools-scm,
+  aiohttp,
+  pytz,
+  voluptuous,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-2T4Yw4XEOkv+IWyB4Xa2dPu929VH0tLeUjQ5S8EVXz0=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     aiohttp
diff --git a/pkgs/development/python-modules/pygtkspellcheck/default.nix b/pkgs/development/python-modules/pygtkspellcheck/default.nix
index 1f9ac10b9eb45..eb7f5491496d5 100644
--- a/pkgs/development/python-modules/pygtkspellcheck/default.nix
+++ b/pkgs/development/python-modules/pygtkspellcheck/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, gobject-introspection
-, gtk3
-, poetry-core
-, pyenchant
-, pygobject3
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  gobject-introspection,
+  gtk3,
+  poetry-core,
+  pyenchant,
+  pygobject3,
 }:
 
 buildPythonPackage rec {
@@ -31,13 +32,11 @@ buildPythonPackage rec {
 
   doCheck = false; # there are no tests
 
-  pythonImportsCheck = [
-    "gtkspellcheck"
-  ];
+  pythonImportsCheck = [ "gtkspellcheck" ];
 
   meta = with lib; {
     homepage = "https://github.com/koehlma/pygtkspellcheck";
-    description = "A Python spell-checking library for GtkTextViews based on Enchant";
+    description = "Python spell-checking library for GtkTextViews based on Enchant";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/pygtrie/default.nix b/pkgs/development/python-modules/pygtrie/default.nix
index 88a69922988c7..4f4743f04f33e 100644
--- a/pkgs/development/python-modules/pygtrie/default.nix
+++ b/pkgs/development/python-modules/pygtrie/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchPypi, buildPythonPackage, ... }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  ...
+}:
 buildPythonPackage rec {
   pname = "pygtrie";
   version = "2.5.0";
diff --git a/pkgs/development/python-modules/pyhamcrest/default.nix b/pkgs/development/python-modules/pyhamcrest/default.nix
index 951bd81e02e85..791e843f08695 100644
--- a/pkgs/development/python-modules/pyhamcrest/default.nix
+++ b/pkgs/development/python-modules/pyhamcrest/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatch-vcs
-, hatchling
-, numpy
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatch-vcs,
+  hatchling,
+  numpy,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -46,9 +47,7 @@ buildPythonPackage rec {
     "test_numpy_numeric_type_int"
   ];
 
-  pythonImportsCheck = [
-    "hamcrest"
-  ];
+  pythonImportsCheck = [ "hamcrest" ];
 
   meta = with lib; {
     description = "Hamcrest framework for matcher objects";
diff --git a/pkgs/development/python-modules/pyhanko-certvalidator/default.nix b/pkgs/development/python-modules/pyhanko-certvalidator/default.nix
index e55936a8e41c3..d721bb46d2a67 100644
--- a/pkgs/development/python-modules/pyhanko-certvalidator/default.nix
+++ b/pkgs/development/python-modules/pyhanko-certvalidator/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, aiohttp
-, asn1crypto
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, freezegun
-, oscrypto
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
-, uritools
+{
+  lib,
+  aiohttp,
+  asn1crypto,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  freezegun,
+  oscrypto,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
+  uritools,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
       --replace ', "pytest-runner",' ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     asn1crypto
@@ -72,15 +71,13 @@ buildPythonPackage rec {
     "test_ed"
   ];
 
-  pythonImportsCheck = [
-    "pyhanko_certvalidator"
-  ];
+  pythonImportsCheck = [ "pyhanko_certvalidator" ];
 
   meta = with lib; {
     description = "Python library for validating X.509 certificates and paths";
     homepage = "https://github.com/MatthiasValvekens/certvalidator";
     changelog = "https://github.com/MatthiasValvekens/certvalidator/blob/v${version}/changelog.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pyhanko/default.nix b/pkgs/development/python-modules/pyhanko/default.nix
index 68d777bd1b281..8b18971d4af3a 100644
--- a/pkgs/development/python-modules/pyhanko/default.nix
+++ b/pkgs/development/python-modules/pyhanko/default.nix
@@ -1,33 +1,34 @@
-{ lib
-, aiohttp
-, asn1crypto
-, buildPythonPackage
-, certomancer
-, click
-, cryptography
-, defusedxml
-, fetchFromGitHub
-, fonttools
-, freezegun
-, oscrypto
-, pillow
-, pyhanko-certvalidator
-, pytest-aiohttp
-, pytestCheckHook
-, python-barcode
-, python-pae
-, python-pkcs11
-, pythonOlder
-, pytz
-, pyyaml
-, qrcode
-, requests
-, requests-mock
-, setuptools
-, tzlocal
-, uharfbuzz
-, wheel
-, xsdata
+{
+  lib,
+  aiohttp,
+  asn1crypto,
+  buildPythonPackage,
+  certomancer,
+  click,
+  cryptography,
+  defusedxml,
+  fetchFromGitHub,
+  fonttools,
+  freezegun,
+  oscrypto,
+  pillow,
+  pyhanko-certvalidator,
+  pytest-aiohttp,
+  pytestCheckHook,
+  python-barcode,
+  python-pae,
+  python-pkcs11,
+  pythonOlder,
+  pytz,
+  pyyaml,
+  qrcode,
+  requests,
+  requests-mock,
+  setuptools,
+  tzlocal,
+  uharfbuzz,
+  wheel,
+  xsdata,
 }:
 
 buildPythonPackage rec {
@@ -67,12 +68,8 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    extra-pubkey-algs = [
-      oscrypto
-    ];
-    xmp = [
-      defusedxml
-    ];
+    extra-pubkey-algs = [ oscrypto ];
+    xmp = [ defusedxml ];
     opentype = [
       fonttools
       uharfbuzz
@@ -81,15 +78,9 @@ buildPythonPackage rec {
       pillow
       python-barcode
     ];
-    pkcs11 = [
-      python-pkcs11
-    ];
-    async-http = [
-      aiohttp
-    ];
-    etsi = [
-      xsdata
-    ];
+    pkcs11 = [ python-pkcs11 ];
+    async-http = [ aiohttp ];
+    etsi = [ xsdata ];
   };
 
   nativeCheckInputs = [
@@ -133,9 +124,7 @@ buildPythonPackage rec {
     "test_ts_fetch_requests"
   ];
 
-  pythonImportsCheck = [
-    "pyhanko"
-  ];
+  pythonImportsCheck = [ "pyhanko" ];
 
   meta = with lib; {
     description = "Sign and stamp PDF files";
@@ -143,6 +132,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/MatthiasValvekens/pyHanko";
     changelog = "https://github.com/MatthiasValvekens/pyHanko/blob/v${version}/docs/changelog.rst";
     license = licenses.mit;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pyhaversion/default.nix b/pkgs/development/python-modules/pyhaversion/default.nix
index 204b8526d8790..c4c5417ae47bc 100644
--- a/pkgs/development/python-modules/pyhaversion/default.nix
+++ b/pkgs/development/python-modules/pyhaversion/default.nix
@@ -1,35 +1,39 @@
-{ lib
-, aiohttp
-, aresponses
-, awesomeversion
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  aiohttp,
+  aresponses,
+  awesomeversion,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "pyhaversion";
-  version = "23.1.0";
-  format = "setuptools";
+  version = "24.6.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.12";
 
   src = fetchFromGitHub {
     owner = "ludeeus";
-    repo = pname;
+    repo = "pyhaversion";
     rev = "refs/tags/${version}";
-    hash = "sha256-HMJqZn0yzN2dP5WTRCbem1Xw8nyH2Hy7oVP4kEKHHAo=";
+    hash = "sha256-UZ9236mERoz3WG9MfeN1ALKc8OjqpcbbIhiEsRYzn4I=";
   };
 
   postPatch = ''
     # Upstream doesn't set a version for the tagged releases
-    substituteInPlace setup.py \
-      --replace "main" ${version}
+    substituteInPlace pyproject.toml \
+      --replace-fail 'version = "0"' 'version = "${version}"'
   '';
 
-  propagatedBuildInputs = [
+  build-system = [ poetry-core ];
+
+  dependencies = [
     aiohttp
     awesomeversion
   ];
@@ -40,9 +44,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pyhaversion"
-  ];
+  pythonImportsCheck = [ "pyhaversion" ];
 
   disabledTests = [
     # Error fetching version information from HaVersionSource.SUPERVISOR Server disconnected
diff --git a/pkgs/development/python-modules/pyhcl/default.nix b/pkgs/development/python-modules/pyhcl/default.nix
index efa9bed666137..d4abb9fabaae3 100644
--- a/pkgs/development/python-modules/pyhcl/default.nix
+++ b/pkgs/development/python-modules/pyhcl/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, isPy3k
-, lib
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy3k,
+  lib,
 
-# pythonPackages
-, coverage
-, pytest
+  # pythonPackages
+  coverage,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -41,8 +42,6 @@ buildPythonPackage rec {
     mainProgram = "hcltool";
     homepage = "https://github.com/virtuald/pyhcl";
     license = licenses.mpl20;
-    maintainers = with maintainers; [
-      kamadorueda
-    ];
+    maintainers = with maintainers; [ kamadorueda ];
   };
 }
diff --git a/pkgs/development/python-modules/pyheck/default.nix b/pkgs/development/python-modules/pyheck/default.nix
index 123ebe3db9785..7b7e5205447fe 100644
--- a/pkgs/development/python-modules/pyheck/default.nix
+++ b/pkgs/development/python-modules/pyheck/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, cargo
-, fetchFromGitHub
-, libiconv
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, rustc
-, rustPlatform
-, stdenv
+{
+  lib,
+  buildPythonPackage,
+  cargo,
+  fetchFromGitHub,
+  libiconv,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  rustc,
+  rustPlatform,
+  stdenv,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-mfXkrCbBaJ0da+taKJvfyU5NS43tYJWqtTUXiCLVoGQ=";
   };
 
-  cargoDeps = rustPlatform.importCargoLock {
-    lockFile = ./Cargo.lock;
-  };
+  cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; };
 
   postPatch = ''
     ln -s ${./Cargo.lock} Cargo.lock
@@ -43,13 +42,9 @@ buildPythonPackage rec {
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyheck"
-  ];
+  pythonImportsCheck = [ "pyheck" ];
 
   meta = with lib; {
     description = "Python bindings for heck, the Rust case conversion library";
diff --git a/pkgs/development/python-modules/pyheif/default.nix b/pkgs/development/python-modules/pyheif/default.nix
index 65b895b340da7..2a1cad706bbe4 100644
--- a/pkgs/development/python-modules/pyheif/default.nix
+++ b/pkgs/development/python-modules/pyheif/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cffi
-, libheif
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cffi,
+  libheif,
 }:
 
 buildPythonPackage rec {
@@ -15,7 +16,10 @@ buildPythonPackage rec {
     hash = "sha256-hqXFF0N51xRrXtGmiJL69yaKE1+39QOaARv7em6QMgA=";
   };
 
-  propagatedBuildInputs = [ cffi libheif ];
+  propagatedBuildInputs = [
+    cffi
+    libheif
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/carsales/pyheif";
diff --git a/pkgs/development/python-modules/pyheos/default.nix b/pkgs/development/python-modules/pyheos/default.nix
index 1600baba392d6..db5fe0b0be02d 100644
--- a/pkgs/development/python-modules/pyheos/default.nix
+++ b/pkgs/development/python-modules/pyheos/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,14 +24,16 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = [
-    # accesses network
-    "test_connect_timeout"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    # stuck in epoll
-    "test_disconnect"
-    "test_commands_fail_when_disconnected"
-  ];
+  disabledTests =
+    [
+      # accesses network
+      "test_connect_timeout"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # stuck in epoll
+      "test_disconnect"
+      "test_commands_fail_when_disconnected"
+    ];
 
   pythonImportsCheck = [ "pyheos" ];
 
diff --git a/pkgs/development/python-modules/pyhepmc/default.nix b/pkgs/development/python-modules/pyhepmc/default.nix
index 1019d573a46e5..7161ad2fcfb66 100644
--- a/pkgs/development/python-modules/pyhepmc/default.nix
+++ b/pkgs/development/python-modules/pyhepmc/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cmake
-, setuptools
-, setuptools-scm
-, numpy
-, pybind11
-, wheel
-, pytestCheckHook
-, pythonOlder
-, graphviz
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cmake,
+  setuptools,
+  setuptools-scm,
+  numpy,
+  pybind11,
+  wheel,
+  pytestCheckHook,
+  pythonOlder,
+  graphviz,
 }:
 
 buildPythonPackage rec {
@@ -34,13 +35,9 @@ buildPythonPackage rec {
     wheel
   ];
 
-  buildInputs = [
-    pybind11
-  ];
+  buildInputs = [ pybind11 ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   dontUseCmakeConfigure = true;
 
@@ -65,4 +62,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ veprbl ];
   };
 }
-
diff --git a/pkgs/development/python-modules/pyhiveapi/default.nix b/pkgs/development/python-modules/pyhiveapi/default.nix
index 341e08186470c..4b782f86c0809 100644
--- a/pkgs/development/python-modules/pyhiveapi/default.nix
+++ b/pkgs/development/python-modules/pyhiveapi/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, unasync
-, boto3
-, botocore
-, requests
-, aiohttp
-, pyquery
-, loguru
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  unasync,
+  boto3,
+  botocore,
+  requests,
+  aiohttp,
+  pyquery,
+  loguru,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyhocon/default.nix b/pkgs/development/python-modules/pyhocon/default.nix
index a7c2bb2b6576d..ce479ce4c2da4 100644
--- a/pkgs/development/python-modules/pyhocon/default.nix
+++ b/pkgs/development/python-modules/pyhocon/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pyparsing
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pyparsing,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "pyhocon";
-  version = "0.3.60";
+  version = "0.3.61";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +20,7 @@ buildPythonPackage rec {
     owner = "chimpler";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-H460j/DjY1lltapva3l87oyOJVjzUE9Q/oKti3SsUyU=";
+    hash = "sha256-xXx30uxJ8+KPVdYC6yRzEDJbwYSzIO/Gy1xrehvI5ZE=";
   };
 
   propagatedBuildInputs = [
@@ -37,9 +38,7 @@ buildPythonPackage rec {
       --replace "pyparsing~=2.0" "pyparsing>=2.0"
   '';
 
-  pythonImportsCheck = [
-    "pyhocon"
-  ];
+  pythonImportsCheck = [ "pyhocon" ];
 
   disabledTestPaths = [
     # pyparsing.exceptions.ParseException: Expected end of text, found '='
diff --git a/pkgs/development/python-modules/pyhomematic/default.nix b/pkgs/development/python-modules/pyhomematic/default.nix
index 03e7babfb4fe7..b79cbc812bda6 100644
--- a/pkgs/development/python-modules/pyhomematic/default.nix
+++ b/pkgs/development/python-modules/pyhomematic/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, isPy3k
-, fetchPypi
-, python
+{
+  lib,
+  buildPythonPackage,
+  isPy3k,
+  fetchPypi,
+  python,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyhomepilot/default.nix b/pkgs/development/python-modules/pyhomepilot/default.nix
index 80eacd42b39f5..db00d9190ff05 100644
--- a/pkgs/development/python-modules/pyhomepilot/default.nix
+++ b/pkgs/development/python-modules/pyhomepilot/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "00gmqx8cwsd15iccnlr8ypgqrdg6nw9ha518cfk7pyp8vhw1ziwy";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/pyhomeworks/default.nix b/pkgs/development/python-modules/pyhomeworks/default.nix
index 085107c4ad26a..030066cff5cb2 100644
--- a/pkgs/development/python-modules/pyhomeworks/default.nix
+++ b/pkgs/development/python-modules/pyhomeworks/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
   # Project has no real tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyhomeworks"
-  ];
+  pythonImportsCheck = [ "pyhomeworks" ];
 
   meta = with lib; {
     description = "Python interface to Lutron Homeworks Series 4/8";
diff --git a/pkgs/development/python-modules/pyhumps/default.nix b/pkgs/development/python-modules/pyhumps/default.nix
index b7ed9548e3a26..e5f36fe22d9d7 100644
--- a/pkgs/development/python-modules/pyhumps/default.nix
+++ b/pkgs/development/python-modules/pyhumps/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-ElL/LY2V2Z3efdV5FnDy9dSoBltULrzxsjaOx+7W9Oo=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "humps"
-  ];
+  pythonImportsCheck = [ "humps" ];
 
   meta = with lib; {
     description = "Module to convert strings (and dictionary keys) between snake case, camel case and pascal case";
diff --git a/pkgs/development/python-modules/pyi2cflash/default.nix b/pkgs/development/python-modules/pyi2cflash/default.nix
index 7a8a0ac595a6a..a0b47a94cecb8 100644
--- a/pkgs/development/python-modules/pyi2cflash/default.nix
+++ b/pkgs/development/python-modules/pyi2cflash/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyftdi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyftdi,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     sha256 = "1nkazgf7pajz7jym5rfy2df71lyfp4skxqbrg5ch0h4dwjdwllx1";
   };
 
-  propagatedBuildInputs = [
-    pyftdi
-  ];
+  propagatedBuildInputs = [ pyftdi ];
 
   # tests are not shipped with the PyPI source
   doCheck = false;
diff --git a/pkgs/development/python-modules/pyialarm/default.nix b/pkgs/development/python-modules/pyialarm/default.nix
index 6e2264b017eaf..f76788180202b 100644
--- a/pkgs/development/python-modules/pyialarm/default.nix
+++ b/pkgs/development/python-modules/pyialarm/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, dicttoxml2
-, fetchFromGitHub
-, pythonOlder
-, xmltodict
+{
+  lib,
+  buildPythonPackage,
+  dicttoxml2,
+  fetchFromGitHub,
+  pythonOlder,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyialarm"
-  ];
+  pythonImportsCheck = [ "pyialarm" ];
 
   meta = with lib; {
     description = "Python library to interface with Antifurto365 iAlarm systems";
diff --git a/pkgs/development/python-modules/pyicloud/default.nix b/pkgs/development/python-modules/pyicloud/default.nix
index daa442a573054..3cdd75e17b619 100644
--- a/pkgs/development/python-modules/pyicloud/default.nix
+++ b/pkgs/development/python-modules/pyicloud/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
-, setuptools
-, certifi
-, click
-, keyring
-, keyrings-alt
-, pytz
-, requests
-, six
-, tzlocal
-, pytest-mock
-, pytestCheckHook
-, future
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  setuptools,
+  certifi,
+  click,
+  keyring,
+  keyrings-alt,
+  pytz,
+  requests,
+  six,
+  tzlocal,
+  pytest-mock,
+  pytestCheckHook,
+  future,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     hash = "sha256-2E1pdHHt8o7CGpdG+u4xy5OyNCueUGVw5CY8oicYd5w=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     certifi
diff --git a/pkgs/development/python-modules/pyicu/default.nix b/pkgs/development/python-modules/pyicu/default.nix
index c44bfcd29974b..8dd0fb09c7405 100644
--- a/pkgs/development/python-modules/pyicu/default.nix
+++ b/pkgs/development/python-modules/pyicu/default.nix
@@ -1,25 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, six
-, icu
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  six,
+  icu,
 }:
 
 buildPythonPackage rec {
   pname = "pyicu";
-  version = "2.12";
+  version = "2.13.1";
   format = "setuptools";
 
   src = fetchPypi {
     pname = "PyICU";
     inherit version;
-    hash = "sha256-vXq176k61pLm2qKc0kk2TlISGDKSIXJqETyjyygchhE=";
+    hash = "sha256-1JGQheqgfaErrejuch57v3reAVHKD4KUaibI9LmM3Os=";
   };
 
   nativeBuildInputs = [ icu ]; # for icu-config, but should be replaced with pkg-config
   buildInputs = [ icu ];
-  nativeCheckInputs = [ pytestCheckHook six ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    six
+  ];
 
   pythonImportsCheck = [ "icu" ];
 
diff --git a/pkgs/development/python-modules/pyimpfuzzy/default.nix b/pkgs/development/python-modules/pyimpfuzzy/default.nix
index 39bbee74e539d..469fa542aa873 100644
--- a/pkgs/development/python-modules/pyimpfuzzy/default.nix
+++ b/pkgs/development/python-modules/pyimpfuzzy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, ssdeep
-, pefile
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  ssdeep,
+  pefile,
 }:
 buildPythonPackage rec {
   pname = "pyimpfuzzy";
@@ -14,23 +15,17 @@ buildPythonPackage rec {
     sha256 = "da9796df302db4b04a197128637f84988f1882f1e08fdd69bbf9fdc6cfbaf349";
   };
 
-  buildInputs = [
-    ssdeep
-  ];
+  buildInputs = [ ssdeep ];
 
-  propagatedBuildInputs = [
-    pefile
-  ];
+  propagatedBuildInputs = [ pefile ];
 
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyimpfuzzy"
-  ];
+  pythonImportsCheck = [ "pyimpfuzzy" ];
 
   meta = with lib; {
-    description = "A Python module which calculates and compares the impfuzzy (import fuzzy hashing)";
+    description = "Python module which calculates and compares the impfuzzy (import fuzzy hashing)";
     homepage = "https://github.com/JPCERTCC/impfuzzy";
     license = licenses.gpl2Only;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/pyindego/default.nix b/pkgs/development/python-modules/pyindego/default.nix
index b83aa414bc8cd..98e5e3ba6ee6d 100644
--- a/pkgs/development/python-modules/pyindego/default.nix
+++ b/pkgs/development/python-modules/pyindego/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-
-# build-system
-, setuptools
-
-# dependencies
-, aiohttp
-, requests
-, pytz
-
-# tests
-, mock
-, pytest-aiohttp
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  aiohttp,
+  requests,
+  pytz,
+
+  # tests
+  mock,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     hash = "sha256-lRDi6qYMaPI8SiSNe0vzlKb92axujt44aei8opNPDug=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     aiohttp
@@ -52,9 +51,7 @@ buildPythonPackage rec {
     "test_update_battery"
   ];
 
-  pythonImportsCheck = [
-    "pyIndego"
-  ];
+  pythonImportsCheck = [ "pyIndego" ];
 
   meta = with lib; {
     description = "Python interface for Bosch API for lawnmowers";
diff --git a/pkgs/development/python-modules/pyinfra/default.nix b/pkgs/development/python-modules/pyinfra/default.nix
index 1a32aa2ac6fbf..80b1d43ef6ed7 100644
--- a/pkgs/development/python-modules/pyinfra/default.nix
+++ b/pkgs/development/python-modules/pyinfra/default.nix
@@ -1,20 +1,20 @@
-{ lib
-, buildPythonPackage
-, click
-, colorama
-, configparser
-, distro
-, fetchFromGitHub
-, fetchpatch
-, gevent
-, jinja2
-, paramiko
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pywinrm
-, pyyaml
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  click,
+  colorama,
+  configparser,
+  distro,
+  fetchFromGitHub,
+  gevent,
+  jinja2,
+  paramiko,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  pywinrm,
+  pyyaml,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -45,13 +45,9 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyinfra"
-  ];
+  pythonImportsCheck = [ "pyinfra" ];
 
   disabledTests = [
     # Test requires SSH binary
diff --git a/pkgs/development/python-modules/pyinotify/default.nix b/pkgs/development/python-modules/pyinotify/default.nix
index 9a2a99765504a..4fbb435db53b2 100644
--- a/pkgs/development/python-modules/pyinotify/default.nix
+++ b/pkgs/development/python-modules/pyinotify/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -22,5 +23,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     platforms = platforms.linux;
   };
-
 }
diff --git a/pkgs/development/python-modules/pyinputevent/default.nix b/pkgs/development/python-modules/pyinputevent/default.nix
index 1172e595e213d..a0e85755b8e74 100644
--- a/pkgs/development/python-modules/pyinputevent/default.nix
+++ b/pkgs/development/python-modules/pyinputevent/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage {
@@ -21,5 +22,4 @@ buildPythonPackage {
     license = licenses.bsd3;
     platforms = platforms.unix;
   };
-
 }
diff --git a/pkgs/development/python-modules/pyinstaller-versionfile/default.nix b/pkgs/development/python-modules/pyinstaller-versionfile/default.nix
index b198bae9ec15c..8a0c51eef3dc4 100644
--- a/pkgs/development/python-modules/pyinstaller-versionfile/default.nix
+++ b/pkgs/development/python-modules/pyinstaller-versionfile/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, packaging
-, jinja2
-, pyyaml
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  packaging,
+  jinja2,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -19,10 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-lz1GuiXU+r8sMld5SsG3qS+FOsWfbvkQmO2bxAR3XcY=";
   };
 
-  propagatedBuildInputs = [ packaging jinja2 pyyaml ];
+  propagatedBuildInputs = [
+    packaging
+    jinja2
+    pyyaml
+  ];
 
   meta = {
-    description = "Create a windows version-file from a simple YAML file that can be used by PyInstaller.";
+    description = "Create a windows version-file from a simple YAML file that can be used by PyInstaller";
     mainProgram = "create-version-file";
     homepage = "https://pypi.org/project/pyinstaller-versionfile/";
     license = lib.licenses.mit;
diff --git a/pkgs/development/python-modules/pyinsteon/default.nix b/pkgs/development/python-modules/pyinsteon/default.nix
index 22242ee62bf49..af11516e851a1 100644
--- a/pkgs/development/python-modules/pyinsteon/default.nix
+++ b/pkgs/development/python-modules/pyinsteon/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, aiofiles
-, aiohttp
-, async-timeout
-, async-generator
-, buildPythonPackage
-, fetchFromGitHub
-, pypubsub
-, pyserial
-, pyserial-asyncio
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, setuptools
-, voluptuous
+{
+  lib,
+  aiofiles,
+  aiohttp,
+  async-timeout,
+  async-generator,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pypubsub,
+  pyserial,
+  pyserial-asyncio,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
+  voluptuous,
 }:
 
 buildPythonPackage rec {
   pname = "pyinsteon";
-  version = "1.5.3";
+  version = "1.6.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,12 +27,10 @@ buildPythonPackage rec {
     owner = "pyinsteon";
     repo = "pyinsteon";
     rev = "refs/tags/${version}";
-    hash = "sha256-9d6QbekUv63sjKdK+ZogYOkGfFXVW+JB6ITHnehLwtM=";
+    hash = "sha256-V1sYLKKlTMG9Km53uNCU34e8D/owxuDNT+HGZxtK21I=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     aiofiles
@@ -48,14 +47,17 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # RuntimeError: BUG: Dead Listener called, still subscribed!
+    "test_linking_with_i1_device"
+  ];
+
   disabledTestPaths = lib.optionals (pythonAtLeast "3.12") [
     # Tests are blocking or failing
     "tests/test_handlers/"
   ];
 
-  pythonImportsCheck = [
-    "pyinsteon"
-  ];
+  pythonImportsCheck = [ "pyinsteon" ];
 
   meta = with lib; {
     description = "Python library to support Insteon home automation projects";
diff --git a/pkgs/development/python-modules/pyinstrument/default.nix b/pkgs/development/python-modules/pyinstrument/default.nix
index 1646fcd1d115a..bfeaab0146cb0 100644
--- a/pkgs/development/python-modules/pyinstrument/default.nix
+++ b/pkgs/development/python-modules/pyinstrument/default.nix
@@ -1,10 +1,11 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, wheel
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
   # Module import recursion
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyinstrument"
-  ];
+  pythonImportsCheck = [ "pyinstrument" ];
 
   meta = with lib; {
     description = "Call stack profiler for Python";
diff --git a/pkgs/development/python-modules/pyintesishome/default.nix b/pkgs/development/python-modules/pyintesishome/default.nix
index 6d53d7bc2eb55..fa4b02f85e158 100644
--- a/pkgs/development/python-modules/pyintesishome/default.nix
+++ b/pkgs/development/python-modules/pyintesishome/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-QgIvIn8I5EtJSNj1FdOI+DPgG7/y2ToQ62dhk7flieo=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyintesishome"
-  ];
+  pythonImportsCheck = [ "pyintesishome" ];
 
   meta = with lib; {
     description = "Python interface for IntesisHome devices";
diff --git a/pkgs/development/python-modules/pyipma/default.nix b/pkgs/development/python-modules/pyipma/default.nix
index 9f74c16a0c067..f6df4bf932725 100644
--- a/pkgs/development/python-modules/pyipma/default.nix
+++ b/pkgs/development/python-modules/pyipma/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, freezegun
-, mock
-, geopy
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  freezegun,
+  mock,
+  geopy,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pyipma"
-  ];
+  pythonImportsCheck = [ "pyipma" ];
 
   disabledTestPaths = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/pyipp/default.nix b/pkgs/development/python-modules/pyipp/default.nix
index bfeb5e4a5eeef..284fb8368ffd7 100644
--- a/pkgs/development/python-modules/pyipp/default.nix
+++ b/pkgs/development/python-modules/pyipp/default.nix
@@ -1,49 +1,49 @@
-{ lib
-, aiohttp
-, aresponses
-, awesomeversion
-, backoff
-, buildPythonPackage
-, deepmerge
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  async-timeout,
+  awesomeversion,
+  backoff,
+  buildPythonPackage,
+  deepmerge,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
   pname = "pyipp";
-  version = "0.15.0";
-  format = "pyproject";
+  version = "0.16.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
-   owner = "ctalkington";
-   repo = "python-ipp";
-   rev = "refs/tags/${version}";
-   hash = "sha256-k7NSCmugGov+lJXWeopUwKkGKL/EGhvxSSiby4CcmFM=";
+    owner = "ctalkington";
+    repo = "python-ipp";
+    rev = "refs/tags/${version}";
+    hash = "sha256-ddI9K0lJDZbVgO+hptP4I+EH//5vOoFDYXWxGALF8Ik=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace 'version = "0.0.0"' 'version = "${version}"' \
-      --replace "--cov" ""
+      --replace-fail 'version = "0.0.0"' 'version = "${version}"' \
+      --replace-fail "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     awesomeversion
     backoff
     deepmerge
     yarl
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
 
   nativeCheckInputs = [
     aresponses
@@ -53,9 +53,7 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [
-    "pyipp"
-  ];
+  pythonImportsCheck = [ "pyipp" ];
 
   meta = with lib; {
     changelog = "https://github.com/ctalkington/python-ipp/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/pyipv8/default.nix b/pkgs/development/python-modules/pyipv8/default.nix
index 24f0ba95c0638..d4efef40e2d74 100644
--- a/pkgs/development/python-modules/pyipv8/default.nix
+++ b/pkgs/development/python-modules/pyipv8/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, cryptography
-, libnacl
-, aiohttp
-, aiohttp-apispec
-, pyopenssl
-, pyasn1
-, marshmallow
-, typing-extensions
-, packaging
-, apispec
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  cryptography,
+  libnacl,
+  aiohttp,
+  aiohttp-apispec,
+  pyopenssl,
+  pyasn1,
+  marshmallow,
+  typing-extensions,
+  packaging,
+  apispec,
 }:
 
 buildPythonPackage rec {
@@ -41,8 +42,6 @@ buildPythonPackage rec {
     description = "Python implementation of Tribler's IPv8 p2p-networking layer";
     homepage = "https://github.com/Tribler/py-ipv8";
     license = licenses.lgpl3Only;
-    maintainers = with maintainers; [
-      mkg20001
-    ];
+    maintainers = with maintainers; [ mkg20001 ];
   };
 }
diff --git a/pkgs/development/python-modules/pyiqvia/default.nix b/pkgs/development/python-modules/pyiqvia/default.nix
index 1c3669bc1aa76..dbc41c1c78516 100644
--- a/pkgs/development/python-modules/pyiqvia/default.nix
+++ b/pkgs/development/python-modules/pyiqvia/default.nix
@@ -1,17 +1,17 @@
-{ lib
-, buildPythonPackage
-, aiohttp
-, aresponses
-, backoff
-, certifi
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, pytest-aiohttp
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  buildPythonPackage,
+  aiohttp,
+  aresponses,
+  backoff,
+  certifi,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-qq6UQUz60WkmWqdmExlSQT3wapaHJr8DeH1eVrTOnpQ=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -53,9 +51,7 @@ buildPythonPackage rec {
     "examples/"
   ];
 
-  pythonImportsCheck = [
-    "pyiqvia"
-  ];
+  pythonImportsCheck = [ "pyiqvia" ];
 
   meta = with lib; {
     description = "Module for working with IQVIA data";
diff --git a/pkgs/development/python-modules/pyisbn/default.nix b/pkgs/development/python-modules/pyisbn/default.nix
index eec0e4b039ad4..51277d85f4be9 100644
--- a/pkgs/development/python-modules/pyisbn/default.nix
+++ b/pkgs/development/python-modules/pyisbn/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hypothesis
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hypothesis,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pyisbn"
-  ];
+  pythonImportsCheck = [ "pyisbn" ];
 
   meta = with lib; {
     description = "Python module for working with 10- and 13-digit ISBNs";
diff --git a/pkgs/development/python-modules/pyisemail/default.nix b/pkgs/development/python-modules/pyisemail/default.nix
index dfa60a85eaf65..df26b5a3602e7 100644
--- a/pkgs/development/python-modules/pyisemail/default.nix
+++ b/pkgs/development/python-modules/pyisemail/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, dnspython
-, fetchFromGitHub
-, hatchling
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dnspython,
+  fetchFromGitHub,
+  hatchling,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-bJCaVUhvEAoQ8zMsbcb1Et728XHt+shEPhhBzPzY/vo=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = [
-    dnspython
-  ];
+  propagatedBuildInputs = [ dnspython ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyisemail"
-  ];
+  pythonImportsCheck = [ "pyisemail" ];
 
   meta = with lib; {
     description = "Module for email validation";
diff --git a/pkgs/development/python-modules/pyisy/default.nix b/pkgs/development/python-modules/pyisy/default.nix
index 13a5a9e8f9d84..1409c6525a6b3 100644
--- a/pkgs/development/python-modules/pyisy/default.nix
+++ b/pkgs/development/python-modules/pyisy/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, colorlog
-, fetchFromGitHub
-, python-dateutil
-, pythonOlder
-, requests
-, setuptools-scm
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  colorlog,
+  fetchFromGitHub,
+  python-dateutil,
+  pythonOlder,
+  requests,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
       --replace 'version_format="{tag}"' 'version="${version}"'
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     aiohttp
diff --git a/pkgs/development/python-modules/pyixapi/default.nix b/pkgs/development/python-modules/pyixapi/default.nix
index e452224d9e4f9..3a051450c5dcd 100644
--- a/pkgs/development/python-modules/pyixapi/default.nix
+++ b/pkgs/development/python-modules/pyixapi/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, poetry-core
-, requests
-, pyjwt
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  requests,
+  pyjwt,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-qkgPBIYv9xzGa29RiPAU3zNhcyutTUX1Vkmpd9YdeJU=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     requests
diff --git a/pkgs/development/python-modules/pyjet/default.nix b/pkgs/development/python-modules/pyjet/default.nix
deleted file mode 100644
index ed0a5281e0fa4..0000000000000
--- a/pkgs/development/python-modules/pyjet/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ lib, buildPythonPackage, pythonOlder, fetchFromGitHub, cython, pytest, importlib-resources, numpy }:
-
-buildPythonPackage rec {
-  pname = "pyjet";
-  version = "1.9.0";
-  format = "setuptools";
-
-  # tests not included in pypi tarball
-  src = fetchFromGitHub {
-    owner = "scikit-hep";
-    repo = pname;
-    rev = "refs/tags/${version}";
-    hash = "sha256-0g0fCf0FIwde5Vsc/BJxjgMcs5llpD8JqOgFbMjOooc=";
-  };
-
-  nativeBuildInputs = [ cython ];
-  propagatedBuildInputs = [
-    numpy
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    importlib-resources
-  ];
-
-  nativeCheckInputs = [ pytest ];
-  checkPhase = ''
-    mv pyjet _pyjet
-    pytest tests/
-  '';
-
-  meta = with lib; {
-    homepage = "https://github.com/scikit-hep/pyjet";
-    description = "The interface between FastJet and NumPy";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ veprbl ];
-  };
-}
diff --git a/pkgs/development/python-modules/pyjks/default.nix b/pkgs/development/python-modules/pyjks/default.nix
index 19d885284ea4c..9b63d5a8f6198 100644
--- a/pkgs/development/python-modules/pyjks/default.nix
+++ b/pkgs/development/python-modules/pyjks/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
 
-# pythonPackages
-, pyasn1-modules
-, pycryptodomex
-, twofish
+  # pythonPackages
+  pyasn1-modules,
+  pycryptodomex,
+  twofish,
 }:
 
 buildPythonPackage rec {
@@ -31,8 +32,6 @@ buildPythonPackage rec {
     description = "Pure-Python Java Keystore (JKS) library";
     homepage = "https://github.com/kurtbrose/pyjks";
     license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [
-      kamadorueda
-    ];
+    maintainers = with lib.maintainers; [ kamadorueda ];
   };
 }
diff --git a/pkgs/development/python-modules/pyjnius/default.nix b/pkgs/development/python-modules/pyjnius/default.nix
index 98496bf4a54b5..85ad161547d6a 100644
--- a/pkgs/development/python-modules/pyjnius/default.nix
+++ b/pkgs/development/python-modules/pyjnius/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchPypi
-, jdk
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchPypi,
+  jdk,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,12 +24,10 @@ buildPythonPackage rec {
     cython
   ];
 
-  pythonImportsCheck = [
-    "jnius"
-  ];
+  pythonImportsCheck = [ "jnius" ];
 
   meta = with lib; {
-    description = "A Python module to access Java classes as Python classes using the Java Native Interface (JNI)";
+    description = "Python module to access Java classes as Python classes using the Java Native Interface (JNI)";
     homepage = "https://github.com/kivy/pyjnius";
     changelog = "https://github.com/kivy/pyjnius/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pyjson5/default.nix b/pkgs/development/python-modules/pyjson5/default.nix
new file mode 100644
index 0000000000000..ea68a8ae8cf77
--- /dev/null
+++ b/pkgs/development/python-modules/pyjson5/default.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  wheel,
+}:
+
+buildPythonPackage rec {
+  pname = "pyjson5";
+  version = "1.6.6";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "Kijewski";
+    repo = "pyjson5";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-LNcz9JEOw6HO9eIf71w4NJdPOB4yixBfBeD7B/NLbfE=";
+    fetchSubmodules = true;
+  };
+
+  build-system = [
+    cython
+    setuptools
+    wheel
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "pyjson5" ];
+
+  meta = with lib; {
+    description = "JSON5 serializer and parser library";
+    homepage = "https://github.com/Kijewski/pyjson5";
+    changelog = "https://github.com/Kijewski/pyjson5/blob/${version}/CHANGELOG.md";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyjsparser/default.nix b/pkgs/development/python-modules/pyjsparser/default.nix
index e7ef79b092cad..0b6eab26b5c35 100644
--- a/pkgs/development/python-modules/pyjsparser/default.nix
+++ b/pkgs/development/python-modules/pyjsparser/default.nix
@@ -1,37 +1,46 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pytestCheckHook
-, js2py
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pytestCheckHook,
+  js2py,
 }:
 
-let pyjsparser = buildPythonPackage rec {
-  pname = "pyjsparser";
-  version = "2.7.1";
-  format = "setuptools";
+let
+  pyjsparser = buildPythonPackage rec {
+    pname = "pyjsparser";
+    version = "2.7.1";
+    format = "setuptools";
 
-  src = fetchFromGitHub {
-    owner = "PiotrDabkowski";
-    repo = pname;
-    rev = "5465d037b30e334cb0997f2315ec1e451b8ad4c1";
-    hash = "sha256-Hqay9/qsjUfe62U7Q79l0Yy01L2Bnj5xNs6427k3Br8=";
-  };
+    src = fetchFromGitHub {
+      owner = "PiotrDabkowski";
+      repo = pname;
+      rev = "5465d037b30e334cb0997f2315ec1e451b8ad4c1";
+      hash = "sha256-Hqay9/qsjUfe62U7Q79l0Yy01L2Bnj5xNs6427k3Br8=";
+    };
 
-  nativeCheckInputs = [ pytestCheckHook js2py ];
+    nativeCheckInputs = [
+      pytestCheckHook
+      js2py
+    ];
 
-  # escape infinite recursion with js2py
-  doCheck = false;
+    # escape infinite recursion with js2py
+    doCheck = false;
 
-  passthru.tests = {
-    check = pyjsparser.overridePythonAttrs (_: { doCheck = true; });
-  };
+    passthru.tests = {
+      check = pyjsparser.overridePythonAttrs (_: {
+        doCheck = true;
+      });
+    };
 
-  pythonImportsCheck = [ "pyjsparser" ];
+    pythonImportsCheck = [ "pyjsparser" ];
 
-  meta = with lib; {
-    description = "Fast javascript parser (based on esprima.js)";
-    homepage = "https://github.com/PiotrDabkowski/pyjsparser";
-    license = licenses.mit;
-    maintainers = with maintainers; [ onny ];
+    meta = with lib; {
+      description = "Fast javascript parser (based on esprima.js)";
+      homepage = "https://github.com/PiotrDabkowski/pyjsparser";
+      license = licenses.mit;
+      maintainers = with maintainers; [ onny ];
+    };
   };
-}; in pyjsparser
+in
+pyjsparser
diff --git a/pkgs/development/python-modules/pyjwkest/default.nix b/pkgs/development/python-modules/pyjwkest/default.nix
index f89cd22a4c0c3..4663752311d1e 100644
--- a/pkgs/development/python-modules/pyjwkest/default.nix
+++ b/pkgs/development/python-modules/pyjwkest/default.nix
@@ -1,5 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi,
-  future, pycryptodomex, pytest, requests, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  future,
+  pycryptodomex,
+  pytest,
+  requests,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -19,5 +26,10 @@ buildPythonPackage rec {
   };
 
   buildInputs = [ pytest ];
-  propagatedBuildInputs = [ future pycryptodomex requests six ];
+  propagatedBuildInputs = [
+    future
+    pycryptodomex
+    requests
+    six
+  ];
 }
diff --git a/pkgs/development/python-modules/pyjwt/default.nix b/pkgs/development/python-modules/pyjwt/default.nix
index f970605eb412a..62c9c8c859db6 100644
--- a/pkgs/development/python-modules/pyjwt/default.nix
+++ b/pkgs/development/python-modules/pyjwt/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, cryptography
-, pytestCheckHook
-, pythonOlder
-, sphinxHook
-, sphinx-rtd-theme
-, zope-interface
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  cryptography,
+  pytestCheckHook,
+  pythonOlder,
+  sphinxHook,
+  sphinx-rtd-theme,
+  zope-interface,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
     zope-interface
   ];
 
-  passthru.optional-dependencies.crypto = [
-    cryptography
-  ];
+  passthru.optional-dependencies.crypto = [ cryptography ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/pykakasi/default.nix b/pkgs/development/python-modules/pykakasi/default.nix
index 1cfb8739888da..30dcee778a9b6 100644
--- a/pkgs/development/python-modules/pykakasi/default.nix
+++ b/pkgs/development/python-modules/pykakasi/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, deprecated
-, fetchFromGitHub
-, importlib-metadata
-, jaconv
-, py-cpuinfo
-, pytest-benchmark
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  deprecated,
+  fetchFromGitHub,
+  importlib-metadata,
+  jaconv,
+  py-cpuinfo,
+  pytest-benchmark,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -31,17 +32,13 @@ buildPythonPackage rec {
       --replace-fail ', "klepto"' ""
   '';
 
-  build-system = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
   dependencies = [
     jaconv
     deprecated
     setuptools
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   nativeCheckInputs = [
     py-cpuinfo
@@ -56,9 +53,7 @@ buildPythonPackage rec {
     "pytest_benchmark_update_json"
   ];
 
-  pythonImportsCheck = [
-    "pykakasi"
-  ];
+  pythonImportsCheck = [ "pykakasi" ];
 
   meta = with lib; {
     description = "Python converter for Japanese Kana-kanji sentences into Kana-Roman";
diff --git a/pkgs/development/python-modules/pykaleidescape/default.nix b/pkgs/development/python-modules/pykaleidescape/default.nix
index eac53807b5d4c..7f9ac2ec85822 100644
--- a/pkgs/development/python-modules/pykaleidescape/default.nix
+++ b/pkgs/development/python-modules/pykaleidescape/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, dnspython
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  dnspython,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-KM/gtpsQ27QZz2uI1t/yVN5no0zp9LZag1duAJzK55g=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -38,18 +37,18 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "kaleidescape"
-  ];
-
-  disabledTests = [
-    # Test requires network access
-    "test_resolve_succeeds"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    # stuck in EpollSelector.poll()
-    "test_manual_disconnect"
-    "test_concurrency"
-  ];
+  pythonImportsCheck = [ "kaleidescape" ];
+
+  disabledTests =
+    [
+      # Test requires network access
+      "test_resolve_succeeds"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # stuck in EpollSelector.poll()
+      "test_manual_disconnect"
+      "test_concurrency"
+    ];
 
   meta = with lib; {
     description = "Module for controlling Kaleidescape devices";
diff --git a/pkgs/development/python-modules/pykalman/default.nix b/pkgs/development/python-modules/pykalman/default.nix
index 401ff4fc6fe7a..31eb43a15bd49 100644
--- a/pkgs/development/python-modules/pykalman/default.nix
+++ b/pkgs/development/python-modules/pykalman/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, scipy
-, pytestCheckHook
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  scipy,
+  pytestCheckHook,
+  nose,
 }:
 
 buildPythonPackage rec {
@@ -36,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pykalman" ];
 
   meta = with lib; {
-    description = "An implementation of the Kalman Filter, Kalman Smoother, and EM algorithm in Python";
+    description = "Implementation of the Kalman Filter, Kalman Smoother, and EM algorithm in Python";
     homepage = "https://github.com/pykalman/pykalman";
     license = licenses.bsd2;
     maintainers = with maintainers; [ mbalatsko ];
diff --git a/pkgs/development/python-modules/pykdl/default.nix b/pkgs/development/python-modules/pykdl/default.nix
index 75f2ab61d2830..6670f6d145d04 100644
--- a/pkgs/development/python-modules/pykdl/default.nix
+++ b/pkgs/development/python-modules/pykdl/default.nix
@@ -1,36 +1,55 @@
-{ lib, stdenv, toPythonModule, fetchpatch, cmake, pybind11, orocos-kdl, eigen
-, python }:
+{
+  lib,
+  stdenv,
+  toPythonModule,
+  fetchpatch,
+  cmake,
+  pybind11,
+  orocos-kdl,
+  eigen,
+  python,
+}:
 
-toPythonModule (stdenv.mkDerivation {
-  pname = "pykdl";
-  inherit (orocos-kdl) version src;
+toPythonModule (
+  stdenv.mkDerivation {
+    pname = "pykdl";
+    inherit (orocos-kdl) version src;
 
-  sourceRoot = "${orocos-kdl.src.name}/python_orocos_kdl";
+    sourceRoot = "${orocos-kdl.src.name}/python_orocos_kdl";
 
-  patches = [
-    # Support system pybind11; the vendored copy doesn't support Python 3.11
-    (fetchpatch {
-      url = "https://github.com/orocos/orocos_kinematics_dynamics/commit/e25a13fc5820dbca6b23d10506407bca9bcdd25f.patch";
-      hash = "sha256-NGMVGEYsa7hVX+SgRZgeSm93BqxFR1uiyFvzyF5H0Y4=";
-      stripLen = 1;
-    })
-  ];
+    patches = [
+      # Support system pybind11; the vendored copy doesn't support Python 3.11
+      (fetchpatch {
+        url = "https://github.com/orocos/orocos_kinematics_dynamics/commit/e25a13fc5820dbca6b23d10506407bca9bcdd25f.patch";
+        hash = "sha256-NGMVGEYsa7hVX+SgRZgeSm93BqxFR1uiyFvzyF5H0Y4=";
+        stripLen = 1;
+      })
+    ];
 
-  # Fix hardcoded installation path
-  postPatch = ''
-    substituteInPlace CMakeLists.txt \
-      --replace dist-packages site-packages
-  '';
+    # Fix hardcoded installation path
+    postPatch = ''
+      substituteInPlace CMakeLists.txt \
+        --replace dist-packages site-packages
+    '';
 
-  nativeBuildInputs = [ cmake pybind11 ];
-  buildInputs = [ orocos-kdl eigen ];
-  propagatedBuildInputs = [ python ];
+    nativeBuildInputs = [
+      cmake
+      pybind11
+    ];
+    buildInputs = [
+      orocos-kdl
+      eigen
+    ];
+    propagatedBuildInputs = [ python ];
 
-  meta = with lib; {
-    description = "Kinematics and Dynamics Library (Python bindings)";
-    homepage = "https://www.orocos.org/kdl.html";
-    license = licenses.lgpl21Only;
-    maintainers = with maintainers; [ lopsided98 ];
-    platforms = platforms.all;
-  };
-})
+    cmakeFlags = [ "-DPYTHON_EXECUTABLE=${lib.getExe python.pythonOnBuildForHost}" ];
+
+    meta = with lib; {
+      description = "Kinematics and Dynamics Library (Python bindings)";
+      homepage = "https://www.orocos.org/kdl.html";
+      license = licenses.lgpl21Only;
+      maintainers = with maintainers; [ lopsided98 ];
+      platforms = platforms.all;
+    };
+  }
+)
diff --git a/pkgs/development/python-modules/pykdtree/default.nix b/pkgs/development/python-modules/pykdtree/default.nix
index 84372802ecaf2..8e09b744ff8ae 100644
--- a/pkgs/development/python-modules/pykdtree/default.nix
+++ b/pkgs/development/python-modules/pykdtree/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, cython
-, numpy
-, setuptools
+  # build-system
+  cython,
+  numpy,
+  setuptools,
 
-# native dependencies
-, openmp
+  # native dependencies
+  openmp,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,19 +25,20 @@ buildPythonPackage rec {
     hash = "sha256-zCCypnxkBWSFoxTSwrbbo1SvfuHI+42uG+byk2o3Q0E=";
   };
 
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-warn "numpy>=2.0.0rc1,<3" "numpy"
+  '';
+
   nativeBuildInputs = [
     cython
     numpy
     setuptools
   ];
 
-  buildInputs = [
-    openmp
-  ];
+  buildInputs = [ openmp ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   preCheck = ''
     # make sure we don't import pykdtree from the source tree
@@ -44,9 +46,7 @@ buildPythonPackage rec {
     rm -rf pykdtree
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "kd-tree implementation for fast nearest neighbour search in Python";
diff --git a/pkgs/development/python-modules/pykeepass/default.nix b/pkgs/development/python-modules/pykeepass/default.nix
index da2e8d5bc837b..73530902ee899 100644
--- a/pkgs/development/python-modules/pykeepass/default.nix
+++ b/pkgs/development/python-modules/pykeepass/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, argon2-cffi
-, construct
-, lxml
-, pycryptodomex
-, pyotp
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  argon2-cffi,
+  construct,
+  lxml,
+  pycryptodomex,
+  pyotp,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
       --replace-fail 'packages = ["pykeepass"]' 'packages = ["pykeepass", "pykeepass.kdbx_parsing"]'
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     argon2-cffi
diff --git a/pkgs/development/python-modules/pykerberos/default.nix b/pkgs/development/python-modules/pykerberos/default.nix
index 25db2847dd350..b7b8953a72b34 100644
--- a/pkgs/development/python-modules/pykerberos/default.nix
+++ b/pkgs/development/python-modules/pykerberos/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchPypi, buildPythonPackage, krb5 }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  krb5,
+}:
 
 buildPythonPackage rec {
   pname = "pykerberos";
@@ -20,7 +25,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "High-level interface to Kerberos";
-    license     = licenses.asl20;
+    license = licenses.asl20;
     maintainers = with maintainers; [ catern ];
   };
 }
diff --git a/pkgs/development/python-modules/pykeyatome/default.nix b/pkgs/development/python-modules/pykeyatome/default.nix
index 18f6fb7a9ee86..70b52f3c009bf 100644
--- a/pkgs/development/python-modules/pykeyatome/default.nix
+++ b/pkgs/development/python-modules/pykeyatome/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fake-useragent
-, fetchFromGitHub
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
-, responses
-, simplejson
+{
+  lib,
+  buildPythonPackage,
+  fake-useragent,
+  fetchFromGitHub,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
+  responses,
+  simplejson,
 }:
 
 buildPythonPackage rec {
@@ -46,9 +47,7 @@ buildPythonPackage rec {
     "test_relog_after_session_down"
   ];
 
-  pythonImportsCheck = [
-    "pykeyatome"
-  ];
+  pythonImportsCheck = [ "pykeyatome" ];
 
   meta = with lib; {
     description = "Python module to get data from Atome Key";
diff --git a/pkgs/development/python-modules/pykira/default.nix b/pkgs/development/python-modules/pykira/default.nix
index c3303902bf6ff..a23d3b695f6e8 100644
--- a/pkgs/development/python-modules/pykira/default.nix
+++ b/pkgs/development/python-modules/pykira/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pykira"
-  ];
+  pythonImportsCheck = [ "pykira" ];
 
   meta = with lib; {
     description = "Python module to interact with Kira modules";
diff --git a/pkgs/development/python-modules/pykka/default.nix b/pkgs/development/python-modules/pykka/default.nix
index c9e19c4c1661c..19cc38aba586c 100644
--- a/pkgs/development/python-modules/pykka/default.nix
+++ b/pkgs/development/python-modules/pykka/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pytest-mock
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pytest-mock,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -22,26 +23,20 @@ buildPythonPackage rec {
     hash = "sha256-2baFwZPNuVU39Kt5B8QvGKu7jMbg+GZ3ROoTxzPOXac=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [ typing-extensions ];
 
   nativeCheckInputs = [
     pytestCheckHook
     pytest-mock
   ];
 
-  pythonImportsCheck = [
-    "pykka"
-  ];
+  pythonImportsCheck = [ "pykka" ];
 
   meta = with lib; {
     homepage = "https://www.pykka.org/";
-    description = "A Python implementation of the actor model";
+    description = "Python implementation of the actor model";
     changelog = "https://github.com/jodal/pykka/releases/tag/v${version}";
     maintainers = with maintainers; [ ];
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/pykmtronic/default.nix b/pkgs/development/python-modules/pykmtronic/default.nix
index 092a3d826a40b..5f2b4b4cbe11b 100644
--- a/pkgs/development/python-modules/pykmtronic/default.nix
+++ b/pkgs/development/python-modules/pykmtronic/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, lxml
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  lxml,
 }:
 
 buildPythonPackage rec {
@@ -15,7 +16,10 @@ buildPythonPackage rec {
     hash = "sha256-8qLyBJp7C93x0PWbgDAtNEDJ5VLNfwZ3DRZfudRCBgo=";
   };
 
-  propagatedBuildInputs = [ aiohttp lxml ];
+  propagatedBuildInputs = [
+    aiohttp
+    lxml
+  ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/pykodi/default.nix b/pkgs/development/python-modules/pykodi/default.nix
index 75dda69262c7a..f4f52879d7fe8 100644
--- a/pkgs/development/python-modules/pykodi/default.nix
+++ b/pkgs/development/python-modules/pykodi/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, aiohttp
-, jsonrpc-async
-, jsonrpc-websocket
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  aiohttp,
+  jsonrpc-async,
+  jsonrpc-websocket,
 }:
 
 buildPythonPackage rec {
@@ -25,12 +26,10 @@ buildPythonPackage rec {
   # has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pykodi"
-  ];
+  pythonImportsCheck = [ "pykodi" ];
 
   meta = with lib; {
-    description = "An async python interface for Kodi over JSON-RPC";
+    description = "Async python interface for Kodi over JSON-RPC";
     homepage = "https://github.com/OnFreund/PyKodi";
     license = licenses.mit;
     maintainers = with maintainers; [ sephalon ];
diff --git a/pkgs/development/python-modules/pykoplenti/default.nix b/pkgs/development/python-modules/pykoplenti/default.nix
index 6078562a9714b..a4f605692c5f2 100644
--- a/pkgs/development/python-modules/pykoplenti/default.nix
+++ b/pkgs/development/python-modules/pykoplenti/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, prompt-toolkit
-, pycryptodome
-, pydantic
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  prompt-toolkit,
+  pycryptodome,
+  pydantic,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,12 +25,9 @@ buildPythonPackage rec {
     hash = "sha256-2sGkHCIGo1lzLurvQBmq+16sodAaK8v+mAbIH/Gd3+E=";
   };
 
-  pythonRelaxDeps = [
-    "pydantic"
-  ];
+  pythonRelaxDeps = [ "pydantic" ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -50,9 +47,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pykoplenti"
-  ];
+  pythonImportsCheck = [ "pykoplenti" ];
 
   meta = with lib; {
     description = "Python REST client API for Kostal Plenticore Inverters";
diff --git a/pkgs/development/python-modules/pykostalpiko/default.nix b/pkgs/development/python-modules/pykostalpiko/default.nix
index 13b67271bd51f..71c9416ae6499 100644
--- a/pkgs/development/python-modules/pykostalpiko/default.nix
+++ b/pkgs/development/python-modules/pykostalpiko/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pykostalpiko"
-  ];
+  pythonImportsCheck = [ "pykostalpiko" ];
 
   meta = with lib; {
     description = "Library and CLI-tool to fetch the data from a Kostal Piko inverter";
diff --git a/pkgs/development/python-modules/pykrakenapi/default.nix b/pkgs/development/python-modules/pykrakenapi/default.nix
index 8326580395319..55cdaf71b4bb4 100644
--- a/pkgs/development/python-modules/pykrakenapi/default.nix
+++ b/pkgs/development/python-modules/pykrakenapi/default.nix
@@ -1,17 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, krakenex
-, pandas
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  krakenex,
+  pandas,
 }:
 
 buildPythonPackage rec {
   pname = "pykrakenapi";
   version = "0.3.2";
 
-  disabled = pythonOlder "3.3";
-
   format = "setuptools";
 
   src = fetchFromGitHub {
diff --git a/pkgs/development/python-modules/pykulersky/default.nix b/pkgs/development/python-modules/pykulersky/default.nix
index a748191ba9d19..974034c587566 100644
--- a/pkgs/development/python-modules/pykulersky/default.nix
+++ b/pkgs/development/python-modules/pykulersky/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, bleak
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  bleak,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pykulersky"
-  ];
+  pythonImportsCheck = [ "pykulersky" ];
 
   meta = with lib; {
     description = "Python module to control Brightech Kuler Sky Bluetooth LED devices";
diff --git a/pkgs/development/python-modules/pykwalify/default.nix b/pkgs/development/python-modules/pykwalify/default.nix
index 991e822d42a22..bf1b69d8b68ba 100644
--- a/pkgs/development/python-modules/pykwalify/default.nix
+++ b/pkgs/development/python-modules/pykwalify/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, python-dateutil
-, docopt
-, fetchPypi
-, pytestCheckHook
-, ruamel-yaml
-, testfixtures
+{
+  lib,
+  buildPythonPackage,
+  fetchpatch,
+  python-dateutil,
+  docopt,
+  fetchPypi,
+  pytestCheckHook,
+  ruamel-yaml,
+  testfixtures,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pykwb/default.nix b/pkgs/development/python-modules/pykwb/default.nix
index 5de4abd0306dc..8ff7ab1f68ff9 100644
--- a/pkgs/development/python-modules/pykwb/default.nix
+++ b/pkgs/development/python-modules/pykwb/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyserial
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyserial,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-mor2TKhq08w4HzaUaspWOMEFwJaAKjXKoNAaoZJqWPQ=";
   };
 
-  propagatedBuildInputs = [
-    pyserial
-  ];
+  propagatedBuildInputs = [ pyserial ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pykwb"
-  ];
+  pythonImportsCheck = [ "pykwb" ];
 
   meta = with lib; {
     description = "Library for interacting with KWB Easyfire Pellet Central Heating Units";
diff --git a/pkgs/development/python-modules/pylacrosse/default.nix b/pkgs/development/python-modules/pylacrosse/default.nix
index f173d8569646c..a151a64d59d5e 100644
--- a/pkgs/development/python-modules/pylacrosse/default.nix
+++ b/pkgs/development/python-modules/pylacrosse/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pynose
-, pyserial
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pynose,
+  pyserial,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
       --replace "version = version," "version = '${version}',"
   '';
 
-  propagatedBuildInputs = [
-    pyserial
-  ];
+  propagatedBuildInputs = [ pyserial ];
 
   nativeCheckInputs = [
     mock
@@ -37,9 +36,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pylacrosse"
-  ];
+  pythonImportsCheck = [ "pylacrosse" ];
 
   meta = with lib; {
     description = "Python library for Jeelink LaCrosse";
diff --git a/pkgs/development/python-modules/pylacus/default.nix b/pkgs/development/python-modules/pylacus/default.nix
index 09941db80a0ed..bea461e7e1ce8 100644
--- a/pkgs/development/python-modules/pylacus/default.nix
+++ b/pkgs/development/python-modules/pylacus/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-ytO9wtCkiC6CLWLkmSV/R+Rnx/W4Jv2dsgykZ2GB13U=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    requests
-  ];
+  dependencies = [ requests ];
 
   # Tests require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pylacus"
-  ];
+  pythonImportsCheck = [ "pylacus" ];
 
   meta = with lib; {
     description = "Module to enqueue and query a remote Lacus instance";
diff --git a/pkgs/development/python-modules/pylama/default.nix b/pkgs/development/python-modules/pylama/default.nix
index 5e379cefac639..221c1e936f03d 100644
--- a/pkgs/development/python-modules/pylama/default.nix
+++ b/pkgs/development/python-modules/pylama/default.nix
@@ -1,84 +1,88 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, substituteAll
-, git
-, eradicate
-, mccabe
-, mypy
-, pycodestyle
-, pydocstyle
-, pyflakes
-, vulture
-, setuptools
-, isort
-, pylint
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  substituteAll,
+  git,
+  eradicate,
+  mccabe,
+  mypy,
+  pycodestyle,
+  pydocstyle,
+  pyflakes,
+  vulture,
+  setuptools,
+  isort,
+  pylint,
+  pytestCheckHook,
 }:
 
-let pylama = buildPythonPackage rec {
-  pname = "pylama";
-  version = "8.4.1";
+let
+  pylama = buildPythonPackage rec {
+    pname = "pylama";
+    version = "8.4.1";
 
-  format = "setuptools";
+    format = "setuptools";
 
-  src = fetchFromGitHub {
-    name = "${pname}-${version}-source";
-    owner = "klen";
-    repo = "pylama";
-    rev = version;
-    hash = "sha256-WOGtZ412tX3YH42JCd5HIngunluwtMmQrOSUZp23LPU=";
-  };
+    src = fetchFromGitHub {
+      name = "${pname}-${version}-source";
+      owner = "klen";
+      repo = "pylama";
+      rev = version;
+      hash = "sha256-WOGtZ412tX3YH42JCd5HIngunluwtMmQrOSUZp23LPU=";
+    };
 
-  patches = [
-    (substituteAll {
-      src = ./paths.patch;
-      git = "${lib.getBin git}/bin/git";
-    })
-  ];
+    patches = [
+      (substituteAll {
+        src = ./paths.patch;
+        git = "${lib.getBin git}/bin/git";
+      })
+    ];
 
-  propagatedBuildInputs = [
-    eradicate
-    mccabe
-    mypy
-    pycodestyle
-    pydocstyle
-    pyflakes
-    setuptools
-    vulture
-  ];
+    propagatedBuildInputs = [
+      eradicate
+      mccabe
+      mypy
+      pycodestyle
+      pydocstyle
+      pyflakes
+      setuptools
+      vulture
+    ];
 
-  # escape infinite recursion pylint -> isort -> pylama
-  doCheck = false;
+    # escape infinite recursion pylint -> isort -> pylama
+    doCheck = false;
 
-  nativeCheckInputs = [
-    pylint
-    pytestCheckHook
-  ];
+    nativeCheckInputs = [
+      pylint
+      pytestCheckHook
+    ];
 
-  preCheck = ''
-    export HOME=$TEMP
-  '';
+    preCheck = ''
+      export HOME=$TEMP
+    '';
 
-  disabledTests = [
-    "test_quotes" # FIXME package pylama-quotes
-    "test_radon" # FIXME package radon
-  ];
+    disabledTests = [
+      "test_quotes" # FIXME package pylama-quotes
+      "test_radon" # FIXME package radon
+    ];
 
-  pythonImportsCheck = [
-    "pylama.main"
-  ];
+    pythonImportsCheck = [ "pylama.main" ];
 
-  passthru.tests = {
-    check = pylama.overridePythonAttrs (_: { doCheck = true; });
-  };
+    passthru.tests = {
+      check = pylama.overridePythonAttrs (_: {
+        doCheck = true;
+      });
+    };
 
-  meta = with lib; {
-    description = "Code audit tool for python";
-    mainProgram = "pylama";
-    homepage = "https://github.com/klen/pylama";
-    changelog = "https://github.com/klen/pylama/blob/${version}/Changelog";
-    license = licenses.mit;
-    maintainers = with maintainers; [ dotlambda ];
+    meta = with lib; {
+      description = "Code audit tool for python";
+      mainProgram = "pylama";
+      homepage = "https://github.com/klen/pylama";
+      changelog = "https://github.com/klen/pylama/blob/${version}/Changelog";
+      license = licenses.mit;
+      maintainers = with maintainers; [ dotlambda ];
+    };
   };
-}; in pylama
+in
+pylama
diff --git a/pkgs/development/python-modules/pylast/default.nix b/pkgs/development/python-modules/pylast/default.nix
index 9d4ef111f7e1a..19e1be9892f30 100644
--- a/pkgs/development/python-modules/pylast/default.nix
+++ b/pkgs/development/python-modules/pylast/default.nix
@@ -1,53 +1,52 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flaky
-, hatch-vcs
-, hatchling
-, httpx
-, importlib-metadata
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flaky,
+  hatch-vcs,
+  hatchling,
+  httpx,
+  importlib-metadata,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "pylast";
-  version = "5.2.0";
-  format = "pyproject";
+  version = "5.3.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "pylast";
-    repo = pname;
+    repo = "pylast";
     rev = "refs/tags/${version}";
-    hash = "sha256-6yxsqruosSOJ5LeIBbvuEko4s9qU/ObNZiJD5YH/hvY=";
+    hash = "sha256-dgqTNISeyBkZ2m68pqw5rsoyPxLW4wWkv6iqq9bD5Ek=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     hatch-vcs
     hatchling
   ];
 
-  propagatedBuildInputs = [
-    httpx
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  dependencies = [ httpx ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   nativeCheckInputs = [
     pytestCheckHook
     flaky
   ];
 
-  pythonImportsCheck = [
-    "pylast"
-  ];
+  pythonImportsCheck = [ "pylast" ];
 
   meta = with lib; {
     description = "Python interface to last.fm (and compatibles)";
     homepage = "https://github.com/pylast/pylast";
+    changelog = "https://github.com/pylast/pylast/releases/tag/${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [ fab rvolosatovs ];
+    maintainers = with maintainers; [
+      fab
+      rvolosatovs
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pylatex/default.nix b/pkgs/development/python-modules/pylatex/default.nix
index 44926587aa33c..ecd6adf3cdd2e 100644
--- a/pkgs/development/python-modules/pylatex/default.nix
+++ b/pkgs/development/python-modules/pylatex/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, ordered-set
-, pytestCheckHook
-, matplotlib
-, quantities
-, texlive
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  ordered-set,
+  pytestCheckHook,
+  matplotlib,
+  quantities,
+  texlive,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-gZKMYGMp7bzDY5+Xx9h1AFP4l0Zd936fDfSXyW5lY1k=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [ ordered-set ];
 
@@ -39,15 +38,11 @@ buildPythonPackage rec {
     pytestCheckHook
     matplotlib
     quantities
-    (texlive.combine { inherit (texlive)
-      scheme-small
-      lastpage
-      collection-fontsrecommended
-    ;})
+    (texlive.combine { inherit (texlive) scheme-small lastpage collection-fontsrecommended; })
   ];
 
   meta = with lib; {
-    description = "A Python library for creating LaTeX files and snippets";
+    description = "Python library for creating LaTeX files and snippets";
     homepage = "https://jeltef.github.io/PyLaTeX/current/";
     downloadPage = "https://github.com/JelteF/PyLaTeX/releases";
     changelog = "https://jeltef.github.io/PyLaTeX/current/changelog.html";
diff --git a/pkgs/development/python-modules/pylatexenc/default.nix b/pkgs/development/python-modules/pylatexenc/default.nix
index 8e66fc08a6560..d48fe47bf4473 100644
--- a/pkgs/development/python-modules/pylatexenc/default.nix
+++ b/pkgs/development/python-modules/pylatexenc/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pylaunches/default.nix b/pkgs/development/python-modules/pylaunches/default.nix
index 9adf3abfc61e1..106ea7a998880 100644
--- a/pkgs/development/python-modules/pylaunches/default.nix
+++ b/pkgs/development/python-modules/pylaunches/default.nix
@@ -1,30 +1,38 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pytest-asyncio
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pytest-asyncio,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "pylaunches";
-  version = "1.4.0";
-  format = "setuptools";
+  version = "2.0.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.11";
 
   src = fetchFromGitHub {
     owner = "ludeeus";
-    repo = pname;
-    rev = version;
-    sha256 = "sha256-bIcnYcbfAwjet3cg97y+ujFfY2916ANk4sw0sZoU59g=";
+    repo = "pylaunches";
+    rev = "refs/tags/${version}";
+    hash = "sha256-NewzzZuiXwaWU59bu+M2QcSfydL1khvw/YJkbZ58W2Q=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  postPatch = ''
+    # Upstream doesn't set version in the repo
+    substituteInPlace pyproject.toml \
+      --replace-fail 'version = "0"' 'version = "${version}"'
+  '';
+
+  build-system = [ poetry-core ];
+
+  dependencies = [ aiohttp ];
 
   nativeCheckInputs = [
     aresponses
@@ -32,20 +40,12 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
-  postPatch = ''
-    # Upstream doesn't set version in the repo
-    substituteInPlace setup.py \
-      --replace 'version="main",' 'version="${version}",' \
-      --replace ', "pytest-runner"' ""
-  '';
-
-  pythonImportsCheck = [
-    "pylaunches"
-  ];
+  pythonImportsCheck = [ "pylaunches" ];
 
   meta = with lib; {
     description = "Python module to get information about upcoming space launches";
     homepage = "https://github.com/ludeeus/pylaunches";
+    changelog = "https://github.com/ludeeus/pylaunches/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/pyld/default.nix b/pkgs/development/python-modules/pyld/default.nix
index 89d5544a31136..aa66ac581c3c0 100644
--- a/pkgs/development/python-modules/pyld/default.nix
+++ b/pkgs/development/python-modules/pyld/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, python, requests }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  requests,
+}:
 
 let
 
@@ -15,7 +21,6 @@ let
     rev = "aceeaf224b64d6880189d795bd99c3ffadb5d79e";
     sha256 = "125q5rllfm8vg9mz8hn7bhvhv2vqpd86kx2kxlk84smh33l8kbyl";
   };
-
 in
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pylddwrap/default.nix b/pkgs/development/python-modules/pylddwrap/default.nix
index dc0ca98f186c2..b24700cee2c87 100644
--- a/pkgs/development/python-modules/pylddwrap/default.nix
+++ b/pkgs/development/python-modules/pylddwrap/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, icontract
-, pytestCheckHook
-, pythonOlder
-, substituteAll
-, typing-extensions
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  icontract,
+  pytestCheckHook,
+  pythonOlder,
+  substituteAll,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyleri/default.nix b/pkgs/development/python-modules/pyleri/default.nix
index 2ff3abf5978d9..2fdb2a0077c3c 100644
--- a/pkgs/development/python-modules/pyleri/default.nix
+++ b/pkgs/development/python-modules/pyleri/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, unittestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  unittestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-4t+6wtYzJbmL0TB/OXr89uZ2s8DeGlUdWwHd4YPsCW0=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyleri"
-  ];
+  pythonImportsCheck = [ "pyleri" ];
 
   meta = with lib; {
     description = "Module to parse SiriDB";
diff --git a/pkgs/development/python-modules/pylev/default.nix b/pkgs/development/python-modules/pylev/default.nix
index fdc5e2c080127..30831a8c5727b 100644
--- a/pkgs/development/python-modules/pylev/default.nix
+++ b/pkgs/development/python-modules/pylev/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pylgnetcast/default.nix b/pkgs/development/python-modules/pylgnetcast/default.nix
index f4811bf02dfc1..a017c49d574b2 100644
--- a/pkgs/development/python-modules/pylgnetcast/default.nix
+++ b/pkgs/development/python-modules/pylgnetcast/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-5lzLknuGLQryLCc4YQJn8AGuWTiSM90+8UTQ/WYfASM=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pylgnetcast"
-  ];
+  pythonImportsCheck = [ "pylgnetcast" ];
 
   meta = with lib; {
     description = "Python API client for the LG Smart TV running NetCast 3 or 4";
diff --git a/pkgs/development/python-modules/pylibacl/default.nix b/pkgs/development/python-modules/pylibacl/default.nix
index 68f2d2d125ca7..e2f2efdef7a25 100644
--- a/pkgs/development/python-modules/pylibacl/default.nix
+++ b/pkgs/development/python-modules/pylibacl/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pkgs
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pkgs,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,7 @@ buildPythonPackage rec {
   buildInputs = with pkgs; [ acl ];
 
   meta = {
-    description = "A Python extension module for POSIX ACLs, it can be used to query, list, add, and remove ACLs from files and directories under operating systems that support them";
+    description = "Python extension module for POSIX ACLs, it can be used to query, list, add, and remove ACLs from files and directories under operating systems that support them";
     license = lib.licenses.lgpl21Plus;
   };
 }
diff --git a/pkgs/development/python-modules/pylibconfig2/default.nix b/pkgs/development/python-modules/pylibconfig2/default.nix
index 0742272543434..608bb4da583f3 100644
--- a/pkgs/development/python-modules/pylibconfig2/default.nix
+++ b/pkgs/development/python-modules/pylibconfig2/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pyparsing }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyparsing,
+}:
 buildPythonPackage rec {
   pname = "pylibconfig2";
   version = "0.2.5";
diff --git a/pkgs/development/python-modules/pylibdmtx/default.nix b/pkgs/development/python-modules/pylibdmtx/default.nix
index bf2c4815ec3a6..97037747a25b2 100644
--- a/pkgs/development/python-modules/pylibdmtx/default.nix
+++ b/pkgs/development/python-modules/pylibdmtx/default.nix
@@ -1,9 +1,10 @@
-{ fetchFromGitHub
-, buildPythonPackage
-, pillow
-, numpy
-, libdmtx
-, lib
+{
+  fetchFromGitHub,
+  buildPythonPackage,
+  pillow,
+  numpy,
+  libdmtx,
+  lib,
 }:
 
 buildPythonPackage rec {
@@ -35,7 +36,10 @@ buildPythonPackage rec {
     rm pylibdmtx/tests/test_dmtx_library.py
   '';
 
-  propagatedBuildInputs = [ pillow numpy ];
+  propagatedBuildInputs = [
+    pillow
+    numpy
+  ];
 
   pythonImportsCheck = [ "pylibdmtx" ];
 
diff --git a/pkgs/development/python-modules/pylibjpeg-libjpeg/default.nix b/pkgs/development/python-modules/pylibjpeg-libjpeg/default.nix
index 9040f955efb4f..892e24c621225 100644
--- a/pkgs/development/python-modules/pylibjpeg-libjpeg/default.nix
+++ b/pkgs/development/python-modules/pylibjpeg-libjpeg/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, cython
-, poetry-core
-, setuptools
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  cython,
+  poetry-core,
+  setuptools,
+  numpy,
 }:
 
 buildPythonPackage rec {
   pname = "pylibjpeg-libjpeg";
-  version = "2.02";
+  version = "2.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,32 +21,26 @@ buildPythonPackage rec {
     owner = "pydicom";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-mGwku19Xe605fF3UU59712rYp+s/pP79lBRl79fhhTI=";
+    hash = "sha256-iU40QdAY5931YM3h3P+WCbiBfX88iVi2QdUvZLptsFs=";
     fetchSubmodules = true;
   };
 
-  nativeBuildInputs = [
+  build-system = [
     cython
     poetry-core
     setuptools
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  dependencies = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  doCheck = false;  # tests try to import 'libjpeg.data', which errors
+  doCheck = false; # tests try to import 'libjpeg.data', which errors
 
-  pythonImportsCheck = [
-    "libjpeg"
-  ];
+  pythonImportsCheck = [ "libjpeg" ];
 
   meta = with lib; {
-    description = "A JPEG, JPEG-LS and JPEG XT plugin for pylibjpeg";
+    description = "JPEG, JPEG-LS and JPEG XT plugin for pylibjpeg";
     homepage = "https://github.com/pydicom/pylibjpeg-libjpeg";
     changelog = "https://github.com/pydicom/pylibjpeg-libjpeg/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/python-modules/pylibjpeg/default.nix b/pkgs/development/python-modules/pylibjpeg/default.nix
index 134b0ebdb993c..d19fcc9039afa 100644
--- a/pkgs/development/python-modules/pylibjpeg/default.nix
+++ b/pkgs/development/python-modules/pylibjpeg/default.nix
@@ -1,14 +1,15 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, flit-core
-, setuptools
-, numpy
-, pydicom
-, pylibjpeg-libjpeg
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  flit-core,
+  setuptools,
+  numpy,
+  pydicom,
+  pylibjpeg-libjpeg,
 }:
 
 let
diff --git a/pkgs/development/python-modules/pyliblo/default.nix b/pkgs/development/python-modules/pyliblo/default.nix
index 0735fdcb72160..9a6a3680d2bb6 100644
--- a/pkgs/development/python-modules/pyliblo/default.nix
+++ b/pkgs/development/python-modules/pyliblo/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchurl
-, isPyPy
-, pythonAtLeast
-, liblo
-, cython_0
+{
+  lib,
+  buildPythonPackage,
+  fetchurl,
+  isPyPy,
+  pythonAtLeast,
+  liblo,
+  cython_0,
 }:
 
 buildPythonPackage rec {
@@ -34,5 +35,4 @@ buildPythonPackage rec {
     description = "Python wrapper for the liblo OSC library";
     license = licenses.lgpl21Only;
   };
-
 }
diff --git a/pkgs/development/python-modules/pylibmc/default.nix b/pkgs/development/python-modules/pylibmc/default.nix
index 3cd7a05e54ba2..cb3d7d5902d22 100644
--- a/pkgs/development/python-modules/pylibmc/default.nix
+++ b/pkgs/development/python-modules/pylibmc/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, cyrus_sasl
-, fetchPypi
-, libmemcached
-, pythonOlder
-, zlib
+{
+  lib,
+  buildPythonPackage,
+  cyrus_sasl,
+  fetchPypi,
+  libmemcached,
+  pythonOlder,
+  zlib,
 }:
 
 buildPythonPackage rec {
@@ -25,16 +26,12 @@ buildPythonPackage rec {
     zlib
   ];
 
-  setupPyBuildFlags = [
-    "--with-sasl2"
-  ];
+  setupPyBuildFlags = [ "--with-sasl2" ];
 
   # Requires an external memcached server running
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pylibmc"
-  ];
+  pythonImportsCheck = [ "pylibmc" ];
 
   meta = with lib; {
     description = "Quick and small memcached client for Python";
diff --git a/pkgs/development/python-modules/pylink-square/default.nix b/pkgs/development/python-modules/pylink-square/default.nix
index 2903c0f8d5662..2e8121e0932f6 100644
--- a/pkgs/development/python-modules/pylink-square/default.nix
+++ b/pkgs/development/python-modules/pylink-square/default.nix
@@ -1,12 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchPypi
-, mock
-, psutil
-, pytestCheckHook
-, pythonOlder
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  psutil,
+  pytestCheckHook,
+  pythonOlder,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +33,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pylink"
-  ];
+  pythonImportsCheck = [ "pylink" ];
 
   disabledTests = [
     # AttributeError: 'called_once_with' is not a valid assertion
diff --git a/pkgs/development/python-modules/pylint-celery/default.nix b/pkgs/development/python-modules/pylint-celery/default.nix
index d89afecbaa11f..99ffa65d6cd70 100644
--- a/pkgs/development/python-modules/pylint-celery/default.nix
+++ b/pkgs/development/python-modules/pylint-celery/default.nix
@@ -1,10 +1,11 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, isPy3k
-, lib
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy3k,
+  lib,
 
-# pythonPackages
-, pylint-plugin-utils
+  # pythonPackages
+  pylint-plugin-utils,
 }:
 
 buildPythonPackage rec {
@@ -20,19 +21,15 @@ buildPythonPackage rec {
     sha256 = "05fhwraq12c2724pn4py1bjzy5rmsrb1x68zck73nlp5icba6yap";
   };
 
-  propagatedBuildInputs = [
-    pylint-plugin-utils
-  ];
+  propagatedBuildInputs = [ pylint-plugin-utils ];
 
   # Testing requires a very old version of pylint, incompatible with other dependencies
   doCheck = false;
 
   meta = with lib; {
-    description = "A Pylint plugin to analyze Celery applications";
+    description = "Pylint plugin to analyze Celery applications";
     homepage = "https://github.com/PyCQA/pylint-celery";
     license = licenses.gpl2;
-    maintainers = with maintainers; [
-      kamadorueda
-    ];
+    maintainers = with maintainers; [ kamadorueda ];
   };
 }
diff --git a/pkgs/development/python-modules/pylint-django/default.nix b/pkgs/development/python-modules/pylint-django/default.nix
index d3f22e8532ef9..cac67ca5051ae 100644
--- a/pkgs/development/python-modules/pylint-django/default.nix
+++ b/pkgs/development/python-modules/pylint-django/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, django
-, django-tables2
-, django-tastypie
-, factory-boy
-, fetchFromGitHub
-, poetry-core
-, pylint-plugin-utils
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  django,
+  django-tables2,
+  django-tastypie,
+  factory-boy,
+  fetchFromGitHub,
+  poetry-core,
+  pylint-plugin-utils,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,18 +26,12 @@ buildPythonPackage rec {
     hash = "sha256-MNgu3LvFoohXA+JzUiHIaYFw0ssEe+H5T8Ea56LcGuI=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    pylint-plugin-utils
-  ];
+  propagatedBuildInputs = [ pylint-plugin-utils ];
 
   passthru.optional-dependencies = {
-    with_django = [
-      django
-    ];
+    with_django = [ django ];
   };
 
   nativeCheckInputs = [
@@ -51,11 +46,11 @@ buildPythonPackage rec {
     "test_migrations_plugin"
     "func_noerror_model_unicode_lambda"
     "test_linter_should_be_pickleable_with_pylint_django_plugin_installed"
+    "func_noerror_model_fields"
+    "func_noerror_form_fields"
   ];
 
-  pythonImportsCheck = [
-    "pylint_django"
-  ];
+  pythonImportsCheck = [ "pylint_django" ];
 
   meta = with lib; {
     description = "Pylint plugin to analyze Django applications";
diff --git a/pkgs/development/python-modules/pylint-flask/default.nix b/pkgs/development/python-modules/pylint-flask/default.nix
index 0928e0bd07e13..375d1e1757745 100644
--- a/pkgs/development/python-modules/pylint-flask/default.nix
+++ b/pkgs/development/python-modules/pylint-flask/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, astroid
-, buildPythonPackage
-, fetchPypi
-, pylint
-, pylint-plugin-utils
-, pythonOlder
-, setuptools
+{
+  lib,
+  astroid,
+  buildPythonPackage,
+  fetchPypi,
+  pylint,
+  pylint-plugin-utils,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,13 +21,9 @@ buildPythonPackage rec {
     hash = "sha256-9Nl94iFr97/OB8nAixZul4/p8nJd4qUKmEWpfefjFRc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  buildInputs = [
-    pylint
-  ];
+  buildInputs = [ pylint ];
 
   propagatedBuildInputs = [
     astroid
@@ -37,12 +34,10 @@ buildPythonPackage rec {
   # also tests are only available at GitHub, with an old release tag
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pylint_flask"
-  ];
+  pythonImportsCheck = [ "pylint_flask" ];
 
   meta = with lib; {
-    description = "A Pylint plugin to analyze Flask applications";
+    description = "Pylint plugin to analyze Flask applications";
     homepage = "https://github.com/jschaf/pylint-flask";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ kamadorueda ];
diff --git a/pkgs/development/python-modules/pylint-plugin-utils/default.nix b/pkgs/development/python-modules/pylint-plugin-utils/default.nix
index 83315aed22a03..d6ddceb94cc96 100644
--- a/pkgs/development/python-modules/pylint-plugin-utils/default.nix
+++ b/pkgs/development/python-modules/pylint-plugin-utils/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pylint
-, pytestCheckHook
-, pythonOlder
-, toml
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pylint,
+  pytestCheckHook,
+  pythonOlder,
+  toml,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-xuPU1txfB+6+zJjtlfvNA950S5n7/PWPPFn1F3RtvCc=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     pylint
     toml
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pylint_plugin_utils"
-  ];
+  pythonImportsCheck = [ "pylint_plugin_utils" ];
 
   meta = with lib; {
     description = "Utilities and helpers for writing Pylint plugins";
diff --git a/pkgs/development/python-modules/pylint-venv/default.nix b/pkgs/development/python-modules/pylint-venv/default.nix
index b12ae73b8c34b..47d294f15317c 100644
--- a/pkgs/development/python-modules/pylint-venv/default.nix
+++ b/pkgs/development/python-modules/pylint-venv/default.nix
@@ -1,8 +1,9 @@
- { lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-dsVEHJawsTNKVCVmeOa61wOU5GPeyzAU/eUDFrK9PPg=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pylint_venv"
-  ];
+  pythonImportsCheck = [ "pylint_venv" ];
 
   meta = with lib; {
     description = "Module to make pylint respect virtual environments";
diff --git a/pkgs/development/python-modules/pylint/default.nix b/pkgs/development/python-modules/pylint/default.nix
index 046277a5fa586..01491a2a619ae 100644
--- a/pkgs/development/python-modules/pylint/default.nix
+++ b/pkgs/development/python-modules/pylint/default.nix
@@ -1,28 +1,29 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, astroid
-, dill
-, isort
-, mccabe
-, platformdirs
-, requests
-, setuptools
-, tomli
-, tomlkit
-, typing-extensions
-, gitpython
-, py
-, pytest-timeout
-, pytest-xdist
-, pytest7CheckHook
+{
+  lib,
+  stdenv,
+  astroid,
+  buildPythonPackage,
+  dill,
+  fetchFromGitHub,
+  gitpython,
+  isort,
+  mccabe,
+  platformdirs,
+  py,
+  pytest-timeout,
+  pytest-xdist,
+  pytest7CheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
+  tomli,
+  tomlkit,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "pylint";
-  version = "3.1.0";
+  version = "3.2.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -31,25 +32,22 @@ buildPythonPackage rec {
     owner = "pylint-dev";
     repo = "pylint";
     rev = "refs/tags/v${version}";
-    hash = "sha256-JHtMaZNwl+yLwEDD4Nl0vOt9NQ9DO7iIy5LR/9ta1Pw=";
+    hash = "sha256-J+68YwjVhaMPlvLCMI/BdnUCQPDYU9u0pIvOYlbzWvs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    astroid
-    dill
-    isort
-    mccabe
-    platformdirs
-    tomlkit
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    typing-extensions
-  ];
+  dependencies =
+    [
+      astroid
+      dill
+      isort
+      mccabe
+      platformdirs
+      tomlkit
+    ]
+    ++ lib.optionals (pythonOlder "3.11") [ tomli ]
+    ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ];
 
   nativeCheckInputs = [
     gitpython
@@ -67,7 +65,8 @@ buildPythonPackage rec {
     # displaying implemented interfaces in pylint 3.0. The
     # implementation relies on the '__implements__'  attribute proposed
     # in PEP 245, which was rejected in 2006.
-    "-W" "ignore::DeprecationWarning"
+    "-W"
+    "ignore::DeprecationWarning"
     "-v"
   ];
 
@@ -84,30 +83,32 @@ buildPythonPackage rec {
     "tests/pyreverse/test_writer.py"
   ];
 
-  disabledTests = [
-    # AssertionError when self executing and checking output
-    # expected output looks like it should match though
-    "test_invocation_of_pylint_config"
-    "test_generate_rcfile"
-    "test_generate_toml_config"
-    "test_help_msg"
-    "test_output_of_callback_options"
-    # Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emitted. The list of emitted warnings is: [].
-    "test_save_and_load_not_a_linter_stats"
-    # Truncated string expectation mismatch
-    "test_truncated_compare"
-    # Probably related to pytest versions, see pylint-dev/pylint#9477 and pylint-dev/pylint#9483
-    "test_functional"
-    # AssertionError: assert [('specializa..., 'Ancestor')] == [('aggregatio..., 'Ancestor')]
-    "test_functional_relation_extraction"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_parallel_execution"
-    "test_py3k_jobs_option"
-  ];
+  disabledTests =
+    [
+      # AssertionError when self executing and checking output
+      # expected output looks like it should match though
+      "test_invocation_of_pylint_config"
+      "test_generate_rcfile"
+      "test_generate_toml_config"
+      "test_help_msg"
+      "test_output_of_callback_options"
+      # Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emitted. The list of emitted warnings is: [].
+      "test_save_and_load_not_a_linter_stats"
+      # Truncated string expectation mismatch
+      "test_truncated_compare"
+      # Probably related to pytest versions, see pylint-dev/pylint#9477 and pylint-dev/pylint#9483
+      "test_functional"
+      # AssertionError: assert [('specializa..., 'Ancestor')] == [('aggregatio..., 'Ancestor')]
+      "test_functional_relation_extraction"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      "test_parallel_execution"
+      "test_py3k_jobs_option"
+    ];
 
   meta = with lib; {
+    description = "Bug and style checker for Python";
     homepage = "https://pylint.readthedocs.io/en/stable/";
-    description = "A bug and style checker for Python";
     changelog = "https://github.com/pylint-dev/pylint/releases/tag/v${version}";
     longDescription = ''
       Pylint is a Python static code analysis tool which looks for programming errors,
@@ -118,7 +119,7 @@ buildPythonPackage rec {
       - symilar: an independent similarities checker
       - epylint: Emacs and Flymake compatible Pylint
     '';
-    license = licenses.gpl1Plus;
+    license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pylion/default.nix b/pkgs/development/python-modules/pylion/default.nix
index 10cfd173b66de..92d6823ffe6d2 100644
--- a/pkgs/development/python-modules/pylion/default.nix
+++ b/pkgs/development/python-modules/pylion/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromBitbucket
-, h5py
-, termcolor
-, pexpect
-, jinja2
-, sphinxHook
-, sphinx-rtd-theme
+{
+  lib,
+  buildPythonPackage,
+  fetchFromBitbucket,
+  h5py,
+  termcolor,
+  pexpect,
+  jinja2,
+  sphinxHook,
+  sphinx-rtd-theme,
 }:
 
 buildPythonPackage {
@@ -47,7 +48,7 @@ buildPythonPackage {
   '';
 
   meta = with lib; {
-    description = "A LAMMPS wrapper for molecular dynamics simulations of trapped ions";
+    description = "LAMMPS wrapper for molecular dynamics simulations of trapped ions";
     homepage = "https://bitbucket.org/dtrypogeorgos/pylion";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/development/python-modules/pylitterbot/default.nix b/pkgs/development/python-modules/pylitterbot/default.nix
index add82ecc2d15f..dcd863d08bfcd 100644
--- a/pkgs/development/python-modules/pylitterbot/default.nix
+++ b/pkgs/development/python-modules/pylitterbot/default.nix
@@ -28,6 +28,8 @@ buildPythonPackage rec {
     hash = "sha256-MSQdX2PKQohmPGqtRZnUmCCVgKgaf4+cHAUItiPv7pY=";
   };
 
+  pythonRelaxDeps = [ "deepdiff" ];
+
   build-system = [
     poetry-core
     poetry-dynamic-versioning
diff --git a/pkgs/development/python-modules/pylnk3/default.nix b/pkgs/development/python-modules/pylnk3/default.nix
index 819c7d6c5a238..4bcb8547bd0d0 100644
--- a/pkgs/development/python-modules/pylnk3/default.nix
+++ b/pkgs/development/python-modules/pylnk3/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
-, twine
-, invoke
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  twine,
+  invoke,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,16 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-yu4BNvYai3iBVNyOfAOsLd5XrcFw8cR4arRyFJHKbpk=";
   };
 
-   propagatedBuildInputs = [
-     pytest
-     invoke
+  propagatedBuildInputs = [
+    pytest
+    invoke
   ];
   # There are no tests in pylnk3.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pylnk3"
-  ];
+  pythonImportsCheck = [ "pylnk3" ];
 
   meta = with lib; {
     description = "Python library for reading and writing Windows shortcut files (.lnk)";
diff --git a/pkgs/development/python-modules/pyloadapi/default.nix b/pkgs/development/python-modules/pyloadapi/default.nix
new file mode 100644
index 0000000000000..aec92117415c9
--- /dev/null
+++ b/pkgs/development/python-modules/pyloadapi/default.nix
@@ -0,0 +1,58 @@
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatch-regex-commit,
+  hatchling,
+  pytest-asyncio,
+  pytestCheckHook,
+  python-dotenv,
+  pythonOlder,
+}:
+
+buildPythonPackage rec {
+  pname = "pyloadapi";
+  version = "1.2.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.12";
+
+  src = fetchFromGitHub {
+    owner = "tr4nt0r";
+    repo = "pyloadapi";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-uOgqc1RqmEk0Lqz/ixlChKTZva7+0v4V8KutLSgPKEE=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "--cov=src/pyloadapi/ --cov-report=term-missing" ""
+  '';
+
+  build-system = [
+    hatch-regex-commit
+    hatchling
+  ];
+
+  dependencies = [ aiohttp ];
+
+  nativeCheckInputs = [
+    aioresponses
+    pytest-asyncio
+    pytestCheckHook
+    python-dotenv
+  ];
+
+  pythonImportsCheck = [ "pyloadapi" ];
+
+  meta = with lib; {
+    description = "Simple wrapper for pyLoad's API";
+    homepage = "https://github.com/tr4nt0r/pyloadapi";
+    changelog = "https://github.com/tr4nt0r/pyloadapi/blob/${version}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
+
diff --git a/pkgs/development/python-modules/pylpsd/default.nix b/pkgs/development/python-modules/pylpsd/default.nix
index c04d82c802762..f583391a0d432 100644
--- a/pkgs/development/python-modules/pylpsd/default.nix
+++ b/pkgs/development/python-modules/pylpsd/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, numpy
-, scipy
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  numpy,
+  scipy,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
 
   # Tests fail and there are none
   doCheck = false;
-  pythonImportsCheck = [
-    "pylpsd"
-  ];
+  pythonImportsCheck = [ "pylpsd" ];
 
   propagatedBuildInputs = [
     numpy
@@ -26,7 +25,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Python implementation of the LPSD algorithm for computing power spectral density with logarithmically spaced points.";
+    description = "Python implementation of the LPSD algorithm for computing power spectral density with logarithmically spaced points";
     homepage = "https://github.com/bleykauf/py-lpsd";
     license = licenses.mit;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/development/python-modules/pylru/default.nix b/pkgs/development/python-modules/pylru/default.nix
index a83f2fd3ad14e..d97af412e9390 100644
--- a/pkgs/development/python-modules/pylru/default.nix
+++ b/pkgs/development/python-modules/pylru/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,12 +23,10 @@ buildPythonPackage rec {
   # Check with the next release if tests are ready
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pylru"
-  ];
+  pythonImportsCheck = [ "pylru" ];
 
   meta = with lib; {
-    description = "A least recently used (LRU) cache implementation";
+    description = "Least recently used (LRU) cache implementation";
     homepage = "https://github.com/jlhutch/pylru";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ abbradar ];
diff --git a/pkgs/development/python-modules/pyls-flake8/default.nix b/pkgs/development/python-modules/pyls-flake8/default.nix
index 9f217aca39072..c8b8329797a60 100644
--- a/pkgs/development/python-modules/pyls-flake8/default.nix
+++ b/pkgs/development/python-modules/pyls-flake8/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flake8
-, python-lsp-server
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flake8,
+  python-lsp-server,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,11 +20,14 @@ buildPythonPackage rec {
     sha256 = "14wkmwh8mqr826vdzxhvhdwrnx2akzmnbv3ar391qs4imwqfjx3l";
   };
 
-  propagatedBuildInputs = [ flake8 python-lsp-server ];
+  propagatedBuildInputs = [
+    flake8
+    python-lsp-server
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/emanspeaks/pyls-flake8";
-    description = "A Flake8 plugin for the Python LSP Server.";
+    description = "Flake8 plugin for the Python LSP Server";
     license = licenses.mit;
     maintainers = with maintainers; [ cpcloud ];
   };
diff --git a/pkgs/development/python-modules/pyls-isort/default.nix b/pkgs/development/python-modules/pyls-isort/default.nix
index e42c4129e791f..795d094cbac73 100644
--- a/pkgs/development/python-modules/pyls-isort/default.nix
+++ b/pkgs/development/python-modules/pyls-isort/default.nix
@@ -1,5 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, python-lsp-server, isort
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python-lsp-server,
+  isort,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +24,8 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyls_isort" ];
 
   propagatedBuildInputs = [
-    isort python-lsp-server
+    isort
+    python-lsp-server
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pyls-memestra/default.nix b/pkgs/development/python-modules/pyls-memestra/default.nix
index 312479d223d77..2ad742ac9f78e 100644
--- a/pkgs/development/python-modules/pyls-memestra/default.nix
+++ b/pkgs/development/python-modules/pyls-memestra/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, deprecated
-, memestra
-, python-lsp-server
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  deprecated,
+  memestra,
+  python-lsp-server,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
   # Tests fail because they rely on writting to read-only files
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyls_memestra"
-  ];
+  pythonImportsCheck = [ "pyls_memestra" ];
 
   meta = with lib; {
     description = "Memestra plugin for the Python Language Server";
diff --git a/pkgs/development/python-modules/pyls-spyder/default.nix b/pkgs/development/python-modules/pyls-spyder/default.nix
index d6da0c2925968..e86ddcc60338d 100644
--- a/pkgs/development/python-modules/pyls-spyder/default.nix
+++ b/pkgs/development/python-modules/pyls-spyder/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python-lsp-server
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python-lsp-server,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     sha256 = "11ajbsia60d4c9s6m6rbvaqp1d69fcdbq6a98lkzkkzv2b9pdhkk";
   };
 
-  propagatedBuildInputs = [
-    python-lsp-server
-  ];
+  propagatedBuildInputs = [ python-lsp-server ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "pyls_spyder" ];
 
diff --git a/pkgs/development/python-modules/pylsp-mypy/default.nix b/pkgs/development/python-modules/pylsp-mypy/default.nix
index e93e244063414..3f787714bb33d 100644
--- a/pkgs/development/python-modules/pylsp-mypy/default.nix
+++ b/pkgs/development/python-modules/pylsp-mypy/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, mypy
-, pytestCheckHook
-, python-lsp-server
-, pythonOlder
-, tomli
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  mypy,
+  pytestCheckHook,
+  python-lsp-server,
+  pythonOlder,
+  tomli,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-oEWUXkE8U7/ye6puJZRSkQFi10BPGuc8XZQbHwqOPEI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     mypy
@@ -33,13 +32,9 @@ buildPythonPackage rec {
     tomli
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pylsp_mypy"
-  ];
+  pythonImportsCheck = [ "pylsp_mypy" ];
 
   disabledTests = [
     # Tests wants to call dmypy
diff --git a/pkgs/development/python-modules/pylsp-rope/default.nix b/pkgs/development/python-modules/pylsp-rope/default.nix
index 22776d4dc6afc..9556670a85c11 100644
--- a/pkgs/development/python-modules/pylsp-rope/default.nix
+++ b/pkgs/development/python-modules/pylsp-rope/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, rope
-, pytestCheckHook
-, python-lsp-server
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  rope,
+  pytestCheckHook,
+  python-lsp-server,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +25,9 @@ buildPythonPackage rec {
     python-lsp-server
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pylsp_rope"
-  ];
+  pythonImportsCheck = [ "pylsp_rope" ];
 
   meta = with lib; {
     description = "Extended refactoring capabilities for Python LSP Server using Rope";
diff --git a/pkgs/development/python-modules/pylsqpack/default.nix b/pkgs/development/python-modules/pylsqpack/default.nix
index f1e595f88b472..e36214b2206cd 100644
--- a/pkgs/development/python-modules/pylsqpack/default.nix
+++ b/pkgs/development/python-modules/pylsqpack/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     hash = "sha256-Ra5V5yGHdQX01czUlZHWk1PypUioZz36+yUdOFs8CX8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/pylti/default.nix b/pkgs/development/python-modules/pylti/default.nix
deleted file mode 100644
index a4f4abcb73042..0000000000000
--- a/pkgs/development/python-modules/pylti/default.nix
+++ /dev/null
@@ -1,53 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, httplib2
-, oauth
-, oauth2
-, semantic-version
-, flask
-, httpretty
-, oauthlib
-, pyflakes
-, pytest
-, pytestcache
-, pytest-cov
-, cov-core
-, pytest-flakes
-, sphinx
-, mock
-, chalice
-, isPy27
-}:
-
-buildPythonPackage rec {
-  pname = "pylti";
-  version = "0.7.0";
-  format = "setuptools";
-
-  disabled = !isPy27;
-
-  # There is no need to fix mock. https://github.com/mitodl/pylti/pull/48
-  postPatch = ''
-    substituteInPlace setup.py --replace "mock==1.0.1" "mock"
-  '';
-
-  propagatedBuildInputs = [ httplib2 oauth oauth2 semantic-version ];
-  nativeCheckInputs = [
-    flask httpretty oauthlib pyflakes pytest pytestcache pytest-cov cov-core
-    pytest-flakes sphinx mock chalice
-  ];
-
-  src = fetchPypi {
-    pname = "PyLTI";
-    inherit version;
-    sha256 = "80938a235b1ab390f6889a95237d087ea7adde5cc50fcae9c80c49898e8ee78e";
-  };
-
-  meta = {
-    description = "Implementation of IMS LTI interface that works with edX";
-    homepage = "https://github.com/mitodl/pylti";
-    license = lib.licenses.bsdOriginal;
-    maintainers = with lib.maintainers; [ layus ];
-  };
-}
diff --git a/pkgs/development/python-modules/pylutron-caseta/default.nix b/pkgs/development/python-modules/pylutron-caseta/default.nix
index 0abbd2eaa5172..6dd8695330c70 100644
--- a/pkgs/development/python-modules/pylutron-caseta/default.nix
+++ b/pkgs/development/python-modules/pylutron-caseta/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, click
-, cryptography
-, fetchFromGitHub
-, hatchling
-, pytest-asyncio
-, pytest-timeout
-, pytestCheckHook
-, pythonOlder
-, xdg
-, zeroconf
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  click,
+  cryptography,
+  fetchFromGitHub,
+  hatchling,
+  pytest-asyncio,
+  pytest-timeout,
+  pytestCheckHook,
+  pythonOlder,
+  xdg,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
@@ -27,15 +28,9 @@ buildPythonPackage rec {
     hash = "sha256-7uUNLlVrMEgah2YvTECC4S2WArAQjeAyfgDd62sQsYA=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = [
-    cryptography
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    async-timeout
-  ];
+  propagatedBuildInputs = [ cryptography ] ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
 
   passthru.optional-dependencies = {
     cli = [
@@ -49,17 +44,11 @@ buildPythonPackage rec {
     pytest-asyncio
     pytest-timeout
     pytestCheckHook
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    async-timeout
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
 
-  pytestFlagsArray = [
-    "--asyncio-mode=auto"
-  ];
+  pytestFlagsArray = [ "--asyncio-mode=auto" ];
 
-  pythonImportsCheck = [
-    "pylutron_caseta"
-  ];
+  pythonImportsCheck = [ "pylutron_caseta" ];
 
   meta = with lib; {
     description = "Python module o control Lutron Caseta devices";
diff --git a/pkgs/development/python-modules/pylutron/default.nix b/pkgs/development/python-modules/pylutron/default.nix
index 49ee5e278485e..f486b45c6798f 100644
--- a/pkgs/development/python-modules/pylutron/default.nix
+++ b/pkgs/development/python-modules/pylutron/default.nix
@@ -1,34 +1,34 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pylutron";
-  version = "0.2.12";
+  version = "0.2.13";
   pyproject = true;
 
+  disabled = pythonOlder "3.7";
+
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-UTn4HfyiyQAekIZD4I5lacYb7ySRhW8OUgiOg33JZtQ=";
+    hash = "sha256-s5qprIVPlq495XWKjgIuohDzPV0EfU43zkfQ2DvH04Y=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pylutron"
-  ];
+  pythonImportsCheck = [ "pylutron" ];
 
   meta = with lib; {
-    changelog = "https://github.com/thecynic/pylutron/releases/tag/${version}";
     description = "Python library for controlling a Lutron RadioRA 2 system";
     homepage = "https://github.com/thecynic/pylutron";
+    changelog = "https://github.com/thecynic/pylutron/releases/tag/${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/pylxd/default.nix b/pkgs/development/python-modules/pylxd/default.nix
index 3d94d0db35996..048822ad976e1 100644
--- a/pkgs/development/python-modules/pylxd/default.nix
+++ b/pkgs/development/python-modules/pylxd/default.nix
@@ -1,19 +1,19 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, ddt
-, fetchFromGitHub
-, mock-services
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, requests
-, urllib3
-, pythonRelaxDepsHook
-, requests-toolbelt
-, requests-unixsocket
-, setuptools
-, ws4py
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  ddt,
+  fetchFromGitHub,
+  mock-services,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  requests,
+  urllib3,
+  requests-toolbelt,
+  requests-unixsocket,
+  setuptools,
+  ws4py,
 }:
 
 buildPythonPackage rec {
@@ -30,12 +30,9 @@ buildPythonPackage rec {
     hash = "sha256-Q4GMz7HFpJNPYlYgLhE0a7mVCwNpdbw4XVcUGQ2gUJ0=";
   };
 
-  pythonRelaxDeps = [
-    "urllib3"
-  ];
+  pythonRelaxDeps = [ "urllib3" ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -60,9 +57,7 @@ buildPythonPackage rec {
     "migration"
   ];
 
-  pythonImportsCheck = [
-    "pylxd"
-  ];
+  pythonImportsCheck = [ "pylxd" ];
 
   meta = with lib; {
     description = "Library for interacting with the LXD REST API";
diff --git a/pkgs/development/python-modules/pylyrics/default.nix b/pkgs/development/python-modules/pylyrics/default.nix
index 26530cabf401c..00b9776380bba 100644
--- a/pkgs/development/python-modules/pylyrics/default.nix
+++ b/pkgs/development/python-modules/pylyrics/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, beautifulsoup4, requests }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  beautifulsoup4,
+  requests,
+}:
 
 buildPythonPackage rec {
   pname = "pylyrics";
@@ -23,7 +29,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Pythonic Implementation of lyrics.wikia.com for getting lyrics of songs ";
+    description = "Pythonic Implementation of lyrics.wikia.com for getting lyrics of songs ";
     homepage = "https://github.com/geekpradd/PyLyrics";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/pylzma/default.nix b/pkgs/development/python-modules/pylzma/default.nix
index aa39989449945..bd0ba29d90d10 100644
--- a/pkgs/development/python-modules/pylzma/default.nix
+++ b/pkgs/development/python-modules/pylzma/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "pylzma";
diff --git a/pkgs/development/python-modules/pymacaroons/default.nix b/pkgs/development/python-modules/pymacaroons/default.nix
index 2950e71020dbb..3abfa6431e06e 100644
--- a/pkgs/development/python-modules/pymacaroons/default.nix
+++ b/pkgs/development/python-modules/pymacaroons/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, six, pynacl }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  pynacl,
+}:
 
 buildPythonPackage rec {
   pname = "pymacaroons";
diff --git a/pkgs/development/python-modules/pymailgunner/default.nix b/pkgs/development/python-modules/pymailgunner/default.nix
index 6b1b03cebf345..7e5a5bd5d8c47 100644
--- a/pkgs/development/python-modules/pymailgunner/default.nix
+++ b/pkgs/development/python-modules/pymailgunner/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-QKwpW1aeN6OI76Kocow1Zhghq4/fl/cMPexny0MTwQs=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pymailgunner"
-  ];
+  pythonImportsCheck = [ "pymailgunner" ];
 
   meta = with lib; {
     description = "Library for interacting with Mailgun e-mail service";
diff --git a/pkgs/development/python-modules/pymanopt/default.nix b/pkgs/development/python-modules/pymanopt/default.nix
index d6fbdacf4650d..019d107e23429 100644
--- a/pkgs/development/python-modules/pymanopt/default.nix
+++ b/pkgs/development/python-modules/pymanopt/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, numpy
-, scipy
-, torch
-, autograd
-, matplotlib
-, pytestCheckHook
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  numpy,
+  scipy,
+  torch,
+  autograd,
+  matplotlib,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,8 +22,16 @@ buildPythonPackage rec {
     hash = "sha256-pDFRYhswcuAHG9pcqvzXIy3Ivhxe5R5Ric7AFRh7MK4=";
   };
 
-  propagatedBuildInputs = [ numpy scipy torch ];
-  nativeCheckInputs = [ autograd matplotlib pytestCheckHook ];
+  propagatedBuildInputs = [
+    numpy
+    scipy
+    torch
+  ];
+  nativeCheckInputs = [
+    autograd
+    matplotlib
+    pytestCheckHook
+  ];
 
   preCheck = ''
     substituteInPlace "tests/conftest.py" \
diff --git a/pkgs/development/python-modules/pymarshal/default.nix b/pkgs/development/python-modules/pymarshal/default.nix
index 755c03501e562..b9ec633afb10d 100644
--- a/pkgs/development/python-modules/pymarshal/default.nix
+++ b/pkgs/development/python-modules/pymarshal/default.nix
@@ -1,18 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, bson
-, pytestCheckHook
-, pyyaml
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  bson,
+  pytestCheckHook,
+  pyyaml,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pymarshal";
   version = "2.2.0";
   format = "setuptools";
-  disabled = pythonOlder "3.0";
 
   src = fetchFromGitHub {
     owner = "stargateaudio";
@@ -28,13 +27,9 @@ buildPythonPackage rec {
       --replace "--cov=pymarshal --cov-report=html --cov-report=term" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    bson
-  ];
+  propagatedBuildInputs = [ bson ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/pymata-express/default.nix b/pkgs/development/python-modules/pymata-express/default.nix
index 47475845198a4..d516ba9b38e79 100644
--- a/pkgs/development/python-modules/pymata-express/default.nix
+++ b/pkgs/development/python-modules/pymata-express/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyserial
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyserial,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "1mibyn84kjahrv3kn51yl5mhkyig4piv6wanggzjflh5nm96bhy8";
   };
 
-  propagatedBuildInputs = [
-    pyserial
-  ];
+  propagatedBuildInputs = [ pyserial ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/pymatgen/default.nix b/pkgs/development/python-modules/pymatgen/default.nix
index 59981da7e7809..c1758da4db8e8 100644
--- a/pkgs/development/python-modules/pymatgen/default.nix
+++ b/pkgs/development/python-modules/pymatgen/default.nix
@@ -32,7 +32,7 @@
 
 buildPythonPackage rec {
   pname = "pymatgen";
-  version = "2024.4.13";
+  version = "2024.5.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     owner = "materialsproject";
     repo = "pymatgen";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vjasWQgwjtoM/6Y1HwK1otMFejRWEj+YBxaIYDDSeeo=";
+    hash = "sha256-ZMOZ4eFtIaIcBPGT6bgAV+47LEGWAAnF/ml68j0fXws=";
   };
 
   build-system = [ setuptools ];
@@ -107,7 +107,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pymatgen" ];
 
   meta = with lib; {
-    description = "A robust materials analysis code that defines core object representations for structures and molecules";
+    description = "Robust materials analysis code that defines core object representations for structures and molecules";
     homepage = "https://pymatgen.org/";
     changelog = "https://github.com/materialsproject/pymatgen/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pymatreader/default.nix b/pkgs/development/python-modules/pymatreader/default.nix
index 484797381fa91..486e88a313a48 100644
--- a/pkgs/development/python-modules/pymatreader/default.nix
+++ b/pkgs/development/python-modules/pymatreader/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitLab
-, setuptools
-, h5py
-, numpy
-, scipy
-, xmltodict
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitLab,
+  setuptools,
+  h5py,
+  numpy,
+  scipy,
+  xmltodict,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,14 +31,12 @@ buildPythonPackage rec {
     xmltodict
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "pymatreader" ];
 
   meta = with lib; {
-    description = "A python package to read all kinds and all versions of Matlab mat files";
+    description = "Python package to read all kinds and all versions of Matlab mat files";
     homepage = "https://gitlab.com/obob/pymatreader/";
     changelog = "https://gitlab.com/obob/pymatreader/-/blob/${src.rev}/CHANGELOG.md";
     license = licenses.bsd2;
diff --git a/pkgs/development/python-modules/pymatting/default.nix b/pkgs/development/python-modules/pymatting/default.nix
index 371a4a03c2f38..46c2ee9bd2dfa 100644
--- a/pkgs/development/python-modules/pymatting/default.nix
+++ b/pkgs/development/python-modules/pymatting/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numba
-, numpy
-, pillow
-, pytestCheckHook
-, scipy
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numba,
+  numpy,
+  pillow,
+  pytestCheckHook,
+  scipy,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-wHCTqcBvVN/pTXH3iW57DPpMEsnehutRQB5NaugS6Zs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     numba
@@ -32,13 +31,9 @@ buildPythonPackage rec {
     scipy
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pymatting"
-  ];
+  pythonImportsCheck = [ "pymatting" ];
 
   disabledTests = [
     # no access to input data set
@@ -50,11 +45,10 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python library for alpha matting";
+    description = "Python library for alpha matting";
     homepage = "https://github.com/pymatting/pymatting";
     changelog = "https://github.com/pymatting/pymatting/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ blaggacao ];
   };
 }
-
diff --git a/pkgs/development/python-modules/pymaven-patch/default.nix b/pkgs/development/python-modules/pymaven-patch/default.nix
index 4d98ded89637b..357c1f96f3188 100644
--- a/pkgs/development/python-modules/pymaven-patch/default.nix
+++ b/pkgs/development/python-modules/pymaven-patch/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pbr
-, requests
-, six
-, lxml
-, pytestCheckHook
-, pytest-cov
-, mock
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pbr,
+  requests,
+  six,
+  lxml,
+  pytestCheckHook,
+  pytest-cov,
+  mock,
 }:
 buildPythonPackage rec {
   pname = "pymaven-patch";
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     mock
   ];
 
-  pythonImportsCheck = [
-    "pymaven"
-  ];
+  pythonImportsCheck = [ "pymaven" ];
 
   meta = with lib; {
     description = "Python access to maven";
diff --git a/pkgs/development/python-modules/pymavlink/default.nix b/pkgs/development/python-modules/pymavlink/default.nix
index 93f68ad6b216b..beb8ab6461ef3 100644
--- a/pkgs/development/python-modules/pymavlink/default.nix
+++ b/pkgs/development/python-modules/pymavlink/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, future, lxml }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  future,
+  lxml,
+}:
 
 buildPythonPackage rec {
   pname = "pymavlink";
@@ -10,7 +16,10 @@ buildPythonPackage rec {
     hash = "sha256-7TIlzphdBhA6qyUa/Ig9BKmKHW21xzmV595MqssfZs0=";
   };
 
-  propagatedBuildInputs = [ future lxml ];
+  propagatedBuildInputs = [
+    future
+    lxml
+  ];
 
   # No tests included in PyPI tarball. We cannot use the GitHub tarball because
   # we would like to use the same commit of the mavlink messages repo as
@@ -23,7 +32,10 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python MAVLink interface and utilities";
     homepage = "https://github.com/ArduPilot/pymavlink";
-    license = with licenses; [ lgpl3Plus mit ];
+    license = with licenses; [
+      lgpl3Plus
+      mit
+    ];
     maintainers = with maintainers; [ lopsided98 ];
   };
 }
diff --git a/pkgs/development/python-modules/pymbolic/default.nix b/pkgs/development/python-modules/pymbolic/default.nix
index de9b8e9ae14c5..a5d2063c2b6b2 100644
--- a/pkgs/development/python-modules/pymbolic/default.nix
+++ b/pkgs/development/python-modules/pymbolic/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, matchpy
-, pytestCheckHook
-, pythonOlder
-, pytools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  matchpy,
+  pytestCheckHook,
+  pythonOlder,
+  pytools,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
-    pytools
-  ];
+  propagatedBuildInputs = [ pytools ];
 
   nativeCheckInputs = [
     matchpy
@@ -43,12 +42,10 @@ buildPythonPackage rec {
         --replace '"pytest>=2.3",' ""
   '';
 
-  pythonImportsCheck = [
-    "pymbolic"
-  ];
+  pythonImportsCheck = [ "pymbolic" ];
 
   meta = with lib; {
-    description = "A package for symbolic computation";
+    description = "Package for symbolic computation";
     homepage = "https://documen.tician.de/pymbolic/";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/pymc/default.nix b/pkgs/development/python-modules/pymc/default.nix
index 947aaa4241861..7064d03607847 100644
--- a/pkgs/development/python-modules/pymc/default.nix
+++ b/pkgs/development/python-modules/pymc/default.nix
@@ -1,22 +1,24 @@
-{ lib
-, arviz
-, buildPythonPackage
-, cachetools
-, cloudpickle
-, fetchFromGitHub
-, numpy
-, pandas
-, pytensor
-, pythonOlder
-, rich
-, scipy
-, setuptools
-, typing-extensions
+{
+  lib,
+  arviz,
+  buildPythonPackage,
+  cachetools,
+  cloudpickle,
+  fetchFromGitHub,
+  numpy,
+  pandas,
+  pytensor,
+  pythonOlder,
+  rich,
+  scipy,
+  setuptools,
+  threadpoolctl,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "pymc";
-  version = "5.14.0";
+  version = "5.15.1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -25,7 +27,7 @@ buildPythonPackage rec {
     owner = "pymc-devs";
     repo = "pymc";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ZVGMzkStKSPLgBoyzA8SOvsof7QRR7TLmLhh5NmD/F8=";
+    hash = "sha256-TAQv3BNSYt750JSZWQibjqzhQ0zXOJDVENMharjr6gQ=";
   };
 
   postPatch = ''
@@ -33,9 +35,7 @@ buildPythonPackage rec {
       --replace-fail ', "pytest-cov"' ""
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     arviz
@@ -46,6 +46,7 @@ buildPythonPackage rec {
     pytensor
     rich
     scipy
+    threadpoolctl
     typing-extensions
   ];
 
@@ -53,15 +54,16 @@ buildPythonPackage rec {
   # indicative for package usability hence tests are disabled by default.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pymc"
-  ];
+  pythonImportsCheck = [ "pymc" ];
 
-  meta = with lib; {
+  meta = {
     description = "Bayesian estimation, particularly using Markov chain Monte Carlo (MCMC)";
     homepage = "https://github.com/pymc-devs/pymc";
     changelog = "https://github.com/pymc-devs/pymc/releases/tag/v${version}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ nidabdella ferrine ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [
+      nidabdella
+      ferrine
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pymdown-extensions/default.nix b/pkgs/development/python-modules/pymdown-extensions/default.nix
index 733f124d36553..627d5ad562dcf 100644
--- a/pkgs/development/python-modules/pymdown-extensions/default.nix
+++ b/pkgs/development/python-modules/pymdown-extensions/default.nix
@@ -1,17 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, pytestCheckHook
-, markdown
-, pyyaml
-, pygments
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch2,
+  hatchling,
+  pytestCheckHook,
+  markdown,
+  pyyaml,
+  pygments,
 
-# for passthru.tests
-, mkdocstrings
-, mkdocs-material
-, mkdocs-mermaid2-plugin
-, hydrus
+  # for passthru.tests
+  mkdocstrings,
+  mkdocs-material,
+  mkdocs-mermaid2-plugin,
+  hydrus,
 }:
 
 let
@@ -44,19 +46,30 @@ let
 in
 buildPythonPackage rec {
   pname = "pymdown-extensions";
-  version = "10.7.1";
-  format = "pyproject";
+  version = "10.8.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "facelessuser";
     repo = "pymdown-extensions";
     rev = "refs/tags/${version}";
-    hash = "sha256-P2MkGD0B9mn34ia3Kd4MQej1XryNVXWVMF4JHaPTS0M=";
+    hash = "sha256-No0RDBgr40xSOiKXQRLRZnMdV+5i4eM8Jwp7c2Jw/ZY=";
   };
 
-  nativeBuildInputs = [ hatchling ];
+  patches = [
+    (fetchpatch2 {
+      name = "pymdown-extensions-pygments-compat.patch";
+      url = "https://github.com/facelessuser/pymdown-extensions/commit/f1e2fad862c9738e420b8451dfdfbd9e90e849fc.patch";
+      hash = "sha256-ENYTRXBJ76VPhhab8MdOh+bkcQNRklXT3thvPi+gHIY=";
+    })
+  ];
+
+  build-system = [ hatchling ];
 
-  propagatedBuildInputs = [ markdown pygments ];
+  dependencies = [
+    markdown
+    pygments
+  ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -71,13 +84,21 @@ buildPythonPackage rec {
   pythonImportsCheck = map (ext: "pymdownx.${ext}") extensions;
 
   passthru.tests = {
-    inherit mkdocstrings mkdocs-material mkdocs-mermaid2-plugin hydrus;
+    inherit
+      mkdocstrings
+      mkdocs-material
+      mkdocs-mermaid2-plugin
+      hydrus
+      ;
   };
 
   meta = with lib; {
     description = "Extensions for Python Markdown";
     homepage = "https://facelessuser.github.io/pymdown-extensions/";
-    license = with licenses; [ mit bsd2 ];
+    license = with licenses; [
+      mit
+      bsd2
+    ];
     maintainers = with maintainers; [ cpcloud ];
   };
 }
diff --git a/pkgs/development/python-modules/pymdstat/default.nix b/pkgs/development/python-modules/pymdstat/default.nix
index ced572b7b36d0..ecc913b075b14 100644
--- a/pkgs/development/python-modules/pymdstat/default.nix
+++ b/pkgs/development/python-modules/pymdstat/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -23,7 +24,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pymdstat" ];
 
   meta = with lib; {
-    description = "A pythonic library to parse Linux /proc/mdstat file";
+    description = "Pythonic library to parse Linux /proc/mdstat file";
     homepage = "https://github.com/nicolargo/pymdstat";
     maintainers = with maintainers; [ rhoriguchi ];
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pymediainfo/default.nix b/pkgs/development/python-modules/pymediainfo/default.nix
index c65e6d0e14873..f60c8ed5fcfd0 100644
--- a/pkgs/development/python-modules/pymediainfo/default.nix
+++ b/pkgs/development/python-modules/pymediainfo/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, stdenv
-, fetchPypi
-, buildPythonPackage
-, libmediainfo
-, setuptools-scm
-, pytest
-, glibcLocales
-, pythonOlder
+{
+  lib,
+  stdenv,
+  fetchPypi,
+  buildPythonPackage,
+  libmediainfo,
+  setuptools-scm,
+  pytest,
+  glibcLocales,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
                 "${libmediainfo}/lib/libmediainfo${stdenv.hostPlatform.extensions.sharedLibrary}.0"
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   nativeCheckInputs = [
     glibcLocales
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     py.test -k 'not test_parse_url' tests
   '';
 
-  pythonImportsCheck = [
-    "pymediainfo"
-  ];
+  pythonImportsCheck = [ "pymediainfo" ];
 
   meta = with lib; {
     description = "Python wrapper for the mediainfo library";
diff --git a/pkgs/development/python-modules/pymediaroom/default.nix b/pkgs/development/python-modules/pymediaroom/default.nix
index 744ef3d02e2b3..8702da9fb97bd 100644
--- a/pkgs/development/python-modules/pymediaroom/default.nix
+++ b/pkgs/development/python-modules/pymediaroom/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, xmltodict
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pymedio/default.nix b/pkgs/development/python-modules/pymedio/default.nix
index 36673b071e61d..29ca1baddc069 100644
--- a/pkgs/development/python-modules/pymedio/default.nix
+++ b/pkgs/development/python-modules/pymedio/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, cryptography
-, nibabel
-, numpy
-, pydicom
-, simpleitk
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  cryptography,
+  nibabel,
+  numpy,
+  pydicom,
+  simpleitk,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-x3CHoWASDrUoCXfj73NF+0Y/3Mb31dK2Lh+o4OD9ryk=";
   };
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -36,9 +35,7 @@ buildPythonPackage rec {
     simpleitk
   ];
 
-  pythonImportsCheck = [
-    "pymedio"
-  ];
+  pythonImportsCheck = [ "pymedio" ];
 
   meta = with lib; {
     description = "Read medical image files into Numpy arrays";
diff --git a/pkgs/development/python-modules/pymeeus/default.nix b/pkgs/development/python-modules/pymeeus/default.nix
index 8799de9232457..4178c593aa0bc 100644
--- a/pkgs/development/python-modules/pymeeus/default.nix
+++ b/pkgs/development/python-modules/pymeeus/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pytest7CheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pytest7CheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,9 @@ buildPythonPackage rec {
     hash = "sha256-VI9xhr2LlsvAac9kmo6ON33OSax0SGcJhJ/mOpnK1oQ=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytest7CheckHook
-  ];
+  nativeCheckInputs = [ pytest7CheckHook ];
 
   meta = with lib; {
     homepage = "https://github.com/architest/pymeeus";
diff --git a/pkgs/development/python-modules/pymelcloud/default.nix b/pkgs/development/python-modules/pymelcloud/default.nix
index ad4e529c528ab..d859da4ff22ac 100644
--- a/pkgs/development/python-modules/pymelcloud/default.nix
+++ b/pkgs/development/python-modules/pymelcloud/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, asynctest
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  asynctest,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     sha256 = "1q6ny58cn9qy86blxbk6l2iklab7y11b734l7yb1bp35dmy27w26";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   doCheck = pythonOlder "3.11"; # asynctest is unsupported on python3.11
 
@@ -34,9 +33,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pymelcloud"
-  ];
+  pythonImportsCheck = [ "pymelcloud" ];
 
   meta = with lib; {
     description = "Python module for interacting with MELCloud";
diff --git a/pkgs/development/python-modules/pymemcache/default.nix b/pkgs/development/python-modules/pymemcache/default.nix
index 74784a35ff953..829d3863f304d 100644
--- a/pkgs/development/python-modules/pymemcache/default.nix
+++ b/pkgs/development/python-modules/pymemcache/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, faker
-, fetchFromGitHub
-, mock
-, six
-, pytestCheckHook
-, python-memcached
-, pythonOlder
-, zstd
-, stdenv
+{
+  lib,
+  buildPythonPackage,
+  faker,
+  fetchFromGitHub,
+  mock,
+  six,
+  pytestCheckHook,
+  python-memcached,
+  pythonOlder,
+  zstd,
+  stdenv,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-WgtHhp7lE6StoOBfSy9+v3ODe/+zUC7lGrc2S4M68+M=";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   nativeCheckInputs = [
     faker
@@ -48,9 +47,7 @@ buildPythonPackage rec {
     "test_compressed_complex"
   ];
 
-  pythonImportsCheck = [
-    "pymemcache"
-  ];
+  pythonImportsCheck = [ "pymemcache" ];
 
   meta = with lib; {
     description = "Python memcached client";
diff --git a/pkgs/development/python-modules/pymemoize/default.nix b/pkgs/development/python-modules/pymemoize/default.nix
index 14f2fc39aa9e7..064c93931e63b 100644
--- a/pkgs/development/python-modules/pymemoize/default.nix
+++ b/pkgs/development/python-modules/pymemoize/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, django
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  django,
 }:
 
 buildPythonPackage rec {
@@ -27,4 +28,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ mmai ];
   };
 }
-
diff --git a/pkgs/development/python-modules/pyment/default.nix b/pkgs/development/python-modules/pyment/default.nix
index f3077acdd2ced..1628f723aa700 100644
--- a/pkgs/development/python-modules/pyment/default.nix
+++ b/pkgs/development/python-modules/pyment/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "pyment";
diff --git a/pkgs/development/python-modules/pymeta3/default.nix b/pkgs/development/python-modules/pymeta3/default.nix
index f0350c4153b74..ba5c244ea49bd 100644
--- a/pkgs/development/python-modules/pymeta3/default.nix
+++ b/pkgs/development/python-modules/pymeta3/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
 }:
 buildPythonPackage rec {
   pname = "pymeta3";
@@ -15,15 +16,16 @@ buildPythonPackage rec {
 
   doCheck = false; # Tests do not support Python3
 
-  pythonImportsCheck = [
-    "pymeta"
-  ];
+  pythonImportsCheck = [ "pymeta" ];
 
   meta = with lib; {
     description = "Pattern-matching language based on OMeta for Python 3 and 2";
     homepage = "https://github.com/wbond/pymeta3";
     changelog = "https://github.com/wbond/pymeta3/releases/tag/${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ jfly matusf ];
+    maintainers = with maintainers; [
+      jfly
+      matusf
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pymetar/default.nix b/pkgs/development/python-modules/pymetar/default.nix
index 70bf0a4f8142a..3d4ba5a05089e 100644
--- a/pkgs/development/python-modules/pymetar/default.nix
+++ b/pkgs/development/python-modules/pymetar/default.nix
@@ -1,4 +1,10 @@
-{ lib, python, buildPythonPackage, isPy3k, fetchPypi }:
+{
+  lib,
+  python,
+  buildPythonPackage,
+  isPy3k,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "pymetar";
@@ -23,7 +29,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A command-line tool to show the weather report by a given station ID";
+    description = "Command-line tool to show the weather report by a given station ID";
     mainProgram = "pymetar";
     homepage = "https://github.com/klausman/pymetar";
     license = licenses.gpl2Plus;
diff --git a/pkgs/development/python-modules/pymeteireann/default.nix b/pkgs/development/python-modules/pymeteireann/default.nix
index be85e6a5e008c..e3d251f99d73f 100644
--- a/pkgs/development/python-modules/pymeteireann/default.nix
+++ b/pkgs/development/python-modules/pymeteireann/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, pytz
-, xmltodict
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytz,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pymeteoclimatic/default.nix b/pkgs/development/python-modules/pymeteoclimatic/default.nix
index 6b17c943d142e..6ecba40d21445 100644
--- a/pkgs/development/python-modules/pymeteoclimatic/default.nix
+++ b/pkgs/development/python-modules/pymeteoclimatic/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchFromGitHub
-, lxml
-, pythonOlder
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxml,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-rP0+OYDnQ4GuoV7DzR6jtgH6ilTMLjdaEFJcz3L0GYQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     beautifulsoup4
     lxml
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "meteoclimatic"
-  ];
+  pythonImportsCheck = [ "meteoclimatic" ];
 
   meta = with lib; {
     description = "Python wrapper around the Meteoclimatic service";
diff --git a/pkgs/development/python-modules/pymetno/default.nix b/pkgs/development/python-modules/pymetno/default.nix
index 4e16030d95759..7c6d63bf2e54d 100644
--- a/pkgs/development/python-modules/pymetno/default.nix
+++ b/pkgs/development/python-modules/pymetno/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, aiohttp
-, async-timeout
-, xmltodict
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  aiohttp,
+  async-timeout,
+  xmltodict,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,15 +28,13 @@ buildPythonPackage rec {
     xmltodict
   ];
 
-  pythonImportsCheck = [
-    "metno"
-  ];
+  pythonImportsCheck = [ "metno" ];
 
   # Project has no tests
   doCheck = false;
 
   meta = with lib; {
-    description = "A library to communicate with the met.no API";
+    description = "Library to communicate with the met.no API";
     homepage = "https://github.com/Danielhiversen/pyMetno/";
     changelog = "https://github.com/Danielhiversen/pyMetno/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pymfy/default.nix b/pkgs/development/python-modules/pymfy/default.nix
index 5600db81b1d15..3e71ac6fbb841 100644
--- a/pkgs/development/python-modules/pymfy/default.nix
+++ b/pkgs/development/python-modules/pymfy/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, httpretty
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-oauthlib
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpretty,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-oauthlib,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     sha256 = "0wpjwjmywfyqgwvfa5kwcjpaljc32qa088kk88nl9nqdvc31mzhv";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     requests
@@ -37,9 +36,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pymfy"
-  ];
+  pythonImportsCheck = [ "pymfy" ];
 
   meta = with lib; {
     description = "Python client for the Somfy Open API";
diff --git a/pkgs/development/python-modules/pymicrobot/default.nix b/pkgs/development/python-modules/pymicrobot/default.nix
index 22581f493b73b..88360e0a65ed5 100644
--- a/pkgs/development/python-modules/pymicrobot/default.nix
+++ b/pkgs/development/python-modules/pymicrobot/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, bleak
-, bleak-retry-connector
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
+{
+  lib,
+  bleak,
+  bleak-retry-connector,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-8Nkkgznt4JzImJSAbdaX6znhvmgqwOIBjAXVhaMorLk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     bleak
@@ -32,9 +31,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "microbot"
-  ];
+  pythonImportsCheck = [ "microbot" ];
 
   meta = with lib; {
     description = "Library to communicate with MicroBot";
diff --git a/pkgs/development/python-modules/pymiele/default.nix b/pkgs/development/python-modules/pymiele/default.nix
index db951d6d7a990..745b83cb7f875 100644
--- a/pkgs/development/python-modules/pymiele/default.nix
+++ b/pkgs/development/python-modules/pymiele/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-nlilHcBdWpCIknhE/RRvcmuz1waNdmcPt++Vi3amvHg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -31,9 +30,7 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pymiele"
-  ];
+  pythonImportsCheck = [ "pymiele" ];
 
   meta = with lib; {
     changelog = "https://github.com/astrandb/pymiele/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/pymilter/default.nix b/pkgs/development/python-modules/pymilter/default.nix
index be0ee9bd2bc45..6f0c4291d4d50 100644
--- a/pkgs/development/python-modules/pymilter/default.nix
+++ b/pkgs/development/python-modules/pymilter/default.nix
@@ -1,19 +1,37 @@
-{ lib, python, buildPythonPackage, fetchFromGitHub, libmilter, bsddb3, pydns, iana-etc, libredirect }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  libmilter,
+  berkeleydb,
+  pydns,
+  iana-etc,
+  libredirect,
+  pyasyncore,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "pymilter";
-  version = "1.0.5";
-  format = "setuptools";
+  version = "1.0.6";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "sdgathman";
-    repo = pname;
-    rev = "${pname}-${version}";
-    hash = "sha256-gZUWEDVZfDRiOOdG3lpiQldHxm/93l8qYVOHOEpHhzQ=";
+    repo = "pymilter";
+    rev = "refs/tags/pymilter-${version}";
+    hash = "sha256-plaWXwDAIsVzEtrabZuZj7T4WNfz2ntQHgcMCVf5S70=";
   };
 
+  build-system = [
+    setuptools
+  ];
   buildInputs = [ libmilter ];
-  propagatedBuildInputs = [ bsddb3 pydns ];
+  nativeCheckInputs = [ pyasyncore ];
+  dependencies = [
+    berkeleydb
+    pydns
+  ];
 
   preBuild = ''
     sed -i 's/import thread/import _thread as thread/' Milter/greylist.py
diff --git a/pkgs/development/python-modules/pymilvus/default.nix b/pkgs/development/python-modules/pymilvus/default.nix
index e0a68e2a43859..c9f706ca4a959 100644
--- a/pkgs/development/python-modules/pymilvus/default.nix
+++ b/pkgs/development/python-modules/pymilvus/default.nix
@@ -1,22 +1,22 @@
-{ lib
-, buildPythonPackage
-, environs
-, fetchFromGitHub
-, gitpython
-, grpcio
-, grpcio-testing
-, minio
-, mmh3
-, pandas
-, pyarrow
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
-, scikit-learn
-, setuptools-scm
-, ujson
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  environs,
+  fetchFromGitHub,
+  gitpython,
+  grpcio,
+  grpcio-testing,
+  minio,
+  mmh3,
+  pandas,
+  pyarrow,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  scikit-learn,
+  setuptools-scm,
+  ujson,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -40,7 +40,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     gitpython
-    pythonRelaxDepsHook
     setuptools-scm
     wheel
   ];
@@ -62,13 +61,9 @@ buildPythonPackage rec {
     scikit-learn
   ];
 
-  pythonImportsCheck = [
-    "pymilvus"
-  ];
+  pythonImportsCheck = [ "pymilvus" ];
 
-  disabledTests = [
-    "test_get_commit"
-  ];
+  disabledTests = [ "test_get_commit" ];
 
   meta = with lib; {
     description = "Python SDK for Milvus";
diff --git a/pkgs/development/python-modules/pymitv/default.nix b/pkgs/development/python-modules/pymitv/default.nix
index 98d3a88e97b95..a5f14cbfebfc8 100644
--- a/pkgs/development/python-modules/pymitv/default.nix
+++ b/pkgs/development/python-modules/pymitv/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pymongo-inmemory/default.nix b/pkgs/development/python-modules/pymongo-inmemory/default.nix
index 6447b0a7ffe94..431b08d76af22 100644
--- a/pkgs/development/python-modules/pymongo-inmemory/default.nix
+++ b/pkgs/development/python-modules/pymongo-inmemory/default.nix
@@ -1,16 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, pymongo
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  pymongo,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "pymongo-inmemory";
-  version = "0.4.1";
+  version = "0.4.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "kaizendorks";
     repo = "pymongo_inmemory";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vYWVMSawk+03ie3PtqOyzd6wxiviq+IzyQ8bvEHNHfc=";
+    hash = "sha256-FDHHf9x62EqNcHjDF2vH8w8WG/15efEe+fDqGiiOe4A=";
   };
 
   postPatch = ''
@@ -36,17 +36,11 @@ buildPythonPackage rec {
         'os.makedirs(current_path)'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  dependencies = [
-    pymongo
-  ];
+  dependencies = [ pymongo ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # new test with insufficient monkey patching, try to remove on next bump
@@ -57,13 +51,11 @@ buildPythonPackage rec {
     export HOME="$(mktemp -d)"
   '';
 
-  pythonImportsCheck = [
-    "pymongo_inmemory"
-  ];
+  pythonImportsCheck = [ "pymongo_inmemory" ];
 
   meta = {
     homepage = "https://github.com/kaizendorks/pymongo_inmemory";
-    description = "A mongo mocking library with an ephemeral MongoDB running in memory";
+    description = "Mongo mocking library with an ephemeral MongoDB running in memory";
     maintainers = with lib.maintainers; [ pbsds ];
     license = lib.licenses.mit;
   };
diff --git a/pkgs/development/python-modules/pymongo/default.nix b/pkgs/development/python-modules/pymongo/default.nix
index 1ca7ca08ad501..0f504b00cd75d 100644
--- a/pkgs/development/python-modules/pymongo/default.nix
+++ b/pkgs/development/python-modules/pymongo/default.nix
@@ -1,33 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, dnspython
-
-# for passthru.tests
-, celery  # check-input only
-, flask-pymongo
-, kombu  # check-input only
-, mongoengine
-, motor
-, pymongo-inmemory
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  dnspython,
+
+  # for passthru.tests
+  celery, # check-input only
+  flask-pymongo,
+  kombu, # check-input only
+  mongoengine,
+  motor,
+  pymongo-inmemory,
 }:
 
 buildPythonPackage rec {
   pname = "pymongo";
-  version = "4.6.3";
+  version = "4.7.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-QAB0CQuaYx8SC0LGGyIv10NJDBM6XS+ZwCCM78zMlk4=";
+    hash = "sha256-Y1SmayKPLNOZvnQpaF+2jgfxkRCjZ5eC7LT9to2gODE=";
   };
 
-  propagatedBuildInputs = [
-    dnspython
-  ];
+  propagatedBuildInputs = [ dnspython ];
 
   # Tests call a running mongodb instance
   doCheck = false;
@@ -42,7 +41,7 @@ buildPythonPackage rec {
       mongoengine
       motor
       pymongo-inmemory
-    ;
+      ;
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pymoo/default.nix b/pkgs/development/python-modules/pymoo/default.nix
index 64858b1e076e6..eaaec885e53fb 100644
--- a/pkgs/development/python-modules/pymoo/default.nix
+++ b/pkgs/development/python-modules/pymoo/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pytestCheckHook
-, writeText
-, autograd
-, cma
-, cython
-, deprecated
-, dill
-, matplotlib
-, nbformat
-, notebook
-, numba
-, numpy
-, pandas
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pytestCheckHook,
+  writeText,
+  autograd,
+  cma,
+  cython,
+  deprecated,
+  dill,
+  matplotlib,
+  nbformat,
+  notebook,
+  numba,
+  numpy,
+  pandas,
+  scipy,
 }:
 
 buildPythonPackage rec {
@@ -56,9 +57,7 @@ buildPythonPackage rec {
                 "print('Missing alive_progress needed for progress=True!') if progress else None"
   '';
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
   propagatedBuildInputs = [
     autograd
     cma
@@ -82,16 +81,14 @@ buildPythonPackage rec {
     numba
   ];
   # Select some lightweight tests
-  pytestFlagsArray = [
-    "-m 'not long'"
-  ];
+  pytestFlagsArray = [ "-m 'not long'" ];
   disabledTests = [
     # ModuleNotFoundError: No module named 'pymoo.cython.non_dominated_sorting'
     "test_fast_non_dominated_sorting"
     "test_efficient_non_dominated_sort"
   ];
   # Avoid crashing sandboxed build on macOS
-  MATPLOTLIBRC=writeText "" ''
+  MATPLOTLIBRC = writeText "" ''
     backend: Agg
   '';
 
diff --git a/pkgs/development/python-modules/pymorphy2/default.nix b/pkgs/development/python-modules/pymorphy2/default.nix
index 57b843e54590f..ee9e7daa80c3d 100644
--- a/pkgs/development/python-modules/pymorphy2/default.nix
+++ b/pkgs/development/python-modules/pymorphy2/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, isPy3k
-, dawg-python
-, docopt
-, pymorphy2-dicts-ru
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  isPy3k,
+  dawg-python,
+  docopt,
+  pymorphy2-dicts-ru,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pymorphy2/dicts-ru.nix b/pkgs/development/python-modules/pymorphy2/dicts-ru.nix
index ac1f9f980bef3..fd9f2c5e7e878 100644
--- a/pkgs/development/python-modules/pymorphy2/dicts-ru.nix
+++ b/pkgs/development/python-modules/pymorphy2/dicts-ru.nix
@@ -1,6 +1,7 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pymorphy3/default.nix b/pkgs/development/python-modules/pymorphy3/default.nix
index eea5aa474634f..a09350f05eb17 100644
--- a/pkgs/development/python-modules/pymorphy3/default.nix
+++ b/pkgs/development/python-modules/pymorphy3/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, click
-, dawg-python
-, docopt
-, pytestCheckHook
-, pymorphy3-dicts-ru
-, pymorphy3-dicts-uk
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  click,
+  dawg-python,
+  docopt,
+  pytestCheckHook,
+  pymorphy3-dicts-ru,
+  pymorphy3-dicts-uk,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +29,9 @@ buildPythonPackage rec {
     pymorphy3-dicts-uk
   ];
 
-  optional-dependencies.CLI = [
-    click
-  ];
+  optional-dependencies.CLI = [ click ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ optional-dependencies.CLI;
+  nativeCheckInputs = [ pytestCheckHook ] ++ optional-dependencies.CLI;
 
   pythonImportsCheck = [ "pymorphy3" ];
 
diff --git a/pkgs/development/python-modules/pymorphy3/dicts-ru.nix b/pkgs/development/python-modules/pymorphy3/dicts-ru.nix
index db32d092a30c2..6206a0cfe472d 100644
--- a/pkgs/development/python-modules/pymorphy3/dicts-ru.nix
+++ b/pkgs/development/python-modules/pymorphy3/dicts-ru.nix
@@ -1,6 +1,7 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pymorphy3/dicts-uk.nix b/pkgs/development/python-modules/pymorphy3/dicts-uk.nix
index 036bf452b893c..62260cbc262d1 100644
--- a/pkgs/development/python-modules/pymorphy3/dicts-uk.nix
+++ b/pkgs/development/python-modules/pymorphy3/dicts-uk.nix
@@ -1,6 +1,7 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pympler/default.nix b/pkgs/development/python-modules/pympler/default.nix
index 388fba817f780..b75c7e8b5af16 100644
--- a/pkgs/development/python-modules/pympler/default.nix
+++ b/pkgs/development/python-modules/pympler/default.nix
@@ -1,10 +1,12 @@
-{ lib, stdenv
-, bottle
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, pytestCheckHook
-, pythonAtLeast
+{
+  lib,
+  stdenv,
+  bottle,
+  buildPythonPackage,
+  fetchpatch,
+  fetchPypi,
+  pytestCheckHook,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -28,27 +30,25 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # There is a version of bottle bundled with Pympler, but it is broken on
   # Python 3.11. Fortunately, Pympler will preferentially import an external
   # bottle if it is available, so we make it an explicit dependency.
-  propagatedBuildInputs = [
-    bottle
-  ];
-
-  disabledTests = [
-    # 'AssertionError: 'function (test.muppy.test_summary.func)' != 'function (muppy.test_summary.func)'
-    # https://github.com/pympler/pympler/issues/134
-    "test_repr_function"
-  ] ++ lib.optionals (pythonAtLeast "3.11") [
-    # https://github.com/pympler/pympler/issues/148
-    "test_findgarbage"
-    "test_get_tree"
-    "test_prune"
-  ];
+  propagatedBuildInputs = [ bottle ];
+
+  disabledTests =
+    [
+      # 'AssertionError: 'function (test.muppy.test_summary.func)' != 'function (muppy.test_summary.func)'
+      # https://github.com/pympler/pympler/issues/134
+      "test_repr_function"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.11") [
+      # https://github.com/pympler/pympler/issues/148
+      "test_findgarbage"
+      "test_get_tree"
+      "test_prune"
+    ];
 
   doCheck = stdenv.hostPlatform.isLinux;
 
@@ -57,5 +57,4 @@ buildPythonPackage rec {
     homepage = "https://pythonhosted.org/Pympler/";
     license = licenses.asl20;
   };
-
 }
diff --git a/pkgs/development/python-modules/pymsgbox/default.nix b/pkgs/development/python-modules/pymsgbox/default.nix
index c05533638e655..d33838cf5c849 100644
--- a/pkgs/development/python-modules/pymsgbox/default.nix
+++ b/pkgs/development/python-modules/pymsgbox/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchPypi, buildPythonPackage, tkinter }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  tkinter,
+}:
 
 buildPythonPackage rec {
   pname = "pymsgbox";
@@ -17,7 +22,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pymsgbox" ];
 
   meta = with lib; {
-    description = "A simple, cross-platform, pure Python module for JavaScript-like message boxes";
+    description = "Simple, cross-platform, pure Python module for JavaScript-like message boxes";
     homepage = "https://github.com/asweigart/PyMsgBox";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jluttine ];
diff --git a/pkgs/development/python-modules/pymsteams/default.nix b/pkgs/development/python-modules/pymsteams/default.nix
index 3672ce6285759..d4b9156a66b61 100644
--- a/pkgs/development/python-modules/pymsteams/default.nix
+++ b/pkgs/development/python-modules/pymsteams/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-H1AEjUnEK+seKsnFnHpn1/aHxXcbyz67NbzhlGDtbk4=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Tests require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pymsteams"
-  ];
+  pythonImportsCheck = [ "pymsteams" ];
 
   meta = with lib; {
     description = "Python module to interact with Microsoft Teams";
diff --git a/pkgs/development/python-modules/pymumble/default.nix b/pkgs/development/python-modules/pymumble/default.nix
index 9b89805d5f40c..bc15652d7027e 100644
--- a/pkgs/development/python-modules/pymumble/default.nix
+++ b/pkgs/development/python-modules/pymumble/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, opuslib
-, protobuf
-, pytestCheckHook
-, pycrypto
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  opuslib,
+  protobuf,
+  pytestCheckHook,
+  pycrypto,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pymunk/default.nix b/pkgs/development/python-modules/pymunk/default.nix
index f649f9bba0ad6..cb23141284d79 100644
--- a/pkgs/development/python-modules/pymunk/default.nix
+++ b/pkgs/development/python-modules/pymunk/default.nix
@@ -1,12 +1,13 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, python
-, cffi
-, pytestCheckHook
-, pythonOlder
-, ApplicationServices
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  cffi,
+  pytestCheckHook,
+  pythonOlder,
+  ApplicationServices,
 }:
 
 buildPythonPackage rec {
@@ -22,29 +23,19 @@ buildPythonPackage rec {
     hash = "sha256-AV6upaZcnbKmQm9tTItRB6LpckappjdHvMH/awn/KeE=";
   };
 
-  propagatedBuildInputs = [
-    cffi
-  ];
+  propagatedBuildInputs = [ cffi ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
-    ApplicationServices
-  ];
+  buildInputs = lib.optionals stdenv.isDarwin [ ApplicationServices ];
 
   preBuild = ''
     ${python.pythonOnBuildForHost.interpreter} setup.py build_ext --inplace
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "pymunk/tests"
-  ];
+  pytestFlagsArray = [ "pymunk/tests" ];
 
-  pythonImportsCheck = [
-    "pymunk"
-  ];
+  pythonImportsCheck = [ "pymunk" ];
 
   meta = with lib; {
     description = "2d physics library";
diff --git a/pkgs/development/python-modules/pymupdf/default.nix b/pkgs/development/python-modules/pymupdf/default.nix
index f225524e7e18b..dd3026712a441 100644
--- a/pkgs/development/python-modules/pymupdf/default.nix
+++ b/pkgs/development/python-modules/pymupdf/default.nix
@@ -1,31 +1,32 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, python
-
-# build-system
-, libclang
-, psutil
-, setuptools
-, swig
-
-# native dependencies
-, freetype
-, harfbuzz
-, openjpeg
-, jbig2dec
-, libjpeg_turbo
-, gumbo
-, memstreamHook
-
-# dependencies
-, mupdf
-
-# tests
-, fonttools
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  python,
+
+  # build-system
+  libclang,
+  psutil,
+  setuptools,
+  swig,
+
+  # native dependencies
+  freetype,
+  harfbuzz,
+  openjpeg,
+  jbig2dec,
+  libjpeg_turbo,
+  gumbo,
+  memstreamHook,
+
+  # dependencies
+  mupdf,
+
+  # tests
+  fonttools,
+  pytestCheckHook,
 }:
 
 let
@@ -36,7 +37,8 @@ let
     enablePython = true;
     python3 = python;
   };
-in buildPythonPackage rec {
+in
+buildPythonPackage rec {
   pname = "pymupdf";
   version = "1.23.26";
   pyproject = true;
@@ -72,13 +74,9 @@ in buildPythonPackage rec {
     jbig2dec
     libjpeg_turbo
     gumbo
-  ] ++ lib.optionals (stdenv.system == "x86_64-darwin") [
-    memstreamHook
-  ];
+  ] ++ lib.optionals (stdenv.system == "x86_64-darwin") [ memstreamHook ];
 
-  propagatedBuildInputs = [
-    mupdf-cxx
-  ];
+  propagatedBuildInputs = [ mupdf-cxx ];
 
   env = {
     # force using system MuPDF (must be defined in environment and empty)
@@ -104,69 +102,71 @@ in buildPythonPackage rec {
     export PATH="$PATH:$out/bin";
   '';
 
-  disabledTests = [
-    # fails for indeterminate reasons
-    "test_2548"
-    "test_2753"
-    "test_3020"
-    "test_3050"
-    "test_3058"
-    "test_3177"
-    "test_3186"
-    "test_color_count"
-    "test_pilsave"
-    "test_fz_write_pixmap_as_jpeg"
-    # NotImplementedError
-    "test_1824"
-    "test_2093"
-    "test_2093"
-    "test_2108"
-    "test_2182"
-    "test_2182"
-    "test_2246"
-    "test_2270"
-    "test_2270"
-    "test_2391"
-    "test_2788"
-    "test_2861"
-    "test_2871"
-    "test_2886"
-    "test_2904"
-    "test_2922"
-    "test_2934"
-    "test_2957"
-    "test_2969"
-    "test_3070"
-    "test_3131"
-    "test_3140"
-    "test_3209"
-    "test_3209"
-    "test_caret"
-    "test_deletion"
-    "test_file_info"
-    "test_line"
-    "test_page_links_generator"
-    "test_polyline"
-    "test_redact"
-    "test_techwriter_append"
-    "test_text2"
-    # Issue with FzArchive
-    "test_htmlbox"
-    "test_2246"
-    "test_3140"
-    "test_fit_springer"
-    "test_write_stabilized_with_links"
-    "test_textbox"
-    "test_delete_image"
-    # Fonts not available
-    "test_fontarchive"
-    "test_subset_fonts"
-    # Exclude lint tests
-    "test_flake8"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # darwin does not support OCR right now
-    "test_tesseract"
-  ];
+  disabledTests =
+    [
+      # fails for indeterminate reasons
+      "test_2548"
+      "test_2753"
+      "test_3020"
+      "test_3050"
+      "test_3058"
+      "test_3177"
+      "test_3186"
+      "test_color_count"
+      "test_pilsave"
+      "test_fz_write_pixmap_as_jpeg"
+      # NotImplementedError
+      "test_1824"
+      "test_2093"
+      "test_2093"
+      "test_2108"
+      "test_2182"
+      "test_2182"
+      "test_2246"
+      "test_2270"
+      "test_2270"
+      "test_2391"
+      "test_2788"
+      "test_2861"
+      "test_2871"
+      "test_2886"
+      "test_2904"
+      "test_2922"
+      "test_2934"
+      "test_2957"
+      "test_2969"
+      "test_3070"
+      "test_3131"
+      "test_3140"
+      "test_3209"
+      "test_3209"
+      "test_caret"
+      "test_deletion"
+      "test_file_info"
+      "test_line"
+      "test_page_links_generator"
+      "test_polyline"
+      "test_redact"
+      "test_techwriter_append"
+      "test_text2"
+      # Issue with FzArchive
+      "test_htmlbox"
+      "test_2246"
+      "test_3140"
+      "test_fit_springer"
+      "test_write_stabilized_with_links"
+      "test_textbox"
+      "test_delete_image"
+      # Fonts not available
+      "test_fontarchive"
+      "test_subset_fonts"
+      # Exclude lint tests
+      "test_flake8"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # darwin does not support OCR right now
+      "test_tesseract"
+    ];
 
   disabledTestPaths = [
     # Issue with FzArchive
diff --git a/pkgs/development/python-modules/pymvglive/default.nix b/pkgs/development/python-modules/pymvglive/default.nix
index dc58ba668692b..acd4676499a89 100644
--- a/pkgs/development/python-modules/pymvglive/default.nix
+++ b/pkgs/development/python-modules/pymvglive/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, requests }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+}:
 
 buildPythonPackage rec {
   pname = "pymvglive";
diff --git a/pkgs/development/python-modules/pymysensors/default.nix b/pkgs/development/python-modules/pymysensors/default.nix
index ee8c5be2a60a6..df42f2a4cc373 100644
--- a/pkgs/development/python-modules/pymysensors/default.nix
+++ b/pkgs/development/python-modules/pymysensors/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, awesomeversion
-, buildPythonPackage
-, click
-, crcmod
-, fetchFromGitHub
-, getmac
-, intelhex
-, paho-mqtt
-, pyserial
-, pyserial-asyncio
-, pytest-sugar
-, pytest-timeout
-, pytestCheckHook
-, pythonOlder
-, voluptuous
+{
+  lib,
+  awesomeversion,
+  buildPythonPackage,
+  click,
+  crcmod,
+  fetchFromGitHub,
+  getmac,
+  intelhex,
+  paho-mqtt,
+  pyserial,
+  pyserial-asyncio,
+  pytest-sugar,
+  pytest-timeout,
+  pytestCheckHook,
+  pythonOlder,
+  voluptuous,
 }:
 
 buildPythonPackage rec {
@@ -42,9 +43,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    mqtt-client = [
-      paho-mqtt
-    ];
+    mqtt-client = [ paho-mqtt ];
   };
 
   nativeCheckInputs = [
@@ -53,9 +52,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "mysensors"
-  ];
+  pythonImportsCheck = [ "mysensors" ];
 
   meta = with lib; {
     description = "Python API for talking to a MySensors gateway";
diff --git a/pkgs/development/python-modules/pymysql/default.nix b/pkgs/development/python-modules/pymysql/default.nix
index 1b5a00c27ac13..be019c73f1855 100644
--- a/pkgs/development/python-modules/pymysql/default.nix
+++ b/pkgs/development/python-modules/pymysql/default.nix
@@ -1,24 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, cryptography
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  cryptography,
 }:
 
 buildPythonPackage rec {
   pname = "pymysql";
-  version = "1.1.0";
+  version = "1.1.1";
   pyproject = true;
 
   src = fetchPypi {
-    pname = "PyMySQL";
+    pname = "pymysql";
     inherit version;
-    hash = "sha256-TxOn34vzalHoHdnzYF/t5FpIeP4C+SNjSf2Co/BhL5Y=";
+    hash = "sha256-4SdhGq8rQXQDxgv03FcBJK60pX9fN7jpWuOZpC+QTNA=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   propagatedBuildInputs = [ cryptography ];
 
diff --git a/pkgs/development/python-modules/pymysqlsa/default.nix b/pkgs/development/python-modules/pymysqlsa/default.nix
index 49b5a49193de2..9d1609d506ca5 100644
--- a/pkgs/development/python-modules/pymysqlsa/default.nix
+++ b/pkgs/development/python-modules/pymysqlsa/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pymysql
-, sqlalchemy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pymysql,
+  sqlalchemy,
 }:
 
 buildPythonPackage rec {
@@ -15,12 +16,14 @@ buildPythonPackage rec {
     sha256 = "a2676bce514a29b2d6ab418812259b0c2f7564150ac53455420a20bd7935314a";
   };
 
-  propagatedBuildInputs = [ pymysql sqlalchemy ];
+  propagatedBuildInputs = [
+    pymysql
+    sqlalchemy
+  ];
 
   meta = with lib; {
     description = "PyMySQL dialect for SQL Alchemy";
     homepage = "https://pypi.python.org/pypi/pymysql_sa";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/pymystem3/default.nix b/pkgs/development/python-modules/pymystem3/default.nix
index 9ffb4bcdedae6..0dd0b329acd0e 100644
--- a/pkgs/development/python-modules/pymystem3/default.nix
+++ b/pkgs/development/python-modules/pymystem3/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, isPy3k
-, requests
-, flake8
-, mock
-, pytest
-, mystem
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  isPy3k,
+  requests,
+  flake8,
+  mock,
+  pytest,
+  mystem,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,11 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ requests ];
-  nativeCheckInputs = [ flake8 mock pytest ];
+  nativeCheckInputs = [
+    flake8
+    mock
+    pytest
+  ];
   doCheck = isPy3k; # fails on linting
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pynac/default.nix b/pkgs/development/python-modules/pynac/default.nix
index 45fb25f7315a1..0a5e1257a94c8 100644
--- a/pkgs/development/python-modules/pynac/default.nix
+++ b/pkgs/development/python-modules/pynac/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchurl
+{
+  lib,
+  buildPythonPackage,
+  fetchurl,
 }:
 
 buildPythonPackage {
@@ -15,8 +16,7 @@ buildPythonPackage {
 
   meta = with lib; {
     homepage = "https://github.com/se-esss-litterbox/Pynac";
-    description = "A Python wrapper around the Dynac charged particle simulator";
+    description = "Python wrapper around the Dynac charged particle simulator";
     license = licenses.gpl3;
   };
-
 }
diff --git a/pkgs/development/python-modules/pynacl/default.nix b/pkgs/development/python-modules/pynacl/default.nix
index bd92adf250113..5db76ccd3d97d 100644
--- a/pkgs/development/python-modules/pynacl/default.nix
+++ b/pkgs/development/python-modules/pynacl/default.nix
@@ -1,19 +1,23 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, sphinxHook
-, pythonOlder
-, libsodium
-, cffi
-, hypothesis
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  sphinxHook,
+  pythonOlder,
+  libsodium,
+  cffi,
+  hypothesis,
 }:
 
 buildPythonPackage rec {
   pname = "pynacl";
   version = "1.5.0";
-  outputs = [ "out" "doc" ];
+  outputs = [
+    "out"
+    "doc"
+  ];
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -24,21 +28,13 @@ buildPythonPackage rec {
     sha256 = "8ac7448f09ab85811607bdd21ec2464495ac8b7c66d146bf545b0f08fb9220ba";
   };
 
-  nativeBuildInputs = [
-    sphinxHook
-  ];
+  nativeBuildInputs = [ sphinxHook ];
 
-  buildInputs = [
-    libsodium
-  ];
+  buildInputs = [ libsodium ];
 
-  propagatedNativeBuildInputs = [
-    cffi
-  ];
+  propagatedNativeBuildInputs = [ cffi ];
 
-  propagatedBuildInputs = [
-    cffi
-  ];
+  propagatedBuildInputs = [ cffi ];
 
   nativeCheckInputs = [
     hypothesis
@@ -47,9 +43,7 @@ buildPythonPackage rec {
 
   SODIUM_INSTALL = "system";
 
-  pythonImportsCheck = [
-    "nacl"
-  ];
+  pythonImportsCheck = [ "nacl" ];
 
   meta = with lib; {
     description = "Python binding to the Networking and Cryptography (NaCl) library";
diff --git a/pkgs/development/python-modules/pynamecheap/default.nix b/pkgs/development/python-modules/pynamecheap/default.nix
index 3c05dd30eb1ea..adf63d29af72f 100644
--- a/pkgs/development/python-modules/pynamecheap/default.nix
+++ b/pkgs/development/python-modules/pynamecheap/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "Namecheap API client in Python.";
+    description = "Namecheap API client in Python";
     homepage = "https://github.com/Bemmu/PyNamecheap";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/pynamodb/default.nix b/pkgs/development/python-modules/pynamodb/default.nix
index d22ed78e02d1a..e7d6803b288e8 100644
--- a/pkgs/development/python-modules/pynamodb/default.nix
+++ b/pkgs/development/python-modules/pynamodb/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, blinker
-, botocore
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-env
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  blinker,
+  botocore,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-env,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -25,20 +26,12 @@ buildPythonPackage rec {
     hash = "sha256-Ag/ivZ2SDYX0kwXbExt3kE/pMJgfoGc6gWoy+Rr6GTw=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    botocore
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    typing-extensions
-  ];
+  dependencies = [ botocore ] ++ lib.optionals (pythonOlder "3.11") [ typing-extensions ];
 
   optional-dependencies = {
-    signal = [
-      blinker
-    ];
+    signal = [ blinker ];
   };
 
   nativeCheckInputs = [
@@ -47,9 +40,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ optional-dependencies.signal;
 
-  pythonImportsCheck = [
-    "pynamodb"
-  ];
+  pythonImportsCheck = [ "pynamodb" ];
 
   disabledTests = [
     # Tests requires credentials or network access
diff --git a/pkgs/development/python-modules/pynanoleaf/default.nix b/pkgs/development/python-modules/pynanoleaf/default.nix
index 443865d8eaad6..892900c118ba5 100644
--- a/pkgs/development/python-modules/pynanoleaf/default.nix
+++ b/pkgs/development/python-modules/pynanoleaf/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, requests }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  requests,
+}:
 
 buildPythonPackage rec {
   pname = "pynanoleaf";
@@ -17,13 +23,11 @@ buildPythonPackage rec {
   # pynanoleaf does not contain tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pynanoleaf"
-  ];
+  pythonImportsCheck = [ "pynanoleaf" ];
 
   meta = with lib; {
     homepage = "https://github.com/Oro/pynanoleaf";
-    description = "A Python3 wrapper for the Nanoleaf API, capable of controlling both Nanoleaf Aurora and Nanoleaf Canvas";
+    description = "Python3 wrapper for the Nanoleaf API, capable of controlling both Nanoleaf Aurora and Nanoleaf Canvas";
     license = licenses.mit;
     maintainers = with maintainers; [ oro ];
   };
diff --git a/pkgs/development/python-modules/pync/default.nix b/pkgs/development/python-modules/pync/default.nix
index d3efec9a6a264..9206787f49731 100644
--- a/pkgs/development/python-modules/pync/default.nix
+++ b/pkgs/development/python-modules/pync/default.nix
@@ -1,13 +1,15 @@
-{ lib, stdenv
-, buildPythonPackage
-, fetchPypi
-, python-dateutil
-, pkgs
-, which
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  python-dateutil,
+  pkgs,
+  which,
 }:
 
 buildPythonPackage rec {
-  version  = "2.0.3";
+  version = "2.0.3";
   pname = "pync";
   format = "setuptools";
 
@@ -25,10 +27,9 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python Wrapper for Mac OS 10.8 Notification Center";
-    homepage    = "https://pypi.python.org/pypi/pync";
-    license     = licenses.mit;
-    platforms   = platforms.darwin;
+    homepage = "https://pypi.python.org/pypi/pync";
+    license = licenses.mit;
+    platforms = platforms.darwin;
     maintainers = with maintainers; [ lovek323 ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pynello/default.nix b/pkgs/development/python-modules/pynello/default.nix
index 4435bb7ec30ea..919674c639fcc 100644
--- a/pkgs/development/python-modules/pynello/default.nix
+++ b/pkgs/development/python-modules/pynello/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python-dateutil
-, pythonOlder
-, requests
-, requests-oauthlib
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python-dateutil,
+  pythonOlder,
+  requests,
+  requests-oauthlib,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pynello"
-  ];
+  pythonImportsCheck = [ "pynello" ];
 
   meta = with lib; {
     description = "Python library for nello.io intercoms";
diff --git a/pkgs/development/python-modules/pynest2d/default.nix b/pkgs/development/python-modules/pynest2d/default.nix
index a3b1929feb44e..87cbebb03d7ff 100644
--- a/pkgs/development/python-modules/pynest2d/default.nix
+++ b/pkgs/development/python-modules/pynest2d/default.nix
@@ -1,5 +1,13 @@
-{ lib, buildPythonPackage, fetchFromGitHub, python, cmake
-, libnest2d, sip4, clipper }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  cmake,
+  libnest2d,
+  sip4,
+  clipper,
+}:
 
 buildPythonPackage rec {
   version = "4.12.0";
@@ -13,14 +21,18 @@ buildPythonPackage rec {
     hash = "sha256-QQdTDhO4i9NVhegGTmdEQSNv3gooaZzTX/Rv86h3GEo=";
   };
 
-  propagatedBuildInputs = [ libnest2d sip4 clipper ];
+  propagatedBuildInputs = [
+    libnest2d
+    sip4
+    clipper
+  ];
   nativeBuildInputs = [ cmake ];
 
   CLIPPER_PATH = "${clipper.out}";
 
   postPatch = ''
-     sed -i 's#''${Python3_SITEARCH}#${placeholder "out"}/${python.sitePackages}#' cmake/SIPMacros.cmake
-   '';
+    sed -i 's#''${Python3_SITEARCH}#${placeholder "out"}/${python.sitePackages}#' cmake/SIPMacros.cmake
+  '';
 
   meta = with lib; {
     description = "Python bindings for libnest2d";
diff --git a/pkgs/development/python-modules/pynetbox/default.nix b/pkgs/development/python-modules/pynetbox/default.nix
index 0a08f4affa595..0254369801bc4 100644
--- a/pkgs/development/python-modules/pynetbox/default.nix
+++ b/pkgs/development/python-modules/pynetbox/default.nix
@@ -1,11 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools-scm
-, requests
-, six
-, pytestCheckHook
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools-scm,
+  packaging,
+  requests,
+  six,
+  pytestCheckHook,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -20,11 +22,10 @@ buildPythonPackage rec {
     hash = "sha256-QIvh24ZqnF8uF9HOuY0yt3QT/jHgJ2C916d+rBqezWQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
+    packaging
     requests
     six
   ];
diff --git a/pkgs/development/python-modules/pynetdicom/default.nix b/pkgs/development/python-modules/pynetdicom/default.nix
index 6f0407aacdff3..5c63fcae29ab0 100644
--- a/pkgs/development/python-modules/pynetdicom/default.nix
+++ b/pkgs/development/python-modules/pynetdicom/default.nix
@@ -3,19 +3,18 @@
   stdenv,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
+  poetry-core,
   pydicom,
   pyfakefs,
   pytestCheckHook,
   pythonAtLeast,
   pythonOlder,
-  setuptools,
   sqlalchemy,
 }:
 
 buildPythonPackage rec {
   pname = "pynetdicom";
-  version = "2.0.2";
+  version = "2.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -24,18 +23,10 @@ buildPythonPackage rec {
     owner = "pydicom";
     repo = "pynetdicom";
     rev = "refs/tags/v${version}";
-    hash = "sha256-/JWQUtFBW4uqCbs/nUxj1pRBfTCXV4wcqTkqvzpdFrM=";
+    hash = "sha256-gAgNSvNn5VsctqhbT/CzFVhwCEpZwGb1pOh0JwkuAW8=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "fix-python-3.11-test-attribute-errors";
-      url = "https://github.com/pydicom/pynetdicom/pull/754/commits/2126bd932d6dfb3f07045eb9400acb7eaa1b3069.patch";
-      hash = "sha256-t6Lg0sTZSWIE5q5pkBvEoHDQ+cklDn8SgNBcFk1myp4=";
-    })
-  ];
-
-  build-system = [ setuptools ];
+  build-system = [ poetry-core ];
 
   dependencies = [ pydicom ];
 
@@ -72,21 +63,23 @@ buildPythonPackage rec {
     "TestStoreSCUCLI"
   ];
 
-  disabledTestPaths = [
-    # Ignore apps tests
-    "pynetdicom/apps/tests/"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    # https://github.com/pydicom/pynetdicom/issues/924
-    "pynetdicom/tests/test_assoc.py"
-    "pynetdicom/tests/test_transport.py"
-  ];
+  disabledTestPaths =
+    [
+      # Ignore apps tests
+      "pynetdicom/apps/tests/"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # https://github.com/pydicom/pynetdicom/issues/924
+      "pynetdicom/tests/test_assoc.py"
+      "pynetdicom/tests/test_transport.py"
+    ];
 
   pythonImportsCheck = [ "pynetdicom" ];
 
   pytestFlagsArray = [
     # https://github.com/pydicom/pynetdicom/issues/923
     "-W"
-    "ignore::pytest.PytestRemovedIn8Warning"
+    "ignore::pytest.PytestRemovedIn9Warning"
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pynetgear/default.nix b/pkgs/development/python-modules/pynetgear/default.nix
index 1a20de636537b..301a957e861f9 100644
--- a/pkgs/development/python-modules/pynetgear/default.nix
+++ b/pkgs/development/python-modules/pynetgear/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-5Lj2cK/SOGgaPu8dI9X3Leg4dPAY7tdIHCzFnNaube8=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
-  pythonImportsCheck = [
-    "pynetgear"
-  ];
+  pythonImportsCheck = [ "pynetgear" ];
 
   # Tests don't pass
   # https://github.com/MatMaul/pynetgear/issues/109
diff --git a/pkgs/development/python-modules/pyngo/default.nix b/pkgs/development/python-modules/pyngo/default.nix
index ab2cce0b56521..0f6c85d993c84 100644
--- a/pkgs/development/python-modules/pyngo/default.nix
+++ b/pkgs/development/python-modules/pyngo/default.nix
@@ -1,21 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build-system
-, hatchling
+  # build-system
+  hatchling,
 
-# dependencies
-, django
-, pydantic
-, typing-extensions
+  # dependencies
+  django,
+  pydantic,
+  typing-extensions,
 
-# tests
-, django-stubs
-, pytestCheckHook
-, pytest-asyncio
+  # tests
+  django-stubs,
+  pytestCheckHook,
+  pytest-asyncio,
 }:
 
 buildPythonPackage rec {
@@ -34,7 +34,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     hatchling
-    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/pyngrok/default.nix b/pkgs/development/python-modules/pyngrok/default.nix
index 0646d6ac8b4b5..345f3cec33533 100644
--- a/pkgs/development/python-modules/pyngrok/default.nix
+++ b/pkgs/development/python-modules/pyngrok/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -18,18 +19,14 @@ buildPythonPackage rec {
     hash = "sha256-BcD8pjQJE2WKvdxiOgpTknrO2T4n/++AHSSBS8sYDqo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    pyyaml
-  ];
+  propagatedBuildInputs = [ pyyaml ];
 
   pythonImportsCheck = [ "pyngrok" ];
 
   meta = with lib; {
-    description = "A Python wrapper for ngrok";
+    description = "Python wrapper for ngrok";
     homepage = "https://github.com/alexdlaird/pyngrok";
     changelog = "https://github.com/alexdlaird/pyngrok/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pynina/default.nix b/pkgs/development/python-modules/pynina/default.nix
index 73e611d0f5010..9f95a1064550f 100644
--- a/pkgs/development/python-modules/pynina/default.nix
+++ b/pkgs/development/python-modules/pynina/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,16 +19,12 @@ buildPythonPackage rec {
     hash = "sha256-6HJ78tKl6If/ezwOrGl3VEYO4eMh/6cZq2j2AMBr0I8=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pynina"
-  ];
+  pythonImportsCheck = [ "pynina" ];
 
   meta = with lib; {
     description = "Python API wrapper to retrieve warnings from the german NINA app";
diff --git a/pkgs/development/python-modules/pynisher/default.nix b/pkgs/development/python-modules/pynisher/default.nix
index 34a6f158f1217..8249af5aa44cc 100644
--- a/pkgs/development/python-modules/pynisher/default.nix
+++ b/pkgs/development/python-modules/pynisher/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, psutil
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  psutil,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
   # No tests in the Pypi archive
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pynisher"
-  ];
+  pythonImportsCheck = [ "pynisher" ];
 
   meta = with lib; {
     description = "Module intended to limit a functions resources";
diff --git a/pkgs/development/python-modules/pynitrokey/default.nix b/pkgs/development/python-modules/pynitrokey/default.nix
index 41218201fd55a..2e40250adb4b9 100644
--- a/pkgs/development/python-modules/pynitrokey/default.nix
+++ b/pkgs/development/python-modules/pynitrokey/default.nix
@@ -1,31 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonRelaxDepsHook
-, installShellFiles
-, libnitrokey
-, flit-core
-, certifi
-, cffi
-, click
-, cryptography
-, ecdsa
-, fido2
-, intelhex
-, nkdfu
-, python-dateutil
-, pyusb
-, requests
-, spsdk
-, tqdm
-, tlv8
-, typing-extensions
-, pyserial
-, protobuf
-, click-aliases
-, semver
-, nethsm
-, importlib-metadata
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  installShellFiles,
+  libnitrokey,
+  flit-core,
+  certifi,
+  cffi,
+  click,
+  cryptography,
+  ecdsa,
+  fido2,
+  intelhex,
+  nkdfu,
+  python-dateutil,
+  pyusb,
+  requests,
+  spsdk,
+  tqdm,
+  tlv8,
+  typing-extensions,
+  pyserial,
+  protobuf,
+  click-aliases,
+  semver,
+  nethsm,
+  importlib-metadata,
 }:
 
 let
@@ -70,7 +70,6 @@ buildPythonPackage {
   nativeBuildInputs = [
     flit-core
     installShellFiles
-    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = true;
@@ -80,9 +79,7 @@ buildPythonPackage {
 
   # libnitrokey is not propagated to users of the pynitrokey Python package.
   # It is only usable from the wrapped bin/nitropy
-  makeWrapperArgs = [
-    "--set LIBNK_PATH ${lib.makeLibraryPath [ libnitrokey ]}"
-  ];
+  makeWrapperArgs = [ "--set LIBNK_PATH ${lib.makeLibraryPath [ libnitrokey ]}" ];
 
   # no tests
   doCheck = false;
@@ -100,8 +97,14 @@ buildPythonPackage {
     description = "Python client for Nitrokey devices";
     homepage = "https://github.com/Nitrokey/pynitrokey";
     changelog = "https://github.com/Nitrokey/pynitrokey/releases/tag/v${version}";
-    license = with licenses; [ asl20 mit ];
-    maintainers = with maintainers; [ frogamic raitobezarius ];
+    license = with licenses; [
+      asl20
+      mit
+    ];
+    maintainers = with maintainers; [
+      frogamic
+      raitobezarius
+    ];
     inherit mainProgram;
   };
 }
diff --git a/pkgs/development/python-modules/pynmea2/default.nix b/pkgs/development/python-modules/pynmea2/default.nix
index 2bfdd61a62025..e4e9f37d2f50e 100644
--- a/pkgs/development/python-modules/pynmea2/default.nix
+++ b/pkgs/development/python-modules/pynmea2/default.nix
@@ -1,22 +1,44 @@
-{ lib, buildPythonPackage, fetchPypi, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  pytestCheckHook,
+  setuptools,
+  pythonOlder,
+}:
 
 buildPythonPackage rec {
   pname = "pynmea2";
   version = "1.19.0";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-Hap5uTJ5+IfRwjXlzFx54yZEVkE4zkaYmrD0ovyXDXw=";
   };
 
+  patches = [
+    # Removed depreciated imp and replaced with importlib, https://github.com/Knio/pynmea2/pull/164
+    (fetchpatch {
+      name = "remove-imp.patch";
+      url = "https://github.com/Knio/pynmea2/commit/c56717b5e859e978ad3b52b8f826faa5d50489f8.patch";
+      hash = "sha256-jeFyfukT+0NLNxvNCxL7TzL/8oKmKOam5ZUIvjdvN/Q=";
+    })
+  ];
+
+  build-system = [ setuptools ];
+
   nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "pynmea2" ];
 
   meta = {
-    homepage = "https://github.com/Knio/pynmea2";
     description = "Python library for the NMEA 0183 protcol";
+    homepage = "https://github.com/Knio/pynmea2";
+    changelog = "https://github.com/Knio/pynmea2/releases/tag/${version}";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ oxzi ];
   };
diff --git a/pkgs/development/python-modules/pynmeagps/default.nix b/pkgs/development/python-modules/pynmeagps/default.nix
index 7791bb13f315e..6129f591009d1 100644
--- a/pkgs/development/python-modules/pynmeagps/default.nix
+++ b/pkgs/development/python-modules/pynmeagps/default.nix
@@ -1,37 +1,41 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, setuptools
-, pytest-cov
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pynmeagps";
-  version = "1.0.35";
+  version = "1.0.38";
   pyproject = true;
 
+  disabled = pythonOlder "3.8";
+
   src = fetchFromGitHub {
     owner = "semuconsulting";
     repo = "pynmeagps";
-    rev = "v${version}";
-    hash = "sha256-ULGBfTHCFGUSF3cmJ4GEUrgGDo4uJwstBj8nZ7tj0AA=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-sD33fcYqTGsLLSsz6ULM5FsHHen4uROJzaWGCDrIsFI=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "--cov --cov-report html --cov-fail-under 98" ""
+  '';
+
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-    pytest-cov
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pynmeagps"
-  ];
+  pythonImportsCheck = [ "pynmeagps" ];
 
   meta = {
-    homepage = "https://github.com/semuconsulting/pynmeagps";
     description = "NMEA protocol parser and generator";
+    homepage = "https://github.com/semuconsulting/pynmeagps";
+    changelog = "https://github.com/semuconsulting/pynmeagps/releases/tag/v${version}";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ dylan-gonzalez ];
   };
diff --git a/pkgs/development/python-modules/pynndescent/default.nix b/pkgs/development/python-modules/pynndescent/default.nix
index 3c77fec41b350..00a3e513ea671 100644
--- a/pkgs/development/python-modules/pynndescent/default.nix
+++ b/pkgs/development/python-modules/pynndescent/default.nix
@@ -1,32 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, importlib-metadata
-, joblib
-, llvmlite
-, numba
-, scikit-learn
-, scipy
-, setuptools
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  importlib-metadata,
+  joblib,
+  llvmlite,
+  numba,
+  scikit-learn,
+  scipy,
+  setuptools,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "pynndescent";
-  version = "0.5.12";
+  version = "0.5.13";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-BzYpH8u+39Xgo6KA9xpj+Osvi9lnDUwLUawbTQga33A=";
+    hash = "sha256-10JUwO4KHu7IRZfV/on+3Pd4WT7qvjLC+XQSk0qYAPs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     joblib
@@ -34,17 +33,11 @@ buildPythonPackage rec {
     numba
     scikit-learn
     scipy
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pynndescent"
-  ];
+  pythonImportsCheck = [ "pynndescent" ];
 
   meta = with lib; {
     description = "Nearest Neighbor Descent";
diff --git a/pkgs/development/python-modules/pynose/default.nix b/pkgs/development/python-modules/pynose/default.nix
index e58681cbe9661..c86f814aac7bf 100644
--- a/pkgs/development/python-modules/pynose/default.nix
+++ b/pkgs/development/python-modules/pynose/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pynotifier/default.nix b/pkgs/development/python-modules/pynotifier/default.nix
index 7968677f1b62d..f264d9a328036 100644
--- a/pkgs/development/python-modules/pynotifier/default.nix
+++ b/pkgs/development/python-modules/pynotifier/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, libnotify
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  libnotify,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,13 +26,9 @@ buildPythonPackage rec {
         '"${lib.getExe' libnotify "notify-send"}"'
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "pynotifier" ];
 
diff --git a/pkgs/development/python-modules/pynput/default.nix b/pkgs/development/python-modules/pynput/default.nix
index 88c46532d997c..ed6b964f0ca57 100644
--- a/pkgs/development/python-modules/pynput/default.nix
+++ b/pkgs/development/python-modules/pynput/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
-, setuptools-lint
-, sphinx
+  # build-system
+  setuptools,
+  setuptools-lint,
+  sphinx,
 
-# dependencies
-, xlib
-, evdev
-, darwin
-, six
+  # dependencies
+  xlib,
+  evdev,
+  darwin,
+  six,
 
- # tests
-, unittestCheckHook
- }:
+  # tests
+  unittestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "pynput";
@@ -41,28 +42,29 @@ buildPythonPackage rec {
     sphinx
   ];
 
-  propagatedBuildInputs = [
-    six
-  ] ++ lib.optionals stdenv.isLinux [
-    evdev
-    xlib
-  ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [
-    ApplicationServices
-    Quartz
-  ]);
+  propagatedBuildInputs =
+    [ six ]
+    ++ lib.optionals stdenv.isLinux [
+      evdev
+      xlib
+    ]
+    ++ lib.optionals stdenv.isDarwin (
+      with darwin.apple_sdk.frameworks;
+      [
+        ApplicationServices
+        Quartz
+      ]
+    );
 
   doCheck = false; # requires running X server
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A library to control and monitor input devices";
+    description = "Library to control and monitor input devices";
     homepage = "https://github.com/moses-palmer/pynput";
     license = licenses.lgpl3;
     maintainers = with maintainers; [ nickhu ];
   };
 }
-
diff --git a/pkgs/development/python-modules/pynrrd/default.nix b/pkgs/development/python-modules/pynrrd/default.nix
index 7d36e42da70df..9be59daec1f51 100644
--- a/pkgs/development/python-modules/pynrrd/default.nix
+++ b/pkgs/development/python-modules/pynrrd/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, numpy
-, nptyping
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  numpy,
+  nptyping,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  pythonImportsCheck = [
-    "nrrd"
-  ];
+  pythonImportsCheck = [ "nrrd" ];
 
   meta = with lib; {
     homepage = "https://github.com/mhe/pynrrd";
diff --git a/pkgs/development/python-modules/pynuki/default.nix b/pkgs/development/python-modules/pynuki/default.nix
index 28c7117d680a7..42de5c5bdc028 100644
--- a/pkgs/development/python-modules/pynuki/default.nix
+++ b/pkgs/development/python-modules/pynuki/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pynacl
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pynacl,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-PF5FmAuPcJXq8gQ8HyzdtL2HiiUjueT+LAS1lYRvrwM=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     pynacl
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pynuki"
-  ];
+  pythonImportsCheck = [ "pynuki" ];
 
   meta = with lib; {
     description = "Python bindings for nuki.io bridges";
diff --git a/pkgs/development/python-modules/pynut2/default.nix b/pkgs/development/python-modules/pynut2/default.nix
index 4c56cdff0de8a..44c687f125927 100644
--- a/pkgs/development/python-modules/pynut2/default.nix
+++ b/pkgs/development/python-modules/pynut2/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     sha256 = "1lg7n1frndfgw73s0ssl1h7kc6zxm7fpiwlc6v6d60kxzaj1dphx";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   pythonImportsCheck = [ "pynut2.nut2" ];
 
@@ -26,7 +25,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "API overhaul of PyNUT, a Python library to allow communication with NUT (Network UPS Tools) servers.";
+    description = "API overhaul of PyNUT, a Python library to allow communication with NUT (Network UPS Tools) servers";
     homepage = "https://github.com/mezz64/python-nut2";
     license = with licenses; [ gpl3Plus ];
     maintainers = [ maintainers.luker ];
diff --git a/pkgs/development/python-modules/pynvim-pp/default.nix b/pkgs/development/python-modules/pynvim-pp/default.nix
index a1dee20139b4e..b22e0d372981d 100644
--- a/pkgs/development/python-modules/pynvim-pp/default.nix
+++ b/pkgs/development/python-modules/pynvim-pp/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pynvim
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pynvim,
+  setuptools,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/pynvim/default.nix b/pkgs/development/python-modules/pynvim/default.nix
index 829ec7d68b121..c17df53869386 100644
--- a/pkgs/development/python-modules/pynvim/default.nix
+++ b/pkgs/development/python-modules/pynvim/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, msgpack
-, greenlet
-, pythonOlder
-, isPyPy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  msgpack,
+  greenlet,
+  pythonOlder,
+  isPyPy,
 }:
 
 buildPythonPackage rec {
@@ -27,22 +28,14 @@ buildPythonPackage rec {
       --replace " + pytest_runner" ""
   '';
 
-  buildInputs = [
-    setuptools
-  ];
+  buildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    msgpack
-  ] ++ lib.optionals (!isPyPy) [
-    greenlet
-  ];
+  propagatedBuildInputs = [ msgpack ] ++ lib.optionals (!isPyPy) [ greenlet ];
 
   # Tests require pkgs.neovim which we cannot add because of circular dependency
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pynvim"
-  ];
+  pythonImportsCheck = [ "pynvim" ];
 
   meta = with lib; {
     description = "Python client for Neovim";
diff --git a/pkgs/development/python-modules/pynvml/default.nix b/pkgs/development/python-modules/pynvml/default.nix
index f73f5bd7d56df..a115cd723998f 100644
--- a/pkgs/development/python-modules/pynvml/default.nix
+++ b/pkgs/development/python-modules/pynvml/default.nix
@@ -1,11 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, substituteAll
-, pythonOlder
-, addOpenGLRunpath
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  substituteAll,
+  pythonOlder,
+  addOpenGLRunpath,
+  setuptools,
+  pytestCheckHook,
+  versioneer,
 }:
 
 buildPythonPackage rec {
@@ -28,16 +30,23 @@ buildPythonPackage rec {
     })
   ];
 
+  # unvendor versioneer
+  postPatch = ''
+    rm versioneer.py
+  '';
+
   nativeBuildInputs = [
     setuptools
+    versioneer
   ];
 
-  pythonImportsCheck = [ "pynvml" "pynvml.smi" ];
-
-  nativeCheckInputs = [
-    pytestCheckHook
+  pythonImportsCheck = [
+    "pynvml"
+    "pynvml.smi"
   ];
 
+  nativeCheckInputs = [ pytestCheckHook ];
+
   # OSError: /run/opengl-driver/lib/libnvidia-ml.so.1: cannot open shared object file: No such file or directory
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/pynws/default.nix b/pkgs/development/python-modules/pynws/default.nix
index 5c3b5c7c49a28..a9e5e959e53d4 100644
--- a/pkgs/development/python-modules/pynws/default.nix
+++ b/pkgs/development/python-modules/pynws/default.nix
@@ -1,47 +1,60 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, freezegun
-, metar
-, pytest-aiohttp
-, pytest-asyncio
-, pytest-cov
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  freezegun,
+  metar,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytest-cov,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  tenacity,
 }:
 
 buildPythonPackage rec {
   pname = "pynws";
-  version = "1.6.0";
-  format = "setuptools";
-  disabled = pythonOlder "3.6";
+  version = "1.8.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "MatthewFlamm";
-    repo = pname;
+    repo = "pynws";
     rev = "refs/tags/v${version}";
-    hash = "sha256-x56kfnmdVV0Fc7XSI60rrtEl4k3uzpIdZxTofUbkUHU=";
+    hash = "sha256-3QKdZ7hg7HfQ56xHbkhXCtlBq4JCwfXdZiTctI3OVl0=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  dependencies = [
     aiohttp
     metar
   ];
 
+  optional-dependencies.retry = [ tenacity ];
+
   nativeCheckInputs = [
     freezegun
     pytest-aiohttp
     pytest-asyncio
     pytest-cov
     pytestCheckHook
-  ];
+  ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
   pythonImportsCheck = [ "pynws" ];
 
   meta = with lib; {
     description = "Python library to retrieve data from NWS/NOAA";
     homepage = "https://github.com/MatthewFlamm/pynws";
+    changelog = "https://github.com/MatthewFlamm/pynws/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/pynx584/default.nix b/pkgs/development/python-modules/pynx584/default.nix
index 405f66a7465c6..49aaf6eabcb22 100644
--- a/pkgs/development/python-modules/pynx584/default.nix
+++ b/pkgs/development/python-modules/pynx584/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flask
-, mock
-, prettytable
-, pyserial
-, pytestCheckHook
-, pythonOlder
-, requests
-, stevedore
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+  mock,
+  prettytable,
+  pyserial,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  stevedore,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,6 @@ buildPythonPackage rec {
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
-
   src = fetchFromGitHub {
     owner = "kk7ds";
     repo = pname;
diff --git a/pkgs/development/python-modules/pynzb/default.nix b/pkgs/development/python-modules/pynzb/default.nix
index 18ef6c0312851..52d94c093f67a 100644
--- a/pkgs/development/python-modules/pynzb/default.nix
+++ b/pkgs/development/python-modules/pynzb/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -27,5 +28,4 @@ buildPythonPackage rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ domenkozar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pyobihai/default.nix b/pkgs/development/python-modules/pyobihai/default.nix
index 1038c162556af..5a899e6987951 100644
--- a/pkgs/development/python-modules/pyobihai/default.nix
+++ b/pkgs/development/python-modules/pyobihai/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, defusedxml
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  defusedxml,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyobihai"
-  ];
+  pythonImportsCheck = [ "pyobihai" ];
 
   meta = with lib; {
     description = "Module to interact with Obihai devices";
diff --git a/pkgs/development/python-modules/pyocd-pemicro/default.nix b/pkgs/development/python-modules/pyocd-pemicro/default.nix
index 74dee58903cdf..174ec65e2f731 100644
--- a/pkgs/development/python-modules/pyocd-pemicro/default.nix
+++ b/pkgs/development/python-modules/pyocd-pemicro/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools-scm
-, pyocd
-, pypemicro
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools-scm,
+  pyocd,
+  pypemicro,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-qi803s8fkrLizcCLeDRz7CTQ56NGLQ4PPwCbxiRigwc=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     pyocd
diff --git a/pkgs/development/python-modules/pyocd/default.nix b/pkgs/development/python-modules/pyocd/default.nix
index 1f09ed696da04..7f7f8d2465a37 100644
--- a/pkgs/development/python-modules/pyocd/default.nix
+++ b/pkgs/development/python-modules/pyocd/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, capstone_4
-, cmsis-pack-manager
-, colorama
-, importlib-metadata
-, importlib-resources
-, intelhex
-, intervaltree
-, lark
-, natsort
-, prettytable
-, pyelftools
-, pylink-square
-, pyusb
-, pyyaml
-, setuptools
-, setuptools-scm
-, typing-extensions
-, stdenv
-, hidapi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  capstone_4,
+  cmsis-pack-manager,
+  colorama,
+  importlib-metadata,
+  importlib-resources,
+  intelhex,
+  intervaltree,
+  lark,
+  natsort,
+  prettytable,
+  pyelftools,
+  pylink-square,
+  pyusb,
+  pyyaml,
+  setuptools,
+  setuptools-scm,
+  typing-extensions,
+  stdenv,
+  hidapi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -69,17 +70,11 @@ buildPythonPackage rec {
     pyusb
     pyyaml
     typing-extensions
-  ] ++ lib.optionals (!stdenv.isLinux) [
-    hidapi
-  ];
+  ] ++ lib.optionals (!stdenv.isLinux) [ hidapi ];
 
-  pythonImportsCheck = [
-    "pyocd"
-  ];
+  pythonImportsCheck = [ "pyocd" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     changelog = "https://github.com/pyocd/pyOCD/releases/tag/v${version}";
@@ -87,6 +82,9 @@ buildPythonPackage rec {
     downloadPage = "https://github.com/pyocd/pyOCD";
     homepage = "https://pyocd.io";
     license = licenses.asl20;
-    maintainers = with maintainers; [ frogamic sbruder ];
+    maintainers = with maintainers; [
+      frogamic
+      sbruder
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pyocr/default.nix b/pkgs/development/python-modules/pyocr/default.nix
index 0d87538a1ce4f..7df733b680a0f 100644
--- a/pkgs/development/python-modules/pyocr/default.nix
+++ b/pkgs/development/python-modules/pyocr/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, stdenv
-, fetchFromGitLab
-, buildPythonPackage
-, pillow
-, tesseract
-, cuneiform
-, isPy3k
-, substituteAll
-, pytestCheckHook
-, setuptools
-, setuptools-scm
-, withTesseractSupport ? true
-, withCuneiformSupport ? stdenv.hostPlatform.isLinux
+{
+  lib,
+  stdenv,
+  fetchFromGitLab,
+  buildPythonPackage,
+  pillow,
+  tesseract,
+  cuneiform,
+  isPy3k,
+  substituteAll,
+  pytestCheckHook,
+  setuptools,
+  setuptools-scm,
+  withTesseractSupport ? true,
+  withCuneiformSupport ? stdenv.hostPlatform.isLinux,
 }:
 
 buildPythonPackage rec {
@@ -30,26 +31,35 @@ buildPythonPackage rec {
     hash = "sha256-gE0+qbHCwpDdxXFY+4rjVU2FbUSfSVrvrVMcWUk+9FU=";
   };
 
-  patches = [] ++ (lib.optional withTesseractSupport (substituteAll {
+  patches =
+    [ ]
+    ++ (lib.optional withTesseractSupport (substituteAll {
       src = ./paths-tesseract.patch;
       inherit tesseract;
       tesseractLibraryLocation = "${tesseract}/lib/libtesseract${stdenv.hostPlatform.extensions.sharedLibrary}";
-    })) ++ (lib.optional stdenv.hostPlatform.isLinux (substituteAll {
+    }))
+    ++ (lib.optional stdenv.hostPlatform.isLinux (substituteAll {
       src = ./paths-cuneiform.patch;
       inherit cuneiform;
     }));
 
   propagatedBuildInputs = [ pillow ];
 
-  nativeBuildInputs = [ setuptools setuptools-scm ];
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     inherit (src.meta) homepage;
     changelog = "https://gitlab.gnome.org/World/OpenPaperwork/pyocr/-/blob/${version}/ChangeLog";
-    description = "A Python wrapper for Tesseract and Cuneiform";
+    description = "Python wrapper for Tesseract and Cuneiform";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ symphorien tomodachi94 ];
+    maintainers = with maintainers; [
+      symphorien
+      tomodachi94
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pyoctoprintapi/default.nix b/pkgs/development/python-modules/pyoctoprintapi/default.nix
index 8dfd9cdf57f36..4fecaf44b4394 100644
--- a/pkgs/development/python-modules/pyoctoprintapi/default.nix
+++ b/pkgs/development/python-modules/pyoctoprintapi/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-
-# propagated
-, aiohttp
-
-# tests
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+
+  # propagated
+  aiohttp,
+
+  # tests
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 let
@@ -29,17 +30,11 @@ buildPythonPackage {
     hash = "sha256-DKqkT0Wyxf4grXBqei9IYBGMOgPxjzuo955M/nHDLo8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
-  pythonImportsCheck = [
-    "pyoctoprintapi"
-  ];
+  pythonImportsCheck = [ "pyoctoprintapi" ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -51,6 +46,6 @@ buildPythonPackage {
     homepage = "https://github.com/rfleming71/pyoctoprintapi";
     changelog = "https://github.com/rfleming71/pyoctoprintapi/releases/tag/v${version}";
     license = licenses.mit;
-    maintainers= with maintainers; [ hexa ];
+    maintainers = with maintainers; [ hexa ];
   };
 }
diff --git a/pkgs/development/python-modules/pyodbc/default.nix b/pkgs/development/python-modules/pyodbc/default.nix
index da48d0d828ae9..5e224805d14dd 100644
--- a/pkgs/development/python-modules/pyodbc/default.nix
+++ b/pkgs/development/python-modules/pyodbc/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPyPy
-, pythonOlder
-, unixODBC
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  pythonOlder,
+  unixODBC,
 }:
 
 buildPythonPackage rec {
@@ -19,19 +20,15 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    unixODBC  # for odbc_config
+    unixODBC # for odbc_config
   ];
 
-  buildInputs = [
-    unixODBC
-  ];
+  buildInputs = [ unixODBC ];
 
   # Tests require a database server
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyodbc"
-  ];
+  pythonImportsCheck = [ "pyodbc" ];
 
   meta = with lib; {
     description = "Python ODBC module to connect to almost any database";
diff --git a/pkgs/development/python-modules/pyogg/default.nix b/pkgs/development/python-modules/pyogg/default.nix
index 77f63870a2960..ba6d5dbb0c588 100644
--- a/pkgs/development/python-modules/pyogg/default.nix
+++ b/pkgs/development/python-modules/pyogg/default.nix
@@ -1,14 +1,15 @@
-{ stdenv
-, lib
-, fetchPypi
-, buildPythonPackage
-, libvorbis
-, flac
-, libogg
-, libopus
-, opusfile
-, substituteAll
-, python
+{
+  stdenv,
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  libvorbis,
+  flac,
+  libogg,
+  libopus,
+  opusfile,
+  substituteAll,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -41,17 +42,20 @@ buildPythonPackage rec {
   doCheck = false;
 
   # patch has dos style eol
-  patchFlags = [ "-p1" "--binary" ];
+  patchFlags = [
+    "-p1"
+    "--binary"
+  ];
   patches = [
     (substituteAll {
       src = ./pyogg-paths.patch;
-      flacLibPath="${flac.out}/lib/libFLAC${stdenv.hostPlatform.extensions.sharedLibrary}";
-      oggLibPath="${libogg}/lib/libogg${stdenv.hostPlatform.extensions.sharedLibrary}";
-      vorbisLibPath="${libvorbis}/lib/libvorbis${stdenv.hostPlatform.extensions.sharedLibrary}";
-      vorbisFileLibPath="${libvorbis}/lib/libvorbisfile${stdenv.hostPlatform.extensions.sharedLibrary}";
-      vorbisEncLibPath="${libvorbis}/lib/libvorbisenc${stdenv.hostPlatform.extensions.sharedLibrary}";
-      opusLibPath="${libopus}/lib/libopus${stdenv.hostPlatform.extensions.sharedLibrary}";
-      opusFileLibPath="${opusfile}/lib/libopusfile${stdenv.hostPlatform.extensions.sharedLibrary}";
+      flacLibPath = "${flac.out}/lib/libFLAC${stdenv.hostPlatform.extensions.sharedLibrary}";
+      oggLibPath = "${libogg}/lib/libogg${stdenv.hostPlatform.extensions.sharedLibrary}";
+      vorbisLibPath = "${libvorbis}/lib/libvorbis${stdenv.hostPlatform.extensions.sharedLibrary}";
+      vorbisFileLibPath = "${libvorbis}/lib/libvorbisfile${stdenv.hostPlatform.extensions.sharedLibrary}";
+      vorbisEncLibPath = "${libvorbis}/lib/libvorbisenc${stdenv.hostPlatform.extensions.sharedLibrary}";
+      opusLibPath = "${libopus}/lib/libopus${stdenv.hostPlatform.extensions.sharedLibrary}";
+      opusFileLibPath = "${opusfile}/lib/libopusfile${stdenv.hostPlatform.extensions.sharedLibrary}";
     })
   ];
 
diff --git a/pkgs/development/python-modules/pyogrio/default.nix b/pkgs/development/python-modules/pyogrio/default.nix
new file mode 100644
index 0000000000000..551fde29bafe8
--- /dev/null
+++ b/pkgs/development/python-modules/pyogrio/default.nix
@@ -0,0 +1,75 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  certifi,
+  cython,
+  gdal,
+  numpy,
+  packaging,
+  setuptools,
+  versioneer,
+  wheel,
+}:
+
+buildPythonPackage rec {
+  pname = "pyogrio";
+  version = "0.8.0";
+  pyproject = true;
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "geopandas";
+    repo = "pyogrio";
+    rev = "v${version}";
+    hash = "sha256-h4Rv5xOWSJSv0nLbosviz5EiF/IsZO5wzBel9YRd0Bg=";
+  };
+
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "versioneer[toml]==0.28" "versioneer[toml]"
+  '' + lib.optionalString (!pythonOlder "3.12") ''
+    substituteInPlace setup.py \
+      --replace-fail "distutils" "setuptools._distutils"
+  '';
+
+  nativeBuildInputs = [
+    cython
+    gdal # for gdal-config
+    setuptools
+    versioneer
+    wheel
+  ] ++ versioneer.optional-dependencies.toml;
+
+  buildInputs = [ gdal ];
+
+  propagatedBuildInputs = [
+    certifi
+    numpy
+    packaging
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  preCheck = ''
+    python setup.py build_ext --inplace
+  '';
+
+  pytestFlagsArray = [
+    # disable tests which require network access
+    "-m 'not network'"
+  ];
+
+  pythonImportsCheck = [ "pyogrio" ];
+
+  meta = {
+    description = "Vectorized spatial vector file format I/O using GDAL/OGR";
+    homepage = "https://pyogrio.readthedocs.io/";
+    changelog = "https://github.com/geopandas/pyogrio/blob/${src.rev}/CHANGES.md";
+    license = lib.licenses.mit;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/pyombi/default.nix b/pkgs/development/python-modules/pyombi/default.nix
index 912c076ae3582..5362e490e7e78 100644
--- a/pkgs/development/python-modules/pyombi/default.nix
+++ b/pkgs/development/python-modules/pyombi/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     sha256 = "1ykbmdc2v05ly9q358j7g73ma9fsqdlclc8i0k1yd0bn7219icpx";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/pyomo/default.nix b/pkgs/development/python-modules/pyomo/default.nix
index 35ab0ecec5095..f91ae1753966a 100644
--- a/pkgs/development/python-modules/pyomo/default.nix
+++ b/pkgs/development/python-modules/pyomo/default.nix
@@ -1,16 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, parameterized
-, ply
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  parameterized,
+  ply,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyomo";
-  version = "6.7.1";
-  format = "setuptools";
+  version = "6.7.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -18,21 +20,19 @@ buildPythonPackage rec {
     repo = "pyomo";
     owner = "pyomo";
     rev = "refs/tags/${version}";
-    hash = "sha256-eTItw+wYo5lCla4oKSF97N4TFajjFtCMMq4DU9ahi1U=";
+    hash = "sha256-6qpJH6WkrTzsDCtvoGMzZgw1UeSIIyI3jSA8JMsUC4E=";
   };
 
-  propagatedBuildInputs = [
-    ply
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ ply ];
 
   nativeCheckInputs = [
     parameterized
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pyomo"
-  ];
+  pythonImportsCheck = [ "pyomo" ];
 
   preCheck = ''
     export HOME=$(mktemp -d);
@@ -53,10 +53,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python Optimization Modeling Objects";
-    mainProgram = "pyomo";
-    homepage = "http://pyomo.org";
+    homepage = "http://www.pyomo.org/";
     changelog = "https://github.com/Pyomo/pyomo/releases/tag/${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
+    mainProgram = "pyomo";
   };
 }
diff --git a/pkgs/development/python-modules/pyopencl/default.nix b/pkgs/development/python-modules/pyopencl/default.nix
index 045229a5a60c8..0f9e4808cb972 100644
--- a/pkgs/development/python-modules/pyopencl/default.nix
+++ b/pkgs/development/python-modules/pyopencl/default.nix
@@ -1,47 +1,64 @@
-{ lib
-, stdenv
-, fetchPypi
-, buildPythonPackage
-, fetchpatch
-, appdirs
-, cffi
-, decorator
-, mako
-, mesa_drivers
-, numpy
-, ocl-icd
-, oldest-supported-numpy
-, opencl-headers
-, platformdirs
-, pybind11
-, pytest
-, pytestCheckHook
-, pytools
-, setuptools
-, six
-, wheel
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+
+  # build-system
+  cmake,
+  scikit-build-core,
+  pathspec,
+  ninja,
+  nanobind,
+
+  # dependencies
+  appdirs,
+  cffi,
+  darwin,
+  decorator,
+  mako,
+  numpy,
+  ocl-icd,
+  oldest-supported-numpy,
+  opencl-headers,
+  platformdirs,
+  pybind11,
+  pytestCheckHook,
+  pytools,
+  six,
 }:
 
 let
-  os-specific-buildInputs =
-    if stdenv.isDarwin then [ mesa_drivers.dev ] else [ ocl-icd ];
-in buildPythonPackage rec {
+  os-specific-buildInputs = if stdenv.isDarwin then [ darwin.apple_sdk.frameworks.OpenCL ] else [ ocl-icd ];
+in
+buildPythonPackage rec {
   pname = "pyopencl";
-  version = "2024.1";
+  version = "2024.2.6";
   format = "pyproject";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-7NVy7pQK2L2hY5w6e+tog0/JqYrX6z9uAarE99nUusE=";
+  src = fetchFromGitHub {
+    owner = "inducer";
+    repo = "pyopencl";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-nP7ZAGeRXrjqDRWlc2SDP1hk1fseGeu9Zx0lOp9Pchs=";
   };
 
   nativeBuildInputs = [
+    cmake
+    nanobind
+    ninja
+    numpy
     oldest-supported-numpy
-    setuptools
-    wheel
+    pathspec
+    scikit-build-core
   ];
 
-  buildInputs = [ opencl-headers pybind11 ] ++ os-specific-buildInputs;
+  dontUseCmakeConfigure = true;
+
+  buildInputs = [
+    opencl-headers
+    pybind11
+  ] ++ os-specific-buildInputs;
 
   propagatedBuildInputs = [
     appdirs
@@ -58,6 +75,7 @@ in buildPythonPackage rec {
 
   preBuild = ''
     export HOME=$(mktemp -d)
+    rm -rf pyopencl
   '';
 
   # gcc: error: pygpu_language_opencl.cpp: No such file or directory
diff --git a/pkgs/development/python-modules/pyopengl-accelerate/default.nix b/pkgs/development/python-modules/pyopengl-accelerate/default.nix
index 4dc8803fa037f..d452ff22af1ec 100644
--- a/pkgs/development/python-modules/pyopengl-accelerate/default.nix
+++ b/pkgs/development/python-modules/pyopengl-accelerate/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonAtLeast
-, fetchPypi
-, cython
-, numpy
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  pythonAtLeast,
+  fetchPypi,
+  cython,
+  numpy,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyopengl/default.nix b/pkgs/development/python-modules/pyopengl/default.nix
index ddffa534ab85c..9c8af0ac924a6 100644
--- a/pkgs/development/python-modules/pyopengl/default.nix
+++ b/pkgs/development/python-modules/pyopengl/default.nix
@@ -1,8 +1,10 @@
-{ lib, stdenv
-, buildPythonPackage
-, fetchPypi
-, pkgs
-, pillow
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pkgs,
+  pillow,
 }:
 
 buildPythonPackage rec {
@@ -18,42 +20,46 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pillow ];
 
-  patchPhase = let
-    ext = stdenv.hostPlatform.extensions.sharedLibrary; in lib.optionalString (!stdenv.isDarwin) ''
-    # Theses lines are patching the name of dynamic libraries
-    # so pyopengl can find them at runtime.
-    substituteInPlace OpenGL/platform/glx.py \
-      --replace '"OpenGL",' '"${pkgs.libGL}/lib/libOpenGL${ext}",' \
-      --replace '"GL",' '"${pkgs.libGL}/lib/libGL${ext}",' \
-      --replace '"GLU",' '"${pkgs.libGLU}/lib/libGLU${ext}",' \
-      --replace '"GLX",' '"${pkgs.libglvnd}/lib/libGLX${ext}",' \
-      --replace '"glut",' '"${pkgs.freeglut}/lib/libglut${ext}",' \
-      --replace '"GLESv1_CM",' '"${pkgs.libGL}/lib/libGLESv1_CM${ext}",' \
-      --replace '"GLESv2",' '"${pkgs.libGL}/lib/libGLESv2${ext}",' \
-      --replace '"gle",' '"${pkgs.gle}/lib/libgle${ext}",' \
-      --replace "'EGL'" "'${pkgs.libGL}/lib/libEGL${ext}'"
-    substituteInPlace OpenGL/platform/egl.py \
-      --replace "('OpenGL','GL')" "('${pkgs.libGL}/lib/libOpenGL${ext}', '${pkgs.libGL}/lib/libGL${ext}')" \
-      --replace "'GLU'," "'${pkgs.libGLU}/lib/libGLU${ext}'," \
-      --replace "'glut'," "'${pkgs.freeglut}/lib/libglut${ext}'," \
-      --replace "'GLESv1_CM'," "'${pkgs.libGL}/lib/libGLESv1_CM${ext}'," \
-      --replace "'GLESv2'," "'${pkgs.libGL}/lib/libGLESv2${ext}'," \
-      --replace "'gle'," '"${pkgs.gle}/lib/libgle${ext}",' \
-      --replace "'EGL'," "'${pkgs.libGL}/lib/libEGL${ext}',"
-    substituteInPlace OpenGL/platform/darwin.py \
-      --replace "'OpenGL'," "'${pkgs.libGL}/lib/libGL${ext}'," \
-      --replace "'GLUT'," "'${pkgs.freeglut}/lib/libglut${ext}',"
-  '' + ''
-    # https://github.com/NixOS/nixpkgs/issues/76822
-    # pyopengl introduced a new "robust" way of loading libraries in 3.1.4.
-    # The later patch of the filepath does not work anymore because
-    # pyopengl takes the "name" (for us: the path) and tries to add a
-    # few suffix during its loading phase.
-    # The following patch put back the "name" (i.e. the path) in the
-    # list of possible files.
-    substituteInPlace OpenGL/platform/ctypesloader.py \
-      --replace "filenames_to_try = [base_name]" "filenames_to_try = [name]"
-  '';
+  patchPhase =
+    let
+      ext = stdenv.hostPlatform.extensions.sharedLibrary;
+    in
+    lib.optionalString (!stdenv.isDarwin) ''
+      # Theses lines are patching the name of dynamic libraries
+      # so pyopengl can find them at runtime.
+      substituteInPlace OpenGL/platform/glx.py \
+        --replace '"OpenGL",' '"${pkgs.libGL}/lib/libOpenGL${ext}",' \
+        --replace '"GL",' '"${pkgs.libGL}/lib/libGL${ext}",' \
+        --replace '"GLU",' '"${pkgs.libGLU}/lib/libGLU${ext}",' \
+        --replace '"GLX",' '"${pkgs.libglvnd}/lib/libGLX${ext}",' \
+        --replace '"glut",' '"${pkgs.libglut}/lib/libglut${ext}",' \
+        --replace '"GLESv1_CM",' '"${pkgs.libGL}/lib/libGLESv1_CM${ext}",' \
+        --replace '"GLESv2",' '"${pkgs.libGL}/lib/libGLESv2${ext}",' \
+        --replace '"gle",' '"${pkgs.gle}/lib/libgle${ext}",' \
+        --replace "'EGL'" "'${pkgs.libGL}/lib/libEGL${ext}'"
+      substituteInPlace OpenGL/platform/egl.py \
+        --replace "('OpenGL','GL')" "('${pkgs.libGL}/lib/libOpenGL${ext}', '${pkgs.libGL}/lib/libGL${ext}')" \
+        --replace "'GLU'," "'${pkgs.libGLU}/lib/libGLU${ext}'," \
+        --replace "'glut'," "'${pkgs.libglut}/lib/libglut${ext}'," \
+        --replace "'GLESv1_CM'," "'${pkgs.libGL}/lib/libGLESv1_CM${ext}'," \
+        --replace "'GLESv2'," "'${pkgs.libGL}/lib/libGLESv2${ext}'," \
+        --replace "'gle'," '"${pkgs.gle}/lib/libgle${ext}",' \
+        --replace "'EGL'," "'${pkgs.libGL}/lib/libEGL${ext}',"
+      substituteInPlace OpenGL/platform/darwin.py \
+        --replace "'OpenGL'," "'${pkgs.libGL}/lib/libGL${ext}'," \
+        --replace "'GLUT'," "'${pkgs.libglut}/lib/libglut${ext}',"
+    ''
+    + ''
+      # https://github.com/NixOS/nixpkgs/issues/76822
+      # pyopengl introduced a new "robust" way of loading libraries in 3.1.4.
+      # The later patch of the filepath does not work anymore because
+      # pyopengl takes the "name" (for us: the path) and tries to add a
+      # few suffix during its loading phase.
+      # The following patch put back the "name" (i.e. the path) in the
+      # list of possible files.
+      substituteInPlace OpenGL/platform/ctypesloader.py \
+        --replace "filenames_to_try = [base_name]" "filenames_to_try = [name]"
+    '';
 
   # Need to fix test runner
   # Tests have many dependencies
@@ -76,6 +82,4 @@ buildPythonPackage rec {
     license = licenses.bsd3;
     platforms = platforms.mesaPlatforms;
   };
-
-
 }
diff --git a/pkgs/development/python-modules/pyopenssl/default.nix b/pkgs/development/python-modules/pyopenssl/default.nix
index e59a9a4b43f72..fc7dbfd515f34 100644
--- a/pkgs/development/python-modules/pyopenssl/default.nix
+++ b/pkgs/development/python-modules/pyopenssl/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, openssl
-, setuptools
-, cryptography
-, pytestCheckHook
-, pretend
-, sphinxHook
-, sphinx-rtd-theme
-, pytest-rerunfailures
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  openssl,
+  setuptools,
+  cryptography,
+  pytestCheckHook,
+  pretend,
+  sphinxHook,
+  sphinx-rtd-theme,
+  pytest-rerunfailures,
 }:
 
 buildPythonPackage rec {
@@ -41,9 +42,7 @@ buildPythonPackage rec {
     sed -i "/cryptography/ s/,<[0-9]*//g" setup.py
   '';
 
-  propagatedBuildInputs = [
-    cryptography
-  ];
+  propagatedBuildInputs = [ cryptography ];
 
   nativeCheckInputs = [
     pretend
@@ -57,40 +56,44 @@ buildPythonPackage rec {
     export LANG="en_US.UTF-8"
   '';
 
-  disabledTests = [
-    # https://github.com/pyca/pyopenssl/issues/692
-    # These tests, we disable always.
-    "test_set_default_verify_paths"
-    "test_fallback_default_verify_paths"
-    # https://github.com/pyca/pyopenssl/issues/768
-    "test_wantWriteError"
-    # https://github.com/pyca/pyopenssl/issues/1043
-    "test_alpn_call_failure"
-  ] ++ lib.optionals (lib.hasPrefix "libressl" openssl.meta.name) [
-    # https://github.com/pyca/pyopenssl/issues/791
-    # These tests, we disable in the case that libressl is passed in as openssl.
-    "test_op_no_compression"
-    "test_npn_advertise_error"
-    "test_npn_select_error"
-    "test_npn_client_fail"
-    "test_npn_success"
-    "test_use_certificate_chain_file_unicode"
-    "test_use_certificate_chain_file_bytes"
-    "test_add_extra_chain_cert"
-    "test_set_session_id_fail"
-    "test_verify_with_revoked"
-    "test_set_notAfter"
-    "test_set_notBefore"
-  ] ++ lib.optionals (lib.versionAtLeast (lib.getVersion openssl.name) "1.1") [
-    # these tests are extremely tightly wed to the exact output of the openssl cli tool, including exact punctuation.
-    "test_dump_certificate"
-    "test_dump_privatekey_text"
-    "test_dump_certificate_request"
-    "test_export_text"
-  ] ++ lib.optionals stdenv.is32bit [
-    # https://github.com/pyca/pyopenssl/issues/974
-    "test_verify_with_time"
-  ];
+  disabledTests =
+    [
+      # https://github.com/pyca/pyopenssl/issues/692
+      # These tests, we disable always.
+      "test_set_default_verify_paths"
+      "test_fallback_default_verify_paths"
+      # https://github.com/pyca/pyopenssl/issues/768
+      "test_wantWriteError"
+      # https://github.com/pyca/pyopenssl/issues/1043
+      "test_alpn_call_failure"
+    ]
+    ++ lib.optionals (lib.hasPrefix "libressl" openssl.meta.name) [
+      # https://github.com/pyca/pyopenssl/issues/791
+      # These tests, we disable in the case that libressl is passed in as openssl.
+      "test_op_no_compression"
+      "test_npn_advertise_error"
+      "test_npn_select_error"
+      "test_npn_client_fail"
+      "test_npn_success"
+      "test_use_certificate_chain_file_unicode"
+      "test_use_certificate_chain_file_bytes"
+      "test_add_extra_chain_cert"
+      "test_set_session_id_fail"
+      "test_verify_with_revoked"
+      "test_set_notAfter"
+      "test_set_notBefore"
+    ]
+    ++ lib.optionals (lib.versionAtLeast (lib.getVersion openssl.name) "1.1") [
+      # these tests are extremely tightly wed to the exact output of the openssl cli tool, including exact punctuation.
+      "test_dump_certificate"
+      "test_dump_privatekey_text"
+      "test_dump_certificate_request"
+      "test_export_text"
+    ]
+    ++ lib.optionals stdenv.is32bit [
+      # https://github.com/pyca/pyopenssl/issues/974
+      "test_verify_with_time"
+    ];
 
   meta = with lib; {
     description = "Python wrapper around the OpenSSL library";
diff --git a/pkgs/development/python-modules/pyopenuv/default.nix b/pkgs/development/python-modules/pyopenuv/default.nix
index db03bb04b422a..03354190a1074 100644
--- a/pkgs/development/python-modules/pyopenuv/default.nix
+++ b/pkgs/development/python-modules/pyopenuv/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, aresponses
-, backoff
-, buildPythonPackage
-, certifi
-, fetchFromGitHub
-, poetry-core
-, pytest-aiohttp
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aresponses,
+  backoff,
+  buildPythonPackage,
+  certifi,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-r+StbiU77/1dz41tCseleIWjiIvuvRveVgPNr3n4CEY=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -50,9 +49,7 @@ buildPythonPackage rec {
     "examples/"
   ];
 
-  pythonImportsCheck = [
-    "pyopenuv"
-  ];
+  pythonImportsCheck = [ "pyopenuv" ];
 
   meta = with lib; {
     description = "Python API to retrieve data from openuv.io";
diff --git a/pkgs/development/python-modules/pyopenweathermap/default.nix b/pkgs/development/python-modules/pyopenweathermap/default.nix
new file mode 100644
index 0000000000000..a683857c12bff
--- /dev/null
+++ b/pkgs/development/python-modules/pyopenweathermap/default.nix
@@ -0,0 +1,52 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  poetry-core,
+
+  # dependencies
+  aiohttp,
+
+  # tests
+  pytest-asyncio,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "pyopenweathermap";
+  version = "0.0.10";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "freekode";
+    repo = "pyopenweathermap";
+    # https://github.com/freekode/pyopenweathermap/issues/2
+    rev = "refs/tags/v${version}";
+    hash = "sha256-wEcE4IYVvxEwW5Hhz+DqDIqbjd5/O1hEr7dGgiuMI00=";
+  };
+
+  build-system = [ poetry-core ];
+
+  dependencies = [ aiohttp ];
+
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [
+    "-m"
+    "'not network'"
+  ];
+
+  pythonImportsCheck = [ "pyopenweathermap" ];
+
+  meta = with lib; {
+    description = "Python library for OpenWeatherMap API for Home Assistant";
+    homepage = "https://github.com/freekode/pyopenweathermap";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyopnsense/default.nix b/pkgs/development/python-modules/pyopnsense/default.nix
index 7fdd6170a3774..a59440c9298d1 100644
--- a/pkgs/development/python-modules/pyopnsense/default.nix
+++ b/pkgs/development/python-modules/pyopnsense/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fixtures
-, mock
-, pbr
-, pytestCheckHook
-, pythonOlder
-, requests
-, testtools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fixtures,
+  mock,
+  pbr,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  testtools,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     testtools
   ];
 
-  pythonImportsCheck = [
-    "pyopnsense"
-  ];
+  pythonImportsCheck = [ "pyopnsense" ];
 
   meta = with lib; {
     description = "Python client for the OPNsense API";
diff --git a/pkgs/development/python-modules/pyoppleio/default.nix b/pkgs/development/python-modules/pyoppleio/default.nix
index 4487647ca81d8..b9ef0e23a73f3 100644
--- a/pkgs/development/python-modules/pyoppleio/default.nix
+++ b/pkgs/development/python-modules/pyoppleio/default.nix
@@ -1,14 +1,16 @@
-{ lib
-, buildPythonPackage
-, crc16
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  crc16,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyoppleio";
   version = "1.0.7";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -17,22 +19,20 @@ buildPythonPackage rec {
     hash = "sha256-S1w3pPqhX903kkXUq9ALz0+zRvNGOimLughRRVKjV8E=";
   };
 
-  propagatedBuildInputs = [
-    crc16
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ crc16 ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyoppleio"
-  ];
+  pythonImportsCheck = [ "pyoppleio" ];
 
   meta = with lib; {
     description = "Library for interacting with OPPLE lights";
-    mainProgram = "oppleio";
     homepage = "https://github.com/jedmeng/python-oppleio";
-    license = with licenses; [ asl20 ];
+    license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "oppleio";
   };
 }
diff --git a/pkgs/development/python-modules/pyorthanc/default.nix b/pkgs/development/python-modules/pyorthanc/default.nix
index 3c5b2ec5b78d5..a65d8d6b983bd 100644
--- a/pkgs/development/python-modules/pyorthanc/default.nix
+++ b/pkgs/development/python-modules/pyorthanc/default.nix
@@ -1,40 +1,37 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pythonRelaxDepsHook
-, poetry-core
-, httpx
-, pydicom
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  poetry-core,
+  httpx,
+  pydicom,
 }:
 
 buildPythonPackage rec {
   pname = "pyorthanc";
-  version = "1.16.1";
+  version = "1.18.0";
   disabled = pythonOlder "3.8";
 
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "gacou54";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-6l3L0YUAqedyRjlQ6K3SaAMdGK2C0AeKpJj6MyXi4RA=";
+    hash = "sha256-ObZjTiEB4a7ForsugzKZDdIsTEWOX1zbv53ZJ4AllHE=";
   };
 
-  nativeBuildInputs = [ pythonRelaxDepsHook poetry-core ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [ httpx pydicom ];
-
-  pythonRelaxDeps = [
-    "httpx"
+  dependencies = [
+    httpx
+    pydicom
   ];
 
-  doCheck = false;  # requires orthanc server (not in Nixpkgs)
+  doCheck = false; # requires orthanc server (not in Nixpkgs)
 
-  pythonImportsCheck = [
-    "pyorthanc"
-  ];
+  pythonImportsCheck = [ "pyorthanc" ];
 
   meta = with lib; {
     description = "Python library that wraps the Orthanc REST API";
diff --git a/pkgs/development/python-modules/pyosf/default.nix b/pkgs/development/python-modules/pyosf/default.nix
index 3a23d687b8e17..17cb05240118c 100644
--- a/pkgs/development/python-modules/pyosf/default.nix
+++ b/pkgs/development/python-modules/pyosf/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -26,16 +27,12 @@ buildPythonPackage rec {
 
   preBuild = "export HOME=$TMP";
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Tests require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyosf"
-  ];
+  pythonImportsCheck = [ "pyosf" ];
 
   meta = with lib; {
     description = "Pure Python library for simple sync with Open Science Framework";
diff --git a/pkgs/development/python-modules/pyosmium/default.nix b/pkgs/development/python-modules/pyosmium/default.nix
index 08599707498e1..664054df075b1 100644
--- a/pkgs/development/python-modules/pyosmium/default.nix
+++ b/pkgs/development/python-modules/pyosmium/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cmake
-, libosmium
-, protozero
-, boost
-, expat
-, bzip2
-, zlib
-, pybind11
-, pythonOlder
-, pytest-httpserver
-, pytestCheckHook
-, shapely
-, werkzeug
-, isPyPy
-, lz4
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cmake,
+  libosmium,
+  protozero,
+  boost,
+  expat,
+  bzip2,
+  zlib,
+  pybind11,
+  pythonOlder,
+  pytest-httpserver,
+  pytestCheckHook,
+  shapely,
+  werkzeug,
+  isPyPy,
+  lz4,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
     hash = "sha256-DBFDAKNrD93MRXjoM8dIJQ/HJ9Aj8oMJuPVQxTrKYfI=";
   };
 
-  nativeBuildInputs = [
-    cmake
-  ];
+  nativeBuildInputs = [ cmake ];
 
   buildInputs = [
     libosmium
@@ -48,9 +47,7 @@ buildPythonPackage rec {
     lz4
   ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   preBuild = "cd ..";
 
diff --git a/pkgs/development/python-modules/pyosohotwaterapi/default.nix b/pkgs/development/python-modules/pyosohotwaterapi/default.nix
index bd2b10976a070..137c587b6cbbb 100644
--- a/pkgs/development/python-modules/pyosohotwaterapi/default.nix
+++ b/pkgs/development/python-modules/pyosohotwaterapi/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, loguru
-, numpy
-, pythonOlder
-, setuptools
-, unasync
-, urllib3
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  loguru,
+  numpy,
+  pythonOlder,
+  setuptools,
+  unasync,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -49,9 +50,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "apyosoenergyapi"
-  ];
+  pythonImportsCheck = [ "apyosoenergyapi" ];
 
   meta = with lib; {
     description = "Module for using the OSO Hotwater API";
diff --git a/pkgs/development/python-modules/pyotp/default.nix b/pkgs/development/python-modules/pyotp/default.nix
index df209f092bc50..312a229c10c16 100644
--- a/pkgs/development/python-modules/pyotp/default.nix
+++ b/pkgs/development/python-modules/pyotp/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-NGtmQuDb3eO0/1qTC2ZMqCq/oRY1btSMxCx9ZZDTb2M=";
   };
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   pythonImportsCheck = [ "pyotp" ];
 
diff --git a/pkgs/development/python-modules/pyoutbreaksnearme/default.nix b/pkgs/development/python-modules/pyoutbreaksnearme/default.nix
index 5aa9352f7a4cc..45b6c10ace184 100644
--- a/pkgs/development/python-modules/pyoutbreaksnearme/default.nix
+++ b/pkgs/development/python-modules/pyoutbreaksnearme/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, certifi
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, ujson
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  certifi,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  ujson,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-oR/DApOxNSSczrBeH4sytd/vasbD4rA1poW4zNoeAnU=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -52,9 +51,7 @@ buildPythonPackage rec {
     "examples/"
   ];
 
-  pythonImportsCheck = [
-    "pyoutbreaksnearme"
-  ];
+  pythonImportsCheck = [ "pyoutbreaksnearme" ];
 
   meta = with lib; {
     description = "Library for retrieving data from for Outbreaks Near Me";
diff --git a/pkgs/development/python-modules/pyoverkiz/default.nix b/pkgs/development/python-modules/pyoverkiz/default.nix
index ce40b9c2a9ec7..e006bbcefd514 100644
--- a/pkgs/development/python-modules/pyoverkiz/default.nix
+++ b/pkgs/development/python-modules/pyoverkiz/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, aiohttp
-, attrs
-, backoff
-, backports-strenum
-, boto3
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pyhumps
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, warrant-lite
+{
+  lib,
+  aiohttp,
+  attrs,
+  backoff,
+  backports-strenum,
+  boto3,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pyhumps,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  warrant-lite,
 }:
 
 buildPythonPackage rec {
   pname = "pyoverkiz";
-  version = "1.13.10";
+  version = "1.13.11";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     owner = "iMicknl";
     repo = "python-overkiz-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-05S0tCfCXgvkheUBVDGX8my0c7SCi/ran2emjaGWd9s=";
+    hash = "sha256-N1PcyaVvPBX9ahHedR7pow6jAKwVOMmKqddWhYLtT8w=";
   };
 
   postPatch = ''
@@ -33,9 +34,7 @@ buildPythonPackage rec {
       --replace-fail 'pyhumps = "^3.0.2,!=3.7.3"' 'pyhumps = "^3.0.2"'
   '';
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     aiohttp
@@ -52,9 +51,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pyoverkiz"
-  ];
+  pythonImportsCheck = [ "pyoverkiz" ];
 
   meta = with lib; {
     description = "Module to interact with the Somfy TaHoma API or other OverKiz APIs";
diff --git a/pkgs/development/python-modules/pyowm/default.nix b/pkgs/development/python-modules/pyowm/default.nix
index d342ce313e8cb..78d8e05301e4f 100644
--- a/pkgs/development/python-modules/pyowm/default.nix
+++ b/pkgs/development/python-modules/pyowm/default.nix
@@ -8,7 +8,6 @@
   requests,
   setuptools,
   pytestCheckHook,
-  pythonRelaxDepsHook,
 }:
 
 buildPythonPackage rec {
@@ -29,7 +28,6 @@ buildPythonPackage rec {
 
   build-system = [ setuptools ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     geojson
diff --git a/pkgs/development/python-modules/pyownet/default.nix b/pkgs/development/python-modules/pyownet/default.nix
index 9a368c26087eb..2542877ef0e58 100644
--- a/pkgs/development/python-modules/pyownet/default.nix
+++ b/pkgs/development/python-modules/pyownet/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pypandoc/default.nix b/pkgs/development/python-modules/pypandoc/default.nix
index 7501cddbad185..727545b7148da 100644
--- a/pkgs/development/python-modules/pypandoc/default.nix
+++ b/pkgs/development/python-modules/pypandoc/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pandoc
-, pandocfilters
-, poetry-core
-, pythonOlder
-, substituteAll
-, texliveSmall
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pandoc,
+  pandocfilters,
+  poetry-core,
+  pythonOlder,
+  substituteAll,
+  texliveSmall,
 }:
 
 buildPythonPackage rec {
@@ -32,23 +33,22 @@ buildPythonPackage rec {
     ./skip-tests.patch
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     texliveSmall
     pandocfilters
   ];
 
-  pythonImportsCheck = [
-    "pypandoc"
-  ];
+  pythonImportsCheck = [ "pypandoc" ];
 
   meta = with lib; {
     description = "Thin wrapper for pandoc";
     homepage = "https://github.com/JessicaTegner/pypandoc";
     license = licenses.mit;
-    maintainers = with maintainers; [ sternenseemann bennofs ];
+    maintainers = with maintainers; [
+      sternenseemann
+      bennofs
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pyparser/default.nix b/pkgs/development/python-modules/pyparser/default.nix
index f7db023608c24..7b78bf6f27f04 100644
--- a/pkgs/development/python-modules/pyparser/default.nix
+++ b/pkgs/development/python-modules/pyparser/default.nix
@@ -1,5 +1,8 @@
-{ buildPythonPackage, lib, fetchFromBitbucket
-, parse
+{
+  buildPythonPackage,
+  lib,
+  fetchFromBitbucket,
+  parse,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyparsing/default.nix b/pkgs/development/python-modules/pyparsing/default.nix
index 05d2586ff18d6..ac2e1be377f05 100644
--- a/pkgs/development/python-modules/pyparsing/default.nix
+++ b/pkgs/development/python-modules/pyparsing/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, flit-core
-, jinja2
-, pytestCheckHook
-, railroad-diagrams
-, pyparsing
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  flit-core,
+  jinja2,
+  pytestCheckHook,
+  railroad-diagrams,
+  pyparsing,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-0B8DjO4kLgvt4sYsk8CZI+5icdKy73XE2tWeqVLqO5A=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   # circular dependencies with pytest if enabled by default
   doCheck = false;
@@ -35,7 +34,9 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyparsing" ];
 
   passthru.tests = {
-    check = pyparsing.overridePythonAttrs (_: { doCheck = true; });
+    check = pyparsing.overridePythonAttrs (_: {
+      doCheck = true;
+    });
   };
 
   meta = with lib; {
@@ -46,7 +47,7 @@ buildPythonPackage rec {
       simple grammars, vs. the traditional lex/yacc approach, or the use of
       regular expressions. The pyparsing module provides a library of classes
       that client code uses to construct the grammar directly in Python code.
-   '';
+    '';
     license = licenses.mit;
     maintainers = with maintainers; [ kamadorueda ];
   };
diff --git a/pkgs/development/python-modules/pyparted/default.nix b/pkgs/development/python-modules/pyparted/default.nix
index 7eeedaa2cad8d..9c02f6eb31797 100644
--- a/pkgs/development/python-modules/pyparted/default.nix
+++ b/pkgs/development/python-modules/pyparted/default.nix
@@ -1,11 +1,13 @@
-{ lib, stdenv
-, fetchFromGitHub
-, buildPythonPackage
-, isPyPy
-, pkgs
-, python
-, six
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  isPyPy,
+  pkgs,
+  python,
+  six,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,23 +23,28 @@ buildPythonPackage rec {
     hash = "sha256-AiUCCrEbDD0OxrvXs1YN3/1IE7SuVasC2YCirIG58iU=";
   };
 
-  postPatch = ''
-    sed -i -e 's|mke2fs|${pkgs.e2fsprogs}/bin/mke2fs|' tests/baseclass.py
-    sed -i -e '
-      s|e\.path\.startswith("/tmp/temp-device-")|"temp-device-" in e.path|
-    ' tests/test__ped_ped.py
-  '' + 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
-  '';
+  postPatch =
+    ''
+      sed -i -e 's|mke2fs|${pkgs.e2fsprogs}/bin/mke2fs|' tests/baseclass.py
+      sed -i -e '
+        s|e\.path\.startswith("/tmp/temp-device-")|"temp-device-" in e.path|
+      ' tests/test__ped_ped.py
+    ''
+    + 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
+    '';
 
   preConfigure = ''
     PATH="${pkgs.parted}/sbin:$PATH"
   '';
 
   nativeBuildInputs = [ pkgs.pkg-config ];
-  nativeCheckInputs = [ six pytestCheckHook ];
+  nativeCheckInputs = [
+    six
+    pytestCheckHook
+  ];
   propagatedBuildInputs = [ pkgs.parted ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pypass/default.nix b/pkgs/development/python-modules/pypass/default.nix
index 7e609cbe1ccd9..f5113813a1ae2 100644
--- a/pkgs/development/python-modules/pypass/default.nix
+++ b/pkgs/development/python-modules/pypass/default.nix
@@ -1,21 +1,20 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, click
-, colorama
-, enum34
-, fetchPypi
-, git
-, gnugrep
-, gnupg
-, nose
-, pbr
-, pexpect
-, pythonAtLeast
-, pythonOlder
-, substituteAll
-, tree
-, xclip
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  click,
+  colorama,
+  fetchPypi,
+  git,
+  gnugrep,
+  gnupg,
+  nose,
+  pbr,
+  pexpect,
+  pythonAtLeast,
+  substituteAll,
+  tree,
+  xclip,
 }:
 
 # Use the `pypass` top-level attribute, if you're interested in the
@@ -53,7 +52,7 @@ buildPythonPackage rec {
     click
     colorama
     pexpect
-  ] ++ lib.optional (pythonOlder "3.4") enum34;
+  ];
 
   nativeCheckInputs = [ nose ];
 
diff --git a/pkgs/development/python-modules/pypblib/default.nix b/pkgs/development/python-modules/pypblib/default.nix
index 0132f43ffa467..f4971a6b25774 100644
--- a/pkgs/development/python-modules/pypblib/default.nix
+++ b/pkgs/development/python-modules/pypblib/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "pypblib";
diff --git a/pkgs/development/python-modules/pypca/default.nix b/pkgs/development/python-modules/pypca/default.nix
index 7ca099f2d8658..60203cd00fdc7 100644
--- a/pkgs/development/python-modules/pypca/default.nix
+++ b/pkgs/development/python-modules/pypca/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, colorlog
-, fetchPypi
-, pythonOlder
-, pyserial
+{
+  lib,
+  buildPythonPackage,
+  colorlog,
+  fetchPypi,
+  pythonOlder,
+  pyserial,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pypcap/default.nix b/pkgs/development/python-modules/pypcap/default.nix
index 2c3997c8941aa..4bf0723dc6ce5 100644
--- a/pkgs/development/python-modules/pypcap/default.nix
+++ b/pkgs/development/python-modules/pypcap/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, dpkt
-, fetchFromGitHub
-, libpcap
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  dpkt,
+  fetchFromGitHub,
+  libpcap,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pypck/default.nix b/pkgs/development/python-modules/pypck/default.nix
index c4819b9a012a2..d7d4512883989 100644
--- a/pkgs/development/python-modules/pypck/default.nix
+++ b/pkgs/development/python-modules/pypck/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytest-timeout
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytest-timeout,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pypck";
   version = "0.7.19";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "alengwenus";
-    repo = pname;
+    repo = "pypck";
     rev = "refs/tags/${version}";
     hash = "sha256-D4uUR8A1mrT+mxUswS34hSRczjRkRro/pz9NbMUCPjM=";
   };
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     echo "${version}" > VERSION
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -37,19 +36,13 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "--asyncio-mode=auto"
-  ];
+  pytestFlagsArray = [ "--asyncio-mode=auto" ];
 
-  disabledTests = lib.optionals stdenv.isDarwin [
-    "test_connection_lost"
-  ];
+  disabledTests = lib.optionals stdenv.isDarwin [ "test_connection_lost" ];
 
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [
-    "pypck"
-  ];
+  pythonImportsCheck = [ "pypck" ];
 
   meta = with lib; {
     description = "LCN-PCK library written in Python";
diff --git a/pkgs/development/python-modules/pypdf/default.nix b/pkgs/development/python-modules/pypdf/default.nix
index 5e48ca58781c1..3ecbde22d6900 100644
--- a/pkgs/development/python-modules/pypdf/default.nix
+++ b/pkgs/development/python-modules/pypdf/default.nix
@@ -1,33 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch2
-, pythonOlder
-
-# build-system
-, flit-core
-
-# docs
-, sphinxHook
-, sphinx-rtd-theme
-, myst-parser
-
-# propagates
-, typing-extensions
-
-# optionals
-, cryptography
-, pillow
-
-# tests
-, fpdf2
-, pytestCheckHook
-, pytest-timeout
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # build-system
+  flit-core,
+
+  # docs
+  sphinxHook,
+  sphinx-rtd-theme,
+  myst-parser,
+
+  # propagates
+  typing-extensions,
+
+  # optionals
+  cryptography,
+  pillow,
+
+  # tests
+  fpdf2,
+  pytestCheckHook,
+  pytest-timeout,
 }:
 
 buildPythonPackage rec {
   pname = "pypdf";
-  version = "4.1.0";
+  version = "4.2.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
@@ -36,20 +36,9 @@ buildPythonPackage rec {
     rev = "refs/tags/${version}";
     # fetch sample files used in tests
     fetchSubmodules = true;
-    hash = "sha256-Z3flDC102FwEaNtef0YAfmAFSxpimQNyxt9tRfpKueg=";
+    hash = "sha256-ksLpxfRxrNVXezF0VjbAqadpF6bv/SAOOnCKabhugo0=";
   };
 
-  patches = [
-    (fetchpatch2 {
-      # add missing test marker on networked test
-      url = "https://github.com/py-pdf/pypdf/commit/f43268734a529d4098e6258bf346148fd24c54f0.patch";
-      includes = [
-        "tests/test_generic.py"
-      ];
-      hash = "sha256-Ow32UB4crs3OgT+AmA9TNmcO5Y9SoSahybzD3AmWmVk=";
-    })
-  ];
-
   outputs = [
     "out"
     "doc"
@@ -69,47 +58,33 @@ buildPythonPackage rec {
       --replace "--disable-socket" ""
   '';
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [ typing-extensions ];
 
   passthru.optional-dependencies = rec {
     full = crypto ++ image;
-    crypto = [
-      cryptography
-    ];
-    image = [
-      pillow
-    ];
+    crypto = [ cryptography ];
+    image = [ pillow ];
   };
 
-  pythonImportsCheck = [
-    "pypdf"
-  ];
+  pythonImportsCheck = [ "pypdf" ];
 
   nativeCheckInputs = [
-    (fpdf2.overridePythonAttrs { doCheck = false; })  # avoid reference loop
+    (fpdf2.overridePythonAttrs { doCheck = false; }) # avoid reference loop
     pytestCheckHook
     pytest-timeout
   ] ++ passthru.optional-dependencies.full;
 
   pytestFlagsArray = [
     # don't access the network
-    "-m" "'not enable_socket'"
-  ];
-
-  disabledTests = [
-    # requires fpdf2 which we don't package yet
-    "test_compression"
-    # infinite recursion when including fpdf2
-    "test_merging_many_temporary_files"
+    "-m"
+    "'not enable_socket'"
   ];
 
   meta = with lib; {
-    description = "A pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files";
+    description = "Pure-python PDF library capable of splitting, merging, cropping, and transforming the pages of PDF files";
     homepage = "https://github.com/py-pdf/pypdf";
     changelog = "https://github.com/py-pdf/pypdf/blob/${src.rev}/CHANGELOG.md";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ javaes ];
   };
 }
diff --git a/pkgs/development/python-modules/pypdf2/default.nix b/pkgs/development/python-modules/pypdf2/default.nix
index 34087d582667a..d40c07114504f 100644
--- a/pkgs/development/python-modules/pypdf2/default.nix
+++ b/pkgs/development/python-modules/pypdf2/default.nix
@@ -1,17 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, pythonOlder
-, typing-extensions
-, unittestCheckHook
+{
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  lib,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "pypdf2";
   version = "3.0.1";
 
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchPypi {
     pname = "PyPDF2";
@@ -19,26 +19,23 @@ buildPythonPackage rec {
     hash = "sha256-p0QI9pumJx9xuTUu9O0D3FOjGqQE0ptdMfU7/s/uFEA=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [
-    typing-extensions
-  ];
+  dependencies = lib.optionals (pythonOlder "3.10") [ typing-extensions ];
 
-  nativeCheckInputs = [ unittestCheckHook ];
+  # no test
+  doCheck = false;
 
-  pythonImportsCheck = [
-    "PyPDF2"
-  ];
+  pythonImportsCheck = [ "PyPDF2" ];
 
   meta = with lib; {
-    description = "A Pure-Python library built as a PDF toolkit";
+    description = "Pure-Python library built as a PDF toolkit";
     homepage = "https://pypdf2.readthedocs.io/";
     changelog = "https://github.com/py-pdf/PyPDF2/raw/${version}/CHANGELOG.md";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ desiderius vrthra ];
+    maintainers = with maintainers; [
+      desiderius
+      vrthra
+    ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pypdf3/default.nix b/pkgs/development/python-modules/pypdf3/default.nix
index f70b04db22272..f611eb5ae0b9f 100644
--- a/pkgs/development/python-modules/pypdf3/default.nix
+++ b/pkgs/development/python-modules/pypdf3/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, glibcLocales
-, python
-, tqdm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  glibcLocales,
+  python,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -24,12 +25,10 @@ buildPythonPackage rec {
     ${python.interpreter} -m unittest tests/*.py
   '';
 
-  propagatedBuildInputs = [
-    tqdm
-  ];
+  propagatedBuildInputs = [ tqdm ];
 
   meta = with lib; {
-    description = "A Pure-Python library built as a PDF toolkit";
+    description = "Pure-Python library built as a PDF toolkit";
     homepage = "https://github.com/sfneal/PyPDF3";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ambroisie ];
diff --git a/pkgs/development/python-modules/pypeg2/default.nix b/pkgs/development/python-modules/pypeg2/default.nix
index 092ba9472aa75..3074eb61522d5 100644
--- a/pkgs/development/python-modules/pypeg2/default.nix
+++ b/pkgs/development/python-modules/pypeg2/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -27,5 +28,4 @@ buildPythonPackage rec {
     homepage = "http://fdik.org/pyPEG";
     license = licenses.gpl2;
   };
-
 }
diff --git a/pkgs/development/python-modules/pypemicro/default.nix b/pkgs/development/python-modules/pypemicro/default.nix
index f73649ac72fe8..7f51691529e94 100644
--- a/pkgs/development/python-modules/pypemicro/default.nix
+++ b/pkgs/development/python-modules/pypemicro/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, autoPatchelfHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  autoPatchelfHook,
+}:
 
 buildPythonPackage rec {
   pname = "pypemicro";
@@ -19,7 +24,13 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python interface for PEMicro debug probes";
     homepage = "https://github.com/NXPmicro/pypemicro";
-    license = with licenses; [ bsd3 unfree ]; # it includes shared libraries for which no license is available (https://github.com/NXPmicro/pypemicro/issues/10)
-    maintainers = with maintainers; [ frogamic sbruder ];
+    license = with licenses; [
+      bsd3
+      unfree
+    ]; # it includes shared libraries for which no license is available (https://github.com/NXPmicro/pypemicro/issues/10)
+    maintainers = with maintainers; [
+      frogamic
+      sbruder
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pyperclip/default.nix b/pkgs/development/python-modules/pyperclip/default.nix
index 73ea4bd1c80db..2354927ec2d7a 100644
--- a/pkgs/development/python-modules/pyperclip/default.nix
+++ b/pkgs/development/python-modules/pyperclip/default.nix
@@ -1,22 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, stdenv
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  setuptools,
 }:
 
 buildPythonPackage rec {
-  version = "1.8.2";
-  format = "setuptools";
+  version = "1.9.0";
   pname = "pyperclip";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "105254a8b04934f0bc84e9c24eb360a591aaf6535c9def5f29d92af107a9bf57";
+    hash = "sha256-t94BQt3IG/xcdQfuoZ2pILkiUrVIuWGGyvlKXiUn0xA=";
   };
 
-  # No such file or directory: 'pbcopy'
-  doCheck = !stdenv.isDarwin;
+  build-system = [ setuptools ];
+
+  # https://github.com/asweigart/pyperclip/issues/263
+  doCheck = false;
 
   checkPhase = ''
     ${python.interpreter} tests/test_pyperclip.py
diff --git a/pkgs/development/python-modules/pyperf/default.nix b/pkgs/development/python-modules/pyperf/default.nix
index 76065f3531717..5eab5062ac882 100644
--- a/pkgs/development/python-modules/pyperf/default.nix
+++ b/pkgs/development/python-modules/pyperf/default.nix
@@ -1,35 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, psutil
-, unittestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  psutil,
+  unittestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyperf";
-  version = "2.6.3";
+  version = "2.7.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-l1L+dJwh5GClZLs/Uvwxm4ksYu5hxROLSpu/lK0nVeY=";
+    hash = "sha256-QgHGYBAy83TpyQDG0lRKL1iRq+3BqW7sDnsjOKYkdYk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    psutil
-  ];
+  propagatedBuildInputs = [ psutil ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   unittestFlagsArray = [
     "-s"
@@ -37,9 +32,7 @@ buildPythonPackage rec {
     "-v"
   ];
 
-  pythonImportsCheck = [
-    "pyperf"
-  ];
+  pythonImportsCheck = [ "pyperf" ];
 
   meta = with lib; {
     description = "Python module to generate and modify perf";
diff --git a/pkgs/development/python-modules/pyperscan/default.nix b/pkgs/development/python-modules/pyperscan/default.nix
index 954da379d7ed6..fae3060a744a6 100644
--- a/pkgs/development/python-modules/pyperscan/default.nix
+++ b/pkgs/development/python-modules/pyperscan/default.nix
@@ -1,29 +1,30 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, buildPythonPackage
-, rustPlatform
-, pytestCheckHook
-, libiconv
-, vectorscan
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  rustPlatform,
+  pytestCheckHook,
+  libiconv,
+  vectorscan,
 }:
 
 buildPythonPackage rec {
   pname = "pyperscan";
-  version = "0.2.2";
+  version = "0.3.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "vlaci";
     repo = "pyperscan";
     rev = "v${version}";
-    hash = "sha256-ioNGEmWy+lEzazF1RzMFS06jYLNYll3QSlWAF0AoU7Y=";
+    hash = "sha256-uGZ0XFxnZHSLEWcwoHVd+xMulDRqEIrQ5Lf7886GdlM=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-2zppyxJ+XaI/JCkp7s27/jgtSbwxnI4Yil5KT8WgrVI=";
+    hash = "sha256-a4jNofPIHoKwsD82y2hG2QPu+eM5D7FSGCm2nDo2cLA=";
   };
 
   nativeBuildInputs = with rustPlatform; [
@@ -36,16 +37,20 @@ buildPythonPackage rec {
 
   buildInputs = [ vectorscan ] ++ lib.optional stdenv.isDarwin libiconv;
 
-  # Disable default features to use the system vectorscan library instead of a vendored one.
-  maturinBuildFlags = [ "--no-default-features" ];
-
   pythonImportsCheck = [ "pyperscan" ];
 
   meta = with lib; {
-    description = "a hyperscan binding for Python, which supports vectorscan";
-    homepage = "https://github.com/vlaci/pyperscan";
+    description = "Hyperscan binding for Python, which supports vectorscan";
+    homepage = "https://vlaci.github.io/pyperscan/";
+    changelog = "https://github.com/vlaci/pyperscan/releases/tag/${src.rev}";
     platforms = platforms.unix;
-    license = with licenses; [ asl20 /* or */ mit ];
-    maintainers = with maintainers; [ tnias vlaci ];
+    license = with licenses; [
+      asl20 # or
+      mit
+    ];
+    maintainers = with maintainers; [
+      tnias
+      vlaci
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pyphen/default.nix b/pkgs/development/python-modules/pyphen/default.nix
index 15eb6342988fb..d75608465fe30 100644
--- a/pkgs/development/python-modules/pyphen/default.nix
+++ b/pkgs/development/python-modules/pyphen/default.nix
@@ -1,43 +1,42 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "pyphen";
-  version = "0.14.0";
+  version = "0.15.0";
   format = "pyproject";
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-WWyLO+HBpwQRul9lF9nM/jCDx1iuK5SkXycHNG2OZvo=";
+    hash = "sha256-pDBiPeysU9w2kSQSUyY8uja53XpE/9JoC3Bq82jNovI=";
   };
 
-  nativeBuildInputs = [
-    flit
-  ];
+  nativeBuildInputs = [ flit ];
 
   preCheck = ''
     sed -i '/addopts/d' pyproject.toml
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyphen"
-  ];
+  pythonImportsCheck = [ "pyphen" ];
 
   meta = with lib; {
     description = "Module to hyphenate text";
     homepage = "https://github.com/Kozea/Pyphen";
     changelog = "https://github.com/Kozea/Pyphen/releases/tag/${version}";
-    license = with licenses; [gpl2 lgpl21 mpl20];
+    license = with licenses; [
+      gpl2
+      lgpl21
+      mpl20
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pyphotonfile/default.nix b/pkgs/development/python-modules/pyphotonfile/default.nix
index c18d8c60d478b..315d9c9496edf 100644
--- a/pkgs/development/python-modules/pyphotonfile/default.nix
+++ b/pkgs/development/python-modules/pyphotonfile/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pillow
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pillow,
+  numpy,
 }:
 let
   version = "0.2.1+";
@@ -13,7 +14,10 @@ buildPythonPackage {
   inherit version;
 
   dontUseSetuptoolsCheck = true;
-  propagatedBuildInputs = [ pillow numpy ];
+  propagatedBuildInputs = [
+    pillow
+    numpy
+  ];
 
   src = fetchFromGitHub {
     owner = "cab404";
@@ -28,5 +32,4 @@ buildPythonPackage {
     description = "Library for reading and writing files for the Anycubic Photon 3D-Printer";
     homepage = "https://github.com/cab404/pyphotonfile";
   };
-
 }
diff --git a/pkgs/development/python-modules/pypika/default.nix b/pkgs/development/python-modules/pypika/default.nix
index ab2105ecee1fb..1acaee0a89f2b 100644
--- a/pkgs/development/python-modules/pypika/default.nix
+++ b/pkgs/development/python-modules/pypika/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, parameterized
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  parameterized,
+  unittestCheckHook,
 }:
 buildPythonPackage rec {
   pname = "pypika";
@@ -16,7 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-9HKT1xRu23F5ptiKhIgIR8srLIcpDzpowBNuYOhqMU0=";
   };
 
-  pythonImportsCheck = ["pypika"];
+  pythonImportsCheck = [ "pypika" ];
 
   nativeCheckInputs = [
     parameterized
@@ -24,10 +25,9 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A python SQL query builder";
+    description = "Python SQL query builder";
     homepage = "https://github.com/kayak/pypika";
     license = licenses.asl20;
     maintainers = with maintainers; [ blaggacao ];
   };
 }
-
diff --git a/pkgs/development/python-modules/pypillowfight/default.nix b/pkgs/development/python-modules/pypillowfight/default.nix
index 3d1b9807b34da..601db553cf5eb 100644
--- a/pkgs/development/python-modules/pypillowfight/default.nix
+++ b/pkgs/development/python-modules/pypillowfight/default.nix
@@ -1,5 +1,11 @@
-{ lib, buildPythonPackage, fetchFromGitLab, nose, pillow
-, isPy3k, isPyPy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitLab,
+  nose,
+  pillow,
+  isPy3k,
+  isPyPy,
 }:
 buildPythonPackage rec {
   pname = "pypillowfight";
diff --git a/pkgs/development/python-modules/pypinyin/default.nix b/pkgs/development/python-modules/pypinyin/default.nix
index 882e62505e929..001474532af23 100644
--- a/pkgs/development/python-modules/pypinyin/default.nix
+++ b/pkgs/development/python-modules/pypinyin/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +25,9 @@ buildPythonPackage rec {
       "--cov-report term-missing" ""
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests"
-  ];
+  pytestFlagsArray = [ "tests" ];
 
   meta = with lib; {
     description = "Chinese Characters to Pinyin - 汉字转拼音";
diff --git a/pkgs/development/python-modules/pypiserver/default.nix b/pkgs/development/python-modules/pypiserver/default.nix
index 83cf132ed5c65..e403e7394cbcc 100644
--- a/pkgs/development/python-modules/pypiserver/default.nix
+++ b/pkgs/development/python-modules/pypiserver/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, passlib
-, pip
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-git
-, twine
-, watchdog
-, webtest
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  passlib,
+  pip,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-git,
+  twine,
+  watchdog,
+  webtest,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -33,17 +34,11 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    pip
-  ];
+  propagatedBuildInputs = [ pip ];
 
   passthru.optional-dependencies = {
-    passlib = [
-      passlib
-    ];
-    cache = [
-      watchdog
-    ];
+    passlib = [ passlib ];
+    cache = [ watchdog ];
   };
 
   __darwinAllowLocalNetworking = true;
@@ -77,16 +72,17 @@ buildPythonPackage rec {
     "docker/test_docker.py"
   ];
 
-  pythonImportsCheck = [
-    "pypiserver"
-  ];
+  pythonImportsCheck = [ "pypiserver" ];
 
   meta = with lib; {
     description = "Minimal PyPI server for use with pip/easy_install";
     mainProgram = "pypi-server";
     homepage = "https://github.com/pypiserver/pypiserver";
     changelog = "https://github.com/pypiserver/pypiserver/releases/tag/v${version}";
-    license = with licenses; [ mit zlib ];
+    license = with licenses; [
+      mit
+      zlib
+    ];
     maintainers = with maintainers; [ austinbutler ];
   };
 }
diff --git a/pkgs/development/python-modules/pypitoken/default.nix b/pkgs/development/python-modules/pypitoken/default.nix
index 59a3be31094c5..8b09b773d8b50 100644
--- a/pkgs/development/python-modules/pypitoken/default.nix
+++ b/pkgs/development/python-modules/pypitoken/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, jsonschema
-, poetry-core
-, pymacaroons
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jsonschema,
+  poetry-core,
+  pymacaroons,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     sed -i "/--cov/d" setup.cfg
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     pymacaroons
@@ -43,9 +42,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pypitoken"
-  ];
+  pythonImportsCheck = [ "pypitoken" ];
 
   meta = with lib; {
     description = "Library for generating and manipulating PyPI tokens";
diff --git a/pkgs/development/python-modules/pyplaato/default.nix b/pkgs/development/python-modules/pyplaato/default.nix
index f070340f9290c..a2457396a9ad7 100644
--- a/pkgs/development/python-modules/pyplaato/default.nix
+++ b/pkgs/development/python-modules/pyplaato/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, aiohttp
-, python-dateutil
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  aiohttp,
+  python-dateutil,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyplaato"
-  ];
+  pythonImportsCheck = [ "pyplaato" ];
 
   meta = with lib; {
     description = "Python API client for fetching Plaato data";
diff --git a/pkgs/development/python-modules/pyplatec/default.nix b/pkgs/development/python-modules/pyplatec/default.nix
index 6a4e46f5c1c6f..b61fb265dcf79 100644
--- a/pkgs/development/python-modules/pyplatec/default.nix
+++ b/pkgs/development/python-modules/pyplatec/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -18,8 +19,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Library to simulate plate tectonics with Python bindings";
-    homepage    = "https://github.com/Mindwerks/plate-tectonics";
-    license     = licenses.lgpl3;
+    homepage = "https://github.com/Mindwerks/plate-tectonics";
+    license = licenses.lgpl3;
   };
-
 }
diff --git a/pkgs/development/python-modules/pypng/default.nix b/pkgs/development/python-modules/pypng/default.nix
index c79ec4f92a0ef..eb06d04b5dbe7 100644
--- a/pkgs/development/python-modules/pypng/default.nix
+++ b/pkgs/development/python-modules/pypng/default.nix
@@ -1,27 +1,40 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitLab,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pypng";
-  version = "0.0.21";
-  format = "pyproject";
+  version = "0.20220715.0";
+  pyproject = true;
 
-  src = fetchFromGitHub {
+  src = fetchFromGitLab {
     owner = "drj11";
     repo = "pypng";
     rev = "refs/tags/${pname}-${version}";
-    hash = "sha256-JU1GCSTm2s6Kczn6aRcF5DizPJVpizNtnAMJxTBi9vo=";
+    hash = "sha256-tTnsGCAmHexDWm/T5xpHpcBaQcBEqMfTFaoOAeC+pDs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
+  nativeBuildInputs = [ setuptools ];
+
+  patches = [
+    # pngsuite is imported by code/test_png.py but is not defined in
+    # setup.cfg, so it isn't built - this adds it to py_modules
+    ./setup-cfg-pngsuite.patch
   ];
 
-  pythonImportsCheck = [ "png" ];
+  # allow tests to use the binaries produced by this package
+  preCheck = ''
+    export PATH="$out/bin:$PATH"
+  '';
+
+  pythonImportsCheck = [
+    "png"
+    "pngsuite"
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/pypng/setup-cfg-pngsuite.patch b/pkgs/development/python-modules/pypng/setup-cfg-pngsuite.patch
new file mode 100644
index 0000000000000..085aa47f7f46d
--- /dev/null
+++ b/pkgs/development/python-modules/pypng/setup-cfg-pngsuite.patch
@@ -0,0 +1,12 @@
+diff --git a/setup.cfg b/setup.cfg
+index 04bba8a..db159d2 100644
+--- a/setup.cfg
++++ b/setup.cfg
+@@ -28,6 +28,7 @@ package_dir =
+        = code
+ py_modules =
+     png
++    pngsuite
+ scripts =
+     code/prichunkpng
+     code/pricolpng
diff --git a/pkgs/development/python-modules/pypoint/default.nix b/pkgs/development/python-modules/pypoint/default.nix
index 20b4ba6d0a7ad..e0e5aab54350c 100644
--- a/pkgs/development/python-modules/pypoint/default.nix
+++ b/pkgs/development/python-modules/pypoint/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, authlib
-, httpx
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  authlib,
+  httpx,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
   # upstream has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pypoint"
-  ];
+  pythonImportsCheck = [ "pypoint" ];
 
   meta = with lib; {
     description = "Python module for communicating with Minut Point";
diff --git a/pkgs/development/python-modules/pypoolstation/default.nix b/pkgs/development/python-modules/pypoolstation/default.nix
index 6203e88cbf619..472d16ede4862 100644
--- a/pkgs/development/python-modules/pypoolstation/default.nix
+++ b/pkgs/development/python-modules/pypoolstation/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, backoff
-, buildPythonPackage
-, fetchPypi
-, importlib-metadata
-, poetry-core
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  backoff,
+  buildPythonPackage,
+  fetchPypi,
+  importlib-metadata,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-hszGCA2DDGQSh37lxp8G0bqHliH/+i2so5imDyzyOJw=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pypoolstation"
-  ];
+  pythonImportsCheck = [ "pypoolstation" ];
 
   meta = with lib; {
     description = "Python library to interact the the Poolstation platform";
diff --git a/pkgs/development/python-modules/pyppeteer/default.nix b/pkgs/development/python-modules/pyppeteer/default.nix
index 186d3828f4cae..396fb5712e50c 100644
--- a/pkgs/development/python-modules/pyppeteer/default.nix
+++ b/pkgs/development/python-modules/pyppeteer/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, appdirs
-, buildPythonPackage
-, certifi
-, fetchFromGitHub
-, importlib-metadata
-, poetry-core
-, pyee
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, syncer
-, tqdm
-, urllib3
-, websockets
+{
+  lib,
+  appdirs,
+  buildPythonPackage,
+  certifi,
+  fetchFromGitHub,
+  importlib-metadata,
+  poetry-core,
+  pyee,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  syncer,
+  tqdm,
+  urllib3,
+  websockets,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
       --replace 'websockets = "^10.0"' 'websockets = "*"'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     appdirs
@@ -83,9 +82,7 @@ buildPythonPackage rec {
     "TestPDF"
   ];
 
-  pythonImportsCheck = [
-    "pyppeteer"
-  ];
+  pythonImportsCheck = [ "pyppeteer" ];
 
   meta = with lib; {
     description = "Headless chrome/chromium automation library (unofficial port of puppeteer)";
diff --git a/pkgs/development/python-modules/pyprecice/default.nix b/pkgs/development/python-modules/pyprecice/default.nix
index b390314dd9816..c0885c1f0f30e 100644
--- a/pkgs/development/python-modules/pyprecice/default.nix
+++ b/pkgs/development/python-modules/pyprecice/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, mpi4py
-, numpy
-, precice
-, pkgconfig
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  mpi4py,
+  numpy,
+  precice,
+  pkgconfig,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pypresence/default.nix b/pkgs/development/python-modules/pypresence/default.nix
index 87b32a590769a..96aec1c90dc77 100644
--- a/pkgs/development/python-modules/pypresence/default.nix
+++ b/pkgs/development/python-modules/pypresence/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "pypresence";
diff --git a/pkgs/development/python-modules/pyprind/default.nix b/pkgs/development/python-modules/pyprind/default.nix
index 58a508adf7951..ec8367aee0f49 100644
--- a/pkgs/development/python-modules/pyprind/default.nix
+++ b/pkgs/development/python-modules/pyprind/default.nix
@@ -1,6 +1,10 @@
-{ lib, fetchPypi, buildPythonPackage
-, psutil
-, pytest }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  psutil,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "pyprind";
diff --git a/pkgs/development/python-modules/pyprobables/default.nix b/pkgs/development/python-modules/pyprobables/default.nix
index be4410cce276f..03a4fbd9567c4 100644
--- a/pkgs/development/python-modules/pyprobables/default.nix
+++ b/pkgs/development/python-modules/pyprobables/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-maikrZlBzhv35zPXmKqdJzAz6eZDmluLUvkOkaPTCDU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "probables"
-  ];
+  pythonImportsCheck = [ "probables" ];
 
   meta = with lib; {
     description = "Probabilistic data structures";
diff --git a/pkgs/development/python-modules/pyprof2calltree/default.nix b/pkgs/development/python-modules/pyprof2calltree/default.nix
index db979ae4297ec..7623c2f8a2474 100644
--- a/pkgs/development/python-modules/pyprof2calltree/default.nix
+++ b/pkgs/development/python-modules/pyprof2calltree/default.nix
@@ -1,19 +1,26 @@
-{ lib, buildPythonPackage, fetchFromGitHub }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "pyprof2calltree";
   version = "1.4.5";
-  format = "setuptools";
+  pyproject = true;
 
   # Fetch from GitHub because the PyPi packaged version does not
   # include all test files.
   src = fetchFromGitHub {
     owner = "pwaller";
     repo = "pyprof2calltree";
-    rev = "v" + version;
-    sha256 = "0akighssiswfhi5285rrj37am6flg3ip17c34bayq3r8yyk1iciy";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-PrIYpvcoD+zVIoOdcON41JmqzpA5FyRKhI7rqDV8cSo=";
   };
 
+  build-system = [ setuptools ];
+
   meta = with lib; {
     description = "Help visualize profiling data from cProfile with kcachegrind and qcachegrind";
     mainProgram = "pyprof2calltree";
diff --git a/pkgs/development/python-modules/pyproj/default.nix b/pkgs/development/python-modules/pyproj/default.nix
index bb98e96e02a16..4b3a6fedd0301 100644
--- a/pkgs/development/python-modules/pyproj/default.nix
+++ b/pkgs/development/python-modules/pyproj/default.nix
@@ -1,18 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, proj
-, pythonOlder
-, substituteAll
-, cython
-, pytestCheckHook
-, mock
-, certifi
-, numpy
-, shapely
-, pandas
-, xarray
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pytestCheckHook,
+  pythonOlder,
+  substituteAll,
+
+  certifi,
+  cython,
+  mock,
+  numpy,
+  pandas,
+  proj,
+  shapely,
+  xarray,
 }:
 
 buildPythonPackage rec {
@@ -35,21 +37,25 @@ buildPythonPackage rec {
       proj = proj;
       projdev = proj.dev;
     })
+
+    # fix test failure caused by update of EPSG DB
+    (fetchpatch {
+      url = "https://github.com/pyproj4/pyproj/commit/3f7c7e5bcec33d9b2f37ceb03c484ea318dff3ce.patch";
+      hash = "sha256-0J8AlInuhFDAYIBJAJ00XbqIanJY/D8xPVwlOapmLDE=";
+    })
   ];
 
   nativeBuildInputs = [ cython ];
   buildInputs = [ proj ];
 
-  propagatedBuildInputs = [
-     certifi
-  ];
+  propagatedBuildInputs = [ certifi ];
 
   nativeCheckInputs = [
-    pytestCheckHook
     mock
     numpy
-    shapely
     pandas
+    pytestCheckHook
+    shapely
     xarray
   ];
 
@@ -110,6 +116,12 @@ buildPythonPackage rec {
     homepage = "https://github.com/pyproj4/pyproj";
     changelog = "https://github.com/pyproj4/pyproj/blob/${src.rev}/docs/history.rst";
     license = licenses.mit;
-    maintainers = with maintainers; teams.geospatial.members ++ [ lsix dotlambda ];
+    maintainers =
+      with maintainers;
+      teams.geospatial.members
+      ++ [
+        lsix
+        dotlambda
+      ];
   };
 }
diff --git a/pkgs/development/python-modules/pyproject-api/default.nix b/pkgs/development/python-modules/pyproject-api/default.nix
index efcc356320152..09eb72384c1ab 100644
--- a/pkgs/development/python-modules/pyproject-api/default.nix
+++ b/pkgs/development/python-modules/pyproject-api/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build time
-, hatchling
-, hatch-vcs
+  # build time
+  hatchling,
+  hatch-vcs,
 
-# runtime
-, packaging
-, toml
-, tomli
+  # runtime
+  packaging,
+  toml,
+  tomli,
 
-# docs
-, sphinxHook
-, furo
-, sphinx-autodoc-typehints
+  # docs
+  sphinxHook,
+  furo,
+  sphinx-autodoc-typehints,
 
-# tests
-, pytest-mock
-, pytestCheckHook
-, setuptools
-, virtualenv
-, wheel
+  # tests
+  pytest-mock,
+  pytestCheckHook,
+  setuptools,
+  virtualenv,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -54,11 +55,7 @@ buildPythonPackage rec {
     sphinx-autodoc-typehints
   ];
 
-  propagatedBuildInputs = [
-    packaging
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  propagatedBuildInputs = [ packaging ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   nativeCheckInputs = [
     pytest-mock
@@ -73,9 +70,7 @@ buildPythonPackage rec {
     "test_can_build_on_python_2"
   ];
 
-  pythonImportsCheck = [
-    "pyproject_api"
-  ];
+  pythonImportsCheck = [ "pyproject_api" ];
 
   meta = with lib; {
     changelog = "https://github.com/tox-dev/pyproject-api/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/pyproject-hooks/default.nix b/pkgs/development/python-modules/pyproject-hooks/default.nix
index 3624b5f02edb2..cc47f9d2a840e 100644
--- a/pkgs/development/python-modules/pyproject-hooks/default.nix
+++ b/pkgs/development/python-modules/pyproject-hooks/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, pyproject-hooks
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, testpath
-, tomli
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  pyproject-hooks,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  testpath,
+  tomli,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     hash = "sha256-8nGymLl/WVXVP7ErcsH7GUjCLBprcLMVxUztrKAmTvU=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [ tomli ];
 
   # We need to disable tests because this package is part of the bootstrap chain
   # and its test dependencies cannot be built yet when this is being built.
@@ -59,9 +56,7 @@ buildPythonPackage rec {
     };
   };
 
-  pythonImportsCheck = [
-    "pyproject_hooks"
-  ];
+  pythonImportsCheck = [ "pyproject_hooks" ];
 
   meta = with lib; {
     description = "Low-level library for calling build-backends in `pyproject.toml`-based project ";
diff --git a/pkgs/development/python-modules/pyproject-metadata/default.nix b/pkgs/development/python-modules/pyproject-metadata/default.nix
index f0bdb9379ec8e..33adc83c67b83 100644
--- a/pkgs/development/python-modules/pyproject-metadata/default.nix
+++ b/pkgs/development/python-modules/pyproject-metadata/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, packaging
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, tomli
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  packaging,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  tomli,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -23,26 +24,16 @@ buildPythonPackage rec {
     hash = "sha256-N21aAHZKwpRApUV5+I5mt9nLfmKdNcNaHHJIv+vJtFU=";
   };
 
-  build-system = [
-    flit-core
-  ];
+  build-system = [ flit-core ];
 
-  dependencies = [
-    packaging
-  ];
+  dependencies = [ packaging ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  nativeCheckInputs = [ pytestCheckHook ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   # Many broken tests, and missing test files
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyproject_metadata"
-  ];
+  pythonImportsCheck = [ "pyproject_metadata" ];
 
   meta = with lib; {
     description = "PEP 621 metadata parsing";
diff --git a/pkgs/development/python-modules/pyprosegur/default.nix b/pkgs/development/python-modules/pyprosegur/default.nix
index f1be9de65abb3..a132407b23362 100644
--- a/pkgs/development/python-modules/pyprosegur/default.nix
+++ b/pkgs/development/python-modules/pyprosegur/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiofiles
-, aiohttp
-, backoff
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiofiles,
+  aiohttp,
+  backoff,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-OHFJhufymD181FODHlIu+O5xh9dfKwEIVQX/zTOC6ks=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiofiles
@@ -37,9 +36,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyprosegur"
-  ];
+  pythonImportsCheck = [ "pyprosegur" ];
 
   meta = with lib; {
     description = "Python module to communicate with Prosegur Residential Alarms";
diff --git a/pkgs/development/python-modules/pyprusalink/default.nix b/pkgs/development/python-modules/pyprusalink/default.nix
index 7e8a924c96c74..88c7eb338ed72 100644
--- a/pkgs/development/python-modules/pyprusalink/default.nix
+++ b/pkgs/development/python-modules/pyprusalink/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, httpx
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpx,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-Opip696hXV1gqFC1cWfrSCkrsldl7M7XZAqUaVkDy7M=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    httpx
-  ];
+  propagatedBuildInputs = [ httpx ];
 
   # Module doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyprusalink"
-  ];
+  pythonImportsCheck = [ "pyprusalink" ];
 
   meta = with lib; {
     description = "Library to communicate with PrusaLink ";
diff --git a/pkgs/development/python-modules/pypsrp/default.nix b/pkgs/development/python-modules/pypsrp/default.nix
index 1dd8c57a260d3..7cf8c56581dc8 100644
--- a/pkgs/development/python-modules/pypsrp/default.nix
+++ b/pkgs/development/python-modules/pypsrp/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, asyncssh
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, gssapi
-, httpcore
-, httpx
-, krb5
-, psrpcore
-, psutil
-, pyspnego
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, requests
-, requests-credssp
-, xmldiff
+{
+  lib,
+  asyncssh,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  gssapi,
+  httpcore,
+  httpx,
+  krb5,
+  psrpcore,
+  psutil,
+  pyspnego,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  requests,
+  requests-credssp,
+  xmldiff,
 }:
 
 buildPythonPackage rec {
@@ -50,25 +51,17 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    credssp = [
-      requests-credssp
-    ];
+    credssp = [ requests-credssp ];
     kerberos = [
       # pyspnego[kerberos] will have those two dependencies
       gssapi
       krb5
     ];
-    named_pipe = [
-      psutil
-    ];
-    ssh = [
-      asyncssh
-    ];
+    named_pipe = [ psutil ];
+    ssh = [ asyncssh ];
   };
 
-  pythonImportsCheck = [
-    "pypsrp"
-  ];
+  pythonImportsCheck = [ "pypsrp" ];
 
   disabledTests = [
     # TypeError: Backend.load_rsa_private_numbers() missing 1 required...
diff --git a/pkgs/development/python-modules/pyptlib/default.nix b/pkgs/development/python-modules/pyptlib/default.nix
index 24d4cbf86b293..04a7a13248a2f 100644
--- a/pkgs/development/python-modules/pyptlib/default.nix
+++ b/pkgs/development/python-modules/pyptlib/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPyPy
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -16,12 +17,11 @@ buildPythonPackage rec {
     sha256 = "01y6vbwncqb0hxlnin6whd9wrrm5my4qzjhk76fnix78v7ip515r";
   };
 
-  doCheck = false;  # No such file or directory errors on 32bit
+  doCheck = false; # No such file or directory errors on 32bit
 
   meta = with lib; {
     homepage = "https://pypi.org/project/pyptlib/";
-    description = "A python implementation of the Pluggable Transports for Circumvention specification for Tor";
+    description = "Python implementation of the Pluggable Transports for Circumvention specification for Tor";
     license = licenses.bsd2;
   };
-
 }
diff --git a/pkgs/development/python-modules/pypubsub/default.nix b/pkgs/development/python-modules/pypubsub/default.nix
index e883700ca78ba..cac77e5cc2cd2 100644
--- a/pkgs/development/python-modules/pypubsub/default.nix
+++ b/pkgs/development/python-modules/pypubsub/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy27, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy27,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "pypubsub";
@@ -24,14 +30,14 @@ buildPythonPackage rec {
     homepage = "https://github.com/schollii/pypubsub";
     description = "Python 3 publish-subcribe library";
     longDescription = ''
-     Provides a publish-subscribe API to facilitate event-based or
-     message-based  architecture in a single-process application. It is pure
-     Python  and works on Python 3.3+. It is centered on the notion of a topic;
-     senders publish messages of a given topic, and listeners subscribe to
-     messages of a given topic, all inside the same process. The package also
-     supports a variety of advanced features that facilitate debugging and
-     maintaining topics and messages in larger desktop- or server-based
-     applications.
+      Provides a publish-subscribe API to facilitate event-based or
+      message-based  architecture in a single-process application. It is pure
+      Python  and works on Python 3.3+. It is centered on the notion of a topic;
+      senders publish messages of a given topic, and listeners subscribe to
+      messages of a given topic, all inside the same process. The package also
+      supports a variety of advanced features that facilitate debugging and
+      maintaining topics and messages in larger desktop- or server-based
+      applications.
     '';
     license = licenses.bsd2;
     maintainers = with maintainers; [ tfmoraes ];
diff --git a/pkgs/development/python-modules/pypugjs/default.nix b/pkgs/development/python-modules/pypugjs/default.nix
index 6f8bf6c67a253..32a93e89c57a1 100644
--- a/pkgs/development/python-modules/pypugjs/default.nix
+++ b/pkgs/development/python-modules/pypugjs/default.nix
@@ -1,31 +1,35 @@
-{ lib
-, buildPythonPackage
-, charset-normalizer
-, django
-, fetchFromGitHub
-, jinja2
-, mako
-, nose
-, pyramid
-, pyramid-mako
-, pytestCheckHook
-, six
-, tornado
+{
+  lib,
+  buildPythonPackage,
+  charset-normalizer,
+  django,
+  fetchFromGitHub,
+  jinja2,
+  mako,
+  nose,
+  pyramid,
+  pyramid-mako,
+  pytestCheckHook,
+  six,
+  tornado,
 }:
 
 buildPythonPackage rec {
   pname = "pypugjs";
-  version = "5.9.12";
+  version = "5.10.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "kakulukia";
     repo = "pypugjs";
-    rev = "v${version}";
-    hash = "sha256-6tIhKCa8wg01gNFygCS6GdUHfbWBu7wOZeMkCExRR34=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-W+EVNxT2OimNENHe4lJDn6Wm1EbBysGuCD3/Wkdew/U=";
   };
 
-  propagatedBuildInputs = [ six charset-normalizer ];
+  propagatedBuildInputs = [
+    six
+    charset-normalizer
+  ];
 
   nativeCheckInputs = [
     django
@@ -38,9 +42,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestCheckFlags = [
-    "pypugjs/testsuite"
-  ];
+  pytestCheckFlags = [ "pypugjs/testsuite" ];
 
   meta = with lib; {
     description = "PugJS syntax template adapter for Django, Jinja2, Mako and Tornado templates";
diff --git a/pkgs/development/python-modules/pypykatz/default.nix b/pkgs/development/python-modules/pypykatz/default.nix
index 84d92530f9c5a..9c01099f5621a 100644
--- a/pkgs/development/python-modules/pypykatz/default.nix
+++ b/pkgs/development/python-modules/pypykatz/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aesedb
-, aiosmb
-, aiowinreg
-, buildPythonPackage
-, fetchPypi
-, minidump
-, minikerberos
-, msldap
-, pythonOlder
-, winsspi
+{
+  lib,
+  aesedb,
+  aiosmb,
+  aiowinreg,
+  buildPythonPackage,
+  fetchPypi,
+  minidump,
+  minikerberos,
+  msldap,
+  pythonOlder,
+  winsspi,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
   # Project doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pypykatz"
-  ];
+  pythonImportsCheck = [ "pypykatz" ];
 
   meta = with lib; {
     description = "Mimikatz implementation in Python";
diff --git a/pkgs/development/python-modules/pypytools/default.nix b/pkgs/development/python-modules/pypytools/default.nix
index 870768dc81129..6c6a74b43a9e3 100644
--- a/pkgs/development/python-modules/pypytools/default.nix
+++ b/pkgs/development/python-modules/pypytools/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, attrs
-, freezegun
-, numpy
-, py
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchpatch,
+  fetchPypi,
+  attrs,
+  freezegun,
+  numpy,
+  py,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-oUDAU+TRwLroNfQGYusAQKdRkHcazysqiDLfp77v5Sk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     # attrs is an implicit dependency
@@ -50,9 +49,7 @@ buildPythonPackage rec {
     })
   ];
 
-  pythonImportsCheck = [
-    "pypytools"
-  ];
+  pythonImportsCheck = [ "pypytools" ];
 
   disabledTests = lib.optionals (pythonAtLeast "3.11") [
     # https://github.com/antocuni/pypytools/issues/4
diff --git a/pkgs/development/python-modules/pyqldb/default.nix b/pkgs/development/python-modules/pyqldb/default.nix
index 377a33cb90a3a..ce8daa6c2887a 100644
--- a/pkgs/development/python-modules/pyqldb/default.nix
+++ b/pkgs/development/python-modules/pyqldb/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchFromGitHub, boto3, amazon-ion, ionhash, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  boto3,
+  amazon-ion,
+  ionhash,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "pyqldb";
@@ -12,7 +20,11 @@ buildPythonPackage rec {
     hash = "sha256-TyIXvk3ZJn5J2SBFDTPJpSnGFOFheXIqR2daL5npOk8=";
   };
 
-  propagatedBuildInputs = [ boto3 amazon-ion ionhash ];
+  propagatedBuildInputs = [
+    boto3
+    amazon-ion
+    ionhash
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/pyqrcode/default.nix b/pkgs/development/python-modules/pyqrcode/default.nix
index 2b0ce5193555f..c624964eecf3e 100644
--- a/pkgs/development/python-modules/pyqrcode/default.nix
+++ b/pkgs/development/python-modules/pyqrcode/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "pyqrcode";
@@ -14,7 +18,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A QR code generator written purely in Python with SVG, EPS, PNG and terminal output";
+    description = "QR code generator written purely in Python with SVG, EPS, PNG and terminal output";
     homepage = "https://github.com/mnooner256/pyqrcode";
     license = licenses.bsd3;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/pyqt-builder/default.nix b/pkgs/development/python-modules/pyqt-builder/default.nix
index 5bd7cca6189e3..ef00791037b3c 100644
--- a/pkgs/development/python-modules/pyqt-builder/default.nix
+++ b/pkgs/development/python-modules/pyqt-builder/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, packaging
-, setuptools
-, setuptools-scm
-, sip
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  packaging,
+  setuptools,
+  setuptools-scm,
+  sip,
+  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "pyqt-builder";
-  version = "1.16.0";
+  version = "1.16.2";
   format = "pyproject";
 
   src = fetchPypi {
-    pname = "PyQt-builder";
+    pname = "pyqt_builder";
     inherit version;
-    hash = "sha256-R7vSz6VDACAQj59AMB4WbL6pi27z5TlTNQvdTGsxqxg=";
+    hash = "sha256-v3I823zSPSUS4qzae8a4HwD7BczF6aiEa9NNR1FM3bk=";
   };
 
   nativeBuildInputs = [
@@ -25,7 +26,10 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [ packaging sip ];
+  propagatedBuildInputs = [
+    packaging
+    sip
+  ];
 
   pythonImportsCheck = [ "pyqtbuild" ];
 
@@ -34,7 +38,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "PEP 517 compliant build system for PyQt";
-    homepage = "https://pypi.org/project/PyQt-builder/";
+    homepage = "https://github.com/Python-PyQt/PyQt-builder";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ nrdxp ];
   };
diff --git a/pkgs/development/python-modules/pyqt/5.x.nix b/pkgs/development/python-modules/pyqt/5.x.nix
index 0af19e2c174ef..ed0264c816dd6 100644
--- a/pkgs/development/python-modules/pyqt/5.x.nix
+++ b/pkgs/development/python-modules/pyqt/5.x.nix
@@ -1,28 +1,29 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, setuptools
-, isPy27
-, fetchPypi
-, pkg-config
-, dbus
-, lndir
-, dbus-python
-, sip
-, pyqt5-sip
-, pyqt-builder
-, libsForQt5
-, enableVerbose ? true
-, withConnectivity ? false
-, withMultimedia ? false
-, withWebKit ? false
-, withWebSockets ? false
-, withLocation ? false
-, withSerialPort ? false
-, withTools ? false
-, pkgsBuildTarget
-, buildPackages
-, dbusSupport ? !stdenv.isDarwin
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  setuptools,
+  isPy27,
+  fetchPypi,
+  pkg-config,
+  dbus,
+  lndir,
+  dbus-python,
+  sip,
+  pyqt5-sip,
+  pyqt-builder,
+  libsForQt5,
+  enableVerbose ? true,
+  withConnectivity ? false,
+  withMultimedia ? false,
+  withWebKit ? false,
+  withWebSockets ? false,
+  withLocation ? false,
+  withSerialPort ? false,
+  withTools ? false,
+  pkgsBuildTarget,
+  buildPackages,
+  dbusSupport ? !stdenv.isDarwin,
 }:
 
 buildPythonPackage rec {
@@ -47,52 +48,54 @@ buildPythonPackage rec {
   ];
 
   postPatch =
-  # be more verbose
-  ''
-    cat >> pyproject.toml <<EOF
-  '' + lib.optionalString enableVerbose ''
-    [tool.sip.project]
-    verbose = true
-  ''
-  # Due to bug in SIP .whl name generation we have to bump minimal macos sdk upto 11.0 for
-  # aarch64-darwin. This patch can be removed once SIP will fix it in upstream,
-  # see https://github.com/NixOS/nixpkgs/pull/186612#issuecomment-1214635456.
-  + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
-    minimum-macos-version = "11.0"
-  '' + ''
-    EOF
-  ''
-
-  # pyqt-builder tries to compile *and run* these programs.  This
-  # is really sad because the only thing they do is print out a
-  # flag based on whether or not some compile-time symbol was
-  # defined.  This could all be done without having to *execute*
-  # cross-compiled programs!
-  #
-  # Here is the complete list of things checked:
-  #
-  # QT_NO_PRINTDIALOG                                                           => PyQt_PrintDialog
-  # QT_NO_PRINTER                                                               => PyQt_Printer
-  # QT_NO_PRINTPREVIEWDIALOG                                                    => PyQt_PrintPreviewDialog
-  # QT_NO_PRINTPREVIEWWIDGET                                                    => PyQt_PrintPreviewWidget
-  # QT_NO_SSL                                                                   => PyQt_SSL
-  # QT_SHARED || QT_DLL                                                         => shared (otherwise static)
-  # QT_NO_PROCESS                                                               => PyQt_Process
-  # QT_NO_FPU || Q_PROCESSOR_ARM || Q_OS_WINCE                                  => PyQt_qreal_double
-  # sizeof (qreal) != sizeof (double)                                           => PyQt_qreal_double
-  # !Q_COMPILER_CONSTEXPR !Q_COMPILER_UNIFORM_INIT                              => PyQt_CONSTEXPR
-  # QT_NO_ACCESSIBILITY                                                         => PyQt_Accessibility
-  # QT_NO_OPENGL                                                                => PyQt_OpenGL PyQt_Desktop_OpenGL
-  # defined(QT_OPENGL_ES) || defined(QT_OPENGL_ES_2) || defined(QT_OPENGL_ES_3) => PyQt_Desktop_OpenGL
-  # QT_NO_RAWFONT                                                               => PyQt_RawFont
-  # QT_NO_SESSIONMANAGER                                                        => PyQt_SessionManager
-  #
-  + lib.optionalString (!(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) ''
-    rm config-tests/cfgtest_QtCore.cpp
-    rm config-tests/cfgtest_QtGui.cpp
-    rm config-tests/cfgtest_QtNetwork.cpp
-    rm config-tests/cfgtest_QtPrintSupport.cpp
-  '';
+    # be more verbose
+    ''
+      cat >> pyproject.toml <<EOF
+    ''
+    + lib.optionalString enableVerbose ''
+      [tool.sip.project]
+      verbose = true
+    ''
+    # Due to bug in SIP .whl name generation we have to bump minimal macos sdk upto 11.0 for
+    # aarch64-darwin. This patch can be removed once SIP will fix it in upstream,
+    # see https://github.com/NixOS/nixpkgs/pull/186612#issuecomment-1214635456.
+    + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
+      minimum-macos-version = "11.0"
+    ''
+    + ''
+      EOF
+    ''
+
+    # pyqt-builder tries to compile *and run* these programs.  This
+    # is really sad because the only thing they do is print out a
+    # flag based on whether or not some compile-time symbol was
+    # defined.  This could all be done without having to *execute*
+    # cross-compiled programs!
+    #
+    # Here is the complete list of things checked:
+    #
+    # QT_NO_PRINTDIALOG                                                           => PyQt_PrintDialog
+    # QT_NO_PRINTER                                                               => PyQt_Printer
+    # QT_NO_PRINTPREVIEWDIALOG                                                    => PyQt_PrintPreviewDialog
+    # QT_NO_PRINTPREVIEWWIDGET                                                    => PyQt_PrintPreviewWidget
+    # QT_NO_SSL                                                                   => PyQt_SSL
+    # QT_SHARED || QT_DLL                                                         => shared (otherwise static)
+    # QT_NO_PROCESS                                                               => PyQt_Process
+    # QT_NO_FPU || Q_PROCESSOR_ARM || Q_OS_WINCE                                  => PyQt_qreal_double
+    # sizeof (qreal) != sizeof (double)                                           => PyQt_qreal_double
+    # !Q_COMPILER_CONSTEXPR !Q_COMPILER_UNIFORM_INIT                              => PyQt_CONSTEXPR
+    # QT_NO_ACCESSIBILITY                                                         => PyQt_Accessibility
+    # QT_NO_OPENGL                                                                => PyQt_OpenGL PyQt_Desktop_OpenGL
+    # defined(QT_OPENGL_ES) || defined(QT_OPENGL_ES_2) || defined(QT_OPENGL_ES_3) => PyQt_Desktop_OpenGL
+    # QT_NO_RAWFONT                                                               => PyQt_RawFont
+    # QT_NO_SESSIONMANAGER                                                        => PyQt_SessionManager
+    #
+    + lib.optionalString (!(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) ''
+      rm config-tests/cfgtest_QtCore.cpp
+      rm config-tests/cfgtest_QtGui.cpp
+      rm config-tests/cfgtest_QtNetwork.cpp
+      rm config-tests/cfgtest_QtPrintSupport.cpp
+    '';
 
   enableParallelBuilding = true;
   # HACK: paralellize compilation of make calls within pyqt's setup.py
@@ -106,56 +109,57 @@ buildPythonPackage rec {
   '';
 
   # tons of warnings from subpackages, no point in playing whack-a-mole
-  env = lib.optionalAttrs (!enableVerbose) {
-    NIX_CFLAGS_COMPILE = "-w";
-  };
+  env = lib.optionalAttrs (!enableVerbose) { NIX_CFLAGS_COMPILE = "-w"; };
 
-  outputs = [ "out" "dev" ];
+  outputs = [
+    "out"
+    "dev"
+  ];
 
   dontWrapQtApps = true;
 
-  nativeBuildInputs = [
-    pkg-config
-  ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [
-    libsForQt5.qmake
-  ] ++ [
-    setuptools
-    lndir
-    sip
-  ] ++ (with pkgsBuildTarget.targetPackages.libsForQt5; [
-  ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
-    qmake
-  ] ++ [
-    qtbase
-    qtsvg
-    qtdeclarative
-    qtwebchannel
-  ]
-    ++ lib.optional withConnectivity qtconnectivity
-    ++ lib.optional withMultimedia qtmultimedia
-    ++ lib.optional withWebKit qtwebkit
-    ++ lib.optional withWebSockets qtwebsockets
-    ++ lib.optional withLocation qtlocation
-    ++ lib.optional withSerialPort qtserialport
-    ++ lib.optional withTools qttools
-  );
-
-  buildInputs = with libsForQt5; [
-    dbus
-  ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [
-    qtbase
-  ] ++ [
-    qtsvg
-    qtdeclarative
-    pyqt-builder
-  ]
+  nativeBuildInputs =
+    [ pkg-config ]
+    ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ libsForQt5.qmake ]
+    ++ [
+      setuptools
+      lndir
+      sip
+    ]
+    ++ (
+      with pkgsBuildTarget.targetPackages.libsForQt5;
+      [ ]
+      ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ qmake ]
+      ++ [
+        qtbase
+        qtsvg
+        qtdeclarative
+        qtwebchannel
+      ]
+      ++ lib.optional withConnectivity qtconnectivity
+      ++ lib.optional withMultimedia qtmultimedia
+      ++ lib.optional withWebKit qtwebkit
+      ++ lib.optional withWebSockets qtwebsockets
+      ++ lib.optional withLocation qtlocation
+      ++ lib.optional withSerialPort qtserialport
+      ++ lib.optional withTools qttools
+    );
+
+  buildInputs =
+    with libsForQt5;
+    [ dbus ]
+    ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ qtbase ]
+    ++ [
+      qtsvg
+      qtdeclarative
+      pyqt-builder
+    ]
     ++ lib.optional withConnectivity qtconnectivity
     ++ lib.optional withWebKit qtwebkit
     ++ lib.optional withWebSockets qtwebsockets
     ++ lib.optional withLocation qtlocation
     ++ lib.optional withSerialPort qtserialport
-    ++ lib.optional withTools qttools
-  ;
+    ++ lib.optional withTools qttools;
 
   propagatedBuildInputs = [
     dbus-python
@@ -178,27 +182,27 @@ buildPythonPackage rec {
   # Checked using pythonImportsCheck
   doCheck = false;
 
-  pythonImportsCheck = [
-    "PyQt5"
-    "PyQt5.QtCore"
-    "PyQt5.QtQml"
-    "PyQt5.QtWidgets"
-    "PyQt5.QtGui"
-  ]
+  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.QtBluetooth"
     ++ lib.optional withLocation "PyQt5.QtPositioning"
     ++ lib.optional withSerialPort "PyQt5.QtSerialPort"
-    ++ lib.optional withTools "PyQt5.QtDesigner"
-  ;
+    ++ lib.optional withTools "PyQt5.QtDesigner";
 
   meta = with lib; {
     description = "Python bindings for Qt5";
-    homepage    = "https://riverbankcomputing.com/";
-    license     = licenses.gpl3Only;
-    platforms   = platforms.mesaPlatforms;
+    homepage = "https://riverbankcomputing.com/";
+    license = licenses.gpl3Only;
+    platforms = platforms.mesaPlatforms;
     maintainers = with maintainers; [ sander ];
   };
 }
diff --git a/pkgs/development/python-modules/pyqt/6.x.nix b/pkgs/development/python-modules/pyqt/6.x.nix
index a568257c59000..8f5fa218475d7 100644
--- a/pkgs/development/python-modules/pyqt/6.x.nix
+++ b/pkgs/development/python-modules/pyqt/6.x.nix
@@ -1,24 +1,25 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchurl
-, pkg-config
-, dbus
-, lndir
-, setuptools
-, dbus-python
-, sip
-, pyqt6-sip
-, pyqt-builder
-, qt6Packages
-, pythonOlder
-, withMultimedia ? true
-, withWebSockets ? true
-, withLocation ? true
-# Not currently part of PyQt6
-#, withConnectivity ? true
-, withPrintSupport ? true
-, cups
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchurl,
+  pkg-config,
+  dbus,
+  lndir,
+  setuptools,
+  dbus-python,
+  sip,
+  pyqt6-sip,
+  pyqt-builder,
+  qt6Packages,
+  pythonOlder,
+  withMultimedia ? true,
+  withWebSockets ? true,
+  withLocation ? true,
+  # Not currently part of PyQt6
+  #, withConnectivity ? true
+  withPrintSupport ? true,
+  cups,
 }:
 
 buildPythonPackage rec {
@@ -68,51 +69,55 @@ buildPythonPackage rec {
     export MAKEFLAGS+="''${enableParallelBuilding:+-j$NIX_BUILD_CORES}"
   '';
 
-  outputs = [ "out" "dev" ];
+  outputs = [
+    "out"
+    "dev"
+  ];
 
   dontWrapQtApps = true;
 
-  nativeBuildInputs = with qt6Packages; [
-    pkg-config
-    lndir
-    sip
-    qtbase
-    qtsvg
-    qtdeclarative
-    qtwebchannel
-    qmake
-    qtquick3d
-    qtquicktimeline
-  ]
-  # ++ lib.optional withConnectivity qtconnectivity
-  ++ lib.optional withMultimedia qtmultimedia
-  ++ lib.optional withWebSockets qtwebsockets
-  ++ lib.optional withLocation qtlocation
-  ;
-
-  buildInputs = with qt6Packages; [
-    dbus
-    qtbase
-    qtsvg
-    qtdeclarative
-    pyqt-builder
-    qtquick3d
-    qtquicktimeline
-  ]
-  # ++ lib.optional withConnectivity qtconnectivity
-  ++ lib.optional withWebSockets qtwebsockets
-  ++ lib.optional withLocation qtlocation
-  ;
-
-  propagatedBuildInputs = [
-    dbus-python
-    pyqt6-sip
-    setuptools
-  ]
-  # ld: library not found for -lcups
-  ++ lib.optionals (withPrintSupport && stdenv.isDarwin) [
-    cups
-  ];
+  nativeBuildInputs =
+    with qt6Packages;
+    [
+      pkg-config
+      lndir
+      sip
+      qtbase
+      qtsvg
+      qtdeclarative
+      qtwebchannel
+      qmake
+      qtquick3d
+      qtquicktimeline
+    ]
+    # ++ lib.optional withConnectivity qtconnectivity
+    ++ lib.optional withMultimedia qtmultimedia
+    ++ lib.optional withWebSockets qtwebsockets
+    ++ lib.optional withLocation qtlocation;
+
+  buildInputs =
+    with qt6Packages;
+    [
+      dbus
+      qtbase
+      qtsvg
+      qtdeclarative
+      pyqt-builder
+      qtquick3d
+      qtquicktimeline
+    ]
+    # ++ lib.optional withConnectivity qtconnectivity
+    ++ lib.optional withWebSockets qtwebsockets
+    ++ lib.optional withLocation qtlocation;
+
+  propagatedBuildInputs =
+    [
+      dbus-python
+      pyqt6-sip
+      setuptools
+    ]
+    # ld: library not found for -lcups
+    ++ lib.optionals (withPrintSupport && stdenv.isDarwin) [ cups ];
 
   passthru = {
     inherit sip pyqt6-sip;
@@ -125,19 +130,19 @@ buildPythonPackage rec {
   # Checked using pythonImportsCheck, has no tests
   doCheck = true;
 
-  pythonImportsCheck = [
-    "PyQt6"
-    "PyQt6.QtCore"
-    "PyQt6.QtQml"
-    "PyQt6.QtWidgets"
-    "PyQt6.QtGui"
-    "PyQt6.QtQuick"
-  ]
-  ++ lib.optional withWebSockets "PyQt6.QtWebSockets"
-  ++ lib.optional withMultimedia "PyQt6.QtMultimedia"
-  # ++ lib.optional withConnectivity "PyQt6.QtConnectivity"
-  ++ lib.optional withLocation "PyQt6.QtPositioning"
-  ;
+  pythonImportsCheck =
+    [
+      "PyQt6"
+      "PyQt6.QtCore"
+      "PyQt6.QtQml"
+      "PyQt6.QtWidgets"
+      "PyQt6.QtGui"
+      "PyQt6.QtQuick"
+    ]
+    ++ lib.optional withWebSockets "PyQt6.QtWebSockets"
+    ++ lib.optional withMultimedia "PyQt6.QtMultimedia"
+    # ++ lib.optional withConnectivity "PyQt6.QtConnectivity"
+    ++ lib.optional withLocation "PyQt6.QtPositioning";
 
   env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.isDarwin "-Wno-address-of-temporary";
 
diff --git a/pkgs/development/python-modules/pyqt/pyqt6-sip.nix b/pkgs/development/python-modules/pyqt/pyqt6-sip.nix
index f9b9bc308c804..b7083eef900d4 100644
--- a/pkgs/development/python-modules/pyqt/pyqt6-sip.nix
+++ b/pkgs/development/python-modules/pyqt/pyqt6-sip.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyqt/sip.nix b/pkgs/development/python-modules/pyqt/sip.nix
index 3702bad5cac7a..46597acb6a444 100644
--- a/pkgs/development/python-modules/pyqt/sip.nix
+++ b/pkgs/development/python-modules/pyqt/sip.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,13 @@ buildPythonPackage rec {
   # 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;
-  pythonImportsCheck = ["PyQt5.sip"];
+  pythonImportsCheck = [ "PyQt5.sip" ];
 
   meta = with lib; {
     description = "Python bindings for Qt5";
-    homepage    = "https://www.riverbankcomputing.com/software/sip/";
-    license     = licenses.gpl3Only;
-    platforms   = platforms.mesaPlatforms;
+    homepage = "https://www.riverbankcomputing.com/software/sip/";
+    license = licenses.gpl3Only;
+    platforms = platforms.mesaPlatforms;
     maintainers = with maintainers; [ sander ];
   };
 }
diff --git a/pkgs/development/python-modules/pyqt3d/default.nix b/pkgs/development/python-modules/pyqt3d/default.nix
index c6129a08680e8..5c26e705bea6f 100644
--- a/pkgs/development/python-modules/pyqt3d/default.nix
+++ b/pkgs/development/python-modules/pyqt3d/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pyqt5
-, pyqt-builder
-, python
-, pythonOlder
-, qt3d
-, setuptools
-, sip
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pyqt5,
+  pyqt-builder,
+  python,
+  pythonOlder,
+  qt3d,
+  setuptools,
+  sip,
 }:
 
 buildPythonPackage rec {
@@ -29,7 +30,10 @@ buildPythonPackage rec {
       --replace "[tool.sip.project]" "[tool.sip.project]''\nsip-include-dirs = [\"${pyqt5}/${python.sitePackages}/PyQt5/bindings\"]"
   '';
 
-  outputs = [ "out" "dev" ];
+  outputs = [
+    "out"
+    "dev"
+  ];
 
   enableParallelBuilding = true;
   # HACK: paralellize compilation of make calls within pyqt's setup.py
@@ -51,22 +55,16 @@ buildPythonPackage rec {
     pyqt-builder
   ];
 
-  buildInputs = [
-    qt3d
-  ];
+  buildInputs = [ qt3d ];
 
-  propagatedBuildInputs = [
-    pyqt5
-  ];
+  propagatedBuildInputs = [ pyqt5 ];
 
   dontConfigure = true;
 
   # has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "PyQt5.Qt3DCore"
-  ];
+  pythonImportsCheck = [ "PyQt5.Qt3DCore" ];
 
   meta = with lib; {
     description = "Python bindings for the Qt 3D framework";
diff --git a/pkgs/development/python-modules/pyqt5-stubs/default.nix b/pkgs/development/python-modules/pyqt5-stubs/default.nix
index 957a2ac56c937..008313ebb7fdf 100644
--- a/pkgs/development/python-modules/pyqt5-stubs/default.nix
+++ b/pkgs/development/python-modules/pyqt5-stubs/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, pyqt5
-, pyqt3d
-, pyqtchart
-, pyqtdatavisualization
-, pyqtwebengine
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  pyqt5,
+  pyqt3d,
+  pyqtchart,
+  pyqtdatavisualization,
+  pyqtwebengine,
 }:
 
 buildPythonPackage rec {
@@ -22,26 +23,30 @@ buildPythonPackage rec {
     rev = version;
     hash = "sha256-qWnvlHnFRy8wbZJ28C0pYqAxod623Epe5z5FZufheDc=";
   };
-  postPatch = ''
-    # pulls in a dependency to mypy, but we don't want to run linters
-    rm tests/test_stubs.py
-  '' + lib.optionalString (!pyqt5.connectivityEnabled) ''
-    rm tests/qflags/test_QtBluetooth_*
-    rm tests/qflags/test_QtNfc_*
-  '' + lib.optionalString (!pyqt5.locationEnabled) ''
-    rm tests/qflags/test_QtLocation_*
-    rm tests/qflags/test_QtPositioning_*
-  '' + lib.optionalString (!pyqt5.multimediaEnabled) ''
-    rm tests/qflags/test_QtMultimedia_*
-  '' + lib.optionalString (!pyqt5.serialPortEnabled) ''
-    rm tests/qflags/test_QtSerialPort_*
-  '' + lib.optionalString (!pyqt5.toolsEnabled) ''
-    rm tests/qflags/test_QtDesigner_*
-  '';
+  postPatch =
+    ''
+      # pulls in a dependency to mypy, but we don't want to run linters
+      rm tests/test_stubs.py
+    ''
+    + lib.optionalString (!pyqt5.connectivityEnabled) ''
+      rm tests/qflags/test_QtBluetooth_*
+      rm tests/qflags/test_QtNfc_*
+    ''
+    + lib.optionalString (!pyqt5.locationEnabled) ''
+      rm tests/qflags/test_QtLocation_*
+      rm tests/qflags/test_QtPositioning_*
+    ''
+    + lib.optionalString (!pyqt5.multimediaEnabled) ''
+      rm tests/qflags/test_QtMultimedia_*
+    ''
+    + lib.optionalString (!pyqt5.serialPortEnabled) ''
+      rm tests/qflags/test_QtSerialPort_*
+    ''
+    + lib.optionalString (!pyqt5.toolsEnabled) ''
+      rm tests/qflags/test_QtDesigner_*
+    '';
 
-  pythonImportsCheck = [
-    "PyQt5-stubs"
-  ];
+  pythonImportsCheck = [ "PyQt5-stubs" ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/pyqt6-charts/default.nix b/pkgs/development/python-modules/pyqt6-charts/default.nix
index 478e1b1e0f422..60bc08b315d7a 100644
--- a/pkgs/development/python-modules/pyqt6-charts/default.nix
+++ b/pkgs/development/python-modules/pyqt6-charts/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, sip
-, pyqt-builder
-, qt6Packages
-, pythonOlder
-, pyqt6
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  sip,
+  pyqt-builder,
+  qt6Packages,
+  pythonOlder,
+  pyqt6,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -51,22 +52,16 @@ buildPythonPackage rec {
     pyqt-builder
   ];
 
-  buildInputs = with qt6Packages; [
-    qtcharts
-  ];
+  buildInputs = with qt6Packages; [ qtcharts ];
 
-  propagatedBuildInputs = [
-    pyqt6
-  ];
+  propagatedBuildInputs = [ pyqt6 ];
 
   dontConfigure = true;
 
   # has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "PyQt6.QtCharts"
-  ];
+  pythonImportsCheck = [ "PyQt6.QtCharts" ];
 
   meta = with lib; {
     description = "Python bindings for Qt6 QtCharts";
diff --git a/pkgs/development/python-modules/pyqt6-webengine/default.nix b/pkgs/development/python-modules/pyqt6-webengine/default.nix
index f227a1469ab55..ae7215f39b420 100644
--- a/pkgs/development/python-modules/pyqt6-webengine/default.nix
+++ b/pkgs/development/python-modules/pyqt6-webengine/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pkg-config
-, lndir
-, sip
-, pyqt-builder
-, qt6Packages
-, pythonOlder
-, pyqt6
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pkg-config,
+  lndir,
+  sip,
+  pyqt-builder,
+  qt6Packages,
+  pythonOlder,
+  pyqt6,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -44,7 +45,10 @@ buildPythonPackage rec {
     export MAKEFLAGS+=" -j$NIX_BUILD_CORES"
   '';
 
-  outputs = [ "out" "dev" ];
+  outputs = [
+    "out"
+    "dev"
+  ];
 
   dontWrapQtApps = true;
 
@@ -57,13 +61,9 @@ buildPythonPackage rec {
     pyqt-builder
   ];
 
-  buildInputs = with qt6Packages; [
-    qtwebengine
-  ];
+  buildInputs = with qt6Packages; [ qtwebengine ];
 
-  propagatedBuildInputs = [
-    pyqt6
-  ];
+  propagatedBuildInputs = [ pyqt6 ];
 
   passthru = {
     inherit sip;
@@ -85,6 +85,9 @@ buildPythonPackage rec {
     homepage = "https://riverbankcomputing.com/";
     license = licenses.gpl3Only;
     platforms = platforms.mesaPlatforms;
-    maintainers = with maintainers; [ LunNova nrdxp ];
+    maintainers = with maintainers; [
+      LunNova
+      nrdxp
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pyqtchart/default.nix b/pkgs/development/python-modules/pyqtchart/default.nix
index 3f95fe791574c..db7e24eabcb65 100644
--- a/pkgs/development/python-modules/pyqtchart/default.nix
+++ b/pkgs/development/python-modules/pyqtchart/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pyqt5
-, pyqt-builder
-, python
-, pythonOlder
-, qtcharts
-, setuptools
-, sip
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pyqt5,
+  pyqt-builder,
+  python,
+  pythonOlder,
+  qtcharts,
+  setuptools,
+  sip,
 }:
 
 buildPythonPackage rec {
@@ -29,7 +30,10 @@ buildPythonPackage rec {
       --replace "[tool.sip.project]" "[tool.sip.project]''\nsip-include-dirs = [\"${pyqt5}/${python.sitePackages}/PyQt5/bindings\"]"
   '';
 
-  outputs = [ "out" "dev" ];
+  outputs = [
+    "out"
+    "dev"
+  ];
 
   enableParallelBuilding = true;
   # HACK: paralellize compilation of make calls within pyqt's setup.py
@@ -51,22 +55,16 @@ buildPythonPackage rec {
     pyqt-builder
   ];
 
-  buildInputs = [
-    qtcharts
-  ];
+  buildInputs = [ qtcharts ];
 
-  propagatedBuildInputs = [
-    pyqt5
-  ];
+  propagatedBuildInputs = [ pyqt5 ];
 
   dontConfigure = true;
 
   # has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "PyQt5.QtChart"
-  ];
+  pythonImportsCheck = [ "PyQt5.QtChart" ];
 
   meta = with lib; {
     description = "Python bindings for the Qt Charts library";
diff --git a/pkgs/development/python-modules/pyqtdarktheme/default.nix b/pkgs/development/python-modules/pyqtdarktheme/default.nix
index 0d60c8039898f..2d48412270719 100644
--- a/pkgs/development/python-modules/pyqtdarktheme/default.nix
+++ b/pkgs/development/python-modules/pyqtdarktheme/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-
-, darkdetect
-, poetry-core
-
-, pyqt5
-, pytest-mock
-, pytest-qt
-, pytestCheckHook
-, qt5
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+
+  darkdetect,
+  poetry-core,
+
+  pyqt5,
+  pytest-mock,
+  pytest-qt,
+  pytestCheckHook,
+  qt5,
 }:
 
 buildPythonPackage rec {
@@ -27,17 +28,11 @@ buildPythonPackage rec {
     hash = "sha256-jK+wnIyPE8Bav0pzbvVisYYCzdRshYw1S2t0H3Pro5M=";
   };
 
-  patches = [
-    ./add-missing-argument-to-the-proxy-style-initializer.patch
-  ];
+  patches = [ ./add-missing-argument-to-the-proxy-style-initializer.patch ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    darkdetect
-  ];
+  propagatedBuildInputs = [ darkdetect ];
 
   nativeCheckInputs = [
     pyqt5
@@ -46,9 +41,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "qdarktheme"
-  ];
+  pythonImportsCheck = [ "qdarktheme" ];
 
   prePatch = ''
     sed -i 's#darkdetect = ".*"#darkdetect = "*"#' pyproject.toml
@@ -62,7 +55,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A flat dark theme for PySide and PyQt";
+    description = "Flat dark theme for PySide and PyQt";
     homepage = "https://pyqtdarktheme.readthedocs.io/en/stable";
     license = licenses.mit;
     maintainers = with maintainers; [ paveloom ];
diff --git a/pkgs/development/python-modules/pyqtdatavisualization/default.nix b/pkgs/development/python-modules/pyqtdatavisualization/default.nix
index 1561e9d4be51a..09d1ad6c752e4 100644
--- a/pkgs/development/python-modules/pyqtdatavisualization/default.nix
+++ b/pkgs/development/python-modules/pyqtdatavisualization/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pyqt5
-, pyqt-builder
-, python
-, pythonOlder
-, qtdatavis3d
-, setuptools
-, sip
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pyqt5,
+  pyqt-builder,
+  python,
+  pythonOlder,
+  qtdatavis3d,
+  setuptools,
+  sip,
 }:
 
 buildPythonPackage rec {
@@ -29,7 +30,10 @@ buildPythonPackage rec {
       --replace "[tool.sip.project]" "[tool.sip.project]''\nsip-include-dirs = [\"${pyqt5}/${python.sitePackages}/PyQt5/bindings\"]"
   '';
 
-  outputs = [ "out" "dev" ];
+  outputs = [
+    "out"
+    "dev"
+  ];
 
   enableParallelBuilding = true;
   # HACK: paralellize compilation of make calls within pyqt's setup.py
@@ -51,22 +55,16 @@ buildPythonPackage rec {
     pyqt-builder
   ];
 
-  buildInputs = [
-    qtdatavis3d
-  ];
+  buildInputs = [ qtdatavis3d ];
 
-  propagatedBuildInputs = [
-    pyqt5
-  ];
+  propagatedBuildInputs = [ pyqt5 ];
 
   dontConfigure = true;
 
   # has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "PyQt5.QtDataVisualization"
-  ];
+  pythonImportsCheck = [ "PyQt5.QtDataVisualization" ];
 
   meta = with lib; {
     description = "Python bindings for the Qt Data Visualization library";
diff --git a/pkgs/development/python-modules/pyqtgraph/default.nix b/pkgs/development/python-modules/pyqtgraph/default.nix
index e3e96571b1e8b..718b0be18477f 100644
--- a/pkgs/development/python-modules/pyqtgraph/default.nix
+++ b/pkgs/development/python-modules/pyqtgraph/default.nix
@@ -1,38 +1,36 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, scipy
-, numpy
-, pyqt5
-, pyopengl
-, qt5
-, pytestCheckHook
-, freefont_ttf
-, makeFontsConf
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  scipy,
+  numpy,
+  pyqt5,
+  pyopengl,
+  qt5,
+  pytestCheckHook,
+  freefont_ttf,
+  makeFontsConf,
+  setuptools,
+  python,
 }:
 
 let
-  fontsConf = makeFontsConf {
-    fontDirectories = [ freefont_ttf ];
-  };
+  fontsConf = makeFontsConf { fontDirectories = [ freefont_ttf ]; };
 in
 buildPythonPackage rec {
   pname = "pyqtgraph";
-  version = "0.13.4";
+  version = "0.13.7";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pyqtgraph";
     repo = "pyqtgraph";
     rev = "refs/tags/pyqtgraph-${version}";
-    hash = "sha256-KVgsfvaVbR3eMRNqhJSBO4Hfk7KJgMdsZjKffx6vt84=";
+    hash = "sha256-MUwg1v6oH2TGmJ14Hp9i6KYierJbzPggK59QaHSXHVA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     numpy
@@ -55,23 +53,25 @@ buildPythonPackage rec {
     "tests"
   ];
 
-  disabledTests = lib.optionals (!stdenv.hostPlatform.isx86) [
-    # small precision-related differences on other architectures,
-    # upstream doesn't consider it serious.
-    # https://github.com/pyqtgraph/pyqtgraph/issues/2110
-    "test_PolyLineROI"
-  ] ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
-    # https://github.com/pyqtgraph/pyqtgraph/issues/2645
-    "test_rescaleData"
-  ];
+  disabledTests =
+    lib.optionals (!stdenv.hostPlatform.isx86) [
+      # small precision-related differences on other architectures,
+      # upstream doesn't consider it serious.
+      # https://github.com/pyqtgraph/pyqtgraph/issues/2110
+      "test_PolyLineROI"
+    ]
+    ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
+      # https://github.com/pyqtgraph/pyqtgraph/issues/2645
+      "test_rescaleData"
+    ];
 
   meta = with lib; {
     description = "Scientific Graphics and GUI Library for Python";
     homepage = "https://www.pyqtgraph.org/";
     changelog = "https://github.com/pyqtgraph/pyqtgraph/blob/master/CHANGELOG";
     license = licenses.mit;
+    broken = lib.versionAtLeast python.version "3.12";
     platforms = platforms.unix;
     maintainers = with maintainers; [ koral ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pyqtwebengine/default.nix b/pkgs/development/python-modules/pyqtwebengine/default.nix
index ec15596b4048f..b72fde6277f7b 100644
--- a/pkgs/development/python-modules/pyqtwebengine/default.nix
+++ b/pkgs/development/python-modules/pyqtwebengine/default.nix
@@ -1,94 +1,119 @@
-{ lib, stdenv, pythonPackages, fetchPypi, pkg-config
-, qmake, qtbase, qtsvg, qtwebengine, qtwebchannel, qtdeclarative
-, wrapQtAppsHook
-, darwin
-, buildPackages
+{
+  lib,
+  stdenv,
+  pythonPackages,
+  fetchPypi,
+  pkg-config,
+  qmake,
+  qtbase,
+  qtsvg,
+  qtwebengine,
+  qtwebchannel,
+  qtdeclarative,
+  wrapQtAppsHook,
+  darwin,
+  buildPackages,
 }:
 
 let
-  inherit (pythonPackages) buildPythonPackage python isPy27 pyqt5 sip pyqt-builder;
+  inherit (pythonPackages)
+    buildPythonPackage
+    python
+    isPy27
+    pyqt5
+    sip
+    pyqt-builder
+    ;
   inherit (darwin) autoSignDarwinBinariesHook;
-in buildPythonPackage (rec {
-  pname = "pyqtwebengine";
-  version = "5.15.6";
-  format = "pyproject";
+in
+buildPythonPackage (
+  rec {
+    pname = "pyqtwebengine";
+    version = "5.15.6";
+    format = "pyproject";
 
-  disabled = isPy27;
+    disabled = isPy27;
 
-  src = fetchPypi {
-    pname = "PyQtWebEngine";
-    inherit version;
-    sha256 = "sha256-riQe8qYceCk5xYtSwq6lOtmbMPOTTINY1eCm67P9ByE=";
-  };
+    src = fetchPypi {
+      pname = "PyQtWebEngine";
+      inherit version;
+      sha256 = "sha256-riQe8qYceCk5xYtSwq6lOtmbMPOTTINY1eCm67P9ByE=";
+    };
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace "[tool.sip.project]" "[tool.sip.project]''\nsip-include-dirs = [\"${pyqt5}/${python.sitePackages}/PyQt5/bindings\"]"
-  '';
+    postPatch = ''
+      substituteInPlace pyproject.toml \
+        --replace "[tool.sip.project]" "[tool.sip.project]''\nsip-include-dirs = [\"${pyqt5}/${python.sitePackages}/PyQt5/bindings\"]"
+    '';
 
-  outputs = [ "out" "dev" ];
+    outputs = [
+      "out"
+      "dev"
+    ];
 
-  nativeBuildInputs = [
-    pkg-config
-    qmake
-  ] ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [
-    sip
-  ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
-    python.pythonOnBuildForHost.pkgs.sip
-  ] ++ [
-    qtbase
-    qtsvg
-    qtwebengine
-    pyqt-builder
-    pythonPackages.setuptools
-  ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
-    qtdeclarative
-  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
-    autoSignDarwinBinariesHook
-  ];
+    nativeBuildInputs =
+      [
+        pkg-config
+        qmake
+      ]
+      ++ lib.optionals (stdenv.buildPlatform == stdenv.hostPlatform) [ sip ]
+      ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+        python.pythonOnBuildForHost.pkgs.sip
+      ]
+      ++ [
+        qtbase
+        qtsvg
+        qtwebengine
+        pyqt-builder
+        pythonPackages.setuptools
+      ]
+      ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [ qtdeclarative ]
+      ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ autoSignDarwinBinariesHook ];
 
-  buildInputs = [
-    sip
-    qtbase
-    qtsvg
-    qtwebengine
-  ] ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
-    qtwebchannel
-    qtdeclarative
-  ];
+    buildInputs =
+      [
+        sip
+        qtbase
+        qtsvg
+        qtwebengine
+      ]
+      ++ lib.optionals (stdenv.buildPlatform != stdenv.hostPlatform) [
+        qtwebchannel
+        qtdeclarative
+      ];
 
-  propagatedBuildInputs = [ pyqt5 ];
+    propagatedBuildInputs = [ pyqt5 ];
 
-  dontWrapQtApps = true;
+    dontWrapQtApps = true;
 
-  # Avoid running qmake, which is in nativeBuildInputs
-  dontConfigure = true;
+    # Avoid running qmake, which is in nativeBuildInputs
+    dontConfigure = true;
 
-  # Checked using pythonImportsCheck
-  doCheck = false;
+    # Checked using pythonImportsCheck
+    doCheck = false;
 
-  pythonImportsCheck = [
-    "PyQt5.QtWebEngine"
-    "PyQt5.QtWebEngineWidgets"
-  ];
+    pythonImportsCheck = [
+      "PyQt5.QtWebEngine"
+      "PyQt5.QtWebEngineWidgets"
+    ];
 
-  enableParallelBuilding = true;
+    enableParallelBuilding = true;
 
-  passthru = {
-    inherit wrapQtAppsHook;
-  };
+    passthru = {
+      inherit wrapQtAppsHook;
+    };
 
-  meta = with lib; {
-    description = "Python bindings for Qt5";
-    homepage    = "http://www.riverbankcomputing.co.uk";
-    license     = licenses.gpl3;
-    hydraPlatforms = lib.lists.intersectLists qtwebengine.meta.platforms platforms.mesaPlatforms;
-  };
-} // lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) {
-  # TODO: figure out why the env hooks aren't adding these inclusions automatically
-  env.NIX_CFLAGS_COMPILE =
-    lib.concatStringsSep " " [
+    meta = with lib; {
+      description = "Python bindings for Qt5";
+      homepage = "http://www.riverbankcomputing.co.uk";
+      license = licenses.gpl3;
+      hydraPlatforms = lib.lists.intersectLists qtwebengine.meta.platforms platforms.mesaPlatforms;
+    };
+  }
+  // lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) {
+    # TODO: figure out why the env hooks aren't adding these inclusions automatically
+    env.NIX_CFLAGS_COMPILE = lib.concatStringsSep " " [
       "-I${lib.getDev qtbase}/include/QtPrintSupport/"
       "-I${lib.getDev qtwebchannel}/include/QtWebChannel/"
     ];
-})
+  }
+)
diff --git a/pkgs/development/python-modules/pyquaternion/default.nix b/pkgs/development/python-modules/pyquaternion/default.nix
index cb10c3bc55454..ac374c9572bb4 100644
--- a/pkgs/development/python-modules/pyquaternion/default.nix
+++ b/pkgs/development/python-modules/pyquaternion/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  nose,
 }:
 
 buildPythonPackage rec {
@@ -27,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyquaternion" ];
 
   meta = with lib; {
-    description = "Library for representing and using quaternions.";
+    description = "Library for representing and using quaternions";
     homepage = "http://kieranwynn.github.io/pyquaternion/";
     license = licenses.mit;
     maintainers = with maintainers; [ lucasew ];
diff --git a/pkgs/development/python-modules/pyquery/default.nix b/pkgs/development/python-modules/pyquery/default.nix
index f1de975c418bf..e066b9258411e 100644
--- a/pkgs/development/python-modules/pyquery/default.nix
+++ b/pkgs/development/python-modules/pyquery/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, cssselect
-, fetchPypi
-, lxml
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, requests
-, webob
-, webtest
+{
+  lib,
+  buildPythonPackage,
+  cssselect,
+  fetchPypi,
+  lxml,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  requests,
+  webob,
+  webtest,
 }:
 
 buildPythonPackage rec {
@@ -59,7 +60,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A jquery-like library for Python";
+    description = "Jquery-like library for Python";
     homepage = "https://github.com/gawel/pyquery";
     changelog = "https://github.com/gawel/pyquery/blob/${version}/CHANGES.rst";
     license = licenses.bsd0;
diff --git a/pkgs/development/python-modules/pyquil/default.nix b/pkgs/development/python-modules/pyquil/default.nix
index dc718777af700..612e78239c2ec 100644
--- a/pkgs/development/python-modules/pyquil/default.nix
+++ b/pkgs/development/python-modules/pyquil/default.nix
@@ -3,7 +3,6 @@
   buildPythonPackage,
   deprecated,
   fetchFromGitHub,
-  importlib-metadata,
   ipython,
   lark,
   matplotlib-inline,
@@ -12,12 +11,10 @@
   numpy,
   packaging,
   poetry-core,
-  pydantic,
   pytest-asyncio,
   pytest-mock,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
   qcs-sdk-python,
   respx,
   rpcq,
@@ -27,20 +24,21 @@
   types-deprecated,
   types-python-dateutil,
   types-retry,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "pyquil";
-  version = "4.8.0";
+  version = "4.9.2";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "rigetti";
     repo = "pyquil";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MGI+R3oteqDWsXP+SlAGSRGiQiAj44YG6V7o90A4Krc=";
+    hash = "sha256-TxmQ9QXTTr4Xv37WmgArfK8Q5H1zAu8qx8wRsvK+vVM=";
   };
 
   pythonRelaxDeps = [
@@ -52,7 +50,6 @@ buildPythonPackage rec {
 
   build-system = [ poetry-core ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     deprecated
@@ -61,7 +58,6 @@ buildPythonPackage rec {
     networkx
     numpy
     packaging
-    pydantic
     qcs-sdk-python
     rpcq
     scipy
@@ -69,7 +65,8 @@ buildPythonPackage rec {
     types-deprecated
     types-python-dateutil
     types-retry
-  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
+    typing-extensions
+  ];
 
   nativeCheckInputs = [
     nest-asyncio
diff --git a/pkgs/development/python-modules/pyqvrpro/default.nix b/pkgs/development/python-modules/pyqvrpro/default.nix
index f170050954f72..53392e3cb18d6 100644
--- a/pkgs/development/python-modules/pyqvrpro/default.nix
+++ b/pkgs/development/python-modules/pyqvrpro/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-vcr
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, requests
-, untangle
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-vcr,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  requests,
+  untangle,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pyqvrpro"
-  ];
+  pythonImportsCheck = [ "pyqvrpro" ];
 
   meta = with lib; {
     description = "Module for interfacing with QVR Pro API";
diff --git a/pkgs/development/python-modules/pyqwikswitch/default.nix b/pkgs/development/python-modules/pyqwikswitch/default.nix
index 20a5d59833db9..fd6daf7d38e18 100644
--- a/pkgs/development/python-modules/pyqwikswitch/default.nix
+++ b/pkgs/development/python-modules/pyqwikswitch/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, attrs
-, requests
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  attrs,
+  requests,
+  python,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyrabbit2/default.nix b/pkgs/development/python-modules/pyrabbit2/default.nix
index 8cd8be5186160..cd1da7f061843 100644
--- a/pkgs/development/python-modules/pyrabbit2/default.nix
+++ b/pkgs/development/python-modules/pyrabbit2/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -14,12 +15,10 @@ buildPythonPackage rec {
     sha256 = "d27160cb35c096f0072df57307233d01b117a451236e136604a8e51be6f106c0";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   meta = with lib; {
-    description = "A Pythonic interface to the RabbitMQ Management HTTP API";
+    description = "Pythonic interface to the RabbitMQ Management HTTP API";
     homepage = "https://github.com/deslum/pyrabbit2";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/pyrad/default.nix b/pkgs/development/python-modules/pyrad/default.nix
index 8a70748887162..9e2cb672d95a0 100644
--- a/pkgs/development/python-modules/pyrad/default.nix
+++ b/pkgs/development/python-modules/pyrad/default.nix
@@ -1,60 +1,58 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, lib
-, poetry-core
-, netaddr
-, six
-, unittestCheckHook
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  poetry-core,
+  netaddr,
+  six,
+  unittestCheckHook,
+  fetchPypi,
 }:
+let
+  netaddr_0_8_0 = netaddr.overridePythonAttrs (oldAttrs: rec {
+    version = "0.8.0";
+
+    src = fetchPypi {
+      pname = "netaddr";
+      inherit version;
+      hash = "sha256-1sxXx6B7HZ0ukXqos2rozmHDW6P80bg8oxxaDuK1okM=";
+    };
+  });
+in
 
 buildPythonPackage rec {
   pname = "pyrad";
-  version = "2.4";
+  version = "2.4-unstable-2023-06-13";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pyradius";
     repo = pname;
-    rev = version;
-    hash = "sha256-oqgkE0xG/8cmLeRZdGoHkaHbjtByeJwzBJwEdxH8oNY=";
+    rev = "dd34c5a29b46d83b0bea841e85fd72b79f315b87";
+    hash = "sha256-U4VVGkDDyN4J/tRDaDGSr2TSA4JmqIoQj5qn9qBAvQU=";
   };
 
-  patches = [
-    (fetchpatch {
-      # Migrate to poetry-core
-      url = "https://github.com/pyradius/pyrad/commit/a4b70067dd6269e14a2f9530d820390a8a454231.patch";
-      hash = "sha256-1We9wrVY3Or3GLIKK6hZvEjVYv6JOaahgP9zOMvgErE=";
-    })
-  ];
-
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
-    netaddr
+    netaddr_0_8_0
     six
   ];
 
   preCheck = ''
     substituteInPlace tests/testServer.py \
-      --replace "def testBind(self):" "def dontTestBind(self):" \
-      --replace "def testBindv6(self):" "def dontTestBindv6(self):"
+      --replace-warn "def testBind(self):" "def dontTestBind(self):" \
+      --replace-warn "def testBindv6(self):" "def dontTestBindv6(self):" \
   '';
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyrad"
-  ];
+  pythonImportsCheck = [ "pyrad" ];
 
-  meta = with lib; {
+  meta = {
     description = "Python RADIUS Implementation";
     homepage = "https://github.com/pyradius/pyrad";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ drawbu ];
   };
 }
diff --git a/pkgs/development/python-modules/pyradiomics/default.nix b/pkgs/development/python-modules/pyradiomics/default.nix
index 2d77f8f1df0bb..183f41044d317 100644
--- a/pkgs/development/python-modules/pyradiomics/default.nix
+++ b/pkgs/development/python-modules/pyradiomics/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, numpy
-, pykwalify
-, pywavelets
-, setuptools
-, simpleitk
-, six
-, versioneer
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  numpy,
+  pykwalify,
+  pywavelets,
+  setuptools,
+  simpleitk,
+  six,
+  versioneer,
 }:
 
 buildPythonPackage rec {
@@ -27,7 +28,10 @@ buildPythonPackage rec {
     name = "pyradiomics";
   };
 
-  nativeBuildInputs = [ setuptools versioneer ];
+  nativeBuildInputs = [
+    setuptools
+    versioneer
+  ];
 
   propagatedBuildInputs = [
     numpy
@@ -57,9 +61,7 @@ buildPythonPackage rec {
     "-k '${toString (lib.intersperse "and" (lib.forEach disabledTests (t: "not ${t}")))}'"
   ];
 
-  pythonImportsCheck = [
-    "radiomics"
-  ];
+  pythonImportsCheck = [ "radiomics" ];
 
   meta = with lib; {
     homepage = "https://pyradiomics.readthedocs.io";
diff --git a/pkgs/development/python-modules/pyradios/default.nix b/pkgs/development/python-modules/pyradios/default.nix
index 45e972ab5e285..1d979d2678151 100644
--- a/pkgs/development/python-modules/pyradios/default.nix
+++ b/pkgs/development/python-modules/pyradios/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, appdirs
-, httpx
-, setuptools
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  appdirs,
+  httpx,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyrainbird/default.nix b/pkgs/development/python-modules/pyrainbird/default.nix
index bca013babd9e9..1444533bb28c7 100644
--- a/pkgs/development/python-modules/pyrainbird/default.nix
+++ b/pkgs/development/python-modules/pyrainbird/default.nix
@@ -1,29 +1,30 @@
-{ lib
-, aiohttp-retry
-, buildPythonPackage
-, fetchFromGitHub
-, freezegun
-, ical
-, parameterized
-, pycryptodome
-, pydantic
-, pytest-aiohttp
-, pytest-asyncio
-, pytest-golden
-, pytest-mock
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pyyaml
-, requests
-, requests-mock
-, responses
-, setuptools
+{
+  lib,
+  aiohttp-retry,
+  buildPythonPackage,
+  fetchFromGitHub,
+  freezegun,
+  ical,
+  mashumaro,
+  parameterized,
+  pycryptodome,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytest-golden,
+  pytest-mock,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  pyyaml,
+  requests,
+  requests-mock,
+  responses,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyrainbird";
-  version = "4.0.2";
+  version = "6.0.2";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -32,7 +33,7 @@ buildPythonPackage rec {
     owner = "allenporter";
     repo = "pyrainbird";
     rev = "refs/tags/${version}";
-    hash = "sha256-4AoxLZv0u8wCG3ihw0JqsqsO5zG5UyP4ebSX99ve8sg=";
+    hash = "sha256-CcoZZ60PItqy0bCc36WfyNF9Fc28aHwQ6hhnY41lBNg=";
   };
 
   postPatch = ''
@@ -40,15 +41,13 @@ buildPythonPackage rec {
       --replace-fail "--cov=pyrainbird --cov-report=term-missing" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp-retry
     ical
+    mashumaro
     pycryptodome
-    pydantic
     python-dateutil
     pyyaml
     requests
@@ -68,9 +67,7 @@ buildPythonPackage rec {
     responses
   ];
 
-  pythonImportsCheck = [
-    "pyrainbird"
-  ];
+  pythonImportsCheck = [ "pyrainbird" ];
 
   meta = with lib; {
     description = "Module to interact with Rainbird controllers";
diff --git a/pkgs/development/python-modules/pyramid-beaker/default.nix b/pkgs/development/python-modules/pyramid-beaker/default.nix
index a49e01a378f10..8faae270960d1 100644
--- a/pkgs/development/python-modules/pyramid-beaker/default.nix
+++ b/pkgs/development/python-modules/pyramid-beaker/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, beaker, pyramid }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  beaker,
+  pyramid,
+}:
 
 buildPythonPackage rec {
   pname = "pyramid-beaker";
@@ -18,7 +25,10 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ pytest ];
 
-  propagatedBuildInputs = [ beaker pyramid ];
+  propagatedBuildInputs = [
+    beaker
+    pyramid
+  ];
 
   meta = with lib; {
     description = "Beaker session factory backend for Pyramid";
diff --git a/pkgs/development/python-modules/pyramid-chameleon/default.nix b/pkgs/development/python-modules/pyramid-chameleon/default.nix
index ab4f230afbdd8..67ea57509b8b5 100644
--- a/pkgs/development/python-modules/pyramid-chameleon/default.nix
+++ b/pkgs/development/python-modules/pyramid-chameleon/default.nix
@@ -1,13 +1,14 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, chameleon
-, fetchpatch
-, fetchPypi
-, pyramid
-, pytestCheckHook
-, setuptools
-, zope-interface
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  chameleon,
+  fetchpatch,
+  fetchPypi,
+  pyramid,
+  pytestCheckHook,
+  setuptools,
+  zope-interface,
 }:
 
 buildPythonPackage rec {
@@ -39,13 +40,9 @@ buildPythonPackage rec {
     zope-interface
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyramid_chameleon"
-  ];
+  pythonImportsCheck = [ "pyramid_chameleon" ];
 
   meta = with lib; {
     description = "Chameleon template compiler for pyramid";
diff --git a/pkgs/development/python-modules/pyramid-exclog/default.nix b/pkgs/development/python-modules/pyramid-exclog/default.nix
index b0deb497a56f9..b88777f8692da 100644
--- a/pkgs/development/python-modules/pyramid-exclog/default.nix
+++ b/pkgs/development/python-modules/pyramid-exclog/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyramid
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyramid,
 }:
 
 buildPythonPackage rec {
@@ -20,10 +21,9 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyramid_exclog" ];
 
   meta = with lib; {
-    description = "A package which logs to a Python logger when an exception is raised by a Pyramid application";
+    description = "Package which logs to a Python logger when an exception is raised by a Pyramid application";
     homepage = "https://docs.pylonsproject.org/";
     license = licenses.bsd0;
     maintainers = with maintainers; [ domenkozar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pyramid-jinja2/default.nix b/pkgs/development/python-modules/pyramid-jinja2/default.nix
index 0eab257384e47..f15a3623ee239 100644
--- a/pkgs/development/python-modules/pyramid-jinja2/default.nix
+++ b/pkgs/development/python-modules/pyramid-jinja2/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, webtest
-, markupsafe
-, jinja2
-, pytestCheckHook
-, zope-deprecation
-, pyramid
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  webtest,
+  markupsafe,
+  jinja2,
+  pytestCheckHook,
+  zope-deprecation,
+  pyramid,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -40,9 +41,7 @@ buildPythonPackage rec {
       --replace " --cov" ""
   '';
 
-  pythonImportsCheck = [
-    "pyramid_jinja2"
-  ];
+  pythonImportsCheck = [ "pyramid_jinja2" ];
 
   disabledTests = [
     # AssertionError: Lists differ: ['pyramid_jinja2-2.10',...
diff --git a/pkgs/development/python-modules/pyramid-mako/default.nix b/pkgs/development/python-modules/pyramid-mako/default.nix
index 11af191361377..2b4483d04f1d6 100644
--- a/pkgs/development/python-modules/pyramid-mako/default.nix
+++ b/pkgs/development/python-modules/pyramid-mako/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, webtest
-, pyramid
-, mako
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  webtest,
+  pyramid,
+  mako,
 }:
 
 buildPythonPackage rec {
@@ -27,12 +28,15 @@ buildPythonPackage rec {
   ];
 
   buildInputs = [ webtest ];
-  propagatedBuildInputs = [ pyramid mako ];
+  propagatedBuildInputs = [
+    pyramid
+    mako
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/Pylons/pyramid_mako";
     description = "Mako template bindings for the Pyramid web framework";
     license = licenses.bsd0;
-    maintainers = with maintainers; [];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pyramid-multiauth/default.nix b/pkgs/development/python-modules/pyramid-multiauth/default.nix
index c70e7f0b0b649..6454fa6c33c27 100644
--- a/pkgs/development/python-modules/pyramid-multiauth/default.nix
+++ b/pkgs/development/python-modules/pyramid-multiauth/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyramid
-, unittestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyramid,
+  unittestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,23 +19,17 @@ buildPythonPackage rec {
     hash = "sha256-+Aa+Vc4qCqDe/W5m/RBpYAyOMJkBv+ZGSqElJlkHqs4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    pyramid
-  ];
+  propagatedBuildInputs = [ pyramid ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   meta = with lib; {
     changelog = "https://github.com/mozilla-services/pyramid_multiauth/releases/tag/${version}";
     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;
-    maintainers = with maintainers; [];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pyramid/default.nix b/pkgs/development/python-modules/pyramid/default.nix
index d3f8d03debedf..3564c0bd1aea1 100644
--- a/pkgs/development/python-modules/pyramid/default.nix
+++ b/pkgs/development/python-modules/pyramid/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, webtest
-, zope-component
-, hupper
-, pastedeploy
-, plaster
-, plaster-pastedeploy
-, repoze-lru
-, translationstring
-, venusian
-, webob
-, zope-deprecation
-, zope-interface
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  webtest,
+  zope-component,
+  hupper,
+  pastedeploy,
+  plaster,
+  plaster-pastedeploy,
+  repoze-lru,
+  translationstring,
+  venusian,
+  webob,
+  zope-deprecation,
+  zope-interface,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -46,9 +47,7 @@ buildPythonPackage rec {
     zope-component
   ];
 
-  pythonImportsCheck = [
-    "pyramid"
-  ];
+  pythonImportsCheck = [ "pyramid" ];
 
   meta = with lib; {
     description = "Python web framework";
diff --git a/pkgs/development/python-modules/pyrate-limiter/default.nix b/pkgs/development/python-modules/pyrate-limiter/default.nix
index 8dc1c5c9426aa..9003ad79c5307 100644
--- a/pkgs/development/python-modules/pyrate-limiter/default.nix
+++ b/pkgs/development/python-modules/pyrate-limiter/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,9 @@ buildPythonPackage rec {
     hash = "sha256-CPusPeyTS+QyWiMHsU0ii9ZxPuizsqv0wQy3uicrDw0=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  pythonImportsCheck = [
-    "pyrate_limiter"
-  ];
+  pythonImportsCheck = [ "pyrate_limiter" ];
 
   # The only consumer of this is Lutris (via python-moddb), and it requires 2.x,
   # so don't auto-update it and break Lutris every python-updates.
diff --git a/pkgs/development/python-modules/pyrdfa3/default.nix b/pkgs/development/python-modules/pyrdfa3/default.nix
index 6526824fd9ae4..bebc20c63e96d 100644
--- a/pkgs/development/python-modules/pyrdfa3/default.nix
+++ b/pkgs/development/python-modules/pyrdfa3/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, html5lib
-, pythonOlder
-, rdflib
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  html5lib,
+  pythonOlder,
+  rdflib,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-c2gdq5V/YJAWlnZziLlWpXaccwvEUdpv+y8ONvGDFMI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     rdflib
@@ -31,9 +30,7 @@ buildPythonPackage rec {
     requests
   ];
 
-  pythonImportsCheck = [
-    "pyRdfa"
-  ];
+  pythonImportsCheck = [ "pyRdfa" ];
 
   meta = with lib; {
     description = "RDFa 1.1 distiller/parser library";
diff --git a/pkgs/development/python-modules/pyre-extensions/default.nix b/pkgs/development/python-modules/pyre-extensions/default.nix
index 24bc9312de86c..3a51946a81d77 100644
--- a/pkgs/development/python-modules/pyre-extensions/default.nix
+++ b/pkgs/development/python-modules/pyre-extensions/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-# build inputs
-, typing-extensions
-, typing-inspect
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  # build inputs
+  typing-extensions,
+  typing-inspect,
 }:
 let
   pname = "pyre-extensions";
diff --git a/pkgs/development/python-modules/pyreaderwriterlock/default.nix b/pkgs/development/python-modules/pyreaderwriterlock/default.nix
index a9771f6698712..91a5d2934916e 100644
--- a/pkgs/development/python-modules/pyreaderwriterlock/default.nix
+++ b/pkgs/development/python-modules/pyreaderwriterlock/default.nix
@@ -1,19 +1,23 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
 
-  # propagates
-, typing-extensions
+  # build-system
+  setuptools,
+
+  # dependencies
+  typing-extensions,
 
   # tests
-, unittestCheckHook
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "pyreaderwriterlock";
   version = "1.0.9";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -24,11 +28,11 @@ buildPythonPackage rec {
     hash = "sha256-8FC+4aDgGpF1BmOdlkFtMy7OfWdSmvn9fjKXSmmeJlg=";
   };
 
-  propagatedBuildInputs = [ typing-extensions ];
+  build-system = [ setuptools ];
+
+  dependencies = [ typing-extensions ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "readerwriterlock" ];
 
diff --git a/pkgs/development/python-modules/pyreadstat/default.nix b/pkgs/development/python-modules/pyreadstat/default.nix
index b8eaa04b1a93c..e2c39b05b0209 100644
--- a/pkgs/development/python-modules/pyreadstat/default.nix
+++ b/pkgs/development/python-modules/pyreadstat/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, libiconv
-, pandas
-, python
-, pythonOlder
-, readstat
-, zlib
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  libiconv,
+  pandas,
+  python,
+  pythonOlder,
+  readstat,
+  zlib,
 }:
 
 buildPythonPackage rec {
@@ -25,24 +26,16 @@ buildPythonPackage rec {
     hash = "sha256-VcPpGRrE/5udNijodO88Lw69JPOm6ZN7BZb4xD34srQ=";
   };
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
-  buildInputs = [
-    zlib
-  ] ++ lib.optionals stdenv.isDarwin [
-    libiconv
-  ];
+  buildInputs = [ zlib ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
 
   propagatedBuildInputs = [
     readstat
     pandas
   ];
 
-  pythonImportsCheck = [
-    "pyreadstat"
-  ];
+  pythonImportsCheck = [ "pyreadstat" ];
 
   preCheck = ''
     export HOME=$(mktemp -d);
diff --git a/pkgs/development/python-modules/pyrect/default.nix b/pkgs/development/python-modules/pyrect/default.nix
index 0d61a2e182a0f..3b673068adaaa 100644
--- a/pkgs/development/python-modules/pyrect/default.nix
+++ b/pkgs/development/python-modules/pyrect/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pygame
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pygame,
 }:
 
 buildPythonPackage rec {
@@ -16,7 +17,10 @@ buildPythonPackage rec {
     hash = "sha256-9lFV9t+bkptnyv+9V8CUfFrlRJ07WA0XgHS/+0egm3g=";
   };
 
-  nativeCheckInputs = [ pytestCheckHook pygame ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    pygame
+  ];
 
   preCheck = ''
     export LC_ALL="en_US.UTF-8"
diff --git a/pkgs/development/python-modules/pyregion/default.nix b/pkgs/development/python-modules/pyregion/default.nix
index 4d875032ef94c..d096a5d0c7b85 100644
--- a/pkgs/development/python-modules/pyregion/default.nix
+++ b/pkgs/development/python-modules/pyregion/default.nix
@@ -1,21 +1,21 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-# needed to build
-, cython
-, oldest-supported-numpy
-, setuptools
-, setuptools-scm
-, wheel
-# needed to run
-, astropy
-, numpy
-, pyparsing
-# needed to check
-, pytestCheckHook
-, pytest-astropy
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  # needed to build
+  cython,
+  oldest-supported-numpy,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  # needed to run
+  astropy,
+  numpy,
+  pyparsing,
+  # needed to check
+  pytestCheckHook,
+  pytest-astropy,
 }:
 
 buildPythonPackage rec {
@@ -52,7 +52,10 @@ buildPythonPackage rec {
     wheel
   ];
 
-  nativeCheckInputs = [ pytestCheckHook pytest-astropy ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    pytest-astropy
+  ];
 
   # Tests must be run in the build directory
   preCheck = ''
diff --git a/pkgs/development/python-modules/pyrender/default.nix b/pkgs/development/python-modules/pyrender/default.nix
index 41214174ae789..1ea8179345098 100644
--- a/pkgs/development/python-modules/pyrender/default.nix
+++ b/pkgs/development/python-modules/pyrender/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, fetchpatch
-, setuptools
-, freetype-py
-, imageio
-, networkx
-, numpy
-, pillow
-, pyglet
-, pyopengl
-, scipy
-, six
-, trimesh
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  fetchpatch,
+  setuptools,
+  freetype-py,
+  imageio,
+  networkx,
+  numpy,
+  pillow,
+  pyglet,
+  pyopengl,
+  scipy,
+  six,
+  trimesh,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -32,7 +33,8 @@ buildPythonPackage rec {
   };
 
   patches = [
-    (fetchpatch { # yet to be tagged
+    (fetchpatch {
+      # yet to be tagged
       name = "relax-pyopengl.patch";
       url = "https://github.com/mmatl/pyrender/commit/7c613e8aed7142df9ff40767a8f10b7a19b6255c.patch";
       hash = "sha256-SXRV9RC3PfQGjjIQ+n97HZrSDPae3rAHnTBiHXSFLaY=";
@@ -51,9 +53,7 @@ buildPythonPackage rec {
         'bm = trimesh.load("tests/data/WaterBottle.glb").geometry["WaterBottle"]'
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   dependencies = [
     freetype-py
@@ -70,9 +70,7 @@ buildPythonPackage rec {
 
   env.PYOPENGL_PLATFORM = "egl"; # enables headless rendering during check
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # does not work inside sandbox, no GPU
diff --git a/pkgs/development/python-modules/pyreqwest-impersonate/default.nix b/pkgs/development/python-modules/pyreqwest-impersonate/default.nix
new file mode 100644
index 0000000000000..39e57b633170e
--- /dev/null
+++ b/pkgs/development/python-modules/pyreqwest-impersonate/default.nix
@@ -0,0 +1,61 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  rustPlatform,
+  pytest,
+  runCommand,
+  boringssl,
+}:
+
+let
+  # boring-sys expects the static libraries in build/ instead of lib/
+  boringssl-wrapper = runCommand "boringssl-wrapper" { } ''
+    mkdir $out
+    cd $out
+    ln -s ${boringssl.out}/lib build
+    ln -s ${boringssl.dev}/include include
+  '';
+in
+buildPythonPackage rec {
+  pname = "pyreqwest-impersonate";
+  version = "0.4.7";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "deedy5";
+    repo = "pyreqwest_impersonate";
+    rev = "v${version}";
+    hash = "sha256-ck5RqSUgnLAjZ+1A1wQRyRMahJRq3nzYvE+WBpu6wk0=";
+  };
+
+  cargoDeps = rustPlatform.fetchCargoTarball {
+    inherit src;
+    name = "${pname}-${version}";
+    hash = "sha256-eGmx4ftS1D7qb2pPZxp4XE44teXcRwKs3tcKm8otsaM=";
+  };
+
+  nativeBuildInputs = [
+    rustPlatform.bindgenHook
+    rustPlatform.cargoSetupHook
+    rustPlatform.maturinBuildHook
+  ];
+
+  env.BORING_BSSL_PATH = boringssl-wrapper;
+
+  optional-dependencies = {
+    dev = [ pytest ];
+  };
+
+  # Test use network
+  doCheck = false;
+
+  pythonImportsCheck = [ "pyreqwest_impersonate" ];
+
+  meta = {
+    description = "HTTP client that can impersonate web browsers (Chrome/Edge/OkHttp/Safari), mimicking their headers and TLS/JA3/JA4/HTTP2 fingerprints";
+    homepage = "https://github.com/deedy5/pyreqwest_impersonate";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ drupol ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyrevolve/default.nix b/pkgs/development/python-modules/pyrevolve/default.nix
index 8fec5f23ef6e2..0af3e6fe85ec5 100644
--- a/pkgs/development/python-modules/pyrevolve/default.nix
+++ b/pkgs/development/python-modules/pyrevolve/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, contexttimer
-, setuptools
-, versioneer
-, cython_0
-, numpy
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  contexttimer,
+  setuptools,
+  versioneer,
+  cython_0,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -40,17 +41,13 @@ buildPythonPackage rec {
     numpy
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     rm -rf pyrevolve
   '';
 
-  pythonImportsCheck = [
-    "pyrevolve"
-  ];
+  pythonImportsCheck = [ "pyrevolve" ];
 
   meta = with lib; {
     homepage = "https://github.com/devitocodes/pyrevolve";
diff --git a/pkgs/development/python-modules/pyrfc3339/default.nix b/pkgs/development/python-modules/pyrfc3339/default.nix
index 368f3cda24de7..ccfca503e786f 100644
--- a/pkgs/development/python-modules/pyrfc3339/default.nix
+++ b/pkgs/development/python-modules/pyrfc3339/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, pytz
+  # dependencies
+  pytz,
 
-# tests
-, nose
+  # tests
+  nose,
 }:
 
 buildPythonPackage rec {
@@ -24,24 +25,17 @@ buildPythonPackage rec {
     sha256 = "06jv7ar7lpvvk0dixzwdr3wgm0g1lipxs429s2z7knwwa7hwpf41";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    pytz
-  ];
+  propagatedBuildInputs = [ pytz ];
 
   doCheck = pythonOlder "3.12";
 
-  nativeCheckInputs = [
-    nose
-  ];
+  nativeCheckInputs = [ nose ];
 
   meta = with lib; {
     description = "Generate and parse RFC 3339 timestamps";
     homepage = "https://github.com/kurtraschke/pyRFC3339";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/pyrfxtrx/default.nix b/pkgs/development/python-modules/pyrfxtrx/default.nix
index e9c1fac671318..83a89a6793107 100644
--- a/pkgs/development/python-modules/pyrfxtrx/default.nix
+++ b/pkgs/development/python-modules/pyrfxtrx/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyserial
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyserial,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-Y9UVJZxm5G5ywNLW8nm162cZTs3/mFeI+ZEUGoc9eAs=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    pyserial
-  ];
+  dependencies = [ pyserial ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Library to communicate with the RFXtrx family of devices";
diff --git a/pkgs/development/python-modules/pyric/default.nix b/pkgs/development/python-modules/pyric/default.nix
index 8ee447f0f0c22..e8a29ae7258c8 100644
--- a/pkgs/development/python-modules/pyric/default.nix
+++ b/pkgs/development/python-modules/pyric/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
   # Tests are outdated
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyric"
-  ];
+  pythonImportsCheck = [ "pyric" ];
 
   meta = with lib; {
     description = "Python Radio Interface Controller";
diff --git a/pkgs/development/python-modules/pyring-buffer/default.nix b/pkgs/development/python-modules/pyring-buffer/default.nix
index 6a5c709f617ea..afe261fa46019 100644
--- a/pkgs/development/python-modules/pyring-buffer/default.nix
+++ b/pkgs/development/python-modules/pyring-buffer/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,16 +19,12 @@ buildPythonPackage rec {
     hash = "sha256-bHhcBU4tjFAyZ3/GjaP/hDXz2N73mCChTNYHsZyBCSM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "pyring_buffer"
-  ];
+  pythonImportsCheck = [ "pyring_buffer" ];
 
   meta = with lib; {
-    description = "A pure Python ring buffer for bytes";
+    description = "Pure Python ring buffer for bytes";
     homepage = "https://github.com/rhasspy/pyring-buffer";
     changelog = "https://github.com/rhasspy/pyring-buffer/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/pyrisco/default.nix b/pkgs/development/python-modules/pyrisco/default.nix
index ee84881ff5f9b..f01ff7b0f2e44 100644
--- a/pkgs/development/python-modules/pyrisco/default.nix
+++ b/pkgs/development/python-modules/pyrisco/default.nix
@@ -9,7 +9,7 @@
 
 buildPythonPackage rec {
   pname = "pyrisco";
-  version = "0.6.1";
+  version = "0.6.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,7 +18,7 @@ buildPythonPackage rec {
     owner = "OnFreund";
     repo = "pyrisco";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NviB3C+YApOo3WGQ1L8Qwyh8C9l8sCgaSA+xn2wYhjg=";
+    hash = "sha256-E/KVQSoyJWJJ+UFtu3SzJDfXu2cj7A0puYgcUxrHKRo=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/pyrituals/default.nix b/pkgs/development/python-modules/pyrituals/default.nix
index b73ca18627354..c8514f59ae787 100644
--- a/pkgs/development/python-modules/pyrituals/default.nix
+++ b/pkgs/development/python-modules/pyrituals/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     sha256 = "0ynjz7khp67bwxjp580w3zijxr9yn44nmnbvkxjxq9scyb2mjf6g";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [ aiohttp ];
 
diff --git a/pkgs/development/python-modules/pyrmvtransport/default.nix b/pkgs/development/python-modules/pyrmvtransport/default.nix
index 60415585b1cdf..89eea0f2ecbb6 100644
--- a/pkgs/development/python-modules/pyrmvtransport/default.nix
+++ b/pkgs/development/python-modules/pyrmvtransport/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pythonOlder
-, flit
-, async-timeout
-, lxml
-, httpx
-, pytestCheckHook
-, pytest-asyncio
-, pytest-httpx
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pythonOlder,
+  flit,
+  async-timeout,
+  lxml,
+  httpx,
+  pytestCheckHook,
+  pytest-asyncio,
+  pytest-httpx,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-nFxGEyO+wyRzPayjjv8WNIJ+XIWbVn0dyyjQKHiyr40=";
   };
 
-  nativeBuildInputs = [
-    flit
-  ];
+  nativeBuildInputs = [ flit ];
 
   propagatedBuildInputs = [
     async-timeout
@@ -56,9 +55,7 @@ buildPythonPackage rec {
     })
   ];
 
-  pythonImportsCheck = [
-    "RMVtransport"
-  ];
+  pythonImportsCheck = [ "RMVtransport" ];
 
   meta = with lib; {
     homepage = "https://github.com/cgtobi/PyRMVtransport";
diff --git a/pkgs/development/python-modules/pyro-api/default.nix b/pkgs/development/python-modules/pyro-api/default.nix
index 9791d8bbaa8e1..c5f2ea37e0c80 100644
--- a/pkgs/development/python-modules/pyro-api/default.nix
+++ b/pkgs/development/python-modules/pyro-api/default.nix
@@ -1,4 +1,8 @@
-{ buildPythonPackage, fetchPypi, lib }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+}:
 
 buildPythonPackage rec {
   version = "0.1.2";
@@ -16,7 +20,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "Generic API for dispatch to Pyro backends.";
+    description = "Generic API for dispatch to Pyro backends";
     homepage = "http://pyro.ai";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ georgewhewell ];
diff --git a/pkgs/development/python-modules/pyro-ppl/default.nix b/pkgs/development/python-modules/pyro-ppl/default.nix
index d96f124f6f643..94d2c640d97ee 100644
--- a/pkgs/development/python-modules/pyro-ppl/default.nix
+++ b/pkgs/development/python-modules/pyro-ppl/default.nix
@@ -1,59 +1,63 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, graphviz
-, jupyter
-, matplotlib
-, networkx
-, opt-einsum
-, pandas
-, pillow
-, pyro-api
-, pythonOlder
-, torch
-, scikit-learn
-, seaborn
-, setuptools
-, torchvision
-, tqdm
-, wget
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  graphviz,
+  ipywidgets,
+  matplotlib,
+  notebook,
+  numpy,
+  opt-einsum,
+  pandas,
+  pillow,
+  pyro-api,
+  pythonOlder,
+  scikit-learn,
+  scipy,
+  seaborn,
+  setuptools,
+  torch,
+  torchvision,
+  tqdm,
+  wget,
 }:
 
 buildPythonPackage rec {
   pname = "pyro-ppl";
-  version = "1.9.0";
+  version = "1.9.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit version pname;
-    hash = "sha256-QfTABRWVaCgPvFEWSJYKmKKxpBACfYvQpDIgrJsQLN8=";
+  src = fetchFromGitHub {
+    owner = "pyro-ppl";
+    repo = "pyro";
+    rev = "refs/tags/${version}";
+    hash = "sha256-Dvbl/80EGoGWGhWYVIf/xjovUJG1+3WtpMH+lx1oB2E=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    numpy
+    opt-einsum
     pyro-api
     torch
-    networkx
-    opt-einsum
     tqdm
   ];
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     extras = [
+      notebook
+      ipywidgets
       graphviz
-      jupyter
-      # lap
       matplotlib
+      torchvision
       pandas
       pillow
       scikit-learn
       seaborn
-      torchvision
+      scipy
       # visdom
       wget
     ];
@@ -74,6 +78,9 @@ buildPythonPackage rec {
     homepage = "http://pyro.ai";
     changelog = "https://github.com/pyro-ppl/pyro/releases/tag/${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [ teh georgewhewell ];
+    maintainers = with maintainers; [
+      teh
+      georgewhewell
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pyro4/default.nix b/pkgs/development/python-modules/pyro4/default.nix
index 7b0c8229c8998..387d5135d2d79 100644
--- a/pkgs/development/python-modules/pyro4/default.nix
+++ b/pkgs/development/python-modules/pyro4/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, cloudpickle
-, dill
-, fetchPypi
-, msgpack
-, pytestCheckHook
-, pythonAtLeast
-, serpent
+{
+  lib,
+  buildPythonPackage,
+  cloudpickle,
+  dill,
+  fetchPypi,
+  msgpack,
+  pytestCheckHook,
+  pythonAtLeast,
+  serpent,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-UR9bCATpLdd9wzrfnJR3h+P56cWpaxIWLwVXp8TOIfs=";
   };
 
-  propagatedBuildInputs = [
-    serpent
-  ];
+  propagatedBuildInputs = [ serpent ];
 
   buildInputs = [
     dill
@@ -34,9 +33,7 @@ buildPythonPackage rec {
     msgpack
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # add testsupport.py to PATH
   preCheck = ''
@@ -57,9 +54,7 @@ buildPythonPackage rec {
   # otherwise the tests hang the build
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [
-    "Pyro4"
-  ];
+  pythonImportsCheck = [ "Pyro4" ];
 
   meta = with lib; {
     description = "Distributed object middleware for Python (RPC)";
diff --git a/pkgs/development/python-modules/pyro5/default.nix b/pkgs/development/python-modules/pyro5/default.nix
index eacf7436cda6e..500f7143c9020 100644
--- a/pkgs/development/python-modules/pyro5/default.nix
+++ b/pkgs/development/python-modules/pyro5/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, serpent
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  serpent,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,15 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-gsPfyYYLSfiXso/yT+ZxbIQWcsYAr4/kDQ46f6yaP14=";
   };
 
-  propagatedBuildInputs = [
-    serpent
-  ];
+  propagatedBuildInputs = [ serpent ];
 
   __darwinAllowLocalNetworking = true;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Ignore network related tests, which fail in sandbox
@@ -37,13 +34,9 @@ buildPythonPackage rec {
     "GetIP"
     "TestNameServer"
     "TestBCSetup"
-  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
-    "Socket"
-  ];
+  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ "Socket" ];
 
-  pythonImportsCheck = [
-    "Pyro5"
-  ];
+  pythonImportsCheck = [ "Pyro5" ];
 
   meta = with lib; {
     description = "Distributed object middleware for Python (RPC)";
diff --git a/pkgs/development/python-modules/pyrogram/default.nix b/pkgs/development/python-modules/pyrogram/default.nix
index c947cbaaa4eb6..b7961fa3e690f 100644
--- a/pkgs/development/python-modules/pyrogram/default.nix
+++ b/pkgs/development/python-modules/pyrogram/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pyaes
-, pysocks
-, pytestCheckHook
-, pytest-asyncio
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pyaes,
+  pysocks,
+  pytestCheckHook,
+  pytest-asyncio,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyroma/default.nix b/pkgs/development/python-modules/pyroma/default.nix
index 51816799034f9..eacbbe5b8b9c4 100644
--- a/pkgs/development/python-modules/pyroma/default.nix
+++ b/pkgs/development/python-modules/pyroma/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, build
-, docutils
-, flit-core
-, packaging
-, pygments
-, requests
-, trove-classifiers
+  # dependencies
+  build,
+  docutils,
+  flit-core,
+  packaging,
+  pygments,
+  requests,
+  trove-classifiers,
 
-# test
-, pytestCheckHook
+  # test
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -45,9 +46,7 @@ buildPythonPackage rec {
     trove-classifiers
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # tries to reach pypi
diff --git a/pkgs/development/python-modules/pyroute2/default.nix b/pkgs/development/python-modules/pyroute2/default.nix
index f6a185fc6dbae..4f94e2ce63fee 100644
--- a/pkgs/development/python-modules/pyroute2/default.nix
+++ b/pkgs/development/python-modules/pyroute2/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, importlib-metadata
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  importlib-metadata,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,13 +21,9 @@ buildPythonPackage rec {
     hash = "sha256-zB792ZwDWd74YBYvQ5au0t2RWTIAqrWvNtQ/e+ZEk50=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # Requires root privileges, https://github.com/svinota/pyroute2/issues/778
   doCheck = false;
@@ -48,8 +45,14 @@ buildPythonPackage rec {
     description = "Python Netlink library";
     homepage = "https://github.com/svinota/pyroute2";
     changelog = "https://github.com/svinota/pyroute2/blob/${version}/CHANGELOG.rst";
-    license = with licenses; [ asl20 /* or */ gpl2Plus ];
-    maintainers = with maintainers; [ fab mic92 ];
+    license = with licenses; [
+      asl20 # or
+      gpl2Plus
+    ];
+    maintainers = with maintainers; [
+      fab
+      mic92
+    ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/pyrr/default.nix b/pkgs/development/python-modules/pyrr/default.nix
index b84d1a67f1d8d..d939061018ba8 100644
--- a/pkgs/development/python-modules/pyrr/default.nix
+++ b/pkgs/development/python-modules/pyrr/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, multipledispatch
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  multipledispatch,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,10 @@ buildPythonPackage rec {
     hash = "sha256-u9O52MQskZRzw0rBH6uPdXdikWLJe7wyBZGNKIFA4BA=";
   };
 
-  propagatedBuildInputs = [ multipledispatch numpy ];
+  propagatedBuildInputs = [
+    multipledispatch
+    numpy
+  ];
 
   meta = with lib; {
     description = "3D mathematical functions using NumPy";
diff --git a/pkgs/development/python-modules/pyrsistent/default.nix b/pkgs/development/python-modules/pyrsistent/default.nix
index fae4bba430d36..57804f9bd150c 100644
--- a/pkgs/development/python-modules/pyrsistent/default.nix
+++ b/pkgs/development/python-modules/pyrsistent/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, setuptools
-, six
-, pytestCheckHook
-, hypothesis
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  setuptools,
+  six,
+  pytestCheckHook,
+  hypothesis,
 }:
 
 buildPythonPackage rec {
@@ -20,13 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-TEj3j2KrWWxnkIYITQ3RMlSuTz1scqg//fXr3vjyZaQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [ six ];
 
-  nativeCheckInputs = [ pytestCheckHook hypothesis ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    hypothesis
+  ];
 
   pythonImportsCheck = [ "pyrsistent" ];
 
@@ -36,5 +38,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ desiderius ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pyrss2gen/default.nix b/pkgs/development/python-modules/pyrss2gen/default.nix
index 9820eb1583f0f..f07f054cbce6c 100644
--- a/pkgs/development/python-modules/pyrss2gen/default.nix
+++ b/pkgs/development/python-modules/pyrss2gen/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -23,5 +24,4 @@ buildPythonPackage rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ domenkozar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pyrtlsdr/default.nix b/pkgs/development/python-modules/pyrtlsdr/default.nix
index fdd89c28460be..21a3b1b4bd1ab 100644
--- a/pkgs/development/python-modules/pyrtlsdr/default.nix
+++ b/pkgs/development/python-modules/pyrtlsdr/default.nix
@@ -1,10 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, rtl-sdr
-, setuptools
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  rtl-sdr,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-+z5YO6BzuGHo4LxeYvZvBzZekUf102SR3krWLyPkU2I=";
   };
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  propagatedBuildInputs = [ setuptools ];
 
   postPatch = ''
     sed "s|driver_files =.*|driver_files = ['${rtl-sdr}/lib/librtlsdr.so']|" -i rtlsdr/librtlsdr.py
diff --git a/pkgs/development/python-modules/pyrympro/default.nix b/pkgs/development/python-modules/pyrympro/default.nix
new file mode 100644
index 0000000000000..70ed0c42a0e63
--- /dev/null
+++ b/pkgs/development/python-modules/pyrympro/default.nix
@@ -0,0 +1,39 @@
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pythonOlder,
+}:
+
+buildPythonPackage rec {
+  pname = "pyrympro";
+  version = "0.0.8";
+  pyproject = true;
+
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "OnFreund";
+    repo = "pyrympro";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-mRvKLPgtBgmFDTHqra7GslxsgsJpQ2w/DE0Zgz5jujk=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [ aiohttp ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "pyrympro" ];
+
+  meta = with lib; {
+    description = "Module to interact with Read Your Meter Pro";
+    homepage = "https://github.com/OnFreund/pyrympro";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/pysabnzbd/default.nix b/pkgs/development/python-modules/pysabnzbd/default.nix
index e6116e6442d17..4515bc0b37c82 100644
--- a/pkgs/development/python-modules/pysabnzbd/default.nix
+++ b/pkgs/development/python-modules/pysabnzbd/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, aiohttp
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  aiohttp,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-Ubl+kdcjMm1A7pa3Q5G+fFBwPIxA375Ci04/vVyUl+A=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # upstream has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/pysaj/default.nix b/pkgs/development/python-modules/pysaj/default.nix
index 15f8dd0fccf07..499cb552b36e0 100644
--- a/pkgs/development/python-modules/pysaj/default.nix
+++ b/pkgs/development/python-modules/pysaj/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, lxml
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxml,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pysaj"
-  ];
+  pythonImportsCheck = [ "pysaj" ];
 
   meta = with lib; {
     description = "Library to communicate with SAJ inverters";
diff --git a/pkgs/development/python-modules/pysam/default.nix b/pkgs/development/python-modules/pysam/default.nix
index dbce429f4338a..05efd63de69f9 100644
--- a/pkgs/development/python-modules/pysam/default.nix
+++ b/pkgs/development/python-modules/pysam/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, bzip2
-, bcftools
-, curl
-, cython
-, htslib
-, libdeflate
-, xz
-, pytestCheckHook
-, setuptools
-, samtools
-, zlib
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  bzip2,
+  bcftools,
+  curl,
+  cython,
+  htslib,
+  libdeflate,
+  xz,
+  pytestCheckHook,
+  setuptools,
+  samtools,
+  zlib,
 }:
 
 buildPythonPackage rec {
-  pname   = "pysam";
+  pname = "pysam";
   version = "0.22.1";
   pyproject = true;
 
@@ -75,7 +76,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A python module for reading, manipulating and writing genome data sets";
+    description = "Python module for reading, manipulating and writing genome data sets";
     downloadPage = "https://github.com/pysam-developers/pysam";
     homepage = "https://pysam.readthedocs.io/";
     maintainers = with maintainers; [ unode ];
diff --git a/pkgs/development/python-modules/pysaml2/default.nix b/pkgs/development/python-modules/pysaml2/default.nix
index 7f27356422538..957394ad5fa3c 100644
--- a/pkgs/development/python-modules/pysaml2/default.nix
+++ b/pkgs/development/python-modules/pysaml2/default.nix
@@ -1,27 +1,26 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, defusedxml
-, fetchFromGitHub
-, fetchPypi
-, paste
-, poetry-core
-, pyasn1
-, pymongo
-, pyopenssl
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pythonRelaxDepsHook
-, pytz
-, repoze-who
-, requests
-, responses
-, setuptools
-, substituteAll
-, xmlschema
-, xmlsec
-, zope-interface
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  defusedxml,
+  fetchFromGitHub,
+  paste,
+  poetry-core,
+  pyasn1,
+  pymongo,
+  pyopenssl,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  pytz,
+  repoze-who,
+  requests,
+  responses,
+  setuptools,
+  substituteAll,
+  xmlschema,
+  xmlsec,
+  zope-interface,
 }:
 
 buildPythonPackage rec {
@@ -50,13 +49,10 @@ buildPythonPackage rec {
     sed -i 's/2999\(-.*T\)/2029\1/g' tests/*.xml
   '';
 
-  pythonRelaxDeps = [
-    "xmlschema"
-  ];
+  pythonRelaxDeps = [ "xmlschema" ];
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -93,9 +89,7 @@ buildPythonPackage rec {
     "test_conf_syslog"
   ];
 
-  pythonImportsCheck = [
-    "saml2"
-  ];
+  pythonImportsCheck = [ "saml2" ];
 
   meta = with lib; {
     description = "Python implementation of SAML Version 2 Standard";
diff --git a/pkgs/development/python-modules/pysatochip/default.nix b/pkgs/development/python-modules/pysatochip/default.nix
index f508bc303239d..5b2856984cbea 100644
--- a/pkgs/development/python-modules/pysatochip/default.nix
+++ b/pkgs/development/python-modules/pysatochip/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, certifi
-, cryptography
-, ecdsa
-, pyaes
-, pyopenssl
-, pyscard
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  certifi,
+  cryptography,
+  ecdsa,
+  pyaes,
+  pyopenssl,
+  pyscard,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,7 +29,13 @@ buildPythonPackage rec {
       --replace "pyopenssl==20.0.0" "pyopenssl"
   '';
 
-  propagatedBuildInputs = [ cryptography ecdsa pyaes pyopenssl pyscard ];
+  propagatedBuildInputs = [
+    cryptography
+    ecdsa
+    pyaes
+    pyopenssl
+    pyscard
+  ];
 
   nativeCheckInputs = [ certifi ];
 
diff --git a/pkgs/development/python-modules/pysbd/default.nix b/pkgs/development/python-modules/pysbd/default.nix
index f2062569534e6..fcc440fe4c74e 100644
--- a/pkgs/development/python-modules/pysbd/default.nix
+++ b/pkgs/development/python-modules/pysbd/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, tqdm
-, spacy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  tqdm,
+  spacy,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,10 @@ buildPythonPackage rec {
     sha256 = "12p7qm237z56hw4zr03n8rycgfymhki2m9c4w3ib0mvqq122a5dp";
   };
 
-  nativeCheckInputs = [ tqdm spacy ];
+  nativeCheckInputs = [
+    tqdm
+    spacy
+  ];
 
   doCheck = false; # requires pyconll and blingfire
 
diff --git a/pkgs/development/python-modules/pysc2/default.nix b/pkgs/development/python-modules/pysc2/default.nix
index b45c955416094..3ee18d12e4de7 100644
--- a/pkgs/development/python-modules/pysc2/default.nix
+++ b/pkgs/development/python-modules/pysc2/default.nix
@@ -1,19 +1,20 @@
-{ buildPythonPackage
-, lib
-, fetchFromGitHub
-, absl-py
-, enum34
-, future
-, mock
-, mpyq
-, numpy
-, portpicker
-, protobuf
-, pygame
-, s2clientprotocol
-, six
-, websocket-client
-, sc2-headless
+{
+  buildPythonPackage,
+  lib,
+  fetchFromGitHub,
+  absl-py,
+  enum34,
+  future,
+  mock,
+  mpyq,
+  numpy,
+  portpicker,
+  protobuf,
+  pygame,
+  s2clientprotocol,
+  six,
+  websocket-client,
+  sc2-headless,
 }:
 
 buildPythonPackage {
@@ -54,7 +55,7 @@ buildPythonPackage {
   ];
 
   meta = {
-    description = "Starcraft II environment and library for training agents.";
+    description = "Starcraft II environment and library for training agents";
     homepage = "https://github.com/deepmind/pysc2";
     license = lib.licenses.asl20;
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/python-modules/pyscaffold/default.nix b/pkgs/development/python-modules/pyscaffold/default.nix
index c394f9550fdc1..7b3bc447ef488 100644
--- a/pkgs/development/python-modules/pyscaffold/default.nix
+++ b/pkgs/development/python-modules/pyscaffold/default.nix
@@ -1,32 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, setuptools-scm
-, wheel
-, colorama
-, configupdater
-, importlib-metadata
-, packaging
-, platformdirs
-, tomlkit
-, pre-commit
-, pyscaffoldext-cookiecutter
-, pyscaffoldext-custom-extension
-, pyscaffoldext-django
-, pyscaffoldext-dsproject
-, pyscaffoldext-markdown
-, pyscaffoldext-travis
-, virtualenv
-, build
-, certifi
-, flake8
-, pytest
-, pytest-cov
-, pytest-randomly
-, pytest-xdist
-, sphinx
-, tox
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  colorama,
+  configupdater,
+  importlib-metadata,
+  packaging,
+  platformdirs,
+  tomlkit,
+  pre-commit,
+  pyscaffoldext-cookiecutter,
+  pyscaffoldext-custom-extension,
+  pyscaffoldext-django,
+  pyscaffoldext-dsproject,
+  pyscaffoldext-markdown,
+  pyscaffoldext-travis,
+  virtualenv,
+  build,
+  certifi,
+  flake8,
+  pytest,
+  pytest-cov,
+  pytest-randomly,
+  pytest-xdist,
+  sphinx,
+  tox,
 }:
 
 buildPythonPackage rec {
@@ -72,12 +73,8 @@ buildPythonPackage rec {
       pyscaffoldext-travis
       virtualenv
     ];
-    ds = [
-      pyscaffoldext-dsproject
-    ];
-    md = [
-      pyscaffoldext-markdown
-    ];
+    ds = [ pyscaffoldext-dsproject ];
+    md = [ pyscaffoldext-markdown ];
     testing = [
       build
       certifi
diff --git a/pkgs/development/python-modules/pyscaffoldext-cookiecutter/default.nix b/pkgs/development/python-modules/pyscaffoldext-cookiecutter/default.nix
index 88027434e1953..bcc4ed68bfdd2 100644
--- a/pkgs/development/python-modules/pyscaffoldext-cookiecutter/default.nix
+++ b/pkgs/development/python-modules/pyscaffoldext-cookiecutter/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, setuptools-scm
-, wheel
-, cookiecutter
-, importlib-metadata
-, pyscaffold
-, configupdater
-, pre-commit
-, pytest
-, pytest-cov
-, pytest-xdist
-, tox
-, virtualenv
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  cookiecutter,
+  importlib-metadata,
+  pyscaffold,
+  configupdater,
+  pre-commit,
+  pytest,
+  pytest-cov,
+  pytest-xdist,
+  tox,
+  virtualenv,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyscaffoldext-custom-extension/default.nix b/pkgs/development/python-modules/pyscaffoldext-custom-extension/default.nix
index 9d47769bdf021..f487b25c9eea6 100644
--- a/pkgs/development/python-modules/pyscaffoldext-custom-extension/default.nix
+++ b/pkgs/development/python-modules/pyscaffoldext-custom-extension/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, setuptools-scm
-, wheel
-, configupdater
-, importlib-metadata
-, packaging
-, pyscaffold
-, pre-commit
-, pytest
-, pytest-cov
-, pytest-xdist
-, tox
-, virtualenv
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  configupdater,
+  importlib-metadata,
+  packaging,
+  pyscaffold,
+  pre-commit,
+  pytest,
+  pytest-cov,
+  pytest-xdist,
+  tox,
+  virtualenv,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyscaffoldext-django/default.nix b/pkgs/development/python-modules/pyscaffoldext-django/default.nix
index 9a7725ad3244c..a724b105ed2b6 100644
--- a/pkgs/development/python-modules/pyscaffoldext-django/default.nix
+++ b/pkgs/development/python-modules/pyscaffoldext-django/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, setuptools-scm
-, wheel
-, django
-, pyscaffold
-, configupdater
-, pre-commit
-, pytest
-, pytest-cov
-, pytest-xdist
-, tox
-, virtualenv
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  django,
+  pyscaffold,
+  configupdater,
+  pre-commit,
+  pytest,
+  pytest-cov,
+  pytest-xdist,
+  tox,
+  virtualenv,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyscaffoldext-dsproject/default.nix b/pkgs/development/python-modules/pyscaffoldext-dsproject/default.nix
index e85bcc3b8e0ed..5f2cd21069fea 100644
--- a/pkgs/development/python-modules/pyscaffoldext-dsproject/default.nix
+++ b/pkgs/development/python-modules/pyscaffoldext-dsproject/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, setuptools-scm
-, wheel
-, importlib-metadata
-, pyscaffold
-, pyscaffoldext-markdown
-, configupdater
-, pre-commit
-, pytest
-, pytest-cov
-, pytest-xdist
-, tox
-, virtualenv
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  importlib-metadata,
+  pyscaffold,
+  pyscaffoldext-markdown,
+  configupdater,
+  pre-commit,
+  pytest,
+  pytest-cov,
+  pytest-xdist,
+  tox,
+  virtualenv,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyscaffoldext-markdown/default.nix b/pkgs/development/python-modules/pyscaffoldext-markdown/default.nix
index d0330a38f3144..82b25bac417ce 100644
--- a/pkgs/development/python-modules/pyscaffoldext-markdown/default.nix
+++ b/pkgs/development/python-modules/pyscaffoldext-markdown/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, setuptools-scm
-, wheel
-, importlib-metadata
-, myst-parser
-, pyscaffold
-, configupdater
-, pre-commit
-, pytest
-, pytest-cov
-, pytest-xdist
-, tox
-, twine
-, virtualenv
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  importlib-metadata,
+  myst-parser,
+  pyscaffold,
+  configupdater,
+  pre-commit,
+  pytest,
+  pytest-cov,
+  pytest-xdist,
+  tox,
+  twine,
+  virtualenv,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyscaffoldext-travis/default.nix b/pkgs/development/python-modules/pyscaffoldext-travis/default.nix
index 3d5ba4aa33e0b..46d27e7480b41 100644
--- a/pkgs/development/python-modules/pyscaffoldext-travis/default.nix
+++ b/pkgs/development/python-modules/pyscaffoldext-travis/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, setuptools-scm
-, wheel
-, importlib-metadata
-, pyscaffold
-, configupdater
-, pre-commit
-, pytest
-, pytest-cov
-, pytest-xdist
-, tox
-, virtualenv
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  importlib-metadata,
+  pyscaffold,
+  configupdater,
+  pre-commit,
+  pytest,
+  pytest-cov,
+  pytest-xdist,
+  tox,
+  virtualenv,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyscard/default.nix b/pkgs/development/python-modules/pyscard/default.nix
index 5fa9e60ae5c6c..3fd9d3c2fbd46 100644
--- a/pkgs/development/python-modules/pyscard/default.nix
+++ b/pkgs/development/python-modules/pyscard/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, buildPythonPackage
-, setuptools
-, pkg-config
-, swig
-, pcsclite
-, PCSC
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  PCSC,
+  pcsclite,
+  pkg-config,
+  pytestCheckHook,
+  setuptools,
+  stdenv,
+  swig,
 }:
 
 let
@@ -16,8 +17,8 @@ let
 in
 
 buildPythonPackage rec {
-  version = "2.0.9";
   pname = "pyscard";
+  version = "2.0.9";
   pyproject = true;
 
   src = fetchFromGitHub {
@@ -27,40 +28,45 @@ buildPythonPackage rec {
     hash = "sha256-DO4Ea+mlrWPpOLI8Eki+03UnsOXEhN2PAl0+gdN5sTo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-    swig
-  ] ++ lib.optionals (!withApplePCSC) [
-    pkg-config
-  ];
+  build-system = [ setuptools ];
+
+  nativeBuildInputs = [ swig ] ++ lib.optionals (!withApplePCSC) [ pkg-config ];
 
   buildInputs = if withApplePCSC then [ PCSC ] else [ pcsclite ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch =
-    if withApplePCSC then ''
-      substituteInPlace smartcard/scard/winscarddll.c \
-        --replace "/System/Library/Frameworks/PCSC.framework/PCSC" \
-                  "${PCSC}/Library/Frameworks/PCSC.framework/PCSC"
-    '' else ''
-      substituteInPlace setup.py --replace "pkg-config" "$PKG_CONFIG"
-      substituteInPlace smartcard/scard/winscarddll.c \
-        --replace "libpcsclite.so.1" \
-                  "${lib.getLib pcsclite}/lib/libpcsclite${stdenv.hostPlatform.extensions.sharedLibrary}"
-    '';
+    if withApplePCSC then
+      ''
+        substituteInPlace smartcard/scard/winscarddll.c \
+          --replace-fail "/System/Library/Frameworks/PCSC.framework/PCSC" \
+                    "${PCSC}/Library/Frameworks/PCSC.framework/PCSC"
+      ''
+    else
+      ''
+        substituteInPlace setup.py --replace "pkg-config" "$PKG_CONFIG"
+        substituteInPlace smartcard/scard/winscarddll.c \
+          --replace-fail "libpcsclite.so.1" \
+                    "${lib.getLib pcsclite}/lib/libpcsclite${stdenv.hostPlatform.extensions.sharedLibrary}"
+      '';
 
   preCheck = ''
     # remove src module, so tests use the installed module instead
     rm -r smartcard
   '';
 
+  disabledTests = [
+    # AssertionError
+    "test_hresult"
+    "test_low_level"
+  ];
+
   meta = with lib; {
-    homepage = "https://pyscard.sourceforge.io/";
     description = "Smartcard library for python";
-    license = licenses.lgpl21;
+    homepage = "https://pyscard.sourceforge.io/";
+    changelog = "https://github.com/LudovicRousseau/pyscard/releases/tag/${version}";
+    license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ layus ];
   };
 }
diff --git a/pkgs/development/python-modules/pyscf/default.nix b/pkgs/development/python-modules/pyscf/default.nix
index a8c0911276b4c..c00f5398595ab 100644
--- a/pkgs/development/python-modules/pyscf/default.nix
+++ b/pkgs/development/python-modules/pyscf/default.nix
@@ -1,32 +1,33 @@
-{ buildPythonPackage
-, lib
-, fetchFromGitHub
-, cmake
-, blas
-, libcint
-, libxc
-, xcfun
-, cppe
-, h5py
-, numpy
-, scipy
-, pytestCheckHook
+{
+  buildPythonPackage,
+  lib,
+  fetchFromGitHub,
+  cmake,
+  blas,
+  libcint,
+  libxc,
+  xcfun,
+  cppe,
+  h5py,
+  numpy,
+  scipy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "pyscf";
-  version = "2.5.0";
+  version = "2.6.2";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "pyscf";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-UCchzoYsqeIGViewPf4KedmhYktXLmp5Me4lzb1i8p0=";
+    hash = "sha256-gudkKhC5Cpd6ZM9mJ1SfemqmwDqhDmpAfYE8XGFpzmA=";
   };
 
   # setup.py calls Cmake and passes the arguments in CMAKE_CONFIGURE_ARGS to cmake.
-  nativeBuildInputs = [ cmake ];
+  build-system = [ cmake ];
   dontUseCmakeConfigure = true;
   preConfigure = ''
     export CMAKE_CONFIGURE_ARGS="-DBUILD_LIBCINT=0 -DBUILD_LIBXC=0 -DBUILD_XCFUN=0"
@@ -40,7 +41,7 @@ buildPythonPackage rec {
     xcfun
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     cppe
     h5py
     numpy
@@ -99,7 +100,10 @@ buildPythonPackage rec {
     description = "Python-based simulations of chemistry framework";
     homepage = "https://github.com/pyscf/pyscf";
     license = licenses.asl20;
-    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    platforms = [
+      "x86_64-linux"
+      "x86_64-darwin"
+    ];
     maintainers = [ maintainers.sheepforce ];
   };
 }
diff --git a/pkgs/development/python-modules/pyschedule/default.nix b/pkgs/development/python-modules/pyschedule/default.nix
index 3d51b3bb9deea..e3f09a5a58a0c 100644
--- a/pkgs/development/python-modules/pyschedule/default.nix
+++ b/pkgs/development/python-modules/pyschedule/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pulp
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pulp,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     sha256 = "6bba9e9ea07906ce2dfe3cd847c1822b137f6b13e9f975c50b347312fd98e110";
   };
 
-  propagatedBuildInputs = [
-    pulp
-  ];
+  propagatedBuildInputs = [ pulp ];
 
   # tests not included with pypi release (in examples)
   doCheck = false;
diff --git a/pkgs/development/python-modules/pyschemes/default.nix b/pkgs/development/python-modules/pyschemes/default.nix
index 384e375ecbded..5c7bc1afb9605 100644
--- a/pkgs/development/python-modules/pyschemes/default.nix
+++ b/pkgs/development/python-modules/pyschemes/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, fetchpatch
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  fetchpatch,
 }:
 
 buildPythonPackage rec {
@@ -25,14 +26,12 @@ buildPythonPackage rec {
       hash = "sha256-vDaWxMrn2aC2wmd035EWRZ3cd/XME81z/BWG0f2T9jc=";
     })
   ];
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "pyschemes" ];
 
   meta = with lib; {
-    description = "A library for validating data structures in Python";
+    description = "Library for validating data structures in Python";
     homepage = "https://github.com/spy16/pyschemes";
     license = licenses.wtfpl;
     maintainers = with maintainers; [ gador ];
diff --git a/pkgs/development/python-modules/pyschlage/default.nix b/pkgs/development/python-modules/pyschlage/default.nix
index d039364f6928d..649618409a634 100644
--- a/pkgs/development/python-modules/pyschlage/default.nix
+++ b/pkgs/development/python-modules/pyschlage/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pycognito
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pycognito,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "pyschlage";
-  version = "2024.2.0";
+  version = "2024.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -20,7 +21,7 @@ buildPythonPackage rec {
     owner = "dknowles2";
     repo = "pyschlage";
     rev = "refs/tags/${version}";
-    hash = "sha256-kjAV7VHKp7WpT6dNjuzYMTlcXbyIB2MNZQXOckDLWF8=";
+    hash = "sha256-mfrESWXkGV6r+VNw1dHRpIEtfZsLdsCf3D74ydgcy58=";
   };
 
   nativeBuildInputs = [
@@ -33,13 +34,9 @@ buildPythonPackage rec {
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyschlage"
-  ];
+  pythonImportsCheck = [ "pyschlage" ];
 
   meta = with lib; {
     description = "Library for interacting with Schlage Encode WiFi locks";
diff --git a/pkgs/development/python-modules/pyscreenshot/default.nix b/pkgs/development/python-modules/pyscreenshot/default.nix
index 50a1389fbb238..4cf66570a74f3 100644
--- a/pkgs/development/python-modules/pyscreenshot/default.nix
+++ b/pkgs/development/python-modules/pyscreenshot/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-, easyprocess
-, entrypoint2
-, jeepney
-, mss
-, pillow
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  easyprocess,
+  entrypoint2,
+  jeepney,
+  mss,
+  pillow,
 }:
 
 buildPythonPackage rec {
@@ -19,14 +20,16 @@ buildPythonPackage rec {
     sha256 = "sha256-jA6T8K72amv+Vahqv87WvTlq5LT2zB428EoorSYlWU0=";
   };
 
-  propagatedBuildInputs = [
-    easyprocess
-    entrypoint2
-    pillow
-  ] ++ lib.optionals (isPy3k) [
-    jeepney
-    mss
-  ];
+  propagatedBuildInputs =
+    [
+      easyprocess
+      entrypoint2
+      pillow
+    ]
+    ++ lib.optionals (isPy3k) [
+      jeepney
+      mss
+    ];
 
   # recursive dependency on pyvirtualdisplay
   doCheck = false;
diff --git a/pkgs/development/python-modules/pyscreeze/default.nix b/pkgs/development/python-modules/pyscreeze/default.nix
index d5261471c8f10..51898b3ed9254 100644
--- a/pkgs/development/python-modules/pyscreeze/default.nix
+++ b/pkgs/development/python-modules/pyscreeze/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pillow
-, xlib
-, xvfb-run
-, scrot
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pillow,
+  xlib,
+  xvfb-run,
+  scrot,
 }:
 buildPythonPackage rec {
   pname = "pyscreeze";
@@ -18,18 +19,20 @@ buildPythonPackage rec {
   };
 
   pythonImportsCheck = [ "pyscreeze" ];
-  nativeCheckInputs = [ scrot xlib xvfb-run ];
+  nativeCheckInputs = [
+    scrot
+    xlib
+    xvfb-run
+  ];
   checkPhase = ''
     python -m unittest tests.test_pillow_unavailable
     xvfb-run python -m unittest tests.test_pyscreeze
   '';
 
-  propagatedBuildInputs = [
-    pillow
-  ];
+  propagatedBuildInputs = [ pillow ];
 
   meta = with lib; {
-    description = "PyScreeze is a simple, cross-platform screenshot module for Python 2 and 3.";
+    description = "PyScreeze is a simple, cross-platform screenshot module for Python 2 and 3";
     homepage = "https://github.com/asweigart/pyscreeze";
     license = licenses.bsd3;
     maintainers = with maintainers; [ lucasew ];
diff --git a/pkgs/development/python-modules/pyscrypt/default.nix b/pkgs/development/python-modules/pyscrypt/default.nix
index 223802d449965..69c613e21d561 100644
--- a/pkgs/development/python-modules/pyscrypt/default.nix
+++ b/pkgs/development/python-modules/pyscrypt/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, python }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+}:
 
 buildPythonPackage rec {
   pname = "pyscrypt";
diff --git a/pkgs/development/python-modules/pyscss/default.nix b/pkgs/development/python-modules/pyscss/default.nix
index 912b4acc14e99..46261614492b5 100644
--- a/pkgs/development/python-modules/pyscss/default.nix
+++ b/pkgs/development/python-modules/pyscss/default.nix
@@ -1,11 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, six
-, enum34
-, pathlib
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -21,15 +19,14 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ pytestCheckHook ];
 
-  propagatedBuildInputs = [ six ]
-    ++ lib.optionals (pythonOlder "3.4") [ enum34 pathlib ];
+  propagatedBuildInputs = [ six ];
 
   # Test suite is broken.
   # See https://github.com/Kronuz/pyScss/issues/415
   doCheck = false;
 
   meta = with lib; {
-    description = "A Scss compiler for Python";
+    description = "Scss compiler for Python";
     homepage = "https://pyscss.readthedocs.org/en/latest/";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/pysdcp/default.nix b/pkgs/development/python-modules/pysdcp/default.nix
index b6b1798f7ae1f..091eb865359b9 100644
--- a/pkgs/development/python-modules/pysdcp/default.nix
+++ b/pkgs/development/python-modules/pysdcp/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pysdl2/default.nix b/pkgs/development/python-modules/pysdl2/default.nix
index 0ab7010f09238..7854f24654320 100644
--- a/pkgs/development/python-modules/pysdl2/default.nix
+++ b/pkgs/development/python-modules/pysdl2/default.nix
@@ -1,4 +1,15 @@
-{ stdenv, lib, substituteAll, fetchPypi, buildPythonPackage, SDL2, SDL2_ttf, SDL2_image, SDL2_gfx, SDL2_mixer }:
+{
+  stdenv,
+  lib,
+  substituteAll,
+  fetchPypi,
+  buildPythonPackage,
+  SDL2,
+  SDL2_ttf,
+  SDL2_image,
+  SDL2_gfx,
+  SDL2_mixer,
+}:
 
 buildPythonPackage rec {
   pname = "pysdl2";
@@ -19,23 +30,34 @@ buildPythonPackage rec {
 
   # Deliberately not in propagated build inputs; users can decide
   # which library they want to include.
-  buildInputs = [ SDL2_ttf SDL2_image SDL2_gfx SDL2_mixer ];
+  buildInputs = [
+    SDL2_ttf
+    SDL2_image
+    SDL2_gfx
+    SDL2_mixer
+  ];
   propagatedBuildInputs = [ SDL2 ];
   patches = [
-    (substituteAll ({
-      src = ./PySDL2-dll.patch;
-    } // builtins.mapAttrs (_: pkg: "${pkg}/lib/lib${pkg.pname}${stdenv.hostPlatform.extensions.sharedLibrary}") {
-      # substituteAll keys must start lowercase
-      sdl2 = SDL2;
-      sdl2_ttf = SDL2_ttf;
-      sdl2_image = SDL2_image;
-      sdl2_gfx = SDL2_gfx;
-      sdl2_mixer = SDL2_mixer;
-    }))
+    (substituteAll (
+      {
+        src = ./PySDL2-dll.patch;
+      }
+      //
+        builtins.mapAttrs
+          (_: pkg: "${pkg}/lib/lib${pkg.pname}${stdenv.hostPlatform.extensions.sharedLibrary}")
+          {
+            # substituteAll keys must start lowercase
+            sdl2 = SDL2;
+            sdl2_ttf = SDL2_ttf;
+            sdl2_image = SDL2_image;
+            sdl2_gfx = SDL2_gfx;
+            sdl2_mixer = SDL2_mixer;
+          }
+    ))
   ];
 
   meta = {
-    description = "A wrapper around the SDL2 library and as such similar to the discontinued PySDL project";
+    description = "Wrapper around the SDL2 library and as such similar to the discontinued PySDL project";
     homepage = "https://github.com/marcusva/py-sdl2";
     license = lib.licenses.publicDomain;
     maintainers = with lib.maintainers; [ pmiddend ];
diff --git a/pkgs/development/python-modules/pysecuritas/default.nix b/pkgs/development/python-modules/pysecuritas/default.nix
index 0c777bca224d7..c5ba481bab550 100644
--- a/pkgs/development/python-modules/pysecuritas/default.nix
+++ b/pkgs/development/python-modules/pysecuritas/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
-, xmltodict
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
   # https://github.com/Cebeerre/pysecuritas/issues/13
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pysecuritas"
-  ];
+  pythonImportsCheck = [ "pysecuritas" ];
 
   meta = with lib; {
     description = "Python client to access Securitas Direct Mobile API";
diff --git a/pkgs/development/python-modules/pysendfile/default.nix b/pkgs/development/python-modules/pysendfile/default.nix
index 0edd04ae331a2..9bc9363e022e7 100644
--- a/pkgs/development/python-modules/pysendfile/default.nix
+++ b/pkgs/development/python-modules/pysendfile/default.nix
@@ -27,7 +27,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sendfile" ];
 
   meta = with lib; {
-    description = "A Python interface to sendfile(2)";
+    description = "Python interface to sendfile(2)";
     homepage = "https://github.com/giampaolo/pysendfile";
     changelog = "https://github.com/giampaolo/pysendfile/blob/release-${version}/HISTORY.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pysensibo/default.nix b/pkgs/development/python-modules/pysensibo/default.nix
index 43d19bbc3862d..e5ec8d7093c44 100644
--- a/pkgs/development/python-modules/pysensibo/default.nix
+++ b/pkgs/development/python-modules/pysensibo/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-lsHKwFzfkGWuUiZGkt9zwjNDDU7i6gcqcEsi5SQqsSQ=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # No tests implemented
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pysensibo"
-  ];
+  pythonImportsCheck = [ "pysensibo" ];
 
   meta = with lib; {
     description = "Module for interacting with Sensibo";
diff --git a/pkgs/development/python-modules/pysensors/default.nix b/pkgs/development/python-modules/pysensors/default.nix
index eccb831300fe0..650b0140f4c71 100644
--- a/pkgs/development/python-modules/pysensors/default.nix
+++ b/pkgs/development/python-modules/pysensors/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, unittestCheckHook, fetchFromGitHub, lm_sensors }:
+{
+  lib,
+  buildPythonPackage,
+  unittestCheckHook,
+  fetchFromGitHub,
+  lm_sensors,
+}:
 buildPythonPackage {
   version = "2017-07-13";
   format = "setuptools";
@@ -20,7 +26,10 @@ buildPythonPackage {
 
   nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [ "-s" "tests" ];
+  unittestFlagsArray = [
+    "-s"
+    "tests"
+  ];
 
   meta = with lib; {
     maintainers = with maintainers; [ guibou ];
diff --git a/pkgs/development/python-modules/pysequoia/default.nix b/pkgs/development/python-modules/pysequoia/default.nix
index 4e48f1c49dd10..3fb8236f9b71b 100644
--- a/pkgs/development/python-modules/pysequoia/default.nix
+++ b/pkgs/development/python-modules/pysequoia/default.nix
@@ -1,33 +1,34 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pkg-config
-, rustPlatform
-, cargo
-, rustc
-, bzip2
-, nettle
-, openssl
-, pcsclite
-, stdenv
-, darwin
-, libiconv
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pkg-config,
+  rustPlatform,
+  cargo,
+  rustc,
+  bzip2,
+  nettle,
+  openssl,
+  pcsclite,
+  stdenv,
+  darwin,
+  libiconv,
 }:
 
 buildPythonPackage rec {
   pname = "pysequoia";
-  version = "0.1.20";
+  version = "0.1.24";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-KavsLp17e4ckX11B0pefiQ1Hma/O9x0VY/uVPiJm4Fs=";
+    hash = "sha256-sLGPVyUVh1MxAJz8933xGAxaI9+0L/D6wViy5ARLe44=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-7Lw6gR6o2HJ/zyG4b0wz4nmU2AIIAhyK9zaQ6w+/RgE=";
+    hash = "sha256-DLMAL1pJwJ5xU9XzJXlrqfNGloK9VNGxnapnh34bRhI=";
   };
 
   nativeBuildInputs = [
@@ -39,16 +40,18 @@ buildPythonPackage rec {
     rustc
   ];
 
-  buildInputs = [
-    bzip2
-    nettle
-    openssl
-    pcsclite
-  ] ++ lib.optionals stdenv.isDarwin [
-    darwin.apple_sdk.frameworks.CoreFoundation
-    darwin.apple_sdk.frameworks.Security
-    libiconv
-  ];
+  buildInputs =
+    [
+      bzip2
+      nettle
+      openssl
+      pcsclite
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      darwin.apple_sdk.frameworks.CoreFoundation
+      darwin.apple_sdk.frameworks.Security
+      libiconv
+    ];
 
   pythonImportsCheck = [ "pysequoia" ];
 
diff --git a/pkgs/development/python-modules/pyserial-asyncio-fast/default.nix b/pkgs/development/python-modules/pyserial-asyncio-fast/default.nix
index d935b2c171551..882c761d191e6 100644
--- a/pkgs/development/python-modules/pyserial-asyncio-fast/default.nix
+++ b/pkgs/development/python-modules/pyserial-asyncio-fast/default.nix
@@ -1,29 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
-, wheel
+  # build-system
+  setuptools,
+  wheel,
 
-# dependencies
-, pyserial
+  # dependencies
+  pyserial,
 
-# tests
-, pytestCheckHook
-, pytest-asyncio
+  # tests
+  pytestCheckHook,
+  pytest-asyncio,
 }:
 
 buildPythonPackage rec {
   pname = "pyserial-asyncio-fast";
-  version = "0.11";
+  version = "0.12";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "bdraco";
     repo = "pyserial-asyncio-fast";
     rev = version;
-    hash = "sha256-B1CLk7ggI7l+DaMDlnMjl2tfh+evvaf1nxzBpmqMBZk=";
+    hash = "sha256-37dbJq+9Ex+/uiRR2esgOP15CjySA0MLvxnjiPDTF08=";
   };
 
   nativeBuildInputs = [
@@ -31,13 +32,9 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    pyserial
-  ];
+  propagatedBuildInputs = [ pyserial ];
 
-  pythonImportsCheck = [
-    "serial_asyncio_fast"
-  ];
+  pythonImportsCheck = [ "serial_asyncio_fast" ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/pyserial-asyncio/default.nix b/pkgs/development/python-modules/pyserial-asyncio/default.nix
index 6167c40d44f07..68c318a9d975c 100644
--- a/pkgs/development/python-modules/pyserial-asyncio/default.nix
+++ b/pkgs/development/python-modules/pyserial-asyncio/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pyserial
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pyserial,
 }:
 
 buildPythonPackage rec {
@@ -17,15 +18,11 @@ buildPythonPackage rec {
     hash = "sha256-tgMpI+BenXXsF6WvmphCnEbSg5rfr4BgTVLg+qzXoy8=";
   };
 
-  propagatedBuildInputs = [
-    pyserial
-  ];
+  propagatedBuildInputs = [ pyserial ];
 
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [
-    "serial_asyncio"
-  ];
+  pythonImportsCheck = [ "serial_asyncio" ];
 
   meta = with lib; {
     description = "Asyncio extension package for pyserial";
diff --git a/pkgs/development/python-modules/pyserial/default.nix b/pkgs/development/python-modules/pyserial/default.nix
index a515c5acfcd15..156cf889185f1 100644
--- a/pkgs/development/python-modules/pyserial/default.nix
+++ b/pkgs/development/python-modules/pyserial/default.nix
@@ -1,10 +1,9 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, unittestCheckHook
-, pythonOlder
-, isPy3k
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -12,9 +11,6 @@ buildPythonPackage rec {
   version = "3.5";
   format = "setuptools";
 
-  # Supports Python 2.7 and 3.4+
-  disabled = isPy3k && pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-PHfgFBcN//vYFub/wgXphC77EL6fWOwW0+hnW0klzds=";
@@ -29,12 +25,13 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [ "-s" "test" ];
-
-  pythonImportsCheck = [
-    "serial"
+  unittestFlagsArray = [
+    "-s"
+    "test"
   ];
 
+  pythonImportsCheck = [ "serial" ];
+
   meta = with lib; {
     description = "Python serial port extension";
     homepage = "https://github.com/pyserial/pyserial";
diff --git a/pkgs/development/python-modules/pysftp/default.nix b/pkgs/development/python-modules/pysftp/default.nix
index c138f21f01793..08ea007ba7b13 100644
--- a/pkgs/development/python-modules/pysftp/default.nix
+++ b/pkgs/development/python-modules/pysftp/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPyPy
-, paramiko
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  paramiko,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://bitbucket.org/dundeemt/pysftp";
-    description = "A friendly face on SFTP";
+    description = "Friendly face on SFTP";
     license = licenses.mit;
     longDescription = ''
       A simple interface to SFTP. The module offers high level abstractions
@@ -28,5 +29,4 @@ buildPythonPackage rec {
       Book, in the docs, to see what pysftp can do for you.
     '';
   };
-
 }
diff --git a/pkgs/development/python-modules/pyshark/default.nix b/pkgs/development/python-modules/pyshark/default.nix
index 523da70306624..3999af3f3e63a 100644
--- a/pkgs/development/python-modules/pyshark/default.nix
+++ b/pkgs/development/python-modules/pyshark/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, stdenv
-, appdirs
-, buildPythonPackage
-, fetchFromGitHub
-, lxml
-, packaging
-, py
-, pytestCheckHook
-, pythonOlder
-, termcolor
-, wireshark-cli
+{
+  lib,
+  stdenv,
+  appdirs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxml,
+  packaging,
+  py,
+  pytestCheckHook,
+  pythonOlder,
+  termcolor,
+  wireshark-cli,
 }:
 
 buildPythonPackage rec {
@@ -51,23 +52,21 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  disabledTests = [
-    # flaky
-    # KeyError: 'Packet of index 0 does not exist in capture'
-    "test_getting_packet_summary"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # fails on darwin
-    # _pickle.PicklingError: logger cannot be pickled
-    "test_iterate_empty_psml_capture"
-  ];
+  disabledTests =
+    [
+      # flaky
+      # KeyError: 'Packet of index 0 does not exist in capture'
+      "test_getting_packet_summary"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # fails on darwin
+      # _pickle.PicklingError: logger cannot be pickled
+      "test_iterate_empty_psml_capture"
+    ];
 
-  pythonImportsCheck = [
-    "pyshark"
-  ];
+  pythonImportsCheck = [ "pyshark" ];
 
-  pytestFlagsArray = [
-    "../tests/"
-  ];
+  pytestFlagsArray = [ "../tests/" ];
 
   meta = with lib; {
     description = "Python wrapper for tshark, allowing Python packet parsing using Wireshark dissectors";
diff --git a/pkgs/development/python-modules/pyshp/default.nix b/pkgs/development/python-modules/pyshp/default.nix
index 280e4cb7675be..34866cdf85a29 100644
--- a/pkgs/development/python-modules/pyshp/default.nix
+++ b/pkgs/development/python-modules/pyshp/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-yfxhgk8a1rdpGVkE1sjJqT6tiFLimhu2m2SjGxLI6wo=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "shapefile"
-  ];
+  pythonImportsCheck = [ "shapefile" ];
 
   disabledTests = [
     # Requires network access
diff --git a/pkgs/development/python-modules/pysiaalarm/default.nix b/pkgs/development/python-modules/pysiaalarm/default.nix
index db5973207f7e7..efeaf873820f3 100644
--- a/pkgs/development/python-modules/pysiaalarm/default.nix
+++ b/pkgs/development/python-modules/pysiaalarm/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, dataclasses-json
-, pycryptodome
-, setuptools-scm
-, pytest-asyncio
-, pytest-cases
-, pytest7CheckHook
-, pytz
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  dataclasses-json,
+  pycryptodome,
+  setuptools-scm,
+  pytest-asyncio,
+  pytest-cases,
+  pytest7CheckHook,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
       --replace "--cov pysiaalarm --cov-report term-missing" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     dataclasses-json
diff --git a/pkgs/development/python-modules/pyside2-tools/default.nix b/pkgs/development/python-modules/pyside2-tools/default.nix
index 66d0fa51f2113..0bfcb985d949c 100644
--- a/pkgs/development/python-modules/pyside2-tools/default.nix
+++ b/pkgs/development/python-modules/pyside2-tools/default.nix
@@ -1,5 +1,13 @@
-{ wrapPython, python, lib, stdenv, cmake, qt5,
-  shiboken2, pyside2 }:
+{
+  wrapPython,
+  python,
+  lib,
+  stdenv,
+  cmake,
+  qt5,
+  shiboken2,
+  pyside2,
+}:
 
 stdenv.mkDerivation {
   pname = "pyside2-tools";
@@ -17,13 +25,20 @@ stdenv.mkDerivation {
     cd sources/pyside2-tools
   '';
 
-  nativeBuildInputs = [ cmake wrapPython ];
-  propagatedBuildInputs = [ shiboken2 pyside2 ];
-  buildInputs = [ python qt5.qtbase ];
-
-  cmakeFlags = [
-    "-DBUILD_TESTS=OFF"
+  nativeBuildInputs = [
+    cmake
+    wrapPython
+  ];
+  propagatedBuildInputs = [
+    shiboken2
+    pyside2
   ];
+  buildInputs = [
+    python
+    qt5.qtbase
+  ];
+
+  cmakeFlags = [ "-DBUILD_TESTS=OFF" ];
 
   dontWrapQtApps = true;
 
diff --git a/pkgs/development/python-modules/pyside2/default.nix b/pkgs/development/python-modules/pyside2/default.nix
index 1d4cf2ce60389..aa92b81e2dde7 100644
--- a/pkgs/development/python-modules/pyside2/default.nix
+++ b/pkgs/development/python-modules/pyside2/default.nix
@@ -1,14 +1,15 @@
-{ python
-, pythonAtLeast
-, disabledIf
-, fetchurl
-, lib
-, stdenv
-, cmake
-, libxcrypt
-, ninja
-, qt5
-, shiboken2
+{
+  python,
+  pythonAtLeast,
+  disabledIf,
+  fetchurl,
+  lib,
+  stdenv,
+  cmake,
+  libxcrypt,
+  ninja,
+  qt5,
+  shiboken2,
 }:
 stdenv.mkDerivation rec {
   pname = "pyside2";
@@ -19,9 +20,7 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-2lZ807eFTSegtK/j6J3osvmLem1XOTvlbx/BP3cPryk=";
   };
 
-  patches = [
-    ./dont_ignore_optional_modules.patch
-  ];
+  patches = [ ./dont_ignore_optional_modules.patch ];
 
   postPatch = ''
     cd sources/pyside2
@@ -34,30 +33,36 @@ stdenv.mkDerivation rec {
 
   env.NIX_CFLAGS_COMPILE = "-I${qt5.qtdeclarative.dev}/include/QtQuick/${qt5.qtdeclarative.version}/QtQuick";
 
-  nativeBuildInputs = [ cmake ninja qt5.qmake python ];
+  nativeBuildInputs = [
+    cmake
+    ninja
+    qt5.qmake
+    python
+  ];
 
-  buildInputs = (with qt5; [
-    qtbase
-    qtxmlpatterns
-    qtmultimedia
-    qttools
-    qtx11extras
-    qtlocation
-    qtscript
-    qtwebsockets
-    qtwebengine
-    qtwebchannel
-    qtcharts
-    qtsensors
-    qtsvg
-    qt3d
-  ]) ++ (with python.pkgs; [
-    setuptools
-  ]) ++ (lib.optionals (python.pythonOlder "3.9") [
-    # see similar issue: 202262
-    # libxcrypt is required for crypt.h for building older python modules
-    libxcrypt
-  ]);
+  buildInputs =
+    (with qt5; [
+      qtbase
+      qtxmlpatterns
+      qtmultimedia
+      qttools
+      qtx11extras
+      qtlocation
+      qtscript
+      qtwebsockets
+      qtwebengine
+      qtwebchannel
+      qtcharts
+      qtsensors
+      qtsvg
+      qt3d
+    ])
+    ++ (with python.pkgs; [ setuptools ])
+    ++ (lib.optionals (python.pythonOlder "3.9") [
+      # see similar issue: 202262
+      # libxcrypt is required for crypt.h for building older python modules
+      libxcrypt
+    ]);
 
   propagatedBuildInputs = [ shiboken2 ];
 
diff --git a/pkgs/development/python-modules/pyside6/default.nix b/pkgs/development/python-modules/pyside6/default.nix
index bfc34a23fcd55..79c691980ffbf 100644
--- a/pkgs/development/python-modules/pyside6/default.nix
+++ b/pkgs/development/python-modules/pyside6/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, stdenv
-, cmake
-, ninja
-, python
-, moveBuildTree
-, shiboken6
+{
+  lib,
+  stdenv,
+  cmake,
+  ninja,
+  python,
+  moveBuildTree,
+  shiboken6,
 }:
 
-stdenv.mkDerivation rec {
+stdenv.mkDerivation (finalAttrs: {
   pname = "pyside6";
 
   inherit (shiboken6) version src;
 
-  sourceRoot = "pyside-setup-everywhere-src-${version}/sources/${pname}";
+  sourceRoot = "pyside-setup-everywhere-src-${finalAttrs.version}/sources/pyside6";
 
   # FIXME: cmake/Macros/PySideModules.cmake supposes that all Qt frameworks on macOS
   # reside in the same directory as QtCore.framework, which is not true for Nix.
@@ -28,45 +29,42 @@ stdenv.mkDerivation rec {
     cmake
     ninja
     python
-  ] ++ lib.optionals stdenv.isDarwin [
-    moveBuildTree
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ moveBuildTree ];
 
-  buildInputs = with python.pkgs.qt6; [
-    # required
-    qtbase
-    python.pkgs.ninja
-    python.pkgs.packaging
-    python.pkgs.setuptools
-  ] ++ lib.optionals stdenv.isLinux [
-    # optional
-    qt3d
-    qtcharts
-    qtconnectivity
-    qtdatavis3d
-    qtdeclarative
-    qthttpserver
-    qtmultimedia
-    qtnetworkauth
-    qtquick3d
-    qtremoteobjects
-    qtscxml
-    qtsensors
-    qtspeech
-    qtsvg
-    qttools
-    qtwebchannel
-    qtwebengine
-    qtwebsockets
-  ];
+  buildInputs =
+    with python.pkgs.qt6;
+    [
+      # required
+      qtbase
+      python.pkgs.ninja
+      python.pkgs.packaging
+      python.pkgs.setuptools
+    ]
+    ++ lib.optionals stdenv.isLinux [
+      # optional
+      qt3d
+      qtcharts
+      qtconnectivity
+      qtdatavis3d
+      qtdeclarative
+      qthttpserver
+      qtmultimedia
+      qtnetworkauth
+      qtquick3d
+      qtremoteobjects
+      qtscxml
+      qtsensors
+      qtspeech
+      qtsvg
+      qttools
+      qtwebchannel
+      qtwebengine
+      qtwebsockets
+    ];
 
-  propagatedBuildInputs = [
-    shiboken6
-  ];
+  propagatedBuildInputs = [ shiboken6 ];
 
-  cmakeFlags = [
-    "-DBUILD_TESTS=OFF"
-  ];
+  cmakeFlags = [ "-DBUILD_TESTS=OFF" ];
 
   dontWrapQtApps = true;
 
@@ -76,11 +74,19 @@ stdenv.mkDerivation rec {
     cp -r PySide6.egg-info $out/${python.sitePackages}/
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Python bindings for Qt";
-    license = with licenses; [ lgpl3Only gpl2Only gpl3Only ];
+    license = with lib.licenses; [
+      lgpl3Only
+      gpl2Only
+      gpl3Only
+    ];
     homepage = "https://wiki.qt.io/Qt_for_Python";
-    maintainers = with maintainers; [ gebner Enzime ];
-    platforms = platforms.all;
+    changelog = "https://code.qt.io/cgit/pyside/pyside-setup.git/tree/doc/changelogs/changes-${finalAttrs.version}?h=v${finalAttrs.version}";
+    maintainers = with lib.maintainers; [
+      gebner
+      Enzime
+    ];
+    platforms = lib.platforms.all;
   };
-}
+})
diff --git a/pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix b/pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix
index 4fea0395ef6f1..561f117c49f38 100644
--- a/pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix
+++ b/pkgs/development/python-modules/pysigma-backend-elasticsearch/default.nix
@@ -11,7 +11,7 @@
 
 buildPythonPackage rec {
   pname = "pysigma-backend-elasticsearch";
-  version = "1.1.0";
+  version = "1.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +20,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma-backend-elasticsearch";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1tCn0aPYhjyOQJxN0cqTMDCcE0eZwRtTK6OV3rU1a1E=";
+    hash = "sha256-NrA7+iwjmYIOqLGRUJSWhOjFb6V542r0PWxuZG3O/Yo=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/pysigma-backend-insightidr/default.nix b/pkgs/development/python-modules/pysigma-backend-insightidr/default.nix
index 1fef60d8acf51..b062ff4356060 100644
--- a/pkgs/development/python-modules/pysigma-backend-insightidr/default.nix
+++ b/pkgs/development/python-modules/pysigma-backend-insightidr/default.nix
@@ -1,16 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pysigma
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pysigma,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "pysigma-backend-insightidr";
-  version = "0.2.2";
+  version = "0.2.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -19,25 +19,18 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma-backend-insightidr";
     rev = "refs/tags/v${version}";
-    hash = "sha256-B42MADteF0+GC/CPJPLaTGdGcQjC8KEsK9u3tBmtObg=";
+    hash = "sha256-wQMnnJ0KU+53MS3PIBkwIhUiyUdCrDbdUT6upk2Pp/8=";
   };
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = [
-    pysigma
-  ];
+  propagatedBuildInputs = [ pysigma ];
 
-  pythonRelaxDeps = [
-    "pysigma"
-  ];
+  pythonRelaxDeps = [ "pysigma" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [
     "sigma.backends.insight_idr"
diff --git a/pkgs/development/python-modules/pysigma-backend-opensearch/default.nix b/pkgs/development/python-modules/pysigma-backend-opensearch/default.nix
index 666816669929d..2e2249fd9c54f 100644
--- a/pkgs/development/python-modules/pysigma-backend-opensearch/default.nix
+++ b/pkgs/development/python-modules/pysigma-backend-opensearch/default.nix
@@ -1,18 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pysigma
-, pysigma-backend-elasticsearch
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pysigma,
+  pysigma-backend-elasticsearch,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "pysigma-backend-opensearch";
-  version = "1.0.1";
+  version = "1.0.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma-backend-opensearch";
     rev = "refs/tags/v${version}";
-    hash = "sha256-g3kGaNq07yMu3mnRDeZB3Ck8wwzK3HcOIzkl36cNOs8=";
+    hash = "sha256-VEMt9CKbhPRj1182WcLOqF9JOEzorrz9Yyqp0+FAA88=";
   };
 
   postPatch = ''
@@ -29,16 +29,12 @@ buildPythonPackage rec {
       --replace-fail " --cov=sigma --cov-report term --cov-report xml:cov.xml" ""
   '';
 
-  pythonRelaxDeps = [
-    "pysigma"
-  ];
+  pythonRelaxDeps = [ "pysigma" ];
 
-  nativeBuildInputs = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+
+  dependencies = [
     pysigma
     pysigma-backend-elasticsearch
   ];
@@ -48,9 +44,7 @@ buildPythonPackage rec {
     requests
   ];
 
-  pythonImportsCheck = [
-    "sigma.backends.opensearch"
-  ];
+  pythonImportsCheck = [ "sigma.backends.opensearch" ];
 
   disabledTests = [
     # Tests requires network access
diff --git a/pkgs/development/python-modules/pysigma-backend-qradar/default.nix b/pkgs/development/python-modules/pysigma-backend-qradar/default.nix
index 817cdf8866c96..d0ec8be3b48ea 100644
--- a/pkgs/development/python-modules/pysigma-backend-qradar/default.nix
+++ b/pkgs/development/python-modules/pysigma-backend-qradar/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pysigma
-, pysigma-pipeline-sysmon
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pysigma,
+  pysigma-pipeline-sysmon,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -24,27 +24,20 @@ buildPythonPackage rec {
     hash = "sha256-VymaxX+iqrRlf+WEt4xqEvNt5kg8xI5O/MoYahayu0o=";
   };
 
-  pythonRelaxDeps = [
-    "pysigma"
-  ];
+  pythonRelaxDeps = [ "pysigma" ];
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  propagatedBuildInputs = [
-    pysigma
-  ];
+  propagatedBuildInputs = [ pysigma ];
 
   nativeCheckInputs = [
     pysigma-pipeline-sysmon
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "sigma.backends.qradar"
-  ];
+  pythonImportsCheck = [ "sigma.backends.qradar" ];
 
   meta = with lib; {
     description = "Library to support Qradar for pySigma";
diff --git a/pkgs/development/python-modules/pysigma-backend-splunk/default.nix b/pkgs/development/python-modules/pysigma-backend-splunk/default.nix
index ec467e52e9ac8..a3a2d6ecc4668 100644
--- a/pkgs/development/python-modules/pysigma-backend-splunk/default.nix
+++ b/pkgs/development/python-modules/pysigma-backend-splunk/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pysigma
-, pysigma-pipeline-sysmon
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pysigma,
+  pysigma-pipeline-sysmon,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-PRJmFXVjcvXVHITwp6ESSoizmJOSiLTl1mj67rNhSNw=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    pysigma
-  ];
+  propagatedBuildInputs = [ pysigma ];
 
   nativeCheckInputs = [
     pysigma-pipeline-sysmon
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "sigma.backends.splunk"
-  ];
+  pythonImportsCheck = [ "sigma.backends.splunk" ];
 
   meta = with lib; {
     description = "Library to support Splunk for pySigma";
diff --git a/pkgs/development/python-modules/pysigma-backend-sqlite/default.nix b/pkgs/development/python-modules/pysigma-backend-sqlite/default.nix
index b9279b024102f..0cb08550f8642 100644
--- a/pkgs/development/python-modules/pysigma-backend-sqlite/default.nix
+++ b/pkgs/development/python-modules/pysigma-backend-sqlite/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pysigma
-, pytestCheckHook
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pysigma,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-wbFSgtsiP5k1aGJx8PWDl0N28r0dgn6Fduk0PuM8x3w=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    pysigma
-  ];
+  propagatedBuildInputs = [ pysigma ];
 
   nativeCheckInputs = [
     pytestCheckHook
     requests
   ];
 
-  pythonImportsCheck = [
-    "sigma.backends.sqlite"
-  ];
+  pythonImportsCheck = [ "sigma.backends.sqlite" ];
 
   meta = with lib; {
     description = "Library to support sqlite for pySigma";
diff --git a/pkgs/development/python-modules/pysigma-pipeline-crowdstrike/default.nix b/pkgs/development/python-modules/pysigma-pipeline-crowdstrike/default.nix
index 0b08cd5e1b122..8acb5470019ee 100644
--- a/pkgs/development/python-modules/pysigma-pipeline-crowdstrike/default.nix
+++ b/pkgs/development/python-modules/pysigma-pipeline-crowdstrike/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pysigma
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pysigma,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-0uSoZC2cUgdOGE5saLlx5n0gbVPX61kkASCBFD4F5QM=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    pysigma
-  ];
+  propagatedBuildInputs = [ pysigma ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "sigma.pipelines.crowdstrike"
-  ];
+  pythonImportsCheck = [ "sigma.pipelines.crowdstrike" ];
 
   meta = with lib; {
     description = "Library to support CrowdStrike pipeline for pySigma";
diff --git a/pkgs/development/python-modules/pysigma-pipeline-sysmon/default.nix b/pkgs/development/python-modules/pysigma-pipeline-sysmon/default.nix
index a60b50f2bc2bc..4249731ec664c 100644
--- a/pkgs/development/python-modules/pysigma-pipeline-sysmon/default.nix
+++ b/pkgs/development/python-modules/pysigma-pipeline-sysmon/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pysigma
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pysigma,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-/WBHu1pFEiVPJQ97xEwjJJ92h9kHzTBPgmfQrR+RZjA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    pysigma
-  ];
+  propagatedBuildInputs = [ pysigma ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "sigma.pipelines.sysmon"
-  ];
+  pythonImportsCheck = [ "sigma.pipelines.sysmon" ];
 
   meta = with lib; {
     description = "Library to support Sysmon pipeline for pySigma";
diff --git a/pkgs/development/python-modules/pysigma-pipeline-windows/default.nix b/pkgs/development/python-modules/pysigma-pipeline-windows/default.nix
index 5b6518bbf8d80..d40ceff1c7922 100644
--- a/pkgs/development/python-modules/pysigma-pipeline-windows/default.nix
+++ b/pkgs/development/python-modules/pysigma-pipeline-windows/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pysigma
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pysigma,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-Ss0OMd8urCYQUlvsm/m8Kz0jY4pVSEoZuLxs1JLWxQA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    pysigma
-  ];
+  propagatedBuildInputs = [ pysigma ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "sigma.pipelines.windows"
-  ];
+  pythonImportsCheck = [ "sigma.pipelines.windows" ];
 
   meta = with lib; {
     description = "Library to support Windows service pipeline for pySigma";
diff --git a/pkgs/development/python-modules/pysigma/default.nix b/pkgs/development/python-modules/pysigma/default.nix
index 5816b43926ac0..3ccbefb250e3f 100644
--- a/pkgs/development/python-modules/pysigma/default.nix
+++ b/pkgs/development/python-modules/pysigma/default.nix
@@ -2,21 +2,19 @@
   lib,
   buildPythonPackage,
   fetchFromGitHub,
-  fetchpatch,
   jinja2,
   packaging,
   poetry-core,
   pyparsing,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
   pyyaml,
   requests,
 }:
 
 buildPythonPackage rec {
   pname = "pysigma";
-  version = "0.11.5";
+  version = "0.11.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +23,7 @@ buildPythonPackage rec {
     owner = "SigmaHQ";
     repo = "pySigma";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Mr4etI6VNPWDVZj4A9j3Ka9v+BpFC75MLXppYELIWrg=";
+    hash = "sha256-vc2f5qrPHSU/CUENj+MuD0rjsEj68JPnL39fuOOcRCU=";
   };
 
   pythonRelaxDeps = [
@@ -35,7 +33,6 @@ buildPythonPackage rec {
 
   build-system = [ poetry-core ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     jinja2
diff --git a/pkgs/development/python-modules/pysignalclirestapi/default.nix b/pkgs/development/python-modules/pysignalclirestapi/default.nix
index 892a681aea909..c2357f4f95443 100644
--- a/pkgs/development/python-modules/pysignalclirestapi/default.nix
+++ b/pkgs/development/python-modules/pysignalclirestapi/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, requests
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  requests,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-LGP/Oo4FCvOq3LuUZRYFkK2JV1kEu3MeCDgnYo+91o4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     requests
diff --git a/pkgs/development/python-modules/pysigset/default.nix b/pkgs/development/python-modules/pysigset/default.nix
index b0cd337304afe..e0ecf26d4f398 100644
--- a/pkgs/development/python-modules/pysigset/default.nix
+++ b/pkgs/development/python-modules/pysigset/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "pysigset";
diff --git a/pkgs/development/python-modules/pysilero-vad/default.nix b/pkgs/development/python-modules/pysilero-vad/default.nix
index 332d7260e519f..7d2b44a61ec28 100644
--- a/pkgs/development/python-modules/pysilero-vad/default.nix
+++ b/pkgs/development/python-modules/pysilero-vad/default.nix
@@ -1,18 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, stdenv
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  stdenv,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, numpy
-, onnxruntime
+  # dependencies
+  numpy,
+  onnxruntime,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -29,25 +29,18 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     setuptools
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "numpy"
-  ];
+  pythonRelaxDeps = [ "numpy" ];
 
   propagatedBuildInputs = [
     numpy
     onnxruntime
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pysilero_vad"
-  ];
+  pythonImportsCheck = [ "pysilero_vad" ];
 
   meta = with lib; {
     # what():  /build/source/include/onnxruntime/core/common/logging/logging.h:294 static const onnxruntime::logging::Logger& onnxruntime::logging::LoggingManager::DefaultLogger() Attempt to use DefaultLogger but none has been registered.
diff --git a/pkgs/development/python-modules/pysim/default.nix b/pkgs/development/python-modules/pysim/default.nix
index 542b0049ccd35..8cbe3dd854b9b 100644
--- a/pkgs/development/python-modules/pysim/default.nix
+++ b/pkgs/development/python-modules/pysim/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
-, pytest-asyncio
-, colorlog
-, smpp-pdu
-, pyscard
-, packaging
-, gsm0338
-, bidict
-, jsonpath-ng
-, termcolor
-, pyyaml
-, pycryptodomex
-, construct
-, pyserial
-, pytlv
-, cmd2
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  pytest-asyncio,
+  colorlog,
+  smpp-pdu,
+  pyscard,
+  packaging,
+  gsm0338,
+  bidict,
+  jsonpath-ng,
+  termcolor,
+  pyyaml,
+  pycryptodomex,
+  construct,
+  pyserial,
+  pytlv,
+  cmd2,
 }:
 
 buildPythonPackage {
@@ -36,9 +37,7 @@ buildPythonPackage {
     substituteInPlace setup.py --replace 'smpp.pdu @ git+https://github.com/hologram-io/smpp.pdu' 'smpp.pdu'
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     bidict
@@ -57,16 +56,17 @@ buildPythonPackage {
     termcolor
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "pySim" ];
 
   meta = with lib; {
-    description = "A python tool to program SIMs / USIMs / ISIMs.";
+    description = "Python tool to program SIMs / USIMs / ISIMs";
     homepage = "https://github.com/osmocom/pysim";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ flokli janik ];
+    maintainers = with maintainers; [
+      flokli
+      janik
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pysimplegui/default.nix b/pkgs/development/python-modules/pysimplegui/default.nix
index 71234522f9fb0..ac2d7482496a2 100644
--- a/pkgs/development/python-modules/pysimplegui/default.nix
+++ b/pkgs/development/python-modules/pysimplegui/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, tkinter
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  tkinter,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "pysimplegui";
-  version = "5.0.4";
+  version = "5.0.5";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -15,16 +16,12 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "PySimpleGUI";
     inherit version;
-    hash = "sha256-pThG6BBWxy98REUae91yBZDKK8Q1Zc1PHpoW7nhdmAw=";
+    hash = "sha256-4B2LgWmdXAU9ACSR0F26Q9+eP3izRI+p6QS/o9m6Hfk=";
   };
 
-  propagatedBuildInputs = [
-    tkinter
-  ];
+  propagatedBuildInputs = [ tkinter ];
 
-  pythonImportsCheck = [
-    "PySimpleGUI"
-  ];
+  pythonImportsCheck = [ "PySimpleGUI" ];
 
   meta = with lib; {
     description = "Python GUIs for Humans";
diff --git a/pkgs/development/python-modules/pysimplesoap/default.nix b/pkgs/development/python-modules/pysimplesoap/default.nix
index d02761a1c9220..3d7d25a7b9f8a 100644
--- a/pkgs/development/python-modules/pysimplesoap/default.nix
+++ b/pkgs/development/python-modules/pysimplesoap/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchDebianPatch
-, fetchPypi
-, buildPythonPackage
-, m2crypto
-, nix-update-script
+{
+  lib,
+  fetchDebianPatch,
+  fetchPypi,
+  buildPythonPackage,
+  m2crypto,
+  nix-update-script,
 }:
 
 buildPythonPackage rec {
@@ -19,29 +20,47 @@ buildPythonPackage rec {
     hash = "sha256-sbv00NCt/5tlIZfWGqG3ZzGtYYhJ4n0o/lyyUJFtZ+E=";
   };
 
-  propagatedBuildInputs = [
-    m2crypto
-  ];
+  propagatedBuildInputs = [ m2crypto ];
 
   # Patches necessary for Python 3 compatibility plus bugfixes
-  patches = map (args: fetchDebianPatch ({
-    inherit pname version;
-    debianRevision = "5";
-  } // args)) [
-    # Merged upstream: f5f96210e1483f81cb5c582a6619e3ec4b473027
-    { patch = "Add-quotes-to-SOAPAction-header-in-SoapClient.patch";
-      hash = "sha256-xA8Wnrpr31H8wy3zHSNfezFNjUJt1HbSXn3qUMzeKc0="; }
-    # Merged upstream: ad03a21cafab982eed321553c4bfcda1755182eb
-    { patch = "fix-httplib2-version-check.patch";
-      hash = "sha256-zUeF3v0N/eMyRVRH3tQLfuUfMKOD/B/aqEwFh/7HxH4="; }
-    { patch = "reorder-type-check-to-avoid-a-TypeError.patch";
-      hash = "sha256-2p5Cqvh0SPfJ8B38wb/xq7jWGYgpI9pavA6qkMUb6hA="; }
-    # Merged upstream: 033e5899e131a2c1bdf7db5852f816f42aac9227
-    { patch = "Support-integer-values-in-maxOccurs-attribute.patch";
-      hash = "sha256-IZ0DP7io+ihcnB5547cR53FAdnpRLR6z4J5KsNrkfaI="; }
-    { patch = "PR204.patch";
-      hash = "sha256-JlxeTnKDFxvEMFBthZsaYRbNOoBvLJhBnXCRoiL/nVw="; }
-  ] ++ [ ./stringIO.patch ];
+  patches =
+    map
+      (
+        args:
+        fetchDebianPatch (
+          {
+            inherit pname version;
+            debianRevision = "5";
+          }
+          // args
+        )
+      )
+      [
+        # Merged upstream: f5f96210e1483f81cb5c582a6619e3ec4b473027
+        {
+          patch = "Add-quotes-to-SOAPAction-header-in-SoapClient.patch";
+          hash = "sha256-xA8Wnrpr31H8wy3zHSNfezFNjUJt1HbSXn3qUMzeKc0=";
+        }
+        # Merged upstream: ad03a21cafab982eed321553c4bfcda1755182eb
+        {
+          patch = "fix-httplib2-version-check.patch";
+          hash = "sha256-zUeF3v0N/eMyRVRH3tQLfuUfMKOD/B/aqEwFh/7HxH4=";
+        }
+        {
+          patch = "reorder-type-check-to-avoid-a-TypeError.patch";
+          hash = "sha256-2p5Cqvh0SPfJ8B38wb/xq7jWGYgpI9pavA6qkMUb6hA=";
+        }
+        # Merged upstream: 033e5899e131a2c1bdf7db5852f816f42aac9227
+        {
+          patch = "Support-integer-values-in-maxOccurs-attribute.patch";
+          hash = "sha256-IZ0DP7io+ihcnB5547cR53FAdnpRLR6z4J5KsNrkfaI=";
+        }
+        {
+          patch = "PR204.patch";
+          hash = "sha256-JlxeTnKDFxvEMFBthZsaYRbNOoBvLJhBnXCRoiL/nVw=";
+        }
+      ]
+    ++ [ ./stringIO.patch ];
 
   meta = with lib; {
     description = "Python simple and lightweight SOAP Library";
diff --git a/pkgs/development/python-modules/pysingleton/default.nix b/pkgs/development/python-modules/pysingleton/default.nix
index 790c7a0f9171d..1013951b0bba0 100644
--- a/pkgs/development/python-modules/pysingleton/default.nix
+++ b/pkgs/development/python-modules/pysingleton/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyskyqhub/default.nix b/pkgs/development/python-modules/pyskyqhub/default.nix
index 216e998a49020..95aedea3d074b 100644
--- a/pkgs/development/python-modules/pyskyqhub/default.nix
+++ b/pkgs/development/python-modules/pyskyqhub/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-yXqtABbsCh1yb96lsEA0gquikVenGLCo6J93AeXAC8k=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Tests require phyiscal hardware
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyskyqhub"
-  ];
+  pythonImportsCheck = [ "pyskyqhub" ];
 
   meta = with lib; {
     description = "Python module for accessing SkyQ Hub";
diff --git a/pkgs/development/python-modules/pyskyqremote/default.nix b/pkgs/development/python-modules/pyskyqremote/default.nix
index 27be3381ae4fa..64be0f25f39b7 100644
--- a/pkgs/development/python-modules/pyskyqremote/default.nix
+++ b/pkgs/development/python-modules/pyskyqremote/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
-, websocket-client
-, xmltodict
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
+  websocket-client,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Project has no tests, only a test script which looks like anusage example
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyskyqremote"
-  ];
+  pythonImportsCheck = [ "pyskyqremote" ];
 
   meta = with lib; {
     description = "Python module for accessing SkyQ boxes";
diff --git a/pkgs/development/python-modules/pyslim/default.nix b/pkgs/development/python-modules/pyslim/default.nix
index f21dc7b354e3f..4d26124cdafb3 100644
--- a/pkgs/development/python-modules/pyslim/default.nix
+++ b/pkgs/development/python-modules/pyslim/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, pythonOlder
-, msprime
-, numpy
-, tskit
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  pythonOlder,
+  msprime,
+  numpy,
+  tskit,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-valAhPEVZNv/IYe85a88SGE+2/9O1omvBywz/HeeRco=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     msprime
@@ -32,9 +31,7 @@ buildPythonPackage rec {
   # Requires non-packaged software SLiM
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyslim"
-  ];
+  pythonImportsCheck = [ "pyslim" ];
 
   meta = with lib; {
     description = "Tools for dealing with tree sequences coming to and from SLiM";
diff --git a/pkgs/development/python-modules/pyslurm/default.nix b/pkgs/development/python-modules/pyslurm/default.nix
index b910da5b69e26..8a8b69f52fb2b 100644
--- a/pkgs/development/python-modules/pyslurm/default.nix
+++ b/pkgs/development/python-modules/pyslurm/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, pythonOlder
-, fetchFromGitHub
-, fetchpatch
-, buildPythonPackage
-, cython
-, slurm
+{
+  lib,
+  pythonOlder,
+  fetchFromGitHub,
+  buildPythonPackage,
+  setuptools,
+  cython,
+  slurm,
 }:
 
 buildPythonPackage rec {
   pname = "pyslurm";
   version = "23.11.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -21,15 +22,17 @@ buildPythonPackage rec {
     hash = "sha256-Qi0XftneKj7hdDiLY2hoRONRrPv49mfQlvlNkudH54Y=";
   };
 
-  patches = [ (fetchpatch {
-    name = "remove-undeclared-KILL_JOB_ARRAY";
-    url = "https://github.com/PySlurm/pyslurm/commit/f7a7d8beb8ceb4e4c1b248bab2ebb995dcae77e2.patch";
-    hash = "sha256-kQLGiGzAhqP8Z6pObz9vdTRdITd12w7KuUDXsfyLIU8=";
-  })];
+  nativeBuildInputs = [ setuptools ];
 
-  buildInputs = [ cython slurm ];
+  buildInputs = [
+    cython
+    slurm
+  ];
 
-  setupPyBuildFlags = [ "--slurm-lib=${lib.getLib slurm}/lib" "--slurm-inc=${lib.getDev slurm}/include" ];
+  env = {
+    SLURM_LIB_DIR = "${lib.getLib slurm}/lib";
+    SLURM_INCLUDE_DIR = "${lib.getDev slurm}/include";
+  };
 
   # Test cases need /etc/slurm/slurm.conf and require a working slurm installation
   doCheck = false;
diff --git a/pkgs/development/python-modules/pysma/default.nix b/pkgs/development/python-modules/pysma/default.nix
index 973969e3d1363..17d120b65e74d 100644
--- a/pkgs/development/python-modules/pysma/default.nix
+++ b/pkgs/development/python-modules/pysma/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, attrs
-, buildPythonPackage
-, fetchPypi
-, jmespath
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  attrs,
+  buildPythonPackage,
+  fetchPypi,
+  jmespath,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # pypi does not contain tests and GitHub archive not available
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pysma"
-  ];
+  pythonImportsCheck = [ "pysma" ];
 
   meta = with lib; {
     description = "Python library for interacting with SMA Solar's WebConnect";
diff --git a/pkgs/development/python-modules/pysmappee/default.nix b/pkgs/development/python-modules/pysmappee/default.nix
index ae9d5fa983040..dbf3d11da54be 100644
--- a/pkgs/development/python-modules/pysmappee/default.nix
+++ b/pkgs/development/python-modules/pysmappee/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, cachetools
-, fetchFromGitHub
-, paho-mqtt
-, pythonOlder
-, pytz
-, requests
-, requests-oauthlib
-, schedule
+{
+  lib,
+  buildPythonPackage,
+  cachetools,
+  fetchFromGitHub,
+  paho-mqtt,
+  pythonOlder,
+  pytz,
+  requests,
+  requests-oauthlib,
+  schedule,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pysmappee"
-  ];
+  pythonImportsCheck = [ "pysmappee" ];
 
   meta = with lib; {
     description = "Python Library for the Smappee dev API";
diff --git a/pkgs/development/python-modules/pysmart/default.nix b/pkgs/development/python-modules/pysmart/default.nix
index 42854750bbbbf..4ad6663152d19 100644
--- a/pkgs/development/python-modules/pysmart/default.nix
+++ b/pkgs/development/python-modules/pysmart/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, chardet
-, humanfriendly
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
-, smartmontools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  chardet,
+  humanfriendly,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  smartmontools,
 }:
 
 buildPythonPackage rec {
@@ -33,17 +34,11 @@ buildPythonPackage rec {
     humanfriendly
   ];
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pySMART"
-  ];
+  pythonImportsCheck = [ "pySMART" ];
 
   meta = with lib; {
     description = "Wrapper for smartctl (smartmontools)";
diff --git a/pkgs/development/python-modules/pysmartapp/default.nix b/pkgs/development/python-modules/pysmartapp/default.nix
index e404ef905de13..295624bafc766 100644
--- a/pkgs/development/python-modules/pysmartapp/default.nix
+++ b/pkgs/development/python-modules/pysmartapp/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, httpsig
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpsig,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-RiRGOO5l5hcHllyDDGLtQHr51JOTZhAa/wK8BfMqmAY=";
   };
 
-  propagatedBuildInputs = [
-    httpsig
-  ];
+  propagatedBuildInputs = [ httpsig ];
 
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pysmartapp"
-  ];
+  pythonImportsCheck = [ "pysmartapp" ];
 
   meta = with lib; {
     description = "Python implementation to work with SmartApp lifecycle events";
diff --git a/pkgs/development/python-modules/pysmartdl/default.nix b/pkgs/development/python-modules/pysmartdl/default.nix
index b5c052bdfaa76..d8920c500f93e 100644
--- a/pkgs/development/python-modules/pysmartdl/default.nix
+++ b/pkgs/development/python-modules/pysmartdl/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-Etyv3xCB1cGozWDsskygwcTHJfC+V5hvqBNQAF8SIMM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # touch the network
@@ -39,13 +36,11 @@ buildPythonPackage rec {
     "test_unicode"
   ];
 
-  pythonImportsCheck = [
-    "pySmartDL"
-  ];
+  pythonImportsCheck = [ "pySmartDL" ];
 
   meta = with lib; {
     homepage = "https://github.com/iTaybb/pySmartDL";
-    description = "A Smart Download Manager for Python";
+    description = "Smart Download Manager for Python";
     changelog = "https://github.com/iTaybb/pySmartDL/blob/${src.rev}/ChangeLog.txt";
     license = licenses.unlicense;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/pysmartthings/default.nix b/pkgs/development/python-modules/pysmartthings/default.nix
index 89b6ba537aec4..dfcfeb1755c8a 100644
--- a/pkgs/development/python-modules/pysmartthings/default.nix
+++ b/pkgs/development/python-modules/pysmartthings/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
       --replace "aiohttp>=3.8.0,<4.0.0" "aiohttp<=4.0.0"
   '';
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # https://github.com/andrewsayre/pysmartthings/issues/80
   doCheck = lib.versionOlder aiohttp.version "3.9.0";
@@ -38,9 +37,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pysmartthings"
-  ];
+  pythonImportsCheck = [ "pysmartthings" ];
 
   meta = with lib; {
     description = "Python library for interacting with the SmartThings cloud API";
diff --git a/pkgs/development/python-modules/pysmb/default.nix b/pkgs/development/python-modules/pysmb/default.nix
index 67f468a508f9c..5a2733c302052 100644
--- a/pkgs/development/python-modules/pysmb/default.nix
+++ b/pkgs/development/python-modules/pysmb/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyasn1
-, pythonOlder
-, tqdm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyasn1,
+  pythonOlder,
+  tqdm,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pysmbc/default.nix b/pkgs/development/python-modules/pysmbc/default.nix
index 83465ab859a2b..e01646ae5b7a3 100644
--- a/pkgs/development/python-modules/pysmbc/default.nix
+++ b/pkgs/development/python-modules/pysmbc/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, samba
-, pkg-config
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  samba,
+  pkg-config,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,20 +19,14 @@ buildPythonPackage rec {
     hash = "sha256-IvFxXfglif2cxCU/6rOQtO8Lq/FPZFE82NB7N4mWMiY=";
   };
 
-  nativeBuildInputs = [
-    pkg-config
-  ];
+  nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [
-    samba
-  ];
+  buildInputs = [ samba ];
 
   # Tests would require a local SMB server
   doCheck = false;
 
-  pythonImportsCheck = [
-    "smbc"
-  ];
+  pythonImportsCheck = [ "smbc" ];
 
   meta = with lib; {
     description = "libsmbclient binding for Python";
diff --git a/pkgs/development/python-modules/pysmf/default.nix b/pkgs/development/python-modules/pysmf/default.nix
index 6b3b50e9e1e7e..dfa1075f08163 100644
--- a/pkgs/development/python-modules/pysmf/default.nix
+++ b/pkgs/development/python-modules/pysmf/default.nix
@@ -1,4 +1,13 @@
-{ lib, buildPythonPackage, fetchPypi, pkg-config, libsmf, glib, pytest, cython }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pkg-config,
+  libsmf,
+  glib,
+  pytest,
+  cython,
+}:
 
 buildPythonPackage rec {
   pname = "pysmf";
@@ -14,12 +23,19 @@ buildPythonPackage rec {
     rm $sourceRoot/src/smf.c
   '';
 
-  nativeBuildInputs = [ pkg-config pytest cython ];
-  buildInputs = [ libsmf glib ];
+  nativeBuildInputs = [
+    pkg-config
+    pytest
+    cython
+  ];
+  buildInputs = [
+    libsmf
+    glib
+  ];
 
   meta = with lib; {
     homepage = "https://das.nasophon.de/pysmf/";
-    description = "Python extension module for reading and writing Standard MIDI Files, based on libsmf.";
+    description = "Python extension module for reading and writing Standard MIDI Files, based on libsmf";
     license = licenses.bsd2;
     maintainers = [ ];
   };
diff --git a/pkgs/development/python-modules/pysmi-lextudio/default.nix b/pkgs/development/python-modules/pysmi-lextudio/default.nix
index 184c8a8bd8f2c..1b6225c3f8bf0 100644
--- a/pkgs/development/python-modules/pysmi-lextudio/default.nix
+++ b/pkgs/development/python-modules/pysmi-lextudio/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, jinja2
-, ply
-, poetry-core
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jinja2,
+  ply,
+  poetry-core,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-JrWVoK7fqESUIJeprjB28iaqOEWgsTpTqUEmSZp9XDk=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     jinja2
@@ -35,9 +34,7 @@ buildPythonPackage rec {
   # Circular dependency on pysnmp-lextudio
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pysmi"
-  ];
+  pythonImportsCheck = [ "pysmi" ];
 
   meta = with lib; {
     description = "SNMP MIB parser";
diff --git a/pkgs/development/python-modules/pysmi/default.nix b/pkgs/development/python-modules/pysmi/default.nix
index 3e32fd5bd4317..0d268a6c63ad4 100644
--- a/pkgs/development/python-modules/pysmi/default.nix
+++ b/pkgs/development/python-modules/pysmi/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, ply
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  ply,
 }:
 
 buildPythonPackage rec {
@@ -9,7 +10,7 @@ buildPythonPackage rec {
   format = "setuptools";
   pname = "pysmi";
 
- src = fetchPypi {
+  src = fetchPypi {
     inherit pname version;
     sha256 = "bd15a15020aee8376cab5be264c26330824a8b8164ed0195bd402dd59e4e8f7c";
   };
@@ -25,5 +26,4 @@ buildPythonPackage rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ koral ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pysml/default.nix b/pkgs/development/python-modules/pysml/default.nix
index cfdfc1b476297..febe4a190b0bf 100644
--- a/pkgs/development/python-modules/pysml/default.nix
+++ b/pkgs/development/python-modules/pysml/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiohttp
-, async-timeout
-, bitstring
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pyserial-asyncio
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  bitstring,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pyserial-asyncio,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-TLIpc0bVx1As2oLyYD+BBMalwJiKdvBCcrd1tUNyh6Y=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -37,9 +36,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sml"
-  ];
+  pythonImportsCheck = [ "sml" ];
 
   meta = with lib; {
     description = "Python library for EDL21 smart meters using Smart Message Language (SML)";
diff --git a/pkgs/development/python-modules/pysmt/default.nix b/pkgs/development/python-modules/pysmt/default.nix
index 61283ce4ad3be..9c6fc48a96b65 100644
--- a/pkgs/development/python-modules/pysmt/default.nix
+++ b/pkgs/development/python-modules/pysmt/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-cE+WmKzggYof/olxQb5M7xPsBONr39KdjOTG4ofYPUM=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pysmt"
-  ];
+  pythonImportsCheck = [ "pysmt" ];
 
   meta = with lib; {
     description = "Python library for SMT formulae manipulation and solving";
diff --git a/pkgs/development/python-modules/pysnmp-lextudio/default.nix b/pkgs/development/python-modules/pysnmp-lextudio/default.nix
index 2f921aa8039a4..d8df1a72c5c4d 100644
--- a/pkgs/development/python-modules/pysnmp-lextudio/default.nix
+++ b/pkgs/development/python-modules/pysnmp-lextudio/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, poetry-core
+  # build-system
+  poetry-core,
 
-# dependencies
-, pyasn1
-, pysmi-lextudio
-, pysnmpcrypto
+  # dependencies
+  pyasn1,
+  pysmi-lextudio,
+  pysnmpcrypto,
 
-# tests
-, pytestCheckHook
-, pytest-asyncio
+  # tests
+  pytestCheckHook,
+  pytest-asyncio,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-iVej39OmTPiZL11+IetnqHaxFAhZ/YR7tjiRoc7pu8U=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     pyasn1
@@ -61,9 +60,7 @@ buildPythonPackage rec {
     "test_v2_walk"
   ];
 
-  pythonImportsCheck = [
-    "pysnmp"
-  ];
+  pythonImportsCheck = [ "pysnmp" ];
 
   meta = with lib; {
     description = "Python SNMP library";
diff --git a/pkgs/development/python-modules/pysnmp-pyasn1/default.nix b/pkgs/development/python-modules/pysnmp-pyasn1/default.nix
index d962615e7adbf..2d81f0c4189f4 100644
--- a/pkgs/development/python-modules/pysnmp-pyasn1/default.nix
+++ b/pkgs/development/python-modules/pysnmp-pyasn1/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-W74aWMqGlat+aZfhbP1cTKRz7SomHdGwfK5yJwxgyqI=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyasn1"
-  ];
+  pythonImportsCheck = [ "pyasn1" ];
 
   meta = with lib; {
     description = "Python ASN.1 encoder and decoder";
diff --git a/pkgs/development/python-modules/pysnmp-pysmi/default.nix b/pkgs/development/python-modules/pysnmp-pysmi/default.nix
index e87cc642400bd..4dbf57dcc6400 100644
--- a/pkgs/development/python-modules/pysnmp-pysmi/default.nix
+++ b/pkgs/development/python-modules/pysnmp-pysmi/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, ply
-, poetry-core
-, requests
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  ply,
+  poetry-core,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-dK02y8HXhwq1W6NOYsycjTpIMxoQY4qNT4n8TEycmWM=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     ply
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Circular dependency with pysnmplib
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pysmi"
-  ];
+  pythonImportsCheck = [ "pysmi" ];
 
   meta = with lib; {
     description = "SNMP MIB parser";
diff --git a/pkgs/development/python-modules/pysnmp/default.nix b/pkgs/development/python-modules/pysnmp/default.nix
index 6921ef3ad9a96..7bc9db63943a9 100644
--- a/pkgs/development/python-modules/pysnmp/default.nix
+++ b/pkgs/development/python-modules/pysnmp/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyasn1
-, pycryptodomex
-, pysmi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyasn1,
+  pycryptodomex,
+  pysmi,
 }:
 
 buildPythonPackage rec {
@@ -21,12 +22,19 @@ buildPythonPackage rec {
   # NameError: name 'mibBuilder' is not defined
   doCheck = false;
 
-  propagatedBuildInputs = [ pyasn1 pycryptodomex pysmi ];
+  propagatedBuildInputs = [
+    pyasn1
+    pycryptodomex
+    pysmi
+  ];
 
   meta = with lib; {
     homepage = "http://snmplabs.com/pysnmp/index.html";
-    description = "A pure-Python SNMPv1/v2c/v3 library";
+    description = "Pure-Python SNMPv1/v2c/v3 library";
     license = licenses.bsd2;
-    maintainers = with maintainers; [ primeos koral ];
+    maintainers = with maintainers; [
+      primeos
+      koral
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pysnmpcrypto/default.nix b/pkgs/development/python-modules/pysnmpcrypto/default.nix
index ffeb9dddfbd8b..4261815d5741b 100644
--- a/pkgs/development/python-modules/pysnmpcrypto/default.nix
+++ b/pkgs/development/python-modules/pysnmpcrypto/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, cryptography
-, pycryptodomex
+  # dependencies
+  cryptography,
+  pycryptodomex,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,22 +31,16 @@ buildPythonPackage rec {
       "observed_version = [36, 2, 0]"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cryptography
     pycryptodomex
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pysnmpcrypto"
-  ];
+  pythonImportsCheck = [ "pysnmpcrypto" ];
 
   meta = with lib; {
     description = "Strong crypto support for Python SNMP library";
diff --git a/pkgs/development/python-modules/pysnmplib/default.nix b/pkgs/development/python-modules/pysnmplib/default.nix
index abcbe70562dea..ccb5320a67ac2 100644
--- a/pkgs/development/python-modules/pysnmplib/default.nix
+++ b/pkgs/development/python-modules/pysnmplib/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pycryptodomex
-, pysnmp-pyasn1
-, pysnmp-pysmi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pycryptodomex,
+  pysnmp-pyasn1,
+  pysnmp-pysmi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-AtQqXiy943cYhHDsyz9Yk5uA4xK7Q4p21CT3X3zYzrQ=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     pysnmp-pysmi
@@ -35,9 +34,7 @@ buildPythonPackage rec {
   # Module has no test, examples are used for testing
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pysnmp"
-  ];
+  pythonImportsCheck = [ "pysnmp" ];
 
   meta = with lib; {
     description = "Implementation of v1/v2c/v3 SNMP engine";
diff --git a/pkgs/development/python-modules/pysnooper/default.nix b/pkgs/development/python-modules/pysnooper/default.nix
index 9cebc9d7bc7a2..c8f3ca8bb96ed 100644
--- a/pkgs/development/python-modules/pysnooper/default.nix
+++ b/pkgs/development/python-modules/pysnooper/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,16 +19,12 @@ buildPythonPackage rec {
     hash = "sha256-gQZp4WKiUKBm2GYuVzrbxa93DpN8W1V48ou3NV0chZs=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pysnooper"
-  ];
+  pythonImportsCheck = [ "pysnooper" ];
 
   meta = with lib; {
-    description = "A poor man's debugger for Python";
+    description = "Poor man's debugger for Python";
     homepage = "https://github.com/cool-RR/PySnooper";
     license = licenses.mit;
     maintainers = with maintainers; [ seqizz ];
diff --git a/pkgs/development/python-modules/pysnooz/default.nix b/pkgs/development/python-modules/pysnooz/default.nix
index 4ff2513685f6a..4adef044fc7ad 100644
--- a/pkgs/development/python-modules/pysnooz/default.nix
+++ b/pkgs/development/python-modules/pysnooz/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, bleak
-, bleak-retry-connector
-, bluetooth-sensor-state-data
-, buildPythonPackage
-, events
-, fetchFromGitHub
-, freezegun
-, home-assistant-bluetooth
-, poetry-core
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, transitions
+{
+  lib,
+  bleak,
+  bleak-retry-connector,
+  bluetooth-sensor-state-data,
+  buildPythonPackage,
+  events,
+  fetchFromGitHub,
+  freezegun,
+  home-assistant-bluetooth,
+  poetry-core,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  transitions,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
       --replace " --cov=pysnooz --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bleak
@@ -56,9 +55,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pysnooz"
-  ];
+  pythonImportsCheck = [ "pysnooz" ];
 
   meta = with lib; {
     description = "Library to control SNOOZ white noise machines";
diff --git a/pkgs/development/python-modules/pysnow/default.nix b/pkgs/development/python-modules/pysnow/default.nix
index 52613d602d828..f69e18f431372 100644
--- a/pkgs/development/python-modules/pysnow/default.nix
+++ b/pkgs/development/python-modules/pysnow/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, brotli
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, httpretty
-, ijson
-, poetry-core
-, python-magic
-, pytz
-, pytestCheckHook
-, requests-oauthlib
+{
+  lib,
+  brotli,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  httpretty,
+  ijson,
+  poetry-core,
+  python-magic,
+  pytz,
+  pytestCheckHook,
+  requests-oauthlib,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,6 @@ buildPythonPackage rec {
   version = "0.7.16";
   format = "pyproject";
 
-
   src = fetchFromGitHub {
     owner = "rbw";
     repo = pname;
@@ -25,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-nKOPCkS2b3ObmBnk/7FTv4o4vwUX+tOtZI5OQQ4HSTY=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     brotli
@@ -58,9 +56,7 @@ buildPythonPackage rec {
       --replace 'oauthlib = "^3.1.0"' 'oauthlib = "*"'
   '';
 
-  pythonImportsCheck = [
-    "pysnow"
-  ];
+  pythonImportsCheck = [ "pysnow" ];
 
   meta = with lib; {
     description = "ServiceNow HTTP client library written in Python";
@@ -68,5 +64,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ almac ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pysocks/default.nix b/pkgs/development/python-modules/pysocks/default.nix
index b007ef9a41417..82c8c2dba332a 100644
--- a/pkgs/development/python-modules/pysocks/default.nix
+++ b/pkgs/development/python-modules/pysocks/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -18,8 +19,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "SOCKS module for Python";
-    license     = licenses.bsd3;
+    license = licenses.bsd3;
     maintainers = with maintainers; [ thoughtpolice ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pysol-cards/default.nix b/pkgs/development/python-modules/pysol-cards/default.nix
index f2837b93568ec..2db75c3f2820d 100644
--- a/pkgs/development/python-modules/pysol-cards/default.nix
+++ b/pkgs/development/python-modules/pysol-cards/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, six, random2 }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  random2,
+}:
 
 buildPythonPackage rec {
   pname = "pysol-cards";
@@ -11,7 +17,10 @@ buildPythonPackage rec {
     hash = "sha256-C4fKez+ZFVzM08/XOfc593RNb4GYIixtSToDSj1FcMM=";
   };
 
-  propagatedBuildInputs = [ six random2 ];
+  propagatedBuildInputs = [
+    six
+    random2
+  ];
 
   meta = with lib; {
     description = "Generates Solitaire deals";
diff --git a/pkgs/development/python-modules/pysolcast/default.nix b/pkgs/development/python-modules/pysolcast/default.nix
index 3123b1f392c68..395130f016361 100644
--- a/pkgs/development/python-modules/pysolcast/default.nix
+++ b/pkgs/development/python-modules/pysolcast/default.nix
@@ -10,12 +10,11 @@
   requests,
   responses,
   poetry-core,
-  pythonRelaxDepsHook,
 }:
 
 buildPythonPackage rec {
   pname = "pysolcast";
-  version = "2.0.2";
+  version = "2.0.3";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -24,14 +23,13 @@ buildPythonPackage rec {
     owner = "mcaulifn";
     repo = "solcast";
     rev = "refs/tags/v${version}";
-    hash = "sha256-DXJkbAlkxBjUEbziFNdr8SilB2GRUoAwvrr0HY56Deg=";
+    hash = "sha256-BMM6eDloyLee7mkwUE9HpWcRUE62y43YivRjDbwAqIk=";
   };
 
   pythonRelaxDeps = [ "responses" ];
 
   build-system = [ poetry-core ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     anyconfig
diff --git a/pkgs/development/python-modules/pysolr/default.nix b/pkgs/development/python-modules/pysolr/default.nix
index 2a4e57154cea1..0ea9ceb5eca95 100644
--- a/pkgs/development/python-modules/pysolr/default.nix
+++ b/pkgs/development/python-modules/pysolr/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, setuptools-scm, requests, mock }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  requests,
+  mock,
+}:
 
 buildPythonPackage rec {
   pname = "pysolr";
@@ -24,4 +31,3 @@ buildPythonPackage rec {
     license = licenses.bsd3;
   };
 }
-
diff --git a/pkgs/development/python-modules/pysoma/default.nix b/pkgs/development/python-modules/pysoma/default.nix
index ebb87a4612a1a..c27991b8ca09c 100644
--- a/pkgs/development/python-modules/pysoma/default.nix
+++ b/pkgs/development/python-modules/pysoma/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # Project has no test
   doCheck = false;
 
-  pythonImportsCheck = [
-    "api"
-  ];
+  pythonImportsCheck = [ "api" ];
 
   meta = with lib; {
     description = "Python wrapper for the HTTP API provided by SOMA Connect";
diff --git a/pkgs/development/python-modules/pysonos/default.nix b/pkgs/development/python-modules/pysonos/default.nix
index abb395bb12832..a95787c5444a6 100644
--- a/pkgs/development/python-modules/pysonos/default.nix
+++ b/pkgs/development/python-modules/pysonos/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy3k
-, xmltodict
-, ifaddr
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy3k,
+  xmltodict,
+  ifaddr,
+  requests,
 
   # Test dependencies
-, pytestCheckHook
-, mock
-, requests-mock
+  pytestCheckHook,
+  mock,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
@@ -44,7 +45,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A SoCo fork with fixes for Home Assistant";
+    description = "SoCo fork with fixes for Home Assistant";
     homepage = "https://github.com/amelchio/pysonos";
     license = licenses.mit;
     maintainers = with maintainers; [ juaningan ];
diff --git a/pkgs/development/python-modules/pyspark/default.nix b/pkgs/development/python-modules/pyspark/default.nix
index 9763ed00cda57..a5e35e698c99f 100644
--- a/pkgs/development/python-modules/pyspark/default.nix
+++ b/pkgs/development/python-modules/pyspark/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, pandas
-, py4j
-, pyarrow
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  pandas,
+  py4j,
+  pyarrow,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,17 +29,11 @@ buildPythonPackage rec {
       --replace py4j== 'py4j>='
   '';
 
-  propagatedBuildInputs = [
-    py4j
-  ];
+  propagatedBuildInputs = [ py4j ];
 
   passthru.optional-dependencies = {
-    ml = [
-      numpy
-    ];
-    mllib = [
-      numpy
-    ];
+    ml = [ numpy ];
+    mllib = [ numpy ];
     sql = [
       numpy
       pandas
@@ -49,9 +44,7 @@ buildPythonPackage rec {
   # Tests assume running spark instance
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyspark"
-  ];
+  pythonImportsCheck = [ "pyspark" ];
 
   meta = with lib; {
     description = "Python bindings for Apache Spark";
diff --git a/pkgs/development/python-modules/pyspcwebgw/default.nix b/pkgs/development/python-modules/pyspcwebgw/default.nix
index 8ac514d7fa5c7..7b3a607217993 100644
--- a/pkgs/development/python-modules/pyspcwebgw/default.nix
+++ b/pkgs/development/python-modules/pyspcwebgw/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, aioresponses
-, asynccmd
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  asynccmd,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-gdIrbr25GXaX26B1f7u0NKbqqnAC2tmMFZspzW6I4HI=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     asynccmd
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "--asyncio-mode=auto"
-  ];
+  pytestFlagsArray = [ "--asyncio-mode=auto" ];
 
   pythonImportsCheck = [ "pyspcwebgw" ];
 
diff --git a/pkgs/development/python-modules/pyspellchecker/default.nix b/pkgs/development/python-modules/pyspellchecker/default.nix
index ee8d980c1bb02..e1696d0382a18 100644
--- a/pkgs/development/python-modules/pyspellchecker/default.nix
+++ b/pkgs/development/python-modules/pyspellchecker/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-8IwTMj/RqMc9UqhzyvmrirPGuMEwj3iMr+FmF+8312U=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Pure python spell checking";
diff --git a/pkgs/development/python-modules/pyspf/default.nix b/pkgs/development/python-modules/pyspf/default.nix
index 3bf3a296d5655..4a8582409ced7 100644
--- a/pkgs/development/python-modules/pyspf/default.nix
+++ b/pkgs/development/python-modules/pyspf/default.nix
@@ -1,4 +1,10 @@
-{ lib, python, buildPythonPackage, fetchFromGitHub, pydns }:
+{
+  lib,
+  python,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pydns,
+}:
 
 buildPythonPackage rec {
   pname = "pyspf";
diff --git a/pkgs/development/python-modules/pyspice/default.nix b/pkgs/development/python-modules/pyspice/default.nix
index 94fa032085c9d..c88331be6880a 100644
--- a/pkgs/development/python-modules/pyspice/default.nix
+++ b/pkgs/development/python-modules/pyspice/default.nix
@@ -1,16 +1,18 @@
-{ lib, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, libngspice
-, numpy
-, ply
-, scipy
-, pyyaml
-, cffi
-, requests
-, matplotlib
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  libngspice,
+  numpy,
+  ply,
+  scipy,
+  pyyaml,
+  cffi,
+  requests,
+  matplotlib,
+  setuptools,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyspiflash/default.nix b/pkgs/development/python-modules/pyspiflash/default.nix
index 24306c4893c32..eda0db8b767cb 100644
--- a/pkgs/development/python-modules/pyspiflash/default.nix
+++ b/pkgs/development/python-modules/pyspiflash/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyftdi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyftdi,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     sha256 = "0ifnw1qm4nssb03af93qw6vpa92rmyc2hisw9m4043pm9ryqcmpc";
   };
 
-  propagatedBuildInputs = [
-    pyftdi
-  ];
+  propagatedBuildInputs = [ pyftdi ];
 
   # tests are not shipped with the PyPI source
   doCheck = false;
diff --git a/pkgs/development/python-modules/pyspinel/default.nix b/pkgs/development/python-modules/pyspinel/default.nix
index c969b471e019e..7099e7e5a4e2d 100644
--- a/pkgs/development/python-modules/pyspinel/default.nix
+++ b/pkgs/development/python-modules/pyspinel/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyserial
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyserial,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     sha256 = "0s2r00zb909cq3dd28i91qbl0nz8cga3g98z84gq5jqkjpiy8269";
   };
 
-  propagatedBuildInputs = [
-    pyserial
-  ];
+  propagatedBuildInputs = [ pyserial ];
 
   # Tests are out-dated
   doCheck = false;
 
-  pythonImportsCheck = [
-    "spinel"
-  ];
+  pythonImportsCheck = [ "spinel" ];
 
   meta = with lib; {
     description = "Interface to the OpenThread Network Co-Processor (NCP)";
diff --git a/pkgs/development/python-modules/pyspnego/default.nix b/pkgs/development/python-modules/pyspnego/default.nix
index dca383ce6d9c3..992318ff06672 100644
--- a/pkgs/development/python-modules/pyspnego/default.nix
+++ b/pkgs/development/python-modules/pyspnego/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, gssapi
-, krb5
-, ruamel-yaml
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, glibcLocales
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  gssapi,
+  krb5,
+  ruamel-yaml,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  glibcLocales,
 }:
 
 buildPythonPackage rec {
@@ -26,27 +27,19 @@ buildPythonPackage rec {
     hash = "sha256-60aIRrhRynbuuFZzzBhJTlmU74CWuao8jWhr126cPrc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    cryptography
-  ];
+  propagatedBuildInputs = [ cryptography ];
 
   passthru.optional-dependencies = {
     kerberos = [
       gssapi
       krb5
     ];
-    yaml = [
-      ruamel-yaml
-    ];
+    yaml = [ ruamel-yaml ];
   };
 
-  pythonImportsCheck = [
-    "spnego"
-  ];
+  pythonImportsCheck = [ "spnego" ];
 
   nativeCheckInputs = [
     glibcLocales
diff --git a/pkgs/development/python-modules/pysptk/default.nix b/pkgs/development/python-modules/pysptk/default.nix
index 36d86db14450a..ffd7caf99da4c 100644
--- a/pkgs/development/python-modules/pysptk/default.nix
+++ b/pkgs/development/python-modules/pysptk/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, cython
-, decorator
-, fetchPypi
-, numpy
-, pytestCheckHook
-, pythonOlder
-, scipy
-, six
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cython,
+  decorator,
+  fetchPypi,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
 
   PYSPTK_BUILD_VERSION = 0;
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
   propagatedBuildInputs = [
     decorator
@@ -39,9 +38,7 @@ buildPythonPackage rec {
   # Tests are not part of the PyPI releases
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pysptk"
-  ];
+  pythonImportsCheck = [ "pysptk" ];
 
   meta = with lib; {
     broken = stdenv.isDarwin;
diff --git a/pkgs/development/python-modules/pyspx/default.nix b/pkgs/development/python-modules/pyspx/default.nix
index b8e3cb49df6fb..56f3ffcffa34d 100644
--- a/pkgs/development/python-modules/pyspx/default.nix
+++ b/pkgs/development/python-modules/pyspx/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, cffi
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  cffi,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -29,13 +30,9 @@ buildPythonPackage rec {
     wheel
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyspx"
-  ];
+  pythonImportsCheck = [ "pyspx" ];
 
   meta = with lib; {
     description = "Python bindings for SPHINCS";
diff --git a/pkgs/development/python-modules/pysqlcipher3/default.nix b/pkgs/development/python-modules/pysqlcipher3/default.nix
index 1b573628edda1..a1201c22c21fe 100644
--- a/pkgs/development/python-modules/pysqlcipher3/default.nix
+++ b/pkgs/development/python-modules/pysqlcipher3/default.nix
@@ -1,12 +1,15 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, sqlcipher }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  sqlcipher,
+}:
 
 buildPythonPackage rec {
   pname = "pysqlcipher3";
   version = "1.2.0";
   format = "setuptools";
 
-  disabled = pythonOlder "3.3";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-PIAzgSZVlH6/KagJrFEGsrxpvgJ06szva1j0WAyNBsU=";
diff --git a/pkgs/development/python-modules/pysqlitecipher/default.nix b/pkgs/development/python-modules/pysqlitecipher/default.nix
index 6eaa1d13eb7d6..b1ff35671ad2a 100644
--- a/pkgs/development/python-modules/pysqlitecipher/default.nix
+++ b/pkgs/development/python-modules/pysqlitecipher/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, cryptography
-, onetimepad
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  cryptography,
+  onetimepad,
 }:
 
 buildPythonPackage rec {
@@ -31,7 +32,7 @@ buildPythonPackage rec {
 
   meta = {
     description = "Lightweight and easy to use sqlite wrapper with built-in encryption system";
-    homepage = "Ghttps://github.com/harshnative/pysqlitecipher";
+    homepage = "https://github.com/harshnative/pysqlitecipher";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ dotlambda ];
   };
diff --git a/pkgs/development/python-modules/pysqueezebox/default.nix b/pkgs/development/python-modules/pysqueezebox/default.nix
index 31748f890765f..c3f17e2bf9033 100644
--- a/pkgs/development/python-modules/pysqueezebox/default.nix
+++ b/pkgs/development/python-modules/pysqueezebox/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,18 +23,14 @@ buildPythonPackage rec {
     hash = "sha256-WnL9Va3uaWlUHVBtit4v+XdYOFmPpxG91mAHEGwI+7c=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pysqueezebox"
-  ];
+  pythonImportsCheck = [ "pysqueezebox" ];
 
   disabledTests = lib.optionals (pythonAtLeast "3.12") [
     # AttributeError: 'has_calls' is not a valid assertion. Use a spec for the mock if 'has_calls' is meant to be an attribute.
diff --git a/pkgs/development/python-modules/pysrim/default.nix b/pkgs/development/python-modules/pysrim/default.nix
index d00c430e3cc59..8541a95c8c6f8 100644
--- a/pkgs/development/python-modules/pysrim/default.nix
+++ b/pkgs/development/python-modules/pysrim/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, pythonOlder
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  pythonOlder,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pysrt/default.nix b/pkgs/development/python-modules/pysrt/default.nix
index 3c62043d9e7f8..d94e1fec3a74f 100644
--- a/pkgs/development/python-modules/pysrt/default.nix
+++ b/pkgs/development/python-modules/pysrt/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, chardet
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  chardet,
+  nose,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyssim/default.nix b/pkgs/development/python-modules/pyssim/default.nix
index e7632e67905cc..6b910b1d72072 100644
--- a/pkgs/development/python-modules/pyssim/default.nix
+++ b/pkgs/development/python-modules/pyssim/default.nix
@@ -1,11 +1,23 @@
-{ lib, buildPythonPackage, fetchFromGitHub, numpy, scipy, pillow, fetchpatch }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  scipy,
+  pillow,
+  fetchpatch,
+}:
 
 buildPythonPackage rec {
   pname = "pyssim";
   version = "0.6";
   format = "setuptools";
 
-  propagatedBuildInputs = [ numpy scipy pillow ];
+  propagatedBuildInputs = [
+    numpy
+    scipy
+    pillow
+  ];
 
   # PyPI tarball doesn't contain test images so let's use GitHub
   src = fetchFromGitHub {
diff --git a/pkgs/development/python-modules/pystac/default.nix b/pkgs/development/python-modules/pystac/default.nix
new file mode 100644
index 0000000000000..eb7f653db9de0
--- /dev/null
+++ b/pkgs/development/python-modules/pystac/default.nix
@@ -0,0 +1,53 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  html5lib,
+  jsonschema,
+  pytest-cov,
+  pytest-mock,
+  pytest-recording,
+  python-dateutil,
+  requests-mock,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "pystac";
+  version = "1.10.1";
+  pyproject = true;
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "stac-utils";
+    repo = "pystac";
+    rev = "v${version}";
+    hash = "sha256-zJGDhKRX50Muo1YDEzfwypMLISnYBYKkPvUULYkUf68=";
+  };
+
+  build-system = [ setuptools ];
+
+  propagatedBuildInputs = [ python-dateutil ];
+
+  nativeCheckInputs = [
+    html5lib
+    jsonschema
+    pytestCheckHook
+    pytest-cov
+    pytest-mock
+    pytest-recording
+    requests-mock
+  ];
+
+  pythonImportsCheck = [ "pystac" ];
+
+  meta = {
+    description = "Python library for working with any SpatioTemporal Asset Catalog (STAC)";
+    homepage = "https://github.com/stac-utils/pystac";
+    license = lib.licenses.asl20;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/pystache/default.nix b/pkgs/development/python-modules/pystache/default.nix
index 5cb51640b51db..9088f2c503aff 100644
--- a/pkgs/development/python-modules/pystache/default.nix
+++ b/pkgs/development/python-modules/pystache/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, unittestCheckHook
-, fetchPypi
-, pythonOlder
-, glibcLocales
+{
+  lib,
+  buildPythonPackage,
+  unittestCheckHook,
+  fetchPypi,
+  pythonOlder,
+  glibcLocales,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
 
   LC_ALL = "en_US.UTF-8";
 
-  buildInputs = [
-    glibcLocales
-  ];
+  buildInputs = [ glibcLocales ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  pythonImportsCheck = [
-    "pystache"
-  ];
+  pythonImportsCheck = [ "pystache" ];
 
   meta = with lib; {
-    description = "A framework-agnostic, logic-free templating system inspired by ctemplate and et";
+    description = "Framework-agnostic, logic-free templating system inspired by ctemplate and et";
     homepage = "https://github.com/defunkt/pystache";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/pystardict/default.nix b/pkgs/development/python-modules/pystardict/default.nix
index c36dac0e7ae2e..ac890f7fdbf61 100644
--- a/pkgs/development/python-modules/pystardict/default.nix
+++ b/pkgs/development/python-modules/pystardict/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, six
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  six,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,15 +22,17 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six ];
 
-  nativeBuildInputs = [ setuptools setuptools-scm ];
+  nativeBuildInputs = [
+    setuptools
+    setuptools-scm
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "pystardict" ];
 
   meta = with lib; {
-    description =
-      "Library for manipulating StarDict dictionaries from within Python";
+    description = "Library for manipulating StarDict dictionaries from within Python";
     homepage = "https://github.com/lig/pystardict";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ thornycrackers ];
diff --git a/pkgs/development/python-modules/pystatgrab/default.nix b/pkgs/development/python-modules/pystatgrab/default.nix
index 9ba3fb7b37851..04d460bdf558f 100644
--- a/pkgs/development/python-modules/pystatgrab/default.nix
+++ b/pkgs/development/python-modules/pystatgrab/default.nix
@@ -1,13 +1,16 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, libstatgrab
-, pkg-config
-, pythonOlder
-, setuptools
-, unittestCheckHook
-, wheel
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  libstatgrab,
+  pkg-config,
+  pythonOlder,
+  setuptools,
+  unittestCheckHook,
+  wheel,
+  darwin,
 }:
 
 buildPythonPackage rec {
@@ -20,33 +23,34 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "libstatgrab";
     repo = "pystatgrab";
-    rev = "PYSTATGRAB_${lib.replaceStrings ["."] ["_"] version}";
+    rev = "PYSTATGRAB_${lib.replaceStrings [ "." ] [ "_" ] version}";
     hash = "sha256-0FDhkIK8jy3/SFmCzrl9l4RTeIKDjO0o5UoODx6Wnfs=";
   };
 
+  build-system = [
+    setuptools
+    wheel
+  ];
+
   nativeBuildInputs = [
     cython
     pkg-config
-    setuptools
-    wheel
   ];
 
   buildInputs = [
     libstatgrab
-  ];
+  ] ++ lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ IOKit ]);
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  pythonImportsCheck = [
-    "statgrab"
-  ];
+  pythonImportsCheck = [ "statgrab" ];
 
   meta = with lib; {
     description = "Python bindings for libstatgrab";
     homepage = "https://github.com/libstatgrab/pystatgrab";
-    changelog = "https://github.com/libstatgrab/pystatgrab/blob/PYSTATGRAB_${lib.replaceStrings ["."] ["_"] version}/NEWS";
+    changelog = "https://github.com/libstatgrab/pystatgrab/blob/PYSTATGRAB_${
+      lib.replaceStrings [ "." ] [ "_" ] version
+    }/NEWS";
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/pystemd/default.nix b/pkgs/development/python-modules/pystemd/default.nix
index 44251a333ed9c..847679f2e996b 100644
--- a/pkgs/development/python-modules/pystemd/default.nix
+++ b/pkgs/development/python-modules/pystemd/default.nix
@@ -1,14 +1,15 @@
-{ stdenv
-, buildPythonPackage
-, lib
-, python
-, fetchPypi
-, systemd
-, lxml
-, psutil
-, pytest
-, mock
-, pkg-config }:
+{
+  stdenv,
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+  systemd,
+  lxml,
+  psutil,
+  pytest,
+  mock,
+  pkg-config,
+}:
 
 buildPythonPackage rec {
   pname = "pystemd";
@@ -19,15 +20,19 @@ buildPythonPackage rec {
     hash = "sha256-Tc+ksTpVaFxJ09F8EGMeyhjDN3D2Yxb47yM3uJUcwUQ=";
   };
 
-  disabled = python.pythonOlder "3.4";
-
   buildInputs = [ systemd ];
 
   nativeBuildInputs = [ pkg-config ];
 
-  propagatedBuildInputs = [ lxml psutil ];
+  propagatedBuildInputs = [
+    lxml
+    psutil
+  ];
 
-  nativeCheckInputs = [ mock pytest ];
+  nativeCheckInputs = [
+    mock
+    pytest
+  ];
 
   checkPhase = "pytest tests";
 
diff --git a/pkgs/development/python-modules/pystemmer/default.nix b/pkgs/development/python-modules/pystemmer/default.nix
index 0c298904fdcd2..bddc42a816b0b 100644
--- a/pkgs/development/python-modules/pystemmer/default.nix
+++ b/pkgs/development/python-modules/pystemmer/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, python
-, fetchFromGitHub
-, fetchpatch2
-, buildPythonPackage
-, cython
-, setuptools
-, libstemmer
- }:
+{
+  lib,
+  python,
+  fetchFromGitHub,
+  fetchpatch2,
+  buildPythonPackage,
+  cython,
+  setuptools,
+  libstemmer,
+}:
 
 buildPythonPackage rec {
   pname = "pystemmer";
@@ -38,17 +39,11 @@ buildPythonPackage rec {
     export PYSTEMMER_SYSTEM_LIBSTEMMER="${lib.getDev libstemmer}/include"
   '';
 
-  env.NIX_CFLAGS_COMPILE = toString [
-    "-I${lib.getDev libstemmer}/include"
-  ];
+  env.NIX_CFLAGS_COMPILE = toString [ "-I${lib.getDev libstemmer}/include" ];
 
-  NIX_CFLAGS_LINK = [
-    "-L${libstemmer}/lib"
-  ];
+  NIX_CFLAGS_LINK = [ "-L${libstemmer}/lib" ];
 
-  pythonImportsCheck = [
-    "Stemmer"
-  ];
+  pythonImportsCheck = [ "Stemmer" ];
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/pystray/default.nix b/pkgs/development/python-modules/pystray/default.nix
index a6d073dbd669d..a448933fcc78f 100644
--- a/pkgs/development/python-modules/pystray/default.nix
+++ b/pkgs/development/python-modules/pystray/default.nix
@@ -1,32 +1,43 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pillow
-, xlib
-, six
-, xvfb-run
-, setuptools
-, gobject-introspection
-, pygobject3
-, gtk3
-, libayatana-appindicator
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pillow,
+  xlib,
+  six,
+  xvfb-run,
+  setuptools,
+  gobject-introspection,
+  pygobject3,
+  gtk3,
+  libayatana-appindicator,
 }:
 
 buildPythonPackage rec {
   pname = "pystray";
-  version = "0.19.2";
-  format = "pyproject";
+  version = "0.19.5";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "moses-palmer";
     repo = "pystray";
     rev = "v${version}";
-    hash = "sha256-8B178MSe4ujlnGBmQhIu+BoAh1doP9V5cL0ermLQTvs=";
+    hash = "sha256-CZhbaXwKFrRBEomzfFPMQdMkTOl5lbgI64etfDRiRu4=";
   };
 
+  patches = [
+    # fix test_menu_construct_from_none test case
+    # https://github.com/moses-palmer/pystray/pull/133
+    (fetchpatch {
+      url = "https://github.com/moses-palmer/pystray/commit/813007e3034d950d93a2f3e5b029611c3c9c98ad.patch";
+      hash = "sha256-m2LfZcWXSfgxb73dac21VDdMDVz3evzcCz5QjdnfM1U=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "'sphinx >=1.3.1'" ""
+      --replace-fail "'sphinx >=1.3.1'" ""
   '';
 
   nativeBuildInputs = [
@@ -43,9 +54,7 @@ buildPythonPackage rec {
     libayatana-appindicator
   ];
 
-  nativeCheckInputs = [
-    xvfb-run
-  ];
+  nativeCheckInputs = [ xvfb-run ];
 
   checkPhase = ''
     rm tests/icon_tests.py # test needs user input
@@ -56,7 +65,10 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/moses-palmer/pystray";
     description = "This library allows you to create a system tray icon";
-    license = with licenses; [ gpl3Plus lgpl3Plus ];
+    license = with licenses; [
+      gpl3Plus
+      lgpl3Plus
+    ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ jojosch ];
   };
diff --git a/pkgs/development/python-modules/pysubs2/default.nix b/pkgs/development/python-modules/pysubs2/default.nix
index bd17cd3695355..8025a0e160e48 100644
--- a/pkgs/development/python-modules/pysubs2/default.nix
+++ b/pkgs/development/python-modules/pysubs2/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -13,25 +14,19 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "tkarabela";
     repo = pname;
-    rev =  version;
+    rev = version;
     hash = "sha256-0bW9aB6ERRQK3psqeU0Siyi/8drEGisAp8UtTfOKlp0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pysubs2"
-  ];
+  pythonImportsCheck = [ "pysubs2" ];
 
   meta = with lib; {
     homepage = "https://github.com/tkarabela/pysubs2";
-    description = "A Python library for editing subtitle files";
+    description = "Python library for editing subtitle files";
     mainProgram = "pysubs2";
     license = licenses.mit;
     maintainers = with maintainers; [ Benjamin-L ];
diff --git a/pkgs/development/python-modules/pysuez/default.nix b/pkgs/development/python-modules/pysuez/default.nix
index 8af1c7ff006b4..e78c7f36d81ef 100644
--- a/pkgs/development/python-modules/pysuez/default.nix
+++ b/pkgs/development/python-modules/pysuez/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, regex
-, requests
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  regex,
+  requests,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
       --replace ", 'datetime'" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     regex
@@ -38,9 +37,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pysuez"
-  ];
+  pythonImportsCheck = [ "pysuez" ];
 
   meta = with lib; {
     description = "Module to get water consumption data from Suez";
diff --git a/pkgs/development/python-modules/pysvg-py3/default.nix b/pkgs/development/python-modules/pysvg-py3/default.nix
index 1647ce892ec9b..77d430e670527 100644
--- a/pkgs/development/python-modules/pysvg-py3/default.nix
+++ b/pkgs/development/python-modules/pysvg-py3/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, python
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  python,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pysvn/default.nix b/pkgs/development/python-modules/pysvn/default.nix
index 92d76cb06dcd7..e34c07ba0e94c 100644
--- a/pkgs/development/python-modules/pysvn/default.nix
+++ b/pkgs/development/python-modules/pysvn/default.nix
@@ -1,20 +1,21 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchurl
-, isPy3k
-, python
-, apr
-, aprutil
-, bash
-, e2fsprogs
-, expat
-, gcc
-, glibcLocales
-, neon
-, openssl
-, pycxx
-, subversion
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchurl,
+  isPy3k,
+  python,
+  apr,
+  aprutil,
+  bash,
+  e2fsprogs,
+  expat,
+  gcc,
+  glibcLocales,
+  neon,
+  openssl,
+  pycxx,
+  subversion,
 }:
 
 buildPythonPackage rec {
@@ -27,13 +28,17 @@ buildPythonPackage rec {
     hash = "sha256-LbAz+KjEY3nkSJAzJNwlnSRYoWr4i1ITRUPV3ZBH7cc=";
   };
 
-  patches = [
-    ./replace-python-first.patch
-  ];
+  patches = [ ./replace-python-first.patch ];
 
-  buildInputs = [ bash subversion apr aprutil expat neon openssl ]
-    ++ lib.optionals stdenv.isLinux [ e2fsprogs ]
-    ++ lib.optionals stdenv.isDarwin [ gcc ];
+  buildInputs = [
+    bash
+    subversion
+    apr
+    aprutil
+    expat
+    neon
+    openssl
+  ] ++ lib.optionals stdenv.isLinux [ e2fsprogs ] ++ lib.optionals stdenv.isDarwin [ gcc ];
 
   preConfigure = ''
     cd Source
diff --git a/pkgs/development/python-modules/pyswitchbee/default.nix b/pkgs/development/python-modules/pyswitchbee/default.nix
index 9fb94a5a05975..715d084ad9c14 100644
--- a/pkgs/development/python-modules/pyswitchbee/default.nix
+++ b/pkgs/development/python-modules/pyswitchbee/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, awesomeversion
-, buildPythonPackage
-, aiohttp
-, fetchFromGitHub
-, setuptools
-, pythonOlder
-, packaging
+{
+  lib,
+  awesomeversion,
+  buildPythonPackage,
+  aiohttp,
+  fetchFromGitHub,
+  setuptools,
+  pythonOlder,
+  packaging,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-bMxWrapFX689yvC6+9NUunEtTe79+QNauFa1ZjG9ON4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -35,9 +34,7 @@ buildPythonPackage rec {
   # Module doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "switchbee"
-  ];
+  pythonImportsCheck = [ "switchbee" ];
 
   meta = with lib; {
     description = "Library to control SwitchBee smart home device";
diff --git a/pkgs/development/python-modules/pyswitchbot/default.nix b/pkgs/development/python-modules/pyswitchbot/default.nix
index ad55dbc99fdfb..2a3ed39294165 100644
--- a/pkgs/development/python-modules/pyswitchbot/default.nix
+++ b/pkgs/development/python-modules/pyswitchbot/default.nix
@@ -1,36 +1,35 @@
-{ lib
-, bleak
-, bleak-retry-connector
-, boto3
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, pyopenssl
-, pythonOlder
-, pytestCheckHook
-, requests
-, setuptools
+{
+  lib,
+  bleak,
+  bleak-retry-connector,
+  boto3,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  pyopenssl,
+  pythonOlder,
+  pytestCheckHook,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyswitchbot";
-  version = "0.45.0";
+  version = "0.48.0";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "Danielhiversen";
     repo = "pySwitchbot";
     rev = "refs/tags/${version}";
-    hash = "sha256-lQVUHZvAZ4J0DLlUl30dSz2wwXKb9MK5prkXvub0yNI=";
+    hash = "sha256-UVLB1SdtYiMsXR3od2gIxNxiQ6wyW2ItAJQrxv0w1tk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     bleak
     bleak-retry-connector
     boto3
@@ -39,18 +38,14 @@ buildPythonPackage rec {
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # mismatch in expected data structure
     "test_parse_advertisement_data_curtain"
   ];
 
-  pythonImportsCheck = [
-    "switchbot"
-  ];
+  pythonImportsCheck = [ "switchbot" ];
 
   meta = with lib; {
     description = "Python library to control Switchbot IoT devices";
diff --git a/pkgs/development/python-modules/pysychonaut/default.nix b/pkgs/development/python-modules/pysychonaut/default.nix
index 0962ee9b9db1c..a0335d886af1f 100644
--- a/pkgs/development/python-modules/pysychonaut/default.nix
+++ b/pkgs/development/python-modules/pysychonaut/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, requests, requests-cache, beautifulsoup4 }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  requests-cache,
+  beautifulsoup4,
+}:
 
 buildPythonPackage rec {
   pname = "pysychonaut";
@@ -14,7 +21,11 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "bs4" "beautifulsoup4"
   '';
 
-  propagatedBuildInputs = [ requests requests-cache beautifulsoup4 ];
+  propagatedBuildInputs = [
+    requests
+    requests-cache
+    beautifulsoup4
+  ];
 
   # No tests available
   doCheck = false;
diff --git a/pkgs/development/python-modules/pysyncobj/default.nix b/pkgs/development/python-modules/pysyncobj/default.nix
index 3909f1626dc33..33671fb433144 100644
--- a/pkgs/development/python-modules/pysyncobj/default.nix
+++ b/pkgs/development/python-modules/pysyncobj/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
   # Tests require network features
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pysyncobj"
-  ];
+  pythonImportsCheck = [ "pysyncobj" ];
 
   meta = with lib; {
     description = "Python library for replicating your class";
diff --git a/pkgs/development/python-modules/pysyncthru/default.nix b/pkgs/development/python-modules/pysyncthru/default.nix
index 568152605c77d..879c4f3388bd6 100644
--- a/pkgs/development/python-modules/pysyncthru/default.nix
+++ b/pkgs/development/python-modules/pysyncthru/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, aiohttp
-, demjson3
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  aiohttp,
+  demjson3,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,18 +24,14 @@ buildPythonPackage rec {
     hash = "sha256-Zije1WzfgIU9pT0H7T/Mx+5gEBCsRgMLkfsa/KB0YtI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
     demjson3
   ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   pythonImportsCheck = [ "pysyncthru" ];
 
diff --git a/pkgs/development/python-modules/pytabix/default.nix b/pkgs/development/python-modules/pytabix/default.nix
index 7ad01093b212b..b1508c27a08e7 100644
--- a/pkgs/development/python-modules/pytabix/default.nix
+++ b/pkgs/development/python-modules/pytabix/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, isPy3k
-, fetchPypi
-, zlib
+{
+  lib,
+  buildPythonPackage,
+  isPy3k,
+  fetchPypi,
+  zlib,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pytablewriter/default.nix b/pkgs/development/python-modules/pytablewriter/default.nix
index 8b37c75e9c24b..1b074f1b8584f 100644
--- a/pkgs/development/python-modules/pytablewriter/default.nix
+++ b/pkgs/development/python-modules/pytablewriter/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, buildPythonPackage
-, dataproperty
-, dominate
-, elasticsearch
-, fetchFromGitHub
-, loguru
-, mbstrdecoder
-, pandas
-, pathvalidate
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, setuptools
-, simplejson
-, tabledata
-, tcolorpy
-, toml
-, typepy
-, xlsxwriter
-, xlwt
+{
+  lib,
+  buildPythonPackage,
+  dataproperty,
+  dominate,
+  elasticsearch,
+  fetchFromGitHub,
+  loguru,
+  mbstrdecoder,
+  pandas,
+  pathvalidate,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  setuptools,
+  simplejson,
+  tabledata,
+  tcolorpy,
+  toml,
+  typepy,
+  xlsxwriter,
+  xlwt,
 }:
 
 buildPythonPackage rec {
@@ -35,9 +36,7 @@ buildPythonPackage rec {
     hash = "sha256-b3YzDqNATaT/FFG4/x9EGlYlhXKPvgNB2xnm0bzvLJQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     dataproperty
@@ -61,49 +60,33 @@ buildPythonPackage rec {
       xlsxwriter
       xlwt
     ];
-    es = [
-      elasticsearch
-    ];
-    es8 = [
-      elasticsearch
-    ];
+    es = [ elasticsearch ];
+    es8 = [ elasticsearch ];
     excel = [
       xlwt
       xlsxwriter
     ];
-    html = [
-      dominate
-    ];
-    logging = [
-      loguru
-    ];
+    html = [ dominate ];
+    logging = [ loguru ];
     # from = [
     #   pytablereader
     # ];
-    pandas = [
-      pandas
-    ];
+    pandas = [ pandas ];
     # sqlite = [
     #   simplesqlite
     # ];
     # theme = [
     #   pytablewriter-altrow-theme
     # ];
-    toml = [
-      toml
-    ];
-    yaml = [
-      pyyaml
-    ];
+    toml = [ toml ];
+    yaml = [ pyyaml ];
   };
 
   nativeCheckInputs = [
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "pathvalidate"
-  ];
+  pythonImportsCheck = [ "pathvalidate" ];
 
   disabledTests = [
     # Circular dependency
@@ -121,7 +104,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A library to write a table in various formats";
+    description = "Library to write a table in various formats";
     homepage = "https://github.com/thombashi/pytablewriter";
     changelog = "https://github.com/thombashi/pytablewriter/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pytado/default.nix b/pkgs/development/python-modules/pytado/default.nix
index 8a9a3f4cf2fa6..e82ff9c57e4e2 100644
--- a/pkgs/development/python-modules/pytado/default.nix
+++ b/pkgs/development/python-modules/pytado/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, requests
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  requests,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pytado";
-  version = "0.17.5";
+  version = "0.17.6";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,24 +19,16 @@ buildPythonPackage rec {
     owner = "wmalgadey";
     repo = "PyTado";
     rev = "refs/tags/${version}";
-    hash = "sha256-FjdqZc4Zt2sLYJpnD/MAzr8Y9lGHteHB5psQqheS84I=";
+    hash = "sha256-KcYxUKQuO7TLS4YPg2mrBjP+DMnvZeJokGzwmeM/CvE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "PyTado"
-  ];
+  pythonImportsCheck = [ "PyTado" ];
 
   meta = with lib; {
     description = "Python binding for Tado web API";
diff --git a/pkgs/development/python-modules/pytaglib/default.nix b/pkgs/development/python-modules/pytaglib/default.nix
index e31ea59c546da..87bb086a72118 100644
--- a/pkgs/development/python-modules/pytaglib/default.nix
+++ b/pkgs/development/python-modules/pytaglib/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, taglib
-, cython
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  taglib,
+  cython,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     taglib
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "taglib"
-  ];
+  pythonImportsCheck = [ "taglib" ];
 
   meta = with lib; {
     description = "Python bindings for the Taglib audio metadata library";
diff --git a/pkgs/development/python-modules/pytankerkoenig/default.nix b/pkgs/development/python-modules/pytankerkoenig/default.nix
index 83c73a9d93d2a..67af158546972 100644
--- a/pkgs/development/python-modules/pytankerkoenig/default.nix
+++ b/pkgs/development/python-modules/pytankerkoenig/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pytap2/default.nix b/pkgs/development/python-modules/pytap2/default.nix
index d78a7b364779a..1e080f0bbad30 100644
--- a/pkgs/development/python-modules/pytap2/default.nix
+++ b/pkgs/development/python-modules/pytap2/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, nettools
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  nettools,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-GN8yFnS7HVgIP73/nVtYnwwhCBI9doGHLGSOaFiWIdw=";
   };
 
-  propagatedBuildInputs = [
-    nettools
-  ];
+  propagatedBuildInputs = [ nettools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pytap2"
-  ];
+  pythonImportsCheck = [ "pytap2" ];
 
   meta = with lib; {
     description = "Object-oriented wrapper around the Linux Tun/Tap device";
diff --git a/pkgs/development/python-modules/pytapo/default.nix b/pkgs/development/python-modules/pytapo/default.nix
index d369ace859f6b..f61e7089f2d2e 100644
--- a/pkgs/development/python-modules/pytapo/default.nix
+++ b/pkgs/development/python-modules/pytapo/default.nix
@@ -1,37 +1,37 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-
-# propagates
-, pycryptodome
-, requests
-, rtp
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pycryptodome,
+  requests,
+  rtp,
+  urllib3,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pytapo";
-  version = "3.3.19";
-  format = "setuptools";
+  version = "3.3.21";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Zm/ll6vOFW05euRgJN+SghVmMkSGQc9CVZkRu3h6AQQ=";
+    hash = "sha256-rc9XhV99vzgoUF5ERFmJHHB9GMwq5Y44CJKg+g5tjOo=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     pycryptodome
     requests
     rtp
     urllib3
   ];
 
-  pythonImportsCheck = [
-    "pytapo"
-  ];
+  pythonImportsCheck = [ "pytapo" ];
 
   # Tests require actual hardware
   doCheck = false;
diff --git a/pkgs/development/python-modules/pytautulli/default.nix b/pkgs/development/python-modules/pytautulli/default.nix
index ae39788541e22..2b97ceb8fb0d4 100644
--- a/pkgs/development/python-modules/pytautulli/default.nix
+++ b/pkgs/development/python-modules/pytautulli/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -33,26 +34,18 @@ buildPythonPackage rec {
       --replace "str(self.port)" "int(self.port)"
   '';
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   checkInputs = [
     aresponses
     pytest-asyncio
   ];
 
-  pytestFlagsArray = [
-    "--asyncio-mode=auto"
-  ];
+  pytestFlagsArray = [ "--asyncio-mode=auto" ];
 
-  pythonImportsCheck = [
-    "pytautulli"
-  ];
+  pythonImportsCheck = [ "pytautulli" ];
 
   meta = with lib; {
     description = "Python module to get information from Tautulli";
diff --git a/pkgs/development/python-modules/pyte/default.nix b/pkgs/development/python-modules/pyte/default.nix
index 6968f568941ae..216b9d38b52ba 100644
--- a/pkgs/development/python-modules/pyte/default.nix
+++ b/pkgs/development/python-modules/pyte/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, wcwidth
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  wcwidth,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pytedee-async/default.nix b/pkgs/development/python-modules/pytedee-async/default.nix
index cdb89a843c139..181da2761baba 100644
--- a/pkgs/development/python-modules/pytedee-async/default.nix
+++ b/pkgs/development/python-modules/pytedee-async/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-5mCHCzoDJ6+ao2guhAtVjvPaAS6Hutn+NwaQIjWDlgo=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    aiohttp
-  ];
+  dependencies = [ aiohttp ];
 
-  pythonImportsCheck = [
-    "pytedee_async"
-  ];
+  pythonImportsCheck = [ "pytedee_async" ];
 
   # Module has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/pytenable/default.nix b/pkgs/development/python-modules/pytenable/default.nix
index 2fba1b0b779f9..0eb36db86388e 100644
--- a/pkgs/development/python-modules/pytenable/default.nix
+++ b/pkgs/development/python-modules/pytenable/default.nix
@@ -12,6 +12,7 @@
   pythonOlder,
   requests,
   requests-pkcs12,
+  requests-toolbelt,
   responses,
   restfly,
   semver,
@@ -21,7 +22,7 @@
 
 buildPythonPackage rec {
   pname = "pytenable";
-  version = "1.4.22";
+  version = "1.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -30,9 +31,11 @@ buildPythonPackage rec {
     owner = "tenable";
     repo = "pyTenable";
     rev = "refs/tags/${version}";
-    hash = "sha256-acMafLlO0yGEnW+0XeBWUpDWvOPFAB4RK/XyAb2JbPw=";
+    hash = "sha256-uLZ1TQx5awHOOF+IR3aWTwwYTd71O/V+EHaDrb1LAXU=";
   };
 
+  pythonRelaxDeps = [ "defusedxml" ];
+
   build-system = [ setuptools ];
 
   dependencies = [
@@ -41,6 +44,7 @@ buildPythonPackage rec {
     python-box
     python-dateutil
     requests
+    requests-toolbelt
     restfly
     semver
     typing-extensions
diff --git a/pkgs/development/python-modules/pytensor/default.nix b/pkgs/development/python-modules/pytensor/default.nix
index 5d997cab00444..6b529ddb810d4 100644
--- a/pkgs/development/python-modules/pytensor/default.nix
+++ b/pkgs/development/python-modules/pytensor/default.nix
@@ -1,29 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cython
-, versioneer
-, cons
-, etuples
-, filelock
-, logical-unification
-, minikanren
-, numpy
-, scipy
-, typing-extensions
-, jax
-, jaxlib
-, numba
-, numba-scipy
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, tensorflow-probability
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cython,
+  versioneer,
+  cons,
+  etuples,
+  filelock,
+  logical-unification,
+  minikanren,
+  numpy,
+  scipy,
+  typing-extensions,
+  jax,
+  jaxlib,
+  numba,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  tensorflow-probability,
 }:
 
 buildPythonPackage rec {
   pname = "pytensor";
-  version = "2.20.0";
+  version = "2.22.1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     owner = "pymc-devs";
     repo = "pytensor";
     rev = "refs/tags/rel-${version}";
-    hash = "sha256-bvkOMer+zYSsiU4a147eUEZjjUeTVpb9f/hepMZZ3sE=";
+    hash = "sha256-FG95+3g+DcqQkyJX3PavfyUWTINFLrgAPTaHYN/jk90=";
   };
 
   postPatch = ''
@@ -69,9 +69,7 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  pythonImportsCheck = [
-    "pytensor"
-  ];
+  pythonImportsCheck = [ "pytensor" ];
 
   disabledTests = [
     # benchmarks (require pytest-benchmark):
@@ -89,12 +87,15 @@ buildPythonPackage rec {
     "tests/sparse/sandbox/"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "Python library to define, optimize, and efficiently evaluate mathematical expressions involving multi-dimensional arrays";
     mainProgram = "pytensor-cache";
     homepage = "https://github.com/pymc-devs/pytensor";
     changelog = "https://github.com/pymc-devs/pytensor/releases";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ bcdarwin ferrine ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [
+      bcdarwin
+      ferrine
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pytesseract/default.nix b/pkgs/development/python-modules/pytesseract/default.nix
index f6a220c02ebac..ac5a88e436912 100644
--- a/pkgs/development/python-modules/pytesseract/default.nix
+++ b/pkgs/development/python-modules/pytesseract/default.nix
@@ -1,12 +1,13 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, packaging
-, pillow
-, tesseract
-, substituteAll
-, pytestCheckHook
-, setuptools
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  packaging,
+  pillow,
+  tesseract,
+  substituteAll,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +29,9 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  buildInputs = [
-    tesseract
-  ];
+  buildInputs = [ tesseract ];
 
   propagatedBuildInputs = [
     packaging
@@ -46,7 +43,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://pypi.org/project/pytesseract/";
     license = licenses.asl20;
-    description = "A Python wrapper for Google Tesseract";
+    description = "Python wrapper for Google Tesseract";
     mainProgram = "pytesseract";
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/pytest-aiohttp/default.nix b/pkgs/development/python-modules/pytest-aiohttp/default.nix
index 85dd9b7bf5375..d1eb23db0d9a6 100644
--- a/pkgs/development/python-modules/pytest-aiohttp/default.nix
+++ b/pkgs/development/python-modules/pytest-aiohttp/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, wheel
-, aiohttp
-, pytest
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  aiohttp,
+  pytest,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -31,18 +32,14 @@ buildPythonPackage rec {
     wheel
   ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   propagatedBuildInputs = [
     aiohttp
     pytest-asyncio
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     homepage = "https://github.com/aio-libs/pytest-aiohttp/";
diff --git a/pkgs/development/python-modules/pytest-annotate/default.nix b/pkgs/development/python-modules/pytest-annotate/default.nix
index 2c70cbd320f6f..a7802b2cb7161 100644
--- a/pkgs/development/python-modules/pytest-annotate/default.nix
+++ b/pkgs/development/python-modules/pytest-annotate/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pyannotate
-, pytest
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pyannotate,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,9 @@ buildPythonPackage rec {
     hash = "sha256-CSaTIPjSGHKCR0Nvet6W8zzz/oWEC0BjIULZ+JaMH9A=";
   };
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    pyannotate
-  ];
+  propagatedBuildInputs = [ pyannotate ];
 
   postPatch = ''
     substituteInPlace setup.py \
@@ -32,9 +29,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pytest_annotate"
-  ];
+  pythonImportsCheck = [ "pytest_annotate" ];
 
   meta = with lib; {
     broken = stdenv.isDarwin;
diff --git a/pkgs/development/python-modules/pytest-ansible/default.nix b/pkgs/development/python-modules/pytest-ansible/default.nix
index b73ae05a8cce4..a95648618f38f 100644
--- a/pkgs/development/python-modules/pytest-ansible/default.nix
+++ b/pkgs/development/python-modules/pytest-ansible/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, stdenv
-, ansible-compat
-, ansible-core
-, buildPythonPackage
-, coreutils
-, fetchFromGitHub
-, packaging
-, pytest
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  stdenv,
+  ansible-compat,
+  ansible-core,
+  buildPythonPackage,
+  coreutils,
+  fetchFromGitHub,
+  packaging,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "pytest-ansible";
-  version = "24.1.2";
+  version = "24.1.3";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -24,7 +25,7 @@ buildPythonPackage rec {
     owner = "ansible";
     repo = "pytest-ansible";
     rev = "refs/tags/v${version}";
-    hash = "sha256-NtGk+azpSZZm9PUf6Q1Qipo/zaUH+bed7k3oFnQyKjw=";
+    hash = "sha256-pQNm7Q9NAc/jLlR6f0132tpXyBoQaKpm7JoEgqOJL8U=";
   };
 
   postPatch = ''
@@ -37,9 +38,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   propagatedBuildInputs = [
     ansible-core
@@ -47,46 +46,45 @@ buildPythonPackage rec {
     packaging
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export HOME=$TMPDIR
   '';
 
-  pytestFlagsArray = [
-    "tests/"
-  ];
+  pytestFlagsArray = [ "tests/" ];
 
-  disabledTests = [
-    # Host unreachable in the inventory
-    "test_become"
-    # [Errno -3] Temporary failure in name resolution
-    "test_connection_failure_v2"
-    "test_connection_failure_extra_inventory_v2"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # These tests fail in the Darwin sandbox
-    "test_ansible_facts"
-    "test_func"
-    "test_param_override_with_marker"
-  ];
+  disabledTests =
+    [
+      # Host unreachable in the inventory
+      "test_become"
+      # [Errno -3] Temporary failure in name resolution
+      "test_connection_failure_v2"
+      "test_connection_failure_extra_inventory_v2"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # These tests fail in the Darwin sandbox
+      "test_ansible_facts"
+      "test_func"
+      "test_param_override_with_marker"
+    ];
 
-  disabledTestPaths = [
-    # Test want s to execute pytest in a subprocess
-    "tests/integration/test_molecule.py"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # These tests fail in the Darwin sandbox
-    "tests/test_adhoc.py"
-    "tests/test_adhoc_result.py"
-  ] ++ lib.optionals (lib.versionAtLeast ansible-core.version "2.16") [
-    # Test fail in the NixOS environment
-    "tests/test_adhoc.py"
-  ];
+  disabledTestPaths =
+    [
+      # Test want s to execute pytest in a subprocess
+      "tests/integration/test_molecule.py"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # These tests fail in the Darwin sandbox
+      "tests/test_adhoc.py"
+      "tests/test_adhoc_result.py"
+    ]
+    ++ lib.optionals (lib.versionAtLeast ansible-core.version "2.16") [
+      # Test fail in the NixOS environment
+      "tests/test_adhoc.py"
+    ];
 
-  pythonImportsCheck = [
-    "pytest_ansible"
-  ];
+  pythonImportsCheck = [ "pytest_ansible" ];
 
   meta = with lib; {
     description = "Plugin for pytest to simplify calling ansible modules from tests or fixtures";
diff --git a/pkgs/development/python-modules/pytest-arraydiff/default.nix b/pkgs/development/python-modules/pytest-arraydiff/default.nix
index 2fc73552d5495..9f98f85052f3d 100644
--- a/pkgs/development/python-modules/pytest-arraydiff/default.nix
+++ b/pkgs/development/python-modules/pytest-arraydiff/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, pytest
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  pytest,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -19,24 +20,16 @@ buildPythonPackage rec {
     sha256 = "sha256-KTexRQ/JNWIPJHCdh9QMZ+BVoEPXuFQaJf36mU3aZ94=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   # The tests requires astropy, which itself requires pytest-arraydiff
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pytest_arraydiff"
-  ];
+  pythonImportsCheck = [ "pytest_arraydiff" ];
 
   meta = with lib; {
     description = "Pytest plugin to help with comparing array output from tests";
diff --git a/pkgs/development/python-modules/pytest-astropy-header/default.nix b/pkgs/development/python-modules/pytest-astropy-header/default.nix
index 43f2edfc30ea2..8b87d4422b579 100644
--- a/pkgs/development/python-modules/pytest-astropy-header/default.nix
+++ b/pkgs/development/python-modules/pytest-astropy-header/default.nix
@@ -1,12 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, pytest
-, pytest-cov
-, pytestCheckHook
-, numpy
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  pytestCheckHook,
+  numpy,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +18,9 @@ buildPythonPackage rec {
     sha256 = "77891101c94b75a8ca305453b879b318ab6001b370df02be2c0b6d1bb322db10";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/pytest-astropy/default.nix b/pkgs/development/python-modules/pytest-astropy/default.nix
index 33ffb661d73ed..b2771d70c495b 100644
--- a/pkgs/development/python-modules/pytest-astropy/default.nix
+++ b/pkgs/development/python-modules/pytest-astropy/default.nix
@@ -1,20 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, attrs
-, hypothesis
-, pytest
-, pytest-arraydiff
-, pytest-astropy-header
-, pytest-cov
-, pytest-doctestplus
-, pytest-filter-subpackage
-, pytest-mock
-, pytest-openfiles
-, pytest-remotedata
-, setuptools
-, setuptools-scm
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  attrs,
+  hypothesis,
+  pytest,
+  pytest-arraydiff,
+  pytest-astropy-header,
+  pytest-cov,
+  pytest-doctestplus,
+  pytest-filter-subpackage,
+  pytest-mock,
+  pytest-remotedata,
+  setuptools,
+  setuptools-scm,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +34,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   propagatedBuildInputs = [
     attrs
@@ -47,7 +45,6 @@ buildPythonPackage rec {
     pytest-doctestplus
     pytest-filter-subpackage
     pytest-mock
-    pytest-openfiles
     pytest-remotedata
   ];
 
diff --git a/pkgs/development/python-modules/pytest-asyncio/default.nix b/pkgs/development/python-modules/pytest-asyncio/default.nix
index b7762e12175c1..ef428705d7583 100644
--- a/pkgs/development/python-modules/pytest-asyncio/default.nix
+++ b/pkgs/development/python-modules/pytest-asyncio/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, callPackage
-, fetchFromGitHub
-, pytest
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  callPackage,
+  fetchFromGitHub,
+  pytest,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     "testout"
   ];
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   postInstall = ''
     mkdir $testout
@@ -40,11 +37,9 @@ buildPythonPackage rec {
   '';
 
   doCheck = false;
-  passthru.tests.pytest = callPackage ./tests.nix {};
+  passthru.tests.pytest = callPackage ./tests.nix { };
 
-  pythonImportsCheck = [
-    "pytest_asyncio"
-  ];
+  pythonImportsCheck = [ "pytest_asyncio" ];
 
   meta = with lib; {
     description = "Library for testing asyncio code with pytest";
diff --git a/pkgs/development/python-modules/pytest-asyncio/tests.nix b/pkgs/development/python-modules/pytest-asyncio/tests.nix
index 7fd26c85488de..d5f8ead94cbe5 100644
--- a/pkgs/development/python-modules/pytest-asyncio/tests.nix
+++ b/pkgs/development/python-modules/pytest-asyncio/tests.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, flaky
-, hypothesis
-, pytest-asyncio
-, pytest-trio
-, pytestCheckHook
+{
+  buildPythonPackage,
+  flaky,
+  hypothesis,
+  pytest-asyncio,
+  pytest-trio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage {
@@ -17,9 +18,7 @@ buildPythonPackage {
   dontBuild = true;
   dontInstall = true;
 
-  propagatedBuildInputs = [
-    pytest-asyncio
-  ];
+  propagatedBuildInputs = [ pytest-asyncio ];
 
   nativeCheckInputs = [
     flaky
diff --git a/pkgs/development/python-modules/pytest-base-url/default.nix b/pkgs/development/python-modules/pytest-base-url/default.nix
index 1d8a3cb6396aa..d7afa906d75b6 100644
--- a/pkgs/development/python-modules/pytest-base-url/default.nix
+++ b/pkgs/development/python-modules/pytest-base-url/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, hatchling
-, hatch-vcs
-, pytest
-, pytest-localserver
-, pytest-metadata
-, requests
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  hatchling,
+  hatch-vcs,
+  pytest,
+  pytest-localserver,
+  pytest-metadata,
+  requests,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,13 +31,9 @@ buildPythonPackage rec {
     hatch-vcs
   ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   __darwinAllowLocalNetworking = true;
 
@@ -46,18 +43,14 @@ buildPythonPackage rec {
     pytest-metadata
   ];
 
-  pytestFlagsArray = [
-    "tests"
-  ];
+  pytestFlagsArray = [ "tests" ];
 
   disabledTests = [
     # should be xfail? or mocking doesn't work
     "test_url_fails"
   ];
 
-  pythonImportsCheck = [
-    "pytest_base_url"
-  ];
+  pythonImportsCheck = [ "pytest_base_url" ];
 
   meta = with lib; {
     description = "pytest plugin for URL based tests";
diff --git a/pkgs/development/python-modules/pytest-benchmark/default.nix b/pkgs/development/python-modules/pytest-benchmark/default.nix
index dc2c271371691..70dc1d0f7fb1d 100644
--- a/pkgs/development/python-modules/pytest-benchmark/default.nix
+++ b/pkgs/development/python-modules/pytest-benchmark/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, aspectlib
-, buildPythonPackage
-, elasticsearch
-, elastic-transport
-, fetchFromGitHub
-, fetchpatch
-, freezegun
-, git
-, mercurial
-, py-cpuinfo
-, pygal
-, pytest
-, pytestCheckHook
-, pytest-xdist
-, pythonOlder
-, setuptools
+{
+  lib,
+  aspectlib,
+  buildPythonPackage,
+  elasticsearch,
+  elastic-transport,
+  fetchFromGitHub,
+  fetchpatch,
+  freezegun,
+  git,
+  mercurial,
+  py-cpuinfo,
+  pygal,
+  pytest,
+  pytestCheckHook,
+  pytest-xdist,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,7 +25,6 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.7";
 
-
   src = fetchFromGitHub {
     owner = "ionelmc";
     repo = pname;
@@ -49,17 +49,11 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    py-cpuinfo
-  ];
+  propagatedBuildInputs = [ py-cpuinfo ];
 
   passthru.optional-dependencies = {
     aspect = [ aspectlib ];
@@ -67,9 +61,7 @@ buildPythonPackage rec {
     elasticsearch = [ elasticsearch ];
   };
 
-  pythonImportsCheck = [
-    "pytest_benchmark"
-  ];
+  pythonImportsCheck = [ "pytest_benchmark" ];
 
   nativeCheckInputs = [
     elastic-transport
@@ -81,7 +73,8 @@ buildPythonPackage rec {
   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
   pytestFlagsArray = [
-    "-W" "ignore::DeprecationWarning"
+    "-W"
+    "ignore::DeprecationWarning"
   ];
 
   preCheck = ''
diff --git a/pkgs/development/python-modules/pytest-black/default.nix b/pkgs/development/python-modules/pytest-black/default.nix
index a5fbb9874c576..920f4c755aea0 100644
--- a/pkgs/development/python-modules/pytest-black/default.nix
+++ b/pkgs/development/python-modules/pytest-black/default.nix
@@ -1,8 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi
-, black
-, pytest
-, setuptools-scm
-, toml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  black,
+  pytest,
+  setuptools-scm,
+  toml,
 }:
 
 buildPythonPackage rec {
@@ -19,14 +22,17 @@ buildPythonPackage rec {
 
   buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [ black toml ];
+  propagatedBuildInputs = [
+    black
+    toml
+  ];
 
   # does not contain tests
   doCheck = false;
   pythonImportsCheck = [ "pytest_black" ];
 
   meta = with lib; {
-    description = "A pytest plugin to enable format checking with black";
+    description = "Pytest plugin to enable format checking with black";
     homepage = "https://github.com/shopkeep/pytest-black";
     license = licenses.mit;
     maintainers = with maintainers; [ jonringer ];
diff --git a/pkgs/development/python-modules/pytest-cases/default.nix b/pkgs/development/python-modules/pytest-cases/default.nix
index 9c89a38c1059a..8741af9da3354 100644
--- a/pkgs/development/python-modules/pytest-cases/default.nix
+++ b/pkgs/development/python-modules/pytest-cases/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, makefun
-, decopatch
-, pythonOlder
-, pytest
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  makefun,
+  decopatch,
+  pythonOlder,
+  pytest,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -20,13 +21,9 @@ buildPythonPackage rec {
     hash = "sha256-ySBUGHhHp9MNirZwn7FnCoMOThkjS+cAyFyWttcQLBY=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   propagatedBuildInputs = [
     decopatch
@@ -38,9 +35,7 @@ buildPythonPackage rec {
   # makefun, pytest-*) have circular dependencies.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pytest_cases"
-  ];
+  pythonImportsCheck = [ "pytest_cases" ];
 
   meta = with lib; {
     description = "Separate test code from test cases in pytest";
diff --git a/pkgs/development/python-modules/pytest-catchlog/default.nix b/pkgs/development/python-modules/pytest-catchlog/default.nix
index 4fbfd57fe583e..e4e2dffdbb29f 100644
--- a/pkgs/development/python-modules/pytest-catchlog/default.nix
+++ b/pkgs/development/python-modules/pytest-catchlog/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, unzip }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  unzip,
+}:
 
 buildPythonPackage rec {
   pname = "pytest-catchlog";
@@ -21,6 +27,6 @@ buildPythonPackage rec {
   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.";
+    description = "py.test plugin to catch log messages. This is a fork of pytest-capturelog";
   };
 }
diff --git a/pkgs/development/python-modules/pytest-celery/default.nix b/pkgs/development/python-modules/pytest-celery/default.nix
index 0af07db4ec1f8..12b7c581ab382 100644
--- a/pkgs/development/python-modules/pytest-celery/default.nix
+++ b/pkgs/development/python-modules/pytest-celery/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, flit-core }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+}:
 
 buildPythonPackage rec {
   pname = "pytest-celery";
@@ -19,9 +24,7 @@ buildPythonPackage rec {
       --replace '"celery >= 4.4.0"' ""
   '';
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   # This package has nothing to test or import.
   doCheck = false;
diff --git a/pkgs/development/python-modules/pytest-check/default.nix b/pkgs/development/python-modules/pytest-check/default.nix
index efa2cc4049bc1..c9f7b131c9d49 100644
--- a/pkgs/development/python-modules/pytest-check/default.nix
+++ b/pkgs/development/python-modules/pytest-check/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, pytest
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  pytest,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,21 +18,13 @@ buildPythonPackage rec {
     hash = "sha256-UbjxiozKpCbF2RPE4ORvAUqqdXlIHqA9Itfh9Jj2ibI=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pytest_check"
-  ];
+  pythonImportsCheck = [ "pytest_check" ];
 
   meta = with lib; {
     description = "pytest plugin allowing multiple failures per test";
diff --git a/pkgs/development/python-modules/pytest-cid/default.nix b/pkgs/development/python-modules/pytest-cid/default.nix
index eea7a6ead0ee5..b73648e2a673a 100644
--- a/pkgs/development/python-modules/pytest-cid/default.nix
+++ b/pkgs/development/python-modules/pytest-cid/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
-, flit-core
-, py-cid
-, pytestCheckHook
-, pytest-cov
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  flit-core,
+  py-cid,
+  pytestCheckHook,
+  pytest-cov,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
       --replace "pytest >= 5.0, < 7.0" "pytest >= 5.0"
   '';
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    py-cid
-  ];
+  propagatedBuildInputs = [ py-cid ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -43,7 +40,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/ntninja/pytest-cid";
-    description = "A simple wrapper around py-cid for easily writing tests involving CIDs in datastructures";
+    description = "Simple wrapper around py-cid for easily writing tests involving CIDs in datastructures";
     license = licenses.mpl20;
     maintainers = with maintainers; [ Luflosi ];
   };
diff --git a/pkgs/development/python-modules/pytest-click/default.nix b/pkgs/development/python-modules/pytest-click/default.nix
index eaf81fa468db8..8c12563a5be26 100644
--- a/pkgs/development/python-modules/pytest-click/default.nix
+++ b/pkgs/development/python-modules/pytest-click/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytest
-, click
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytest,
+  click,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
 
   buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    click
-  ];
+  propagatedBuildInputs = [ click ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/pytest-console-scripts/default.nix b/pkgs/development/python-modules/pytest-console-scripts/default.nix
index 81b31c256cfdf..0d41302276321 100644
--- a/pkgs/development/python-modules/pytest-console-scripts/default.nix
+++ b/pkgs/development/python-modules/pytest-console-scripts/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, mock
-, fetchPypi
-, pytestCheckHook
-, python
-, pythonOlder
-, setuptools-scm
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  mock,
+  fetchPypi,
+  pytestCheckHook,
+  python,
+  pythonOlder,
+  setuptools-scm,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +22,9 @@ buildPythonPackage rec {
     hash = "sha256-WoJu2EzAr6IC655EOB19di973ajgwj+feafx9Ez0qJU=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  propagatedBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     mock
@@ -40,9 +37,7 @@ buildPythonPackage rec {
       --replace "#!/usr/bin/env python" "#!${python.interpreter}"
   '';
 
-  pythonImportsCheck = [
-    "pytest_console_scripts"
-  ];
+  pythonImportsCheck = [ "pytest_console_scripts" ];
 
   meta = with lib; {
     description = "Pytest plugin for testing console scripts";
diff --git a/pkgs/development/python-modules/pytest-cov/default.nix b/pkgs/development/python-modules/pytest-cov/default.nix
index 08ab3e4d10343..07f162465f9eb 100644
--- a/pkgs/development/python-modules/pytest-cov/default.nix
+++ b/pkgs/development/python-modules/pytest-cov/default.nix
@@ -1,25 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
-, coverage
-, toml
-, tomli
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  coverage,
+  toml,
+  tomli,
 }:
 
 buildPythonPackage rec {
   pname = "pytest-cov";
-  version = "4.1.0";
+  version = "5.0.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-OQSxPfv+xH8AO453/VtYnNEZBKId3xqzimTyBNahDvY=";
+    hash = "sha256-WDe1jp9uvTNbD4Bg7szmm2YkFbFtxQOIOgL0Xf6xSFc=";
   };
 
   buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [ coverage toml tomli ];
+  propagatedBuildInputs = [
+    coverage
+    toml
+    tomli
+  ];
 
   # xdist related tests fail with the following error
   # OSError: [Errno 13] Permission denied: 'py/_code'
diff --git a/pkgs/development/python-modules/pytest-cram/default.nix b/pkgs/development/python-modules/pytest-cram/default.nix
index 7aa58096f1bf7..674566e2301e6 100644
--- a/pkgs/development/python-modules/pytest-cram/default.nix
+++ b/pkgs/development/python-modules/pytest-cram/default.nix
@@ -1,12 +1,21 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, cram, bash }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
+  setuptools,
+  pytest_7,
+  cram,
+  bash,
+}:
 
 buildPythonPackage rec {
-  version = "0.2.2";
-  format = "setuptools";
   pname = "pytest-cram";
+  version = "0.2.2";
+  pyproject = true;
 
-  nativeCheckInputs = [ pytest ];
-  propagatedBuildInputs = [ cram ];
+  # relies on the imp module
+  disabled = pythonAtLeast "3.12";
 
   src = fetchPypi {
     inherit pname version;
@@ -19,6 +28,13 @@ buildPythonPackage rec {
       --replace "/bin/bash" "${bash}/bin/bash"
   '';
 
+  build-system = [ setuptools ];
+
+  dependencies = [ cram ];
+
+  # https://github.com/tbekolay/pytest-cram/issues/15
+  nativeCheckInputs = [ pytest_7 ];
+
   # Remove __init__.py from tests folder, otherwise pytest raises an error that
   # the imported and collected modules are different.
   checkPhase = ''
diff --git a/pkgs/development/python-modules/pytest-datadir/default.nix b/pkgs/development/python-modules/pytest-datadir/default.nix
index 4adaee73ceaee..3c241457449fa 100644
--- a/pkgs/development/python-modules/pytest-datadir/default.nix
+++ b/pkgs/development/python-modules/pytest-datadir/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pytest-datafiles/default.nix b/pkgs/development/python-modules/pytest-datafiles/default.nix
index 314231942089f..d60948e7d924e 100644
--- a/pkgs/development/python-modules/pytest-datafiles/default.nix
+++ b/pkgs/development/python-modules/pytest-datafiles/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, py
-, pytest
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  py,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     pytest
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pytest_datafiles"
-  ];
+  pythonImportsCheck = [ "pytest_datafiles" ];
 
   meta = with lib; {
     description = "Pytest plugin to create a tmpdir containing predefined files/directories";
diff --git a/pkgs/development/python-modules/pytest-dependency/default.nix b/pkgs/development/python-modules/pytest-dependency/default.nix
index 7ca70a0f4fc7d..e4409590a971c 100644
--- a/pkgs/development/python-modules/pytest-dependency/default.nix
+++ b/pkgs/development/python-modules/pytest-dependency/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -16,21 +17,13 @@ buildPythonPackage rec {
     hash = "sha256-k0sOajnZWZUGLBk/fq7tio/6Bv8bzvS2Kw3HSnCLrME=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pytest_dependency"
-  ];
+  pythonImportsCheck = [ "pytest_dependency" ];
 
   meta = with lib; {
     homepage = "https://github.com/RKrahl/pytest-dependency";
diff --git a/pkgs/development/python-modules/pytest-describe/default.nix b/pkgs/development/python-modules/pytest-describe/default.nix
index c1118327734c8..6ce782c442004 100644
--- a/pkgs/development/python-modules/pytest-describe/default.nix
+++ b/pkgs/development/python-modules/pytest-describe/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build
-, pytest
+  # build
+  pytest,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 let
@@ -22,13 +23,9 @@ buildPythonPackage {
     hash = "sha256-ObsF65DySX2co0Lvmgt/pbraflhQWuwz9m1mHWMZVbc=";
   };
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Describe-style plugin for the pytest framework";
diff --git a/pkgs/development/python-modules/pytest-django/default.nix b/pkgs/development/python-modules/pytest-django/default.nix
index af7169bffc607..d1fe3b75ca1c3 100644
--- a/pkgs/development/python-modules/pytest-django/default.nix
+++ b/pkgs/development/python-modules/pytest-django/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, django
-, setuptools
-, setuptools-scm
-, django-configurations
-, pytest
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  django,
+  setuptools,
+  setuptools-scm,
+  django-configurations,
+  pytest,
+  pytestCheckHook,
 }:
 buildPythonPackage rec {
   pname = "pytest-django";
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    django
-  ];
+  propagatedBuildInputs = [ django ];
 
   nativeCheckInputs = [
     django-configurations
diff --git a/pkgs/development/python-modules/pytest-doctestplus/default.nix b/pkgs/development/python-modules/pytest-doctestplus/default.nix
index ff5e1b0ef2b67..3a57ab7db41c3 100644
--- a/pkgs/development/python-modules/pytest-doctestplus/default.nix
+++ b/pkgs/development/python-modules/pytest-doctestplus/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, gitMinimal
-, numpy
-, packaging
-, pytest
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  gitMinimal,
+  numpy,
+  packaging,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +29,9 @@ buildPythonPackage rec {
       --replace-fail '"git"' '"${lib.getExe gitMinimal}"'
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   propagatedBuildInputs = [
     packaging
diff --git a/pkgs/development/python-modules/pytest-dotenv/default.nix b/pkgs/development/python-modules/pytest-dotenv/default.nix
index 9f045315f6d13..7f9a678468b8b 100644
--- a/pkgs/development/python-modules/pytest-dotenv/default.nix
+++ b/pkgs/development/python-modules/pytest-dotenv/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, python-dotenv }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  python-dotenv,
+}:
 
 buildPythonPackage rec {
   pname = "pytest-dotenv";
@@ -16,7 +22,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytest ];
 
   meta = with lib; {
-    description = "A pytest plugin that parses environment files before running tests";
+    description = "Pytest plugin that parses environment files before running tests";
     homepage = "https://github.com/quiqua/pytest-dotenv";
     license = licenses.mit;
     maintainers = with maintainers; [ cleeyv ];
diff --git a/pkgs/development/python-modules/pytest-emoji/default.nix b/pkgs/development/python-modules/pytest-emoji/default.nix
index 1700c34fb37a6..ef490315240c1 100644
--- a/pkgs/development/python-modules/pytest-emoji/default.nix
+++ b/pkgs/development/python-modules/pytest-emoji/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-GuKBbIIODDnMi9YMX3zR4Jc3cbK+Zibj1ZeWvYkUY24=";
   };
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pytest_emoji"
-  ];
+  pythonImportsCheck = [ "pytest_emoji" ];
 
   disabledTests = [
     # Test scompare CLI output
@@ -40,7 +35,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A pytest plugin that adds emojis to test result report";
+    description = "Pytest plugin that adds emojis to test result report";
     homepage = "https://github.com/hackebrot/pytest-emoji";
     changelog = "https://github.com/hackebrot/pytest-emoji/releases/tag/0.2.0";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pytest-env/default.nix b/pkgs/development/python-modules/pytest-env/default.nix
index c5589f1cccd4b..c013b583a0123 100644
--- a/pkgs/development/python-modules/pytest-env/default.nix
+++ b/pkgs/development/python-modules/pytest-env/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatch-vcs
-, hatchling
-, pytest
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatch-vcs,
+  hatchling,
+  pytest,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     hatchling
   ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Pytest plugin used to set environment variables";
diff --git a/pkgs/development/python-modules/pytest-error-for-skips/default.nix b/pkgs/development/python-modules/pytest-error-for-skips/default.nix
index 574e36c11970d..594c16c4a87ff 100644
--- a/pkgs/development/python-modules/pytest-error-for-skips/default.nix
+++ b/pkgs/development/python-modules/pytest-error-for-skips/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pytest-examples/default.nix b/pkgs/development/python-modules/pytest-examples/default.nix
index 03df14e8c7b96..ed62ccbefd727 100644
--- a/pkgs/development/python-modules/pytest-examples/default.nix
+++ b/pkgs/development/python-modules/pytest-examples/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, black
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, hatchling
-, pytest
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, ruff
+{
+  lib,
+  black,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  hatchling,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
+  ruff,
 }:
 
 buildPythonPackage rec {
@@ -42,30 +42,19 @@ buildPythonPackage rec {
       --replace "'ruff'" "'${ruff}/bin/ruff'"
   '';
 
-  pythonRemoveDeps = [
-    "ruff"
-  ];
+  pythonRemoveDeps = [ "ruff" ];
 
   nativeBuildInputs = [
     hatchling
-    pythonRelaxDepsHook
   ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    black
-  ];
+  propagatedBuildInputs = [ black ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pytest_examples"
-  ];
+  pythonImportsCheck = [ "pytest_examples" ];
 
   disabledTests = [
     # Test fails with latest ruff v0.1.2
diff --git a/pkgs/development/python-modules/pytest-expect/default.nix b/pkgs/development/python-modules/pytest-expect/default.nix
index df5376e310e74..0a8211cdb2dd3 100644
--- a/pkgs/development/python-modules/pytest-expect/default.nix
+++ b/pkgs/development/python-modules/pytest-expect/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
-, pytest
-, u-msgpack-python
-, six
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+  pytest,
+  u-msgpack-python,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,10 @@ buildPythonPackage rec {
   };
 
   buildInputs = [ pytest ];
-  propagatedBuildInputs = [ u-msgpack-python six ];
+  propagatedBuildInputs = [
+    u-msgpack-python
+    six
+  ];
 
   # Tests in neither the archive nor the repo
   doCheck = false;
diff --git a/pkgs/development/python-modules/pytest-factoryboy/default.nix b/pkgs/development/python-modules/pytest-factoryboy/default.nix
index c1a89dbe012e9..5b10967a0b00b 100644
--- a/pkgs/development/python-modules/pytest-factoryboy/default.nix
+++ b/pkgs/development/python-modules/pytest-factoryboy/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, poetry-core
+  # build-system
+  poetry-core,
 
-# unpropagated
-, pytest
+  # unpropagated
+  pytest,
 
-# propagated
-, inflection
-, factory-boy
-, typing-extensions
+  # propagated
+  inflection,
+  factory-boy,
+  typing-extensions,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -29,13 +30,9 @@ buildPythonPackage rec {
     sha256 = "sha256-GYqYwtbmMWVqImVPPBbZNRJJGcbksUPsIbi6QuPRMco=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   propagatedBuildInputs = [
     factory-boy
@@ -43,17 +40,11 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  pythonImportsCheck = [
-    "pytest_factoryboy"
-  ];
+  pythonImportsCheck = [ "pytest_factoryboy" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "--ignore=docs"
-  ];
+  pytestFlagsArray = [ "--ignore=docs" ];
 
   meta = with lib; {
     description = "Integration of factory_boy into the pytest runner";
diff --git a/pkgs/development/python-modules/pytest-filter-subpackage/default.nix b/pkgs/development/python-modules/pytest-filter-subpackage/default.nix
index af173182f3132..5196a6e8f1086 100644
--- a/pkgs/development/python-modules/pytest-filter-subpackage/default.nix
+++ b/pkgs/development/python-modules/pytest-filter-subpackage/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
-, pytest-cov
-, pytest-doctestplus
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  pytest-cov,
+  pytest-doctestplus,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -21,27 +22,19 @@ buildPythonPackage rec {
     hash = "sha256-P0aPGzZRgSiGm5Xeq2YbpF7WKThUMp/vFNpMjKx4r1Y=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   propagatedBuildInputs = [
     pytest-doctestplus
     pytest-cov
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # missing some files
-  disabledTests = [
-    "with_rst"
-  ];
+  disabledTests = [ "with_rst" ];
 
   meta = with lib; {
     description = "Meta-package containing dependencies for testing";
diff --git a/pkgs/development/python-modules/pytest-fixture-config/default.nix b/pkgs/development/python-modules/pytest-fixture-config/default.nix
index 31ab985dbff2d..ebc3fcdc4ba4a 100644
--- a/pkgs/development/python-modules/pytest-fixture-config/default.nix
+++ b/pkgs/development/python-modules/pytest-fixture-config/default.nix
@@ -1,24 +1,37 @@
-{ lib, buildPythonPackage, fetchPypi
-, setuptools-git, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-git,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "pytest-fixture-config";
-  version = "1.7.0";
-  format = "setuptools";
+  version = "1.7.1-unstable-2022-10-03";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "13i1qpz22w3x4dmw8vih5jdnbqfqvl7jiqs0dg764s0zf8bp98a1";
+  src = fetchFromGitHub {
+    owner = "man-group";
+    repo = "pytest-plugins";
+    rev = "5f9b88a65a8c1e506885352bbd9b2a47900f5014";
+    hash = "sha256-huN3RzwtfVf4iMJ96VRP/ldOxTUlUMF1wJIdbcGXHn4=";
   };
 
-  nativeBuildInputs = [ setuptools-git ];
+  sourceRoot = "${src.name}/pytest-fixture-config";
+
+  nativeBuildInputs = [
+    setuptools
+    setuptools-git
+  ];
 
   buildInputs = [ pytest ];
 
   doCheck = false;
 
   meta = with lib; {
-    description = "Simple configuration objects for Py.test fixtures. Allows you to skip tests when their required config variables aren’t set.";
+    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;
     maintainers = with maintainers; [ ryansydnor ];
diff --git a/pkgs/development/python-modules/pytest-flake8/default.nix b/pkgs/development/python-modules/pytest-flake8/default.nix
index fab7bab0ba943..f836e9cc78a70 100644
--- a/pkgs/development/python-modules/pytest-flake8/default.nix
+++ b/pkgs/development/python-modules/pytest-flake8/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, fetchpatch
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, flake8
-, pytestCheckHook
+{
+  lib,
+  fetchpatch,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  flake8,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -29,13 +30,9 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
-    flake8
-  ];
+  propagatedBuildInputs = [ flake8 ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
     description = "py.test plugin for efficiently checking PEP8 compliance";
diff --git a/pkgs/development/python-modules/pytest-flakes/default.nix b/pkgs/development/python-modules/pytest-flakes/default.nix
index d6709da423adf..6c9a42cd632ab 100644
--- a/pkgs/development/python-modules/pytest-flakes/default.nix
+++ b/pkgs/development/python-modules/pytest-flakes/default.nix
@@ -1,6 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder
-, pytest
-, pyflakes
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytest,
+  pyflakes,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pytest-flask/default.nix b/pkgs/development/python-modules/pytest-flask/default.nix
index 428e0c5c3e01b..477be61ebefd2 100644
--- a/pkgs/development/python-modules/pytest-flask/default.nix
+++ b/pkgs/development/python-modules/pytest-flask/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, flask
-, pytest
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
-, werkzeug
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  flask,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  werkzeug,
 }:
 
 buildPythonPackage rec {
@@ -22,33 +23,23 @@ buildPythonPackage rec {
     hash = "sha256-WL4cl7Ibo8TUfgp2ketBAHdIUGw2v1EAT3jfEGkfqV4=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   propagatedBuildInputs = [
     flask
     werkzeug
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pytest_flask"
-  ];
+  pythonImportsCheck = [ "pytest_flask" ];
 
-  pytestFlagsArray = lib.optionals stdenv.isDarwin [
-    "--ignore=tests/test_live_server.py"
-  ];
+  pytestFlagsArray = lib.optionals stdenv.isDarwin [ "--ignore=tests/test_live_server.py" ];
 
   meta = with lib; {
-    description = "A set of pytest fixtures to test Flask applications";
+    description = "Set of pytest fixtures to test Flask applications";
     homepage = "https://pytest-flask.readthedocs.io/";
     changelog = "https://github.com/pytest-dev/pytest-flask/blob/${version}/docs/changelog.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pytest-forked/default.nix b/pkgs/development/python-modules/pytest-forked/default.nix
index c7ed502e7a414..64c43164a01b3 100644
--- a/pkgs/development/python-modules/pytest-forked/default.nix
+++ b/pkgs/development/python-modules/pytest-forked/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, pythonAtLeast
-, fetchFromGitHub
-, fetchpatch2
-, setuptools
-, setuptools-scm
-, wheel
-, py
-, pytest
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  pythonAtLeast,
+  fetchFromGitHub,
+  fetchpatch2,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  py,
+  pytest,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -43,24 +44,24 @@ buildPythonPackage rec {
     wheel
   ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    py
-  ];
+  propagatedBuildInputs = [ py ];
 
   nativeCheckInputs = [
     py
     pytestCheckHook
   ];
 
-  disabledTests = if (pythonAtLeast "3.12" && stdenv.isDarwin && stdenv.isx86_64) then [
-    # non reproducible test failure on hydra, works on community builder
-    # https://hydra.nixos.org/build/252537267
-    "test_xfail"
-  ] else null;
+  disabledTests =
+    if (pythonAtLeast "3.12" && stdenv.isDarwin && stdenv.isx86_64) then
+      [
+        # non reproducible test failure on hydra, works on community builder
+        # https://hydra.nixos.org/build/252537267
+        "test_xfail"
+      ]
+    else
+      null;
 
   setupHook = ./setup-hook.sh;
 
diff --git a/pkgs/development/python-modules/pytest-freezegun/default.nix b/pkgs/development/python-modules/pytest-freezegun/default.nix
index 0435eb095124b..259f698431aba 100644
--- a/pkgs/development/python-modules/pytest-freezegun/default.nix
+++ b/pkgs/development/python-modules/pytest-freezegun/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, freezegun
-, pytest
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  freezegun,
+  pytest,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,13 +31,9 @@ buildPythonPackage rec {
 
   buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    freezegun
-  ];
+  propagatedBuildInputs = [ freezegun ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Wrap tests with fixtures in freeze_time";
diff --git a/pkgs/development/python-modules/pytest-freezer/default.nix b/pkgs/development/python-modules/pytest-freezer/default.nix
index d7381c44a6807..521def7dfda08 100644
--- a/pkgs/development/python-modules/pytest-freezer/default.nix
+++ b/pkgs/development/python-modules/pytest-freezer/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, freezegun
-, pytest
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  freezegun,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,25 +23,15 @@ buildPythonPackage rec {
     hash = "sha256-Eak6LNoyu2wvZbPaBBUO0UkyB9vni8YbsADGK0as7Cg=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    freezegun
-  ];
+  propagatedBuildInputs = [ freezegun ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pytest_freezer"
-  ];
+  pythonImportsCheck = [ "pytest_freezer" ];
 
   meta = with lib; {
     description = "Pytest plugin providing a fixture interface for spulec/freezegun";
diff --git a/pkgs/development/python-modules/pytest-golden/default.nix b/pkgs/development/python-modules/pytest-golden/default.nix
index dede2e30b9fdd..1d2879049e453 100644
--- a/pkgs/development/python-modules/pytest-golden/default.nix
+++ b/pkgs/development/python-modules/pytest-golden/default.nix
@@ -1,16 +1,16 @@
-{ lib
-, atomicwrites
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  atomicwrites,
+  buildPythonPackage,
+  fetchFromGitHub,
   #, hatchling
-, ruamel-yaml
-, poetry-core
-, pytest
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, testfixtures
+  ruamel-yaml,
+  poetry-core,
+  pytest,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  testfixtures,
 }:
 
 buildPythonPackage rec {
@@ -33,19 +33,14 @@ buildPythonPackage rec {
       --replace poetry.masonry.api poetry.core.masonry.api
   '';
 
-  pythonRelaxDeps = [
-    "testfixtures"
-  ];
+  pythonRelaxDeps = [ "testfixtures" ];
 
   nativeBuildInputs = [
     # hatchling used for > 0.2.2
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   propagatedBuildInputs = [
     atomicwrites
@@ -58,9 +53,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pytest_golden"
-  ];
+  pythonImportsCheck = [ "pytest_golden" ];
 
   meta = with lib; {
     description = "Plugin for pytest that offloads expected outputs to data files";
diff --git a/pkgs/development/python-modules/pytest-grpc/default.nix b/pkgs/development/python-modules/pytest-grpc/default.nix
index 9918faad2c2e3..f3002d2c57da1 100644
--- a/pkgs/development/python-modules/pytest-grpc/default.nix
+++ b/pkgs/development/python-modules/pytest-grpc/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, grpcio
-, pytest
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  grpcio,
+  pytest,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,9 @@ buildPythonPackage rec {
     hash = "sha256-C9JoP/00GZRE1wfAqwGXCyLgr7umyx3bbVeMhev+Cb0=";
   };
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    grpcio
-  ];
+  propagatedBuildInputs = [ grpcio ];
 
   meta = with lib; {
     description = "pytest plugin for grpc";
diff --git a/pkgs/development/python-modules/pytest-harvest/default.nix b/pkgs/development/python-modules/pytest-harvest/default.nix
index 3cfcd66359975..2d93e53dea247 100644
--- a/pkgs/development/python-modules/pytest-harvest/default.nix
+++ b/pkgs/development/python-modules/pytest-harvest/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools-scm
-, pytest-runner
-, pytest
-, decopatch
-, makefun
-, six
-, pytestCheckHook
-, numpy
-, pandas
-, tabulate
-, pytest-cases
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools-scm,
+  pytest-runner,
+  pytest,
+  decopatch,
+  makefun,
+  six,
+  pytestCheckHook,
+  numpy,
+  pandas,
+  tabulate,
+  pytest-cases,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pytest-helpers-namespace/default.nix b/pkgs/development/python-modules/pytest-helpers-namespace/default.nix
index 6d1c3cf4f136d..ced0389f2887d 100644
--- a/pkgs/development/python-modules/pytest-helpers-namespace/default.nix
+++ b/pkgs/development/python-modules/pytest-helpers-namespace/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, isPy27
-, lib
-, setuptools
-, setuptools-declarative-requirements
-, setuptools-scm
+{
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  isPy27,
+  lib,
+  setuptools,
+  setuptools-declarative-requirements,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,11 @@ buildPythonPackage rec {
     sha256 = "792038247e0021beb966a7ea6e3a70ff5fcfba77eb72c6ec8fd6287af871c35b";
   };
 
-  nativeBuildInputs = [ setuptools setuptools-declarative-requirements setuptools-scm ];
+  nativeBuildInputs = [
+    setuptools
+    setuptools-declarative-requirements
+    setuptools-scm
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
@@ -29,6 +34,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/saltstack/pytest-helpers-namespace";
     description = "PyTest Helpers Namespace";
     license = licenses.asl20;
-    maintainers = [ maintainers.kiwi ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pytest-html/default.nix b/pkgs/development/python-modules/pytest-html/default.nix
index 6d4233e043b17..769eaffc3e034 100644
--- a/pkgs/development/python-modules/pytest-html/default.nix
+++ b/pkgs/development/python-modules/pytest-html/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildNpmPackage
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, hatch-vcs
-, hatchling
-, jinja2
-, pytest
-, pytest-metadata
+{
+  lib,
+  buildNpmPackage,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  hatch-vcs,
+  hatchling,
+  jinja2,
+  pytest,
+  pytest-metadata,
 }:
 let
   pname = "pytest-html";
@@ -45,8 +46,14 @@ buildPythonPackage {
     hatch-vcs
     hatchling
   ];
-  buildInputs = [ pytest web-assets ];
-  propagatedBuildInputs = [ jinja2 pytest-metadata ];
+  buildInputs = [
+    pytest
+    web-assets
+  ];
+  propagatedBuildInputs = [
+    jinja2
+    pytest-metadata
+  ];
 
   env.HATCH_BUILD_NO_HOOKS = true;
 
@@ -57,9 +64,7 @@ buildPythonPackage {
   # tests require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pytest_html"
-  ];
+  pythonImportsCheck = [ "pytest_html" ];
 
   meta = with lib; {
     description = "Plugin for generating HTML reports";
diff --git a/pkgs/development/python-modules/pytest-httpbin/default.nix b/pkgs/development/python-modules/pytest-httpbin/default.nix
index db94f2b6e1635..8d7f98c78ffe8 100644
--- a/pkgs/development/python-modules/pytest-httpbin/default.nix
+++ b/pkgs/development/python-modules/pytest-httpbin/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, httpbin
-, pytest
-, pytestCheckHook
-, pythonOlder
-, requests
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpbin,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pytest-httpbin";
   version = "2.0.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -23,14 +24,11 @@ buildPythonPackage rec {
     hash = "sha256-tq9nz2na94HkLACt7xB1MUanh9/JOoe2vyEm5sAq0/4=";
   };
 
-  buildInputs = [
-    pytest
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    httpbin
-    six
-  ];
+  buildInputs = [ pytest ];
+
+  propagatedBuildInputs = [ httpbin ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -40,17 +38,18 @@ buildPythonPackage rec {
   disabledTests = [
     # incompatible with flask 2.3
     "test_redirect_location_is_https_for_secure_server"
+    # Timeout on Hydra
+    "test_dont_crash_on_handshake_timeout"
   ];
 
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [
-    "pytest_httpbin"
-  ];
+  pythonImportsCheck = [ "pytest_httpbin" ];
 
   meta = with lib; {
     description = "Test your HTTP library against a local copy of httpbin.org";
     homepage = "https://github.com/kevin1024/pytest-httpbin";
+    changelog = "https://github.com/kevin1024/pytest-httpbin/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/pytest-httpserver/default.nix b/pkgs/development/python-modules/pytest-httpserver/default.nix
index 5759f180ff70d..152223f2ea5c3 100644
--- a/pkgs/development/python-modules/pytest-httpserver/default.nix
+++ b/pkgs/development/python-modules/pytest-httpserver/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, requests
-, toml
-, werkzeug
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  toml,
+  werkzeug,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     hash = "sha256-KCsZs4MGENByF/wB+aj3yvMp7lssHNVKx8jLhDQ1u4k=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    werkzeug
-  ];
+  propagatedBuildInputs = [ werkzeug ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -43,9 +40,7 @@ buildPythonPackage rec {
     "test_wait_raise_assertion_false" # racy
   ];
 
-  pythonImportsCheck = [
-    "pytest_httpserver"
-  ];
+  pythonImportsCheck = [ "pytest_httpserver" ];
 
   meta = with lib; {
     description = "HTTP server for pytest to test HTTP clients";
diff --git a/pkgs/development/python-modules/pytest-httpx/default.nix b/pkgs/development/python-modules/pytest-httpx/default.nix
index 85eabe87a76d2..59a5a76e2eb5d 100644
--- a/pkgs/development/python-modules/pytest-httpx/default.nix
+++ b/pkgs/development/python-modules/pytest-httpx/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, httpx
-, pytest
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpx,
+  pytest,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -26,31 +26,22 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
     setuptools-scm
   ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    httpx
-  ];
+  propagatedBuildInputs = [ httpx ];
 
-  pythonRelaxDeps = [
-    "httpx"
-  ];
+  pythonRelaxDeps = [ "httpx" ];
 
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pytest_httpx"
-  ];
+  pythonImportsCheck = [ "pytest_httpx" ];
 
   meta = with lib; {
     description = "Send responses to httpx";
diff --git a/pkgs/development/python-modules/pytest-image-diff/default.nix b/pkgs/development/python-modules/pytest-image-diff/default.nix
index cbe607d0648ea..4a8b94a0c73b3 100644
--- a/pkgs/development/python-modules/pytest-image-diff/default.nix
+++ b/pkgs/development/python-modules/pytest-image-diff/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, python3
-, buildPythonPackage
-, fetchFromGitHub
-, typing-extensions
-, diffimg
-, imgdiff
-, pytestCheckHook
-, recommonmark
+{
+  lib,
+  python3,
+  buildPythonPackage,
+  fetchFromGitHub,
+  typing-extensions,
+  diffimg,
+  imgdiff,
+  pytestCheckHook,
+  recommonmark,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pytest-instafail/default.nix b/pkgs/development/python-modules/pytest-instafail/default.nix
index 3b237105d4c0d..63357c1b48d75 100644
--- a/pkgs/development/python-modules/pytest-instafail/default.nix
+++ b/pkgs/development/python-modules/pytest-instafail/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,11 @@ buildPythonPackage rec {
     sha256 = "sha256-M6YG9+DI5kbcO/7g1eOkt7eO98NhaM+h89k698pwbJ4=";
   };
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pytest_instafail"
-  ];
+  pythonImportsCheck = [ "pytest_instafail" ];
 
   meta = with lib; {
     description = "pytest plugin that shows failures and errors instantly instead of waiting until the end of test session";
diff --git a/pkgs/development/python-modules/pytest-isort/default.nix b/pkgs/development/python-modules/pytest-isort/default.nix
index 6298d18ed0d2a..8462f1565ef97 100644
--- a/pkgs/development/python-modules/pytest-isort/default.nix
+++ b/pkgs/development/python-modules/pytest-isort/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, importlib-metadata
-, isort
-, poetry-core
-, pytest
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  importlib-metadata,
+  isort,
+  poetry-core,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,27 +24,15 @@ buildPythonPackage rec {
     hash = "sha256-1oCVIi0sXwac4AufScJJRsfvBwaBAwlMBRNqLcUXEh4=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    isort
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  propagatedBuildInputs = [ isort ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pytest_isort"
-  ];
+  pythonImportsCheck = [ "pytest_isort" ];
 
   meta = with lib; {
     description = "Pytest plugin to perform isort checks (import ordering)";
diff --git a/pkgs/development/python-modules/pytest-jupyter/default.nix b/pkgs/development/python-modules/pytest-jupyter/default.nix
index 2cae0f7ef1b94..c36bcf52e6e0f 100644
--- a/pkgs/development/python-modules/pytest-jupyter/default.nix
+++ b/pkgs/development/python-modules/pytest-jupyter/default.nix
@@ -1,80 +1,79 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build
-, hatchling
-, pytest
+  # build
+  hatchling,
+  pytest,
 
-# runtime
-, jupyter-core
+  # runtime
+  jupyter-core,
 
-# optionals
-, jupyter-client
-, ipykernel
-, jupyter-server
-, nbformat
+  # optionals
+  jupyter-client,
+  ipykernel,
+  jupyter-server,
+  nbformat,
 
-# tests
-, pytest-timeout
-, pytestCheckHook
+  # tests
+  pytest-timeout,
+  pytestCheckHook,
 }:
 
-let self = buildPythonPackage rec {
-  pname = "pytest-jupyter";
-  version = "0.10.1";
-  pyproject = true;
+let
+  self = buildPythonPackage rec {
+    pname = "pytest-jupyter";
+    version = "0.10.1";
+    pyproject = true;
 
-  src = fetchFromGitHub {
-    owner = "jupyter-server";
-    repo = "pytest-jupyter";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-RTpXBbVCRj0oyZ1TXXDv3M7sAI4kA6f3ouzTr0rXjwY=";
-  };
+    src = fetchFromGitHub {
+      owner = "jupyter-server";
+      repo = "pytest-jupyter";
+      rev = "refs/tags/v${version}";
+      hash = "sha256-RTpXBbVCRj0oyZ1TXXDv3M7sAI4kA6f3ouzTr0rXjwY=";
+    };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+    nativeBuildInputs = [ hatchling ];
 
-  buildInputs = [
-    pytest
-  ];
+    buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    jupyter-core
-  ];
+    propagatedBuildInputs = [ jupyter-core ];
 
-  passthru.optional-dependencies = {
-    client = [
-      jupyter-client
-      nbformat
-      ipykernel
-    ];
-    server = [
-      jupyter-server
-      jupyter-client
-      nbformat
-      ipykernel
-    ];
-  };
+    passthru.optional-dependencies = {
+      client = [
+        jupyter-client
+        nbformat
+        ipykernel
+      ];
+      server = [
+        jupyter-server
+        jupyter-client
+        nbformat
+        ipykernel
+      ];
+    };
 
-  doCheck = false; # infinite recursion with jupyter-server
+    doCheck = false; # infinite recursion with jupyter-server
 
-  nativeCheckInputs = [
-    pytest-timeout
-    pytestCheckHook
-  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+    nativeCheckInputs = [
+      pytest-timeout
+      pytestCheckHook
+    ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  passthru.tests = {
-    check = self.overridePythonAttrs (_: { doCheck = false; });
-  };
+    passthru.tests = {
+      check = self.overridePythonAttrs (_: {
+        doCheck = false;
+      });
+    };
 
-  meta = with lib; {
-    changelog = "https://github.com/jupyter-server/pytest-jupyter/releases/tag/v${version}";
-    description = "pytest plugin for testing Jupyter core libraries and extensions";
-    homepage = "https://github.com/jupyter-server/pytest-jupyter";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    meta = with lib; {
+      changelog = "https://github.com/jupyter-server/pytest-jupyter/releases/tag/v${version}";
+      description = "pytest plugin for testing Jupyter core libraries and extensions";
+      homepage = "https://github.com/jupyter-server/pytest-jupyter";
+      license = licenses.bsd3;
+      maintainers = with maintainers; [ ];
+    };
   };
-};
-in self
+in
+self
diff --git a/pkgs/development/python-modules/pytest-lazy-fixture/default.nix b/pkgs/development/python-modules/pytest-lazy-fixture/default.nix
index b4006b7007835..64afaa0d07862 100644
--- a/pkgs/development/python-modules/pytest-lazy-fixture/default.nix
+++ b/pkgs/development/python-modules/pytest-lazy-fixture/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,17 +22,11 @@ buildPythonPackage rec {
     ./pytest-8-compatible.patch
   ];
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  pythonImportsCheck = [
-    "pytest_lazyfixture"
-  ];
+  pythonImportsCheck = [ "pytest_lazyfixture" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Helps to use fixtures in pytest.mark.parametrize";
diff --git a/pkgs/development/python-modules/pytest-lazy-fixtures/default.nix b/pkgs/development/python-modules/pytest-lazy-fixtures/default.nix
new file mode 100644
index 0000000000000..3205d9d0e82d3
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-lazy-fixtures/default.nix
@@ -0,0 +1,32 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, poetry-core
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-lazy-fixtures";
+  version = "1.0.7";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "dev-petrov";
+    repo = "pytest-lazy-fixtures";
+    rev = version;
+    hash = "sha256-BOKUg5HPBQfteKOEsdZ30h/hWbVZPuHMhtGXF3KfMXg=";
+  };
+
+  build-system = [ poetry-core ];
+
+  dependencies = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "pytest_lazy_fixtures" ];
+
+  meta = with lib; {
+    description = "Allows you to use fixtures in @pytest.mark.parametrize";
+    homepage = "https://github.com/dev-petrov/pytest-lazy-fixtures";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-localserver/default.nix b/pkgs/development/python-modules/pytest-localserver/default.nix
index d550b4b274693..8549d394b9846 100644
--- a/pkgs/development/python-modules/pytest-localserver/default.nix
+++ b/pkgs/development/python-modules/pytest-localserver/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiosmtpd
-, buildPythonPackage
-, fetchPypi
-, werkzeug
-, pythonOlder
+{
+  lib,
+  aiosmtpd,
+  buildPythonPackage,
+  fetchPypi,
+  werkzeug,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
   # all tests access network: does not work in sandbox
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pytest_localserver"
-  ];
+  pythonImportsCheck = [ "pytest_localserver" ];
 
   meta = with lib; {
     description = "Plugin for the pytest testing framework to test server connections locally";
diff --git a/pkgs/development/python-modules/pytest-logdog/default.nix b/pkgs/development/python-modules/pytest-logdog/default.nix
index 176bde51525b3..b047d86acc12f 100644
--- a/pkgs/development/python-modules/pytest-logdog/default.nix
+++ b/pkgs/development/python-modules/pytest-logdog/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -22,25 +23,15 @@ buildPythonPackage rec {
     hash = "sha256-Tmoq+KAGzn0MMj29rukDfAc4LSIwC8DoMTuBAppV32I=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  propagatedBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pytest_logdog"
-  ];
+  pythonImportsCheck = [ "pytest_logdog" ];
 
   meta = with lib; {
     description = "Pytest plugin to test logging";
diff --git a/pkgs/development/python-modules/pytest-markdown-docs/default.nix b/pkgs/development/python-modules/pytest-markdown-docs/default.nix
new file mode 100644
index 0000000000000..d09187cafa59a
--- /dev/null
+++ b/pkgs/development/python-modules/pytest-markdown-docs/default.nix
@@ -0,0 +1,43 @@
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  markdown-it-py,
+  pytest,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "pytest-markdown-docs";
+  version = "0.5.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "modal-com";
+    repo = "pytest-markdown-docs";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-mclN28tfPcoFxswECjbrkeOI51XXSqUXfbvuSHrd7Sw=";
+  };
+
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    markdown-it-py
+    pytest
+  ];
+
+  pythonImportsCheck = [ "pytest_markdown_docs" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  meta = with lib; {
+    description = "Run pytest on markdown code fence blocks";
+    homepage = "https://github.com/modal-com/pytest-markdown-docs";
+    license = licenses.mit;
+    maintainers = with maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytest-md-report/default.nix b/pkgs/development/python-modules/pytest-md-report/default.nix
index 738579f3ec206..5caa415925895 100644
--- a/pkgs/development/python-modules/pytest-md-report/default.nix
+++ b/pkgs/development/python-modules/pytest-md-report/default.nix
@@ -1,26 +1,35 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytablewriter
-, pytest
-, tcolorpy
-, typepy
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  pytablewriter,
+  pytest,
+  tcolorpy,
+  typepy,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "pytest-md-report";
-  version = "0.5.1";
-  format = "setuptools";
+  version = "0.6.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-WzPspBVcrtcDqZI+PuAttfI7YBKC5DW5IM+Y7iUdQFI=";
+    pname = "pytest_md_report";
+    inherit version;
+    hash = "sha256-XpbGVevJtcPHt4v3xTgsH2gFbpaQRDAlJ5D4c33lzpk=";
   };
 
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
   propagatedBuildInputs = [
     pytablewriter
     tcolorpy
@@ -34,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pytest_md_report" ];
 
   meta = with lib; {
-    description = "A pytest plugin to make a test results report with Markdown table format";
+    description = "Pytest plugin to make a test results report with Markdown table format";
     homepage = "https://github.com/thombashi/pytest-md-report";
     changelog = "https://github.com/thombashi/pytest-md-report/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pytest-metadata/default.nix b/pkgs/development/python-modules/pytest-metadata/default.nix
index d4eb108053b13..fc72d1843d388 100644
--- a/pkgs/development/python-modules/pytest-metadata/default.nix
+++ b/pkgs/development/python-modules/pytest-metadata/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatch-vcs
-, hatchling
-, pytest
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatch-vcs,
+  hatchling,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     hatch-vcs
   ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Plugin for accessing test session metadata";
diff --git a/pkgs/development/python-modules/pytest-mock/default.nix b/pkgs/development/python-modules/pytest-mock/default.nix
index 966304cdc83d0..8d2c24dbd8c25 100644
--- a/pkgs/development/python-modules/pytest-mock/default.nix
+++ b/pkgs/development/python-modules/pytest-mock/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonAtLeast
-, pythonOlder
-, fetchPypi
-, pytest
-, pytest-asyncio
-, pytestCheckHook
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  pythonAtLeast,
+  pythonOlder,
+  fetchPypi,
+  pytest,
+  pytest-asyncio,
+  pytestCheckHook,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   nativeCheckInputs = [
     pytest-asyncio
diff --git a/pkgs/development/python-modules/pytest-mockito/default.nix b/pkgs/development/python-modules/pytest-mockito/default.nix
index 279b04b83e0e6..06b9a93553673 100644
--- a/pkgs/development/python-modules/pytest-mockito/default.nix
+++ b/pkgs/development/python-modules/pytest-mockito/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
-, mockito
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
+  mockito,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,17 +20,11 @@ buildPythonPackage rec {
     hash = "sha256-vY/i1YV1lo4mZvnxsXBOyaq31YTiF0BY6PTVwdVX10I=";
   };
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    mockito
-  ];
+  propagatedBuildInputs = [ mockito ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
     description = "Base fixtures for mockito";
diff --git a/pkgs/development/python-modules/pytest-mockservers/default.nix b/pkgs/development/python-modules/pytest-mockservers/default.nix
index d524457ebbb44..3ab4e4e63cbf3 100644
--- a/pkgs/development/python-modules/pytest-mockservers/default.nix
+++ b/pkgs/development/python-modules/pytest-mockservers/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, aiohttp
-, pytest
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  fetchpatch,
+  poetry-core,
+  aiohttp,
+  pytest,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -32,13 +33,9 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -47,16 +44,12 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pytest_mockservers"
-  ];
+  pythonImportsCheck = [ "pytest_mockservers" ];
 
   meta = with lib; {
-    description = "A set of fixtures to test your requests to HTTP/UDP servers";
+    description = "Set of fixtures to test your requests to HTTP/UDP servers";
     homepage = "https://github.com/Gr1N/pytest-mockservers";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/pytest-mpl/default.nix b/pkgs/development/python-modules/pytest-mpl/default.nix
index f0ea49d1b7672..9290fa528e986 100644
--- a/pkgs/development/python-modules/pytest-mpl/default.nix
+++ b/pkgs/development/python-modules/pytest-mpl/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, pytest
-, jinja2
-, matplotlib
-, nose
-, pillow
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  pytest,
+  jinja2,
+  matplotlib,
+  pynose,
+  pillow,
+  pytest7CheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,25 +21,18 @@ buildPythonPackage rec {
     hash = "sha256-LVcWgRJOj/X04rnA0EfTfQSZ1rbY8vSaG1DN2ZMQRGk=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   propagatedBuildInputs = [
     jinja2
     matplotlib
-    nose
+    pynose
     pillow
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
-
+  nativeCheckInputs = [ pytest7CheckHook ];
 
   disabledTests = [
     # Broken since b6e98f18950c2b5dbdc725c1181df2ad1be19fee
diff --git a/pkgs/development/python-modules/pytest-mypy-plugins/default.nix b/pkgs/development/python-modules/pytest-mypy-plugins/default.nix
index 097dabe8a39dc..ecc53049ee1ce 100644
--- a/pkgs/development/python-modules/pytest-mypy-plugins/default.nix
+++ b/pkgs/development/python-modules/pytest-mypy-plugins/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, decorator
-, fetchFromGitHub
-, jinja2
-, jsonschema
-, mypy
-, packaging
-, pytest
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, regex
-, setuptools
-, tomlkit
+{
+  lib,
+  buildPythonPackage,
+  decorator,
+  fetchFromGitHub,
+  jinja2,
+  jsonschema,
+  mypy,
+  packaging,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  regex,
+  setuptools,
+  tomlkit,
 }:
 
 buildPythonPackage rec {
@@ -29,13 +30,9 @@ buildPythonPackage rec {
     hash = "sha256-yme1g9Kj5guao0Lf8mbkNJRw6ipS2Wd4Io1cSlEBAGo=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   dependencies = [
     decorator
@@ -48,9 +45,7 @@ buildPythonPackage rec {
     tomlkit
   ];
 
-  pythonImportsCheck = [
-    "pytest_mypy_plugins"
-  ];
+  pythonImportsCheck = [ "pytest_mypy_plugins" ];
 
   nativeCheckInputs = [
     mypy
@@ -61,9 +56,7 @@ buildPythonPackage rec {
     export PATH="$PATH:$out/bin";
   '';
 
-  disabledTestPaths = [
-    "pytest_mypy_plugins/tests/test_explicit_configs.py"
-  ];
+  disabledTestPaths = [ "pytest_mypy_plugins/tests/test_explicit_configs.py" ];
 
   meta = with lib; {
     description = "Pytest plugin for testing mypy types, stubs, and plugins";
diff --git a/pkgs/development/python-modules/pytest-mypy/default.nix b/pkgs/development/python-modules/pytest-mypy/default.nix
index bfe9fb613e24b..554034ad08b00 100644
--- a/pkgs/development/python-modules/pytest-mypy/default.nix
+++ b/pkgs/development/python-modules/pytest-mypy/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, attrs
-, buildPythonPackage
-, fetchPypi
-, filelock
-, pytest
-, mypy
-, setuptools
-, setuptools-scm
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  fetchPypi,
+  filelock,
+  pytest,
+  mypy,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   propagatedBuildInputs = [
     attrs
@@ -42,6 +41,6 @@ buildPythonPackage rec {
     description = "Mypy static type checker plugin for Pytest";
     homepage = "https://github.com/dbader/pytest-mypy";
     license = licenses.mit;
-    maintainers = [ ];
+    maintainers = with lib.maintainers; [ sigmanificient ];
   };
 }
diff --git a/pkgs/development/python-modules/pytest-notebook/default.nix b/pkgs/development/python-modules/pytest-notebook/default.nix
index 104c334539717..21f40beb6a893 100644
--- a/pkgs/development/python-modules/pytest-notebook/default.nix
+++ b/pkgs/development/python-modules/pytest-notebook/default.nix
@@ -1,20 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pythonRelaxDepsHook
-, attrs
-, jsonschema
-, nbclient
-, nbdime
-, nbformat
-, pytest
-, black
-, coverage
-, ipykernel
-, pytest-cov
-, pytest-regressions
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  attrs,
+  jsonschema,
+  nbclient,
+  nbdime,
+  nbformat,
+  pytest,
+  black,
+  coverage,
+  ipykernel,
+  pytest-cov,
+  pytest-regressions,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -31,7 +31,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     flit-core
-    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = [
@@ -47,9 +46,7 @@ buildPythonPackage rec {
     nbformat
   ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   pythonImportsCheck = [ "pytest_notebook" ];
 
@@ -76,6 +73,8 @@ buildPythonPackage rec {
     "test_run_pass_with_meta"
   ];
 
+  __darwinAllowLocalNetworking = true;
+
   meta = {
     changelog = "https://github.com/chrisjsewell/pytest-notebook/blob/${src.rev}/docs/source/changelog.md";
     description = "Pytest plugin for regression testing and regenerating Jupyter Notebooks";
diff --git a/pkgs/development/python-modules/pytest-openfiles/default.nix b/pkgs/development/python-modules/pytest-openfiles/default.nix
deleted file mode 100644
index da894eff91e35..0000000000000
--- a/pkgs/development/python-modules/pytest-openfiles/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, isPy27
-, packaging
-, pytest
-, pytestCheckHook
-, psutil
-, setuptools-scm
-}:
-
-buildPythonPackage rec {
-  pname = "pytest-openfiles";
-  version = "0.5.0";
-  format = "setuptools";
-  disabled = isPy27; # abandoned
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "179c2911d8aee3441fee051aba08e0d9b4dab61b829ae4811906d5c49a3b0a58";
-  };
-
-  patches = [
-    (fetchpatch {
-      name = "replace-distutils-with-packaging.patch";
-      url = "https://github.com/astropy/pytest-openfiles/commit/e17e8123936689b0b0ecfb713976588d6793d8bb.patch";
-      includes = [ "pytest_openfiles/plugin.py" ];
-      hash = "sha256-+6xqOwnBO+jxenXxPdDhLqqm3w+ZRjWeVqqgz8j22bU=";
-    })
-  ];
-
-  nativeBuildInputs = [ setuptools-scm ];
-
-  buildInputs = [ pytest ];
-
-  propagatedBuildInputs = [
-    packaging
-    psutil
-  ];
-
-  nativeCheckInputs = [ pytestCheckHook ];
-
-  meta = with lib; {
-    description = "Pytest plugin for detecting inadvertent open file handles";
-    homepage = "https://astropy.org";
-    license = licenses.bsd3;
-    maintainers = [ ];
-  };
-}
diff --git a/pkgs/development/python-modules/pytest-order/default.nix b/pkgs/development/python-modules/pytest-order/default.nix
index ebb7bbe09d438..34ea352474164 100644
--- a/pkgs/development/python-modules/pytest-order/default.nix
+++ b/pkgs/development/python-modules/pytest-order/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-, pytest
-, pytest-xdist
-, pytest-dependency
-, pytest-mock
-, pytestCheckHook
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  pytest,
+  pytest-xdist,
+  pytest-dependency,
+  pytest-mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -33,6 +34,9 @@ buildPythonPackage rec {
     description = "Pytest plugin that allows you to customize the order in which your tests are run";
     homepage = "https://github.com/pytest-dev/pytest-order";
     license = licenses.mit;
-    maintainers = with maintainers; [ jacg Luflosi ];
+    maintainers = with maintainers; [
+      jacg
+      Luflosi
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pytest-parallel/default.nix b/pkgs/development/python-modules/pytest-parallel/default.nix
index 0bc2070ce3540..a2cbf09d3b557 100644
--- a/pkgs/development/python-modules/pytest-parallel/default.nix
+++ b/pkgs/development/python-modules/pytest-parallel/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-# build inputs
-, tblib
-, pytest
-, py
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  # build inputs
+  tblib,
+  pytest,
+  py,
 }:
 let
   pname = "pytest-parallel";
@@ -32,7 +33,7 @@ buildPythonPackage {
   ];
 
   meta = with lib; {
-    description = "A pytest plugin for parallel and concurrent testing";
+    description = "Pytest plugin for parallel and concurrent testing";
     homepage = "https://github.com/kevlened/pytest-parallelt";
     changelog = "https://github.com/kevlened/pytest-parallel/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pytest-param-files/default.nix b/pkgs/development/python-modules/pytest-param-files/default.nix
index 55923b5ed266b..aebd6ccb85e5e 100644
--- a/pkgs/development/python-modules/pytest-param-files/default.nix
+++ b/pkgs/development/python-modules/pytest-param-files/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, ruamel-yaml
-, pytest
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  ruamel-yaml,
+  pytest,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,25 +20,15 @@ buildPythonPackage rec {
     hash = "sha256-hgEEfKf9Kmah5WDNHoFWQJKLOs9Z5BDHiebXCdDc1zE=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    ruamel-yaml
-  ];
+  propagatedBuildInputs = [ ruamel-yaml ];
 
-  pythonImportsCheck = [
-    "pytest_param_files"
-  ];
+  pythonImportsCheck = [ "pytest_param_files" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Package to generate parametrized pytests from external files";
diff --git a/pkgs/development/python-modules/pytest-playwright/default.nix b/pkgs/development/python-modules/pytest-playwright/default.nix
index df1045a199552..3cb7de0da430a 100644
--- a/pkgs/development/python-modules/pytest-playwright/default.nix
+++ b/pkgs/development/python-modules/pytest-playwright/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, playwright
-, playwright-driver
-, pytest
-, pytest-base-url
-, pytestCheckHook
-, python-slugify
-, pythonOlder
-, setuptools-scm
-, django
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  playwright,
+  playwright-driver,
+  pytest,
+  pytest-base-url,
+  pytestCheckHook,
+  python-slugify,
+  pythonOlder,
+  setuptools-scm,
+  django,
 }:
 
 buildPythonPackage rec {
   pname = "pytest-playwright";
-  version = "0.4.4";
+  version = "0.5.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -23,16 +24,12 @@ buildPythonPackage rec {
     owner = "microsoft";
     repo = "playwright-pytest";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jCK2i27wRGsv65zfzW+Ef72HNQd4Qu/Mw3HX66ZMQ9Y=";
+    hash = "sha256-HS0Qpr5R4dAoXe0bpPGU7JABB7CmwugReRD75XeJ8l4=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   propagatedBuildInputs = [
     playwright
@@ -48,9 +45,7 @@ buildPythonPackage rec {
     export PLAYWRIGHT_BROWSERS_PATH=${playwright-driver.browsers}
   '';
 
-  pythonImportsCheck = [
-    "pytest_playwright"
-  ];
+  pythonImportsCheck = [ "pytest_playwright" ];
 
   meta = with lib; {
     description = "Pytest plugin to write end-to-end browser tests with Playwright";
diff --git a/pkgs/development/python-modules/pytest-plt/default.nix b/pkgs/development/python-modules/pytest-plt/default.nix
index 55051359d7e4b..42e6e19abdf56 100644
--- a/pkgs/development/python-modules/pytest-plt/default.nix
+++ b/pkgs/development/python-modules/pytest-plt/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, matplotlib
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  matplotlib,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pytest-postgresql/default.nix b/pkgs/development/python-modules/pytest-postgresql/default.nix
index 6eed5ef6ad2c9..27f2d5bbd094a 100644
--- a/pkgs/development/python-modules/pytest-postgresql/default.nix
+++ b/pkgs/development/python-modules/pytest-postgresql/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, setuptools
-, mirakuru
-, port-for
-, psycopg
-, pytest
-, postgresql
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
+  mirakuru,
+  port-for,
+  psycopg,
+  pytest,
+  postgresql,
 }:
 
 buildPythonPackage rec {
   pname = "pytest-postgresql";
-  version = "5.0.0";
-  format = "pyproject";
+  version = "6.0.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -22,13 +23,13 @@ buildPythonPackage rec {
     owner = "ClearcodeHQ";
     repo = "pytest-postgresql";
     rev = "refs/tags/v${version}";
-    hash = "sha256-uWKp9yxTdlswoDPMlhx+2mF1cdhFzhGYKGHdXPGlz+w=";
+    hash = "sha256-6D9QNcfq518ORQDYCH5G+LLJ7tVWPFwB6ylZR3LOZ5g=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml  \
-      --replace "--cov" ""  \
-      --replace "--max-worker-restart=0" ""
+      --replace-fail "--cov" ""  \
+      --replace-fail "--max-worker-restart=0" ""
     sed -i 's#/usr/lib/postgresql/.*/bin/pg_ctl#${postgresql}/bin/pg_ctl#' pytest_postgresql/plugin.py
   '';
 
@@ -38,7 +39,7 @@ buildPythonPackage rec {
     mirakuru
     port-for
     psycopg
-    setuptools  # requires 'pkg_resources' at runtime
+    setuptools # requires 'pkg_resources' at runtime
   ];
 
   nativeCheckInputs = [
@@ -49,11 +50,12 @@ buildPythonPackage rec {
     "-p"
     "no:postgresql"
   ];
-  disabledTestPaths = [ "tests/docker/test_noproc_docker.py" ];  # requires Docker
+  disabledTestPaths = [ "tests/docker/test_noproc_docker.py" ]; # requires Docker
   disabledTests = [
     # permissions issue running pg as Nixbld user
     "test_executor_init_with_password"
     # "ValueError: Pytest terminal summary report not found"
+    "test_postgres_loader_in_cli"
     "test_postgres_options_config_in_cli"
     "test_postgres_options_config_in_ini"
   ];
@@ -62,7 +64,6 @@ buildPythonPackage rec {
     "pytest_postgresql.executor"
   ];
 
-
   meta = with lib; {
     homepage = "https://pypi.python.org/pypi/pytest-postgresql";
     description = "Pytest plugin that enables you to test code on a temporary PostgreSQL database";
diff --git a/pkgs/development/python-modules/pytest-pudb/default.nix b/pkgs/development/python-modules/pytest-pudb/default.nix
index cc3e0db8570f9..376a7142af046 100644
--- a/pkgs/development/python-modules/pytest-pudb/default.nix
+++ b/pkgs/development/python-modules/pytest-pudb/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pytest
-, pudb
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pytest,
+  pudb,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pytest-pylint/default.nix b/pkgs/development/python-modules/pytest-pylint/default.nix
index c989948afd8c1..214863978df0c 100644
--- a/pkgs/development/python-modules/pytest-pylint/default.nix
+++ b/pkgs/development/python-modules/pytest-pylint/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pylint
-, pytest
-, pytestCheckHook
-, pythonOlder
-, toml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pylint,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
+  toml,
 }:
 
 buildPythonPackage rec {
@@ -25,22 +26,16 @@ buildPythonPackage rec {
       --replace "pytest-runner" ""
   '';
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   propagatedBuildInputs = [
     pylint
     toml
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pytest_pylint"
-  ];
+  pythonImportsCheck = [ "pytest_pylint" ];
 
   meta = with lib; {
     description = "Pytest plugin to check source code with pylint";
diff --git a/pkgs/development/python-modules/pytest-pytestrail/default.nix b/pkgs/development/python-modules/pytest-pytestrail/default.nix
index 618bccfa3bc5e..63c0d3735f387 100644
--- a/pkgs/development/python-modules/pytest-pytestrail/default.nix
+++ b/pkgs/development/python-modules/pytest-pytestrail/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools-scm
-, pytest
-, testrail-api
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools-scm,
+  pytest,
+  testrail-api,
 }:
 
 buildPythonPackage rec {
@@ -18,24 +19,16 @@ buildPythonPackage rec {
     sha256 = "sha256-y34aRxQ8mu6b6GBRMFVzn1shMVc7TumdjRS3daMEZJM=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    testrail-api
-  ];
+  propagatedBuildInputs = [ testrail-api ];
 
   # all tests require network accesss
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pytest_pytestrail"
-  ];
+  pythonImportsCheck = [ "pytest_pytestrail" ];
 
   meta = with lib; {
     description = "Pytest plugin for interaction with TestRail";
diff --git a/pkgs/development/python-modules/pytest-qt/default.nix b/pkgs/development/python-modules/pytest-qt/default.nix
index 1996265365e15..6e468060c6b79 100644
--- a/pkgs/development/python-modules/pytest-qt/default.nix
+++ b/pkgs/development/python-modules/pytest-qt/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, pytest
-, pyqt5
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  pytest,
+  pyqt5,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,21 +20,13 @@ buildPythonPackage rec {
     hash = "sha256-dolhQqlApChTOQCNaSijbUvnSv7H5jRXfoQsnMXFaEQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  nativeCheckInputs = [
-    pyqt5
-  ];
+  nativeCheckInputs = [ pyqt5 ];
 
-  pythonImportsCheck = [
-    "pytestqt"
-  ];
+  pythonImportsCheck = [ "pytestqt" ];
 
   # Tests require X server
   doCheck = false;
diff --git a/pkgs/development/python-modules/pytest-quickcheck/default.nix b/pkgs/development/python-modules/pytest-quickcheck/default.nix
index a5e11c66a71af..79ca2dc113634 100644
--- a/pkgs/development/python-modules/pytest-quickcheck/default.nix
+++ b/pkgs/development/python-modules/pytest-quickcheck/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
-, pytestCheckHook
-, pytest-flakes
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  pytestCheckHook,
+  pytest-flakes,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-UFF8ldnaImXU6al4kGjf720mbwXE6Nut9VlvNVrMVoY=";
   };
 
-  propagatedBuildInputs = [
-    pytest
-  ];
+  propagatedBuildInputs = [ pytest ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/pytest-raises/default.nix b/pkgs/development/python-modules/pytest-raises/default.nix
index 1b7beb74c5942..16d4c681f21ce 100644
--- a/pkgs/development/python-modules/pytest-raises/default.nix
+++ b/pkgs/development/python-modules/pytest-raises/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-wmtWPWwe1sFbWSYxs5ZXDUZM1qvjRGMudWdjQeskaz0=";
   };
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pytest_raises"
-  ];
+  pythonImportsCheck = [ "pytest_raises" ];
 
   disabledTests = [
     # Failed: nomatch: '*::test_pytest_mark_raises_unexpected_exception FAILED*'
@@ -41,7 +36,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "An implementation of pytest.raises as a pytest.mark fixture";
+    description = "Implementation of pytest.raises as a pytest.mark fixture";
     homepage = "https://github.com/Lemmons/pytest-raises";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/pytest-raisesregexp/default.nix b/pkgs/development/python-modules/pytest-raisesregexp/default.nix
index edca8cbaa97dd..d9f2a8f4c07e8 100644
--- a/pkgs/development/python-modules/pytest-raisesregexp/default.nix
+++ b/pkgs/development/python-modules/pytest-raisesregexp/default.nix
@@ -1,5 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi
-, py, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  py,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "pytest-raisesregexp";
@@ -11,7 +16,10 @@ buildPythonPackage rec {
     sha256 = "b54372494fc1f11388b1b9348aeb36b69609699eb8f46e0e010afc733d78236a";
   };
 
-  buildInputs = [ py pytest ];
+  buildInputs = [
+    py
+    pytest
+  ];
 
   # https://github.com/kissgyorgy/pytest-raisesregexp/pull/3
   prePatch = ''
diff --git a/pkgs/development/python-modules/pytest-raisin/default.nix b/pkgs/development/python-modules/pytest-raisin/default.nix
index 2da96d21c9ea3..762a3a6fa0eca 100644
--- a/pkgs/development/python-modules/pytest-raisin/default.nix
+++ b/pkgs/development/python-modules/pytest-raisin/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-BI0SWy671DYDTPH4iO811ku6SzpH4ho7eQFUA8PmxW8=";
   };
 
-  nativeBuildInputs = [
-    flit
-  ];
+  nativeBuildInputs = [ flit ];
 
-  propagatedBuildInputs = [
-    pytest
-  ];
+  propagatedBuildInputs = [ pytest ];
 
   # tests cause circular pytest-raisin already registered with pytest error
   doCheck = false;
diff --git a/pkgs/development/python-modules/pytest-random-order/default.nix b/pkgs/development/python-modules/pytest-random-order/default.nix
index 2b2b6624c0998..9886bcf7f869b 100644
--- a/pkgs/development/python-modules/pytest-random-order/default.nix
+++ b/pkgs/development/python-modules/pytest-random-order/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, py
-, pytest
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  py,
+  pytest,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +22,9 @@ buildPythonPackage rec {
     hash = "sha256-RHLX008fHF86NZxP/FwT7QZSMvMeyhnIhEwatAbnkIA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   nativeCheckInputs = [
     py
@@ -35,9 +32,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "random_order"
-  ];
+  pythonImportsCheck = [ "random_order" ];
 
   meta = with lib; {
     homepage = "https://github.com/jbasko/pytest-random-order";
diff --git a/pkgs/development/python-modules/pytest-randomly/default.nix b/pkgs/development/python-modules/pytest-randomly/default.nix
index 5549f89334a6c..b2ecfb4edb50a 100644
--- a/pkgs/development/python-modules/pytest-randomly/default.nix
+++ b/pkgs/development/python-modules/pytest-randomly/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, factory-boy
-, faker
-, fetchFromGitHub
-, importlib-metadata
-, numpy
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  factory-boy,
+  faker,
+  fetchFromGitHub,
+  importlib-metadata,
+  numpy,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,13 +26,9 @@ buildPythonPackage rec {
     hash = "sha256-bxbW22Nf/0hfJYSiz3xdrNCzrb7vZwuVvSIrWl0Bkv4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
   nativeCheckInputs = [
     factory-boy
@@ -47,9 +44,7 @@ buildPythonPackage rec {
     "no:randomly"
   ];
 
-  pythonImportsCheck = [
-    "pytest_randomly"
-  ];
+  pythonImportsCheck = [ "pytest_randomly" ];
 
   meta = with lib; {
     changelog = "https://github.com/pytest-dev/pytest-randomly/blob/${version}/CHANGELOG.rst";
diff --git a/pkgs/development/python-modules/pytest-recording/default.nix b/pkgs/development/python-modules/pytest-recording/default.nix
index e35b1a352b858..1f8e84466847b 100644
--- a/pkgs/development/python-modules/pytest-recording/default.nix
+++ b/pkgs/development/python-modules/pytest-recording/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-# install dependencies
-, pytest
-, vcrpy
-# test dependencies
-, hatchling
-, pytestCheckHook
-, pytest-httpbin
-, pytest-mock
-, requests
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  # install dependencies
+  pytest,
+  vcrpy,
+  # test dependencies
+  hatchling,
+  pytestCheckHook,
+  pytest-httpbin,
+  pytest-mock,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     pytest
   ];
 
-  propagatedBuildInputs = [
-    vcrpy
-  ];
+  propagatedBuildInputs = [ vcrpy ];
 
   __darwinAllowLocalNetworking = true;
 
@@ -43,23 +42,19 @@ buildPythonPackage rec {
     requests
   ];
 
-  disabledTests = [
-    "test_block_network_with_allowed_hosts"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # Missing socket.AF_NETLINK
-    "test_other_socket"
-  ];
+  disabledTests =
+    [ "test_block_network_with_allowed_hosts" ]
+    ++ lib.optionals stdenv.isDarwin [
+      # Missing socket.AF_NETLINK
+      "test_other_socket"
+    ];
 
-  pytestFlagsArray = [
-    "tests"
-  ];
+  pytestFlagsArray = [ "tests" ];
 
-  pythonImportsCheck = [
-    "pytest_recording"
-  ];
+  pythonImportsCheck = [ "pytest_recording" ];
 
   meta = with lib; {
-    description = "A pytest plugin that allows you recording of network interactions via VCR.py";
+    description = "Pytest plugin that allows you recording of network interactions via VCR.py";
     homepage = "https://github.com/kiwicom/pytest-recording";
     license = licenses.mit;
     maintainers = with maintainers; [ jbgosselin ];
diff --git a/pkgs/development/python-modules/pytest-regressions/default.nix b/pkgs/development/python-modules/pytest-regressions/default.nix
index e9950b01fdf18..9c109021be28c 100644
--- a/pkgs/development/python-modules/pytest-regressions/default.nix
+++ b/pkgs/development/python-modules/pytest-regressions/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonAtLeast
-, pythonOlder
-, matplotlib
-, numpy
-, pandas
-, pillow
-, pytest
-, pytest-datadir
-, pytestCheckHook
-, pyyaml
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
+  pythonOlder,
+  matplotlib,
+  numpy,
+  pandas,
+  pillow,
+  pytest,
+  pytest-datadir,
+  pytestCheckHook,
+  pyyaml,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -26,20 +27,15 @@ buildPythonPackage rec {
     hash = "sha256-gYx4hMHP87q/ie67AsvCezB4VrGYVCfCTVLLgSoQb9k=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   propagatedBuildInputs = [
     pytest-datadir
     pyyaml
   ];
 
-
   nativeCheckInputs = [
     matplotlib
     pandas
@@ -47,12 +43,8 @@ buildPythonPackage rec {
   ];
 
   pytestFlagsArray = [
-    "-W" "ignore::DeprecationWarning"
-  ];
-
-  disabledTestPathss = lib.optionals (pythonAtLeast "3.12") [
-    # AttributeError: partially initialized module 'pandas' has no attribute '_pandas_datetime_CAPI' (most likely due to a circular import)
-    "tests/test_num_regression.py"
+    "-W"
+    "ignore::DeprecationWarning"
   ];
 
   pythonImportsCheck = [
@@ -61,9 +53,18 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    dataframe = [ pandas numpy ];
-    image = [ numpy pillow ];
-    num = [ numpy pandas ];
+    dataframe = [
+      pandas
+      numpy
+    ];
+    image = [
+      numpy
+      pillow
+    ];
+    num = [
+      numpy
+      pandas
+    ];
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pytest-relaxed/default.nix b/pkgs/development/python-modules/pytest-relaxed/default.nix
index 8a541c74e5f69..a86aceae8ddc7 100644
--- a/pkgs/development/python-modules/pytest-relaxed/default.nix
+++ b/pkgs/development/python-modules/pytest-relaxed/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, decorator
-, fetchPypi
-, invocations
-, invoke
-, pytest
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  decorator,
+  fetchPypi,
+  invocations,
+  invoke,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +22,9 @@ buildPythonPackage rec {
     hash = "sha256-lW6gKOww27+2gN2Oe0p/uPgKI5WV6Ius4Bi/LA1xgkg=";
   };
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    decorator
-  ];
+  propagatedBuildInputs = [ decorator ];
 
   nativeCheckInputs = [
     invocations
@@ -35,13 +32,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "tests"
-  ];
+  pytestFlagsArray = [ "tests" ];
 
-  pythonImportsCheck = [
-    "pytest_relaxed"
-  ];
+  pythonImportsCheck = [ "pytest_relaxed" ];
 
   meta = with lib; {
     homepage = "https://pytest-relaxed.readthedocs.io/";
diff --git a/pkgs/development/python-modules/pytest-remotedata/default.nix b/pkgs/development/python-modules/pytest-remotedata/default.nix
index 581145212f906..43778bfab64e1 100644
--- a/pkgs/development/python-modules/pytest-remotedata/default.nix
+++ b/pkgs/development/python-modules/pytest-remotedata/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -20,32 +21,22 @@ buildPythonPackage rec {
     hash = "sha256-BcCL9jjN0e1m6wFzihZHw8cUc3w+w6vgCdLB95O0u1k=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   __darwinAllowLocalNetworking = true;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # These tests require a network connection
     "tests/test_strict_check.py"
   ];
 
-  pythonImportsCheck = [
-    "pytest_remotedata"
-  ];
+  pythonImportsCheck = [ "pytest_remotedata" ];
 
   meta = with lib; {
     description = "Pytest plugin for controlling remote data access";
diff --git a/pkgs/development/python-modules/pytest-repeat/default.nix b/pkgs/development/python-modules/pytest-repeat/default.nix
index 1c020428c4b8e..34c4ab2cce2c1 100644
--- a/pkgs/development/python-modules/pytest-repeat/default.nix
+++ b/pkgs/development/python-modules/pytest-repeat/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatchling
-, hatch-vcs
-, pytest
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatchling,
+  hatch-vcs,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,17 +27,11 @@ buildPythonPackage rec {
     hatch-vcs
   ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pytest_repeat"
-  ];
+  pythonImportsCheck = [ "pytest_repeat" ];
 
   meta = with lib; {
     description = "Pytest plugin for repeating tests";
diff --git a/pkgs/development/python-modules/pytest-rerunfailures/default.nix b/pkgs/development/python-modules/pytest-rerunfailures/default.nix
index 59d459adb6c92..751532baa6aa5 100644
--- a/pkgs/development/python-modules/pytest-rerunfailures/default.nix
+++ b/pkgs/development/python-modules/pytest-rerunfailures/default.nix
@@ -1,32 +1,43 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools
-, packaging
-, pytest
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  packaging,
+  pytest,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "pytest-rerunfailures";
-  version = "13.0";
+  version = "14.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-4TLb5CC8R29US5bnA27dCmlwdXQgm2Z3JjyVDRmwkZk=";
+    hash = "sha256-SkALy808ekrRUauK+sEj2Q7KOr4n+Ycl3E2XAoh9LpI=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
   buildInputs = [ pytest ];
-  propagatedBuildInputs = [ packaging ];
+
+  dependencies = [ packaging ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
+  disabledTests = [
+    # https://github.com/pytest-dev/pytest-rerunfailures/issues/267
+    "test_run_session_teardown_once_after_reruns"
+    "test_exception_matches_rerun_except_query"
+    "test_exception_not_match_rerun_except_query"
+    "test_exception_matches_only_rerun_query"
+    "test_exception_match_only_rerun_in_dual_query"
+  ];
+
   meta = with lib; {
     description = "Pytest plugin to re-run tests to eliminate flaky failures";
     homepage = "https://github.com/pytest-dev/pytest-rerunfailures";
diff --git a/pkgs/development/python-modules/pytest-resource-path/default.nix b/pkgs/development/python-modules/pytest-resource-path/default.nix
index 28e62eaa7e459..66389e622e64d 100644
--- a/pkgs/development/python-modules/pytest-resource-path/default.nix
+++ b/pkgs/development/python-modules/pytest-resource-path/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, colorama
-, pytest
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  colorama,
+  pytest,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,21 +26,13 @@ buildPythonPackage rec {
       --replace "pytest-runner" ""
   '';
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    colorama
-  ];
+  propagatedBuildInputs = [ colorama ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pytest_resource_path"
-  ];
+  pythonImportsCheck = [ "pytest_resource_path" ];
 
   meta = with lib; {
     description = "Pytest plugin to provide path for uniform access to test resources";
diff --git a/pkgs/development/python-modules/pytest-reverse/default.nix b/pkgs/development/python-modules/pytest-reverse/default.nix
index 567b5b13683b9..9e6736625b364 100644
--- a/pkgs/development/python-modules/pytest-reverse/default.nix
+++ b/pkgs/development/python-modules/pytest-reverse/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytest
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-r0aSbUgArHQkpaXUvMT6oyOxEliQRtSGuDt4IILzhH4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   buildInputs = [ pytest ];
 
diff --git a/pkgs/development/python-modules/pytest-runner/default.nix b/pkgs/development/python-modules/pytest-runner/default.nix
index f0c7acda466a3..57b970fc98df6 100644
--- a/pkgs/development/python-modules/pytest-runner/default.nix
+++ b/pkgs/development/python-modules/pytest-runner/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  pytest,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pytest-server-fixtures/default.nix b/pkgs/development/python-modules/pytest-server-fixtures/default.nix
index 29f26251b022c..11f67121f4f74 100644
--- a/pkgs/development/python-modules/pytest-server-fixtures/default.nix
+++ b/pkgs/development/python-modules/pytest-server-fixtures/default.nix
@@ -1,26 +1,44 @@
-{ lib, buildPythonPackage, fetchPypi
-, pytest, pytest-shutil, pytest-fixture-config, psutil
-, requests, future, retry }:
+{
+  lib,
+  buildPythonPackage,
+  future,
+  psutil,
+  pytest,
+  pytest-shutil,
+  pytest-fixture-config,
+  requests,
+  retry,
+  six,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "pytest-server-fixtures";
-  version = "1.7.1";
-  format = "setuptools";
+  inherit (pytest-fixture-config) version src;
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-xecz0gqNDnc8pRPjYOS6JkeVLqlCj6K9BVFsYoHqPOc=";
-  };
+  sourceRoot = "${src.name}/pytest-server-fixtures";
+
+  build-system = [ setuptools ];
 
   buildInputs = [ pytest ];
-  propagatedBuildInputs = [ pytest-shutil pytest-fixture-config psutil requests future retry ];
 
-  # RuntimeError: Unable to find a free server number to start Xvfb
+  dependencies = [
+    future
+    psutil
+    pytest-shutil
+    pytest-fixture-config
+    requests
+    retry
+    six
+  ];
+
+  # Don't run intergration tests
   doCheck = false;
 
   meta = with lib; {
     description = "Extensible server fixures for py.test";
-    homepage  = "https://github.com/manahl/pytest-plugins";
+    homepage = "https://github.com/manahl/pytest-plugins";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/pytest-services/default.nix b/pkgs/development/python-modules/pytest-services/default.nix
index 0b6a8f8f87b57..d4ae297d0a1f3 100644
--- a/pkgs/development/python-modules/pytest-services/default.nix
+++ b/pkgs/development/python-modules/pytest-services/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, psutil
-, pylibmc
-, pytest
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
-, setuptools-scm
-, toml
-, mysqlclient
-, zc-lockfile
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  psutil,
+  pylibmc,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
+  setuptools-scm,
+  toml,
+  mysqlclient,
+  zc-lockfile,
 }:
 
 buildPythonPackage rec {
@@ -57,9 +58,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pytest_services"
-  ];
+  pythonImportsCheck = [ "pytest_services" ];
 
   disabledTests = [
     # Tests require binaries and additional parts
diff --git a/pkgs/development/python-modules/pytest-shutil/default.nix b/pkgs/development/python-modules/pytest-shutil/default.nix
index 480c15b87c361..613b3e382d406 100644
--- a/pkgs/development/python-modules/pytest-shutil/default.nix
+++ b/pkgs/development/python-modules/pytest-shutil/default.nix
@@ -1,46 +1,51 @@
-{ lib
-, isPyPy
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  isPyPy,
+  buildPythonPackage,
+  pytest-fixture-config,
+  fetchpatch,
 
-# build
-, pytest
+  # build-time
+  setuptools,
+  setuptools-git,
 
-# runtime
-, setuptools-git
-, mock
-, path
-, execnet
-, termcolor
-, six
+  # runtime
+  pytest,
+  mock,
+  path,
+  execnet,
+  termcolor,
+  six,
 
-# tests
-, cmdline
-, pytestCheckHook
- }:
+  # tests
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "pytest-shutil";
-  version = "1.7.0";
-  format = "setuptools";
+  inherit (pytest-fixture-config) version src;
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-2BZSYd5251CFBcNB2UwCsRPclj8nRUOrynTb+r0CEmE=";
-  };
-
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "contextlib2" 'contextlib2;python_version<"3"' \
-      --replace "path.py" "path"
-  '';
+  sourceRoot = "${src.name}/pytest-shutil";
 
-  buildInputs = [
-    pytest
+  # imp was removed in Python 3.12
+  patches = [
+    (fetchpatch {
+      name = "stop-using-imp.patch";
+      url = "https://build.opensuse.org/public/source/openSUSE:Factory/python-pytest-shutil/stop-using-imp.patch?rev=10";
+      hash = "sha256-L8tXoQ9q8o6aP3TpJY/sUVVbUd/ebw0h6de6dBj1WNY=";
+      stripLen = 1;
+    })
   ];
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
     setuptools-git
+  ];
+
+  buildInputs = [ pytest ];
+
+  dependencies = [
     mock
     path
     execnet
@@ -48,20 +53,17 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    cmdline
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = [
-    "test_pretty_formatter"
-  ] ++ lib.optionals isPyPy [
-    "test_run"
-    "test_run_integration"
-  ];
+  disabledTests =
+    [ "test_pretty_formatter" ]
+    ++ lib.optionals isPyPy [
+      "test_run"
+      "test_run_integration"
+    ];
 
   meta = with lib; {
-    description = "A goodie-bag of unix shell and environment tools for py.test";
+    description = "Goodie-bag of unix shell and environment tools for py.test";
     homepage = "https://github.com/manahl/pytest-plugins";
     maintainers = with maintainers; [ ryansydnor ];
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pytest-snapshot/default.nix b/pkgs/development/python-modules/pytest-snapshot/default.nix
index c04c9b74e3b3c..aafe4b5b93ec8 100644
--- a/pkgs/development/python-modules/pytest-snapshot/default.nix
+++ b/pkgs/development/python-modules/pytest-snapshot/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, packaging
-, pytest
-, setuptools-scm
-, pytest7CheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  packaging,
+  pytest,
+  setuptools-scm,
+  pytest7CheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,29 +23,21 @@ buildPythonPackage rec {
     hash = "sha256-0PZu9wL29iEppLxxbl4D0E4WfOHe61KUUld003cRBRU=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    packaging
-  ];
+  propagatedBuildInputs = [ packaging ];
 
   nativeCheckInputs = [
     # https://github.com/joseph-roitman/pytest-snapshot/issues/71
     pytest7CheckHook
   ];
 
-  pythonImportsCheck = [
-    "pytest_snapshot"
-  ];
+  pythonImportsCheck = [ "pytest_snapshot" ];
 
   meta = with lib; {
-    description = "A plugin to enable snapshot testing with pytest";
+    description = "Plugin to enable snapshot testing with pytest";
     homepage = "https://github.com/joseph-roitman/pytest-snapshot/";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/pytest-socket/default.nix b/pkgs/development/python-modules/pytest-socket/default.nix
index 9a420c1a0986d..7e34ef0a99b94 100644
--- a/pkgs/development/python-modules/pytest-socket/default.nix
+++ b/pkgs/development/python-modules/pytest-socket/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest
-, pythonOlder
-, setuptoolsBuildHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest,
+  pythonOlder,
+  setuptoolsBuildHook,
 }:
 
 buildPythonPackage rec {
@@ -21,20 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-19YF3q85maCVdVg2HOOPbN45RNjBf6kiFAhLut8B2tQ=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   # pytest-socket require network for majority of tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pytest_socket"
-  ];
+  pythonImportsCheck = [ "pytest_socket" ];
 
   meta = with lib; {
     description = "Pytest Plugin to disable socket calls during tests";
diff --git a/pkgs/development/python-modules/pytest-spec/default.nix b/pkgs/development/python-modules/pytest-spec/default.nix
index 2a90d45a6ea1a..1325f6f52d095 100644
--- a/pkgs/development/python-modules/pytest-spec/default.nix
+++ b/pkgs/development/python-modules/pytest-spec/default.nix
@@ -42,7 +42,7 @@ buildPythonPackage {
   pythonImportsCheck = [ "pytest_spec" ];
 
   meta = {
-    description = "A pytest plugin to display test execution output like a SPECIFICATION";
+    description = "Pytest plugin to display test execution output like a SPECIFICATION";
     homepage = "https://github.com/pchomik/pytest-spec";
     license = lib.licenses.gpl2Plus;
     maintainers = with lib.maintainers; [ tomasajt ];
diff --git a/pkgs/development/python-modules/pytest-subprocess/default.nix b/pkgs/development/python-modules/pytest-subprocess/default.nix
index 966ca16dd0ba3..c4e8afe59ad99 100644
--- a/pkgs/development/python-modules/pytest-subprocess/default.nix
+++ b/pkgs/development/python-modules/pytest-subprocess/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, pytest
-, pytestCheckHook
-, docutils
-, pygments
-, pytest-rerunfailures
-, pytest-asyncio
-, anyio
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  pytest,
+  pytestCheckHook,
+  docutils,
+  pygments,
+  pytest-rerunfailures,
+  pytest-asyncio,
+  anyio,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     hash = "sha256-u9d9RhbikOyknMWs18j2efYJb9YdHsQrp31LfcbudoA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -43,12 +40,10 @@ buildPythonPackage rec {
     anyio
   ];
 
-  pytestFlagsArray = [
-    "-W ignore::DeprecationWarning"
-  ];
+  pytestFlagsArray = [ "-W ignore::DeprecationWarning" ];
 
   meta = with lib; {
-    description = "A plugin to fake subprocess for pytest";
+    description = "Plugin to fake subprocess for pytest";
     homepage = "https://github.com/aklajnert/pytest-subprocess";
     changelog = "https://github.com/aklajnert/pytest-subprocess/blob/${version}/HISTORY.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pytest-subtesthack/default.nix b/pkgs/development/python-modules/pytest-subtesthack/default.nix
index 319fffe01db35..abf57ae1832a8 100644
--- a/pkgs/development/python-modules/pytest-subtesthack/default.nix
+++ b/pkgs/development/python-modules/pytest-subtesthack/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "pytest-subtesthack";
diff --git a/pkgs/development/python-modules/pytest-subtests/default.nix b/pkgs/development/python-modules/pytest-subtests/default.nix
index d9afd5f0c9a93..664e0609080d1 100644
--- a/pkgs/development/python-modules/pytest-subtests/default.nix
+++ b/pkgs/development/python-modules/pytest-subtests/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# build-system
-, setuptools
-, setuptools-scm
+  # build-system
+  setuptools,
+  setuptools-scm,
 
-# dependencies
-, attrs
+  # dependencies
+  attrs,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -31,17 +32,11 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    attrs
-  ];
+  propagatedBuildInputs = [ attrs ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pytest_subtests"
-  ];
+  pythonImportsCheck = [ "pytest_subtests" ];
 
   meta = with lib; {
     description = "Pytest plugin for unittest subTest() support and subtests fixture";
diff --git a/pkgs/development/python-modules/pytest-sugar/default.nix b/pkgs/development/python-modules/pytest-sugar/default.nix
index 8076c639e7d4a..b90b2a30e5ca0 100644
--- a/pkgs/development/python-modules/pytest-sugar/default.nix
+++ b/pkgs/development/python-modules/pytest-sugar/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, termcolor
-, pytest
-, packaging
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  termcolor,
+  pytest,
+  packaging,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,21 +21,17 @@ buildPythonPackage rec {
     hash = "sha256-ZCLoMlj1sMBM58YyF2x3Msq1/bkJyznMpckTn4EnbAo=";
   };
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   propagatedBuildInputs = [
     termcolor
     packaging
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A plugin that changes the default look and feel of pytest";
+    description = "Plugin that changes the default look and feel of pytest";
     homepage = "https://github.com/Frozenball/pytest-sugar";
     changelog = "https://github.com/Teemu/pytest-sugar/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/pytest-tap/default.nix b/pkgs/development/python-modules/pytest-tap/default.nix
index 32b12ddcc236b..91513ca894e27 100644
--- a/pkgs/development/python-modules/pytest-tap/default.nix
+++ b/pkgs/development/python-modules/pytest-tap/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytest
-, tappy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytest,
+  tappy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,26 +22,18 @@ buildPythonPackage rec {
     sha256 = "R0RSdKTyJYGq+x0+ut4pJEywTGNgGp/ps36ZaH5dyY4=";
   };
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    tappy
-  ];
+  propagatedBuildInputs = [ tappy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Fixed in 4ed0138bf659c348b6dfb8bb701ae1989625d3d8 and hopefully in next release
     "test_unittest_expected_failure"
   ];
 
-  pythonImportsCheck = [
-    "pytest_tap"
-  ];
+  pythonImportsCheck = [ "pytest_tap" ];
 
   meta = with lib; {
     description = "Test Anything Protocol (TAP) reporting plugin for pytest";
diff --git a/pkgs/development/python-modules/pytest-test-utils/default.nix b/pkgs/development/python-modules/pytest-test-utils/default.nix
index 127b0c1633561..3d2c0ecc35876 100644
--- a/pkgs/development/python-modules/pytest-test-utils/default.nix
+++ b/pkgs/development/python-modules/pytest-test-utils/default.nix
@@ -1,49 +1,43 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, wheel
-, pytestCheckHook
-, pytest
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  pytest,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "pytest-test-utils";
-  version = "0.0.8";
-  format = "pyproject";
+  version = "0.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "iterative";
-    repo = pname;
+    repo = "pytest-test-utils";
     rev = "refs/tags/${version}";
-    hash = "sha256-5gB+hnJR2+NQd/n7RGrX1bzfKt8Np7IbWw61SZgNVJY=";
+    hash = "sha256-19oNAFff++7ntMdlnMXYc2w5I+EzGwWJh+rB1IjNZGk=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
-    wheel
   ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pytest_test_utils"
-  ];
+  pythonImportsCheck = [ "pytest_test_utils" ];
 
   meta = with lib; {
     description = "Pytest utilities for tests";
     homepage = "https://github.com/iterative/pytest-test-utils";
+    changelog = "https://github.com/iterative/pytest-test-utils/releases/tag/${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/pytest-testinfra/default.nix b/pkgs/development/python-modules/pytest-testinfra/default.nix
index d9743ad803e69..888233166693c 100644
--- a/pkgs/development/python-modules/pytest-testinfra/default.nix
+++ b/pkgs/development/python-modules/pytest-testinfra/default.nix
@@ -14,14 +14,14 @@
 
 buildPythonPackage rec {
   pname = "pytest-testinfra";
-  version = "10.1.0";
+  version = "10.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-93Qzm5R3Ws3zqMSjeTqOrS6N/HD/NLd4vhWquhQPoZ4=";
+    hash = "sha256-qHbxRToBtY2U2dk23VA0TCwBrHiAorQdFb3yM67Zzx8=";
   };
 
   build-system = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/pytest-testmon/default.nix b/pkgs/development/python-modules/pytest-testmon/default.nix
index 9bceb430820ed..6080586d6ec41 100644
--- a/pkgs/development/python-modules/pytest-testmon/default.nix
+++ b/pkgs/development/python-modules/pytest-testmon/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, coverage
-, fetchFromGitHub
-, poetry-core
-, pytest
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  coverage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,24 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-zbMX9r9lftdm9hzXMZRZZ/GEDViGk9QiYYUhO9ZcEAc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    coverage
-  ];
+  propagatedBuildInputs = [ coverage ];
 
   # The project does not include tests since version 1.3.0
   doCheck = false;
 
-  pythonImportsCheck = [
-    "testmon"
-  ];
+  pythonImportsCheck = [ "testmon" ];
 
   meta = with lib; {
     description = "Pytest plug-in which automatically selects and re-executes only tests affected by recent changes";
diff --git a/pkgs/development/python-modules/pytest-textual-snapshot/default.nix b/pkgs/development/python-modules/pytest-textual-snapshot/default.nix
index d9b51373bcdf0..6661b9397ac90 100644
--- a/pkgs/development/python-modules/pytest-textual-snapshot/default.nix
+++ b/pkgs/development/python-modules/pytest-textual-snapshot/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, jinja2
-, pytest
-, rich
-, pythonOlder
-, syrupy
-, textual
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  jinja2,
+  pytest,
+  rich,
+  pythonOlder,
+  syrupy,
+  textual,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +25,9 @@ buildPythonPackage rec {
     hash = "sha256-XkXeyodRdwWqCP63Onx82Z3IbNLDDR/Lvaw8xUY7fAg=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   propagatedBuildInputs = [
     jinja2
@@ -42,9 +39,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pytest_textual_snapshot"
-  ];
+  pythonImportsCheck = [ "pytest_textual_snapshot" ];
 
   meta = with lib; {
     description = "Snapshot testing for Textual applications";
diff --git a/pkgs/development/python-modules/pytest-timeout/default.nix b/pkgs/development/python-modules/pytest-timeout/default.nix
index 3ea96b52634c2..d916162e5a5ca 100644
--- a/pkgs/development/python-modules/pytest-timeout/default.nix
+++ b/pkgs/development/python-modules/pytest-timeout/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
-, pytestCheckHook
-, pexpect
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  pytestCheckHook,
+  pexpect,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-Ejl3KRJcbsvaygEDW55SOdTblzUjIK8VWz9d4bpRZdk=";
   };
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -31,13 +30,9 @@ buildPythonPackage rec {
     "test_suppresses_timeout_when_debugger_is_entered"
   ];
 
-  pytestFlagsArray = [
-    "-ra"
-  ];
+  pytestFlagsArray = [ "-ra" ];
 
-  pythonImportsCheck = [
-    "pytest_timeout"
-  ];
+  pythonImportsCheck = [ "pytest_timeout" ];
 
   meta = with lib; {
     description = "Pytest plugin to abort hanging tests";
diff --git a/pkgs/development/python-modules/pytest-tornado/default.nix b/pkgs/development/python-modules/pytest-tornado/default.nix
index 0a39ce94b2e2b..b4851ea3a50a1 100644
--- a/pkgs/development/python-modules/pytest-tornado/default.nix
+++ b/pkgs/development/python-modules/pytest-tornado/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, pytest
-, tornado
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  pytest,
+  tornado,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -23,8 +24,8 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ tornado ];
 
   meta = with lib; {
-    description = "A py.test plugin providing fixtures and markers to simplify testing of asynchronous tornado applications.";
-    homepage =  "https://github.com/eugeniy/pytest-tornado";
+    description = "Py.test plugin providing fixtures and markers to simplify testing of asynchronous tornado applications";
+    homepage = "https://github.com/eugeniy/pytest-tornado";
     license = licenses.asl20;
   };
 }
diff --git a/pkgs/development/python-modules/pytest-tornasync/default.nix b/pkgs/development/python-modules/pytest-tornasync/default.nix
index b9fbd73c8402d..b35b412c71cc5 100644
--- a/pkgs/development/python-modules/pytest-tornasync/default.nix
+++ b/pkgs/development/python-modules/pytest-tornasync/default.nix
@@ -1,5 +1,11 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy27
-, pytest, tornado }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy27,
+  pytest,
+  tornado,
+}:
 
 buildPythonPackage rec {
   pname = "pytest-tornasync";
@@ -18,9 +24,7 @@ buildPythonPackage rec {
 
   buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    tornado
-  ];
+  propagatedBuildInputs = [ tornado ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/pytest-trio/default.nix b/pkgs/development/python-modules/pytest-trio/default.nix
index 291b10f9b1b87..31caf8fc5e098 100644
--- a/pkgs/development/python-modules/pytest-trio/default.nix
+++ b/pkgs/development/python-modules/pytest-trio/default.nix
@@ -1,5 +1,13 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
-, trio, hypothesis, outcome, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  trio,
+  hypothesis,
+  outcome,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "pytest-trio";
diff --git a/pkgs/development/python-modules/pytest-twisted/default.nix b/pkgs/development/python-modules/pytest-twisted/default.nix
index d83153c54c91e..fa80566a13364 100644
--- a/pkgs/development/python-modules/pytest-twisted/default.nix
+++ b/pkgs/development/python-modules/pytest-twisted/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, greenlet
-, pytest
-, decorator
-, twisted
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  greenlet,
+  pytest,
+  decorator,
+  twisted,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "sha256-qbGLyfykfSiG+O/j/SeHmoHxwLtJ8cVgZmyedkSRtjI=";
   };
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   propagatedBuildInputs = [
     decorator
@@ -32,12 +31,10 @@ buildPythonPackage rec {
     twisted
   ];
 
-  pythonImportsCheck = [
-    "pytest_twisted"
-  ];
+  pythonImportsCheck = [ "pytest_twisted" ];
 
   meta = with lib; {
-    description = "A twisted plugin for py.test";
+    description = "Twisted plugin for py.test";
     homepage = "https://github.com/pytest-dev/pytest-twisted";
     license = licenses.bsd3;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/pytest-unordered/default.nix b/pkgs/development/python-modules/pytest-unordered/default.nix
index d0446e7646457..990586f28112a 100644
--- a/pkgs/development/python-modules/pytest-unordered/default.nix
+++ b/pkgs/development/python-modules/pytest-unordered/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
-, pytest7CheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
+  pytest7CheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,18 +18,14 @@ buildPythonPackage rec {
     hash = "sha256-51UJjnGBO7qBvQlY8F0B29n8+EO2aa3DF3WOwcjZzSo=";
   };
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   nativeCheckInputs = [
     # https://github.com/utapyngo/pytest-unordered/issues/15
     pytest7CheckHook
   ];
 
-  pythonImportsCheck = [
-    "pytest_unordered"
-  ];
+  pythonImportsCheck = [ "pytest_unordered" ];
 
   meta = with lib; {
     changelog = "https://github.com/utapyngo/pytest-unordered/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/pytest-vcr/default.nix b/pkgs/development/python-modules/pytest-vcr/default.nix
index eb28f2f74c287..2e77d3af8261a 100644
--- a/pkgs/development/python-modules/pytest-vcr/default.nix
+++ b/pkgs/development/python-modules/pytest-vcr/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
-, vcrpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
+  vcrpy,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
 
   buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    vcrpy
-   ];
+  propagatedBuildInputs = [ vcrpy ];
 
   # Tests are using an obsolete attribute 'config'
   # https://github.com/ktosiek/pytest-vcr/issues/43
diff --git a/pkgs/development/python-modules/pytest-virtualenv/default.nix b/pkgs/development/python-modules/pytest-virtualenv/default.nix
index 408430d5127c2..fa276e748cddc 100644
--- a/pkgs/development/python-modules/pytest-virtualenv/default.nix
+++ b/pkgs/development/python-modules/pytest-virtualenv/default.nix
@@ -1,24 +1,46 @@
-{ lib, buildPythonPackage, fetchPypi
-, pytest, pytest-cov, mock, cmdline, pytest-fixture-config, pytest-shutil, virtualenv }:
+{
+  lib,
+  buildPythonPackage,
+  cmdline,
+  importlib-metadata,
+  mock,
+  pytestCheckHook,
+  pytest,
+  pytest-fixture-config,
+  pytest-shutil,
+  setuptools,
+  virtualenv,
+}:
 
 buildPythonPackage rec {
   pname = "pytest-virtualenv";
-  version = "1.7.0";
-  format = "setuptools";
+  inherit (pytest-fixture-config) version src;
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "03w2zz3crblj1p6i8nq17946hbn3zqp9z7cfnifw47hi4a4fww12";
-  };
+  sourceRoot = "${src.name}/pytest-virtualenv";
+
+  build-system = [ setuptools ];
+
+  buildInputs = [ pytest ];
+
+  dependencies = [
+    importlib-metadata
+    pytest-fixture-config
+    pytest-shutil
+    virtualenv
+  ];
 
-  nativeCheckInputs = [ pytest pytest-cov mock cmdline ];
-  propagatedBuildInputs = [ pytest-fixture-config pytest-shutil virtualenv ];
-  checkPhase = "py.test tests/unit ";
+  nativeCheckInputs = [
+    cmdline
+    mock
+    pytestCheckHook
+  ];
 
-  nativeBuildInputs = [ pytest ];
+  # Don't run integration tests
+  disabledTestPaths = [ "tests/integration/*" ];
 
   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.";
+    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;
     maintainers = with maintainers; [ ryansydnor ];
diff --git a/pkgs/development/python-modules/pytest-voluptuous/default.nix b/pkgs/development/python-modules/pytest-voluptuous/default.nix
index ce1081e5febf8..dd5f6afd24112 100644
--- a/pkgs/development/python-modules/pytest-voluptuous/default.nix
+++ b/pkgs/development/python-modules/pytest-voluptuous/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
-, pytestCheckHook
-, pythonOlder
-, six
-, voluptuous
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
+  six,
+  voluptuous,
 }:
 
 buildPythonPackage rec {
@@ -22,29 +23,21 @@ buildPythonPackage rec {
     hash = "sha256-xdj4qCSSJQI9Rb1WyUYrAg1I5wQ5o6IJyIjJAafP/LY=";
   };
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    voluptuous
-  ];
+  propagatedBuildInputs = [ voluptuous ];
 
   nativeCheckInputs = [
     pytestCheckHook
     six
   ];
 
-  pythonImportsCheck = [
-    "pytest_voluptuous"
-  ];
+  pythonImportsCheck = [ "pytest_voluptuous" ];
 
-  pytestFlagsArray = [
-    "tests/test_plugin.py"
-  ];
+  pytestFlagsArray = [ "tests/test_plugin.py" ];
 
   meta = with lib; {
-    description = "A pytest plugin for asserting data against voluptuous schema";
+    description = "Pytest plugin for asserting data against voluptuous schema";
     homepage = "https://github.com/F-Secure/pytest-voluptuous";
     changelog = "https://github.com/F-Secure/pytest-voluptuous/blob/${version}/CHANGELOG.rst";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/pytest-warnings/default.nix b/pkgs/development/python-modules/pytest-warnings/default.nix
index 594c27f18ec8d..d79138af5f414 100644
--- a/pkgs/development/python-modules/pytest-warnings/default.nix
+++ b/pkgs/development/python-modules/pytest-warnings/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "pytest-warnings";
diff --git a/pkgs/development/python-modules/pytest-watch/default.nix b/pkgs/development/python-modules/pytest-watch/default.nix
index 6158106d92deb..4008125457671 100644
--- a/pkgs/development/python-modules/pytest-watch/default.nix
+++ b/pkgs/development/python-modules/pytest-watch/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, docopt
-, colorama
-, pytest
-, watchdog
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  docopt,
+  colorama,
+  pytest,
+  watchdog,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,11 @@ buildPythonPackage rec {
 
   buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [ colorama docopt watchdog ];
+  propagatedBuildInputs = [
+    colorama
+    docopt
+    watchdog
+  ];
 
   # No Tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/pytest-xdist/default.nix b/pkgs/development/python-modules/pytest-xdist/default.nix
index 947040fbf5fd6..555c840311442 100644
--- a/pkgs/development/python-modules/pytest-xdist/default.nix
+++ b/pkgs/development/python-modules/pytest-xdist/default.nix
@@ -1,46 +1,46 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools-scm
-, pytestCheckHook
-, filelock
-, execnet
-, pytest
-, psutil
-, setproctitle
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  filelock,
+  execnet,
+  pytest,
+  psutil,
+  setproctitle,
 }:
 
 buildPythonPackage rec {
   pname = "pytest-xdist";
-  version = "3.5.0";
+  version = "3.6.1";
   disabled = pythonOlder "3.7";
 
   pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-y7NvPWfgxHi6pX+k7ciEOIfg9s/ELWd1MKNtdHKzLYo=";
+    pname = "pytest_xdist";
+    inherit version;
+    hash = "sha256-6tFWpNsjHux2lzf1dmjvWKIISjSy5VxKj6INhhEHMA0=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
+    setuptools
     setuptools-scm
   ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    execnet
-  ];
+  dependencies = [ execnet ];
 
   nativeCheckInputs = [
     filelock
     pytestCheckHook
   ];
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     psutil = [ psutil ];
     setproctitle = [ setproctitle ];
   };
diff --git a/pkgs/development/python-modules/pytest-xprocess/default.nix b/pkgs/development/python-modules/pytest-xprocess/default.nix
index 601eaecd3e05c..8a082a59f79e9 100644
--- a/pkgs/development/python-modules/pytest-xprocess/default.nix
+++ b/pkgs/development/python-modules/pytest-xprocess/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, psutil
-, py
-, pytest
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  psutil,
+  py,
+  pytest,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "pytest-xprocess";
-  version = "0.23.0";
+  version = "1.0.2";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+NQEGiChwe8ZQwVOSj33rHtD5/KR9kD0PDTp3MSzTfo=";
+    hash = "sha256-FeJwY3WG6rxWdV7l/MgcSL20a6fvfA1bG2QwLQgMxg8=";
   };
 
   postPatch = ''
@@ -23,13 +24,9 @@ buildPythonPackage rec {
       --replace "'pytest-cache', " ""
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
   propagatedBuildInputs = [
     psutil
diff --git a/pkgs/development/python-modules/pytest-xvfb/default.nix b/pkgs/development/python-modules/pytest-xvfb/default.nix
index 0b555274c90af..b011f081b984d 100644
--- a/pkgs/development/python-modules/pytest-xvfb/default.nix
+++ b/pkgs/development/python-modules/pytest-xvfb/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
-, pyvirtualdisplay
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  pyvirtualdisplay,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,16 +19,12 @@ buildPythonPackage rec {
     hash = "sha256-N0arH00RWfA/dRY40FNonM0oQpGzi4+wPT67579pz8A=";
   };
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    pyvirtualdisplay
-  ];
+  propagatedBuildInputs = [ pyvirtualdisplay ];
 
   meta = with lib; {
-    description = "A pytest plugin to run Xvfb for tests";
+    description = "Pytest plugin to run Xvfb for tests";
     homepage = "https://github.com/The-Compiler/pytest-xvfb";
     changelog = "https://github.com/The-Compiler/pytest-xvfb/blob/v${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pytest/7.nix b/pkgs/development/python-modules/pytest/7.nix
index 835e8ff42b3c0..8ca33b158e5ce 100644
--- a/pkgs/development/python-modules/pytest/7.nix
+++ b/pkgs/development/python-modules/pytest/7.nix
@@ -1,116 +1,122 @@
-{ lib
-, buildPythonPackage
-, callPackage
-, pythonOlder
-, fetchPypi
-, writeText
+{
+  lib,
+  buildPythonPackage,
+  callPackage,
+  pythonOlder,
+  fetchPypi,
+  writeText,
 
-# build-system
-, setuptools
-, setuptools-scm
+  # build-system
+  setuptools,
+  setuptools-scm,
 
-# dependencies
-, attrs
-, exceptiongroup
-, iniconfig
-, packaging
-, pluggy
-, tomli
+  # dependencies
+  attrs,
+  exceptiongroup,
+  iniconfig,
+  packaging,
+  pluggy,
+  tomli,
 
-# optional-dependencies
-, argcomplete
-, hypothesis
-, mock
-, nose
-, pygments
-, requests
-, xmlschema
+  # optional-dependencies
+  argcomplete,
+  hypothesis,
+  mock,
+  nose,
+  pygments,
+  requests,
+  xmlschema,
 }:
 
-let self = buildPythonPackage rec {
-  pname = "pytest";
-  version = "7.4.4";
-  pyproject = true;
+let
+  self = buildPythonPackage rec {
+    pname = "pytest";
+    version = "7.4.4";
+    pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-LPAAWSLGrOSj4uyLQIDrDZdT/ckxB0FTMvUM6eeZQoA=";
-  };
-
-  outputs = [
-    "out"
-    "testout"
-  ];
+    src = fetchPypi {
+      inherit pname version;
+      hash = "sha256-LPAAWSLGrOSj4uyLQIDrDZdT/ckxB0FTMvUM6eeZQoA=";
+    };
 
-  nativeBuildInputs = [
-    setuptools
-    setuptools-scm
-  ];
-
-  propagatedBuildInputs = [
-    iniconfig
-    packaging
-    pluggy
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    exceptiongroup
-    tomli
-  ];
+    outputs = [
+      "out"
+      "testout"
+    ];
 
-  passthru.optional-dependencies = {
-    testing = [
-      argcomplete
-      attrs
-      hypothesis
-      mock
-      nose
-      pygments
-      requests
+    nativeBuildInputs = [
       setuptools
-      xmlschema
+      setuptools-scm
     ];
-  };
 
-  postInstall = ''
-    mkdir $testout
-    cp -R testing $testout/testing
-  '';
+    propagatedBuildInputs =
+      [
+        iniconfig
+        packaging
+        pluggy
+      ]
+      ++ lib.optionals (pythonOlder "3.11") [
+        exceptiongroup
+        tomli
+      ];
 
-  doCheck = false;
-  passthru.tests.pytest = callPackage ./tests.nix {
-    pytest = self;
-  };
+    passthru.optional-dependencies = {
+      testing = [
+        argcomplete
+        attrs
+        hypothesis
+        mock
+        nose
+        pygments
+        requests
+        setuptools
+        xmlschema
+      ];
+    };
+
+    postInstall = ''
+      mkdir $testout
+      cp -R testing $testout/testing
+    '';
+
+    doCheck = false;
+    passthru.tests.pytest = callPackage ./tests.nix { pytest = self; };
 
-  # Remove .pytest_cache when using py.test in a Nix build
-  setupHook = writeText "pytest-hook" ''
-    pytestcachePhase() {
-        find $out -name .pytest_cache -type d -exec rm -rf {} +
-    }
-    preDistPhases+=" pytestcachePhase"
+    # Remove .pytest_cache when using py.test in a Nix build
+    setupHook = writeText "pytest-hook" ''
+      pytestcachePhase() {
+          find $out -name .pytest_cache -type d -exec rm -rf {} +
+      }
+      preDistPhases+=" pytestcachePhase"
 
-    # pytest generates it's own bytecode files to improve assertion messages.
-    # These files similar to cpython's bytecode files but are never laoded
-    # by python interpreter directly. We remove them for a few reasons:
-    # - files are non-deterministic: https://github.com/NixOS/nixpkgs/issues/139292
-    #   (file headers are generatedt by pytest directly and contain timestamps)
-    # - files are not needed after tests are finished
-    pytestRemoveBytecodePhase () {
-        # suffix is defined at:
-        #    https://github.com/pytest-dev/pytest/blob/7.2.1/src/_pytest/assertion/rewrite.py#L51-L53
-        find $out -name "*-pytest-*.py[co]" -delete
-    }
-    preDistPhases+=" pytestRemoveBytecodePhase"
-  '';
+      # pytest generates it's own bytecode files to improve assertion messages.
+      # These files similar to cpython's bytecode files but are never laoded
+      # by python interpreter directly. We remove them for a few reasons:
+      # - files are non-deterministic: https://github.com/NixOS/nixpkgs/issues/139292
+      #   (file headers are generatedt by pytest directly and contain timestamps)
+      # - files are not needed after tests are finished
+      pytestRemoveBytecodePhase () {
+          # suffix is defined at:
+          #    https://github.com/pytest-dev/pytest/blob/7.2.1/src/_pytest/assertion/rewrite.py#L51-L53
+          find $out -name "*-pytest-*.py[co]" -delete
+      }
+      preDistPhases+=" pytestRemoveBytecodePhase"
+    '';
 
-  pythonImportsCheck = [
-    "pytest"
-  ];
+    pythonImportsCheck = [ "pytest" ];
 
-  meta = with lib; {
-    description = "Framework for writing tests";
-    homepage = "https://docs.pytest.org";
-    changelog = "https://github.com/pytest-dev/pytest/releases/tag/${version}";
-    maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ];
-    license = licenses.mit;
+    meta = with lib; {
+      description = "Framework for writing tests";
+      homepage = "https://docs.pytest.org";
+      changelog = "https://github.com/pytest-dev/pytest/releases/tag/${version}";
+      maintainers = with maintainers; [
+        domenkozar
+        lovek323
+        madjar
+        lsix
+      ];
+      license = licenses.mit;
+    };
   };
-};
-in self
+in
+self
diff --git a/pkgs/development/python-modules/pytest/8.2.2-unittest-testcase-regression.patch b/pkgs/development/python-modules/pytest/8.2.2-unittest-testcase-regression.patch
new file mode 100644
index 0000000000000..1d127b191f818
--- /dev/null
+++ b/pkgs/development/python-modules/pytest/8.2.2-unittest-testcase-regression.patch
@@ -0,0 +1,72 @@
+From de47b73520fd9b7e41272701d7fd4663357af046 Mon Sep 17 00:00:00 2001
+From: Ran Benita <ran@unusedvar.com>
+Date: Fri, 7 Jun 2024 09:49:29 +0300
+Subject: [PATCH] unittest: fix assertion errors on unittest reruns
+
+This fixes unittest test reruns when using plugins like
+pytest-rerunfailures.
+
+The `instance` property uses AttributeError to check if the instance
+needs to be initialized, so `del` is the correct way to clear it, not
+setting to `None`.
+
+Regressed in 8.2.2.
+---
+ changelog/12424.bugfix.rst                            |  1 +
+ src/_pytest/unittest.py                               |  2 +-
+ .../pytest_rerunfailures_integration.py               | 11 +++++++++++
+ tox.ini                                               |  2 +-
+ 4 files changed, 14 insertions(+), 2 deletions(-)
+ create mode 100644 changelog/12424.bugfix.rst
+ create mode 100644 testing/plugins_integration/pytest_rerunfailures_integration.py
+
+diff --git a/changelog/12424.bugfix.rst b/changelog/12424.bugfix.rst
+new file mode 100644
+index 00000000000..7ad1126858b
+--- /dev/null
++++ b/changelog/12424.bugfix.rst
+@@ -0,0 +1 @@
++Fix crash with `assert testcase is not None` assertion failure when re-running unittest tests using plugins like pytest-rerunfailures. Regressed in 8.2.2.
+diff --git a/src/_pytest/unittest.py b/src/_pytest/unittest.py
+index 643443f08c6..ca82ac5c14a 100644
+--- a/src/_pytest/unittest.py
++++ b/src/_pytest/unittest.py
+@@ -222,7 +222,7 @@ def teardown(self) -> None:
+             self._explicit_tearDown()
+             self._explicit_tearDown = None
+         self._obj = None
+-        self._instance = None
++        del self._instance
+         super().teardown()
+ 
+     def startTest(self, testcase: "unittest.TestCase") -> None:
+diff --git a/testing/plugins_integration/pytest_rerunfailures_integration.py b/testing/plugins_integration/pytest_rerunfailures_integration.py
+new file mode 100644
+index 00000000000..9a13a3279a9
+--- /dev/null
++++ b/testing/plugins_integration/pytest_rerunfailures_integration.py
+@@ -0,0 +1,11 @@
++import unittest
++
++
++class MyTestCase(unittest.TestCase):
++    first_time = True
++
++    def test_fail_the_first_time(self) -> None:
++        """Regression test for issue #12424."""
++        if self.first_time:
++            type(self).first_time = False
++            self.fail()
+diff --git a/tox.ini b/tox.ini
+index 0a3f0acf5b8..35b335a015d 100644
+--- a/tox.ini
++++ b/tox.ini
+@@ -141,7 +141,7 @@ commands =
+     pytest --cov=. simple_integration.py
+     pytest --ds=django_settings simple_integration.py
+     pytest --html=simple.html simple_integration.py
+-    pytest --reruns 5 simple_integration.py
++    pytest --reruns 5 simple_integration.py pytest_rerunfailures_integration.py
+     pytest pytest_anyio_integration.py
+     pytest pytest_asyncio_integration.py
+     pytest pytest_mock_integration.py
diff --git a/pkgs/development/python-modules/pytest/default.nix b/pkgs/development/python-modules/pytest/default.nix
index 9b99112a5f0e9..558909a61d259 100644
--- a/pkgs/development/python-modules/pytest/default.nix
+++ b/pkgs/development/python-modules/pytest/default.nix
@@ -1,42 +1,50 @@
-{ lib
-, buildPythonPackage
-, callPackage
-, pythonOlder
-, fetchPypi
-, writeText
-
-# build-system
-, setuptools
-, setuptools-scm
-
-# dependencies
-, attrs
-, exceptiongroup
-, iniconfig
-, packaging
-, pluggy
-, tomli
-
-# optional-dependencies
-, argcomplete
-, hypothesis
-, mock
-, nose
-, pygments
-, requests
-, xmlschema
+{
+  lib,
+  buildPythonPackage,
+  callPackage,
+  pythonOlder,
+  fetchPypi,
+  fetchpatch2,
+  writeText,
+
+  # build-system
+  setuptools,
+  setuptools-scm,
+
+  # dependencies
+  attrs,
+  exceptiongroup,
+  iniconfig,
+  packaging,
+  pluggy,
+  tomli,
+
+  # optional-dependencies
+  argcomplete,
+  hypothesis,
+  mock,
+  nose,
+  pygments,
+  requests,
+  xmlschema,
 }:
 
 buildPythonPackage rec {
   pname = "pytest";
-  version = "8.1.1";
+  version = "8.2.2";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-rJeBQadZSJSIF9NgKXt6rg/LnW/2vJ7G1RS4XVplwEQ=";
+    hash = "sha256-3ku4EE4gGTnM3GiLJ6iae+IHmyLivSsH+Aa2unEReXc=";
   };
 
+  patches = [
+    # https://github.com/pytest-dev/pytest/issues/12424
+    # https://github.com/pytest-dev/pytest/pull/12436
+    ./8.2.2-unittest-testcase-regression.patch
+  ];
+
   outputs = [
     "out"
     "testout"
@@ -47,14 +55,16 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    iniconfig
-    packaging
-    pluggy
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    exceptiongroup
-    tomli
-  ];
+  propagatedBuildInputs =
+    [
+      iniconfig
+      packaging
+      pluggy
+    ]
+    ++ lib.optionals (pythonOlder "3.11") [
+      exceptiongroup
+      tomli
+    ];
 
   passthru.optional-dependencies = {
     testing = [
@@ -99,15 +109,18 @@ buildPythonPackage rec {
     preDistPhases+=" pytestRemoveBytecodePhase"
   '';
 
-  pythonImportsCheck = [
-    "pytest"
-  ];
+  pythonImportsCheck = [ "pytest" ];
 
   meta = with lib; {
     description = "Framework for writing tests";
     homepage = "https://docs.pytest.org";
     changelog = "https://github.com/pytest-dev/pytest/releases/tag/${version}";
-    maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ];
+    maintainers = with maintainers; [
+      domenkozar
+      lovek323
+      madjar
+      lsix
+    ];
     license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/pytest/tests.nix b/pkgs/development/python-modules/pytest/tests.nix
index 8bf8dafdf9279..a60e3a031fdc7 100644
--- a/pkgs/development/python-modules/pytest/tests.nix
+++ b/pkgs/development/python-modules/pytest/tests.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, isPyPy
-, pytest
+{
+  buildPythonPackage,
+  isPyPy,
+  pytest,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pytestcache/default.nix b/pkgs/development/python-modules/pytestcache/default.nix
index cf8643db06d19..dbed88eb85fab 100644
--- a/pkgs/development/python-modules/pytestcache/default.nix
+++ b/pkgs/development/python-modules/pytestcache/default.nix
@@ -1,5 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi
-, pytest, execnet }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  execnet,
+}:
 
 buildPythonPackage rec {
   pname = "pytest-cache";
diff --git a/pkgs/development/python-modules/python-arango/default.nix b/pkgs/development/python-modules/python-arango/default.nix
index 09218269828a1..9abc67d70294c 100644
--- a/pkgs/development/python-modules/python-arango/default.nix
+++ b/pkgs/development/python-modules/python-arango/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-
-# build-system
-, setuptools
-, setuptools-scm
-
-# dependencies
-, urllib3
-, requests
-, requests-toolbelt
-, pyjwt
-, importlib-metadata
-, packaging
-
-# tests
-, arangodb
-, mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+
+  # build-system
+  setuptools,
+  setuptools-scm,
+
+  # dependencies
+  urllib3,
+  requests,
+  requests-toolbelt,
+  pyjwt,
+  importlib-metadata,
+  packaging,
+
+  # tests
+  arangodb,
+  mock,
 }:
 
 let
@@ -147,9 +148,7 @@ buildPythonPackage rec {
     "test_replication_applier"
   ];
 
-  pythonImportsCheck = [
-    "arango"
-  ];
+  pythonImportsCheck = [ "arango" ];
 
   meta = with lib; {
     description = "Python Driver for ArangoDB";
diff --git a/pkgs/development/python-modules/python-awair/default.nix b/pkgs/development/python-modules/python-awair/default.nix
index fb65b6f848bc7..c814188477fa7 100644
--- a/pkgs/development/python-modules/python-awair/default.nix
+++ b/pkgs/development/python-modules/python-awair/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, voluptuous
-, vcrpy
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  voluptuous,
+  vcrpy,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-axolotl-curve25519/default.nix b/pkgs/development/python-modules/python-axolotl-curve25519/default.nix
index 9d039abd13f9d..cb2185845e651 100644
--- a/pkgs/development/python-modules/python-axolotl-curve25519/default.nix
+++ b/pkgs/development/python-modules/python-axolotl-curve25519/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "python-axolotl-curve25519";
diff --git a/pkgs/development/python-modules/python-axolotl/default.nix b/pkgs/development/python-modules/python-axolotl/default.nix
index 3725d0359a4e0..8af55b83ff587 100644
--- a/pkgs/development/python-modules/python-axolotl/default.nix
+++ b/pkgs/development/python-modules/python-axolotl/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, cryptography, python-axolotl-curve25519, protobuf }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cryptography,
+  python-axolotl-curve25519,
+  protobuf,
+}:
 
 buildPythonPackage rec {
   pname = "python-axolotl";
@@ -10,7 +17,11 @@ buildPythonPackage rec {
     sha256 = "1bwdp24fmriffwx91aigs9k162albb51iskp23nc939z893q23py";
   };
 
-  propagatedBuildInputs = [ cryptography python-axolotl-curve25519 protobuf ];
+  propagatedBuildInputs = [
+    cryptography
+    python-axolotl-curve25519
+    protobuf
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/tgalal/python-axolotl";
diff --git a/pkgs/development/python-modules/python-barcode/default.nix b/pkgs/development/python-modules/python-barcode/default.nix
index 4c4d9b367993e..214e074ffd7a4 100644
--- a/pkgs/development/python-modules/python-barcode/default.nix
+++ b/pkgs/development/python-modules/python-barcode/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools-scm
-, pillow
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools-scm,
+  pillow,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,14 +20,10 @@ buildPythonPackage rec {
     hash = "sha256-Oxgl+9sR5ZdGbf9ChrTqmx6GpXcXtZ5WOuZ5cm/IVN4=";
   };
 
-  propagatedBuildInputs = [
-    setuptools-scm
-  ];
+  propagatedBuildInputs = [ setuptools-scm ];
 
   passthru.optional-dependencies = {
-    images = [
-      pillow
-    ];
+    images = [ pillow ];
   };
 
   postPatch = ''
@@ -36,9 +33,7 @@ buildPythonPackage rec {
       --replace "--no-cov-on-fail" ""
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.images;
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.images;
 
   pythonImportsCheck = [ "barcode" ];
 
@@ -48,6 +43,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/WhyNotHugo/python-barcode";
     changelog = "https://github.com/WhyNotHugo/python-barcode/blob/v${version}/docs/changelog.rst";
     license = licenses.mit;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/python-baseconv/default.nix b/pkgs/development/python-modules/python-baseconv/default.nix
index 6e9acbb7873c7..c6f9386ca36c1 100644
--- a/pkgs/development/python-modules/python-baseconv/default.nix
+++ b/pkgs/development/python-modules/python-baseconv/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
 }:
 buildPythonPackage rec {
   pname = "python-baseconv";
@@ -8,7 +9,7 @@ buildPythonPackage rec {
   format = "setuptools";
 
   src = fetchPypi {
-    inherit pname version ;
+    inherit pname version;
     sha256 = "0539f8bd0464013b05ad62e0a1673f0ac9086c76b43ebf9f833053527cd9931b";
   };
 
diff --git a/pkgs/development/python-modules/python-benedict/default.nix b/pkgs/development/python-modules/python-benedict/default.nix
index 1757de4c851b6..055a993ca013b 100644
--- a/pkgs/development/python-modules/python-benedict/default.nix
+++ b/pkgs/development/python-modules/python-benedict/default.nix
@@ -1,26 +1,26 @@
-{ lib
-, boto3
-, buildPythonPackage
-, fetchFromGitHub
-, ftfy
-, mailchecker
-, openpyxl
-, orjson
-, phonenumbers
-, beautifulsoup4
-, pytestCheckHook
-, python-dateutil
-, python-decouple
-, python-fsutil
-, python-slugify
-, pythonOlder
-, pythonRelaxDepsHook
-, pyyaml
-, requests
-, setuptools
-, toml
-, xlrd
-, xmltodict
+{
+  lib,
+  boto3,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ftfy,
+  mailchecker,
+  openpyxl,
+  orjson,
+  phonenumbers,
+  beautifulsoup4,
+  pytestCheckHook,
+  python-dateutil,
+  python-decouple,
+  python-fsutil,
+  python-slugify,
+  pythonOlder,
+  pyyaml,
+  requests,
+  setuptools,
+  toml,
+  xlrd,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
@@ -37,12 +37,9 @@ buildPythonPackage rec {
     hash = "sha256-1/eLJFXACn1W5Yz43BIhdqqUVk3t9285d8aLwH+VmAE=";
   };
 
-  pythonRelaxDeps = [
-    "boto3"
-  ];
+  pythonRelaxDeps = [ "boto3" ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -84,22 +81,14 @@ buildPythonPackage rec {
       phonenumbers
       python-dateutil
     ];
-    s3 = [
-      boto3
-    ];
-    toml = [
-      toml
-    ];
+    s3 = [ boto3 ];
+    toml = [ toml ];
     xls = [
       openpyxl
       xlrd
     ];
-    xml = [
-      xmltodict
-    ];
-    yaml = [
-      pyyaml
-    ];
+    xml = [ xmltodict ];
+    yaml = [ pyyaml ];
   };
 
   nativeCheckInputs = [
@@ -123,9 +112,7 @@ buildPythonPackage rec {
     "test_from_yaml_with_valid_url_valid_content"
   ];
 
-  pythonImportsCheck = [
-    "benedict"
-  ];
+  pythonImportsCheck = [ "benedict" ];
 
   meta = with lib; {
     description = "Module with keylist/keypath support";
diff --git a/pkgs/development/python-modules/python-bidi/default.nix b/pkgs/development/python-modules/python-bidi/default.nix
index c88a2de6a1779..c18f52714c3c8 100644
--- a/pkgs/development/python-modules/python-bidi/default.nix
+++ b/pkgs/development/python-modules/python-bidi/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, six }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "python-bidi";
diff --git a/pkgs/development/python-modules/python-binance/default.nix b/pkgs/development/python-modules/python-binance/default.nix
index 59a36e776094f..4f626ae2e78c4 100644
--- a/pkgs/development/python-modules/python-binance/default.nix
+++ b/pkgs/development/python-modules/python-binance/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, dateparser
-, fetchFromGitHub
-, fetchpatch
-, pycryptodome
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
-, six
-, ujson
-, websockets
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  dateparser,
+  fetchFromGitHub,
+  fetchpatch,
+  pycryptodome,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
+  six,
+  ujson,
+  websockets,
 }:
 
 buildPythonPackage rec {
@@ -57,9 +58,7 @@ buildPythonPackage rec {
     "tests/test_historical_klines.py"
   ];
 
-  pythonImportsCheck = [
-    "binance"
-  ];
+  pythonImportsCheck = [ "binance" ];
 
   meta = with lib; {
     description = "Binance Exchange API python implementation for automated trading";
diff --git a/pkgs/development/python-modules/python-box/default.nix b/pkgs/development/python-modules/python-box/default.nix
index 9a7350c34eb8e..7d1e2c47c9018 100644
--- a/pkgs/development/python-modules/python-box/default.nix
+++ b/pkgs/development/python-modules/python-box/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, msgpack
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, ruamel-yaml
-, setuptools
-, toml
-, tomli
-, tomli-w
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  msgpack,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  ruamel-yaml,
+  setuptools,
+  toml,
+  tomli,
+  tomli-w,
 }:
 
 buildPythonPackage rec {
   pname = "python-box";
-  version = "7.1.1";
+  version = "7.2.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -25,7 +26,7 @@ buildPythonPackage rec {
     owner = "cdgriffith";
     repo = "Box";
     rev = "refs/tags/${version}";
-    hash = "sha256-oxT2y3um6BZ3bwYa+LWBoTgU+9b+V7XtQdCdECU3Gu0=";
+    hash = "sha256-5aORpuh0ezA3mUEpAPANDkdeN8ujNRfCUCV5qamMk68=";
   };
 
   nativeBuildInputs = [
@@ -39,35 +40,17 @@ buildPythonPackage rec {
       ruamel-yaml
       toml
     ];
-    yaml = [
-      ruamel-yaml
-    ];
-    ruamel-yaml = [
-      ruamel-yaml
-    ];
-    PyYAML = [
-      pyyaml
-    ];
-    tomli = [
-      tomli-w
-    ] ++ lib.optionals (pythonOlder "3.11") [
-      tomli
-    ];
-    toml = [
-      toml
-    ];
-    msgpack = [
-      msgpack
-    ];
+    yaml = [ ruamel-yaml ];
+    ruamel-yaml = [ ruamel-yaml ];
+    PyYAML = [ pyyaml ];
+    tomli = [ tomli-w ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
+    toml = [ toml ];
+    msgpack = [ msgpack ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.all;
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.all;
 
-  pythonImportsCheck = [
-    "box"
-  ];
+  pythonImportsCheck = [ "box" ];
 
   meta = with lib; {
     description = "Python dictionaries with advanced dot notation access";
diff --git a/pkgs/development/python-modules/python-bring-api/default.nix b/pkgs/development/python-modules/python-bring-api/default.nix
index a5003690c404d..060c73d39cd44 100644
--- a/pkgs/development/python-modules/python-bring-api/default.nix
+++ b/pkgs/development/python-modules/python-bring-api/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,20 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-VCGCm9N6pMhEYT9WuWh7qKacZEf6bcIpEsILfCC6his=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "python_bring_api"
-  ];
+  pythonImportsCheck = [ "python_bring_api" ];
 
   meta = with lib; {
     description = "Module to access the Bring! shopping lists API";
diff --git a/pkgs/development/python-modules/python-bsblan/default.nix b/pkgs/development/python-modules/python-bsblan/default.nix
index 01d9704c0399d..198d283c521a6 100644
--- a/pkgs/development/python-modules/python-bsblan/default.nix
+++ b/pkgs/development/python-modules/python-bsblan/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, aiohttp
-, aresponses
-, backoff
-, buildPythonPackage
-, fetchFromGitHub
-, packaging
-, poetry-core
-, pydantic
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  backoff,
+  buildPythonPackage,
+  fetchFromGitHub,
+  packaging,
+  poetry-core,
+  pydantic,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
     sed -i "/ruff/d" pyproject.toml
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -61,9 +60,7 @@ buildPythonPackage rec {
     "test_not_authorized_401_response"
   ];
 
-  pythonImportsCheck = [
-    "bsblan"
-  ];
+  pythonImportsCheck = [ "bsblan" ];
 
   meta = with lib; {
     description = "Module to control and monitor an BSBLan device programmatically";
diff --git a/pkgs/development/python-modules/python-cinderclient/default.nix b/pkgs/development/python-modules/python-cinderclient/default.nix
index 037d93adb4a64..b942574c6e9cc 100644
--- a/pkgs/development/python-modules/python-cinderclient/default.nix
+++ b/pkgs/development/python-modules/python-cinderclient/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, ddt
-, keystoneauth1
-, oslo-i18n
-, oslo-serialization
-, oslo-utils
-, pbr
-, requests
-, prettytable
-, requests-mock
-, simplejson
-, stestr
-, stevedore
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  ddt,
+  keystoneauth1,
+  oslo-i18n,
+  oslo-serialization,
+  oslo-utils,
+  pbr,
+  requests,
+  prettytable,
+  requests-mock,
+  simplejson,
+  stestr,
+  stevedore,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-codon-tables/default.nix b/pkgs/development/python-modules/python-codon-tables/default.nix
index 455ea329675d3..f5fc127aa471c 100644
--- a/pkgs/development/python-modules/python-codon-tables/default.nix
+++ b/pkgs/development/python-modules/python-codon-tables/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-constraint/default.nix b/pkgs/development/python-modules/python-constraint/default.nix
index 7b191010aac58..2a9dfd05a4599 100644
--- a/pkgs/development/python-modules/python-constraint/default.nix
+++ b/pkgs/development/python-modules/python-constraint/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
   # Check inputs
-, pytestCheckHook
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,7 @@ buildPythonPackage rec {
   dontUseSetuptoolsCheck = true;
 
   meta = with lib; {
-    description = "Constraint Solving Problem resolver for Python.";
+    description = "Constraint Solving Problem resolver for Python";
     homepage = "https://labix.org/doc/constraint/";
     downloadPage = "https://github.com/python-constraint/python-constraint/releases";
     license = licenses.bsd2;
diff --git a/pkgs/development/python-modules/python-creole/default.nix b/pkgs/development/python-modules/python-creole/default.nix
index 7f27466fa2be5..53f77d388f5f4 100644
--- a/pkgs/development/python-modules/python-creole/default.nix
+++ b/pkgs/development/python-modules/python-creole/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, runtimeShell
-
-# build
-, poetry-core
-
-# propagates
-, docutils
-
-# tests
-, pytestCheckHook
-, readme-renderer
-, textile
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  runtimeShell,
+
+  # build
+  poetry-core,
+
+  # propagates
+  docutils,
+
+  # tests
+  pytestCheckHook,
+  readme-renderer,
+  textile,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   postPatch = ''
     substituteInPlace Makefile \
@@ -48,13 +47,9 @@ buildPythonPackage rec {
     sed -i "/-cov/d" pytest.ini
   '';
 
-  propagatedBuildInputs = [
-    docutils
-  ];
+  propagatedBuildInputs = [ docutils ];
 
-  pythonImportsCheck = [
-    "creole"
-  ];
+  pythonImportsCheck = [ "creole" ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -86,6 +81,15 @@ buildPythonPackage rec {
     "creole/tests/test_rest2html.py"
   ];
 
+  pytestFlagsArray = [
+    # fixture mismatch after docutils update
+    "--deselect=creole/rest_tools/clean_writer.py::creole.rest_tools.clean_writer.rest2html"
+    "--deselect=creole/tests/test_cross_compare_all.py::CrossCompareTests::test_link"
+    "--deselect=creole/tests/test_cross_compare_all.py::CrossCompareTests::test_link_with_at_sign"
+    "--deselect=creole/tests/test_cross_compare_all.py::CrossCompareTests::test_link_with_unknown_protocol"
+    "--deselect=creole/tests/test_cross_compare_all.py::CrossCompareTests::test_link_without_title"
+  ];
+
   meta = with lib; {
     description = "Creole markup tools written in Python";
     homepage = "https://github.com/jedie/python-creole";
diff --git a/pkgs/development/python-modules/python-crfsuite/default.nix b/pkgs/development/python-modules/python-crfsuite/default.nix
index 34ed7eba301e5..834bfa60a0f0f 100644
--- a/pkgs/development/python-modules/python-crfsuite/default.nix
+++ b/pkgs/development/python-modules/python-crfsuite/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -20,13 +21,9 @@ buildPythonPackage rec {
     rm -r pycrfsuite
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pycrfsuite"
-  ];
+  pythonImportsCheck = [ "pycrfsuite" ];
 
   meta = with lib; {
     description = "Python binding for CRFsuite";
diff --git a/pkgs/development/python-modules/python-crontab/default.nix b/pkgs/development/python-modules/python-crontab/default.nix
index 8af332aa316b7..55522bc960b57 100644
--- a/pkgs/development/python-modules/python-crontab/default.nix
+++ b/pkgs/development/python-modules/python-crontab/default.nix
@@ -1,35 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python-dateutil
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python-dateutil,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "python-crontab";
-  version = "3.0.0";
+  version = "3.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-eft0ZQOd39T7k9By1u4NRcGsi/FZfwaG6hT9Q2Hbo3k=";
+    hash = "sha256-9OoWBdJFM7Z/p6Y07ybLWaXy55VPbmd9LXoiKZWaL8g=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    python-dateutil
-  ];
+  propagatedBuildInputs = [ python-dateutil ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     "test_07_non_posix_shell"
@@ -40,9 +35,7 @@ buildPythonPackage rec {
     "test_20_frequency_at_year"
   ];
 
-  pythonImportsCheck = [
-    "crontab"
-  ];
+  pythonImportsCheck = [ "crontab" ];
 
   meta = with lib; {
     description = "Python API for crontab";
diff --git a/pkgs/development/python-modules/python-csxcad/default.nix b/pkgs/development/python-modules/python-csxcad/default.nix
index b7dc56ed27746..364b266a9c73b 100644
--- a/pkgs/development/python-modules/python-csxcad/default.nix
+++ b/pkgs/development/python-modules/python-csxcad/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cython
-, openems
-, csxcad
-, numpy
-, matplotlib
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  openems,
+  csxcad,
+  numpy,
+  matplotlib,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +17,7 @@ buildPythonPackage rec {
 
   sourceRoot = "${src.name}/python";
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
   propagatedBuildInputs = [
     openems
@@ -28,7 +26,11 @@ buildPythonPackage rec {
     matplotlib
   ];
 
-  setupPyBuildFlags = [ "-I${openems}/include" "-L${openems}/lib" "-R${openems}/lib" ];
+  setupPyBuildFlags = [
+    "-I${openems}/include"
+    "-L${openems}/lib"
+    "-R${openems}/lib"
+  ];
 
   meta = with lib; {
     description = "Python interface to CSXCAD";
diff --git a/pkgs/development/python-modules/python-ctags3/default.nix b/pkgs/development/python-modules/python-ctags3/default.nix
index 245fa3209ccb0..aa82db324c160 100644
--- a/pkgs/development/python-modules/python-ctags3/default.nix
+++ b/pkgs/development/python-modules/python-ctags3/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, cython, fetchFromGitHub }:
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+}:
 
 buildPythonPackage rec {
   pname = "python-ctags3";
@@ -12,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-XVsZckNVJ1H5q8FzqoVd1UWRw0zOygvRtb7arX9dwGE=";
   };
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
   # Regenerating the bindings keeps later versions of Python happy
   postPatch = ''
diff --git a/pkgs/development/python-modules/python-daemon/default.nix b/pkgs/development/python-modules/python-daemon/default.nix
index a0dc1f05b76e5..bb6cf5d94ea1f 100644
--- a/pkgs/development/python-modules/python-daemon/default.nix
+++ b/pkgs/development/python-modules/python-daemon/default.nix
@@ -1,15 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, docutils
-, lockfile
-, pytestCheckHook
-, testscenarios
-, testtools
-, twine
-, python
-, pythonOlder
-, fetchpatch
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  docutils,
+  lockfile,
+  pytestCheckHook,
+  testscenarios,
+  testtools,
+  twine,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +23,7 @@ buildPythonPackage rec {
     sha256 = "sha256-bFdFI3L36v9Ak0ocA60YJr9eeTVY6H/vSRMeZGS02uU=";
   };
 
-  nativeBuildInputs = [
-    twine
-  ];
+  nativeBuildInputs = [ twine ];
 
   propagatedBuildInputs = [
     docutils
@@ -66,7 +63,10 @@ buildPythonPackage rec {
     description = "Library to implement a well-behaved Unix daemon process";
     homepage = "https://pagure.io/python-daemon/";
     # See "Copying" section in https://pagure.io/python-daemon/blob/main/f/README
-    license = with licenses; [ gpl3Plus asl20 ];
+    license = with licenses; [
+      gpl3Plus
+      asl20
+    ];
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/python-datemath/default.nix b/pkgs/development/python-modules/python-datemath/default.nix
index 3c12e92b9036f..4c2215602fff9 100644
--- a/pkgs/development/python-modules/python-datemath/default.nix
+++ b/pkgs/development/python-modules/python-datemath/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, arrow
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  arrow,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -29,21 +30,13 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
-    arrow
-  ];
+  propagatedBuildInputs = [ arrow ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests.py"
-  ];
+  pytestFlagsArray = [ "tests.py" ];
 
-  pythonImportsCheck = [
-    "datemath"
-  ];
+  pythonImportsCheck = [ "datemath" ];
 
   meta = with lib; {
     description = "Python module to emulate the date math used in SOLR and Elasticsearch";
diff --git a/pkgs/development/python-modules/python-dateutil/default.nix b/pkgs/development/python-modules/python-dateutil/default.nix
index dd7cc0f2ea1a5..71def22fc9c51 100644
--- a/pkgs/development/python-modules/python-dateutil/default.nix
+++ b/pkgs/development/python-modules/python-dateutil/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -41,7 +42,10 @@ buildPythonPackage rec {
     changelog = "https://github.com/dateutil/dateutil/blob/${version}/NEWS";
     description = "Powerful extensions to the standard datetime module";
     homepage = "https://github.com/dateutil/dateutil/";
-    license = with licenses; [ asl20 bsd3 ];
+    license = with licenses; [
+      asl20
+      bsd3
+    ];
     maintainers = with maintainers; [ dotlambda ];
   };
 }
diff --git a/pkgs/development/python-modules/python-dbusmock/default.nix b/pkgs/development/python-modules/python-dbusmock/default.nix
index cec0275dfdbe4..9092a49d76903 100644
--- a/pkgs/development/python-modules/python-dbusmock/default.nix
+++ b/pkgs/development/python-modules/python-dbusmock/default.nix
@@ -1,15 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nose
-, dbus
-, gobject-introspection
-, dbus-python
-, pygobject3
-, bluez
-, networkmanager
-, setuptools-scm
-, runCommand
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  runCommand,
+
+  # build-system
+  setuptools,
+  setuptools-scm,
+
+  # dependencies
+  dbus-python,
+
+  # checks
+  dbus,
+  gobject-introspection,
+  pygobject3,
+  bluez,
+  networkmanager,
+  pytestCheckHook,
 }:
 
 let
@@ -19,10 +27,11 @@ let
     mkdir -p "$out/bin"
     ln -s "${bluez.test}/test/pbap-client" "$out/bin/pbap-client"
   '';
-in buildPythonPackage rec {
+in
+buildPythonPackage rec {
   pname = "python-dbusmock";
   version = "0.31.1";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "martinpitt";
@@ -31,13 +40,12 @@ in buildPythonPackage rec {
     hash = "sha256-DdV78o089Jkc7mSsGvlJgVpv8kPpMILo7lC6EbLxkxg=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
+    setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    dbus-python
-  ];
+  dependencies = [ dbus-python ];
 
   nativeCheckInputs = [
     dbus
@@ -46,39 +54,19 @@ in buildPythonPackage rec {
     bluez
     pbap-client
     networkmanager
-    nose
+    pytestCheckHook
   ];
 
-  # TODO: Get the rest of these tests running?
-  NOSE_EXCLUDE = lib.concatStringsSep "," [
-    "test_bluez4" # NixOS ships BlueZ5
-    # These appear to fail because they're expecting to run in an Ubuntu chroot?
-    "test_everything" # BlueZ5 OBEX
-    "test_polkitd"
-    "test_consolekit"
-    "test_api"
-    "test_logind"
-    "test_notification_daemon"
-    "test_ofono"
-    "test_gnome_screensaver"
-    "test_cli"
-    "test_timedated"
-    "test_upower"
-    # needs glib
-    "test_accounts_service"
-    # needs dbus-daemon active
-    "test_systemd"
-    # Very slow, consider disabling?
-    # "test_networkmanager"
+  disabledTests = [
+    # wants to call upower, which is a reverse-dependency
+    "test_dbusmock_test_template"
+    # Failed to execute program org.TestSystem: No such file or directory
+    "test_system_service_activation"
+    "test_session_service_activation"
   ];
 
-  checkPhase = ''
-    runHook preCheck
-    nosetests -v
-    runHook postCheck
-  '';
-
   meta = with lib; {
+    changelog = "https://github.com/martinpitt/python-dbusmock/releases/tag/${version}";
     description = "Mock D-Bus objects for tests";
     homepage = "https://github.com/martinpitt/python-dbusmock";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/python-modules/python-decouple/default.nix b/pkgs/development/python-modules/python-decouple/default.nix
index 144aec0fa5c51..41173ce424864 100644
--- a/pkgs/development/python-modules/python-decouple/default.nix
+++ b/pkgs/development/python-modules/python-decouple/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "decouple"
-  ];
+  pythonImportsCheck = [ "decouple" ];
 
   meta = with lib; {
     description = "Module to handle code and condifuration";
diff --git a/pkgs/development/python-modules/python-didl-lite/default.nix b/pkgs/development/python-modules/python-didl-lite/default.nix
index aaa5467308442..05746ccfadf56 100644
--- a/pkgs/development/python-modules/python-didl-lite/default.nix
+++ b/pkgs/development/python-modules/python-didl-lite/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, defusedxml
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  defusedxml,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-A+G97T/udyL/yRqykq1sEGDEI6ZwtDBc5xUNFiJp0UQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    defusedxml
-  ];
+  propagatedBuildInputs = [ defusedxml ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "didl_lite"
-  ];
+  pythonImportsCheck = [ "didl_lite" ];
 
   meta = with lib; {
     description = "DIDL-Lite (Digital Item Declaration Language) tools for Python";
diff --git a/pkgs/development/python-modules/python-digitalocean/default.nix b/pkgs/development/python-modules/python-digitalocean/default.nix
index c0ab09542d952..4597db497fb90 100644
--- a/pkgs/development/python-modules/python-digitalocean/default.nix
+++ b/pkgs/development/python-modules/python-digitalocean/default.nix
@@ -50,9 +50,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/koalalorenzo/python-digitalocean";
     changelog = "https://github.com/koalalorenzo/python-digitalocean/releases/tag/v${version}";
     license = with licenses; [ lgpl3Only ];
-    maintainers = with maintainers; [
-      kiwi
-      teh
-    ];
+    maintainers = with maintainers; [ teh ];
   };
 }
diff --git a/pkgs/development/python-modules/python-djvulibre/default.nix b/pkgs/development/python-modules/python-djvulibre/default.nix
index 3853e79511678..de74e70eb79b7 100644
--- a/pkgs/development/python-modules/python-djvulibre/default.nix
+++ b/pkgs/development/python-modules/python-djvulibre/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cython
-, djvulibre
-, ghostscript_headless
-, packaging
-, pkg-config
-, requests
-, setuptools
-, unittestCheckHook
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cython,
+  djvulibre,
+  ghostscript_headless,
+  packaging,
+  pkg-config,
+  requests,
+  setuptools,
+  unittestCheckHook,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -43,7 +44,10 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [ "tests" "-v" ];
+  unittestFlagsArray = [
+    "tests"
+    "-v"
+  ];
 
   meta = with lib; {
     description = "Python support for the DjVu image format";
diff --git a/pkgs/development/python-modules/python-docs-theme/default.nix b/pkgs/development/python-modules/python-docs-theme/default.nix
index e464edc7cbc54..8ac3ce7967993 100644
--- a/pkgs/development/python-modules/python-docs-theme/default.nix
+++ b/pkgs/development/python-modules/python-docs-theme/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pythonOlder
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pythonOlder,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-x1r71/Urpqf0FtL2Bao5SgsRQfmwym34F7qYzxFkT5c=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-   sphinx
-  ];
+  propagatedBuildInputs = [ sphinx ];
 
-  pythonImportsCheck = [
-    "python_docs_theme"
-  ];
+  pythonImportsCheck = [ "python_docs_theme" ];
 
   meta = with lib; {
     description = "Sphinx theme for CPython project";
diff --git a/pkgs/development/python-modules/python-docx/default.nix b/pkgs/development/python-modules/python-docx/default.nix
index 6a5c01d216da7..28c4d4c3c115d 100644
--- a/pkgs/development/python-modules/python-docx/default.nix
+++ b/pkgs/development/python-modules/python-docx/default.nix
@@ -1,33 +1,34 @@
-{ lib
-, behave
-, buildPythonPackage
-, fetchPypi
-, lxml
-, mock
-, pyparsing
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  behave,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxml,
+  mock,
+  pyparsing,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "python-docx";
-  version = "1.1.0";
+  version = "1.1.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-WCm3IhQc8at5rt8MNNn+mSSyl2RYTA8hZOsrAtzfF8k=";
+  src = fetchFromGitHub {
+    owner = "python-openxml";
+    repo = "python-docx";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-isxMtq5j5J02GcHMzOJdJw+ZokLoxA6fG1xsN21Irbc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     lxml
     typing-extensions
   ];
@@ -43,9 +44,7 @@ buildPythonPackage rec {
     behave --format progress --stop --tags=-wip
   '';
 
-  pythonImportsCheck = [
-    "docx"
-  ];
+  pythonImportsCheck = [ "docx" ];
 
   disabledTests = [
     # https://github.com/python-openxml/python-docx/issues/1302
diff --git a/pkgs/development/python-modules/python-doi/default.nix b/pkgs/development/python-modules/python-doi/default.nix
index b917611deb36a..c624d12845324 100644
--- a/pkgs/development/python-modules/python-doi/default.nix
+++ b/pkgs/development/python-modules/python-doi/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy3k }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy3k,
+}:
 
 buildPythonPackage rec {
   pname = "python-doi";
diff --git a/pkgs/development/python-modules/python-dotenv/default.nix b/pkgs/development/python-modules/python-dotenv/default.nix
index 5a860279bc46f..30b817686a659 100644
--- a/pkgs/development/python-modules/python-dotenv/default.nix
+++ b/pkgs/development/python-modules/python-dotenv/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchPypi
-, ipython
-, mock
-, pytestCheckHook
-, pythonOlder
-, sh
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchPypi,
+  ipython,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
+  sh,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     sh
   ];
 
-  disabledTests = [
-    "cli"
-  ];
+  disabledTests = [ "cli" ];
 
   pythonImportsCheck = [ "dotenv" ];
 
diff --git a/pkgs/development/python-modules/python-ecobee-api/default.nix b/pkgs/development/python-modules/python-ecobee-api/default.nix
index 4d12ee0c99d7c..ad51ef12d5c9d 100644
--- a/pkgs/development/python-modules/python-ecobee-api/default.nix
+++ b/pkgs/development/python-modules/python-ecobee-api/default.nix
@@ -1,22 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "python-ecobee-api";
-  version = "0.2.17";
-  format = "setuptools";
+  version = "0.2.18";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-lJCbNOQJ8xmMa4V+tSFZx4QasK8ZLfsFavMP9Zge4K4=";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "nkgilley";
+    repo = "python-ecobee-api";
+    rev = "refs/tags/${version}";
+    hash = "sha256-WBVHlA7cAQGCFRNSANX6PqPQYMRw74GEAlTFwSBxVQU=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ requests ];
 
   # no tests implemented
   doCheck = false;
@@ -26,6 +33,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python API for talking to Ecobee thermostats";
     homepage = "https://github.com/nkgilley/python-ecobee-api";
+    changelog = "https://github.com/nkgilley/python-ecobee-api/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
   };
diff --git a/pkgs/development/python-modules/python-editor/default.nix b/pkgs/development/python-modules/python-editor/default.nix
index 40c86f3cf527d..21ae55ef67015 100644
--- a/pkgs/development/python-modules/python-editor/default.nix
+++ b/pkgs/development/python-modules/python-editor/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage {
@@ -19,7 +20,7 @@ buildPythonPackage {
   doCheck = false;
 
   meta = with lib; {
-    description = "A library that provides the `editor` module for programmatically";
+    description = "Library that provides the `editor` module for programmatically";
     homepage = "https://github.com/fmoo/python-editor";
     license = licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/python-efl/default.nix b/pkgs/development/python-modules/python-efl/default.nix
index 6bc480b315de6..63c1043729fe7 100644
--- a/pkgs/development/python-modules/python-efl/default.nix
+++ b/pkgs/development/python-modules/python-efl/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchurl
-, buildPythonPackage
-, pkg-config
-, python
-, dbus-python
-, packaging
-, enlightenment
-, directoryListingUpdater
+{
+  lib,
+  fetchurl,
+  buildPythonPackage,
+  pkg-config,
+  python,
+  dbus-python,
+  packaging,
+  enlightenment,
+  directoryListingUpdater,
 }:
 
 # Should be bumped along with EFL!
@@ -25,7 +26,10 @@ buildPythonPackage rec {
 
   buildInputs = [ enlightenment.efl ];
 
-  propagatedBuildInputs = [ dbus-python packaging ];
+  propagatedBuildInputs = [
+    dbus-python
+    packaging
+  ];
 
   preConfigure = ''
     NIX_CFLAGS_COMPILE="$(pkg-config --cflags efl evas) $NIX_CFLAGS_COMPILE"
@@ -47,7 +51,16 @@ buildPythonPackage rec {
     description = "Python bindings for Enlightenment Foundation Libraries";
     homepage = "https://github.com/DaveMDS/python-efl";
     platforms = platforms.linux;
-    license = with licenses; [ gpl3 lgpl3 ];
-    maintainers = with maintainers; [ matejc ftrvxmtrx ] ++ teams.enlightenment.members;
+    license = with licenses; [
+      gpl3
+      lgpl3
+    ];
+    maintainers =
+      with maintainers;
+      [
+        matejc
+        ftrvxmtrx
+      ]
+      ++ teams.enlightenment.members;
   };
 }
diff --git a/pkgs/development/python-modules/python-engineio/default.nix b/pkgs/development/python-modules/python-engineio/default.nix
index 952893fec269c..a7eb7fe8dd17e 100644
--- a/pkgs/development/python-modules/python-engineio/default.nix
+++ b/pkgs/development/python-modules/python-engineio/default.nix
@@ -1,51 +1,46 @@
-{ lib
-, stdenv
-, aiohttp
-, buildPythonPackage
-, setuptools
-, eventlet
-, fetchFromGitHub
-, iana-etc
-, libredirect
-, mock
-, pytestCheckHook
-, pythonOlder
-, requests
-, simple-websocket
-, tornado
-, websocket-client
+{
+  lib,
+  stdenv,
+  aiohttp,
+  buildPythonPackage,
+  setuptools,
+  eventlet,
+  fetchFromGitHub,
+  iana-etc,
+  libredirect,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  simple-websocket,
+  tornado,
+  websocket-client,
 }:
 
 buildPythonPackage rec {
   pname = "python-engineio";
-  version = "4.9.0";
+  version = "4.9.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "miguelgrinberg";
     repo = "python-engineio";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FpPGIK5HVtTzDOpORo+WPhS1860P3dm1nJkvakpzsjE=";
+    hash = "sha256-wn2qiVkL05GTopGJeghHe9i+wyOQZbEeYDmEIIbXDS0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    simple-websocket
-  ];
+  dependencies = [ simple-websocket ];
 
   passthru.optional-dependencies = {
     client = [
       requests
       websocket-client
     ];
-    asyncio_client = [
-      aiohttp
-    ];
+    asyncio_client = [ aiohttp ];
   };
 
   nativeCheckInputs = [
@@ -71,13 +66,9 @@ buildPythonPackage rec {
   '';
 
   # somehow effective log level does not change?
-  disabledTests = [
-    "test_logger"
-  ];
+  disabledTests = [ "test_logger" ];
 
-  pythonImportsCheck = [
-    "engineio"
-  ];
+  pythonImportsCheck = [ "engineio" ];
 
   meta = with lib; {
     description = "Python based Engine.IO client and server";
diff --git a/pkgs/development/python-modules/python-etcd/default.nix b/pkgs/development/python-modules/python-etcd/default.nix
index 4e711d914086b..b9dcd8aaee394 100644
--- a/pkgs/development/python-modules/python-etcd/default.nix
+++ b/pkgs/development/python-modules/python-etcd/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-, mock
-, pyopenssl
-, urllib3
-, dnspython
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+  mock,
+  pyopenssl,
+  urllib3,
+  dnspython,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,16 @@ buildPythonPackage rec {
     sha256 = "f1b5ebb825a3e8190494f5ce1509fde9069f2754838ed90402a8c11e1f52b8cb";
   };
 
-  buildInputs = [ nose mock pyopenssl ];
+  buildInputs = [
+    nose
+    mock
+    pyopenssl
+  ];
 
-  propagatedBuildInputs = [ urllib3 dnspython ];
+  propagatedBuildInputs = [
+    urllib3
+    dnspython
+  ];
 
   postPatch = ''
     sed -i '19s/dns/"dnspython"/' setup.py
@@ -30,9 +38,8 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A python client for Etcd";
+    description = "Python client for Etcd";
     homepage = "https://github.com/jplana/python-etcd";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/python-ethtool/default.nix b/pkgs/development/python-modules/python-ethtool/default.nix
index d91550e029131..b140db8c9f220 100644
--- a/pkgs/development/python-modules/python-ethtool/default.nix
+++ b/pkgs/development/python-modules/python-ethtool/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pkg-config
-, libnl
-, nettools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pkg-config,
+  libnl,
+  nettools,
 }:
 
 buildPythonPackage rec {
@@ -30,6 +31,5 @@ buildPythonPackage rec {
     description = "Python bindings for the ethtool kernel interface";
     homepage = "https://github.com/fedora-python/python-ethtool";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/python-ev3dev2/default.nix b/pkgs/development/python-modules/python-ev3dev2/default.nix
index 219678ef24218..dc185aced7d11 100644
--- a/pkgs/development/python-modules/python-ev3dev2/default.nix
+++ b/pkgs/development/python-modules/python-ev3dev2/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, pillow
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  pillow,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-family-hub-local/default.nix b/pkgs/development/python-modules/python-family-hub-local/default.nix
index 01d9da8423ddd..14a14e829ead7 100644
--- a/pkgs/development/python-modules/python-family-hub-local/default.nix
+++ b/pkgs/development/python-modules/python-family-hub-local/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, aiohttp
-, async-timeout
-, pillow
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  aiohttp,
+  async-timeout,
+  pillow,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyfamilyhublocal"
-  ];
+  pythonImportsCheck = [ "pyfamilyhublocal" ];
 
   meta = with lib; {
     description = "Module to accesse information from Samsung FamilyHub fridges locally";
diff --git a/pkgs/development/python-modules/python-fedora/default.nix b/pkgs/development/python-modules/python-fedora/default.nix
index 01c79c39ea1c5..f424a3f01b977 100644
--- a/pkgs/development/python-modules/python-fedora/default.nix
+++ b/pkgs/development/python-modules/python-fedora/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchPypi
-, kitchen
-, lockfile
-, munch
-, nose
-, openidc-client
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
-, six
-, urllib3
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchPypi,
+  kitchen,
+  lockfile,
+  munch,
+  nose,
+  openidc-client,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
+  six,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-VrnYQaObQDDjiOkMe3fazUefHOXi/5sYw5VNl9Vwmhk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     beautifulsoup4
@@ -52,9 +51,7 @@ buildPythonPackage rec {
     "tests/functional/test_openidbaseclient.py"
   ];
 
-  pythonImportsCheck = [
-    "fedora"
-  ];
+  pythonImportsCheck = [ "fedora" ];
 
   meta = with lib; {
     description = "Module to interact with the infrastructure of the Fedora Project";
diff --git a/pkgs/development/python-modules/python-flirt/default.nix b/pkgs/development/python-modules/python-flirt/default.nix
index 54d942fd08408..8034a621f8b28 100644
--- a/pkgs/development/python-modules/python-flirt/default.nix
+++ b/pkgs/development/python-modules/python-flirt/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, rustPlatform
-, libiconv
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  rustPlatform,
+  libiconv,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     maturinBuildHook
   ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
-    libiconv
-  ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   buildAndTestSubdir = "pyflirt";
 
diff --git a/pkgs/development/python-modules/python-fontconfig/default.nix b/pkgs/development/python-modules/python-fontconfig/default.nix
index 7eab74cb280e9..314f733ca1706 100644
--- a/pkgs/development/python-modules/python-fontconfig/default.nix
+++ b/pkgs/development/python-modules/python-fontconfig/default.nix
@@ -1,10 +1,19 @@
-{ lib, buildPythonPackage, fetchPypi, fontconfig, python, cython, freefont_ttf, makeFontsConf }:
+{
+  buildPythonPackage,
+  cython,
+  fetchPypi,
+  fetchpatch,
+  fontconfig,
+  freefont_ttf,
+  lib,
+  makeFontsConf,
+  python,
+}:
 
 let
-  fontsConf = makeFontsConf {
-    fontDirectories = [ freefont_ttf ];
-  };
-in buildPythonPackage rec {
+  fontsConf = makeFontsConf { fontDirectories = [ freefont_ttf ]; };
+in
+buildPythonPackage rec {
   pname = "python-fontconfig";
   version = "0.5.1";
 
@@ -17,6 +26,16 @@ in buildPythonPackage rec {
   buildInputs = [ fontconfig ];
   nativeBuildInputs = [ cython ];
 
+  patches = [
+    # distutils has been removed since python 3.12
+    # See https://github.com/vayn/python-fontconfig/pull/10
+    (fetchpatch {
+      name = "no-distutils.patch";
+      url = "https://github.com/vayn/python-fontconfig/commit/15e1a72c90e93a665569e0ba771ae53c7c8020c8.patch";
+      hash = "sha256-2mAemltWh3+LV4FDOg6uSD09zok3Eyd+v1WJJdouOV8=";
+    })
+  ];
+
   preBuild = ''
     ${python.pythonOnBuildForHost.interpreter} setup.py build_ext -i
   '';
diff --git a/pkgs/development/python-modules/python-frontmatter/default.nix b/pkgs/development/python-modules/python-frontmatter/default.nix
index eab892f492835..7f630a0705a8d 100644
--- a/pkgs/development/python-modules/python-frontmatter/default.nix
+++ b/pkgs/development/python-modules/python-frontmatter/default.nix
@@ -1,4 +1,12 @@
-{ lib, fetchFromGitHub, buildPythonPackage, pyyaml, six, pytest, pyaml }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pyyaml,
+  six,
+  pytest,
+  pyaml,
+}:
 
 buildPythonPackage rec {
   pname = "python-frontmatter";
@@ -21,9 +29,7 @@ buildPythonPackage rec {
   # tries to import test.test, which conflicts with module
   # exported by python interpreter
   doCheck = false;
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
   pythonImportsCheck = [ "frontmatter" ];
 
diff --git a/pkgs/development/python-modules/python-fsutil/default.nix b/pkgs/development/python-modules/python-fsutil/default.nix
index c1c433ddd2db6..5bf32af287575 100644
--- a/pkgs/development/python-modules/python-fsutil/default.nix
+++ b/pkgs/development/python-modules/python-fsutil/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-Cs78zpf3W5UZJkkUBEP6l6fi2J4OtJXGvqqQ8PWKx+8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests/test.py"
-  ];
+  pytestFlagsArray = [ "tests/test.py" ];
 
   disabledTests = [
     # Tests require network access
@@ -43,9 +36,7 @@ buildPythonPackage rec {
     "test_read_file_from_url"
   ];
 
-  pythonImportsCheck = [
-    "fsutil"
-  ];
+  pythonImportsCheck = [ "fsutil" ];
 
   meta = with lib; {
     description = "Module with file-system utilities";
diff --git a/pkgs/development/python-modules/python-fullykiosk/default.nix b/pkgs/development/python-modules/python-fullykiosk/default.nix
index d1931f82f3104..3e3a65ff9815e 100644
--- a/pkgs/development/python-modules/python-fullykiosk/default.nix
+++ b/pkgs/development/python-modules/python-fullykiosk/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "python-fullykiosk";
-  version = "0.0.12";
+  version = "0.0.13";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -16,19 +17,15 @@ buildPythonPackage rec {
     owner = "cgarwood";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-88PsJ1qAlOpxDtZyQe8pFC2Y3ygg3boiPxmYad58Fm8=";
+    hash = "sha256-GElLaSSr/EEhtjgasP2C79kf+HluVPuQ21I8La7IvLs=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "fullykiosk"
-  ];
+  pythonImportsCheck = [ "fullykiosk" ];
 
   meta = with lib; {
     description = "Wrapper for Fully Kiosk Browser REST interface";
diff --git a/pkgs/development/python-modules/python-fx/default.nix b/pkgs/development/python-modules/python-fx/default.nix
index 8e7de3b6a336b..b3a15ff913ca3 100644
--- a/pkgs/development/python-modules/python-fx/default.nix
+++ b/pkgs/development/python-modules/python-fx/default.nix
@@ -1,31 +1,31 @@
-{ lib
-, antlr4-python3-runtime
-, asciimatics
-, buildPythonPackage
-, click
-, dacite
-, decorator
-, fetchFromGitHub
-, future
-, first
-, jsonpath-ng
-, loguru
-, overrides
-, pillow
-, ply
-, pyfiglet
-, pyperclip
-, pytestCheckHook
-, pythonOlder
-, antlr4
-, pythonRelaxDepsHook
-, pyyaml
-, setuptools
-, six
-, urwid
-, parameterized
-, wcwidth
-, yamale
+{
+  lib,
+  antlr4-python3-runtime,
+  asciimatics,
+  buildPythonPackage,
+  click,
+  dacite,
+  decorator,
+  fetchFromGitHub,
+  future,
+  first,
+  jsonpath-ng,
+  loguru,
+  overrides,
+  pillow,
+  ply,
+  pyfiglet,
+  pyperclip,
+  pytestCheckHook,
+  pythonOlder,
+  antlr4,
+  pyyaml,
+  setuptools,
+  six,
+  urwid,
+  parameterized,
+  wcwidth,
+  yamale,
 }:
 
 buildPythonPackage rec {
@@ -51,7 +51,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     antlr4
-    pythonRelaxDepsHook
     setuptools
   ];
 
diff --git a/pkgs/development/python-modules/python-gammu/default.nix b/pkgs/development/python-modules/python-gammu/default.nix
index 4fb5e259329af..ed35a96f77520 100644
--- a/pkgs/development/python-modules/python-gammu/default.nix
+++ b/pkgs/development/python-modules/python-gammu/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
   #, pytestCheckHook
-, pythonOlder
-, pkg-config
-, gammu
+  pythonOlder,
+  pkg-config,
+  gammu,
 }:
 
 buildPythonPackage rec {
@@ -21,22 +22,16 @@ buildPythonPackage rec {
     hash = "sha256-lFQBrKWwdvUScwsBva08izZVeVDn1u+ldzixtL9YTpA=";
   };
 
-  nativeBuildInputs = [
-    pkg-config
-  ];
+  nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [
-    gammu
-  ];
+  buildInputs = [ gammu ];
 
   # Check with the next release if tests could be run with pytest
   # nativeCheckInputs = [ pytestCheckHook ];
   # Don't run tests for now
   doCheck = false;
 
-  pythonImportsCheck = [
-    "gammu"
-  ];
+  pythonImportsCheck = [ "gammu" ];
 
   meta = with lib; {
     description = "Python bindings for Gammu";
diff --git a/pkgs/development/python-modules/python-gitlab/default.nix b/pkgs/development/python-modules/python-gitlab/default.nix
index 3703843091d2c..8d7d40c4a7349 100644
--- a/pkgs/development/python-modules/python-gitlab/default.nix
+++ b/pkgs/development/python-modules/python-gitlab/default.nix
@@ -1,33 +1,33 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-
-# build-system
-, setuptools
-
-# dependencies
-, argcomplete
-, requests
-, requests-toolbelt
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  argcomplete,
+  requests,
+  requests-toolbelt,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
   pname = "python-gitlab";
-  version = "4.4.0";
+  version = "4.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-HRF797QzroJV5ddOcsZgl49Q7oXrYiSMn7Uu9Dw+OBQ=";
+    pname = "python_gitlab";
+    inherit version;
+    hash = "sha256-tWrjY4kDdMrt6FPvVS6SxBVR1gWADeHGS6YbzyXyN7A=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     requests
@@ -35,20 +35,14 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    autocompletion = [
-      argcomplete
-    ];
-    yaml = [
-      pyyaml
-    ];
+    autocompletion = [ argcomplete ];
+    yaml = [ pyyaml ];
   };
 
   # Tests rely on a gitlab instance on a local docker setup
   doCheck = false;
 
-  pythonImportsCheck = [
-    "gitlab"
-  ];
+  pythonImportsCheck = [ "gitlab" ];
 
   meta = with lib; {
     description = "Interact with GitLab API";
diff --git a/pkgs/development/python-modules/python-glanceclient/default.nix b/pkgs/development/python-modules/python-glanceclient/default.nix
index 9fd1f21a083d8..0130c690ef4c3 100644
--- a/pkgs/development/python-modules/python-glanceclient/default.nix
+++ b/pkgs/development/python-modules/python-glanceclient/default.nix
@@ -1,40 +1,57 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, coreutils
-, pbr
-, prettytable
-, keystoneauth1
-, requests
-, warlock
-, oslo-utils
-, oslo-i18n
-, wrapt
-, pyopenssl
-, pythonOlder
-, stestr
-, testscenarios
-, ddt
-, requests-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  coreutils,
+  setuptools,
+  pbr,
+  prettytable,
+  keystoneauth1,
+  requests,
+  warlock,
+  oslo-utils,
+  oslo-i18n,
+  wrapt,
+  pyopenssl,
+  pythonOlder,
+  stestr,
+  testscenarios,
+  ddt,
+  requests-mock,
+  writeText,
 }:
-
-buildPythonPackage rec {
+let
   pname = "python-glanceclient";
-  version = "4.5.0";
-  format = "setuptools";
+  version = "4.6.0";
+
+  disabledTests = [
+    "test_http_chunked_response"
+    "test_v1_download_has_no_stray_output_to_stdout"
+    "test_v2_requests_valid_cert_verification"
+    "test_download_has_no_stray_output_to_stdout"
+    "test_v2_download_has_no_stray_output_to_stdout"
+    "test_v2_requests_valid_cert_verification_no_compression"
+    "test_log_request_id_once"
+  ];
+in
+buildPythonPackage {
+  inherit pname version;
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZGTE1be+S/4Tbhw6Px+9qMgkNTZgoDn6lnAJhNvVYuA=";
+    hash = "sha256-gJm4TzxtIjvkpOlbN82MPbY0JmDdiwlEMGGxZvTR+Po=";
   };
 
   postPatch = ''
     substituteInPlace glanceclient/tests/unit/v1/test_shell.py \
-      --replace "/bin/echo" "${coreutils}/bin/echo"
+      --replace-fail "/bin/echo" "${lib.getExe' coreutils "echo"}"
   '';
 
+  nativeBuildInputs = [ setuptools ];
+
   propagatedBuildInputs = [
     pbr
     prettytable
@@ -55,12 +72,12 @@ buildPythonPackage rec {
   ];
 
   checkPhase = ''
-    stestr run
+    runHook preCheck
+    stestr run -e ${writeText "disabled-tests" (lib.concatStringsSep "\n" disabledTests)}
+    runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "glanceclient"
-  ];
+  pythonImportsCheck = [ "glanceclient" ];
 
   meta = with lib; {
     description = "Python bindings for the OpenStack Images API";
diff --git a/pkgs/development/python-modules/python-gnupg/default.nix b/pkgs/development/python-modules/python-gnupg/default.nix
index 95ebc2b954e8e..32c9ccd33a9ac 100644
--- a/pkgs/development/python-modules/python-gnupg/default.nix
+++ b/pkgs/development/python-modules/python-gnupg/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, gnupg
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  gnupg,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +25,9 @@ buildPythonPackage rec {
       --replace "os.environ.get('GPGBINARY', 'gpg')" "os.environ.get('GPGBINARY', '${gnupg}/bin/gpg')"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # network access
diff --git a/pkgs/development/python-modules/python-google-nest/default.nix b/pkgs/development/python-modules/python-google-nest/default.nix
index 32dc8de3964ad..39e4b707c5b97 100644
--- a/pkgs/development/python-modules/python-google-nest/default.nix
+++ b/pkgs/development/python-modules/python-google-nest/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests-oauthlib
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests-oauthlib,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-qL4Qk2NW41Sb9raF0vnEb04w3uyaWPauDnNY+DvnNgQ=";
   };
 
-  propagatedBuildInputs = [
-    requests-oauthlib
-  ];
+  propagatedBuildInputs = [ requests-oauthlib ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "nest"
-  ];
+  pythonImportsCheck = [ "nest" ];
 
   meta = with lib; {
     description = "Python API and command line tool for talking to Nest thermostats";
diff --git a/pkgs/development/python-modules/python-gvm/default.nix b/pkgs/development/python-modules/python-gvm/default.nix
index efe048a33d1fc..b2c59c10ecd9a 100644
--- a/pkgs/development/python-modules/python-gvm/default.nix
+++ b/pkgs/development/python-modules/python-gvm/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, defusedxml
-, fetchFromGitHub
-, lxml
-, paramiko
-, poetry-core
-, pontos
-, pytestCheckHook
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  defusedxml,
+  fetchFromGitHub,
+  lxml,
+  paramiko,
+  poetry-core,
+  pontos,
+  pytestCheckHook,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "python-gvm";
-  version = "24.3.0";
+  version = "24.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -23,12 +24,12 @@ buildPythonPackage rec {
     owner = "greenbone";
     repo = "python-gvm";
     rev = "refs/tags/v${version}";
-    hash = "sha256-GIEsP8+RJMIehsBbZWpIRXCdqxm042lPbYTHY7/fknM=";
+    hash = "sha256-4Wa8O6kt4FsQk6VvE1dCdl9hQReO3YCf/4hTGcGaQxE=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
+
+  pythonRelaxDeps = [ "defusedxml" ];
 
   dependencies = [
     defusedxml
@@ -46,13 +47,9 @@ buildPythonPackage rec {
     # No running SSH available
     "test_connect_error"
     "test_feed_xml_error"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_feed_xml_error"
-  ];
+  ] ++ lib.optionals stdenv.isDarwin [ "test_feed_xml_error" ];
 
-  pythonImportsCheck = [
-    "gvm"
-  ];
+  pythonImportsCheck = [ "gvm" ];
 
   meta = with lib; {
     description = "Collection of APIs that help with remote controlling a Greenbone Security Manager";
diff --git a/pkgs/development/python-modules/python-heatclient/default.nix b/pkgs/development/python-modules/python-heatclient/default.nix
index d29b07a94e505..d2cefc90b58da 100644
--- a/pkgs/development/python-modules/python-heatclient/default.nix
+++ b/pkgs/development/python-modules/python-heatclient/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, cliff
-, fetchPypi
-, iso8601
-, keystoneauth1
-, osc-lib
-, oslo-i18n
-, oslo-serialization
-, oslo-utils
-, pbr
-, prettytable
-, python-swiftclient
-, pythonOlder
-, pyyaml
-, requests
-, requests-mock
-, stestr
-, testscenarios
+{
+  lib,
+  buildPythonPackage,
+  cliff,
+  fetchPypi,
+  iso8601,
+  keystoneauth1,
+  osc-lib,
+  oslo-i18n,
+  oslo-serialization,
+  oslo-utils,
+  pbr,
+  prettytable,
+  python-swiftclient,
+  pythonOlder,
+  pyyaml,
+  requests,
+  requests-mock,
+  stestr,
+  testscenarios,
 }:
 
 buildPythonPackage rec {
@@ -59,9 +60,7 @@ buildPythonPackage rec {
     ")
   '';
 
-  pythonImportsCheck = [
-    "heatclient"
-  ];
+  pythonImportsCheck = [ "heatclient" ];
 
   meta = with lib; {
     description = "Library for Heat built on the Heat orchestration API";
diff --git a/pkgs/development/python-modules/python-hglib/default.nix b/pkgs/development/python-modules/python-hglib/default.nix
index 5cce7429173f0..528316240c0a2 100644
--- a/pkgs/development/python-modules/python-hglib/default.nix
+++ b/pkgs/development/python-modules/python-hglib/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mercurial
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mercurial,
+  nose,
 }:
 
 buildPythonPackage rec {
@@ -15,7 +16,10 @@ buildPythonPackage rec {
     hash = "sha256-sYvR7VPJDuV9VxTWata7crZOkw1K7KmDCJLAi7KNpgg=";
   };
 
-  nativeCheckInputs = [ mercurial nose ];
+  nativeCheckInputs = [
+    mercurial
+    nose
+  ];
 
   preCheck = ''
     export HGTMP=$(mktemp -d)
@@ -25,9 +29,9 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "hglib" ];
 
   meta = with lib; {
-    description = "Library with a fast, convenient interface to Mercurial. It uses Mercurial’s command server for communication with hg.";
+    description = "Library with a fast, convenient interface to Mercurial. It uses Mercurial’s command server for communication with hg";
     homepage = "https://www.mercurial-scm.org/wiki/PythonHglibs";
     license = licenses.mit;
-    maintainers = [];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/python-hl7/default.nix b/pkgs/development/python-modules/python-hl7/default.nix
index 1c2b058608699..b194bd7ca38bc 100644
--- a/pkgs/development/python-modules/python-hl7/default.nix
+++ b/pkgs/development/python-modules/python-hl7/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -27,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "hl7" ];
 
   meta = with lib; {
-    description = "A simple library for parsing messages of Health Level 7 (HL7) version 2.x into Python objects";
+    description = "Simple library for parsing messages of Health Level 7 (HL7) version 2.x into Python objects";
     mainProgram = "mllp_send";
     homepage = "https://python-hl7.readthedocs.org";
     changelog = "https://python-hl7.readthedocs.io/en/latest/changelog.html";
diff --git a/pkgs/development/python-modules/python-homeassistant-analytics/default.nix b/pkgs/development/python-modules/python-homeassistant-analytics/default.nix
index 633e8baf58532..4af23c95cc612 100644
--- a/pkgs/development/python-modules/python-homeassistant-analytics/default.nix
+++ b/pkgs/development/python-modules/python-homeassistant-analytics/default.nix
@@ -58,8 +58,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "python_homeassistant_analytics" ];
 
   meta = with lib; {
-    changelog = "https://github.com/joostlek/python-homeassistant-analytics
-/releases/tag/v${version}";
+    changelog = "https://github.com/joostlek/python-homeassistant-analytics/releases/tag/v${version}";
     description = "Asynchronous Python client for Homeassistant Analytics";
     homepage = "https://github.com/joostlek/python-homeassistant-analytics
 ";
diff --git a/pkgs/development/python-modules/python-homewizard-energy/default.nix b/pkgs/development/python-modules/python-homewizard-energy/default.nix
index 8447c2bccbe9c..a25cae986a2da 100644
--- a/pkgs/development/python-modules/python-homewizard-energy/default.nix
+++ b/pkgs/development/python-modules/python-homewizard-energy/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, aiohttp
-, aresponses
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, syrupy
+{
+  lib,
+  aiohttp,
+  aresponses,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  syrupy,
 }:
 
 buildPythonPackage rec {
   pname = "python-homewizard-energy";
-  version = "5.0.0";
+  version = "6.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -22,7 +23,7 @@ buildPythonPackage rec {
     owner = "DCSBL";
     repo = "python-homewizard-energy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-z9JJHS7w/lugV23xJjWHBWVQp38J3CKtj4IuDvpPQJw=";
+    hash = "sha256-tOoNC9MysL5PcIa1N/GjzNy+4+ovZGQznYYDt1o6f4c=";
   };
 
   postPatch = ''
@@ -30,11 +31,9 @@ buildPythonPackage rec {
       --replace-fail 'version = "0.0.0"' 'version = "${version}"'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     async-timeout
   ];
@@ -48,9 +47,7 @@ buildPythonPackage rec {
     syrupy
   ];
 
-  pythonImportsCheck = [
-    "homewizard_energy"
-  ];
+  pythonImportsCheck = [ "homewizard_energy" ];
 
   meta = with lib; {
     description = "Library to communicate with HomeWizard Energy devices";
diff --git a/pkgs/development/python-modules/python-hosts/default.nix b/pkgs/development/python-modules/python-hosts/default.nix
index 7452abb860c31..b8c54f2e330f3 100644
--- a/pkgs/development/python-modules/python-hosts/default.nix
+++ b/pkgs/development/python-modules/python-hosts/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "python-hosts";
-  version = "1.0.5";
+  version = "1.0.6";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-xabbGnvzXNiE0koQVq9dmEib5Cv7kg1JjpZAyb7IZM0=";
+    hash = "sha256-LfWfBzJ3UyArcHxrIUDsIa8pIr1WkUikf6F6v+IVLG4=";
   };
 
   # win_inet_pton is required for Windows support
@@ -27,18 +28,14 @@ buildPythonPackage rec {
       --replace "import win_inet_pton" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pyyaml
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "python_hosts"
-  ];
+  pythonImportsCheck = [ "python_hosts" ];
 
   disabledTests = [
     # Tests require network access
@@ -60,4 +57,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ psyanticy ];
   };
 }
-
diff --git a/pkgs/development/python-modules/python-hpilo/default.nix b/pkgs/development/python-modules/python-hpilo/default.nix
index 6fdfc5d140315..6aeeab370c1b4 100644
--- a/pkgs/development/python-modules/python-hpilo/default.nix
+++ b/pkgs/development/python-modules/python-hpilo/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
@@ -23,7 +24,10 @@ buildPythonPackage rec {
     description = "Python module to access the HP iLO XML interface";
     mainProgram = "hpilo_cli";
     homepage = "https://seveas.github.io/python-hpilo/";
-    license = with licenses; [ asl20 gpl3Plus ];
+    license = with licenses; [
+      asl20
+      gpl3Plus
+    ];
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/python-http-client/default.nix b/pkgs/development/python-modules/python-http-client/default.nix
index f2ecd21458465..7d303d71ef012 100644
--- a/pkgs/development/python-modules/python-http-client/default.nix
+++ b/pkgs/development/python-modules/python-http-client/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     "test_daterange"
   ];
 
-  pythonImportsCheck = [
-    "python_http_client"
-  ];
+  pythonImportsCheck = [ "python_http_client" ];
 
   meta = with lib; {
     description = "Python HTTP library to call APIs";
diff --git a/pkgs/development/python-modules/python-i18n/default.nix b/pkgs/development/python-modules/python-i18n/default.nix
index 1ae07dfbec6d8..319fe49f8d1fe 100644
--- a/pkgs/development/python-modules/python-i18n/default.nix
+++ b/pkgs/development/python-modules/python-i18n/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook, pyyaml }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pyyaml,
+}:
 
 buildPythonPackage rec {
   pname = "python-i18n";
@@ -18,7 +24,10 @@ buildPythonPackage rec {
       --replace-fail assertRaisesRegexp assertRaisesRegex
   '';
 
-  nativeCheckInputs = [ pytestCheckHook pyyaml ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    pyyaml
+  ];
   pytestFlagsArray = [ "i18n/tests/run_tests.py" ];
   pythonImportsCheck = [ "i18n" ];
 
diff --git a/pkgs/development/python-modules/python-idzip/default.nix b/pkgs/development/python-modules/python-idzip/default.nix
index c754bb1445546..07ea6116f7820 100644
--- a/pkgs/development/python-modules/python-idzip/default.nix
+++ b/pkgs/development/python-modules/python-idzip/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
 
-, pythonOlder
+  pythonOlder,
 
-, setuptools
+  setuptools,
 
-, pytestCheckHook
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -34,13 +35,9 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # need third-party files
diff --git a/pkgs/development/python-modules/python-ipmi/default.nix b/pkgs/development/python-modules/python-ipmi/default.nix
index 4cb05be7257b5..2e644fa1dc820 100644
--- a/pkgs/development/python-modules/python-ipmi/default.nix
+++ b/pkgs/development/python-modules/python-ipmi/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, future
-, mock
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  future,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -27,22 +28,16 @@ buildPythonPackage rec {
       --replace-fail "version=version," "version='${version}',"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    future
-  ];
+  propagatedBuildInputs = [ future ];
 
   nativeCheckInputs = [
     mock
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pyipmi"
-  ];
+  pythonImportsCheck = [ "pyipmi" ];
 
   meta = with lib; {
     description = "Python IPMI Library";
diff --git a/pkgs/development/python-modules/python-ipware/default.nix b/pkgs/development/python-modules/python-ipware/default.nix
index 5564eabdb4f62..9e63a766bc0f6 100644
--- a/pkgs/development/python-modules/python-ipware/default.nix
+++ b/pkgs/development/python-modules/python-ipware/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, unittestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  unittestCheckHook,
+  setuptools,
 }:
 buildPythonPackage rec {
   pname = "python-ipware";
@@ -19,20 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-j43uAcb1dyKe/SHQLLR+QJS6hKGB5qxjb9NiJaUPj8Y=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "python_ipware"
-  ];
+  pythonImportsCheck = [ "python_ipware" ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   meta = with lib; {
-    description = "A python package for server applications to retrieve client's IP address";
+    description = "Python package for server applications to retrieve client's IP address";
     homepage = "https://github.com/un33k/python-ipware";
     changelog = "https://github.com/un33k/python-ipware/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/python-ironicclient/default.nix b/pkgs/development/python-modules/python-ironicclient/default.nix
index 7e9a3b4ee7c27..e684cbbd34ce8 100644
--- a/pkgs/development/python-modules/python-ironicclient/default.nix
+++ b/pkgs/development/python-modules/python-ironicclient/default.nix
@@ -1,36 +1,35 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pbr
-, appdirs
-, cliff
-, dogpile-cache
-, jsonschema
-, keystoneauth1
-, openstacksdk
-, osc-lib
-, oslo-utils
-, pyyaml
-, requests
-, stevedore
-, stestr
-, requests-mock
-, oslotest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cliff,
+  dogpile-cache,
+  jsonschema,
+  keystoneauth1,
+  openstacksdk,
+  osc-lib,
+  oslo-utils,
+  oslotest,
+  pbr,
+  platformdirs,
+  pyyaml,
+  requests,
+  requests-mock,
+  stestr,
+  stevedore,
 }:
 
 buildPythonPackage rec {
   pname = "python-ironicclient";
-  version = "5.5.0";
+  version = "5.6.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JlO487QSPsBJZqPYRhsQYFA7noIN2q/stH4eZXAFLnY=";
+    hash = "sha256-zWlfy+Pfu0l7vBQnLOIP9vaXzx+i35k4oQqPUtLg3cE=";
   };
 
   propagatedBuildInputs = [
-    pbr
-    appdirs
     cliff
     dogpile-cache
     jsonschema
@@ -38,6 +37,8 @@ buildPythonPackage rec {
     openstacksdk
     osc-lib
     oslo-utils
+    pbr
+    platformdirs
     pyyaml
     requests
     stevedore
@@ -56,7 +57,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ironicclient" ];
 
   meta = with lib; {
-    description = "A client for OpenStack bare metal provisioning API, includes a Python module (ironicclient) and CLI (baremetal).";
+    description = "Client for OpenStack bare metal provisioning API, includes a Python module (ironicclient) and CLI (baremetal)";
     mainProgram = "baremetal";
     homepage = "https://github.com/openstack/python-ironicclient";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/python-izone/default.nix b/pkgs/development/python-modules/python-izone/default.nix
index 0173c277a5261..2eba0d6b1bb45 100644
--- a/pkgs/development/python-modules/python-izone/default.nix
+++ b/pkgs/development/python-modules/python-izone/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, aiohttp
-, netifaces
-, pytest-aio
-, pytest-asyncio
-, pytestCheckHook
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  aiohttp,
+  netifaces,
+  pytest-aio,
+  pytest-asyncio,
+  pytestCheckHook,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-0rj+tKn2pbFe+nczTMGLwIwmc4jCznGGF4/IMjlEvQg=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -41,9 +40,7 @@ buildPythonPackage rec {
 
   doCheck = false; # most tests access network
 
-  pythonImportsCheck = [
-    "pizone"
-  ];
+  pythonImportsCheck = [ "pizone" ];
 
   meta = with lib; {
     description = "Python interface to the iZone airconditioner controller";
diff --git a/pkgs/development/python-modules/python-jenkins/default.nix b/pkgs/development/python-modules/python-jenkins/default.nix
index 2632372f0dd84..8afb965dbaca4 100644
--- a/pkgs/development/python-modules/python-jenkins/default.nix
+++ b/pkgs/development/python-modules/python-jenkins/default.nix
@@ -1,19 +1,19 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, mock
-, pbr
-, pyyaml
-, setuptools
-, six
-, multi-key-dict
-, testscenarios
-, requests
-, requests-mock
-, stestr
-, multiprocess
-, pythonRelaxDepsHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  pbr,
+  pyyaml,
+  setuptools,
+  six,
+  multi-key-dict,
+  testscenarios,
+  requests,
+  requests-mock,
+  stestr,
+  multiprocess,
 }:
 
 buildPythonPackage rec {
@@ -33,19 +33,26 @@ buildPythonPackage rec {
       --replace test_jenkins_open_no_timeout dont_test_jenkins_open_no_timeout
   '';
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
-  pythonRelaxDeps = [
-    "setuptools"
-  ];
+  pythonRelaxDeps = [ "setuptools" ];
 
   buildInputs = [ mock ];
-  propagatedBuildInputs = [ pbr pyyaml setuptools six multi-key-dict requests ];
+  propagatedBuildInputs = [
+    pbr
+    pyyaml
+    setuptools
+    six
+    multi-key-dict
+    requests
+  ];
 
   __darwinAllowLocalNetworking = true;
 
-  nativeCheckInputs = [ stestr testscenarios requests-mock multiprocess ];
+  nativeCheckInputs = [
+    stestr
+    testscenarios
+    requests-mock
+    multiprocess
+  ];
   checkPhase = ''
     # Skip tests that fail due to setuptools>=66.0.0 rejecting PEP 440
     # non-conforming versions. See
@@ -59,5 +66,4 @@ buildPythonPackage rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ gador ];
   };
-
 }
diff --git a/pkgs/development/python-modules/python-jose/default.nix b/pkgs/development/python-modules/python-jose/default.nix
index 9739e5bf7f65e..271115978bb98 100644
--- a/pkgs/development/python-modules/python-jose/default.nix
+++ b/pkgs/development/python-modules/python-jose/default.nix
@@ -1,22 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, ecdsa
-, rsa
-, pyasn1
+  # dependencies
+  ecdsa,
+  rsa,
+  pyasn1,
 
-# optional-dependencies
-, cryptography
-, pycrypto
-, pycryptodome
+  # optional-dependencies
+  cryptography,
+  pycrypto,
+  pycryptodome,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -31,14 +33,25 @@ buildPythonPackage rec {
     hash = "sha256-6VGC6M5oyGCOiXcYp6mpyhL+JlcYZKIqOQU9Sm/TkKM=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "CVE-2024-33663.patch";
+      url = "https://build.opensuse.org/public/source/openSUSE:Factory/python-python-jose/CVE-2024-33663.patch?rev=36cd8815411620042f56a3b81599b341";
+      hash = "sha256-uxOCa7Lg82zY2nuHzw6CbcymCKUodITrFU3lLY1XMFU=";
+    })
+    (fetchpatch {
+      name = "CVE-2024-33664.patch";
+      url = "https://build.opensuse.org/public/source/openSUSE:Factory/python-python-jose/CVE-2024-33664.patch?rev=36cd8815411620042f56a3b81599b341";
+      hash = "sha256-wx/U1T7t7TloP+dMXxGxEVB3bMC7e6epmN8RE8FKksM=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace setup.py \
       --replace '"pytest-runner",' ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     ecdsa
@@ -47,20 +60,12 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    cryptography = [
-      cryptography
-    ];
-    pycrypto = [
-      pycrypto
-    ];
-    pycryptodome = [
-      pycryptodome
-    ];
+    cryptography = [ cryptography ];
+    pycrypto = [ pycrypto ];
+    pycryptodome = [ pycryptodome ];
   };
 
-  pythonImportsCheck = [
-    "jose"
-  ];
+  pythonImportsCheck = [ "jose" ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -74,7 +79,7 @@ buildPythonPackage rec {
   meta = with lib; {
     changelog = "https://github.com/mpdavis/python-jose/releases/tag/${version}";
     homepage = "https://github.com/mpdavis/python-jose";
-    description = "A JOSE implementation in Python";
+    description = "JOSE implementation in Python";
     license = licenses.mit;
     maintainers = with maintainers; [ jhhuh ];
   };
diff --git a/pkgs/development/python-modules/python-json-logger/default.nix b/pkgs/development/python-modules/python-json-logger/default.nix
index 0a02ccb688add..c56428e33c4a0 100644
--- a/pkgs/development/python-modules/python-json-logger/default.nix
+++ b/pkgs/development/python-modules/python-json-logger/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-jsonrpc-server/default.nix b/pkgs/development/python-modules/python-jsonrpc-server/default.nix
index 2cb13c747742e..dd82fbca2cb46 100644
--- a/pkgs/development/python-modules/python-jsonrpc-server/default.nix
+++ b/pkgs/development/python-modules/python-jsonrpc-server/default.nix
@@ -1,6 +1,14 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder
-, pytestCheckHook, mock, pytest-cov, coverage
-, future, futures ? null, ujson}:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  mock,
+  pytest-cov,
+  coverage,
+  future,
+  ujson,
+}:
 
 buildPythonPackage rec {
   pname = "python-jsonrpc-server";
@@ -19,15 +27,20 @@ buildPythonPackage rec {
   '';
 
   nativeCheckInputs = [
-    pytestCheckHook mock pytest-cov coverage
+    pytestCheckHook
+    mock
+    pytest-cov
+    coverage
   ];
 
-  propagatedBuildInputs = [ future ujson ]
-    ++ lib.optional (pythonOlder "3.2") futures;
+  propagatedBuildInputs = [
+    future
+    ujson
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/palantir/python-jsonrpc-server";
-    description = "A Python 2 and 3 asynchronous JSON RPC server";
+    description = "Python 2 and 3 asynchronous JSON RPC server";
     license = licenses.mit;
     maintainers = [ maintainers.mic92 ];
   };
diff --git a/pkgs/development/python-modules/python-juicenet/default.nix b/pkgs/development/python-modules/python-juicenet/default.nix
index ad27a913257e4..1ceb9d031cc69 100644
--- a/pkgs/development/python-modules/python-juicenet/default.nix
+++ b/pkgs/development/python-modules/python-juicenet/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-5RKnVwOfEHzFZCiC8OUpS8exKrENK+I3Ok45HlKEvtU=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # no tests implemented
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyjuicenet"
-  ];
+  pythonImportsCheck = [ "pyjuicenet" ];
 
   meta = with lib; {
     description = "Read and control Juicenet/Juicepoint/Juicebox based EVSE devices";
diff --git a/pkgs/development/python-modules/python-kasa/default.nix b/pkgs/development/python-modules/python-kasa/default.nix
index 807d5d5af9a70..1ccae8b44d0e9 100644
--- a/pkgs/development/python-modules/python-kasa/default.nix
+++ b/pkgs/development/python-modules/python-kasa/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, aiohttp
-, anyio
-, async-timeout
-, asyncclick
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, kasa-crypt
-, orjson
-, poetry-core
-, pydantic
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, voluptuous
+{
+  lib,
+  aiohttp,
+  anyio,
+  async-timeout,
+  asyncclick,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  kasa-crypt,
+  orjson,
+  poetry-core,
+  pydantic,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  voluptuous,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     hash = "sha256-iCqJY3qkA3ZVXTCfxvQoaZsaqGui8PwKGAmLXKZgLJs=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -58,18 +57,14 @@ buildPythonPackage rec {
     ];
   };
 
-  pytestFlagsArray = [
-    "--asyncio-mode=auto"
-  ];
+  pytestFlagsArray = [ "--asyncio-mode=auto" ];
 
   disabledTestPaths = [
     # Skip the examples tests
     "kasa/tests/test_readme_examples.py"
   ];
 
-  pythonImportsCheck = [
-    "kasa"
-  ];
+  pythonImportsCheck = [ "kasa" ];
 
   meta = with lib; {
     description = "Python API for TP-Link Kasa Smarthome products";
diff --git a/pkgs/development/python-modules/python-keycloak/default.nix b/pkgs/development/python-modules/python-keycloak/default.nix
index a4adbf787aaca..9150b1a240365 100644
--- a/pkgs/development/python-modules/python-keycloak/default.nix
+++ b/pkgs/development/python-modules/python-keycloak/default.nix
@@ -1,41 +1,40 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, python-jose
-, pythonOlder
-, requests
-, requests-toolbelt
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  deprecation,
+  fetchFromGitHub,
+  jwcrypto,
+  poetry-core,
+  pythonOlder,
+  requests,
+  requests-toolbelt,
 }:
 
 buildPythonPackage rec {
   pname = "python-keycloak";
-  version = "2.6.0";
-  format = "pyproject";
+  version = "4.0.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "marcospereirampj";
     repo = "python-keycloak";
-    rev = "v${version}";
-    hash = "sha256-cuj0gJlZDkbJ2HRSMcQvO4nxpjw65CKGEpWCL5sucvg=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ZXS29bND4GsJNhTGiUsLo+4FYd8Tubvg/+PJ33tqovY=";
   };
 
   postPatch = ''
+    # Upstream doesn't set version
     substituteInPlace pyproject.toml \
-      --replace 'version = "0.0.0"' 'version = "${version}"' \
-      --replace 'requests-toolbelt = "^0.9.1"' 'requests-toolbelt = "*"'
+      --replace-fail 'version = "0.0.0"' 'version = "${version}"'
   '';
 
-  buildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    python-jose
-    urllib3
+  dependencies = [
+    deprecation
+    jwcrypto
     requests
     requests-toolbelt
   ];
@@ -43,13 +42,12 @@ buildPythonPackage rec {
   # Test fixtures require a running keycloak instance
   doCheck = false;
 
-  pythonImportsCheck = [
-    "keycloak"
-  ];
+  pythonImportsCheck = [ "keycloak" ];
 
   meta = with lib; {
     description = "Provides access to the Keycloak API";
     homepage = "https://github.com/marcospereirampj/python-keycloak";
+    changelog = "https://github.com/marcospereirampj/python-keycloak/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/python-keystoneclient/default.nix b/pkgs/development/python-modules/python-keystoneclient/default.nix
index 81d3d3d217a72..e8f19e2a01a26 100644
--- a/pkgs/development/python-modules/python-keystoneclient/default.nix
+++ b/pkgs/development/python-modules/python-keystoneclient/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, keystoneauth1
-, openssl
-, oslo-config
-, oslo-serialization
-, pbr
-, pythonOlder
-, requests-mock
-, stestr
-, testresources
-, testscenarios
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  keystoneauth1,
+  openssl,
+  oslo-config,
+  oslo-serialization,
+  pbr,
+  pythonOlder,
+  requests-mock,
+  stestr,
+  testresources,
+  testscenarios,
 }:
 
 buildPythonPackage rec {
@@ -44,9 +45,7 @@ buildPythonPackage rec {
     stestr run
   '';
 
-  pythonImportsCheck = [
-    "keystoneclient"
-  ];
+  pythonImportsCheck = [ "keystoneclient" ];
 
   meta = with lib; {
     description = "Client Library for OpenStack Identity";
diff --git a/pkgs/development/python-modules/python-ldap-test/default.nix b/pkgs/development/python-modules/python-ldap-test/default.nix
index e88a49f4cc35f..5b2f69f4e5e93 100644
--- a/pkgs/development/python-modules/python-ldap-test/default.nix
+++ b/pkgs/development/python-modules/python-ldap-test/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, py4j }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  py4j,
+}:
 
 buildPythonPackage rec {
   pname = "python-ldap-test";
@@ -26,4 +31,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ psyanticy ];
   };
 }
-
diff --git a/pkgs/development/python-modules/python-ldap/default.nix b/pkgs/development/python-modules/python-ldap/default.nix
index 5bc9f3fecfcc0..c54395cabe7d5 100644
--- a/pkgs/development/python-modules/python-ldap/default.nix
+++ b/pkgs/development/python-modules/python-ldap/default.nix
@@ -1,22 +1,24 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  pythonOlder,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# native dependencies
-, openldap
-, cyrus_sasl
+  # native dependencies
+  openldap,
+  cyrus_sasl,
 
-# dependencies
-, pyasn1
-, pyasn1-modules
+  # dependencies
+  pyasn1,
+  pyasn1-modules,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,7 +26,7 @@ buildPythonPackage rec {
   version = "3.4.4";
   pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.6" || pythonAtLeast "3.12"; # requires distutils
 
   src = fetchFromGitHub {
     owner = "python-ldap";
@@ -33,23 +35,19 @@ buildPythonPackage rec {
     hash = "sha256-v1cWoRGxbvvFnHqnwoIfmiQQcxfaA8Bf3+M5bE5PtuU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   buildInputs = [
     openldap
     cyrus_sasl
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     pyasn1
     pyasn1-modules
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     # Needed by tests to setup a mockup ldap server.
diff --git a/pkgs/development/python-modules/python-libnmap/default.nix b/pkgs/development/python-modules/python-libnmap/default.nix
index a6acf665ee855..782b23be2538d 100644
--- a/pkgs/development/python-modules/python-libnmap/default.nix
+++ b/pkgs/development/python-modules/python-libnmap/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, defusedxml
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  defusedxml,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,17 +22,13 @@ buildPythonPackage rec {
   };
 
   passthru.optional-dependencies = {
-    defusedxml = [
-      defusedxml
-    ];
+    defusedxml = [ defusedxml ];
   };
 
   # We don't want the nmap binary being present
   doCheck = false;
 
-  pythonImportsCheck = [
-    "libnmap"
-  ];
+  pythonImportsCheck = [ "libnmap" ];
 
   meta = with lib; {
     description = "Library to run nmap scans, parse and diff scan results";
diff --git a/pkgs/development/python-modules/python-linux-procfs/default.nix b/pkgs/development/python-modules/python-linux-procfs/default.nix
index e72b2e3620983..f4306acedf710 100644
--- a/pkgs/development/python-modules/python-linux-procfs/default.nix
+++ b/pkgs/development/python-modules/python-linux-procfs/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchzip, six }:
+{
+  lib,
+  buildPythonPackage,
+  fetchzip,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "python-linux-procfs";
@@ -21,6 +26,5 @@ buildPythonPackage rec {
     mainProgram = "pflags";
     homepage = "https://git.kernel.org/pub/scm/libs/python/python-linux-procfs/python-linux-procfs.git/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/python-logstash/default.nix b/pkgs/development/python-modules/python-logstash/default.nix
index 0ce49d98de036..71fddc53da0ac 100644
--- a/pkgs/development/python-modules/python-logstash/default.nix
+++ b/pkgs/development/python-modules/python-logstash/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "python-logstash";
diff --git a/pkgs/development/python-modules/python-louvain/default.nix b/pkgs/development/python-modules/python-louvain/default.nix
index b9f2647559910..0747ee1dd7901 100644
--- a/pkgs/development/python-modules/python-louvain/default.nix
+++ b/pkgs/development/python-modules/python-louvain/default.nix
@@ -1,11 +1,13 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, fetchpatch
-, networkx
-, pandas
-, scipy
-, numpy }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  fetchpatch,
+  networkx,
+  pandas,
+  scipy,
+  numpy,
+}:
 
 buildPythonPackage rec {
   pname = "python-louvain";
@@ -26,11 +28,17 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [ networkx numpy ];
+  propagatedBuildInputs = [
+    networkx
+    numpy
+  ];
 
   pythonImportsCheck = [ "community" ];
 
-  nativeCheckInputs = [ pandas scipy ];
+  nativeCheckInputs = [
+    pandas
+    scipy
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/taynaud/python-louvain";
diff --git a/pkgs/development/python-modules/python-lsp-black/default.nix b/pkgs/development/python-modules/python-lsp-black/default.nix
index 20828ac3e38d7..efa83fe40d54c 100644
--- a/pkgs/development/python-modules/python-lsp-black/default.nix
+++ b/pkgs/development/python-modules/python-lsp-black/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, pythonOlder
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, black
-, python-lsp-server
-, setuptools
-, tomli
-, fetchpatch
+{
+  lib,
+  pythonOlder,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  black,
+  python-lsp-server,
+  setuptools,
+  tomli,
+  fetchpatch,
 }:
 
 buildPythonPackage rec {
@@ -24,37 +25,29 @@ buildPythonPackage rec {
   };
 
   patches =
-    /** includes a series of patches fixing tests not yet released as 2.0.1+ version
-        they are meant to keep up to date with black releases */
-    lib.optional
-      (with lib; versionAtLeast black.version "24.2.0")
-      (fetchpatch {
-        url = "https://github.com/python-lsp/python-lsp-black/commit/d43b41431379f9c9bb05fab158c4d97e6d515f8f.patch";
-        hash = "sha256-38bYU27+xtA8Kq3appXTkNnkG5/XgrUJ2nQ5+yuSU2U=";
-      })
-    ++ lib.optional
-      (with lib; versionAtLeast black.version "24.3.0")
-      (fetchpatch {
-        url = "https://github.com/python-lsp/python-lsp-black/commit/9298585a9d14d25920c33b188d79e820dc98d4a9.patch";
-        hash = "sha256-4u0VIS7eidVEiKRW2wc8lJVkJwhzJD/M+uuqmTtiZ7E=";
-      });
-
-  nativeBuildInputs = [
-    setuptools
-  ];
+    /**
+      includes a series of patches fixing tests not yet released as 2.0.1+ version
+       they are meant to keep up to date with black releases
+    */
+    lib.optional (with lib; versionAtLeast black.version "24.2.0") (fetchpatch {
+      url = "https://github.com/python-lsp/python-lsp-black/commit/d43b41431379f9c9bb05fab158c4d97e6d515f8f.patch";
+      hash = "sha256-38bYU27+xtA8Kq3appXTkNnkG5/XgrUJ2nQ5+yuSU2U=";
+    })
+    ++ lib.optional (with lib; versionAtLeast black.version "24.3.0") (fetchpatch {
+      url = "https://github.com/python-lsp/python-lsp-black/commit/9298585a9d14d25920c33b188d79e820dc98d4a9.patch";
+      hash = "sha256-4u0VIS7eidVEiKRW2wc8lJVkJwhzJD/M+uuqmTtiZ7E=";
+    });
+
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
   propagatedBuildInputs = [
     black
     python-lsp-server
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
-  pythonImportsCheck = [
-    "pylsp_black"
-  ];
+  pythonImportsCheck = [ "pylsp_black" ];
 
   meta = with lib; {
     homepage = "https://github.com/python-lsp/python-lsp-black";
diff --git a/pkgs/development/python-modules/python-lsp-jsonrpc/default.nix b/pkgs/development/python-modules/python-lsp-jsonrpc/default.nix
index 040d901a7e73f..948eba8e6e579 100644
--- a/pkgs/development/python-modules/python-lsp-jsonrpc/default.nix
+++ b/pkgs/development/python-modules/python-lsp-jsonrpc/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
-, ujson
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  ujson,
 }:
 
 buildPythonPackage rec {
@@ -32,17 +33,11 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    ujson
-  ];
+  propagatedBuildInputs = [ ujson ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pylsp_jsonrpc"
-  ];
+  pythonImportsCheck = [ "pylsp_jsonrpc" ];
 
   meta = with lib; {
     description = "Python server implementation of the JSON RPC 2.0 protocol";
diff --git a/pkgs/development/python-modules/python-lsp-ruff/default.nix b/pkgs/development/python-modules/python-lsp-ruff/default.nix
index 3a208e6089207..9b10cc6eb8e6a 100644
--- a/pkgs/development/python-modules/python-lsp-ruff/default.nix
+++ b/pkgs/development/python-modules/python-lsp-ruff/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, pythonOlder
-, buildPythonPackage
-, fetchPypi
-, ruff
-, cattrs
-, lsprotocol
-, python-lsp-server
-, tomli
-, pytestCheckHook
+{
+  lib,
+  pythonOlder,
+  buildPythonPackage,
+  fetchPypi,
+  ruff,
+  cattrs,
+  lsprotocol,
+  python-lsp-server,
+  tomli,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -35,13 +36,9 @@ buildPythonPackage rec {
     cattrs
     lsprotocol
     python-lsp-server
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     homepage = "https://github.com/python-lsp/python-lsp-ruff";
diff --git a/pkgs/development/python-modules/python-lsp-server/default.nix b/pkgs/development/python-modules/python-lsp-server/default.nix
index c79e3f7e8d7bc..f2df743ee1c42 100644
--- a/pkgs/development/python-modules/python-lsp-server/default.nix
+++ b/pkgs/development/python-modules/python-lsp-server/default.nix
@@ -22,7 +22,6 @@
   pytestCheckHook,
   python-lsp-jsonrpc,
   pythonOlder,
-  pythonRelaxDepsHook,
   rope,
   setuptools,
   setuptools-scm,
diff --git a/pkgs/development/python-modules/python-ly/default.nix b/pkgs/development/python-modules/python-ly/default.nix
index b1aa0c68b2090..f30ac614d8ffb 100644
--- a/pkgs/development/python-modules/python-ly/default.nix
+++ b/pkgs/development/python-modules/python-ly/default.nix
@@ -1,4 +1,8 @@
-{ buildPythonPackage, fetchPypi, lib }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+}:
 
 buildPythonPackage rec {
   pname = "python-ly";
diff --git a/pkgs/development/python-modules/python-lzf/default.nix b/pkgs/development/python-modules/python-lzf/default.nix
index d7548fd8446f1..c2592f9562534 100644
--- a/pkgs/development/python-modules/python-lzf/default.nix
+++ b/pkgs/development/python-modules/python-lzf/default.nix
@@ -1,15 +1,27 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  unittestCheckHook,
+}:
 
 buildPythonPackage rec {
-  version = "0.2.4";
-  format = "setuptools";
+  version = "0.2.6";
   pname = "python-lzf";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1l8m6vzwm1m8hn7ldw8j8r2b6r199k8z3q0wnhdyy4p68hahyhni";
+  src = fetchFromGitHub {
+    owner = "teepark";
+    repo = "python-lzf";
+    rev = "refs/tags/release-${version}";
+    hash = "sha256-n5E75kRqe0dDbyFicoyLBAVi/SuoUU7qJka3viipQk8=";
   };
 
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [ unittestCheckHook ];
+
   meta = with lib; {
     description = "liblzf python bindings";
     homepage = "https://github.com/teepark/python-lzf";
diff --git a/pkgs/development/python-modules/python-lzo/default.nix b/pkgs/development/python-modules/python-lzo/default.nix
index f0652410828c9..ec0d6ff58a8b9 100644
--- a/pkgs/development/python-modules/python-lzo/default.nix
+++ b/pkgs/development/python-modules/python-lzo/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, lzo
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lzo,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -22,23 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-iXAvOCzHPvNERMkE5y4QTHi4ZieW1wrYWYScs7zyb2c=";
   };
 
-
   nativeBuildInputs = [
     setuptools
     wheel
   ];
 
-  buildInputs = [
-    lzo
-  ];
+  buildInputs = [ lzo ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "lzo"
-  ];
+  pythonImportsCheck = [ "lzo" ];
 
   meta = with lib; {
     description = "Python bindings for the LZO data compression library";
diff --git a/pkgs/development/python-modules/python-magic/default.nix b/pkgs/development/python-modules/python-magic/default.nix
index efb32d8444ab2..24c828a80eb03 100644
--- a/pkgs/development/python-modules/python-magic/default.nix
+++ b/pkgs/development/python-modules/python-magic/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, substituteAll
-, file
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  substituteAll,
+  file,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -44,12 +45,10 @@ buildPythonPackage rec {
     export LC_ALL=en_US.UTF-8
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A python interface to the libmagic file type identification library";
+    description = "Python interface to the libmagic file type identification library";
     homepage = "https://github.com/ahupp/python-magic";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/python-manilaclient/default.nix b/pkgs/development/python-modules/python-manilaclient/default.nix
index b2fbfef19f8cf..1f11d62af8557 100644
--- a/pkgs/development/python-modules/python-manilaclient/default.nix
+++ b/pkgs/development/python-modules/python-manilaclient/default.nix
@@ -1,33 +1,34 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, installShellFiles
-, pbr
-, openstackdocstheme
-, oslo-config
-, oslo-log
-, oslo-serialization
-, oslo-utils
-, prettytable
-, requests
-, simplejson
-, sphinx
-, sphinxcontrib-programoutput
-, babel
-, osc-lib
-, python-keystoneclient
-, debtcollector
-, callPackage
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  installShellFiles,
+  pbr,
+  openstackdocstheme,
+  oslo-config,
+  oslo-log,
+  oslo-serialization,
+  oslo-utils,
+  prettytable,
+  requests,
+  simplejson,
+  sphinx,
+  sphinxcontrib-programoutput,
+  babel,
+  osc-lib,
+  python-keystoneclient,
+  debtcollector,
+  callPackage,
 }:
 
 buildPythonPackage rec {
   pname = "python-manilaclient";
-  version = "4.8.0";
+  version = "4.9.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-TwvDtbYGkDZFIsr0GgwD2R0Il7pV2GCuDw3OZXxDXso=";
+    hash = "sha256-Q7ADjuGQh5C88WqT5II+NMYLYFwTip/bzZinca/xqFY=";
   };
 
   nativeBuildInputs = [
@@ -65,9 +66,7 @@ buildPythonPackage rec {
     tests = callPackage ./tests.nix { };
   };
 
-  pythonImportsCheck = [
-    "manilaclient"
-  ];
+  pythonImportsCheck = [ "manilaclient" ];
 
   meta = with lib; {
     description = "Client library for OpenStack Manila API";
diff --git a/pkgs/development/python-modules/python-manilaclient/tests.nix b/pkgs/development/python-modules/python-manilaclient/tests.nix
index d1ceb5ed74318..f743e5b2fb13f 100644
--- a/pkgs/development/python-modules/python-manilaclient/tests.nix
+++ b/pkgs/development/python-modules/python-manilaclient/tests.nix
@@ -1,10 +1,11 @@
-{ buildPythonPackage
-, python-manilaclient
-, stestr
-, ddt
-, tempest
-, mock
-, python-openstackclient
+{
+  buildPythonPackage,
+  python-manilaclient,
+  stestr,
+  ddt,
+  tempest,
+  mock,
+  python-openstackclient,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/python-mapnik/default.nix b/pkgs/development/python-modules/python-mapnik/default.nix
index 044199f6c2a66..d2d0ae00f08cd 100644
--- a/pkgs/development/python-modules/python-mapnik/default.nix
+++ b/pkgs/development/python-modules/python-mapnik/default.nix
@@ -1,43 +1,42 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, substituteAll
-, isPyPy
-, python
-, pillow
-, pycairo
-, pkg-config
-, boost
-, cairo
-, harfbuzz
-, icu
-, libjpeg
-, libpng
-, libtiff
-, libwebp
-, mapnik
-, proj
-, zlib
-, libxml2
-, sqlite
-, nose
-, pytestCheckHook
-, stdenv
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  substituteAll,
+  isPyPy,
+  python,
+  pillow,
+  pycairo,
+  pkg-config,
+  boost,
+  cairo,
+  harfbuzz,
+  icu,
+  libjpeg,
+  libpng,
+  libtiff,
+  libwebp,
+  mapnik,
+  proj,
+  zlib,
+  libxml2,
+  sqlite,
+  nose,
+  pytestCheckHook,
+  darwin,
+  sparsehash,
 }:
 
 buildPythonPackage rec {
   pname = "python-mapnik";
-  version = "unstable-2023-02-23";
+  version = "3.0.16-unstable-2024-02-22";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "mapnik";
     repo = "python-mapnik";
-    # Use proj6 branch in order to support Proj >= 6 (excluding commits after 2023-02-23)
-    # https://github.com/mapnik/python-mapnik/compare/master...proj6
-    rev = "687b2c72a24c59d701d62e4458c380f8c54f0549";
-    hash = "sha256-q3Snd3K/JndckwAVwSKU+kFK5E1uph78ty7mwVo/7Ik=";
+    rev = "5ab32f0209909cc98c26e1d86ce0c8ef29a9bf3d";
+    hash = "sha256-OqijA1WcyBcyWO8gntqp+xNIaV1Jqa0n1eMDip2OCvY=";
     # Only needed for test data
     fetchSubmodules = true;
   };
@@ -49,8 +48,13 @@ buildPythonPackage rec {
       src = ./find-libmapnik.patch;
       libmapnik = "${mapnik}/lib";
     })
+    # Use `std::optional` rather than `boost::optional`
+    # https://github.com/mapnik/python-mapnik/commit/e9f88a95a03dc081826a69da67bbec3e4cccd5eb
+    ./python-mapnik_std_optional.patch
   ];
 
+  stdenv = if python.stdenv.isDarwin then darwin.apple_sdk_11_0.stdenv else python.stdenv;
+
   nativeBuildInputs = [
     mapnik # for mapnik_config
     pkg-config
@@ -70,14 +74,16 @@ buildPythonPackage rec {
     zlib
     libxml2
     sqlite
+    sparsehash
   ];
 
-  propagatedBuildInputs = [ pillow pycairo ];
-
-  configureFlags = [
-    "XMLPARSER=libxml2"
+  propagatedBuildInputs = [
+    pillow
+    pycairo
   ];
 
+  configureFlags = [ "XMLPARSER=libxml2" ];
+
   disabled = isPyPy;
 
   preBuild = ''
@@ -93,26 +99,31 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  preCheck = ''
-    # import from $out
-    rm -r mapnik
-  '' + lib.optionalString stdenv.isDarwin ''
-    # Replace the hardcoded /tmp references with $TMPDIR
-    sed -i "s,/tmp,$TMPDIR,g" test/python_tests/*.py
-  '';
+  preCheck =
+    ''
+      # import from $out
+      rm -r mapnik
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      # Replace the hardcoded /tmp references with $TMPDIR
+      sed -i "s,/tmp,$TMPDIR,g" test/python_tests/*.py
+    '';
 
   # https://github.com/mapnik/python-mapnik/issues/255
   disabledTests = [
     "test_geometry_type"
-    "test_marker_ellipse_render1"
-    "test_marker_ellipse_render2"
-    "test_normalizing_definition"
     "test_passing_pycairo_context_pdf"
     "test_pdf_printing"
-    "test_visual_zoom_all_rendering2"
-    "test_wgs84_inverse_forward"
+    "test_render_with_scale_factor"
   ] ++ lib.optionals stdenv.isDarwin [
+    "test_passing_pycairo_context_png"
     "test_passing_pycairo_context_svg"
+    "test_pycairo_pdf_surface1"
+    "test_pycairo_pdf_surface2"
+    "test_pycairo_pdf_surface3"
+    "test_pycairo_svg_surface1"
+    "test_pycairo_svg_surface2"
+    "test_pycairo_svg_surface3"
   ];
 
   pythonImportsCheck = [ "mapnik" ];
diff --git a/pkgs/development/python-modules/python-mapnik/python-mapnik_std_optional.patch b/pkgs/development/python-modules/python-mapnik/python-mapnik_std_optional.patch
new file mode 100644
index 0000000000000..c285e77ca57b6
--- /dev/null
+++ b/pkgs/development/python-modules/python-mapnik/python-mapnik_std_optional.patch
@@ -0,0 +1,176 @@
+diff --git a/src/mapnik_image.cpp b/src/mapnik_image.cpp
+index 9add692c9..488427b56 100644
+--- a/src/mapnik_image.cpp
++++ b/src/mapnik_image.cpp
+@@ -230,7 +230,7 @@ unsigned get_type(mapnik::image_any & im)
+ 
+ std::shared_ptr<image_any> open_from_file(std::string const& filename)
+ {
+-    boost::optional<std::string> type = type_from_filename(filename);
++    auto type = type_from_filename(filename);
+     if (type)
+     {
+         std::unique_ptr<image_reader> reader(get_image_reader(filename,*type));
+diff --git a/src/mapnik_layer.cpp b/src/mapnik_layer.cpp
+index 4fc7ea579..fbd277a81 100644
+--- a/src/mapnik_layer.cpp
++++ b/src/mapnik_layer.cpp
+@@ -95,7 +95,7 @@ struct layer_pickle_suite : boost::python::pickle_suite
+ 
+ std::vector<std::string> & (mapnik::layer::*_styles_)() = &mapnik::layer::styles;
+ 
+-void set_maximum_extent(mapnik::layer & l, boost::optional<mapnik::box2d<double> > const& box)
++void set_maximum_extent(mapnik::layer & l, std::optional<mapnik::box2d<double> > const& box)
+ {
+     if (box)
+     {
+@@ -107,7 +107,7 @@ void set_maximum_extent(mapnik::layer & l, boost::optional<mapnik::box2d<double>
+     }
+ }
+ 
+-void set_buffer_size(mapnik::layer & l, boost::optional<int> const& buffer_size)
++void set_buffer_size(mapnik::layer & l, std::optional<int> const& buffer_size)
+ {
+     if (buffer_size)
+     {
+@@ -121,7 +121,7 @@ void set_buffer_size(mapnik::layer & l, boost::optional<int> const& buffer_size)
+ 
+ PyObject * get_buffer_size(mapnik::layer & l)
+ {
+-    boost::optional<int> buffer_size = l.buffer_size();
++    std::optional<int> buffer_size = l.buffer_size();
+     if (buffer_size)
+     {
+ #if PY_VERSION_HEX >= 0x03000000
+diff --git a/src/mapnik_map.cpp b/src/mapnik_map.cpp
+index 3587e5d8a..cfa523b03 100644
+--- a/src/mapnik_map.cpp
++++ b/src/mapnik_map.cpp
+@@ -105,7 +105,7 @@ mapnik::featureset_ptr query_map_point(mapnik::Map const& m, int index, double x
+     return m.query_map_point(idx, x, y);
+ }
+ 
+-void set_maximum_extent(mapnik::Map & m, boost::optional<mapnik::box2d<double> > const& box)
++void set_maximum_extent(mapnik::Map & m, std::optional<mapnik::box2d<double> > const& box)
+ {
+     if (box)
+     {
+diff --git a/src/python_optional.hpp b/src/python_optional.hpp
+index d690b7c51..9d86c340e 100644
+--- a/src/python_optional.hpp
++++ b/src/python_optional.hpp
+@@ -28,7 +28,7 @@
+ #include <mapnik/util/noncopyable.hpp>
+ #pragma GCC diagnostic pop
+ 
+-// boost::optional<T> to/from converter from John Wiegley
++// std::optional<T> to/from converter from John Wiegley
+ 
+ template <typename T, typename TfromPy>
+ struct object_from_python
+@@ -54,7 +54,7 @@ struct python_optional : public mapnik::util::noncopyable
+ {
+     struct optional_to_python
+     {
+-        static PyObject * convert(const boost::optional<T>& value)
++        static PyObject * convert(const std::optional<T>& value)
+         {
+             return (value ? boost::python::to_python_value<T>()(*value) :
+                     boost::python::detail::none());
+@@ -90,9 +90,9 @@ struct python_optional : public mapnik::util::noncopyable
+                                     data)->storage.bytes;
+ 
+             if (data->convertible == source)        // == None
+-                new (storage) boost::optional<T>(); // A Boost uninitialized value
++                new (storage) std::optional<T>(); // A Boost uninitialized value
+             else
+-                new (storage) boost::optional<T>(*static_cast<T *>(data->convertible));
++                new (storage) std::optional<T>(*static_cast<T *>(data->convertible));
+ 
+             data->convertible = storage;
+         }
+@@ -100,18 +100,18 @@ struct python_optional : public mapnik::util::noncopyable
+ 
+     explicit python_optional()
+     {
+-        register_python_conversion<boost::optional<T>,
++        register_python_conversion<std::optional<T>,
+             optional_to_python, optional_from_python>();
+     }
+ };
+ 
+-// to/from boost::optional<bool>
++// to/from std::optional<bool>
+ template <>
+ struct python_optional<float> : public mapnik::util::noncopyable
+ {
+     struct optional_to_python
+     {
+-        static PyObject * convert(const boost::optional<float>& value)
++        static PyObject * convert(const std::optional<float>& value)
+         {
+             return (value ? PyFloat_FromDouble(*value) :
+                     boost::python::detail::none());
+@@ -133,30 +133,30 @@ struct python_optional<float> : public mapnik::util::noncopyable
+                               boost::python::converter::rvalue_from_python_stage1_data * data)
+         {
+             using namespace boost::python::converter;
+-            void * const storage = ((rvalue_from_python_storage<boost::optional<bool> > *)
++            void * const storage = ((rvalue_from_python_storage<std::optional<bool> > *)
+                                     data)->storage.bytes;
+             if (source == Py_None)  // == None
+-                new (storage) boost::optional<float>(); // A Boost uninitialized value
++                new (storage) std::optional<float>(); // A Boost uninitialized value
+             else
+-                new (storage) boost::optional<float>(PyFloat_AsDouble(source));
++                new (storage) std::optional<float>(PyFloat_AsDouble(source));
+             data->convertible = storage;
+         }
+     };
+ 
+     explicit python_optional()
+     {
+-        register_python_conversion<boost::optional<float>,
++        register_python_conversion<std::optional<float>,
+             optional_to_python, optional_from_python>();
+     }
+ };
+ 
+-// to/from boost::optional<float>
++// to/from std::optional<float>
+ template <>
+ struct python_optional<bool> : public mapnik::util::noncopyable
+ {
+     struct optional_to_python
+     {
+-        static PyObject * convert(const boost::optional<bool>& value)
++        static PyObject * convert(const std::optional<bool>& value)
+         {
+             if (value)
+             {
+@@ -181,13 +181,13 @@ struct python_optional<bool> : public mapnik::util::noncopyable
+                               boost::python::converter::rvalue_from_python_stage1_data * data)
+         {
+             using namespace boost::python::converter;
+-            void * const storage = ((rvalue_from_python_storage<boost::optional<bool> > *)
++            void * const storage = ((rvalue_from_python_storage<std::optional<bool> > *)
+                                     data)->storage.bytes;
+             if (source == Py_None)  // == None
+-                new (storage) boost::optional<bool>(); // A Boost uninitialized value
++                new (storage) std::optional<bool>(); // A Boost uninitialized value
+             else
+             {
+-                new (storage) boost::optional<bool>(source == Py_True ? true : false);
++                new (storage) std::optional<bool>(source == Py_True ? true : false);
+             }
+             data->convertible = storage;
+         }
+@@ -195,7 +195,7 @@ struct python_optional<bool> : public mapnik::util::noncopyable
+ 
+     explicit python_optional()
+     {
+-        register_python_conversion<boost::optional<bool>,
++        register_python_conversion<std::optional<bool>,
+             optional_to_python, optional_from_python>();
+     }
+ };
diff --git a/pkgs/development/python-modules/python-markdown-math/default.nix b/pkgs/development/python-modules/python-markdown-math/default.nix
index 9ea32e8606462..3bf104029b40a 100644
--- a/pkgs/development/python-modules/python-markdown-math/default.nix
+++ b/pkgs/development/python-modules/python-markdown-math/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, markdown
-, isPy27
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  markdown,
+  isPy27,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-matter-server/default.nix b/pkgs/development/python-modules/python-matter-server/default.nix
index b157eba228acd..49c0ff2634aa2 100644
--- a/pkgs/development/python-modules/python-matter-server/default.nix
+++ b/pkgs/development/python-modules/python-matter-server/default.nix
@@ -1,45 +1,45 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, stdenvNoCC
-, substituteAll
-
-# build
-, setuptools
-, pythonRelaxDepsHook
-
-# propagates
-, aiohttp
-, aiorun
-, async-timeout
-, coloredlogs
-, dacite
-, orjson
-, home-assistant-chip-clusters
-
-# optionals
-, cryptography
-, home-assistant-chip-core
-, zeroconf
-
-# tests
-, python
-, pytest
-, pytest-aiohttp
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  stdenvNoCC,
+  substituteAll,
+
+  # build
+  setuptools,
+
+  # propagates
+  aiohttp,
+  aiorun,
+  async-timeout,
+  coloredlogs,
+  dacite,
+  orjson,
+  home-assistant-chip-clusters,
+
+  # optionals
+  cryptography,
+  home-assistant-chip-core,
+  zeroconf,
+
+  # tests
+  python,
+  pytest,
+  pytest-aiohttp,
+  pytestCheckHook,
 }:
 
 let
   paaCerts = stdenvNoCC.mkDerivation rec {
     pname = "matter-server-paa-certificates";
-    version = "1.2.0.1";
+    version = "1.3.0.0";
 
     src = fetchFromGitHub {
       owner = "project-chip";
       repo = "connectedhomeip";
       rev = "refs/tags/v${version}";
-      hash = "sha256-p3P0n5oKRasYz386K2bhN3QVfN6oFndFIUWLEUWB0ss=";
+      hash = "sha256-5MI6r0KhSTzolesTQ8YWeoko64jFu4jHfO5KOOKpV0A=";
     };
 
     installPhase = ''
@@ -55,8 +55,8 @@ in
 
 buildPythonPackage rec {
   pname = "python-matter-server";
-  version = "5.9.0";
-  format = "pyproject";
+  version = "6.1.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.10";
 
@@ -64,7 +64,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = "python-matter-server";
     rev = "refs/tags/${version}";
-    hash = "sha256-O3AJ7vBjuwRGa4AMwWIdxn5m2F45rLCjCHeff18b/5E=";
+    hash = "sha256-J0Y7+cNRpHxCLYoOMd/W8WxvDQzJdqfbcaD779tSPqM=";
   };
 
   patches = [
@@ -80,16 +80,13 @@ buildPythonPackage rec {
       --replace '--cov' ""
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "home-assistant-chip-clusters"
-  ];
+  pythonRelaxDeps = [ "home-assistant-chip-clusters" ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     aiorun
     async-timeout
@@ -99,7 +96,7 @@ buildPythonPackage rec {
     home-assistant-chip-clusters
   ];
 
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     server = [
       cryptography
       home-assistant-chip-core
@@ -110,15 +107,15 @@ buildPythonPackage rec {
   nativeCheckInputs = [
     pytest-aiohttp
     pytestCheckHook
-  ]
-  ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
-
-  preCheck = let
-    pythonEnv = python.withPackages (_: propagatedBuildInputs ++ nativeCheckInputs ++ [ pytest ]);
-  in
-  ''
-    export PYTHONPATH=${pythonEnv}/${python.sitePackages}
-  '';
+  ] ++ lib.flatten (lib.attrValues optional-dependencies);
+
+  preCheck =
+    let
+      pythonEnv = python.withPackages (_: dependencies ++ nativeCheckInputs ++ [ pytest ]);
+    in
+    ''
+      export PYTHONPATH=${pythonEnv}/${python.sitePackages}
+    '';
 
   pytestFlagsArray = [
     # Upstream theymselves limit the test scope
diff --git a/pkgs/development/python-modules/python-matter-server/link-paa-root-certs.patch b/pkgs/development/python-modules/python-matter-server/link-paa-root-certs.patch
index 6c52715950562..f7b09bb0aff62 100644
--- a/pkgs/development/python-modules/python-matter-server/link-paa-root-certs.patch
+++ b/pkgs/development/python-modules/python-matter-server/link-paa-root-certs.patch
@@ -1,3 +1,13 @@
+From f45cf9898f2e5a3a4c2b73a9ed84c4a037a85a1e Mon Sep 17 00:00:00 2001
+From: Matt Leon <ml@mattleon.com>
+Date: Sat, 1 Jun 2024 23:28:41 -0400
+Subject: [PATCH] Symlink PAA root certificates to nix store
+
+---
+ matter_server/server/const.py                    | 2 ++
+ matter_server/server/helpers/paa_certificates.py | 6 ++++++
+ 2 files changed, 8 insertions(+)
+
 diff --git a/matter_server/server/const.py b/matter_server/server/const.py
 index 8cca3cf..43f02f5 100644
 --- a/matter_server/server/const.py
@@ -12,19 +22,19 @@ index 8cca3cf..43f02f5 100644
      .parent.resolve()
      .parent.resolve()
 diff --git a/matter_server/server/helpers/paa_certificates.py b/matter_server/server/helpers/paa_certificates.py
-index e530838..fdd6025 100644
+index de60c78..185e54c 100644
 --- a/matter_server/server/helpers/paa_certificates.py
 +++ b/matter_server/server/helpers/paa_certificates.py
-@@ -64,6 +64,8 @@ async def fetch_dcl_certificates(
-     fetch_production_certificates: bool = True,
+@@ -105,6 +105,8 @@ async def fetch_dcl_certificates(
+     base_url: str,
  ) -> int:
      """Fetch DCL PAA Certificates."""
 +    return 0
 +
-     LOGGER.info("Fetching the latest PAA root certificates from DCL.")
      fetch_count: int = 0
-     base_urls = set()
-@@ -124,6 +126,8 @@ async def fetch_dcl_certificates(
+ 
+     try:
+@@ -151,6 +153,8 @@ async def fetch_dcl_certificates(
  
  async def fetch_git_certificates(paa_root_cert_dir: Path) -> int:
      """Fetch Git PAA Certificates."""
@@ -33,12 +43,15 @@ index e530838..fdd6025 100644
      fetch_count = 0
      LOGGER.info("Fetching the latest PAA root certificates from Git.")
  
-@@ -159,6 +163,8 @@ async def fetch_certificates(
+@@ -185,6 +189,8 @@ async def fetch_certificates(
      fetch_production_certificates: bool = True,
  ) -> int:
      """Fetch PAA Certificates."""
 +    return 0
 +
      loop = asyncio.get_running_loop()
+     paa_root_cert_dir_version = paa_root_cert_dir / ".version"
  
-     if not paa_root_cert_dir.is_dir():
+-- 
+2.44.1
+
diff --git a/pkgs/development/python-modules/python-mbedtls/default.nix b/pkgs/development/python-modules/python-mbedtls/default.nix
index 967bade85b3b2..8459559938c7e 100644
--- a/pkgs/development/python-modules/python-mbedtls/default.nix
+++ b/pkgs/development/python-modules/python-mbedtls/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, certifi
-, cython
-, mbedtls_2
-, pytestCheckHook
-, setuptools
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  certifi,
+  cython,
+  mbedtls_2,
+  pytestCheckHook,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -26,18 +27,14 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  buildInputs = [
-    mbedtls_2
-  ];
+  buildInputs = [ mbedtls_2 ];
 
   propagatedBuildInputs = [
     certifi
     typing-extensions
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "mbedtls" ];
 
diff --git a/pkgs/development/python-modules/python-memcached/default.nix b/pkgs/development/python-modules/python-memcached/default.nix
index 4ca7cbbadd256..048e53e7eb4c9 100644
--- a/pkgs/development/python-modules/python-memcached/default.nix
+++ b/pkgs/development/python-modules/python-memcached/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, memcached
-, mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  memcached,
+  mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-Qko4Qr9WofeklU0uRRrSPrT8YaBYMCy0GP+TF7YZHLI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     memcached
diff --git a/pkgs/development/python-modules/python-miio/default.nix b/pkgs/development/python-modules/python-miio/default.nix
index 1d900d3d7fd8b..07466ebcddcd6 100644
--- a/pkgs/development/python-modules/python-miio/default.nix
+++ b/pkgs/development/python-modules/python-miio/default.nix
@@ -1,30 +1,30 @@
-{ lib
-, android-backup
-, appdirs
-, attrs
-, buildPythonPackage
-, click
-, construct
-, croniter
-, cryptography
-, defusedxml
-, fetchPypi
-, fetchpatch
-, importlib-metadata
-, micloud
-, netifaces
-, poetry-core
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, pytz
-, pyyaml
-, tqdm
-, zeroconf
+{
+  lib,
+  android-backup,
+  appdirs,
+  attrs,
+  buildPythonPackage,
+  click,
+  construct,
+  croniter,
+  cryptography,
+  defusedxml,
+  fetchPypi,
+  fetchpatch,
+  importlib-metadata,
+  micloud,
+  netifaces,
+  poetry-core,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  pyyaml,
+  tqdm,
+  zeroconf,
 }:
 
-
 buildPythonPackage rec {
   pname = "python-miio";
   version = "0.5.12";
@@ -37,9 +37,9 @@ buildPythonPackage rec {
     hash = "sha256-BJw1Gg3FO2R6WWKjkrpxDN4fTMTug5AIj0SNq1gEbBY=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  pythonRelaxDeps = [ "defusedxml" ];
+
+  nativeBuildInputs = [ poetry-core ];
 
   patches = [
     (fetchpatch {
@@ -64,9 +64,7 @@ buildPythonPackage rec {
     pyyaml
     tqdm
     zeroconf
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -74,9 +72,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "miio"
-  ];
+  pythonImportsCheck = [ "miio" ];
 
   meta = with lib; {
     description = "Python library for interfacing with Xiaomi smart appliances";
diff --git a/pkgs/development/python-modules/python-mimeparse/default.nix b/pkgs/development/python-modules/python-mimeparse/default.nix
index ddf89c914ad0b..4b7ef603297d3 100644
--- a/pkgs/development/python-modules/python-mimeparse/default.nix
+++ b/pkgs/development/python-modules/python-mimeparse/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -14,12 +15,10 @@ buildPythonPackage rec {
     sha256 = "76e4b03d700a641fd7761d3cd4fdbbdcd787eade1ebfac43f877016328334f78";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A module provides basic functions for parsing mime-type names and matching them against a list of media-ranges";
+    description = "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;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/python-mnist/default.nix b/pkgs/development/python-modules/python-mnist/default.nix
index 5937fceb1a9c8..ec7d447f36c24 100644
--- a/pkgs/development/python-modules/python-mnist/default.nix
+++ b/pkgs/development/python-modules/python-mnist/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "python-mnist";
diff --git a/pkgs/development/python-modules/python-motionmount/default.nix b/pkgs/development/python-modules/python-motionmount/default.nix
index 8e1ba0bb644ec..de451018a874f 100644
--- a/pkgs/development/python-modules/python-motionmount/default.nix
+++ b/pkgs/development/python-modules/python-motionmount/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "python-motionmount";
-  version = "1.0.1";
+  version = "2.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -17,7 +17,7 @@ buildPythonPackage rec {
     owner = "vogelsproducts";
     repo = "python-MotionMount";
     rev = "refs/tags/${version}";
-    hash = "sha256-F/nFo/PivnIogVwEh6MsQZQWg95kQMr6pZuf0SZa3n4=";
+    hash = "sha256-jmHFsJwnmdSUKz2W9pWtc9KpUAs6QWnO2V5KROwmTGs=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/python-mpv-jsonipc/default.nix b/pkgs/development/python-modules/python-mpv-jsonipc/default.nix
index c0e72be598252..13118b3169585 100644
--- a/pkgs/development/python-modules/python-mpv-jsonipc/default.nix
+++ b/pkgs/development/python-modules/python-mpv-jsonipc/default.nix
@@ -1,5 +1,12 @@
-{ lib, buildPythonPackage, fetchFromGitHub, requests
-, tqdm, websocket-client, pythonOlder }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  tqdm,
+  websocket-client,
+  pythonOlder,
+}:
 
 buildPythonPackage rec {
   pname = "python-mpv-jsonipc";
@@ -17,7 +24,11 @@ buildPythonPackage rec {
   # 'mpv-jsonipc' does not have any tests
   doCheck = false;
 
-  propagatedBuildInputs = [ requests tqdm websocket-client ];
+  propagatedBuildInputs = [
+    requests
+    tqdm
+    websocket-client
+  ];
 
   pythonImportsCheck = [ "python_mpv_jsonipc" ];
 
diff --git a/pkgs/development/python-modules/python-multipart/default.nix b/pkgs/development/python-modules/python-multipart/default.nix
index f65beeed10d56..3703e12757626 100644
--- a/pkgs/development/python-modules/python-multipart/default.nix
+++ b/pkgs/development/python-modules/python-multipart/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatchling
-, pytestCheckHook
-, mock
-, pyyaml
-, six
-
-# for passthru.tests
-, asgi-csrf
-, connexion
-, fastapi
-, gradio
-, starlette
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatchling,
+  pytestCheckHook,
+  mock,
+  pyyaml,
+  six,
+
+  # for passthru.tests
+  asgi-csrf,
+  connexion,
+  fastapi,
+  gradio,
+  starlette,
 }:
 
 buildPythonPackage rec {
@@ -26,17 +27,11 @@ buildPythonPackage rec {
     hash = "sha256-A/VGiMZj8beXcQXwIQQ7B5MVHkyxwanUoR/BPWIsQCY=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  pythonImportsCheck = [
-    "multipart"
-  ];
+  pythonImportsCheck = [ "multipart" ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -51,11 +46,11 @@ buildPythonPackage rec {
       fastapi
       gradio
       starlette
-    ;
+      ;
   };
 
   meta = with lib; {
-    description = "A streaming multipart parser for Python";
+    description = "Streaming multipart parser for Python";
     homepage = "https://github.com/andrew-d/python-multipart";
     license = licenses.asl20;
     maintainers = with maintainers; [ ris ];
diff --git a/pkgs/development/python-modules/python-musicpd/default.nix b/pkgs/development/python-modules/python-musicpd/default.nix
index c105dcea14da7..673a9723397d6 100644
--- a/pkgs/development/python-modules/python-musicpd/default.nix
+++ b/pkgs/development/python-modules/python-musicpd/default.nix
@@ -1,6 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -13,12 +15,14 @@ buildPythonPackage rec {
     sha256 = "sha256-/FdM0UolVqhJNpS60Q/nra1hSHKL/LiSMX7/Hcipwco=";
   };
 
-  format = "setuptools";
+  pyproject = true;
+
+  build-system = [ setuptools ];
 
   doCheck = true;
 
   meta = with lib; {
-    description = "An MPD (Music Player Daemon) client library written in pure Python.";
+    description = "MPD (Music Player Daemon) client library written in pure Python";
     homepage = "https://gitlab.com/kaliko/python-musicpd";
     license = licenses.lgpl3Plus;
     maintainers = with lib.maintainers; [ apfelkuchen6 ];
diff --git a/pkgs/development/python-modules/python-mystrom/default.nix b/pkgs/development/python-modules/python-mystrom/default.nix
index 5b2f76d2571e3..ac95067f25e77 100644
--- a/pkgs/development/python-modules/python-mystrom/default.nix
+++ b/pkgs/development/python-modules/python-mystrom/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, aiohttp
-, click
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  aiohttp,
+  click,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-ndn/default.nix b/pkgs/development/python-modules/python-ndn/default.nix
index 8051c79173e83..be659d33113b3 100644
--- a/pkgs/development/python-modules/python-ndn/default.nix
+++ b/pkgs/development/python-modules/python-ndn/default.nix
@@ -1,17 +1,17 @@
-{ lib
-, aenum
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, lark
-, poetry-core
-, poetry-dynamic-versioning
-, pycryptodomex
-, pygtrie
-, pytestCheckHook
-, pythonRelaxDepsHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  aenum,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lark,
+  poetry-core,
+  poetry-dynamic-versioning,
+  pycryptodomex,
+  pygtrie,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -32,7 +32,6 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     setuptools
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -44,18 +43,14 @@ buildPythonPackage rec {
     aiohttp
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonRelaxDeps = [
-    "lark"
-  ];
+  pythonRelaxDeps = [ "lark" ];
 
   pythonImportsCheck = [ "ndn" ];
 
   meta = with lib; {
-    description = "An NDN client library with AsyncIO support";
+    description = "NDN client library with AsyncIO support";
     homepage = "https://github.com/named-data/python-ndn";
     changelog = "https://github.com/named-data/python-ndn/blob/${src.rev}/CHANGELOG.rst";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/python-nest/default.nix b/pkgs/development/python-modules/python-nest/default.nix
index 1cbdd2837a723..bcac7a5cad8ec 100644
--- a/pkgs/development/python-modules/python-nest/default.nix
+++ b/pkgs/development/python-modules/python-nest/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python-dateutil
-, requests
-, six
-, sseclient-py
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python-dateutil,
+  requests,
+  six,
+  sseclient-py,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "nest"
-  ];
+  pythonImportsCheck = [ "nest" ];
 
   meta = with lib; {
     description = "Python API and command line tool for talking to the Nest™ Thermostat";
diff --git a/pkgs/development/python-modules/python-nmap/default.nix b/pkgs/development/python-modules/python-nmap/default.nix
index d0f3129a321c1..b6651d641dcbc 100644
--- a/pkgs/development/python-modules/python-nmap/default.nix
+++ b/pkgs/development/python-modules/python-nmap/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nmap
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nmap,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-91r2uR3Y47DDH4adsyFj9iraaGlF5bfCX4S8D3+tO2Q=";
   };
 
-  propagatedBuildInputs = [
-    nmap
-  ];
+  propagatedBuildInputs = [ nmap ];
 
   postPatch = ''
     substituteInPlace setup.cfg \
@@ -26,9 +25,7 @@ buildPythonPackage rec {
   # Tests requires sudo and performs scans
   doCheck = false;
 
-  pythonImportsCheck = [
-    "nmap"
-  ];
+  pythonImportsCheck = [ "nmap" ];
 
   meta = with lib; {
     description = "Python library which helps in using nmap";
diff --git a/pkgs/development/python-modules/python-nomad/default.nix b/pkgs/development/python-modules/python-nomad/default.nix
index 3a7750e9deac7..2f4cfc1fef7ff 100644
--- a/pkgs/development/python-modules/python-nomad/default.nix
+++ b/pkgs/development/python-modules/python-nomad/default.nix
@@ -1,32 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  requests,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "python-nomad";
-  version = "2.0.0";
-  format = "setuptools";
+  version = "2.0.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-5IyHNw1ArE8fU9DoSQMGkDI9d/OiR1YI/7nTPeFIK+A=";
+    pname = "python_nomad";
+    inherit version;
+    hash = "sha256-TXCm6FxYoavjN3ASioQ7yXQVsDDXedDKBgGGP8ghQdM=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ requests ];
 
   # Tests require nomad agent
   doCheck = false;
 
-  pythonImportsCheck = [
-    "nomad"
-  ];
+  pythonImportsCheck = [ "nomad" ];
 
   meta = with lib; {
     description = "Python client library for Hashicorp Nomad";
diff --git a/pkgs/development/python-modules/python-novaclient/default.nix b/pkgs/development/python-modules/python-novaclient/default.nix
index d3451236d0914..e0257ae1cfda0 100644
--- a/pkgs/development/python-modules/python-novaclient/default.nix
+++ b/pkgs/development/python-modules/python-novaclient/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, ddt
-, iso8601
-, keystoneauth1
-, openssl
-, oslo-i18n
-, oslo-serialization
-, pbr
-, prettytable
-, pythonOlder
-, requests-mock
-, stestr
-, testscenarios
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  ddt,
+  iso8601,
+  keystoneauth1,
+  openssl,
+  oslo-i18n,
+  oslo-serialization,
+  pbr,
+  prettytable,
+  pythonOlder,
+  requests-mock,
+  stestr,
+  testscenarios,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-nvd3/default.nix b/pkgs/development/python-modules/python-nvd3/default.nix
index 3674cb9bf5681..a293ee90d1577 100644
--- a/pkgs/development/python-modules/python-nvd3/default.nix
+++ b/pkgs/development/python-modules/python-nvd3/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchFromGitHub, python-slugify, jinja2, setuptools, coverage }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python-slugify,
+  jinja2,
+  setuptools,
+  coverage,
+}:
 
 buildPythonPackage rec {
   pname = "python-nvd3";
@@ -12,7 +20,11 @@ buildPythonPackage rec {
     sha256 = "1vjnicszcc9j0rgb58104fk9sry5xad1xli64jana9bkx42c6x1v";
   };
 
-  propagatedBuildInputs = [ python-slugify jinja2 setuptools ];
+  propagatedBuildInputs = [
+    python-slugify
+    jinja2
+    setuptools
+  ];
   nativeCheckInputs = [ coverage ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/python-oauth2/default.nix b/pkgs/development/python-modules/python-oauth2/default.nix
index cd1baccf286c8..14bf4a05a425e 100644
--- a/pkgs/development/python-modules/python-oauth2/default.nix
+++ b/pkgs/development/python-modules/python-oauth2/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Framework that aims at making it easy to provide authentication via OAuth 2.0 within an application stack";
-    homepage =  "https://github.com/wndhydrnt/python-oauth2";
+    homepage = "https://github.com/wndhydrnt/python-oauth2";
     license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/python-olm/default.nix b/pkgs/development/python-modules/python-olm/default.nix
index 8d0459e6eb633..7af0f8fd7c63c 100644
--- a/pkgs/development/python-modules/python-olm/default.nix
+++ b/pkgs/development/python-modules/python-olm/default.nix
@@ -1,9 +1,13 @@
-{ lib, buildPythonPackage, isPy3k, olm
-, cffi
-, future
-, aspectlib
-, pytest-benchmark
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  isPy3k,
+  olm,
+  cffi,
+  future,
+  aspectlib,
+  pytest-benchmark,
+  pytestCheckHook,
 }:
 
 buildPythonPackage {
@@ -25,9 +29,7 @@ buildPythonPackage {
     future
   ];
 
-  propagatedNativeBuildInputs = [
-    cffi
-  ];
+  propagatedNativeBuildInputs = [ cffi ];
 
   pythonImportsCheck = [ "olm" ];
 
diff --git a/pkgs/development/python-modules/python-on-whales/default.nix b/pkgs/development/python-modules/python-on-whales/default.nix
index 3cd8f85e6a40f..590ec69df6249 100644
--- a/pkgs/development/python-modules/python-on-whales/default.nix
+++ b/pkgs/development/python-modules/python-on-whales/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pythonOlder
-, pydantic
-, requests
-, tqdm
-, typer
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pythonOlder,
+  pydantic,
+  requests,
+  tqdm,
+  typer,
 }:
 
 buildPythonPackage rec {
@@ -32,7 +33,7 @@ buildPythonPackage rec {
     typer
   ];
 
-  doCheck = false;  # majority of tests require Docker and/or network access
+  doCheck = false; # majority of tests require Docker and/or network access
   pythonImportsCheck = [ "python_on_whales" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/python-opendata-transport/default.nix b/pkgs/development/python-modules/python-opendata-transport/default.nix
index 473eb8089707f..0473b5dcfe19e 100644
--- a/pkgs/development/python-modules/python-opendata-transport/default.nix
+++ b/pkgs/development/python-modules/python-opendata-transport/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, urllib3
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-2lEKPu5vjyqNUqz1NGmZ5b6YP3oWnCgoubDdiQCbdps=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -32,9 +31,7 @@ buildPythonPackage rec {
   # No tests are present
   doCheck = false;
 
-  pythonImportsCheck = [
-    "opendata_transport"
-  ];
+  pythonImportsCheck = [ "opendata_transport" ];
 
   meta = with lib; {
     description = "Python client for interacting with transport.opendata.ch";
diff --git a/pkgs/development/python-modules/python-openems/default.nix b/pkgs/development/python-modules/python-openems/default.nix
index c4b07b18cafa9..a13f0d8bff844 100644
--- a/pkgs/development/python-modules/python-openems/default.nix
+++ b/pkgs/development/python-modules/python-openems/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, cython_0
-, openems
-, csxcad
-, boost
-, python-csxcad
-, numpy
-, h5py
+{
+  lib,
+  buildPythonPackage,
+  cython_0,
+  openems,
+  csxcad,
+  boost,
+  python-csxcad,
+  numpy,
+  h5py,
 }:
 
 buildPythonPackage rec {
@@ -31,7 +32,11 @@ buildPythonPackage rec {
     h5py
   ];
 
-  setupPyBuildFlags = [ "-I${openems}/include" "-L${openems}/lib" "-R${openems}/lib" ];
+  setupPyBuildFlags = [
+    "-I${openems}/include"
+    "-L${openems}/lib"
+    "-R${openems}/lib"
+  ];
   pythonImportsCheck = [ "openEMS" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/python-opensky/default.nix b/pkgs/development/python-modules/python-opensky/default.nix
index e6b7a41f6e68b..7f5dc62febb78 100644
--- a/pkgs/development/python-modules/python-opensky/default.nix
+++ b/pkgs/development/python-modules/python-opensky/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pydantic
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, syrupy
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pydantic,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  syrupy,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
       --replace ".joinpath(uri)" "/ uri"
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -51,9 +50,7 @@ buildPythonPackage rec {
     syrupy
   ];
 
-  pythonImportsCheck = [
-    "python_opensky"
-  ];
+  pythonImportsCheck = [ "python_opensky" ];
 
   meta = with lib; {
     description = "Asynchronous Python client for the OpenSky API";
diff --git a/pkgs/development/python-modules/python-openstackclient/default.nix b/pkgs/development/python-modules/python-openstackclient/default.nix
index 9663fce022f17..fc48197864abd 100644
--- a/pkgs/development/python-modules/python-openstackclient/default.nix
+++ b/pkgs/development/python-modules/python-openstackclient/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, ddt
-, installShellFiles
-, openstackdocstheme
-, osc-lib
-, pbr
-, python-cinderclient
-, python-keystoneclient
-, python-novaclient
-, requests-mock
-, sphinx
-, sphinxcontrib-apidoc
-, stestr
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  ddt,
+  installShellFiles,
+  openstackdocstheme,
+  osc-lib,
+  pbr,
+  python-cinderclient,
+  python-keystoneclient,
+  python-novaclient,
+  requests-mock,
+  sphinx,
+  sphinxcontrib-apidoc,
+  stestr,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-openzwave/default.nix b/pkgs/development/python-modules/python-openzwave/default.nix
index 4611039e34d9a..179f3fd2b9bda 100644
--- a/pkgs/development/python-modules/python-openzwave/default.nix
+++ b/pkgs/development/python-modules/python-openzwave/default.nix
@@ -1,7 +1,18 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k
-, pkg-config
-, systemd, libyaml, openzwave, cython, pyserial
-, six, pydispatcher, urwid }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  pkg-config,
+  systemd,
+  libyaml,
+  openzwave,
+  cython,
+  pyserial,
+  six,
+  pydispatcher,
+  urwid,
+}:
 
 buildPythonPackage rec {
   pname = "python-openzwave";
@@ -18,8 +29,18 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [ pkg-config ];
-  buildInputs = [ systemd libyaml openzwave cython ];
-  propagatedBuildInputs = [ six urwid pydispatcher pyserial ];
+  buildInputs = [
+    systemd
+    libyaml
+    openzwave
+    cython
+  ];
+  propagatedBuildInputs = [
+    six
+    urwid
+    pydispatcher
+    pyserial
+  ];
 
   # primary location for the .xml files is in /etc/openzwave so we override the
   # /usr/local/etc lookup instead as that allows us to dump new .xml files into
diff --git a/pkgs/development/python-modules/python-osc/default.nix b/pkgs/development/python-modules/python-osc/default.nix
index b82549955bdad..ee782b7362a7a 100644
--- a/pkgs/development/python-modules/python-osc/default.nix
+++ b/pkgs/development/python-modules/python-osc/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,17 +20,11 @@ buildPythonPackage rec {
     hash = "sha256-pc4bpWyNgt9Ryz8pRrXdM6cFInkazEuFZOYtKyCtnKo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "pythonosc"
-  ];
+  pythonImportsCheck = [ "pythonosc" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Open Sound Control server and client in pure python";
diff --git a/pkgs/development/python-modules/python-otbr-api/default.nix b/pkgs/development/python-modules/python-otbr-api/default.nix
index 675f72d5e0356..6df0b0c8f36fd 100644
--- a/pkgs/development/python-modules/python-otbr-api/default.nix
+++ b/pkgs/development/python-modules/python-otbr-api/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aiohttp
-, bitstruct
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, voluptuous
+{
+  lib,
+  aiohttp,
+  bitstruct,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  voluptuous,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-RMj4NdEbMIxh2PDzbhUWgmcdzRXY8RxcQNN/bbGOW5Q=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -41,9 +40,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "python_otbr_api"
-  ];
+  pythonImportsCheck = [ "python_otbr_api" ];
 
   meta = with lib; {
     description = "Library for the Open Thread Border Router";
diff --git a/pkgs/development/python-modules/python-owasp-zap-v2-4/default.nix b/pkgs/development/python-modules/python-owasp-zap-v2-4/default.nix
index e9ad3d9893ef2..5aaca9b14f110 100644
--- a/pkgs/development/python-modules/python-owasp-zap-v2-4/default.nix
+++ b/pkgs/development/python-modules/python-owasp-zap-v2-4/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyhamcrest
-, pytestCheckHook
-, requests
-, requests-mock
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyhamcrest,
+  pytestCheckHook,
+  requests,
+  requests-mock,
+  six,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-packer/default.nix b/pkgs/development/python-modules/python-packer/default.nix
index d4380da9b4e97..851cae395ad40 100644
--- a/pkgs/development/python-modules/python-packer/default.nix
+++ b/pkgs/development/python-modules/python-packer/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, fetchpatch, sh }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  sh,
+}:
 
 buildPythonPackage rec {
   pname = "python-packer";
@@ -22,7 +28,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An interface for packer.io";
+    description = "Interface for packer.io";
     homepage = "https://github.com/nir0s/python-packer";
     license = licenses.asl20;
     maintainers = with maintainers; [ psyanticy ];
diff --git a/pkgs/development/python-modules/python-pae/default.nix b/pkgs/development/python-modules/python-pae/default.nix
index 73456cbd8f559..731626689adf2 100644
--- a/pkgs/development/python-modules/python-pae/default.nix
+++ b/pkgs/development/python-modules/python-pae/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, poetry-core
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  poetry-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,13 +21,9 @@ buildPythonPackage rec {
     hash = "sha256-D0X2T0ze79KR6Gno4UWpA/XvlkK6Y/jXUtLbzlOKr3E=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "python_pae" ];
 
@@ -34,6 +31,6 @@ buildPythonPackage rec {
     description = "Pre-authentication encoding (PAE) implementation in Python";
     homepage = "https://github.com/MatthiasValvekens/python-pae";
     license = licenses.mit;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/python-pam/default.nix b/pkgs/development/python-modules/python-pam/default.nix
index 22dcf9e467b8a..3a2d011ab0c53 100644
--- a/pkgs/development/python-modules/python-pam/default.nix
+++ b/pkgs/development/python-modules/python-pam/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pam
-, six
-, toml
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pam,
+  six,
+  toml,
 }:
 
 buildPythonPackage rec {
@@ -25,13 +26,9 @@ buildPythonPackage rec {
       --replace 'find_library("pam_misc")' '"${pam}/lib/libpam_misc.so"'
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  buildInputs = [
-    pam
-  ];
+  buildInputs = [ pam ];
 
   propagatedBuildInputs = [
     six
@@ -44,6 +41,9 @@ buildPythonPackage rec {
     description = "Python pam module";
     homepage = "https://github.com/FirefighterBlu3/python-pam";
     license = licenses.mit;
-    maintainers = with maintainers; [ abbradar mkg20001 ];
+    maintainers = with maintainers; [
+      abbradar
+      mkg20001
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/python-periphery/default.nix b/pkgs/development/python-modules/python-periphery/default.nix
index 6437bbffe01cc..ed97aef27a39a 100644
--- a/pkgs/development/python-modules/python-periphery/default.nix
+++ b/pkgs/development/python-modules/python-periphery/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "python-periphery";
diff --git a/pkgs/development/python-modules/python-picnic-api/default.nix b/pkgs/development/python-modules/python-picnic-api/default.nix
index b467a1a36f843..5267f99587c02 100644
--- a/pkgs/development/python-modules/python-picnic-api/default.nix
+++ b/pkgs/development/python-modules/python-picnic-api/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -14,17 +15,13 @@ buildPythonPackage rec {
     sha256 = "1axqw4bs3wa9mdac35h7r25v3i5g7v55cvyy48c4sg31dxnr4wcp";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project doesn't ship tests
   # https://github.com/MikeBrink/python-picnic-api/issues/13
   doCheck = false;
 
-  pythonImportsCheck = [
-    "python_picnic_api"
-  ];
+  pythonImportsCheck = [ "python_picnic_api" ];
 
   meta = with lib; {
     description = "Python wrapper for the Picnic API";
diff --git a/pkgs/development/python-modules/python-pidfile/default.nix b/pkgs/development/python-modules/python-pidfile/default.nix
index b9629d7303cec..44a44306ee8e3 100644
--- a/pkgs/development/python-modules/python-pidfile/default.nix
+++ b/pkgs/development/python-modules/python-pidfile/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, psutil
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  psutil,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-pgQBL2iagsHMRFEKI85ZwyaIL7kcIftAy6s+lX958M0=";
   };
 
-  propagatedBuildInputs = [
-    psutil
-  ];
+  propagatedBuildInputs = [ psutil ];
 
   pythonImportsCheck = [ "pidfile" ];
 
diff --git a/pkgs/development/python-modules/python-pipedrive/default.nix b/pkgs/development/python-modules/python-pipedrive/default.nix
index a3c37ab5a5daa..9f541ba8005c0 100644
--- a/pkgs/development/python-modules/python-pipedrive/default.nix
+++ b/pkgs/development/python-modules/python-pipedrive/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, httplib2
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  httplib2,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-pkcs11/default.nix b/pkgs/development/python-modules/python-pkcs11/default.nix
index 260b26730728d..b4891105ce226 100644
--- a/pkgs/development/python-modules/python-pkcs11/default.nix
+++ b/pkgs/development/python-modules/python-pkcs11/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, asn1crypto
-, buildPythonPackage
-, cached-property
-, cython
-, fetchFromGitHub
-, setuptools-scm
+{
+  lib,
+  asn1crypto,
+  buildPythonPackage,
+  cached-property,
+  cython,
+  fetchFromGitHub,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-pptx/default.nix b/pkgs/development/python-modules/python-pptx/default.nix
index b18a5606f66b8..92ff6ce7857e7 100644
--- a/pkgs/development/python-modules/python-pptx/default.nix
+++ b/pkgs/development/python-modules/python-pptx/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, lxml
-, xlsxwriter
-, pillow
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  lxml,
+  xlsxwriter,
+  pillow,
 }:
 buildPythonPackage rec {
   pname = "python-pptx";
@@ -34,6 +35,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/scanny/python-pptx";
     description = "Create Open XML PowerPoint documents in Python";
     license = licenses.mit;
-    maintainers = with maintainers; [happysalada];
+    maintainers = with maintainers; [ happysalada ];
   };
 }
diff --git a/pkgs/development/python-modules/python-prctl/default.nix b/pkgs/development/python-modules/python-prctl/default.nix
index 6ebb017e7fd79..ffc946a56f54b 100644
--- a/pkgs/development/python-modules/python-prctl/default.nix
+++ b/pkgs/development/python-modules/python-prctl/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, libcap
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  libcap,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-ptrace/default.nix b/pkgs/development/python-modules/python-ptrace/default.nix
index 496987c94e4a4..545610fb695ff 100644
--- a/pkgs/development/python-modules/python-ptrace/default.nix
+++ b/pkgs/development/python-modules/python-ptrace/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-Vrv+9E6vOne+SBOMyldnzfRx6CeP4Umfm3LxUZB/Jc8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # requires distorm, which is optionally
   doCheck = false;
diff --git a/pkgs/development/python-modules/python-rabbitair/default.nix b/pkgs/development/python-modules/python-rabbitair/default.nix
index 28c0ab9f4e562..fee2f88d5038c 100644
--- a/pkgs/development/python-modules/python-rabbitair/default.nix
+++ b/pkgs/development/python-modules/python-rabbitair/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, typing-extensions
-, zeroconf
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
@@ -24,25 +25,19 @@ buildPythonPackage rec {
     hash = "sha256-CGr7NvnGRNTiKq5BpB/zmfgyd/2ggTbO0nj+Q+MavTs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cryptography
     zeroconf
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "rabbitair"
-  ];
+  pythonImportsCheck = [ "rabbitair" ];
 
   disabledTests = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/python-rapidjson/default.nix b/pkgs/development/python-modules/python-rapidjson/default.nix
index 6c6aea0f161cd..d6efce383b80a 100644
--- a/pkgs/development/python-modules/python-rapidjson/default.nix
+++ b/pkgs/development/python-modules/python-rapidjson/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pythonOlder
-, rapidjson
-, pytestCheckHook
-, pytz
-, setuptools
-, substituteAll
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pythonOlder,
+  rapidjson,
+  pytestCheckHook,
+  pytz,
+  setuptools,
+  substituteAll,
 }:
 
 let
@@ -27,7 +28,8 @@ let
       })
     ];
   });
-in buildPythonPackage rec {
+in
+buildPythonPackage rec {
   version = "1.16";
   pname = "python-rapidjson";
   disabled = pythonOlder "3.8";
@@ -48,18 +50,14 @@ in buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytestCheckHook
     pytz
   ];
 
-  disabledTestPaths = [
-    "benchmarks"
-  ];
+  disabledTestPaths = [ "benchmarks" ];
 
   meta = with lib; {
     changelog = "https://github.com/python-rapidjson/python-rapidjson/blob/${src.rev}/CHANGES.rst";
diff --git a/pkgs/development/python-modules/python-redis-lock/default.nix b/pkgs/development/python-modules/python-redis-lock/default.nix
index 44527977bc192..2bc0c40cc1a00 100644
--- a/pkgs/development/python-modules/python-redis-lock/default.nix
+++ b/pkgs/development/python-modules/python-redis-lock/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, eventlet
-, fetchPypi
-, gevent
-, pkgs
-, process-tests
-, pytestCheckHook
-, pythonOlder
-, redis
-, withDjango ? false
-, django-redis
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  eventlet,
+  fetchPypi,
+  gevent,
+  pkgs,
+  process-tests,
+  pytestCheckHook,
+  pythonOlder,
+  redis,
+  withDjango ? false,
+  django-redis,
 }:
 
 buildPythonPackage rec {
@@ -25,11 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-Sr0Lz0kTasrWZye/VIbdJJQHjKVeSe+mk/eUB3MZCRo=";
   };
 
-  propagatedBuildInputs = [
-    redis
-  ] ++ lib.optionals withDjango [
-    django-redis
-  ];
+  propagatedBuildInputs = [ redis ] ++ lib.optionals withDjango [ django-redis ];
 
   nativeCheckInputs = [
     eventlet
@@ -39,18 +36,18 @@ buildPythonPackage rec {
     pkgs.redis
   ];
 
-  disabledTests = [
-    # https://github.com/ionelmc/python-redis-lock/issues/86
-    "test_no_overlap2"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # fail on Darwin because it defaults to multiprocessing `spawn`
-    "test_reset_signalizes"
-    "test_reset_all_signalizes"
-  ];
-
-  pythonImportsCheck = [
-    "redis_lock"
-  ];
+  disabledTests =
+    [
+      # https://github.com/ionelmc/python-redis-lock/issues/86
+      "test_no_overlap2"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # fail on Darwin because it defaults to multiprocessing `spawn`
+      "test_reset_signalizes"
+      "test_reset_all_signalizes"
+    ];
+
+  pythonImportsCheck = [ "redis_lock" ];
 
   meta = with lib; {
     changelog = "https://github.com/ionelmc/python-redis-lock/blob/v${version}/CHANGELOG.rst";
diff --git a/pkgs/development/python-modules/python-registry/default.nix b/pkgs/development/python-modules/python-registry/default.nix
index 4f8c4beae6c96..04c6e81d39112 100644
--- a/pkgs/development/python-modules/python-registry/default.nix
+++ b/pkgs/development/python-modules/python-registry/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, enum-compat
-, fetchFromGitHub
-, pytestCheckHook
-, unicodecsv
-, six
+{
+  lib,
+  buildPythonPackage,
+  enum-compat,
+  fetchFromGitHub,
+  pytestCheckHook,
+  unicodecsv,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -29,13 +30,9 @@ buildPythonPackage rec {
     six
   ];
 
-  disabledTestPaths = [
-    "samples"
-  ];
+  disabledTestPaths = [ "samples" ];
 
-  pythonImportsCheck = [
-    "Registry"
-  ];
+  pythonImportsCheck = [ "Registry" ];
 
   meta = with lib; {
     description = "Pure Python parser for Windows Registry hives";
diff --git a/pkgs/development/python-modules/python-roborock/default.nix b/pkgs/development/python-modules/python-roborock/default.nix
index 49ea2cc277d38..7a873d34bc2e6 100644
--- a/pkgs/development/python-modules/python-roborock/default.nix
+++ b/pkgs/development/python-modules/python-roborock/default.nix
@@ -15,12 +15,11 @@
   pytest-asyncio,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
 }:
 
 buildPythonPackage rec {
   pname = "python-roborock";
-  version = "2.0.0";
+  version = "2.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -29,7 +28,7 @@ buildPythonPackage rec {
     owner = "humbertogontijo";
     repo = "python-roborock";
     rev = "refs/tags/v${version}";
-    hash = "sha256-vtT6hsyiP1FxWo5PezcjJACknCT9JEhqSQ6C4FpU+Jg=";
+    hash = "sha256-YjD/aTSUeVuMyrdC2dcKgIqeBC+8NircRFLh2+mbD+8=";
   };
 
   postPatch = ''
@@ -41,7 +40,6 @@ buildPythonPackage rec {
 
   build-system = [ poetry-core ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   propagatedBuildInputs = [
     aiohttp
diff --git a/pkgs/development/python-modules/python-rtmidi/default.nix b/pkgs/development/python-modules/python-rtmidi/default.nix
index 9f073fd0a6ae7..95c047de31dbd 100644
--- a/pkgs/development/python-modules/python-rtmidi/default.nix
+++ b/pkgs/development/python-modules/python-rtmidi/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, stdenv
-, alabaster
-, alsa-lib
-, buildPythonPackage
-, CoreAudio
-, CoreMIDI
-, CoreServices
-, Foundation
-, cython
-, fetchPypi
-, flake8
-, libjack2
-, meson-python
-, ninja
-, pkg-config
-, pythonOlder
-, tox
-, wheel
+{
+  lib,
+  stdenv,
+  alabaster,
+  alsa-lib,
+  buildPythonPackage,
+  CoreAudio,
+  CoreMIDI,
+  CoreServices,
+  Foundation,
+  cython,
+  fetchPypi,
+  flake8,
+  libjack2,
+  meson-python,
+  ninja,
+  pkg-config,
+  pythonOlder,
+  tox,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -40,16 +41,18 @@ buildPythonPackage rec {
     wheel
   ];
 
-  buildInputs = [
-  ] ++ lib.optionals stdenv.isLinux [
-    libjack2
-    alsa-lib
-  ] ++ lib.optionals stdenv.isDarwin [
-    CoreAudio
-    CoreMIDI
-    CoreServices
-    Foundation
-  ];
+  buildInputs =
+    [ ]
+    ++ lib.optionals stdenv.isLinux [
+      libjack2
+      alsa-lib
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      CoreAudio
+      CoreMIDI
+      CoreServices
+      Foundation
+    ];
 
   nativeCheckInputs = [
     tox
@@ -57,12 +60,10 @@ buildPythonPackage rec {
     alabaster
   ];
 
-  pythonImportsCheck = [
-    "rtmidi"
-  ];
+  pythonImportsCheck = [ "rtmidi" ];
 
   meta = with lib; {
-    description = "A Python binding for the RtMidi C++ library implemented using Cython";
+    description = "Python binding for the RtMidi C++ library implemented using Cython";
     homepage = "https://github.com/SpotlightKid/python-rtmidi";
     changelog = "https://github.com/SpotlightKid/python-rtmidi/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/python-sat/default.nix b/pkgs/development/python-modules/python-sat/default.nix
index dfc512f6bc552..bf1c6c45982c7 100644
--- a/pkgs/development/python-modules/python-sat/default.nix
+++ b/pkgs/development/python-modules/python-sat/default.nix
@@ -1,4 +1,11 @@
-{ buildPythonPackage, fetchFromGitHub, lib, six, pypblib, pytestCheckHook }:
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  six,
+  pypblib,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "python-sat";
@@ -12,21 +19,24 @@ buildPythonPackage rec {
     hash = "sha256-zGdgD+SgoMB7/zDQI/trmV70l91TB7OkDxaJ30W3dkI=";
   };
 
-  propagatedBuildInputs = [ six pypblib ];
+  propagatedBuildInputs = [
+    six
+    pypblib
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
   # https://github.com/pysathq/pysat/pull/102
   postPatch = ''
-    # Fix for case-insensitive filesystem
-    cat >>solvers/patches/cadical.patch <<EOF
-diff --git solvers/cadical/VERSION solvers/cdc/VERSION
-deleted file mode 100644
---- solvers/cadical/VERSION
-+++ /dev/null
-@@ -1 +0,0 @@
--1.0.3
-EOF
+        # Fix for case-insensitive filesystem
+        cat >>solvers/patches/cadical.patch <<EOF
+    diff --git solvers/cadical/VERSION solvers/cdc/VERSION
+    deleted file mode 100644
+    --- solvers/cadical/VERSION
+    +++ /dev/null
+    @@ -1 +0,0 @@
+    -1.0.3
+    EOF
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/python-secp256k1-cardano/default.nix b/pkgs/development/python-modules/python-secp256k1-cardano/default.nix
index d5becf5d86264..1328dc98ae357 100644
--- a/pkgs/development/python-modules/python-secp256k1-cardano/default.nix
+++ b/pkgs/development/python-modules/python-secp256k1-cardano/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, fetchFromGitHub
-, python3
-, pkg-config
+{
+  lib,
+  fetchFromGitHub,
+  python3,
+  pkg-config,
 }:
 
 python3.pkgs.buildPythonPackage {
@@ -19,7 +20,10 @@ python3.pkgs.buildPythonPackage {
 
   nativeBuildInputs = [ pkg-config ];
 
-  propagatedBuildInputs = with python3.pkgs; [ cffi secp256k1 ];
+  propagatedBuildInputs = with python3.pkgs; [
+    cffi
+    secp256k1
+  ];
 
   nativeCheckInputs = [ python3.pkgs.pytestCheckHook ];
 
@@ -34,7 +38,7 @@ python3.pkgs.buildPythonPackage {
 
   meta = {
     homepage = "https://github.com/OpShin/python-secp256k1";
-    description = "A fork of python-secp256k1, fixing the commit hash of libsecp256k1 to a Cardano compatible version";
+    description = "Fork of python-secp256k1, fixing the commit hash of libsecp256k1 to a Cardano compatible version";
     license = with lib.licenses; [ mit ];
     maintainers = with lib.maintainers; [ t4ccer ];
   };
diff --git a/pkgs/development/python-modules/python-simple-hipchat/default.nix b/pkgs/development/python-modules/python-simple-hipchat/default.nix
index 754d7e79807e6..61b1fa8eab31d 100644
--- a/pkgs/development/python-modules/python-simple-hipchat/default.nix
+++ b/pkgs/development/python-modules/python-simple-hipchat/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "python-simple-hipchat";
diff --git a/pkgs/development/python-modules/python-slugify/default.nix b/pkgs/development/python-modules/python-slugify/default.nix
index 39ce7b39bacab..dcd0839cc097a 100644
--- a/pkgs/development/python-modules/python-slugify/default.nix
+++ b/pkgs/development/python-modules/python-slugify/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, text-unidecode
-, unidecode
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  text-unidecode,
+  unidecode,
 }:
 
 buildPythonPackage rec {
@@ -17,36 +18,24 @@ buildPythonPackage rec {
 
   src = fetchFromGitHub {
     owner = "un33k";
-    repo =  "python-slugify";
+    repo = "python-slugify";
     rev = "refs/tags/v${version}";
     hash = "sha256-zReUMIkItnDot3XyYCoPUNHrrAllbClWFYcxdTy3A30=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    text-unidecode
-  ];
+  propagatedBuildInputs = [ text-unidecode ];
 
   passthru.optional-dependencies = {
-    unidecode = [
-      unidecode
-    ];
+    unidecode = [ unidecode ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "test.py"
-  ];
+  pytestFlagsArray = [ "test.py" ];
 
-  pythonImportsCheck = [
-    "slugify"
-  ];
+  pythonImportsCheck = [ "slugify" ];
 
   meta = with lib; {
     description = "Python Slugify application that handles Unicode";
diff --git a/pkgs/development/python-modules/python-smarttub/default.nix b/pkgs/development/python-modules/python-smarttub/default.nix
index afe1451042b65..a16246c4331a3 100644
--- a/pkgs/development/python-modules/python-smarttub/default.nix
+++ b/pkgs/development/python-modules/python-smarttub/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, inflection
-, pyjwt
-, pytest-asyncio
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  inflection,
+  pyjwt,
+  pytest-asyncio,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -43,9 +44,7 @@ buildPythonPackage rec {
       --replace "pyjwt~=2.1.0" "pyjwt>=2.1.0"
   '';
 
-  pythonImportsCheck = [
-    "smarttub"
-  ];
+  pythonImportsCheck = [ "smarttub" ];
 
   meta = with lib; {
     description = "Python API for SmartTub enabled hot tubs";
diff --git a/pkgs/development/python-modules/python-snap7/default.nix b/pkgs/development/python-modules/python-snap7/default.nix
index d33bdc77f8b0a..fcbd2f98060c7 100644
--- a/pkgs/development/python-modules/python-snap7/default.nix
+++ b/pkgs/development/python-modules/python-snap7/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, snap7
-, fetchFromGitHub
-, setuptools
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  snap7,
+  fetchFromGitHub,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-90WwgqPHsHbuQUY49cSQblN1jfoLydiG0dm1aMF/NCA=";
   };
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  propagatedBuildInputs = [ setuptools ];
 
   prePatch = ''
     substituteInPlace snap7/common.py \
diff --git a/pkgs/development/python-modules/python-snappy/default.nix b/pkgs/development/python-modules/python-snappy/default.nix
index 1dfb5b83a6b57..88f4408dd59e0 100644
--- a/pkgs/development/python-modules/python-snappy/default.nix
+++ b/pkgs/development/python-modules/python-snappy/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cramjam
-, setuptools
-, snappy
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cramjam,
+  setuptools,
+  snappy,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
 
   buildInputs = [ snappy ];
 
-  dependencies = [
-    cramjam
-  ];
+  dependencies = [ cramjam ];
 
   nativeCheckInputs = [ unittestCheckHook ];
 
diff --git a/pkgs/development/python-modules/python-socketio/default.nix b/pkgs/development/python-modules/python-socketio/default.nix
index c45cd33b43e0d..1825c58e181b4 100644
--- a/pkgs/development/python-modules/python-socketio/default.nix
+++ b/pkgs/development/python-modules/python-socketio/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, bidict
-, python-engineio
+  # dependencies
+  bidict,
+  python-engineio,
 
-# optional-dependencies
-, aiohttp
-, requests
-, websocket-client
+  # optional-dependencies
+  aiohttp,
+  requests,
+  websocket-client,
 
-# tests
-, msgpack
-, pytestCheckHook
-, simple-websocket
-, uvicorn
+  # tests
+  msgpack,
+  pytestCheckHook,
+  simple-websocket,
+  uvicorn,
 
 }:
 
@@ -37,9 +38,7 @@ buildPythonPackage rec {
     hash = "sha256-t5QbuXjipLaf9GV+N5FLq45xJPK2/FUaM/0s8RNPTzo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     bidict
@@ -51,9 +50,7 @@ buildPythonPackage rec {
       requests
       websocket-client
     ];
-    asyncio_client = [
-      aiohttp
-    ];
+    asyncio_client = [ aiohttp ];
   };
 
   nativeCheckInputs = [
@@ -63,9 +60,7 @@ buildPythonPackage rec {
     simple-websocket
   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "socketio"
-  ];
+  pythonImportsCheck = [ "socketio" ];
 
   meta = with lib; {
     description = "Python Socket.IO server and client";
diff --git a/pkgs/development/python-modules/python-socks/default.nix b/pkgs/development/python-modules/python-socks/default.nix
index 3bf501791b304..208df3d95b109 100644
--- a/pkgs/development/python-modules/python-socks/default.nix
+++ b/pkgs/development/python-modules/python-socks/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, curio
-, fetchFromGitHub
-, anyio
-, flask
-, pytest-asyncio
-, pytest-trio
-, pythonOlder
-, pytestCheckHook
-, trio
-, trustme
-, yarl
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  curio,
+  fetchFromGitHub,
+  anyio,
+  flask,
+  pytest-asyncio,
+  pytest-trio,
+  pythonOlder,
+  pytestCheckHook,
+  trio,
+  trustme,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -48,9 +49,7 @@ buildPythonPackage rec {
     yarl
   ];
 
-  pythonImportsCheck = [
-    "python_socks"
-  ];
+  pythonImportsCheck = [ "python_socks" ];
 
   meta = with lib; {
     changelog = "https://github.com/romis2012/python-socks/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/python-songpal/default.nix b/pkgs/development/python-modules/python-songpal/default.nix
index 7affafc582bf1..84bb6e27f0120 100644
--- a/pkgs/development/python-modules/python-songpal/default.nix
+++ b/pkgs/development/python-modules/python-songpal/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, aiohttp
-, async-upnp-client
-, attrs
-, click
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  aiohttp,
+  async-upnp-client,
+  attrs,
+  click,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-PYw6xlUtBrxl+YeVO/2Njt5LYWEprzGPVNk1Mlr83HM=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     aiohttp
diff --git a/pkgs/development/python-modules/python-sql/default.nix b/pkgs/development/python-modules/python-sql/default.nix
index 2605080729c72..a7d91fcb759a8 100644
--- a/pkgs/development/python-modules/python-sql/default.nix
+++ b/pkgs/development/python-modules/python-sql/default.nix
@@ -1,29 +1,27 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "python-sql";
-  version = "1.4.3";
+  version = "1.5.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-YmC+/4NaNdOgrsTx2jUbC+nKoaDZSmy6lAp82Nz2Ymk=";
+    pname = "python_sql";
+    inherit version;
+    hash = "sha256-93RnHx0IT6a6Q4mJJM3r5O0NAHHfjWCAQKzU8cjYaqM=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "sql"
-  ];
+  pythonImportsCheck = [ "sql" ];
 
   meta = with lib; {
     description = "Library to write SQL queries in a pythonic way";
diff --git a/pkgs/development/python-modules/python-status/default.nix b/pkgs/development/python-modules/python-status/default.nix
index cf3beab789b67..5a1c14628dadc 100644
--- a/pkgs/development/python-modules/python-status/default.nix
+++ b/pkgs/development/python-modules/python-status/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-stdnum/default.nix b/pkgs/development/python-modules/python-stdnum/default.nix
index d8bdc0574dc95..2a2b5d714deea 100644
--- a/pkgs/development/python-modules/python-stdnum/default.nix
+++ b/pkgs/development/python-modules/python-stdnum/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, zeep
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  zeep,
 }:
 
 buildPythonPackage rec {
@@ -24,23 +25,15 @@ buildPythonPackage rec {
       --replace-fail " --cov=stdnum --cov-report=term-missing:skip-covered --cov-report=html" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   passthru.optional-dependencies = {
-    SOAP = [
-      zeep
-    ];
+    SOAP = [ zeep ];
   };
 
-  pythonImportsCheck = [
-    "stdnum"
-  ];
+  pythonImportsCheck = [ "stdnum" ];
 
   meta = with lib; {
     description = "Python module to handle standardized numbers and codes";
diff --git a/pkgs/development/python-modules/python-string-utils/default.nix b/pkgs/development/python-modules/python-string-utils/default.nix
index 17619b1b4db72..537f5f1f9a756 100644
--- a/pkgs/development/python-modules/python-string-utils/default.nix
+++ b/pkgs/development/python-modules/python-string-utils/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -13,13 +14,13 @@ buildPythonPackage rec {
     hash = "sha256-3PkGCwPwdkfApgNAjciwP4B/O1SgXG4Z6xRGAlb6wMs=";
   };
 
-  pythonImportsCheck = ["string_utils"];
+  pythonImportsCheck = [ "string_utils" ];
 
   # tests are not available in pypi tarball
   doCheck = false;
 
   meta = with lib; {
-    description = "A handy Python library to validate, manipulate and generate strings.";
+    description = "Handy Python library to validate, manipulate and generate strings";
     homepage = "https://github.com/daveoncode/python-string-utils";
     license = licenses.mit;
     maintainers = with maintainers; [ teto ];
diff --git a/pkgs/development/python-modules/python-swiftclient/default.nix b/pkgs/development/python-modules/python-swiftclient/default.nix
index 4e7c02371071b..9f4fca6cc4382 100644
--- a/pkgs/development/python-modules/python-swiftclient/default.nix
+++ b/pkgs/development/python-modules/python-swiftclient/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, installShellFiles
-, mock
-, openstacksdk
-, pbr
-, python-keystoneclient
-, pythonOlder
-, stestr
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  installShellFiles,
+  mock,
+  openstacksdk,
+  pbr,
+  python-keystoneclient,
+  pythonOlder,
+  stestr,
 }:
 
 buildPythonPackage rec {
   pname = "python-swiftclient";
-  version = "4.5.0";
+  version = "4.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-8qCIflo5KXq8BDJRrj+QiRTOFEei+NLcpWcWGGCBQr0=";
+    hash = "sha256-1NGFQEE4k/wWrYd5HXQPgj92NDXoIS5o61PWDaJjgjM=";
   };
 
   # remove duplicate script that will be created by setuptools from the
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     sed -i '/bin\/swift/d' setup.cfg
   '';
 
-  nativeBuildInputs = [
-    installShellFiles
-  ];
+  nativeBuildInputs = [ installShellFiles ];
 
   propagatedBuildInputs = [
     pbr
@@ -54,9 +53,7 @@ buildPythonPackage rec {
     stestr run
   '';
 
-  pythonImportsCheck = [
-    "swiftclient"
-  ];
+  pythonImportsCheck = [ "swiftclient" ];
 
   meta = with lib; {
     homepage = "https://github.com/openstack/python-swiftclient";
diff --git a/pkgs/development/python-modules/python-tado/default.nix b/pkgs/development/python-modules/python-tado/default.nix
index a273b33a20848..6fb45f4f72828 100644
--- a/pkgs/development/python-modules/python-tado/default.nix
+++ b/pkgs/development/python-modules/python-tado/default.nix
@@ -1,15 +1,17 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, pytestCheckHook
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "python-tado";
-  version = "0.17.5";
-  format = "setuptools";
+  version = "0.17.6";
+  pyproject = true;
 
   disabled = pythonOlder "3.5";
 
@@ -17,23 +19,23 @@ buildPythonPackage rec {
     owner = "wmalgadey";
     repo = "PyTado";
     rev = "refs/tags/${version}";
-    hash = "sha256-FjdqZc4Zt2sLYJpnD/MAzr8Y9lGHteHB5psQqheS84I=";
+    hash = "sha256-KcYxUKQuO7TLS4YPg2mrBjP+DMnvZeJokGzwmeM/CvE=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  dependencies = [ requests ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "PyTado" ];
 
   meta = with lib; {
     description = "Python binding for Tado web API. Pythonize your central heating!";
-    mainProgram = "pytado";
     homepage = "https://github.com/wmalgadey/PyTado";
     changelog = "https://github.com/wmalgadey/PyTado/releases/tag/${version}";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ jamiemagee ];
+    mainProgram = "pytado";
   };
 }
diff --git a/pkgs/development/python-modules/python-tds/default.nix b/pkgs/development/python-modules/python-tds/default.nix
index 502ff14336666..5a2e8e70da6c2 100644
--- a/pkgs/development/python-modules/python-tds/default.nix
+++ b/pkgs/development/python-modules/python-tds/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, six
-, pytestCheckHook
-, pyopenssl
-, pyspnego
-, namedlist
-, pydes
-, cryptography
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  six,
+  pytestCheckHook,
+  pyopenssl,
+  pyspnego,
+  namedlist,
+  pydes,
+  cryptography,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +29,9 @@ buildPythonPackage rec {
       --replace "version.get_git_version()" '"${version}"'
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/python-technove/default.nix b/pkgs/development/python-modules/python-technove/default.nix
index 795ddf5b1236c..55a92fbc7281f 100644
--- a/pkgs/development/python-modules/python-technove/default.nix
+++ b/pkgs/development/python-modules/python-technove/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, aiohttp
-, aresponses
-, awesomeversion
-, backoff
-, buildPythonPackage
-, cachetools
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  awesomeversion,
+  backoff,
+  buildPythonPackage,
+  cachetools,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
       --replace-fail "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -50,9 +49,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "technove"
-  ];
+  pythonImportsCheck = [ "technove" ];
 
   meta = with lib; {
     description = "Python library to interact with TechnoVE local device API";
diff --git a/pkgs/development/python-modules/python-telegram-bot/default.nix b/pkgs/development/python-modules/python-telegram-bot/default.nix
index adb2fc81c9775..26df7c0567d91 100644
--- a/pkgs/development/python-modules/python-telegram-bot/default.nix
+++ b/pkgs/development/python-modules/python-telegram-bot/default.nix
@@ -1,27 +1,27 @@
-{ lib
-, aiolimiter
-, apscheduler
-, beautifulsoup4
-, buildPythonPackage
-, cachetools
-, cryptography
-, fetchFromGitHub
-, flaky
-, httpx
-, pytest-asyncio
-, pytest-timeout
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, pytz
-, setuptools
-, wheel
-, tornado
+{
+  lib,
+  aiolimiter,
+  apscheduler,
+  beautifulsoup4,
+  buildPythonPackage,
+  cachetools,
+  cryptography,
+  fetchFromGitHub,
+  flaky,
+  httpx,
+  pytest-asyncio,
+  pytest-timeout,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  setuptools,
+  tornado,
 }:
 
 buildPythonPackage rec {
   pname = "python-telegram-bot";
-  version = "21.1";
+  version = "21.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -30,24 +30,19 @@ buildPythonPackage rec {
     owner = "python-telegram-bot";
     repo = "python-telegram-bot";
     rev = "refs/tags/v${version}";
-    hash = "sha256-s5C3f17VP5ooH78/4JQMkzuV1byi7rFPTmVr3lZliFc=";
+    hash = "sha256-eyIRZkt1ea2L20ryogKrmSx/+xL2fhNXcf3vUnuS9vo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-    wheel
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiolimiter
     apscheduler
     cachetools
     cryptography
     httpx
     pytz
-  ]
-  ++ httpx.optional-dependencies.socks
-  ++ httpx.optional-dependencies.http2;
+  ] ++ httpx.optional-dependencies.socks ++ httpx.optional-dependencies.http2;
 
   nativeCheckInputs = [
     beautifulsoup4
@@ -59,9 +54,7 @@ buildPythonPackage rec {
     tornado
   ];
 
-  pythonImportsCheck = [
-    "telegram"
-  ];
+  pythonImportsCheck = [ "telegram" ];
 
   disabledTests = [
     # Tests require network access
@@ -129,6 +122,9 @@ buildPythonPackage rec {
     homepage = "https://python-telegram-bot.org";
     changelog = "https://github.com/python-telegram-bot/python-telegram-bot/blob/v${version}/CHANGES.rst";
     license = licenses.lgpl3Only;
-    maintainers = with maintainers; [ veprbl pingiun ];
+    maintainers = with maintainers; [
+      veprbl
+      pingiun
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/python-telegram/default.nix b/pkgs/development/python-modules/python-telegram/default.nix
index 003806712d0e0..e3b493f438068 100644
--- a/pkgs/development/python-modules/python-telegram/default.nix
+++ b/pkgs/development/python-modules/python-telegram/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, tdlib
-, telegram-text
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  tdlib,
+  telegram-text,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -36,17 +37,11 @@ buildPythonPackage rec {
     telegram-text
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = [
-    "TestGetTdjsonTdlibPath"
-  ];
+  disabledTests = [ "TestGetTdjsonTdlibPath" ];
 
-  pythonImportsCheck = [
-    "telegram.client"
-  ];
+  pythonImportsCheck = [ "telegram.client" ];
 
   meta = with lib; {
     description = "Python client for the Telegram's tdlib";
diff --git a/pkgs/development/python-modules/python-toolbox/default.nix b/pkgs/development/python-modules/python-toolbox/default.nix
index bd975092ae9a0..3a91ae373788e 100644
--- a/pkgs/development/python-modules/python-toolbox/default.nix
+++ b/pkgs/development/python-modules/python-toolbox/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, docutils
-, fetchFromGitHub
-, isPy27
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  docutils,
+  fetchFromGitHub,
+  isPy27,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-trovo/default.nix b/pkgs/development/python-modules/python-trovo/default.nix
index d76d5d4a2b97d..dace99e3b34e9 100644
--- a/pkgs/development/python-modules/python-trovo/default.nix
+++ b/pkgs/development/python-modules/python-trovo/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, poetry-core
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  poetry-core,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-3EVSF4+nLvvM2RocNM2xz9Us5VrRRTCu/MWCcqwwikw=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [ requests ];
 
@@ -31,9 +30,9 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "trovoApi" ];
 
   meta = with lib; {
-    description = "A Python wrapper for the Trovo API";
+    description = "Python wrapper for the Trovo API";
     homepage = "https://codeberg.org/wolfangaukang/python-trovo";
     license = licenses.gpl3Only;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/python-twitch-client/default.nix b/pkgs/development/python-modules/python-twitch-client/default.nix
index 29a10ced06f28..2128314b0d88d 100644
--- a/pkgs/development/python-modules/python-twitch-client/default.nix
+++ b/pkgs/development/python-modules/python-twitch-client/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, responses
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  responses,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     sha256 = "sha256-gxBpltwExb9bg3HLkz/MNlP5Q3/x97RHxhbwNqqanIM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     pytestCheckHook
     responses
   ];
 
-  pythonImportsCheck = [
-    "twitch"
-  ];
+  pythonImportsCheck = [ "twitch" ];
 
   disabledTests = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/python-twitter/default.nix b/pkgs/development/python-modules/python-twitter/default.nix
index 92661187059f4..c61d726b71616 100644
--- a/pkgs/development/python-modules/python-twitter/default.nix
+++ b/pkgs/development/python-modules/python-twitter/default.nix
@@ -1,21 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, filetype
-, future
-, hypothesis
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-oauthlib
-, responses
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  filetype,
+  future,
+  hypothesis,
+  lib,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-oauthlib,
+  responses,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "python-twitter";
   version = "3.5";
-  format = "setuptools";
+
+  pyproject = true;
+  build-system = [ setuptools ];
 
   disabled = pythonOlder "3.7";
 
@@ -34,7 +38,7 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     filetype
     future
     requests
@@ -52,10 +56,13 @@ buildPythonPackage rec {
       --replace "'pytest-runner'" ""
   '';
 
-  pythonImportsCheck = [
-    "twitter"
+  disabledTests = [
+    # AttributeError: 'FileCacheTest' object has no attribute 'assert_'
+    "test_filecache"
   ];
 
+  pythonImportsCheck = [ "twitter" ];
+
   meta = with lib; {
     description = "Python wrapper around the Twitter API";
     homepage = "https://github.com/bear/python-twitter";
diff --git a/pkgs/development/python-modules/python-u2flib-host/default.nix b/pkgs/development/python-modules/python-u2flib-host/default.nix
index e2f16cef34d9c..3edc24d30bbec 100644
--- a/pkgs/development/python-modules/python-u2flib-host/default.nix
+++ b/pkgs/development/python-modules/python-u2flib-host/default.nix
@@ -1,4 +1,10 @@
-{ lib, fetchPypi, buildPythonPackage, requests, hidapi }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  requests,
+  hidapi,
+}:
 
 buildPythonPackage rec {
   pname = "python-u2flib-host";
@@ -10,7 +16,10 @@ buildPythonPackage rec {
     sha256 = "02pwafd5kyjpc310ys0pgnd0adff1laz18naxxwsfrllqafqnrxb";
   };
 
-  propagatedBuildInputs = [ requests hidapi ];
+  propagatedBuildInputs = [
+    requests
+    hidapi
+  ];
 
   # Tests fail: "ValueError: underlying buffer has been detached"
   doCheck = false;
diff --git a/pkgs/development/python-modules/python-u2flib-server/default.nix b/pkgs/development/python-modules/python-u2flib-server/default.nix
index 08a62d41363aa..e1b44777dfeea 100644
--- a/pkgs/development/python-modules/python-u2flib-server/default.nix
+++ b/pkgs/development/python-modules/python-u2flib-server/default.nix
@@ -1,17 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# propagates
-, cryptography
-, six
+  # propagates
+  cryptography,
+  six,
 
-# optional
-, webob
+  # optional
+  webob,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-ginP9u+aHcdaWpwcFYJWu0Ghf7+nDZq9i3TVAacIPhg=";
   };
 
-  patches = [
-    ./cryptography-37-compat.patch
-  ];
+  patches = [ ./cryptography-37-compat.patch ];
 
   propagatedBuildInputs = [
     cryptography
@@ -36,9 +34,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    u2f_server = [
-      webob
-    ];
+    u2f_server = [ webob ];
   };
 
   pythonImportsCheck = [
@@ -46,9 +42,7 @@ buildPythonPackage rec {
     "u2flib_server.u2f"
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.u2f_server;
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.u2f_server;
 
   meta = with lib; {
     description = "Python based U2F server library";
diff --git a/pkgs/development/python-modules/python-uinput/default.nix b/pkgs/development/python-modules/python-uinput/default.nix
index f491ab1fe6bb4..ef5ecb4105bcb 100644
--- a/pkgs/development/python-modules/python-uinput/default.nix
+++ b/pkgs/development/python-modules/python-uinput/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, udev
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  udev,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-ulid/default.nix b/pkgs/development/python-modules/python-ulid/default.nix
index af437c8f23fed..59c07c6453c82 100644
--- a/pkgs/development/python-modules/python-ulid/default.nix
+++ b/pkgs/development/python-modules/python-ulid/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, hatch-fancy-pypi-readme
-, hatch-vcs
-, hatchling
-, freezegun
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  hatch-fancy-pypi-readme,
+  hatch-vcs,
+  hatchling,
+  freezegun,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-unshare/default.nix b/pkgs/development/python-modules/python-unshare/default.nix
index 86958dfc003e0..1cfe02a07e2e9 100644
--- a/pkgs/development/python-modules/python-unshare/default.nix
+++ b/pkgs/development/python-modules/python-unshare/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage {
@@ -19,10 +20,9 @@ buildPythonPackage {
 
   meta = with lib; {
     description = "Python bindings for the Linux unshare() syscall";
-    homepage    = "https://github.com/thetincho/python-unshare";
-    license     = licenses.gpl2;
-    platforms   = platforms.linux;
+    homepage = "https://github.com/thetincho/python-unshare";
+    license = licenses.gpl2;
+    platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/python-utils/default.nix b/pkgs/development/python-modules/python-utils/default.nix
index 6e2e3fe795108..8fc1bcc15bcfc 100644
--- a/pkgs/development/python-modules/python-utils/default.nix
+++ b/pkgs/development/python-modules/python-utils/default.nix
@@ -1,12 +1,12 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, loguru
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  loguru,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -29,14 +29,10 @@ buildPythonPackage rec {
       -e '/--mypy/d'
   '';
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ typing-extensions ];
 
   passthru.optional-dependencies = {
-    loguru = [
-      loguru
-    ];
+    loguru = [ loguru ];
   };
 
   nativeCheckInputs = [
@@ -44,16 +40,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ passthru.optional-dependencies.loguru;
 
-  pythonImportsCheck = [
-    "python_utils"
-  ];
+  pythonImportsCheck = [ "python_utils" ];
 
-  pytestFlagsArray = [
-    "_python_utils_tests"
-  ];
+  pytestFlagsArray = [ "_python_utils_tests" ];
 
-  disabledTests = lib.optionals stdenv.isDarwin [
-    # Flaky tests on darwin
+  disabledTests = [
+    # Flaky tests
     "test_timeout_generator"
   ];
 
diff --git a/pkgs/development/python-modules/python-vagrant/default.nix b/pkgs/development/python-modules/python-vagrant/default.nix
index dcf29a4662d9a..3527defa41da0 100644
--- a/pkgs/development/python-modules/python-vagrant/default.nix
+++ b/pkgs/development/python-modules/python-vagrant/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
   # The tests try to connect to qemu
   doCheck = false;
 
-  pythonImportsCheck = [
-    "vagrant"
-  ];
+  pythonImportsCheck = [ "vagrant" ];
 
   meta = {
     description = "Python module that provides a thin wrapper around the vagrant command line executable";
diff --git a/pkgs/development/python-modules/python-velbus/default.nix b/pkgs/development/python-modules/python-velbus/default.nix
index 75d4e24f869b4..d93267cbcfb4e 100644
--- a/pkgs/development/python-modules/python-velbus/default.nix
+++ b/pkgs/development/python-modules/python-velbus/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyserial
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyserial,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-3eDfXPMO167QI/umLBjlHTBV67XQ8QYkg4EzfrRTw6M=";
   };
 
-  propagatedBuildInputs = [
-    pyserial
-  ];
+  propagatedBuildInputs = [ pyserial ];
 
   # Project has not tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "velbus"
-  ];
+  pythonImportsCheck = [ "velbus" ];
 
   meta = with lib; {
     description = "Python library to control the Velbus home automation system";
diff --git a/pkgs/development/python-modules/python-vipaccess/default.nix b/pkgs/development/python-modules/python-vipaccess/default.nix
index 7455408f0bc6d..b0d9e090e0ddd 100644
--- a/pkgs/development/python-modules/python-vipaccess/default.nix
+++ b/pkgs/development/python-modules/python-vipaccess/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, oath
-, pycryptodome
-, requests
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  oath,
+  pycryptodome,
+  requests,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -33,7 +34,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A free software implementation of Symantec's VIP Access application and protocol";
+    description = "Free software implementation of Symantec's VIP Access application and protocol";
     mainProgram = "vipaccess";
     homepage = "https://github.com/dlenski/python-vipaccess";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/python-vlc/default.nix b/pkgs/development/python-modules/python-vlc/default.nix
index cdc557bbe879d..3a58531de57c1 100644
--- a/pkgs/development/python-modules/python-vlc/default.nix
+++ b/pkgs/development/python-modules/python-vlc/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, libvlc
-, substituteAll
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  libvlc,
+  substituteAll,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,20 +24,16 @@ buildPythonPackage rec {
     # Patch path for VLC
     (substituteAll {
       src = ./vlc-paths.patch;
-      libvlcPath="${libvlc}/lib/libvlc.so.5";
+      libvlcPath = "${libvlc}/lib/libvlc.so.5";
     })
   ];
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  propagatedBuildInputs = [ setuptools ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "vlc"
-  ];
+  pythonImportsCheck = [ "vlc" ];
 
   meta = with lib; {
     description = "Python bindings for VLC, the cross-platform multimedia player and framework";
diff --git a/pkgs/development/python-modules/python-wifi/default.nix b/pkgs/development/python-modules/python-wifi/default.nix
index 05936274eef01..2dfd18079c72a 100644
--- a/pkgs/development/python-modules/python-wifi/default.nix
+++ b/pkgs/development/python-modules/python-wifi/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,9 @@ buildPythonPackage rec {
     homepage = "http://pythonwifi.tuxfamily.org/";
     # From the README: "pythonwifi is licensed under LGPLv2+, however, the
     # examples (e.g. iwconfig.py and iwlist.py) are licensed under GPLv2+."
-    license = with licenses; [ lgpl2Plus gpl2Plus ];
+    license = with licenses; [
+      lgpl2Plus
+      gpl2Plus
+    ];
   };
-
 }
diff --git a/pkgs/development/python-modules/python-wink/default.nix b/pkgs/development/python-modules/python-wink/default.nix
index 45f3604624743..464daf8ebd020 100644
--- a/pkgs/development/python-modules/python-wink/default.nix
+++ b/pkgs/development/python-modules/python-wink/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-xmp-toolkit/default.nix b/pkgs/development/python-modules/python-xmp-toolkit/default.nix
index 73957c33da267..612194ae75360 100644
--- a/pkgs/development/python-modules/python-xmp-toolkit/default.nix
+++ b/pkgs/development/python-modules/python-xmp-toolkit/default.nix
@@ -1,9 +1,11 @@
-{ buildPythonPackage
-, exempi
-, fetchFromGitHub
-, mock
-, pytz
-, lib, stdenv
+{
+  buildPythonPackage,
+  exempi,
+  fetchFromGitHub,
+  mock,
+  pytz,
+  lib,
+  stdenv,
 }:
 
 buildPythonPackage {
@@ -44,6 +46,6 @@ buildPythonPackage {
     homepage = "https://github.com/python-xmp-toolkit/python-xmp-toolkit";
     description = "Python XMP Toolkit for working with metadata";
     license = licenses.bsd3;
-    maintainers = [ maintainers.kiwi ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/python-xz/default.nix b/pkgs/development/python-modules/python-xz/default.nix
index a66ddd6ea8573..83fbc0997e579 100644
--- a/pkgs/development/python-modules/python-xz/default.nix
+++ b/pkgs/development/python-modules/python-xz/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/python-yate/default.nix b/pkgs/development/python-modules/python-yate/default.nix
index a6cc7ac6575f5..6207b13381e80 100644
--- a/pkgs/development/python-modules/python-yate/default.nix
+++ b/pkgs/development/python-modules/python-yate/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     async-timeout
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "yate"
-  ];
+  pythonImportsCheck = [ "yate" ];
 
   meta = with lib; {
     description = "Python library for the yate telephony engine";
diff --git a/pkgs/development/python-modules/python-youtube/default.nix b/pkgs/development/python-modules/python-youtube/default.nix
index 62987a03bc431..3b48fde0c3e94 100644
--- a/pkgs/development/python-modules/python-youtube/default.nix
+++ b/pkgs/development/python-modules/python-youtube/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, dataclasses-json
-, isodate
-, requests
-, requests-oauthlib
-, pytestCheckHook
-, responses
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  dataclasses-json,
+  isodate,
+  requests,
+  requests-oauthlib,
+  pytestCheckHook,
+  responses,
 }:
 buildPythonPackage rec {
   pname = "python-youtube";
@@ -27,9 +28,7 @@ buildPythonPackage rec {
       --replace "--cov-report xml" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     dataclasses-json
@@ -46,11 +45,10 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A simple Python wrapper around for YouTube Data API";
+    description = "Simple Python wrapper around for YouTube Data API";
     homepage = "https://github.com/sns-sdks/python-youtube";
     changelog = "https://github.com/sns-sdks/python-youtube/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ blaggacao ];
   };
 }
-
diff --git a/pkgs/development/python-modules/python-zbar/default.nix b/pkgs/development/python-modules/python-zbar/default.nix
index 539823f064ac9..ed676f9c3561d 100644
--- a/pkgs/development/python-modules/python-zbar/default.nix
+++ b/pkgs/development/python-modules/python-zbar/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
-, setuptools
-, pillow
-, zbar
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  setuptools,
+  pillow,
+  zbar,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -53,6 +54,6 @@ buildPythonPackage rec {
     description = "Python bindings for zbar";
     homepage = "https://github.com/mchehab/zbar";
     license = licenses.lgpl21Only;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/python3-application/default.nix b/pkgs/development/python-modules/python3-application/default.nix
index 8abfd28cb15ef..b761430a270e9 100644
--- a/pkgs/development/python-modules/python3-application/default.nix
+++ b/pkgs/development/python-modules/python3-application/default.nix
@@ -1,4 +1,12 @@
-{ stdenv, lib, isPy3k, buildPythonPackage, fetchFromGitHub, zope-interface, twisted }:
+{
+  stdenv,
+  lib,
+  isPy3k,
+  buildPythonPackage,
+  fetchFromGitHub,
+  zope-interface,
+  twisted,
+}:
 
 buildPythonPackage rec {
   pname = "python3-application";
@@ -14,16 +22,22 @@ buildPythonPackage rec {
     hash = "sha256-L7KN6rKkbjNmkSoy8vdMYpXSBkWN7afNpreJO0twjq8=";
   };
 
-  propagatedBuildInputs = [ zope-interface twisted ];
+  propagatedBuildInputs = [
+    zope-interface
+    twisted
+  ];
 
   pythonImportsCheck = [ "application" ];
 
   meta = with lib; {
     broken = stdenv.isDarwin;
-    description = "A collection of modules that are useful when building python applications";
+    description = "Collection of modules that are useful when building python applications";
     homepage = "https://github.com/AGProjects/python3-application";
     license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ chanley yureien ];
+    maintainers = with maintainers; [
+      chanley
+      yureien
+    ];
     longDescription = ''
       This package is a collection of modules that are useful when building python applications. Their purpose is to eliminate the need to divert resources into implementing the small tasks that every application needs to do in order to run successfully and focus instead on the application logic itself.
       The modules that the application package provides are:
diff --git a/pkgs/development/python-modules/python3-eventlib/default.nix b/pkgs/development/python-modules/python3-eventlib/default.nix
index a108e7f0b6251..0181dfebb87ec 100644
--- a/pkgs/development/python-modules/python3-eventlib/default.nix
+++ b/pkgs/development/python-modules/python3-eventlib/default.nix
@@ -1,4 +1,12 @@
-{ lib, fetchFromGitHub, buildPythonPackage, isPy3k, zope-interface, twisted, greenlet }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  isPy3k,
+  zope-interface,
+  twisted,
+  greenlet,
+}:
 
 buildPythonPackage rec {
   pname = "python3-eventlib";
@@ -14,14 +22,18 @@ buildPythonPackage rec {
     hash = "sha256-LFW3rCGa7A8tk6SjgYgjkLQ+72GE2WN8wG+XkXYTAoQ=";
   };
 
-  propagatedBuildInputs = [ zope-interface twisted greenlet ];
+  propagatedBuildInputs = [
+    zope-interface
+    twisted
+    greenlet
+  ];
 
   dontUseSetuptoolsCheck = true;
 
   pythonImportsCheck = [ "eventlib" ];
 
   meta = with lib; {
-    description = "A networking library written in Python";
+    description = "Networking library written in Python";
     homepage = "https://github.com/AGProjects/python3-eventlib";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ chanley ];
diff --git a/pkgs/development/python-modules/python3-gnutls/default.nix b/pkgs/development/python-modules/python3-gnutls/default.nix
index 72f695326d758..48b3b6d544638 100644
--- a/pkgs/development/python-modules/python3-gnutls/default.nix
+++ b/pkgs/development/python-modules/python3-gnutls/default.nix
@@ -1,28 +1,44 @@
-{ lib, fetchFromGitHub, substituteAll, buildPythonPackage, isPy3k, gnutls
-, twisted, pyopenssl, service-identity }:
+{
+  lib,
+  fetchFromGitHub,
+  substituteAll,
+  buildPythonPackage,
+  isPy3k,
+  gnutls,
+  twisted,
+  pyopenssl,
+  service-identity,
+  setuptools,
+}:
 
 buildPythonPackage rec {
   pname = "python3-gnutls";
-  version = "3.1.9";
-  format = "setuptools";
+  version = "3.1.10";
+  pyproject = true;
 
   disabled = !isPy3k;
 
   src = fetchFromGitHub {
     owner = "AGProjects";
     repo = "python3-gnutls";
-    rev = "324b78f7cd3d9fe58c89c7f0b2bf94199bd6a6e5"; # version not tagged
-    hash = "sha256-18T8bAHlNERHobsspUFvSC6ulN55nrFFb5aqNwU8T00=";
+    rev = "refs/tags/release-${version}";
+    hash = "sha256-AdFRF3ZlkkAoSm5rvf/09FSYIo7SsZ38sD2joOLyukA=";
   };
 
-  propagatedBuildInputs = [ twisted pyopenssl service-identity ];
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [
+    twisted
+    pyopenssl
+    service-identity
+  ];
 
   patches = [
     (substituteAll {
       src = ./libgnutls-path.patch;
       gnutlslib = "${lib.getLib gnutls}/lib";
     })
-   ];
+  ];
 
   pythonImportsCheck = [ "gnutls" ];
 
diff --git a/pkgs/development/python-modules/python3-openid/default.nix b/pkgs/development/python-modules/python3-openid/default.nix
index 9c70c1ff94787..e096743e909d7 100644
--- a/pkgs/development/python-modules/python3-openid/default.nix
+++ b/pkgs/development/python-modules/python3-openid/default.nix
@@ -1,4 +1,10 @@
-{ lib, isPy3k, buildPythonPackage, fetchPypi, defusedxml }:
+{
+  lib,
+  isPy3k,
+  buildPythonPackage,
+  fetchPypi,
+  defusedxml,
+}:
 
 buildPythonPackage rec {
   pname = "python3-openid";
diff --git a/pkgs/development/python-modules/python3-saml/default.nix b/pkgs/development/python-modules/python3-saml/default.nix
index adfea3091c718..fa5a004ff99d4 100644
--- a/pkgs/development/python-modules/python3-saml/default.nix
+++ b/pkgs/development/python-modules/python3-saml/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, freezegun
-, isodate
-, lxml
-, pytestCheckHook
-, pythonOlder
-, poetry-core
-, xmlsec
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  freezegun,
+  isodate,
+  lxml,
+  pytestCheckHook,
+  pythonOlder,
+  poetry-core,
+  xmlsec,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     isodate
@@ -49,9 +48,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "onelogin.saml2"
-  ];
+  pythonImportsCheck = [ "onelogin.saml2" ];
 
   disabledTests = [
     # Tests require network acces or additions files
diff --git a/pkgs/development/python-modules/pythondialog/default.nix b/pkgs/development/python-modules/pythondialog/default.nix
index abf7b8e9eb2a2..59d7e96a6b628 100644
--- a/pkgs/development/python-modules/pythondialog/default.nix
+++ b/pkgs/development/python-modules/pythondialog/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,8 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Python interface to the UNIX dialog utility and mostly-compatible programs";
+    description = "Python interface to the UNIX dialog utility and mostly-compatible programs";
     homepage = "http://pythondialog.sourceforge.net/";
     license = licenses.lgpl3;
   };
-
 }
diff --git a/pkgs/development/python-modules/pythonegardia/default.nix b/pkgs/development/python-modules/pythonegardia/default.nix
index 1affca4ca65f4..4b3d6ce8f0e41 100644
--- a/pkgs/development/python-modules/pythonegardia/default.nix
+++ b/pkgs/development/python-modules/pythonegardia/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     sha256 = "sha256-lQ/7tH74MllwFe2kF5OcYSb4rQd+yJU1W6ztG4Z6Y0U=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project has no tests, only two test file for manual interaction
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pythonegardia"
-  ];
+  pythonImportsCheck = [ "pythonegardia" ];
 
   meta = with lib; {
     description = "Python interface with Egardia/Woonveilig alarms";
diff --git a/pkgs/development/python-modules/pythonfinder/default.nix b/pkgs/development/python-modules/pythonfinder/default.nix
index 37535e49f998d..1261da097fe0c 100644
--- a/pkgs/development/python-modules/pythonfinder/default.nix
+++ b/pkgs/development/python-modules/pythonfinder/default.nix
@@ -1,15 +1,14 @@
-{ lib
-, buildPythonPackage
-, cached-property
-, click
-, fetchFromGitHub
-, fetchpatch
-, packaging
-, pydantic
-, pytest-timeout
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  cached-property,
+  click,
+  fetchFromGitHub,
+  packaging,
+  pytest-timeout,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,40 +20,22 @@ buildPythonPackage rec {
 
   src = fetchFromGitHub {
     owner = "sarugaku";
-    repo = pname;
+    repo = "pythonfinder";
     rev = "refs/tags/${version}";
     hash = "sha256-CbaKXD7Sde8euRqvc/IHoXoSMF+dNd7vT9LkLWq4/IU=";
   };
 
-  patches = [
-    # https://github.com/sarugaku/pythonfinder/issues/142
-    (fetchpatch {
-      name = "pydantic_2-compatibility.patch";
-      url = "https://gitlab.archlinux.org/archlinux/packaging/packages/python-pythonfinder/-/raw/2.0.6-1/python-pythonfinder-2.0.6-pydantic2.patch";
-      hash = "sha256-mON1MeA+pj6VTB3zpBjF3LfB30wG0QH9nU4bD1djWwg=";
-    })
-  ];
-
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace " --cov" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    packaging
-    pydantic
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    cached-property
-  ];
+  propagatedBuildInputs = [ packaging ] ++ lib.optionals (pythonOlder "3.8") [ cached-property ];
 
   passthru.optional-dependencies = {
-    cli = [
-      click
-    ];
+    cli = [ click ];
   };
 
   nativeCheckInputs = [
@@ -62,16 +43,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "pythonfinder"
-  ];
-
-  # these tests invoke git in a subprocess and
-  # for some reason git can't be found even if included in nativeCheckInputs
-  # disabledTests = [
-  #   "test_shims_are_kept"
-  #   "test_shims_are_removed"
-  # ];
+  pythonImportsCheck = [ "pythonfinder" ];
 
   meta = with lib; {
     description = "Cross platform search tool for finding Python";
diff --git a/pkgs/development/python-modules/pythonix/default.nix b/pkgs/development/python-modules/pythonix/default.nix
index 9059e3b424ef4..18eb564192191 100644
--- a/pkgs/development/python-modules/pythonix/default.nix
+++ b/pkgs/development/python-modules/pythonix/default.nix
@@ -1,4 +1,15 @@
-{ lib, buildPythonPackage, fetchFromGitHub, ninja, boost, meson, pkg-config, nix, isPy3k, python }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ninja,
+  boost,
+  meson,
+  pkg-config,
+  nix,
+  isPy3k,
+  python,
+}:
 
 buildPythonPackage rec {
   pname = "pythonix";
@@ -14,9 +25,16 @@ buildPythonPackage rec {
 
   disabled = !isPy3k;
 
-  nativeBuildInputs = [ meson ninja pkg-config ];
+  nativeBuildInputs = [
+    meson
+    ninja
+    pkg-config
+  ];
 
-  buildInputs = [ nix boost ];
+  buildInputs = [
+    nix
+    boost
+  ];
 
   postInstall = ''
     # This is typically set by pipInstallHook/eggInstallHook,
@@ -28,7 +46,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = ''
-       Eval nix code from python.
+      Eval nix code from python.
     '';
     maintainers = [ ];
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/pythonnet/default.nix b/pkgs/development/python-modules/pythonnet/default.nix
index 5a2272c668c3e..d902444865167 100644
--- a/pkgs/development/python-modules/pythonnet/default.nix
+++ b/pkgs/development/python-modules/pythonnet/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pytestCheckHook
-, pycparser
-, psutil
-, dotnet-sdk
-, buildDotnetModule
-, clr-loader
-, setuptools
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pytestCheckHook,
+  pycparser,
+  psutil,
+  dotnet-sdk,
+  buildDotnetModule,
+  clr-loader,
+  setuptools,
 }:
 
 let
@@ -74,6 +75,9 @@ buildPythonPackage {
     license = licenses.mit;
     # <https://github.com/pythonnet/pythonnet/issues/898>
     badPlatforms = [ "aarch64-linux" ];
-    maintainers = with maintainers; [ jraygauthier mdarocha ];
+    maintainers = with maintainers; [
+      jraygauthier
+      mdarocha
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pythonnet/deps.nix b/pkgs/development/python-modules/pythonnet/deps.nix
index 43d3a4992c7b0..2cbc3430b432a 100644
--- a/pkgs/development/python-modules/pythonnet/deps.nix
+++ b/pkgs/development/python-modules/pythonnet/deps.nix
@@ -1,194 +1,951 @@
 # This file was automatically generated by passthru.fetch-deps.
 # Please dont edit it manually, your changes might get overwritten!
 
-{ fetchNuGet }: [
-  (fetchNuGet { pname = "BenchmarkDotNet"; version = "0.13.1"; sha256 = "1kgypxfp34vjy9kvqq8csznsjbnv37pp4r0457i5l1j6zrsm76rp"; })
-  (fetchNuGet { pname = "BenchmarkDotNet.Annotations"; version = "0.13.1"; sha256 = "0fizarpvdajwcvfhd45c35xrnrci5rbn5ksf3zvlw4q300hnlsir"; })
-  (fetchNuGet { pname = "CommandLineParser"; version = "2.4.3"; sha256 = "1aca3q25n3dg55v4j3kzlzfzd5k2jpy6zhp8x7g74pdfdqzrhg55"; })
-  (fetchNuGet { pname = "Iced"; version = "1.8.0"; sha256 = "12cgd9p3jm81wd7m8bp3pm20gmrmbad2hcwzynhz644h3062nn24"; })
-  (fetchNuGet { pname = "Lost.Compat.NullabilityAttributes"; version = "0.0.4"; sha256 = "1h8m1n4x1p69xh86ia1rf4dcr17w965fpxws7d3458r4w1wl143a"; })
-  (fetchNuGet { pname = "Microsoft.Build.Tasks.Git"; version = "1.1.1"; sha256 = "1bb5p4zlnfn88skkvymxfsn0jybqncl4356hwnic9jxdq2d4fz1w"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "2.6.1"; sha256 = "1plk343h9fyxg08b9bcnlqyaq00cbnc1v73pj9nbcyphmgf5bqfp"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "2.10.0"; sha256 = "1l690xqrhmkasns5ghz0vqj8n2xyl5yrwan5gs52hwfxdwahqaaj"; })
-  (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "2.10.0"; sha256 = "0saabsr81crawdzs2cnzyjp5cgg2hk5k6q7n0i0pxghswb0m4dxk"; })
-  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "16.11.0"; sha256 = "0f41l3kks6wk5vjaxpjh8m2flnrvlbvqgqflamhv8rfz4y8ifgdv"; })
-  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.0.0"; sha256 = "18gdbsqf6i79ld4ikqr4jhx9ndsggm865b5xj1xmnmgg12ydp19a"; })
-  (fetchNuGet { pname = "Microsoft.CodeCoverage"; version = "17.6.2"; sha256 = "1wwmg6hn4dp2mvwn2bm81wccdw149lq17xdnpz17mvg4zcwmax7g"; })
-  (fetchNuGet { pname = "Microsoft.CSharp"; version = "4.7.0"; sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j"; })
-  (fetchNuGet { pname = "Microsoft.Diagnostics.NETCore.Client"; version = "0.2.61701"; sha256 = "1ic1607jj4ln8dbibf1fz5v9svk9x2kqlgvhndc6ijaqnbc4wcr1"; })
-  (fetchNuGet { pname = "Microsoft.Diagnostics.Runtime"; version = "1.1.126102"; sha256 = "0w7jcxkd4cix6dbh0szawilmykjmdc1rqysllrpwb7ivrxzazypn"; })
-  (fetchNuGet { pname = "Microsoft.Diagnostics.Tracing.TraceEvent"; version = "2.0.61"; sha256 = "0gq51l4yyyn8dir6w41im9fwhw9r6jz6n7jm4zhmvvway5ijbcac"; })
-  (fetchNuGet { pname = "Microsoft.DotNet.InternalAbstractions"; version = "1.0.0"; sha256 = "0mp8ihqlb7fsa789frjzidrfjc1lrhk88qp3xm5qvr7vf4wy4z8x"; })
-  (fetchNuGet { pname = "Microsoft.DotNet.PlatformAbstractions"; version = "2.1.0"; sha256 = "1qydvyyinj3b5mraazjal3n2k7jqhn05b6n1a2f3qjkqkxi63dmy"; })
-  (fetchNuGet { pname = "Microsoft.Net.Compilers.Toolset"; version = "4.0.1"; sha256 = "08njbdnmjzjd6phys94w0di3vcxfq7pniad6s3jc5f65r9s1f0w2"; })
-  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "16.11.0"; sha256 = "1a2y6vw6p9xp3w72zq2lwrjl8bxv87s9d7zd2dh4zwbzh1c5slxl"; })
-  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.0.0"; sha256 = "0bknyf5kig5icwjxls7pcn51x2b2qf91dz9qv67fl70v6cczaz2r"; })
-  (fetchNuGet { pname = "Microsoft.NET.Test.Sdk"; version = "17.6.2"; sha256 = "1a658bnh5q3lfkrr81h3lyx1mc3hggnjr1bpmim71rr2s42ad70v"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; })
-  (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.1.0"; sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh"; })
-  (fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies"; version = "1.0.0"; sha256 = "0na724xhvqm63vq9y18fl9jw9q2v99bdwr353378s5fsi11qzxp9"; })
-  (fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net461"; version = "1.0.0"; sha256 = "00vkn4c6i0rn1l9pv912y0wgb9h6ks76qah8hvk441nari8fqbm1"; })
-  (fetchNuGet { pname = "Microsoft.NETFramework.ReferenceAssemblies.net472"; version = "1.0.0"; sha256 = "1bqinq2nxnpqxziypg1sqy3ly0nymxxjpn8fwkn3rl4vl6gdg3rc"; })
-  (fetchNuGet { pname = "Microsoft.SourceLink.Common"; version = "1.1.1"; sha256 = "0xkdqs7az2cprar7jzjlgjpd64l6f8ixcmwmpkdm03fyb4s5m0bg"; })
-  (fetchNuGet { pname = "Microsoft.SourceLink.GitHub"; version = "1.1.1"; sha256 = "099y35f2npvva3jk1zp8hn0vb9pwm2l0ivjasdly6y2idv53s5yy"; })
-  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "16.11.0"; sha256 = "1fc0ghk1cny4i8w43b94pxhl0srxisv6kaflkkp30ncsa9szhkxh"; })
-  (fetchNuGet { pname = "Microsoft.TestPlatform.ObjectModel"; version = "17.6.2"; sha256 = "0asbrbdyyig1p034smf79lszzbfv1cn6q181i7d4p2vsiqpjp9sj"; })
-  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "16.11.0"; sha256 = "0hp1vndf2jhyg1f3miq4g2068z5kpfzy6nmswm25vymghxp1ws4k"; })
-  (fetchNuGet { pname = "Microsoft.TestPlatform.TestHost"; version = "17.6.2"; sha256 = "0lcj8kkcnxbwiaw6j0xf4fxqpa6z0s41nq52spvckfg4367lg4fg"; })
-  (fetchNuGet { pname = "Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq"; })
-  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.3.0"; sha256 = "1gxyzxam8163vk1kb6xzxjj4iwspjsz9zhgn1w9rjzciphaz0ig7"; })
-  (fetchNuGet { pname = "Microsoft.Win32.Registry"; version = "4.5.0"; sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q"; })
-  (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.0"; sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy"; })
-  (fetchNuGet { pname = "NETStandard.Library"; version = "2.0.3"; sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y"; })
-  (fetchNuGet { pname = "Newtonsoft.Json"; version = "13.0.1"; sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb"; })
-  (fetchNuGet { pname = "Newtonsoft.Json"; version = "9.0.1"; sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r"; })
-  (fetchNuGet { pname = "NonCopyableAnalyzer"; version = "0.7.0"; sha256 = "1jry36p53fkk3fn9pawgg7qiv79j30y0kvd4xrnd58d7zg7zzdj0"; })
-  (fetchNuGet { pname = "NuGet.Frameworks"; version = "5.0.0"; sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr"; })
-  (fetchNuGet { pname = "NuGet.Frameworks"; version = "6.5.0"; sha256 = "0s37d1p4md0k6d4cy6sq36f2dgkd9qfbzapxhkvi8awwh0vrynhj"; })
-  (fetchNuGet { pname = "NUnit"; version = "3.12.0"; sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2"; })
-  (fetchNuGet { pname = "NUnit"; version = "3.13.3"; sha256 = "0wdzfkygqnr73s6lpxg5b1pwaqz9f414fxpvpdmf72bvh4jaqzv6"; })
-  (fetchNuGet { pname = "NUnit3TestAdapter"; version = "3.16.1"; sha256 = "1pzhmapfdszsfza7zjr3zrlz4fssdxsyiwmlj76a40mbhxhfa4q9"; })
-  (fetchNuGet { pname = "NUnit3TestAdapter"; version = "3.17.0"; sha256 = "0kxc6z3b8ccdrcyqz88jm5yh5ch9nbg303v67q8sp5hhs8rl8nk6"; })
-  (fetchNuGet { pname = "NUnit3TestAdapter"; version = "4.5.0"; sha256 = "1srx1629s0k1kmf02nmz251q07vj6pv58mdafcr5dr0bbn1fh78i"; })
-  (fetchNuGet { pname = "Perfolizer"; version = "0.2.1"; sha256 = "012aqqi3y3nfikqmn26yajpwd52c04zlzp0p91iyslw7mf26qncy"; })
-  (fetchNuGet { pname = "runtime.any.System.Collections"; version = "4.3.0"; sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0"; })
-  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk"; })
-  (fetchNuGet { pname = "runtime.any.System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn"; })
-  (fetchNuGet { pname = "runtime.any.System.Globalization"; version = "4.3.0"; sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x"; })
-  (fetchNuGet { pname = "runtime.any.System.IO"; version = "4.3.0"; sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x"; })
-  (fetchNuGet { pname = "runtime.any.System.Reflection"; version = "4.3.0"; sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly"; })
-  (fetchNuGet { pname = "runtime.any.System.Reflection.Extensions"; version = "4.3.0"; sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33"; })
-  (fetchNuGet { pname = "runtime.any.System.Reflection.Primitives"; version = "4.3.0"; sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf"; })
-  (fetchNuGet { pname = "runtime.any.System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl"; })
-  (fetchNuGet { pname = "runtime.any.System.Runtime"; version = "4.3.0"; sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b"; })
-  (fetchNuGet { pname = "runtime.any.System.Runtime.Handles"; version = "4.3.0"; sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x"; })
-  (fetchNuGet { pname = "runtime.any.System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19"; })
-  (fetchNuGet { pname = "runtime.any.System.Text.Encoding"; version = "4.3.0"; sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3"; })
-  (fetchNuGet { pname = "runtime.any.System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8"; })
-  (fetchNuGet { pname = "runtime.any.System.Threading.Tasks"; version = "4.3.0"; sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va"; })
-  (fetchNuGet { pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d"; })
-  (fetchNuGet { pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59"; })
-  (fetchNuGet { pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa"; })
-  (fetchNuGet { pname = "runtime.native.System"; version = "4.3.0"; sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4"; })
-  (fetchNuGet { pname = "runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97"; })
-  (fetchNuGet { pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3"; })
-  (fetchNuGet { pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf"; })
-  (fetchNuGet { pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3"; })
-  (fetchNuGet { pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn"; })
-  (fetchNuGet { pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3"; })
-  (fetchNuGet { pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy"; })
-  (fetchNuGet { pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl"; version = "4.3.0"; sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5"; })
-  (fetchNuGet { pname = "runtime.unix.Microsoft.Win32.Primitives"; version = "4.3.0"; sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id"; })
-  (fetchNuGet { pname = "runtime.unix.System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5"; })
-  (fetchNuGet { pname = "runtime.unix.System.IO.FileSystem"; version = "4.3.0"; sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix"; })
-  (fetchNuGet { pname = "runtime.unix.System.Private.Uri"; version = "4.3.0"; sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk"; })
-  (fetchNuGet { pname = "runtime.unix.System.Runtime.Extensions"; version = "4.3.0"; sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p"; })
-  (fetchNuGet { pname = "System.AppContext"; version = "4.1.0"; sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz"; })
-  (fetchNuGet { pname = "System.AppContext"; version = "4.3.0"; sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya"; })
-  (fetchNuGet { pname = "System.Buffers"; version = "4.3.0"; sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy"; })
-  (fetchNuGet { pname = "System.Buffers"; version = "4.4.0"; sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19"; })
-  (fetchNuGet { pname = "System.Collections"; version = "4.0.11"; sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6"; })
-  (fetchNuGet { pname = "System.Collections"; version = "4.3.0"; sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9"; })
-  (fetchNuGet { pname = "System.Collections.Concurrent"; version = "4.3.0"; sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8"; })
-  (fetchNuGet { pname = "System.Collections.Immutable"; version = "1.5.0"; sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06"; })
-  (fetchNuGet { pname = "System.Collections.NonGeneric"; version = "4.3.0"; sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k"; })
-  (fetchNuGet { pname = "System.Collections.Specialized"; version = "4.3.0"; sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20"; })
-  (fetchNuGet { pname = "System.ComponentModel"; version = "4.3.0"; sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb"; })
-  (fetchNuGet { pname = "System.ComponentModel.EventBasedAsync"; version = "4.3.0"; sha256 = "1rv9bkb8yyhqqqrx6x95njv6mdxlbvv527b44mrd93g8fmgkifl7"; })
-  (fetchNuGet { pname = "System.ComponentModel.Primitives"; version = "4.3.0"; sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0"; })
-  (fetchNuGet { pname = "System.ComponentModel.TypeConverter"; version = "4.3.0"; sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x"; })
-  (fetchNuGet { pname = "System.Console"; version = "4.3.0"; sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay"; })
-  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.0.11"; sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz"; })
-  (fetchNuGet { pname = "System.Diagnostics.Debug"; version = "4.3.0"; sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y"; })
-  (fetchNuGet { pname = "System.Diagnostics.FileVersionInfo"; version = "4.3.0"; sha256 = "094hx249lb3vb336q7dg3v257hbxvz2jnalj695l7cg5kxzqwai7"; })
-  (fetchNuGet { pname = "System.Diagnostics.Process"; version = "4.3.0"; sha256 = "0g4prsbkygq8m21naqmcp70f24a1ksyix3dihb1r1f71lpi3cfj7"; })
-  (fetchNuGet { pname = "System.Diagnostics.StackTrace"; version = "4.3.0"; sha256 = "0ash4h9k0m7xsm0yl79r0ixrdz369h7y922wipp5gladmlbvpyjd"; })
-  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.0.1"; sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x"; })
-  (fetchNuGet { pname = "System.Diagnostics.Tools"; version = "4.3.0"; sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1"; })
-  (fetchNuGet { pname = "System.Diagnostics.Tracing"; version = "4.3.0"; sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4"; })
-  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.0.11"; sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9"; })
-  (fetchNuGet { pname = "System.Dynamic.Runtime"; version = "4.3.0"; sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk"; })
-  (fetchNuGet { pname = "System.Globalization"; version = "4.0.11"; sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d"; })
-  (fetchNuGet { pname = "System.Globalization"; version = "4.3.0"; sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki"; })
-  (fetchNuGet { pname = "System.Globalization.Extensions"; version = "4.3.0"; sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls"; })
-  (fetchNuGet { pname = "System.IO"; version = "4.1.0"; sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp"; })
-  (fetchNuGet { pname = "System.IO"; version = "4.3.0"; sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f"; })
-  (fetchNuGet { pname = "System.IO.Compression"; version = "4.3.0"; sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz"; })
-  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.0.1"; sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1"; })
-  (fetchNuGet { pname = "System.IO.FileSystem"; version = "4.3.0"; sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw"; })
-  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.0.1"; sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612"; })
-  (fetchNuGet { pname = "System.IO.FileSystem.Primitives"; version = "4.3.0"; sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c"; })
-  (fetchNuGet { pname = "System.Linq"; version = "4.1.0"; sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5"; })
-  (fetchNuGet { pname = "System.Linq"; version = "4.3.0"; sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7"; })
-  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.1.0"; sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg"; })
-  (fetchNuGet { pname = "System.Linq.Expressions"; version = "4.3.0"; sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv"; })
-  (fetchNuGet { pname = "System.Management"; version = "4.5.0"; sha256 = "19z5x23n21xi94bgl531l9hrm64nyw9d5fpd7klfvr5xfsbh9jwr"; })
-  (fetchNuGet { pname = "System.Memory"; version = "4.5.3"; sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a"; })
-  (fetchNuGet { pname = "System.Numerics.Vectors"; version = "4.4.0"; sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba"; })
-  (fetchNuGet { pname = "System.ObjectModel"; version = "4.0.12"; sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj"; })
-  (fetchNuGet { pname = "System.Private.Uri"; version = "4.3.0"; sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx"; })
-  (fetchNuGet { pname = "System.Reflection"; version = "4.1.0"; sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9"; })
-  (fetchNuGet { pname = "System.Reflection"; version = "4.3.0"; sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m"; })
-  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.0.1"; sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp"; })
-  (fetchNuGet { pname = "System.Reflection.Emit"; version = "4.3.0"; sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74"; })
-  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.0.1"; sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0"; })
-  (fetchNuGet { pname = "System.Reflection.Emit.ILGeneration"; version = "4.3.0"; sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q"; })
-  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.0.1"; sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr"; })
-  (fetchNuGet { pname = "System.Reflection.Emit.Lightweight"; version = "4.3.0"; sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c"; })
-  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.0.1"; sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn"; })
-  (fetchNuGet { pname = "System.Reflection.Extensions"; version = "4.3.0"; sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq"; })
-  (fetchNuGet { pname = "System.Reflection.Metadata"; version = "1.6.0"; sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4"; })
-  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.0.1"; sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28"; })
-  (fetchNuGet { pname = "System.Reflection.Primitives"; version = "4.3.0"; sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276"; })
-  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.1.0"; sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7"; })
-  (fetchNuGet { pname = "System.Reflection.TypeExtensions"; version = "4.3.0"; sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1"; })
-  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.0.1"; sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi"; })
-  (fetchNuGet { pname = "System.Resources.ResourceManager"; version = "4.3.0"; sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49"; })
-  (fetchNuGet { pname = "System.Runtime"; version = "4.1.0"; sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m"; })
-  (fetchNuGet { pname = "System.Runtime"; version = "4.3.0"; sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7"; })
-  (fetchNuGet { pname = "System.Runtime.CompilerServices.Unsafe"; version = "4.5.2"; sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi"; })
-  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.1.0"; sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z"; })
-  (fetchNuGet { pname = "System.Runtime.Extensions"; version = "4.3.0"; sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60"; })
-  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.0.1"; sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g"; })
-  (fetchNuGet { pname = "System.Runtime.Handles"; version = "4.3.0"; sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8"; })
-  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.1.0"; sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1"; })
-  (fetchNuGet { pname = "System.Runtime.InteropServices"; version = "4.3.0"; sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j"; })
-  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.0.0"; sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6"; })
-  (fetchNuGet { pname = "System.Runtime.InteropServices.RuntimeInformation"; version = "4.3.0"; sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii"; })
-  (fetchNuGet { pname = "System.Runtime.Numerics"; version = "4.3.0"; sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z"; })
-  (fetchNuGet { pname = "System.Runtime.Serialization.Primitives"; version = "4.1.1"; sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k"; })
-  (fetchNuGet { pname = "System.Security.AccessControl"; version = "4.5.0"; sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Algorithms"; version = "4.3.0"; sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Encoding"; version = "4.3.0"; sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.Primitives"; version = "4.3.0"; sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby"; })
-  (fetchNuGet { pname = "System.Security.Cryptography.X509Certificates"; version = "4.3.0"; sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h"; })
-  (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.5.0"; sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86"; })
-  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; })
-  (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
-  (fetchNuGet { pname = "System.Text.Encoding.CodePages"; version = "4.3.0"; sha256 = "0lgxg1gn7pg7j0f942pfdc9q7wamzxsgq3ng248ikdasxz0iadkv"; })
-  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.0.11"; sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs"; })
-  (fetchNuGet { pname = "System.Text.Encoding.Extensions"; version = "4.3.0"; sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy"; })
-  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.1.0"; sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7"; })
-  (fetchNuGet { pname = "System.Text.RegularExpressions"; version = "4.3.0"; sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l"; })
-  (fetchNuGet { pname = "System.Threading"; version = "4.0.11"; sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls"; })
-  (fetchNuGet { pname = "System.Threading"; version = "4.3.0"; sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34"; })
-  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.0.11"; sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5"; })
-  (fetchNuGet { pname = "System.Threading.Tasks"; version = "4.3.0"; sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7"; })
-  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.0.0"; sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr"; })
-  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.3.0"; sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z"; })
-  (fetchNuGet { pname = "System.Threading.Tasks.Extensions"; version = "4.5.2"; sha256 = "1sh63dz0dymqcwmprp0nadm77b83vmm7lyllpv578c397bslb8hj"; })
-  (fetchNuGet { pname = "System.Threading.Tasks.Parallel"; version = "4.3.0"; sha256 = "1rr3qa4hxwyj531s4nb3bwrxnxxwz617i0n9gh6x7nr7dd3ayzgh"; })
-  (fetchNuGet { pname = "System.Threading.Thread"; version = "4.3.0"; sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4"; })
-  (fetchNuGet { pname = "System.Threading.ThreadPool"; version = "4.3.0"; sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1"; })
-  (fetchNuGet { pname = "System.ValueTuple"; version = "4.5.0"; sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy"; })
-  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.0.11"; sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5"; })
-  (fetchNuGet { pname = "System.Xml.ReaderWriter"; version = "4.3.0"; sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1"; })
-  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.0.11"; sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18"; })
-  (fetchNuGet { pname = "System.Xml.XDocument"; version = "4.3.0"; sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd"; })
-  (fetchNuGet { pname = "System.Xml.XmlDocument"; version = "4.3.0"; sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi"; })
-  (fetchNuGet { pname = "System.Xml.XPath"; version = "4.3.0"; sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci"; })
-  (fetchNuGet { pname = "System.Xml.XPath.XDocument"; version = "4.3.0"; sha256 = "1wxckyb7n1pi433xzz0qcwcbl1swpra64065mbwwi8dhdc4kiabn"; })
-  (fetchNuGet { pname = "System.Xml.XPath.XmlDocument"; version = "4.3.0"; sha256 = "1h9lh7qkp0lff33z847sdfjj8yaz98ylbnkbxlnsbflhj9xyfqrm"; })
+{ fetchNuGet }:
+[
+  (fetchNuGet {
+    pname = "BenchmarkDotNet";
+    version = "0.13.1";
+    sha256 = "1kgypxfp34vjy9kvqq8csznsjbnv37pp4r0457i5l1j6zrsm76rp";
+  })
+  (fetchNuGet {
+    pname = "BenchmarkDotNet.Annotations";
+    version = "0.13.1";
+    sha256 = "0fizarpvdajwcvfhd45c35xrnrci5rbn5ksf3zvlw4q300hnlsir";
+  })
+  (fetchNuGet {
+    pname = "CommandLineParser";
+    version = "2.4.3";
+    sha256 = "1aca3q25n3dg55v4j3kzlzfzd5k2jpy6zhp8x7g74pdfdqzrhg55";
+  })
+  (fetchNuGet {
+    pname = "Iced";
+    version = "1.8.0";
+    sha256 = "12cgd9p3jm81wd7m8bp3pm20gmrmbad2hcwzynhz644h3062nn24";
+  })
+  (fetchNuGet {
+    pname = "Lost.Compat.NullabilityAttributes";
+    version = "0.0.4";
+    sha256 = "1h8m1n4x1p69xh86ia1rf4dcr17w965fpxws7d3458r4w1wl143a";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.Build.Tasks.Git";
+    version = "1.1.1";
+    sha256 = "1bb5p4zlnfn88skkvymxfsn0jybqncl4356hwnic9jxdq2d4fz1w";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.CodeAnalysis.Analyzers";
+    version = "2.6.1";
+    sha256 = "1plk343h9fyxg08b9bcnlqyaq00cbnc1v73pj9nbcyphmgf5bqfp";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.CodeAnalysis.Common";
+    version = "2.10.0";
+    sha256 = "1l690xqrhmkasns5ghz0vqj8n2xyl5yrwan5gs52hwfxdwahqaaj";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.CodeAnalysis.CSharp";
+    version = "2.10.0";
+    sha256 = "0saabsr81crawdzs2cnzyjp5cgg2hk5k6q7n0i0pxghswb0m4dxk";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.CodeCoverage";
+    version = "16.11.0";
+    sha256 = "0f41l3kks6wk5vjaxpjh8m2flnrvlbvqgqflamhv8rfz4y8ifgdv";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.CodeCoverage";
+    version = "17.0.0";
+    sha256 = "18gdbsqf6i79ld4ikqr4jhx9ndsggm865b5xj1xmnmgg12ydp19a";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.CodeCoverage";
+    version = "17.6.2";
+    sha256 = "1wwmg6hn4dp2mvwn2bm81wccdw149lq17xdnpz17mvg4zcwmax7g";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.CSharp";
+    version = "4.7.0";
+    sha256 = "0gd67zlw554j098kabg887b5a6pq9kzavpa3jjy5w53ccjzjfy8j";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.Diagnostics.NETCore.Client";
+    version = "0.2.61701";
+    sha256 = "1ic1607jj4ln8dbibf1fz5v9svk9x2kqlgvhndc6ijaqnbc4wcr1";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.Diagnostics.Runtime";
+    version = "1.1.126102";
+    sha256 = "0w7jcxkd4cix6dbh0szawilmykjmdc1rqysllrpwb7ivrxzazypn";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.Diagnostics.Tracing.TraceEvent";
+    version = "2.0.61";
+    sha256 = "0gq51l4yyyn8dir6w41im9fwhw9r6jz6n7jm4zhmvvway5ijbcac";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.DotNet.InternalAbstractions";
+    version = "1.0.0";
+    sha256 = "0mp8ihqlb7fsa789frjzidrfjc1lrhk88qp3xm5qvr7vf4wy4z8x";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.DotNet.PlatformAbstractions";
+    version = "2.1.0";
+    sha256 = "1qydvyyinj3b5mraazjal3n2k7jqhn05b6n1a2f3qjkqkxi63dmy";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.Net.Compilers.Toolset";
+    version = "4.0.1";
+    sha256 = "08njbdnmjzjd6phys94w0di3vcxfq7pniad6s3jc5f65r9s1f0w2";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.NET.Test.Sdk";
+    version = "16.11.0";
+    sha256 = "1a2y6vw6p9xp3w72zq2lwrjl8bxv87s9d7zd2dh4zwbzh1c5slxl";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.NET.Test.Sdk";
+    version = "17.0.0";
+    sha256 = "0bknyf5kig5icwjxls7pcn51x2b2qf91dz9qv67fl70v6cczaz2r";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.NET.Test.Sdk";
+    version = "17.6.2";
+    sha256 = "1a658bnh5q3lfkrr81h3lyx1mc3hggnjr1bpmim71rr2s42ad70v";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.NETCore.Platforms";
+    version = "1.0.1";
+    sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.NETCore.Platforms";
+    version = "1.1.0";
+    sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.NETCore.Targets";
+    version = "1.0.1";
+    sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.NETCore.Targets";
+    version = "1.1.0";
+    sha256 = "193xwf33fbm0ni3idxzbr5fdq3i2dlfgihsac9jj7whj0gd902nh";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.NETFramework.ReferenceAssemblies";
+    version = "1.0.0";
+    sha256 = "0na724xhvqm63vq9y18fl9jw9q2v99bdwr353378s5fsi11qzxp9";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.NETFramework.ReferenceAssemblies.net461";
+    version = "1.0.0";
+    sha256 = "00vkn4c6i0rn1l9pv912y0wgb9h6ks76qah8hvk441nari8fqbm1";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.NETFramework.ReferenceAssemblies.net472";
+    version = "1.0.0";
+    sha256 = "1bqinq2nxnpqxziypg1sqy3ly0nymxxjpn8fwkn3rl4vl6gdg3rc";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.SourceLink.Common";
+    version = "1.1.1";
+    sha256 = "0xkdqs7az2cprar7jzjlgjpd64l6f8ixcmwmpkdm03fyb4s5m0bg";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.SourceLink.GitHub";
+    version = "1.1.1";
+    sha256 = "099y35f2npvva3jk1zp8hn0vb9pwm2l0ivjasdly6y2idv53s5yy";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.TestPlatform.ObjectModel";
+    version = "16.11.0";
+    sha256 = "1fc0ghk1cny4i8w43b94pxhl0srxisv6kaflkkp30ncsa9szhkxh";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.TestPlatform.ObjectModel";
+    version = "17.6.2";
+    sha256 = "0asbrbdyyig1p034smf79lszzbfv1cn6q181i7d4p2vsiqpjp9sj";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.TestPlatform.TestHost";
+    version = "16.11.0";
+    sha256 = "0hp1vndf2jhyg1f3miq4g2068z5kpfzy6nmswm25vymghxp1ws4k";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.TestPlatform.TestHost";
+    version = "17.6.2";
+    sha256 = "0lcj8kkcnxbwiaw6j0xf4fxqpa6z0s41nq52spvckfg4367lg4fg";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.Win32.Primitives";
+    version = "4.3.0";
+    sha256 = "0j0c1wj4ndj21zsgivsc24whiya605603kxrbiw6wkfdync464wq";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.Win32.Registry";
+    version = "4.3.0";
+    sha256 = "1gxyzxam8163vk1kb6xzxjj4iwspjsz9zhgn1w9rjzciphaz0ig7";
+  })
+  (fetchNuGet {
+    pname = "Microsoft.Win32.Registry";
+    version = "4.5.0";
+    sha256 = "1zapbz161ji8h82xiajgriq6zgzmb1f3ar517p2h63plhsq5gh2q";
+  })
+  (fetchNuGet {
+    pname = "NETStandard.Library";
+    version = "2.0.0";
+    sha256 = "1bc4ba8ahgk15m8k4nd7x406nhi0kwqzbgjk2dmw52ss553xz7iy";
+  })
+  (fetchNuGet {
+    pname = "NETStandard.Library";
+    version = "2.0.3";
+    sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y";
+  })
+  (fetchNuGet {
+    pname = "Newtonsoft.Json";
+    version = "13.0.1";
+    sha256 = "0fijg0w6iwap8gvzyjnndds0q4b8anwxxvik7y8vgq97dram4srb";
+  })
+  (fetchNuGet {
+    pname = "Newtonsoft.Json";
+    version = "9.0.1";
+    sha256 = "0mcy0i7pnfpqm4pcaiyzzji4g0c8i3a5gjz28rrr28110np8304r";
+  })
+  (fetchNuGet {
+    pname = "NonCopyableAnalyzer";
+    version = "0.7.0";
+    sha256 = "1jry36p53fkk3fn9pawgg7qiv79j30y0kvd4xrnd58d7zg7zzdj0";
+  })
+  (fetchNuGet {
+    pname = "NuGet.Frameworks";
+    version = "5.0.0";
+    sha256 = "18ijvmj13cwjdrrm52c8fpq021531zaz4mj4b4zapxaqzzxf2qjr";
+  })
+  (fetchNuGet {
+    pname = "NuGet.Frameworks";
+    version = "6.5.0";
+    sha256 = "0s37d1p4md0k6d4cy6sq36f2dgkd9qfbzapxhkvi8awwh0vrynhj";
+  })
+  (fetchNuGet {
+    pname = "NUnit";
+    version = "3.12.0";
+    sha256 = "1880j2xwavi8f28vxan3hyvdnph4nlh5sbmh285s4lc9l0b7bdk2";
+  })
+  (fetchNuGet {
+    pname = "NUnit";
+    version = "3.13.3";
+    sha256 = "0wdzfkygqnr73s6lpxg5b1pwaqz9f414fxpvpdmf72bvh4jaqzv6";
+  })
+  (fetchNuGet {
+    pname = "NUnit3TestAdapter";
+    version = "3.16.1";
+    sha256 = "1pzhmapfdszsfza7zjr3zrlz4fssdxsyiwmlj76a40mbhxhfa4q9";
+  })
+  (fetchNuGet {
+    pname = "NUnit3TestAdapter";
+    version = "3.17.0";
+    sha256 = "0kxc6z3b8ccdrcyqz88jm5yh5ch9nbg303v67q8sp5hhs8rl8nk6";
+  })
+  (fetchNuGet {
+    pname = "NUnit3TestAdapter";
+    version = "4.5.0";
+    sha256 = "1srx1629s0k1kmf02nmz251q07vj6pv58mdafcr5dr0bbn1fh78i";
+  })
+  (fetchNuGet {
+    pname = "Perfolizer";
+    version = "0.2.1";
+    sha256 = "012aqqi3y3nfikqmn26yajpwd52c04zlzp0p91iyslw7mf26qncy";
+  })
+  (fetchNuGet {
+    pname = "runtime.any.System.Collections";
+    version = "4.3.0";
+    sha256 = "0bv5qgm6vr47ynxqbnkc7i797fdi8gbjjxii173syrx14nmrkwg0";
+  })
+  (fetchNuGet {
+    pname = "runtime.any.System.Diagnostics.Tools";
+    version = "4.3.0";
+    sha256 = "1wl76vk12zhdh66vmagni66h5xbhgqq7zkdpgw21jhxhvlbcl8pk";
+  })
+  (fetchNuGet {
+    pname = "runtime.any.System.Diagnostics.Tracing";
+    version = "4.3.0";
+    sha256 = "00j6nv2xgmd3bi347k00m7wr542wjlig53rmj28pmw7ddcn97jbn";
+  })
+  (fetchNuGet {
+    pname = "runtime.any.System.Globalization";
+    version = "4.3.0";
+    sha256 = "1daqf33hssad94lamzg01y49xwndy2q97i2lrb7mgn28656qia1x";
+  })
+  (fetchNuGet {
+    pname = "runtime.any.System.IO";
+    version = "4.3.0";
+    sha256 = "0l8xz8zn46w4d10bcn3l4yyn4vhb3lrj2zw8llvz7jk14k4zps5x";
+  })
+  (fetchNuGet {
+    pname = "runtime.any.System.Reflection";
+    version = "4.3.0";
+    sha256 = "02c9h3y35pylc0zfq3wcsvc5nqci95nrkq0mszifc0sjx7xrzkly";
+  })
+  (fetchNuGet {
+    pname = "runtime.any.System.Reflection.Extensions";
+    version = "4.3.0";
+    sha256 = "0zyri97dfc5vyaz9ba65hjj1zbcrzaffhsdlpxc9bh09wy22fq33";
+  })
+  (fetchNuGet {
+    pname = "runtime.any.System.Reflection.Primitives";
+    version = "4.3.0";
+    sha256 = "0x1mm8c6iy8rlxm8w9vqw7gb7s1ljadrn049fmf70cyh42vdfhrf";
+  })
+  (fetchNuGet {
+    pname = "runtime.any.System.Resources.ResourceManager";
+    version = "4.3.0";
+    sha256 = "03kickal0iiby82wa5flar18kyv82s9s6d4xhk5h4bi5kfcyfjzl";
+  })
+  (fetchNuGet {
+    pname = "runtime.any.System.Runtime";
+    version = "4.3.0";
+    sha256 = "1cqh1sv3h5j7ixyb7axxbdkqx6cxy00p4np4j91kpm492rf4s25b";
+  })
+  (fetchNuGet {
+    pname = "runtime.any.System.Runtime.Handles";
+    version = "4.3.0";
+    sha256 = "0bh5bi25nk9w9xi8z23ws45q5yia6k7dg3i4axhfqlnj145l011x";
+  })
+  (fetchNuGet {
+    pname = "runtime.any.System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "0c3g3g3jmhlhw4klrc86ka9fjbl7i59ds1fadsb2l8nqf8z3kb19";
+  })
+  (fetchNuGet {
+    pname = "runtime.any.System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "0aqqi1v4wx51h51mk956y783wzags13wa7mgqyclacmsmpv02ps3";
+  })
+  (fetchNuGet {
+    pname = "runtime.any.System.Text.Encoding.Extensions";
+    version = "4.3.0";
+    sha256 = "0lqhgqi0i8194ryqq6v2gqx0fb86db2gqknbm0aq31wb378j7ip8";
+  })
+  (fetchNuGet {
+    pname = "runtime.any.System.Threading.Tasks";
+    version = "4.3.0";
+    sha256 = "03mnvkhskbzxddz4hm113zsch1jyzh2cs450dk3rgfjp8crlw1va";
+  })
+  (fetchNuGet {
+    pname = "runtime.debian.8-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "16rnxzpk5dpbbl1x354yrlsbvwylrq456xzpsha1n9y3glnhyx9d";
+  })
+  (fetchNuGet {
+    pname = "runtime.fedora.23-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0hkg03sgm2wyq8nqk6dbm9jh5vcq57ry42lkqdmfklrw89lsmr59";
+  })
+  (fetchNuGet {
+    pname = "runtime.fedora.24-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0c2p354hjx58xhhz7wv6div8xpi90sc6ibdm40qin21bvi7ymcaa";
+  })
+  (fetchNuGet {
+    pname = "runtime.native.System";
+    version = "4.3.0";
+    sha256 = "15hgf6zaq9b8br2wi1i3x0zvmk410nlmsmva9p0bbg73v6hml5k4";
+  })
+  (fetchNuGet {
+    pname = "runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "18pzfdlwsg2nb1jjjjzyb5qlgy6xjxzmhnfaijq5s2jw3cm3ab97";
+  })
+  (fetchNuGet {
+    pname = "runtime.opensuse.13.2-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0qyynf9nz5i7pc26cwhgi8j62ps27sqmf78ijcfgzab50z9g8ay3";
+  })
+  (fetchNuGet {
+    pname = "runtime.opensuse.42.1-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1klrs545awhayryma6l7g2pvnp9xy4z0r1i40r80zb45q3i9nbyf";
+  })
+  (fetchNuGet {
+    pname = "runtime.osx.10.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0zcxjv5pckplvkg0r6mw3asggm7aqzbdjimhvsasb0cgm59x09l3";
+  })
+  (fetchNuGet {
+    pname = "runtime.rhel.7-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "0vhynn79ih7hw7cwjazn87rm9z9fj0rvxgzlab36jybgcpcgphsn";
+  })
+  (fetchNuGet {
+    pname = "runtime.ubuntu.14.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "160p68l2c7cqmyqjwxydcvgw7lvl1cr0znkw8fp24d1by9mqc8p3";
+  })
+  (fetchNuGet {
+    pname = "runtime.ubuntu.16.04-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "15zrc8fgd8zx28hdghcj5f5i34wf3l6bq5177075m2bc2j34jrqy";
+  })
+  (fetchNuGet {
+    pname = "runtime.ubuntu.16.10-x64.runtime.native.System.Security.Cryptography.OpenSsl";
+    version = "4.3.0";
+    sha256 = "1p4dgxax6p7rlgj4q73k73rslcnz4wdcv8q2flg1s8ygwcm58ld5";
+  })
+  (fetchNuGet {
+    pname = "runtime.unix.Microsoft.Win32.Primitives";
+    version = "4.3.0";
+    sha256 = "0y61k9zbxhdi0glg154v30kkq7f8646nif8lnnxbvkjpakggd5id";
+  })
+  (fetchNuGet {
+    pname = "runtime.unix.System.Diagnostics.Debug";
+    version = "4.3.0";
+    sha256 = "1lps7fbnw34bnh3lm31gs5c0g0dh7548wfmb8zz62v0zqz71msj5";
+  })
+  (fetchNuGet {
+    pname = "runtime.unix.System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "14nbkhvs7sji5r1saj2x8daz82rnf9kx28d3v2qss34qbr32dzix";
+  })
+  (fetchNuGet {
+    pname = "runtime.unix.System.Private.Uri";
+    version = "4.3.0";
+    sha256 = "1jx02q6kiwlvfksq1q9qr17fj78y5v6mwsszav4qcz9z25d5g6vk";
+  })
+  (fetchNuGet {
+    pname = "runtime.unix.System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "0pnxxmm8whx38dp6yvwgmh22smknxmqs5n513fc7m4wxvs1bvi4p";
+  })
+  (fetchNuGet {
+    pname = "System.AppContext";
+    version = "4.1.0";
+    sha256 = "0fv3cma1jp4vgj7a8hqc9n7hr1f1kjp541s6z0q1r6nazb4iz9mz";
+  })
+  (fetchNuGet {
+    pname = "System.AppContext";
+    version = "4.3.0";
+    sha256 = "1649qvy3dar900z3g817h17nl8jp4ka5vcfmsr05kh0fshn7j3ya";
+  })
+  (fetchNuGet {
+    pname = "System.Buffers";
+    version = "4.3.0";
+    sha256 = "0fgns20ispwrfqll4q1zc1waqcmylb3zc50ys9x8zlwxh9pmd9jy";
+  })
+  (fetchNuGet {
+    pname = "System.Buffers";
+    version = "4.4.0";
+    sha256 = "183f8063w8zqn99pv0ni0nnwh7fgx46qzxamwnans55hhs2l0g19";
+  })
+  (fetchNuGet {
+    pname = "System.Collections";
+    version = "4.0.11";
+    sha256 = "1ga40f5lrwldiyw6vy67d0sg7jd7ww6kgwbksm19wrvq9hr0bsm6";
+  })
+  (fetchNuGet {
+    pname = "System.Collections";
+    version = "4.3.0";
+    sha256 = "19r4y64dqyrq6k4706dnyhhw7fs24kpp3awak7whzss39dakpxk9";
+  })
+  (fetchNuGet {
+    pname = "System.Collections.Concurrent";
+    version = "4.3.0";
+    sha256 = "0wi10md9aq33jrkh2c24wr2n9hrpyamsdhsxdcnf43b7y86kkii8";
+  })
+  (fetchNuGet {
+    pname = "System.Collections.Immutable";
+    version = "1.5.0";
+    sha256 = "1d5gjn5afnrf461jlxzawcvihz195gayqpcfbv6dd7pxa9ialn06";
+  })
+  (fetchNuGet {
+    pname = "System.Collections.NonGeneric";
+    version = "4.3.0";
+    sha256 = "07q3k0hf3mrcjzwj8fwk6gv3n51cb513w4mgkfxzm3i37sc9kz7k";
+  })
+  (fetchNuGet {
+    pname = "System.Collections.Specialized";
+    version = "4.3.0";
+    sha256 = "1sdwkma4f6j85m3dpb53v9vcgd0zyc9jb33f8g63byvijcj39n20";
+  })
+  (fetchNuGet {
+    pname = "System.ComponentModel";
+    version = "4.3.0";
+    sha256 = "0986b10ww3nshy30x9sjyzm0jx339dkjxjj3401r3q0f6fx2wkcb";
+  })
+  (fetchNuGet {
+    pname = "System.ComponentModel.EventBasedAsync";
+    version = "4.3.0";
+    sha256 = "1rv9bkb8yyhqqqrx6x95njv6mdxlbvv527b44mrd93g8fmgkifl7";
+  })
+  (fetchNuGet {
+    pname = "System.ComponentModel.Primitives";
+    version = "4.3.0";
+    sha256 = "1svfmcmgs0w0z9xdw2f2ps05rdxmkxxhf0l17xk9l1l8xfahkqr0";
+  })
+  (fetchNuGet {
+    pname = "System.ComponentModel.TypeConverter";
+    version = "4.3.0";
+    sha256 = "17ng0p7v3nbrg3kycz10aqrrlw4lz9hzhws09pfh8gkwicyy481x";
+  })
+  (fetchNuGet {
+    pname = "System.Console";
+    version = "4.3.0";
+    sha256 = "1flr7a9x920mr5cjsqmsy9wgnv3lvd0h1g521pdr1lkb2qycy7ay";
+  })
+  (fetchNuGet {
+    pname = "System.Diagnostics.Debug";
+    version = "4.0.11";
+    sha256 = "0gmjghrqmlgzxivd2xl50ncbglb7ljzb66rlx8ws6dv8jm0d5siz";
+  })
+  (fetchNuGet {
+    pname = "System.Diagnostics.Debug";
+    version = "4.3.0";
+    sha256 = "00yjlf19wjydyr6cfviaph3vsjzg3d5nvnya26i2fvfg53sknh3y";
+  })
+  (fetchNuGet {
+    pname = "System.Diagnostics.FileVersionInfo";
+    version = "4.3.0";
+    sha256 = "094hx249lb3vb336q7dg3v257hbxvz2jnalj695l7cg5kxzqwai7";
+  })
+  (fetchNuGet {
+    pname = "System.Diagnostics.Process";
+    version = "4.3.0";
+    sha256 = "0g4prsbkygq8m21naqmcp70f24a1ksyix3dihb1r1f71lpi3cfj7";
+  })
+  (fetchNuGet {
+    pname = "System.Diagnostics.StackTrace";
+    version = "4.3.0";
+    sha256 = "0ash4h9k0m7xsm0yl79r0ixrdz369h7y922wipp5gladmlbvpyjd";
+  })
+  (fetchNuGet {
+    pname = "System.Diagnostics.Tools";
+    version = "4.0.1";
+    sha256 = "19cknvg07yhakcvpxg3cxa0bwadplin6kyxd8mpjjpwnp56nl85x";
+  })
+  (fetchNuGet {
+    pname = "System.Diagnostics.Tools";
+    version = "4.3.0";
+    sha256 = "0in3pic3s2ddyibi8cvgl102zmvp9r9mchh82ns9f0ms4basylw1";
+  })
+  (fetchNuGet {
+    pname = "System.Diagnostics.Tracing";
+    version = "4.3.0";
+    sha256 = "1m3bx6c2s958qligl67q7grkwfz3w53hpy7nc97mh6f7j5k168c4";
+  })
+  (fetchNuGet {
+    pname = "System.Dynamic.Runtime";
+    version = "4.0.11";
+    sha256 = "1pla2dx8gkidf7xkciig6nifdsb494axjvzvann8g2lp3dbqasm9";
+  })
+  (fetchNuGet {
+    pname = "System.Dynamic.Runtime";
+    version = "4.3.0";
+    sha256 = "1d951hrvrpndk7insiag80qxjbf2y0y39y8h5hnq9612ws661glk";
+  })
+  (fetchNuGet {
+    pname = "System.Globalization";
+    version = "4.0.11";
+    sha256 = "070c5jbas2v7smm660zaf1gh0489xanjqymkvafcs4f8cdrs1d5d";
+  })
+  (fetchNuGet {
+    pname = "System.Globalization";
+    version = "4.3.0";
+    sha256 = "1cp68vv683n6ic2zqh2s1fn4c2sd87g5hpp6l4d4nj4536jz98ki";
+  })
+  (fetchNuGet {
+    pname = "System.Globalization.Extensions";
+    version = "4.3.0";
+    sha256 = "02a5zfxavhv3jd437bsncbhd2fp1zv4gxzakp1an9l6kdq1mcqls";
+  })
+  (fetchNuGet {
+    pname = "System.IO";
+    version = "4.1.0";
+    sha256 = "1g0yb8p11vfd0kbkyzlfsbsp5z44lwsvyc0h3dpw6vqnbi035ajp";
+  })
+  (fetchNuGet {
+    pname = "System.IO";
+    version = "4.3.0";
+    sha256 = "05l9qdrzhm4s5dixmx68kxwif4l99ll5gqmh7rqgw554fx0agv5f";
+  })
+  (fetchNuGet {
+    pname = "System.IO.Compression";
+    version = "4.3.0";
+    sha256 = "084zc82yi6yllgda0zkgl2ys48sypiswbiwrv7irb3r0ai1fp4vz";
+  })
+  (fetchNuGet {
+    pname = "System.IO.FileSystem";
+    version = "4.0.1";
+    sha256 = "0kgfpw6w4djqra3w5crrg8xivbanh1w9dh3qapb28q060wb9flp1";
+  })
+  (fetchNuGet {
+    pname = "System.IO.FileSystem";
+    version = "4.3.0";
+    sha256 = "0z2dfrbra9i6y16mm9v1v6k47f0fm617vlb7s5iybjjsz6g1ilmw";
+  })
+  (fetchNuGet {
+    pname = "System.IO.FileSystem.Primitives";
+    version = "4.0.1";
+    sha256 = "1s0mniajj3lvbyf7vfb5shp4ink5yibsx945k6lvxa96r8la1612";
+  })
+  (fetchNuGet {
+    pname = "System.IO.FileSystem.Primitives";
+    version = "4.3.0";
+    sha256 = "0j6ndgglcf4brg2lz4wzsh1av1gh8xrzdsn9f0yznskhqn1xzj9c";
+  })
+  (fetchNuGet {
+    pname = "System.Linq";
+    version = "4.1.0";
+    sha256 = "1ppg83svb39hj4hpp5k7kcryzrf3sfnm08vxd5sm2drrijsla2k5";
+  })
+  (fetchNuGet {
+    pname = "System.Linq";
+    version = "4.3.0";
+    sha256 = "1w0gmba695rbr80l1k2h4mrwzbzsyfl2z4klmpbsvsg5pm4a56s7";
+  })
+  (fetchNuGet {
+    pname = "System.Linq.Expressions";
+    version = "4.1.0";
+    sha256 = "1gpdxl6ip06cnab7n3zlcg6mqp7kknf73s8wjinzi4p0apw82fpg";
+  })
+  (fetchNuGet {
+    pname = "System.Linq.Expressions";
+    version = "4.3.0";
+    sha256 = "0ky2nrcvh70rqq88m9a5yqabsl4fyd17bpr63iy2mbivjs2nyypv";
+  })
+  (fetchNuGet {
+    pname = "System.Management";
+    version = "4.5.0";
+    sha256 = "19z5x23n21xi94bgl531l9hrm64nyw9d5fpd7klfvr5xfsbh9jwr";
+  })
+  (fetchNuGet {
+    pname = "System.Memory";
+    version = "4.5.3";
+    sha256 = "0naqahm3wljxb5a911d37mwjqjdxv9l0b49p5dmfyijvni2ppy8a";
+  })
+  (fetchNuGet {
+    pname = "System.Numerics.Vectors";
+    version = "4.4.0";
+    sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba";
+  })
+  (fetchNuGet {
+    pname = "System.ObjectModel";
+    version = "4.0.12";
+    sha256 = "1sybkfi60a4588xn34nd9a58png36i0xr4y4v4kqpg8wlvy5krrj";
+  })
+  (fetchNuGet {
+    pname = "System.Private.Uri";
+    version = "4.3.0";
+    sha256 = "04r1lkdnsznin0fj4ya1zikxiqr0h6r6a1ww2dsm60gqhdrf0mvx";
+  })
+  (fetchNuGet {
+    pname = "System.Reflection";
+    version = "4.1.0";
+    sha256 = "1js89429pfw79mxvbzp8p3q93il6rdff332hddhzi5wqglc4gml9";
+  })
+  (fetchNuGet {
+    pname = "System.Reflection";
+    version = "4.3.0";
+    sha256 = "0xl55k0mw8cd8ra6dxzh974nxif58s3k1rjv1vbd7gjbjr39j11m";
+  })
+  (fetchNuGet {
+    pname = "System.Reflection.Emit";
+    version = "4.0.1";
+    sha256 = "0ydqcsvh6smi41gyaakglnv252625hf29f7kywy2c70nhii2ylqp";
+  })
+  (fetchNuGet {
+    pname = "System.Reflection.Emit";
+    version = "4.3.0";
+    sha256 = "11f8y3qfysfcrscjpjym9msk7lsfxkk4fmz9qq95kn3jd0769f74";
+  })
+  (fetchNuGet {
+    pname = "System.Reflection.Emit.ILGeneration";
+    version = "4.0.1";
+    sha256 = "1pcd2ig6bg144y10w7yxgc9d22r7c7ww7qn1frdfwgxr24j9wvv0";
+  })
+  (fetchNuGet {
+    pname = "System.Reflection.Emit.ILGeneration";
+    version = "4.3.0";
+    sha256 = "0w1n67glpv8241vnpz1kl14sy7zlnw414aqwj4hcx5nd86f6994q";
+  })
+  (fetchNuGet {
+    pname = "System.Reflection.Emit.Lightweight";
+    version = "4.0.1";
+    sha256 = "1s4b043zdbx9k39lfhvsk68msv1nxbidhkq6nbm27q7sf8xcsnxr";
+  })
+  (fetchNuGet {
+    pname = "System.Reflection.Emit.Lightweight";
+    version = "4.3.0";
+    sha256 = "0ql7lcakycrvzgi9kxz1b3lljd990az1x6c4jsiwcacrvimpib5c";
+  })
+  (fetchNuGet {
+    pname = "System.Reflection.Extensions";
+    version = "4.0.1";
+    sha256 = "0m7wqwq0zqq9gbpiqvgk3sr92cbrw7cp3xn53xvw7zj6rz6fdirn";
+  })
+  (fetchNuGet {
+    pname = "System.Reflection.Extensions";
+    version = "4.3.0";
+    sha256 = "02bly8bdc98gs22lqsfx9xicblszr2yan7v2mmw3g7hy6miq5hwq";
+  })
+  (fetchNuGet {
+    pname = "System.Reflection.Metadata";
+    version = "1.6.0";
+    sha256 = "1wdbavrrkajy7qbdblpbpbalbdl48q3h34cchz24gvdgyrlf15r4";
+  })
+  (fetchNuGet {
+    pname = "System.Reflection.Primitives";
+    version = "4.0.1";
+    sha256 = "1bangaabhsl4k9fg8khn83wm6yial8ik1sza7401621jc6jrym28";
+  })
+  (fetchNuGet {
+    pname = "System.Reflection.Primitives";
+    version = "4.3.0";
+    sha256 = "04xqa33bld78yv5r93a8n76shvc8wwcdgr1qvvjh959g3rc31276";
+  })
+  (fetchNuGet {
+    pname = "System.Reflection.TypeExtensions";
+    version = "4.1.0";
+    sha256 = "1bjli8a7sc7jlxqgcagl9nh8axzfl11f4ld3rjqsyxc516iijij7";
+  })
+  (fetchNuGet {
+    pname = "System.Reflection.TypeExtensions";
+    version = "4.3.0";
+    sha256 = "0y2ssg08d817p0vdag98vn238gyrrynjdj4181hdg780sif3ykp1";
+  })
+  (fetchNuGet {
+    pname = "System.Resources.ResourceManager";
+    version = "4.0.1";
+    sha256 = "0b4i7mncaf8cnai85jv3wnw6hps140cxz8vylv2bik6wyzgvz7bi";
+  })
+  (fetchNuGet {
+    pname = "System.Resources.ResourceManager";
+    version = "4.3.0";
+    sha256 = "0sjqlzsryb0mg4y4xzf35xi523s4is4hz9q4qgdvlvgivl7qxn49";
+  })
+  (fetchNuGet {
+    pname = "System.Runtime";
+    version = "4.1.0";
+    sha256 = "02hdkgk13rvsd6r9yafbwzss8kr55wnj8d5c7xjnp8gqrwc8sn0m";
+  })
+  (fetchNuGet {
+    pname = "System.Runtime";
+    version = "4.3.0";
+    sha256 = "066ixvgbf2c929kgknshcxqj6539ax7b9m570cp8n179cpfkapz7";
+  })
+  (fetchNuGet {
+    pname = "System.Runtime.CompilerServices.Unsafe";
+    version = "4.5.2";
+    sha256 = "1vz4275fjij8inf31np78hw50al8nqkngk04p3xv5n4fcmf1grgi";
+  })
+  (fetchNuGet {
+    pname = "System.Runtime.Extensions";
+    version = "4.1.0";
+    sha256 = "0rw4rm4vsm3h3szxp9iijc3ksyviwsv6f63dng3vhqyg4vjdkc2z";
+  })
+  (fetchNuGet {
+    pname = "System.Runtime.Extensions";
+    version = "4.3.0";
+    sha256 = "1ykp3dnhwvm48nap8q23893hagf665k0kn3cbgsqpwzbijdcgc60";
+  })
+  (fetchNuGet {
+    pname = "System.Runtime.Handles";
+    version = "4.0.1";
+    sha256 = "1g0zrdi5508v49pfm3iii2hn6nm00bgvfpjq1zxknfjrxxa20r4g";
+  })
+  (fetchNuGet {
+    pname = "System.Runtime.Handles";
+    version = "4.3.0";
+    sha256 = "0sw2gfj2xr7sw9qjn0j3l9yw07x73lcs97p8xfc9w1x9h5g5m7i8";
+  })
+  (fetchNuGet {
+    pname = "System.Runtime.InteropServices";
+    version = "4.1.0";
+    sha256 = "01kxqppx3dr3b6b286xafqilv4s2n0gqvfgzfd4z943ga9i81is1";
+  })
+  (fetchNuGet {
+    pname = "System.Runtime.InteropServices";
+    version = "4.3.0";
+    sha256 = "00hywrn4g7hva1b2qri2s6rabzwgxnbpw9zfxmz28z09cpwwgh7j";
+  })
+  (fetchNuGet {
+    pname = "System.Runtime.InteropServices.RuntimeInformation";
+    version = "4.0.0";
+    sha256 = "0glmvarf3jz5xh22iy3w9v3wyragcm4hfdr17v90vs7vcrm7fgp6";
+  })
+  (fetchNuGet {
+    pname = "System.Runtime.InteropServices.RuntimeInformation";
+    version = "4.3.0";
+    sha256 = "0q18r1sh4vn7bvqgd6dmqlw5v28flbpj349mkdish2vjyvmnb2ii";
+  })
+  (fetchNuGet {
+    pname = "System.Runtime.Numerics";
+    version = "4.3.0";
+    sha256 = "19rav39sr5dky7afygh309qamqqmi9kcwvz3i0c5700v0c5cg61z";
+  })
+  (fetchNuGet {
+    pname = "System.Runtime.Serialization.Primitives";
+    version = "4.1.1";
+    sha256 = "042rfjixknlr6r10vx2pgf56yming8lkjikamg3g4v29ikk78h7k";
+  })
+  (fetchNuGet {
+    pname = "System.Security.AccessControl";
+    version = "4.5.0";
+    sha256 = "1wvwanz33fzzbnd2jalar0p0z3x0ba53vzx1kazlskp7pwyhlnq0";
+  })
+  (fetchNuGet {
+    pname = "System.Security.Cryptography.Algorithms";
+    version = "4.3.0";
+    sha256 = "03sq183pfl5kp7gkvq77myv7kbpdnq3y0xj7vi4q1kaw54sny0ml";
+  })
+  (fetchNuGet {
+    pname = "System.Security.Cryptography.Encoding";
+    version = "4.3.0";
+    sha256 = "1jr6w70igqn07k5zs1ph6xja97hxnb3mqbspdrff6cvssgrixs32";
+  })
+  (fetchNuGet {
+    pname = "System.Security.Cryptography.Primitives";
+    version = "4.3.0";
+    sha256 = "0pyzncsv48zwly3lw4f2dayqswcfvdwq2nz0dgwmi7fj3pn64wby";
+  })
+  (fetchNuGet {
+    pname = "System.Security.Cryptography.X509Certificates";
+    version = "4.3.0";
+    sha256 = "0valjcz5wksbvijylxijjxb1mp38mdhv03r533vnx1q3ikzdav9h";
+  })
+  (fetchNuGet {
+    pname = "System.Security.Principal.Windows";
+    version = "4.5.0";
+    sha256 = "0rmj89wsl5yzwh0kqjgx45vzf694v9p92r4x4q6yxldk1cv1hi86";
+  })
+  (fetchNuGet {
+    pname = "System.Text.Encoding";
+    version = "4.0.11";
+    sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw";
+  })
+  (fetchNuGet {
+    pname = "System.Text.Encoding";
+    version = "4.3.0";
+    sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr";
+  })
+  (fetchNuGet {
+    pname = "System.Text.Encoding.CodePages";
+    version = "4.3.0";
+    sha256 = "0lgxg1gn7pg7j0f942pfdc9q7wamzxsgq3ng248ikdasxz0iadkv";
+  })
+  (fetchNuGet {
+    pname = "System.Text.Encoding.Extensions";
+    version = "4.0.11";
+    sha256 = "08nsfrpiwsg9x5ml4xyl3zyvjfdi4mvbqf93kjdh11j4fwkznizs";
+  })
+  (fetchNuGet {
+    pname = "System.Text.Encoding.Extensions";
+    version = "4.3.0";
+    sha256 = "11q1y8hh5hrp5a3kw25cb6l00v5l5dvirkz8jr3sq00h1xgcgrxy";
+  })
+  (fetchNuGet {
+    pname = "System.Text.RegularExpressions";
+    version = "4.1.0";
+    sha256 = "1mw7vfkkyd04yn2fbhm38msk7dz2xwvib14ygjsb8dq2lcvr18y7";
+  })
+  (fetchNuGet {
+    pname = "System.Text.RegularExpressions";
+    version = "4.3.0";
+    sha256 = "1bgq51k7fwld0njylfn7qc5fmwrk2137gdq7djqdsw347paa9c2l";
+  })
+  (fetchNuGet {
+    pname = "System.Threading";
+    version = "4.0.11";
+    sha256 = "19x946h926bzvbsgj28csn46gak2crv2skpwsx80hbgazmkgb1ls";
+  })
+  (fetchNuGet {
+    pname = "System.Threading";
+    version = "4.3.0";
+    sha256 = "0rw9wfamvhayp5zh3j7p1yfmx9b5khbf4q50d8k5rk993rskfd34";
+  })
+  (fetchNuGet {
+    pname = "System.Threading.Tasks";
+    version = "4.0.11";
+    sha256 = "0nr1r41rak82qfa5m0lhk9mp0k93bvfd7bbd9sdzwx9mb36g28p5";
+  })
+  (fetchNuGet {
+    pname = "System.Threading.Tasks";
+    version = "4.3.0";
+    sha256 = "134z3v9abw3a6jsw17xl3f6hqjpak5l682k2vz39spj4kmydg6k7";
+  })
+  (fetchNuGet {
+    pname = "System.Threading.Tasks.Extensions";
+    version = "4.0.0";
+    sha256 = "1cb51z062mvc2i8blpzmpn9d9mm4y307xrwi65di8ri18cz5r1zr";
+  })
+  (fetchNuGet {
+    pname = "System.Threading.Tasks.Extensions";
+    version = "4.3.0";
+    sha256 = "1xxcx2xh8jin360yjwm4x4cf5y3a2bwpn2ygkfkwkicz7zk50s2z";
+  })
+  (fetchNuGet {
+    pname = "System.Threading.Tasks.Extensions";
+    version = "4.5.2";
+    sha256 = "1sh63dz0dymqcwmprp0nadm77b83vmm7lyllpv578c397bslb8hj";
+  })
+  (fetchNuGet {
+    pname = "System.Threading.Tasks.Parallel";
+    version = "4.3.0";
+    sha256 = "1rr3qa4hxwyj531s4nb3bwrxnxxwz617i0n9gh6x7nr7dd3ayzgh";
+  })
+  (fetchNuGet {
+    pname = "System.Threading.Thread";
+    version = "4.3.0";
+    sha256 = "0y2xiwdfcph7znm2ysxanrhbqqss6a3shi1z3c779pj2s523mjx4";
+  })
+  (fetchNuGet {
+    pname = "System.Threading.ThreadPool";
+    version = "4.3.0";
+    sha256 = "027s1f4sbx0y1xqw2irqn6x161lzj8qwvnh2gn78ciiczdv10vf1";
+  })
+  (fetchNuGet {
+    pname = "System.ValueTuple";
+    version = "4.5.0";
+    sha256 = "00k8ja51d0f9wrq4vv5z2jhq8hy31kac2rg0rv06prylcybzl8cy";
+  })
+  (fetchNuGet {
+    pname = "System.Xml.ReaderWriter";
+    version = "4.0.11";
+    sha256 = "0c6ky1jk5ada9m94wcadih98l6k1fvf6vi7vhn1msjixaha419l5";
+  })
+  (fetchNuGet {
+    pname = "System.Xml.ReaderWriter";
+    version = "4.3.0";
+    sha256 = "0c47yllxifzmh8gq6rq6l36zzvw4kjvlszkqa9wq3fr59n0hl3s1";
+  })
+  (fetchNuGet {
+    pname = "System.Xml.XDocument";
+    version = "4.0.11";
+    sha256 = "0n4lvpqzy9kc7qy1a4acwwd7b7pnvygv895az5640idl2y9zbz18";
+  })
+  (fetchNuGet {
+    pname = "System.Xml.XDocument";
+    version = "4.3.0";
+    sha256 = "08h8fm4l77n0nd4i4fk2386y809bfbwqb7ih9d7564ifcxr5ssxd";
+  })
+  (fetchNuGet {
+    pname = "System.Xml.XmlDocument";
+    version = "4.3.0";
+    sha256 = "0bmz1l06dihx52jxjr22dyv5mxv6pj4852lx68grjm7bivhrbfwi";
+  })
+  (fetchNuGet {
+    pname = "System.Xml.XPath";
+    version = "4.3.0";
+    sha256 = "1cv2m0p70774a0sd1zxc8fm8jk3i5zk2bla3riqvi8gsm0r4kpci";
+  })
+  (fetchNuGet {
+    pname = "System.Xml.XPath.XDocument";
+    version = "4.3.0";
+    sha256 = "1wxckyb7n1pi433xzz0qcwcbl1swpra64065mbwwi8dhdc4kiabn";
+  })
+  (fetchNuGet {
+    pname = "System.Xml.XPath.XmlDocument";
+    version = "4.3.0";
+    sha256 = "1h9lh7qkp0lff33z847sdfjj8yaz98ylbnkbxlnsbflhj9xyfqrm";
+  })
 ]
diff --git a/pkgs/development/python-modules/pythonocc-core/default.nix b/pkgs/development/python-modules/pythonocc-core/default.nix
index cedf05029c9ce..1718cf91593ea 100644
--- a/pkgs/development/python-modules/pythonocc-core/default.nix
+++ b/pkgs/development/python-modules/pythonocc-core/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, stdenv
-, python
-, fetchFromGitHub
-, cmake
-, Cocoa
-, fontconfig
-, freetype
-, libGL
-, libGLU
-, libX11
-, libXext
-, libXi
-, libXmu
-, opencascade-occt
-, rapidjson
-, swig4
+{
+  lib,
+  stdenv,
+  python,
+  fetchFromGitHub,
+  cmake,
+  Cocoa,
+  fontconfig,
+  freetype,
+  libGL,
+  libGLU,
+  libX11,
+  libXext,
+  libXi,
+  libXmu,
+  opencascade-occt,
+  rapidjson,
+  swig4,
 }:
 
 stdenv.mkDerivation rec {
@@ -34,11 +35,22 @@ stdenv.mkDerivation rec {
     --replace "/usr/X11R6/lib/libGLU.dylib" "${libGLU}/lib/libGLU.dylib"
   '';
 
-  nativeBuildInputs = [ cmake swig4 ];
+  nativeBuildInputs = [
+    cmake
+    swig4
+  ];
   buildInputs = [
-    python opencascade-occt
-    freetype libGL libGLU libX11 libXext libXmu libXi
-    fontconfig rapidjson
+    python
+    opencascade-occt
+    freetype
+    libGL
+    libGLU
+    libX11
+    libXext
+    libXmu
+    libXi
+    fontconfig
+    rapidjson
   ] ++ lib.optionals stdenv.isDarwin [ Cocoa ];
 
   cmakeFlags = [
diff --git a/pkgs/development/python-modules/pythran/default.nix b/pkgs/development/python-modules/pythran/default.nix
index 3e62fa882cc9b..e99283bc49ae7 100644
--- a/pkgs/development/python-modules/pythran/default.nix
+++ b/pkgs/development/python-modules/pythran/default.nix
@@ -1,29 +1,29 @@
-{ lib
-, python
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, isPy3k
-, substituteAll
+{
+  lib,
+  python,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy3k,
+  substituteAll,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# native dependencies
-, openmp
-, xsimd
+  # native dependencies
+  openmp,
+  xsimd,
 
-# dependencies
-, ply
-, gast
-, numpy
-, beniget
+  # dependencies
+  ply,
+  gast,
+  numpy,
+  beniget,
 }:
 
 let
   inherit (python) stdenv;
-
-in buildPythonPackage rec {
+in
+buildPythonPackage rec {
   pname = "pythran";
   version = "0.15.0";
   pyproject = true;
@@ -39,7 +39,9 @@ in buildPythonPackage rec {
     # Hardcode path to mp library
     (substituteAll {
       src = ./0001-hardcode-path-to-libgomp.patch;
-      gomp = "${if stdenv.cc.isClang then openmp else stdenv.cc.cc.lib}/lib/libgomp${stdenv.hostPlatform.extensions.sharedLibrary}";
+      gomp = "${
+        if stdenv.cc.isClang then openmp else stdenv.cc.cc.lib
+      }/lib/libgomp${stdenv.hostPlatform.extensions.sharedLibrary}";
     })
   ];
 
@@ -49,9 +51,7 @@ in buildPythonPackage rec {
     ln -s '${lib.getDev xsimd}'/include/xsimd pythran/
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     ply
diff --git a/pkgs/development/python-modules/pytibber/default.nix b/pkgs/development/python-modules/pytibber/default.nix
index 83b1a73820e86..d5c7532b47801 100644
--- a/pkgs/development/python-modules/pytibber/default.nix
+++ b/pkgs/development/python-modules/pytibber/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, gql
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gql,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-fKeNQifSCxsqR2mhK2w5kG669byYNNLkfxAYTUtfWE0=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     aiohttp
@@ -37,16 +36,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "test/test.py"
-  ];
+  pytestFlagsArray = [ "test/test.py" ];
 
   # Tests access network
   doCheck = false;
 
-  pythonImportsCheck = [
-    "tibber"
-  ];
+  pythonImportsCheck = [ "tibber" ];
 
   meta = with lib; {
     description = "Python library to communicate with Tibber";
diff --git a/pkgs/development/python-modules/pytidylib/default.nix b/pkgs/development/python-modules/pytidylib/default.nix
index e8d417f0cec59..7f5b2db40dd68 100644
--- a/pkgs/development/python-modules/pytidylib/default.nix
+++ b/pkgs/development/python-modules/pytidylib/default.nix
@@ -1,4 +1,11 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, unittestCheckHook, html-tidy }:
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  unittestCheckHook,
+  html-tidy,
+}:
 
 buildPythonPackage rec {
   pname = "pytidylib";
diff --git a/pkgs/development/python-modules/pytikz-allefeld/default.nix b/pkgs/development/python-modules/pytikz-allefeld/default.nix
index 9dd0bdb2bbe6b..31cc3dabb1b42 100644
--- a/pkgs/development/python-modules/pytikz-allefeld/default.nix
+++ b/pkgs/development/python-modules/pytikz-allefeld/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
-, setuptools
-, pymupdf
-, numpy
-, ipython
-, texlive
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  setuptools,
+  pymupdf,
+  numpy,
+  ipython,
+  texlive,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-G59UUkpjttJKNBN0MB/A9CftO8tO3nv8qlTxt3/fKHk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   dependencies = [
     pymupdf
@@ -52,7 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/allefeld/pytikz";
-    description = "A Python interface to TikZ";
+    description = "Python interface to TikZ";
     license = licenses.gpl3;
     maintainers = with maintainers; [ pbsds ];
     broken = stdenv.isDarwin;
diff --git a/pkgs/development/python-modules/pytile/default.nix b/pkgs/development/python-modules/pytile/default.nix
index 73b084ec9d3d3..ab61021b10c31 100644
--- a/pkgs/development/python-modules/pytile/default.nix
+++ b/pkgs/development/python-modules/pytile/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, certifi
-, fetchFromGitHub
-, poetry-core
-, pytest-aiohttp
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  certifi,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-oHOeEaqkh+RjhpdQ5v1tFhaS6gUzl8UzDGnPLNRY90c=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -48,9 +47,7 @@ buildPythonPackage rec {
     "examples/"
   ];
 
-  pythonImportsCheck = [
-    "pytile"
-  ];
+  pythonImportsCheck = [ "pytile" ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/pytimeparse/default.nix b/pkgs/development/python-modules/pytimeparse/default.nix
index ec7dac91c12a6..44985f080a648 100644
--- a/pkgs/development/python-modules/pytimeparse/default.nix
+++ b/pkgs/development/python-modules/pytimeparse/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pynose
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pynose,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-6GE2R3vpJNfmcGRqmFYZV+jKcwjUSEHiH13ep1dVago=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pynose
-  ];
+  nativeCheckInputs = [ pynose ];
 
-  pythonImportsCheck = [
-    "pytimeparse"
-  ];
+  pythonImportsCheck = [ "pytimeparse" ];
 
   meta = with lib; {
     description = "Library to parse various kinds of time expressions";
diff --git a/pkgs/development/python-modules/pytimeparse2/default.nix b/pkgs/development/python-modules/pytimeparse2/default.nix
index b35202e6fd4b1..75d1ff0f53fe9 100644
--- a/pkgs/development/python-modules/pytimeparse2/default.nix
+++ b/pkgs/development/python-modules/pytimeparse2/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchFromGitHub, buildPythonPackage, dateutils }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  dateutils,
+}:
 
 buildPythonPackage rec {
   pname = "pytimeparse2";
@@ -25,7 +30,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pytimeparse2" ];
 
   meta = with lib; {
-    description = "A pytimeparse based project with the aim of optimizing functionality and providing stable support";
+    description = "Pytimeparse based project with the aim of optimizing functionality and providing stable support";
     homepage = "https://github.com/onegreyonewhite/pytimeparse2";
     license = licenses.mit;
     maintainers = with maintainers; [ gador ];
diff --git a/pkgs/development/python-modules/pytlv/default.nix b/pkgs/development/python-modules/pytlv/default.nix
index d4381f9044236..630cc9a21b3c9 100644
--- a/pkgs/development/python-modules/pytlv/default.nix
+++ b/pkgs/development/python-modules/pytlv/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, poetry-core
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     hash = "sha256-btxZ0oQzn1ZpwXihHlg6CduLh8nkerLV7SoFyXzJjVY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   pythonImportsCheck = [ "pytlv" ];
 
@@ -25,6 +24,9 @@ buildPythonPackage rec {
     description = "TLV (tag length lavue) data parser, especially useful for EMV tags parsing";
     homepage = "https://github.com/timgabets/pytlv";
     license = licenses.lgpl2;
-    maintainers = with maintainers; [ flokli janik ];
+    maintainers = with maintainers; [
+      flokli
+      janik
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pytm/default.nix b/pkgs/development/python-modules/pytm/default.nix
index 8d3d7c9af8389..dd22bbf5b88ea 100644
--- a/pkgs/development/python-modules/pytm/default.nix
+++ b/pkgs/development/python-modules/pytm/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, pythonOlder
-, pydal
-, graphviz
-, pandoc
-, plantuml
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  pythonOlder,
+  pydal,
+  graphviz,
+  pandoc,
+  plantuml,
 }:
 
 buildPythonPackage rec {
@@ -21,14 +22,22 @@ buildPythonPackage rec {
     sha256 = "sha256-MseV1ucDCzSM36zx04g9v5euDX0t74KqUSB4+brHzt8=";
   };
 
-  propagatedBuildInputs = [ pydal graphviz pandoc plantuml ];
+  propagatedBuildInputs = [
+    pydal
+    graphviz
+    pandoc
+    plantuml
+  ];
 
   pythonImportsCheck = [ "pytm" ];
 
   meta = with lib; {
-    description = "A Pythonic framework for threat modeling";
+    description = "Pythonic framework for threat modeling";
     homepage = "https://owasp.org/www-project-pytm/";
-    license = with licenses; [ capec mit ];
+    license = with licenses; [
+      capec
+      mit
+    ];
     maintainers = with maintainers; [ wamserma ];
   };
 }
diff --git a/pkgs/development/python-modules/pytmx/default.nix b/pkgs/development/python-modules/pytmx/default.nix
index 177d255a13b59..77e3656e2f29d 100644
--- a/pkgs/development/python-modules/pytmx/default.nix
+++ b/pkgs/development/python-modules/pytmx/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pygame
-, pyglet
-, pysdl2
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pygame,
+  pyglet,
+  pysdl2,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -35,9 +36,7 @@ buildPythonPackage rec {
     "pytmx.util_pysdl2"
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # AssertionError on the property name
diff --git a/pkgs/development/python-modules/pytomlpp/default.nix b/pkgs/development/python-modules/pytomlpp/default.nix
index eb25af8282782..98b20b6ffc460 100644
--- a/pkgs/development/python-modules/pytomlpp/default.nix
+++ b/pkgs/development/python-modules/pytomlpp/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pybind11
-, pytestCheckHook
-, python-dateutil
-, doxygen
-, python
-, pelican
-, matplotlib
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pybind11,
+  pytestCheckHook,
+  python-dateutil,
+  doxygen,
+  python,
+  pelican,
+  matplotlib,
 }:
 
 buildPythonPackage rec {
@@ -54,7 +55,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pytomlpp" ];
 
   meta = with lib; {
-    description = "A python wrapper for tomlplusplus";
+    description = "Python wrapper for tomlplusplus";
     homepage = "https://github.com/bobfang1992/pytomlpp";
     license = licenses.mit;
     maintainers = with maintainers; [ evils ];
diff --git a/pkgs/development/python-modules/pytomorrowio/default.nix b/pkgs/development/python-modules/pytomorrowio/default.nix
index 83d5af50c96fc..b749a805eb27c 100644
--- a/pkgs/development/python-modules/pytomorrowio/default.nix
+++ b/pkgs/development/python-modules/pytomorrowio/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, aiohttp
-, pytest-aiohttp
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  aiohttp,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-ZCA+GYuZuRgc4Pi9Bcg4zthOnkmQ+/IddFMkR0WYfKk=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   nativeCheckInputs = [
     pytest-aiohttp
@@ -30,9 +29,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pytomorrowio"
-  ];
+  pythonImportsCheck = [ "pytomorrowio" ];
 
   meta = {
     description = "Async Python package to access the Tomorrow.io API";
diff --git a/pkgs/development/python-modules/pytoolconfig/default.nix b/pkgs/development/python-modules/pytoolconfig/default.nix
index 1ba80dae80371..bec278f08e6f6 100644
--- a/pkgs/development/python-modules/pytoolconfig/default.nix
+++ b/pkgs/development/python-modules/pytoolconfig/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, docutils
-, fetchFromGitHub
-, packaging
-, pdm-backend
-, platformdirs
-, pydantic
-, pytestCheckHook
-, pythonOlder
-, sphinx
-, sphinx-autodoc-typehints
-, sphinx-rtd-theme
-, sphinxHook
-, tabulate
-, tomli
+{
+  lib,
+  buildPythonPackage,
+  docutils,
+  fetchFromGitHub,
+  packaging,
+  pdm-backend,
+  platformdirs,
+  pydantic,
+  pytestCheckHook,
+  pythonOlder,
+  sphinx,
+  sphinx-autodoc-typehints,
+  sphinx-rtd-theme,
+  sphinxHook,
+  tabulate,
+  tomli,
 }:
 
 buildPythonPackage rec {
@@ -47,28 +48,18 @@ buildPythonPackage rec {
     sphinxHook
   ] ++ passthru.optional-dependencies.doc;
 
-  propagatedBuildInputs = [
-    packaging
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  propagatedBuildInputs = [ packaging ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   passthru.optional-dependencies = {
-    validation = [
-      pydantic
-    ];
-    global = [
-      platformdirs
-    ];
+    validation = [ pydantic ];
+    global = [ platformdirs ];
     doc = [
       sphinx
       tabulate
     ];
   };
 
-  pythonImportsCheck = [
-    "pytoolconfig"
-  ];
+  pythonImportsCheck = [ "pytoolconfig" ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -79,6 +70,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/bagel897/pytoolconfig";
     changelog = "https://github.com/bagel897/pytoolconfig/releases/tag/v${version}";
     license = licenses.lgpl3Plus;
-    maintainers = with maintainers; [ fab hexa ];
+    maintainers = with maintainers; [
+      fab
+      hexa
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pytools/default.nix b/pkgs/development/python-modules/pytools/default.nix
index 7689e40c5b8e8..f755014155ddd 100644
--- a/pkgs/development/python-modules/pytools/default.nix
+++ b/pkgs/development/python-modules/pytools/default.nix
@@ -1,36 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, decorator
-, numpy
-, platformdirs
-, typing-extensions
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  decorator,
+  numpy,
+  platformdirs,
+  typing-extensions,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "pytools";
-  version = "2024.1.1";
+  version = "2024.1.5";
   format = "setuptools";
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LIjt+pkMjjJRZ8N2WfseEKPBEz3691K719hFZAK43P8=";
+    hash = "sha256-jDd7sf/ctRAzAbjn6U8By+Nlc6AeAgQ0/qlikbHxrBk=";
   };
 
   propagatedBuildInputs = [
     decorator
     numpy
     platformdirs
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ typing-extensions ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [
     "pytools"
@@ -40,7 +37,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/inducer/pytools/";
-    description = "Miscellaneous Python lifesavers.";
+    description = "Miscellaneous Python lifesavers";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ artuuge ];
   };
diff --git a/pkgs/development/python-modules/pytorch-lightning/default.nix b/pkgs/development/python-modules/pytorch-lightning/default.nix
index f7a50ce337fcd..80462a073b477 100644
--- a/pkgs/development/python-modules/pytorch-lightning/default.nix
+++ b/pkgs/development/python-modules/pytorch-lightning/default.nix
@@ -1,40 +1,43 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, fsspec
-, lightning-utilities
-, numpy
-, packaging
-, pyyaml
-, tensorboardx
-, torch
-, torchmetrics
-, tqdm
-, traitlets
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fsspec,
+  lightning-utilities,
+  numpy,
+  packaging,
+  pyyaml,
+  setuptools,
+  tensorboardx,
+  torch,
+  torchmetrics,
+  tqdm,
+  traitlets,
 
-# tests
-, psutil
-, pytestCheckHook
+  # tests
+  psutil,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "pytorch-lightning";
-  version = "2.2.1";
-  format = "pyproject";
+  version = "2.2.5";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "Lightning-AI";
     repo = "pytorch-lightning";
     rev = "refs/tags/${version}";
-    hash = "sha256-H2gbVCvGKbeHZVlvz6SmKI8Gzw649DxcwYgfGcehsmg=";
+    hash = "sha256-2O6Gr9BdjI/WTU0+KTfOQG31xzHyBeqxGv97f3WxUMs=";
   };
 
   preConfigure = ''
     export PACKAGE_NAME=pytorch
- '';
+  '';
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     fsspec
     numpy
     packaging
@@ -45,8 +48,7 @@ buildPythonPackage rec {
     torchmetrics
     tqdm
     traitlets
-  ]
-  ++ fsspec.optional-dependencies.http;
+  ] ++ fsspec.optional-dependencies.http;
 
   nativeCheckInputs = [
     psutil
@@ -57,13 +59,12 @@ buildPythonPackage rec {
   # models, which doesn't work in the sandbox.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pytorch_lightning"
-  ];
+  pythonImportsCheck = [ "pytorch_lightning" ];
 
   meta = with lib; {
     description = "Lightweight PyTorch wrapper for machine learning researchers";
-    homepage = "https://pytorch-lightning.readthedocs.io";
+    homepage = "https://github.com/Lightning-AI/pytorch-lightning";
+    changelog = "https://github.com/Lightning-AI/pytorch-lightning/releases/tag/${src.rev}";
     license = licenses.asl20;
     maintainers = with maintainers; [ tbenst ];
   };
diff --git a/pkgs/development/python-modules/pytorch-metric-learning/default.nix b/pkgs/development/python-modules/pytorch-metric-learning/default.nix
index a1d1f7f38a2ca..ec57a02f0acd4 100644
--- a/pkgs/development/python-modules/pytorch-metric-learning/default.nix
+++ b/pkgs/development/python-modules/pytorch-metric-learning/default.nix
@@ -1,19 +1,20 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy27
-, numpy
-, scikit-learn
-, pytestCheckHook
-, torch
-, torchvision
-, tqdm
-, faiss
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy27,
+  numpy,
+  scikit-learn,
+  pytestCheckHook,
+  torch,
+  torchvision,
+  tqdm,
+  faiss,
 }:
 
 buildPythonPackage rec {
-  pname   = "pytorch-metric-learning";
+  pname = "pytorch-metric-learning";
   version = "2.5.0";
   format = "setuptools";
 
@@ -46,23 +47,25 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = [
-    # TypeError: setup() missing 1 required positional argument: 'world_size'
-    "TestDistributedLossWrapper"
-    # require network access:
-    "TestInference"
-    "test_get_nearest_neighbors"
-    "test_tuplestoweights_sampler"
-    "test_untrained_indexer"
-    "test_metric_loss_only"
-    "test_pca"
-    # flaky
-    "test_distributed_classifier_loss_and_miner"
-  ] ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
-    # RuntimeError: DataLoader worker (pid(s) <...>) exited unexpectedly
-    "test_global_embedding_space_tester"
-    "test_with_same_parent_label_tester"
-  ];
+  disabledTests =
+    [
+      # TypeError: setup() missing 1 required positional argument: 'world_size'
+      "TestDistributedLossWrapper"
+      # require network access:
+      "TestInference"
+      "test_get_nearest_neighbors"
+      "test_tuplestoweights_sampler"
+      "test_untrained_indexer"
+      "test_metric_loss_only"
+      "test_pca"
+      # flaky
+      "test_distributed_classifier_loss_and_miner"
+    ]
+    ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
+      # RuntimeError: DataLoader worker (pid(s) <...>) exited unexpectedly
+      "test_global_embedding_space_tester"
+      "test_with_same_parent_label_tester"
+    ];
 
   meta = {
     description = "Metric learning library for PyTorch";
diff --git a/pkgs/development/python-modules/pytorch-msssim/default.nix b/pkgs/development/python-modules/pytorch-msssim/default.nix
index 371ae7514aeb0..a75aa6eb5b183 100644
--- a/pkgs/development/python-modules/pytorch-msssim/default.nix
+++ b/pkgs/development/python-modules/pytorch-msssim/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, torch
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  torch,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    torch
-  ];
+  propagatedBuildInputs = [ torch ];
 
   pythonImportsCheck = [ "pytorch_msssim" ];
 
diff --git a/pkgs/development/python-modules/pytorch-pfn-extras/default.nix b/pkgs/development/python-modules/pytorch-pfn-extras/default.nix
index 21da795609d9e..f77d143f7b036 100644
--- a/pkgs/development/python-modules/pytorch-pfn-extras/default.nix
+++ b/pkgs/development/python-modules/pytorch-pfn-extras/default.nix
@@ -1,17 +1,18 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, lib
-, numpy
-, onnx
-, packaging
-, pytestCheckHook
-, pythonAtLeast
-, setuptools
-, stdenv
-, torch
-, torchvision
-, typing-extensions
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  lib,
+  numpy,
+  onnx,
+  packaging,
+  pytestCheckHook,
+  pythonAtLeast,
+  setuptools,
+  stdenv,
+  torch,
+  torchvision,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -34,13 +35,20 @@ buildPythonPackage rec {
     })
   ];
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [ numpy packaging torch typing-extensions ];
+  dependencies = [
+    numpy
+    packaging
+    torch
+    typing-extensions
+  ];
 
-  nativeCheckInputs = [ onnx pytestCheckHook torchvision ];
+  nativeCheckInputs = [
+    onnx
+    pytestCheckHook
+    torchvision
+  ];
 
   pytestFlagsArray = [
     # Requires CUDA access which is not possible in the nix environment.
@@ -50,35 +58,39 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "pytorch_pfn_extras" ];
 
-  disabledTestPaths = [
-    # Requires optuna which is currently (2022-02-16) marked as broken.
-    "tests/pytorch_pfn_extras_tests/test_config_types.py"
+  disabledTestPaths =
+    [
+      # Requires optuna which is currently (2022-02-16) marked as broken.
+      "tests/pytorch_pfn_extras_tests/test_config_types.py"
 
-    # requires onnxruntime which was removed because of poor maintainability
-    # See https://github.com/NixOS/nixpkgs/pull/105951 https://github.com/NixOS/nixpkgs/pull/155058
-    "tests/pytorch_pfn_extras_tests/onnx_tests/test_annotate.py"
-    "tests/pytorch_pfn_extras_tests/onnx_tests/test_as_output.py"
-    "tests/pytorch_pfn_extras_tests/onnx_tests/test_export.py"
-    "tests/pytorch_pfn_extras_tests/onnx_tests/test_export_testcase.py"
-    "tests/pytorch_pfn_extras_tests/onnx_tests/test_lax.py"
-    "tests/pytorch_pfn_extras_tests/onnx_tests/test_load_model.py"
-    "tests/pytorch_pfn_extras_tests/onnx_tests/test_torchvision.py"
-    "tests/pytorch_pfn_extras_tests/onnx_tests/utils.py"
+      # requires onnxruntime which was removed because of poor maintainability
+      # See https://github.com/NixOS/nixpkgs/pull/105951 https://github.com/NixOS/nixpkgs/pull/155058
+      "tests/pytorch_pfn_extras_tests/onnx_tests/test_annotate.py"
+      "tests/pytorch_pfn_extras_tests/onnx_tests/test_as_output.py"
+      "tests/pytorch_pfn_extras_tests/onnx_tests/test_export.py"
+      "tests/pytorch_pfn_extras_tests/onnx_tests/test_export_testcase.py"
+      "tests/pytorch_pfn_extras_tests/onnx_tests/test_lax.py"
+      "tests/pytorch_pfn_extras_tests/onnx_tests/test_load_model.py"
+      "tests/pytorch_pfn_extras_tests/onnx_tests/test_torchvision.py"
+      "tests/pytorch_pfn_extras_tests/onnx_tests/utils.py"
 
-    # RuntimeError: No Op registered for Gradient with domain_version of 9
-    "tests/pytorch_pfn_extras_tests/onnx_tests/test_grad.py"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    # RuntimeError: Dynamo is not supported on Python 3.12+
-    "tests/pytorch_pfn_extras_tests/dynamo_tests/test_compile.py"
-    "tests/pytorch_pfn_extras_tests/test_ops/test_register.py"
-  ] ++ lib.optionals (stdenv.hostPlatform.isDarwin) [
-    # torch.distributed is not available on darwin
-    "tests/pytorch_pfn_extras_tests/training_tests/extensions_tests/test_sharded_snapshot.py"
-  ] ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [
-    # RuntimeError: internal error
-    # convolution (e.g. F.conv3d) causes runtime error
-    "tests/pytorch_pfn_extras_tests/nn_tests/modules_tests/test_lazy_conv.py"
-  ];
+      # RuntimeError: No Op registered for Gradient with domain_version of 9
+      "tests/pytorch_pfn_extras_tests/onnx_tests/test_grad.py"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # RuntimeError: Dynamo is not supported on Python 3.12+
+      "tests/pytorch_pfn_extras_tests/dynamo_tests/test_compile.py"
+      "tests/pytorch_pfn_extras_tests/test_ops/test_register.py"
+    ]
+    ++ lib.optionals (stdenv.hostPlatform.isDarwin) [
+      # torch.distributed is not available on darwin
+      "tests/pytorch_pfn_extras_tests/training_tests/extensions_tests/test_sharded_snapshot.py"
+    ]
+    ++ lib.optionals (stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isAarch64) [
+      # RuntimeError: internal error
+      # convolution (e.g. F.conv3d) causes runtime error
+      "tests/pytorch_pfn_extras_tests/nn_tests/modules_tests/test_lazy_conv.py"
+    ];
 
   meta = with lib; {
     description = "Supplementary components to accelerate research and development in PyTorch";
diff --git a/pkgs/development/python-modules/pytraccar/default.nix b/pkgs/development/python-modules/pytraccar/default.nix
index 3af3cb33e96d7..c26ee031b8873 100644
--- a/pkgs/development/python-modules/pytraccar/default.nix
+++ b/pkgs/development/python-modules/pytraccar/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pytest-asyncio
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pytest-asyncio,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
     hash = "sha256-WTRqYw66iD4bbb1aWJfBI67+DtE1FE4oiuUKpfVqypE=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # https://github.com/ludeeus/pytraccar/issues/31
   doCheck = lib.versionOlder aiohttp.version "3.9.0";
@@ -38,9 +35,7 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
-  pytestFlagsArray = [
-    "--asyncio-mode=auto"
-  ];
+  pytestFlagsArray = [ "--asyncio-mode=auto" ];
 
   postPatch = ''
     # Upstream doesn't set version in the repo
@@ -48,9 +43,7 @@ buildPythonPackage rec {
       --replace 'version = "0"' 'version = "${version}"'
   '';
 
-  pythonImportsCheck = [
-    "pytraccar"
-  ];
+  pythonImportsCheck = [ "pytraccar" ];
 
   meta = with lib; {
     description = "Python library to handle device information from Traccar";
diff --git a/pkgs/development/python-modules/pytradfri/default.nix b/pkgs/development/python-modules/pytradfri/default.nix
index b4de887f54559..9e710823127aa 100644
--- a/pkgs/development/python-modules/pytradfri/default.nix
+++ b/pkgs/development/python-modules/pytradfri/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, aiocoap
-, dtlssocket
-, pydantic
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  aiocoap,
+  dtlssocket,
+  pydantic,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-CWv3ebDulZuiFP+nJ2Xr7U/HTDFTqA9VYC0USLkpWR0=";
   };
 
-  propagatedBuildInputs = [
-    pydantic
-  ];
+  propagatedBuildInputs = [ pydantic ];
 
   passthru.optional-dependencies = {
     async = [
@@ -33,14 +32,9 @@ buildPythonPackage rec {
     ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ]
-  ++ passthru.optional-dependencies.async;
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.async;
 
-  pythonImportsCheck = [
-    "pytradfri"
-  ];
+  pythonImportsCheck = [ "pytradfri" ];
 
   meta = with lib; {
     description = "Python package to communicate with the IKEA Trådfri ZigBee Gateway";
diff --git a/pkgs/development/python-modules/pytrafikverket/default.nix b/pkgs/development/python-modules/pytrafikverket/default.nix
index d880602a51238..ed187fc619fe8 100644
--- a/pkgs/development/python-modules/pytrafikverket/default.nix
+++ b/pkgs/development/python-modules/pytrafikverket/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, aiohttp
-, lxml
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  aiohttp,
+  lxml,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-B3K9wDFj7uSgs6BsJUnD6r2JVcH7u7UrbVXUTMGqmQE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -31,9 +30,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pytrafikverket"
-  ];
+  pythonImportsCheck = [ "pytrafikverket" ];
 
   meta = with lib; {
     description = "Library to get data from the Swedish Transport Administration (Trafikverket) API";
diff --git a/pkgs/development/python-modules/pytransportnsw/default.nix b/pkgs/development/python-modules/pytransportnsw/default.nix
index 67c0749df56bd..db65727bf85d8 100644
--- a/pkgs/development/python-modules/pytransportnsw/default.nix
+++ b/pkgs/development/python-modules/pytransportnsw/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "00jklgjirmc58hiaqqc2n2rgixvx91bgrd6lv6hv28k51kid10f3";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/pytransportnswv2/default.nix b/pkgs/development/python-modules/pytransportnswv2/default.nix
index a2cf2afb7087f..e2e8c0c81e248 100644
--- a/pkgs/development/python-modules/pytransportnswv2/default.nix
+++ b/pkgs/development/python-modules/pytransportnswv2/default.nix
@@ -1,25 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, gtfs-realtime-bindings
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  gtfs-realtime-bindings,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pytransportnswv2";
-  version = "0.2.4";
-  format = "setuptools";
+  version = "0.4.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    pname = "PyTransportNSWv2";
-    inherit version;
-    sha256 = "129rrqckqgfrwdx0b83dqphcv55cxs5i8jl1ascia7rpzjn109ah";
+    inherit pname version;
+    hash = "sha256-LbFBzC7kGa2qz+XQZDmjhE2FhmScesx5jtLtkV0hlg8=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     gtfs-realtime-bindings
     requests
   ];
@@ -32,7 +35,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python module to access Transport NSW information";
     homepage = "https://github.com/andystewart999/TransportNSW";
-    license = with licenses; [ gpl3Only ];
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/pytrends/default.nix b/pkgs/development/python-modules/pytrends/default.nix
index d52436348ad74..c9e20859086ba 100644
--- a/pkgs/development/python-modules/pytrends/default.nix
+++ b/pkgs/development/python-modules/pytrends/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, setuptools-scm
-, wheel
-, requests
-, lxml
-, pandas
-, pytestCheckHook
-, pytest-recording
-, responses
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  requests,
+  lxml,
+  pandas,
+  pytestCheckHook,
+  pytest-recording,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -33,7 +34,11 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [ requests lxml pandas ];
+  propagatedBuildInputs = [
+    requests
+    lxml
+    pandas
+  ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -41,9 +46,7 @@ buildPythonPackage rec {
     responses
   ];
 
-  pytestFlagsArray = [
-    "--block-network"
-  ];
+  pytestFlagsArray = [ "--block-network" ];
 
   pythonImportsCheck = [ "pytrends" ];
 
@@ -53,5 +56,4 @@ buildPythonPackage rec {
     license = [ licenses.asl20 ];
     maintainers = [ maintainers.mmahut ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pytricia/default.nix b/pkgs/development/python-modules/pytricia/default.nix
index 88bbce684fca7..f906b58fe0af4 100644
--- a/pkgs/development/python-modules/pytricia/default.nix
+++ b/pkgs/development/python-modules/pytricia/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
@@ -16,7 +17,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A library for fast IP address lookup in Python";
+    description = "Library for fast IP address lookup in Python";
     homepage = "https://github.com/jsommers/pytricia";
     license = with licenses; [ lgpl3Plus ];
     maintainers = with maintainers; [ mkg ];
diff --git a/pkgs/development/python-modules/pytrydan/default.nix b/pkgs/development/python-modules/pytrydan/default.nix
index 5a191bf800fe7..87cac954c486a 100644
--- a/pkgs/development/python-modules/pytrydan/default.nix
+++ b/pkgs/development/python-modules/pytrydan/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, httpx
-, orjson
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, respx
-, rich
-, syrupy
-, tenacity
-, typer
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpx,
+  orjson,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  respx,
+  rich,
+  syrupy,
+  tenacity,
+  typer,
 }:
 
 buildPythonPackage rec {
   pname = "pytrydan";
-  version = "0.4.0";
+  version = "0.7.0";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -25,19 +26,17 @@ buildPythonPackage rec {
     owner = "dgomes";
     repo = "pytrydan";
     rev = "refs/tags/v${version}";
-    hash = "sha256-9PyRICtZ+0Ezinu28oFgFOSnOyCmD7zZbdc/chN+sCo=";
+    hash = "sha256-9TZZ4J3fIUGaeWYd5kP9eFABvL/95muD7sDevUaGprQ=";
   };
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace " --cov=pytrydan --cov-report=term-missing:skip-covered" ""
+      --replace-fail " --cov=pytrydan --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     httpx
     orjson
     rich
@@ -52,16 +51,14 @@ buildPythonPackage rec {
     syrupy
   ];
 
-  pythonImportsCheck = [
-    "pytrydan"
-  ];
+  pythonImportsCheck = [ "pytrydan" ];
 
   meta = with lib; {
     description = "Library to interface with V2C EVSE Trydan";
-    mainProgram = "pytrydan";
     homepage = "https://github.com/dgomes/pytrydan";
     changelog = "https://github.com/dgomes/pytrydan/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "pytrydan";
   };
 }
diff --git a/pkgs/development/python-modules/pyttsx3/default.nix b/pkgs/development/python-modules/pyttsx3/default.nix
index 0cd58e6fa5bcd..6243ae776d27f 100644
--- a/pkgs/development/python-modules/pyttsx3/default.nix
+++ b/pkgs/development/python-modules/pyttsx3/default.nix
@@ -1,4 +1,10 @@
-{ stdenv, lib, buildPythonPackage, fetchPypi, espeak-ng }:
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  espeak-ng,
+}:
 
 buildPythonPackage rec {
   pname = "pyttsx3";
diff --git a/pkgs/development/python-modules/pytube/default.nix b/pkgs/development/python-modules/pytube/default.nix
index 2e173e5f482b2..eabf55c89caa9 100644
--- a/pkgs/development/python-modules/pytube/default.nix
+++ b/pkgs/development/python-modules/pytube/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,13 +21,9 @@ buildPythonPackage rec {
     hash = "sha256-Nvs/YlOjk/P5nd1kpUnCM2n6yiEaqZP830UQI0Ug1rk=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = [
-    "test_streaming"
-  ];
+  disabledTests = [ "test_streaming" ];
 
   disabledTestPaths = [
     "tests/test_extract.py"
diff --git a/pkgs/development/python-modules/pytubefix/default.nix b/pkgs/development/python-modules/pytubefix/default.nix
new file mode 100644
index 0000000000000..185d481f754dc
--- /dev/null
+++ b/pkgs/development/python-modules/pytubefix/default.nix
@@ -0,0 +1,28 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+}:
+
+buildPythonPackage rec {
+  pname = "pytubefix";
+  version = "5.6.3";
+  format = "pyproject";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-qYNIQhwSZ3ZG3WMY6qCul1OEno1PWgMlfcFSxN3c6aw=";
+  };
+
+  nativeBuildInputs = [ setuptools-scm ];
+
+  pythonImportsCheck = [ "pytubefix" ];
+
+  meta = {
+    homepage = "https://github.com/JuanBindez/pytubefix";
+    description = "Pytube fork with additional features and fixes";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ roshaen ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytun/default.nix b/pkgs/development/python-modules/pytun/default.nix
index 0c16d8eb5f55a..166afc4544339 100644
--- a/pkgs/development/python-modules/pytun/default.nix
+++ b/pkgs/development/python-modules/pytun/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
   pname = "pytun";
-  version = "2.3.0";
+  version = "2.4.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "montag451";
     repo = "pytun";
-    sha256 = "1cqq8aci38058fjh4a0xf21wac177fw576p2yjl2b8jd9rnsqbl5";
+    sha256 = "sha256-DZ7CoLi6LPhuc55HF9dtek+/N4A29ecnZn7bk7jweuI=";
   };
 
   # Test directory contains examples, not tests.
diff --git a/pkgs/development/python-modules/pyturbojpeg/default.nix b/pkgs/development/python-modules/pyturbojpeg/default.nix
index b64b7527e8bef..42533a50005a2 100644
--- a/pkgs/development/python-modules/pyturbojpeg/default.nix
+++ b/pkgs/development/python-modules/pyturbojpeg/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, libjpeg_turbo
-, setuptools
-, numpy
-, python
-, substituteAll
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  libjpeg_turbo,
+  setuptools,
+  numpy,
+  python,
+  substituteAll,
 }:
 
 buildPythonPackage rec {
@@ -27,25 +28,19 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   # upstream has no tests, but we want to test whether the library is found
   checkPhase = ''
     ${python.interpreter} -c 'from turbojpeg import TurboJPEG; TurboJPEG()'
   '';
 
-  pythonImportsCheck = [
-    "turbojpeg"
-  ];
+  pythonImportsCheck = [ "turbojpeg" ];
 
   meta = with lib; {
-    description = "A Python wrapper of libjpeg-turbo for decoding and encoding JPEG image";
+    description = "Python wrapper of libjpeg-turbo for decoding and encoding JPEG image";
     homepage = "https://github.com/lilohuang/PyTurboJPEG";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/pytweening/default.nix b/pkgs/development/python-modules/pytweening/default.nix
index 1c7535f4405ef..b15a6e6b6a7a5 100644
--- a/pkgs/development/python-modules/pytweening/default.nix
+++ b/pkgs/development/python-modules/pytweening/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 buildPythonPackage rec {
   pname = "pytweening";
diff --git a/pkgs/development/python-modules/pytz-deprecation-shim/default.nix b/pkgs/development/python-modules/pytz-deprecation-shim/default.nix
index dd37c3c1af28a..ef40519c544a1 100644
--- a/pkgs/development/python-modules/pytz-deprecation-shim/default.nix
+++ b/pkgs/development/python-modules/pytz-deprecation-shim/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonAtLeast
-, pythonOlder
-, backports-zoneinfo
-, python-dateutil
-, setuptools
-, tzdata
-, hypothesis
-, pytestCheckHook
-, pytz
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
+  pythonOlder,
+  backports-zoneinfo,
+  python-dateutil,
+  setuptools,
+  tzdata,
+  hypothesis,
+  pytestCheckHook,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,10 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = (lib.optionals (pythonAtLeast "3.6" && pythonOlder "3.9") [
-    backports-zoneinfo
-  ]) ++ (lib.optionals (pythonOlder "3.6") [
-    python-dateutil
-  ]) ++ (lib.optionals (pythonAtLeast "3.6") [
-    tzdata
-  ]);
+  propagatedBuildInputs =
+    (lib.optionals (pythonAtLeast "3.6" && pythonOlder "3.9") [ backports-zoneinfo ])
+    ++ (lib.optionals (pythonOlder "3.6") [ python-dateutil ])
+    ++ (lib.optionals (pythonAtLeast "3.6") [ tzdata ]);
 
   nativeCheckInputs = [
     hypothesis
diff --git a/pkgs/development/python-modules/pytz/default.nix b/pkgs/development/python-modules/pytz/default.nix
index 359c7c142d5e1..d99da5d17d18c 100644
--- a/pkgs/development/python-modules/pytz/default.nix
+++ b/pkgs/development/python-modules/pytz/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -15,13 +16,14 @@ buildPythonPackage rec {
     hash = "sha256-KilzXqnBi68UtEiEa95aSAMO0mdXhHLYlVzQ50Q6mBI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [ "-s" "pytz/tests" ];
+  unittestFlagsArray = [
+    "-s"
+    "pytz/tests"
+  ];
 
   pythonImportsCheck = [ "pytz" ];
 
diff --git a/pkgs/development/python-modules/pytzdata/default.nix b/pkgs/development/python-modules/pytzdata/default.nix
index f6b8e94389256..8b66daba06afa 100644
--- a/pkgs/development/python-modules/pytzdata/default.nix
+++ b/pkgs/development/python-modules/pytzdata/default.nix
@@ -1,4 +1,8 @@
-{ lib, fetchPypi, buildPythonPackage }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+}:
 
 buildPythonPackage rec {
   pname = "pytzdata";
diff --git a/pkgs/development/python-modules/pyu2f/default.nix b/pkgs/development/python-modules/pyu2f/default.nix
index ef09f1285183d..fd63b2bf10ed0 100644
--- a/pkgs/development/python-modules/pyu2f/default.nix
+++ b/pkgs/development/python-modules/pyu2f/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, six
-, mock
-, pyfakefs
-, pytest-forked
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  six,
+  mock,
+  pyfakefs,
+  pytest-forked,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     sha256 = "0mx7bn1p3n0fxyxa82wg3c719hby7vqkxv57fhf7zvhlg2zfnr0v";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   postPatch = ''
     for path in \
diff --git a/pkgs/development/python-modules/pyuca/default.nix b/pkgs/development/python-modules/pyuca/default.nix
index 94b29dc80f9b3..e4a7a2a0b5f14 100644
--- a/pkgs/development/python-modules/pyuca/default.nix
+++ b/pkgs/development/python-modules/pyuca/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,16 +17,12 @@ buildPythonPackage rec {
     hash = "sha256-KIWk+/o1MX5J9cO7xITvjHrYg0NdgdTetOzfGVwAI/4=";
   };
 
-  pythonImportsCheck = [
-    "pyuca"
-  ];
+  pythonImportsCheck = [ "pyuca" ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   meta = with lib; {
-    description = "A Python implementation of the Unicode Collation Algorithm";
+    description = "Python implementation of the Unicode Collation Algorithm";
     homepage = "https://github.com/jtauber/pyuca";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
diff --git a/pkgs/development/python-modules/pyudev/default.nix b/pkgs/development/python-modules/pyudev/default.nix
index 685da38ed2f18..13073a59f4810 100644
--- a/pkgs/development/python-modules/pyudev/default.nix
+++ b/pkgs/development/python-modules/pyudev/default.nix
@@ -1,31 +1,37 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, six
-, udev
-, pytest
-, mock
-, hypothesis
-, docutils
-, stdenvNoCC
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  six,
+  udev,
+  pytest,
+  mock,
+  hypothesis,
+  docutils,
+  stdenvNoCC,
 }:
 
 buildPythonPackage rec {
   pname = "pyudev";
-  version = "0.24.1";
+  version = "0.24.3";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-deVNNyGPWsRbDaHw/ZzF5SajysPvHPrUEM96sziwFHE=";
+    hash = "sha256-LpRUJ6IWdIk7uXYyQB22ITnZHOoe6WE3zHsHrSIZj8c=";
   };
 
   postPatch = lib.optionalString stdenvNoCC.isLinux ''
     substituteInPlace src/pyudev/_ctypeslib/utils.py \
       --replace "find_library(name)" "'${lib.getLib udev}/lib/libudev.so'"
-    '';
+  '';
 
-  nativeCheckInputs = [ pytest mock hypothesis docutils ];
+  nativeCheckInputs = [
+    pytest
+    mock
+    hypothesis
+    docutils
+  ];
   propagatedBuildInputs = [ six ];
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/pyunifi/default.nix b/pkgs/development/python-modules/pyunifi/default.nix
index 5b0272076b9fc..b006354be12cf 100644
--- a/pkgs/development/python-modules/pyunifi/default.nix
+++ b/pkgs/development/python-modules/pyunifi/default.nix
@@ -1,5 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi
-, requests }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+}:
 
 buildPythonPackage rec {
   pname = "pyunifi";
diff --git a/pkgs/development/python-modules/pyunifiprotect/default.nix b/pkgs/development/python-modules/pyunifiprotect/default.nix
index 7b7a042ad8be6..b33c6695bc0b9 100644
--- a/pkgs/development/python-modules/pyunifiprotect/default.nix
+++ b/pkgs/development/python-modules/pyunifiprotect/default.nix
@@ -1,34 +1,35 @@
-{ lib
-, aiofiles
-, aiohttp
-, aioshutil
-, async-timeout
-, buildPythonPackage
-, dateparser
-, fetchFromGitHub
-, ffmpeg
-, hatch-vcs
-, hatchling
-, ipython
-, orjson
-, packaging
-, pillow
-, platformdirs
-, poetry-core
-, py
-, pydantic
-, pyjwt
-, pytest-aiohttp
-, pytest-asyncio
-, pytest-benchmark
-, pytest-timeout
-, pytest-xdist
-, pytestCheckHook
-, python-dotenv
-, pythonOlder
-, pytz
-, termcolor
-, typer
+{
+  lib,
+  aiofiles,
+  aiohttp,
+  aioshutil,
+  async-timeout,
+  buildPythonPackage,
+  dateparser,
+  fetchFromGitHub,
+  ffmpeg,
+  hatch-vcs,
+  hatchling,
+  ipython,
+  orjson,
+  packaging,
+  pillow,
+  platformdirs,
+  poetry-core,
+  py,
+  pydantic,
+  pyjwt,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytest-benchmark,
+  pytest-timeout,
+  pytest-xdist,
+  pytestCheckHook,
+  python-dotenv,
+  pythonOlder,
+  pytz,
+  termcolor,
+  typer,
 }:
 
 buildPythonPackage rec {
@@ -70,10 +71,7 @@ buildPythonPackage rec {
     pyjwt
     pytz
     typer
-  ] ++ typer.optional-dependencies.all
-  ++ lib.optionals (pythonOlder "3.11") [
-    async-timeout
-  ];
+  ] ++ typer.optional-dependencies.all ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
 
   passthru.optional-dependencies = {
     shell = [
@@ -94,13 +92,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pyunifiprotect"
-  ];
+  pythonImportsCheck = [ "pyunifiprotect" ];
 
-  pytestFlagsArray = [
-    "--benchmark-disable"
-  ];
+  pytestFlagsArray = [ "--benchmark-disable" ];
 
   meta = with lib; {
     description = "Library for interacting with the Unifi Protect API";
diff --git a/pkgs/development/python-modules/pyunpack/default.nix b/pkgs/development/python-modules/pyunpack/default.nix
index 631c9706f0df0..4c3c56c7ed533 100644
--- a/pkgs/development/python-modules/pyunpack/default.nix
+++ b/pkgs/development/python-modules/pyunpack/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
-, easyprocess
-, entrypoint2
-, patool
-, cabextract
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  easyprocess,
+  entrypoint2,
+  patool,
+  cabextract,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyupdate/default.nix b/pkgs/development/python-modules/pyupdate/default.nix
index 34c4d1f54ae68..7224907916d24 100644
--- a/pkgs/development/python-modules/pyupdate/default.nix
+++ b/pkgs/development/python-modules/pyupdate/default.nix
@@ -1,5 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k
-, requests }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  requests,
+}:
 
 buildPythonPackage rec {
   pname = "pyupdate";
diff --git a/pkgs/development/python-modules/pyupgrade/default.nix b/pkgs/development/python-modules/pyupgrade/default.nix
index 04ccee1bc7573..f5a4ad76af479 100644
--- a/pkgs/development/python-modules/pyupgrade/default.nix
+++ b/pkgs/development/python-modules/pyupgrade/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, tokenize-rt
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  tokenize-rt,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-n6WlJc7Hh7SArJ8Z0fikxidtpXaPQvKTDGn6HukL2q8=";
   };
 
-  propagatedBuildInputs = [
-    tokenize-rt
-  ];
+  propagatedBuildInputs = [ tokenize-rt ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyupgrade"
-  ];
+  pythonImportsCheck = [ "pyupgrade" ];
 
   meta = with lib; {
     description = "Tool to automatically upgrade syntax for newer versions of the language";
diff --git a/pkgs/development/python-modules/pyuptimerobot/default.nix b/pkgs/development/python-modules/pyuptimerobot/default.nix
index 8b6af6dc5d921..918be59eaddf9 100644
--- a/pkgs/development/python-modules/pyuptimerobot/default.nix
+++ b/pkgs/development/python-modules/pyuptimerobot/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pytest-asyncio
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pytest-asyncio,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
       --replace 'version="main",' 'version="${version}",'
   '';
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   nativeCheckInputs = [
     aresponses
@@ -38,9 +37,7 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
-  pythonImportsCheck = [
-    "pyuptimerobot"
-  ];
+  pythonImportsCheck = [ "pyuptimerobot" ];
 
   meta = with lib; {
     description = "Python API wrapper for Uptime Robot";
diff --git a/pkgs/development/python-modules/pyusb/default.nix b/pkgs/development/python-modules/pyusb/default.nix
index 091ee1b5f4f48..c9fdbb623bebe 100644
--- a/pkgs/development/python-modules/pyusb/default.nix
+++ b/pkgs/development/python-modules/pyusb/default.nix
@@ -1,4 +1,11 @@
-{ lib, stdenv, fetchPypi, buildPythonPackage, libusb1, setuptools-scm }:
+{
+  lib,
+  stdenv,
+  fetchPypi,
+  buildPythonPackage,
+  libusb1,
+  setuptools-scm,
+}:
 
 buildPythonPackage rec {
   pname = "pyusb";
@@ -10,17 +17,14 @@ buildPythonPackage rec {
     sha256 = "a4cc7404a203144754164b8b40994e2849fde1cfff06b08492f12fff9d9de7b9";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   # Fix the USB backend library lookup
-  postPatch =
-    ''
-      libusb=${libusb1.out}/lib/libusb-1.0${stdenv.hostPlatform.extensions.sharedLibrary}
-      test -f $libusb || { echo "ERROR: $libusb doesn't exist, please update/fix this build expression."; exit 1; }
-      sed -i -e "s|find_library=None|find_library=lambda _:\"$libusb\"|" usb/backend/libusb1.py
-    '';
+  postPatch = ''
+    libusb=${libusb1.out}/lib/libusb-1.0${stdenv.hostPlatform.extensions.sharedLibrary}
+    test -f $libusb || { echo "ERROR: $libusb doesn't exist, please update/fix this build expression."; exit 1; }
+    sed -i -e "s|find_library=None|find_library=lambda _:\"$libusb\"|" usb/backend/libusb1.py
+  '';
 
   # No tests included
   doCheck = false;
@@ -28,7 +32,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "usb" ];
 
   meta = with lib; {
-    description = "Python USB access module (wraps libusb 1.0)";  # can use other backends
+    description = "Python USB access module (wraps libusb 1.0)"; # can use other backends
     homepage = "https://pyusb.github.io/pyusb/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bjornfor ];
diff --git a/pkgs/development/python-modules/pyuseragents/default.nix b/pkgs/development/python-modules/pyuseragents/default.nix
index 0bfae94e02752..f817a04222de0 100644
--- a/pkgs/development/python-modules/pyuseragents/default.nix
+++ b/pkgs/development/python-modules/pyuseragents/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyutil/default.nix b/pkgs/development/python-modules/pyutil/default.nix
index 91f5d0d89f894..a98538cc43eab 100644
--- a/pkgs/development/python-modules/pyutil/default.nix
+++ b/pkgs/development/python-modules/pyutil/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPyPy
-, mock
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, setuptools
-, simplejson
-, twisted
-, versioneer
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  mock,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
+  simplejson,
+  twisted,
+  versioneer,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    jsonutil = [
-      simplejson
-    ];
+    jsonutil = [ simplejson ];
     # Module not available
     # randcookie = [
     #   zbase32
@@ -49,9 +48,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "pyutil"
-  ];
+  pythonImportsCheck = [ "pyutil" ];
 
   disabledTests = lib.optionals (pythonAtLeast "3.12") [
     # https://github.com/tpltnt/pyutil/issues/10
@@ -74,5 +71,4 @@ buildPythonPackage rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ prusnak ];
   };
-
 }
diff --git a/pkgs/development/python-modules/pyutilib/default.nix b/pkgs/development/python-modules/pyutilib/default.nix
index ba1670a92645a..eb2905444fe82 100644
--- a/pkgs/development/python-modules/pyutilib/default.nix
+++ b/pkgs/development/python-modules/pyutilib/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+  six,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyuv/default.nix b/pkgs/development/python-modules/pyuv/default.nix
index 594e1d7b34e08..1437a87ff6f5a 100644
--- a/pkgs/development/python-modules/pyuv/default.nix
+++ b/pkgs/development/python-modules/pyuv/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonAtLeast
-, fetchFromGitHub
-, fetchpatch
-, libuv
+{
+  lib,
+  buildPythonPackage,
+  pythonAtLeast,
+  fetchFromGitHub,
+  fetchpatch,
+  libuv,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyvcd/default.nix b/pkgs/development/python-modules/pyvcd/default.nix
index 9f206dcda1bff..3b4c2db066360 100644
--- a/pkgs/development/python-modules/pyvcd/default.nix
+++ b/pkgs/development/python-modules/pyvcd/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools-scm
-, six
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools-scm,
+  six,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -29,6 +30,8 @@ buildPythonPackage rec {
     homepage = "https://github.com/SanDisk-Open-Source/pyvcd";
     changelog = "https://github.com/SanDisk-Open-Source/pyvcd/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
-    maintainers = with maintainers; [ sb0 emily ];
+    maintainers = with maintainers; [
+      sb0
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pyvera/default.nix b/pkgs/development/python-modules/pyvera/default.nix
index b43840b0790a1..7fbc696ec598e 100644
--- a/pkgs/development/python-modules/pyvera/default.nix
+++ b/pkgs/development/python-modules/pyvera/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-cov
-, pytest-asyncio
-, pytest-timeout
-, responses
-, pytestCheckHook
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-cov,
+  pytest-asyncio,
+  pytest-timeout,
+  responses,
+  pytestCheckHook,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyverilog/default.nix b/pkgs/development/python-modules/pyverilog/default.nix
index bc526604d87b1..ba591fa9f53bf 100644
--- a/pkgs/development/python-modules/pyverilog/default.nix
+++ b/pkgs/development/python-modules/pyverilog/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, jinja2
-, ply
-, verilog
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  jinja2,
+  ply,
+  verilog,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
       --replace "python_paths" "pythonpath"
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     homepage = "https://github.com/PyHDI/Pyverilog";
diff --git a/pkgs/development/python-modules/pyversasense/default.nix b/pkgs/development/python-modules/pyversasense/default.nix
index 908d9d37f7bad..d6328c4acf813 100644
--- a/pkgs/development/python-modules/pyversasense/default.nix
+++ b/pkgs/development/python-modules/pyversasense/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, asynctest
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  asynctest,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     sha256 = "vTaDEwImWDMInwti0Jj+j+RFEtXOOKtiH5wOMD6ZmJk=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   doCheck = pythonOlder "3.11"; # asynctest unsupported on python3.11
 
@@ -34,9 +33,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "tests/test.py"
-  ];
+  pytestFlagsArray = [ "tests/test.py" ];
 
   disabledTests = [
     # Tests are not properly mocking network requests
@@ -46,9 +43,7 @@ buildPythonPackage rec {
     "test_samples"
   ];
 
-  pythonImportsCheck = [
-    "pyversasense"
-  ];
+  pythonImportsCheck = [ "pyversasense" ];
 
   meta = with lib; {
     description = "Python library to communicate with the VersaSense API";
diff --git a/pkgs/development/python-modules/pyvesync/default.nix b/pkgs/development/python-modules/pyvesync/default.nix
index 62ea4229079e8..02ebd91c037eb 100644
--- a/pkgs/development/python-modules/pyvesync/default.nix
+++ b/pkgs/development/python-modules/pyvesync/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-ddtTtTAUpvS8DN1vKVN+CjnmYp20xyxHydwOaDRjWzo=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Test are not available (not in PyPI tarball and there are no GitHub releases)
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyvesync"
-  ];
+  pythonImportsCheck = [ "pyvesync" ];
 
   meta = with lib; {
     description = "Python library to manage Etekcity Devices and Levoit Air Purifier";
diff --git a/pkgs/development/python-modules/pyvex/default.nix b/pkgs/development/python-modules/pyvex/default.nix
index a3d62043d901e..53ea4ed0c94f0 100644
--- a/pkgs/development/python-modules/pyvex/default.nix
+++ b/pkgs/development/python-modules/pyvex/default.nix
@@ -1,29 +1,28 @@
-{ lib
-, stdenv
-, bitstring
-, buildPythonPackage
-, cffi
-, fetchPypi
-, pycparser
-, pythonOlder
-, setuptools
+{
+  lib,
+  stdenv,
+  bitstring,
+  buildPythonPackage,
+  cffi,
+  fetchPypi,
+  pycparser,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyvex";
-  version = "9.2.101";
+  version = "9.2.107";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zI86NYe0b9ppm9Zv6+zfB3UclhIm1TTqcC9vrBn3NR8=";
+    hash = "sha256-e8DZgHCVUcAEgo9IR7Ut/v580//oeH9l1MwGSe/RThw=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     bitstring
@@ -44,21 +43,23 @@ buildPythonPackage rec {
   preBuild = ''
     export CC=${stdenv.cc.targetPrefix}cc
     substituteInPlace pyvex_c/Makefile \
-      --replace 'AR=ar' 'AR=${stdenv.cc.targetPrefix}ar'
+      --replace-fail 'AR=ar' 'AR=${stdenv.cc.targetPrefix}ar'
   '';
 
   # No tests are available on PyPI, GitHub release has tests
   # Switch to GitHub release after all angr parts are present
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyvex"
-  ];
+  pythonImportsCheck = [ "pyvex" ];
 
   meta = with lib; {
     description = "Python interface to libVEX and VEX IR";
     homepage = "https://github.com/angr/pyvex";
-    license = with licenses; [ bsd2 gpl3Plus lgpl3Plus ];
+    license = with licenses; [
+      bsd2
+      gpl3Plus
+      lgpl3Plus
+    ];
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/pyvicare/default.nix b/pkgs/development/python-modules/pyvicare/default.nix
index 56f74a93b21e5..69edcefbb4a0c 100644
--- a/pkgs/development/python-modules/pyvicare/default.nix
+++ b/pkgs/development/python-modules/pyvicare/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, authlib
-, buildPythonPackage
-, fetchFromGitHub
-, pkce
-, pytestCheckHook
-, pythonOlder
-, simplejson
+{
+  lib,
+  authlib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pkce,
+  pytestCheckHook,
+  pythonOlder,
+  simplejson,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
     simplejson
   ];
 
-  pythonImportsCheck = [
-    "PyViCare"
-  ];
+  pythonImportsCheck = [ "PyViCare" ];
 
   meta = with lib; {
     description = "Python Library to access Viessmann ViCare API";
diff --git a/pkgs/development/python-modules/pyvips/default.nix b/pkgs/development/python-modules/pyvips/default.nix
index a3872cdb858ba..7fc07f20a61a6 100644
--- a/pkgs/development/python-modules/pyvips/default.nix
+++ b/pkgs/development/python-modules/pyvips/default.nix
@@ -1,14 +1,16 @@
-{ stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pytestCheckHook
-, glib
-, vips
-, cffi
-, pkgconfig  # from pythonPackages
-, pkg-config  # from pkgs
-, lib }:
+{
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pytestCheckHook,
+  glib,
+  vips,
+  cffi,
+  pkgconfig, # from pythonPackages
+  pkg-config, # from pkgs
+  lib,
+}:
 
 buildPythonPackage rec {
   pname = "pyvips";
@@ -24,9 +26,15 @@ buildPythonPackage rec {
     hash = "sha256-9S7h3bkm+QP78cpemYS7l3c8t+wXsJ5MUAP2T50R/Mc=";
   };
 
-  nativeBuildInputs = [ pkgconfig pkg-config ];
+  nativeBuildInputs = [
+    pkgconfig
+    pkg-config
+  ];
 
-  buildInputs = [ glib vips ];
+  buildInputs = [
+    glib
+    vips
+  ];
 
   propagatedBuildInputs = [ cffi ];
 
@@ -47,10 +55,13 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyvips" ];
 
   meta = with lib; {
-    description = "A python wrapper for libvips";
+    description = "Python wrapper for libvips";
     homepage = "https://github.com/libvips/pyvips";
     changelog = "https://github.com/libvips/pyvips/blob/v${version}/CHANGELOG.rst";
     license = licenses.mit;
-    maintainers = with maintainers; [ ccellado anthonyroussel ];
+    maintainers = with maintainers; [
+      ccellado
+      anthonyroussel
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pyvirtualdisplay/default.nix b/pkgs/development/python-modules/pyvirtualdisplay/default.nix
index b4d29851ef34f..0574c57063389 100644
--- a/pkgs/development/python-modules/pyvirtualdisplay/default.nix
+++ b/pkgs/development/python-modules/pyvirtualdisplay/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, easyprocess }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  easyprocess,
+}:
 
 buildPythonPackage rec {
   pname = "pyvirtualdisplay";
diff --git a/pkgs/development/python-modules/pyvis/default.nix b/pkgs/development/python-modules/pyvis/default.nix
index cb39d67192c9f..ae152c2286aca 100644
--- a/pkgs/development/python-modules/pyvis/default.nix
+++ b/pkgs/development/python-modules/pyvis/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, fetchFromGitHub
-, fetchpatch
-, buildPythonPackage
-, setuptools
-, networkx
-, jinja2
-, ipython
-, jsonpickle
-, pytestCheckHook
-, numpy
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  setuptools,
+  networkx,
+  jinja2,
+  ipython,
+  jsonpickle,
+  pytestCheckHook,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-eo9Mk2c0hrBarCrzwmkXha3Qt4Bl1qR7Lhl9EkUx96E=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   dependencies = [
     jinja2
diff --git a/pkgs/development/python-modules/pyvisa-py/default.nix b/pkgs/development/python-modules/pyvisa-py/default.nix
index d64213c2c540d..4a2b39a87ab21 100644
--- a/pkgs/development/python-modules/pyvisa-py/default.nix
+++ b/pkgs/development/python-modules/pyvisa-py/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, setuptools
-, setuptools-scm
-, gpib-ctypes
-, pyserial
-, pyusb
-, pyvisa
-, typing-extensions
-, psutil
-, zeroconf
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  setuptools,
+  setuptools-scm,
+  gpib-ctypes,
+  pyserial,
+  pyusb,
+  pyvisa,
+  typing-extensions,
+  psutil,
+  zeroconf,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -47,9 +48,7 @@ buildPythonPackage rec {
     # vicp = [ pyvicp zeroconf ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Module that implements the Virtual Instrument Software Architecture";
diff --git a/pkgs/development/python-modules/pyvisa-sim/default.nix b/pkgs/development/python-modules/pyvisa-sim/default.nix
index 9fcce19d6a202..69e61ea9d0342 100644
--- a/pkgs/development/python-modules/pyvisa-sim/default.nix
+++ b/pkgs/development/python-modules/pyvisa-sim/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, fetchPypi
-, pythonOlder
-, buildPythonPackage
-, pyvisa
-, pyyaml
-, stringparser
-, typing-extensions
-, pytestCheckHook
-, setuptools
-, setuptools-scm
-, wheel
+{
+  lib,
+  fetchPypi,
+  pythonOlder,
+  buildPythonPackage,
+  pyvisa,
+  pyyaml,
+  stringparser,
+  typing-extensions,
+  pytestCheckHook,
+  setuptools,
+  setuptools-scm,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -38,16 +39,12 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "pyvisa_sim" ];
 
   # should be fixed after 0.5.1, remove at next release
-  disabledTestPaths = [
-    "pyvisa_sim/testsuite/test_all.py"
-  ];
+  disabledTestPaths = [ "pyvisa_sim/testsuite/test_all.py" ];
 
   meta = with lib; {
     description = "Simulated backend for PyVISA implementing TCPIP, GPIB, RS232, and USB resources";
diff --git a/pkgs/development/python-modules/pyvisa/default.nix b/pkgs/development/python-modules/pyvisa/default.nix
index 3d017f8ad2e50..c70ec5302ff11 100644
--- a/pkgs/development/python-modules/pyvisa/default.nix
+++ b/pkgs/development/python-modules/pyvisa/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, setuptools-scm
-, setuptools
-, typing-extensions
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  setuptools-scm,
+  setuptools,
+  typing-extensions,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,18 +28,12 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ typing-extensions ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Test can't find cli tool bin path correctly
-  disabledTests = [
-    "test_visa_info"
-  ];
+  disabledTests = [ "test_visa_info" ];
 
   meta = with lib; {
     description = "Python package for support of the Virtual Instrument Software Architecture (VISA)";
diff --git a/pkgs/development/python-modules/pyvista/default.nix b/pkgs/development/python-modules/pyvista/default.nix
index e0bfb1246f52c..ee928182ccb45 100644
--- a/pkgs/development/python-modules/pyvista/default.nix
+++ b/pkgs/development/python-modules/pyvista/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, imageio
-, matplotlib
-, numpy
-, pillow
-, pooch
-, pythonOlder
-, scooby
-, setuptools
-, vtk
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  imageio,
+  matplotlib,
+  numpy,
+  pillow,
+  pooch,
+  pythonOlder,
+  scooby,
+  setuptools,
+  vtk,
 }:
 
 buildPythonPackage rec {
   pname = "pyvista";
-  version = "0.43.6";
+  version = "0.43.10";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,12 +24,10 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-EhhnX7r8yHynEVahMSB6LxCAquQcUF4cI0S4oW+IZ/Y=";
+    hash = "sha256-WSxr6HA86zSbgwWn3KRIjcbNCe9SUjaOjBHywIdMbjw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     imageio
@@ -43,9 +42,7 @@ buildPythonPackage rec {
   # Fatal Python error: Aborted
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyvista"
-  ];
+  pythonImportsCheck = [ "pyvista" ];
 
   meta = with lib; {
     description = "Easier Pythonic interface to VTK";
diff --git a/pkgs/development/python-modules/pyviz-comms/default.nix b/pkgs/development/python-modules/pyviz-comms/default.nix
index 4b36784949908..a83c270779656 100644
--- a/pkgs/development/python-modules/pyviz-comms/default.nix
+++ b/pkgs/development/python-modules/pyviz-comms/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-, param
-, panel
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  param,
+  panel,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyvizio/default.nix b/pkgs/development/python-modules/pyvizio/default.nix
index 930e6e77bfa92..72793ca72b92b 100644
--- a/pkgs/development/python-modules/pyvizio/default.nix
+++ b/pkgs/development/python-modules/pyvizio/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, click
-, fetchPypi
-, jsonpickle
-, requests
-, tabulate
-, xmltodict
-, zeroconf
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  click,
+  fetchPypi,
+  jsonpickle,
+  requests,
+  tabulate,
+  xmltodict,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyvlx/default.nix b/pkgs/development/python-modules/pyvlx/default.nix
index 263971e93321a..0bfb49ebc3833 100644
--- a/pkgs/development/python-modules/pyvlx/default.nix
+++ b/pkgs/development/python-modules/pyvlx/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, setuptools
-, typing-extensions
-, zeroconf
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  setuptools,
+  typing-extensions,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-J+oJQHsULrJQNdZqYsl2hufNubMwV1KtG10jZH0jbU4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pyyaml
@@ -34,13 +33,9 @@ buildPythonPackage rec {
     zeroconf
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyvlx"
-  ];
+  pythonImportsCheck = [ "pyvlx" ];
 
   meta = with lib; {
     description = "Python client to work with Velux units";
diff --git a/pkgs/development/python-modules/pyvmomi/default.nix b/pkgs/development/python-modules/pyvmomi/default.nix
index f395f88bf7dc5..c075df382106c 100644
--- a/pkgs/development/python-modules/pyvmomi/default.nix
+++ b/pkgs/development/python-modules/pyvmomi/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, lxml
-, requests
-, six
-, pyopenssl
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxml,
+  requests,
+  six,
+  pyopenssl,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyvo/default.nix b/pkgs/development/python-modules/pyvo/default.nix
index 6ebabd1b73405..f5f79271998c1 100644
--- a/pkgs/development/python-modules/pyvo/default.nix
+++ b/pkgs/development/python-modules/pyvo/default.nix
@@ -1,34 +1,36 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, astropy
-, pillow
-, pythonOlder
-, pytestCheckHook
-, pytest-astropy
-, requests
-, requests-mock
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  astropy,
+  pillow,
+  pythonOlder,
+  pytestCheckHook,
+  pytest-astropy,
+  requests,
+  requests-mock,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "pyvo";
-  version = "1.5.1";
-  format = "setuptools";
+  version = "1.5.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.8"; # according to setup.cfg
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ByCBD+e3ZrpT0Q6dnkuyO8lnwVGm85LiKmy/4NRTpjI=";
+    hash = "sha256-uKJMRNrOXGB7HZOv0CV9FfoQnx6GV3I0fqlJ7qAcj3E=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
+    setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     astropy
     requests
   ];
diff --git a/pkgs/development/python-modules/pyvolumio/default.nix b/pkgs/development/python-modules/pyvolumio/default.nix
index aac4f9c73a710..10a846948f24d 100644
--- a/pkgs/development/python-modules/pyvolumio/default.nix
+++ b/pkgs/development/python-modules/pyvolumio/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyvoro/default.nix b/pkgs/development/python-modules/pyvoro/default.nix
index 5c17554935d2e..403f61571b460 100644
--- a/pkgs/development/python-modules/pyvoro/default.nix
+++ b/pkgs/development/python-modules/pyvoro/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pywal/default.nix b/pkgs/development/python-modules/pywal/default.nix
index a37a52f146632..2a5ff3bd8e69f 100644
--- a/pkgs/development/python-modules/pywal/default.nix
+++ b/pkgs/development/python-modules/pywal/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, imagemagick, feh, isPy3k }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  imagemagick,
+  feh,
+  isPy3k,
+}:
 
 buildPythonPackage rec {
   pname = "pywal";
diff --git a/pkgs/development/python-modules/pywatchman/default.nix b/pkgs/development/python-modules/pywatchman/default.nix
index b4448ecdbe1d0..d0311c4fdb393 100644
--- a/pkgs/development/python-modules/pywatchman/default.nix
+++ b/pkgs/development/python-modules/pywatchman/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, watchman }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  watchman,
+}:
 
 buildPythonPackage rec {
   pname = "pywatchman";
@@ -23,5 +28,4 @@ buildPythonPackage rec {
     homepage = "https://facebook.github.io/watchman/";
     license = licenses.bsd3;
   };
-
 }
diff --git a/pkgs/development/python-modules/pywaterkotte/default.nix b/pkgs/development/python-modules/pywaterkotte/default.nix
index 43f276a2df825..04b7ebbe06f43 100644
--- a/pkgs/development/python-modules/pywaterkotte/default.nix
+++ b/pkgs/development/python-modules/pywaterkotte/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, pytestCheckHook
-, pythonOlder
-, requests
-, responses
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-zK0x6LyXPPNPA20Zq+S1B1q7ZWGxQmWf4JxEfjNkPQw=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     pytestCheckHook
     responses
   ];
 
-  pythonImportsCheck = [
-    "pywaterkotte"
-  ];
+  pythonImportsCheck = [ "pywaterkotte" ];
 
   meta = with lib; {
     description = "Library to communicate with Waterkotte heatpumps";
diff --git a/pkgs/development/python-modules/pywavefront/default.nix b/pkgs/development/python-modules/pywavefront/default.nix
index 0139f8209f371..534b5647c046d 100644
--- a/pkgs/development/python-modules/pywavefront/default.nix
+++ b/pkgs/development/python-modules/pywavefront/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pyglet
-, pytestCheckHook
-, mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pyglet,
+  pytestCheckHook,
+  mock,
 }:
 
 buildPythonPackage rec {
@@ -19,20 +20,15 @@ buildPythonPackage rec {
     hash = "sha256-ci40L2opJ+NYYtaAeX1Y5pzkdK+loFspTriX/xv4KR8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  passthru.optional-dependencies.visualization = [
-    pyglet
-  ];
+  passthru.optional-dependencies.visualization = [ pyglet ];
 
   nativeCheckInputs = [
     pytestCheckHook
     mock
   ];
 
-
   pythonImportsCheck = [ "pywavefront" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/pywavelets/default.nix b/pkgs/development/python-modules/pywavelets/default.nix
index af598a1439caf..149b9fb57fd83 100644
--- a/pkgs/development/python-modules/pywavelets/default.nix
+++ b/pkgs/development/python-modules/pywavelets/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, meson-python
-, cython
-, pytestCheckHook
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  meson-python,
+  cython,
+  pytestCheckHook,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -56,5 +57,4 @@ buildPythonPackage rec {
     changelog = "https://github.com/PyWavelets/pywt/releases/tag/v${version}";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/pywayland/default.nix b/pkgs/development/python-modules/pywayland/default.nix
index 97e75684e8f4e..2efb46513e1cc 100644
--- a/pkgs/development/python-modules/pywayland/default.nix
+++ b/pkgs/development/python-modules/pywayland/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, cffi
-, pkg-config
-, wayland
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  cffi,
+  pkg-config,
+  wayland,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pywbem/default.nix b/pkgs/development/python-modules/pywbem/default.nix
index c298c1e51209e..f61baecd5e850 100644
--- a/pkgs/development/python-modules/pywbem/default.nix
+++ b/pkgs/development/python-modules/pywbem/default.nix
@@ -1,37 +1,38 @@
-{ lib
-, buildPythonPackage
-, decorator
-, fetchPypi
-, formencode
-, httpretty
-, libxml2
-, lxml
-, mock
-, nocasedict
-, nocaselist
-, pbr
-, ply
-, pytest
-, pythonOlder
-, pytz
-, pyyaml
-, requests
-, requests-mock
-, six
-, testfixtures
-, yamlloader
+{
+  lib,
+  buildPythonPackage,
+  decorator,
+  fetchPypi,
+  formencode,
+  httpretty,
+  libxml2,
+  lxml,
+  mock,
+  nocasedict,
+  nocaselist,
+  pbr,
+  ply,
+  pytest,
+  pythonOlder,
+  pytz,
+  pyyaml,
+  requests,
+  requests-mock,
+  six,
+  testfixtures,
+  yamlloader,
 }:
 
 buildPythonPackage rec {
   pname = "pywbem";
-  version = "1.7.1";
+  version = "1.7.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-6jx5H4FtM93JToXQwq9ihiPfMw7nX4KwFFQzHkAgnP4=";
+    hash = "sha256-3Dt4WEABf1/LY4HFZoJZjOu/yEUYUXaPheIxioTga2g=";
   };
 
   propagatedBuildInputs = [
@@ -58,9 +59,7 @@ buildPythonPackage rec {
     testfixtures
   ];
 
-  pythonImportsCheck = [
-    "pywbem"
-  ];
+  pythonImportsCheck = [ "pywbem" ];
 
   meta = with lib; {
     description = "Support for the WBEM standard for systems management";
diff --git a/pkgs/development/python-modules/pyweatherflowrest/default.nix b/pkgs/development/python-modules/pyweatherflowrest/default.nix
index 2d04fe3feb21c..3ae2b78132efd 100644
--- a/pkgs/development/python-modules/pyweatherflowrest/default.nix
+++ b/pkgs/development/python-modules/pyweatherflowrest/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,14 +21,9 @@ buildPythonPackage rec {
     hash = "sha256-l1V3HgzqnnoY6sWHwfgBtcIR782RwKhekY2qOLrUMNY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
@@ -37,9 +33,7 @@ buildPythonPackage rec {
   # Module has no tests. test.py is a demo script
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyweatherflowrest"
-  ];
+  pythonImportsCheck = [ "pyweatherflowrest" ];
 
   meta = with lib; {
     description = "Python module to get data from WeatherFlow Weather Stations";
diff --git a/pkgs/development/python-modules/pyweatherflowudp/default.nix b/pkgs/development/python-modules/pyweatherflowudp/default.nix
index 34674635a4185..a39c1d3562942 100644
--- a/pkgs/development/python-modules/pyweatherflowudp/default.nix
+++ b/pkgs/development/python-modules/pyweatherflowudp/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pint
-, poetry-core
-, psychrolib
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pint,
+  poetry-core,
+  psychrolib,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-aTwGFYTtd07BsWFaFc7ns+8oh2AxTUfRFSu81Zv5OoA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     pint
@@ -37,9 +36,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pyweatherflowudp"
-  ];
+  pythonImportsCheck = [ "pyweatherflowudp" ];
 
   disabledTests = [
     # Tests require network access
@@ -59,4 +56,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ fab ];
   };
 }
-
diff --git a/pkgs/development/python-modules/pywebpush/default.nix b/pkgs/development/python-modules/pywebpush/default.nix
index ebb3313b20c52..cc00679867f31 100644
--- a/pkgs/development/python-modules/pywebpush/default.nix
+++ b/pkgs/development/python-modules/pywebpush/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, cryptography
-, fetchPypi
-, http-ece
-, mock
-, py-vapid
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
-, six
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  http-ece,
+  mock,
+  py-vapid,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-A8zD6XW2A3S3Y0xJVZVha+Ujvyx9oNl26E/amsjGMwE=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     aiohttp
@@ -43,9 +42,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pywebpush"
-  ];
+  pythonImportsCheck = [ "pywebpush" ];
 
   meta = with lib; {
     description = "Webpush Data encryption library for Python";
diff --git a/pkgs/development/python-modules/pywebview/default.nix b/pkgs/development/python-modules/pywebview/default.nix
index b2d8322752211..db508d3e5ef92 100644
--- a/pkgs/development/python-modules/pywebview/default.nix
+++ b/pkgs/development/python-modules/pywebview/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools-scm
-, bottle
-, importlib-resources
-, proxy-tools
-, pygobject3
-, pyqtwebengine
-, pytest
-, pythonOlder
-, qt5
-, qtpy
-, six
-, xvfb-run
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools-scm,
+  bottle,
+  importlib-resources,
+  proxy-tools,
+  pygobject3,
+  pyqtwebengine,
+  pytest,
+  pythonOlder,
+  qt5,
+  qtpy,
+  six,
+  xvfb-run,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
     pyqtwebengine
     proxy-tools
     six
-  ] ++ lib.optionals (pythonOlder "3.7") [
-    importlib-resources
-  ];
+  ] ++ lib.optionals (pythonOlder "3.7") [ importlib-resources ];
 
   nativeCheckInputs = [
     pygobject3
@@ -68,9 +67,7 @@ buildPythonPackage rec {
     popd
   '';
 
-  pythonImportsCheck = [
-    "webview"
-  ];
+  pythonImportsCheck = [ "webview" ];
 
   meta = with lib; {
     description = "Lightweight cross-platform wrapper around a webview";
diff --git a/pkgs/development/python-modules/pywemo/default.nix b/pkgs/development/python-modules/pywemo/default.nix
index c0e69285d15ad..4734e95229254 100644
--- a/pkgs/development/python-modules/pywemo/default.nix
+++ b/pkgs/development/python-modules/pywemo/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hypothesis
-, ifaddr
-, lxml
-, poetry-core
-, pytest-vcr
-, pytestCheckHook
-, pythonOlder
-, requests
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hypothesis,
+  ifaddr,
+  lxml,
+  poetry-core,
+  pytest-vcr,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-XpCRrCJYHv1so5/aHoGrtkgp3RX1NUKPUawJqK/FaG0=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     ifaddr
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "pywemo"
-  ];
+  pythonImportsCheck = [ "pywemo" ];
 
   meta = with lib; {
     description = "Python module to discover and control WeMo devices";
diff --git a/pkgs/development/python-modules/pywerview/default.nix b/pkgs/development/python-modules/pywerview/default.nix
index e3fb6770f3656..edd1534e6f667 100644
--- a/pkgs/development/python-modules/pywerview/default.nix
+++ b/pkgs/development/python-modules/pywerview/default.nix
@@ -1,34 +1,33 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchFromGitHub
-, gssapi
-, impacket
-, ldap3
-, lxml
-, pyasn1
-, pycryptodome
-, pythonOlder
-, setuptools
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gssapi,
+  impacket,
+  ldap3,
+  lxml,
+  pyasn1,
+  pycryptodome,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pywerview";
-  version = "0.6";
+  version = "0.6.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "the-useless-one";
-    repo ="pywerview";
+    repo = "pywerview";
     rev = "refs/tags/v${version}";
-    hash = "sha256-WZE6qWq9v4A78YELMEcbgyufBRrVFRTqlhGmknpKn1Y=";
+    hash = "sha256-hsilBqk73txYIlgRtbn/l/kWORMGft7ne5BffchDLPc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     beautifulsoup4
@@ -43,9 +42,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pywerview"
-  ];
+  pythonImportsCheck = [ "pywerview" ];
 
   meta = with lib; {
     description = "Module for PowerSploit's PowerView support";
diff --git a/pkgs/development/python-modules/pywfa/default.nix b/pkgs/development/python-modules/pywfa/default.nix
index 2aca36a07da71..1741cbb9bf717 100644
--- a/pkgs/development/python-modules/pywfa/default.nix
+++ b/pkgs/development/python-modules/pywfa/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, cython
-, setuptools
-, wheel
-, pysam
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  cython,
+  setuptools,
+  wheel,
+  pysam,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pywilight/default.nix b/pkgs/development/python-modules/pywilight/default.nix
index e25f24d403347..1c8d28858c75f 100644
--- a/pkgs/development/python-modules/pywilight/default.nix
+++ b/pkgs/development/python-modules/pywilight/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, ifaddr
-, requests
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  ifaddr,
+  requests,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pywilight"
-  ];
+  pythonImportsCheck = [ "pywilight" ];
 
   meta = with lib; {
     description = "Python API for WiLight device";
diff --git a/pkgs/development/python-modules/pywinrm/default.nix b/pkgs/development/python-modules/pywinrm/default.nix
index 2455b476a4d95..f35c2757e4e67 100644
--- a/pkgs/development/python-modules/pywinrm/default.nix
+++ b/pkgs/development/python-modules/pywinrm/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, mock
-, pytestCheckHook
-, requests
-, requests-ntlm
-, six
-, xmltodict
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  mock,
+  pytestCheckHook,
+  requests,
+  requests-ntlm,
+  six,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
@@ -34,18 +35,17 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "winrm"
-  ];
+  pythonImportsCheck = [ "winrm" ];
 
-  pytestFlagsArray = [
-    "winrm/tests/"
-  ];
+  pytestFlagsArray = [ "winrm/tests/" ];
 
   meta = with lib; {
     description = "Python library for Windows Remote Management";
     homepage = "https://github.com/diyan/pywinrm";
     license = licenses.mit;
-    maintainers = with maintainers; [ elasticdog kamadorueda ];
+    maintainers = with maintainers; [
+      elasticdog
+      kamadorueda
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/pywizlight/default.nix b/pkgs/development/python-modules/pywizlight/default.nix
index 860ce91d71446..3a925663da96e 100644
--- a/pkgs/development/python-modules/pywizlight/default.nix
+++ b/pkgs/development/python-modules/pywizlight/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-IkuAYEg5nuUT6zxmuJe6afp4MVWf0+HAnEoAdOrdTvQ=";
   };
 
-  propagatedBuildInputs = [
-    click
-  ];
+  propagatedBuildInputs = [ click ];
 
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "--asyncio-mode=auto"
-  ];
+  pytestFlagsArray = [ "--asyncio-mode=auto" ];
 
   disabledTests = [
     # Tests requires network features (e. g., discovery testing)
@@ -43,9 +40,7 @@ buildPythonPackage rec {
     "test_error_PilotBuilder_cold_white_lower"
   ];
 
-  pythonImportsCheck = [
-    "pywizlight"
-  ];
+  pythonImportsCheck = [ "pywizlight" ];
 
   meta = with lib; {
     description = "Python connector for WiZ light bulbs";
diff --git a/pkgs/development/python-modules/pywlroots/default.nix b/pkgs/development/python-modules/pywlroots/default.nix
index ec39364573913..2e2d887b4c792 100644
--- a/pkgs/development/python-modules/pywlroots/default.nix
+++ b/pkgs/development/python-modules/pywlroots/default.nix
@@ -1,39 +1,53 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, cffi
-, pkg-config
-, libxkbcommon
-, libinput
-, pixman
-, pythonOlder
-, udev
-, wlroots
-, wayland
-, pywayland
-, xkbcommon
-, xorg
-, pytestCheckHook
-, qtile
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  cffi,
+  pkg-config,
+  libxkbcommon,
+  libinput,
+  pixman,
+  pythonOlder,
+  udev,
+  wlroots,
+  wayland,
+  pywayland,
+  xkbcommon,
+  xorg,
+  pytestCheckHook,
+  qtile,
 }:
 
 buildPythonPackage rec {
   pname = "pywlroots";
-  version = "0.16.7";
+  version = "0.17.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zfjcXQCXysG+JMw00YES/GQk/yjHH9kCksb9SlZt9wo=";
+    hash = "sha256-cssr4UBIwMvInM8bV4YwE6mXf9USSMMAzMcgAefEPbs=";
   };
 
   nativeBuildInputs = [ pkg-config ];
   propagatedNativeBuildInputs = [ cffi ];
-  buildInputs = [ libinput libxkbcommon pixman xorg.libxcb xorg.xcbutilwm udev wayland wlroots ];
-  propagatedBuildInputs = [ cffi pywayland xkbcommon ];
+  buildInputs = [
+    libinput
+    libxkbcommon
+    pixman
+    xorg.libxcb
+    xorg.xcbutilwm
+    udev
+    wayland
+    wlroots
+  ];
+  propagatedBuildInputs = [
+    cffi
+    pywayland
+    xkbcommon
+  ];
   nativeCheckInputs = [ pytestCheckHook ];
 
   postBuild = ''
@@ -42,7 +56,9 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "wlroots" ];
 
-  passthru.tests = { inherit qtile; };
+  passthru.tests = {
+    inherit qtile;
+  };
 
   meta = with lib; {
     homepage = "https://github.com/flacjacket/pywlroots";
diff --git a/pkgs/development/python-modules/pyworld/default.nix b/pkgs/development/python-modules/pyworld/default.nix
index cf1547c8cab6f..76addd25795e6 100644
--- a/pkgs/development/python-modules/pyworld/default.nix
+++ b/pkgs/development/python-modules/pyworld/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, cython
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  cython,
 }:
 
 buildPythonPackage rec {
@@ -15,13 +16,9 @@ buildPythonPackage rec {
     hash = "sha256-EGxw7np9jJukiNgCLyAzcGkppA8CZCVrjofaWquYMDo=";
   };
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   pythonImportsCheck = [ "pyworld" ];
 
diff --git a/pkgs/development/python-modules/pyws66i/default.nix b/pkgs/development/python-modules/pyws66i/default.nix
index 6931a0531cedf..47df292892020 100644
--- a/pkgs/development/python-modules/pyws66i/default.nix
+++ b/pkgs/development/python-modules/pyws66i/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-NTL2+xLqSNsz4YdUTwr0nFjhm1NNgB8qDnWSoE2sizY=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyws66i"
-  ];
+  pythonImportsCheck = [ "pyws66i" ];
 
   meta = with lib; {
     description = "Library to interface with WS66i 6-zone amplifier";
diff --git a/pkgs/development/python-modules/pyx/default.nix b/pkgs/development/python-modules/pyx/default.nix
index 393f631233228..0cb5b39462e6b 100644
--- a/pkgs/development/python-modules/pyx/default.nix
+++ b/pkgs/development/python-modules/pyx/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyxattr/default.nix b/pkgs/development/python-modules/pyxattr/default.nix
index ebb922c8d97a5..67fd9778ebb3b 100644
--- a/pkgs/development/python-modules/pyxattr/default.nix
+++ b/pkgs/development/python-modules/pyxattr/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, pkgs
-, fetchPypi
-, buildPythonPackage
+{
+  lib,
+  pkgs,
+  fetchPypi,
+  buildPythonPackage,
 }:
 
 buildPythonPackage rec {
-    pname = "pyxattr";
-    version = "0.8.1";
-    format = "setuptools";
+  pname = "pyxattr";
+  version = "0.8.1";
+  format = "setuptools";
 
-    src = fetchPypi {
-      inherit pname version;
-      hash = "sha256-SMV47PjqC9Q1GxdSRw4wGpCjdhx8IfAPlT3PbW+m7lo=";
-    };
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-SMV47PjqC9Q1GxdSRw4wGpCjdhx8IfAPlT3PbW+m7lo=";
+  };
 
-    # IOError: [Errno 95] Operation not supported (expected)
-    doCheck = false;
+  # IOError: [Errno 95] Operation not supported (expected)
+  doCheck = false;
 
-    buildInputs = with pkgs; [ attr ];
+  buildInputs = with pkgs; [ attr ];
 
-    meta = with lib; {
-      description = "A Python extension module which gives access to the extended attributes for filesystem objects available in some operating systems";
-      license = licenses.lgpl21Plus;
-      inherit (pkgs.attr.meta) platforms;
-    };
+  meta = with lib; {
+    description = "Python extension module which gives access to the extended attributes for filesystem objects available in some operating systems";
+    license = licenses.lgpl21Plus;
+    inherit (pkgs.attr.meta) platforms;
+  };
 }
diff --git a/pkgs/development/python-modules/pyxbe/default.nix b/pkgs/development/python-modules/pyxbe/default.nix
index 3442d5f9848ef..7fc137cdaf1d4 100644
--- a/pkgs/development/python-modules/pyxbe/default.nix
+++ b/pkgs/development/python-modules/pyxbe/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-iLzGGgizUbaEG1xrNq4WDaWrGtcaLwAYgn4NGYiSDBo=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Update location for run with pytest
   preCheck = ''
@@ -29,9 +28,7 @@ buildPythonPackage rec {
       --replace '"xbefiles"' '"tests/xbefiles"'
   '';
 
-  pythonImportsCheck = [
-    "xbe"
-  ];
+  pythonImportsCheck = [ "xbe" ];
 
   meta = with lib; {
     description = "Library to work with XBE files";
diff --git a/pkgs/development/python-modules/pyxdg/default.nix b/pkgs/development/python-modules/pyxdg/default.nix
index a5ef39c2f69a6..b7ec762f7d6b5 100644
--- a/pkgs/development/python-modules/pyxdg/default.nix
+++ b/pkgs/development/python-modules/pyxdg/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitLab
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitLab,
 }:
 
 buildPythonPackage rec {
@@ -8,7 +9,7 @@ buildPythonPackage rec {
   version = "0.28";
   format = "setuptools";
 
-  src =  fetchFromGitLab {
+  src = fetchFromGitLab {
     domain = "gitlab.freedesktop.org";
     owner = "xdg";
     repo = pname;
diff --git a/pkgs/development/python-modules/pyxeoma/default.nix b/pkgs/development/python-modules/pyxeoma/default.nix
index 2036440a4699b..18199146a9210 100644
--- a/pkgs/development/python-modules/pyxeoma/default.nix
+++ b/pkgs/development/python-modules/pyxeoma/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyxiaomigateway/default.nix b/pkgs/development/python-modules/pyxiaomigateway/default.nix
index dde2e8df94ae3..c42d7f055c8c2 100644
--- a/pkgs/development/python-modules/pyxiaomigateway/default.nix
+++ b/pkgs/development/python-modules/pyxiaomigateway/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cryptography
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cryptography,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyxl3/default.nix b/pkgs/development/python-modules/pyxl3/default.nix
index e6f940e0272f0..04d5ef2b5b969 100644
--- a/pkgs/development/python-modules/pyxl3/default.nix
+++ b/pkgs/development/python-modules/pyxl3/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, isPy27
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  isPy27,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/pyxlsb/default.nix b/pkgs/development/python-modules/pyxlsb/default.nix
index df000db7e25df..36e33930d47d4 100644
--- a/pkgs/development/python-modules/pyxlsb/default.nix
+++ b/pkgs/development/python-modules/pyxlsb/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -21,6 +22,5 @@ buildPythonPackage rec {
     description = "Excel 2007-2010 Binary Workbook (xlsb) parser";
     homepage = "https://github.com/willtrnr/pyxlsb";
     license = licenses.lgpl3Plus;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/pyxnat/default.nix b/pkgs/development/python-modules/pyxnat/default.nix
index 6fc74602a8a85..b6f0944cfa5ac 100644
--- a/pkgs/development/python-modules/pyxnat/default.nix
+++ b/pkgs/development/python-modules/pyxnat/default.nix
@@ -1,20 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, lxml
-, matplotlib
-, networkx
-, pandas
-, requests
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  lxml,
+  matplotlib,
+  networkx,
+  pandas,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "pyxnat";
-  version = "1.6";
-  format = "setuptools";
+  version = "1.6.2";
+  pyproject = true;
+
   disabled = pythonOlder "3.8";
 
   # PyPI dist missing test configuration files:
@@ -22,21 +24,19 @@ buildPythonPackage rec {
     owner = "pyxnat";
     repo = "pyxnat";
     rev = "refs/tags/${version}";
-    hash = "sha256-QejYisvQFN7CsDOx9wAgTHmRZcSEqgIr8twG4XucfZ4=";
+    hash = "sha256-21nTIYbIYlFWNJTxqsuijamqRunpdc7/VBawvrWadWI=";
   };
 
+  build-system = [ setuptools ];
+
   propagatedBuildInputs = [
     lxml
     requests
-    six
   ];
 
-  # future is not used, and pathlib is installed part of python38+
-  # w/o an external package
+  # pathlib is installed part of python38+ w/o an external package
   prePatch = ''
-    substituteInPlace setup.py \
-      --replace "pathlib>=1.0" "" \
-      --replace "future>=0.16" ""
+    substituteInPlace setup.py --replace-fail "pathlib>=1.0" ""
     sed -i '/--cov/d' setup.cfg
   '';
 
@@ -51,15 +51,24 @@ buildPythonPackage rec {
   '';
   pytestFlagsArray = [ "pyxnat" ];
   disabledTestPaths = [
-    # try to access network even though PYXNAT_SKIP_NETWORK_TESTS is set:
+    # require a running local XNAT instance e.g. in a docker container:
+    "pyxnat/tests/attributes_test.py"
+    "pyxnat/tests/custom_variables_test.py"
+    "pyxnat/tests/interfaces_test.py"
     "pyxnat/tests/pipelines_test.py"
+    "pyxnat/tests/provenance_test.py"
+    "pyxnat/tests/prearchive_test.py"
+    "pyxnat/tests/repr_test.py"
+    "pyxnat/tests/resources_test.py"
     "pyxnat/tests/search_test.py"
+    "pyxnat/tests/sessionmirror_test.py"
+    "pyxnat/tests/test_resource_functions.py"
     "pyxnat/tests/user_and_project_management_test.py"
   ];
   disabledTests = [
     # try to access network even though PYXNAT_SKIP_NETWORK_TESTS is set:
-    "test_ashs_volumes"
     "test_inspector_structure"
+    "test_project_manager"
   ];
 
   pythonImportsCheck = [ "pyxnat" ];
diff --git a/pkgs/development/python-modules/pyyaml-env-tag/default.nix b/pkgs/development/python-modules/pyyaml-env-tag/default.nix
index 71488c1bb5eb7..8167c85c6534f 100644
--- a/pkgs/development/python-modules/pyyaml-env-tag/default.nix
+++ b/pkgs/development/python-modules/pyyaml-env-tag/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pyyaml
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pyyaml,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     sha256 = "1nsva88jsmwn0cb9jnrfiz4dvs9xakkpgfii7g1xwkx1pmsjc2bh";
   };
 
-  propagatedBuildInputs = [
-    pyyaml
-  ];
+  propagatedBuildInputs = [ pyyaml ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "yaml_env_tag" ];
 
diff --git a/pkgs/development/python-modules/pyyaml-include/default.nix b/pkgs/development/python-modules/pyyaml-include/default.nix
index 3b5b9faeec9ef..317ce298df951 100644
--- a/pkgs/development/python-modules/pyyaml-include/default.nix
+++ b/pkgs/development/python-modules/pyyaml-include/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pyyaml
-, setuptools
-, setuptools-scm
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pyyaml,
+  setuptools,
+  setuptools-scm,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    pyyaml
-  ];
+  propagatedBuildInputs = [ pyyaml ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "yamlinclude" ];
 
diff --git a/pkgs/development/python-modules/pyyaml/default.nix b/pkgs/development/python-modules/pyyaml/default.nix
index ce562e48ce549..7e81354ceae0b 100644
--- a/pkgs/development/python-modules/pyyaml/default.nix
+++ b/pkgs/development/python-modules/pyyaml/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, cython_0
-, setuptools
-, libyaml
-, python
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  cython_0,
+  setuptools,
+  libyaml,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -39,7 +40,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "yaml" ];
 
   meta = with lib; {
-    description = "The next generation YAML parser and emitter for Python";
+    description = "Next generation YAML parser and emitter for Python";
     homepage = "https://github.com/yaml/pyyaml";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/pyyardian/default.nix b/pkgs/development/python-modules/pyyardian/default.nix
index 0216d562faea7..f0c76c798bc05 100644
--- a/pkgs/development/python-modules/pyyardian/default.nix
+++ b/pkgs/development/python-modules/pyyardian/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pythonOlder
-, wheel
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pythonOlder,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -26,16 +27,12 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Tests require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyyardian"
-  ];
+  pythonImportsCheck = [ "pyyardian" ];
 
   meta = with lib; {
     description = "Module for interacting with the Yardian irrigation controller";
diff --git a/pkgs/development/python-modules/pyzabbix/default.nix b/pkgs/development/python-modules/pyzabbix/default.nix
index ae695f6f86846..1dd570d0660fa 100644
--- a/pkgs/development/python-modules/pyzabbix/default.nix
+++ b/pkgs/development/python-modules/pyzabbix/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, packaging
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  packaging,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-2yCbxPUlbTrtjD9eKmkw0fKnjiwPzmjIo5vKGv4aerU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     packaging
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Tests require a running Zabbix instance
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pyzabbix"
-  ];
+  pythonImportsCheck = [ "pyzabbix" ];
 
   meta = with lib; {
     description = "Module to interact with the Zabbix API";
diff --git a/pkgs/development/python-modules/pyzbar/default.nix b/pkgs/development/python-modules/pyzbar/default.nix
index 334db791c3b7c..3a5c0b6ff36f7 100644
--- a/pkgs/development/python-modules/pyzbar/default.nix
+++ b/pkgs/development/python-modules/pyzbar/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, pillow
-, zbar
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  pillow,
+  zbar,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,7 +23,10 @@ buildPythonPackage rec {
 
   buildInputs = [ zbar ];
 
-  propagatedBuildInputs = [ pillow numpy ];
+  propagatedBuildInputs = [
+    pillow
+    numpy
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
@@ -45,7 +49,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "pyzbar" ];
 
   meta = with lib; {
-    description = "Read one-dimensional barcodes and QR codes from Python using the zbar library.";
+    description = "Read one-dimensional barcodes and QR codes from Python using the zbar library";
     homepage = "https://github.com/NaturalHistoryMuseum/pyzbar";
     license = licenses.mit;
     maintainers = with maintainers; [ gador ];
diff --git a/pkgs/development/python-modules/pyzerproc/default.nix b/pkgs/development/python-modules/pyzerproc/default.nix
index 6270b26bb7189..5245b0205f374 100644
--- a/pkgs/development/python-modules/pyzerproc/default.nix
+++ b/pkgs/development/python-modules/pyzerproc/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, bleak
-, click
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytest-mock
-, pythonAtLeast
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  bleak,
+  click,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytest-mock,
+  pythonAtLeast,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -44,9 +45,7 @@ buildPythonPackage rec {
     "tests/test_light.py"
   ];
 
-  pythonImportsCheck = [
-    "pyzerproc"
-  ];
+  pythonImportsCheck = [ "pyzerproc" ];
 
   meta = with lib; {
     description = "Python library to control Zerproc Bluetooth LED smart string lights";
diff --git a/pkgs/development/python-modules/pyzipper/default.nix b/pkgs/development/python-modules/pyzipper/default.nix
index 5aa583228b49a..8112958b10c35 100644
--- a/pkgs/development/python-modules/pyzipper/default.nix
+++ b/pkgs/development/python-modules/pyzipper/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, pycryptodomex
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  pycryptodomex,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,21 +24,13 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    pycryptodomex
-  ];
+  propagatedBuildInputs = [ pycryptodomex ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "pyzipper"
-  ];
+  pythonImportsCheck = [ "pyzipper" ];
 
   disabledTests = [
     # Tests are parsing CLI output
diff --git a/pkgs/development/python-modules/pyzmq/default.nix b/pkgs/development/python-modules/pyzmq/default.nix
index 51429d535df4a..f927515894c37 100644
--- a/pkgs/development/python-modules/pyzmq/default.nix
+++ b/pkgs/development/python-modules/pyzmq/default.nix
@@ -1,55 +1,52 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPyPy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
 
-# build-system
-, cython
-, setuptools
-, setuptools-scm
-, packaging
-, cffi
+  # build-system
+  cffi,
+  cython,
+  cmake,
+  ninja,
+  packaging,
+  pathspec,
+  scikit-build-core,
 
-# dependencies
-
-, py
-, pytestCheckHook
-, python
-, pythonOlder
-, tornado
-, zeromq
-, pytest-asyncio
+  # checks
+  pytestCheckHook,
+  python,
+  pythonOlder,
+  tornado,
+  zeromq,
+  pytest-asyncio,
 }:
 
 buildPythonPackage rec {
   pname = "pyzmq";
-  version = "25.1.2";
+  version = "26.0.3";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-k/GqMR6LuRLjTwBM8YZAek6Q7sTw7MDv0mBWv37aAiY=";
+    hash = "sha256-26fZ8uBH36K8o7AfT4SqUkZyUgPWKE43kPLKFfumtAo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-    setuptools-scm
+  build-system = [
+    cmake
+    ninja
     packaging
-  ] ++ (if isPyPy then [
-    cffi
-  ] else [
-    cython
-  ]);
+    pathspec
+    scikit-build-core
+  ] ++ (if isPyPy then [ cffi ] else [ cython ]);
 
-  buildInputs = [
-    zeromq
-  ];
+  dontUseCmakeConfigure = true;
 
-  propagatedBuildInputs = lib.optionals isPyPy [
-    cffi
-  ];
+  buildInputs = [ zeromq ];
+
+  dependencies = lib.optionals isPyPy [ cffi ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -57,9 +54,7 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
-  pythonImportsCheck = [
-    "zmq"
-  ];
+  pythonImportsCheck = [ "zmq" ];
 
   pytestFlagsArray = [
     "$out/${python.sitePackages}/zmq/tests/" # Folder with tests
@@ -89,7 +84,10 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Python bindings for ØMQ";
     homepage = "https://pyzmq.readthedocs.io/";
-    license = with licenses; [ bsd3 /* or */ lgpl3Only ];
+    license = with licenses; [
+      bsd3 # or
+      lgpl3Only
+    ];
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/pyzufall/default.nix b/pkgs/development/python-modules/pyzufall/default.nix
deleted file mode 100644
index 71418c1607d02..0000000000000
--- a/pkgs/development/python-modules/pyzufall/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ lib, fetchPypi, python, buildPythonPackage, nose, future, coverage }:
-
-buildPythonPackage rec {
-  pname = "pyzufall";
-  version = "0.13.2";
-
-  src = fetchPypi {
-    pname = "PyZufall";
-    inherit version;
-    sha256 = "1jffhi20m82fdf78bjhncbdxkfzcskrlipxlrqq9741xdvrn14b5";
-  };
-
-  # disable tests due to problem with nose
-  # https://github.com/nose-devs/nose/issues/1037
-  doCheck = false;
-
-  nativeCheckInputs = [ nose coverage ];
-  propagatedBuildInputs = [ future ];
-
-  checkPhase = ''
-    ${python.interpreter} setup.py nosetests
-  '';
-
-  meta = with lib; {
-    homepage = "https://pyzufall.readthedocs.io/de/latest/";
-    description = "Library for generating random data and sentences in german language";
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ davidak ];
-  };
-}
diff --git a/pkgs/development/python-modules/qasync/default.nix b/pkgs/development/python-modules/qasync/default.nix
index d8eb5b4c7c694..58451552bd3f6 100644
--- a/pkgs/development/python-modules/qasync/default.nix
+++ b/pkgs/development/python-modules/qasync/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyqt5
-, pytestCheckHook
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyqt5,
+  pytestCheckHook,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "qasync" ];
 
-  disabledTestPaths = [
-    "tests/test_qeventloop.py"
-  ];
+  disabledTestPaths = [ "tests/test_qeventloop.py" ];
 
   meta = {
     description = "Allows coroutines to be used in PyQt/PySide applications by providing an implementation of the PEP 3156 event-loop";
diff --git a/pkgs/development/python-modules/qbittorrent-api/default.nix b/pkgs/development/python-modules/qbittorrent-api/default.nix
index c2087c3f52b15..58043ccccd51b 100644
--- a/pkgs/development/python-modules/qbittorrent-api/default.nix
+++ b/pkgs/development/python-modules/qbittorrent-api/default.nix
@@ -1,21 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
-, urllib3
-, packaging
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  urllib3,
+  packaging,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "qbittorrent-api";
-  version = "2024.3.60";
+  version = "2024.5.63";
   pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-gnT19BKyPqzcRK1aKsC97NxktR4aqPd3LOlVo9/1gJY=";
+    pname = "qbittorrent_api";
+    inherit version;
+    hash = "sha256-zTAS8EL7lOnVIcQGttxSJgDv0YFNSy08kAxoEOn8viw=";
   };
 
   propagatedBuildInputs = [
@@ -32,9 +34,7 @@ buildPythonPackage rec {
   # Tests require internet access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "qbittorrentapi"
-  ];
+  pythonImportsCheck = [ "qbittorrentapi" ];
 
   meta = with lib; {
     description = "Python client implementation for qBittorrent's Web API";
diff --git a/pkgs/development/python-modules/qcelemental/default.nix b/pkgs/development/python-modules/qcelemental/default.nix
index 59c8f47eea386..e585051f5aa8a 100644
--- a/pkgs/development/python-modules/qcelemental/default.nix
+++ b/pkgs/development/python-modules/qcelemental/default.nix
@@ -1,14 +1,15 @@
-{ stdenv
-, buildPythonPackage
-, lib
-, fetchPypi
-, poetry-core
-, networkx
-, numpy
-, pint
-, pydantic
-, pytestCheckHook
-, pythonOlder
+{
+  stdenv,
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+  poetry-core,
+  networkx,
+  numpy,
+  pint,
+  pydantic,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-dlcfIUKAg6yc4S3RXVJ1sKM29E1ZvHY82kjx1CM8/08=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     networkx
@@ -35,13 +34,9 @@ buildPythonPackage rec {
     pydantic
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "qcelemental"
-  ];
+  pythonImportsCheck = [ "qcelemental" ];
 
   meta = with lib; {
     broken = stdenv.isDarwin;
diff --git a/pkgs/development/python-modules/qcengine/default.nix b/pkgs/development/python-modules/qcengine/default.nix
index 7c572c98ea768..bb3c41e5b02c1 100644
--- a/pkgs/development/python-modules/qcengine/default.nix
+++ b/pkgs/development/python-modules/qcengine/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, psutil
-, py-cpuinfo
-, pydantic
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, qcelemental
-, msgpack
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  psutil,
+  py-cpuinfo,
+  pydantic,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  qcelemental,
+  msgpack,
 }:
 
 buildPythonPackage rec {
@@ -32,13 +33,9 @@ buildPythonPackage rec {
     msgpack
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "qcengine"
-  ];
+  pythonImportsCheck = [ "qcengine" ];
 
   meta = with lib; {
     description = "Quantum chemistry program executor and IO standardizer (QCSchema) for quantum chemistry";
diff --git a/pkgs/development/python-modules/qcodes-contrib-drivers/default.nix b/pkgs/development/python-modules/qcodes-contrib-drivers/default.nix
index c50def28bc118..eb9d0e74021ec 100644
--- a/pkgs/development/python-modules/qcodes-contrib-drivers/default.nix
+++ b/pkgs/development/python-modules/qcodes-contrib-drivers/default.nix
@@ -1,35 +1,44 @@
-{ lib
-, fetchFromGitHub
-, pythonOlder
-, buildPythonPackage
-, setuptools
-, versioningit
-, qcodes
-, packaging
-, pytestCheckHook
-, pytest-mock
-, pyvisa-sim
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  versioningit,
+  cffi,
+  qcodes,
+  packaging,
+  pandas,
+  pytestCheckHook,
+  pytest-mock,
+  pyvisa-sim,
+  stdenv,
 }:
 
 buildPythonPackage rec {
   pname = "qcodes-contrib-drivers";
-  version = "0.21.0";
+  version = "0.22.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
-  format = "pyproject";
+  disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "QCoDeS";
     repo = "Qcodes_contrib_drivers";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-7WkG6Bq4J4PU4eWX52RaupQ8cNzE+sJ7s3PoXFRxG2w=";
+    sha256 = "sha256-/W5oC5iqYifMR3/s7aSQ2yTJNmkemkc0KVxIU0Es3zY=";
   };
 
-  nativeBuildInputs = [ setuptools versioningit ];
+  build-system = [
+    setuptools
+    versioningit
+  ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    cffi
     qcodes
     packaging
+    pandas
   ];
 
   nativeCheckInputs = [
@@ -40,19 +49,20 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "qcodes_contrib_drivers" ];
 
-  # should be fixed starting with 0.19.0, remove at next release
-  disabledTestPaths = [
-    "qcodes_contrib_drivers/tests/test_Keysight_M3201A.py"
+  disabledTests = lib.optionals (stdenv.hostPlatform.system == "x86_64-darwin") [
+    # At index 13 diff: 'sour6:volt 0.29000000000000004' != 'sour6:volt 0.29'
+    "test_stability_diagram_external"
   ];
 
   postInstall = ''
     export HOME="$TMPDIR"
   '';
 
-  meta = with lib; {
+  meta = {
     description = "User contributed drivers for QCoDeS";
     homepage = "https://github.com/QCoDeS/Qcodes_contrib_drivers";
-    license = licenses.mit;
-    maintainers = with maintainers; [ evilmav ];
+    changelog = "https://github.com/QCoDeS/Qcodes_contrib_drivers/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ evilmav ];
   };
 }
diff --git a/pkgs/development/python-modules/qcodes/default.nix b/pkgs/development/python-modules/qcodes/default.nix
index 740939959e764..ede69b5ebeb61 100644
--- a/pkgs/development/python-modules/qcodes/default.nix
+++ b/pkgs/development/python-modules/qcodes/default.nix
@@ -1,54 +1,69 @@
-{ lib
-, broadbean
-, buildPythonPackage
-, cf-xarray
-, dask
-, deepdiff
-, fetchFromGitHub
-, h5netcdf
-, h5py
-, hypothesis
-, importlib-metadata
-, ipykernel
-, ipython
-, ipywidgets
-, jsonschema
-, lxml
-, matplotlib
-, numpy
-, opencensus
-, opencensus-ext-azure
-, opentelemetry-api
-, packaging
-, pandas
-, pillow
-, pip
-, pytest-asyncio
-, pytest-mock
-, pytest-rerunfailures
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, pyvisa
-, pyvisa-sim
-, rsa
-, ruamel-yaml
-, setuptools
-, sphinx
-, tabulate
-, tqdm
-, typing-extensions
-, uncertainties
-, versioningit
-, websockets
-, wheel
-, wrapt
-, xarray
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+  versioningit,
+  wheel,
+
+  # dependencies
+  broadbean,
+  cf-xarray,
+  dask,
+  h5netcdf,
+  h5py,
+  ipykernel,
+  ipython,
+  ipywidgets,
+  jsonschema,
+  matplotlib,
+  numpy,
+  opentelemetry-api,
+  packaging,
+  pandas,
+  pillow,
+  pyarrow,
+  pyvisa,
+  ruamel-yaml,
+  tabulate,
+  tqdm,
+  typing-extensions,
+  uncertainties,
+  websockets,
+  wrapt,
+  xarray,
+  importlib-metadata,
+
+  # optional-dependencies
+  jinja2,
+  nbsphinx,
+  pyvisa-sim,
+  scipy,
+  sphinx,
+  sphinx-issues,
+  sphinx-rtd-theme,
+  towncrier,
+  opencensus,
+  opencensus-ext-azure,
+
+  # checks
+  deepdiff,
+  hypothesis,
+  lxml,
+  pip,
+  pytest-asyncio,
+  pytest-mock,
+  pytest-rerunfailures,
+  pytest-xdist,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "qcodes";
-  version = "0.44.1";
+  version = "0.45.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -57,16 +72,16 @@ buildPythonPackage rec {
     owner = "microsoft";
     repo = "Qcodes";
     rev = "refs/tags/v${version}";
-    hash = "sha256-AggAVq/yfJUZRwoQb29QoIbVIAdV3solKCjivqucLZk=";
+    hash = "sha256-H91CpvxGQW0X+m/jlqXMc1RdI9w62lt5jgYOxZ2iPQg=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     versioningit
     wheel
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     broadbean
     cf-xarray
     dask
@@ -78,14 +93,12 @@ buildPythonPackage rec {
     jsonschema
     matplotlib
     numpy
-    opencensus
-    opencensus-ext-azure
     opentelemetry-api
     packaging
     pandas
     pillow
+    pyarrow
     pyvisa
-    rsa
     ruamel-yaml
     tabulate
     tqdm
@@ -94,9 +107,35 @@ buildPythonPackage rec {
     websockets
     wrapt
     xarray
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
+
+  optional-dependencies = {
+    docs = [
+      # autodocsumm
+      jinja2
+      nbsphinx
+      pyvisa-sim
+      # qcodes-loop
+      scipy
+      sphinx
+      # sphinx-favicon
+      sphinx-issues
+      # sphinx-jsonschema
+      sphinx-rtd-theme
+      # sphinxcontrib-towncrier
+      towncrier
+    ];
+    loop = [
+      # qcodes-loop
+    ];
+    opencensus = [
+      opencensus
+      opencensus-ext-azure
+    ];
+    zurichinstruments = [
+      # zhinst-qcodes
+    ];
+  };
 
   nativeCheckInputs = [
     deepdiff
@@ -150,9 +189,7 @@ buildPythonPackage rec {
     "test_step_ramp"
   ];
 
-  pythonImportsCheck = [
-    "qcodes"
-  ];
+  pythonImportsCheck = [ "qcodes" ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
@@ -163,12 +200,12 @@ buildPythonPackage rec {
     export HOME="$TMPDIR"
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Python-based data acquisition framework";
     changelog = "https://github.com/QCoDeS/Qcodes/releases/tag/v${version}";
     downloadPage = "https://github.com/QCoDeS/Qcodes";
     homepage = "https://qcodes.github.io/Qcodes/";
-    license = licenses.mit;
-    maintainers = with maintainers; [ evilmav ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ evilmav ];
   };
 }
diff --git a/pkgs/development/python-modules/qcs-api-client/default.nix b/pkgs/development/python-modules/qcs-api-client/default.nix
index 98e3b05812f1c..d45f7d2201887 100644
--- a/pkgs/development/python-modules/qcs-api-client/default.nix
+++ b/pkgs/development/python-modules/qcs-api-client/default.nix
@@ -8,13 +8,13 @@
   iso8601,
   poetry-core,
   pydantic,
+  pydantic-settings,
   pyjwt,
   pytest-asyncio,
   pytestCheckHook,
   python-dateutil,
   pythonAtLeast,
   pythonOlder,
-  pythonRelaxDepsHook,
   respx,
   retrying,
   rfc3339,
@@ -23,16 +23,16 @@
 
 buildPythonPackage rec {
   pname = "qcs-api-client";
-  version = "0.25.0";
+  version = "0.25.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "rigetti";
     repo = "qcs-api-client-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-dKjiicrPLRlaIwHwSqpY5dBMTzrZD4xfw3h54IN3rh0=";
+    hash = "sha256-GtHAV4BvBdexjJxlT1jcNklSogYor2aWoQI2QNs/dOQ=";
   };
 
   patches = [
@@ -53,13 +53,13 @@ buildPythonPackage rec {
 
   build-system = [ poetry-core ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     attrs
     httpx
     iso8601
     pydantic
+    pydantic-settings
     pyjwt
     python-dateutil
     retrying
diff --git a/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock b/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock
index 0c1265d5ac40c..58d71179d4cfb 100644
--- a/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock
+++ b/pkgs/development/python-modules/qcs-sdk-python/Cargo.lock
@@ -912,7 +912,7 @@ dependencies = [
  "futures-sink",
  "futures-util",
  "http",
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "slab",
  "tokio",
  "tokio-util",
@@ -1121,7 +1121,7 @@ dependencies = [
  "futures-util",
  "http",
  "hyper",
- "rustls 0.21.10",
+ "rustls 0.21.11",
  "tokio",
  "tokio-rustls 0.24.1",
 ]
@@ -1180,9 +1180,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "2.2.5"
+version = "2.2.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b0b929d511467233429c45a44ac1dcaa21ba0f5ba11e4879e6ed28ddb4f9df4"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
 dependencies = [
  "equivalent",
  "hashbrown 0.14.3",
@@ -1283,14 +1283,13 @@ dependencies = [
 
 [[package]]
 name = "jsonwebtoken"
-version = "9.2.0"
+version = "8.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c7ea04a7c5c055c175f189b6dc6ba036fd62306b58c66c9f6389036c503a3f4"
+checksum = "6971da4d9c3aa03c3d8f3ff0f4155b534aad021292003895a469716b2a230378"
 dependencies = [
  "base64 0.21.7",
- "js-sys",
  "pem",
- "ring 0.17.8",
+ "ring 0.16.20",
  "serde",
  "serde_json",
  "simple_asn1",
@@ -1880,12 +1879,11 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099"
 
 [[package]]
 name = "pem"
-version = "3.0.3"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b8fcc794035347fb64beda2d3b462595dd2753e3f268d89c5aae77e8cf2c310"
+checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8"
 dependencies = [
- "base64 0.21.7",
- "serde",
+ "base64 0.13.1",
 ]
 
 [[package]]
@@ -1901,7 +1899,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e1d3afd2628e69da2be385eb6f2fd57c8ac7977ceeff6dc166ff1657b0e386a9"
 dependencies = [
  "fixedbitset",
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
 ]
 
 [[package]]
@@ -2124,7 +2122,7 @@ dependencies = [
 
 [[package]]
 name = "qcs"
-version = "0.21.4"
+version = "0.21.10"
 dependencies = [
  "assert2",
  "async-trait",
@@ -2136,7 +2134,7 @@ dependencies = [
  "float-cmp",
  "futures",
  "hex",
- "indexmap 1.9.3",
+ "indexmap 2.2.6",
  "insta",
  "itertools 0.11.0",
  "lazy_static",
@@ -2184,9 +2182,9 @@ dependencies = [
 
 [[package]]
 name = "qcs-api-client-common"
-version = "0.7.12"
+version = "0.7.14"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e96a94ca1f4ac3e094d51d90deb5d158dddfd0723cca1b50d302acfd2e4e78ef"
+checksum = "53c56fa367070074f32143b4adef924af1441faa86e835f45371e14801884d14"
 dependencies = [
  "async-trait",
  "backoff",
@@ -2207,9 +2205,9 @@ dependencies = [
 
 [[package]]
 name = "qcs-api-client-grpc"
-version = "0.7.14"
+version = "0.7.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b82196be0676c8dc24749a830e886ffda6e34b3130c6a7078354c24dec07933a"
+checksum = "01247ae1b0523e058007edb0132cd40915452b8b4dc669d68156e187740ead70"
 dependencies = [
  "backoff",
  "http",
@@ -2240,9 +2238,9 @@ dependencies = [
 
 [[package]]
 name = "qcs-api-client-openapi"
-version = "0.8.13"
+version = "0.8.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0e318c4bffb689688d4f95afb2b5a52a70e12a191da402e0dded093102fcb1e9"
+checksum = "04d7172e79b083a85c911917c03be58eda083b36ea7575db685d21aa2fa99b41"
 dependencies = [
  "anyhow",
  "qcs-api-client-common",
@@ -2260,7 +2258,7 @@ dependencies = [
 
 [[package]]
 name = "qcs-sdk-python"
-version = "0.17.4"
+version = "0.17.10"
 dependencies = [
  "async-trait",
  "numpy",
@@ -2290,11 +2288,11 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
 
 [[package]]
 name = "quil-rs"
-version = "0.23.0"
-source = "git+https://github.com/rigetti/quil-rs?tag=quil-py/v0.7.0#3bb618124c2165b7329c58c0f217d8ee9d816e67"
+version = "0.26.0"
+source = "git+https://github.com/rigetti/quil-rs?tag=quil-py/v0.10.0#25966563850ed151fad0cdab3f6931bdd90be8f8"
 dependencies = [
  "approx",
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "itertools 0.12.1",
  "lexical",
  "ndarray",
@@ -2436,7 +2434,7 @@ dependencies = [
  "once_cell",
  "percent-encoding",
  "pin-project-lite",
- "rustls 0.21.10",
+ "rustls 0.21.11",
  "rustls-native-certs 0.6.3",
  "rustls-pemfile 1.0.4",
  "serde",
@@ -2491,14 +2489,15 @@ dependencies = [
 
 [[package]]
 name = "rigetti-pyo3"
-version = "0.3.1"
+version = "0.3.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff977cba40f2cadf214226cf51c9729a4f5730a5413f901246eed78cb6e795c9"
+checksum = "c59068763670399bb3e895a17cc631d9214c3172b64fc74d3ab63dac7371c340"
 dependencies = [
  "num-complex",
  "num-traits",
  "paste",
  "pyo3",
+ "time",
 ]
 
 [[package]]
@@ -2628,9 +2627,9 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.21.10"
+version = "0.21.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9d5a6813c0759e4609cd494e8e725babae6a2ca7b62a5536a13daaec6fcb7ba"
+checksum = "7fecbfb7b1444f477b345853b1fce097a2c6fb637b2bfb87e6bc5db0f043fae4"
 dependencies = [
  "log",
  "ring 0.17.8",
@@ -2640,9 +2639,9 @@ dependencies = [
 
 [[package]]
 name = "rustls"
-version = "0.22.2"
+version = "0.22.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e87c9956bd9807afa1f77e0f7594af32566e830e088a5576d27c5b6f30f49d41"
+checksum = "bf4ef73721ac7bcd79b2b315da7779d8fc09718c6b3d2d1b2d94850eb8c18432"
 dependencies = [
  "log",
  "ring 0.17.8",
@@ -3290,7 +3289,7 @@ version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c28327cf380ac148141087fbfb9de9d7bd4e84ab5d2c28fbc911d753de8a7081"
 dependencies = [
- "rustls 0.21.10",
+ "rustls 0.21.11",
  "tokio",
 ]
 
@@ -3300,7 +3299,7 @@ version = "0.25.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "775e0c0f0adb3a2f22a00c4745d728b479985fc15ee7ca6a2608388c5569860f"
 dependencies = [
- "rustls 0.22.2",
+ "rustls 0.22.4",
  "rustls-pki-types",
  "tokio",
 ]
@@ -3381,7 +3380,7 @@ version = "0.19.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421"
 dependencies = [
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "serde",
  "serde_spanned",
  "toml_datetime",
@@ -3394,7 +3393,7 @@ version = "0.22.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c12219811e0c1ba077867254e5ad62ee2c9c190b0d957110750ac0cda1ae96cd"
 dependencies = [
- "indexmap 2.2.5",
+ "indexmap 2.2.6",
  "serde",
  "serde_spanned",
  "toml_datetime",
diff --git a/pkgs/development/python-modules/qcs-sdk-python/default.nix b/pkgs/development/python-modules/qcs-sdk-python/default.nix
index 100a7874fd187..86421d7d84a32 100644
--- a/pkgs/development/python-modules/qcs-sdk-python/default.nix
+++ b/pkgs/development/python-modules/qcs-sdk-python/default.nix
@@ -1,5 +1,6 @@
 {
   lib,
+  stdenv,
   buildPythonPackage,
   fetchFromGitHub,
   pytest-asyncio,
@@ -7,12 +8,14 @@
   pythonOlder,
   quil,
   rustPlatform,
+  darwin,
+  libiconv,
   syrupy,
 }:
 
 buildPythonPackage rec {
   pname = "qcs-sdk-python";
-  version = "0.17.4";
+  version = "0.17.10";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,13 +24,13 @@ buildPythonPackage rec {
     owner = "rigetti";
     repo = "qcs-sdk-rust";
     rev = "python/v${version}";
-    hash = "sha256-Z/NK+xnugFieJqAbvGaVvxUaz9RC1vpWb4ydZTVbZeU=";
+    hash = "sha256-pBh7g4MH5hL3k458q6UhkW/5/HdFm4ELnJHIl0wQFGE=";
   };
 
   cargoDeps = rustPlatform.importCargoLock {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "quil-rs-0.23.0" = "sha256-l9wj1j7PJ5L497dPlkEpJ4ctAfjUIada5Vbn2h5ioVE=";
+      "quil-rs-0.26.0" = "sha256-Er4sl47i6TbcbG3JHHexrOn/Sdd5mLTl5R+eA7heBVg=";
     };
   };
 
@@ -40,6 +43,12 @@ buildPythonPackage rec {
 
   dependencies = [ quil ];
 
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.Security
+    darwin.apple_sdk.frameworks.SystemConfiguration
+    libiconv
+  ];
+
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
diff --git a/pkgs/development/python-modules/qdarkstyle/default.nix b/pkgs/development/python-modules/qdarkstyle/default.nix
index 7c35ba6869292..80dca57b1d6a1 100644
--- a/pkgs/development/python-modules/qdarkstyle/default.nix
+++ b/pkgs/development/python-modules/qdarkstyle/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, helpdev
-, qtpy
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  helpdev,
+  qtpy,
 }:
 
 buildPythonPackage rec {
@@ -19,10 +20,13 @@ buildPythonPackage rec {
   # No tests available
   doCheck = false;
 
-  propagatedBuildInputs = [ helpdev qtpy ];
+  propagatedBuildInputs = [
+    helpdev
+    qtpy
+  ];
 
   meta = with lib; {
-    description = "A dark stylesheet for Python and Qt applications";
+    description = "Dark stylesheet for Python and Qt applications";
     homepage = "https://github.com/ColinDuquesnoy/QDarkStyleSheet";
     license = licenses.mit;
     maintainers = with maintainers; [ nyanloutre ];
diff --git a/pkgs/development/python-modules/qdldl/default.nix b/pkgs/development/python-modules/qdldl/default.nix
index 10d05be786960..4491788552c76 100644
--- a/pkgs/development/python-modules/qdldl/default.nix
+++ b/pkgs/development/python-modules/qdldl/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cmake
-, pybind11
-, numpy
-, scipy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cmake,
+  pybind11,
+  numpy,
+  scipy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "qdldl";
-  version = "0.1.7.post2";
+  version = "0.1.7.post3";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SxU5pewQzHV6/XFW1960AGAHythtd0yfD9w+NEFVV9M=";
+    hash = "sha256-WbOqK6IkyvI3StJArXmmlbxHdjnGTjFkzvTyyZyHzx0=";
   };
 
   dontUseCmakeConfigure = true;
@@ -32,7 +33,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A free LDL factorization routine";
+    description = "Free LDL factorization routine";
     homepage = "https://github.com/oxfordcontrol/qdldl";
     downloadPage = "https://github.com/oxfordcontrol/qdldl-python";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/qdrant-client/default.nix b/pkgs/development/python-modules/qdrant-client/default.nix
index 33fdd38d4edb5..0a6a476979c1a 100644
--- a/pkgs/development/python-modules/qdrant-client/default.nix
+++ b/pkgs/development/python-modules/qdrant-client/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "qdrant-client";
-  version = "1.9.0";
+  version = "1.9.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "qdrant";
     repo = "qdrant-client";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ka5qhs9yhvbGkxXlq9Z3ZMuY1muf9HaODTxCgSLU4io=";
+    hash = "sha256-1QYL2othFA/xTgdj549MA1aVDH6jjiuL+aN2Q/supp8=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/qds-sdk/default.nix b/pkgs/development/python-modules/qds-sdk/default.nix
index d4fb7a5031449..34876b7aaa856 100644
--- a/pkgs/development/python-modules/qds-sdk/default.nix
+++ b/pkgs/development/python-modules/qds-sdk/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, boto
-, inflection
-, requests
-, six
-, urllib3
-, mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  boto,
+  inflection,
+  requests,
+  six,
+  urllib3,
+  mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-8aPIE2E3Fy2EiBM2FPRyjnJolIBdOzafI3Fvlod5hxU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     boto
@@ -35,14 +34,15 @@ buildPythonPackage rec {
     urllib3
   ];
 
-  nativeCheckInputs = [ pytestCheckHook mock ];
-
-  pythonImportsCheck = [
-    "qds_sdk"
+  nativeCheckInputs = [
+    pytestCheckHook
+    mock
   ];
 
+  pythonImportsCheck = [ "qds_sdk" ];
+
   meta = with lib; {
-    description = "A Python module that provides the tools you need to authenticate with, and use the Qubole Data Service API";
+    description = "Python module that provides the tools you need to authenticate with, and use the Qubole Data Service API";
     homepage = "https://github.com/qubole/qds-sdk-py";
     license = licenses.asl20;
     maintainers = with maintainers; [ shahrukh330 ];
diff --git a/pkgs/development/python-modules/qemu/default.nix b/pkgs/development/python-modules/qemu/default.nix
index ba730548bca89..9971f254c43e1 100644
--- a/pkgs/development/python-modules/qemu/default.nix
+++ b/pkgs/development/python-modules/qemu/default.nix
@@ -1,10 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, qemu
-, setuptools
-, fuseSupport ? false, fusepy
-, tuiSupport ? false, urwid, urwid-readline, pygments
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  qemu,
+  setuptools,
+  fuseSupport ? false,
+  fusepy,
+  tuiSupport ? false,
+  urwid,
+  urwid-readline,
+  pygments,
 }:
 
 buildPythonPackage {
@@ -29,13 +34,16 @@ buildPythonPackage {
     fi
   '';
 
-  buildInputs = [
-    setuptools
-  ];
+  buildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [ ]
+  propagatedBuildInputs =
+    [ ]
     ++ lib.optionals fuseSupport [ fusepy ]
-    ++ lib.optionals tuiSupport [ urwid urwid-readline pygments ];
+    ++ lib.optionals tuiSupport [
+      urwid
+      urwid-readline
+      pygments
+    ];
 
   # Project requires avocado-framework for testing, therefore replacing check phase
   checkPhase = ''
@@ -47,10 +55,10 @@ buildPythonPackage {
   pythonImportsCheck = [ "qemu" ];
 
   preFixup =
-    (lib.optionalString (! tuiSupport) ''
+    (lib.optionalString (!tuiSupport) ''
       rm $out/bin/qmp-tui
     '')
-    + (lib.optionalString (! fuseSupport) ''
+    + (lib.optionalString (!fuseSupport) ''
       rm $out/bin/qom-fuse
     '');
 
@@ -58,6 +66,9 @@ buildPythonPackage {
     homepage = "http://www.qemu.org/";
     description = "Python tooling used by the QEMU project to build, configure, and test QEMU";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ devplayer0 davhau ];
+    maintainers = with maintainers; [
+      devplayer0
+      davhau
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/qgrid/default.nix b/pkgs/development/python-modules/qgrid/default.nix
index 778a9eae37145..e409345bcd7ad 100644
--- a/pkgs/development/python-modules/qgrid/default.nix
+++ b/pkgs/development/python-modules/qgrid/default.nix
@@ -1,17 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, ipywidgets
-, notebook
-, pandas
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchpatch,
+  fetchPypi,
+  ipywidgets,
+  looseversion,
+  notebook,
+  pandas,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "qgrid";
   version = "1.3.1";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
@@ -27,15 +29,19 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    substituteInPlace qgrid/grid.py \
+      --replace-fail "from distutils.version import LooseVersion" "from looseversion import LooseVersion"
+  '';
+
+  dependencies = [
     ipywidgets
+    looseversion
     notebook
     pandas
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Those tests are also failing upstream
   disabledTests = [
@@ -49,10 +55,10 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "qgrid" ];
 
-  meta = with lib; {
-    description = "An interactive grid for sorting, filtering, and editing DataFrames in Jupyter notebooks";
+  meta = {
+    description = "Interactive grid for sorting, filtering, and editing DataFrames in Jupyter notebooks";
     homepage = "https://github.com/quantopian/qgrid";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ GaetanLepage ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
   };
 }
diff --git a/pkgs/development/python-modules/qiling/default.nix b/pkgs/development/python-modules/qiling/default.nix
index b7d424be3bfeb..34de987c8e4ef 100644
--- a/pkgs/development/python-modules/qiling/default.nix
+++ b/pkgs/development/python-modules/qiling/default.nix
@@ -1,20 +1,20 @@
-{ lib
-, buildPythonPackage
-, capstone
-, fetchFromGitHub
-, fetchPypi
-, gevent
-, keystone-engine
-, multiprocess
-, pefile
-, pyelftools
-, pythonOlder
-, python-fx
-, python-registry
-, pyyaml
-, questionary
-, termcolor
-, unicorn
+{
+  lib,
+  buildPythonPackage,
+  capstone,
+  fetchPypi,
+  gevent,
+  keystone-engine,
+  multiprocess,
+  pefile,
+  pyelftools,
+  pythonOlder,
+  python-fx,
+  python-registry,
+  pyyaml,
+  questionary,
+  termcolor,
+  unicorn,
 }:
 
 buildPythonPackage rec {
@@ -48,9 +48,7 @@ buildPythonPackage rec {
   # amongst other things)
   doCheck = false;
 
-  pythonImportsCheck = [
-    "qiling"
-  ];
+  pythonImportsCheck = [ "qiling" ];
 
   meta = with lib; {
     description = "Qiling Advanced Binary Emulation Framework";
diff --git a/pkgs/development/python-modules/qimage2ndarray/default.nix b/pkgs/development/python-modules/qimage2ndarray/default.nix
index 2a5f575fb117d..23e66a6c374a2 100644
--- a/pkgs/development/python-modules/qimage2ndarray/default.nix
+++ b/pkgs/development/python-modules/qimage2ndarray/default.nix
@@ -1,6 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k
-, numpy
-, pyqt5
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  numpy,
+  pyqt5,
 }:
 
 buildPythonPackage rec {
@@ -24,7 +28,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/hmeine/qimage2ndarray";
-    description = "A small python extension for quickly converting between QImages and numpy.ndarrays (in both directions)";
+    description = "Small python extension for quickly converting between QImages and numpy.ndarrays (in both directions)";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ tbenst ];
   };
diff --git a/pkgs/development/python-modules/qingping-ble/default.nix b/pkgs/development/python-modules/qingping-ble/default.nix
index 1a678a2db4969..949ebbd187b8a 100644
--- a/pkgs/development/python-modules/qingping-ble/default.nix
+++ b/pkgs/development/python-modules/qingping-ble/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, bluetooth-data-tools
-, bluetooth-sensor-state-data
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, sensor-state-data
+{
+  lib,
+  bluetooth-data-tools,
+  bluetooth-sensor-state-data,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  sensor-state-data,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-5w3KGJLdHFv6kURKTz3YImZNjaETiVqbbJTJpBSLSo8=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bluetooth-data-tools
@@ -33,18 +32,14 @@ buildPythonPackage rec {
     sensor-state-data
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace " --cov=qingping_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  pythonImportsCheck = [
-    "qingping_ble"
-  ];
+  pythonImportsCheck = [ "qingping_ble" ];
 
   meta = with lib; {
     description = "Library for Qingping BLE devices";
diff --git a/pkgs/development/python-modules/qiskit-aer/default.nix b/pkgs/development/python-modules/qiskit-aer/default.nix
index 6f6f42f8fd760..18bd47bf5bf70 100644
--- a/pkgs/development/python-modules/qiskit-aer/default.nix
+++ b/pkgs/development/python-modules/qiskit-aer/default.nix
@@ -1,32 +1,30 @@
-{ stdenv
-, lib
-, pythonOlder
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
+{
+  lib,
+  pythonOlder,
+  buildPythonPackage,
+  fetchFromGitHub,
   # C Inputs
-, blas
-, catch2
-, cmake
-, cython
-, fmt
-, muparserx
-, ninja
-, nlohmann_json
-, spdlog
+  blas,
+  catch2,
+  cmake,
+  cython,
+  fmt,
+  muparserx,
+  ninja,
+  nlohmann_json,
+  spdlog,
   # Python Inputs
-, cvxpy
-, numpy
-, pybind11
-, scikit-build
+  cvxpy,
+  numpy,
+  pybind11,
+  scikit-build,
   # Check Inputs
-, pytestCheckHook
-, ddt
-, fixtures
-, pytest-timeout
-, qiskit-terra
-, setuptools
-, testtools
+  pytestCheckHook,
+  ddt,
+  fixtures,
+  pytest-timeout,
+  qiskit-terra,
+  testtools,
 }:
 
 buildPythonPackage rec {
@@ -69,7 +67,7 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [
     cvxpy
-    cython  # generates some cython files at runtime that need to be cython-ized
+    cython # generates some cython files at runtime that need to be cython-ized
     numpy
     pybind11
   ];
diff --git a/pkgs/development/python-modules/qiskit-finance/default.nix b/pkgs/development/python-modules/qiskit-finance/default.nix
index 62584bb17165f..0fb5525fee2c6 100644
--- a/pkgs/development/python-modules/qiskit-finance/default.nix
+++ b/pkgs/development/python-modules/qiskit-finance/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, pythonOlder
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  pythonOlder,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
   # Python Inputs
-, fastdtw
-, numpy
-, pandas
-, psutil
-, qiskit-terra
-, qiskit-optimization
-, scikit-learn
-, scipy
-, quandl
-, yfinance
+  fastdtw,
+  numpy,
+  pandas,
+  psutil,
+  qiskit-terra,
+  qiskit-optimization,
+  scikit-learn,
+  scipy,
+  quandl,
+  yfinance,
   # Check Inputs
-, pytestCheckHook
-, ddt
-, pytest-timeout
-, qiskit-aer
+  pytestCheckHook,
+  ddt,
+  pytest-timeout,
+  qiskit-aer,
 }:
 
 buildPythonPackage rec {
@@ -42,9 +43,7 @@ buildPythonPackage rec {
     substituteInPlace requirements.txt --replace "pandas<1.4.0" "pandas"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     fastdtw
@@ -76,9 +75,7 @@ buildPythonPackage rec {
     "test_yahoo"
     "test_wikipedia"
   ];
-  pytestFlagsArray = [
-    "--durations=10"
-  ];
+  pytestFlagsArray = [ "--durations=10" ];
 
   meta = with lib; {
     description = "Software for developing quantum computing programs";
diff --git a/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix b/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
index 030f94efc8524..833dec1f0d2c8 100644
--- a/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
+++ b/pkgs/development/python-modules/qiskit-ibmq-provider/default.nix
@@ -1,30 +1,31 @@
-{ lib
-, pythonOlder
-, buildPythonPackage
-, fetchFromGitHub
-, arrow
-, nest-asyncio
-, qiskit-terra
-, requests
-, requests-ntlm
-, websocket-client
+{
+  lib,
+  pythonOlder,
+  buildPythonPackage,
+  fetchFromGitHub,
+  arrow,
+  nest-asyncio,
+  qiskit-terra,
+  requests,
+  requests-ntlm,
+  websocket-client,
   # Visualization inputs
-, withVisualization ? true
-, ipython
-, ipyvuetify
-, ipywidgets
-, matplotlib
-, plotly
-, pyperclip
-, seaborn
+  withVisualization ? true,
+  ipython,
+  ipyvuetify,
+  ipywidgets,
+  matplotlib,
+  plotly,
+  pyperclip,
+  seaborn,
   # check inputs
-, pytestCheckHook
-, nbconvert
-, nbformat
-, pproxy
-, qiskit-aer
-, websockets
-, vcrpy
+  pytestCheckHook,
+  nbconvert,
+  nbformat,
+  pproxy,
+  qiskit-aer,
+  websockets,
+  vcrpy,
 }:
 
 let
@@ -78,7 +79,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "qiskit.providers.ibmq" ];
   disabledTests = [
-    "test_coder_operators"  # fails for some reason on nixos-21.05+
+    "test_coder_operators" # fails for some reason on nixos-21.05+
     # These disabled tests require internet connection, aren't skipped elsewhere
     "test_old_api_url"
     "test_non_auth_url"
diff --git a/pkgs/development/python-modules/qiskit-ignis/default.nix b/pkgs/development/python-modules/qiskit-ignis/default.nix
index 9fbaa5957fee8..a5744586b1a52 100644
--- a/pkgs/development/python-modules/qiskit-ignis/default.nix
+++ b/pkgs/development/python-modules/qiskit-ignis/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, stdenv
-, pythonOlder
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, qiskit-terra
-, scikit-learn
-, scipy
+{
+  lib,
+  stdenv,
+  pythonOlder,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  qiskit-terra,
+  scikit-learn,
+  scipy,
   # Optional package inputs
-, withVisualization ? false
-, matplotlib
-, withCvx ? false
-, cvxpy
-, withJit ? false
-, numba
+  withVisualization ? false,
+  matplotlib,
+  withCvx ? false,
+  cvxpy,
+  withJit ? false,
+  numba,
   # Check Inputs
-, pytestCheckHook
-, ddt
-, pyfakefs
-, qiskit-aer
+  pytestCheckHook,
+  ddt,
+  pyfakefs,
+  qiskit-aer,
 }:
 
 buildPythonPackage rec {
@@ -36,14 +37,16 @@ buildPythonPackage rec {
     hash = "sha256-WyLNtZhtuGzqCJdOBvtBjZZiGFQihpeSjJQtP7lI248=";
   };
 
-  propagatedBuildInputs = [
-    numpy
-    qiskit-terra
-    scikit-learn
-    scipy
-  ] ++ lib.optionals (withCvx) [ cvxpy ]
-  ++ lib.optionals (withVisualization) [ matplotlib ]
-  ++ lib.optionals (withJit) [ numba ];
+  propagatedBuildInputs =
+    [
+      numpy
+      qiskit-terra
+      scikit-learn
+      scipy
+    ]
+    ++ lib.optionals (withCvx) [ cvxpy ]
+    ++ lib.optionals (withVisualization) [ matplotlib ]
+    ++ lib.optionals (withJit) [ numba ];
 
   # Tests
   pythonImportsCheck = [ "qiskit.ignis" ];
@@ -57,11 +60,13 @@ buildPythonPackage rec {
     pyfakefs
     qiskit-aer
   ];
-  disabledTests = [
-    "test_tensored_meas_cal_on_circuit" # Flaky test, occasionally returns result outside bounds
-  ] ++ lib.optionals stdenv.isAarch64 [
-    "test_fitters" # Fails check that arrays are close. Might be due to aarch64 math issues.
-  ];
+  disabledTests =
+    [
+      "test_tensored_meas_cal_on_circuit" # Flaky test, occasionally returns result outside bounds
+    ]
+    ++ lib.optionals stdenv.isAarch64 [
+      "test_fitters" # Fails check that arrays are close. Might be due to aarch64 math issues.
+    ];
 
   meta = with lib; {
     description = "Qiskit tools for quantum hardware verification, noise characterization, and error correction";
diff --git a/pkgs/development/python-modules/qiskit-machine-learning/default.nix b/pkgs/development/python-modules/qiskit-machine-learning/default.nix
index 1ad1b138af87b..16c3e94431a2e 100644
--- a/pkgs/development/python-modules/qiskit-machine-learning/default.nix
+++ b/pkgs/development/python-modules/qiskit-machine-learning/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, pythonOlder
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  pythonOlder,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
   # Python Inputs
-, fastdtw
-, numpy
-, psutil
-, qiskit-terra
-, scikit-learn
-, sparse
-, torch
+  fastdtw,
+  numpy,
+  psutil,
+  qiskit-terra,
+  scikit-learn,
+  sparse,
+  torch,
   # Check Inputs
-, pytestCheckHook
-, ddt
-, pytest-timeout
-, qiskit-aer
+  pytestCheckHook,
+  ddt,
+  pytest-timeout,
+  qiskit-aer,
 }:
 
 buildPythonPackage rec {
@@ -35,9 +36,7 @@ buildPythonPackage rec {
     hash = "sha256-EBjWWoNRuIZFWQkrjf9IyZZ648rP5d7MZkjeIYifgGk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     fastdtw
@@ -49,7 +48,7 @@ buildPythonPackage rec {
     sparse
   ];
 
-  doCheck = false;  # TODO: enable. Tests fail on unstable due to some multithreading issue?
+  doCheck = false; # TODO: enable. Tests fail on unstable due to some multithreading issue?
   nativeCheckInputs = [
     pytestCheckHook
     pytest-timeout
@@ -63,7 +62,7 @@ buildPythonPackage rec {
     "--durations=10"
     "--showlocals"
     "-vv"
-    "--ignore=test/connectors/test_torch_connector.py"  # TODO: fix, get multithreading errors with python3.9, segfaults
+    "--ignore=test/connectors/test_torch_connector.py" # TODO: fix, get multithreading errors with python3.9, segfaults
   ];
   disabledTests = [
     # Slow tests >10 s
diff --git a/pkgs/development/python-modules/qiskit-nature/default.nix b/pkgs/development/python-modules/qiskit-nature/default.nix
index 483f9f67cc422..61710ba4c8e37 100644
--- a/pkgs/development/python-modules/qiskit-nature/default.nix
+++ b/pkgs/development/python-modules/qiskit-nature/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, pythonOlder
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  pythonOlder,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
   # Python Inputs
-, h5py
-, numpy
-, psutil
-, qiskit-terra
-, rustworkx
-, scikit-learn
-, scipy
-, withPyscf ? false
-, pyscf
+  h5py,
+  numpy,
+  psutil,
+  qiskit-terra,
+  rustworkx,
+  scikit-learn,
+  scipy,
+  withPyscf ? false,
+  pyscf,
   # Check Inputs
-, pytestCheckHook
-, ddt
-, pylatexenc
-, qiskit-aer
+  pytestCheckHook,
+  ddt,
+  pylatexenc,
+  qiskit-aer,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
     hash = "sha256-SVzg3McB885RMyAp90Kr6/iVKw3Su9ucTob2jBckBo0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     h5py
@@ -60,12 +59,10 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "qiskit_nature" ];
 
-  pytestFlagsArray = [
-    "--durations=10"
-  ];
+  pytestFlagsArray = [ "--durations=10" ];
 
   disabledTests = [
-    "test_two_qubit_reduction"  # failure cause unclear
+    "test_two_qubit_reduction" # failure cause unclear
   ];
 
   meta = with lib; {
@@ -75,7 +72,7 @@ buildPythonPackage rec {
     changelog = "https://qiskit.org/documentation/release_notes.html";
     sourceProvenance = with sourceTypes; [
       fromSource
-      binaryNativeCode  # drivers/gaussiand/gauopen/*.so
+      binaryNativeCode # drivers/gaussiand/gauopen/*.so
     ];
     license = licenses.asl20;
     maintainers = with maintainers; [ drewrisinger ];
diff --git a/pkgs/development/python-modules/qiskit-optimization/default.nix b/pkgs/development/python-modules/qiskit-optimization/default.nix
index 3e1d6b3e49e08..539f7bcbe28b5 100644
--- a/pkgs/development/python-modules/qiskit-optimization/default.nix
+++ b/pkgs/development/python-modules/qiskit-optimization/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, pythonOlder
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  pythonOlder,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
   # Python Inputs
-, decorator
-, docplex
-, networkx
-, numpy
-, qiskit-terra
-, scipy
+  decorator,
+  docplex,
+  networkx,
+  numpy,
+  qiskit-terra,
+  scipy,
   # Check Inputs
-, pytestCheckHook
-, ddt
-, pylatexenc
-, qiskit-aer
+  pytestCheckHook,
+  ddt,
+  pylatexenc,
+  qiskit-aer,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
     substituteInPlace requirements.txt --replace "networkx>=2.2,<2.6" "networkx"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     docplex
diff --git a/pkgs/development/python-modules/qiskit-terra/default.nix b/pkgs/development/python-modules/qiskit-terra/default.nix
index 38c01d252ae13..44ae18a933d08 100644
--- a/pkgs/development/python-modules/qiskit-terra/default.nix
+++ b/pkgs/development/python-modules/qiskit-terra/default.nix
@@ -1,48 +1,49 @@
-{ stdenv
-, lib
-, pythonAtLeast
-, pythonOlder
-, buildPythonPackage
-, fetchFromGitHub
-, cargo
-, rustPlatform
-, rustc
-, libiconv
+{
+  stdenv,
+  lib,
+  pythonAtLeast,
+  pythonOlder,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cargo,
+  rustPlatform,
+  rustc,
+  libiconv,
   # Python requirements
-, dill
-, numpy
-, networkx
-, ply
-, psutil
-, python-constraint
-, python-dateutil
-, rustworkx
-, scipy
-, scikit-quant ? null
-, setuptools-rust
-, stevedore
-, symengine
-, sympy
-, tweedledum
-, withVisualization ? false
+  dill,
+  numpy,
+  networkx,
+  ply,
+  psutil,
+  python-constraint,
+  python-dateutil,
+  rustworkx,
+  scipy,
+  scikit-quant ? null,
+  setuptools-rust,
+  stevedore,
+  symengine,
+  sympy,
+  tweedledum,
+  withVisualization ? false,
   # Python visualization requirements, optional
-, ipywidgets
-, matplotlib
-, pillow
-, pydot
-, pygments
-, pylatexenc
-, seaborn
+  ipywidgets,
+  matplotlib,
+  pillow,
+  pydot,
+  pygments,
+  pylatexenc,
+  seaborn,
   # Crosstalk-adaptive layout pass
-, withCrosstalkPass ? false
-, z3-solver
+  withCrosstalkPass ? false,
+  z3-solver,
   # test requirements
-, ddt
-, hypothesis
-, nbformat
-, nbconvert
-, pytestCheckHook
-, python
+  ddt,
+  hypothesis,
+  nbformat,
+  nbconvert,
+  pytestCheckHook,
+  python,
 }:
 
 let
@@ -72,7 +73,12 @@ buildPythonPackage rec {
     hash = "sha256-4/LVKDNxKsRztCtU/mMfKMVHHJqfadZXmxeOlnlz9Tc=";
   };
 
-  nativeBuildInputs = [ setuptools-rust rustc cargo rustPlatform.cargoSetupHook ];
+  nativeBuildInputs = [
+    setuptools-rust
+    rustc
+    cargo
+    rustPlatform.cargoSetupHook
+  ];
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
@@ -82,23 +88,25 @@ buildPythonPackage rec {
     hash = "sha256-f5VLNxv9DKwfRy5zacydfz4Zrkbiee7JecOAbVelSto=";
   };
 
-  propagatedBuildInputs = [
-    dill
-    numpy
-    networkx
-    ply
-    psutil
-    python-constraint
-    python-dateutil
-    rustworkx
-    scipy
-    scikit-quant
-    stevedore
-    symengine
-    sympy
-    tweedledum
-  ] ++ lib.optionals withVisualization visualizationPackages
-  ++ lib.optionals withCrosstalkPass crosstalkPackages;
+  propagatedBuildInputs =
+    [
+      dill
+      numpy
+      networkx
+      ply
+      psutil
+      python-constraint
+      python-dateutil
+      rustworkx
+      scipy
+      scikit-quant
+      stevedore
+      symengine
+      sympy
+      tweedledum
+    ]
+    ++ lib.optionals withVisualization visualizationPackages
+    ++ lib.optionals withCrosstalkPass crosstalkPackages;
 
   # *** Tests ***
   nativeCheckInputs = [
@@ -125,68 +133,68 @@ buildPythonPackage rec {
     "test/visual/mpl/circuit/test_circuit_matplotlib_drawer.py"
   ];
   pytestFlagsArray = [ "--durations=10" ];
-  disabledTests = [
-    "TestUnitarySynthesisPlugin" # use unittest mocks for transpiler.run(), seems incompatible somehow w/ pytest infrastructure
-    # matplotlib tests seems to fail non-deterministically
-    "TestMatplotlibDrawer"
-    "TestGraphMatplotlibDrawer"
-    "test_copy" # assertNotIn doesn't seem to work as expected w/ pytest vs unittest
-
-    "test_bound_pass_manager" # AssertionError: 0 != 2
-    "test_complex_parameter_bound_to_real" # qiskit.circuit.exceptions.CircuitError: "Invalid param type <class 'complex'> for gate rx."
-    "test_expressions_of_parameter_with_constant" # Floating point arithmetic error
-    "test_handle_measurement" # AssertionError: The two circuits are not equal
-
-    # Flaky tests
-    "test_pulse_limits" # Fails on GitHub Actions, probably due to minor floating point arithmetic error.
-    "test_cx_equivalence"  # Fails due to flaky test
-    "test_two_qubit_synthesis_not_pulse_optimal" # test of random circuit, seems to randomly fail depending on seed
-    "test_qv_natural" # fails due to sign error. Not sure why
-  ] ++ lib.optionals (lib.versionAtLeast matplotlib.version "3.4.0") [
-    "test_plot_circuit_layout"
-  ]
-  # Disabling slow tests for build constraints
-  ++ [
-    "test_all_examples"
-    "test_controlled_random_unitary"
-    "test_controlled_standard_gates_1"
-    "test_jupyter_jobs_pbars"
-    "test_lookahead_swap_higher_depth_width_is_better"
-    "test_move_measurements"
-    "test_job_monitor"
-    "test_wait_for_final_state"
-    "test_multi_controlled_y_rotation_matrix_basic_mode"
-    "test_two_qubit_weyl_decomposition_abc"
-    "test_isometry"
-    "test_parallel"
-    "test_random_state"
-    "test_random_clifford_valid"
-    "test_to_matrix"
-    "test_block_collection_reduces_1q_gate"
-    "test_multi_controlled_rotation_gate_matrices"
-    "test_block_collection_runs_for_non_cx_bases"
-    "test_with_two_qubit_reduction"
-    "test_basic_aer_qasm"
-    "test_hhl"
-    "test_H2_hamiltonian"
-    "test_max_evals_grouped_2"
-    "test_qaoa_qc_mixer_4"
-    "test_abelian_grouper_random_2"
-    "test_pauli_two_design"
-    "test_shor_factoring"
-    "test_sample_counts_memory_ghz"
-    "test_two_qubit_weyl_decomposition_ab0"
-    "test_sample_counts_memory_superposition"
-    "test_piecewise_polynomial_function"
-    "test_piecewise_chebyshev_mutability"
-    "test_bit_conditional_no_cregbundle"
-    "test_gradient_wrapper2"
-    "test_two_qubit_weyl_decomposition_abmb"
-    "test_two_qubit_weyl_decomposition_abb"
-    "test_vqe_qasm"
-    "test_dag_from_networkx"
-    "test_defaults_to_dict_46"
-  ];
+  disabledTests =
+    [
+      "TestUnitarySynthesisPlugin" # use unittest mocks for transpiler.run(), seems incompatible somehow w/ pytest infrastructure
+      # matplotlib tests seems to fail non-deterministically
+      "TestMatplotlibDrawer"
+      "TestGraphMatplotlibDrawer"
+      "test_copy" # assertNotIn doesn't seem to work as expected w/ pytest vs unittest
+
+      "test_bound_pass_manager" # AssertionError: 0 != 2
+      "test_complex_parameter_bound_to_real" # qiskit.circuit.exceptions.CircuitError: "Invalid param type <class 'complex'> for gate rx."
+      "test_expressions_of_parameter_with_constant" # Floating point arithmetic error
+      "test_handle_measurement" # AssertionError: The two circuits are not equal
+
+      # Flaky tests
+      "test_pulse_limits" # Fails on GitHub Actions, probably due to minor floating point arithmetic error.
+      "test_cx_equivalence" # Fails due to flaky test
+      "test_two_qubit_synthesis_not_pulse_optimal" # test of random circuit, seems to randomly fail depending on seed
+      "test_qv_natural" # fails due to sign error. Not sure why
+    ]
+    ++ lib.optionals (lib.versionAtLeast matplotlib.version "3.4.0") [ "test_plot_circuit_layout" ]
+    # Disabling slow tests for build constraints
+    ++ [
+      "test_all_examples"
+      "test_controlled_random_unitary"
+      "test_controlled_standard_gates_1"
+      "test_jupyter_jobs_pbars"
+      "test_lookahead_swap_higher_depth_width_is_better"
+      "test_move_measurements"
+      "test_job_monitor"
+      "test_wait_for_final_state"
+      "test_multi_controlled_y_rotation_matrix_basic_mode"
+      "test_two_qubit_weyl_decomposition_abc"
+      "test_isometry"
+      "test_parallel"
+      "test_random_state"
+      "test_random_clifford_valid"
+      "test_to_matrix"
+      "test_block_collection_reduces_1q_gate"
+      "test_multi_controlled_rotation_gate_matrices"
+      "test_block_collection_runs_for_non_cx_bases"
+      "test_with_two_qubit_reduction"
+      "test_basic_aer_qasm"
+      "test_hhl"
+      "test_H2_hamiltonian"
+      "test_max_evals_grouped_2"
+      "test_qaoa_qc_mixer_4"
+      "test_abelian_grouper_random_2"
+      "test_pauli_two_design"
+      "test_shor_factoring"
+      "test_sample_counts_memory_ghz"
+      "test_two_qubit_weyl_decomposition_ab0"
+      "test_sample_counts_memory_superposition"
+      "test_piecewise_polynomial_function"
+      "test_piecewise_chebyshev_mutability"
+      "test_bit_conditional_no_cregbundle"
+      "test_gradient_wrapper2"
+      "test_two_qubit_weyl_decomposition_abmb"
+      "test_two_qubit_weyl_decomposition_abb"
+      "test_vqe_qasm"
+      "test_dag_from_networkx"
+      "test_defaults_to_dict_46"
+    ];
 
   # Moves tests to $PACKAGEDIR/test. They can't be run from /build because of finding
   # cythonized modules and expecting to find some resource files in the test directory.
@@ -205,9 +213,8 @@ buildPythonPackage rec {
     popd
   '';
 
-
   meta = with lib; {
-    description = "Provides the foundations for Qiskit.";
+    description = "Provides the foundations for Qiskit";
     longDescription = ''
       Allows the user to write quantum circuits easily, and takes care of the constraints of real hardware.
     '';
diff --git a/pkgs/development/python-modules/qiskit/default.nix b/pkgs/development/python-modules/qiskit/default.nix
index 0977a1944e938..84d68da4b937c 100644
--- a/pkgs/development/python-modules/qiskit/default.nix
+++ b/pkgs/development/python-modules/qiskit/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, pythonOlder
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  pythonOlder,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
   # Python Inputs
-, qiskit-aer
-, qiskit-ibmq-provider
-, qiskit-ignis
-, qiskit-terra
+  qiskit-aer,
+  qiskit-ibmq-provider,
+  qiskit-ignis,
+  qiskit-terra,
   # Optional inputs
-, withOptionalPackages ? true
-, qiskit-finance
-, qiskit-machine-learning
-, qiskit-nature
-, qiskit-optimization
+  withOptionalPackages ? true,
+  qiskit-finance,
+  qiskit-machine-learning,
+  qiskit-nature,
+  qiskit-optimization,
   # Check Inputs
-, pytestCheckHook
+  pytestCheckHook,
 }:
 
 let
@@ -44,9 +45,7 @@ buildPythonPackage rec {
     hash = "sha256-Cjfn+9h8W08FcAlVC7b7O8Z+VGx5UeHosSgYJin/evE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     qiskit-aer
@@ -71,6 +70,9 @@ buildPythonPackage rec {
     downloadPage = "https://github.com/QISKit/qiskit/releases";
     changelog = "https://qiskit.org/documentation/release_notes.html";
     license = licenses.asl20;
-    maintainers = with maintainers; [ drewrisinger pandaman ];
+    maintainers = with maintainers; [
+      drewrisinger
+      pandaman
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/qmk-dotty-dict/default.nix b/pkgs/development/python-modules/qmk-dotty-dict/default.nix
index 39b7fe21b88c7..3e19b7bce5f12 100644
--- a/pkgs/development/python-modules/qmk-dotty-dict/default.nix
+++ b/pkgs/development/python-modules/qmk-dotty-dict/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, poetry-core
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -9,16 +10,14 @@ buildPythonPackage rec {
   version = "1.3.1";
   pyproject = true;
 
-  src = fetchFromGitHub  {
+  src = fetchFromGitHub {
     owner = "pawelzny";
     repo = "dotty_dict";
     rev = "refs/tags/v${version}";
     hash = "sha256-kY7o9wgfsV7oc5twOeuhG47C0Js6JzCt02S9Sd8dSGc=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   doCheck = false;
 
@@ -31,6 +30,6 @@ buildPythonPackage rec {
       some non-UTF8 locale settings.
     '';
     license = licenses.mit;
-    maintainers = with maintainers; [ babariviere ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/qnap-qsw/default.nix b/pkgs/development/python-modules/qnap-qsw/default.nix
index f4e9a1cdf8b82..697b0b98fe8a0 100644
--- a/pkgs/development/python-modules/qnap-qsw/default.nix
+++ b/pkgs/development/python-modules/qnap-qsw/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     sha256 = "WP1bGt7aAtSVFOMJgPXKqVSbi5zj9K7qoIVrYCrPGqk=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "qnap_qsw"
-  ];
+  pythonImportsCheck = [ "qnap_qsw" ];
 
   meta = with lib; {
     description = "Python library to interact with the QNAP QSW API";
diff --git a/pkgs/development/python-modules/qnapstats/default.nix b/pkgs/development/python-modules/qnapstats/default.nix
index e42b0753bd3e6..88f892c42e36d 100644
--- a/pkgs/development/python-modules/qnapstats/default.nix
+++ b/pkgs/development/python-modules/qnapstats/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, xmltodict
-, responses
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  xmltodict,
+  responses,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     xmltodict
   ];
 
-  nativeCheckInputs = [
-    responses
-  ];
+  nativeCheckInputs = [ responses ];
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/qpageview/default.nix b/pkgs/development/python-modules/qpageview/default.nix
index db5ea8ad1f7df..68e7c6a309d20 100644
--- a/pkgs/development/python-modules/qpageview/default.nix
+++ b/pkgs/development/python-modules/qpageview/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, python3Packages
-, pythonOlder
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  python3Packages,
+  pythonOlder,
 }:
 
 python3Packages.buildPythonPackage rec {
@@ -19,12 +20,16 @@ python3Packages.buildPythonPackage rec {
     hash = "sha256-XFMTOD7ums8sbFHUViEI9q6/rCjUmEtXAdd3/OmLsHU=";
   };
 
-  propagatedBuildInputs = with python3Packages; [ pyqt5 poppler-qt5 pycups ];
+  propagatedBuildInputs = with python3Packages; [
+    pyqt5
+    poppler-qt5
+    pycups
+  ];
 
   pythonImportsCheck = [ "qpageview" ];
 
   meta = with lib; {
-    description = "A page-based viewer widget for Qt5/PyQt5";
+    description = "Page-based viewer widget for Qt5/PyQt5";
     homepage = "https://github.com/frescobaldi/qpageview";
     changelog = "https://github.com/frescobaldi/qpageview/blob/${src.rev}/ChangeLog";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/python-modules/qpsolvers/default.nix b/pkgs/development/python-modules/qpsolvers/default.nix
index 9d3bba7ecb024..d8c20804134d7 100644
--- a/pkgs/development/python-modules/qpsolvers/default.nix
+++ b/pkgs/development/python-modules/qpsolvers/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, buildPythonPackage
-, unittestCheckHook
-, flit-core
-, numpy
-, scipy
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  unittestCheckHook,
+  flit-core,
+  numpy,
+  scipy,
 
-# optional dependencies
-, clarabel
-, cvxopt
-, daqp
-, ecos
-, gurobipy
-, osqp
-, quadprog
-, scs
+  # optional dependencies
+  clarabel,
+  cvxopt,
+  daqp,
+  ecos,
+  gurobipy,
+  osqp,
+  quadprog,
+  scs,
 }:
 buildPythonPackage rec {
   pname = "qpsolvers";
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     hash = "sha256-EU7/OGLeOIHw7wyNTibMmHZLAiRTCUFwjEaVNsHg1vw=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   pythonImportsCheck = [ "qpsolvers" ];
 
@@ -55,14 +54,20 @@ buildPythonPackage rec {
     # qpalm = [ qpalm ];
     quadprog = [ quadprog ];
     scs = [ scs ];
-    open_source_solvers = with passthru.optional-dependencies; lib.flatten [
-      clarabel cvxopt daqp ecos /* highs */ osqp /* piqp proxqp qpalm */ quadprog scs
-    ];
+    open_source_solvers =
+      with passthru.optional-dependencies;
+      lib.flatten [
+        clarabel
+        cvxopt
+        daqp
+        ecos # highs
+        osqp # piqp proxqp qpalm
+        quadprog
+        scs
+      ];
   };
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ] ++ passthru.optional-dependencies.open_source_solvers;
+  nativeCheckInputs = [ unittestCheckHook ] ++ passthru.optional-dependencies.open_source_solvers;
 
   meta = with lib; {
     changelog = "https://github.com/qpsolvers/qpsolvers/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/qrcode-terminal/default.nix b/pkgs/development/python-modules/qrcode-terminal/default.nix
new file mode 100644
index 0000000000000..2ec58510c7070
--- /dev/null
+++ b/pkgs/development/python-modules/qrcode-terminal/default.nix
@@ -0,0 +1,38 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  qrcode,
+  pillow,
+}:
+buildPythonPackage rec {
+  pname = "qrcode-terminal";
+  version = "0.8";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-Hitp5mK5NG6Y3ZWYMDPp1Dz/BkPYr9oSYF9RVCjmZsA=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    qrcode
+    pillow
+  ];
+
+  # have no test
+  doCheck = false;
+
+  pythonImportsCheck = [ "qrcode_terminal" ];
+
+  meta = {
+    description = "Display QRCode in Terminal";
+    homepage = "https://github.com/alishtory/qrcode-terminal";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ moraxyc ];
+    mainProgram = "qrcode-terminal-py";
+  };
+}
diff --git a/pkgs/development/python-modules/qrcode/default.nix b/pkgs/development/python-modules/qrcode/default.nix
index 3d7ad90dbaaf5..c0ac1f4bff047 100644
--- a/pkgs/development/python-modules/qrcode/default.nix
+++ b/pkgs/development/python-modules/qrcode/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mock
-, pillow
-, pypng
-, pytestCheckHook
-, pythonAtLeast
-, qrcode
-, setuptools
-, testers
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  pillow,
+  pypng,
+  pytestCheckHook,
+  pythonAtLeast,
+  qrcode,
+  setuptools,
+  testers,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-ndlpRUgn4Sfb2TaWsgdHI55tVA4IKTfJDxSslbMPWEU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     typing-extensions
@@ -33,9 +32,7 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  passthru.optional-dependencies.pil = [
-    pillow
-  ];
+  passthru.optional-dependencies.pil = [ pillow ];
 
   nativeCheckInputs = [
     mock
@@ -49,9 +46,7 @@ buildPythonPackage rec {
     };
   };
 
-  disabledTests = lib.optionals (pythonAtLeast "3.12") [
-    "test_change"
-  ] ++ [
+  disabledTests = lib.optionals (pythonAtLeast "3.12") [ "test_change" ] ++ [
     # Attempts to open a file which doesn't exist in sandbox
     "test_piped"
   ];
diff --git a/pkgs/development/python-modules/qreactor/default.nix b/pkgs/development/python-modules/qreactor/default.nix
index e4648919d9f7c..5caaf04047e80 100644
--- a/pkgs/development/python-modules/qreactor/default.nix
+++ b/pkgs/development/python-modules/qreactor/default.nix
@@ -1,10 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, twisted
-, qtpy
-, pyqt5
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  twisted,
+  qtpy,
+  pyqt5,
 }:
 
 buildPythonPackage rec {
@@ -18,19 +18,14 @@ buildPythonPackage rec {
     sha256 = "1nb5iwg0nfz86shw28a2kj5pyhd4jvvxhf73fhnfbl8scgnvjv9h";
   };
 
-  disabled = pythonOlder "3.0";
-
   propagatedBuildInputs = [
-    twisted qtpy
+    twisted
+    qtpy
   ];
 
-  nativeCheckInputs = [
-    pyqt5
-  ];
+  nativeCheckInputs = [ pyqt5 ];
 
-  pythonImportsCheck = [
-    "qreactor"
-  ];
+  pythonImportsCheck = [ "qreactor" ];
 
   meta = with lib; {
     homepage = "https://github.com/frmdstryr/qt-reactor";
diff --git a/pkgs/development/python-modules/qscintilla-qt5/default.nix b/pkgs/development/python-modules/qscintilla-qt5/default.nix
index 46622bc3e9911..bab2320b0d6ff 100644
--- a/pkgs/development/python-modules/qscintilla-qt5/default.nix
+++ b/pkgs/development/python-modules/qscintilla-qt5/default.nix
@@ -1,15 +1,25 @@
-{ lib
-, pythonPackages
-, qscintilla
-, qtbase
-, qmake
-, qtmacextras
-, stdenv
+{
+  lib,
+  pythonPackages,
+  qscintilla,
+  qtbase,
+  qmake,
+  qtmacextras,
+  stdenv,
 }:
 
 let
-  inherit (pythonPackages) buildPythonPackage isPy3k python sip sipbuild pyqt5 pyqt-builder;
-in buildPythonPackage rec {
+  inherit (pythonPackages)
+    buildPythonPackage
+    isPy3k
+    python
+    sip
+    sipbuild
+    pyqt5
+    pyqt-builder
+    ;
+in
+buildPythonPackage rec {
   pname = "qscintilla-qt5";
   version = qscintilla.version;
   src = qscintilla.src;
@@ -17,30 +27,38 @@ in buildPythonPackage rec {
 
   disabled = !isPy3k;
 
-  nativeBuildInputs = [ sip qmake pyqt-builder qscintilla pythonPackages.setuptools ];
+  nativeBuildInputs = [
+    sip
+    qmake
+    pyqt-builder
+    qscintilla
+    pythonPackages.setuptools
+  ];
   buildInputs = [ qtbase ];
   propagatedBuildInputs = [ pyqt5 ] ++ lib.optionals stdenv.isDarwin [ qtmacextras ];
 
   dontWrapQtApps = true;
 
-  postPatch = ''
-    cd Python
-    cp pyproject-qt5.toml pyproject.toml
-    echo '[tool.sip.project]' >> pyproject.toml
-    echo 'sip-include-dirs = [ "${pyqt5}/${python.sitePackages}/PyQt5/bindings"]' \
-       >> pyproject.toml
-  '' + lib.optionalString stdenv.isDarwin ''
-    substituteInPlace project.py \
-      --replace \
-      "if self.project.qsci_external_lib:
-                if self.qsci_features_dir is not None:" \
-      "if self.project.qsci_external_lib:
-                self.builder_settings.append('QT += widgets')
+  postPatch =
+    ''
+      cd Python
+      cp pyproject-qt5.toml pyproject.toml
+      echo '[tool.sip.project]' >> pyproject.toml
+      echo 'sip-include-dirs = [ "${pyqt5}/${python.sitePackages}/PyQt5/bindings"]' \
+         >> pyproject.toml
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      substituteInPlace project.py \
+        --replace \
+        "if self.project.qsci_external_lib:
+                  if self.qsci_features_dir is not None:" \
+        "if self.project.qsci_external_lib:
+                  self.builder_settings.append('QT += widgets')
 
-                self.builder_settings.append('QT += printsupport')
+                  self.builder_settings.append('QT += printsupport')
 
-                if self.qsci_features_dir is not None:"
-  '';
+                  if self.qsci_features_dir is not None:"
+    '';
 
   dontConfigure = true;
 
@@ -60,7 +78,7 @@ in buildPythonPackage rec {
   pythonImportsCheck = [ "PyQt5.Qsci" ];
 
   meta = with lib; {
-    description = "A Python binding to QScintilla, Qt based text editing control";
+    description = "Python binding to QScintilla, Qt based text editing control";
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ lsix ];
     homepage = "https://www.riverbankcomputing.com/software/qscintilla/";
diff --git a/pkgs/development/python-modules/qstylizer/default.nix b/pkgs/development/python-modules/qstylizer/default.nix
index ee49d37055d4c..22aa5d14843b0 100644
--- a/pkgs/development/python-modules/qstylizer/default.nix
+++ b/pkgs/development/python-modules/qstylizer/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, inflection
-, pbr
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, tinycss2
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  inflection,
+  pbr,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  tinycss2,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
 
   PBR_VERSION = version;
 
-  nativeBuildInputs = [
-    pbr
-  ];
+  nativeBuildInputs = [ pbr ];
 
   propagatedBuildInputs = [
     inflection
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     pytest-mock
   ];
 
-  pythonImportsCheck = [
-    "qstylizer"
-  ];
+  pythonImportsCheck = [ "qstylizer" ];
 
   meta = with lib; {
     description = "Qt stylesheet generation utility for PyQt/PySide";
diff --git a/pkgs/development/python-modules/qt-material/default.nix b/pkgs/development/python-modules/qt-material/default.nix
index 25885676a9daf..2a6d64c55e22d 100644
--- a/pkgs/development/python-modules/qt-material/default.nix
+++ b/pkgs/development/python-modules/qt-material/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jinja2
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jinja2,
 }:
 
 buildPythonPackage rec {
@@ -14,13 +15,9 @@ buildPythonPackage rec {
     hash = "sha256-tdu1relyF8964za7fAR8kL6zncfyBIpJjJFq1fL3riM=";
   };
 
-  propagatedBuildInputs = [
-    jinja2
-  ];
+  propagatedBuildInputs = [ jinja2 ];
 
-  pythonImportsCheck = [
-    "qt_material"
-  ];
+  pythonImportsCheck = [ "qt_material" ];
 
   meta = with lib; {
     description = "Material inspired stylesheet for PySide2, PySide6, PyQt5 and PyQt6";
diff --git a/pkgs/development/python-modules/qt5reactor/default.nix b/pkgs/development/python-modules/qt5reactor/default.nix
index 07420ca1502d9..08b2d7c2c1a9a 100644
--- a/pkgs/development/python-modules/qt5reactor/default.nix
+++ b/pkgs/development/python-modules/qt5reactor/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyqt5
-, twisted
-, pytest-twisted
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyqt5,
+  twisted,
+  pytest-twisted,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/qtawesome/default.nix b/pkgs/development/python-modules/qtawesome/default.nix
index b5e668c10a685..6cf875c9f1553 100644
--- a/pkgs/development/python-modules/qtawesome/default.nix
+++ b/pkgs/development/python-modules/qtawesome/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyqt5
-, pytestCheckHook
-, pythonOlder
-, qtpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyqt5,
+  pytestCheckHook,
+  pythonOlder,
+  qtpy,
 }:
 
 buildPythonPackage rec {
@@ -26,16 +27,12 @@ buildPythonPackage rec {
     qtpy
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Requires https://github.com/boylea/qtbot which is unmaintained
   doCheck = false;
 
-  pythonImportsCheck = [
-    "qtawesome"
-  ];
+  pythonImportsCheck = [ "qtawesome" ];
 
   meta = with lib; {
     description = "Iconic fonts in PyQt and PySide applications";
diff --git a/pkgs/development/python-modules/qtconsole/default.nix b/pkgs/development/python-modules/qtconsole/default.nix
index db6f65abdda35..b8e1280ceb3d2 100644
--- a/pkgs/development/python-modules/qtconsole/default.nix
+++ b/pkgs/development/python-modules/qtconsole/default.nix
@@ -1,34 +1,36 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, ipykernel
-, jupyter-core
-, jupyter-client
-, ipython-genutils
-, pygments
-, pyqt5
-, pytestCheckHook
-, pythonOlder
-, pyzmq
-, qtpy
-, traitlets
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  ipykernel,
+  jupyter-core,
+  jupyter-client,
+  pygments,
+  pyqt5,
+  pytestCheckHook,
+  pythonOlder,
+  pyzmq,
+  qtpy,
+  setuptools,
+  traitlets,
 }:
 
 buildPythonPackage rec {
   pname = "qtconsole";
-  version = "5.5.1";
-  format = "setuptools";
+  version = "5.5.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-oOgGxpUduUkGKOTfgMrslmm2UUnHukD5vwM8AlpbVrw=";
+    hash = "sha256-a1+xEnSyl0Y3Bq+E3LvVySJzsfYZ5tJdCIdLCohRaYk=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     ipykernel
-    ipython-genutils
     jupyter-core
     jupyter-client
     pygments
@@ -38,16 +40,12 @@ buildPythonPackage rec {
     traitlets
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # : cannot connect to X server
   doCheck = false;
 
-  pythonImportsCheck = [
-    "qtconsole"
-  ];
+  pythonImportsCheck = [ "qtconsole" ];
 
   meta = with lib; {
     description = "Jupyter Qt console";
diff --git a/pkgs/development/python-modules/qtile-extras/default.nix b/pkgs/development/python-modules/qtile-extras/default.nix
index 84cc437e48ca4..28da64efdc1d4 100644
--- a/pkgs/development/python-modules/qtile-extras/default.nix
+++ b/pkgs/development/python-modules/qtile-extras/default.nix
@@ -11,6 +11,7 @@
   pytest-asyncio,
   pytest-lazy-fixture,
   pytestCheckHook,
+  python-dateutil,
   qtile,
   requests,
   setuptools-scm,
@@ -19,14 +20,14 @@
 
 buildPythonPackage rec {
   pname = "qtile-extras";
-  version = "0.25.0";
+  version = "0.26.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "elParaguayo";
     repo = "qtile-extras";
     rev = "refs/tags/v${version}";
-    hash = "sha256-OYzSKOVg4D5gKxaEreclYq3D16dl8ddLipSdifokDNY=";
+    hash = "sha256-ywqZggn1k7zezk5CS1y6EWZfLoIWMHmGO8mvqxBaB9g=";
   };
 
   build-system = [ setuptools-scm ];
@@ -41,6 +42,7 @@ buildPythonPackage rec {
     pytest-asyncio
     pytest-lazy-fixture
     pytestCheckHook
+    python-dateutil
     qtile
     requests
     xorgserver
diff --git a/pkgs/development/python-modules/qtile/default.nix b/pkgs/development/python-modules/qtile/default.nix
index 6dc9cc0119436..e65aad91904a7 100644
--- a/pkgs/development/python-modules/qtile/default.nix
+++ b/pkgs/development/python-modules/qtile/default.nix
@@ -1,46 +1,48 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cairocffi
-, dbus-next
-, dbus-python
-, glib
-, iwlib
-, libdrm
-, libinput
-, libxkbcommon
-, mpd2
-, pango
-, pixman
-, pkg-config
-, psutil
-, pulsectl-asyncio
-, pygobject3
-, python-dateutil
-, pywayland
-, pywlroots
-, pyxdg
-, setuptools
-, setuptools-scm
-, wayland
-, wlroots
-, xcbutilcursor
-, xcbutilwm
-, xcffib
-, xkbcommon
-, nixosTests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cairocffi,
+  dbus-next,
+  glib,
+  iwlib,
+  libcst,
+  libdrm,
+  libinput,
+  libxkbcommon,
+  mpd2,
+  pango,
+  pixman,
+  pkg-config,
+  psutil,
+  pulsectl-asyncio,
+  pygobject3,
+  pytz,
+  pywayland,
+  pywlroots,
+  pyxdg,
+  setuptools,
+  setuptools-scm,
+  wayland,
+  wlroots,
+  xcbutilcursor,
+  xcbutilwm,
+  xcffib,
+  xkbcommon,
+  nixosTests,
+  extraPackages ? [ ],
 }:
 
 buildPythonPackage rec {
   pname = "qtile";
-  version = "0.25.0";
-  format = "setuptools";
+  version = "0.26.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "qtile";
     repo = "qtile";
     rev = "refs/tags/v${version}";
-    hash = "sha256-j5hpXfUSDUT9nBr6CafIzqdTYQxSWok+ZlQA7bGdVvk=";
+    hash = "sha256-htgrfGBGRlJSm88mmwW92ikXR/M1lr0OTom16TIvdpo=";
   };
 
   patches = [
@@ -49,32 +51,32 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace libqtile/pangocffi.py \
-      --replace libgobject-2.0.so.0 ${glib.out}/lib/libgobject-2.0.so.0 \
-      --replace libpangocairo-1.0.so.0 ${pango.out}/lib/libpangocairo-1.0.so.0 \
-      --replace libpango-1.0.so.0 ${pango.out}/lib/libpango-1.0.so.0
+      --replace-fail libgobject-2.0.so.0 ${glib.out}/lib/libgobject-2.0.so.0 \
+      --replace-fail libpangocairo-1.0.so.0 ${pango.out}/lib/libpangocairo-1.0.so.0 \
+      --replace-fail libpango-1.0.so.0 ${pango.out}/lib/libpango-1.0.so.0
     substituteInPlace libqtile/backend/x11/xcursors.py \
-      --replace libxcb-cursor.so.0 ${xcbutilcursor.out}/lib/libxcb-cursor.so.0
+      --replace-fail libxcb-cursor.so.0 ${xcbutilcursor.out}/lib/libxcb-cursor.so.0
     substituteInPlace libqtile/backend/wayland/cffi/build.py \
-        --replace /usr/include/pixman-1 ${lib.getDev pixman}/include \
-        --replace /usr/include/libdrm ${lib.getDev libdrm}/include/libdrm
+        --replace-fail /usr/include/pixman-1 ${lib.getDev pixman}/include \
+        --replace-fail /usr/include/libdrm ${lib.getDev libdrm}/include/libdrm
   '';
 
-  nativeBuildInputs = [
-    pkg-config
+  build-system = [
     setuptools
     setuptools-scm
+    pkg-config
   ];
 
-  propagatedBuildInputs = [
+  dependencies = extraPackages ++ [
     (cairocffi.override { withXcffib = true; })
     dbus-next
-    dbus-python
     iwlib
+    libcst
     mpd2
     psutil
     pulsectl-asyncio
     pygobject3
-    python-dateutil
+    pytz
     pywayland
     pywlroots
     pyxdg
@@ -96,12 +98,20 @@ buildPythonPackage rec {
     providedSessions = [ "qtile" ];
   };
 
+  postInstall = ''
+    install resources/qtile.desktop -Dt $out/share/xsessions
+    install resources/qtile-wayland.desktop -Dt $out/share/wayland-sessions
+  '';
+
   meta = with lib; {
     homepage = "http://www.qtile.org/";
     license = licenses.mit;
-    description = "A small, flexible, scriptable tiling window manager written in Python";
+    description = "Small, flexible, scriptable tiling window manager written in Python";
     mainProgram = "qtile";
     platforms = platforms.linux;
-    maintainers = with maintainers; [ arjan-s ];
+    maintainers = with maintainers; [
+      arjan-s
+      sigmanificient
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/qtile/wrapper.nix b/pkgs/development/python-modules/qtile/wrapper.nix
deleted file mode 100644
index b4f6e4c2e23b2..0000000000000
--- a/pkgs/development/python-modules/qtile/wrapper.nix
+++ /dev/null
@@ -1,8 +0,0 @@
-{ python3 }:
-
-(python3.withPackages (_: [ python3.pkgs.qtile ])).overrideAttrs (_: {
-  # restore some qtile attrs, beautify name
-  inherit (python3.pkgs.qtile) pname version meta;
-  name = with python3.pkgs.qtile; "${pname}-${version}";
-  passthru.unwrapped = python3.pkgs.qtile;
-})
diff --git a/pkgs/development/python-modules/qtpy/default.nix b/pkgs/development/python-modules/qtpy/default.nix
index 5aef7c38edff1..cdac0a59c71d1 100644
--- a/pkgs/development/python-modules/qtpy/default.nix
+++ b/pkgs/development/python-modules/qtpy/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-
-# propagates
-, packaging
-
-# tests
-, pyqt5
-, pyside2
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+
+  # propagates
+  packaging,
+
+  # tests
+  pyqt5,
+  pyside2,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-paFf/VGVUKE2G9xW/8B/2lamr3KS8Xx7OV1Ag69jKYc=";
   };
 
-  propagatedBuildInputs = [
-    packaging
-  ];
+  propagatedBuildInputs = [ packaging ];
 
   doCheck = false; # ModuleNotFoundError: No module named 'PyQt5.QtConnectivity'
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/quadprog/default.nix b/pkgs/development/python-modules/quadprog/default.nix
index c566887bb3634..d592c443e1d56 100644
--- a/pkgs/development/python-modules/quadprog/default.nix
+++ b/pkgs/development/python-modules/quadprog/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, cython
-, setuptools
-, numpy
-, pytestCheckHook
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  cython,
+  setuptools,
+  numpy,
+  pytestCheckHook,
+  scipy,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/qualysclient/default.nix b/pkgs/development/python-modules/qualysclient/default.nix
index be16a8c48cc56..39c3c47e67be8 100644
--- a/pkgs/development/python-modules/qualysclient/default.nix
+++ b/pkgs/development/python-modules/qualysclient/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, certifi
-, charset-normalizer
-, fetchFromGitHub
-, idna
-, lxml
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, requests
-, responses
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  certifi,
+  charset-normalizer,
+  fetchFromGitHub,
+  idna,
+  lxml,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  responses,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -47,9 +48,7 @@ buildPythonPackage rec {
     responses
   ];
 
-  pythonImportsCheck = [
-    "qualysclient"
-  ];
+  pythonImportsCheck = [ "qualysclient" ];
 
   meta = with lib; {
     description = "Python SDK for interacting with the Qualys API";
diff --git a/pkgs/development/python-modules/quamash/default.nix b/pkgs/development/python-modules/quamash/default.nix
index 7257f480696d0..b920d7421f8e3 100644
--- a/pkgs/development/python-modules/quamash/default.nix
+++ b/pkgs/development/python-modules/quamash/default.nix
@@ -1,6 +1,12 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, pytest, isPy3k, pyqt5, pyqt ? pyqt5
-, fetchpatch
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
+  isPy3k,
+  pyqt5,
+  pyqt ? pyqt5,
+  fetchpatch,
 }:
 
 buildPythonPackage rec {
@@ -30,7 +36,7 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ pytest ];
   checkPhase = ''
-     pytest -k 'test_qthreadexec.py' # the others cause the test execution to be aborted, I think because of asyncio
+    pytest -k 'test_qthreadexec.py' # the others cause the test execution to be aborted, I think because of asyncio
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/quandl/default.nix b/pkgs/development/python-modules/quandl/default.nix
index 85a8fdd12bccd..ea7a305eb3770 100644
--- a/pkgs/development/python-modules/quandl/default.nix
+++ b/pkgs/development/python-modules/quandl/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, factory-boy
-, faker
-, fetchPypi
-, httpretty
-, importlib-metadata
-, inflection
-, jsondate
-, mock
-, more-itertools
-, numpy
-, pandas
-, parameterized
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, requests
-, six
+{
+  lib,
+  buildPythonPackage,
+  factory-boy,
+  faker,
+  fetchPypi,
+  httpretty,
+  importlib-metadata,
+  inflection,
+  jsondate,
+  mock,
+  more-itertools,
+  numpy,
+  pandas,
+  parameterized,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  requests,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     hash = "sha256-bguC+8eGFhCzV3xTlyd8QiDgZe7g/tTkbNa2AhZVtkw=";
   };
 
-  patches = [
-    ./pandas2-datetime-removal.patch
-  ];
+  patches = [ ./pandas2-datetime-removal.patch ];
 
   propagatedBuildInputs = [
     pandas
@@ -44,9 +43,7 @@ buildPythonPackage rec {
     python-dateutil
     six
     more-itertools
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   nativeCheckInputs = [
     factory-boy
@@ -58,9 +55,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "quandl"
-  ];
+  pythonImportsCheck = [ "quandl" ];
 
   meta = with lib; {
     description = "Quandl Python client library";
diff --git a/pkgs/development/python-modules/quantile-forest/default.nix b/pkgs/development/python-modules/quantile-forest/default.nix
index 3b6bd12cd4c83..4cd74184b89f4 100644
--- a/pkgs/development/python-modules/quantile-forest/default.nix
+++ b/pkgs/development/python-modules/quantile-forest/default.nix
@@ -16,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "quantile-forest";
-  version = "1.3.4";
+  version = "1.3.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
     owner = "zillow";
     repo = "quantile-forest";
     rev = "refs/tags/v${version}";
-    hash = "sha256-hzLJq0y+qjc48PfHW3i73x9safGOy0V1HEQ5WR8IXpI=";
+    hash = "sha256-3EcluHUDtAYfaHycgyCAaolRcChecrPRnMaUFrpzMIQ=";
   };
 
   build-system = [
diff --git a/pkgs/development/python-modules/quantile-python/default.nix b/pkgs/development/python-modules/quantile-python/default.nix
index 98206ff8aaba2..5d15c92520563 100644
--- a/pkgs/development/python-modules/quantile-python/default.nix
+++ b/pkgs/development/python-modules/quantile-python/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/quantiphy-eval/default.nix b/pkgs/development/python-modules/quantiphy-eval/default.nix
index 92e1f94c1adcf..a95cf4903b5dd 100644
--- a/pkgs/development/python-modules/quantiphy-eval/default.nix
+++ b/pkgs/development/python-modules/quantiphy-eval/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, inform
-, pythonOlder
-, sly
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  inform,
+  pythonOlder,
+  sly,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-7VHcuINhe17lRNkHUnZkVOEtD6mVWk5gu0NbrLZwprg=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     inform
diff --git a/pkgs/development/python-modules/quantiphy/default.nix b/pkgs/development/python-modules/quantiphy/default.nix
index 56790351dcd66..66026ad8eafbe 100644
--- a/pkgs/development/python-modules/quantiphy/default.nix
+++ b/pkgs/development/python-modules/quantiphy/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pytestCheckHook
-, pythonOlder
-, inform
-, parametrize-from-file
-, setuptools
-, voluptuous
-, quantiphy-eval
-, rkm-codes
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pytestCheckHook,
+  pythonOlder,
+  inform,
+  parametrize-from-file,
+  setuptools,
+  voluptuous,
+  quantiphy-eval,
+  rkm-codes,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-QXCs93plNSVNiCLEoXx2raH6EbH1rXyjvpBfl+8eXjc=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     quantiphy-eval
@@ -43,9 +42,7 @@ buildPythonPackage rec {
     voluptuous
   ];
 
-  pythonImportsCheck = [
-    "quantiphy"
-  ];
+  pythonImportsCheck = [ "quantiphy" ];
 
   meta = with lib; {
     description = "Module for physical quantities (numbers with units)";
diff --git a/pkgs/development/python-modules/quantities/default.nix b/pkgs/development/python-modules/quantities/default.nix
index 0461c5bc83c85..74f28e526ff8d 100644
--- a/pkgs/development/python-modules/quantities/default.nix
+++ b/pkgs/development/python-modules/quantities/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -25,22 +26,16 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # test fails with numpy 1.24
     "test_mul"
   ];
 
-  pythonImportsCheck = [
-    "quantities"
-  ];
+  pythonImportsCheck = [ "quantities" ];
 
   meta = with lib; {
     description = "Quantities is designed to handle arithmetic and conversions of physical quantities";
diff --git a/pkgs/development/python-modules/quantulum3/default.nix b/pkgs/development/python-modules/quantulum3/default.nix
index ae35505d86480..889b15a79c178 100644
--- a/pkgs/development/python-modules/quantulum3/default.nix
+++ b/pkgs/development/python-modules/quantulum3/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, pythonAtLeast
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  pythonAtLeast,
+  fetchFromGitHub,
   # build inputs
-, inflect
-, num2words
-, numpy
-, scipy
-, scikit-learn
-, joblib
-, wikipedia
-, stemming
-, setuptools
+  inflect,
+  num2words,
+  numpy,
+  scipy,
+  scikit-learn,
+  joblib,
+  wikipedia,
+  stemming,
+  setuptools,
 }:
 let
   pname = "quantulum3";
diff --git a/pkgs/development/python-modules/quantum-gateway/default.nix b/pkgs/development/python-modules/quantum-gateway/default.nix
index 43c9c8dcb2d36..6b498ae2272dd 100644
--- a/pkgs/development/python-modules/quantum-gateway/default.nix
+++ b/pkgs/development/python-modules/quantum-gateway/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, esprima
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
-, setuptools-scm
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  esprima,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
+  setuptools-scm,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -35,9 +36,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "quantum_gateway"
-  ];
+  pythonImportsCheck = [ "quantum_gateway" ];
 
   disabledTests = [
     # Tests require network features
diff --git a/pkgs/development/python-modules/quart-cors/default.nix b/pkgs/development/python-modules/quart-cors/default.nix
index 78f3f0311f880..0569755457246 100644
--- a/pkgs/development/python-modules/quart-cors/default.nix
+++ b/pkgs/development/python-modules/quart-cors/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-
-# build-system
-, poetry-core
-
-# propagates
-, quart
-, typing-extensions
-
-# tests
-, pytestCheckHook
-, pytest-asyncio
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # build-system
+  poetry-core,
+
+  # propagates
+  quart,
+  typing-extensions,
+
+  # tests
+  pytestCheckHook,
+  pytest-asyncio,
 }:
 
 buildPythonPackage rec {
@@ -27,24 +28,16 @@ buildPythonPackage rec {
     hash = "sha256-qUzs0CTZHf3fGADBXPkd3CjZ6dnz1t3cTxflMErvz/k=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace "--no-cov-on-fail " ""
   '';
 
-  propagatedBuildInputs = [
-    quart
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ quart ] ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ];
 
-  pythonImportsCheck = [
-    "quart_cors"
-  ];
+  pythonImportsCheck = [ "quart_cors" ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/quart/default.nix b/pkgs/development/python-modules/quart/default.nix
index 515e4c9a324dc..0388b58a34c99 100644
--- a/pkgs/development/python-modules/quart/default.nix
+++ b/pkgs/development/python-modules/quart/default.nix
@@ -1,75 +1,74 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build-system
-, poetry-core
+  # build-system
+  poetry-core,
 
-# propagates
-, aiofiles
-, blinker
-, click
-, flask
-, hypercorn
-, importlib-metadata
-, itsdangerous
-, jinja2
-, markupsafe
-, pydata-sphinx-theme
-, python-dotenv
-, typing-extensions
-, werkzeug
+  # propagates
+  aiofiles,
+  blinker,
+  click,
+  flask,
+  hypercorn,
+  importlib-metadata,
+  itsdangerous,
+  jinja2,
+  markupsafe,
+  pydata-sphinx-theme,
+  python-dotenv,
+  typing-extensions,
+  werkzeug,
 
-# tests
-, hypothesis
-, mock
-, py
-, pytest-asyncio
-, pytest7CheckHook
+  # tests
+  hypothesis,
+  mock,
+  py,
+  pytest-asyncio,
+  pytest7CheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "quart";
-  version = "0.19.5";
+  version = "0.19.6";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pallets";
     repo = "quart";
     rev = "refs/tags/${version}";
-    hash = "sha256-T2+76AVvXrads7AbjNAExV0i4doQ2xIUEwekVB2JXAo=";
+    hash = "sha256-oR03Qu93F+pcWywbdYgMKIAdohBNezlGz04ws3yGAxs=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace "--no-cov-on-fail " ""
   '';
 
-  dependencies = [
-    aiofiles
-    blinker
-    click
-    flask
-    hypercorn
-    itsdangerous
-    jinja2
-    markupsafe
-    pydata-sphinx-theme
-    python-dotenv
-    werkzeug
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-    typing-extensions
-  ];
+  dependencies =
+    [
+      aiofiles
+      blinker
+      click
+      flask
+      hypercorn
+      itsdangerous
+      jinja2
+      markupsafe
+      pydata-sphinx-theme
+      python-dotenv
+      werkzeug
+    ]
+    ++ lib.optionals (pythonOlder "3.10") [
+      importlib-metadata
+      typing-extensions
+    ];
 
-  pythonImportsCheck = [
-    "quart"
-  ];
+  pythonImportsCheck = [ "quart" ];
 
   nativeCheckInputs = [
     hypothesis
@@ -80,7 +79,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "An async Python micro framework for building web applications";
+    description = "Async Python micro framework for building web applications";
     mainProgram = "quart";
     homepage = "https://github.com/pallets/quart/";
     changelog = "https://github.com/pallets/quart/blob/${src.rev}/CHANGES.rst";
diff --git a/pkgs/development/python-modules/quaternion/default.nix b/pkgs/development/python-modules/quaternion/default.nix
index 6307334edfdf8..fac428090a518 100644
--- a/pkgs/development/python-modules/quaternion/default.nix
+++ b/pkgs/development/python-modules/quaternion/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, oldest-supported-numpy
-, scipy
-, numba
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  oldest-supported-numpy,
+  scipy,
+  numba,
 }:
 
 buildPythonPackage rec {
@@ -25,7 +26,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A package add built-in support for quaternions to numpy";
+    description = "Package add built-in support for quaternions to numpy";
     homepage = "https://github.com/moble/quaternion";
     license = licenses.mit;
     maintainers = [ maintainers.ocfox ];
diff --git a/pkgs/development/python-modules/qudida/default.nix b/pkgs/development/python-modules/qudida/default.nix
index 48d83c4d14ee7..7e0bac314b258 100644
--- a/pkgs/development/python-modules/qudida/default.nix
+++ b/pkgs/development/python-modules/qudida/default.nix
@@ -1,12 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, opencv4
-, pythonOlder
-, pythonRelaxDepsHook
-, scikit-learn
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  opencv4,
+  pythonOlder,
+  scikit-learn,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +21,8 @@ buildPythonPackage rec {
     hash = "sha256-2xmOKIerDJqgAj5WWvv/Qd+3azYfhf1eE/eA11uhjMg=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
-  pythonRemoveDeps = [
-    "opencv-python"
-  ];
+  pythonRemoveDeps = [ "opencv-python" ];
 
   propagatedBuildInputs = [
     numpy
diff --git a/pkgs/development/python-modules/questionary/default.nix b/pkgs/development/python-modules/questionary/default.nix
index 98a50c6079ca0..ea68441599303 100644
--- a/pkgs/development/python-modules/questionary/default.nix
+++ b/pkgs/development/python-modules/questionary/default.nix
@@ -1,12 +1,12 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, prompt-toolkit
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  prompt-toolkit,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,20 +25,13 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "prompt_toolkit"
-  ];
+  pythonRelaxDeps = [ "prompt_toolkit" ];
 
-  propagatedBuildInputs = [
-    prompt-toolkit
-  ];
+  propagatedBuildInputs = [ prompt-toolkit ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = lib.optionalString stdenv.isDarwin ''
     ulimit -n 1024
@@ -49,9 +42,7 @@ buildPythonPackage rec {
     "test_blank_line_fix"
   ];
 
-  pythonImportsCheck = [
-    "questionary"
-  ];
+  pythonImportsCheck = [ "questionary" ];
 
   meta = with lib; {
     description = "Python library to build command line user prompts";
diff --git a/pkgs/development/python-modules/queuelib/default.nix b/pkgs/development/python-modules/queuelib/default.nix
index e9643b813d77b..9274a8157d977 100644
--- a/pkgs/development/python-modules/queuelib/default.nix
+++ b/pkgs/development/python-modules/queuelib/default.nix
@@ -1,26 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
 }:
 
 buildPythonPackage rec {
   pname = "queuelib";
-  version = "1.6.2";
+  version = "1.7.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "4b207267f2642a8699a1f806045c56eb7ad1a85a10c0e249884580d139c2fcd2";
+    sha256 = "sha256-KFUWIJbPAjBRCJCzVDeeocD/GdEF0xR9NJ0kM7siKwg=";
   };
 
   buildInputs = [ pytest ];
 
   meta = with lib; {
-    description = "A collection of persistent (disk-based) queues for Python";
+    description = "Collection of persistent (disk-based) queues for Python";
     homepage = "https://github.com/scrapy/queuelib";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/quil/default.nix b/pkgs/development/python-modules/quil/default.nix
index 41f79d79bdf3d..b03c8998e8c0f 100644
--- a/pkgs/development/python-modules/quil/default.nix
+++ b/pkgs/development/python-modules/quil/default.nix
@@ -1,5 +1,6 @@
 {
   lib,
+  stdenv,
   buildPythonPackage,
   pythonOlder,
   fetchFromGitHub,
@@ -7,11 +8,12 @@
   numpy,
   pytestCheckHook,
   syrupy,
+  libiconv,
 }:
 
 buildPythonPackage rec {
   pname = "quil";
-  version = "0.7.1";
+  version = "0.10.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,26 +22,24 @@ buildPythonPackage rec {
     owner = "rigetti";
     repo = "quil-rs";
     rev = "quil-py/v${version}";
-    hash = "sha256-GFePbCJnVbzL4cpQ7fy1tk2l7NhAyTVW63lVYTv0/Oo=";
+    hash = "sha256-GJ39pvIqYs2bMGAHJL8OgB0OfmIpo/k3FxorYvdOvhI=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     name = "${pname}-${version}";
     inherit src;
-    hash = "sha256-catUGCFbkvov1z52f6eyxogflu61VcjIItgEVEWzkpY=";
+    hash = "sha256-VvnjdCFrpo/rDLNJrHpZoV+E+fQGgNW/nBOvMG91sHQ=";
   };
 
   buildAndTestSubdir = "quil-py";
 
-  preConfigure = ''
-    cargo metadata --offline
-  '';
-
   build-system = [
     rustPlatform.cargoSetupHook
     rustPlatform.maturinBuildHook
   ];
 
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
+
   dependencies = [ numpy ];
 
   pythonImportsCheck = [ "numpy" ];
diff --git a/pkgs/development/python-modules/quixote/default.nix b/pkgs/development/python-modules/quixote/default.nix
index 557a59390fb93..cfbabdb57e449 100644
--- a/pkgs/development/python-modules/quixote/default.nix
+++ b/pkgs/development/python-modules/quixote/default.nix
@@ -32,7 +32,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A small and flexible Python Web application framework";
+    description = "Small and flexible Python Web application framework";
     homepage = "https://pypi.org/project/Quixote/";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/qutip/default.nix b/pkgs/development/python-modules/qutip/default.nix
index d30759869cc8e..8cc5ccba6c306 100644
--- a/pkgs/development/python-modules/qutip/default.nix
+++ b/pkgs/development/python-modules/qutip/default.nix
@@ -1,25 +1,27 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, cvxopt
-, cvxpy
-, cython_0
-, fetchFromGitHub
-, ipython
-, matplotlib
-, numpy
-, packaging
-, pytest-rerunfailures
-, pytestCheckHook
-, python
-, pythonOlder
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  cvxopt,
+  cvxpy,
+  cython_0,
+  fetchFromGitHub,
+  ipython,
+  matplotlib,
+  numpy,
+  oldest-supported-numpy,
+  packaging,
+  pytest-rerunfailures,
+  pytestCheckHook,
+  python,
+  pythonOlder,
+  scipy,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "qutip";
-  version = "4.7.5";
-  format = "setuptools";
+  version = "5.0.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -27,11 +29,13 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-4nXZPZFu9L+Okha3qvPil1KvLGO1EbrzotQjqQ8r9l8=";
+    hash = "sha256-lMPzgmUaoEQB5TzmqEJFiFTuS3AGpyMMjPHlPUKTLvk=";
   };
 
   nativeBuildInputs = [
     cython_0
+    setuptools
+    oldest-supported-numpy
   ];
 
   propagatedBuildInputs = [
@@ -45,11 +49,6 @@ buildPythonPackage rec {
     pytest-rerunfailures
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  # Disabling OpenMP support on Darwin.
-  setupPyGlobalFlags = lib.optionals (!stdenv.isDarwin) [
-    "--with-openmp"
-  ];
-
   # QuTiP tries to access the home directory to create an rc file for us.
   # We need to go to another directory to run the tests from there.
   # This is due to the Cython-compiled modules not being in the correct location
@@ -67,17 +66,11 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "qutip"
-  ];
+  pythonImportsCheck = [ "qutip" ];
 
   passthru.optional-dependencies = {
-    graphics = [
-      matplotlib
-    ];
-    ipython = [
-      ipython
-    ];
+    graphics = [ matplotlib ];
+    ipython = [ ipython ];
     semidefinite = [
       cvxpy
       cvxopt
diff --git a/pkgs/development/python-modules/r2pipe/default.nix b/pkgs/development/python-modules/r2pipe/default.nix
index ab043450e40e1..d248b962f0d3d 100644
--- a/pkgs/development/python-modules/r2pipe/default.nix
+++ b/pkgs/development/python-modules/r2pipe/default.nix
@@ -1,37 +1,39 @@
-{ stdenv
-, lib
-, python
-, buildPythonPackage
-, fetchPypi
-, radare2
-, coreutils
-, pythonOlder
+{
+  stdenv,
+  lib,
+  python,
+  buildPythonPackage,
+  fetchPypi,
+  radare2,
+  coreutils,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "r2pipe";
-  version = "1.8.8";
+  version = "1.9.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
-  postPatch = let
-    r2lib = "${lib.getOutput "lib" radare2}/lib";
-    libr_core = "${r2lib}/libr_core${stdenv.hostPlatform.extensions.sharedLibrary}";
-  in
-  ''
-    # 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}'"
+  postPatch =
+    let
+      r2lib = "${lib.getOutput "lib" radare2}/lib";
+      libr_core = "${r2lib}/libr_core${stdenv.hostPlatform.extensions.sharedLibrary}";
+    in
+    ''
+      # 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}'"
 
-    # Fix the default r2 executable
-    substituteInPlace r2pipe/open_sync.py --replace 'r2e = "radare2"' "r2e = '${radare2}/bin/radare2'"
-    substituteInPlace r2pipe/open_base.py --replace 'which("radare2")' "'${radare2}/bin/radare2'"
-  '';
+      # Fix the default r2 executable
+      substituteInPlace r2pipe/open_sync.py --replace 'r2e = "radare2"' "r2e = '${radare2}/bin/radare2'"
+      substituteInPlace r2pipe/open_base.py --replace 'which("radare2")' "'${radare2}/bin/radare2'"
+    '';
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wAOmO5bev1zgPcJoiqKlS4anUKayo8HsncQXM+b1clQ=";
+    hash = "sha256-BNWP2uAJcEOCE92QakNI7Ils0iXRN5PUA9cSVrhDmx4=";
   };
 
   # Tiny sanity check to make sure r2pipe finds radare2 (since r2pipe doesn't
diff --git a/pkgs/development/python-modules/rachiopy/default.nix b/pkgs/development/python-modules/rachiopy/default.nix
index 1eb1b547e418f..5aa28e5173709 100644
--- a/pkgs/development/python-modules/rachiopy/default.nix
+++ b/pkgs/development/python-modules/rachiopy/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, jsonschema
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jsonschema,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-PsdEXNy8vUxba/C00ARhLTQU9gMlChy9XdU20r+Maus=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     jsonschema
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "rachiopy"
-  ];
+  pythonImportsCheck = [ "rachiopy" ];
 
   meta = with lib; {
     description = "Python client for Rachio Irrigation controller";
diff --git a/pkgs/development/python-modules/radian/default.nix b/pkgs/development/python-modules/radian/default.nix
index 09d0c38c41575..fd185ac7be4bd 100644
--- a/pkgs/development/python-modules/radian/default.nix
+++ b/pkgs/development/python-modules/radian/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pyte
-, pexpect
-, ptyprocess
-, jedi
-, git
-, lineedit
-, prompt-toolkit
-, pygments
-, rchitect
-, R
-, rPackages
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pyte,
+  pexpect,
+  ptyprocess,
+  jedi,
+  git,
+  lineedit,
+  prompt-toolkit,
+  pygments,
+  rchitect,
+  R,
+  rPackages,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -39,15 +40,17 @@ buildPythonPackage rec {
     R # needed at setup time to detect R_HOME
   ];
 
-  propagatedBuildInputs = [
-    lineedit
-    prompt-toolkit
-    pygments
-    rchitect
-  ] ++ (with rPackages; [
-    reticulate
-    askpass
-  ]);
+  propagatedBuildInputs =
+    [
+      lineedit
+      prompt-toolkit
+      pygments
+      rchitect
+    ]
+    ++ (with rPackages; [
+      reticulate
+      askpass
+    ]);
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -68,7 +71,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "radian" ];
 
   meta = with lib; {
-    description = "A 21 century R console";
+    description = "21 century R console";
     mainProgram = "radian";
     homepage = "https://github.com/randy3k/radian";
     changelog = "https://github.com/randy3k/radian/blob/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/radicale-infcloud/default.nix b/pkgs/development/python-modules/radicale-infcloud/default.nix
index a59b8221f5d83..7780900718563 100644
--- a/pkgs/development/python-modules/radicale-infcloud/default.nix
+++ b/pkgs/development/python-modules/radicale-infcloud/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchFromGitHub, buildPythonPackage, radicale }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  radicale,
+}:
 
 buildPythonPackage {
   pname = "radicale-infcloud";
@@ -22,7 +27,10 @@ buildPythonPackage {
   meta = with lib; {
     homepage = "https://github.com/Unrud/RadicaleInfCloud/";
     description = "Integrate InfCloud into Radicale's web interface";
-    license = with licenses; [ agpl3Plus gpl3 ];
+    license = with licenses; [
+      agpl3Plus
+      gpl3
+    ];
     maintainers = with maintainers; [ erictapen ];
   };
 }
diff --git a/pkgs/development/python-modules/radio-beam/default.nix b/pkgs/development/python-modules/radio-beam/default.nix
index c0e9c31a5eca1..f88a1957bdb10 100644
--- a/pkgs/development/python-modules/radio-beam/default.nix
+++ b/pkgs/development/python-modules/radio-beam/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, fetchPypi
-, fetchpatch2
-, buildPythonPackage
-, setuptools-scm
-, astropy
-, numpy
-, matplotlib
-, scipy
-, six
-, pytestCheckHook
-, pytest-astropy
+{
+  lib,
+  fetchPypi,
+  fetchpatch2,
+  buildPythonPackage,
+  setuptools-scm,
+  astropy,
+  numpy,
+  matplotlib,
+  scipy,
+  six,
+  pytestCheckHook,
+  pytest-astropy,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     astropy
@@ -48,9 +47,7 @@ buildPythonPackage rec {
     pytest-astropy
   ];
 
-  pythonImportsCheck = [
-    "radio_beam"
-  ];
+  pythonImportsCheck = [ "radio_beam" ];
 
   meta = with lib; {
     description = "Tools for Beam IO and Manipulation";
diff --git a/pkgs/development/python-modules/radios/default.nix b/pkgs/development/python-modules/radios/default.nix
index 5831579f7df56..241e95a189852 100644
--- a/pkgs/development/python-modules/radios/default.nix
+++ b/pkgs/development/python-modules/radios/default.nix
@@ -1,21 +1,21 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, pythonRelaxDepsHook
-, aiodns
-, aiohttp
-, awesomeversion
-, backoff
-, cachetools
-, mashumaro
-, orjson
-, pycountry
-, yarl
-, aresponses
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  aiodns,
+  aiohttp,
+  awesomeversion,
+  backoff,
+  cachetools,
+  mashumaro,
+  orjson,
+  pycountry,
+  yarl,
+  aresponses,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,7 +25,6 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.11";
 
-
   src = fetchFromGitHub {
     owner = "frenck";
     repo = "python-radios";
@@ -41,12 +40,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "pycountry"
-  ];
+  pythonRelaxDeps = [ "pycountry" ];
 
   propagatedBuildInputs = [
     aiodns
diff --git a/pkgs/development/python-modules/radiotherm/default.nix b/pkgs/development/python-modules/radiotherm/default.nix
index 1d62144e00cc8..c574b09301b8b 100644
--- a/pkgs/development/python-modules/radiotherm/default.nix
+++ b/pkgs/development/python-modules/radiotherm/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/radish-bdd/default.nix b/pkgs/development/python-modules/radish-bdd/default.nix
index f0f9070180ef9..6e350cbccf71f 100644
--- a/pkgs/development/python-modules/radish-bdd/default.nix
+++ b/pkgs/development/python-modules/radish-bdd/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, click
-, colorful
-, docopt
-, fetchFromGitHub
-, freezegun
-, humanize
-, lark
-, lxml
-, parse-type
-, pysingleton
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, tag-expressions
+{
+  lib,
+  buildPythonPackage,
+  click,
+  colorful,
+  docopt,
+  fetchFromGitHub,
+  freezegun,
+  humanize,
+  lark,
+  lxml,
+  parse-type,
+  pysingleton,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  tag-expressions,
 }:
 
 buildPythonPackage rec {
@@ -50,13 +51,9 @@ buildPythonPackage rec {
     pyyaml
   ];
 
-  pythonImportsCheck = [
-    "radish"
-  ];
+  pythonImportsCheck = [ "radish" ];
 
-  disabledTests = [
-    "test_main_cli_calls"
-  ];
+  disabledTests = [ "test_main_cli_calls" ];
 
   meta = with lib; {
     description = "Behaviour-Driven-Development tool for python";
diff --git a/pkgs/development/python-modules/radon/default.nix b/pkgs/development/python-modules/radon/default.nix
index 23f1a9427b560..5d494b4c2996b 100644
--- a/pkgs/development/python-modules/radon/default.nix
+++ b/pkgs/development/python-modules/radon/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, fetchpatch
-# Python deps
-, mando
-, colorama
-, pytest-mock
-, tomli
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  fetchpatch,
+  # Python deps
+  mando,
+  colorama,
+  pytest-mock,
+  tomli,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -47,14 +46,10 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    toml = [
-      tomli
-    ];
+    toml = [ tomli ];
   };
 
-  pythonImportsCheck = [
-    "radon"
-  ];
+  pythonImportsCheck = [ "radon" ];
 
   meta = with lib; {
     description = "Various code metrics for Python code";
diff --git a/pkgs/development/python-modules/railroad-diagrams/default.nix b/pkgs/development/python-modules/railroad-diagrams/default.nix
index e720c180014ba..60ba6862af53c 100644
--- a/pkgs/development/python-modules/railroad-diagrams/default.nix
+++ b/pkgs/development/python-modules/railroad-diagrams/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # This is a dependency of pyparsing, which is a dependency of pytest
   doCheck = false;
 
-  pythonImportsCheck = [
-    "railroad"
-  ];
+  pythonImportsCheck = [ "railroad" ];
 
   meta = with lib; {
     description = "Module to generate SVG railroad syntax diagrams";
diff --git a/pkgs/development/python-modules/rainbowstream/default.nix b/pkgs/development/python-modules/rainbowstream/default.nix
index 5f2f4c5904c5b..92fcac8b67ad0 100644
--- a/pkgs/development/python-modules/rainbowstream/default.nix
+++ b/pkgs/development/python-modules/rainbowstream/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, arrow
-, buildPythonPackage
-, fetchFromGitHub
-, freetype
-, glibcLocales
-, libjpeg
-, pillow
-, pocket
-, pyfiglet
-, pysocks
-, python
-, python-dateutil
-, requests
-, twitter
-, zlib
+{
+  lib,
+  arrow,
+  buildPythonPackage,
+  fetchFromGitHub,
+  freetype,
+  glibcLocales,
+  libjpeg,
+  pillow,
+  pocket,
+  pyfiglet,
+  pysocks,
+  python,
+  python-dateutil,
+  requests,
+  twitter,
+  zlib,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/raincloudy/default.nix b/pkgs/development/python-modules/raincloudy/default.nix
index 3a247bc6a81ed..5db3430efb3dc 100644
--- a/pkgs/development/python-modules/raincloudy/default.nix
+++ b/pkgs/development/python-modules/raincloudy/default.nix
@@ -1,51 +1,54 @@
-{ lib
-, aiohttp
-, aioresponses
-, beautifulsoup4
-, buildPythonPackage
-, fetchFromGitHub
-, html5lib
-, pytest-asyncio
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
-, setuptools
-, setuptools-scm
-, urllib3
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitHub,
+  html5lib,
+  pytest-asyncio,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  requests,
+  requests-mock,
+  setuptools,
+  setuptools-scm,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "raincloudy";
   version = "1.2.0";
-  format = "setuptools";
+  pypriject = true;
 
-  disabled = pythonOlder "3.7";
+  # https://github.com/vanstinator/raincloudy/issues/65
+  disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
 
   src = fetchFromGitHub {
     owner = "vanstinator";
-    repo = pname;
+    repo = "raincloudy";
     rev = "refs/tags/${version}";
     hash = "sha256-qCkBVirM09iA1sXiOB9FJns8bHjQq7rRk8XbRWrtBDI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-    setuptools-scm
-  ];
-
   postPatch = ''
     # https://github.com/vanstinator/raincloudy/pull/60
     substituteInPlace setup.py \
-      --replace "bs4" "beautifulsoup4" \
+      --replace-fail "bs4" "beautifulsoup4" \
 
     # fix raincloudy.aio package discovery, by relying on
     # autodiscovery instead.
     sed -i '/packages=/d' setup.py
   '';
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  dependencies = [
     aiohttp
     requests
     beautifulsoup4
@@ -74,7 +77,8 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Module to interact with Melnor RainCloud Smart Garden Watering Irrigation Timer";
     homepage = "https://github.com/vanstinator/raincloudy";
-    license = with licenses; [ asl20 ];
+    changelog = "https://github.com/vanstinator/raincloudy/releases/tag/${version}";
+    license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/ramlfications/default.nix b/pkgs/development/python-modules/ramlfications/default.nix
index e58cbeeb79477..108ad1470c706 100644
--- a/pkgs/development/python-modules/ramlfications/default.nix
+++ b/pkgs/development/python-modules/ramlfications/default.nix
@@ -1,6 +1,20 @@
-{ lib, buildPythonPackage, fetchPypi
-, mock, pytest, pytest-mock, pytest-server-fixtures, pytest-localserver
-, termcolor, click, markdown2, six, jsonref, pyyaml, xmltodict, attrs
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  pytest,
+  pytest-mock,
+  pytest-server-fixtures,
+  pytest-localserver,
+  termcolor,
+  click,
+  markdown2,
+  six,
+  jsonref,
+  pyyaml,
+  xmltodict,
+  attrs,
 }:
 
 buildPythonPackage rec {
@@ -14,18 +28,33 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A Python RAML parser.";
+    description = "Python RAML parser";
     mainProgram = "ramlfications";
-    homepage    = "https://ramlfications.readthedocs.org";
-    license     = licenses.asl20;
+    homepage = "https://ramlfications.readthedocs.org";
+    license = licenses.asl20;
     maintainers = with maintainers; [ ];
-    platforms   = platforms.all;
+    platforms = platforms.all;
   };
 
   doCheck = false;
   # [darwin]  AssertionError: Expected 'update_mime_types' to have been called once. Called 0 times.
 
-  buildInputs = [ mock pytest pytest-mock pytest-server-fixtures pytest-localserver ];
+  buildInputs = [
+    mock
+    pytest
+    pytest-mock
+    pytest-server-fixtures
+    pytest-localserver
+  ];
 
-  propagatedBuildInputs = [ termcolor click markdown2 six jsonref pyyaml xmltodict attrs ];
+  propagatedBuildInputs = [
+    termcolor
+    click
+    markdown2
+    six
+    jsonref
+    pyyaml
+    xmltodict
+    attrs
+  ];
 }
diff --git a/pkgs/development/python-modules/random-user-agent/default.nix b/pkgs/development/python-modules/random-user-agent/default.nix
new file mode 100644
index 0000000000000..086c8dab39370
--- /dev/null
+++ b/pkgs/development/python-modules/random-user-agent/default.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pythonOlder,
+}:
+
+buildPythonPackage rec {
+  pname = "random-user-agent";
+  version = "1.0.1-unstable-2018-12-26";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "Luqman-Ud-Din";
+    repo = "random_user_agent";
+    rev = "9547a1d93558c5838f734357c695fee92be905f7";
+    hash = "sha256-BkMx7N8O9I4rD8lvpoyXTZbZDsoozIpYUQh+zkLQ7Uc=";
+  };
+
+  build-system = [ setuptools ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "random_user_agent" ];
+
+  meta = with lib; {
+    description = "Module to get list of user agents based on filters";
+    homepage = "https://github.com/Luqman-Ud-Din/random_user_agent";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/random2/default.nix b/pkgs/development/python-modules/random2/default.nix
index ee289b906d343..89d544e54a9b7 100644
--- a/pkgs/development/python-modules/random2/default.nix
+++ b/pkgs/development/python-modules/random2/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPyPy
-, fetchpatch
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  fetchpatch,
 }:
 
 buildPythonPackage rec {
@@ -30,5 +31,4 @@ buildPythonPackage rec {
     description = "Python 3 compatible Python 2 `random` Module";
     license = licenses.psfl;
   };
-
 }
diff --git a/pkgs/development/python-modules/randomfiletree/default.nix b/pkgs/development/python-modules/randomfiletree/default.nix
index 9326c7b3062b9..b4075202f51d5 100644
--- a/pkgs/development/python-modules/randomfiletree/default.nix
+++ b/pkgs/development/python-modules/randomfiletree/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/range-typed-integers/default.nix b/pkgs/development/python-modules/range-typed-integers/default.nix
index 1bb5d7b26f620..912bee04ffc74 100644
--- a/pkgs/development/python-modules/range-typed-integers/default.nix
+++ b/pkgs/development/python-modules/range-typed-integers/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -26,7 +27,7 @@ buildPythonPackage rec {
   checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A package provides integer types that have a specific range of valid values";
+    description = "Package provides integer types that have a specific range of valid values";
     homepage = "https://github.com/theCapypara/range-typed-integers";
     license = [ licenses.mit ];
     maintainers = with maintainers; [ marius851000 ];
diff --git a/pkgs/development/python-modules/rangehttpserver/default.nix b/pkgs/development/python-modules/rangehttpserver/default.nix
index 6fbcebbffed8e..a357f21380529 100644
--- a/pkgs/development/python-modules/rangehttpserver/default.nix
+++ b/pkgs/development/python-modules/rangehttpserver/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytest7CheckHook
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytest7CheckHook,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-ZXEbis37QO8t05JQ2qQQf5rkUSxq3DwzR3khAJkZ5W0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   __darwinAllowLocalNetworking = true;
 
@@ -29,9 +28,7 @@ buildPythonPackage rec {
     requests
   ];
 
-  pythonImportsCheck = [
-    "RangeHTTPServer"
-  ];
+  pythonImportsCheck = [ "RangeHTTPServer" ];
 
   meta = with lib; {
     description = "SimpleHTTPServer with support for Range requests";
diff --git a/pkgs/development/python-modules/rangeparser/default.nix b/pkgs/development/python-modules/rangeparser/default.nix
index 8cc4833975c0c..60330d213a242 100644
--- a/pkgs/development/python-modules/rangeparser/default.nix
+++ b/pkgs/development/python-modules/rangeparser/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -19,17 +20,11 @@ buildPythonPackage rec {
     hash = "sha256-gjA7Iytg802Lv7/rLfhGE0yjz4e6FfOXbEoWNPjhCOY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "rangeparser"
-  ];
+  pythonImportsCheck = [ "rangeparser" ];
 
   meta = with lib; {
     description = "Parses ranges";
diff --git a/pkgs/development/python-modules/rank-bm25/default.nix b/pkgs/development/python-modules/rank-bm25/default.nix
index 9b0c5080449d1..7318aa2a79346 100644
--- a/pkgs/development/python-modules/rank-bm25/default.nix
+++ b/pkgs/development/python-modules/rank-bm25/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  numpy,
 }:
 let
   pname = "rank-bm25";
@@ -27,14 +28,12 @@ buildPythonPackage {
     substituteInPlace setup.py --replace "get_version()" "'${version}'"
   '';
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   pythonImportsCheck = [ "rank_bm25" ];
 
   meta = with lib; {
-    description = "A Collection of BM25 Algorithms in Python";
+    description = "Collection of BM25 Algorithms in Python";
     homepage = "https://github.com/dorianbrown/rank_bm25";
     changelog = "https://github.com/dorianbrown/rank_bm25/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/rapidfuzz-capi/default.nix b/pkgs/development/python-modules/rapidfuzz-capi/default.nix
index 9444b949a5105..342f09b2708b8 100644
--- a/pkgs/development/python-modules/rapidfuzz-capi/default.nix
+++ b/pkgs/development/python-modules/rapidfuzz-capi/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/rapidfuzz/default.nix b/pkgs/development/python-modules/rapidfuzz/default.nix
index 740389c8e0d6a..325c476000044 100644
--- a/pkgs/development/python-modules/rapidfuzz/default.nix
+++ b/pkgs/development/python-modules/rapidfuzz/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, cmake
-, cython
-, ninja
-, scikit-build
-, setuptools
-, numpy
-, hypothesis
-, pandas
-, pytestCheckHook
-, rapidfuzz-cpp
-, taskflow
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  cmake,
+  cython,
+  ninja,
+  scikit-build,
+  setuptools,
+  numpy,
+  hypothesis,
+  pandas,
+  pytestCheckHook,
+  rapidfuzz-cpp,
+  taskflow,
 }:
 
 buildPythonPackage rec {
   pname = "rapidfuzz";
-  version = "3.8.1";
+  version = "3.9.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +28,7 @@ buildPythonPackage rec {
     owner = "maxbachmann";
     repo = "RapidFuzz";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ljuqezL/Iu4VQelPi7KApBknDrWzikX7FD5iw5NcOL4=";
+    hash = "sha256-G1WveLVoeWkaKrHRFgCt8HVBnBYNdCb7/JVCm0L4dv8=";
   };
 
   postPatch = ''
@@ -50,15 +51,19 @@ buildPythonPackage rec {
     taskflow
   ];
 
-  preBuild = ''
-    export RAPIDFUZZ_BUILD_EXTENSION=1
-  '' + lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) ''
-    export CMAKE_ARGS="-DCMAKE_CXX_COMPILER_AR=$AR -DCMAKE_CXX_COMPILER_RANLIB=$RANLIB"
-  '';
+  preBuild =
+    ''
+      export RAPIDFUZZ_BUILD_EXTENSION=1
+    ''
+    + lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) ''
+      export CMAKE_ARGS="-DCMAKE_CXX_COMPILER_AR=$AR -DCMAKE_CXX_COMPILER_RANLIB=$RANLIB"
+    '';
 
-  env.NIX_CFLAGS_COMPILE = toString (lib.optionals (stdenv.cc.isClang && stdenv.isDarwin) [
-    "-fno-lto"  # work around https://github.com/NixOS/nixpkgs/issues/19098
-  ]);
+  env.NIX_CFLAGS_COMPILE = toString (
+    lib.optionals (stdenv.cc.isClang && stdenv.isDarwin) [
+      "-fno-lto" # work around https://github.com/NixOS/nixpkgs/issues/19098
+    ]
+  );
 
   passthru.optional-dependencies = {
     full = [ numpy ];
diff --git a/pkgs/development/python-modules/rapidgzip/default.nix b/pkgs/development/python-modules/rapidgzip/default.nix
index 475d5291c20e9..77d710a944ea8 100644
--- a/pkgs/development/python-modules/rapidgzip/default.nix
+++ b/pkgs/development/python-modules/rapidgzip/default.nix
@@ -1,25 +1,30 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchPypi
-, pythonOlder
-, setuptools
-, nasm
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  nasm,
 }:
 
 buildPythonPackage rec {
   pname = "rapidgzip";
-  version = "0.13.3";
+  version = "0.14.2";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-3PvBRYswEtnAZerRD18laW6pQ8i6cgRgGZy+bgSOaI0=";
+    hash = "sha256-84NiaaOBw6kqBwVfVTcnaebRaQH5bg9JvxohwQkYZAk=";
   };
 
-  nativeBuildInputs = [ cython nasm setuptools ];
+  nativeBuildInputs = [
+    cython
+    nasm
+    setuptools
+  ];
 
   # has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/rapidocr-onnxruntime/default.nix b/pkgs/development/python-modules/rapidocr-onnxruntime/default.nix
new file mode 100644
index 0000000000000..48209fc9efca3
--- /dev/null
+++ b/pkgs/development/python-modules/rapidocr-onnxruntime/default.nix
@@ -0,0 +1,129 @@
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  fetchzip,
+  substitute,
+  pythonRelaxDepsHook,
+  pytestCheckHook,
+
+  setuptools,
+  pyclipper,
+  opencv4,
+  numpy,
+  six,
+  shapely,
+  pyyaml,
+  pillow,
+  onnxruntime,
+}:
+let
+  version = "1.3.22";
+
+  src = fetchFromGitHub {
+    owner = "RapidAI";
+    repo = "RapidOCR";
+    rev = "v${version}";
+    hash = "sha256-8h4DFhnI9imr+bYQZdlrl8UKUdpwnGK+SGxLXSMmcag=";
+  };
+
+  models = fetchzip {
+    url = "https://github.com/RapidAI/RapidOCR/releases/download/v1.1.0/required_for_whl_v1.3.0.zip";
+    hash = "sha256-j/0nzyvu/HfNTt5EZ+2Phe5dkyPOdQw/OZTz0yS63aA=";
+    stripRoot = false;
+  } + "/required_for_whl_v1.3.0/resources/models";
+in
+buildPythonPackage {
+  pname = "rapidocr-onnxruntime";
+  inherit version src;
+  pyproject = true;
+
+  sourceRoot = "${src.name}/python";
+
+  # HACK:
+  # Upstream uses a very unconventional structure to organize the packages, and we have to coax the
+  # existing infrastructure to work with it.
+  # See https://github.com/RapidAI/RapidOCR/blob/02829ef986bc2a5c4f33e9c45c9267bcf2d07a1d/.github/workflows/gen_whl_to_pypi_rapidocr_ort.yml#L80-L92
+  # for the "intended" way of building this package.
+
+  # The setup.py supplied by upstream tries to determine the current version by
+  # fetching the latest version of the package from PyPI, and then bumping the version number.
+  # This is not allowed in the Nix build environment as we do not have internet access,
+  # hence we patch that out and get the version from the build environment directly.
+  patches = [
+    (substitute {
+      src = ./setup-py-override-version-checking.patch;
+      substitutions = [
+        "--subst-var-by"
+        "version"
+        version
+      ];
+    })
+  ];
+
+  postPatch = ''
+    mv setup_onnxruntime.py setup.py
+    mkdir -p rapidocr_onnxruntime/models
+
+    ln -s ${models}/* rapidocr_onnxruntime/models
+
+    # Magic patch from upstream - what does this even do??
+    echo "from .rapidocr_onnxruntime.main import RapidOCR, VisRes" > __init__.py
+  '';
+
+  nativeBuildInputs = [ pythonRelaxDepsHook ];
+
+  # Upstream expects the source files to be under rapidocr_onnxruntime/rapidocr_onnxruntime
+  # instead of rapidocr_onnxruntime for the wheel to build correctly.
+  preBuild = ''
+    mkdir rapidocr_onnxruntime_t
+    mv rapidocr_onnxruntime rapidocr_onnxruntime_t
+    mv rapidocr_onnxruntime_t rapidocr_onnxruntime
+  '';
+
+  # Revert the above hack
+  postBuild = ''
+    mv rapidocr_onnxruntime rapidocr_onnxruntime_t
+    mv rapidocr_onnxruntime_t/* .
+  '';
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    pyclipper
+    opencv4
+    numpy
+    six
+    shapely
+    pyyaml
+    pillow
+    onnxruntime
+  ];
+
+  # Remove because we have adopted the `opencv4` as an attribute name.
+  pythonRemoveDeps = [ "opencv-python" ];
+
+  pythonImportsCheck = [ "rapidocr_onnxruntime" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  # These are tests for different backends.
+  disabledTestPaths = [
+    "tests/test_vino.py"
+    "tests/test_paddle.py"
+  ];
+
+  meta = {
+    # This seems to be related to https://github.com/microsoft/onnxruntime/issues/10038
+    # Also some related issue: https://github.com/NixOS/nixpkgs/pull/319053#issuecomment-2167713362
+    broken = (stdenv.isLinux && stdenv.isAarch64);
+    changelog = "https://github.com/RapidAI/RapidOCR/releases/tag/v${version}";
+    description = "Cross platform OCR Library based on OnnxRuntime";
+    homepage = "https://github.com/RapidAI/RapidOCR";
+    license = with lib.licenses; [ asl20 ];
+    maintainers = with lib.maintainers; [ pluiedev ];
+    mainProgram = "rapidocr_onnxruntime";
+  };
+}
diff --git a/pkgs/development/python-modules/rapidocr-onnxruntime/setup-py-override-version-checking.patch b/pkgs/development/python-modules/rapidocr-onnxruntime/setup-py-override-version-checking.patch
new file mode 100644
index 0000000000000..227618c2a60ca
--- /dev/null
+++ b/pkgs/development/python-modules/rapidocr-onnxruntime/setup-py-override-version-checking.patch
@@ -0,0 +1,30 @@
+diff --git a/setup_onnxruntime.py b/setup_onnxruntime.py
+index cd698d1..c6e8a33 100644
+--- a/setup_onnxruntime.py
++++ b/setup_onnxruntime.py
+@@ -6,7 +6,6 @@ from pathlib import Path
+ from typing import List, Union
+ 
+ import setuptools
+-from get_pypi_latest_version import GetPyPiLatestVersion
+ 
+ 
+ def read_txt(txt_path: Union[Path, str]) -> List[str]:
+@@ -26,16 +25,7 @@ def get_readme():
+ 
+ MODULE_NAME = "rapidocr_onnxruntime"
+ 
+-obtainer = GetPyPiLatestVersion()
+-latest_version = obtainer(MODULE_NAME)
+-VERSION_NUM = obtainer.version_add_one(latest_version)
+-
+-if len(sys.argv) > 2:
+-    match_str = " ".join(sys.argv[2:])
+-    matched_versions = obtainer.extract_version(match_str)
+-    if matched_versions:
+-        VERSION_NUM = matched_versions
+-sys.argv = sys.argv[:2]
++VERSION_NUM = "@version@"
+ 
+ project_urls = {
+     "Documentation": "https://rapidai.github.io/RapidOCRDocs/docs/install_usage/rapidocr/usage/",
diff --git a/pkgs/development/python-modules/rapt-ble/default.nix b/pkgs/development/python-modules/rapt-ble/default.nix
index 4c5df7b4b9fa2..a72e0f68d6577 100644
--- a/pkgs/development/python-modules/rapt-ble/default.nix
+++ b/pkgs/development/python-modules/rapt-ble/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, bluetooth-data-tools
-, bluetooth-sensor-state-data
-, buildPythonPackage
-, fetchFromGitHub
-, home-assistant-bluetooth
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, sensor-state-data
+{
+  lib,
+  bluetooth-data-tools,
+  bluetooth-sensor-state-data,
+  buildPythonPackage,
+  fetchFromGitHub,
+  home-assistant-bluetooth,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  sensor-state-data,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
       --replace " --cov=rapt_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bluetooth-data-tools
@@ -40,13 +39,9 @@ buildPythonPackage rec {
     sensor-state-data
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "rapt_ble"
-  ];
+  pythonImportsCheck = [ "rapt_ble" ];
 
   meta = with lib; {
     description = "Library for RAPT Pill hydrometer BLE devices";
diff --git a/pkgs/development/python-modules/rarfile/default.nix b/pkgs/development/python-modules/rarfile/default.nix
index 4f3cbc28ea770..c0c462cb44784 100644
--- a/pkgs/development/python-modules/rarfile/default.nix
+++ b/pkgs/development/python-modules/rarfile/default.nix
@@ -1,6 +1,14 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook, nose, libarchive, glibcLocales, isPy27
-# unrar is non-free software
-, useUnrar ? false, unrar
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  libarchive,
+  pythonOlder,
+  setuptools,
+  # unrar is non-free software
+  useUnrar ? false,
+  unrar,
 }:
 
 assert useUnrar -> unrar != null;
@@ -9,35 +17,47 @@ assert !useUnrar -> libarchive != null;
 buildPythonPackage rec {
   pname = "rarfile";
   version = "4.2";
-  format = "setuptools";
-  disabled = isPy27;
+  pyproject = true;
+
+  disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "markokr";
     repo = "rarfile";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-ZiwD2LG25fMd4Z+QWsh/x3ceG5QRBH4s/TZDwMnfpNI=";
+    hash = "sha256-ZiwD2LG25fMd4Z+QWsh/x3ceG5QRBH4s/TZDwMnfpNI=";
   };
 
-  nativeCheckInputs = [ pytestCheckHook nose glibcLocales ];
-
-  prePatch = ''
-    substituteInPlace rarfile.py \
-  '' + (if useUnrar then
-        ''--replace 'UNRAR_TOOL = "unrar"' "UNRAR_TOOL = \"${unrar}/bin/unrar\""
+  prePatch =
+    ''
+      substituteInPlace rarfile.py \
+    ''
+    + (
+      if useUnrar then
+        ''
+          --replace 'UNRAR_TOOL = "unrar"' "UNRAR_TOOL = \"${unrar}/bin/unrar\""
+        ''
+      else
+        ''
+          --replace 'ALT_TOOL = "bsdtar"' "ALT_TOOL = \"${libarchive}/bin/bsdtar\""
         ''
-       else
-        ''--replace 'ALT_TOOL = "bsdtar"' "ALT_TOOL = \"${libarchive}/bin/bsdtar\""
-        '')
-     + "";
-  # the tests only work with the standard unrar package
+    )
+    + "";
+
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  # The tests only work with the standard unrar package
   doCheck = useUnrar;
-  LC_ALL = "en_US.UTF-8";
+
   pythonImportsCheck = [ "rarfile" ];
 
   meta = with lib; {
     description = "RAR archive reader for Python";
     homepage = "https://github.com/markokr/rarfile";
+    changelog = "https://github.com/markokr/rarfile/releases/tag/v${version}";
     license = licenses.isc;
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/rasterio/default.nix b/pkgs/development/python-modules/rasterio/default.nix
index b11ff18fc9db2..d7ab45fd4732d 100644
--- a/pkgs/development/python-modules/rasterio/default.nix
+++ b/pkgs/development/python-modules/rasterio/default.nix
@@ -1,32 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, stdenv
-, testers
-
-, affine
-, attrs
-, boto3
-, certifi
-, click
-, click-plugins
-, cligj
-, cython
-, gdal
-, hypothesis
-, ipython
-, matplotlib
-, numpy
-, packaging
-, pytest-randomly
-, setuptools
-, shapely
-, snuggs
-, wheel
-
-, rasterio  # required to run version test
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  stdenv,
+  testers,
+
+  affine,
+  attrs,
+  boto3,
+  certifi,
+  click,
+  click-plugins,
+  cligj,
+  cython,
+  gdal,
+  hypothesis,
+  ipython,
+  matplotlib,
+  numpy,
+  packaging,
+  pytest-randomly,
+  setuptools,
+  shapely,
+  snuggs,
+  wheel,
+
+  rasterio, # required to run version test
 }:
 
 buildPythonPackage rec {
@@ -51,7 +52,7 @@ buildPythonPackage rec {
     # relax dependency on yet non-packaged, RC version of numpy
     substituteInPlace pyproject.toml \
       --replace-fail "numpy==2.0.0rc1" "numpy"
-    '';
+  '';
 
   nativeBuildInputs = [
     cython
@@ -73,15 +74,9 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    ipython = [
-      ipython
-    ];
-    plot = [
-      matplotlib
-    ];
-    s3 = [
-      boto3
-    ];
+    ipython = [ ipython ];
+    plot = [ matplotlib ];
+    s3 = [ boto3 ];
   };
 
   nativeCheckInputs = [
@@ -99,20 +94,20 @@ buildPythonPackage rec {
     rm -r rasterio # prevent importing local rasterio
   '';
 
-  pytestFlagsArray = [
-    "-m 'not network'"
-  ];
+  pytestFlagsArray = [ "-m 'not network'" ];
 
   disabledTests = [
     # flaky
     "test_outer_boundless_pixel_fidelity"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_reproject_error_propagation"
-  ];
 
-  pythonImportsCheck = [
-    "rasterio"
-  ];
+    # Failing with GDAL 3.9.
+    # Fixed in https://github.com/rasterio/rasterio/commit/24d0845e576158217f6541c3c81b163d873a994d
+    # Re-enable in next rasterio update.
+    "test_create_sidecar_mask"
+    "test_update_tags"
+  ] ++ lib.optionals stdenv.isDarwin [ "test_reproject_error_propagation" ];
+
+  pythonImportsCheck = [ "rasterio" ];
 
   passthru.tests.version = testers.testVersion {
     package = rasterio;
diff --git a/pkgs/development/python-modules/ratarmount/default.nix b/pkgs/development/python-modules/ratarmount/default.nix
index 64c11f7f3fe72..8e32579cb7378 100644
--- a/pkgs/development/python-modules/ratarmount/default.nix
+++ b/pkgs/development/python-modules/ratarmount/default.nix
@@ -1,24 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, fusepy
-, ratarmountcore
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  fusepy,
+  ratarmountcore,
 }:
 
 buildPythonPackage rec {
   pname = "ratarmount";
-  version = "0.15.0";
+  version = "0.15.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2slLshH07O+4PIU3dF9vX2ZcXjaUVyTFYc59LL2J5iY=";
+    hash = "sha256-hprXZGgE2fpg8Km3gWO60e7teUB4Age5skNPc4p+wIg=";
   };
 
-  propagatedBuildInputs = [ ratarmountcore fusepy ];
+  propagatedBuildInputs = [
+    ratarmountcore
+    fusepy
+  ];
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/ratarmountcore/default.nix b/pkgs/development/python-modules/ratarmountcore/default.nix
index 844fa2c499230..eb97b7a4a64e1 100644
--- a/pkgs/development/python-modules/ratarmountcore/default.nix
+++ b/pkgs/development/python-modules/ratarmountcore/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, indexed-bzip2
-, indexed-gzip
-, indexed-zstd
-, python-xz
-, setuptools
-, rapidgzip
-, rarfile
-, zstandard     # Python bindings
-, zstd          # System tool
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  indexed-bzip2,
+  indexed-gzip,
+  indexed-zstd,
+  python-xz,
+  setuptools,
+  rapidgzip,
+  rarfile,
+  zstandard, # Python bindings
+  zstd, # System tool
 }:
 
 buildPythonPackage rec {
@@ -32,11 +33,22 @@ buildPythonPackage rec {
   sourceRoot = "${src.name}/core";
 
   nativeBuildInputs = [ setuptools ];
-  propagatedBuildInputs = [ indexed-gzip indexed-bzip2 indexed-zstd python-xz rapidgzip rarfile ];
+  propagatedBuildInputs = [
+    indexed-gzip
+    indexed-bzip2
+    indexed-zstd
+    python-xz
+    rapidgzip
+    rarfile
+  ];
 
   pythonImportsCheck = [ "ratarmountcore" ];
 
-  nativeCheckInputs = [ pytestCheckHook zstandard zstd ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    zstandard
+    zstd
+  ];
 
   disabledTestPaths = [
     # Disable this test because for arcane reasons running pytest with nix-build uses 10-100x
diff --git a/pkgs/development/python-modules/ratelim/default.nix b/pkgs/development/python-modules/ratelim/default.nix
index c271b44ca32f9..c48469168cba9 100644
--- a/pkgs/development/python-modules/ratelim/default.nix
+++ b/pkgs/development/python-modules/ratelim/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, decorator
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  decorator,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     sha256 = "07dirdd8y23706110nb0lfz5pzbrcvd9y74h64la3y8igqbk4vc2";
   };
 
-  propagatedBuildInputs = [
-    decorator
-  ];
+  propagatedBuildInputs = [ decorator ];
 
   pythonImportsCheck = [ "ratelim" ];
 
diff --git a/pkgs/development/python-modules/ratelimit/default.nix b/pkgs/development/python-modules/ratelimit/default.nix
index 5a2c40efd1055..b17d017fbd6aa 100644
--- a/pkgs/development/python-modules/ratelimit/default.nix
+++ b/pkgs/development/python-modules/ratelimit/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/rauth/default.nix b/pkgs/development/python-modules/rauth/default.nix
index 059dfa9a2a60d..05580a029e321 100644
--- a/pkgs/development/python-modules/rauth/default.nix
+++ b/pkgs/development/python-modules/rauth/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, requests
-, pytestCheckHook
-, mock
-, nose
-, pycrypto
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  requests,
+  pytestCheckHook,
+  mock,
+  nose,
+  pycrypto,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   pythonImportsCheck = [ "rauth" ];
 
@@ -44,11 +43,10 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python library for OAuth 1.0/a, 2.0, and Ofly";
+    description = "Python library for OAuth 1.0/a, 2.0, and Ofly";
     homepage = "https://github.com/litl/rauth";
     changelog = "https://github.com/litl/rauth/blob/${src.rev}/CHANGELOG";
     license = licenses.mit;
     maintainers = with maintainers; [ blaggacao ];
   };
 }
-
diff --git a/pkgs/development/python-modules/raven/default.nix b/pkgs/development/python-modules/raven/default.nix
index f49230494e482..88727591db838 100644
--- a/pkgs/development/python-modules/raven/default.nix
+++ b/pkgs/development/python-modules/raven/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, blinker
-, flask
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  blinker,
+  flask,
 }:
 
 buildPythonPackage rec {
@@ -23,7 +24,10 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "raven" ];
 
   passthru.optional-dependencies = {
-    flask = [ blinker flask ];
+    flask = [
+      blinker
+      flask
+    ];
   };
 
   meta = {
diff --git a/pkgs/development/python-modules/rawkit/default.nix b/pkgs/development/python-modules/rawkit/default.nix
index 7a644220e93a9..e4b50337f05a1 100644
--- a/pkgs/development/python-modules/rawkit/default.nix
+++ b/pkgs/development/python-modules/rawkit/default.nix
@@ -1,6 +1,12 @@
-{ lib, fetchPypi, buildPythonPackage, fetchpatch
-, libraw
-, pytest, mock }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  fetchpatch,
+  libraw,
+  pytest,
+  mock,
+}:
 
 buildPythonPackage rec {
   pname = "rawkit";
@@ -22,7 +28,10 @@ buildPythonPackage rec {
 
   buildInputs = [ libraw ];
 
-  nativeCheckInputs = [ pytest mock ];
+  nativeCheckInputs = [
+    pytest
+    mock
+  ];
 
   checkPhase = ''
     py.test tests
diff --git a/pkgs/development/python-modules/ray/binary-hashes.nix b/pkgs/development/python-modules/ray/binary-hashes.nix
index 7edac88e63066..cf243178e17b0 100644
--- a/pkgs/development/python-modules/ray/binary-hashes.nix
+++ b/pkgs/development/python-modules/ray/binary-hashes.nix
@@ -1,8 +1,8 @@
 {
   cp310 = {
-    hash = "sha256-y3T30qpaIeX53LMVpPm96CIyjna6lc0Lo3DP2gmKZ/Q=";
+    hash = "sha256-m8SBwbXXKU1ocvrBROAOoTlLfhMPtBJJ0WcNtJQVbYE=";
   };
   cp311 = {
-    hash = "sha256-x9FDjLqHJuyaWclpZOAHtgoHKENmR/SMODIoaSwvLuA=";
+    hash = "sha256-4gO1dWWgCPKsn54ekpIW4NfXdvU0FEzMePZsEFI09wE=";
   };
 }
diff --git a/pkgs/development/python-modules/ray/default.nix b/pkgs/development/python-modules/ray/default.nix
index b1c886153192b..0c0d3eb2e192b 100644
--- a/pkgs/development/python-modules/ray/default.nix
+++ b/pkgs/development/python-modules/ray/default.nix
@@ -1,58 +1,58 @@
-{ aiohttp
-, aiohttp-cors
-, aiorwlock
-, aiosignal
-, attrs
-, autoPatchelfHook
-, buildPythonPackage
-, fetchPypi
-, click
-, cloudpickle
-, colorama
-, colorful
-, cython
-, dm-tree
-, fastapi
-, filelock
-, frozenlist
-, fsspec
-, gpustat
-, grpcio
-, gym
-, jsonschema
-, lib
-, lz4
-, matplotlib
-, msgpack
-, numpy
-, opencensus
-, packaging
-, pandas
-, py-spy
-, prometheus-client
-, psutil
-, pyarrow
-, pydantic
-, python
-, pythonAtLeast
-, pythonOlder
-, pythonRelaxDepsHook
-, pyyaml
-, requests
-, scikit-image
-, scipy
-, setproctitle
-, smart-open
-, starlette
-, tabulate
-, tensorboardx
-, uvicorn
-, virtualenv
+{
+  aiohttp,
+  aiohttp-cors,
+  aiorwlock,
+  aiosignal,
+  attrs,
+  autoPatchelfHook,
+  buildPythonPackage,
+  fetchPypi,
+  click,
+  cloudpickle,
+  colorama,
+  colorful,
+  cython,
+  dm-tree,
+  fastapi,
+  filelock,
+  frozenlist,
+  fsspec,
+  gpustat,
+  grpcio,
+  gym,
+  jsonschema,
+  lib,
+  lz4,
+  matplotlib,
+  msgpack,
+  numpy,
+  opencensus,
+  packaging,
+  pandas,
+  py-spy,
+  prometheus-client,
+  psutil,
+  pyarrow,
+  pydantic,
+  python,
+  pythonAtLeast,
+  pythonOlder,
+  pyyaml,
+  requests,
+  scikit-image,
+  scipy,
+  setproctitle,
+  smart-open,
+  starlette,
+  tabulate,
+  tensorboardx,
+  uvicorn,
+  virtualenv,
 }:
 
 let
   pname = "ray";
-  version = "2.10.0";
+  version = "2.30.0";
 in
 buildPythonPackage rec {
   inherit pname version;
@@ -62,16 +62,19 @@ buildPythonPackage rec {
 
   src =
     let
-      pyShortVersion = "cp${builtins.replaceStrings ["."] [""] python.pythonVersion}";
-      binary-hash = (import ./binary-hashes.nix)."${pyShortVersion}" or {};
+      pyShortVersion = "cp${builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion}";
+      binary-hash = (import ./binary-hashes.nix)."${pyShortVersion}" or { };
     in
-    fetchPypi ({
-      inherit pname version format;
-      dist = pyShortVersion;
-      python = pyShortVersion;
-      abi = pyShortVersion;
-      platform = "manylinux2014_x86_64";
-    } // binary-hash);
+    fetchPypi (
+      {
+        inherit pname version format;
+        dist = pyShortVersion;
+        python = pyShortVersion;
+        abi = pyShortVersion;
+        platform = "manylinux2014_x86_64";
+      }
+      // binary-hash
+    );
 
   passthru.optional-dependencies = rec {
     data-deps = [
@@ -108,7 +111,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     autoPatchelfHook
-    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = [
@@ -118,7 +120,7 @@ buildPythonPackage rec {
     "virtualenv"
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     attrs
     aiohttp
     aiohttp-cors
@@ -152,16 +154,14 @@ buildPythonPackage rec {
     chmod +x $out/${python.sitePackages}/ray/core/src/ray/{gcs/gcs_server,raylet/raylet}
   '';
 
-  pythonImportsCheck = [
-    "ray"
-  ];
+  pythonImportsCheck = [ "ray" ];
 
-  meta = with lib; {
-    description = "A unified framework for scaling AI and Python applications";
+  meta = {
+    description = "Unified framework for scaling AI and Python applications";
     homepage = "https://github.com/ray-project/ray";
     changelog = "https://github.com/ray-project/ray/releases/tag/ray-${version}";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ billhuang ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ billhuang ];
     platforms = [ "x86_64-linux" ];
   };
 }
diff --git a/pkgs/development/python-modules/raylib-python-cffi/default.nix b/pkgs/development/python-modules/raylib-python-cffi/default.nix
new file mode 100644
index 0000000000000..f1d46c1822d14
--- /dev/null
+++ b/pkgs/development/python-modules/raylib-python-cffi/default.nix
@@ -0,0 +1,57 @@
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  cffi,
+  pkg-config,
+  glfw,
+  libffi,
+  raylib,
+  physac,
+  raygui,
+  lib
+}:
+
+buildPythonPackage rec {
+  pname = "raylib-python-cffi";
+  version = "5.0.0.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "electronstudio";
+    repo = "raylib-python-cffi";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-DlnZRJZ0ZnkLii09grA/lGsJHPUYrbaJ55BVWJ8JzfM=";
+  };
+
+  build-system = [ setuptools ];
+  dependencies = [ cffi ];
+
+  patches = [
+    # This patch fixes to the builder script function to call pkg-config
+    # using the library name rather than searching only through raylib
+    ./fix_pyray_builder.patch
+  ];
+
+  nativeBuildInputs = [ pkg-config ];
+
+  # tests require a graphic environment
+  doCheck = false;
+
+  pythonImportsCheck = [ "pyray" ];
+
+  buildInputs = [
+    glfw
+    libffi
+    raylib
+    physac
+    raygui
+  ];
+
+  meta = {
+    description = "Python CFFI bindings for Raylib";
+    homepage = "https://electronstudio.github.io/raylib-python-cffi";
+    license = lib.licenses.epl20;
+    maintainers = with lib.maintainers; [ sigmanificient ];
+  };
+}
diff --git a/pkgs/development/python-modules/raylib-python-cffi/fix_pyray_builder.patch b/pkgs/development/python-modules/raylib-python-cffi/fix_pyray_builder.patch
new file mode 100644
index 0000000000000..0d167e2b0795a
--- /dev/null
+++ b/pkgs/development/python-modules/raylib-python-cffi/fix_pyray_builder.patch
@@ -0,0 +1,61 @@
+--- a/raylib/build.py	2024-05-18 18:36:26.911488056 +0200
++++ b/raylib/build.py	2024-05-18 18:40:04.770587090 +0200
+@@ -32,8 +32,8 @@
+     return subprocess.run(['pkg-config', '--exists', 'raylib'], text=True, stdout=subprocess.PIPE).returncode == 0
+ 
+ 
+-def get_the_include_path():
+-    return subprocess.run(['pkg-config', '--variable=includedir', 'raylib'], text=True,
++def get_the_include_path(libname):
++    return subprocess.run(['pkg-config', '--variable=includedir', libname], text=True,
+                           stdout=subprocess.PIPE).stdout.strip()
+ 
+ 
+@@ -106,9 +106,9 @@
+     if not check_raylib_installed():
+         raise Exception("ERROR: raylib not found by pkg-config.  Please install pkg-config and Raylib.")
+ 
+-    raylib_h = get_the_include_path() + "/raylib.h"
+-    rlgl_h = get_the_include_path() + "/rlgl.h"
+-    raymath_h = get_the_include_path() + "/raymath.h"
++    raylib_h = get_the_include_path("raylib") + "/raylib.h"
++    rlgl_h = get_the_include_path("raylib") + "/rlgl.h"
++    raymath_h = get_the_include_path("raylib") + "/raymath.h"
+ 
+     if not os.path.isfile(raylib_h):
+         raise Exception("ERROR: " + raylib_h + " not found.  Please install Raylib.")
+@@ -125,13 +125,13 @@
+     #include "raymath.h"
+     """
+ 
+-    glfw3_h = get_the_include_path() + "/GLFW/glfw3.h"
++    glfw3_h = get_the_include_path("glfw3") + "/GLFW/glfw3.h"
+     if check_header_exists(glfw3_h):
+         ffi_includes += """
+         #include "GLFW/glfw3.h"
+         """
+ 
+-    raygui_h = get_the_include_path() + "/raygui.h"
++    raygui_h = get_the_include_path("raygui") + "/raygui.h"
+     if check_header_exists(raygui_h):
+         ffi_includes += """
+         #define RAYGUI_IMPLEMENTATION
+@@ -139,7 +139,7 @@
+         #include "raygui.h"
+         """
+ 
+-    physac_h = get_the_include_path() + "/physac.h"
++    physac_h = get_the_include_path("physac") + "/physac.h"
+     if check_header_exists(physac_h):
+         ffi_includes += """
+         #define PHYSAC_IMPLEMENTATION
+@@ -172,7 +172,7 @@
+ 
+     ffibuilder.set_source("raylib._raylib_cffi",
+                           ffi_includes,
+-                          include_dirs=[get_the_include_path()],
++                          include_dirs=[get_the_include_path("libffi")],
+                           extra_link_args=extra_link_args,
+                           extra_compile_args=extra_compile_args,
+                           libraries=libraries)
+
diff --git a/pkgs/development/python-modules/razdel/default.nix b/pkgs/development/python-modules/razdel/default.nix
index 519abbd734f44..a5f23fbd37f82 100644
--- a/pkgs/development/python-modules/razdel/default.nix
+++ b/pkgs/development/python-modules/razdel/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest7CheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest7CheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/rbtools/default.nix b/pkgs/development/python-modules/rbtools/default.nix
index 57887196cbaee..bbab71ec70bb5 100644
--- a/pkgs/development/python-modules/rbtools/default.nix
+++ b/pkgs/development/python-modules/rbtools/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchurl
-, isPy3k
-, setuptools
-, colorama
-, six
-, texttable
-, tqdm
+{
+  lib,
+  buildPythonPackage,
+  fetchurl,
+  isPy3k,
+  setuptools,
+  colorama,
+  six,
+  texttable,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,13 @@ buildPythonPackage rec {
     sha256 = "577c2f8bbf88f77bda84ee95af0310b59111c156f48a5aab56ca481e2f77eaf4";
   };
 
-  propagatedBuildInputs = [ six texttable tqdm colorama setuptools ];
+  propagatedBuildInputs = [
+    six
+    texttable
+    tqdm
+    colorama
+    setuptools
+  ];
 
   # The kgb test dependency is not in nixpkgs
   doCheck = false;
@@ -33,5 +40,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ domenkozar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/rchitect/default.nix b/pkgs/development/python-modules/rchitect/default.nix
index cbafc0d2b2b6d..dc2f22e97194e 100644
--- a/pkgs/development/python-modules/rchitect/default.nix
+++ b/pkgs/development/python-modules/rchitect/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cffi
-, pytestCheckHook
-, pytest-mock
-, pythonOlder
-, R
-, rPackages
-, six
-, packaging
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cffi,
+  pytestCheckHook,
+  pytest-mock,
+  pythonOlder,
+  R,
+  rPackages,
+  six,
+  packaging,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     cffi
     six
     packaging
-  ] ++ (with rPackages; [
-    reticulate
-  ]);
+  ] ++ (with rPackages; [ reticulate ]);
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/rcssmin/default.nix b/pkgs/development/python-modules/rcssmin/default.nix
index 15fc1c3bfee18..ce3442245a580 100644
--- a/pkgs/development/python-modules/rcssmin/default.nix
+++ b/pkgs/development/python-modules/rcssmin/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
   # tests auto-discovery
   doCheck = false;
 
-  pythonImportsCheck = [
-    "rcssmin"
-  ];
+  pythonImportsCheck = [ "rcssmin" ];
 
   meta = with lib; {
     description = "CSS minifier written in pure python";
diff --git a/pkgs/development/python-modules/rdflib/default.nix b/pkgs/development/python-modules/rdflib/default.nix
index d0f62efa6a78b..7c131ffe8bc2f 100644
--- a/pkgs/development/python-modules/rdflib/default.nix
+++ b/pkgs/development/python-modules/rdflib/default.nix
@@ -1,30 +1,31 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-
-# builds
-, poetry-core
-
-# propagates
-, isodate
-, pyparsing
-
-# propagates <3.8
-, importlib-metadata
-
-# extras: networkx
-, networkx
-
-# extras: html
-, html5lib
-
-# tests
-, pip
-, pytest-cov
-, pytest7CheckHook
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # builds
+  poetry-core,
+
+  # propagates
+  isodate,
+  pyparsing,
+
+  # propagates <3.8
+  importlib-metadata,
+
+  # extras: networkx
+  networkx,
+
+  # extras: html
+  html5lib,
+
+  # tests
+  pip,
+  pytest-cov,
+  pytest7CheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -41,25 +42,17 @@ buildPythonPackage rec {
     hash = "sha256-VCjvgXMun1Hs+gPeqjzLXbIX1NBQ5aMLz0aWlwsm0iY=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     isodate
     html5lib
     pyparsing
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   passthru.optional-dependencies = {
-    html = [
-      html5lib
-    ];
-    networkx = [
-      networkx
-    ];
+    html = [ html5lib ];
+    networkx = [ networkx ];
   };
 
   __darwinAllowLocalNetworking = true;
@@ -70,9 +63,7 @@ buildPythonPackage rec {
     # Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emitted.
     pytest7CheckHook
     setuptools
-  ]
-  ++ passthru.optional-dependencies.networkx
-  ++ passthru.optional-dependencies.html;
+  ] ++ passthru.optional-dependencies.networkx ++ passthru.optional-dependencies.html;
 
   pytestFlagsArray = [
     # requires network access
@@ -80,23 +71,23 @@ buildPythonPackage rec {
     "--deselect=test/jsonld/test_onedotone.py::test_suite"
   ];
 
-  disabledTests = [
-    # Requires network access
-    "test_service"
-    "testGuessFormatForParse"
-    "test_infix_owl_example1"
-    "test_context"
-    "test_example"
-    "test_guess_format_for_parse"
-    "rdflib.extras.infixowl"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # Require loopback network access
-    "TestGraphHTTP"
-  ];
+  disabledTests =
+    [
+      # Requires network access
+      "test_service"
+      "testGuessFormatForParse"
+      "test_infix_owl_example1"
+      "test_context"
+      "test_example"
+      "test_guess_format_for_parse"
+      "rdflib.extras.infixowl"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # Require loopback network access
+      "TestGraphHTTP"
+    ];
 
-  pythonImportsCheck = [
-    "rdflib"
-  ];
+  pythonImportsCheck = [ "rdflib" ];
 
   meta = with lib; {
     description = "Python library for working with RDF";
diff --git a/pkgs/development/python-modules/rdkit/default.nix b/pkgs/development/python-modules/rdkit/default.nix
index 2d5af44a068d5..44096b6910c0d 100644
--- a/pkgs/development/python-modules/rdkit/default.nix
+++ b/pkgs/development/python-modules/rdkit/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, cmake
-, comic-neue
-, boost
-, catch2_3
-, inchi
-, cairo
-, eigen
-, python
-, rapidjson
-, maeparser
-, coordgenlibs
-, numpy
-, pandas
-, pillow
-, memorymappingHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cmake,
+  comic-neue,
+  boost,
+  catch2_3,
+  inchi,
+  cairo,
+  eigen,
+  python,
+  rapidjson,
+  maeparser,
+  coordgenlibs,
+  numpy,
+  pandas,
+  pillow,
+  memorymappingHook,
 }:
 let
   external = {
@@ -77,17 +78,13 @@ buildPythonPackage rec {
     ln -s ${comic-neue}/share/fonts/truetype/ComicNeue-Regular.ttf Data/Fonts/
   '';
 
-  nativeBuildInputs = [
-    cmake
-  ];
+  nativeBuildInputs = [ cmake ];
 
   buildInputs = [
     boost
     cairo
     catch2_3
-  ] ++ lib.optionals (stdenv.system == "x86_64-darwin") [
-    memorymappingHook
-  ];
+  ] ++ lib.optionals (stdenv.system == "x86_64-darwin") [ memorymappingHook ];
 
   propagatedBuildInputs = [
     numpy
@@ -153,7 +150,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Open source toolkit for cheminformatics";
-    maintainers = with maintainers; [ rmcgibbo natsukium ];
+    maintainers = with maintainers; [
+      rmcgibbo
+      natsukium
+    ];
     license = licenses.bsd3;
     homepage = "https://www.rdkit.org";
     changelog = "https://github.com/rdkit/rdkit/releases/tag/${src.rev}";
diff --git a/pkgs/development/python-modules/re-assert/default.nix b/pkgs/development/python-modules/re-assert/default.nix
index 9cf32d79802e2..5dc156b15053b 100644
--- a/pkgs/development/python-modules/re-assert/default.nix
+++ b/pkgs/development/python-modules/re-assert/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, regex
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  regex,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
   # No tests in archive
   doCheck = false;
 
-  propagatedBuildInputs = [
-    regex
-  ];
+  propagatedBuildInputs = [ regex ];
 
   meta = {
     description = "Show where your regex match assertion failed";
diff --git a/pkgs/development/python-modules/reactivex/default.nix b/pkgs/development/python-modules/reactivex/default.nix
index 430581fce58ff..ab38b8a968b41 100644
--- a/pkgs/development/python-modules/reactivex/default.nix
+++ b/pkgs/development/python-modules/reactivex/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
     hash = "sha256-W1qYNbYV6Roz1GJtP/vpoPD6KigWaaQOWe1R5DZHlUw=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ typing-extensions ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -41,9 +38,7 @@ buildPythonPackage rec {
       --replace 'version = "0.0.0"' 'version = "${version}"'
   '';
 
-  pythonImportsCheck = [
-    "reactivex"
-  ];
+  pythonImportsCheck = [ "reactivex" ];
 
   meta = with lib; {
     description = "Library for composing asynchronous and event-based programs";
diff --git a/pkgs/development/python-modules/readabilipy/default.nix b/pkgs/development/python-modules/readabilipy/default.nix
index e97b238ac599b..862a6428546c9 100644
--- a/pkgs/development/python-modules/readabilipy/default.nix
+++ b/pkgs/development/python-modules/readabilipy/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchFromGitHub
-, html5lib
-, lxml
-, pytestCheckHook
-, pythonOlder
-, regex
-, setuptools
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitHub,
+  html5lib,
+  lxml,
+  pytestCheckHook,
+  pythonOlder,
+  regex,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-XrmdQjLFYdadWeO5DoKAQeEdta+6T6BqfvGlDkzLMyM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     beautifulsoup4
@@ -35,13 +34,9 @@ buildPythonPackage rec {
     regex
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "readabilipy"
-  ];
+  pythonImportsCheck = [ "readabilipy" ];
 
   disabledTests = [
     # AssertionError
diff --git a/pkgs/development/python-modules/readability-lxml/default.nix b/pkgs/development/python-modules/readability-lxml/default.nix
index b1360d7bf5206..e676918cb6988 100644
--- a/pkgs/development/python-modules/readability-lxml/default.nix
+++ b/pkgs/development/python-modules/readability-lxml/default.nix
@@ -1,12 +1,14 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, chardet
-, cssselect
-, lxml
-, timeout-decorator
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  chardet,
+  cssselect,
+  lxml,
+  lxml-html-clean,
+  timeout-decorator,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +23,12 @@ buildPythonPackage rec {
     hash = "sha256-MKdQRety24qOG9xgIdaCJ72XEImP42SlMG6tC7bwzo4=";
   };
 
-  propagatedBuildInputs = [ chardet cssselect lxml ];
+  propagatedBuildInputs = [
+    chardet
+    cssselect
+    lxml
+    lxml-html-clean
+  ];
 
   postPatch = ''
     substituteInPlace setup.py --replace 'sys.platform == "darwin"' "False"
diff --git a/pkgs/development/python-modules/readchar/default.nix b/pkgs/development/python-modules/readchar/default.nix
index 115e0c284a2a8..b9d80f945c25d 100644
--- a/pkgs/development/python-modules/readchar/default.nix
+++ b/pkgs/development/python-modules/readchar/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# tests
-, pytestCheckHook
-, pexpect
+  # tests
+  pytestCheckHook,
+  pexpect,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
       --replace 'sys.platform.startswith("linux")' 'sys.platform.startswith(("darwin", "linux"))'
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   pythonImportsCheck = [ "readchar" ];
 
diff --git a/pkgs/development/python-modules/readlike/default.nix b/pkgs/development/python-modules/readlike/default.nix
index da43d1cec2ceb..fa7480f31ad4d 100644
--- a/pkgs/development/python-modules/readlike/default.nix
+++ b/pkgs/development/python-modules/readlike/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,10 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [ "-s" "tests" ];
+  unittestFlagsArray = [
+    "-s"
+    "tests"
+  ];
 
   meta = with lib; {
     description = "GNU Readline-like line editing module";
diff --git a/pkgs/development/python-modules/readmdict/default.nix b/pkgs/development/python-modules/readmdict/default.nix
index 5ce332df55045..74fec466ad927 100644
--- a/pkgs/development/python-modules/readmdict/default.nix
+++ b/pkgs/development/python-modules/readmdict/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
 
-, poetry-core
-, python-lzo
-, tkinter
+  poetry-core,
+  python-lzo,
+  tkinter,
 
-, pytestCheckHook
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,22 +25,16 @@ buildPythonPackage rec {
     hash = "sha256-1/f+o2bVscT3EA8XQyS2hWjhimLRzfIBM6u2O7UqwcA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     python-lzo
     tkinter
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "readmdict"
-  ];
+  pythonImportsCheck = [ "readmdict" ];
 
   meta = with lib; {
     description = "Read mdx/mdd files (repacking of readmdict from mdict-analysis)";
diff --git a/pkgs/development/python-modules/readme-renderer/default.nix b/pkgs/development/python-modules/readme-renderer/default.nix
index bcc961bc18ffc..2e927f5473dcf 100644
--- a/pkgs/development/python-modules/readme-renderer/default.nix
+++ b/pkgs/development/python-modules/readme-renderer/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, bleach
-, buildPythonPackage
-, cmarkgfm
-, docutils
-, fetchPypi
-, nh3
-, pygments
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  bleach,
+  buildPythonPackage,
+  cmarkgfm,
+  docutils,
+  fetchPypi,
+  nh3,
+  pygments,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-GBjdKBQIE1Ce7tjWJof3zU97rZDU21hgAcXcCdT94xE=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     docutils
@@ -34,23 +33,16 @@ buildPythonPackage rec {
     pygments
   ];
 
-  optional-dependencies.md = [
-    cmarkgfm
-  ];
+  optional-dependencies.md = [ cmarkgfm ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ]
-  ++ optional-dependencies.md;
+  nativeCheckInputs = [ pytestCheckHook ] ++ optional-dependencies.md;
 
   disabledTests = [
     "test_rst_fixtures"
     "test_rst_008.rst"
   ];
 
-  pythonImportsCheck = [
-    "readme_renderer"
-  ];
+  pythonImportsCheck = [ "readme_renderer" ];
 
   meta = with lib; {
     description = "Python library for rendering readme descriptions";
diff --git a/pkgs/development/python-modules/readme/default.nix b/pkgs/development/python-modules/readme/default.nix
index 2e959bf268719..40ab041428977 100644
--- a/pkgs/development/python-modules/readme/default.nix
+++ b/pkgs/development/python-modules/readme/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
-, readme-renderer
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  readme-renderer,
 }:
 
 buildPythonPackage rec {
@@ -15,13 +16,9 @@ buildPythonPackage rec {
     sha256 = "32fbe1538a437da160fa4e4477270bfdcd8876e2e364d0d12898302644496231";
   };
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    readme-renderer
-  ];
+  propagatedBuildInputs = [ readme-renderer ];
 
   checkPhase = ''
     pytest
@@ -37,5 +34,4 @@ buildPythonPackage rec {
     license = licenses.asl20;
     maintainers = [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix b/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
index 7d114a5fe23ef..6d974563bc1e3 100644
--- a/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
+++ b/pkgs/development/python-modules/readthedocs-sphinx-ext/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, requests
-, pytestCheckHook
-, mock
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  requests,
+  pytestCheckHook,
+  mock,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     hash = "sha256-7l/VuZ258MGAsjlsvOUoqjZnGVG5UmuwJy2/zlUXvSc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/rebulk/default.nix b/pkgs/development/python-modules/rebulk/default.nix
index cab55c3a29fea..2aebf689bbaa9 100644
--- a/pkgs/development/python-modules/rebulk/default.nix
+++ b/pkgs/development/python-modules/rebulk/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, regex
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  regex,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-DTC/gPygD6nGlxhaxHXarJveX2Rs4zOMn/XV3B69/rw=";
   };
 
-  propagatedBuildInputs = [
-    regex
-  ];
+  propagatedBuildInputs = [ regex ];
 
-  buildInputs = [
-    pytestCheckHook
-  ];
+  buildInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "rebulk"
-  ];
+  pythonImportsCheck = [ "rebulk" ];
 
   meta = with lib; {
     description = "Advanced string matching from simple patterns";
diff --git a/pkgs/development/python-modules/recipe-scrapers/default.nix b/pkgs/development/python-modules/recipe-scrapers/default.nix
index 4c9ad2d8295e1..690a5def8ef22 100644
--- a/pkgs/development/python-modules/recipe-scrapers/default.nix
+++ b/pkgs/development/python-modules/recipe-scrapers/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, beautifulsoup4
-, extruct
-, language-tags
-, regex
-, requests
-, pytestCheckHook
-, responses
-, setuptools
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  beautifulsoup4,
+  extruct,
+  language-tags,
+  regex,
+  requests,
+  pytestCheckHook,
+  responses,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-+9oQLCuR+rRCG5tnyofHd8WMkQ5QPsWfLCnwIDU5d9o=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     beautifulsoup4
@@ -48,9 +47,7 @@ buildPythonPackage rec {
     "test_instructions"
   ];
 
-  pythonImportsCheck = [
-    "recipe_scrapers"
-  ];
+  pythonImportsCheck = [ "recipe_scrapers" ];
 
   meta = with lib; {
     description = "Python package for scraping recipes data";
diff --git a/pkgs/development/python-modules/recline/default.nix b/pkgs/development/python-modules/recline/default.nix
index 074e1da03386c..f80732ad7b3b0 100644
--- a/pkgs/development/python-modules/recline/default.nix
+++ b/pkgs/development/python-modules/recline/default.nix
@@ -1,26 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pudb
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pudb,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "recline";
-  version = "2023.5";
+  version = "2024.6";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "NetApp";
     repo = "recline";
-    rev = "v${version}";
-    sha256 = "sha256-jsWOPkzhN4D+Q/lK5yWg1kTgFkmOEIQY8O7oAXq5Nak=";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-wVUM5vkavdLDtwRlbtVlVaBOXX+7tcB+SxYe1jZdq9I=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pudb
diff --git a/pkgs/development/python-modules/recommonmark/default.nix b/pkgs/development/python-modules/recommonmark/default.nix
index b58cf8f280002..0569adc5b93ec 100644
--- a/pkgs/development/python-modules/recommonmark/default.nix
+++ b/pkgs/development/python-modules/recommonmark/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, commonmark
-, docutils
-, sphinx
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  commonmark,
+  docutils,
+  sphinx,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,11 @@ buildPythonPackage rec {
   };
 
   nativeCheckInputs = [ pytestCheckHook ];
-  propagatedBuildInputs = [ commonmark docutils sphinx ];
+  propagatedBuildInputs = [
+    commonmark
+    docutils
+    sphinx
+  ];
 
   dontUseSetuptoolsCheck = true;
 
@@ -35,7 +40,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "recommonmark" ];
 
   meta = {
-    description = "A docutils-compatibility bridge to CommonMark";
+    description = "Docutils-compatibility bridge to CommonMark";
     homepage = "https://github.com/rtfd/recommonmark";
     license = lib.licenses.mit;
   };
diff --git a/pkgs/development/python-modules/reconplogger/default.nix b/pkgs/development/python-modules/reconplogger/default.nix
index 319730e8168f5..6b1800c7052bf 100644
--- a/pkgs/development/python-modules/reconplogger/default.nix
+++ b/pkgs/development/python-modules/reconplogger/default.nix
@@ -14,7 +14,7 @@
 
 buildPythonPackage rec {
   pname = "reconplogger";
-  version = "4.16.0";
+  version = "4.16.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "omni-us";
     repo = "reconplogger";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jBWy5oHyZpRUWb8OW0dRFfpu3m3hTd5dpIOQCRO5swM=";
+    hash = "sha256-F/6vT3jLxpteUFtYNtGyiO/JxeRtwJKpdGXTFJ6IDCE=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/recordlinkage/default.nix b/pkgs/development/python-modules/recordlinkage/default.nix
index 7b92cfacebf9d..b89a11830bc4a 100644
--- a/pkgs/development/python-modules/recordlinkage/default.nix
+++ b/pkgs/development/python-modules/recordlinkage/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, bottleneck
-, buildPythonPackage
-, fetchPypi
-, jellyfish
-, joblib
-, networkx
-, numexpr
-, numpy
-, pandas
-, pyarrow
-, pytest
-, pythonOlder
-, scikit-learn
-, scipy
-, setuptools
-, setuptools-scm
-, wheel
+{
+  lib,
+  bottleneck,
+  buildPythonPackage,
+  fetchPypi,
+  jellyfish,
+  joblib,
+  networkx,
+  numexpr,
+  numpy,
+  pandas,
+  pyarrow,
+  pytest,
+  pythonOlder,
+  scikit-learn,
+  scipy,
+  setuptools,
+  setuptools-scm,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -51,13 +52,9 @@ buildPythonPackage rec {
 
   # pytestCheckHook does not work
   # Reusing their CI setup which involves 'rm -rf recordlinkage' in preCheck phase do not work too.
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
-  pythonImportsCheck = [
-    "recordlinkage"
-  ];
+  pythonImportsCheck = [ "recordlinkage" ];
 
   meta = with lib; {
     description = "Library to link records in or between data sources";
diff --git a/pkgs/development/python-modules/recurring-ical-events/default.nix b/pkgs/development/python-modules/recurring-ical-events/default.nix
index fd5cdb62dd7c5..bd3b2b7a99a20 100644
--- a/pkgs/development/python-modules/recurring-ical-events/default.nix
+++ b/pkgs/development/python-modules/recurring-ical-events/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, icalendar
-, pytz
-, python-dateutil
-, x-wr-timezone
-, pytestCheckHook
-, restructuredtext-lint
-, pygments
-, tzdata
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  icalendar,
+  pytz,
+  python-dateutil,
+  x-wr-timezone,
+  pytestCheckHook,
+  restructuredtext-lint,
+  pygments,
+  tzdata,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     hash = "sha256-Njd+sc35jlA96iVf2uuVN2BK92ctwUDfBAUfpgqtPs0=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     icalendar
diff --git a/pkgs/development/python-modules/recursive-pth-loader/default.nix b/pkgs/development/python-modules/recursive-pth-loader/default.nix
index e42988eeff9a8..c5a21d488fcfe 100644
--- a/pkgs/development/python-modules/recursive-pth-loader/default.nix
+++ b/pkgs/development/python-modules/recursive-pth-loader/default.nix
@@ -12,14 +12,13 @@ stdenv.mkDerivation {
 
   buildPhase = "${python.pythonOnBuildForHost}/bin/${python.pythonOnBuildForHost.executable} -m compileall .";
 
-  installPhase =
-    ''
-      dst=$out/${python.sitePackages}
-      mkdir -p $dst
-      cp sitecustomize.* $dst/
-    '';
+  installPhase = ''
+    dst=$out/${python.sitePackages}
+    mkdir -p $dst
+    cp sitecustomize.* $dst/
+  '';
 
   meta = {
-      description = "Enable recursive processing of pth files anywhere in sys.path";
+    description = "Enable recursive processing of pth files anywhere in sys.path";
   };
 }
diff --git a/pkgs/development/python-modules/red-black-tree-mod/default.nix b/pkgs/development/python-modules/red-black-tree-mod/default.nix
index dd17a45bc8ea3..92eca8c4411f6 100644
--- a/pkgs/development/python-modules/red-black-tree-mod/default.nix
+++ b/pkgs/development/python-modules/red-black-tree-mod/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,16 +19,12 @@ buildPythonPackage rec {
     hash = "sha256-OONlKQOiv5Y3nCfCCCygt7kFFYZi3X7wyX9P2TqaqQg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Module has no test
   doCheck = false;
 
-  pythonImportsCheck = [
-    "red_black_dict_mod"
-  ];
+  pythonImportsCheck = [ "red_black_dict_mod" ];
 
   meta = with lib; {
     description = "Flexible python implementation of red black trees";
diff --git a/pkgs/development/python-modules/redbaron/default.nix b/pkgs/development/python-modules/redbaron/default.nix
index 52a3ac5b265e9..5938221f7c0d0 100644
--- a/pkgs/development/python-modules/redbaron/default.nix
+++ b/pkgs/development/python-modules/redbaron/default.nix
@@ -1,4 +1,10 @@
-{ lib, fetchPypi, buildPythonPackage, baron, pytestCheckHook }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  baron,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "redbaron";
@@ -15,7 +21,7 @@ buildPythonPackage rec {
   preCheck = ''
     rm -rf tests/__pycache__
     rm tests/test_bounding_box.py
-  ''; #error about fixtures
+  ''; # error about fixtures
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/redis-om/default.nix b/pkgs/development/python-modules/redis-om/default.nix
index 1549b891636ff..e4c545ad48fde 100644
--- a/pkgs/development/python-modules/redis-om/default.nix
+++ b/pkgs/development/python-modules/redis-om/default.nix
@@ -1,27 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pythonRelaxDepsHook
-, unasync
-, poetry-core
-, python
-, click
-, hiredis
-, more-itertools
-, pydantic
-, python-ulid
-, redis
-, types-redis
-, typing-extensions
-, pkgs
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  unasync,
+  poetry-core,
+  python,
+  click,
+  hiredis,
+  more-itertools,
+  pydantic,
+  python-ulid,
+  redis,
+  types-redis,
+  typing-extensions,
+  pkgs,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "redis-om";
-  version = "0.2.2";
+  version = "0.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -30,11 +30,10 @@ buildPythonPackage rec {
     owner = "redis";
     repo = "redis-om-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-E11wpTrE+HIT+jgn1zMC8L7RGas83DAJd1R0WWHp7Jc=";
+    hash = "sha256-jwFtRnj/jhH+AKjExdOCgUfgEWweFCXVuz6F3qQRcs0=";
   };
 
   build-system = [
-    pythonRelaxDepsHook
     unasync
     poetry-core
   ];
diff --git a/pkgs/development/python-modules/redis/default.nix b/pkgs/development/python-modules/redis/default.nix
index 9e583447e1017..a55e5b293bb46 100644
--- a/pkgs/development/python-modules/redis/default.nix
+++ b/pkgs/development/python-modules/redis/default.nix
@@ -1,34 +1,35 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
 
-# propagates
-, async-timeout
-, deprecated
-, importlib-metadata
-, packaging
-, typing-extensions
+  # propagates
+  async-timeout,
+  deprecated,
+  importlib-metadata,
+  packaging,
+  typing-extensions,
 
-# extras: hiredis
-, hiredis
+  # extras: hiredis
+  hiredis,
 
-# extras: ocsp
-, cryptography
-, pyopenssl
-, requests
+  # extras: ocsp
+  cryptography,
+  pyopenssl,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "redis";
-  version = "5.0.3";
+  version = "5.0.6";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-SXO650RMD77WSga4dEb3k2HLfk7BU4wCLWlu16UBVYA=";
+    hash = "sha256-OEc818Y4mtPkSpH0w+r2vLip90YAfym/T7IIJP8LIZc=";
   };
 
   propagatedBuildInputs = [
@@ -36,14 +37,10 @@ buildPythonPackage rec {
     deprecated
     packaging
     typing-extensions
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   passthru.optional-dependencies = {
-    hiredis = [
-      hiredis
-    ];
+    hiredis = [ hiredis ];
     ocsp = [
       cryptography
       pyopenssl
diff --git a/pkgs/development/python-modules/redshift-connector/default.nix b/pkgs/development/python-modules/redshift-connector/default.nix
index 704eb5d1e1f61..a95c30f1fe239 100644
--- a/pkgs/development/python-modules/redshift-connector/default.nix
+++ b/pkgs/development/python-modules/redshift-connector/default.nix
@@ -1,21 +1,22 @@
-{ beautifulsoup4
-, boto3
-, buildPythonPackage
-, fetchFromGitHub
-, lib
-, lxml
-, packaging
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, pytz
-, requests
-, scramp
+{
+  beautifulsoup4,
+  boto3,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  lxml,
+  packaging,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  requests,
+  scramp,
 }:
 
 buildPythonPackage rec {
   pname = "redshift-connector";
-  version = "2.1.0";
+  version = "2.1.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -24,7 +25,7 @@ buildPythonPackage rec {
     owner = "aws";
     repo = "amazon-redshift-python-driver";
     rev = "refs/tags/v${version}";
-    hash = "sha256-EYJFJbeYUW/vCD46sm5CLeyINL/hcF7IA2myuVmqFaY=";
+    hash = "sha256-sQRnnibkuA+Ejk6TDxDSdtIkkW7CMafYh9zQ/xtuCV4=";
   };
 
   # remove addops as they add test directory and coverage parameters to pytest
diff --git a/pkgs/development/python-modules/reedsolo/default.nix b/pkgs/development/python-modules/reedsolo/default.nix
index a2fb336f70b4d..491c60d713061 100644
--- a/pkgs/development/python-modules/reedsolo/default.nix
+++ b/pkgs/development/python-modules/reedsolo/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, cython
-, setuptools
+  # build-system
+  cython,
+  setuptools,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     "tests/test_creedsolo.py" # TODO: package creedsolo
diff --git a/pkgs/development/python-modules/refery/default.nix b/pkgs/development/python-modules/refery/default.nix
index 0bae769fbdadd..1d434c4d569c6 100644
--- a/pkgs/development/python-modules/refery/default.nix
+++ b/pkgs/development/python-modules/refery/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-
-, poetry-core
-, pyyaml
-, colorama
-, junit-xml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+
+  poetry-core,
+  pyyaml,
+  colorama,
+  junit-xml,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     junit-xml
   ];
 
-  pythonImportCheck = [
-    "refery"
-  ];
+  pythonImportCheck = [ "refery" ];
 
   disabled = pythonOlder "3.10";
 
diff --git a/pkgs/development/python-modules/reflink/default.nix b/pkgs/development/python-modules/reflink/default.nix
index ab7504cf2f312..feb533ee69f00 100644
--- a/pkgs/development/python-modules/reflink/default.nix
+++ b/pkgs/development/python-modules/reflink/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, cffi
-, fetchPypi
-, lib
-, pytestCheckHook
+{
+  buildPythonPackage,
+  cffi,
+  fetchPypi,
+  lib,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/regenmaschine/default.nix b/pkgs/development/python-modules/regenmaschine/default.nix
index 9c8cd8053f5f7..9b24dc91f92ff 100644
--- a/pkgs/development/python-modules/regenmaschine/default.nix
+++ b/pkgs/development/python-modules/regenmaschine/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, certifi
-, fetchFromGitHub
-, poetry-core
-, pytest-aiohttp
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, typing-extensions
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  certifi,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-RdmK6oK92j4xqLoAjjqlONYu3IfNNWudo4v7jcc+VGU=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -50,9 +49,7 @@ buildPythonPackage rec {
     "examples/"
   ];
 
-  pythonImportsCheck = [
-    "regenmaschine"
-  ];
+  pythonImportsCheck = [ "regenmaschine" ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/regex/default.nix b/pkgs/development/python-modules/regex/default.nix
index 0ada0fe50ba22..4434ff860134f 100644
--- a/pkgs/development/python-modules/regex/default.nix
+++ b/pkgs/development/python-modules/regex/default.nix
@@ -1,29 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "regex";
-  version = "2023.12.25";
+  version = "2024.5.15";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-KRcaoSjaaa/fS95BLVvtwzXyyo/P5EiQOFd9BfFhgeU=";
+    hash = "sha256-0+4C2eX0gsyDCRNKke6qy90iYboRGw/vN0jutJE+aiw=";
   };
 
   checkPhase = ''
     ${python.interpreter} -m unittest
   '';
 
-  pythonImportsCheck = [
-    "regex"
-  ];
+  pythonImportsCheck = [ "regex" ];
 
   meta = with lib; {
     description = "Alternative regular expression module, to replace re";
diff --git a/pkgs/development/python-modules/regional/default.nix b/pkgs/development/python-modules/regional/default.nix
index ccbfb1cb874aa..e5dea4940b317 100644
--- a/pkgs/development/python-modules/regional/default.nix
+++ b/pkgs/development/python-modules/regional/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, scipy
-, matplotlib
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  scipy,
+  matplotlib,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +29,9 @@ buildPythonPackage rec {
     scipy
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "regional"
-  ];
+  pythonImportsCheck = [ "regional" ];
 
   disabledTests = [
     "test_dilate"
diff --git a/pkgs/development/python-modules/regress/default.nix b/pkgs/development/python-modules/regress/default.nix
index b70e52008778f..e59496b767d12 100644
--- a/pkgs/development/python-modules/regress/default.nix
+++ b/pkgs/development/python-modules/regress/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, stdenv
-, fetchPypi
-, buildPythonPackage
-, rustPlatform
-, libiconv
+{
+  lib,
+  stdenv,
+  fetchPypi,
+  buildPythonPackage,
+  rustPlatform,
+  libiconv,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,10 @@ buildPythonPackage rec {
     hash = "sha256-tCrFBjkK6obzaYkYiJ3WQ5yi3KkC86/cbXCSnRRGZu8=";
   };
 
-  nativeBuildInputs = with rustPlatform; [ cargoSetupHook maturinBuildHook ];
+  nativeBuildInputs = with rustPlatform; [
+    cargoSetupHook
+    maturinBuildHook
+  ];
 
   buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ];
 
@@ -28,7 +32,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "Python bindings to the Rust regress crate, exposing ECMA regular expressions.";
+    description = "Python bindings to the Rust regress crate, exposing ECMA regular expressions";
     homepage = "https://github.com/Julian/regress";
     license = licenses.mit;
     maintainers = [ maintainers.matthiasbeyer ];
diff --git a/pkgs/development/python-modules/reikna/default.nix b/pkgs/development/python-modules/reikna/default.nix
index ad71a2943ea18..95bdca651be5d 100644
--- a/pkgs/development/python-modules/reikna/default.nix
+++ b/pkgs/development/python-modules/reikna/default.nix
@@ -1,14 +1,17 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, sphinx
-, pytest-cov
-, pytest
-, mako
-, numpy
-, funcsigs
-, withCuda ? false, pycuda
-, withOpenCL ? true, pyopencl
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  sphinx,
+  pytest-cov,
+  pytest,
+  mako,
+  numpy,
+  funcsigs,
+  withCuda ? false,
+  pycuda,
+  withOpenCL ? true,
+  pyopencl,
 }:
 
 buildPythonPackage rec {
@@ -21,11 +24,17 @@ buildPythonPackage rec {
     hash = "sha256-fpa1Pfo5EAafg7Pgha17G6k5G13fdErjclv0On/uYyI=";
   };
 
-  nativeCheckInputs = [ sphinx pytest-cov pytest ];
+  nativeCheckInputs = [
+    sphinx
+    pytest-cov
+    pytest
+  ];
 
-  propagatedBuildInputs = [ mako numpy funcsigs ]
-    ++ lib.optional withCuda pycuda
-    ++ lib.optional withOpenCL pyopencl;
+  propagatedBuildInputs = [
+    mako
+    numpy
+    funcsigs
+  ] ++ lib.optional withCuda pycuda ++ lib.optional withOpenCL pyopencl;
 
   checkPhase = ''
     py.test
@@ -38,7 +47,5 @@ buildPythonPackage rec {
     description = "GPGPU algorithms for PyCUDA and PyOpenCL";
     homepage = "https://github.com/fjarri/reikna";
     license = licenses.mit;
-
   };
-
 }
diff --git a/pkgs/development/python-modules/related/default.nix b/pkgs/development/python-modules/related/default.nix
index 8c131e146944e..d36157d818ccc 100644
--- a/pkgs/development/python-modules/related/default.nix
+++ b/pkgs/development/python-modules/related/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, attrs
-, buildPythonPackage
-, fetchPypi
-, future
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pyyaml
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  fetchPypi,
+  future,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     pyyaml
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     # Remove outdated setup.cfg
@@ -47,9 +46,7 @@ buildPythonPackage rec {
     "test_store_data_from_json"
   ];
 
-  pythonImportsCheck = [
-    "related"
-  ];
+  pythonImportsCheck = [ "related" ];
 
   meta = with lib; {
     description = "Nested Object Models in Python";
diff --git a/pkgs/development/python-modules/relatorio/default.nix b/pkgs/development/python-modules/relatorio/default.nix
index 14460fb9b17b0..9595e8e176879 100644
--- a/pkgs/development/python-modules/relatorio/default.nix
+++ b/pkgs/development/python-modules/relatorio/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, genshi
-, lxml
-, pyyaml
-, python-magic
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  genshi,
+  lxml,
+  pyyaml,
+  python-magic,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "relatorio";
-  version = "0.10.1";
+  version = "0.10.2";
 
   disabled = pythonOlder "3.5";
 
@@ -19,7 +20,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "a0c72302d50d5dfa433ddab191672eec1dde1c6ed26330a378b720e5a3012e23";
+    sha256 = "sha256-zgCOmcR9FWj0lpi78U0G1CKR5kyNyr541HusIrBpF/Q=";
   };
 
   propagatedBuildInputs = [
@@ -28,20 +29,21 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    chart = [ /* pycha */ pyyaml ];
+    chart = [
+      # pycha
+      pyyaml
+    ];
     fodt = [ python-magic ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.fodt;
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.fodt;
 
   pythonImportsCheck = [ "relatorio" ];
 
   meta = {
     homepage = "https://relatorio.tryton.org/";
     changelog = "https://hg.tryton.org/relatorio/file/${version}/CHANGELOG";
-    description = "A templating library able to output odt and pdf files";
+    description = "Templating library able to output odt and pdf files";
     mainProgram = "relatorio-render";
     maintainers = with lib.maintainers; [ johbo ];
     license = lib.licenses.gpl2Plus;
diff --git a/pkgs/development/python-modules/releases/default.nix b/pkgs/development/python-modules/releases/default.nix
index 05c6d5ae75d00..2db172bdeb5be 100644
--- a/pkgs/development/python-modules/releases/default.nix
+++ b/pkgs/development/python-modules/releases/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, semantic-version
-, sphinx
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  semantic-version,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,10 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "semantic_version<2.7" "semantic_version"
   '';
 
-  propagatedBuildInputs = [ semantic-version sphinx ];
+  propagatedBuildInputs = [
+    semantic-version
+    sphinx
+  ];
 
   # Test suite doesn't run. See https://github.com/bitprophet/releases/issues/95.
   doCheck = false;
@@ -29,7 +33,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "releases" ];
 
   meta = with lib; {
-    description = "A Sphinx extension for changelog manipulation";
+    description = "Sphinx extension for changelog manipulation";
     homepage = "https://github.com/bitprophet/releases";
     license = licenses.bsd2;
     maintainers = with maintainers; [ samuela ];
diff --git a/pkgs/development/python-modules/remarshal/default.nix b/pkgs/development/python-modules/remarshal/default.nix
index 0d8829201afc2..dedab0bbc95e8 100644
--- a/pkgs/development/python-modules/remarshal/default.nix
+++ b/pkgs/development/python-modules/remarshal/default.nix
@@ -1,20 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonRelaxDepsHook
-
-# build deps
-, poetry-core
-
-# propagates
-, cbor2
-, python-dateutil
-, pyyaml
-, tomlkit
-, u-msgpack-python
-
-# tested using
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build deps
+  poetry-core,
+
+  # propagates
+  cbor2,
+  python-dateutil,
+  pyyaml,
+  tomlkit,
+  u-msgpack-python,
+
+  # tested using
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -31,12 +31,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "pytest"
-  ];
+  pythonRelaxDeps = [ "pytest" ];
 
   propagatedBuildInputs = [
     cbor2
@@ -46,9 +43,7 @@ buildPythonPackage rec {
     u-msgpack-python
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     changelog = "https://github.com/remarshal-project/remarshal/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/remi/default.nix b/pkgs/development/python-modules/remi/default.nix
index 64b6a70669743..413c2563ee024 100644
--- a/pkgs/development/python-modules/remi/default.nix
+++ b/pkgs/development/python-modules/remi/default.nix
@@ -1,12 +1,13 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
-, matplotlib
-, python-snap7
-, opencv4
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  matplotlib,
+  python-snap7,
+  opencv4,
 }:
 
 buildPythonPackage rec {
@@ -41,9 +42,7 @@ buildPythonPackage rec {
         "self.assertEqual("
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/remote-pdb/default.nix b/pkgs/development/python-modules/remote-pdb/default.nix
index 5081c34c3c464..c17f48d451554 100644
--- a/pkgs/development/python-modules/remote-pdb/default.nix
+++ b/pkgs/development/python-modules/remote-pdb/default.nix
@@ -1,4 +1,8 @@
-{ buildPythonPackage, fetchFromGitHub, lib }:
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+}:
 buildPythonPackage rec {
   pname = "remote-pdb";
   version = "2.1.0";
@@ -10,7 +14,7 @@ buildPythonPackage rec {
     hash = "sha256-/7RysJOJigU4coC6d/Ob2lrtw8u8nLZI8wBk4oEEY3g=";
   };
   meta = with lib; {
-    description = "Remote vanilla PDB (over TCP sockets).";
+    description = "Remote vanilla PDB (over TCP sockets)";
     homepage = "https://github.com/ionelmc/python-remote-pdb";
     license = licenses.bsd2;
     maintainers = with maintainers; [ mic92 ];
diff --git a/pkgs/development/python-modules/remotezip/default.nix b/pkgs/development/python-modules/remotezip/default.nix
index ec81726cd243f..473ea7762355a 100644
--- a/pkgs/development/python-modules/remotezip/default.nix
+++ b/pkgs/development/python-modules/remotezip/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, requests
-, tabulate
-, pytestCheckHook
-, requests-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  requests,
+  tabulate,
+  pytestCheckHook,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
@@ -20,22 +21,16 @@ buildPythonPackage rec {
     hash = "sha256-TNEM7Dm4iH4Z/P/PAqjJppbn1CKmyi9Xpq/sU9O8uxg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     pytestCheckHook
     requests-mock
   ];
 
-  pythonImportsCheck = [
-    "remotezip"
-  ];
+  pythonImportsCheck = [ "remotezip" ];
 
   meta = with lib; {
     description = "Python module to access single members of a zip archive without downloading the full content";
diff --git a/pkgs/development/python-modules/renault-api/default.nix b/pkgs/development/python-modules/renault-api/default.nix
index 61362a5021f61..a295c2654513d 100644
--- a/pkgs/development/python-modules/renault-api/default.nix
+++ b/pkgs/development/python-modules/renault-api/default.nix
@@ -19,8 +19,8 @@
 
 buildPythonPackage rec {
   pname = "renault-api";
-  version = "0.2.2";
-  format = "pyproject";
+  version = "0.2.3";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -28,24 +28,19 @@ buildPythonPackage rec {
     owner = "hacf-fr";
     repo = "renault-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-FZ1VNO8gEH7HJRu9EVuKIwSQbceG720tCVqAPqHwISQ=";
+    hash = "sha256-+QqiD4mMfzlHmSiriaS0JzbMdOGCG7cg/xv6zJaPSOU=";
   };
 
   build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     cryptography
     marshmallow-dataclass
     pyjwt
   ];
 
-  dependencies = [
-    aioresponses
-    pytest-asyncio
-  ];
-
-  passthru.optional-dependencies = {
+  optional-dependencies = {
     cli = [
       click
       dateparser
@@ -54,11 +49,11 @@ buildPythonPackage rec {
   };
 
   nativeCheckInputs = [
+    aioresponses
+    pytest-asyncio
     pytestCheckHook
     typeguard
-  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
-
-  pytestFlagsArray = [ "--asyncio-mode=auto" ];
+  ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
   pythonImportsCheck = [ "renault_api" ];
 
diff --git a/pkgs/development/python-modules/rencode/default.nix b/pkgs/development/python-modules/rencode/default.nix
index ffbe1ef8967af..f9a0cf8164005 100644
--- a/pkgs/development/python-modules/rencode/default.nix
+++ b/pkgs/development/python-modules/rencode/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cython
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cython,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ cython ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     # import from $out
diff --git a/pkgs/development/python-modules/renson-endura-delta/default.nix b/pkgs/development/python-modules/renson-endura-delta/default.nix
index 013678d5eeec9..03914c36dba2a 100644
--- a/pkgs/development/python-modules/renson-endura-delta/default.nix
+++ b/pkgs/development/python-modules/renson-endura-delta/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -27,22 +28,16 @@ buildPythonPackage rec {
       --replace "'pytest-runner'" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     pytestCheckHook
     requests-mock
   ];
 
-  pythonImportsCheck = [
-    "renson_endura_delta"
-  ];
+  pythonImportsCheck = [ "renson_endura_delta" ];
 
   meta = with lib; {
     description = "Module to interact with Renson endura delta";
diff --git a/pkgs/development/python-modules/reolink-aio/default.nix b/pkgs/development/python-modules/reolink-aio/default.nix
index b1fb08c4bdf33..e681e1f6d5550 100644
--- a/pkgs/development/python-modules/reolink-aio/default.nix
+++ b/pkgs/development/python-modules/reolink-aio/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, aiohttp
-, aiortsp
-, buildPythonPackage
-, fetchFromGitHub
-, orjson
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  aiohttp,
+  aiortsp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  orjson,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "reolink-aio";
-  version = "0.8.9";
+  version = "0.9.3";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -20,23 +21,19 @@ buildPythonPackage rec {
     owner = "starkillerOG";
     repo = "reolink_aio";
     rev = "refs/tags/${version}";
-    hash = "sha256-MUhB8A51dj+FA3+lvBrFyAWizKq5CpYwo38E1euJsHs=";
+    hash = "sha256-tCT43wbDScL/aoQFmLPkrw59a88f4qpNeNa0Q27H9wA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     aiortsp
     orjson
     typing-extensions
   ];
 
-  pythonImportsCheck = [
-    "reolink_aio"
-  ];
+  pythonImportsCheck = [ "reolink_aio" ];
 
   # All tests require a network device
   doCheck = false;
diff --git a/pkgs/development/python-modules/reolink/default.nix b/pkgs/development/python-modules/reolink/default.nix
index 06143c2922f44..c05b83b06dea7 100644
--- a/pkgs/development/python-modules/reolink/default.nix
+++ b/pkgs/development/python-modules/reolink/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiohttp
-, aiounittest
-, buildPythonPackage
-, fetchFromGitHub
-, ffmpeg-python
-, pytestCheckHook
-, pythonOlder
-, requests
+{
+  lib,
+  aiohttp,
+  aiounittest,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ffmpeg-python,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -43,9 +44,7 @@ buildPythonPackage rec {
   # https://github.com/fwestenberg/reolink/issues/83
   doCheck = false;
 
-  pytestFlagsArray = [
-    "test.py"
-  ];
+  pytestFlagsArray = [ "test.py" ];
 
   disabledTests = [
     # Tests require network access
@@ -56,9 +55,7 @@ buildPythonPackage rec {
     "test_succes"
   ];
 
-  pythonImportsCheck = [
-    "reolink"
-  ];
+  pythonImportsCheck = [ "reolink" ];
 
   meta = with lib; {
     description = "Module to interact with the Reolink IP camera API";
diff --git a/pkgs/development/python-modules/reorder-python-imports/default.nix b/pkgs/development/python-modules/reorder-python-imports/default.nix
index b00896c801f0d..f907993c888c8 100644
--- a/pkgs/development/python-modules/reorder-python-imports/default.nix
+++ b/pkgs/development/python-modules/reorder-python-imports/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, aspy-refactor-imports
-, classify-imports
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  aspy-refactor-imports,
+  classify-imports,
 }:
 
 buildPythonPackage rec {
@@ -25,19 +26,13 @@ buildPythonPackage rec {
     classify-imports
   ];
 
-  pythonImportsCheck = [
-    "reorder_python_imports"
-  ];
+  pythonImportsCheck = [ "reorder_python_imports" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # prints an explanation about PYTHONPATH first
   # and therefore fails the assertion
-  disabledTests = [
-    "test_success_messages_are_printed_on_stderr"
-  ];
+  disabledTests = [ "test_success_messages_are_printed_on_stderr" ];
 
   meta = with lib; {
     description = "Tool for automatically reordering python imports";
diff --git a/pkgs/development/python-modules/reparser/default.nix b/pkgs/development/python-modules/reparser/default.nix
index fe0befde9db1b..4ea2dab3e785c 100644
--- a/pkgs/development/python-modules/reparser/default.nix
+++ b/pkgs/development/python-modules/reparser/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, isPy27
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  isPy27,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/repath/default.nix b/pkgs/development/python-modules/repath/default.nix
index b052b408e9f4c..88eb3ad0c3a2f 100644
--- a/pkgs/development/python-modules/repath/default.nix
+++ b/pkgs/development/python-modules/repath/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -14,16 +15,12 @@ buildPythonPackage rec {
     hash = "sha256-gpITm6xqDkP9nXBgXU6NrrJdRmcuSE7TGiTHzgrvD7c=";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  pythonImportsCheck = [
-    "repath"
-  ];
+  pythonImportsCheck = [ "repath" ];
 
   meta = {
-    description = "A port of the node module path-to-regexp to Python";
+    description = "Port of the node module path-to-regexp to Python";
     homepage = "https://github.com/nickcoutsos/python-repath";
     license = lib.licenses.mit;
     maintainers = [ lib.maintainers.heyimnova ];
diff --git a/pkgs/development/python-modules/repeated-test/default.nix b/pkgs/development/python-modules/repeated-test/default.nix
index f87d5cdc782c6..3a3531458eed3 100644
--- a/pkgs/development/python-modules/repeated-test/default.nix
+++ b/pkgs/development/python-modules/repeated-test/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools-scm
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools-scm,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,17 +20,11 @@ buildPythonPackage rec {
     hash = "sha256-3YPU8SL9rud5s0pnwwH5TJk1MXsDhdkDnZp/Oj6sgXs=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "repeated_test"
-  ];
+  pythonImportsCheck = [ "repeated_test" ];
 
   meta = with lib; {
     description = "Unittest-compatible framework for repeating a test function over many fixtures";
diff --git a/pkgs/development/python-modules/repl-python-wakatime/default.nix b/pkgs/development/python-modules/repl-python-wakatime/default.nix
new file mode 100644
index 0000000000000..72bdb809a8cb6
--- /dev/null
+++ b/pkgs/development/python-modules/repl-python-wakatime/default.nix
@@ -0,0 +1,52 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  ipython,
+  keyring,
+  ptpython,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-generate,
+  setuptools-scm,
+}:
+
+buildPythonPackage rec {
+  pname = "repl-python-wakatime";
+  version = "0.0.11";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-HoCdeo03Lf3g5Xg0GgAyWOu2PtGqy33vg5bQrfkEPkE=";
+  };
+
+  build-system = [
+    setuptools
+    setuptools-scm
+    setuptools-generate
+  ];
+
+  dependencies = [
+    ptpython
+    ipython
+  ];
+
+  nativeCheckInputs = [
+    keyring
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "repl_python_wakatime" ];
+
+  meta = with lib; {
+    description = "Python REPL plugin for automatic time tracking and metrics generated from your programming activity";
+    homepage = "https://github.com/wakatime/repl-python-wakatime";
+    changelog = "https://github.com/wakatime/repl-python-wakatime/releases/tag/${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ jfvillablanca ];
+  };
+}
diff --git a/pkgs/development/python-modules/repocheck/default.nix b/pkgs/development/python-modules/repocheck/default.nix
index 9b73dabf027ef..d5df17ae89fdd 100644
--- a/pkgs/development/python-modules/repocheck/default.nix
+++ b/pkgs/development/python-modules/repocheck/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
@@ -21,5 +22,4 @@ buildPythonPackage rec {
     mainProgram = "repocheck";
     license = licenses.gpl3Plus;
   };
-
 }
diff --git a/pkgs/development/python-modules/reportengine/default.nix b/pkgs/development/python-modules/reportengine/default.nix
index 79e1a908f7ebb..ec88a805dd736 100644
--- a/pkgs/development/python-modules/reportengine/default.nix
+++ b/pkgs/development/python-modules/reportengine/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit
-, jinja2
-, ruamel-yaml
-, matplotlib
-, pandas
-, pandoc
-, pygments
-, blessings
-, curio
-, hypothesis
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit,
+  jinja2,
+  ruamel-yaml,
+  matplotlib,
+  pandas,
+  pandoc,
+  pygments,
+  blessings,
+  curio,
+  hypothesis,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -45,9 +46,12 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "reportengine" ];
 
   meta = with lib; {
-    description = "A framework for declarative data analysis";
+    description = "Framework for declarative data analysis";
     homepage = "https://github.com/NNPDF/reportengine/";
     license = with licenses; [ gpl2Only ];
     maintainers = with maintainers; [ veprbl ];
+    # Incompatibility with ruamel >= 0.18
+    # https://github.com/NNPDF/reportengine/issues/60
+    broken = versionAtLeast ruamel-yaml.version "0.18";
   };
 }
diff --git a/pkgs/development/python-modules/reportlab-qrcode/default.nix b/pkgs/development/python-modules/reportlab-qrcode/default.nix
new file mode 100644
index 0000000000000..b540fd219caf7
--- /dev/null
+++ b/pkgs/development/python-modules/reportlab-qrcode/default.nix
@@ -0,0 +1,50 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  wheel,
+  qrcode,
+  reportlab,
+  pillow,
+  pytest,
+  pyzbar,
+}:
+
+buildPythonPackage rec {
+  pname = "reportlab-qrcode";
+  version = "0.1.6";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-m/oeuA797MEBOJBIG157VIa7TbEbRRVK/O8Arz/oO/o=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
+  propagatedBuildInputs = [
+    qrcode
+    reportlab
+  ];
+
+  passthru.optional-dependencies = {
+    testing = [
+      pillow
+      pytest
+      pyzbar
+    ];
+  };
+
+  pythonImportsCheck = [ "reportlab_qrcode" ];
+
+  meta = with lib; {
+    description = "Allows to create QR codes for use with the ReportLab PDF library";
+    homepage = "https://pypi.org/project/reportlab-qrcode/";
+    license = licenses.mit;
+    maintainers = with maintainers; [ xanderio ];
+  };
+}
diff --git a/pkgs/development/python-modules/reportlab/default.nix b/pkgs/development/python-modules/reportlab/default.nix
index 2024b2835a753..48e0065bc564a 100644
--- a/pkgs/development/python-modules/reportlab/default.nix
+++ b/pkgs/development/python-modules/reportlab/default.nix
@@ -1,18 +1,22 @@
-{ lib
-, buildPythonPackage
-, chardet
-, fetchPypi
-, freetype
-, pillow
-, setuptools
-, glibcLocales
-, python
-, isPyPy
+{
+  lib,
+  buildPythonPackage,
+  chardet,
+  fetchPypi,
+  freetype,
+  pillow,
+  setuptools,
+  glibcLocales,
+  python,
+  isPyPy,
 }:
 
 let
-  ft = freetype.overrideAttrs (oldArgs: { dontDisableStatic = true; });
-in buildPythonPackage rec {
+  ft = freetype.overrideAttrs (oldArgs: {
+    dontDisableStatic = true;
+  });
+in
+buildPythonPackage rec {
   pname = "reportlab";
   version = "4.2.0";
   pyproject = true;
@@ -36,22 +40,16 @@ in buildPythonPackage rec {
     rm tests/test_graphics_charts.py
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  buildInputs = [
-    ft
-  ];
+  buildInputs = [ ft ];
 
   propagatedBuildInputs = [
     chardet
     pillow
   ];
 
-  nativeCheckInputs = [
-    glibcLocales
-  ];
+  nativeCheckInputs = [ glibcLocales ];
 
   checkPhase = ''
     runHook preCheck
@@ -62,7 +60,7 @@ in buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "An Open Source Python library for generating PDFs and graphics";
+    description = "Open Source Python library for generating PDFs and graphics";
     homepage = "https://www.reportlab.com/";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/repoze-lru/default.nix b/pkgs/development/python-modules/repoze-lru/default.nix
index ef8ecba935ed6..1fbfd29947366 100644
--- a/pkgs/development/python-modules/repoze-lru/default.nix
+++ b/pkgs/development/python-modules/repoze-lru/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,17 +17,11 @@ buildPythonPackage rec {
     hash = "sha256-BCmnXhk4Dk7VDAaU4mrIgZtOp4Ue4fx1g8hXLbgK/3c=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "repoze/lru/tests.py"
-  ];
+  pytestFlagsArray = [ "repoze/lru/tests.py" ];
 
   disabledTests = [
     # time sensitive tests
@@ -39,7 +34,7 @@ buildPythonPackage rec {
   pythonNamespaces = [ "repoze" ];
 
   meta = with lib; {
-    description = "A tiny LRU cache implementation and decorator";
+    description = "Tiny LRU cache implementation and decorator";
     homepage = "http://www.repoze.org/";
     changelog = "https://github.com/repoze/repoze.lru/blob/${version}/CHANGES.rst";
     license = licenses.bsd0;
diff --git a/pkgs/development/python-modules/repoze-sphinx-autointerface/default.nix b/pkgs/development/python-modules/repoze-sphinx-autointerface/default.nix
index 879a18e3d4a71..ca7c14c1e2d90 100644
--- a/pkgs/development/python-modules/repoze-sphinx-autointerface/default.nix
+++ b/pkgs/development/python-modules/repoze-sphinx-autointerface/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, pytestCheckHook
-, zope-interface
-, zope-testrunner
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  pytestCheckHook,
+  zope-interface,
+  zope-testrunner,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-SGvxQjpGlrkVPkiM750ybElv/Bbd6xSwyYh7RsYOKKE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     zope-interface
@@ -36,9 +35,7 @@ buildPythonPackage rec {
     zope-testrunner
   ];
 
-  pythonImportsCheck = [
-    "repoze.sphinx.autointerface"
-  ];
+  pythonImportsCheck = [ "repoze.sphinx.autointerface" ];
 
   pythonNamespaces = [
     "repoze"
diff --git a/pkgs/development/python-modules/repoze-who/default.nix b/pkgs/development/python-modules/repoze-who/default.nix
index 07d6de4e67e68..abbc62a0aa83b 100644
--- a/pkgs/development/python-modules/repoze-who/default.nix
+++ b/pkgs/development/python-modules/repoze-who/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, zope-interface
-, webob
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  zope-interface,
+  webob,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,25 +19,22 @@ buildPythonPackage rec {
     hash = "sha256-6VWt8AwfCwxxXoKJeaI37Ev37nCCe9l/Xhe/gnYNyzA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
-
-  propagatedBuildInputs = [ zope-interface webob ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
+  propagatedBuildInputs = [
+    zope-interface
+    webob
   ];
 
+  nativeCheckInputs = [ pytestCheckHook ];
+
   # skip failing test
   # OSError: [Errno 22] Invalid argument
   preCheck = ''
     rm repoze/who/plugins/tests/test_htpasswd.py
   '';
 
-  pythonImportsCheck = [
-    "repoze.who"
-  ];
+  pythonImportsCheck = [ "repoze.who" ];
 
   pythonNamespaces = [
     "repoze"
diff --git a/pkgs/development/python-modules/reproject/default.nix b/pkgs/development/python-modules/reproject/default.nix
index c5ee962365430..7deb0b20614ea 100644
--- a/pkgs/development/python-modules/reproject/default.nix
+++ b/pkgs/development/python-modules/reproject/default.nix
@@ -1,21 +1,21 @@
-{ lib
-, astropy
-, astropy-extension-helpers
-, astropy-healpix
-, buildPythonPackage
-, cloudpickle
-, cython
-, dask
-, fetchPypi
-, fsspec
-, numpy
-, oldest-supported-numpy
-, pytest-astropy
-, pytestCheckHook
-, pythonOlder
-, scipy
-, setuptools-scm
-, zarr
+{
+  lib,
+  astropy,
+  astropy-extension-helpers,
+  astropy-healpix,
+  buildPythonPackage,
+  cloudpickle,
+  cython,
+  dask,
+  fetchPypi,
+  fsspec,
+  numpy,
+  pytest-astropy,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
+  setuptools-scm,
+  zarr,
 }:
 
 buildPythonPackage rec {
@@ -23,7 +23,7 @@ buildPythonPackage rec {
   version = "0.13.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.9";
+  disabled = pythonOlder "3.10";
 
   src = fetchPypi {
     inherit pname version;
@@ -32,14 +32,14 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "cython==" "cython>="
+      --replace "cython==" "cython>=" \
+      --replace "numpy>=2.0.0rc1" "numpy"
   '';
 
   nativeBuildInputs = [
     astropy-extension-helpers
     cython
     numpy
-    oldest-supported-numpy
     setuptools-scm
   ];
 
@@ -65,11 +65,11 @@ buildPythonPackage rec {
     "-p no:warnings"
     # Uses network
     "--ignore build/lib*/reproject/interpolation/"
+    # prevent "'filterwarnings' not found in `markers` configuration option" error
+    "-o 'markers=filterwarnings'"
   ];
 
-  pythonImportsCheck = [
-    "reproject"
-  ];
+  pythonImportsCheck = [ "reproject" ];
 
   meta = with lib; {
     description = "Reproject astronomical images";
diff --git a/pkgs/development/python-modules/reprshed/default.nix b/pkgs/development/python-modules/reprshed/default.nix
index 1aa9469aab29c..fb05ed5726250 100644
--- a/pkgs/development/python-modules/reprshed/default.nix
+++ b/pkgs/development/python-modules/reprshed/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
@@ -15,13 +16,11 @@ buildPythonPackage rec {
     hash = "sha256-XfmiewI74eDLKTAU6Ed76QXfJYMRb+idRACl6CW07ME=";
   };
 
-  pythonImportsCheck = [
-    "reprshed"
-  ];
+  pythonImportsCheck = [ "reprshed" ];
 
   meta = with lib; {
     homepage = "https://github.com/mentalisttraceur/python-reprshed";
-    description = "A toolshed for writing great __repr__ methods quickly and easily";
+    description = "Toolshed for writing great __repr__ methods quickly and easily";
     license = licenses.bsd0;
     maintainers = with maintainers; [ netali ];
   };
diff --git a/pkgs/development/python-modules/reptor/default.nix b/pkgs/development/python-modules/reptor/default.nix
index a9051dc3eb5fb..2bd4a81122336 100644
--- a/pkgs/development/python-modules/reptor/default.nix
+++ b/pkgs/development/python-modules/reptor/default.nix
@@ -16,7 +16,6 @@
   pytest,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
   pyyaml,
   reptor,
   requests,
@@ -33,7 +32,7 @@
 
 buildPythonPackage rec {
   pname = "reptor";
-  version = "0.19";
+  version = "0.20";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -42,14 +41,13 @@ buildPythonPackage rec {
     owner = "Syslifters";
     repo = "reptor";
     rev = "refs/tags/${version}";
-    hash = "sha256-7ZmMG1Fil8/JAks50baT/p1H7wHjap58+i81/DFlSAk=";
+    hash = "sha256-6DuIJScNiSaEez4vMRuA5Thr8zmvH0j3oiZmQhONSdY=";
   };
 
   pythonRelaxDeps = true;
 
   build-system = [ setuptools ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     asgiref
diff --git a/pkgs/development/python-modules/reqif/default.nix b/pkgs/development/python-modules/reqif/default.nix
index 0a13af92ee51f..7548fb3c6f84b 100644
--- a/pkgs/development/python-modules/reqif/default.nix
+++ b/pkgs/development/python-modules/reqif/default.nix
@@ -1,20 +1,20 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, jinja2
-, lxml
-, pytestCheckHook
-, python
-, pythonOlder
-, pythonRelaxDepsHook
-, xmlschema
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  jinja2,
+  lxml,
+  pytestCheckHook,
+  python,
+  pythonOlder,
+  xmlschema,
 }:
 
 buildPythonPackage rec {
   pname = "reqif";
-  version = "0.0.40";
+  version = "0.0.42";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -23,7 +23,7 @@ buildPythonPackage rec {
     owner = "strictdoc-project";
     repo = "reqif";
     rev = "refs/tags/${version}";
-    hash = "sha256-VQvwynFv/DN5RHT00rxtDcJ9wsEpKdsh3rdyUakBr2Q=";
+    hash = "sha256-cQhis7jrcly3cw2LRv7hpPBFAB0Uag69czf+wJvbh/Q=";
   };
 
   postPatch = ''
@@ -34,7 +34,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     hatchling
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -44,13 +43,9 @@ buildPythonPackage rec {
     xmlschema
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "reqif"
-  ];
+  pythonImportsCheck = [ "reqif" ];
 
   meta = with lib; {
     description = "Python library for ReqIF format";
diff --git a/pkgs/development/python-modules/requests-aws4auth/default.nix b/pkgs/development/python-modules/requests-aws4auth/default.nix
index 9ce588e3206b2..670c50c51a2a1 100644
--- a/pkgs/development/python-modules/requests-aws4auth/default.nix
+++ b/pkgs/development/python-modules/requests-aws4auth/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, httpx
-, pytestCheckHook
-, python
-, pythonOlder
-, requests
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpx,
+  pytestCheckHook,
+  python,
+  pythonOlder,
+  requests,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -29,18 +30,12 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    httpx = [
-      httpx
-    ];
+    httpx = [ httpx ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.httpx;
+  nativeCheckInputs = [ pytestCheckHook ] ++ passthru.optional-dependencies.httpx;
 
-  pythonImportsCheck = [
-    "requests_aws4auth"
-  ];
+  pythonImportsCheck = [ "requests_aws4auth" ];
 
   meta = with lib; {
     description = "Amazon Web Services version 4 authentication for the Python Requests library";
diff --git a/pkgs/development/python-modules/requests-cache/default.nix b/pkgs/development/python-modules/requests-cache/default.nix
index 1e4b0299be290..3df15dd5ca4e1 100644
--- a/pkgs/development/python-modules/requests-cache/default.nix
+++ b/pkgs/development/python-modules/requests-cache/default.nix
@@ -1,37 +1,38 @@
-{ lib
-, attrs
-, buildPythonPackage
-, bson
-, boto3
-, botocore
-, cattrs
-, fetchFromGitHub
-, itsdangerous
-, platformdirs
-, poetry-core
-, psutil
-, pymongo
-, pytestCheckHook
-, pytest-rerunfailures
-, pytest-xdist
-, pythonOlder
-, pyyaml
-, redis
-, requests
-, requests-mock
-, responses
-, rich
-, tenacity
-, time-machine
-, timeout-decorator
-, ujson
-, urllib3
-, url-normalize
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  bson,
+  boto3,
+  botocore,
+  cattrs,
+  fetchFromGitHub,
+  itsdangerous,
+  platformdirs,
+  poetry-core,
+  psutil,
+  pymongo,
+  pytestCheckHook,
+  pytest-rerunfailures,
+  pytest-xdist,
+  pythonOlder,
+  pyyaml,
+  redis,
+  requests,
+  requests-mock,
+  responses,
+  rich,
+  tenacity,
+  time-machine,
+  timeout-decorator,
+  ujson,
+  urllib3,
+  url-normalize,
 }:
 
 buildPythonPackage rec {
   pname = "requests-cache";
-  version = "1.2.0";
+  version = "1.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -40,12 +41,10 @@ buildPythonPackage rec {
     owner = "requests-cache";
     repo = "requests-cache";
     rev = "refs/tags/v${version}";
-    hash = "sha256-w1ptKi/MH3kGZxLMUNq/Gs6btGx+n2fG4nfQUXCXmiY=";
+    hash = "sha256-juRCcBUr+Ko6kVPpUapwRbUGqWLKaRiCqppOc3S5FMU=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     attrs
@@ -61,24 +60,12 @@ buildPythonPackage rec {
       boto3
       botocore
     ];
-    mongodbo = [
-      pymongo
-    ];
-    redis = [
-      redis
-    ];
-    bson = [
-      bson
-    ];
-    json = [
-      ujson
-    ];
-    security = [
-      itsdangerous
-    ];
-    yaml = [
-      pyyaml
-    ];
+    mongodbo = [ pymongo ];
+    redis = [ redis ];
+    bson = [ bson ];
+    json = [ ujson ];
+    security = [ itsdangerous ];
+    yaml = [ pyyaml ];
   };
 
   nativeCheckInputs = [
@@ -92,9 +79,7 @@ buildPythonPackage rec {
     tenacity
     time-machine
     timeout-decorator
-  ]
-  ++ passthru.optional-dependencies.json
-  ++ passthru.optional-dependencies.security;
+  ] ++ passthru.optional-dependencies.json ++ passthru.optional-dependencies.security;
 
   preCheck = ''
     export HOME=$(mktemp -d);
@@ -113,9 +98,7 @@ buildPythonPackage rec {
     "test_stale_if_error__error_code"
   ];
 
-  pythonImportsCheck = [
-    "requests_cache"
-  ];
+  pythonImportsCheck = [ "requests_cache" ];
 
   meta = with lib; {
     description = "Persistent cache for requests library";
diff --git a/pkgs/development/python-modules/requests-credssp/default.nix b/pkgs/development/python-modules/requests-credssp/default.nix
index 8c7dfc3aee8d5..243332123f792 100644
--- a/pkgs/development/python-modules/requests-credssp/default.nix
+++ b/pkgs/development/python-modules/requests-credssp/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, gssapi
-, krb5
-, pyspnego
-, pytestCheckHook
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  gssapi,
+  krb5,
+  pyspnego,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   passthru.optional-dependencies = {
     kerberos = [
@@ -42,9 +41,7 @@ buildPythonPackage rec {
     ];
   };
 
-  pythonImportsCheck = [
-    "requests_credssp"
-  ];
+  pythonImportsCheck = [ "requests_credssp" ];
 
   meta = with lib; {
     description = "HTTPS CredSSP authentication with the requests library";
diff --git a/pkgs/development/python-modules/requests-download/default.nix b/pkgs/development/python-modules/requests-download/default.nix
index 8a09dabbaf13b..63390f71e1fd4 100644
--- a/pkgs/development/python-modules/requests-download/default.nix
+++ b/pkgs/development/python-modules/requests-download/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/requests-file/default.nix b/pkgs/development/python-modules/requests-file/default.nix
index 294c3c76d872b..d76cdfbdaefb0 100644
--- a/pkgs/development/python-modules/requests-file/default.nix
+++ b/pkgs/development/python-modules/requests-file/default.nix
@@ -1,20 +1,26 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, requests
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "requests-file";
-  version = "2.0.0";
+  version = "2.1.0";
   pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-IMWTFinFWP2lZsrMEM/izVAkM+Yo9WjDTIDZagzJWXI=";
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "dashea";
+    repo = "requests-file";
+    rev = "refs/tags/${version}";
+    hash = "sha256-JtdtE44yiw2mLMZ0bJv0QiGWb7f8ywPLF7+BUufh/g4=";
   };
 
   build-system = [
@@ -22,21 +28,16 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  dependencies = [ requests ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "requests_file"
-  ];
+  pythonImportsCheck = [ "requests_file" ];
 
   meta = with lib; {
     description = "Transport adapter for fetching file:// URLs with the requests python library";
     homepage = "https://github.com/dashea/requests-file";
+    changelog = "https://github.com/dashea/requests-file/blob/${version}/CHANGES.rst";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/requests-futures/default.nix b/pkgs/development/python-modules/requests-futures/default.nix
index b2f1aab469886..d166a0fe0fde9 100644
--- a/pkgs/development/python-modules/requests-futures/default.nix
+++ b/pkgs/development/python-modules/requests-futures/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     sha256 = "sha256-9VpO+ABw4oWOfR5zEj0r+uryW5P9NDhNjd8UjitnY3M=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Tests are disabled because they require being online
   doCheck = false;
 
-  pythonImportsCheck = [
-    "requests_futures"
-  ];
+  pythonImportsCheck = [ "requests_futures" ];
 
   meta = with lib; {
     description = "Asynchronous Python HTTP Requests for Humans using Futures";
diff --git a/pkgs/development/python-modules/requests-gssapi/default.nix b/pkgs/development/python-modules/requests-gssapi/default.nix
index 68cd617618549..b3d78e8a1250b 100644
--- a/pkgs/development/python-modules/requests-gssapi/default.nix
+++ b/pkgs/development/python-modules/requests-gssapi/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, gssapi
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  gssapi,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,25 +21,19 @@ buildPythonPackage rec {
     hash = "sha256-TVK/jCqiqCkTDvzKhcFJQ/3QqnVFWquYWyuHJhWcIMo=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     gssapi
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportCheck = [
-    "requests_gssapi"
-  ];
+  pythonImportCheck = [ "requests_gssapi" ];
 
   meta = with lib; {
-    description = "A GSSAPI authentication handler for python-requests";
+    description = "GSSAPI authentication handler for python-requests";
     homepage = "https://github.com/pythongssapi/requests-gssapi";
     changelog = "https://github.com/pythongssapi/requests-gssapi/blob/v${version}/HISTORY.rst";
     license = licenses.isc;
diff --git a/pkgs/development/python-modules/requests-hawk/default.nix b/pkgs/development/python-modules/requests-hawk/default.nix
index 0f4b040be5826..9f3fbb94670d8 100644
--- a/pkgs/development/python-modules/requests-hawk/default.nix
+++ b/pkgs/development/python-modules/requests-hawk/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, python, mohawk, requests }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  mohawk,
+  requests,
+}:
 
 buildPythonPackage rec {
   pname = "requests-hawk";
@@ -10,10 +17,13 @@ buildPythonPackage rec {
     sha256 = "sha256-rZIFBCyUvbFa+qGbB4DhEHeyTZ5c/6wfs9JssIqkNbc=";
   };
 
-  propagatedBuildInputs = [ mohawk requests ];
+  propagatedBuildInputs = [
+    mohawk
+    requests
+  ];
 
   meta = with lib; {
-    description = "Hawk authentication strategy for the requests python library.";
+    description = "Hawk authentication strategy for the requests python library";
     homepage = "https://github.com/mozilla-services/requests-hawk";
     license = licenses.asl20;
     maintainers = with maintainers; [ austinbutler ];
diff --git a/pkgs/development/python-modules/requests-http-signature/default.nix b/pkgs/development/python-modules/requests-http-signature/default.nix
index d0eda6329cda2..541604089e254 100644
--- a/pkgs/development/python-modules/requests-http-signature/default.nix
+++ b/pkgs/development/python-modules/requests-http-signature/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, http-message-signatures
-, http-sfv
-, requests
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  http-message-signatures,
+  http-sfv,
+  requests,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-sW2vYqT/nY27DvEKHdptc3dUpuqKmD7PLMs+Xp+cpeU=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     http-message-signatures
@@ -33,22 +32,16 @@ buildPythonPackage rec {
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "test/test.py"
-  ];
+  pytestFlagsArray = [ "test/test.py" ];
 
   disabledTests = [
     # Test require network access
     "test_readme_example"
   ];
 
-  pythonImportsCheck = [
-    "requests_http_signature"
-  ];
+  pythonImportsCheck = [ "requests_http_signature" ];
 
   meta = with lib; {
     description = "Requests authentication module for HTTP Signature";
diff --git a/pkgs/development/python-modules/requests-kerberos/default.nix b/pkgs/development/python-modules/requests-kerberos/default.nix
index 38a38f27dfa40..c231233a4f298 100644
--- a/pkgs/development/python-modules/requests-kerberos/default.nix
+++ b/pkgs/development/python-modules/requests-kerberos/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, pykerberos
-, pyspnego
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  pykerberos,
+  pyspnego,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "requests-kerberos";
-  version = "0.14.0";
+  version = "0.15.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -21,7 +22,7 @@ buildPythonPackage rec {
     owner = "requests";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-Y9dTzFCgVmSnbnTE0kEfjpEkXDEA+uOqFHLkSC27YGg=";
+    hash = "sha256-s1Q3zqKPSuTkiFExr+axai9Eta1xjw/cip8xzfDGR88=";
   };
 
   propagatedBuildInputs = [
@@ -42,12 +43,10 @@ buildPythonPackage rec {
     --replace "pyspnego[kerberos]" "pyspnego"
   '';
 
-  pythonImportsCheck = [
-    "requests_kerberos"
-  ];
+  pythonImportsCheck = [ "requests_kerberos" ];
 
   meta = with lib; {
-    description = "An authentication handler for using Kerberos with Python Requests";
+    description = "Authentication handler for using Kerberos with Python Requests";
     homepage = "https://github.com/requests/requests-kerberos";
     license = licenses.isc;
     maintainers = with maintainers; [ catern ];
diff --git a/pkgs/development/python-modules/requests-mock/default.nix b/pkgs/development/python-modules/requests-mock/default.nix
index 9273875ab688f..d97df4e4b77bd 100644
--- a/pkgs/development/python-modules/requests-mock/default.nix
+++ b/pkgs/development/python-modules/requests-mock/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fixtures
-, purl
-, pytestCheckHook
-, requests
-, requests-futures
-, setuptools
-, setuptools-scm
-, testtools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fixtures,
+  purl,
+  pytestCheckHook,
+  requests,
+  requests-futures,
+  setuptools,
+  setuptools-scm,
+  testtools,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  dependencies = [
-    requests
-  ];
+  dependencies = [ requests ];
 
   nativeCheckInputs = [
     fixtures
diff --git a/pkgs/development/python-modules/requests-ntlm/default.nix b/pkgs/development/python-modules/requests-ntlm/default.nix
index 43a002e1e19e8..baa445aeb17cb 100644
--- a/pkgs/development/python-modules/requests-ntlm/default.nix
+++ b/pkgs/development/python-modules/requests-ntlm/default.nix
@@ -1,27 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, cryptography
-, pyspnego
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  cryptography,
+  pyspnego,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "requests-ntlm";
-  version = "1.2.0";
+  version = "1.3.0";
 
   format = "pyproject";
 
   src = fetchPypi {
     pname = "requests_ntlm";
     inherit version;
-    hash = "sha256-M8KF9QdOMXy90zjRma+kanwBEy5cER02vUFVNOm5Fqg=";
+    hash = "sha256-spzCRiYj3/35uIxD4YDMtzW0AHIopUIiDogsWK5Wxmg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cryptography
diff --git a/pkgs/development/python-modules/requests-oauthlib/default.nix b/pkgs/development/python-modules/requests-oauthlib/default.nix
index 150719c6fff62..27b2ae885573a 100644
--- a/pkgs/development/python-modules/requests-oauthlib/default.nix
+++ b/pkgs/development/python-modules/requests-oauthlib/default.nix
@@ -1,24 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mock
-, oauthlib
-, pytestCheckHook
-, requests
-, requests-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  oauthlib,
+  pytestCheckHook,
+  requests,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
   pname = "requests-oauthlib";
-  version = "1.3.1";
+  version = "2.0.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-db6sSkeIHuuU1epdatMe+IhWr/4jMrmq+1LGRSzPDXo=";
+    hash = "sha256-s9/669iE2M13hJQ2lgOp57WNKREb9rQb3C3NhyA69Ok=";
   };
 
-  propagatedBuildInputs = [ oauthlib requests ];
+  propagatedBuildInputs = [
+    oauthlib
+    requests
+  ];
 
   nativeCheckInputs = [
     mock
@@ -33,6 +37,9 @@ buildPythonPackage rec {
     "test_url_is_native_str"
   ];
 
+  # Requires selenium and chrome
+  disabledTestPaths = [ "tests/examples/test_native_spa_pkce_auth0.py" ];
+
   pythonImportsCheck = [ "requests_oauthlib" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/requests-pkcs12/default.nix b/pkgs/development/python-modules/requests-pkcs12/default.nix
index 87f20922a712a..550465962e313 100644
--- a/pkgs/development/python-modules/requests-pkcs12/default.nix
+++ b/pkgs/development/python-modules/requests-pkcs12/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyopenssl
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyopenssl,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "requests-pkcs12";
-  version = "1.24";
+  version = "1.25";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -17,7 +18,7 @@ buildPythonPackage rec {
     owner = "m-click";
     repo = "requests_pkcs12";
     rev = version;
-    hash = "sha256-JLFUdg7kbjhlpGgrQ29U1TRTKhjDlvMGc/FRE+awfLc=";
+    hash = "sha256-ukS0vxG2Rd71GsF1lmpsDSM2JovwqhXsaAnZdF8WGQo=";
   };
 
   propagatedBuildInputs = [
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "requests_pkcs12"
-  ];
+  pythonImportsCheck = [ "requests_pkcs12" ];
 
   meta = with lib; {
     description = "PKCS#12 support for the Python requests library";
diff --git a/pkgs/development/python-modules/requests-ratelimiter/default.nix b/pkgs/development/python-modules/requests-ratelimiter/default.nix
index af5304341b287..11d85a560525f 100644
--- a/pkgs/development/python-modules/requests-ratelimiter/default.nix
+++ b/pkgs/development/python-modules/requests-ratelimiter/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pyrate-limiter
-, requests
-, pytestCheckHook
-, requests-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pyrate-limiter,
+  requests,
+  pytestCheckHook,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-ctCD+vlV90KCO7DdPUZJipBC/lz6NXx0gYuHHrs22IY=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     pyrate-limiter
diff --git a/pkgs/development/python-modules/requests-toolbelt/default.nix b/pkgs/development/python-modules/requests-toolbelt/default.nix
index 0d4bf487d7bff..ae687d9645f8d 100644
--- a/pkgs/development/python-modules/requests-toolbelt/default.nix
+++ b/pkgs/development/python-modules/requests-toolbelt/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, betamax
-, buildPythonPackage
-, fetchPypi
-, pyopenssl
-, pytestCheckHook
-, requests
-, trustme
+{
+  lib,
+  betamax,
+  buildPythonPackage,
+  fetchPypi,
+  pyopenssl,
+  pytestCheckHook,
+  requests,
+  trustme,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-doGgo9BHAStb3A7jfX+PB+vnarCMrsz8OSHOI8iNW8Y=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     betamax
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     "test_request_with_base"
   ];
 
-  pythonImportsCheck = [
-    "requests_toolbelt"
-  ];
+  pythonImportsCheck = [ "requests_toolbelt" ];
 
   meta = with lib; {
     description = "Toolbelt of useful classes and functions to be used with requests";
diff --git a/pkgs/development/python-modules/requests-unixsocket/default.nix b/pkgs/development/python-modules/requests-unixsocket/default.nix
index 58ecce446c21b..12708f749bbef 100644
--- a/pkgs/development/python-modules/requests-unixsocket/default.nix
+++ b/pkgs/development/python-modules/requests-unixsocket/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, pbr
-, requests
-, pytestCheckHook
-, waitress
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  pbr,
+  requests,
+  pytestCheckHook,
+  waitress,
 }:
 
 buildPythonPackage rec {
@@ -25,24 +26,24 @@ buildPythonPackage rec {
       url = "https://github.com/msabramo/requests-unixsocket/commit/39b9c64847a52ddc8c6d14ff414a6a7a3f6358d9.patch";
       hash = "sha256-DFtjhk33JLCu7FW6XI7uf2klNmwzvh2QNwxUb4W223Q=";
     })
+    # https://github.com/msabramo/requests-unixsocket/pull/72
+    (fetchpatch {
+      name = "requests-2.32-compatibility.patch";
+      url = "https://github.com/msabramo/requests-unixsocket/commit/8b02ed531d8def03b4cf767e8a925be09db43dff.patch";
+      hash = "sha256-rCmdCPGB2gf+aY/AikSCPuzGCYf1GFWcUKraqgS26vc=";
+    })
   ];
 
-  nativeBuildInputs = [
-    pbr
-  ];
+  nativeBuildInputs = [ pbr ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     pytestCheckHook
     waitress
   ];
 
-  pythonImportsCheck = [
-    "requests_unixsocket"
-  ];
+  pythonImportsCheck = [ "requests_unixsocket" ];
 
   meta = with lib; {
     description = "Use requests to talk HTTP via a UNIX domain socket";
diff --git a/pkgs/development/python-modules/requests-wsgi-adapter/default.nix b/pkgs/development/python-modules/requests-wsgi-adapter/default.nix
index 906bf06f8eafc..8cdec28f2abb2 100644
--- a/pkgs/development/python-modules/requests-wsgi-adapter/default.nix
+++ b/pkgs/development/python-modules/requests-wsgi-adapter/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-WncJ6Qq/SdGB9sMqo3eUU39yXeD23UI2K8jIyQgSyHg=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # tests are not contained in pypi-release
   doCheck = false;
diff --git a/pkgs/development/python-modules/requests/default.nix b/pkgs/development/python-modules/requests/default.nix
index 33749a992471c..a483d00695188 100644
--- a/pkgs/development/python-modules/requests/default.nix
+++ b/pkgs/development/python-modules/requests/default.nix
@@ -1,24 +1,24 @@
-{ lib
-, stdenv
-, brotlicffi
-, buildPythonPackage
-, certifi
-, chardet
-, charset-normalizer
-, fetchPypi
-, fetchpatch
-, idna
-, pysocks
-, pytest-mock
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, urllib3
+{
+  lib,
+  stdenv,
+  brotlicffi,
+  buildPythonPackage,
+  certifi,
+  chardet,
+  charset-normalizer,
+  fetchPypi,
+  idna,
+  pysocks,
+  pytest-mock,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "requests";
-  version = "2.31.0";
+  version = "2.32.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-lCxadY+Y15Dq7Ropy27vx/+w0c968Fw9J5Flbb1q0eE=";
+    hash = "sha256-VTZUF3NOsYJVWQqf+euX6eHaho1MzWQCOZ6vaK8gp2A=";
   };
 
   dependencies = [
@@ -39,50 +39,45 @@ buildPythonPackage rec {
   ];
 
   optional-dependencies = {
-    security = [];
-    socks = [
-      pysocks
-    ];
-    use_chardet_on_py3 = [
-      chardet
-    ];
+    security = [ ];
+    socks = [ pysocks ];
+    use_chardet_on_py3 = [ chardet ];
   };
 
   nativeCheckInputs = [
     pytest-mock
     pytest-xdist
     pytestCheckHook
-  ]
-  ++ optional-dependencies.socks;
+  ] ++ optional-dependencies.socks;
 
-  disabledTests = [
-    # Disable tests that require network access and use httpbin
-    "requests.api.request"
-    "requests.models.PreparedRequest"
-    "requests.sessions.Session"
-    "requests"
-    "test_redirecting_to_bad_url"
-    "test_requests_are_updated_each_time"
-    "test_should_bypass_proxies_pass_only_hostname"
-    "test_urllib3_pool_connection_closed"
-    "test_urllib3_retries"
-    "test_use_proxy_from_environment"
-    "TestRequests"
-    "TestTimeout"
-  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
-    # Fatal Python error: Aborted
-    "test_basic_response"
-    "test_text_response"
-  ];
+  disabledTests =
+    [
+      # Disable tests that require network access and use httpbin
+      "requests.api.request"
+      "requests.models.PreparedRequest"
+      "requests.sessions.Session"
+      "requests"
+      "test_redirecting_to_bad_url"
+      "test_requests_are_updated_each_time"
+      "test_should_bypass_proxies_pass_only_hostname"
+      "test_urllib3_pool_connection_closed"
+      "test_urllib3_retries"
+      "test_use_proxy_from_environment"
+      "TestRequests"
+      "TestTimeout"
+    ]
+    ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+      # Fatal Python error: Aborted
+      "test_basic_response"
+      "test_text_response"
+    ];
 
   disabledTestPaths = lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
     # Fatal Python error: Aborted
     "tests/test_lowlevel.py"
   ];
 
-  pythonImportsCheck = [
-    "requests"
-  ];
+  pythonImportsCheck = [ "requests" ];
 
   meta = with lib; {
     description = "HTTP library for Python";
diff --git a/pkgs/development/python-modules/requestsexceptions/default.nix b/pkgs/development/python-modules/requestsexceptions/default.nix
index 5530c2ecd48cb..d545693191273 100644
--- a/pkgs/development/python-modules/requestsexceptions/default.nix
+++ b/pkgs/development/python-modules/requestsexceptions/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pbr }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pbr,
+}:
 
 buildPythonPackage rec {
   pname = "requestsexceptions";
@@ -18,7 +23,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "Import exceptions from potentially bundled packages in requests.";
+    description = "Import exceptions from potentially bundled packages in requests";
     homepage = "https://pypi.python.org/pypi/requestsexceptions";
     license = licenses.asl20;
     maintainers = with maintainers; [ makefu ];
diff --git a/pkgs/development/python-modules/requirements-detector/default.nix b/pkgs/development/python-modules/requirements-detector/default.nix
index aab180853d5a9..4106b7cbf01f2 100644
--- a/pkgs/development/python-modules/requirements-detector/default.nix
+++ b/pkgs/development/python-modules/requirements-detector/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, astroid
-, buildPythonPackage
-, fetchFromGitHub
-, packaging
-, poetry-core
-, semver
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, toml
+{
+  lib,
+  astroid,
+  buildPythonPackage,
+  fetchFromGitHub,
+  packaging,
+  poetry-core,
+  semver,
+  pytestCheckHook,
+  pythonOlder,
+  toml,
 }:
 
 buildPythonPackage rec {
@@ -25,36 +25,27 @@ buildPythonPackage rec {
     hash = "sha256-qmrHFQRypBJOI1N6W/Dtc5ss9JGqoPhFlbqrLHcb6vc=";
   };
 
-  pythonRelaxDeps = [
-    "astroid"
-  ];
-
-  nativeBuildInputs = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     astroid
     packaging
     toml
     semver
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "requirements_detector"
-  ];
+  pythonImportsCheck = [ "requirements_detector" ];
 
   meta = with lib; {
     description = "Python tool to find and list requirements of a Python project";
-    mainProgram = "detect-requirements";
     homepage = "https://github.com/landscapeio/requirements-detector";
     changelog = "https://github.com/landscapeio/requirements-detector/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ kamadorueda ];
+    mainProgram = "detect-requirements";
+    # https://github.com/landscapeio/requirements-detector/issues/48
+    broken = versionAtLeast astroid.version "3";
   };
 }
diff --git a/pkgs/development/python-modules/reretry/default.nix b/pkgs/development/python-modules/reretry/default.nix
index e5db5b50cbaaa..240a37a611ec3 100644
--- a/pkgs/development/python-modules/reretry/default.nix
+++ b/pkgs/development/python-modules/reretry/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "reretry";
@@ -11,7 +15,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "An easy to use retry decorator.";
+    description = "Easy to use retry decorator";
     homepage = "https://github.com/leshchenko1979/reretry";
     license = licenses.asl20;
     maintainers = with maintainers; [ renatoGarcia ];
diff --git a/pkgs/development/python-modules/rerun-sdk/default.nix b/pkgs/development/python-modules/rerun-sdk/default.nix
index f6476b1675bde..4c8ac5c3933f1 100644
--- a/pkgs/development/python-modules/rerun-sdk/default.nix
+++ b/pkgs/development/python-modules/rerun-sdk/default.nix
@@ -29,12 +29,14 @@ buildPythonPackage {
     rustPlatform.maturinBuildHook
   ];
 
-  buildInputs = [
-    libiconv # No-op on Linux, necessary on Darwin.
-  ] ++ lib.optionals stdenv.hostPlatform.isDarwin [
-    darwin.apple_sdk.frameworks.AppKit
-    darwin.apple_sdk.frameworks.CoreServices
-  ];
+  buildInputs =
+    [
+      libiconv # No-op on Linux, necessary on Darwin.
+    ]
+    ++ lib.optionals stdenv.hostPlatform.isDarwin [
+      darwin.apple_sdk.frameworks.AppKit
+      darwin.apple_sdk.frameworks.CoreServices
+    ];
 
   propagatedBuildInputs = [
     attrs
@@ -73,7 +75,12 @@ buildPythonPackage {
 
   meta = {
     description = "Python bindings for `rerun` (an interactive visualization tool for stream data)";
-    inherit (rerun.meta) changelog homepage license maintainers;
+    inherit (rerun.meta)
+      changelog
+      homepage
+      license
+      maintainers
+      ;
     mainProgram = "rerun";
   };
 }
diff --git a/pkgs/development/python-modules/resampy/default.nix b/pkgs/development/python-modules/resampy/default.nix
index 84ded22389939..9250bf55931e6 100644
--- a/pkgs/development/python-modules/resampy/default.nix
+++ b/pkgs/development/python-modules/resampy/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, numba
-, numpy
-, pytestCheckHook
-, pythonOlder
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  numba,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
       --replace " --cov-report term-missing --cov resampy --cov-report=xml" ""
   '';
 
-  pythonImportsCheck = [
-    "resampy"
-  ];
+  pythonImportsCheck = [ "resampy" ];
 
   meta = with lib; {
     description = "Efficient signal resampling";
diff --git a/pkgs/development/python-modules/resend/default.nix b/pkgs/development/python-modules/resend/default.nix
index 5ce129dd67160..68af7fcca2774 100644
--- a/pkgs/development/python-modules/resend/default.nix
+++ b/pkgs/development/python-modules/resend/default.nix
@@ -1,15 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pythonOlder
-, pytestCheckHook
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pythonOlder,
+  pytestCheckHook,
+  requests,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "resend";
-  version = "0.8.0";
+  version = "2.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,24 +20,19 @@ buildPythonPackage rec {
     owner = "resend";
     repo = "resend-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-6cQtI3it2AS8UdT83fp3y3IcbjSyPmBlQuymN74fBNo=";
+    hash = "sha256-AYCymWYibCeBG8B5uqqslEMF/Rdz9NAGC1D422FPKmU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     requests
+    typing-extensions
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "resend"
-  ];
+  pythonImportsCheck = [ "resend" ];
 
   meta = with lib; {
     description = "SDK for Resend";
diff --git a/pkgs/development/python-modules/resize-right/default.nix b/pkgs/development/python-modules/resize-right/default.nix
index 99b42faf39952..43afc063867a8 100644
--- a/pkgs/development/python-modules/resize-right/default.nix
+++ b/pkgs/development/python-modules/resize-right/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# dependencies
-, numpy
-, torch
+  # dependencies
+  numpy,
+  torch,
 }:
 
 buildPythonPackage rec {
@@ -22,15 +23,13 @@ buildPythonPackage rec {
     torch
   ];
 
-  pythonImportsCheck = [
-    "resize_right"
-  ];
+  pythonImportsCheck = [ "resize_right" ];
 
   # no tests
   doCheck = false;
 
   meta = with lib; {
-    description = "The correct way to resize images or tensors. For Numpy or Pytorch (differentiable";
+    description = "Correct way to resize images or tensors. For Numpy or Pytorch (differentiable";
     homepage = "https://github.com/assafshocher/ResizeRight";
     license = licenses.mit;
     maintainers = teams.tts.members;
diff --git a/pkgs/development/python-modules/resolvelib/default.nix b/pkgs/development/python-modules/resolvelib/default.nix
index d6c479fc4adf5..15c05ed6da6af 100644
--- a/pkgs/development/python-modules/resolvelib/default.nix
+++ b/pkgs/development/python-modules/resolvelib/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, commentjson
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  commentjson,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,18 +19,14 @@ buildPythonPackage rec {
     hash = "sha256-oxyPn3aFPOyx/2aP7Eg2ThtPbyzrFT1JzWqy6GqNbzM=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   nativeCheckInputs = [
     commentjson
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "resolvelib"
-  ];
+  pythonImportsCheck = [ "resolvelib" ];
 
   meta = with lib; {
     description = "Resolve abstract dependencies into concrete ones";
diff --git a/pkgs/development/python-modules/responses/default.nix b/pkgs/development/python-modules/responses/default.nix
index 5a9960cbac597..615234474a6a9 100644
--- a/pkgs/development/python-modules/responses/default.nix
+++ b/pkgs/development/python-modules/responses/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch2
-, pytest-asyncio
-, pytest-httpserver
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, requests
-, setuptools
-, tomli
-, tomli-w
-, types-pyyaml
-, types-toml
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch2,
+  pytest-asyncio,
+  pytest-httpserver,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  requests,
+  setuptools,
+  tomli,
+  tomli-w,
+  types-pyyaml,
+  types-toml,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -40,9 +41,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pyyaml
@@ -57,13 +56,9 @@ buildPythonPackage rec {
     pytest-httpserver
     pytestCheckHook
     tomli-w
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
-  pythonImportsCheck = [
-    "responses"
-  ];
+  pythonImportsCheck = [ "responses" ];
 
   meta = with lib; {
     description = "Python module for mocking out the requests Python library";
diff --git a/pkgs/development/python-modules/respx/default.nix b/pkgs/development/python-modules/respx/default.nix
index 9d0bf307ff235..7f6ea4561385b 100644
--- a/pkgs/development/python-modules/respx/default.nix
+++ b/pkgs/development/python-modules/respx/default.nix
@@ -1,33 +1,39 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flask
-, httpcore
-, httpx
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, starlette
-, trio
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+  httpcore,
+  httpx,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  starlette,
+  trio,
 }:
 
 buildPythonPackage rec {
   pname = "respx";
-  version = "0.20.2";
-  format = "setuptools";
+  version = "0.21.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "lundberg";
-    repo = pname;
+    repo = "respx";
     rev = version;
-    hash = "sha256-OiBKNK8V9WNQDe29Q5+E/jjBWD0qFcYUzhYUWA+7oFc=";
+    hash = "sha256-sBb9HPvX+AKJUMWBME381F2amYdQmBiM8OguGW3lFG0=";
   };
 
-  propagatedBuildInputs = [
-    httpx
-  ];
+  postPatch = ''
+    sed -i "/--cov/d" setup.cfg
+  '';
+
+  build-system = [ setuptools ];
+
+  dependencies = [ httpx ];
 
   nativeCheckInputs = [
     httpcore
@@ -39,23 +45,15 @@ buildPythonPackage rec {
     trio
   ];
 
-  postPatch = ''
-    sed -i "/--cov/d" setup.cfg
-  '';
+  disabledTests = [ "test_pass_through" ];
 
-  disabledTests = [
-    "test_pass_through"
-  ];
-
-  pythonImportsCheck = [
-    "respx"
-  ];
+  pythonImportsCheck = [ "respx" ];
 
   meta = with lib; {
     description = "Python library for mocking HTTPX";
     homepage = "https://lundberg.github.io/respx/";
     changelog = "https://github.com/lundberg/respx/blob/${version}/CHANGELOG.md";
-    license = with licenses; [ bsd3 ];
+    license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/restfly/default.nix b/pkgs/development/python-modules/restfly/default.nix
index 8ebc4ee2b880e..e7cb1dcbf694d 100644
--- a/pkgs/development/python-modules/restfly/default.nix
+++ b/pkgs/development/python-modules/restfly/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, arrow
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-datafiles
-, pytest-vcr
-, pytestCheckHook
-, python-box
-, pythonOlder
-, responses
-, requests
+{
+  lib,
+  arrow,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-datafiles,
+  pytest-vcr,
+  pytestCheckHook,
+  python-box,
+  pythonOlder,
+  responses,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -43,9 +44,7 @@ buildPythonPackage rec {
     "test_session_ssl_error"
   ];
 
-  pythonImportsCheck = [
-    "restfly"
-  ];
+  pythonImportsCheck = [ "restfly" ];
 
   meta = with lib; {
     description = "Python RESTfly API Library Framework";
diff --git a/pkgs/development/python-modules/restrictedpython/default.nix b/pkgs/development/python-modules/restrictedpython/default.nix
index 64dbb30168290..f7d419b478e98 100644
--- a/pkgs/development/python-modules/restrictedpython/default.nix
+++ b/pkgs/development/python-modules/restrictedpython/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest-mock
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest-mock,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,22 +22,16 @@ buildPythonPackage rec {
     hash = "sha256-h1rrUcE51440zvhgXcZTCbRJFoBg3QhVGh/p7bR8uaU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytestCheckHook
     pytest-mock
   ];
 
-  disabledTests = lib.optionals (pythonAtLeast "3.11") [
-    "test_compile__compile_restricted_exec__5"
-  ];
+  disabledTests = lib.optionals (pythonAtLeast "3.11") [ "test_compile__compile_restricted_exec__5" ];
 
-  pythonImportsCheck = [
-    "RestrictedPython"
-  ];
+  pythonImportsCheck = [ "RestrictedPython" ];
 
   meta = with lib; {
     description = "Restricted execution environment for Python to run untrusted code";
diff --git a/pkgs/development/python-modules/restructuredtext-lint/default.nix b/pkgs/development/python-modules/restructuredtext-lint/default.nix
index 3b7f4dfd57f15..29249205de92d 100644
--- a/pkgs/development/python-modules/restructuredtext-lint/default.nix
+++ b/pkgs/development/python-modules/restructuredtext-lint/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, docutils
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  docutils,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,23 +18,15 @@ buildPythonPackage rec {
     hash = "sha256-GyNcDJIjQatsUwOQiS656S+QubdQRgY+BHys+w8FDEU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [ docutils ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "restructuredtext_lint/test/test.py"
-  ];
+  pytestFlagsArray = [ "restructuredtext_lint/test/test.py" ];
 
-  pythonImportsCheck = [
-    "restructuredtext_lint"
-  ];
+  pythonImportsCheck = [ "restructuredtext_lint" ];
 
   meta = {
     description = "reStructuredText linter";
diff --git a/pkgs/development/python-modules/restview/default.nix b/pkgs/development/python-modules/restview/default.nix
index e5694e92137d5..485210d20b3f9 100644
--- a/pkgs/development/python-modules/restview/default.nix
+++ b/pkgs/development/python-modules/restview/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, docutils
-, readme-renderer
-, packaging
-, pygments
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  docutils,
+  readme-renderer,
+  packaging,
+  pygments,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +29,9 @@ buildPythonPackage rec {
     pygments
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "restview"
-  ];
+  pythonImportsCheck = [ "restview" ];
 
   disabledTests = [
     # Tests are comparing output
diff --git a/pkgs/development/python-modules/result/default.nix b/pkgs/development/python-modules/result/default.nix
index 111c8dad2a306..4278bcf3b3915 100644
--- a/pkgs/development/python-modules/result/default.nix
+++ b/pkgs/development/python-modules/result/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pytest-asyncio
-, nix-update-script
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pytest-asyncio,
+  nix-update-script,
 }:
 
 buildPythonPackage rec {
@@ -33,7 +34,7 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
-  passthru.updateScript = nix-update-script {};
+  passthru.updateScript = nix-update-script { };
   pythonImportsCheck = [ "result" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/rethinkdb/default.nix b/pkgs/development/python-modules/rethinkdb/default.nix
index 35db8bd3dd3dd..2a3f6c1db08ad 100644
--- a/pkgs/development/python-modules/rethinkdb/default.nix
+++ b/pkgs/development/python-modules/rethinkdb/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, looseversion
-, six
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  looseversion,
+  six,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-NjTgPuE91jf9cZa4BHS/RMZNProd0GnqkrlJJnAqYL0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     looseversion
@@ -34,5 +33,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/RethinkDB/rethinkdb-python";
     license = licenses.asl20;
   };
-
 }
diff --git a/pkgs/development/python-modules/retry-decorator/default.nix b/pkgs/development/python-modules/retry-decorator/default.nix
index a2c984dfe4125..7d63966c08a05 100644
--- a/pkgs/development/python-modules/retry-decorator/default.nix
+++ b/pkgs/development/python-modules/retry-decorator/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-0dZq4YbPcH4ItyMnpF7B20YYLtzwniJClBK9gRndU1M=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "retry_decorator"
-  ];
+  pythonImportsCheck = [ "retry_decorator" ];
 
   meta = with lib; {
     description = "Decorator for retrying when exceptions occur";
diff --git a/pkgs/development/python-modules/retry/default.nix b/pkgs/development/python-modules/retry/default.nix
index 993c7270b8073..c4df5b909e443 100644
--- a/pkgs/development/python-modules/retry/default.nix
+++ b/pkgs/development/python-modules/retry/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pbr
-, decorator
-, py
-, mock
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pbr,
+  decorator,
+  py,
+  mock,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "f8bfa8b99b69c4506d6f5bd3b0aabf77f98cdb17f3c9fc3f5ca820033336fba4";
   };
 
-  nativeBuildInputs = [
-    pbr
-  ];
+  nativeBuildInputs = [ pbr ];
 
   propagatedBuildInputs = [
     decorator
diff --git a/pkgs/development/python-modules/retrying/default.nix b/pkgs/development/python-modules/retrying/default.nix
index 36e76f6bc6c72..320603a10b818 100644
--- a/pkgs/development/python-modules/retrying/default.nix
+++ b/pkgs/development/python-modules/retrying/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-NF2oxXZb2YKx0ZFd65EC/T0fetFr2EqXALhfZNJOjz4=";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   # doesn't ship tests in tarball
   doCheck = false;
 
-  pythonImportsCheck = [
-    "retrying"
-  ];
+  pythonImportsCheck = [ "retrying" ];
 
   meta = with lib; {
     description = "General-purpose retrying library";
diff --git a/pkgs/development/python-modules/returns/default.nix b/pkgs/development/python-modules/returns/default.nix
index 2e0275bd80408..27fa225ba7d05 100644
--- a/pkgs/development/python-modules/returns/default.nix
+++ b/pkgs/development/python-modules/returns/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, anyio
-, buildPythonPackage
-, curio
-, fetchFromGitHub
-, httpx
-, hypothesis
-, poetry-core
-, pytest-aio
-, pytest-subtests
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, trio
-, typing-extensions
+{
+  lib,
+  anyio,
+  buildPythonPackage,
+  curio,
+  fetchFromGitHub,
+  httpx,
+  hypothesis,
+  poetry-core,
+  pytest-aio,
+  pytest-subtests,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  trio,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "returns";
-  version = "0.22.0";
+  version = "0.23.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -26,7 +27,7 @@ buildPythonPackage rec {
     owner = "dry-python";
     repo = "returns";
     rev = "refs/tags/${version}";
-    hash = "sha256-0eFirhBsj8SWfoAPWEMuFa+EvBgHKpNeKVj3qJ4L6hE=";
+    hash = "sha256-4ZP/wvPgqQQec/BaXuL9r7BEc2G+LztMdFul0NeEJTc=";
   };
 
   postPatch = ''
@@ -35,13 +36,9 @@ buildPythonPackage rec {
       -e '/--mypy.*/d'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ typing-extensions ];
 
   nativeCheckInputs = [
     anyio
@@ -59,13 +56,9 @@ buildPythonPackage rec {
     rm -rf returns/contrib/mypy
   '';
 
-  pythonImportsCheck = [
-    "returns"
-  ];
+  pythonImportsCheck = [ "returns" ];
 
-  pytestFlagsArray = [
-    "--ignore=typesafety"
-  ];
+  pytestFlagsArray = [ "--ignore=typesafety" ];
 
   meta = with lib; {
     description = "Make your functions return something meaningful, typed, and safe!";
diff --git a/pkgs/development/python-modules/reuse/default.nix b/pkgs/development/python-modules/reuse/default.nix
index e697d8b26210f..5ef01b9dd974e 100644
--- a/pkgs/development/python-modules/reuse/default.nix
+++ b/pkgs/development/python-modules/reuse/default.nix
@@ -43,7 +43,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "reuse" ];
 
   meta = with lib; {
-    description = "A tool for compliance with the REUSE Initiative recommendations";
+    description = "Tool for compliance with the REUSE Initiative recommendations";
     homepage = "https://github.com/fsfe/reuse-tool";
     changelog = "https://github.com/fsfe/reuse-tool/blob/v${version}/CHANGELOG.md";
     license = with licenses; [
diff --git a/pkgs/development/python-modules/rfc3339-validator/default.nix b/pkgs/development/python-modules/rfc3339-validator/default.nix
index 9de6919692a4e..6fcc9297e6a31 100644
--- a/pkgs/development/python-modules/rfc3339-validator/default.nix
+++ b/pkgs/development/python-modules/rfc3339-validator/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, hypothesis
-, six
-, strict-rfc3339
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  hypothesis,
+  six,
+  strict-rfc3339,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,11 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ six ];
 
-  nativeCheckInputs = [ pytestCheckHook hypothesis strict-rfc3339 ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    hypothesis
+    strict-rfc3339
+  ];
   pythonImportsCheck = [ "rfc3339_validator" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/rfc3339/default.nix b/pkgs/development/python-modules/rfc3339/default.nix
index 9c5faa38131cb..f95888578ac57 100644
--- a/pkgs/development/python-modules/rfc3339/default.nix
+++ b/pkgs/development/python-modules/rfc3339/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/rfc3986-validator/default.nix b/pkgs/development/python-modules/rfc3986-validator/default.nix
index 823eb16aef1a8..0f681dba2413d 100644
--- a/pkgs/development/python-modules/rfc3986-validator/default.nix
+++ b/pkgs/development/python-modules/rfc3986-validator/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hypothesis
-, rfc3987
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hypothesis,
+  rfc3987,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/rfc3986/default.nix b/pkgs/development/python-modules/rfc3986/default.nix
index d2b4bf57a062c..8fbf10e332a9a 100644
--- a/pkgs/development/python-modules/rfc3986/default.nix
+++ b/pkgs/development/python-modules/rfc3986/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, idna
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  idna,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-l6rPnb1L/YKbqtbmMJ+mVzqvG+P2+nNcirBeRs7LJhw=";
   };
 
-  propagatedBuildInputs = [
-    idna
-  ];
+  propagatedBuildInputs = [ idna ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "rfc3986"
-  ];
+  pythonImportsCheck = [ "rfc3986" ];
 
   meta = with lib; {
     description = "Validating URI References per RFC 3986";
diff --git a/pkgs/development/python-modules/rfc3987/default.nix b/pkgs/development/python-modules/rfc3987/default.nix
index 51c6d04ea6dc5..25c77a68e95ef 100644
--- a/pkgs/development/python-modules/rfc3987/default.nix
+++ b/pkgs/development/python-modules/rfc3987/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "rfc3987";
diff --git a/pkgs/development/python-modules/rfc6555/default.nix b/pkgs/development/python-modules/rfc6555/default.nix
index a3986a490feb9..063f6146a192d 100644
--- a/pkgs/development/python-modules/rfc6555/default.nix
+++ b/pkgs/development/python-modules/rfc6555/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,18 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-Lmwgusc4EQlF0GHmMTUxWzUCjBk19cvurNwbOnT+1jM=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Disabling tests that require a functional DNS IPv{4,6} stack to pass
     "test_create_connection_has_proper_timeout"
   ];
 
-  pythonImportsCheck = [
-    "rfc6555"
-  ];
+  pythonImportsCheck = [ "rfc6555" ];
 
   meta = with lib; {
     description = "Python implementation of the Happy Eyeballs Algorithm";
diff --git a/pkgs/development/python-modules/rfc7464/default.nix b/pkgs/development/python-modules/rfc7464/default.nix
index e65c9ec3ab2ab..1765b46be03e9 100644
--- a/pkgs/development/python-modules/rfc7464/default.nix
+++ b/pkgs/development/python-modules/rfc7464/default.nix
@@ -1,4 +1,8 @@
-{ buildPythonPackage, fetchPypi, lib }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+}:
 
 buildPythonPackage rec {
   pname = "rfc7464";
@@ -13,7 +17,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/moshez/rfc7464";
-    description = "RFC 7464 is a proposed standard for streaming JSON documents.";
+    description = "RFC 7464 is a proposed standard for streaming JSON documents";
     license = [ licenses.mit ];
     maintainers = with maintainers; [ shlevy ];
   };
diff --git a/pkgs/development/python-modules/rfc8785/default.nix b/pkgs/development/python-modules/rfc8785/default.nix
new file mode 100644
index 0000000000000..c3505ebc460e4
--- /dev/null
+++ b/pkgs/development/python-modules/rfc8785/default.nix
@@ -0,0 +1,40 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, flit-core
+, pytestCheckHook
+, pythonOlder
+}:
+
+buildPythonPackage rec {
+  pname = "rfc8785";
+  version = "0.1.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "trailofbits";
+    repo = "rfc8785.py";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-hMH//DpxgNoNLZJ8XL8SikcTfj0w0FvlBMfnPCkqzZ4=";
+  };
+
+  build-system = [
+    flit-core
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "rfc8785" ];
+
+  meta = with lib; {
+    description = "Module for RFC8785 (JSON Canonicalization Scheme)";
+    homepage = "https://github.com/trailofbits/rfc8785.py";
+    changelog = "https://github.com/trailofbits/rfc8785.py/releases/tag/v${version}";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/rfcat/default.nix b/pkgs/development/python-modules/rfcat/default.nix
index 9ee83c5fa7286..4112e826f7e49 100644
--- a/pkgs/development/python-modules/rfcat/default.nix
+++ b/pkgs/development/python-modules/rfcat/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, future
-, ipython
-, numpy
-, pyserial
-, pyusb
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  future,
+  ipython,
+  numpy,
+  pyserial,
+  pyusb,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -38,13 +39,9 @@ buildPythonPackage rec {
     cp etc/udev/rules.d/20-rfcat.rules $out/etc/udev/rules.d
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "rflib"
-  ];
+  pythonImportsCheck = [ "rflib" ];
 
   meta = with lib; {
     description = "Swiss Army knife of sub-GHz ISM band radio";
diff --git a/pkgs/development/python-modules/rflink/default.nix b/pkgs/development/python-modules/rflink/default.nix
index 354c66c41adc2..e5959e3a9b86d 100644
--- a/pkgs/development/python-modules/rflink/default.nix
+++ b/pkgs/development/python-modules/rflink/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, async-timeout
-, docopt
-, pyserial
-, pyserial-asyncio
-, setuptools
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  async-timeout,
+  docopt,
+  pyserial,
+  pyserial-asyncio,
+  setuptools,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -32,18 +33,14 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace setup.py \
       --replace "version=version_from_git()" "version='${version}'"
   '';
 
-  pythonImportsCheck = [
-    "rflink.protocol"
-  ];
+  pythonImportsCheck = [ "rflink.protocol" ];
 
   meta = with lib; {
     description = "Library and CLI tools for interacting with RFlink 433MHz transceiver";
diff --git a/pkgs/development/python-modules/rich-argparse-plus/default.nix b/pkgs/development/python-modules/rich-argparse-plus/default.nix
index e152ce267f4c4..159190d45e1d2 100644
--- a/pkgs/development/python-modules/rich-argparse-plus/default.nix
+++ b/pkgs/development/python-modules/rich-argparse-plus/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, rich
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  rich,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-oF2wuvyLYwObVJ4fhJl9b/sdfmQ2ahgKkfd9ZwObfPw=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    rich
-  ];
+  propagatedBuildInputs = [ rich ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "rich_argparse_plus"
-  ];
+  pythonImportsCheck = [ "rich_argparse_plus" ];
 
   disabledTests = [
     # Tests are comparing CLI output
diff --git a/pkgs/development/python-modules/rich-argparse/default.nix b/pkgs/development/python-modules/rich-argparse/default.nix
index 7dc2878d391d0..8edcfa9fbd951 100644
--- a/pkgs/development/python-modules/rich-argparse/default.nix
+++ b/pkgs/development/python-modules/rich-argparse/default.nix
@@ -1,38 +1,37 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, rich
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  pytestCheckHook,
+  pythonOlder,
+  rich,
 }:
 
 buildPythonPackage rec {
   pname = "rich-argparse";
-  version = "1.4.0";
-  format = "pyproject";
+  version = "1.5.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "hamdanal";
     repo = "rich-argparse";
     rev = "refs/tags/v${version}";
-    hash = "sha256-iQ8x8UM0zmb2qYUpSh6RSEaBMrDpwY0ZHaJ9GJqn4Hs=";
+    hash = "sha256-kHGNjVx3d+JSsN/BpNua2rGD5S5sBfJvh1NyqQnziBI=";
   };
 
-  propagatedBuildInputs = [
-    hatchling
-    rich
-  ];
+  build-system = [ hatchling ];
+
+  dependencies = [ rich ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "rich_argparse"
-  ];
+  pythonImportsCheck = [ "rich_argparse" ];
 
   meta = with lib; {
-    description = "Format argparse help output using rich.";
+    description = "Format argparse help output using rich";
     homepage = "https://github.com/hamdanal/rich-argparse";
     changelog = "https://github.com/hamdanal/rich-argparse/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/rich-click/default.nix b/pkgs/development/python-modules/rich-click/default.nix
index e10c6b496a9fe..728be4b0ce0a6 100644
--- a/pkgs/development/python-modules/rich-click/default.nix
+++ b/pkgs/development/python-modules/rich-click/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, pythonOlder
-, rich
-, setuptools
-, typer
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  pythonOlder,
+  rich,
+  setuptools,
+  typer,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "rich-click";
-  version = "1.7.4";
+  version = "1.8.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,14 +21,12 @@ buildPythonPackage rec {
     owner = "ewels";
     repo = "rich-click";
     rev = "refs/tags/v${version}";
-    hash = "sha256-eqpxNurMHn4ClD0KjTQ7Yfny61tcYBRKlW74axjLI8A=";
+    hash = "sha256-O7ZV6+p0nvWmKHUy/aK+qcED/KT4hZojoQRKr9Eg848=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     click
     rich
     typing-extensions
@@ -36,16 +35,14 @@ buildPythonPackage rec {
   # Module has no test
   doCheck = false;
 
-  pythonImportsCheck = [
-    "rich_click"
-  ];
+  pythonImportsCheck = [ "rich_click" ];
 
   meta = with lib; {
     description = "Module to format click help output nicely with rich";
-    mainProgram = "rich-click";
     homepage = "https://github.com/ewels/rich-click";
     changelog = "https://github.com/ewels/rich-click/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "rich-click";
   };
 }
diff --git a/pkgs/development/python-modules/rich-pixels/default.nix b/pkgs/development/python-modules/rich-pixels/default.nix
index 7b77e59b6c9fa..62ce70c52576a 100644
--- a/pkgs/development/python-modules/rich-pixels/default.nix
+++ b/pkgs/development/python-modules/rich-pixels/default.nix
@@ -1,61 +1,47 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, pytestCheckHook
-, syrupy
-, pillow
-, rich
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  pillow,
+  rich,
+  pytestCheckHook,
+  pythonOlder,
+  syrupy,
 }:
 
 buildPythonPackage rec {
   pname = "rich-pixels";
-  version = "2.2.0";
-  format = "pyproject";
+  version = "3.0.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "darrenburns";
     repo = "rich-pixels";
-    rev = version;
-    hash = "sha256-fbpnHEfBPWLSYhgETqKbdmmzt7Lu/4oKgetjgNvv04c=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-Sqs0DOyxJBfZmm/SVSTMSmaaeRlusiSp6VBnJjKYjgQ=";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "fix-version.patch";
-      url = "https://github.com/darrenburns/rich-pixels/commit/ff1cc3fef789321831f29e9bf282ae6b337eddb2.patch";
-      hash = "sha256-58ZHBNg1RCuOfuE034qF1SbAgoiWMNlSG3c5pCSLUyI=";
-    })
-  ];
-
-  nativeBuildInputs = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  pythonRelaxDeps = [ "pillow" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  build-system = [ hatchling ];
 
-  checkInputs = [
-    syrupy
-  ];
-
-  propagatedBuildInputs = [
+  dependencies = [
     pillow
     rich
   ];
 
-  pythonRelaxDeps = [
-    "pillow"
+  nativeCheckInputs = [
+    pytestCheckHook
+    syrupy
   ];
 
   pythonImportsCheck = [ "rich_pixels" ];
 
   meta = with lib; {
-    description = "A Rich-compatible library for writing pixel images and ASCII art to the terminal";
+    description = "Rich-compatible library for writing pixel images and ASCII art to the terminal";
     homepage = "https://github.com/darrenburns/rich-pixels";
     changelog = "https://github.com/darrenburns/rich-pixels/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/rich-rst/default.nix b/pkgs/development/python-modules/rich-rst/default.nix
index 5db47dfc65ea1..067b7c39cbc0a 100644
--- a/pkgs/development/python-modules/rich-rst/default.nix
+++ b/pkgs/development/python-modules/rich-rst/default.nix
@@ -1,36 +1,38 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, docutils
-, rich
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  docutils,
+  rich,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "rich-rst";
-  version = "1.2.0";
-  format = "pyproject";
+  version = "1.3.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "wasi-master";
-    repo = pname;
+    repo = "rich-rst";
     rev = "refs/tags/v${version}";
-    hash = "sha256-jFPboZ5/T2I6EuyVM+45lrLWen8Kqf94gWXS1WDf1qU=";
+    hash = "sha256-jbzGTEth5Qoc0ORFCS3sZMrGUpoQQOVsd+l3/zMWy20=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [ docutils rich ];
+  dependencies = [
+    docutils
+    rich
+  ];
 
-  # Module has no tests
-  doCheck = false;
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "rich_rst" ];
 
   meta = with lib; {
-    description = "A beautiful reStructuredText renderer for rich";
+    description = "Beautiful reStructuredText renderer for rich";
     homepage = "https://github.com/wasi-master/rich-rst";
     license = licenses.mit;
     maintainers = with maintainers; [ joelkoen ];
diff --git a/pkgs/development/python-modules/rich/default.nix b/pkgs/development/python-modules/rich/default.nix
index 518be3f4e2fea..3d14a05bfd503 100644
--- a/pkgs/development/python-modules/rich/default.nix
+++ b/pkgs/development/python-modules/rich/default.nix
@@ -1,29 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-
-# build-system
-, poetry-core
-
-# dependencies
-, markdown-it-py
-, pygments
-, typing-extensions
-
-# optional-dependencies
-, ipywidgets
-
-# tests
-, attrs
-, pytestCheckHook
-, setuptools
-
-# for passthru.tests
-, enrich
-, httpie
-, rich-rst
-, textual
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # build-system
+  poetry-core,
+
+  # dependencies
+  markdown-it-py,
+  pygments,
+  typing-extensions,
+
+  # optional-dependencies
+  ipywidgets,
+
+  # tests
+  attrs,
+  pytestCheckHook,
+  setuptools,
+
+  # for passthru.tests
+  enrich,
+  httpie,
+  rich-rst,
+  textual,
 }:
 
 buildPythonPackage rec {
@@ -40,21 +41,15 @@ buildPythonPackage rec {
     hash = "sha256-7LvmPrCpHfPEfJ1r8IFnQhYkBstvtIrWYhGwcchlc0s=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     markdown-it-py
     pygments
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ typing-extensions ];
 
   passthru.optional-dependencies = {
-    jupyter = [
-      ipywidgets
-    ];
+    jupyter = [ ipywidgets ];
   };
 
   nativeCheckInputs = [
@@ -77,12 +72,15 @@ buildPythonPackage rec {
     "test_syntax_highlight_ranges"
   ];
 
-  pythonImportsCheck = [
-    "rich"
-  ];
+  pythonImportsCheck = [ "rich" ];
 
   passthru.tests = {
-    inherit enrich httpie rich-rst textual;
+    inherit
+      enrich
+      httpie
+      rich-rst
+      textual
+      ;
   };
 
   meta = with lib; {
@@ -90,6 +88,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/Textualize/rich";
     changelog = "https://github.com/Textualize/rich/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ ris joelkoen ];
+    maintainers = with maintainers; [
+      ris
+      joelkoen
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/ring-doorbell/default.nix b/pkgs/development/python-modules/ring-doorbell/default.nix
index 1ef168dbe4769..5bac789370776 100644
--- a/pkgs/development/python-modules/ring-doorbell/default.nix
+++ b/pkgs/development/python-modules/ring-doorbell/default.nix
@@ -30,6 +30,8 @@ buildPythonPackage rec {
     hash = "sha256-XygVfIf6zlKy2kv/9TKLG8MpYX4YnzYIKiSG7nP5YI8=";
   };
 
+  pythonRelaxDeps = [ "requests-oauthlib" ];
+
   build-system = [ poetry-core ];
 
   dependencies = [
diff --git a/pkgs/development/python-modules/rio-tiler/default.nix b/pkgs/development/python-modules/rio-tiler/default.nix
new file mode 100644
index 0000000000000..757dd7c5e1745
--- /dev/null
+++ b/pkgs/development/python-modules/rio-tiler/default.nix
@@ -0,0 +1,65 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+
+  attrs,
+  boto3,
+  cachetools,
+  color-operations,
+  hatchling,
+  httpx,
+  morecantile,
+  numexpr,
+  numpy,
+  pydantic,
+  pystac,
+  rasterio,
+  rioxarray,
+}:
+
+buildPythonPackage rec {
+  pname = "rio-tiler";
+  version = "6.6.1";
+  pyproject = true;
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "cogeotiff";
+    repo = "rio-tiler";
+    rev = version;
+    hash = "sha256-MR6kyoGM3uXt6JiIEfGcsmTmxqlLxUF9Wn+CFuK5LtQ=";
+  };
+
+  build-system = [ hatchling ];
+
+  propagatedBuildInputs = [
+    attrs
+    cachetools
+    color-operations
+    httpx
+    morecantile
+    numexpr
+    numpy
+    pydantic
+    pystac
+    rasterio
+  ];
+
+  nativeCheckInputs = [
+    boto3
+    pytestCheckHook
+    rioxarray
+  ];
+
+  pythonImportsCheck = [ "rio_tiler" ];
+
+  meta = with lib; {
+    description = "User friendly Rasterio plugin to read raster datasets";
+    homepage = "https://cogeotiff.github.io/rio-tiler/";
+    license = licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/rioxarray/default.nix b/pkgs/development/python-modules/rioxarray/default.nix
new file mode 100644
index 0000000000000..1b3325e4576fd
--- /dev/null
+++ b/pkgs/development/python-modules/rioxarray/default.nix
@@ -0,0 +1,67 @@
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  # build-system
+  setuptools,
+  # dependencies
+  numpy,
+  packaging,
+  pyproj,
+  rasterio,
+  xarray,
+  # tests
+  dask,
+  netcdf4,
+  pytestCheckHook,
+  stdenv,
+}:
+
+buildPythonPackage rec {
+  pname = "rioxarray";
+  version = "0.15.5";
+  pyproject = true;
+  disabled = pythonOlder "3.10";
+
+  src = fetchFromGitHub {
+    owner = "corteva";
+    repo = "rioxarray";
+    rev = "refs/tags/${version}";
+    hash = "sha256-bumFZQktgUqo2lyoLtDXkh6Vv5oS/wobqYpvNYy7La0=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    numpy
+    packaging
+    pyproj
+    rasterio
+    xarray
+  ];
+
+  nativeCheckInputs = [
+    dask
+    netcdf4
+    pytestCheckHook
+  ];
+
+  disabledTests =
+    [ "test_clip_geojson__no_drop" ]
+    ++ lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [
+      # numerical errors
+      "test_clip_geojson"
+      "test_open_rasterio_mask_chunk_clip"
+    ];
+
+  pythonImportsCheck = [ "rioxarray" ];
+
+  meta = {
+    description = "geospatial xarray extension powered by rasterio";
+    homepage = "https://corteva.github.io/rioxarray/";
+    changelog = "https://github.com/corteva/rioxarray/releases/tag/${version}";
+    license = lib.licenses.asl20;
+    maintainers = lib.teams.geospatial.members;
+  };
+}
diff --git a/pkgs/development/python-modules/ripe-atlas-cousteau/default.nix b/pkgs/development/python-modules/ripe-atlas-cousteau/default.nix
index b02f1f9a72f0f..93a6308099c82 100644
--- a/pkgs/development/python-modules/ripe-atlas-cousteau/default.nix
+++ b/pkgs/development/python-modules/ripe-atlas-cousteau/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, jsonschema
-, pytestCheckHook
-, python-dateutil
-, python-socketio
-, pythonOlder
-, requests
-, websocket-client
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jsonschema,
+  pytestCheckHook,
+  python-dateutil,
+  python-socketio,
+  pythonOlder,
+  requests,
+  websocket-client,
 }:
 
 buildPythonPackage rec {
@@ -15,7 +16,6 @@ buildPythonPackage rec {
   version = "2.0.0";
   format = "setuptools";
 
-
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
@@ -42,9 +42,7 @@ buildPythonPackage rec {
     jsonschema
   ];
 
-  pythonImportsCheck = [
-    "ripe.atlas.cousteau"
-  ];
+  pythonImportsCheck = [ "ripe.atlas.cousteau" ];
 
   meta = with lib; {
     description = "Python client library for RIPE ATLAS API";
diff --git a/pkgs/development/python-modules/ripe-atlas-sagan/default.nix b/pkgs/development/python-modules/ripe-atlas-sagan/default.nix
index a9ed4bd3f52cc..c6d36a7b8849e 100644
--- a/pkgs/development/python-modules/ripe-atlas-sagan/default.nix
+++ b/pkgs/development/python-modules/ripe-atlas-sagan/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pytz
-, ujson
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  pytz,
+  ujson,
 }:
 
 buildPythonPackage rec {
@@ -30,30 +31,22 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    fast = [
-      ujson
-    ];
+    fast = [ ujson ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests/*.py"
-  ];
+  pytestFlagsArray = [ "tests/*.py" ];
 
   disabledTests = [
     # This test fail for unknown reason, I suspect it to be flaky.
     "test_invalid_country_code"
   ];
 
-  pythonImportsCheck = [
-    "ripe.atlas.sagan"
-  ];
+  pythonImportsCheck = [ "ripe.atlas.sagan" ];
 
   meta = with lib; {
-    description = "A parsing library for RIPE Atlas measurements results";
+    description = "Parsing library for RIPE Atlas measurements results";
     homepage = "https://github.com/RIPE-NCC/ripe-atlas-sagan";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ raitobezarius ];
diff --git a/pkgs/development/python-modules/riprova/default.nix b/pkgs/development/python-modules/riprova/default.nix
index cafe14e01bd91..98d70bcd939a9 100644
--- a/pkgs/development/python-modules/riprova/default.nix
+++ b/pkgs/development/python-modules/riprova/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
 }:
 
-buildPythonPackage rec{
+buildPythonPackage rec {
   pname = "riprova";
   version = "0.3.1";
   format = "setuptools";
diff --git a/pkgs/development/python-modules/ripser/default.nix b/pkgs/development/python-modules/ripser/default.nix
index c71d9f0a03fde..75790f1e3cc50 100644
--- a/pkgs/development/python-modules/ripser/default.nix
+++ b/pkgs/development/python-modules/ripser/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchPypi
-, numpy
-, persim
-, pytestCheckHook
-, pythonOlder
-, scikit-learn
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchPypi,
+  numpy,
+  persim,
+  pytestCheckHook,
+  pythonOlder,
+  scikit-learn,
+  scipy,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-J5ctOvGtmg/e2ls7fN59LR4AbHedC9gKk6f8jIDIoFI=";
   };
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
   propagatedBuildInputs = [
     numpy
@@ -33,9 +32,7 @@ buildPythonPackage rec {
     persim
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     # specifically needed for darwin
@@ -44,12 +41,10 @@ buildPythonPackage rec {
     echo "backend: ps" > $HOME/.matplotlib/matplotlibrc
   '';
 
-  pythonImportsCheck = [
-    "ripser"
-  ];
+  pythonImportsCheck = [ "ripser" ];
 
   meta = with lib; {
-    description = "A Lean Persistent Homology Library for Python";
+    description = "Lean Persistent Homology Library for Python";
     homepage = "https://ripser.scikit-tda.org";
     changelog = "https://github.com/scikit-tda/ripser.py/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/riscof/default.nix b/pkgs/development/python-modules/riscof/default.nix
index eabaf0ded5305..af2879b0e2e5e 100644
--- a/pkgs/development/python-modules/riscof/default.nix
+++ b/pkgs/development/python-modules/riscof/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, git
-, jinja2
-, pythonOlder
-, riscv-config
-, riscv-isac
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  git,
+  jinja2,
+  pythonOlder,
+  riscv-config,
+  riscv-isac,
 }:
 
 buildPythonPackage rec {
@@ -41,9 +42,7 @@ buildPythonPackage rec {
     jinja2
   ];
 
-  pythonImportsCheck = [
-    "riscof"
-  ];
+  pythonImportsCheck = [ "riscof" ];
 
   # No unitests available
   doCheck = false;
diff --git a/pkgs/development/python-modules/riscv-config/default.nix b/pkgs/development/python-modules/riscv-config/default.nix
index 298772e12cc76..c03e97c6232e4 100644
--- a/pkgs/development/python-modules/riscv-config/default.nix
+++ b/pkgs/development/python-modules/riscv-config/default.nix
@@ -3,17 +3,15 @@
   buildPythonPackage,
   cerberus,
   fetchFromGitHub,
-  fetchpatch,
   pythonOlder,
   pyyaml,
   ruamel-yaml,
   setuptools,
-  pythonRelaxDepsHook,
 }:
 
 buildPythonPackage rec {
   pname = "riscv-config";
-  version = "3.18.1";
+  version = "3.18.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -22,14 +20,13 @@ buildPythonPackage rec {
     owner = "riscv-software-src";
     repo = "riscv-config";
     rev = "refs/tags/${version}";
-    hash = "sha256-lBjSHfnuNPi4Ks5ZCRLqJx3/l4GMmMEEIud8ZVl/S4Q=";
+    hash = "sha256-eaHi6ezgU8gQYH97gCS2TzEzIP3F4zfn7uiA/To2Gmc=";
   };
 
   pythonRelaxDeps = [ "pyyaml" ];
 
   build-system = [ setuptools ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     cerberus
diff --git a/pkgs/development/python-modules/riscv-isac/default.nix b/pkgs/development/python-modules/riscv-isac/default.nix
index 19a6eea713194..5c6e305715eed 100644
--- a/pkgs/development/python-modules/riscv-isac/default.nix
+++ b/pkgs/development/python-modules/riscv-isac/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, click
-, colorlog
-, gitpython
-, pluggy
-, pyelftools
-, pytablewriter
-, pytestCheckHook
-, pyyaml
-, ruamel-yaml
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  click,
+  colorlog,
+  gitpython,
+  pluggy,
+  pyelftools,
+  pytablewriter,
+  pytestCheckHook,
+  pyyaml,
+  ruamel-yaml,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -44,16 +45,12 @@ buildPythonPackage rec {
     ruamel-yaml
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "riscv_isac"
-  ];
+  pythonImportsCheck = [ "riscv_isac" ];
 
   meta = with lib; {
-    description = "An ISA coverage extraction tool";
+    description = "ISA coverage extraction tool";
     mainProgram = "riscv_isac";
     homepage = "https://github.com/riscv/riscv-isac";
     changelog = "https://github.com/riscv-software-src/riscv-isac/blob/${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/rising/default.nix b/pkgs/development/python-modules/rising/default.nix
index 5df3998f80154..fee5c590de512 100644
--- a/pkgs/development/python-modules/rising/default.nix
+++ b/pkgs/development/python-modules/rising/default.nix
@@ -1,16 +1,16 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pytestCheckHook
-, pythonRelaxDepsHook
-, dill
-, lightning-utilities
-, numpy
-, torch
-, threadpoolctl
-, tqdm
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pytestCheckHook,
+  dill,
+  lightning-utilities,
+  numpy,
+  torch,
+  threadpoolctl,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -26,14 +26,20 @@ buildPythonPackage rec {
     hash = "sha256-sBzVTst5Tp2oZZ+Xsg3M7uAMbucL6idlpYwHvib3EaY=";
   };
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   pythonRelaxDeps = [ "lightning-utilities" ];
 
   propagatedBuildInputs = [
-    lightning-utilities numpy torch threadpoolctl tqdm
+    lightning-utilities
+    numpy
+    torch
+    threadpoolctl
+    tqdm
+  ];
+  nativeCheckInputs = [
+    dill
+    pytestCheckHook
   ];
-  nativeCheckInputs = [ dill pytestCheckHook ];
   disabledTests = lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
     # RuntimeError: DataLoader worker (pid(s) <...>) exited unexpectedly:
     "test_progressive_resize_integration"
diff --git a/pkgs/development/python-modules/ritassist/default.nix b/pkgs/development/python-modules/ritassist/default.nix
index a23bb3df5deee..8a3691b307c41 100644
--- a/pkgs/development/python-modules/ritassist/default.nix
+++ b/pkgs/development/python-modules/ritassist/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, ciso8601
-, fetchPypi
-, geopy
-, pythonOlder
-, requests
-, sseclient
+{
+  lib,
+  buildPythonPackage,
+  ciso8601,
+  fetchPypi,
+  geopy,
+  pythonOlder,
+  requests,
+  sseclient,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ritassist"
-  ];
+  pythonImportsCheck = [ "ritassist" ];
 
   meta = with lib; {
     description = "Python client to access RitAssist and FleetGO API";
diff --git a/pkgs/development/python-modules/rjpl/default.nix b/pkgs/development/python-modules/rjpl/default.nix
index 8d5cfbc92aae1..439d207aa58dd 100644
--- a/pkgs/development/python-modules/rjpl/default.nix
+++ b/pkgs/development/python-modules/rjpl/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, requests
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  requests,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-GLNIpZuM3yuCnPyjBa8KjdaL5cFK8InluuY+LTCrimc=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "rjpl"
-  ];
+  pythonImportsCheck = [ "rjpl" ];
 
   meta = with lib; {
     description = "Library for interacting with the Rejseplanen API";
diff --git a/pkgs/development/python-modules/rjsmin/default.nix b/pkgs/development/python-modules/rjsmin/default.nix
index f2a7a7874e6f8..cdfeebb491694 100644
--- a/pkgs/development/python-modules/rjsmin/default.nix
+++ b/pkgs/development/python-modules/rjsmin/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
   # tests auto-discovery
   doCheck = false;
 
-  pythonImportsCheck = [
-    "rjsmin"
-  ];
+  pythonImportsCheck = [ "rjsmin" ];
 
   meta = with lib; {
     description = "Module to minify Javascript";
diff --git a/pkgs/development/python-modules/rki-covid-parser/default.nix b/pkgs/development/python-modules/rki-covid-parser/default.nix
index 4a9263f389c2a..f7e91699b9b26 100644
--- a/pkgs/development/python-modules/rki-covid-parser/default.nix
+++ b/pkgs/development/python-modules/rki-covid-parser/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     hash = "sha256-e0MJjE4zgBPL+vt9EkgsdGrgqUyKK/1S9ZFxy56PUjc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   nativeCheckInputs = [
     aioresponses
@@ -43,9 +40,7 @@ buildPythonPackage rec {
     "tests/test_endpoint_availibility.py"
   ];
 
-  pythonImportsCheck = [
-    "rki_covid_parser"
-  ];
+  pythonImportsCheck = [ "rki_covid_parser" ];
 
   meta = with lib; {
     description = "Python module for working with data from the Robert-Koch Institut";
diff --git a/pkgs/development/python-modules/rkm-codes/default.nix b/pkgs/development/python-modules/rkm-codes/default.nix
index 0a8869052d604..9fa267fa4b7d6 100644
--- a/pkgs/development/python-modules/rkm-codes/default.nix
+++ b/pkgs/development/python-modules/rkm-codes/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-CkLLZuWcNL8sqAupc7lHXu0DXUXrX3qwd1g/ekyHdw4=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  propagatedBuildInputs = [ setuptools ];
 
   # this has a circular dependency on quantiphy
   preBuild = ''
diff --git a/pkgs/development/python-modules/rlax/default.nix b/pkgs/development/python-modules/rlax/default.nix
index ceb8e9758619d..977db6b748ec6 100644
--- a/pkgs/development/python-modules/rlax/default.nix
+++ b/pkgs/development/python-modules/rlax/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, absl-py
-, chex
-, distrax
-, dm-env
-, jax
-, jaxlib
-, numpy
-, tensorflow-probability
-, dm-haiku
-, optax
-, pytest-xdist
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  absl-py,
+  chex,
+  distrax,
+  dm-env,
+  jax,
+  jaxlib,
+  numpy,
+  tensorflow-probability,
+  dm-haiku,
+  optax,
+  pytest-xdist,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -29,7 +30,8 @@ buildPythonPackage rec {
   };
 
   patches = [
-    (fetchpatch {  # Follow chex API change (https://github.com/google-deepmind/chex/pull/52)
+    (fetchpatch {
+      # Follow chex API change (https://github.com/google-deepmind/chex/pull/52)
       name = "replace-deprecated-chex-assertions";
       url = "https://github.com/google-deepmind/rlax/commit/30e7913a1102667137654d6e652a6c4b9e9ba1f4.patch";
       hash = "sha256-OPnuTKEtwZ28hzR1660v3DcktxTYjhR1xYvFbQvOhgs=";
@@ -54,9 +56,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "rlax"
-  ];
+  pythonImportsCheck = [ "rlax" ];
 
   disabledTests = [
     # RuntimeErrors
diff --git a/pkgs/development/python-modules/rlcard/default.nix b/pkgs/development/python-modules/rlcard/default.nix
new file mode 100644
index 0000000000000..e80a46e301a0e
--- /dev/null
+++ b/pkgs/development/python-modules/rlcard/default.nix
@@ -0,0 +1,76 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  numpy,
+  pip,
+  termcolor,
+  pytestCheckHook,
+  torch,
+  pythonAtLeast,
+}:
+
+buildPythonPackage rec {
+  pname = "rlcard";
+  version = "1.0.7";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "datamllab";
+    repo = "rlcard";
+    rev = "refs/tags/${version}";
+    hash = "sha256-SWj6DBItQzSM+nioV54a350Li7tbBaVXsQxNAqVgB0k=";
+  };
+
+  build-system = [
+    setuptools
+    wheel
+  ];
+
+  dependencies = [
+    numpy
+    # pip is required at runtime (https://github.com/datamllab/rlcard/blob/1.0.7/rlcard/utils/utils.py#L10)
+    pip
+    termcolor
+  ];
+
+  pythonImportsCheck = [ "rlcard" ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    torch
+  ];
+
+  disabledTests = [
+    # AttributeError: module 'numpy' has no attribute 'int'.
+    # https://github.com/datamllab/rlcard/issues/266
+    "test_decode_action"
+    "test_get_legal_actions"
+    "test_get_perfect_information"
+    "test_get_player_id"
+    "test_init_game"
+    "test_is_deterministic"
+    "test_proceed_game"
+    "test_reset_and_extract_state"
+    "test_run"
+    "test_step"
+    "test_step"
+    "test_step_back"
+    "test_step_back"
+
+    # ValueError: setting an array element with a sequence. The requested array has an inhomogeneous shape after 3 dimensions. The detected shape was (1, 1, 5) + inhomogeneous part.
+    "test_reorganize"
+  ];
+
+  meta = with lib; {
+    description = "Reinforcement Learning / AI Bots in Card (Poker) Games - Blackjack, Leduc, Texas, DouDizhu, Mahjong, UNO";
+    homepage = "https://github.com/datamllab/rlcard";
+    changelog = "https://github.com/datamllab/rlcard/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ GaetanLepage ];
+    # Relies on deprecated distutils
+    broken = pythonAtLeast "3.12";
+  };
+}
diff --git a/pkgs/development/python-modules/rlp/default.nix b/pkgs/development/python-modules/rlp/default.nix
index 8aeee9d0dd9c2..f04ecac4c4b91 100644
--- a/pkgs/development/python-modules/rlp/default.nix
+++ b/pkgs/development/python-modules/rlp/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, fetchFromGitHub
-, setuptools
-, buildPythonPackage
-, eth-utils
-, hypothesis
-, pytestCheckHook
+{
+  lib,
+  fetchFromGitHub,
+  setuptools,
+  buildPythonPackage,
+  eth-utils,
+  hypothesis,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,11 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-cRp+ZOPYs9kcqMKGaiYMOFBY+aPCyFqu+1/5wloLwqU=";
   };
 
-  build-system = [ setuptools];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    eth-utils
-  ];
+  propagatedBuildInputs = [ eth-utils ];
 
   nativeCheckInputs = [
     hypothesis
diff --git a/pkgs/development/python-modules/rmcl/default.nix b/pkgs/development/python-modules/rmcl/default.nix
index 001992f539eb3..eebfe1c329f84 100644
--- a/pkgs/development/python-modules/rmcl/default.nix
+++ b/pkgs/development/python-modules/rmcl/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, poetry-core
-, asks
-, trio
-, xdg
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  poetry-core,
+  asks,
+  trio,
+  xdg,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
       --replace '= "^' '= ">='
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     asks
diff --git a/pkgs/development/python-modules/rmrl/default.nix b/pkgs/development/python-modules/rmrl/default.nix
index 3b93126aa73c9..0dc783881414e 100644
--- a/pkgs/development/python-modules/rmrl/default.nix
+++ b/pkgs/development/python-modules/rmrl/default.nix
@@ -1,15 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, pythonRelaxDepsHook
-, pdfrw
-, reportlab
-, rmscene
-, setuptools
-, svglib
-, xdg
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  pdfrw,
+  reportlab,
+  rmscene,
+  setuptools,
+  svglib,
+  xdg,
 }:
 
 buildPythonPackage rec {
@@ -29,7 +29,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = [
diff --git a/pkgs/development/python-modules/rmscene/default.nix b/pkgs/development/python-modules/rmscene/default.nix
index a7eb4d2c632ce..7da1d58a976d9 100644
--- a/pkgs/development/python-modules/rmscene/default.nix
+++ b/pkgs/development/python-modules/rmscene/default.nix
@@ -1,12 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, pythonRelaxDepsHook
-, fetchFromGitHub
-, poetry-core
-, packaging
-, hypothesis
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  packaging,
+  hypothesis,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,16 +25,11 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "packaging"
-  ];
+  pythonRelaxDeps = [ "packaging" ];
 
-  propagatedBuildInputs = [
-    packaging
-  ];
+  propagatedBuildInputs = [ packaging ];
 
   pythonImportsCheck = [ "rmscene" ];
 
diff --git a/pkgs/development/python-modules/rmsd/default.nix b/pkgs/development/python-modules/rmsd/default.nix
index caa13ff5299f9..c60fcf298f082 100644
--- a/pkgs/development/python-modules/rmsd/default.nix
+++ b/pkgs/development/python-modules/rmsd/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
-, scipy
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+  scipy,
 }:
 
 buildPythonPackage rec {
@@ -24,6 +25,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/charnley/rmsd";
     license = licenses.bsd2;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ sheepforce markuskowa ];
+    maintainers = with maintainers; [
+      sheepforce
+      markuskowa
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/rnc2rng/default.nix b/pkgs/development/python-modules/rnc2rng/default.nix
index 90bfc37266f80..bc41471533563 100644
--- a/pkgs/development/python-modules/rnc2rng/default.nix
+++ b/pkgs/development/python-modules/rnc2rng/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, rply
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  rply,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/rnginline/default.nix b/pkgs/development/python-modules/rnginline/default.nix
index acea2482f32cf..966dec934aa2f 100644
--- a/pkgs/development/python-modules/rnginline/default.nix
+++ b/pkgs/development/python-modules/rnginline/default.nix
@@ -1,37 +1,37 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, poetry-core
-, pythonRelaxDepsHook
-, lxml
-, docopt-ng
-, typing-extensions
-, importlib-metadata
-, importlib-resources
-, pytestCheckHook
-, mock
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  poetry-core,
+  lxml,
+  docopt-ng,
+  typing-extensions,
+  importlib-metadata,
+  importlib-resources,
+  pytestCheckHook,
+  mock,
 }:
 
 buildPythonPackage rec {
   pname = "rnginline";
   version = "1.0.0";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-JWqzs+OqOynIAWYVgGrZiuiCqObAgGe6rBt0DcP3U6E=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
-
   pythonRelaxDeps = [
     "docopt-ng"
+    "importlib-metadata"
+    "lxml"
   ];
 
-  propagatedBuildInputs = [
+  build-system = [ poetry-core ];
+
+
+  dependencies = [
     docopt-ng
     lxml
     typing-extensions
@@ -47,8 +47,9 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "rnginline" ];
 
   meta = with lib; {
-    description = "A Python library and command-line tool for loading multi-file RELAX NG schemas from arbitary URLs, and flattening them into a single RELAX NG schema";
+    description = "Python library and command-line tool for loading multi-file RELAX NG schemas from arbitary URLs, and flattening them into a single RELAX NG schema";
     homepage = "https://github.com/h4l/rnginline";
+    changelog = "https://github.com/h4l/rnginline/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ lesuisse ];
   };
diff --git a/pkgs/development/python-modules/rns/default.nix b/pkgs/development/python-modules/rns/default.nix
index 0df16e875cf18..bc7f88d5dc59e 100644
--- a/pkgs/development/python-modules/rns/default.nix
+++ b/pkgs/development/python-modules/rns/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, netifaces
-, pyserial
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  netifaces,
+  pyserial,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "rns";
-  version = "0.7.3";
+  version = "0.7.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -19,14 +20,12 @@ buildPythonPackage rec {
     owner = "markqvist";
     repo = "Reticulum";
     rev = "refs/tags/${version}";
-    hash = "sha256-QcYjqqeXBKx+Ef00Bw1OJMWDMdQgp/fqh3r5yhsa0Kg=";
+    hash = "sha256-TWaDRJQ695kjoKjWQeAO+uxSZGgQiHoWYIsS+XnYVOQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     cryptography
     netifaces
     pyserial
@@ -35,9 +34,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "RNS"
-  ];
+  pythonImportsCheck = [ "RNS" ];
 
   meta = with lib; {
     description = "Cryptography-based networking stack for wide-area networks";
diff --git a/pkgs/development/python-modules/roadlib/default.nix b/pkgs/development/python-modules/roadlib/default.nix
index 77c05f8dc5972..c2ac5e3cba691 100644
--- a/pkgs/development/python-modules/roadlib/default.nix
+++ b/pkgs/development/python-modules/roadlib/default.nix
@@ -11,14 +11,14 @@
 
 buildPythonPackage rec {
   pname = "roadlib";
-  version = "0.24.0";
+  version = "0.24.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-+5vR2iTFu50PJIsj4sW6McH1sg3yyEIwk15W8Jk0GKA=";
+    hash = "sha256-tQbJWHXxvjGhqGBI9nn8EL7rJcVyH095FfNSsxkrImQ=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/roadrecon/default.nix b/pkgs/development/python-modules/roadrecon/default.nix
index 0f1f412919b22..87db63bab3a8e 100644
--- a/pkgs/development/python-modules/roadrecon/default.nix
+++ b/pkgs/development/python-modules/roadrecon/default.nix
@@ -1,19 +1,19 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, flask
-, flask-cors
-, flask-marshmallow
-, flask-sqlalchemy
-, marshmallow
-, marshmallow-sqlalchemy
-, openpyxl
-, pythonOlder
-, pythonRelaxDepsHook
-, roadlib
-, setuptools
-, sqlalchemy
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  flask,
+  flask-cors,
+  flask-marshmallow,
+  flask-sqlalchemy,
+  marshmallow,
+  marshmallow-sqlalchemy,
+  openpyxl,
+  pythonOlder,
+  roadlib,
+  setuptools,
+  sqlalchemy,
 }:
 
 buildPythonPackage rec {
@@ -28,12 +28,9 @@ buildPythonPackage rec {
     hash = "sha256-OEftVwU30tLP091Z5CIl67hkjjcqY+Qo04/wHZlbuFc=";
   };
 
-  pythonRelaxDeps = [
-    "flask"
-  ];
+  pythonRelaxDeps = [ "flask" ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -50,9 +47,7 @@ buildPythonPackage rec {
     sqlalchemy
   ];
 
-  pythonImportsCheck = [
-    "roadtools.roadrecon"
-  ];
+  pythonImportsCheck = [ "roadtools.roadrecon" ];
 
   meta = with lib; {
     description = "Azure AD recon";
diff --git a/pkgs/development/python-modules/roadtools/default.nix b/pkgs/development/python-modules/roadtools/default.nix
index 6ea6bc5138b2d..e1cdcf4001e4e 100644
--- a/pkgs/development/python-modules/roadtools/default.nix
+++ b/pkgs/development/python-modules/roadtools/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, roadrecon
-, roadlib
-, roadtx
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  roadrecon,
+  roadlib,
+  roadtx,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-Cqcd+bKkfYXCeJBXu6peMjBoA6gve2XBPdCAAuTKGEE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     roadrecon
@@ -30,9 +29,7 @@ buildPythonPackage rec {
     roadtx
   ];
 
-  pythonImportsCheck = [
-    "roadtools"
-  ];
+  pythonImportsCheck = [ "roadtools" ];
 
   meta = with lib; {
     description = "Azure AD tooling framework";
diff --git a/pkgs/development/python-modules/roadtx/default.nix b/pkgs/development/python-modules/roadtx/default.nix
index eca756a0f0338..d390acea281d0 100644
--- a/pkgs/development/python-modules/roadtx/default.nix
+++ b/pkgs/development/python-modules/roadtx/default.nix
@@ -15,14 +15,14 @@
 
 buildPythonPackage rec {
   pname = "roadtx";
-  version = "1.8.1";
+  version = "1.8.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-hhxmwD1+mZtU/VmB8yXeQESh0AGtjhdpDXRG3+mYfEk=";
+    hash = "sha256-BJYBQBxgYbozY0rPgxpiduUxb6wEFBJxXY8TRVlLz5M=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/robomachine/default.nix b/pkgs/development/python-modules/robomachine/default.nix
index afcdf0ed3599d..69ca0941df4d0 100644
--- a/pkgs/development/python-modules/robomachine/default.nix
+++ b/pkgs/development/python-modules/robomachine/default.nix
@@ -1,12 +1,12 @@
-{ stdenv
-, lib
-, allpairspy
-, buildPythonPackage
-, fetchPypi
-, pyparsing
-, pythonRelaxDepsHook
-, robotframework
-, setuptools
+{
+  stdenv,
+  lib,
+  allpairspy,
+  buildPythonPackage,
+  fetchPypi,
+  pyparsing,
+  robotframework,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +21,6 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -31,17 +30,11 @@ buildPythonPackage rec {
     allpairspy
   ];
 
-  pythonRemoveDeps = [
-    "argparse"
-  ];
+  pythonRemoveDeps = [ "argparse" ];
 
-  pythonRelaxDeps = [
-    "pyparsing"
-  ];
+  pythonRelaxDeps = [ "pyparsing" ];
 
-  pythonImportsCheck = [
-    "robomachine"
-  ];
+  pythonImportsCheck = [ "robomachine" ];
 
   meta = with lib; {
     description = "Test data generator for Robot Framework";
diff --git a/pkgs/development/python-modules/robot-detection/default.nix b/pkgs/development/python-modules/robot-detection/default.nix
index 87475e14e0916..0e582aa3867b7 100644
--- a/pkgs/development/python-modules/robot-detection/default.nix
+++ b/pkgs/development/python-modules/robot-detection/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, six }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "robot-detection";
diff --git a/pkgs/development/python-modules/robotframework-databaselibrary/default.nix b/pkgs/development/python-modules/robotframework-databaselibrary/default.nix
index e60162ea38d21..fa0b02658d20a 100644
--- a/pkgs/development/python-modules/robotframework-databaselibrary/default.nix
+++ b/pkgs/development/python-modules/robotframework-databaselibrary/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, robotframework
-, robotframework-excellib
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  robotframework,
+  robotframework-excellib,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "DatabaseLibrary" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Database Library contains utilities meant for Robot Framework";
@@ -41,5 +40,4 @@ buildPythonPackage rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ talkara ];
   };
-
 }
diff --git a/pkgs/development/python-modules/robotframework-excellib/default.nix b/pkgs/development/python-modules/robotframework-excellib/default.nix
index 550cc45e8ca35..8810bfbac9a1b 100644
--- a/pkgs/development/python-modules/robotframework-excellib/default.nix
+++ b/pkgs/development/python-modules/robotframework-excellib/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, openpyxl
-, robotframework
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  openpyxl,
+  robotframework,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-ZzAwlYM8DgWD1hfWRnY8u2RnZc3V368kgigBApeDZYg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     openpyxl
diff --git a/pkgs/development/python-modules/robotframework-pythonlibcore/default.nix b/pkgs/development/python-modules/robotframework-pythonlibcore/default.nix
index 39feab338d240..559e769f37ff5 100644
--- a/pkgs/development/python-modules/robotframework-pythonlibcore/default.nix
+++ b/pkgs/development/python-modules/robotframework-pythonlibcore/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, fetchpatch2
-, setuptools
-, robotframework
-, approvaltests
-, pytest-mockito
-, pytestCheckHook
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  fetchpatch2,
+  setuptools,
+  robotframework,
+  approvaltests,
+  pytest-mockito,
+  pytestCheckHook,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -33,13 +34,9 @@ buildPythonPackage rec {
     })
   ];
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    robotframework
-  ];
+  dependencies = [ robotframework ];
 
   nativeCheckInputs = [
     approvaltests
diff --git a/pkgs/development/python-modules/robotframework-requests/default.nix b/pkgs/development/python-modules/robotframework-requests/default.nix
index d1b6f21df06be..542aea236da41 100644
--- a/pkgs/development/python-modules/robotframework-requests/default.nix
+++ b/pkgs/development/python-modules/robotframework-requests/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, lxml
-, pytestCheckHook
-, pythonOlder
-, requests
-, robotframework
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxml,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  robotframework,
 }:
 
 buildPythonPackage rec {
@@ -28,17 +29,11 @@ buildPythonPackage rec {
     robotframework
   ];
 
-  buildInputs = [
-    pytestCheckHook
-  ];
+  buildInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "RequestsLibrary"
-  ];
+  pythonImportsCheck = [ "RequestsLibrary" ];
 
-  pytestFlagsArray = [
-    "utests"
-  ];
+  pytestFlagsArray = [ "utests" ];
 
   meta = with lib; {
     description = "Robot Framework keyword library wrapper around the HTTP client library requests";
diff --git a/pkgs/development/python-modules/robotframework-selenium2library/default.nix b/pkgs/development/python-modules/robotframework-selenium2library/default.nix
index c66d7c6ad646b..c9567e83f16ef 100644
--- a/pkgs/development/python-modules/robotframework-selenium2library/default.nix
+++ b/pkgs/development/python-modules/robotframework-selenium2library/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, robotframework-seleniumlibrary }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  robotframework-seleniumlibrary,
+}:
 
 buildPythonPackage rec {
   version = "3.0.0";
@@ -21,5 +26,4 @@ buildPythonPackage rec {
     license = licenses.asl20;
     maintainers = [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix b/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix
index a1130eaac619a..f535055d32013 100644
--- a/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix
+++ b/pkgs/development/python-modules/robotframework-seleniumlibrary/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, robotframework
-, robotframework-pythonlibcore
-, selenium
-, approvaltests
-, pytest-mockito
-, pytestCheckHook
-, robotstatuschecker
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  robotframework,
+  robotframework-pythonlibcore,
+  selenium,
+  approvaltests,
+  pytest-mockito,
+  pytestCheckHook,
+  robotstatuschecker,
 }:
 
 buildPythonPackage rec {
   pname = "robotframework-seleniumlibrary";
-  version = "6.3.0";
+  version = "6.4.0";
   pyproject = true;
 
   # no tests included in PyPI tarball
@@ -21,12 +22,10 @@ buildPythonPackage rec {
     owner = "robotframework";
     repo = "SeleniumLibrary";
     rev = "refs/tags/v${version}";
-    sha256 = "sha256-/bYk8S9fGTsftBokz1FH+7HwdhhtAvZgtQscUESTsjY=";
+    sha256 = "sha256-Rjbdn1WXdXLn//HLtHwVrlLD+3vw9mgre/0wvMb+xbc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     robotframework
diff --git a/pkgs/development/python-modules/robotframework-sshlibrary/default.nix b/pkgs/development/python-modules/robotframework-sshlibrary/default.nix
index 0a55d66b0a60d..c8717a2ed2ace 100644
--- a/pkgs/development/python-modules/robotframework-sshlibrary/default.nix
+++ b/pkgs/development/python-modules/robotframework-sshlibrary/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, robotframework
-, paramiko
-, scp
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  robotframework,
+  paramiko,
+  scp,
 }:
 
 buildPythonPackage rec {
@@ -19,12 +20,15 @@ buildPythonPackage rec {
   # unit tests are impure
   doCheck = false;
 
-  propagatedBuildInputs = [ robotframework paramiko scp ];
+  propagatedBuildInputs = [
+    robotframework
+    paramiko
+    scp
+  ];
 
   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/pkgs/development/python-modules/robotframework-tools/default.nix b/pkgs/development/python-modules/robotframework-tools/default.nix
index 48cf214986c2c..048822afb1d04 100644
--- a/pkgs/development/python-modules/robotframework-tools/default.nix
+++ b/pkgs/development/python-modules/robotframework-tools/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, robotframework
-, moretools
-, path
-, six
-, zetup
-, modeled
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  robotframework,
+  moretools,
+  path,
+  six,
+  zetup,
+  modeled,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/robotframework/default.nix b/pkgs/development/python-modules/robotframework/default.nix
index f87fe2bdd37a7..b961d6ca07263 100644
--- a/pkgs/development/python-modules/robotframework/default.nix
+++ b/pkgs/development/python-modules/robotframework/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, jsonschema
-, python
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  jsonschema,
+  python,
 }:
 
 buildPythonPackage rec {
   pname = "robotframework";
-  version = "7.0";
+  version = "7.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,16 +19,12 @@ buildPythonPackage rec {
     owner = "robotframework";
     repo = "robotframework";
     rev = "refs/tags/v${version}";
-    hash = "sha256-IyOm2MTHj2rOew/IkyGIfI4XZSFU88+Tx8KHKIRT2G4=";
+    hash = "sha256-pr7x40ja1DwMPffmXQ2W53g1wuD0p63f+6ATfXhqGvE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    jsonschema
-  ];
+  nativeCheckInputs = [ jsonschema ];
 
   checkPhase = ''
     ${python.interpreter} utest/run.py
diff --git a/pkgs/development/python-modules/robotstatuschecker/default.nix b/pkgs/development/python-modules/robotstatuschecker/default.nix
index 949945515c225..927dcf59c2169 100644
--- a/pkgs/development/python-modules/robotstatuschecker/default.nix
+++ b/pkgs/development/python-modules/robotstatuschecker/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, robotframework
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  robotframework,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
       --replace-fail BuiltIn.Log Log
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [ robotframework ];
 
@@ -40,7 +39,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A tool for checking that Robot Framework test cases have expected statuses and log messages";
+    description = "Tool for checking that Robot Framework test cases have expected statuses and log messages";
     homepage = "https://github.com/robotframework/statuschecker";
     license = licenses.asl20;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/robotsuite/default.nix b/pkgs/development/python-modules/robotsuite/default.nix
index ffc86ec86815b..dc19ae15154e8 100644
--- a/pkgs/development/python-modules/robotsuite/default.nix
+++ b/pkgs/development/python-modules/robotsuite/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, lxml
-, robotframework
-, pytestCheckHook
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  lxml,
+  robotframework,
+  pytestCheckHook,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Python unittest test suite for Robot Framework";
diff --git a/pkgs/development/python-modules/rocket-errbot/default.nix b/pkgs/development/python-modules/rocket-errbot/default.nix
index 9d86e73bd8517..57c9d2eeae31e 100644
--- a/pkgs/development/python-modules/rocket-errbot/default.nix
+++ b/pkgs/development/python-modules/rocket-errbot/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchPypi, fetchpatch, buildPythonPackage }:
+{
+  lib,
+  fetchPypi,
+  fetchpatch,
+  buildPythonPackage,
+}:
 
 buildPythonPackage rec {
   pname = "rocket-errbot";
@@ -11,12 +16,14 @@ buildPythonPackage rec {
   };
 
   # remove with 1.2.6
-  patches = [ (fetchpatch {
-    # https://github.com/errbotio/rocket/pull/1
-    name = "errbotio-rocket-pull-1.patch";
-    url = "https://github.com/errbotio/rocket/compare/f1a52fe17164f83bccce5e6a1935fc5071c2265f...d69adcd49de5d78bd80f952a2ee31e6a0bac4e3d.patch";
-    sha256 = "1s668yv5b86b78vbqwhcl44k2l16c9bhk3199yy9hayf0vkxnwif";
-  }) ];
+  patches = [
+    (fetchpatch {
+      # https://github.com/errbotio/rocket/pull/1
+      name = "errbotio-rocket-pull-1.patch";
+      url = "https://github.com/errbotio/rocket/compare/f1a52fe17164f83bccce5e6a1935fc5071c2265f...d69adcd49de5d78bd80f952a2ee31e6a0bac4e3d.patch";
+      sha256 = "1s668yv5b86b78vbqwhcl44k2l16c9bhk3199yy9hayf0vkxnwif";
+    })
+  ];
 
   meta = {
     homepage = "https://github.com/errbotio/rocket";
@@ -24,4 +31,3 @@ buildPythonPackage rec {
     license = lib.licenses.mit;
   };
 }
-
diff --git a/pkgs/development/python-modules/roku/default.nix b/pkgs/development/python-modules/roku/default.nix
index 354e2f650fac7..5041ec57ab1a1 100644
--- a/pkgs/development/python-modules/roku/default.nix
+++ b/pkgs/development/python-modules/roku/default.nix
@@ -1,4 +1,11 @@
-{ lib, fetchFromGitHub, buildPythonPackage, requests, pytest, flask, isPy27
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  requests,
+  pytest,
+  flask,
+  isPy27,
 }:
 
 buildPythonPackage rec {
@@ -16,11 +23,14 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests ];
 
-  nativeCheckInputs = [ pytest flask ];
+  nativeCheckInputs = [
+    pytest
+    flask
+  ];
   pythonImportsCheck = [ "roku" ];
 
   meta = with lib; {
-    description = "Screw remotes. Control your Roku with Python.";
+    description = "Screw remotes. Control your Roku with Python";
     homepage = "https://github.com/jcarbaugh/python-roku";
     license = licenses.bsd3;
   };
diff --git a/pkgs/development/python-modules/rokuecp/default.nix b/pkgs/development/python-modules/rokuecp/default.nix
index 0a204c11be28a..f8cec672c27a6 100644
--- a/pkgs/development/python-modules/rokuecp/default.nix
+++ b/pkgs/development/python-modules/rokuecp/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, aiohttp
-, aresponses
-, awesomeversion
-, backoff
-, buildPythonPackage
-, cachetools
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytest-freezegun
-, pytestCheckHook
-, pythonOlder
-, xmltodict
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  awesomeversion,
+  backoff,
+  buildPythonPackage,
+  cachetools,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytest-freezegun,
+  pytestCheckHook,
+  pythonOlder,
+  xmltodict,
+  yarl,
 }:
 
 buildPythonPackage rec {
   pname = "rokuecp";
-  version = "0.19.2";
-  format = "pyproject";
+  version = "0.19.4";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
@@ -26,14 +27,18 @@ buildPythonPackage rec {
     owner = "ctalkington";
     repo = "python-rokuecp";
     rev = "refs/tags/${version}";
-    hash = "sha256-L6uedckc2lEQ6CUlQGEyDhnuVsxRRgDQJUEsZTfm2sU=";
+    hash = "sha256-GotVSRSMdbAtDmVEXNizf5Pf/02sva1R/6ULL6h7ciY=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail 'version = "0.0.0"' 'version = "${version}"' \
+      --replace-fail "--cov" ""
+  '';
+
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     backoff
     cachetools
@@ -49,12 +54,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace 'version = "0.0.0"' 'version = "${version}"' \
-      --replace "--cov" ""
-  '';
-
   disabledTests = [
     # Network related tests are having troube in the sandbox
     "test_resolve_hostname"
@@ -66,9 +65,7 @@ buildPythonPackage rec {
     "test_get_tv_channels_single_channel"
   ];
 
-  pythonImportsCheck = [
-    "rokuecp"
-  ];
+  pythonImportsCheck = [ "rokuecp" ];
 
   meta = with lib; {
     description = "Asynchronous Python client for Roku (ECP)";
diff --git a/pkgs/development/python-modules/rollbar/default.nix b/pkgs/development/python-modules/rollbar/default.nix
index 26edb9046504f..40e97073c7bce 100644
--- a/pkgs/development/python-modules/rollbar/default.nix
+++ b/pkgs/development/python-modules/rollbar/default.nix
@@ -1,16 +1,16 @@
-{ lib
-, aiocontextvars
-, blinker
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, httpx
-, mock
-, pytestCheckHook
-, requests
-, six
-, pythonOlder
-, webob
+{
+  lib,
+  aiocontextvars,
+  blinker,
+  buildPythonPackage,
+  fetchPypi,
+  httpx,
+  mock,
+  pytestCheckHook,
+  requests,
+  six,
+  pythonOlder,
+  webob,
 }:
 
 buildPythonPackage rec {
@@ -44,9 +44,7 @@ buildPythonPackage rec {
   # https://github.com/rollbar/pyrollbar/pull/340
   doCheck = false;
 
-  pythonImportsCheck = [
-    "rollbar"
-  ];
+  pythonImportsCheck = [ "rollbar" ];
 
   meta = with lib; {
     description = "Error tracking and logging from Python to Rollbar";
diff --git a/pkgs/development/python-modules/roman/default.nix b/pkgs/development/python-modules/roman/default.nix
index f1a0ac31e1e6a..83ab749a7889f 100644
--- a/pkgs/development/python-modules/roman/default.nix
+++ b/pkgs/development/python-modules/roman/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -19,5 +20,4 @@ buildPythonPackage rec {
     homepage = "https://pypi.python.org/pypi/roman";
     license = licenses.psfl;
   };
-
 }
diff --git a/pkgs/development/python-modules/ronin/default.nix b/pkgs/development/python-modules/ronin/default.nix
index 5b001aa392a39..63d6d419cf14f 100644
--- a/pkgs/development/python-modules/ronin/default.nix
+++ b/pkgs/development/python-modules/ronin/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, blessings
-, colorama
-, glob2
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  blessings,
+  colorama,
+  glob2,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,11 @@ buildPythonPackage rec {
     glob2
   ];
 
-  pythonImportsCheck = [
-    "ronin"
-  ];
+  pythonImportsCheck = [ "ronin" ];
 
   meta = with lib; {
     homepage = "https://github.com/tliron/ronin/";
-    description = "A straightforward but powerful build system based on Ninja and Python";
+    description = "Straightforward but powerful build system based on Ninja and Python";
     license = licenses.asl20;
     maintainers = with maintainers; [ AndersonTorres ];
   };
diff --git a/pkgs/development/python-modules/roombapy/default.nix b/pkgs/development/python-modules/roombapy/default.nix
index 465da76efe4ba..e2196301166a1 100644
--- a/pkgs/development/python-modules/roombapy/default.nix
+++ b/pkgs/development/python-modules/roombapy/default.nix
@@ -1,17 +1,17 @@
-{ lib
-, amqtt
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, mashumaro
-, orjson
-, paho-mqtt
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, tabulate
+{
+  lib,
+  amqtt,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  mashumaro,
+  orjson,
+  paho-mqtt,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  tabulate,
 }:
 
 buildPythonPackage rec {
@@ -30,12 +30,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "orjson"
-  ];
+  pythonRelaxDeps = [ "orjson" ];
 
   propagatedBuildInputs = [
     mashumaro
@@ -64,9 +61,7 @@ buildPythonPackage rec {
     "test_roomba_connect"
   ];
 
-  pythonImportsCheck = [
-    "roombapy"
-  ];
+  pythonImportsCheck = [ "roombapy" ];
 
   meta = with lib; {
     description = "Python program and library to control Wi-Fi enabled iRobot Roombas";
diff --git a/pkgs/development/python-modules/roonapi/default.nix b/pkgs/development/python-modules/roonapi/default.nix
index 7c8935a6def99..76f93dc339052 100644
--- a/pkgs/development/python-modules/roonapi/default.nix
+++ b/pkgs/development/python-modules/roonapi/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, ifaddr
-, poetry-core
-, pythonOlder
-, requests
-, six
-, websocket-client
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ifaddr,
+  poetry-core,
+  pythonOlder,
+  requests,
+  six,
+  websocket-client,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-6wQsaZ50J2xIPXzICglg5pf8U0r4tL8iqcbdwjZadwU=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     ifaddr
@@ -37,9 +36,7 @@ buildPythonPackage rec {
   # Tests require access to the Roon API
   doCheck = false;
 
-  pythonImportsCheck = [
-    "roonapi"
-  ];
+  pythonImportsCheck = [ "roonapi" ];
 
   meta = with lib; {
     description = "Python library to interface with the Roon API";
diff --git a/pkgs/development/python-modules/rope/default.nix b/pkgs/development/python-modules/rope/default.nix
index e027b1922ec9c..9379f13f7ee33 100644
--- a/pkgs/development/python-modules/rope/default.nix
+++ b/pkgs/development/python-modules/rope/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytoolconfig
-, pytest-timeout
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytoolconfig,
+  pytest-timeout,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
     hash = "sha256-g/fta5gW/xPs3VaVuLtikfLhqCKyy1AKRnOcOXjQ8bA=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    pytoolconfig
-  ] ++ pytoolconfig.optional-dependencies.global;
+  dependencies = [ pytoolconfig ] ++ pytoolconfig.optional-dependencies.global;
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/ropgadget/default.nix b/pkgs/development/python-modules/ropgadget/default.nix
index d0ae5b7aeec04..53908cb4db730 100644
--- a/pkgs/development/python-modules/ropgadget/default.nix
+++ b/pkgs/development/python-modules/ropgadget/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, capstone
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  capstone,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-6m8opcTM4vrK+VCPXxNhZttUq6YmS8swLUDhjyfinWE=";
   };
 
-  propagatedBuildInputs = [
-    capstone
-  ];
+  propagatedBuildInputs = [ capstone ];
 
   # Test suite is working with binaries
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ropgadget"
-  ];
+  pythonImportsCheck = [ "ropgadget" ];
 
   meta = with lib; {
     description = "Tool to search for gadgets in binaries to facilitate ROP exploitation";
diff --git a/pkgs/development/python-modules/ropper/default.nix b/pkgs/development/python-modules/ropper/default.nix
index 973b11de4728b..b7a4c9964c04a 100644
--- a/pkgs/development/python-modules/ropper/default.nix
+++ b/pkgs/development/python-modules/ropper/default.nix
@@ -1,11 +1,12 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, capstone
-, filebytes
-, pytestCheckHook
-, pythonOlder
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  capstone,
+  filebytes,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,13 +28,9 @@ buildPythonPackage rec {
     filebytes
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ropper"
-  ];
+  pythonImportsCheck = [ "ropper" ];
 
   meta = with lib; {
     description = "Show information about files in different file formats";
diff --git a/pkgs/development/python-modules/rotary-embedding-torch/default.nix b/pkgs/development/python-modules/rotary-embedding-torch/default.nix
index a04262e401735..3724cb4adedde 100644
--- a/pkgs/development/python-modules/rotary-embedding-torch/default.nix
+++ b/pkgs/development/python-modules/rotary-embedding-torch/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# build-system
-, setuptools
-, wheel
-
-# dependencies
-, beartype
-, einops
-, torch
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+  wheel,
+
+  # dependencies
+  beartype,
+  einops,
+  torch,
 }:
 
 buildPythonPackage rec {
   pname = "rotary-embedding-torch";
-  version = "0.5.3";
+  version = "0.6.2";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "lucidrains";
     repo = "rotary-embedding-torch";
     rev = "refs/tags/${version}";
-    hash = "sha256-CCz/va5oydgU1JRDHKooRezbDbeGZHtD8Zy6fWJ2uRg=";
+    hash = "sha256-AR/zQFH0uvPrCp61XLiRBiAO3ZnD4jVaDXN00hXDlnI=";
   };
 
   nativeBuildInputs = [
@@ -35,9 +36,7 @@ buildPythonPackage rec {
     torch
   ];
 
-  pythonImportsCheck = [
-    "rotary_embedding_torch"
-  ];
+  pythonImportsCheck = [ "rotary_embedding_torch" ];
 
   doCheck = false; # no tests
 
diff --git a/pkgs/development/python-modules/rouge-score/default.nix b/pkgs/development/python-modules/rouge-score/default.nix
index 09d2bcc1dc81d..a3bd05b8a5c0d 100644
--- a/pkgs/development/python-modules/rouge-score/default.nix
+++ b/pkgs/development/python-modules/rouge-score/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, fetchPypi
-, fetchFromGitHub
-, python
-, buildPythonPackage
-, absl-py
-, nltk
-, numpy
-, six
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  fetchFromGitHub,
+  python,
+  buildPythonPackage,
+  absl-py,
+  nltk,
+  numpy,
+  six,
+  pytestCheckHook,
+  pythonOlder,
 }:
 let
   testdata = fetchFromGitHub {
@@ -18,7 +19,8 @@ let
     rev = "1d4d2f1aa6f2883a790d2ae46a6ee8ab150d8f31";
     hash = "sha256-ojqk6U2caS7Xz4iGUC9aQVHrKb2QNvMlPuQAL/jJat0=";
   };
-in buildPythonPackage rec {
+in
+buildPythonPackage rec {
   pname = "rouge-score";
   version = "0.1.2";
   format = "setuptools";
@@ -37,7 +39,12 @@ in buildPythonPackage rec {
       --replace 'os.path.join(os.path.dirname(__file__), "testdata")' '"${testdata}/rouge/testdata/"'
   '';
 
-  propagatedBuildInputs = [ absl-py nltk numpy six ];
+  propagatedBuildInputs = [
+    absl-py
+    nltk
+    numpy
+    six
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/routeros-api/default.nix b/pkgs/development/python-modules/routeros-api/default.nix
index 52bc4295a89f6..2d6208ce27b1e 100644
--- a/pkgs/development/python-modules/routeros-api/default.nix
+++ b/pkgs/development/python-modules/routeros-api/default.nix
@@ -1,36 +1,41 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, six
-, mock
-, tox
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  mock,
+  setuptools,
+  tox,
 }:
 
 buildPythonPackage rec {
   pname = "routeros-api";
-  version = "0.17.0";
-  format = "setuptools";
+  version = "0.18.1";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
 
-  # N.B. The version published on PyPI is missing tests.
   src = fetchFromGitHub {
     owner = "socialwifi";
-    repo = pname;
-    rev = version;
-    sha256 = "wpIfeYZ1w/yoNCHLYFVjn0O4Rb+N5lfvYzhGuN+HDTA=";
+    repo = "routeros-api";
+    rev = "refs/tags/${version}";
+    hash = "sha256-6IpoByG3YhHh2dPS18ufaoI1vzTZBsZa9WNHS/fImrg=";
   };
 
+  build-system = [ setuptools ];
+
   nativeCheckInputs = [
     mock
     tox
   ];
 
-  propagatedBuildInputs = [ six ];
+  pythonImportsCheck = [ "routeros_api" ];
 
   meta = with lib; {
-    description = "Python API to RouterBoard devices produced by MikroTik.";
+    description = "Python API to RouterBoard devices produced by MikroTik";
     homepage = "https://github.com/socialwifi/RouterOS-api";
+    changelog = "https://github.com/socialwifi/RouterOS-api/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ quentin ];
-    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/python-modules/routes/default.nix b/pkgs/development/python-modules/routes/default.nix
index 5e639b557d40f..153aac57546ce 100644
--- a/pkgs/development/python-modules/routes/default.nix
+++ b/pkgs/development/python-modules/routes/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, repoze-lru
-, six
-, soupsieve
-, webob
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  repoze-lru,
+  six,
+  soupsieve,
+  webob,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,12 @@ buildPythonPackage rec {
     sha256 = "b6346459a15f0cbab01a45a90c3d25caf980d4733d628b4cc1952b865125d053";
   };
 
-  propagatedBuildInputs = [ repoze-lru six soupsieve webob ];
+  propagatedBuildInputs = [
+    repoze-lru
+    six
+    soupsieve
+    webob
+  ];
 
   # incompatible with latest soupsieve
   doCheck = false;
diff --git a/pkgs/development/python-modules/rova/default.nix b/pkgs/development/python-modules/rova/default.nix
index 32c0c97b3494e..d69947e24575d 100644
--- a/pkgs/development/python-modules/rova/default.nix
+++ b/pkgs/development/python-modules/rova/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,20 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-y73Vf/E2xDy+2vnvZEllRUgsDfX33Q7AsL/UY2pR1sI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "rova"
-  ];
+  pythonImportsCheck = [ "rova" ];
 
   meta = with lib; {
     description = "Module to access for ROVA calendars";
diff --git a/pkgs/development/python-modules/rowan/default.nix b/pkgs/development/python-modules/rowan/default.nix
new file mode 100644
index 0000000000000..d8fe055a99387
--- /dev/null
+++ b/pkgs/development/python-modules/rowan/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, pytestCheckHook
+, scipy
+, numpy
+}:
+
+buildPythonPackage rec {
+  pname = "rowan";
+  version = "1.3.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "glotzerlab";
+    repo = "rowan";
+    rev = "v${version}";
+    hash = "sha256-klIqyX04w1xYmYtAbLF5jwpcJ83oKOaENboxyCL70EY=";
+  };
+
+  nativeBuildInputs = [
+    setuptools
+  ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    scipy
+  ];
+
+  propagatedBuildInputs = [
+    numpy
+  ];
+
+  pythonImportsCheck = [ "rowan" ];
+
+  meta = with lib; {
+    description = "Python package for working with quaternions";
+    homepage = "https://github.com/glotzerlab/rowan";
+    changelog = "https://github.com/glotzerlab/rowan/blob/${src.rev}/ChangeLog.rst";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/rpcq/default.nix b/pkgs/development/python-modules/rpcq/default.nix
index 42643ca748261..63b90d423dd0a 100644
--- a/pkgs/development/python-modules/rpcq/default.nix
+++ b/pkgs/development/python-modules/rpcq/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, msgpack
-, numpy
-, pytest-asyncio
-, pytestCheckHook
-, python-rapidjson
-, pythonOlder
-, pyzmq
-, ruamel-yaml
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  msgpack,
+  numpy,
+  pytest-asyncio,
+  pytestCheckHook,
+  python-rapidjson,
+  pythonOlder,
+  pyzmq,
+  ruamel-yaml,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
       --replace "msgpack>=0.6,<1.0" "msgpack"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     msgpack
@@ -54,12 +53,10 @@ buildPythonPackage rec {
     "rpcq/test/test_spec.py"
   ];
 
-  pythonImportsCheck = [
-    "rpcq"
-  ];
+  pythonImportsCheck = [ "rpcq" ];
 
   meta = with lib; {
-    description = "The RPC framework and message specification for rigetti Quantum Cloud services";
+    description = "RPC framework and message specification for rigetti Quantum Cloud services";
     homepage = "https://github.com/rigetti/rpcq";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/rpdb/default.nix b/pkgs/development/python-modules/rpdb/default.nix
index 7b3fb288f26ce..ae689da1474ea 100644
--- a/pkgs/development/python-modules/rpdb/default.nix
+++ b/pkgs/development/python-modules/rpdb/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -18,5 +19,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/tamentis/rpdb";
     license = licenses.bsd2;
   };
-
 }
diff --git a/pkgs/development/python-modules/rpds-py/default.nix b/pkgs/development/python-modules/rpds-py/default.nix
index 76798ccfc397c..3b67477598679 100644
--- a/pkgs/development/python-modules/rpds-py/default.nix
+++ b/pkgs/development/python-modules/rpds-py/default.nix
@@ -1,18 +1,19 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, cargo
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, rustc
-, rustPlatform
-, libiconv
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  cargo,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  rustc,
+  rustPlatform,
+  libiconv,
 }:
 
 buildPythonPackage rec {
   pname = "rpds-py";
-  version = "0.17.1";
+  version = "0.18.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -20,13 +21,13 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "rpds_py";
     inherit version;
-    hash = "sha256-AhCyZo8kwHgwcmC/iL2snW8Qk2Nd9RI3ib/uTY1/yOc=";
+    hash = "sha256-3Ei0edVAdwyBH70eubortmlRhj5Ejv7C4sECYlMo6S8=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-sFutrKLa2ISxtUN7hmw2P02nl4SM6Hn4yj1kkXrNWmI=";
+    hash = "sha256-caNEmU3K5COYa/UImE4BZYaFTc3Csi3WmnBSbFN3Yn8=";
   };
 
   nativeBuildInputs = [
@@ -36,17 +37,11 @@ buildPythonPackage rec {
     rustc
   ];
 
-  buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
-    libiconv
-  ];
+  buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "rpds"
-  ];
+  pythonImportsCheck = [ "rpds" ];
 
   meta = with lib; {
     description = "Python bindings to Rust's persistent data structures (rpds";
diff --git a/pkgs/development/python-modules/rpi-bad-power/default.nix b/pkgs/development/python-modules/rpi-bad-power/default.nix
index 5a73ee4a1bf1f..00e7830fbd7c8 100644
--- a/pkgs/development/python-modules/rpi-bad-power/default.nix
+++ b/pkgs/development/python-modules/rpi-bad-power/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
 }:
 
 let
@@ -20,17 +21,11 @@ buildPythonPackage {
     hash = "sha256:1yvfz28blq4fdnn614n985vbs5hcw1gm3i9am53k410sfs7ilvkk";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "rpi_bad_power"
-  ];
+  pythonImportsCheck = [ "rpi_bad_power" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Python library to detect bad power supply on Raspberry Pi";
diff --git a/pkgs/development/python-modules/rpi-gpio/default.nix b/pkgs/development/python-modules/rpi-gpio/default.nix
index a045744d122ed..569e8cd07c0c7 100644
--- a/pkgs/development/python-modules/rpi-gpio/default.nix
+++ b/pkgs/development/python-modules/rpi-gpio/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "rpi-gpio";
diff --git a/pkgs/development/python-modules/rpi-gpio2/default.nix b/pkgs/development/python-modules/rpi-gpio2/default.nix
deleted file mode 100644
index 2836cd7e3703a..0000000000000
--- a/pkgs/development/python-modules/rpi-gpio2/default.nix
+++ /dev/null
@@ -1,31 +0,0 @@
-{ lib, libgpiod, buildPythonPackage, fetchFromGitHub }:
-
-buildPythonPackage rec {
-  pname = "rpi-gpio2";
-  version = "0.4.0";
-  format = "setuptools";
-
-  # PyPi source does not work for some reason
-  src = fetchFromGitHub {
-    owner = "underground-software";
-    repo = "RPi.GPIO2";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-CNnej67yTh3C8n4cCA7NW97rlfIDrrlepRNDkv+BUeY=";
-  };
-
-  propagatedBuildInputs = [
-    libgpiod
-  ];
-
-  # Disable checks because they need to run on the specific platform
-  doCheck = false;
-
-  meta = with lib; {
-    homepage = "https://github.com/underground-software/RPi.GPIO2";
-    description = ''
-      Compatibility layer between RPi.GPIO syntax and libgpiod semantics
-    '';
-    license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ onny ];
-  };
-}
diff --git a/pkgs/development/python-modules/rplcd/default.nix b/pkgs/development/python-modules/rplcd/default.nix
index e521523ba697b..899dc8c5c31ee 100644
--- a/pkgs/development/python-modules/rplcd/default.nix
+++ b/pkgs/development/python-modules/rplcd/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "rplcd";
diff --git a/pkgs/development/python-modules/rply/default.nix b/pkgs/development/python-modules/rply/default.nix
index ff42e93f95600..037bbca05e522 100644
--- a/pkgs/development/python-modules/rply/default.nix
+++ b/pkgs/development/python-modules/rply/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, appdirs
-, py
-, pytestCheckHook
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  appdirs,
+  py,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-5uINDCX4Jr4bSSwqBjvkS3f5wTMnZvsRGq1DeCw8Y+M=";
   };
 
-  propagatedBuildInputs = [
-    appdirs
-  ];
+  propagatedBuildInputs = [ appdirs ];
 
   nativeCheckInputs = [
     py
@@ -32,7 +31,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A python Lex/Yacc that works with RPython";
+    description = "Python Lex/Yacc that works with RPython";
     homepage = "https://github.com/alex/rply";
     license = licenses.bsd3;
     maintainers = with maintainers; [ nixy ];
diff --git a/pkgs/development/python-modules/rpmfile/default.nix b/pkgs/development/python-modules/rpmfile/default.nix
index 89401e4ac6076..bec7009ae86f6 100644
--- a/pkgs/development/python-modules/rpmfile/default.nix
+++ b/pkgs/development/python-modules/rpmfile/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
 }:
 buildPythonPackage rec {
   pname = "rpmfile";
@@ -16,13 +17,9 @@ buildPythonPackage rec {
   # Tests access the internet
   doCheck = false;
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  pythonImportsCheck = [
-    "rpmfile"
-  ];
+  pythonImportsCheck = [ "rpmfile" ];
 
   meta = with lib; {
     description = "Read rpm archive files";
diff --git a/pkgs/development/python-modules/rpmfluff/default.nix b/pkgs/development/python-modules/rpmfluff/default.nix
index 2d8a45fd102fd..2b60f24e7d396 100644
--- a/pkgs/development/python-modules/rpmfluff/default.nix
+++ b/pkgs/development/python-modules/rpmfluff/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchurl
-, glibcLocales
+{
+  lib,
+  buildPythonPackage,
+  fetchurl,
+  glibcLocales,
 }:
 
 buildPythonPackage rec {
@@ -10,11 +11,11 @@ buildPythonPackage rec {
   format = "setuptools";
 
   src = fetchurl {
-  url = "https://releases.pagure.org/${pname}/${pname}-${version}.tar.xz";
+    url = "https://releases.pagure.org/${pname}/${pname}-${version}.tar.xz";
     sha256 = "19vnlzma8b0aghdiixk0q3wc10y6306hsnic0qvswaaiki94fss1";
   };
 
-  LC_ALL="en_US.utf-8";
+  LC_ALL = "en_US.utf-8";
   buildInputs = [ glibcLocales ];
 
   meta = with lib; {
@@ -23,5 +24,4 @@ buildPythonPackage rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ disassembler ];
   };
-
 }
diff --git a/pkgs/development/python-modules/rpy2/default.nix b/pkgs/development/python-modules/rpy2/default.nix
index 2f3e66b76ba19..1fd58cb565fe1 100644
--- a/pkgs/development/python-modules/rpy2/default.nix
+++ b/pkgs/development/python-modules/rpy2/default.nix
@@ -1,58 +1,62 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, isPyPy
-, R
-, rWrapper
-, rPackages
-, pcre
-, xz
-, bzip2
-, zlib
-, icu
-, ipython
-, jinja2
-, pytz
-, pandas
-, numpy
-, cffi
-, tzlocal
-, simplegeneric
-, pytestCheckHook
-, extraRPackages ? []
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  R,
+  libdeflate,
+  rWrapper,
+  rPackages,
+  pcre,
+  xz,
+  bzip2,
+  zlib,
+  icu,
+  ipython,
+  jinja2,
+  pytz,
+  pandas,
+  numpy,
+  cffi,
+  tzlocal,
+  simplegeneric,
+  pytestCheckHook,
+  extraRPackages ? [ ],
 }:
 
 buildPythonPackage rec {
-    version = "3.5.16";
-    format = "setuptools";
-    pname = "rpy2";
+  version = "3.5.16";
+  format = "setuptools";
+  pname = "rpy2";
 
-    disabled = isPyPy;
-    src = fetchPypi {
-      inherit version pname;
-      hash = "sha256-g34vdFg2WKXEwzl2GnP5Q08z75ztPjDGTadWIWXCgBs=";
-    };
+  disabled = isPyPy;
+  src = fetchPypi {
+    inherit version pname;
+    hash = "sha256-g34vdFg2WKXEwzl2GnP5Q08z75ztPjDGTadWIWXCgBs=";
+  };
 
-    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
-    ];
+  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' ""
-    '';
+  postPatch = ''
+    substituteInPlace 'rpy2/rinterface_lib/embedded.py' --replace '@NIX_R_LIBS_SITE@' "$R_LIBS_SITE"
+    substituteInPlace 'requirements.txt' --replace 'pytest' ""
+  '';
 
-    buildInputs = [
+  buildInputs =
+    [
       pcre
       xz
       bzip2
       zlib
       icu
-    ] ++ (with rPackages; [
+      libdeflate
+    ]
+    ++ (with rPackages; [
       # packages expected by the test framework
       ggplot2
       dplyr
@@ -64,34 +68,41 @@ buildPythonPackage rec {
       lazyeval
       lme4
       tidyr
-    ]) ++ extraRPackages ++ rWrapper.recommendedPackages;
+    ])
+    ++ extraRPackages
+    ++ rWrapper.recommendedPackages;
 
-    nativeBuildInputs = [
-      R # needed at setup time to detect R_HOME (alternatively set R_HOME explicitly)
-    ];
+  nativeBuildInputs = [
+    R # needed at setup time to detect R_HOME (alternatively set R_HOME explicitly)
+  ];
 
-    propagatedBuildInputs = [
-      ipython
-      jinja2
-      pytz
-      pandas
-      numpy
-      cffi
-      tzlocal
-      simplegeneric
-    ];
+  propagatedBuildInputs = [
+    ipython
+    jinja2
+    pytz
+    pandas
+    numpy
+    cffi
+    tzlocal
+    simplegeneric
+  ];
 
-    doCheck = !stdenv.isDarwin;
+  doCheck = !stdenv.isDarwin;
 
-    nativeCheckInputs = [
-      pytestCheckHook
-    ];
+  # https://github.com/rpy2/rpy2/issues/1111
+  disabledTests = [
+    "test_parse_incomplete_error"
+    "test_parse_error"
+    "test_parse_error_when_evaluting"
+  ];
 
-    meta = {
-      homepage = "https://rpy2.github.io/";
-      description = "Python interface to R";
-      license = lib.licenses.gpl2Plus;
-      platforms = lib.platforms.unix;
-      maintainers = with lib.maintainers; [ joelmo ];
-    };
-  }
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  meta = {
+    homepage = "https://rpy2.github.io/";
+    description = "Python interface to R";
+    license = lib.licenses.gpl2Plus;
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [ joelmo ];
+  };
+}
diff --git a/pkgs/development/python-modules/rpyc/default.nix b/pkgs/development/python-modules/rpyc/default.nix
index 73c40ee23f79f..a9873de906320 100644
--- a/pkgs/development/python-modules/rpyc/default.nix
+++ b/pkgs/development/python-modules/rpyc/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, plumbum
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  plumbum,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,17 +23,11 @@ buildPythonPackage rec {
     hash = "sha256-BvXEXZlVbOmKBwnSBCDksUkbT7JPcMX48KZe/Gd5Y8Q=";
   };
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
-  dependencies = [
-    plumbum
-  ];
+  dependencies = [ plumbum ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export PYTHONPATH=$(pwd)/tests:$PYTHONPATH
@@ -62,9 +57,7 @@ buildPythonPackage rec {
     "tests/test_magic.py"
   ];
 
-  pythonImportsCheck = [
-    "rpyc"
-  ];
+  pythonImportsCheck = [ "rpyc" ];
 
   doCheck = !stdenv.isDarwin;
 
diff --git a/pkgs/development/python-modules/rpyc4/default.nix b/pkgs/development/python-modules/rpyc4/default.nix
index c883ebef4dc67..09842a0045d6e 100644
--- a/pkgs/development/python-modules/rpyc4/default.nix
+++ b/pkgs/development/python-modules/rpyc4/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, hatchling
-, plumbum
-, pytestCheckHook
-, pythonOlder
-, pythonAtLeast
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  hatchling,
+  plumbum,
+  pytestCheckHook,
+  pythonOlder,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -33,13 +34,9 @@ buildPythonPackage rec {
     hatchling
   ];
 
-  propagatedBuildInputs = [
-    plumbum
-  ];
+  propagatedBuildInputs = [ plumbum ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Disable tests that requires network access
@@ -58,9 +55,7 @@ buildPythonPackage rec {
     "tests/test_teleportation.py"
   ];
 
-  pythonImportsCheck = [
-    "rpyc"
-  ];
+  pythonImportsCheck = [ "rpyc" ];
 
   doCheck = !stdenv.isDarwin;
 
diff --git a/pkgs/development/python-modules/rq/default.nix b/pkgs/development/python-modules/rq/default.nix
index 7eb455a6dc82c..c4e408cced64b 100644
--- a/pkgs/development/python-modules/rq/default.nix
+++ b/pkgs/development/python-modules/rq/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
 
-# build-system
-, hatchling
+  # build-system
+  hatchling,
 
-# dependencies
-, click
-, redis
+  # dependencies
+  click,
+  redis,
 
-# tests
-, psutil
-, pytestCheckHook
-, redis-server
-, sentry-sdk
+  # tests
+  psutil,
+  pytestCheckHook,
+  redis-server,
+  sentry-sdk,
 }:
 
 buildPythonPackage rec {
   pname = "rq";
-  version = "1.16.1";
+  version = "1.16.2";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,12 +30,10 @@ buildPythonPackage rec {
     owner = "rq";
     repo = "rq";
     rev = "refs/tags/v${version}";
-    hash = "sha256-1E7jPTSQCjuKZVFL4uZqL1WZHnxWSLTNcnpyvfHz7oY=";
+    hash = "sha256-8uhCV4aJNbY273jOa9D5OlgEG1w3hXVncClKQTO9Pyk=";
   };
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   dependencies = [
     click
@@ -47,24 +46,23 @@ buildPythonPackage rec {
     sentry-sdk
   ];
 
-  preCheck = lib.optionalString stdenv.isLinux ''
+  preCheck = ''
     PATH=$out/bin:$PATH
     ${redis-server}/bin/redis-server &
-    REDIS_PID=$!
   '';
 
-  postCheck = lib.optionalString stdenv.isLinux ''
-    kill $REDIS_PID
+  postCheck = ''
+    kill %%
   '';
 
+  __darwinAllowLocalNetworking = true;
+
   disabledTests = [
     # https://github.com/rq/rq/commit/fd261d5d8fc0fe604fa396ee6b9c9b7a7bb4142f
     "test_clean_large_registry"
   ];
 
-  pythonImportsCheck = [
-    "rq"
-  ];
+  pythonImportsCheck = [ "rq" ];
 
   meta = with lib; {
     description = "Library for creating background jobs and processing them";
@@ -74,4 +72,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ mrmebelman ];
   };
 }
-
diff --git a/pkgs/development/python-modules/rsa/default.nix b/pkgs/development/python-modules/rsa/default.nix
index 792024166d977..e6ae0e7fd61eb 100644
--- a/pkgs/development/python-modules/rsa/default.nix
+++ b/pkgs/development/python-modules/rsa/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pyasn1
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pyasn1,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "open('README.md')" "open('README.md',encoding='utf-8')"
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [ pyasn1 ];
 
@@ -35,17 +34,13 @@ buildPythonPackage rec {
     sed -i '/addopts/d' tox.ini
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTestPaths = [
-    "tests/test_mypy.py"
-  ];
+  disabledTestPaths = [ "tests/test_mypy.py" ];
 
   meta = with lib; {
     homepage = "https://stuvel.eu/rsa";
     license = licenses.asl20;
-    description = "A pure-Python RSA implementation";
+    description = "Pure-Python RSA implementation";
   };
 }
diff --git a/pkgs/development/python-modules/rsskey/default.nix b/pkgs/development/python-modules/rsskey/default.nix
index 61cba286d1b11..e76744b1fb46e 100644
--- a/pkgs/development/python-modules/rsskey/default.nix
+++ b/pkgs/development/python-modules/rsskey/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, feedparser
-, httpx
-, loca
-, markdownify
-, trio
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  feedparser,
+  httpx,
+  loca,
+  markdownify,
+  trio,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-QedLuwd0ES2LWhZ72Cjh3+ZZ7HbRyNsyLN9lNFbY5dQ=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     feedparser
diff --git a/pkgs/development/python-modules/rst2ansi/default.nix b/pkgs/development/python-modules/rst2ansi/default.nix
index 4f1ca27137a27..c7b99f6bfd683 100644
--- a/pkgs/development/python-modules/rst2ansi/default.nix
+++ b/pkgs/development/python-modules/rst2ansi/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, docutils, }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  docutils,
+}:
 
 buildPythonPackage rec {
   pname = "rst2ansi";
@@ -13,7 +18,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ docutils ];
 
   meta = with lib; {
-    description = "A rst converter to ansi-decorated console output";
+    description = "Rst converter to ansi-decorated console output";
     mainProgram = "rst2ansi";
     homepage = "https://github.com/Snaipe/python-rst-to-ansi";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/rst2pdf/default.nix b/pkgs/development/python-modules/rst2pdf/default.nix
index f40da3a301f77..40225a9acb034 100644
--- a/pkgs/development/python-modules/rst2pdf/default.nix
+++ b/pkgs/development/python-modules/rst2pdf/default.nix
@@ -1,36 +1,42 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, setuptools-scm
-, wheel
-, docutils
-, importlib-metadata
-, jinja2
-, packaging
-, pygments
-, pyyaml
-, reportlab
-, smartypants
-, pillow
-, pytestCheckHook
-, pymupdf
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  installShellFiles,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  docutils,
+  importlib-metadata,
+  jinja2,
+  packaging,
+  pygments,
+  pyyaml,
+  reportlab,
+  smartypants,
+  pillow,
+  pytestCheckHook,
+  pymupdf,
+  sphinx,
 }:
 
 buildPythonPackage rec {
   pname = "rst2pdf";
-  version = "0.101";
+  version = "0.102";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-AF8FssEIFHmeY2oVrAPNe85pbmgKWO52yD6ycNNzTSg=";
+    hash = "sha256-NzAGJOlTpz7d3cuubyRjDvVGfCC+61jfZIrcUwhE9CU=";
   };
 
-  outputs = [ "out" "man" ];
+  outputs = [
+    "out"
+    "man"
+  ];
 
   nativeBuildInputs = [
+    installShellFiles
     setuptools
     setuptools-scm
     wheel
@@ -48,9 +54,7 @@ buildPythonPackage rec {
     pillow
   ];
 
-  pythonImportsCheck = [
-    "rst2pdf"
-  ];
+  pythonImportsCheck = [ "rst2pdf" ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -62,8 +66,8 @@ buildPythonPackage rec {
   doCheck = false;
 
   postInstall = ''
-    mkdir -p $man/share/man/man1/
-    ${docutils}/bin/rst2man.py doc/rst2pdf.rst $man/share/man/man1/rst2pdf.1
+    ${lib.getExe' docutils "rst2man"} doc/rst2pdf.rst rst2pdf.1
+    installManPage rst2pdf.1
   '';
 
   meta = with lib; {
@@ -72,6 +76,6 @@ buildPythonPackage rec {
     homepage = "https://rst2pdf.org/";
     changelog = "https://github.com/rst2pdf/rst2pdf/blob/${version}/CHANGES.rst";
     license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    maintainers = with maintainers; [ pyrox0 ];
   };
 }
diff --git a/pkgs/development/python-modules/rstr/default.nix b/pkgs/development/python-modules/rstr/default.nix
index 3c80a274ceaf6..7bf0eb244fb90 100644
--- a/pkgs/development/python-modules/rstr/default.nix
+++ b/pkgs/development/python-modules/rstr/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, setuptools-scm
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   meta = with lib; {
     description = "Python library to generate random strings";
@@ -34,4 +33,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ danc86 ];
   };
 }
-
diff --git a/pkgs/development/python-modules/rtfde/default.nix b/pkgs/development/python-modules/rtfde/default.nix
index 3b11adc34a1a1..fd49c3d124476 100644
--- a/pkgs/development/python-modules/rtfde/default.nix
+++ b/pkgs/development/python-modules/rtfde/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, lark
-, lxml
-, oletools
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lark,
+  lxml,
+  oletools,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
       --replace-fail "==" ">="
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     lark
@@ -43,9 +42,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "RTFDE"
-  ];
+  pythonImportsCheck = [ "RTFDE" ];
 
   meta = with lib; {
     description = "Library for extracting encapsulated HTML and plain text content from the RTF bodies";
diff --git a/pkgs/development/python-modules/rtfunicode/default.nix b/pkgs/development/python-modules/rtfunicode/default.nix
index 2de60bc6bef92..07d7ecc2ea8ca 100644
--- a/pkgs/development/python-modules/rtfunicode/default.nix
+++ b/pkgs/development/python-modules/rtfunicode/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, lib
-, fetchFromGitHub
-, unittestCheckHook
+{
+  buildPythonPackage,
+  lib,
+  fetchFromGitHub,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/rtmidi-python/default.nix b/pkgs/development/python-modules/rtmidi-python/default.nix
index 462207a2fea45..a700b4c411370 100644
--- a/pkgs/development/python-modules/rtmidi-python/default.nix
+++ b/pkgs/development/python-modules/rtmidi-python/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, cython_0
-, alsa-lib
-, CoreAudio
-, CoreMIDI
-, CoreServices
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  cython_0,
+  alsa-lib,
+  CoreAudio,
+  CoreMIDI,
+  CoreServices,
 }:
 
 buildPythonPackage rec {
@@ -24,22 +25,20 @@ buildPythonPackage rec {
   '';
 
   nativeBuildInputs = [ cython_0 ];
-  buildInputs = lib.optionals stdenv.isLinux [
-    alsa-lib
-  ] ++ lib.optionals stdenv.isDarwin [
-    CoreAudio
-    CoreMIDI
-    CoreServices
-  ];
+  buildInputs =
+    lib.optionals stdenv.isLinux [ alsa-lib ]
+    ++ lib.optionals stdenv.isDarwin [
+      CoreAudio
+      CoreMIDI
+      CoreServices
+    ];
 
   setupPyBuildFlags = [ "--from-cython" ];
 
   # package has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "rtmidi_python"
-  ];
+  pythonImportsCheck = [ "rtmidi_python" ];
 
   meta = with lib; {
     description = "Python wrapper for RtMidi";
diff --git a/pkgs/development/python-modules/rtmixer/default.nix b/pkgs/development/python-modules/rtmixer/default.nix
index 83d6198403773..0f8be5e13d201 100644
--- a/pkgs/development/python-modules/rtmixer/default.nix
+++ b/pkgs/development/python-modules/rtmixer/default.nix
@@ -1,12 +1,13 @@
-{ fetchFromGitHub
-, buildPythonPackage
-, isPy27
-, cython
-, portaudio
-, cffi
-, pa-ringbuffer
-, sounddevice
-, lib
+{
+  fetchFromGitHub,
+  buildPythonPackage,
+  isPy27,
+  cython,
+  portaudio,
+  cffi,
+  pa-ringbuffer,
+  sounddevice,
+  lib,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/rtoml/default.nix b/pkgs/development/python-modules/rtoml/default.nix
index 2ccec6d9e5b10..fe83ca2e32dc7 100644
--- a/pkgs/development/python-modules/rtoml/default.nix
+++ b/pkgs/development/python-modules/rtoml/default.nix
@@ -1,19 +1,19 @@
-{ lib
-, buildPythonPackage
-, cargo
-, fetchFromGitHub
-, libiconv
-, pytestCheckHook
-, pythonOlder
-, rustPlatform
-, rustc
-, setuptools-rust
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  libiconv,
+  dirty-equals,
+  pytest-benchmark,
+  pytestCheckHook,
+  pythonOlder,
+  rustPlatform,
 }:
 
 buildPythonPackage rec {
   pname = "rtoml";
-  version = "0.8";
-  format = "setuptools";
+  version = "0.10";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -21,36 +21,39 @@ buildPythonPackage rec {
     owner = "samuelcolvin";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-tvX4KcQGw0khBjEXVFmkhsVyAkdr2Bgm6IfD1yGZ37c=";
+    hash = "sha256-1movtKMQkQ6PEpKpSkK0Oy4AV0ee7XrS0P9m6QwZTaM=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-KcF3Z71S7ZNZicViqwpClfT736nYYbKcKWylOP+S3HI=";
+    hash = "sha256-BWcOIZMl4yHxxKxCn6Qh69MlMdz3REp3izN0A1eFX3o=";
   };
 
-  nativeBuildInputs = with rustPlatform; [
-    setuptools-rust
-    rustc
-    cargo
-    rustPlatform.cargoSetupHook
+  build-system = with rustPlatform; [
+    cargoSetupHook
+    maturinBuildHook
   ];
 
-  buildInputs = [
-    libiconv
-  ];
+  buildInputs = [ libiconv ];
 
-  pythonImportsCheck = [
-    "rtoml"
-  ];
+  pythonImportsCheck = [ "rtoml" ];
 
   nativeCheckInputs = [
+    dirty-equals
+    pytest-benchmark
     pytestCheckHook
   ];
 
+  pytestFlagsArray = [ "--benchmark-disable" ];
+
+  disabledTests = [
+    # TypeError: loads() got an unexpected keyword argument 'name'
+    "test_load_data_toml"
+  ];
+
   preCheck = ''
-    cd tests
+    rm -rf rtoml
   '';
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/rtp/default.nix b/pkgs/development/python-modules/rtp/default.nix
index aef1171d8d47b..dbafa102ea1d6 100644
--- a/pkgs/development/python-modules/rtp/default.nix
+++ b/pkgs/development/python-modules/rtp/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python3
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python3,
 
   # nativeCheckInputs
-, hypothesis
-, unittestCheckHook
+  hypothesis,
+  unittestCheckHook,
 
 }:
 
@@ -24,15 +25,16 @@ buildPythonPackage rec {
     unittestCheckHook
   ];
 
-  unittestFlagsArray = [ "-s" "tests" "-v" ];
-
-  pythonImportsCheck = [
-    "rtp"
+  unittestFlagsArray = [
+    "-s"
+    "tests"
+    "-v"
   ];
 
+  pythonImportsCheck = [ "rtp" ];
 
   meta = with lib; {
-    description = "A library for decoding/encoding rtp packets";
+    description = "Library for decoding/encoding rtp packets";
     homepage = "https://github.com/bbc/rd-apmm-python-lib-rtp";
     license = licenses.asl20;
     maintainers = with maintainers; [ fleaz ];
diff --git a/pkgs/development/python-modules/rtree/default.nix b/pkgs/development/python-modules/rtree/default.nix
index ff4b3b85e9cf0..fee90dff358f1 100644
--- a/pkgs/development/python-modules/rtree/default.nix
+++ b/pkgs/development/python-modules/rtree/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, libspatialindex
-, numpy
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  libspatialindex,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/rtslib/default.nix b/pkgs/development/python-modules/rtslib/default.nix
index 968a33607d920..d4643c8839c1c 100644
--- a/pkgs/development/python-modules/rtslib/default.nix
+++ b/pkgs/development/python-modules/rtslib/default.nix
@@ -1,4 +1,11 @@
-{ lib, fetchFromGitHub, buildPythonPackage, six, pyudev, pygobject3 }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  six,
+  pyudev,
+  pygobject3,
+}:
 
 buildPythonPackage rec {
   pname = "rtslib";
@@ -12,12 +19,17 @@ buildPythonPackage rec {
     hash = "sha256-z9fpSVyv96ZoJaP0ch2A3bX/o/K23ooEpxa/OAhY6Z4=";
   };
 
-  propagatedBuildInputs = [ six pyudev pygobject3 ];
+  propagatedBuildInputs = [
+    six
+    pyudev
+    pygobject3
+  ];
 
   meta = with lib; {
-    description = "A Python object API for managing the Linux LIO kernel target";
+    description = "Python object API for managing the Linux LIO kernel target";
     mainProgram = "targetctl";
     homepage = "https://github.com/open-iscsi/rtslib-fb";
     license = licenses.asl20;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/python-modules/rtsp-to-webrtc/default.nix b/pkgs/development/python-modules/rtsp-to-webrtc/default.nix
index 812a4fc1ba1fa..5686b12f4492c 100644
--- a/pkgs/development/python-modules/rtsp-to-webrtc/default.nix
+++ b/pkgs/development/python-modules/rtsp-to-webrtc/default.nix
@@ -1,42 +1,43 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "rtsp-to-webrtc";
-  version = "0.5.1";
-  format = "setuptools";
+  version = "0.6.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "allenporter";
     repo = "rtsp-to-webrtc-client";
-    rev = version;
-    hash = "sha256-miMBN/8IO4v03mMoclCa3GFl6HCS3Sh6z2HOQ39MRZY=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-D022d2CDKtHTuvEGo8GkOGWHi5sV4g6UwNB9xS2xxIs=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ aiohttp ];
 
   nativeCheckInputs = [
     pytest-aiohttp
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "rtsp_to_webrtc"
-  ];
+  pythonImportsCheck = [ "rtsp_to_webrtc" ];
 
   meta = with lib; {
     description = "Module for RTSPtoWeb and RTSPtoWebRTC";
     homepage = "https://github.com/allenporter/rtsp-to-webrtc-client";
+    changelog = "https://github.com/allenporter/rtsp-to-webrtc-client/releases/tag/${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/ruamel-base/default.nix b/pkgs/development/python-modules/ruamel-base/default.nix
index a3906794bd845..65e96e71faa8b 100644
--- a/pkgs/development/python-modules/ruamel-base/default.nix
+++ b/pkgs/development/python-modules/ruamel-base/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/ruamel-yaml-clib/default.nix b/pkgs/development/python-modules/ruamel-yaml-clib/default.nix
index a7a362bcf4ab6..1f898ed67073e 100644
--- a/pkgs/development/python-modules/ruamel-yaml-clib/default.nix
+++ b/pkgs/development/python-modules/ruamel-yaml-clib/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchhg
-, cython
+{
+  lib,
+  buildPythonPackage,
+  fetchhg,
+  cython,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/ruamel-yaml/default.nix b/pkgs/development/python-modules/ruamel-yaml/default.nix
index 4ac0d552ebdf4..cfd009e7fd047 100644
--- a/pkgs/development/python-modules/ruamel-yaml/default.nix
+++ b/pkgs/development/python-modules/ruamel-yaml/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, ruamel-base
-, ruamel-yaml-clib
-, isPyPy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  ruamel-base,
+  ruamel-yaml-clib,
+  isPyPy,
 }:
 
 buildPythonPackage rec {
@@ -18,15 +19,12 @@ buildPythonPackage rec {
     hash = "sha256-iyfmohfnhsb75WNNjz8RvGPg+A9qWJDyiGPZxFqsMRs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Tests use relative paths
   doCheck = false;
 
-  propagatedBuildInputs = [ ruamel-base ]
-    ++ lib.optional (!isPyPy) ruamel-yaml-clib;
+  propagatedBuildInputs = [ ruamel-base ] ++ lib.optional (!isPyPy) ruamel-yaml-clib;
 
   pythonImportsCheck = [ "ruamel.yaml" ];
 
diff --git a/pkgs/development/python-modules/rubicon-objc/default.nix b/pkgs/development/python-modules/rubicon-objc/default.nix
index f12f08e0ad47f..9b558e9a9fec4 100644
--- a/pkgs/development/python-modules/rubicon-objc/default.nix
+++ b/pkgs/development/python-modules/rubicon-objc/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, darwin
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, setuptools-scm
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  darwin,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -37,22 +38,16 @@ buildPythonPackage rec {
     make -C tests/objc
   '';
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  checkInputs = [
-    darwin.apple_sdk.frameworks.Foundation
-  ];
+  checkInputs = [ darwin.apple_sdk.frameworks.Foundation ];
 
-  pythonImportsCheck = [
-    "rubicon.objc"
-  ];
+  pythonImportsCheck = [ "rubicon.objc" ];
 
   __darwinAllowLocalNetworking = true;
 
   meta = {
-    description = "A bridge interface between Python and Objective-C";
+    description = "Bridge interface between Python and Objective-C";
     homepage = "https://github.com/beeware/rubicon-objc/";
     changelog = "https://github.com/beeware/rubicon-objc/releases/tag/v${version}";
     license = lib.licenses.bsd3;
diff --git a/pkgs/development/python-modules/rubymarshal/default.nix b/pkgs/development/python-modules/rubymarshal/default.nix
index 08303c74ae717..d2b485ee4f061 100644
--- a/pkgs/development/python-modules/rubymarshal/default.nix
+++ b/pkgs/development/python-modules/rubymarshal/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, hypothesis, isPy3k }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hypothesis,
+  isPy3k,
+}:
 
 buildPythonPackage rec {
   pname = "rubymarshal";
diff --git a/pkgs/development/python-modules/ruff-api/Cargo.lock b/pkgs/development/python-modules/ruff-api/Cargo.lock
new file mode 100644
index 0000000000000..15e1d2e799389
--- /dev/null
+++ b/pkgs/development/python-modules/ruff-api/Cargo.lock
@@ -0,0 +1,2932 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "Inflector"
+version = "0.11.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "android-tzdata"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e999941b234f3131b00bc13c22d06e8c5ff726d1b6318ac7eb276997bbb4fef0"
+
+[[package]]
+name = "android_system_properties"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "annotate-snippets"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c7021ce4924a3f25f802b2cccd1af585e39ea1a363a1aa2e72afe54b67a3a7a7"
+
+[[package]]
+name = "annotate-snippets"
+version = "0.9.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ccaf7e9dfbb6ab22c82e473cd1a8a7bd313c19a5b7e40970f3d89ef5a5c9e81e"
+dependencies = [
+ "unicode-width",
+ "yansi-term",
+]
+
+[[package]]
+name = "anstream"
+version = "0.6.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d96bd03f33fe50a863e394ee9718a706f988b9079b20c3784fb726e7678b62fb"
+dependencies = [
+ "anstyle",
+ "anstyle-parse",
+ "anstyle-query",
+ "anstyle-wincon",
+ "colorchoice",
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8901269c6307e8d93993578286ac0edf7f195079ffff5ebdeea6a59ffb7e36bc"
+
+[[package]]
+name = "anstyle-parse"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c75ac65da39e5fe5ab759307499ddad880d724eed2f6ce5b5e8a26f4f387928c"
+dependencies = [
+ "utf8parse",
+]
+
+[[package]]
+name = "anstyle-query"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e28923312444cdd728e4738b3f9c9cac739500909bb3d3c94b43551b16517648"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anstyle-wincon"
+version = "3.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1cd54b81ec8d6180e24654d0b371ad22fc3dd083b6ff8ba325b72e00c87660a7"
+dependencies = [
+ "anstyle",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "anyhow"
+version = "1.0.82"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f538837af36e6f6a9be0faa67f9a314f8119e4e4b5867c6ab40ed60360142519"
+
+[[package]]
+name = "argfile"
+version = "0.1.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1287c4f82a41c5085e65ee337c7934d71ab43d5187740a81fb69129013f6a5f6"
+dependencies = [
+ "fs-err",
+ "os_str_bytes",
+]
+
+[[package]]
+name = "autocfg"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80"
+
+[[package]]
+name = "bincode"
+version = "1.3.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "bitflags"
+version = "1.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
+
+[[package]]
+name = "bitflags"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cf4b9d6a944f767f8e5e0db018570623c85f3d925ac718db4e06d0187adb21c1"
+
+[[package]]
+name = "bstr"
+version = "1.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "05efc5cfd9110c8416e471df0e96702d58690178e206e61b7173706673c93706"
+dependencies = [
+ "memchr",
+ "regex-automata 0.4.6",
+ "serde",
+]
+
+[[package]]
+name = "bumpalo"
+version = "3.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "79296716171880943b8470b5f8d03aa55eb2e645a4874bdbb28adb49162e012c"
+
+[[package]]
+name = "cachedir"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4703f3937077db8fa35bee3c8789343c1aec2585f0146f09d658d4ccc0e8d873"
+dependencies = [
+ "tempfile",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.96"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "065a29261d53ba54260972629f9ca6bffa69bac13cd1fed61420f7fa68b9f8bd"
+
+[[package]]
+name = "cfg-if"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
+
+[[package]]
+name = "cfg_aliases"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
+
+[[package]]
+name = "chic"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a5b5db619f3556839cb2223ae86ff3f9a09da2c5013be42bc9af08c9589bf70c"
+dependencies = [
+ "annotate-snippets 0.6.1",
+]
+
+[[package]]
+name = "chrono"
+version = "0.4.38"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a21f936df1771bf62b77f047b726c4625ff2e8aa607c01ec06e5a05bd8463401"
+dependencies = [
+ "android-tzdata",
+ "iana-time-zone",
+ "num-traits",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "clap"
+version = "4.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90bc066a67923782aa8515dbaea16946c5bcc5addbd668bb80af688e53e548a0"
+dependencies = [
+ "clap_builder",
+ "clap_derive",
+]
+
+[[package]]
+name = "clap_builder"
+version = "4.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae129e2e766ae0ec03484e609954119f123cc1fe650337e155d03b022f24f7b4"
+dependencies = [
+ "anstream",
+ "anstyle",
+ "clap_lex",
+ "strsim 0.11.1",
+ "terminal_size",
+]
+
+[[package]]
+name = "clap_complete"
+version = "4.5.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dd79504325bf38b10165b02e89b4347300f855f273c4cb30c4a3209e6583275e"
+dependencies = [
+ "clap",
+]
+
+[[package]]
+name = "clap_complete_command"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "183495371ea78d4c9ff638bfc6497d46fed2396e4f9c50aebc1278a4a9919a3d"
+dependencies = [
+ "clap",
+ "clap_complete",
+ "clap_complete_fig",
+ "clap_complete_nushell",
+]
+
+[[package]]
+name = "clap_complete_fig"
+version = "4.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54b3e65f91fabdd23cac3d57d39d5d938b4daabd070c335c006dccb866a61110"
+dependencies = [
+ "clap",
+ "clap_complete",
+]
+
+[[package]]
+name = "clap_complete_nushell"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d02bc8b1a18ee47c4d2eec3fb5ac034dc68ebea6125b1509e9ccdffcddce66e"
+dependencies = [
+ "clap",
+ "clap_complete",
+]
+
+[[package]]
+name = "clap_derive"
+version = "4.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "528131438037fd55894f62d6e9f068b8f45ac57ffa77517819645d10aed04f64"
+dependencies = [
+ "heck 0.5.0",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "clap_lex"
+version = "0.7.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "98cc8fbded0c607b7ba9dd60cd98df59af97e84d24e49c8557331cfc26d301ce"
+
+[[package]]
+name = "clearscreen"
+version = "3.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2f8c93eb5f77c9050c7750e14f13ef1033a40a0aac70c6371535b6763a01438c"
+dependencies = [
+ "nix",
+ "terminfo",
+ "thiserror",
+ "which",
+ "winapi",
+]
+
+[[package]]
+name = "colorchoice"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7"
+
+[[package]]
+name = "colored"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cbf2150cce219b664a8a70df7a1f933836724b503f8a413af9365b4dcc4d90b8"
+dependencies = [
+ "lazy_static",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "core-foundation-sys"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f"
+
+[[package]]
+name = "countme"
+version = "3.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7704b5fdd17b18ae31c4c1da5a2e0305a2bf17b5249300a9ee9ed7b72114c636"
+
+[[package]]
+name = "crossbeam"
+version = "0.8.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1137cd7e7fc0fb5d3c5a8678be38ec56e819125d8d7907411fe24ccb943faca8"
+dependencies = [
+ "crossbeam-channel",
+ "crossbeam-deque",
+ "crossbeam-epoch",
+ "crossbeam-queue",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-channel"
+version = "0.5.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab3db02a9c5b5121e1e42fbdb1aeb65f5e02624cc58c43f2884c6ccac0b82f95"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-deque"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d"
+dependencies = [
+ "crossbeam-epoch",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-epoch"
+version = "0.9.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-queue"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df0346b5d5e76ac2fe4e327c5fd1118d6be7c51dfb18f9b7922923f287471e35"
+dependencies = [
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "crossbeam-utils"
+version = "0.8.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345"
+
+[[package]]
+name = "crunchy"
+version = "0.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
+
+[[package]]
+name = "darling"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "54e36fcd13ed84ffdfda6f5be89b31287cbb80c439841fe69e04841435464391"
+dependencies = [
+ "darling_core",
+ "darling_macro",
+]
+
+[[package]]
+name = "darling_core"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c2cf1c23a687a1feeb728783b993c4e1ad83d99f351801977dd809b48d0a70f"
+dependencies = [
+ "fnv",
+ "ident_case",
+ "proc-macro2",
+ "quote",
+ "strsim 0.10.0",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "darling_macro"
+version = "0.20.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f"
+dependencies = [
+ "darling_core",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "dirs"
+version = "4.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059"
+dependencies = [
+ "dirs-sys 0.3.7",
+]
+
+[[package]]
+name = "dirs"
+version = "5.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225"
+dependencies = [
+ "dirs-sys 0.4.1",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.3.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6"
+dependencies = [
+ "libc",
+ "redox_users",
+ "winapi",
+]
+
+[[package]]
+name = "dirs-sys"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c"
+dependencies = [
+ "libc",
+ "option-ext",
+ "redox_users",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "drop_bomb"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bda8e21c04aca2ae33ffc2fd8c23134f3cac46db123ba97bd9d3f3b8a4a85e1"
+
+[[package]]
+name = "either"
+version = "1.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a47c1c47d2f5964e29c61246e81db715514cd532db6b5116a25ea3c03d6780a2"
+
+[[package]]
+name = "equivalent"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5"
+
+[[package]]
+name = "errno"
+version = "0.3.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245"
+dependencies = [
+ "libc",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "fastrand"
+version = "2.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9fc0510504f03c51ada170672ac806f1f105a88aa97a5281117e1ddc3368e51a"
+
+[[package]]
+name = "fern"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d9f0c14694cbd524c8720dd69b0e3179344f04ebb5f90f2e4a440c6ea3b2f1ee"
+dependencies = [
+ "log",
+]
+
+[[package]]
+name = "filetime"
+version = "0.2.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1ee447700ac8aa0b2f2bd7bc4462ad686ba06baa6727ac149a2d6277f0d240fd"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.4.1",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "fnv"
+version = "1.0.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
+
+[[package]]
+name = "form_urlencoded"
+version = "1.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456"
+dependencies = [
+ "percent-encoding",
+]
+
+[[package]]
+name = "fs-err"
+version = "2.11.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88a41f105fe1d5b6b34b2055e3dc59bb79b46b48b2040b9e6c7b4b5de097aa41"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "fsevent-sys"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76ee7a02da4d231650c7cea31349b889be2f45ddb3ef3032d2ec8185f6313fd2"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "getopts"
+version = "0.2.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5"
+dependencies = [
+ "unicode-width",
+]
+
+[[package]]
+name = "getrandom"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c"
+dependencies = [
+ "cfg-if",
+ "js-sys",
+ "libc",
+ "wasi",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "glob"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b"
+
+[[package]]
+name = "globset"
+version = "0.4.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "57da3b9b5b85bd66f31093f8c408b90a74431672542466497dcbdfdc02034be1"
+dependencies = [
+ "aho-corasick",
+ "bstr",
+ "log",
+ "regex-automata 0.4.6",
+ "regex-syntax 0.8.3",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.14.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e5274423e17b7c9fc20b6e7e208532f9b19825d82dfd615708b70edd83df41f1"
+
+[[package]]
+name = "heck"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
+
+[[package]]
+name = "heck"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
+
+[[package]]
+name = "hermit-abi"
+version = "0.3.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d231dfb89cfffdbc30e7fc41579ed6066ad03abda9e567ccafae602b97ec5024"
+
+[[package]]
+name = "hexf-parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
+
+[[package]]
+name = "home"
+version = "0.5.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "iana-time-zone"
+version = "0.1.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141"
+dependencies = [
+ "android_system_properties",
+ "core-foundation-sys",
+ "iana-time-zone-haiku",
+ "js-sys",
+ "wasm-bindgen",
+ "windows-core",
+]
+
+[[package]]
+name = "iana-time-zone-haiku"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f"
+dependencies = [
+ "cc",
+]
+
+[[package]]
+name = "ident_case"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
+
+[[package]]
+name = "idna"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6"
+dependencies = [
+ "unicode-bidi",
+ "unicode-normalization",
+]
+
+[[package]]
+name = "ignore"
+version = "0.4.22"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b46810df39e66e925525d6e38ce1e7f6e1d208f72dc39757880fcb66e2c58af1"
+dependencies = [
+ "crossbeam-deque",
+ "globset",
+ "log",
+ "memchr",
+ "regex-automata 0.4.6",
+ "same-file",
+ "walkdir",
+ "winapi-util",
+]
+
+[[package]]
+name = "imperative"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b70798296d538cdaa6d652941fcc795963f8b9878b9e300c9fab7a522bd2fc0"
+dependencies = [
+ "phf",
+ "rust-stemmers",
+]
+
+[[package]]
+name = "indexmap"
+version = "2.2.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "168fb715dda47215e360912c096649d23d58bf392ac62f73919e831745e40f26"
+dependencies = [
+ "equivalent",
+ "hashbrown",
+ "serde",
+]
+
+[[package]]
+name = "indoc"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bfa799dd5ed20a7e349f3b4639aa80d74549c81716d9ec4f994c9b5815598306"
+
+[[package]]
+name = "inotify"
+version = "0.9.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f8069d3ec154eb856955c1c0fbffefbf5f3c40a104ec912d4797314c1801abff"
+dependencies = [
+ "bitflags 1.3.2",
+ "inotify-sys",
+ "libc",
+]
+
+[[package]]
+name = "inotify-sys"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e05c02b5e89bff3b946cedeca278abc628fe811e604f027c45a8aa3cf793d0eb"
+dependencies = [
+ "libc",
+]
+
+[[package]]
+name = "is-docker"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "928bae27f42bc99b60d9ac7334e3a21d10ad8f1835a4e12ec3ec0464765ed1b3"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "is-macro"
+version = "0.3.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59a85abdc13717906baccb5a1e435556ce0df215f242892f721dff62bf25288f"
+dependencies = [
+ "Inflector",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "is-wsl"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "173609498df190136aa7dea1a91db051746d339e18476eed5ca40521f02d7aa5"
+dependencies = [
+ "is-docker",
+ "once_cell",
+]
+
+[[package]]
+name = "itertools"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569"
+dependencies = [
+ "either",
+]
+
+[[package]]
+name = "itoa"
+version = "1.0.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b"
+
+[[package]]
+name = "jod-thread"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b23360e99b8717f20aaa4598f5a6541efbe30630039fbc7706cf954a87947ae"
+
+[[package]]
+name = "js-sys"
+version = "0.3.69"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29c15563dc2726973df627357ce0c9ddddbea194836909d655df6a75d2cf296d"
+dependencies = [
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "kqueue"
+version = "1.0.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7447f1ca1b7b563588a205fe93dea8df60fd981423a768bc1c0ded35ed147d0c"
+dependencies = [
+ "kqueue-sys",
+ "libc",
+]
+
+[[package]]
+name = "kqueue-sys"
+version = "1.0.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed9625ffda8729b85e45cf04090035ac368927b8cebc34898e7c120f52e4838b"
+dependencies = [
+ "bitflags 1.3.2",
+ "libc",
+]
+
+[[package]]
+name = "lalrpop-util"
+version = "0.20.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "507460a910eb7b32ee961886ff48539633b788a36b65692b95f225b844c82553"
+
+[[package]]
+name = "lazy_static"
+version = "1.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
+
+[[package]]
+name = "lexical-parse-float"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f"
+dependencies = [
+ "lexical-parse-integer",
+ "lexical-util",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-parse-integer"
+version = "0.8.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9"
+dependencies = [
+ "lexical-util",
+ "static_assertions",
+]
+
+[[package]]
+name = "lexical-util"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc"
+dependencies = [
+ "static_assertions",
+]
+
+[[package]]
+name = "libc"
+version = "0.2.154"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ae743338b92ff9146ce83992f766a31066a91a8c84a45e0e9f21e7cf6de6d346"
+
+[[package]]
+name = "libcst"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f1e25d1b119ab5c2f15a6e081bb94a8d547c5c2ad065f5fd0dbb683f31ced91"
+dependencies = [
+ "chic",
+ "libcst_derive",
+ "memchr",
+ "paste",
+ "peg",
+ "regex",
+ "thiserror",
+]
+
+[[package]]
+name = "libcst_derive"
+version = "1.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4a5011f2d59093de14a4a90e01b9d85dee9276e58a25f0107dcee167dd601be0"
+dependencies = [
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "libmimalloc-sys"
+version = "0.1.37"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81eb4061c0582dedea1cbc7aff2240300dd6982e0239d1c99e65c1dbf4a30ba7"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "libredox"
+version = "0.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d"
+dependencies = [
+ "bitflags 2.5.0",
+ "libc",
+]
+
+[[package]]
+name = "linux-raw-sys"
+version = "0.4.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c"
+
+[[package]]
+name = "lock_api"
+version = "0.4.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
+dependencies = [
+ "autocfg",
+ "scopeguard",
+]
+
+[[package]]
+name = "log"
+version = "0.4.21"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c"
+
+[[package]]
+name = "lsp-server"
+version = "0.7.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "248f65b78f6db5d8e1b1604b4098a28b43d21a8eb1deeca22b1c421b276c7095"
+dependencies = [
+ "crossbeam-channel",
+ "log",
+ "serde",
+ "serde_json",
+]
+
+[[package]]
+name = "lsp-types"
+version = "0.95.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e34d33a8e9b006cd3fc4fe69a921affa097bae4bb65f76271f4644f9a334365"
+dependencies = [
+ "bitflags 1.3.2",
+ "serde",
+ "serde_json",
+ "serde_repr",
+ "url",
+]
+
+[[package]]
+name = "matchers"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
+dependencies = [
+ "regex-automata 0.1.10",
+]
+
+[[package]]
+name = "matches"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5"
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "memoffset"
+version = "0.9.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "mimalloc"
+version = "0.1.41"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9f41a2280ded0da56c8cf898babb86e8f10651a34adcfff190ae9a1159c6908d"
+dependencies = [
+ "libmimalloc-sys",
+]
+
+[[package]]
+name = "minimal-lexical"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
+
+[[package]]
+name = "mio"
+version = "0.8.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a4a650543ca06a924e8b371db273b2756685faae30f8487da1b56505a8f78b0c"
+dependencies = [
+ "libc",
+ "log",
+ "wasi",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "natord"
+version = "1.0.9"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "308d96db8debc727c3fd9744aac51751243420e46edf401010908da7f8d5e57c"
+
+[[package]]
+name = "nix"
+version = "0.28.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ab2156c4fce2f8df6c499cc1c763e4394b7482525bf2a9701c9d79d215f519e4"
+dependencies = [
+ "bitflags 2.5.0",
+ "cfg-if",
+ "cfg_aliases",
+ "libc",
+]
+
+[[package]]
+name = "nom"
+version = "7.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
+dependencies = [
+ "memchr",
+ "minimal-lexical",
+]
+
+[[package]]
+name = "notify"
+version = "6.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6205bd8bb1e454ad2e27422015fb5e4f2bcc7e08fa8f27058670d208324a4d2d"
+dependencies = [
+ "bitflags 2.5.0",
+ "crossbeam-channel",
+ "filetime",
+ "fsevent-sys",
+ "inotify",
+ "kqueue",
+ "libc",
+ "log",
+ "mio",
+ "walkdir",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.46.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
+dependencies = [
+ "overload",
+ "winapi",
+]
+
+[[package]]
+name = "nu-ansi-term"
+version = "0.49.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c073d3c1930d0751774acf49e66653acecb416c3a54c6ec095a9b11caddb5a68"
+dependencies = [
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "num-traits"
+version = "0.2.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a"
+dependencies = [
+ "autocfg",
+]
+
+[[package]]
+name = "num_cpus"
+version = "1.16.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43"
+dependencies = [
+ "hermit-abi",
+ "libc",
+]
+
+[[package]]
+name = "once_cell"
+version = "1.19.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
+
+[[package]]
+name = "option-ext"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d"
+
+[[package]]
+name = "os_str_bytes"
+version = "6.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2355d85b9a3786f481747ced0e0ff2ba35213a1f9bd406ed906554d7af805a1"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "overload"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
+
+[[package]]
+name = "parking_lot"
+version = "0.12.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7e4af0ca4f6caed20e900d564c242b8e5d4903fdacf31d3daf527b66fe6f42fb"
+dependencies = [
+ "lock_api",
+ "parking_lot_core",
+]
+
+[[package]]
+name = "parking_lot_core"
+version = "0.9.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
+dependencies = [
+ "cfg-if",
+ "libc",
+ "redox_syscall 0.5.1",
+ "smallvec",
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "paste"
+version = "1.0.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c"
+
+[[package]]
+name = "path-absolutize"
+version = "3.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e4af381fe79fa195b4909485d99f73a80792331df0625188e707854f0b3383f5"
+dependencies = [
+ "path-dedot",
+]
+
+[[package]]
+name = "path-dedot"
+version = "3.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07ba0ad7e047712414213ff67533e6dd477af0a4e1d14fb52343e53d30ea9397"
+dependencies = [
+ "once_cell",
+]
+
+[[package]]
+name = "pathdiff"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd"
+
+[[package]]
+name = "peg"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a625d12ad770914cbf7eff6f9314c3ef803bfe364a1b20bc36ddf56673e71e5"
+dependencies = [
+ "peg-macros",
+ "peg-runtime",
+]
+
+[[package]]
+name = "peg-macros"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f241d42067ed3ab6a4fece1db720838e1418f36d868585a27931f95d6bc03582"
+dependencies = [
+ "peg-runtime",
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "peg-runtime"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3aeb8f54c078314c2065ee649a7241f46b9d8e418e1a9581ba0546657d7aa3a"
+
+[[package]]
+name = "pep440_rs"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e0c29f9c43de378b4e4e0cd7dbcce0e5cfb80443de8c05620368b2948bc936a1"
+dependencies = [
+ "once_cell",
+ "regex",
+ "serde",
+ "unicode-width",
+]
+
+[[package]]
+name = "pep440_rs"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15efd4d885c29126cc93e12af3087896e2518bd5ca0fb328c19c4ef9cecfa8be"
+dependencies = [
+ "once_cell",
+ "serde",
+ "unicode-width",
+ "unscanny",
+]
+
+[[package]]
+name = "pep508_rs"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "910c513bea0f4f833122321c0f20e8c704e01de98692f6989c2ec21f43d88b1e"
+dependencies = [
+ "once_cell",
+ "pep440_rs 0.4.0",
+ "regex",
+ "serde",
+ "thiserror",
+ "tracing",
+ "unicode-width",
+ "url",
+]
+
+[[package]]
+name = "percent-encoding"
+version = "2.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e"
+
+[[package]]
+name = "phf"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc"
+dependencies = [
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_codegen"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e8d39688d359e6b34654d328e262234662d16cc0f60ec8dcbe5e718709342a5a"
+dependencies = [
+ "phf_generator",
+ "phf_shared",
+]
+
+[[package]]
+name = "phf_generator"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0"
+dependencies = [
+ "phf_shared",
+ "rand",
+]
+
+[[package]]
+name = "phf_shared"
+version = "0.11.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b"
+dependencies = [
+ "siphasher",
+]
+
+[[package]]
+name = "pin-project-lite"
+version = "0.2.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bda66fc9667c18cb2758a2ac84d1167245054bcf85d5d1aaa6923f45801bdd02"
+
+[[package]]
+name = "pmutil"
+version = "0.6.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "52a40bc70c2c58040d2d8b167ba9a5ff59fc9dab7ad44771cfde3dcfde7a09c6"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "ppv-lite86"
+version = "0.2.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
+
+[[package]]
+name = "proc-macro2"
+version = "1.0.81"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "pyo3"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e681a6cfdc4adcc93b4d3cf993749a4552018ee0a9b65fc0ccfad74352c72a38"
+dependencies = [
+ "cfg-if",
+ "indoc",
+ "libc",
+ "memoffset",
+ "parking_lot",
+ "pyo3-build-config",
+ "pyo3-ffi",
+ "pyo3-macros",
+ "unindent",
+]
+
+[[package]]
+name = "pyo3-build-config"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "076c73d0bc438f7a4ef6fdd0c3bb4732149136abd952b110ac93e4edb13a6ba5"
+dependencies = [
+ "once_cell",
+ "target-lexicon",
+]
+
+[[package]]
+name = "pyo3-ffi"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e53cee42e77ebe256066ba8aa77eff722b3bb91f3419177cf4cd0f304d3284d9"
+dependencies = [
+ "libc",
+ "pyo3-build-config",
+]
+
+[[package]]
+name = "pyo3-macros"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dfeb4c99597e136528c6dd7d5e3de5434d1ceaf487436a3f03b2d56b6fc9efd1"
+dependencies = [
+ "proc-macro2",
+ "pyo3-macros-backend",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "pyo3-macros-backend"
+version = "0.19.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "947dc12175c254889edc0c02e399476c2f652b4b9ebd123aa655c224de259536"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 1.0.109",
+]
+
+[[package]]
+name = "pyproject-toml"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "95c3dd745f99aa3c554b7bb00859f7d18c2f1d6afd749ccc86d60b61e702abd9"
+dependencies = [
+ "indexmap",
+ "pep440_rs 0.4.0",
+ "pep508_rs",
+ "serde",
+ "toml",
+]
+
+[[package]]
+name = "quick-junit"
+version = "0.3.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d1a341ae463320e9f8f34adda49c8a85d81d4e8f34cce4397fb0350481552224"
+dependencies = [
+ "chrono",
+ "indexmap",
+ "quick-xml",
+ "strip-ansi-escapes",
+ "thiserror",
+ "uuid",
+]
+
+[[package]]
+name = "quick-xml"
+version = "0.31.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1004a344b30a54e2ee58d66a71b32d2db2feb0a31f9a2d302bf0536f15de2a33"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "quote"
+version = "1.0.36"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7"
+dependencies = [
+ "proc-macro2",
+]
+
+[[package]]
+name = "rand"
+version = "0.8.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
+dependencies = [
+ "libc",
+ "rand_chacha",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_chacha"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
+dependencies = [
+ "ppv-lite86",
+ "rand_core",
+]
+
+[[package]]
+name = "rand_core"
+version = "0.6.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
+dependencies = [
+ "getrandom",
+]
+
+[[package]]
+name = "rayon"
+version = "1.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
+dependencies = [
+ "either",
+ "rayon-core",
+]
+
+[[package]]
+name = "rayon-core"
+version = "1.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
+dependencies = [
+ "crossbeam-deque",
+ "crossbeam-utils",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa"
+dependencies = [
+ "bitflags 1.3.2",
+]
+
+[[package]]
+name = "redox_syscall"
+version = "0.5.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "469052894dcb553421e483e4209ee581a45100d31b4018de03e5a7ad86374a7e"
+dependencies = [
+ "bitflags 2.5.0",
+]
+
+[[package]]
+name = "redox_users"
+version = "0.4.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891"
+dependencies = [
+ "getrandom",
+ "libredox",
+ "thiserror",
+]
+
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata 0.4.6",
+ "regex-syntax 0.8.3",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.1.10"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
+dependencies = [
+ "regex-syntax 0.6.29",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax 0.8.3",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.6.29"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1"
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "result-like"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "abf7172fef6a7d056b5c26bf6c826570267562d51697f4982ff3ba4aec68a9df"
+dependencies = [
+ "result-like-derive",
+]
+
+[[package]]
+name = "result-like-derive"
+version = "0.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8d6574c02e894d66370cfc681e5d68fedbc9a548fb55b30a96b3f0ae22d0fe5"
+dependencies = [
+ "pmutil",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "ruff"
+version = "0.3.7"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "anyhow",
+ "argfile",
+ "bincode",
+ "bitflags 2.5.0",
+ "cachedir",
+ "chrono",
+ "clap",
+ "clap_complete_command",
+ "clearscreen",
+ "colored",
+ "filetime",
+ "ignore",
+ "is-macro",
+ "itertools",
+ "log",
+ "mimalloc",
+ "notify",
+ "num_cpus",
+ "path-absolutize",
+ "rayon",
+ "regex",
+ "ruff_cache",
+ "ruff_diagnostics",
+ "ruff_linter",
+ "ruff_macros",
+ "ruff_notebook",
+ "ruff_python_ast",
+ "ruff_python_formatter",
+ "ruff_server",
+ "ruff_source_file",
+ "ruff_text_size",
+ "ruff_workspace",
+ "rustc-hash",
+ "serde",
+ "serde_json",
+ "shellexpand",
+ "strum",
+ "tempfile",
+ "thiserror",
+ "tikv-jemallocator",
+ "toml",
+ "tracing",
+ "tracing-subscriber",
+ "tracing-tree",
+ "walkdir",
+ "wild",
+]
+
+[[package]]
+name = "ruff-api"
+version = "0.0.6"
+dependencies = [
+ "glob",
+ "pyo3",
+ "ruff",
+ "ruff_formatter",
+ "ruff_linter",
+ "ruff_python_ast",
+ "ruff_python_formatter",
+ "ruff_workspace",
+ "rustc-hash",
+]
+
+[[package]]
+name = "ruff_cache"
+version = "0.0.0"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "filetime",
+ "glob",
+ "globset",
+ "itertools",
+ "regex",
+ "seahash",
+]
+
+[[package]]
+name = "ruff_diagnostics"
+version = "0.0.0"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "anyhow",
+ "is-macro",
+ "log",
+ "ruff_text_size",
+ "serde",
+]
+
+[[package]]
+name = "ruff_formatter"
+version = "0.0.0"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "drop_bomb",
+ "ruff_cache",
+ "ruff_macros",
+ "ruff_text_size",
+ "rustc-hash",
+ "serde",
+ "static_assertions",
+ "tracing",
+ "unicode-width",
+]
+
+[[package]]
+name = "ruff_index"
+version = "0.0.0"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "ruff_macros",
+]
+
+[[package]]
+name = "ruff_linter"
+version = "0.3.7"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "aho-corasick",
+ "annotate-snippets 0.9.2",
+ "anyhow",
+ "bitflags 2.5.0",
+ "chrono",
+ "clap",
+ "colored",
+ "fern",
+ "glob",
+ "globset",
+ "imperative",
+ "is-macro",
+ "is-wsl",
+ "itertools",
+ "libcst",
+ "log",
+ "memchr",
+ "natord",
+ "once_cell",
+ "path-absolutize",
+ "pathdiff",
+ "pep440_rs 0.5.0",
+ "pyproject-toml",
+ "quick-junit",
+ "regex",
+ "result-like",
+ "ruff_cache",
+ "ruff_diagnostics",
+ "ruff_macros",
+ "ruff_notebook",
+ "ruff_python_ast",
+ "ruff_python_codegen",
+ "ruff_python_index",
+ "ruff_python_literal",
+ "ruff_python_parser",
+ "ruff_python_semantic",
+ "ruff_python_stdlib",
+ "ruff_python_trivia",
+ "ruff_source_file",
+ "ruff_text_size",
+ "rustc-hash",
+ "serde",
+ "serde_json",
+ "similar",
+ "smallvec",
+ "strum",
+ "strum_macros",
+ "thiserror",
+ "toml",
+ "typed-arena",
+ "unicode-width",
+ "unicode_names2",
+ "url",
+]
+
+[[package]]
+name = "ruff_macros"
+version = "0.0.0"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "itertools",
+ "proc-macro2",
+ "quote",
+ "ruff_python_trivia",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "ruff_notebook"
+version = "0.0.0"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "anyhow",
+ "itertools",
+ "once_cell",
+ "rand",
+ "ruff_diagnostics",
+ "ruff_source_file",
+ "ruff_text_size",
+ "serde",
+ "serde_json",
+ "serde_with",
+ "thiserror",
+ "uuid",
+]
+
+[[package]]
+name = "ruff_python_ast"
+version = "0.0.0"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "aho-corasick",
+ "bitflags 2.5.0",
+ "is-macro",
+ "itertools",
+ "once_cell",
+ "ruff_python_trivia",
+ "ruff_source_file",
+ "ruff_text_size",
+ "rustc-hash",
+ "serde",
+]
+
+[[package]]
+name = "ruff_python_codegen"
+version = "0.0.0"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "once_cell",
+ "ruff_python_ast",
+ "ruff_python_literal",
+ "ruff_python_parser",
+ "ruff_source_file",
+]
+
+[[package]]
+name = "ruff_python_formatter"
+version = "0.0.0"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "anyhow",
+ "clap",
+ "countme",
+ "itertools",
+ "memchr",
+ "once_cell",
+ "regex",
+ "ruff_cache",
+ "ruff_formatter",
+ "ruff_macros",
+ "ruff_python_ast",
+ "ruff_python_index",
+ "ruff_python_parser",
+ "ruff_python_trivia",
+ "ruff_source_file",
+ "ruff_text_size",
+ "rustc-hash",
+ "serde",
+ "smallvec",
+ "static_assertions",
+ "thiserror",
+ "tracing",
+ "unicode-width",
+]
+
+[[package]]
+name = "ruff_python_index"
+version = "0.0.0"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "ruff_python_ast",
+ "ruff_python_parser",
+ "ruff_python_trivia",
+ "ruff_source_file",
+ "ruff_text_size",
+]
+
+[[package]]
+name = "ruff_python_literal"
+version = "0.0.0"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "bitflags 2.5.0",
+ "hexf-parse",
+ "itertools",
+ "lexical-parse-float",
+ "ruff_python_ast",
+ "unic-ucd-category",
+]
+
+[[package]]
+name = "ruff_python_parser"
+version = "0.0.0"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "anyhow",
+ "bstr",
+ "is-macro",
+ "itertools",
+ "lalrpop-util",
+ "memchr",
+ "ruff_python_ast",
+ "ruff_text_size",
+ "rustc-hash",
+ "static_assertions",
+ "tiny-keccak",
+ "unicode-ident",
+ "unicode-normalization",
+ "unicode_names2",
+]
+
+[[package]]
+name = "ruff_python_semantic"
+version = "0.0.0"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "bitflags 2.5.0",
+ "is-macro",
+ "ruff_index",
+ "ruff_python_ast",
+ "ruff_python_stdlib",
+ "ruff_source_file",
+ "ruff_text_size",
+ "rustc-hash",
+]
+
+[[package]]
+name = "ruff_python_stdlib"
+version = "0.0.0"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "unicode-ident",
+]
+
+[[package]]
+name = "ruff_python_trivia"
+version = "0.0.0"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "itertools",
+ "ruff_source_file",
+ "ruff_text_size",
+ "unicode-ident",
+]
+
+[[package]]
+name = "ruff_server"
+version = "0.2.2"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "anyhow",
+ "crossbeam",
+ "jod-thread",
+ "libc",
+ "lsp-server",
+ "lsp-types",
+ "ruff_diagnostics",
+ "ruff_formatter",
+ "ruff_linter",
+ "ruff_python_ast",
+ "ruff_python_codegen",
+ "ruff_python_formatter",
+ "ruff_python_index",
+ "ruff_python_parser",
+ "ruff_source_file",
+ "ruff_text_size",
+ "ruff_workspace",
+ "rustc-hash",
+ "serde",
+ "serde_json",
+ "tracing",
+]
+
+[[package]]
+name = "ruff_source_file"
+version = "0.0.0"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "memchr",
+ "once_cell",
+ "ruff_text_size",
+ "serde",
+]
+
+[[package]]
+name = "ruff_text_size"
+version = "0.0.0"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "ruff_workspace"
+version = "0.0.0"
+source = "git+https://github.com/astral-sh/ruff.git?tag=v0.3.7#2e37cf6b3b4b873ad9ffe9728bccdf134862b768"
+dependencies = [
+ "anyhow",
+ "colored",
+ "dirs 5.0.1",
+ "glob",
+ "globset",
+ "ignore",
+ "is-macro",
+ "itertools",
+ "log",
+ "path-absolutize",
+ "pep440_rs 0.5.0",
+ "regex",
+ "ruff_cache",
+ "ruff_formatter",
+ "ruff_linter",
+ "ruff_macros",
+ "ruff_python_ast",
+ "ruff_python_formatter",
+ "ruff_source_file",
+ "rustc-hash",
+ "serde",
+ "shellexpand",
+ "strum",
+ "toml",
+]
+
+[[package]]
+name = "rust-stemmers"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e46a2036019fdb888131db7a4c847a1063a7493f971ed94ea82c67eada63ca54"
+dependencies = [
+ "serde",
+ "serde_derive",
+]
+
+[[package]]
+name = "rustc-hash"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
+
+[[package]]
+name = "rustix"
+version = "0.38.34"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "70dc5ec042f7a43c4a73241207cecc9873a06d45debb38b329f8541d85c2730f"
+dependencies = [
+ "bitflags 2.5.0",
+ "errno",
+ "libc",
+ "linux-raw-sys",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "rustversion"
+version = "1.0.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80af6f9131f277a45a3fba6ce8e2258037bb0477a67e610d3c1fe046ab31de47"
+
+[[package]]
+name = "ryu"
+version = "1.0.17"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1"
+
+[[package]]
+name = "same-file"
+version = "1.0.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
+dependencies = [
+ "winapi-util",
+]
+
+[[package]]
+name = "scopeguard"
+version = "1.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
+
+[[package]]
+name = "seahash"
+version = "4.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b"
+
+[[package]]
+name = "serde"
+version = "1.0.199"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0c9f6e76df036c77cd94996771fb40db98187f096dd0b9af39c6c6e452ba966a"
+dependencies = [
+ "serde_derive",
+]
+
+[[package]]
+name = "serde_derive"
+version = "1.0.199"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "11bd257a6541e141e42ca6d24ae26f7714887b47e89aa739099104c7e4d3b7fc"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "serde_json"
+version = "1.0.116"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813"
+dependencies = [
+ "itoa",
+ "ryu",
+ "serde",
+]
+
+[[package]]
+name = "serde_repr"
+version = "0.1.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c64451ba24fc7a6a2d60fc75dd9c83c90903b19028d4eff35e88fc1e86564e9"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "serde_spanned"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "eb3622f419d1296904700073ea6cc23ad690adbd66f13ea683df73298736f0c1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "serde_with"
+version = "3.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0ad483d2ab0149d5a5ebcd9972a3852711e0153d863bf5a5d0391d28883c4a20"
+dependencies = [
+ "serde",
+ "serde_derive",
+ "serde_with_macros",
+]
+
+[[package]]
+name = "serde_with_macros"
+version = "3.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65569b702f41443e8bc8bbb1c5779bd0450bbe723b56198980e80ec45780bce2"
+dependencies = [
+ "darling",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "sharded-slab"
+version = "0.1.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6"
+dependencies = [
+ "lazy_static",
+]
+
+[[package]]
+name = "shellexpand"
+version = "3.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b"
+dependencies = [
+ "dirs 5.0.1",
+]
+
+[[package]]
+name = "similar"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fa42c91313f1d05da9b26f267f931cf178d4aba455b4c4622dd7355eb80c6640"
+
+[[package]]
+name = "siphasher"
+version = "0.3.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d"
+
+[[package]]
+name = "smallvec"
+version = "1.13.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
+
+[[package]]
+name = "static_assertions"
+version = "1.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
+
+[[package]]
+name = "strip-ansi-escapes"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "55ff8ef943b384c414f54aefa961dd2bd853add74ec75e7ac74cf91dba62bcfa"
+dependencies = [
+ "vte",
+]
+
+[[package]]
+name = "strsim"
+version = "0.10.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
+
+[[package]]
+name = "strsim"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7da8b5736845d9f2fcb837ea5d9e2628564b3b043a70948a3f0b778838c5fb4f"
+
+[[package]]
+name = "strum"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "5d8cec3501a5194c432b2b7976db6b7d10ec95c253208b45f83f7136aa985e29"
+dependencies = [
+ "strum_macros",
+]
+
+[[package]]
+name = "strum_macros"
+version = "0.26.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c6cf59daf282c0a494ba14fd21610a0325f9f90ec9d1231dea26bcb1d696c946"
+dependencies = [
+ "heck 0.4.1",
+ "proc-macro2",
+ "quote",
+ "rustversion",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "syn"
+version = "1.0.109"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "syn"
+version = "2.0.60"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "unicode-ident",
+]
+
+[[package]]
+name = "target-lexicon"
+version = "0.12.14"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1fc403891a21bcfb7c37834ba66a547a8f402146eba7265b5a6d88059c9ff2f"
+
+[[package]]
+name = "tempfile"
+version = "3.10.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "85b77fafb263dd9d05cbeac119526425676db3784113aa9295c88498cbf8bff1"
+dependencies = [
+ "cfg-if",
+ "fastrand",
+ "rustix",
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "terminal_size"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7"
+dependencies = [
+ "rustix",
+ "windows-sys 0.48.0",
+]
+
+[[package]]
+name = "terminfo"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "666cd3a6681775d22b200409aad3b089c5b99fb11ecdd8a204d9d62f8148498f"
+dependencies = [
+ "dirs 4.0.0",
+ "fnv",
+ "nom",
+ "phf",
+ "phf_codegen",
+]
+
+[[package]]
+name = "thiserror"
+version = "1.0.59"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f0126ad08bff79f29fc3ae6a55cc72352056dfff61e3ff8bb7129476d44b23aa"
+dependencies = [
+ "thiserror-impl",
+]
+
+[[package]]
+name = "thiserror-impl"
+version = "1.0.59"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d1cd413b5d558b4c5bf3680e324a6fa5014e7b7c067a51e69dbdf47eb7148b66"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "thread_local"
+version = "1.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8b9ef9bad013ada3808854ceac7b46812a6465ba368859a37e2100283d2d719c"
+dependencies = [
+ "cfg-if",
+ "once_cell",
+]
+
+[[package]]
+name = "tikv-jemalloc-sys"
+version = "0.5.4+5.3.0-patched"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9402443cb8fd499b6f327e40565234ff34dbda27460c5b47db0db77443dd85d1"
+dependencies = [
+ "cc",
+ "libc",
+]
+
+[[package]]
+name = "tikv-jemallocator"
+version = "0.5.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "965fe0c26be5c56c94e38ba547249074803efd52adfb66de62107d95aab3eaca"
+dependencies = [
+ "libc",
+ "tikv-jemalloc-sys",
+]
+
+[[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.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50"
+dependencies = [
+ "tinyvec_macros",
+]
+
+[[package]]
+name = "tinyvec_macros"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
+
+[[package]]
+name = "toml"
+version = "0.8.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9dd1545e8208b4a5af1aa9bbd0b4cf7e9ea08fabc5d0a5c67fcaafa17433aa3"
+dependencies = [
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "toml_edit",
+]
+
+[[package]]
+name = "toml_datetime"
+version = "0.6.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3550f4e9685620ac18a50ed434eb3aec30db8ba93b0287467bca5826ea25baf1"
+dependencies = [
+ "serde",
+]
+
+[[package]]
+name = "toml_edit"
+version = "0.22.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d3328d4f68a705b2a4498da1d580585d39a6510f98318a2cec3018a7ec61ddef"
+dependencies = [
+ "indexmap",
+ "serde",
+ "serde_spanned",
+ "toml_datetime",
+ "winnow",
+]
+
+[[package]]
+name = "tracing"
+version = "0.1.40"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef"
+dependencies = [
+ "log",
+ "pin-project-lite",
+ "tracing-attributes",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-attributes"
+version = "0.1.27"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "tracing-core"
+version = "0.1.32"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54"
+dependencies = [
+ "once_cell",
+ "valuable",
+]
+
+[[package]]
+name = "tracing-log"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3"
+dependencies = [
+ "log",
+ "once_cell",
+ "tracing-core",
+]
+
+[[package]]
+name = "tracing-subscriber"
+version = "0.3.18"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b"
+dependencies = [
+ "matchers",
+ "nu-ansi-term 0.46.0",
+ "once_cell",
+ "regex",
+ "sharded-slab",
+ "smallvec",
+ "thread_local",
+ "tracing",
+ "tracing-core",
+ "tracing-log",
+]
+
+[[package]]
+name = "tracing-tree"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "65139ecd2c3f6484c3b99bc01c77afe21e95473630747c7aca525e78b0666675"
+dependencies = [
+ "nu-ansi-term 0.49.0",
+ "tracing-core",
+ "tracing-log",
+ "tracing-subscriber",
+]
+
+[[package]]
+name = "typed-arena"
+version = "2.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a"
+
+[[package]]
+name = "unic-char-property"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221"
+dependencies = [
+ "unic-char-range",
+]
+
+[[package]]
+name = "unic-char-range"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc"
+
+[[package]]
+name = "unic-common"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc"
+
+[[package]]
+name = "unic-ucd-category"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1b8d4591f5fcfe1bd4453baaf803c40e1b1e69ff8455c47620440b46efef91c0"
+dependencies = [
+ "matches",
+ "unic-char-property",
+ "unic-char-range",
+ "unic-ucd-version",
+]
+
+[[package]]
+name = "unic-ucd-version"
+version = "0.9.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4"
+dependencies = [
+ "unic-common",
+]
+
+[[package]]
+name = "unicode-bidi"
+version = "0.3.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
+
+[[package]]
+name = "unicode-normalization"
+version = "0.1.23"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a56d1686db2308d901306f92a263857ef59ea39678a5458e7cb17f01415101f5"
+dependencies = [
+ "tinyvec",
+]
+
+[[package]]
+name = "unicode-width"
+version = "0.1.12"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "68f5e5f3158ecfd4b8ff6fe086db7c8467a2dfdac97fe420f2b7c4aa97af66d6"
+
+[[package]]
+name = "unicode_names2"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "addeebf294df7922a1164f729fb27ebbbcea99cc32b3bf08afab62757f707677"
+dependencies = [
+ "phf",
+ "unicode_names2_generator",
+]
+
+[[package]]
+name = "unicode_names2_generator"
+version = "1.2.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f444b8bba042fe3c1251ffaca35c603f2dc2ccc08d595c65a8c4f76f3e8426c0"
+dependencies = [
+ "getopts",
+ "log",
+ "phf_codegen",
+ "rand",
+]
+
+[[package]]
+name = "unindent"
+version = "0.1.11"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e1766d682d402817b5ac4490b3c3002d91dfa0d22812f341609f97b08757359c"
+
+[[package]]
+name = "unscanny"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e9df2af067a7953e9c3831320f35c1cc0600c30d44d9f7a12b01db1cd88d6b47"
+
+[[package]]
+name = "url"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633"
+dependencies = [
+ "form_urlencoded",
+ "idna",
+ "percent-encoding",
+ "serde",
+]
+
+[[package]]
+name = "utf8parse"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a"
+
+[[package]]
+name = "uuid"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a183cf7feeba97b4dd1c0d46788634f6221d87fa961b305bed08c851829efcc0"
+dependencies = [
+ "getrandom",
+ "rand",
+ "uuid-macro-internal",
+ "wasm-bindgen",
+]
+
+[[package]]
+name = "uuid-macro-internal"
+version = "1.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9881bea7cbe687e36c9ab3b778c36cd0487402e270304e8b1296d5085303c1a2"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+]
+
+[[package]]
+name = "valuable"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
+
+[[package]]
+name = "vte"
+version = "0.11.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5022b5fbf9407086c180e9557be968742d839e68346af7792b8592489732197"
+dependencies = [
+ "utf8parse",
+ "vte_generate_state_changes",
+]
+
+[[package]]
+name = "vte_generate_state_changes"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff"
+dependencies = [
+ "proc-macro2",
+ "quote",
+]
+
+[[package]]
+name = "walkdir"
+version = "2.5.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "29790946404f91d9c5d06f9874efddea1dc06c5efe94541a7d6863108e3a5e4b"
+dependencies = [
+ "same-file",
+ "winapi-util",
+]
+
+[[package]]
+name = "wasi"
+version = "0.11.0+wasi-snapshot-preview1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
+
+[[package]]
+name = "wasm-bindgen"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4be2531df63900aeb2bca0daaaddec08491ee64ceecbee5076636a3b026795a8"
+dependencies = [
+ "cfg-if",
+ "wasm-bindgen-macro",
+]
+
+[[package]]
+name = "wasm-bindgen-backend"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "614d787b966d3989fa7bb98a654e369c762374fd3213d212cfc0251257e747da"
+dependencies = [
+ "bumpalo",
+ "log",
+ "once_cell",
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-macro"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a1f8823de937b71b9460c0c34e25f3da88250760bec0ebac694b49997550d726"
+dependencies = [
+ "quote",
+ "wasm-bindgen-macro-support",
+]
+
+[[package]]
+name = "wasm-bindgen-macro-support"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e94f17b526d0a461a191c78ea52bbce64071ed5c04c9ffe424dcb38f74171bb7"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn 2.0.60",
+ "wasm-bindgen-backend",
+ "wasm-bindgen-shared",
+]
+
+[[package]]
+name = "wasm-bindgen-shared"
+version = "0.2.92"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "af190c94f2773fdb3729c55b007a722abb5384da03bc0986df4c289bf5567e96"
+
+[[package]]
+name = "which"
+version = "6.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8211e4f58a2b2805adfbefbc07bab82958fc91e3836339b1ab7ae32465dce0d7"
+dependencies = [
+ "either",
+ "home",
+ "rustix",
+ "winsafe",
+]
+
+[[package]]
+name = "wild"
+version = "2.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a3131afc8c575281e1e80f36ed6a092aa502c08b18ed7524e86fbbb12bb410e1"
+dependencies = [
+ "glob",
+]
+
+[[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-util"
+version = "0.1.8"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4d4cc384e1e73b93bafa6fb4f1df8c41695c8a91cf9c4c64358067d15a7b6c6b"
+dependencies = [
+ "windows-sys 0.52.0",
+]
+
+[[package]]
+name = "winapi-x86_64-pc-windows-gnu"
+version = "0.4.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+
+[[package]]
+name = "windows-core"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9"
+dependencies = [
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.48.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
+dependencies = [
+ "windows-targets 0.48.5",
+]
+
+[[package]]
+name = "windows-sys"
+version = "0.52.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d"
+dependencies = [
+ "windows-targets 0.52.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm 0.48.5",
+ "windows_aarch64_msvc 0.48.5",
+ "windows_i686_gnu 0.48.5",
+ "windows_i686_msvc 0.48.5",
+ "windows_x86_64_gnu 0.48.5",
+ "windows_x86_64_gnullvm 0.48.5",
+ "windows_x86_64_msvc 0.48.5",
+]
+
+[[package]]
+name = "windows-targets"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6f0713a46559409d202e70e28227288446bf7841d3211583a4b53e3f6d96e7eb"
+dependencies = [
+ "windows_aarch64_gnullvm 0.52.5",
+ "windows_aarch64_msvc 0.52.5",
+ "windows_i686_gnu 0.52.5",
+ "windows_i686_gnullvm",
+ "windows_i686_msvc 0.52.5",
+ "windows_x86_64_gnu 0.52.5",
+ "windows_x86_64_gnullvm 0.52.5",
+ "windows_x86_64_msvc 0.52.5",
+]
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7088eed71e8b8dda258ecc8bac5fb1153c5cffaf2578fc8ff5d61e23578d3263"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9985fd1504e250c615ca5f281c3f7a6da76213ebd5ccc9561496568a2752afb6"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "88ba073cf16d5372720ec942a8ccbf61626074c6d4dd2e745299726ce8b89670"
+
+[[package]]
+name = "windows_i686_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "87f4261229030a858f36b459e748ae97545d6f1ec60e5e0d6a3d32e0dc232ee9"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "db3c2bf3d13d5b658be73463284eaf12830ac9a26a90c717b7f771dfe97487bf"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4e4246f76bdeff09eb48875a0fd3e2af6aada79d409d33011886d3e1581517d9"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "852298e482cd67c356ddd9570386e2862b5673c85bd5f88df9ab6802b334c596"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.52.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "bec47e5bfd1bff0eeaf6d8b485cc1074891a197ab4225d504cb7a1ab88b02bf0"
+
+[[package]]
+name = "winnow"
+version = "0.6.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "14b9415ee827af173ebb3f15f9083df5a122eb93572ec28741fb153356ea2578"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "winsafe"
+version = "0.0.19"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d135d17ab770252ad95e9a872d365cf3090e3be864a34ab46f48555993efc904"
+
+[[package]]
+name = "yansi-term"
+version = "0.1.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "fe5c30ade05e61656247b2e334a031dfd0cc466fadef865bdcdea8d537951bf1"
+dependencies = [
+ "winapi",
+]
diff --git a/pkgs/development/python-modules/ruff-api/default.nix b/pkgs/development/python-modules/ruff-api/default.nix
new file mode 100644
index 0000000000000..43170c4312145
--- /dev/null
+++ b/pkgs/development/python-modules/ruff-api/default.nix
@@ -0,0 +1,60 @@
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cargo,
+  darwin,
+  fetchFromGitHub,
+  pythonOlder,
+  rustc,
+  rustPlatform,
+  ufmt,
+  usort,
+}:
+
+buildPythonPackage rec {
+  pname = "ruff-api";
+  version = "0.0.6";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "amyreese";
+    repo = "ruff-api";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-nZKf0LpCoYwWoLDGoorJ+zQSLyuxfWu3LOygocVlYSs=";
+  };
+
+  cargoDeps = rustPlatform.importCargoLock {
+    lockFile = ./Cargo.lock;
+    outputHashes = {
+      "ruff-0.3.7" = "sha256-PS4YJpVut+KtEgSlTVtoVdlu6FVipPIzsl01/Io5N64=";
+    };
+  };
+
+  nativeBuildInputs = [
+    cargo
+    rustPlatform.cargoSetupHook
+    rustPlatform.maturinBuildHook
+    rustc
+  ];
+
+  buildInputs = lib.optionals stdenv.isDarwin [
+    darwin.apple_sdk.frameworks.CoreFoundation
+    darwin.apple_sdk.frameworks.CoreServices
+  ];
+
+  # Tests have issues at the moment, check with next update
+  doCheck = false;
+
+  pythonImportsCheck = [ "ruff_api" ];
+
+  meta = with lib; {
+    description = "Experimental Python API for Ruff";
+    homepage = "https://github.com/amyreese/ruff-api";
+    changelog = "https://github.com/amyreese/ruff-api/blob/${version}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/ruffus/default.nix b/pkgs/development/python-modules/ruffus/default.nix
index eecd65b513de6..44a1b8939795e 100644
--- a/pkgs/development/python-modules/ruffus/default.nix
+++ b/pkgs/development/python-modules/ruffus/default.nix
@@ -1,9 +1,11 @@
-{ gevent
-, buildPythonPackage
-, fetchFromGitHub
-, hostname
-, pytest
-, lib, stdenv
+{
+  gevent,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hostname,
+  pytest,
+  lib,
+  stdenv,
 }:
 
 buildPythonPackage rec {
@@ -42,7 +44,6 @@ buildPythonPackage rec {
     description = "Light-weight Python Computational Pipeline Management";
     homepage = "http://www.ruffus.org.uk";
     license = licenses.mit;
-    maintainers = [ maintainers.kiwi ];
+    maintainers = [ ];
   };
 }
-
diff --git a/pkgs/development/python-modules/rules/default.nix b/pkgs/development/python-modules/rules/default.nix
index 3563b76affe75..c2ab611d6f9c0 100644
--- a/pkgs/development/python-modules/rules/default.nix
+++ b/pkgs/development/python-modules/rules/default.nix
@@ -1,28 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# tests
-, django
-, djangorestframework
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+
+  # tests
+  django,
+  djangorestframework,
+  python,
 }:
 
 buildPythonPackage rec {
   pname = "rules";
-  version = "3.3.0";
-  format = "setuptools";
+  version = "3.4.0";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "dfunckt";
     repo = "django-rules";
     rev = "v${version}";
-    hash = "sha256-UFRfRwcvxEn0fD3ScJJ7f/EHd93BOpY3cEF9QDryJZY=";
+    hash = "sha256-fxLaxjni+0S59vtvKBduR0pYMwJWWBPzR5mnH+j6gVE=";
   };
 
-  pythonImportsCheck = [
-    "rules"
-  ];
+  build-system = [ setuptools ];
+
+  pythonImportsCheck = [ "rules" ];
 
   nativeCheckInputs = [
     django
diff --git a/pkgs/development/python-modules/runs/default.nix b/pkgs/development/python-modules/runs/default.nix
index ec751bfd7f4b1..d161a33a108a5 100644
--- a/pkgs/development/python-modules/runs/default.nix
+++ b/pkgs/development/python-modules/runs/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, xmod
-, pytestCheckHook
-, tdir
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  xmod,
+  pytestCheckHook,
+  tdir,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-aEamhXr3C+jYDzQGzcmGFyl5oEtovxlNacFM08y0ZEk=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    xmod
-  ];
+  dependencies = [ xmod ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -37,9 +34,7 @@ buildPythonPackage rec {
     "test_many"
   ];
 
-  pythonImportsCheck = [
-    "runs"
-  ];
+  pythonImportsCheck = [ "runs" ];
 
   meta = with lib; {
     description = "Run a block of text as a subprocess";
diff --git a/pkgs/development/python-modules/rustworkx/default.nix b/pkgs/development/python-modules/rustworkx/default.nix
index 69b231854995d..b0be3a51573cb 100644
--- a/pkgs/development/python-modules/rustworkx/default.nix
+++ b/pkgs/development/python-modules/rustworkx/default.nix
@@ -1,16 +1,17 @@
-{ fetchFromGitHub
-, buildPythonPackage
-, cargo
-, rustPlatform
-, rustc
-, setuptools-rust
-, numpy
-, fixtures
-, networkx
-, testtools
-, libiconv
-, stdenv
-, lib
+{
+  fetchFromGitHub,
+  buildPythonPackage,
+  cargo,
+  rustPlatform,
+  rustc,
+  setuptools-rust,
+  numpy,
+  fixtures,
+  networkx,
+  testtools,
+  libiconv,
+  stdenv,
+  lib,
 }:
 
 buildPythonPackage rec {
@@ -39,12 +40,16 @@ buildPythonPackage rec {
 
   buildInputs = [ numpy ] ++ lib.optionals stdenv.isDarwin [ libiconv ];
 
-  checkInputs = [ fixtures networkx testtools ];
+  checkInputs = [
+    fixtures
+    networkx
+    testtools
+  ];
 
   pythonImportsCheck = [ "rustworkx" ];
 
   meta = with lib; {
-    description = "A high performance Python graph library implemented in Rust";
+    description = "High performance Python graph library implemented in Rust";
     homepage = "https://github.com/Qiskit/rustworkx";
     license = licenses.asl20;
     maintainers = with maintainers; [ raitobezarius ];
diff --git a/pkgs/development/python-modules/ruuvitag-ble/default.nix b/pkgs/development/python-modules/ruuvitag-ble/default.nix
index d69e92636aef9..629e3c539954a 100644
--- a/pkgs/development/python-modules/ruuvitag-ble/default.nix
+++ b/pkgs/development/python-modules/ruuvitag-ble/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, bluetooth-data-tools
-, bluetooth-sensor-state-data
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, home-assistant-bluetooth
-, pytestCheckHook
-, pythonOlder
-, sensor-state-data
+{
+  lib,
+  bluetooth-data-tools,
+  bluetooth-sensor-state-data,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  home-assistant-bluetooth,
+  pytestCheckHook,
+  pythonOlder,
+  sensor-state-data,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-J+807p2mE+VZ0oqldFtjdcNGsRTkAU54s6byQSGrng4=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     bluetooth-data-tools
@@ -35,18 +34,14 @@ buildPythonPackage rec {
     sensor-state-data
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace " --cov=ruuvitag_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  pythonImportsCheck = [
-    "ruuvitag_ble"
-  ];
+  pythonImportsCheck = [ "ruuvitag_ble" ];
 
   meta = with lib; {
     description = "Library for Ruuvitag BLE devices";
diff --git a/pkgs/development/python-modules/ruyaml/default.nix b/pkgs/development/python-modules/ruyaml/default.nix
index 4131200f2276a..0bcd0dd7a71dc 100644
--- a/pkgs/development/python-modules/ruyaml/default.nix
+++ b/pkgs/development/python-modules/ruyaml/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, distro
-, fetchFromGitHub
-, fetchpatch
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  distro,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -29,25 +29,18 @@ buildPythonPackage rec {
       --replace '"setuptools_scm_git_archive >= 1.1",' ""
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    distro
-  ];
+  propagatedBuildInputs = [ distro ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [
-    "-W" "ignore::DeprecationWarning"
+    "-W"
+    "ignore::DeprecationWarning"
   ];
 
-  pythonImportsCheck = [
-    "ruyaml"
-  ];
+  pythonImportsCheck = [ "ruyaml" ];
 
   disabledTests = [
     # Assertion error
diff --git a/pkgs/development/python-modules/rx/default.nix b/pkgs/development/python-modules/rx/default.nix
index 852dfcb7e6631..9bbac4b45437b 100644
--- a/pkgs/development/python-modules/rx/default.nix
+++ b/pkgs/development/python-modules/rx/default.nix
@@ -1,4 +1,10 @@
-{ lib, fetchPypi, buildPythonPackage, pythonOlder, nose }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  nose,
+}:
 
 buildPythonPackage rec {
   pname = "rx";
diff --git a/pkgs/development/python-modules/rxv/default.nix b/pkgs/development/python-modules/rxv/default.nix
index 9f947a78ad2a1..30be2072b595e 100644
--- a/pkgs/development/python-modules/rxv/default.nix
+++ b/pkgs/development/python-modules/rxv/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, defusedxml
-, fetchFromGitHub
-, mock
-, pytest-asyncio
-, pytest-timeout
-, pytest-vcr
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  defusedxml,
+  fetchFromGitHub,
+  mock,
+  pytest-asyncio,
+  pytest-timeout,
+  pytest-vcr,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     sha256 = "0jldnlzbfg5jm1nbgv91mlvcqkswd9f2n3qj9aqlbmj1cxq19yz8";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     defusedxml
diff --git a/pkgs/development/python-modules/rzpipe/default.nix b/pkgs/development/python-modules/rzpipe/default.nix
index d5a98e0c63bb7..76a29b256f1c6 100644
--- a/pkgs/development/python-modules/rzpipe/default.nix
+++ b/pkgs/development/python-modules/rzpipe/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # No native rz_core library
   doCheck = false;
 
-  pythonImportsCheck = [
-    "rzpipe"
-  ];
+  pythonImportsCheck = [ "rzpipe" ];
 
   meta = with lib; {
     description = "Python interface for rizin";
diff --git a/pkgs/development/python-modules/s2clientprotocol/default.nix b/pkgs/development/python-modules/s2clientprotocol/default.nix
index 0bbc0fefe2d89..ea4dc582c5474 100644
--- a/pkgs/development/python-modules/s2clientprotocol/default.nix
+++ b/pkgs/development/python-modules/s2clientprotocol/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
-, protobuf
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+  protobuf,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,7 @@ buildPythonPackage rec {
   buildInputs = [ protobuf ];
 
   meta = {
-    description = "StarCraft II - client protocol.";
+    description = "StarCraft II - client protocol";
     homepage = "https://github.com/Blizzard/sc2client-proto";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/development/python-modules/s3fs/default.nix b/pkgs/development/python-modules/s3fs/default.nix
index 46c7044759eda..426e65615bb0f 100644
--- a/pkgs/development/python-modules/s3fs/default.nix
+++ b/pkgs/development/python-modules/s3fs/default.nix
@@ -1,33 +1,31 @@
-{ lib
-, stdenv
-, aiobotocore
-, aiohttp
-, buildPythonPackage
-, docutils
-, fetchPypi
-, fsspec
-, pythonOlder
+{
+  lib,
+  aiobotocore,
+  aiohttp,
+  buildPythonPackage,
+  docutils,
+  fetchPypi,
+  fsspec,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "s3fs";
-  version = "2024.3.1";
+  version = "2024.6.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-G4vI29Zee2D1SHN49u7/4d5ZqnLKqe/Kba1quHdAVIc=";
+    hash = "sha256-pZAg7e3GHpZm8eRzzkqih2Tl97PJdBS+sVzZvlIqh7Y=";
   };
 
   postPatch = ''
     sed -i 's/fsspec==.*/fsspec/' requirements.txt
   '';
 
-  buildInputs = [
-    docutils
-  ];
+  buildInputs = [ docutils ];
 
   propagatedBuildInputs = [
     aiobotocore
@@ -40,13 +38,10 @@ buildPythonPackage rec {
   # pythonPackages.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "s3fs"
-  ];
+  pythonImportsCheck = [ "s3fs" ];
 
   meta = with lib; {
-    broken = stdenv.isDarwin;
-    description = "A Pythonic file interface for S3";
+    description = "Pythonic file interface for S3";
     homepage = "https://github.com/fsspec/s3fs";
     changelog = "https://github.com/fsspec/s3fs/raw/${version}/docs/source/changelog.rst";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/s3transfer/default.nix b/pkgs/development/python-modules/s3transfer/default.nix
index 52bf82fc502db..e138d2193a5c9 100644
--- a/pkgs/development/python-modules/s3transfer/default.nix
+++ b/pkgs/development/python-modules/s3transfer/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, botocore
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  stdenv,
+  botocore,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,37 +23,27 @@ buildPythonPackage rec {
     hash = "sha256-EHNkYviafnuU8AADp9oyaDuAnoPOdOVNSLCcoONnHPY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    botocore
-  ];
+  propagatedBuildInputs = [ botocore ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTestPaths = [
-    # Requires network access
-    "tests/integration"
-  ] ++
-  # There was a change in python 3.8 that defaults multiprocessing to spawn instead of fork on macOS
-  # See https://bugs.python.org/issue33725 and https://github.com/python/cpython/pull/13603.
-  # I suspect the underlying issue here is that upstream tests aren't compatible with spawn multiprocessing, and pass on linux where the default is still fork
-  lib.optionals stdenv.isDarwin [
-    "tests/unit/test_compat.py"
-  ];
+  disabledTestPaths =
+    [
+      # Requires network access
+      "tests/integration"
+    ]
+    ++
+    # There was a change in python 3.8 that defaults multiprocessing to spawn instead of fork on macOS
+    # See https://bugs.python.org/issue33725 and https://github.com/python/cpython/pull/13603.
+    # I suspect the underlying issue here is that upstream tests aren't compatible with spawn multiprocessing, and pass on linux where the default is still fork
+    lib.optionals stdenv.isDarwin [ "tests/unit/test_compat.py" ];
 
-  pythonImportsCheck = [
-    "s3transfer"
-  ];
+  pythonImportsCheck = [ "s3transfer" ];
 
   passthru.optional-dependencies = {
-    crt = [
-      botocore.optional-dependencies.crt
-    ];
+    crt = [ botocore.optional-dependencies.crt ];
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/sabctools/default.nix b/pkgs/development/python-modules/sabctools/default.nix
index d5e684bbbb46d..c8e1e294ef1dd 100644
--- a/pkgs/development/python-modules/sabctools/default.nix
+++ b/pkgs/development/python-modules/sabctools/default.nix
@@ -7,26 +7,26 @@
 }:
 buildPythonPackage rec {
   pname = "sabctools";
-  version = "8.1.0"; # needs to match version sabnzbd expects, e.g. https://github.com/sabnzbd/sabnzbd/blob/4.0.x/requirements.txt#L3
+  version = "8.2.3"; # needs to match version sabnzbd expects, e.g. https://github.com/sabnzbd/sabnzbd/blob/4.0.x/requirements.txt#L3
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-PYfbmR9wT3SHT+oFyQF2F13g7FgdvY/l9p0D65c/+RU=";
+    hash = "sha256-cP3GCp2mGivtjyA76vqtO7mJyZjHeNkvBLl2kXxOT5w=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = ["sabctools"];
+  pythonImportsCheck = [ "sabctools" ];
 
-  passthru.tests = {inherit sabnzbd;};
+  passthru.tests = {
+    inherit sabnzbd;
+  };
 
   meta = with lib; {
     description = "C implementations of functions for use within SABnzbd";
     homepage = "https://github.com/sabnzbd/sabctools";
     license = licenses.gpl2Only;
-    maintainers = with maintainers; [adamcstephens];
+    maintainers = with maintainers; [ adamcstephens ];
   };
 }
diff --git a/pkgs/development/python-modules/sabyenc/default.nix b/pkgs/development/python-modules/sabyenc/default.nix
index 8ba0b1df0db9d..9dd7e040ca88a 100644
--- a/pkgs/development/python-modules/sabyenc/default.nix
+++ b/pkgs/development/python-modules/sabyenc/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "sabyenc";
@@ -19,5 +23,4 @@ buildPythonPackage rec {
     license = lib.licenses.lgpl3;
     maintainers = [ lib.maintainers.georgewhewell ];
   };
-
 }
diff --git a/pkgs/development/python-modules/sabyenc3/default.nix b/pkgs/development/python-modules/sabyenc3/default.nix
index 19bd3d36fc46c..814ca92de8dbd 100644
--- a/pkgs/development/python-modules/sabyenc3/default.nix
+++ b/pkgs/development/python-modules/sabyenc3/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # Tests are not included in pypi distribution
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sabyenc3"
-  ];
+  pythonImportsCheck = [ "sabyenc3" ];
 
   meta = with lib; {
     description = "yEnc Decoding for Python 3";
diff --git a/pkgs/development/python-modules/sacn/default.nix b/pkgs/development/python-modules/sacn/default.nix
index 609d8969be6bc..58e87ec60ed1d 100644
--- a/pkgs/development/python-modules/sacn/default.nix
+++ b/pkgs/development/python-modules/sacn/default.nix
@@ -1,30 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "sacn";
-  version = "1.9.0";
+  version = "1.9.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LimA0I8y1tdjFk244iWvKJj0Rx3OEaYOSIJtirRHh4o=";
+    hash = "sha256-ppXWRBZVm4QroxZ19S388sRuI5zpaDgJrJqhnwefr3k=";
   };
 
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sacn"
-  ];
+  pythonImportsCheck = [ "sacn" ];
 
   meta = with lib; {
-    description = "A simple ANSI E1.31 (aka sACN) module";
+    description = "Simple ANSI E1.31 (aka sACN) module";
     homepage = "https://github.com/Hundemeier/sacn";
     changelog = "https://github.com/Hundemeier/sacn/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/sacrebleu/default.nix b/pkgs/development/python-modules/sacrebleu/default.nix
index 7a0540b82c738..50a3a5d998b7f 100644
--- a/pkgs/development/python-modules/sacrebleu/default.nix
+++ b/pkgs/development/python-modules/sacrebleu/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# Propagated build inputs
-, portalocker
-, regex
-, tabulate
-, numpy
-, colorama
-, lxml
+  # Propagated build inputs
+  portalocker,
+  regex,
+  tabulate,
+  numpy,
+  colorama,
+  lxml,
 
-# Check inputs
-, pytestCheckHook
+  # Check inputs
+  pytestCheckHook,
 }:
 let
   pname = "sacrebleu";
-  version = "2.3.1";
+  version = "2.4.2";
 in
 buildPythonPackage {
   inherit pname version;
@@ -24,8 +25,8 @@ buildPythonPackage {
   src = fetchFromGitHub {
     owner = "mjpost";
     repo = pname;
-    rev = "v${version}";
-    hash = "sha256-+58dhQv5LkjccjktfoAG2gqja6TMLIxHIbRgzZPDhKo=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-evSBHvDFOJlE2f9uM+NNCQeABY5lCc3Rs9dq11n7v5c=";
   };
 
   # postPatch = ''
@@ -42,9 +43,7 @@ buildPythonPackage {
     lxml
   ];
 
-  checkInputs = [
-    pytestCheckHook
-  ];
+  checkInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # require network access
diff --git a/pkgs/development/python-modules/sacremoses/default.nix b/pkgs/development/python-modules/sacremoses/default.nix
index c08589b66e256..08960b6dbc398 100644
--- a/pkgs/development/python-modules/sacremoses/default.nix
+++ b/pkgs/development/python-modules/sacremoses/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
-, lib
-, fetchFromGitHub
-, click
-, six
-, tqdm
-, joblib
-, pytest
+{
+  buildPythonPackage,
+  lib,
+  fetchFromGitHub,
+  click,
+  six,
+  tqdm,
+  joblib,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,12 @@ buildPythonPackage rec {
     sha256 = "1gzr56w8yx82mn08wax5m0xyg15ym4ri5l80gmagp8r53443j770";
   };
 
-  propagatedBuildInputs = [ click six tqdm joblib ];
+  propagatedBuildInputs = [
+    click
+    six
+    tqdm
+    joblib
+  ];
 
   nativeCheckInputs = [ pytest ];
   # ignore tests which call to remote host
diff --git a/pkgs/development/python-modules/safe-pysha3/default.nix b/pkgs/development/python-modules/safe-pysha3/default.nix
index bb96ee1c2dcb9..be79b88ef4ad5 100644
--- a/pkgs/development/python-modules/safe-pysha3/default.nix
+++ b/pkgs/development/python-modules/safe-pysha3/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
       --replace "failIf" "assertFalse"
   '';
 
-  pythonImportsCheck = [
-    "sha3"
-  ];
+  pythonImportsCheck = [ "sha3" ];
 
   meta = {
     changelog = "https://github.com/5afe/pysha3/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/safe/default.nix b/pkgs/development/python-modules/safe/default.nix
index 6a4515b90f83c..e59107fc33a15 100644
--- a/pkgs/development/python-modules/safe/default.nix
+++ b/pkgs/development/python-modules/safe/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
 }:
 
 buildPythonPackage rec {
@@ -20,5 +21,4 @@ buildPythonPackage rec {
     license = licenses.bsd3;
     description = "Check password strength";
   };
-
 }
diff --git a/pkgs/development/python-modules/safeio/default.nix b/pkgs/development/python-modules/safeio/default.nix
index d0dd6c4ca5e16..890e986a81b54 100644
--- a/pkgs/development/python-modules/safeio/default.nix
+++ b/pkgs/development/python-modules/safeio/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/safetensors/default.nix b/pkgs/development/python-modules/safetensors/default.nix
index 2b6d9ba0ab19f..c3e03f98876d3 100644
--- a/pkgs/development/python-modules/safetensors/default.nix
+++ b/pkgs/development/python-modules/safetensors/default.nix
@@ -1,17 +1,18 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, cargo
-, fetchFromGitHub
-, h5py
-, numpy
-, pythonOlder
-, pytestCheckHook
-, rustc
-, rustPlatform
-, setuptools-rust
-, torch
-, libiconv
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  cargo,
+  fetchFromGitHub,
+  h5py,
+  numpy,
+  pythonOlder,
+  pytestCheckHook,
+  rustc,
+  rustPlatform,
+  setuptools-rust,
+  torch,
+  libiconv,
 }:
 
 buildPythonPackage rec {
@@ -47,22 +48,25 @@ buildPythonPackage rec {
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   nativeCheckInputs = [
-    h5py numpy pytestCheckHook torch
+    h5py
+    numpy
+    pytestCheckHook
+    torch
   ];
   pytestFlagsArray = [ "tests" ];
   # don't require PaddlePaddle (not in Nixpkgs), Flax, or Tensorflow (onerous) to run tests:
-  disabledTestPaths = [
-    "tests/test_flax_comparison.py"
-    "tests/test_paddle_comparison.py"
-    "tests/test_tf_comparison.py"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # don't require mlx (not in Nixpkgs) to run tests
-    "tests/test_mlx_comparison.py"
-  ];
+  disabledTestPaths =
+    [
+      "tests/test_flax_comparison.py"
+      "tests/test_paddle_comparison.py"
+      "tests/test_tf_comparison.py"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # don't require mlx (not in Nixpkgs) to run tests
+      "tests/test_mlx_comparison.py"
+    ];
 
-  pythonImportsCheck = [
-    "safetensors"
-  ];
+  pythonImportsCheck = [ "safetensors" ];
 
   meta = with lib; {
     homepage = "https://github.com/huggingface/safetensors";
diff --git a/pkgs/development/python-modules/safety-schemas/default.nix b/pkgs/development/python-modules/safety-schemas/default.nix
index 0f9724e95f65e..c94427bdf083d 100644
--- a/pkgs/development/python-modules/safety-schemas/default.nix
+++ b/pkgs/development/python-modules/safety-schemas/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatchling
-, pythonRelaxDepsHook
-, dparse
-, packaging
-, pydantic
-, ruamel-yaml
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatchling,
+  dparse,
+  packaging,
+  pydantic,
+  ruamel-yaml,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -23,12 +23,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     hatchling
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "dparse"
-  ];
+  pythonRelaxDeps = [ "dparse" ];
 
   propagatedBuildInputs = [
     dparse
diff --git a/pkgs/development/python-modules/safety/default.nix b/pkgs/development/python-modules/safety/default.nix
index 1a5e1ab8f461e..3999897c90820 100644
--- a/pkgs/development/python-modules/safety/default.nix
+++ b/pkgs/development/python-modules/safety/default.nix
@@ -1,30 +1,30 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, pythonRelaxDepsHook
-, setuptools
-, click
-, urllib3
-, requests
-, packaging
-, dparse
-, ruamel-yaml
-, jinja2
-, marshmallow
-, authlib
-, jwt
-, rich
-, typer
-, pydantic
-, safety-schemas
-, typing-extensions
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  click,
+  urllib3,
+  requests,
+  packaging,
+  dparse,
+  ruamel-yaml,
+  jinja2,
+  marshmallow,
+  authlib,
+  jwt,
+  rich,
+  typer,
+  pydantic,
+  safety-schemas,
+  typing-extensions,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "safety";
-  version = "3.1.0";
+  version = "3.2.3";
 
   disabled = pythonOlder "3.7";
 
@@ -32,7 +32,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-cfR7guzhU+wvJA4nf3y/pw1douDRQxYsZ/Y7L3RZoao=";
+    hash = "sha256-QUFUk08XJ9r4pkc0k5RP7LOAVAw/AIddwa43c4L32D8=";
   };
 
   postPatch = ''
@@ -48,7 +48,6 @@ buildPythonPackage rec {
   '';
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -78,9 +77,7 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Disable tests depending on online services
   disabledTests = [
@@ -89,8 +86,12 @@ buildPythonPackage rec {
     "test_check_live_cached"
     "test_get_packages_licenses_without_api_key"
     "test_validate_with_policy_file_using_invalid_keyword"
+    "test_validate_with_basic_policy_file"
   ];
 
+  # ImportError: cannot import name 'get_command_for' from partially initialized module 'safety.cli_util' (most likely due to a circular import)
+  disabledTestPaths = [ "tests/alerts/test_utils.py" ];
+
   preCheck = ''
     export HOME=$(mktemp -d)
   '';
@@ -101,6 +102,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/pyupio/safety";
     changelog = "https://github.com/pyupio/safety/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ thomasdesr dotlambda ];
+    maintainers = with maintainers; [
+      thomasdesr
+      dotlambda
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/sagemaker/default.nix b/pkgs/development/python-modules/sagemaker/default.nix
index 33e0c85697c1e..c8897cf3b7a6b 100644
--- a/pkgs/development/python-modules/sagemaker/default.nix
+++ b/pkgs/development/python-modules/sagemaker/default.nix
@@ -1,38 +1,38 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, fetchpatch
-, pythonRelaxDepsHook
-, setuptools
-, attrs
-, boto3
-, cloudpickle
-, google-pasta
-, numpy
-, protobuf
-, smdebug-rulesconfig
-, importlib-metadata
-, packaging
-, pandas
-, pathos
-, schema
-, pyyaml
-, jsonschema
-, platformdirs
-, tblib
-, urllib3
-, requests
-, docker
-, tqdm
-, psutil
-, scipy
-, accelerate
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  fetchpatch,
+  setuptools,
+  attrs,
+  boto3,
+  cloudpickle,
+  google-pasta,
+  numpy,
+  protobuf,
+  smdebug-rulesconfig,
+  importlib-metadata,
+  packaging,
+  pandas,
+  pathos,
+  schema,
+  pyyaml,
+  jsonschema,
+  platformdirs,
+  tblib,
+  urllib3,
+  requests,
+  docker,
+  tqdm,
+  psutil,
+  scipy,
+  accelerate,
 }:
 
 buildPythonPackage rec {
   pname = "sagemaker";
-  version = "2.217.0";
+  version = "2.219.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -41,7 +41,7 @@ buildPythonPackage rec {
     owner = "aws";
     repo = "sagemaker-python-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-p73M0hBVpakdXGM56ECr4D3mQCBmB7Ud/p+Rj1+/Bic=";
+    hash = "sha256-TZpRRkoAlXU+Ccgxq49t+Cz0JOIUvYp7ok3x3sphncE=";
   };
 
   patches = [
@@ -59,7 +59,6 @@ buildPythonPackage rec {
 
   build-system = [
     setuptools
-    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = [
@@ -99,7 +98,11 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    local = [ urllib3 docker pyyaml ];
+    local = [
+      urllib3
+      docker
+      pyyaml
+    ];
     scipy = [ scipy ];
     huggingface = [ accelerate ];
     # feature-processor = [ pyspark sagemaker-feature-store-pyspark ]; # not available in nixpkgs
diff --git a/pkgs/development/python-modules/salmon-mail/default.nix b/pkgs/development/python-modules/salmon-mail/default.nix
index 4b821da0fe6c9..02ed82ac640fa 100644
--- a/pkgs/development/python-modules/salmon-mail/default.nix
+++ b/pkgs/development/python-modules/salmon-mail/default.nix
@@ -1,5 +1,17 @@
-{ stdenv, lib, buildPythonPackage, fetchPypi, dnspython, chardet, lmtpd
-, python-daemon, six, jinja2, mock, click }:
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  dnspython,
+  chardet,
+  lmtpd,
+  python-daemon,
+  six,
+  jinja2,
+  mock,
+  click,
+}:
 
 buildPythonPackage rec {
   pname = "salmon-mail";
@@ -11,8 +23,18 @@ buildPythonPackage rec {
     sha256 = "0q2m6xri1b7qv46rqpv2qfdgk2jvswj8lpaacnxwjna3m685fhfx";
   };
 
-  nativeCheckInputs = [ jinja2 mock ];
-  propagatedBuildInputs = [ chardet dnspython lmtpd python-daemon six click ];
+  nativeCheckInputs = [
+    jinja2
+    mock
+  ];
+  propagatedBuildInputs = [
+    chardet
+    dnspython
+    lmtpd
+    python-daemon
+    six
+    click
+  ];
 
   # Darwin tests fail without this. See:
   # https://github.com/NixOS/nixpkgs/pull/82166#discussion_r399909846
diff --git a/pkgs/development/python-modules/sampledata/default.nix b/pkgs/development/python-modules/sampledata/default.nix
index ae5086fe47b78..d2f547f32ca25 100644
--- a/pkgs/development/python-modules/sampledata/default.nix
+++ b/pkgs/development/python-modules/sampledata/default.nix
@@ -1,5 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi,
-  nose, pytz, six, versiontools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+  pytz,
+  six,
+  versiontools,
 }:
 
 buildPythonPackage rec {
@@ -18,11 +24,17 @@ buildPythonPackage rec {
     sha256 = "1kx2j49lag30d32zhzsr50gl5b949wa4lcdap2filg0d07picsdh";
   };
 
-  buildInputs = [ nose versiontools ];
-  propagatedBuildInputs = [ pytz six ];
+  buildInputs = [
+    nose
+    versiontools
+  ];
+  propagatedBuildInputs = [
+    pytz
+    six
+  ];
 
-# ERROR: test_image_path_from_directory (tests.tests.TestImageHelpers)
-# ERROR: test_image_stream (tests.tests.TestImageHelpers)
+  # ERROR: test_image_path_from_directory (tests.tests.TestImageHelpers)
+  # ERROR: test_image_stream (tests.tests.TestImageHelpers)
   doCheck = false;
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/samplerate/default.nix b/pkgs/development/python-modules/samplerate/default.nix
index 7ac9950a69668..5323935b7c536 100644
--- a/pkgs/development/python-modules/samplerate/default.nix
+++ b/pkgs/development/python-modules/samplerate/default.nix
@@ -1,46 +1,64 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, cffi
-, numpy
-, libsamplerate
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  cmake,
+  setuptools,
+  setuptools-scm,
+  pybind11,
+
+  # dependencies
+  cffi,
+  numpy,
+
+  # native dependencies
+  libsamplerate,
+
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "samplerate";
-  version = "0.1.0";
-  format = "setuptools";
+  version = "0.2.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "tuxu";
     repo = "python-samplerate";
-    rev = "refs/tags/${version}";
-    hash = "sha256-lHZ9SVnKcsEsnKYXR/QocGbKPEoA7yCZxXvrNPeH1rA=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-/9NFJcn8R0DFjVhFAIYOtzZM90hjVIfsVXFlS0nHNhA=";
   };
 
   postPatch = ''
-    substituteInPlace setup.py \
-      --replace ", 'pytest-runner'" ""
-
-    substituteInPlace samplerate/lowlevel.py --replace \
-      "lib_filename = _find_library('samplerate')" \
-      'lib_filename = "${libsamplerate.out}/lib/libsamplerate${stdenv.hostPlatform.extensions.sharedLibrary}"'
+    # unvendor pybind11, libsamplerate
+    rm -r external
+    substituteInPlace CMakeLists.txt \
+      --replace-fail "add_subdirectory(external)" "find_package(pybind11 REQUIRED)"
   '';
 
+  build-system = [
+    cmake
+    setuptools
+    setuptools-scm
+    pybind11
+  ];
+
+  dontUseCmakeConfigure = true;
+
+  buildInputs = [ libsamplerate ];
+
   propagatedBuildInputs = [
     cffi
     numpy
   ];
 
-  pythonImportsCheck = [
-    "samplerate"
-  ];
+  pythonImportsCheck = [ "samplerate" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     rm -rf samplerate
diff --git a/pkgs/development/python-modules/samsungctl/default.nix b/pkgs/development/python-modules/samsungctl/default.nix
index f4f3653d94e97..c139a1d1a4c63 100644
--- a/pkgs/development/python-modules/samsungctl/default.nix
+++ b/pkgs/development/python-modules/samsungctl/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# extra: websocket
-, websocket-client
+  # extra: websocket
+  websocket-client,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
   };
 
   passthru.optional-dependencies = {
-    websocket = [
-      websocket-client
-    ];
+    websocket = [ websocket-client ];
     # interactive_ui requires curses package
   };
 
diff --git a/pkgs/development/python-modules/samsungtvws/default.nix b/pkgs/development/python-modules/samsungtvws/default.nix
index d1f5236639f36..7111961f9224c 100644
--- a/pkgs/development/python-modules/samsungtvws/default.nix
+++ b/pkgs/development/python-modules/samsungtvws/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy27
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy27,
 
-# propagates:
-, requests
-, websocket-client
+  # propagates:
+  requests,
+  websocket-client,
 
-# extras: async
-, aiohttp
-, websockets
+  # extras: async
+  aiohttp,
+  websockets,
 
-# extras: encrypted
-, cryptography
-, py3rijndael
+  # extras: encrypted
+  cryptography,
+  py3rijndael,
 
-# tests
-, aioresponses
-, pytest-asyncio
-, pytestCheckHook
+  # tests
+  aioresponses,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -54,9 +55,7 @@ buildPythonPackage rec {
     aioresponses
     pytest-asyncio
     pytestCheckHook
-  ]
-  ++ passthru.optional-dependencies.async
-  ++ passthru.optional-dependencies.encrypted;
+  ] ++ passthru.optional-dependencies.async ++ passthru.optional-dependencies.encrypted;
 
   pythonImportsCheck = [ "samsungtvws" ];
 
diff --git a/pkgs/development/python-modules/sane/default.nix b/pkgs/development/python-modules/sane/default.nix
index 4198549f24ccc..f5fb012436bfe 100644
--- a/pkgs/development/python-modules/sane/default.nix
+++ b/pkgs/development/python-modules/sane/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, sane-backends
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  sane-backends,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     sha256 = "JAmOuDxujhsBEm5q16WwR5wHsBPF0iBQm1VYkv5JJd4=";
   };
 
-  buildInputs = [
-    sane-backends
-  ];
+  buildInputs = [ sane-backends ];
 
   meta = with lib; {
     homepage = "https://github.com/python-pillow/Sane";
diff --git a/pkgs/development/python-modules/saneyaml/default.nix b/pkgs/development/python-modules/saneyaml/default.nix
index 37ba299b8f5ba..5fca7e223f6b4 100644
--- a/pkgs/development/python-modules/saneyaml/default.nix
+++ b/pkgs/development/python-modules/saneyaml/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, setuptools-scm
-, pyyaml
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  setuptools-scm,
+  pyyaml,
+  pytestCheckHook,
 }:
 buildPythonPackage rec {
   pname = "saneyaml";
@@ -17,24 +18,16 @@ buildPythonPackage rec {
 
   dontConfigure = true;
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    pyyaml
-  ];
+  propagatedBuildInputs = [ pyyaml ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "saneyaml"
-  ];
+  pythonImportsCheck = [ "saneyaml" ];
 
   meta = with lib; {
-    description = "A PyYaml wrapper with sane behaviour to read and write readable YAML safely";
+    description = "PyYaml wrapper with sane behaviour to read and write readable YAML safely";
     homepage = "https://github.com/nexB/saneyaml";
     license = licenses.asl20;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/sanic-auth/default.nix b/pkgs/development/python-modules/sanic-auth/default.nix
index 23b38820ff22f..b2e25cd82c8aa 100644
--- a/pkgs/development/python-modules/sanic-auth/default.nix
+++ b/pkgs/development/python-modules/sanic-auth/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, sanic
-, sanic-testing
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  sanic,
+  sanic-testing,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     sha256 = "0dc24ynqjraqwgvyk0g9bj87zgpq4xnssl24hnsn7l5vlkmk8198";
   };
 
-  propagatedBuildInputs = [
-    sanic
-  ];
+  propagatedBuildInputs = [ sanic ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -37,9 +36,7 @@ buildPythonPackage rec {
       --replace "allow_redirects=False" "follow_redirects=False"
   '';
 
-  pythonImportsCheck = [
-    "sanic_auth"
-  ];
+  pythonImportsCheck = [ "sanic_auth" ];
 
   meta = with lib; {
     description = "Simple Authentication for Sanic";
diff --git a/pkgs/development/python-modules/sanic-routing/default.nix b/pkgs/development/python-modules/sanic-routing/default.nix
index f0e09c73862fc..7e7897cc509b1 100644
--- a/pkgs/development/python-modules/sanic-routing/default.nix
+++ b/pkgs/development/python-modules/sanic-routing/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pytest-asyncio
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pytest-asyncio,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "sanic_routing"
-  ];
+  pythonImportsCheck = [ "sanic_routing" ];
 
   meta = with lib; {
     description = "Core routing component for the Sanic web framework";
diff --git a/pkgs/development/python-modules/sanic-testing/default.nix b/pkgs/development/python-modules/sanic-testing/default.nix
index e29ad8eb3c4ff..52de4af8f1486 100644
--- a/pkgs/development/python-modules/sanic-testing/default.nix
+++ b/pkgs/development/python-modules/sanic-testing/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, callPackage
-, fetchFromGitHub
-, httpx
-, pythonOlder
-, sanic
-, websockets
+{
+  lib,
+  buildPythonPackage,
+  callPackage,
+  fetchFromGitHub,
+  httpx,
+  pythonOlder,
+  sanic,
+  websockets,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/sanic-testing/tests.nix b/pkgs/development/python-modules/sanic-testing/tests.nix
index 167a74217463b..977aab1562086 100644
--- a/pkgs/development/python-modules/sanic-testing/tests.nix
+++ b/pkgs/development/python-modules/sanic-testing/tests.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, pytest-asyncio
-, pytestCheckHook
-, sanic-testing
-, setuptools
+{
+  buildPythonPackage,
+  pytest-asyncio,
+  pytestCheckHook,
+  sanic-testing,
+  setuptools,
 }:
 
 buildPythonPackage {
@@ -22,7 +23,5 @@ buildPythonPackage {
     setuptools
   ];
 
-  pythonImportsCheck = [
-    "sanic_testing"
-  ];
+  pythonImportsCheck = [ "sanic_testing" ];
 }
diff --git a/pkgs/development/python-modules/sanic/default.nix b/pkgs/development/python-modules/sanic/default.nix
index c8cb16ecc1375..939d68c5f3feb 100644
--- a/pkgs/development/python-modules/sanic/default.nix
+++ b/pkgs/development/python-modules/sanic/default.nix
@@ -1,39 +1,39 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pythonAtLeast
-
-# build-system
-, setuptools
-, wheel
-
-# propagates
-, aiofiles
-, html5tagger
-, httptools
-, multidict
-, sanic-routing
-, tracerite
-, typing-extensions
-, ujson
-, uvloop
-, websockets
-
-# optionals
-, aioquic
-
-# tests
-, doCheck ? !stdenv.isDarwin # on Darwin, tests fail but pkg still works
-
-, beautifulsoup4
-, gunicorn
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, sanic-testing
-, uvicorn
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+
+  # build-system
+  setuptools,
+  wheel,
+
+  # propagates
+  aiofiles,
+  html5tagger,
+  httptools,
+  multidict,
+  sanic-routing,
+  tracerite,
+  typing-extensions,
+  ujson,
+  uvloop,
+  websockets,
+
+  # optionals
+  aioquic,
+
+  # tests
+  doCheck ? !stdenv.isDarwin, # on Darwin, tests fail but pkg still works
+
+  beautifulsoup4,
+  gunicorn,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  sanic-testing,
+  uvicorn,
 }:
 
 buildPythonPackage rec {
@@ -72,9 +72,7 @@ buildPythonPackage rec {
     ext = [
       # TODO: sanic-ext
     ];
-    http3 = [
-      aioquic
-    ];
+    http3 = [ aioquic ];
   };
 
   nativeCheckInputs = [
@@ -88,17 +86,19 @@ buildPythonPackage rec {
 
   inherit doCheck;
 
-  preCheck = ''
-    # Some tests depends on sanic on PATH
-    PATH="$out/bin:$PATH"
-    PYTHONPATH=$PWD:$PYTHONPATH
+  preCheck =
+    ''
+      # Some tests depends on sanic on PATH
+      PATH="$out/bin:$PATH"
+      PYTHONPATH=$PWD:$PYTHONPATH
 
-    # needed for relative paths for some packages
-    cd tests
-  '' + lib.optionalString stdenv.isDarwin ''
-    # OSError: [Errno 24] Too many open files
-    ulimit -n 1024
-  '';
+      # needed for relative paths for some packages
+      cd tests
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      # OSError: [Errno 24] Too many open files
+      ulimit -n 1024
+    '';
 
   # uvloop usage is buggy
   #SANIC_NO_UVLOOP = true;
@@ -108,39 +108,41 @@ buildPythonPackage rec {
     "-vvv"
   ];
 
-  disabledTests = [
-    # Require networking
-    "test_full_message"
-    # Server mode mismatch (debug vs production)
-    "test_num_workers"
-    # Racy tests
-    "test_keep_alive_client_timeout"
-    "test_keep_alive_server_timeout"
-    "test_zero_downtime"
-    # sanic.exceptions.SanicException: Cannot setup Sanic Simple Server without a path to a directory
-    "test_load_app_simple"
-    # create defunct python processes
-    "test_reloader_live"
-    "test_reloader_live_with_dir"
-    "test_reload_listeners"
-    # crash the python interpreter
-    "test_host_port_localhost"
-    "test_host_port"
-    "test_server_run"
-    # NoneType object is not subscriptable
-    "test_serve_app_implicit"
-    # AssertionError: assert [] == ['Restarting a process', 'Begin restart termination', 'Starting a process']
-    "test_default_reload_shutdown_order"
-    # App not found.
-    "test_input_is_dir"
-    # HTTP 500 with Websocket subprotocols
-    "test_websocket_route_with_subprotocols"
-    # Socket closes early
-    "test_no_exceptions_when_cancel_pending_request"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    # AttributeError: 'has_calls' is not a valid assertion. Use a spec for the mock if 'has_calls' is meant to be an attribute.
-    "test_ws_frame_put_message_into_queue"
-  ];
+  disabledTests =
+    [
+      # Require networking
+      "test_full_message"
+      # Server mode mismatch (debug vs production)
+      "test_num_workers"
+      # Racy tests
+      "test_keep_alive_client_timeout"
+      "test_keep_alive_server_timeout"
+      "test_zero_downtime"
+      # sanic.exceptions.SanicException: Cannot setup Sanic Simple Server without a path to a directory
+      "test_load_app_simple"
+      # create defunct python processes
+      "test_reloader_live"
+      "test_reloader_live_with_dir"
+      "test_reload_listeners"
+      # crash the python interpreter
+      "test_host_port_localhost"
+      "test_host_port"
+      "test_server_run"
+      # NoneType object is not subscriptable
+      "test_serve_app_implicit"
+      # AssertionError: assert [] == ['Restarting a process', 'Begin restart termination', 'Starting a process']
+      "test_default_reload_shutdown_order"
+      # App not found.
+      "test_input_is_dir"
+      # HTTP 500 with Websocket subprotocols
+      "test_websocket_route_with_subprotocols"
+      # Socket closes early
+      "test_no_exceptions_when_cancel_pending_request"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # AttributeError: 'has_calls' is not a valid assertion. Use a spec for the mock if 'has_calls' is meant to be an attribute.
+      "test_ws_frame_put_message_into_queue"
+    ];
 
   disabledTestPaths = [
     # We are not interested in benchmarks
diff --git a/pkgs/development/python-modules/sanix/default.nix b/pkgs/development/python-modules/sanix/default.nix
index 64fd15074556b..8f807fdd4ae27 100644
--- a/pkgs/development/python-modules/sanix/default.nix
+++ b/pkgs/development/python-modules/sanix/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,13 +21,9 @@ buildPythonPackage rec {
     hash = "sha256-D2w3hmL8ym63liWOYdZS4ry3lJ0utbbYGagWoOTT1TQ=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    requests
-  ];
+  dependencies = [ requests ];
 
   # Module has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/sansio-multipart/default.nix b/pkgs/development/python-modules/sansio-multipart/default.nix
index e9379bc52236a..ef47ab77c7ed4 100644
--- a/pkgs/development/python-modules/sansio-multipart/default.nix
+++ b/pkgs/development/python-modules/sansio-multipart/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, isPy27
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  isPy27,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/sarge/default.nix b/pkgs/development/python-modules/sarge/default.nix
index f3dc0f269f859..e9ad2980e319a 100644
--- a/pkgs/development/python-modules/sarge/default.nix
+++ b/pkgs/development/python-modules/sarge/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-bT1DbcQi+SbeRBsL7ILuQbSnAj3BBB4+FNl+Zek5xU4=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Aarch64-linux times out for these tests, so they need to be disabled.
@@ -26,9 +25,7 @@ buildPythonPackage rec {
     "test_feeder"
   ];
 
-  pythonImportsCheck = [
-    "sarge"
-  ];
+  pythonImportsCheck = [ "sarge" ];
 
   meta = with lib; {
     description = "Python wrapper for subprocess which provides command pipeline functionality";
diff --git a/pkgs/development/python-modules/sarif-om/default.nix b/pkgs/development/python-modules/sarif-om/default.nix
index dafaad9d11e33..3d4e0134d5910 100644
--- a/pkgs/development/python-modules/sarif-om/default.nix
+++ b/pkgs/development/python-modules/sarif-om/default.nix
@@ -1,6 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi
-, attrs
-, pbr
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  attrs,
+  pbr,
 }:
 
 buildPythonPackage rec {
@@ -14,13 +17,9 @@ buildPythonPackage rec {
     sha256 = "cd5f416b3083e00d402a92e449a7ff67af46f11241073eea0461802a3b5aef98";
   };
 
-  nativeBuildInputs = [
-    pbr
-  ];
+  nativeBuildInputs = [ pbr ];
 
-  propagatedBuildInputs = [
-    attrs
-  ];
+  propagatedBuildInputs = [ attrs ];
 
   pythonImportsCheck = [ "sarif_om" ];
 
diff --git a/pkgs/development/python-modules/sarif-tools/default.nix b/pkgs/development/python-modules/sarif-tools/default.nix
new file mode 100644
index 0000000000000..911e21198b8ac
--- /dev/null
+++ b/pkgs/development/python-modules/sarif-tools/default.nix
@@ -0,0 +1,62 @@
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  poetry-core,
+  jsonpath-ng,
+  jinja2,
+  python,
+  python-docx,
+  matplotlib,
+  pyyaml,
+  pytestCheckHook,
+  pythonOlder,
+}:
+
+buildPythonPackage rec {
+  pname = "sarif-tools";
+  version = "2.0.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "microsoft";
+    repo = "sarif-tools";
+    rev = "v${version}";
+    hash = "sha256-80amYGnf7xZdpxzTjBGwgg39YN/jJsEkTm0uAlVbH0w=";
+  };
+
+  disabled = pythonOlder "3.8";
+
+  nativeBuildInputs = [
+    poetry-core
+  ];
+
+  propagatedBuildInputs = [
+    jsonpath-ng
+    jinja2
+    python
+    python-docx
+    matplotlib
+    pyyaml
+  ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonRelaxDeps = [ "python-docx" ];
+
+  disabledTests = [
+    # Broken, re-enable once https://github.com/microsoft/sarif-tools/pull/41 is merged
+    "test_version"
+  ];
+
+  pythonImportsCheck = [ "sarif" ];
+
+  meta = {
+    description = "Set of command line tools and Python library for working with SARIF files";
+    homepage = "https://github.com/microsoft/sarif-tools";
+    changelog = "https://github.com/microsoft/sarif-tools/releases/tag/v${version}";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ puzzlewolf ];
+    mainProgram = "sarif";
+  };
+}
diff --git a/pkgs/development/python-modules/sasmodels/default.nix b/pkgs/development/python-modules/sasmodels/default.nix
index a0e1907c9b1d1..0f044c6e28b5c 100644
--- a/pkgs/development/python-modules/sasmodels/default.nix
+++ b/pkgs/development/python-modules/sasmodels/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pytest
-, numpy
-, scipy
-, matplotlib
-, docutils
-, pyopencl
-, opencl-headers
-, pythonOlder
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pytest,
+  numpy,
+  scipy,
+  matplotlib,
+  docutils,
+  pyopencl,
+  opencl-headers,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-GZQYVvQ4bEBizTmJ+o5fIfGr8gn2/4uD3PxIswEjzSE=";
   };
 
-  buildInputs = [
-    opencl-headers
-  ];
+  buildInputs = [ opencl-headers ];
 
   propagatedBuildInputs = [
     docutils
@@ -39,17 +38,13 @@ buildPythonPackage rec {
 
   # Note: the 1.0.5 release should be compatible with pytest6, so this can
   # be set back to 'pytest' at that point
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
   checkPhase = ''
     HOME=$(mktemp -d) py.test -c ./pytest.ini
   '';
 
-  pythonImportsCheck = [
-    "sasmodels"
-  ];
+  pythonImportsCheck = [ "sasmodels" ];
 
   meta = with lib; {
     description = "Library of small angle scattering models";
diff --git a/pkgs/development/python-modules/scalene/default.nix b/pkgs/development/python-modules/scalene/default.nix
index 18eebe07cc198..4d2f02313d48c 100644
--- a/pkgs/development/python-modules/scalene/default.nix
+++ b/pkgs/development/python-modules/scalene/default.nix
@@ -1,41 +1,32 @@
-{ lib
-, buildPythonPackage
-, hypothesis
-, fetchpatch
-, fetchPypi
-, setuptools
-, setuptools-scm
-, cloudpickle
-, cython
-, jinja2
-, numpy
-, psutil
-, pynvml
-, pytestCheckHook
-, pythonOlder
-, rich
+{
+  lib,
+  buildPythonPackage,
+  hypothesis,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  cloudpickle,
+  cython,
+  jinja2,
+  numpy,
+  psutil,
+  pynvml,
+  pytestCheckHook,
+  pythonOlder,
+  rich,
 }:
 
 buildPythonPackage rec {
   pname = "scalene";
-  version = "1.5.39";
+  version = "1.5.42.2";
   pyproject = true;
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-B4pDLP3+56toQZyvh6+6NimCKv0cpcO0ydcqV1tJZkg=";
+    hash = "sha256-0ZGk0xFBFSeeg4vjNXu/ppGdEKGhUc2ql4R6oWG23aQ=";
   };
 
-  patches = [
-    # fix scalene_config import. remove on next update
-    (fetchpatch {
-      name = "scalene_config-import-fix.patch";
-      url = "https://github.com/plasma-umass/scalene/commit/cd437be11f600ac0925ce77efa516e6d83934200.patch";
-      hash = "sha256-YjFh+mu5jyIJYUQFhmGqLXhec6lgQAdj4tWxij3NkwU=";
-    })
-  ];
-
   nativeBuildInputs = [
     cython
     setuptools
@@ -52,23 +43,13 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   checkInputs = [
     hypothesis
     numpy
   ];
 
-  disabledTestPaths = [
-    # remove on next update
-    # Failing Darwin-specific tests that were subsequently removed from the source repo.
-    "tests/test_coverup_35.py"
-    "tests/test_coverup_42.py"
-    "tests/test_coverup_43.py"
-  ];
-
   # remove scalene directory to prevent pytest import confusion
   preCheck = ''
     rm -rf scalene
diff --git a/pkgs/development/python-modules/scales/default.nix b/pkgs/development/python-modules/scales/default.nix
index 9c7ebfe8e9a02..ff9ab853e5c92 100644
--- a/pkgs/development/python-modules/scales/default.nix
+++ b/pkgs/development/python-modules/scales/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -26,5 +27,4 @@ buildPythonPackage rec {
     homepage = "https://www.github.com/Cue/scales";
     license = licenses.asl20;
   };
-
 }
diff --git a/pkgs/development/python-modules/scancode-toolkit/default.nix b/pkgs/development/python-modules/scancode-toolkit/default.nix
index 47f7eb93a349b..a3ca41383be3f 100644
--- a/pkgs/development/python-modules/scancode-toolkit/default.nix
+++ b/pkgs/development/python-modules/scancode-toolkit/default.nix
@@ -1,61 +1,62 @@
-{ lib
-, attrs
-, beautifulsoup4
-, bitarray
-, boolean-py
-, buildPythonPackage
-, chardet
-, click
-, colorama
-, commoncode
-, container-inspector
-, debian-inspector
-, dparse2
-, extractcode
-, extractcode-7z
-, extractcode-libarchive
-, fasteners
-, fetchPypi
-, fingerprints
-, ftfy
-, gemfileparser2
-, html5lib
-, importlib-metadata
-, intbitset
-, jaraco-functools
-, javaproperties
-, jinja2
-, jsonstreams
-, license-expression
-, lxml
-, markupsafe
-, packageurl-python
-, packaging
-, parameter-expansion-patched
-, pefile
-, pip-requirements-parser
-, pkginfo2
-, pluggy
-, plugincode
-, publicsuffix2
-, pyahocorasick
-, pycryptodome
-, pygmars
-, pygments
-, pymaven-patch
-, pytestCheckHook
-, pythonOlder
-, requests
-, saneyaml
-, setuptools
-, spdx-tools
-, text-unidecode
-, toml
-, typecode
-, typecode-libmagic
-, urlpy
-, xmltodict
-, zipp
+{
+  lib,
+  attrs,
+  beautifulsoup4,
+  bitarray,
+  boolean-py,
+  buildPythonPackage,
+  chardet,
+  click,
+  colorama,
+  commoncode,
+  container-inspector,
+  debian-inspector,
+  dparse2,
+  extractcode,
+  extractcode-7z,
+  extractcode-libarchive,
+  fasteners,
+  fetchPypi,
+  fingerprints,
+  ftfy,
+  gemfileparser2,
+  html5lib,
+  importlib-metadata,
+  intbitset,
+  jaraco-functools,
+  javaproperties,
+  jinja2,
+  jsonstreams,
+  license-expression,
+  lxml,
+  markupsafe,
+  packageurl-python,
+  packaging,
+  parameter-expansion-patched,
+  pefile,
+  pip-requirements-parser,
+  pkginfo2,
+  pluggy,
+  plugincode,
+  publicsuffix2,
+  pyahocorasick,
+  pycryptodome,
+  pygmars,
+  pygments,
+  pymaven-patch,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  saneyaml,
+  setuptools,
+  spdx-tools,
+  text-unidecode,
+  toml,
+  typecode,
+  typecode-libmagic,
+  urlpy,
+  xmltodict,
+  zipp,
 }:
 
 buildPythonPackage rec {
@@ -72,9 +73,7 @@ buildPythonPackage rec {
 
   dontConfigure = true;
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     attrs
@@ -128,13 +127,9 @@ buildPythonPackage rec {
     typecode-libmagic
     urlpy
     xmltodict
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    zipp
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ zipp ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Importing scancode needs a writeable home, and preCheck happens in between
   # pythonImportsCheckPhase and pytestCheckPhase.
@@ -142,9 +137,7 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  pythonImportsCheck = [
-    "scancode"
-  ];
+  pythonImportsCheck = [ "scancode" ];
 
   disabledTestPaths = [
     # Tests are outdated
@@ -159,7 +152,10 @@ buildPythonPackage rec {
     description = "Tool to scan code for license, copyright, package and their documented dependencies and other interesting facts";
     homepage = "https://github.com/nexB/scancode-toolkit";
     changelog = "https://github.com/nexB/scancode-toolkit/blob/v${version}/CHANGELOG.rst";
-    license = with licenses; [ asl20 cc-by-40 ];
+    license = with licenses; [
+      asl20
+      cc-by-40
+    ];
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/scapy/default.nix b/pkgs/development/python-modules/scapy/default.nix
index dede907418e3f..2b643a089512b 100644
--- a/pkgs/development/python-modules/scapy/default.nix
+++ b/pkgs/development/python-modules/scapy/default.nix
@@ -1,13 +1,31 @@
-{ buildPythonPackage, fetchFromGitHub, stdenv, lib, isPyPy
-, pycrypto, ecdsa # TODO
-, mock, can, brotli
-, withOptionalDeps ? true, tcpdump, ipython
-, withCryptography ? true, cryptography
-, withVoipSupport ? true, sox
-, withPlottingSupport ? true, matplotlib
-, withGraphicsSupport ? false, pyx, texliveBasic, graphviz, imagemagick
-, withManufDb ? false, wireshark
-, libpcap
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  stdenv,
+  lib,
+  isPyPy,
+  pycrypto,
+  ecdsa, # TODO
+  mock,
+  can,
+  brotli,
+  withOptionalDeps ? true,
+  tcpdump,
+  ipython,
+  withCryptography ? true,
+  cryptography,
+  withVoipSupport ? true,
+  sox,
+  withPlottingSupport ? true,
+  matplotlib,
+  withGraphicsSupport ? false,
+  pyx,
+  texliveBasic,
+  graphviz,
+  imagemagick,
+  withManufDb ? false,
+  wireshark,
+  libpcap,
 # 2D/3D graphics and graphs TODO: VPython
 # TODO: nmap, numpy
 }:
@@ -26,35 +44,51 @@ buildPythonPackage rec {
     hash = "sha256-xJlovcxUQOQHfOU0Jgin/ayd2T5fOyeN4Jg0DbLHoeU=";
   };
 
-  patches = [
-    ./find-library.patch
-  ];
+  patches = [ ./find-library.patch ];
 
-  postPatch = ''
-    printf "${version}" > scapy/VERSION
+  postPatch =
+    ''
+      printf "${version}" > scapy/VERSION
 
-    libpcap_file="${lib.getLib libpcap}/lib/libpcap${stdenv.hostPlatform.extensions.sharedLibrary}"
-    if ! [ -e "$libpcap_file" ]; then
-        echo "error: $libpcap_file not found" >&2
-        exit 1
-    fi
-    substituteInPlace "scapy/libs/winpcapy.py" \
-        --replace "@libpcap_file@" "$libpcap_file"
-  '' + lib.optionalString withManufDb ''
-    substituteInPlace scapy/data.py --replace "/opt/wireshark" "${wireshark}"
-  '';
+      libpcap_file="${lib.getLib libpcap}/lib/libpcap${stdenv.hostPlatform.extensions.sharedLibrary}"
+      if ! [ -e "$libpcap_file" ]; then
+          echo "error: $libpcap_file not found" >&2
+          exit 1
+      fi
+      substituteInPlace "scapy/libs/winpcapy.py" \
+          --replace "@libpcap_file@" "$libpcap_file"
+    ''
+    + lib.optionalString withManufDb ''
+      substituteInPlace scapy/data.py --replace "/opt/wireshark" "${wireshark}"
+    '';
 
   buildInputs = lib.optional withVoipSupport sox;
 
-  propagatedBuildInputs = [ pycrypto ecdsa ]
-    ++ lib.optionals withOptionalDeps [ tcpdump ipython ]
+  propagatedBuildInputs =
+    [
+      pycrypto
+      ecdsa
+    ]
+    ++ lib.optionals withOptionalDeps [
+      tcpdump
+      ipython
+    ]
     ++ lib.optional withCryptography cryptography
     ++ lib.optional withPlottingSupport matplotlib
-    ++ lib.optionals withGraphicsSupport [ pyx texliveBasic graphviz imagemagick ];
+    ++ lib.optionals withGraphicsSupport [
+      pyx
+      texliveBasic
+      graphviz
+      imagemagick
+    ];
 
   # Running the tests seems too complicated:
   doCheck = false;
-  nativeCheckInputs = [ mock can brotli ];
+  nativeCheckInputs = [
+    mock
+    can
+    brotli
+  ];
   checkPhase = ''
     # TODO: be more specific about files
     patchShebangs .
@@ -63,7 +97,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "scapy" ];
 
   meta = with lib; {
-    description = "A Python-based network packet manipulation program and library";
+    description = "Python-based network packet manipulation program and library";
     mainProgram = "scapy";
     longDescription = ''
       Scapy is a powerful Python-based interactive packet manipulation program
@@ -90,6 +124,9 @@ buildPythonPackage rec {
     changelog = "https://github.com/secdev/scapy/releases/tag/v${version}";
     license = licenses.gpl2Only;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ primeos bjornfor ];
+    maintainers = with maintainers; [
+      primeos
+      bjornfor
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/schedule/default.nix b/pkgs/development/python-modules/schedule/default.nix
index 443b0f73d2df4..3b99a137eea09 100644
--- a/pkgs/development/python-modules/schedule/default.nix
+++ b/pkgs/development/python-modules/schedule/default.nix
@@ -1,25 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mock
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "schedule";
-  version = "1.2.1";
+  version = "1.2.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-hDvAU4uZyT8CuLUOPjmIbAby0AOyT0jhqkyt+j80Enk=";
+    hash = "sha256-Ff6cdf5f2blifz8ZzA7xQgUI+fmkb0XNB2nvde3l8Lc=";
   };
 
-  buildInputs = [
-    mock
-  ];
+  buildInputs = [ mock ];
 
   preCheck = ''
     # https://github.com/dbader/schedule/issues/488
@@ -28,9 +27,7 @@ buildPythonPackage rec {
       "# self.assertRaises(ScheduleValueError, every().day.until, datetime.time(hour=5))"
   '';
 
-  pythonImportsCheck = [
-    "schedule"
-  ];
+  pythonImportsCheck = [ "schedule" ];
 
   meta = with lib; {
     description = "Python job scheduling for humans";
diff --git a/pkgs/development/python-modules/schema-salad/default.nix b/pkgs/development/python-modules/schema-salad/default.nix
index 8d267299add02..4df6f0af21f08 100644
--- a/pkgs/development/python-modules/schema-salad/default.nix
+++ b/pkgs/development/python-modules/schema-salad/default.nix
@@ -9,7 +9,6 @@
   mypy,
   mypy-extensions,
   pytestCheckHook,
-  pythonRelaxDepsHook,
   pythonOlder,
   rdflib,
   requests,
@@ -22,7 +21,7 @@
 
 buildPythonPackage rec {
   pname = "schema-salad";
-  version = "8.5.20240410123758";
+  version = "8.5.20240503091721";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -31,7 +30,7 @@ buildPythonPackage rec {
     owner = "common-workflow-language";
     repo = "schema_salad";
     rev = "refs/tags/${version}";
-    hash = "sha256-AgXqeiA4sP7KBnUpb2uMWq45G0LhJ5uLtORrOG4UuB0=";
+    hash = "sha256-VbEIkWzg6kPnJWqbvlfsD83oS0VQasGQo+pUIPiGjhU=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/schema/default.nix b/pkgs/development/python-modules/schema/default.nix
index 008813330dc81..9ffeb56f887d8 100644
--- a/pkgs/development/python-modules/schema/default.nix
+++ b/pkgs/development/python-modules/schema/default.nix
@@ -1,40 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mock
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "schema";
-  version = "0.7.5";
+  version = "0.7.7";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-8GcXESxhiVyrxHB3UriHFuhCCogZ1xQEUB4RT5EEMZc=";
+    hash = "sha256-faVTq9KVihncJUfDiM3lM5izkZYXWpvlnqHK9asKGAc=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
-  pythonRemoveDeps = [
-    "contextlib2"
-  ];
+  pythonRemoveDeps = [ "contextlib2" ];
 
   nativeCheckInputs = [
     mock
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "schema"
-  ];
+  pythonImportsCheck = [ "schema" ];
 
   meta = with lib; {
     description = "Library for validating Python data structures";
diff --git a/pkgs/development/python-modules/schemainspect/default.nix b/pkgs/development/python-modules/schemainspect/default.nix
index e2c375b11b929..65077eb806d85 100644
--- a/pkgs/development/python-modules/schemainspect/default.nix
+++ b/pkgs/development/python-modules/schemainspect/default.nix
@@ -1,18 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pythonOlder
-, sqlalchemy
-, sqlbag
-, setuptools
-, poetry-core
-, pytestCheckHook
-, pytest-xdist
-, pytest-sugar
-, postgresql
-, postgresqlTestHook
-,
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pythonOlder,
+  sqlalchemy,
+  sqlbag,
+  setuptools,
+  poetry-core,
+  pytestCheckHook,
+  pytest-xdist,
+  pytest-sugar,
+  postgresql,
+  postgresqlTestHook,
 }:
 buildPythonPackage rec {
   pname = "schemainspect";
@@ -30,17 +30,14 @@ buildPythonPackage rec {
 
   patches = [
     # https://github.com/djrobstep/schemainspect/pull/87
-    (fetchpatch
-      {
-        name = "specify_poetry.patch";
-        url = "https://github.com/djrobstep/schemainspect/commit/bdcd001ef7798236fe0ff35cef52f34f388bfe68.patch";
-        hash = "sha256-/SEmcV9GjjvzfbszeGPkfd2DvYenl7bZyWdC0aI3M4M=";
-      })
+    (fetchpatch {
+      name = "specify_poetry.patch";
+      url = "https://github.com/djrobstep/schemainspect/commit/bdcd001ef7798236fe0ff35cef52f34f388bfe68.patch";
+      hash = "sha256-/SEmcV9GjjvzfbszeGPkfd2DvYenl7bZyWdC0aI3M4M=";
+    })
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
   propagatedBuildInputs = [
     setuptools # needed for 'pkg_resources'
     sqlalchemy
@@ -100,9 +97,7 @@ buildPythonPackage rec {
     "-svv"
     "tests"
   ];
-  pythonImportsCheck = [
-    "schemainspect"
-  ];
+  pythonImportsCheck = [ "schemainspect" ];
 
   postUnpack = ''
     # this dir is used to bump the version number, having it here fails the build
diff --git a/pkgs/development/python-modules/schemdraw/default.nix b/pkgs/development/python-modules/schemdraw/default.nix
index 441e668f81fc7..7dc5c17713729 100644
--- a/pkgs/development/python-modules/schemdraw/default.nix
+++ b/pkgs/development/python-modules/schemdraw/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, pyparsing
-, matplotlib
-, latex2mathml
-, ziafont
-, ziamath
-, pytestCheckHook
-, nbval
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  pyparsing,
+  matplotlib,
+  latex2mathml,
+  ziafont,
+  ziamath,
+  pytestCheckHook,
+  nbval,
 }:
 
 buildPythonPackage rec {
   pname = "schemdraw";
-  version = "0.18";
-  format = "pyproject";
+  version = "0.19";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -23,21 +24,15 @@ buildPythonPackage rec {
     owner = "cdelker";
     repo = pname;
     rev = version;
-    hash = "sha256-JJc3LA+fqB+2g7pPIZ8YMV921EyYpLZrHSJCYyYThZg=";
+    hash = "sha256-vqEHcazE5DNHr0FceOWLqq+RZmMK5ovHDVjy/2wbTJU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    pyparsing
-  ];
+  dependencies = [ pyparsing ];
 
-  passthru.optional-dependencies = {
-    matplotlib = [
-      matplotlib
-    ];
+  optional-dependencies = {
+    matplotlib = [ matplotlib ];
     svgmath = [
       latex2mathml
       ziafont
@@ -59,12 +54,14 @@ buildPythonPackage rec {
     substituteInPlace test/test_styles.ipynb --replace "font='Times', " ""
   '';
 
+  preCheck = "rm test/test_pictorial.ipynb"; # Tries to download files
+
   pytestFlagsArray = [ "--nbval-lax" ];
 
   pythonImportsCheck = [ "schemdraw" ];
 
   meta = with lib; {
-    description = "A package for producing high-quality electrical circuit schematic diagrams";
+    description = "Package for producing high-quality electrical circuit schematic diagrams";
     homepage = "https://schemdraw.readthedocs.io/en/latest/";
     changelog = "https://schemdraw.readthedocs.io/en/latest/changes.html";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/schiene/default.nix b/pkgs/development/python-modules/schiene/default.nix
index cc8d49668064f..20267d300d69a 100644
--- a/pkgs/development/python-modules/schiene/default.nix
+++ b/pkgs/development/python-modules/schiene/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "schiene"
-  ];
+  pythonImportsCheck = [ "schiene" ];
 
   meta = with lib; {
     description = "Python library for interacting with Bahn.de";
diff --git a/pkgs/development/python-modules/schwifty/default.nix b/pkgs/development/python-modules/schwifty/default.nix
index 1498dd1bfdb1c..6a3c7d25f9cf1 100644
--- a/pkgs/development/python-modules/schwifty/default.nix
+++ b/pkgs/development/python-modules/schwifty/default.nix
@@ -1,60 +1,60 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, hatchling
-, hatch-vcs
+  # build-system
+  hatchling,
+  hatch-vcs,
 
-# dependencies
-, iso3166
-, pycountry
+  # dependencies
+  importlib-resources,
+  iso3166,
+  pycountry,
+  rstr,
 
-# optional-dependencies
-, pydantic
+  # optional-dependencies
+  pydantic,
 
-# tests
-, pytestCheckHook
-, pytest-cov
-, pythonOlder
+  # tests
+  pytestCheckHook,
+  pytest-cov,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "schwifty";
-  version = "2024.4.0";
-  format = "pyproject";
+  version = "2024.6.1";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-1EV2oi2LBcjw2U7nKqdVUVDlFCzR8RqX5tVIciw1trg=";
+    hash = "sha256-32+YpDIXcgldwtxU5s9V6cong70EiyEgf9QCNYdEvp0=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     hatchling
     hatch-vcs
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     iso3166
     pycountry
-  ];
+    rstr
+  ] ++ lib.optionals (pythonOlder "3.12") [ importlib-resources ];
 
-  passthru.optional-dependencies = {
-    pydantic = [
-      pydantic
-    ];
+  optional-dependencies = {
+    pydantic = [ pydantic ];
   };
 
   nativeCheckInputs = [
     pytest-cov
     pytestCheckHook
-  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
+  ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
-  pythonImportsCheck = [
-    "schwifty"
-  ];
+  pythonImportsCheck = [ "schwifty" ];
 
   meta = with lib; {
     changelog = "https://github.com/mdomke/schwifty/blob/${version}/CHANGELOG.rst";
diff --git a/pkgs/development/python-modules/scikit-bio/default.nix b/pkgs/development/python-modules/scikit-bio/default.nix
index 2f49063ae06cb..7068063a8cb5d 100644
--- a/pkgs/development/python-modules/scikit-bio/default.nix
+++ b/pkgs/development/python-modules/scikit-bio/default.nix
@@ -1,53 +1,64 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cython
-, lockfile
-, cachecontrol
-, decorator
-, h5py
-, ipython
-, matplotlib
-, natsort
-, numpy
-, pandas
-, scipy
-, hdmedians
-, scikit-learn
-, coverage
-, python
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  cython,
+  oldest-supported-numpy,
+  requests,
+  decorator,
+  natsort,
+  numpy,
+  pandas,
+  scipy,
+  h5py,
+  hdmedians,
+  biom-format,
+  python,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
-  version = "0.6.0";
-  format = "setuptools";
   pname = "scikit-bio";
-  disabled = !isPy3k;
+  version = "0.6.0";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-EBBafDwVrlkQJEkn8punqjUjSxnr5lE7hIRUc0OywQ8=";
+  src = fetchFromGitHub {
+    owner = "scikit-bio";
+    repo = "scikit-bio";
+    rev = "refs/tags/${version}";
+    hash = "sha256-v8/r52pJpMi34SekPQBf7CqRbs+ZEyPR3WO5RBB7uKg=";
   };
 
-  nativeBuildInputs = [ cython ];
-  nativeCheckInputs = [ coverage ];
-  propagatedBuildInputs = [ lockfile cachecontrol decorator ipython matplotlib natsort numpy pandas scipy h5py hdmedians scikit-learn ];
+  build-system = [
+    setuptools
+    cython
+    oldest-supported-numpy
+  ];
+
+  dependencies = [
+    requests
+    decorator
+    natsort
+    numpy
+    pandas
+    scipy
+    h5py
+    hdmedians
+    biom-format
+  ];
 
-  # cython package not included for tests
-  doCheck = false;
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  checkPhase = ''
-    ${python.interpreter} -m skbio.test
-  '';
+  # only the $out dir contains the built cython extensions, so we run the tests inside there
+  pytestFlagsArray = [ "${placeholder "out"}/${python.sitePackages}/skbio" ];
 
   pythonImportsCheck = [ "skbio" ];
 
-  meta = with lib; {
+  meta = {
     homepage = "http://scikit-bio.org/";
     description = "Data structures, algorithms and educational resources for bioinformatics";
-    license = licenses.bsd3;
-    platforms = [ "x86_64-linux" "x86_64-darwin" ];
-    maintainers = [ ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ tomasajt ];
   };
 }
diff --git a/pkgs/development/python-modules/scikit-build-core/default.nix b/pkgs/development/python-modules/scikit-build-core/default.nix
index 0e4734d4a53b8..f9081c6265c48 100644
--- a/pkgs/development/python-modules/scikit-build-core/default.nix
+++ b/pkgs/development/python-modules/scikit-build-core/default.nix
@@ -1,34 +1,35 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, distlib
-, pythonOlder
-, exceptiongroup
-, hatch-vcs
-, hatchling
-, cattrs
-, cmake
-, ninja
-, packaging
-, pathspec
-, pyproject-metadata
-, pytest-subprocess
-, pytestCheckHook
-, setuptools
-, tomli
-, virtualenv
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  distlib,
+  pythonOlder,
+  exceptiongroup,
+  hatch-vcs,
+  hatchling,
+  cattrs,
+  cmake,
+  ninja,
+  packaging,
+  pathspec,
+  pyproject-metadata,
+  pytest-subprocess,
+  pytestCheckHook,
+  setuptools,
+  tomli,
+  virtualenv,
+  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "scikit-build-core";
-  version = "0.8.2";
+  version = "0.9.6";
   pyproject = true;
 
   src = fetchPypi {
     pname = "scikit_build_core";
     inherit version;
-    hash = "sha256-UOwkuVaMmqbicjPe6yl4kyvHmFYhKzBXXL+kBJZVxDY=";
+    hash = "sha256-e+r5M89zSsvrttlsApNlQQIkcJvN5o87C08MsD4FSTk=";
   };
 
   postPatch = lib.optionalString (pythonOlder "3.11") ''
@@ -41,12 +42,12 @@ buildPythonPackage rec {
     hatchling
   ];
 
-  propagatedBuildInputs = [
-    packaging
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    exceptiongroup
-    tomli
-  ];
+  propagatedBuildInputs =
+    [ packaging ]
+    ++ lib.optionals (pythonOlder "3.11") [
+      exceptiongroup
+      tomli
+    ];
 
   passthru.optional-dependencies = {
     pyproject = [
@@ -72,6 +73,7 @@ buildPythonPackage rec {
   disabledTestPaths = [
     # runs pip, requires network access
     "tests/test_custom_modules.py"
+    "tests/test_hatchling.py"
     "tests/test_pyproject_pep517.py"
     "tests/test_pyproject_pep518.py"
     "tests/test_pyproject_pep660.py"
@@ -81,12 +83,10 @@ buildPythonPackage rec {
     "tests/test_editable.py"
   ];
 
-  pythonImportsCheck = [
-    "scikit_build_core"
-  ];
+  pythonImportsCheck = [ "scikit_build_core" ];
 
   meta = with lib; {
-    description = "A next generation Python CMake adaptor and Python API for plugins";
+    description = "Next generation Python CMake adaptor and Python API for plugins";
     homepage = "https://github.com/scikit-build/scikit-build-core";
     changelog = "https://github.com/scikit-build/scikit-build-core/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
diff --git a/pkgs/development/python-modules/scikit-build/default.nix b/pkgs/development/python-modules/scikit-build/default.nix
index 0d35ccf4a8ed5..2071f2ca4dece 100644
--- a/pkgs/development/python-modules/scikit-build/default.nix
+++ b/pkgs/development/python-modules/scikit-build/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, fetchpatch2
-, hatch-fancy-pypi-readme
-, hatch-vcs
-, hatchling
-, distro
-, packaging
-, setuptools
-, wheel
-, tomli
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  fetchpatch2,
+  hatch-fancy-pypi-readme,
+  hatch-vcs,
+  hatchling,
+  distro,
+  packaging,
+  setuptools,
+  wheel,
+  tomli,
   # Test Inputs
-, cmake
-, cython
-, git
-, pytestCheckHook
-, pytest-mock
-, requests
-, virtualenv
+  cmake,
+  cython,
+  git,
+  pytestCheckHook,
+  pytest-mock,
+  requests,
+  virtualenv,
 }:
 
 buildPythonPackage rec {
@@ -64,9 +65,7 @@ buildPythonPackage rec {
     packaging
     setuptools
     wheel
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   nativeCheckInputs = [
     cmake
@@ -104,7 +103,10 @@ buildPythonPackage rec {
     changelog = "https://github.com/scikit-build/scikit-build/blob/${version}/CHANGES.rst";
     description = "Improved build system generator for CPython C/C++/Fortran/Cython extensions";
     homepage = "https://github.com/scikit-build/scikit-build";
-    license = with licenses; [ mit bsd2 ]; # BSD due to reuses of PyNE code
+    license = with licenses; [
+      mit
+      bsd2
+    ]; # BSD due to reuses of PyNE code
     maintainers = with maintainers; [ FlorianFranzen ];
   };
 }
diff --git a/pkgs/development/python-modules/scikit-fmm/default.nix b/pkgs/development/python-modules/scikit-fmm/default.nix
index b3e4891333acc..fb58a91c68e57 100644
--- a/pkgs/development/python-modules/scikit-fmm/default.nix
+++ b/pkgs/development/python-modules/scikit-fmm/default.nix
@@ -1,23 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  meson-python,
+  numpy,
+  python,
 }:
 
 buildPythonPackage rec {
   pname = "scikit-fmm";
-  version = "2023.4.2";
-  format = "setuptools";
+  version = "2024.5.29";
+  pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-14ccR/ggdyq6kvJWUe8U5NJ96M45PArjwCqzxuJCPAs=";
+    pname = "scikit_fmm";
+    inherit version;
+    hash = "sha256-sy7J5UKXhuL5K8zr3lBulUMekwNlBFfC8C2VzguVTUE=";
   };
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "oldest-supported-numpy" "numpy"
+  '';
+
+  build-system = [ meson-python ];
+
+  dependencies = [ numpy ];
 
   checkPhase = ''
     mkdir testdir; cd testdir
@@ -25,7 +33,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Python extension module which implements the fast marching method";
+    description = "Python extension module which implements the fast marching method";
     homepage = "https://github.com/scikit-fmm/scikit-fmm";
     license = licenses.bsd3;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/scikit-fuzzy/default.nix b/pkgs/development/python-modules/scikit-fuzzy/default.nix
index 03f10f129cbd5..f3eae80276f22 100644
--- a/pkgs/development/python-modules/scikit-fuzzy/default.nix
+++ b/pkgs/development/python-modules/scikit-fuzzy/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pythonAtLeast
-, setuptools
-, matplotlib
-, networkx
-, nose
-, numpy
-, scipy
-, pytest7CheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pythonAtLeast,
+  setuptools,
+  matplotlib,
+  networkx,
+  nose,
+  numpy,
+  scipy,
+  pytest7CheckHook,
 }:
 
 buildPythonPackage rec {
@@ -46,9 +47,7 @@ buildPythonPackage rec {
     })
   ];
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   propagatedBuildInputs = [
     networkx
diff --git a/pkgs/development/python-modules/scikit-hep-testdata/default.nix b/pkgs/development/python-modules/scikit-hep-testdata/default.nix
index be99cd22b6abd..aedf88316a465 100644
--- a/pkgs/development/python-modules/scikit-hep-testdata/default.nix
+++ b/pkgs/development/python-modules/scikit-hep-testdata/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, fetchFromGitHub
-, pythonAtLeast
-, buildPythonPackage
-, importlib-resources
-, pyyaml
-, requests
-, setuptools-scm
-, pythonOlder
+{
+  lib,
+  fetchFromGitHub,
+  pythonAtLeast,
+  buildPythonPackage,
+  importlib-resources,
+  pyyaml,
+  requests,
+  setuptools-scm,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "scikit-hep-testdata";
-  version = "0.4.44";
+  version = "0.4.45";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
@@ -20,31 +21,25 @@ buildPythonPackage rec {
     owner = "scikit-hep";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-7a1F7180mnbMiEwRWzDQt2EhRsleSoVhWtTc+5DR/2o=";
+    hash = "sha256-Kpn7Z+LJPZ9rNxQLXFtACJvfpRdDs58cy+1QlbbODLA=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     pyyaml
     requests
-  ] ++ lib.optionals (!pythonAtLeast "3.9") [
-    importlib-resources
-  ];
+  ] ++ lib.optionals (!pythonAtLeast "3.9") [ importlib-resources ];
 
   SKHEP_DATA = 1; # install the actual root files
 
   doCheck = false; # tests require networking
 
-  pythonImportsCheck = [
-    "skhep_testdata"
-  ];
+  pythonImportsCheck = [ "skhep_testdata" ];
 
   meta = with lib; {
     homepage = "https://github.com/scikit-hep/scikit-hep-testdata";
-    description = "A common package to provide example files (e.g., ROOT) for testing and developing packages against";
+    description = "Common package to provide example files (e.g., ROOT) for testing and developing packages against";
     changelog = "https://github.com/scikit-hep/scikit-hep-testdata/releases/tag/v${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/development/python-modules/scikit-image/default.nix b/pkgs/development/python-modules/scikit-image/default.nix
index f29f9870b26a5..7e4486f63dcf4 100644
--- a/pkgs/development/python-modules/scikit-image/default.nix
+++ b/pkgs/development/python-modules/scikit-image/default.nix
@@ -1,34 +1,35 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, buildPythonPackage
-, python
-, pythonOlder
-, astropy
-, cloudpickle
-, cython
-, dask
-, imageio
-, lazy-loader
-, matplotlib
-, meson-python
-, networkx
-, numpy
-, packaging
-, pillow
-, pooch
-, pyamg
-, pytestCheckHook
-, numpydoc
-, pythran
-, pywavelets
-, scikit-learn
-, scipy
-, setuptools
-, simpleitk
-, six
-, tifffile
-, wheel
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  python,
+  pythonOlder,
+  astropy,
+  cloudpickle,
+  cython,
+  dask,
+  imageio,
+  lazy-loader,
+  matplotlib,
+  meson-python,
+  networkx,
+  numpy,
+  packaging,
+  pillow,
+  pooch,
+  pyamg,
+  pytestCheckHook,
+  numpydoc,
+  pythran,
+  pywavelets,
+  scikit-learn,
+  scipy,
+  setuptools,
+  simpleitk,
+  six,
+  tifffile,
+  wheel,
 }:
 
 let
@@ -78,9 +79,7 @@ let
     ];
 
     passthru.optional-dependencies = {
-      data = [
-        pooch
-      ];
+      data = [ pooch ];
       optional = [
         astropy
         cloudpickle
@@ -95,7 +94,10 @@ let
 
     # test suite is very cpu intensive, move to passthru.tests
     doCheck = false;
-    nativeCheckInputs = [ pytestCheckHook numpydoc ];
+    nativeCheckInputs = [
+      pytestCheckHook
+      numpydoc
+    ];
 
     # (1) The package has cythonized modules, whose .so libs will appear only in the wheel, i.e. in nix store;
     # (2) To stop Python from importing the wrong directory, i.e. the one in the build dir, not the one in nix store, `skimage` dir should be removed or renamed;
@@ -110,23 +112,33 @@ let
       # Requires network access (actually some data is loaded via `skimage._shared.testing.fetch` in the global scope, which calls `pytest.skip` when a network is unaccessible, leading to a pytest collection error).
       "${installedPackageRoot}/skimage/filters/rank/tests/test_rank.py"
     ];
-    pytestFlagsArray = [ "${installedPackageRoot}" "--pyargs" "skimage" ] ++ builtins.map (testid: "--deselect=" + testid) ([
-      # These tests require network access
-      "skimage/data/test_data.py::test_skin"
-      "skimage/data/tests/test_data.py::test_skin"
-      "skimage/io/tests/test_io.py::test_imread_http_url"
-      "skimage/restoration/tests/test_rolling_ball.py::test_ndim"
-    ] ++ lib.optionals stdenv.isDarwin [
-      # Matplotlib tests are broken inside darwin sandbox
-      "skimage/feature/tests/test_util.py::test_plot_matches"
-      "skimage/filters/tests/test_thresholding.py::TestSimpleImage::test_try_all_threshold"
-      "skimage/io/tests/test_mpl_imshow.py::"
-      # See https://github.com/scikit-image/scikit-image/issues/7061 and https://github.com/scikit-image/scikit-image/issues/7104
-      "skimage/measure/tests/test_fit.py"
-    ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
-      # https://github.com/scikit-image/scikit-image/issues/7104
-      "skimage/measure/tests/test_moments.py"
-    ]);
+    pytestFlagsArray =
+      [
+        "${installedPackageRoot}"
+        "--pyargs"
+        "skimage"
+      ]
+      ++ builtins.map (testid: "--deselect=" + testid) (
+        [
+          # These tests require network access
+          "skimage/data/test_data.py::test_skin"
+          "skimage/data/tests/test_data.py::test_skin"
+          "skimage/io/tests/test_io.py::test_imread_http_url"
+          "skimage/restoration/tests/test_rolling_ball.py::test_ndim"
+        ]
+        ++ lib.optionals stdenv.isDarwin [
+          # Matplotlib tests are broken inside darwin sandbox
+          "skimage/feature/tests/test_util.py::test_plot_matches"
+          "skimage/filters/tests/test_thresholding.py::TestSimpleImage::test_try_all_threshold"
+          "skimage/io/tests/test_mpl_imshow.py::"
+          # See https://github.com/scikit-image/scikit-image/issues/7061 and https://github.com/scikit-image/scikit-image/issues/7104
+          "skimage/measure/tests/test_fit.py"
+        ]
+        ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+          # https://github.com/scikit-image/scikit-image/issues/7104
+          "skimage/measure/tests/test_moments.py"
+        ]
+      );
 
     # Check cythonized modules
     pythonImportsCheck = [
@@ -158,4 +170,4 @@ let
     };
   };
 in
-  self
+self
diff --git a/pkgs/development/python-modules/scikit-learn-extra/default.nix b/pkgs/development/python-modules/scikit-learn-extra/default.nix
index c6d897fb49fec..a7472648fd173 100644
--- a/pkgs/development/python-modules/scikit-learn-extra/default.nix
+++ b/pkgs/development/python-modules/scikit-learn-extra/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, numpy
-, cython
-, scipy
-, scikit-learn
-, matplotlib
-, pytestCheckHook
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  numpy,
+  cython,
+  scipy,
+  scikit-learn,
+  matplotlib,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,19 @@ buildPythonPackage rec {
     sha256 = "sha256-dHOwo6NIuhcvIehpuJQ621JEg5O3mnXycAhpTZKaxns=";
   };
 
-  nativeBuildInputs = [ numpy cython ];
-  propagatedBuildInputs = [ numpy scipy scikit-learn ];
-  nativeCheckInputs = [ matplotlib pytestCheckHook ];
+  nativeBuildInputs = [
+    numpy
+    cython
+  ];
+  propagatedBuildInputs = [
+    numpy
+    scipy
+    scikit-learn
+  ];
+  nativeCheckInputs = [
+    matplotlib
+    pytestCheckHook
+  ];
 
   preCheck = ''
     # Remove the package in the build dir, because Python defaults to it and
@@ -38,7 +49,7 @@ buildPythonPackage rec {
     "doc"
   ];
   disabledTests = [
-    "build"   # needs network connection
+    "build" # needs network connection
     "test_all_estimators" # sklearn.exceptions.NotFittedError: Estimator fails to pass `check_is_fitted` even though it has been fit.
   ];
 
@@ -51,7 +62,7 @@ buildPythonPackage rec {
   ];
 
   meta = {
-    description = "A set of tools for scikit-learn";
+    description = "Set of tools for scikit-learn";
     homepage = "https://github.com/scikit-learn-contrib/scikit-learn-extra";
     license = lib.licenses.bsd3;
     maintainers = with lib.maintainers; [ yl3dy ];
diff --git a/pkgs/development/python-modules/scikit-learn/default.nix b/pkgs/development/python-modules/scikit-learn/default.nix
index 88927aa4f20be..717a732327f72 100644
--- a/pkgs/development/python-modules/scikit-learn/default.nix
+++ b/pkgs/development/python-modules/scikit-learn/default.nix
@@ -1,68 +1,64 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-
-# build-system
-, cython
-, gfortran
-, numpy
-, scipy
-, setuptools
-, wheel
-
-# native dependencies
-, glibcLocales
-, llvmPackages
-, pytestCheckHook
-, pythonRelaxDepsHook
-, pytest-xdist
-, pillow
-, joblib
-, threadpoolctl
-, pythonOlder
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+
+  # build-system
+  cython,
+  gfortran,
+  meson-python,
+  numpy,
+  scipy,
+
+  # native dependencies
+  glibcLocales,
+  llvmPackages,
+  pytestCheckHook,
+  pytest-xdist,
+  pillow,
+  joblib,
+  threadpoolctl,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "scikit-learn";
-  version = "1.4.2";
+  version = "1.5.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-2qHEcdlbrQgMbkS0lGyTkKSEKtwwglcsIOT4iE456Vk=";
+    pname = "scikit_learn";
+    inherit version;
+    hash = "sha256-eJ49sBx1DtbUlvott9UGN4V7RR5XvK6GO/9wfBJHvvc=";
   };
 
-  # Avoid build-system requirements causing failure
-  prePatch = ''
+  postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace-fail "numpy==2.0.0rc1" "numpy"
+      --replace-fail "numpy>=2.0.0rc2" "numpy"
+
+    substituteInPlace meson.build --replace-fail \
+      "run_command('sklearn/_build_utils/version.py', check: true).stdout().strip()," \
+      "'${version}',"
   '';
 
   buildInputs = [
+    numpy.blas
     pillow
     glibcLocales
-  ] ++ lib.optionals stdenv.cc.isClang [
-    llvmPackages.openmp
-  ];
+  ] ++ lib.optionals stdenv.cc.isClang [ llvmPackages.openmp ];
 
   nativeBuildInputs = [
     gfortran
-    pythonRelaxDepsHook
   ];
 
   build-system = [
     cython
+    meson-python
     numpy
     scipy
-    setuptools
-    wheel
-  ];
-
-  propagatedBuildInputs = [
-    numpy.blas
   ];
 
   dependencies = [
@@ -77,7 +73,7 @@ buildPythonPackage rec {
     pytest-xdist
   ];
 
-  env.LC_ALL="en_US.UTF-8";
+  env.LC_ALL = "en_US.UTF-8";
 
   preBuild = ''
     export SKLEARN_BUILD_PARALLEL=$NIX_BUILD_CORES
@@ -94,14 +90,16 @@ buildPythonPackage rec {
   pytestFlagsArray = [
     # verbose build outputs needed to debug hard-to-reproduce hydra failures
     "-v"
-    "--pyargs" "sklearn"
+    "--pyargs"
+    "sklearn"
 
     # NuSVC memmap tests causes segmentation faults in certain environments
     # (e.g. Hydra Darwin machines) related to a long-standing joblib issue
     # (https://github.com/joblib/joblib/issues/563). See also:
     # https://github.com/scikit-learn/scikit-learn/issues/17582
     # Since we are overriding '-k' we need to include the 'disabledTests' from above manually.
-    "-k" "'not (NuSVC and memmap) ${toString (lib.forEach disabledTests (t: "and not ${t}"))}'"
+    "-k"
+    "'not (NuSVC and memmap) ${toString (lib.forEach disabledTests (t: "and not ${t}"))}'"
   ];
 
   preCheck = ''
@@ -113,12 +111,13 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sklearn" ];
 
   meta = with lib; {
-    description = "A set of python modules for machine learning and data mining";
-    changelog = let
-      major = versions.major version;
-      minor = versions.minor version;
-      dashVer = replaceStrings ["."] ["-"] version;
-    in
+    description = "Set of python modules for machine learning and data mining";
+    changelog =
+      let
+        major = versions.major version;
+        minor = versions.minor version;
+        dashVer = replaceStrings [ "." ] [ "-" ] version;
+      in
       "https://scikit-learn.org/stable/whats_new/v${major}.${minor}.html#version-${dashVer}";
     homepage = "https://scikit-learn.org";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/scikit-misc/default.nix b/pkgs/development/python-modules/scikit-misc/default.nix
index 4b995c0ba006a..5b6e9f347b3c6 100644
--- a/pkgs/development/python-modules/scikit-misc/default.nix
+++ b/pkgs/development/python-modules/scikit-misc/default.nix
@@ -1,18 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, cython
-, gfortran
-, git
-, meson-python
-, pkg-config
-, blas
-, lapack
-, numpy
-, setuptools
-, wheel
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cython,
+  gfortran,
+  git,
+  meson-python,
+  pkg-config,
+  blas,
+  lapack,
+  numpy,
+  setuptools,
+  wheel,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -51,9 +51,7 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   buildInputs = [
     blas
@@ -65,22 +63,16 @@ buildPythonPackage rec {
     "-Dlapack=${lapack.pname}"
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # can not run tests from source directory
   preCheck = ''
     cd "$(mktemp -d)"
   '';
 
-  pytestFlagsArray = [
-    "--pyargs skmisc"
-  ];
+  pytestFlagsArray = [ "--pyargs skmisc" ];
 
-  pythonImportsCheck = [
-    "skmisc"
-  ];
+  pythonImportsCheck = [ "skmisc" ];
 
   meta = with lib; {
     description = "Miscellaneous tools for scientific computing";
diff --git a/pkgs/development/python-modules/scikit-optimize/default.nix b/pkgs/development/python-modules/scikit-optimize/default.nix
index 0456d3697ad25..bc5beda2b27ca 100644
--- a/pkgs/development/python-modules/scikit-optimize/default.nix
+++ b/pkgs/development/python-modules/scikit-optimize/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, isPy27
-, buildPythonPackage
-, fetchFromGitHub
-, matplotlib
-, numpy
-, scipy
-, scikit-learn
-, pyaml
-, pytestCheckHook
+{
+  lib,
+  isPy27,
+  buildPythonPackage,
+  fetchFromGitHub,
+  matplotlib,
+  numpy,
+  scipy,
+  scikit-learn,
+  pyaml,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     pyaml
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Sequential model-based optimization toolbox";
diff --git a/pkgs/development/python-modules/scikit-posthocs/default.nix b/pkgs/development/python-modules/scikit-posthocs/default.nix
index e8f3933299a74..7072fb03234a6 100644
--- a/pkgs/development/python-modules/scikit-posthocs/default.nix
+++ b/pkgs/development/python-modules/scikit-posthocs/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, matplotlib
-, numpy
-, pandas
-, scipy
-, seaborn
-, statsmodels
-, pytestCheckHook
-, seaborn-data
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  matplotlib,
+  numpy,
+  pandas,
+  scipy,
+  seaborn,
+  statsmodels,
+  pytestCheckHook,
+  seaborn-data,
 }:
 
 buildPythonPackage rec {
   pname = "scikit-posthocs";
   version = "0.9.0";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "maximtrp";
@@ -25,13 +26,6 @@ buildPythonPackage rec {
     hash = "sha256-sRop5DKakrZEBswzTvumn68wKqU15zM5aCLfZ/PdsFg=";
   };
 
-  patches = [
-    # Fixed on master: https://github.com/maximtrp/scikit-posthocs/commit/02266a00ce0eb6a089e7efe07816da1aa5152fc9
-    ./0001-increased-abs-tolerance-for-wilcoxon-test.patch
-    # Fixed on master: https://github.com/maximtrp/scikit-posthocs/commit/5416ffba3ab01aebab3909400b5a9e847022898e
-    ./0002-Update-test_posthocs.py.patch
-  ];
-
   nativeBuildInputs = [
     setuptools
     wheel
@@ -50,9 +44,7 @@ buildPythonPackage rec {
     # tests require to write to home directory
     export SEABORN_DATA=${seaborn-data.exercise}
   '';
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
   pythonImportsCheck = [ "scikit_posthocs" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/scikit-rf/default.nix b/pkgs/development/python-modules/scikit-rf/default.nix
index aa49911009eb8..1f14444417e4f 100644
--- a/pkgs/development/python-modules/scikit-rf/default.nix
+++ b/pkgs/development/python-modules/scikit-rf/default.nix
@@ -1,38 +1,39 @@
-{ stdenv
-, lib
-, pythonOlder
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, scipy
-, pandas
-, matplotlib
-, tox
-, coverage
-, flake8
-, nbval
-, pyvisa
-, networkx
-, ipython
-, ipykernel
-, ipywidgets
-, jupyter-client
-, sphinx-rtd-theme
-, sphinx
-, nbsphinx
-, openpyxl
-, qtpy
-, pyqtgraph
-, pyqt5
-, setuptools
-, pytestCheckHook
-, pytest-cov
-, pytest-mock
+{
+  stdenv,
+  lib,
+  pythonOlder,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  scipy,
+  pandas,
+  matplotlib,
+  tox,
+  coverage,
+  flake8,
+  nbval,
+  pyvisa,
+  networkx,
+  ipython,
+  ipykernel,
+  ipywidgets,
+  jupyter-client,
+  sphinx-rtd-theme,
+  sphinx,
+  nbsphinx,
+  openpyxl,
+  qtpy,
+  pyqtgraph,
+  pyqt5,
+  setuptools,
+  pytestCheckHook,
+  pytest-cov,
+  pytest-mock,
 }:
 
 buildPythonPackage rec {
   pname = "scikit-rf";
-  version = "0.32.0";
+  version = "1.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -40,13 +41,11 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "scikit-rf";
     repo = pname;
-    rev = "refs/tags/v.${version}";
-    hash = "sha256-J7V4nQ8OxW4w75OyiMdUal8k5oXSn96g4w6k1+KV1Dw=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-TtRj9pqm5153y78MzhlVpL1EvNiNJyjUH1aOlAWU0WE=";
   };
 
-  buildInputs = [
-    setuptools
-  ];
+  buildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     numpy
@@ -55,18 +54,10 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    plot = [
-      matplotlib
-    ];
-    xlsx = [
-      openpyxl
-    ];
-    netw = [
-      networkx
-    ];
-    visa = [
-      pyvisa
-    ];
+    plot = [ matplotlib ];
+    xlsx = [ openpyxl ];
+    netw = [ networkx ];
+    visa = [ pyvisa ];
     docs = [
       ipython
       ipykernel
@@ -97,22 +88,18 @@ buildPythonPackage rec {
     networkx
   ];
 
-  checkInputs = [
-    pytestCheckHook
-  ];
+  checkInputs = [ pytestCheckHook ];
 
   # test_calibration.py generates a divide by zero error on darwin
   # https://github.com/scikit-rf/scikit-rf/issues/972
-  disabledTestPaths =
-    lib.optional (stdenv.isAarch64 && stdenv.isDarwin)
-    "skrf/calibration/tests/test_calibration.py";
+  disabledTestPaths = lib.optional (
+    stdenv.isAarch64 && stdenv.isDarwin
+  ) "skrf/calibration/tests/test_calibration.py";
 
-  pythonImportsCheck = [
-    "skrf"
-  ];
+  pythonImportsCheck = [ "skrf" ];
 
   meta = with lib; {
-    description = "A Python library for RF/Microwave engineering";
+    description = "Python library for RF/Microwave engineering";
     homepage = "https://scikit-rf.org/";
     changelog = "https://github.com/scikit-rf/scikit-rf/releases/tag/v${version}";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/scikit-survival/default.nix b/pkgs/development/python-modules/scikit-survival/default.nix
index 003bc4882b91d..e2d4ebff287bf 100644
--- a/pkgs/development/python-modules/scikit-survival/default.nix
+++ b/pkgs/development/python-modules/scikit-survival/default.nix
@@ -1,18 +1,19 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, cython
-, ecos
-, joblib
-, numexpr
-, numpy
-, osqp
-, pandas
-, setuptools-scm
-, scikit-learn
-, scipy
-, pytestCheckHook
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cython,
+  ecos,
+  joblib,
+  numexpr,
+  numpy,
+  osqp,
+  pandas,
+  setuptools-scm,
+  scikit-learn,
+  scipy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -60,19 +61,20 @@ buildPythonPackage rec {
   postCheck = "popd";
 
   # very long tests, unnecessary for a leaf package
-  disabledTests = [
-    "test_coxph"
-    "test_datasets"
-    "test_ensemble_selection"
-    "test_minlip"
-    "test_pandas_inputs"
-    "test_survival_svm"
-    "test_tree"
-  ] ++ lib.optional (stdenv.isDarwin && stdenv.isAarch64)
-    # floating point mismatch on aarch64
-    # 27079905.88052468 to far from 27079905.880496684
-    "test_coxnet"
-  ;
+  disabledTests =
+    [
+      "test_coxph"
+      "test_datasets"
+      "test_ensemble_selection"
+      "test_minlip"
+      "test_pandas_inputs"
+      "test_survival_svm"
+      "test_tree"
+    ]
+    ++ lib.optional (stdenv.isDarwin && stdenv.isAarch64)
+      # floating point mismatch on aarch64
+      # 27079905.88052468 to far from 27079905.880496684
+      "test_coxnet";
 
   meta = with lib; {
     description = "Survival analysis built on top of scikit-learn";
diff --git a/pkgs/development/python-modules/scikit-tda/default.nix b/pkgs/development/python-modules/scikit-tda/default.nix
index c4730484f7265..1f0531e684123 100644
--- a/pkgs/development/python-modules/scikit-tda/default.nix
+++ b/pkgs/development/python-modules/scikit-tda/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, scipy
-, scikit-learn
-, matplotlib
-, numba
-, umap-learn
-, cython
-, ripser
-, persim
-, pillow
-, kmapper
-, tadasets
-, pytest
-, isPy27
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  scipy,
+  scikit-learn,
+  matplotlib,
+  numba,
+  umap-learn,
+  cython,
+  ripser,
+  persim,
+  pillow,
+  kmapper,
+  tadasets,
+  pytest,
+  isPy27,
 }:
 
 buildPythonPackage rec {
@@ -45,9 +46,7 @@ buildPythonPackage rec {
     tadasets
   ];
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
   checkPhase = ''
     pytest test
diff --git a/pkgs/development/python-modules/scikits-odes/default.nix b/pkgs/development/python-modules/scikits-odes/default.nix
index 4d56ab6fa944c..f5ddb753ffaf0 100644
--- a/pkgs/development/python-modules/scikits-odes/default.nix
+++ b/pkgs/development/python-modules/scikits-odes/default.nix
@@ -1,23 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cython
-, enum34
-, gfortran
-, isPy27
-, isPy3k
-, numpy
-, pytest
-, python
-, scipy
-, sundials
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
+  cython,
+  enum34,
+  gfortran,
+  isPy27,
+  isPy3k,
+  numpy,
+  pytest,
+  python,
+  scipy,
+  sundials,
 }:
 
 buildPythonPackage rec {
   pname = "scikits.odes";
   version = "2.7.0";
 
-  disabled = isPy27;
+  # https://github.com/bmcage/odes/issues/130
+  disabled = isPy27 || pythonAtLeast "3.12";
 
   src = fetchPypi {
     inherit pname version;
@@ -44,10 +47,14 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A scikit offering extra ode/dae solvers, as an extension to what is available in scipy";
+    description = "Scikit offering extra ode/dae solvers, as an extension to what is available in scipy";
     homepage = "https://github.com/bmcage/odes";
     license = licenses.bsd3;
     maintainers = with maintainers; [ idontgetoutmuch ];
-    platforms = [ "aarch64-linux" "x86_64-linux" "x86_64-darwin" ];
+    platforms = [
+      "aarch64-linux"
+      "x86_64-linux"
+      "x86_64-darwin"
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/scikits-samplerate/default.nix b/pkgs/development/python-modules/scikits-samplerate/default.nix
deleted file mode 100644
index 5a437c07f46bb..0000000000000
--- a/pkgs/development/python-modules/scikits-samplerate/default.nix
+++ /dev/null
@@ -1,44 +0,0 @@
-{ lib
-, buildPythonPackage
-, numpy
-, libsamplerate
-, fetchFromGitHub
-}:
-
-buildPythonPackage {
-  pname = "scikits-samplerate";
-  version = "0.3.3";
-  format = "setuptools";
-
-  src = fetchFromGitHub {
-    owner = "cournape";
-    repo = "samplerate";
-    rev = "a536c97eb2d6195b5f266ea3cc3a35364c4c2210";
-    hash = "sha256-7x03Q6VXfP9p8HCk15IDZ9HeqTyi5F1AlGX/otdh8VU=";
-  };
-
-  buildInputs =  [
-    libsamplerate
-  ];
-
-  propagatedBuildInputs = [
-    numpy
-  ];
-
-  preConfigure = ''
-     cat > site.cfg << END
-     [samplerate]
-     library_dirs=${libsamplerate.out}/lib
-     include_dirs=${lib.getDev libsamplerate}/include
-     END
-  '';
-
-  doCheck = false;
-
-  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/pkgs/development/python-modules/scim2-filter-parser/default.nix b/pkgs/development/python-modules/scim2-filter-parser/default.nix
index f3d37df7735cd..4ea0d1a6c7d5d 100644
--- a/pkgs/development/python-modules/scim2-filter-parser/default.nix
+++ b/pkgs/development/python-modules/scim2-filter-parser/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, django
-, sly
-, mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  poetry-core,
+  django,
+  sly,
+  mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,28 +31,20 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace "poetry.masonry.api" "poetry.core.masonry.api"
   '';
 
-  propagatedBuildInputs = [
-    sly
-  ];
+  propagatedBuildInputs = [ sly ];
 
   passthru.optional-dependencies = {
-    django-query = [
-      django
-    ];
+    django-query = [ django ];
   };
 
-  pythonImportsCheck = [
-    "scim2_filter_parser"
-  ];
+  pythonImportsCheck = [ "scim2_filter_parser" ];
 
   nativeCheckInputs = [
     mock
@@ -59,7 +52,7 @@ buildPythonPackage rec {
   ] ++ passthru.optional-dependencies.django-query;
 
   meta = with lib; {
-    description = "A customizable parser/transpiler for SCIM2.0 filters";
+    description = "Customizable parser/transpiler for SCIM2.0 filters";
     homepage = "https://github.com/15five/scim2-filter-parser";
     changelog = "https://github.com/15five/scim2-filter-parser/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/scipy/default.nix b/pkgs/development/python-modules/scipy/default.nix
index 64e261c374039..1bd02b708089e 100644
--- a/pkgs/development/python-modules/scipy/default.nix
+++ b/pkgs/development/python-modules/scipy/default.nix
@@ -1,30 +1,34 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, fetchpatch
-, fetchurl
-, writeText
-, python
-, pythonOlder
-, buildPythonPackage
-, cython
-, gfortran
-, meson-python
-, nukeReferences
-, pkg-config
-, pythran
-, wheel
-, setuptools
-, hypothesis
-, pytest7CheckHook
-, pytest-xdist
-, numpy
-, pybind11
-, pooch
-, libxcrypt
-, xsimd
-, blas
-, lapack
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  fetchpatch,
+  fetchurl,
+  writeText,
+  python,
+  pythonOlder,
+  buildPythonPackage,
+  cython,
+  gfortran,
+  meson-python,
+  nukeReferences,
+  pkg-config,
+  pythran,
+  wheel,
+  setuptools,
+  hypothesis,
+  pytest7CheckHook,
+  pytest-xdist,
+  numpy,
+  pybind11,
+  pooch,
+  libxcrypt,
+  xsimd,
+  blas,
+  lapack,
+
+  # Reverse dependency
+  sage,
 }:
 
 let
@@ -34,15 +38,16 @@ let
   #     nix-shell maintainers/scripts/update.nix --argstr package python3.pkgs.scipy
   #
   # The update script uses sed regexes to replace them with the updated hashes.
-  version = "1.13.0";
-  srcHash = "sha256-HaYk92hOREHMOXppK+Bs9DrBu9KUVUsZ0KV+isTofUo=";
+  version = "1.13.1";
+  srcHash = "sha256-KpTvBJhiJ/IBjIFQhvS+NhRP3tbyXU5gQnAiFv47sKU=";
   datasetsHashes = {
     ascent = "1qjp35ncrniq9rhzb14icwwykqg2208hcssznn3hz27w39615kh3";
     ecg = "1bwbjp43b7znnwha5hv6wiz3g0bhwrpqpi75s12zidxrbwvd62pj";
     face = "11i8x29h80y7hhyqhil1fg8mxag5f827g33lhnsf44qk116hp2wx";
   };
   datasets = lib.mapAttrs (
-    d: hash: fetchurl {
+    d: hash:
+    fetchurl {
       url = "https://raw.githubusercontent.com/scipy/dataset-${d}/main/${d}.dat";
       sha256 = hash;
     }
@@ -55,7 +60,8 @@ let
     host-python-path = '${python.interpreter}'
     host-python-version = '${python.pythonVersion}'
   '';
-in buildPythonPackage {
+in
+buildPythonPackage {
   inherit pname version;
   format = "pyproject";
 
@@ -72,16 +78,8 @@ in buildPythonPackage {
     (fetchpatch {
       url = "https://github.com/scipy/scipy/commit/dd50ac9d98dbb70625333a23e3a90e493228e3be.patch";
       hash = "sha256-Vf6/hhwu6X5s8KWhq8bUZKtSkdVu/GtEpGtj8Olxe7s=";
-      excludes = [
-        "doc/source/dev/contributor/meson_advanced.rst"
-      ];
+      excludes = [ "doc/source/dev/contributor/meson_advanced.rst" ];
     })
-    # Fix for https://github.com/scipy/scipy/issues/20300 until 1.13.1 is
-    # released. Patch is based upon:
-    # https://github.com/scipy/pocketfft/commit/9367142748fcc9696a1c9e5a99b76ed9897c9daa
-    # Couldn't use fetchpatch because it is a submodule of scipy, and
-    # extraPrefix doesn't fit this purpose.
-    ./pocketfft-aligned_alloc.patch
   ];
 
   # Upstream says in a comment in their pyproject.toml that building against
@@ -110,9 +108,7 @@ in buildPythonPackage {
     pybind11
     pooch
     xsimd
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    libxcrypt
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ libxcrypt ];
 
   propagatedBuildInputs = [ numpy ];
 
@@ -138,18 +134,23 @@ in buildPythonPackage {
 
   doCheck = !(stdenv.isx86_64 && stdenv.isDarwin);
 
-  preConfigure = ''
-    # Helps parallelization a bit
-    export NPY_NUM_BUILD_JOBS=$NIX_BUILD_CORES
-    # We download manually the datasets and this variable tells the pooch
-    # library where these files are cached. See also:
-    # https://github.com/scipy/scipy/pull/18518#issuecomment-1562350648 And at:
-    # https://github.com/scipy/scipy/pull/17965#issuecomment-1560759962
-    export XDG_CACHE_HOME=$PWD; export HOME=$(mktemp -d); mkdir scipy-data
-  '' + (lib.concatStringsSep "\n" (lib.mapAttrsToList (d: dpath:
-    # Actually copy the datasets
-    "cp ${dpath} scipy-data/${d}.dat"
-  ) datasets));
+  preConfigure =
+    ''
+      # Helps parallelization a bit
+      export NPY_NUM_BUILD_JOBS=$NIX_BUILD_CORES
+      # We download manually the datasets and this variable tells the pooch
+      # library where these files are cached. See also:
+      # https://github.com/scipy/scipy/pull/18518#issuecomment-1562350648 And at:
+      # https://github.com/scipy/scipy/pull/17965#issuecomment-1560759962
+      export XDG_CACHE_HOME=$PWD; export HOME=$(mktemp -d); mkdir scipy-data
+    ''
+    + (lib.concatStringsSep "\n" (
+      lib.mapAttrsToList (
+        d: dpath:
+        # Actually copy the datasets
+        "cp ${dpath} scipy-data/${d}.dat"
+      ) datasets
+    ));
 
   mesonFlags = [
     "-Dblas=${blas.pname}"
@@ -185,14 +186,17 @@ in buildPythonPackage {
 
   passthru = {
     inherit blas;
-    updateScript = [
-      ./update.sh
-      # Pass it this file name as argument
-      (builtins.unsafeGetAttrPos "pname" python.pkgs.scipy).file
-    ]
-    # Pass it the names of the datasets to update their hashes
-    ++ (builtins.attrNames datasetsHashes)
-    ;
+    updateScript =
+      [
+        ./update.sh
+        # Pass it this file name as argument
+        (builtins.unsafeGetAttrPos "pname" python.pkgs.scipy).file
+      ]
+      # Pass it the names of the datasets to update their hashes
+      ++ (builtins.attrNames datasetsHashes);
+    tests = {
+      inherit sage;
+    };
   };
 
   SCIPY_USE_G77_ABI_WRAPPER = 1;
diff --git a/pkgs/development/python-modules/scipy/pocketfft-aligned_alloc.patch b/pkgs/development/python-modules/scipy/pocketfft-aligned_alloc.patch
deleted file mode 100644
index 80b047c7061c5..0000000000000
--- a/pkgs/development/python-modules/scipy/pocketfft-aligned_alloc.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From fbe3c10d117de98d80a86a10f76d4cd74efc55a8 Mon Sep 17 00:00:00 2001
-From: Martin Reinecke <martin@mpa-garching.mpg.de>
-Date: Fri, 22 Mar 2024 10:53:05 +0100
-Subject: [PATCH] unconditionaly disable use of aligned_alloc
-
----
- pocketfft_hdronly.h | 10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/scipy/_lib/pocketfft/pocketfft_hdronly.h b/scipy/_lib/pocketfft/pocketfft_hdronly.h
-index 6c98f2d..66eea06 100644
---- a/scipy/_lib/pocketfft/pocketfft_hdronly.h
-+++ b/scipy/_lib/pocketfft/pocketfft_hdronly.h
-@@ -152,11 +152,11 @@ template<> struct VLEN<double> { static constexpr size_t val=2; };
- #endif
- #endif
- 
--// the __MINGW32__ part in the conditional below works around the problem that
--// the standard C++ library on Windows does not provide aligned_alloc() even
--// though the MinGW compiler and MSVC may advertise C++17 compliance.
--// aligned_alloc is only supported from MacOS 10.15.
--#if (__cplusplus >= 201703L) && (!defined(__MINGW32__)) && (!defined(_MSC_VER)) && (__MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_15)
-+// std::aligned_alloc is a bit cursed ... it doesn't exist on MacOS < 10.15
-+// and in musl, and other OSes seem to have even more peculiarities.
-+// Let's unconditionally work around it for now.
-+# if 0
-+//#if (__cplusplus >= 201703L) && (!defined(__MINGW32__)) && (!defined(_MSC_VER)) && (__MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_15)
- inline void *aligned_alloc(size_t align, size_t size)
-   {
-   // aligned_alloc() requires that the requested size is a multiple of "align"
diff --git a/pkgs/development/python-modules/scmrepo/default.nix b/pkgs/development/python-modules/scmrepo/default.nix
index e902cac511017..e05a957ab9cf7 100644
--- a/pkgs/development/python-modules/scmrepo/default.nix
+++ b/pkgs/development/python-modules/scmrepo/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, asyncssh
-, buildPythonPackage
-, dulwich
-, dvc-http
-, dvc-objects
-, fetchFromGitHub
-, fsspec
-, funcy
-, gitpython
-, pathspec
-, pygit2
-, pygtrie
-, pythonOlder
-, setuptools
-, setuptools-scm
-, shortuuid
+{
+  lib,
+  asyncssh,
+  buildPythonPackage,
+  dulwich,
+  dvc-http,
+  dvc-objects,
+  fetchFromGitHub,
+  fsspec,
+  funcy,
+  gitpython,
+  pathspec,
+  pygit2,
+  pygtrie,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  shortuuid,
 }:
 
 buildPythonPackage rec {
   pname = "scmrepo";
-  version = "3.3.1";
+  version = "3.3.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -28,7 +29,7 @@ buildPythonPackage rec {
     owner = "iterative";
     repo = "scmrepo";
     rev = "refs/tags/${version}";
-    hash = "sha256-swv5uWsyM4mEXlurizUewnbdAOtjWgvzCO9IPfz2ZPE=";
+    hash = "sha256-wmziU00n2EjpXw8f1NwFRTUvpOftj+wa9ZiXVDh5hco=";
   };
 
   build-system = [
@@ -53,9 +54,7 @@ buildPythonPackage rec {
   # Requires a running Docker instance
   doCheck = false;
 
-  pythonImportsCheck = [
-    "scmrepo"
-  ];
+  pythonImportsCheck = [ "scmrepo" ];
 
   meta = with lib; {
     description = "SCM wrapper and fsspec filesystem";
diff --git a/pkgs/development/python-modules/scooby/default.nix b/pkgs/development/python-modules/scooby/default.nix
index 869a1a5895014..90be3a6538722 100644
--- a/pkgs/development/python-modules/scooby/default.nix
+++ b/pkgs/development/python-modules/scooby/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, pytest-console-scripts
-, pytestCheckHook
-, pythonOlder
-, pyvips
-, scipy
-, setuptools-scm
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  pytest-console-scripts,
+  pytestCheckHook,
+  pythonOlder,
+  pyvips,
+  scipy,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "scooby";
-  version = "0.9.2";
+  version = "0.10.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -22,12 +23,10 @@ buildPythonPackage rec {
     owner = "banesullivan";
     repo = "scooby";
     rev = "refs/tags/v${version}";
-    hash = "sha256-x6GPRo0OuXJtN41urviY0joZKzq0SQjUdRBpIylgcXY=";
+    hash = "sha256-KXhLN8KPz61l+4v88+kVSvodT6OXDJ3Pw9A9aFWSqYE=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   nativeCheckInputs = [
     beautifulsoup4
@@ -42,9 +41,7 @@ buildPythonPackage rec {
     export PATH="$PATH:$out/bin";
   '';
 
-  pythonImportsCheck = [
-    "scooby"
-  ];
+  pythonImportsCheck = [ "scooby" ];
 
   disabledTests = [
     # Tests have additions requirements (e.g., time and module)
@@ -58,7 +55,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/banesullivan/scooby/releases/tag/v${version}";
-    description = "A lightweight tool for reporting Python package versions and hardware resources";
+    description = "Lightweight tool for reporting Python package versions and hardware resources";
     mainProgram = "scooby";
     homepage = "https://github.com/banesullivan/scooby";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/scour/default.nix b/pkgs/development/python-modules/scour/default.nix
index 2b757d4dc3a2a..645ded228605b 100644
--- a/pkgs/development/python-modules/scour/default.nix
+++ b/pkgs/development/python-modules/scour/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, six }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "scour";
@@ -16,10 +21,10 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An SVG Optimizer / Cleaner ";
+    description = "SVG Optimizer / Cleaner ";
     mainProgram = "scour";
-    homepage    = "https://github.com/scour-project/scour";
-    license     = licenses.asl20;
+    homepage = "https://github.com/scour-project/scour";
+    license = licenses.asl20;
     maintainers = with maintainers; [ worldofpeace ];
   };
 }
diff --git a/pkgs/development/python-modules/scp/default.nix b/pkgs/development/python-modules/scp/default.nix
index 3be97953547f5..cf95431301a7c 100644
--- a/pkgs/development/python-modules/scp/default.nix
+++ b/pkgs/development/python-modules/scp/default.nix
@@ -1,23 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, paramiko
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  paramiko,
+  python,
 }:
 
 buildPythonPackage rec {
   pname = "scp";
-  version = "0.14.5";
+  version = "0.15.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZPABWJmz0hLLgIjn1A668Ghoif8OJD1cEkLv6LUPBT4=";
+    hash = "sha256-8bIumTISPM8X7r8Z4JU8bpFI9Yn5PZG4cpQaaWMFyD8=";
   };
 
-  propagatedBuildInputs = [
-    paramiko
-  ];
+  propagatedBuildInputs = [ paramiko ];
 
   checkPhase = ''
     SCPPY_PORT=10022 ${python.interpreter} test.py
diff --git a/pkgs/development/python-modules/scramp/default.nix b/pkgs/development/python-modules/scramp/default.nix
index aa6013589cd33..166f0cb4215f1 100644
--- a/pkgs/development/python-modules/scramp/default.nix
+++ b/pkgs/development/python-modules/scramp/default.nix
@@ -1,19 +1,19 @@
-{ lib
-, asn1crypto
-, buildPythonPackage
-, fetchFromGitHub
-, importlib-metadata
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  asn1crypto,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  versioningit,
 }:
 
 buildPythonPackage rec {
   pname = "scramp";
-  version = "1.4.4";
-  format = "pyproject";
+  version = "1.4.5";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -21,19 +21,15 @@ buildPythonPackage rec {
     owner = "tlocke";
     repo = "scramp";
     rev = version;
-    hash = "sha256-WOyv1fLSXG7p+WKs2QSwlsh8FSK/lxp6I1hPY0VIkKo=";
+    hash = "sha256-KpododRJ+CYRGBR7Sr5cVBhJvUwh9YmPERd/DAJqEcY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-    wheel
+  build-system = [
+    hatchling
+    versioningit
   ];
 
-  propagatedBuildInputs = [
-    asn1crypto
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  dependencies = [ asn1crypto ];
 
   nativeCheckInputs = [
     pytest-mock
@@ -47,13 +43,9 @@ buildPythonPackage rec {
     sed -i "/dynamic =/d" pyproject.toml
   '';
 
-  pythonImportsCheck = [
-    "scramp"
-  ];
+  pythonImportsCheck = [ "scramp" ];
 
-  disabledTests = [
-    "test_readme"
-  ];
+  disabledTests = [ "test_readme" ];
 
   meta = with lib; {
     description = "Implementation of the SCRAM authentication protocol";
diff --git a/pkgs/development/python-modules/scrap-engine/default.nix b/pkgs/development/python-modules/scrap-engine/default.nix
index 785b7280c746f..d1ca60e1bf435 100644
--- a/pkgs/development/python-modules/scrap-engine/default.nix
+++ b/pkgs/development/python-modules/scrap-engine/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     maintainers = with maintainers; [ fgaz ];
-    description = "A 2D ascii game engine for the terminal";
+    description = "2D ascii game engine for the terminal";
     homepage = "https://github.com/lxgr-linux/scrap_engine";
     license = licenses.gpl3Only;
   };
diff --git a/pkgs/development/python-modules/scrapy-deltafetch/default.nix b/pkgs/development/python-modules/scrapy-deltafetch/default.nix
index 755b3f02df658..1a7a426af6a38 100644
--- a/pkgs/development/python-modules/scrapy-deltafetch/default.nix
+++ b/pkgs/development/python-modules/scrapy-deltafetch/default.nix
@@ -1,4 +1,10 @@
-{ lib, fetchPypi, buildPythonPackage, scrapy, bsddb3 }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  scrapy,
+  bsddb3,
+}:
 
 buildPythonPackage rec {
   pname = "scrapy-deltafetch";
@@ -10,7 +16,10 @@ buildPythonPackage rec {
     sha256 = "13f7968bd0ffae133e2a1dede215e683b8c95285f046260603a5c3e25f2d57b0";
   };
 
-  propagatedBuildInputs = [ bsddb3 scrapy ];
+  propagatedBuildInputs = [
+    bsddb3
+    scrapy
+  ];
 
   # no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/scrapy-fake-useragent/default.nix b/pkgs/development/python-modules/scrapy-fake-useragent/default.nix
index f4474235cd237..e987c8ab4c6b3 100644
--- a/pkgs/development/python-modules/scrapy-fake-useragent/default.nix
+++ b/pkgs/development/python-modules/scrapy-fake-useragent/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fake-useragent
-, faker
-, fetchFromGitHub
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, scrapy
+{
+  lib,
+  buildPythonPackage,
+  fake-useragent,
+  faker,
+  fetchFromGitHub,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  scrapy,
 }:
 
 buildPythonPackage rec {
@@ -40,9 +41,7 @@ buildPythonPackage rec {
     scrapy
   ];
 
-  pythonImportsCheck = [
-    "scrapy_fake_useragent"
-  ];
+  pythonImportsCheck = [ "scrapy_fake_useragent" ];
 
   disabledTests = [
     # AttributeError: 'RetryUserAgentMiddleware' object has no attribute 'EXCEPTIONS_TO_RETRY'
diff --git a/pkgs/development/python-modules/scrapy-splash/default.nix b/pkgs/development/python-modules/scrapy-splash/default.nix
index da37c1712abad..f3de180ef9487 100644
--- a/pkgs/development/python-modules/scrapy-splash/default.nix
+++ b/pkgs/development/python-modules/scrapy-splash/default.nix
@@ -1,4 +1,10 @@
-{ lib, fetchPypi, buildPythonPackage, scrapy, six }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  scrapy,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "scrapy-splash";
@@ -10,7 +16,10 @@ buildPythonPackage rec {
     hash = "sha256-7PEwJk3AjgxGHIYH7K13dGimStAd7bJinA+BvV/NcpU=";
   };
 
-  propagatedBuildInputs = [ scrapy six ];
+  propagatedBuildInputs = [
+    scrapy
+    six
+  ];
 
   # no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/scrapy/default.nix b/pkgs/development/python-modules/scrapy/default.nix
index 68bb9460c14fd..f291798d0500d 100644
--- a/pkgs/development/python-modules/scrapy/default.nix
+++ b/pkgs/development/python-modules/scrapy/default.nix
@@ -1,48 +1,57 @@
-{ lib
-, stdenv
-, botocore
-, buildPythonPackage
-, cryptography
-, cssselect
-, fetchPypi
-, glibcLocales
-, installShellFiles
-, itemadapter
-, itemloaders
-, jmespath
-, lxml
-, packaging
-, parsel
-, pexpect
-, protego
-, pydispatcher
-, pyopenssl
-, pytestCheckHook
-, pythonOlder
-, queuelib
-, service-identity
-, setuptools
-, sybil
-, testfixtures
-, tldextract
-, twisted
-, w3lib
-, zope-interface
+{
+  lib,
+  stdenv,
+  botocore,
+  buildPythonPackage,
+  cryptography,
+  cssselect,
+  defusedxml,
+  fetchFromGitHub,
+  glibcLocales,
+  installShellFiles,
+  itemadapter,
+  itemloaders,
+  jmespath,
+  lxml,
+  packaging,
+  parsel,
+  pexpect,
+  protego,
+  pydispatcher,
+  pyopenssl,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  queuelib,
+  service-identity,
+  setuptools,
+  sybil,
+  testfixtures,
+  tldextract,
+  twisted,
+  uvloop,
+  w3lib,
+  zope-interface,
 }:
 
 buildPythonPackage rec {
   pname = "scrapy";
-  version = "2.11.1";
+  version = "2.11.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
-  src = fetchPypi {
-    inherit version;
-    pname = "Scrapy";
-    hash = "sha256-czoDnHQj5StpvygQtTMgk9TkKoSEYDWcB7Auz/j3Pr4=";
+  src = fetchFromGitHub {
+    owner = "scrapy";
+    repo = "scrapy";
+    rev = "refs/tags/${version}";
+    hash = "sha256-EaO1kQ3VSTwEW+r0kSKycOxHNTPwwCVjch1ZBrTU0qQ=";
   };
 
+  pythonRelaxDeps = [
+    "defusedxml"
+  ];
+
   nativeBuildInputs = [
     installShellFiles
     setuptools
@@ -51,6 +60,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     cryptography
     cssselect
+    defusedxml
     itemadapter
     itemloaders
     lxml
@@ -72,9 +82,11 @@ buildPythonPackage rec {
     glibcLocales
     jmespath
     pexpect
+    pytest-xdist
     pytestCheckHook
     sybil
     testfixtures
+    uvloop
   ];
 
   LC_ALL = "en_US.UTF-8";
@@ -87,45 +99,34 @@ buildPythonPackage rec {
     "docs"
   ];
 
-  disabledTests = [
-    # It's unclear if the failures are related to libxml2, https://github.com/NixOS/nixpkgs/pull/123890
-    "test_nested_css"
-    "test_nested_xpath"
-    "test_flavor_detection"
-    "test_follow_whitespace"
-    # Requires network access
-    "AnonymousFTPTestCase"
-    "FTPFeedStorageTest"
-    "FeedExportTest"
-    "test_custom_asyncio_loop_enabled_true"
-    "test_custom_loop_asyncio"
-    "test_custom_loop_asyncio_deferred_signal"
-    "FileFeedStoragePreFeedOptionsTest"  # https://github.com/scrapy/scrapy/issues/5157
-    "test_persist"
-    "test_timeout_download_from_spider_nodata_rcvd"
-    "test_timeout_download_from_spider_server_hangs"
-    "test_unbounded_response"
-    "CookiesMiddlewareTest"
-    # Depends on uvloop
-    "test_asyncio_enabled_reactor_different_loop"
-    "test_asyncio_enabled_reactor_same_loop"
-    # Fails with AssertionError
-    "test_peek_fifo"
-    "test_peek_one_element"
-    "test_peek_lifo"
-    "test_callback_kwargs"
-    # Test fails on Hydra
-    "test_start_requests_laziness"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_xmliter_encoding"
-    "test_download"
-    "test_reactor_default_twisted_reactor_select"
-    "URIParamsSettingTest"
-    "URIParamsFeedOptionTest"
-    # flaky on darwin-aarch64
-    "test_fixed_delay"
-    "test_start_requests_laziness"
-  ];
+  disabledTests =
+    [
+      # Requires network access
+      "AnonymousFTPTestCase"
+      "FTPFeedStorageTest"
+      "FeedExportTest"
+      "test_custom_asyncio_loop_enabled_true"
+      "test_custom_loop_asyncio"
+      "test_custom_loop_asyncio_deferred_signal"
+      "FileFeedStoragePreFeedOptionsTest" # https://github.com/scrapy/scrapy/issues/5157
+      "test_persist"
+      "test_timeout_download_from_spider_nodata_rcvd"
+      "test_timeout_download_from_spider_server_hangs"
+      "test_unbounded_response"
+      "CookiesMiddlewareTest"
+      # Test fails on Hydra
+      "test_start_requests_laziness"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      "test_xmliter_encoding"
+      "test_download"
+      "test_reactor_default_twisted_reactor_select"
+      "URIParamsSettingTest"
+      "URIParamsFeedOptionTest"
+      # flaky on darwin-aarch64
+      "test_fixed_delay"
+      "test_start_requests_laziness"
+    ];
 
   postInstall = ''
     installManPage extras/scrapy.1
@@ -134,9 +135,7 @@ buildPythonPackage rec {
       --bash extras/scrapy_bash_completion
   '';
 
-  pythonImportsCheck = [
-    "scrapy"
-  ];
+  pythonImportsCheck = [ "scrapy" ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/screed/default.nix b/pkgs/development/python-modules/screed/default.nix
index dd5a637e87c18..68dfdfb88c763 100644
--- a/pkgs/development/python-modules/screed/default.nix
+++ b/pkgs/development/python-modules/screed/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, setuptools-scm
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  setuptools-scm,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -31,7 +32,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A simple read-only sequence database, designed for short reads";
+    description = "Simple read-only sequence database, designed for short reads";
     mainProgram = "screed";
     homepage = "https://pypi.org/project/screed/";
     maintainers = with maintainers; [ luizirber ];
diff --git a/pkgs/development/python-modules/screeninfo/default.nix b/pkgs/development/python-modules/screeninfo/default.nix
index 40479baca0d16..dc32cbb1dd6b3 100644
--- a/pkgs/development/python-modules/screeninfo/default.nix
+++ b/pkgs/development/python-modules/screeninfo/default.nix
@@ -1,13 +1,14 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, libX11
-, libXinerama
-, libXrandr
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  libX11,
+  libXinerama,
+  libXrandr,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-TEy4wff0eRRkX98yK9054d33Tm6G6qWrd9Iv+ITcFmA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   postPatch = ''
     substituteInPlace screeninfo/enumerators/xinerama.py \
@@ -37,9 +36,7 @@ buildPythonPackage rec {
       --replace 'load_library("Xrandr")' 'ctypes.cdll.LoadLibrary("${libXrandr}/lib/libXrandr.so")'
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # We don't have a screen
diff --git a/pkgs/development/python-modules/screenlogicpy/default.nix b/pkgs/development/python-modules/screenlogicpy/default.nix
index 9245c427e15b1..1b2a68910955f 100644
--- a/pkgs/development/python-modules/screenlogicpy/default.nix
+++ b/pkgs/development/python-modules/screenlogicpy/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
-, pythonOlder
-, pytest-asyncio
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  pythonOlder,
+  pytest-asyncio,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,38 +24,34 @@ buildPythonPackage rec {
     hash = "sha256-z6cM0sihZvOHCA3v1DYQEev0axf4AcqEW13WA1EMhQM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    async-timeout
-  ];
+  propagatedBuildInputs = [ async-timeout ];
 
   nativeCheckInputs = [
     pytest-asyncio
     pytestCheckHook
   ];
 
-  disabledTests = [
-    # Tests require network access
-    "test_async_discovery"
-    "test_async"
-    "test_asyncio_gateway_discovery"
-    "test_discovery_async_discover"
-    "test_gateway_discovery"
-    "test_gateway"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    # Tests block on Python 3.12
-    "test_sub_unsub"
-    "test_attach_existing"
-    "test_login_async_connect_to_gateway"
-    "test_login_async_gateway_connect"
-  ];
+  disabledTests =
+    [
+      # Tests require network access
+      "test_async_discovery"
+      "test_async"
+      "test_asyncio_gateway_discovery"
+      "test_discovery_async_discover"
+      "test_gateway_discovery"
+      "test_gateway"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # Tests block on Python 3.12
+      "test_sub_unsub"
+      "test_attach_existing"
+      "test_login_async_connect_to_gateway"
+      "test_login_async_gateway_connect"
+    ];
 
-  pythonImportsCheck = [
-    "screenlogicpy"
-  ];
+  pythonImportsCheck = [ "screenlogicpy" ];
 
   meta = with lib; {
     description = "Python interface for Pentair Screenlogic devices";
diff --git a/pkgs/development/python-modules/scripttest/default.nix b/pkgs/development/python-modules/scripttest/default.nix
index f61c1747e0595..9583ae6b28d97 100644
--- a/pkgs/development/python-modules/scripttest/default.nix
+++ b/pkgs/development/python-modules/scripttest/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A library for testing interactive command-line applications";
+    description = "Library for testing interactive command-line applications";
     homepage = "https://pypi.org/project/scripttest/";
     maintainers = with maintainers; [ ];
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/scs/default.nix b/pkgs/development/python-modules/scs/default.nix
index 3584174bf2844..4afc0219d9003 100644
--- a/pkgs/development/python-modules/scs/default.nix
+++ b/pkgs/development/python-modules/scs/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, meson-python
-, pkg-config
-, Accelerate
-, blas
-, lapack
-, numpy
-, scipy
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  meson-python,
+  pkg-config,
+  Accelerate,
+  blas,
+  lapack,
+  numpy,
+  scipy,
   # check inputs
-, pytestCheckHook
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -55,12 +56,14 @@ buildPythonPackage rec {
     pkg-config
   ];
 
-  buildInputs = if stdenv.isDarwin then [
-    Accelerate
-  ] else [
-    blas
-    lapack
-  ];
+  buildInputs =
+    if stdenv.isDarwin then
+      [ Accelerate ]
+    else
+      [
+        blas
+        lapack
+      ];
 
   propagatedBuildInputs = [
     numpy
diff --git a/pkgs/development/python-modules/sdds/default.nix b/pkgs/development/python-modules/sdds/default.nix
index 8051215440802..6331affe5d6d8 100644
--- a/pkgs/development/python-modules/sdds/default.nix
+++ b/pkgs/development/python-modules/sdds/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-4phANoYohuCaLbzO4TgRkSS+UHE8CnzonpEd46xzD0M=";
   };
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "sdds"
-  ];
+  pythonImportsCheck = [ "sdds" ];
 
   meta = with lib; {
     description = "Module to handle SDDS files";
diff --git a/pkgs/development/python-modules/sdkmanager/default.nix b/pkgs/development/python-modules/sdkmanager/default.nix
index ebace96d136b1..b83579ae3a73a 100644
--- a/pkgs/development/python-modules/sdkmanager/default.nix
+++ b/pkgs/development/python-modules/sdkmanager/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitLab
-, pythonOlder
-, pythonAtLeast
-, argcomplete
-, requests
-, looseversion
-, gnupg
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitLab,
+  pythonOlder,
+  pythonAtLeast,
+  argcomplete,
+  requests,
+  looseversion,
+  gnupg,
 }:
 
 buildPythonPackage rec {
@@ -26,10 +27,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     argcomplete
     requests
-  ] ++ requests.optional-dependencies.socks
-  ++ lib.optionals (pythonAtLeast "3.12") [
-    looseversion
-  ];
+  ] ++ requests.optional-dependencies.socks ++ lib.optionals (pythonAtLeast "3.12") [ looseversion ];
 
   postInstall = ''
     wrapProgram $out/bin/sdkmanager \
@@ -43,7 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://gitlab.com/fdroid/sdkmanager";
-    description = "A drop-in replacement for sdkmanager from the Android SDK written in Python";
+    description = "Drop-in replacement for sdkmanager from the Android SDK written in Python";
     mainProgram = "sdkmanager";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ linsui ];
diff --git a/pkgs/development/python-modules/sdnotify/default.nix b/pkgs/development/python-modules/sdnotify/default.nix
index c6c0fb224b317..08ef15ac3dcf0 100644
--- a/pkgs/development/python-modules/sdnotify/default.nix
+++ b/pkgs/development/python-modules/sdnotify/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -14,7 +15,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A pure Python implementation of systemd's service notification protocol";
+    description = "Pure Python implementation of systemd's service notification protocol";
     homepage = "https://github.com/bb4242/sdnotify";
     license = licenses.mit;
     maintainers = with maintainers; [ pmiddend ];
diff --git a/pkgs/development/python-modules/seaborn/default.nix b/pkgs/development/python-modules/seaborn/default.nix
index beaf5d2e109bb..16e9d1b98078b 100644
--- a/pkgs/development/python-modules/seaborn/default.nix
+++ b/pkgs/development/python-modules/seaborn/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, matplotlib
-, pytest-xdist
-, pytestCheckHook
-, numpy
-, pandas
-, pythonOlder
-, scipy
-, statsmodels
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  matplotlib,
+  pytest-xdist,
+  pytestCheckHook,
+  numpy,
+  pandas,
+  pythonOlder,
+  scipy,
+  statsmodels,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-aGIVcdG/XN999nYBHh3lJqGa3QVt0j8kmzaxdkULznY=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     matplotlib
@@ -49,21 +48,21 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = [
-    # requires internet connection
-    "test_load_dataset_string_error"
-  ] ++ lib.optionals (!stdenv.hostPlatform.isx86) [
-    # overly strict float tolerances
-    "TestDendrogram"
-  ];
+  disabledTests =
+    [
+      # requires internet connection
+      "test_load_dataset_string_error"
+    ]
+    ++ lib.optionals (!stdenv.hostPlatform.isx86) [
+      # overly strict float tolerances
+      "TestDendrogram"
+    ];
 
   # All platforms should use Agg. Let's set it explicitly to avoid probing GUI
   # backends (leads to crashes on macOS).
-  env.MPLBACKEND="Agg";
+  env.MPLBACKEND = "Agg";
 
-  pythonImportsCheck = [
-    "seaborn"
-  ];
+  pythonImportsCheck = [ "seaborn" ];
 
   meta = with lib; {
     description = "Statistical data visualization";
diff --git a/pkgs/development/python-modules/seabreeze/default.nix b/pkgs/development/python-modules/seabreeze/default.nix
index 119e36d663ef9..fe084d9b820ed 100644
--- a/pkgs/development/python-modules/seabreeze/default.nix
+++ b/pkgs/development/python-modules/seabreeze/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
 
-# build-system
-, cython
-, git
-, pkgconfig
-, setuptools
-, setuptools-scm
+  # build-system
+  cython,
+  git,
+  pkgconfig,
+  setuptools,
+  setuptools-scm,
 
-# dependneices
-, numpy
+  # dependneices
+  numpy,
 
-# optional-dependenices
-, pyusb
+  # optional-dependenices
+  pyusb,
 
-# tests
-, mock
-, pytestCheckHook
-, zipp
+  # tests
+  mock,
+  pytestCheckHook,
+  zipp,
 }:
 
 ## Usage
@@ -47,14 +48,10 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   passthru.optional-dependencies = {
-    pyseabreeze = [
-      pyusb
-    ];
+    pyseabreeze = [ pyusb ];
   };
 
   postInstall = ''
@@ -73,8 +70,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/ap--/python-seabreeze";
-    description = "A python library to access Ocean Optics spectrometers";
-    maintainers = [];
+    description = "Python library to access Ocean Optics spectrometers";
+    maintainers = [ ];
     license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/seasonal/default.nix b/pkgs/development/python-modules/seasonal/default.nix
index d38559ff2eed2..f6aa8d2e36461 100644
--- a/pkgs/development/python-modules/seasonal/default.nix
+++ b/pkgs/development/python-modules/seasonal/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, numpy
-, scipy
-, pandas
-, matplotlib
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  numpy,
+  scipy,
+  pandas,
+  matplotlib,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
       --replace 'setup_requires=["pytest-runner"],' ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     numpy
@@ -41,15 +40,15 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    csv = [
-      pandas
-    ];
-    plot = [
-      matplotlib
-    ];
+    csv = [ pandas ];
+    plot = [ matplotlib ];
   };
 
-  pythonImportsCheck = [ "seasonal" "seasonal.trend" "seasonal.periodogram" ];
+  pythonImportsCheck = [
+    "seasonal"
+    "seasonal.trend"
+    "seasonal.periodogram"
+  ];
   nativeCheckInputs = [
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
diff --git a/pkgs/development/python-modules/seatconnect/default.nix b/pkgs/development/python-modules/seatconnect/default.nix
index 0acce07138e6d..a1a8bc36b311f 100644
--- a/pkgs/development/python-modules/seatconnect/default.nix
+++ b/pkgs/development/python-modules/seatconnect/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aiohttp
-, beautifulsoup4
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, lxml
-, pyjwt
-, pythonOlder
-, setuptools-scm
-, xmltodict
+{
+  lib,
+  aiohttp,
+  beautifulsoup4,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  lxml,
+  pyjwt,
+  pythonOlder,
+  setuptools-scm,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-HITVrI0o94a61gy/TYSGFtLBYX4Rw/dK1o2/KsvHLTQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -41,9 +40,7 @@ buildPythonPackage rec {
   # Project only has a dummy test
   doCheck = false;
 
-  pythonImportsCheck = [
-    "seatconnect"
-  ];
+  pythonImportsCheck = [ "seatconnect" ];
 
   meta = with lib; {
     description = "Python module to communicate with Seat Connect";
diff --git a/pkgs/development/python-modules/seccomp/default.nix b/pkgs/development/python-modules/seccomp/default.nix
index 3257722b17823..2e8830277b944 100644
--- a/pkgs/development/python-modules/seccomp/default.nix
+++ b/pkgs/development/python-modules/seccomp/default.nix
@@ -1,11 +1,14 @@
-{ buildPythonPackage, lib
-, cython, libseccomp
+{
+  buildPythonPackage,
+  lib,
+  cython,
+  libseccomp,
 }:
 
 buildPythonPackage rec {
-  pname   = "libseccomp";
+  pname = "libseccomp";
   version = libseccomp.version;
-  src     = libseccomp.pythonsrc;
+  src = libseccomp.pythonsrc;
 
   VERSION_RELEASE = version; # used by build system
 
@@ -23,7 +26,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python bindings for libseccomp";
-    license     = with licenses; [ lgpl21 ];
+    license = with licenses; [ lgpl21 ];
     maintainers = with maintainers; [ thoughtpolice ];
   };
 }
diff --git a/pkgs/development/python-modules/secp256k1/default.nix b/pkgs/development/python-modules/secp256k1/default.nix
index 2e2455d4e349e..dd311a7642530 100644
--- a/pkgs/development/python-modules/secp256k1/default.nix
+++ b/pkgs/development/python-modules/secp256k1/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pkg-config
-, pytestCheckHook
-, cffi
-, secp256k1
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pkg-config,
+  pytestCheckHook,
+  cffi,
+  secp256k1,
 }:
 
 buildPythonPackage rec {
@@ -25,7 +26,10 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ pkg-config ];
 
-  propagatedBuildInputs = [ cffi secp256k1 ];
+  propagatedBuildInputs = [
+    cffi
+    secp256k1
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/secretstorage/default.nix b/pkgs/development/python-modules/secretstorage/default.nix
index 59584ee9170fb..8e59e1efe9579 100644
--- a/pkgs/development/python-modules/secretstorage/default.nix
+++ b/pkgs/development/python-modules/secretstorage/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchPypi
-, jeepney
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  jeepney,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
   # Needs a D-Bus session
   doCheck = false;
 
-  pythonImportsCheck = [
-    "secretstorage"
-  ];
+  pythonImportsCheck = [ "secretstorage" ];
 
   meta = with lib; {
     description = "Python bindings to FreeDesktop.org Secret Service API";
diff --git a/pkgs/development/python-modules/sectools/default.nix b/pkgs/development/python-modules/sectools/default.nix
index f65c80aabdc13..9607ad4ab5ba7 100644
--- a/pkgs/development/python-modules/sectools/default.nix
+++ b/pkgs/development/python-modules/sectools/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, ldap3
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ldap3,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-k3k1/DFmv0resnsNht/C+2Xh6qbSQmk83eN/3vtDU00=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    ldap3
-  ];
+  propagatedBuildInputs = [ ldap3 ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sectools"
-  ];
+  pythonImportsCheck = [ "sectools" ];
 
   meta = with lib; {
     description = "library containing functions to write security tools";
diff --git a/pkgs/development/python-modules/secure/default.nix b/pkgs/development/python-modules/secure/default.nix
index c1fbd3e83e2a7..6bbe9e2b5aa53 100644
--- a/pkgs/development/python-modules/secure/default.nix
+++ b/pkgs/development/python-modules/secure/default.nix
@@ -1,6 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, isPy27
-, maya
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy27,
+  maya,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -16,7 +20,10 @@ buildPythonPackage rec {
     sha256 = "1ajz1nx0nnhsc80xbgbc42ib2h08qnccvsp5i583rd9b0f9pklwk";
   };
 
-  propagatedBuildInputs = [ maya requests ];
+  propagatedBuildInputs = [
+    maya
+    requests
+  ];
 
   # no tests in release
   doCheck = false;
diff --git a/pkgs/development/python-modules/securetar/default.nix b/pkgs/development/python-modules/securetar/default.nix
index b4c8c90989eca..5532859810d52 100644
--- a/pkgs/development/python-modules/securetar/default.nix
+++ b/pkgs/development/python-modules/securetar/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-D50ceRlK+v5Uo3qBBpVtKwI8zKU/qh1Njn3qeKM4LiY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    cryptography
-  ];
+  propagatedBuildInputs = [ cryptography ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "securetar"
-  ];
+  pythonImportsCheck = [ "securetar" ];
 
   meta = with lib; {
     description = "Module to handle tarfile backups";
diff --git a/pkgs/development/python-modules/securityreporter/default.nix b/pkgs/development/python-modules/securityreporter/default.nix
index df2f60a22cff4..3826f8397f5d6 100644
--- a/pkgs/development/python-modules/securityreporter/default.nix
+++ b/pkgs/development/python-modules/securityreporter/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, docker
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, requests
-, responses
+{
+  lib,
+  buildPythonPackage,
+  docker,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  responses,
 }:
 
 buildPythonPackage rec {
   pname = "securityreporter";
-  version = "1.0.2";
+  version = "1.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,16 +21,12 @@ buildPythonPackage rec {
     owner = "dongit-org";
     repo = "python-reporter";
     rev = "refs/tags/v${version}";
-    hash = "sha256-mBZVsoDnDRYHdcFzi4kuwmAJDRdpysUbNRcDzIhYRGY=";
+    hash = "sha256-Ddq1qjaQemawK+u3ArlsChrkzRbcuaj5LrswyTGwTrg=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    requests
-  ];
+  dependencies = [ requests ];
 
   nativeCheckInputs = [
     docker
@@ -37,9 +34,7 @@ buildPythonPackage rec {
     responses
   ];
 
-  pythonImportsCheck = [
-    "reporter"
-  ];
+  pythonImportsCheck = [ "reporter" ];
 
   disabledTestPaths = [
     # Test require a running Docker instance
@@ -47,7 +42,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python wrapper for the Reporter API";
+    description = "Python wrapper for the Reporter API";
     homepage = "https://github.com/dongit-org/python-reporter";
     changelog = "https://github.com/dongit-org/python-reporter/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/seedir/default.nix b/pkgs/development/python-modules/seedir/default.nix
index 6c5e5bc899f29..f6bf8c953e548 100644
--- a/pkgs/development/python-modules/seedir/default.nix
+++ b/pkgs/development/python-modules/seedir/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, natsort
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  natsort,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,21 +21,13 @@ buildPythonPackage rec {
     hash = "sha256-ioez5lBNyiBK3poL2Px3KtCQeM+Gh2d4iD3SoAIHFAk=";
   };
 
-  propagatedBuildInputs = [
-    natsort
-  ];
+  propagatedBuildInputs = [ natsort ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "seedir"
-  ];
+  pythonImportsCheck = [ "seedir" ];
 
-  pytestFlagsArray = [
-    "tests/tests.py"
-  ];
+  pytestFlagsArray = [ "tests/tests.py" ];
 
   meta = with lib; {
     description = "Module for for creating, editing, and reading folder tree diagrams";
diff --git a/pkgs/development/python-modules/seekpath/default.nix b/pkgs/development/python-modules/seekpath/default.nix
index 39b173d0875f0..356a4d2b42747 100644
--- a/pkgs/development/python-modules/seekpath/default.nix
+++ b/pkgs/development/python-modules/seekpath/default.nix
@@ -1,4 +1,15 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, numpy, future, spglib, glibcLocales, pytest, scipy }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  numpy,
+  future,
+  spglib,
+  glibcLocales,
+  pytest,
+  scipy,
+}:
 
 buildPythonPackage rec {
   pname = "seekpath";
@@ -16,7 +27,12 @@ buildPythonPackage rec {
   LC_ALL = "en_US.utf-8";
 
   # scipy isn't listed in install_requires, but used in package
-  propagatedBuildInputs = [ numpy spglib future scipy ];
+  propagatedBuildInputs = [
+    numpy
+    spglib
+    future
+    scipy
+  ];
 
   nativeBuildInputs = [ glibcLocales ];
 
@@ -28,10 +44,9 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A module to obtain and visualize band paths in the Brillouin zone of crystal structures.";
+    description = "Module to obtain and visualize band paths in the Brillouin zone of crystal structures";
     homepage = "https://github.com/giovannipizzi/seekpath";
     license = licenses.mit;
     maintainers = with maintainers; [ psyanticy ];
   };
 }
-
diff --git a/pkgs/development/python-modules/segments/default.nix b/pkgs/development/python-modules/segments/default.nix
index e55eb4c49bad8..091bf550bdf3c 100644
--- a/pkgs/development/python-modules/segments/default.nix
+++ b/pkgs/development/python-modules/segments/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy27
-, setuptools
-, regex
-, csvw
-, clldutils
-, pytestCheckHook
-, pytest-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy27,
+  setuptools,
+  regex,
+  csvw,
+  clldutils,
+  pytestCheckHook,
+  pytest-mock,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
       --replace-fail "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     regex
diff --git a/pkgs/development/python-modules/segno/default.nix b/pkgs/development/python-modules/segno/default.nix
index 21a10677c5e14..d87b902458fee 100644
--- a/pkgs/development/python-modules/segno/default.nix
+++ b/pkgs/development/python-modules/segno/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-
-# build-system
-, flit-core
-
-# dependencies
-, importlib-metadata
-
-# tests
-, pytestCheckHook
-, pypng
-, pyzbar
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+
+  # build-system
+  flit-core,
+
+  # dependencies
+  importlib-metadata,
+
+  # tests
+  pytestCheckHook,
+  pypng,
+  pyzbar,
 }:
 
 buildPythonPackage rec {
@@ -27,13 +28,9 @@ buildPythonPackage rec {
     hash = "sha256-5CDrQhbgUydz1ORp4ktZwhcgbJxQq1snKIAA0v4mZ00=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -46,9 +43,7 @@ buildPythonPackage rec {
     "test_plugin"
   ];
 
-  pythonImportsCheck = [
-    "segno"
-  ];
+  pythonImportsCheck = [ "segno" ];
 
   meta = with lib; {
     changelog = "https://github.com/heuer/segno/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/segyio/default.nix b/pkgs/development/python-modules/segyio/default.nix
index fb1f4d28e6165..aba2d06a5e2aa 100644
--- a/pkgs/development/python-modules/segyio/default.nix
+++ b/pkgs/development/python-modules/segyio/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, cmake
-, ninja
-, python
-, scikit-build
-, pytest
-, numpy
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  ninja,
+  python,
+  scikit-build,
+  pytest,
+  numpy,
 }:
 
 stdenv.mkDerivation rec {
@@ -30,12 +31,20 @@ stdenv.mkDerivation rec {
     hash = "sha256-+N2JvHBxpdbysn4noY/9LZ4npoQ9143iFEzaxoafnms=";
   };
 
-  nativeBuildInputs = [ cmake ninja python scikit-build ];
+  nativeBuildInputs = [
+    cmake
+    ninja
+    python
+    scikit-build
+  ];
 
   doCheck = true;
   # I'm not modifying the checkPhase nor adding a pytestCheckHook because the pytest is called
   # within the cmake test phase
-  nativeCheckInputs = [ pytest numpy ];
+  nativeCheckInputs = [
+    pytest
+    numpy
+  ];
 
   meta = with lib; {
     description = "Fast Python library for SEGY files";
diff --git a/pkgs/development/python-modules/selectors2/default.nix b/pkgs/development/python-modules/selectors2/default.nix
index ef9df617b6df3..6bd80826b7a0a 100644
--- a/pkgs/development/python-modules/selectors2/default.nix
+++ b/pkgs/development/python-modules/selectors2/default.nix
@@ -1,5 +1,12 @@
-{ stdenv, lib, buildPythonPackage, fetchPypi
-, nose, psutil, mock }:
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+  psutil,
+  mock,
+}:
 
 buildPythonPackage rec {
   version = "2.0.2";
@@ -11,11 +18,13 @@ buildPythonPackage rec {
     sha256 = "1f1bbaac203a23fbc851dc1b5a6e92c50698cc8cefa5873eb5b89eef53d1d82b";
   };
 
-  patches = [
-    ./mapping-import.patch
-  ];
+  patches = [ ./mapping-import.patch ];
 
-  nativeCheckInputs = [ nose psutil mock ];
+  nativeCheckInputs = [
+    nose
+    psutil
+    mock
+  ];
 
   checkPhase = ''
     # https://github.com/NixOS/nixpkgs/pull/46186#issuecomment-419450064
diff --git a/pkgs/development/python-modules/selenium-wire/default.nix b/pkgs/development/python-modules/selenium-wire/default.nix
index bbc98666394b9..defbf1fe8fdc6 100644
--- a/pkgs/development/python-modules/selenium-wire/default.nix
+++ b/pkgs/development/python-modules/selenium-wire/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, blinker
-, brotli
-, buildPythonPackage
-, certifi
-, fetchFromGitHub
-, h2
-, hyperframe
-, kaitaistruct
-, pyasn1
-, httpbin
-, pyopenssl
-, pyparsing
-, pysocks
-, gunicorn
-, pytestCheckHook
-, pythonOlder
-, selenium
-, setuptools
-, wsproto
-, zstandard
+{
+  lib,
+  blinker,
+  brotli,
+  buildPythonPackage,
+  certifi,
+  fetchFromGitHub,
+  h2,
+  hyperframe,
+  kaitaistruct,
+  pyasn1,
+  httpbin,
+  pyopenssl,
+  pyparsing,
+  pysocks,
+  gunicorn,
+  pytestCheckHook,
+  pythonOlder,
+  selenium,
+  setuptools,
+  wsproto,
+  zstandard,
 }:
 
 buildPythonPackage rec {
@@ -35,9 +36,7 @@ buildPythonPackage rec {
     hash = "sha256-KgaDxHS0dAK6CT53L1qqx1aORMmkeaiXAUtGC82hiIQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     blinker
@@ -61,9 +60,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "seleniumwire"
-  ];
+  pythonImportsCheck = [ "seleniumwire" ];
 
   disabledTestPaths = [
     # Don't run End2End tests
diff --git a/pkgs/development/python-modules/selenium/default.nix b/pkgs/development/python-modules/selenium/default.nix
index 9f8336201eb99..9009d6bf3c4fe 100644
--- a/pkgs/development/python-modules/selenium/default.nix
+++ b/pkgs/development/python-modules/selenium/default.nix
@@ -1,23 +1,25 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, selenium-manager
-, certifi
-, pytestCheckHook
-, pythonOlder
-, trio
-, trio-websocket
-, typing-extensions
-, urllib3
-, pytest-trio
-, nixosTests
-, stdenv
-, python
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  selenium-manager,
+  certifi,
+  pytestCheckHook,
+  pythonOlder,
+  trio,
+  trio-websocket,
+  typing-extensions,
+  websocket-client,
+  urllib3,
+  pytest-trio,
+  nixosTests,
+  stdenv,
+  python,
 }:
 
 buildPythonPackage rec {
   pname = "selenium";
-  version = "4.18.1";
+  version = "4.22.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -27,29 +29,32 @@ buildPythonPackage rec {
     repo = "selenium";
     # check if there is a newer tag with or without -python suffix
     rev = "refs/tags/selenium-${version}";
-    hash = "sha256-1C9Epsk9rFlShxHGGzbWl6smrMzPn2h3yCWlzUIMpY8=";
+    hash = "sha256-qBuZgI5SSBwxbSBrAT0W/HzzV2JmPL00hPJ6s57QTeg=";
   };
 
   preConfigure = ''
     cd py
   '';
 
-  postInstall = ''
-    DST_PREFIX=$out/${python.sitePackages}/selenium/webdriver/
-    DST_REMOTE=$DST_PREFIX/remote/
-    DST_FF=$DST_PREFIX/firefox
-    cp ../rb/lib/selenium/webdriver/atoms/getAttribute.js $DST_REMOTE
-    cp ../rb/lib/selenium/webdriver/atoms/isDisplayed.js $DST_REMOTE
-    cp ../rb/lib/selenium/webdriver/atoms/findElements.js $DST_REMOTE
-    cp ../javascript/cdp-support/mutation-listener.js $DST_REMOTE
-    cp ../third_party/js/selenium/webdriver.json $DST_FF/webdriver_prefs.json
-  '' + lib.optionalString stdenv.isDarwin ''
-    mkdir -p $DST_PREFIX/common/macos
-    ln -s ${lib.getExe selenium-manager} $DST_PREFIX/common/macos/
-  '' + lib.optionalString stdenv.isLinux ''
-    mkdir -p $DST_PREFIX/common/linux/
-    ln -s ${lib.getExe selenium-manager} $DST_PREFIX/common/linux/
-  '';
+  postInstall =
+    ''
+      DST_PREFIX=$out/${python.sitePackages}/selenium/webdriver/
+      DST_REMOTE=$DST_PREFIX/remote/
+      DST_FF=$DST_PREFIX/firefox
+      cp ../rb/lib/selenium/webdriver/atoms/getAttribute.js $DST_REMOTE
+      cp ../rb/lib/selenium/webdriver/atoms/isDisplayed.js $DST_REMOTE
+      cp ../rb/lib/selenium/webdriver/atoms/findElements.js $DST_REMOTE
+      cp ../javascript/cdp-support/mutation-listener.js $DST_REMOTE
+      cp ../third_party/js/selenium/webdriver.json $DST_FF/webdriver_prefs.json
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      mkdir -p $DST_PREFIX/common/macos
+      ln -s ${lib.getExe selenium-manager} $DST_PREFIX/common/macos/
+    ''
+    + lib.optionalString stdenv.isLinux ''
+      mkdir -p $DST_PREFIX/common/linux/
+      ln -s ${lib.getExe selenium-manager} $DST_PREFIX/common/linux/
+    '';
 
   propagatedBuildInputs = [
     certifi
@@ -57,6 +62,7 @@ buildPythonPackage rec {
     trio-websocket
     urllib3
     typing-extensions
+    websocket-client
   ] ++ urllib3.optional-dependencies.socks;
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/semantic-version/default.nix b/pkgs/development/python-modules/semantic-version/default.nix
index d80afabb21693..26f33ea2a3682 100644
--- a/pkgs/development/python-modules/semantic-version/default.nix
+++ b/pkgs/development/python-modules/semantic-version/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,18 +19,17 @@ buildPythonPackage rec {
     hash = "sha256-vau20zaZjLs3jUuds6S1ah4yNXAdwF6iaQ2amX7VBBw=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "semantic_version"
-  ];
+  pythonImportsCheck = [ "semantic_version" ];
 
   meta = with lib; {
-    description = "A library implementing the 'SemVer' scheme";
+    description = "Library implementing the 'SemVer' scheme";
     homepage = "https://github.com/rbarrois/python-semanticversion/";
     license = licenses.bsd2;
-    maintainers = with maintainers; [ layus makefu ];
+    maintainers = with maintainers; [
+      layus
+      makefu
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/semaphore-bot/default.nix b/pkgs/development/python-modules/semaphore-bot/default.nix
index d8dd7afecafc8..e16714bcab370 100644
--- a/pkgs/development/python-modules/semaphore-bot/default.nix
+++ b/pkgs/development/python-modules/semaphore-bot/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python-dateutil
-, attrs
-, anyio
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python-dateutil,
+  attrs,
+  anyio,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/send2trash/default.nix b/pkgs/development/python-modules/send2trash/default.nix
index bd08e6c2dcdec..c9e17cb0a2aa6 100644
--- a/pkgs/development/python-modules/send2trash/default.nix
+++ b/pkgs/development/python-modules/send2trash/default.nix
@@ -1,8 +1,10 @@
-{ lib, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-p0Pd9g+nLoT+oruthwjBn2E9rznvcx35VmzOAce2iTY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   doCheck = !stdenv.isDarwin;
 
@@ -27,9 +27,7 @@ buildPythonPackage rec {
     export HOME=$TMPDIR
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Send file to trash natively under macOS, Windows and Linux";
diff --git a/pkgs/development/python-modules/sendgrid/default.nix b/pkgs/development/python-modules/sendgrid/default.nix
index 82f336a7fd43c..e8ce7251b5a23 100644
--- a/pkgs/development/python-modules/sendgrid/default.nix
+++ b/pkgs/development/python-modules/sendgrid/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flask
-, pytestCheckHook
-, python-http-client
-, pythonOlder
-, pyyaml
-, starkbank-ecdsa
-, six
-, werkzeug
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+  pytestCheckHook,
+  python-http-client,
+  pythonOlder,
+  pyyaml,
+  starkbank-ecdsa,
+  six,
+  werkzeug,
 }:
 
 buildPythonPackage rec {
@@ -44,9 +45,7 @@ buildPythonPackage rec {
     "live_test.py"
   ];
 
-  pythonImportsCheck = [
-    "sendgrid"
-  ];
+  pythonImportsCheck = [ "sendgrid" ];
 
   meta = with lib; {
     description = "Python client for SendGrid";
diff --git a/pkgs/development/python-modules/sense-energy/default.nix b/pkgs/development/python-modules/sense-energy/default.nix
index cc91f276c0e7e..d311ce0c5f590 100644
--- a/pkgs/development/python-modules/sense-energy/default.nix
+++ b/pkgs/development/python-modules/sense-energy/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, aiohttp
-, ciso8601
-, async-timeout
-, kasa-crypt
-, orjson
-, pythonOlder
-, requests
-, websocket-client
-, websockets
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  aiohttp,
+  ciso8601,
+  async-timeout,
+  kasa-crypt,
+  orjson,
+  pythonOlder,
+  requests,
+  websocket-client,
+  websockets,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
       --replace-fail "{{VERSION_PLACEHOLDER}}" "${version}"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -50,9 +49,7 @@ buildPythonPackage rec {
   # no tests implemented
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sense_energy"
-  ];
+  pythonImportsCheck = [ "sense_energy" ];
 
   meta = with lib; {
     description = "API for the Sense Energy Monitor";
diff --git a/pkgs/development/python-modules/sensirion-ble/default.nix b/pkgs/development/python-modules/sensirion-ble/default.nix
index 86f81f67814b9..8dea1faea5e93 100644
--- a/pkgs/development/python-modules/sensirion-ble/default.nix
+++ b/pkgs/development/python-modules/sensirion-ble/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, bluetooth-data-tools
-, bluetooth-sensor-state-data
-, home-assistant-bluetooth
-, sensor-state-data
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  bluetooth-data-tools,
+  bluetooth-sensor-state-data,
+  home-assistant-bluetooth,
+  sensor-state-data,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
       --replace " --cov=sensirion_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     bluetooth-data-tools
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     sensor-state-data
   ];
 
-  pythonImportsCheck = [
-    "sensirion_ble"
-  ];
+  pythonImportsCheck = [ "sensirion_ble" ];
 
   meta = with lib; {
     description = "Parser for Sensirion BLE devices";
diff --git a/pkgs/development/python-modules/sensor-state-data/default.nix b/pkgs/development/python-modules/sensor-state-data/default.nix
index 7802340cedef2..2390b1b138be0 100644
--- a/pkgs/development/python-modules/sensor-state-data/default.nix
+++ b/pkgs/development/python-modules/sensor-state-data/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, home-assistant-bluetooth
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, sensor-state-data
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  home-assistant-bluetooth,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  sensor-state-data,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-wYYSS4lABCbIhmUU3z3Wh0+4zwpEzXl8Kk9gi6LBrbQ=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace " --cov=sensor_state_data --cov-report=term-missing:skip-covered" ""
   '';
 
-  pythonImportsCheck = [
-    "sensor_state_data"
-  ];
+  pythonImportsCheck = [ "sensor_state_data" ];
 
   meta = with lib; {
     description = "Models for storing and converting Sensor Data state";
diff --git a/pkgs/development/python-modules/sensorpro-ble/default.nix b/pkgs/development/python-modules/sensorpro-ble/default.nix
index 4c8412e7f9363..4a730bf48d92f 100644
--- a/pkgs/development/python-modules/sensorpro-ble/default.nix
+++ b/pkgs/development/python-modules/sensorpro-ble/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, bluetooth-data-tools
-, bluetooth-sensor-state-data
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, sensor-state-data
+{
+  lib,
+  bluetooth-data-tools,
+  bluetooth-sensor-state-data,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  sensor-state-data,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
       --replace " --cov=sensorpro_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bluetooth-data-tools
@@ -38,13 +37,9 @@ buildPythonPackage rec {
     sensor-state-data
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "sensorpro_ble"
-  ];
+  pythonImportsCheck = [ "sensorpro_ble" ];
 
   meta = with lib; {
     description = "Library for Sensorpro BLE devices";
diff --git a/pkgs/development/python-modules/sensorpush-ble/default.nix b/pkgs/development/python-modules/sensorpush-ble/default.nix
index e26378b1e2465..fb458d9d0626c 100644
--- a/pkgs/development/python-modules/sensorpush-ble/default.nix
+++ b/pkgs/development/python-modules/sensorpush-ble/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, bluetooth-data-tools
-, bluetooth-sensor-state-data
-, buildPythonPackage
-, fetchFromGitHub
-, home-assistant-bluetooth
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, sensor-state-data
+{
+  lib,
+  bluetooth-data-tools,
+  bluetooth-sensor-state-data,
+  buildPythonPackage,
+  fetchFromGitHub,
+  home-assistant-bluetooth,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  sensor-state-data,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
       --replace " --cov=sensorpush_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bluetooth-data-tools
@@ -40,13 +39,9 @@ buildPythonPackage rec {
     sensor-state-data
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook  ];
-
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "sensorpush_ble"
-  ];
+  pythonImportsCheck = [ "sensorpush_ble" ];
 
   meta = with lib; {
     description = "Library for SensorPush BLE devices";
diff --git a/pkgs/development/python-modules/sentence-splitter/default.nix b/pkgs/development/python-modules/sentence-splitter/default.nix
index 38ebc7fd6e2e7..ea6503bd001ec 100644
--- a/pkgs/development/python-modules/sentence-splitter/default.nix
+++ b/pkgs/development/python-modules/sentence-splitter/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-
-, pytestCheckHook
-, regex
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+
+  pytestCheckHook,
+  regex,
 }:
 
 buildPythonPackage rec {
@@ -21,17 +22,11 @@ buildPythonPackage rec {
     hash = "sha256-FxRi8fhKB9++lCTFpCAug0fxjkSVTKChLY84vkshR34=";
   };
 
-  propagatedBuildInputs = [
-    regex
-  ];
+  propagatedBuildInputs = [ regex ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "sentence_splitter"
-  ];
+  pythonImportsCheck = [ "sentence_splitter" ];
 
   meta = with lib; {
     description = "Text to sentence splitter using heuristic algorithm by Philipp Koehn and Josh Schroeder";
diff --git a/pkgs/development/python-modules/sentence-transformers/default.nix b/pkgs/development/python-modules/sentence-transformers/default.nix
index aa68ab9133e80..7b870da888792 100644
--- a/pkgs/development/python-modules/sentence-transformers/default.nix
+++ b/pkgs/development/python-modules/sentence-transformers/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, huggingface-hub
-, nltk
-, numpy
-, pytestCheckHook
-, pythonOlder
-, scikit-learn
-, scipy
-, sentencepiece
-, setuptools
-, tokenizers
-, torch
-, torchvision
-, tqdm
-, transformers
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  huggingface-hub,
+  nltk,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  scikit-learn,
+  scipy,
+  sentencepiece,
+  setuptools,
+  tokenizers,
+  torch,
+  torchvision,
+  tqdm,
+  transformers,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     hash = "sha256-xER+WHprW83KWJ0bom+lTn0HNU7PgGROnp/QLG1uUcw=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     huggingface-hub
@@ -49,13 +48,9 @@ buildPythonPackage rec {
     transformers
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "sentence_transformers"
-  ];
+  pythonImportsCheck = [ "sentence_transformers" ];
 
   disabledTests = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/sentencepiece/default.nix b/pkgs/development/python-modules/sentencepiece/default.nix
index 0307cd4be7fcc..211d753d1c943 100644
--- a/pkgs/development/python-modules/sentencepiece/default.nix
+++ b/pkgs/development/python-modules/sentencepiece/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
+{
+  buildPythonPackage,
 
-, sentencepiece
-, pkg-config
+  sentencepiece,
+  pkg-config,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/sentinel/default.nix b/pkgs/development/python-modules/sentinel/default.nix
index adec747c772ad..e89a52fa0fbbc 100644
--- a/pkgs/development/python-modules/sentinel/default.nix
+++ b/pkgs/development/python-modules/sentinel/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi}:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "sentinel";
diff --git a/pkgs/development/python-modules/sentinels/default.nix b/pkgs/development/python-modules/sentinels/default.nix
index 331c957a9f4f6..8a7a2328f9b47 100644
--- a/pkgs/development/python-modules/sentinels/default.nix
+++ b/pkgs/development/python-modules/sentinels/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     sha256 = "1cglkxph47pki4db4kjx5g4ikxp2milqdlcjgqwmx4p1gx6p1q3v";
   };
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  propagatedBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "sentinels" ];
 
diff --git a/pkgs/development/python-modules/sepaxml/default.nix b/pkgs/development/python-modules/sepaxml/default.nix
index 56c40e892f0cb..d1e12b2ae1fad 100644
--- a/pkgs/development/python-modules/sepaxml/default.nix
+++ b/pkgs/development/python-modules/sepaxml/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, lxml
-, pytestCheckHook
-, text-unidecode
-, xmlschema
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  lxml,
+  pytestCheckHook,
+  text-unidecode,
+  xmlschema,
 }:
 
 buildPythonPackage rec {
@@ -32,14 +33,11 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "sepaxml"
-  ];
+  pythonImportsCheck = [ "sepaxml" ];
 
   meta = with lib; {
     description = "SEPA Direct Debit XML generation in python";
     homepage = "https://github.com/raphaelm/python-sepaxml/";
     license = licenses.mit;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/seqdiag/default.nix b/pkgs/development/python-modules/seqdiag/default.nix
index 8b8a89bd49db3..91cd37883e855 100644
--- a/pkgs/development/python-modules/seqdiag/default.nix
+++ b/pkgs/development/python-modules/seqdiag/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, blockdiag
-, buildPythonPackage
-, fetchFromGitHub
-, pynose
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  blockdiag,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pynose,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,26 +23,18 @@ buildPythonPackage rec {
     hash = "sha256-Dh9JMx50Nexi0q39rYr9MpkKmQRAfT7lzsNOXoTuphg=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    blockdiag
-  ];
+  dependencies = [ blockdiag ];
 
   nativeCheckInputs = [
     pynose
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "src/seqdiag/tests/"
-  ];
+  pytestFlagsArray = [ "src/seqdiag/tests/" ];
 
-  pythonImportsCheck = [
-    "seqdiag"
-  ];
+  pythonImportsCheck = [ "seqdiag" ];
 
   meta = with lib; {
     description = "Generate sequence-diagram image from spec-text file (similar to Graphviz)";
diff --git a/pkgs/development/python-modules/seqeval/default.nix b/pkgs/development/python-modules/seqeval/default.nix
index f93021f38ef4e..aa9cd7c01fa9b 100644
--- a/pkgs/development/python-modules/seqeval/default.nix
+++ b/pkgs/development/python-modules/seqeval/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, scikit-learn
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  scikit-learn,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     scikit-learn
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # tests call perl script and get stuck in there
@@ -40,7 +39,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python framework for sequence labeling evaluation";
+    description = "Python framework for sequence labeling evaluation";
     homepage = "https://github.com/chakki-works/seqeval";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/serialio/default.nix b/pkgs/development/python-modules/serialio/default.nix
index 2ee338c66631c..d06091fccd2e2 100644
--- a/pkgs/development/python-modules/serialio/default.nix
+++ b/pkgs/development/python-modules/serialio/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, pyserial
-, sockio
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  pyserial,
+  sockio,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "serialio"
-  ];
+  pythonImportsCheck = [ "serialio" ];
 
   meta = with lib; {
     description = "Library for concurrency agnostic serial communication";
diff --git a/pkgs/development/python-modules/serializable/default.nix b/pkgs/development/python-modules/serializable/default.nix
index 5c881558d69ec..abc9e1378b108 100644
--- a/pkgs/development/python-modules/serializable/default.nix
+++ b/pkgs/development/python-modules/serializable/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, simplejson
-, six
-, typechecks
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  simplejson,
+  six,
+  typechecks,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-AXlgIc1B7bkR+joXn6ZSxk/t848CWlgVZp8WIsSZFKQ=";
   };
 
-  propagatedBuildInputs = [ simplejson six typechecks ];
+  propagatedBuildInputs = [
+    simplejson
+    six
+    typechecks
+  ];
 
   pythonImportsCheck = [ "serializable" ];
 
diff --git a/pkgs/development/python-modules/serpent/default.nix b/pkgs/development/python-modules/serpent/default.nix
index 8be976ca36428..529eb8bfdfeb4 100644
--- a/pkgs/development/python-modules/serpent/default.nix
+++ b/pkgs/development/python-modules/serpent/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, isPy27
-, enum34
-, attrs
-, pytz
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  isPy27,
+  enum34,
+  attrs,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -20,15 +21,18 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = lib.optionals isPy27 [ enum34 ];
 
-  nativeCheckInputs = [ attrs pytz ];
+  nativeCheckInputs = [
+    attrs
+    pytz
+  ];
   checkPhase = ''
     ${python.interpreter} setup.py test
   '';
 
   meta = with lib; {
-    description = "A simple serialization library based on ast.literal_eval";
+    description = "Simple serialization library based on ast.literal_eval";
     homepage = "https://github.com/irmen/Serpent";
     license = licenses.mit;
     maintainers = with maintainers; [ prusnak ];
-    };
+  };
 }
diff --git a/pkgs/development/python-modules/serpy/default.nix b/pkgs/development/python-modules/serpy/default.nix
index 9f086e4c86e58..324ad056cc58a 100644
--- a/pkgs/development/python-modules/serpy/default.nix
+++ b/pkgs/development/python-modules/serpy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     sha256 = "3772b2a9923fbf674000ff51abebf6ea8f0fca0a2cfcbfa0d63ff118193d1ec5";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   # ImportError: No module named 'tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "serpy"
-  ];
+  pythonImportsCheck = [ "serpy" ];
 
   meta = with lib; {
     description = "Ridiculously fast object serialization";
diff --git a/pkgs/development/python-modules/servefile/default.nix b/pkgs/development/python-modules/servefile/default.nix
index 327a278eff93b..d0d9167083495 100644
--- a/pkgs/development/python-modules/servefile/default.nix
+++ b/pkgs/development/python-modules/servefile/default.nix
@@ -1,10 +1,11 @@
-{ stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, lib
-, pyopenssl
-, pytestCheckHook
-, requests
+{
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  pyopenssl,
+  pytestCheckHook,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ pyopenssl ];
 
-  nativeCheckInputs = [ pytestCheckHook requests ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    requests
+  ];
   # Test attempts to connect to a port on localhost which fails in nix build
   # environment.
   disabledTests = [
diff --git a/pkgs/development/python-modules/serverfiles/default.nix b/pkgs/development/python-modules/serverfiles/default.nix
index 9c8fa8cb14973..5decec746d7b6 100644
--- a/pkgs/development/python-modules/serverfiles/default.nix
+++ b/pkgs/development/python-modules/serverfiles/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ unittestCheckHook ];
 
   meta = {
-    description = "An utility that accesses files on a HTTP server and stores them locally for reuse";
+    description = "Utility that accesses files on a HTTP server and stores them locally for reuse";
     homepage = "https://github.com/biolab/serverfiles";
     license = [ lib.licenses.gpl3Plus ];
     maintainers = [ lib.maintainers.lucasew ];
diff --git a/pkgs/development/python-modules/serverlessrepo/default.nix b/pkgs/development/python-modules/serverlessrepo/default.nix
index 68ebeca520697..4d1c79fda5abd 100644
--- a/pkgs/development/python-modules/serverlessrepo/default.nix
+++ b/pkgs/development/python-modules/serverlessrepo/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, boto3
-, six
-, pyyaml
-, mock
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  boto3,
+  six,
+  pyyaml,
+  mock,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -38,13 +39,9 @@ buildPythonPackage rec {
       --replace "boto3~=1.9, >=1.9.56" "boto3"
   '';
 
-  pytestFlagsArray = [
-    "tests/unit"
-  ];
+  pytestFlagsArray = [ "tests/unit" ];
 
-  pythonImportsCheck = [
-    "serverlessrepo"
-  ];
+  pythonImportsCheck = [ "serverlessrepo" ];
 
   meta = with lib; {
     homepage = "https://github.com/awslabs/aws-serverlessrepo-python";
diff --git a/pkgs/development/python-modules/service-identity/default.nix b/pkgs/development/python-modules/service-identity/default.nix
index 9f708245cd443..2a6e22a9a4cf6 100644
--- a/pkgs/development/python-modules/service-identity/default.nix
+++ b/pkgs/development/python-modules/service-identity/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, attrs
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, hatch-fancy-pypi-readme
-, hatch-vcs
-, hatchling
-, idna
-, pyasn1
-, pyasn1-modules
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  hatch-fancy-pypi-readme,
+  hatch-vcs,
+  hatchling,
+  idna,
+  pyasn1,
+  pyasn1-modules,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -41,13 +42,9 @@ buildPythonPackage rec {
     pyasn1-modules
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "service_identity"
-  ];
+  pythonImportsCheck = [ "service_identity" ];
 
   meta = with lib; {
     description = "Service identity verification for pyOpenSSL";
diff --git a/pkgs/development/python-modules/setproctitle/default.nix b/pkgs/development/python-modules/setproctitle/default.nix
index dfbee6e92469d..e07667cdd05c1 100644
--- a/pkgs/development/python-modules/setproctitle/default.nix
+++ b/pkgs/development/python-modules/setproctitle/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,24 +19,17 @@ buildPythonPackage rec {
     hash = "sha256-yRPhUefqAVZ4N/8DeiPKh0AZKIAZi3+7kLFtGBYHyq4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # tries to compile programs with dependencies that aren't available
-  disabledTestPaths = [
-    "tests/setproctitle_test.py"
-  ];
+  disabledTestPaths = [ "tests/setproctitle_test.py" ];
 
   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";
+    homepage = "https://github.com/dvarrazzo/py-setproctitle";
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ exi ];
   };
-
 }
diff --git a/pkgs/development/python-modules/setupmeta/default.nix b/pkgs/development/python-modules/setupmeta/default.nix
index 46e1b9a18a3ef..458d65e9c0347 100644
--- a/pkgs/development/python-modules/setupmeta/default.nix
+++ b/pkgs/development/python-modules/setupmeta/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, git
-, mock
-, pep440
-, pip
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
-, six
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  git,
+  mock,
+  pep440,
+  pip,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  six,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -59,9 +60,7 @@ buildPythonPackage rec {
     "test_brand_new_project"
   ];
 
-  pythonImportsCheck = [
-    "setupmeta"
-  ];
+  pythonImportsCheck = [ "setupmeta" ];
 
   meta = with lib; {
     description = "Python module to simplify setup.py files";
diff --git a/pkgs/development/python-modules/setuptools-changelog-shortener/default.nix b/pkgs/development/python-modules/setuptools-changelog-shortener/default.nix
index fef62dfbfbb92..59fe9fd4b52c6 100644
--- a/pkgs/development/python-modules/setuptools-changelog-shortener/default.nix
+++ b/pkgs/development/python-modules/setuptools-changelog-shortener/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, tomli
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  tomli,
+  wheel,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/setuptools-declarative-requirements/default.nix b/pkgs/development/python-modules/setuptools-declarative-requirements/default.nix
index 4e090aac53b6c..694be226df0d5 100644
--- a/pkgs/development/python-modules/setuptools-declarative-requirements/default.nix
+++ b/pkgs/development/python-modules/setuptools-declarative-requirements/default.nix
@@ -1,5 +1,12 @@
-{ buildPythonPackage, fetchPypi, lib, pypiserver, pytestCheckHook
-, setuptools-scm, virtualenv }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  pypiserver,
+  pytestCheckHook,
+  setuptools-scm,
+  virtualenv,
+}:
 
 buildPythonPackage rec {
   pname = "setuptools-declarative-requirements";
@@ -13,7 +20,11 @@ buildPythonPackage rec {
 
   buildInputs = [ setuptools-scm ];
 
-  nativeCheckInputs = [ pypiserver pytestCheckHook virtualenv ];
+  nativeCheckInputs = [
+    pypiserver
+    pytestCheckHook
+    virtualenv
+  ];
 
   # Tests use network
   doCheck = false;
diff --git a/pkgs/development/python-modules/setuptools-dso/default.nix b/pkgs/development/python-modules/setuptools-dso/default.nix
index 306d6b794e609..707a404a90254 100644
--- a/pkgs/development/python-modules/setuptools-dso/default.nix
+++ b/pkgs/development/python-modules/setuptools-dso/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose2
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose2,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,10 @@ buildPythonPackage rec {
 
   build-system = [ setuptools ];
 
-  nativeCheckInputs = [ nose2 pytestCheckHook ];
+  nativeCheckInputs = [
+    nose2
+    pytestCheckHook
+  ];
 
   meta = with lib; {
     description = "setuptools extension for building non-Python Dynamic Shared Objects";
diff --git a/pkgs/development/python-modules/setuptools-generate/default.nix b/pkgs/development/python-modules/setuptools-generate/default.nix
index 9f2b71697e9bb..261fefab1ea1c 100644
--- a/pkgs/development/python-modules/setuptools-generate/default.nix
+++ b/pkgs/development/python-modules/setuptools-generate/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools-scm
-, click
-, help2man
-, markdown-it-py
-, shtab
-, tomli
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools-scm,
+  click,
+  help2man,
+  markdown-it-py,
+  shtab,
+  tomli,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,22 +26,16 @@ buildPythonPackage rec {
     hash = "sha256-xDjxkWy/n0jStI9eLcM6WduyU9vGjtBOmJ86dpXjceQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     click
     help2man
     markdown-it-py
     shtab
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "setuptools_generate" ];
 
diff --git a/pkgs/development/python-modules/setuptools-gettext/default.nix b/pkgs/development/python-modules/setuptools-gettext/default.nix
index 394f4c4693fad..31440a40e5a34 100644
--- a/pkgs/development/python-modules/setuptools-gettext/default.nix
+++ b/pkgs/development/python-modules/setuptools-gettext/default.nix
@@ -1,37 +1,44 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  tomli,
+  pytestCheckHook,
+  gettext,
 }:
 
 buildPythonPackage rec {
   pname = "setuptools-gettext";
-  version = "0.1.11";
-  format = "setuptools";
+  version = "0.1.14";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "breezy-team";
     repo = "setuptools-gettext";
     rev = "refs/tags/v${version}";
-    hash = "sha256-yLKn4wwGgRdlsISAT71lD2vkIefsTJRB+OEA030adZY=";
+    hash = "sha256-05xKWRxmoI8tnRENuiK3Z3WNMyjgXIX5p3vhzSUeytQ=";
   };
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ setuptools ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
+
+  pythonImportsCheck = [ "setuptools_gettext" ];
 
-  pythonImportsCheck = [
-    "setuptools_gettext"
+  nativeCheckInputs = [
+    pytestCheckHook
+    gettext
   ];
 
-  meta = with lib; {
+  meta = {
     changelog = "https://github.com/breezy-team/setuptools-gettext/releases/tag/v${version}";
     description = "setuptools plugin for building mo files";
     homepage = "https://github.com/breezy-team/setuptools-gettext";
-    license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ ];
+    license = lib.licenses.gpl2Plus;
+    maintainers = with lib.maintainers; [ tomasajt ];
   };
 }
diff --git a/pkgs/development/python-modules/setuptools-git-versioning/default.nix b/pkgs/development/python-modules/setuptools-git-versioning/default.nix
index 311de1fe5ff87..edc6a72c015f7 100644
--- a/pkgs/development/python-modules/setuptools-git-versioning/default.nix
+++ b/pkgs/development/python-modules/setuptools-git-versioning/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, build
-, coverage
-, git
-, packaging
-, pytestCheckHook
-, pytest-rerunfailures
-, pythonOlder
-, setuptools
-, toml
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  build,
+  coverage,
+  git,
+  packaging,
+  pytestCheckHook,
+  pytest-rerunfailures,
+  pythonOlder,
+  setuptools,
+  toml,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -33,13 +34,9 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     packaging
     setuptools
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    toml
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ toml ];
 
-  pythonImportsCheck = [
-    "setuptools_git_versioning"
-  ];
+  pythonImportsCheck = [ "setuptools_git_versioning" ];
 
   nativeCheckInputs = [
     build
@@ -56,7 +53,10 @@ buildPythonPackage rec {
   '';
 
   # limit tests because the full suite takes several minutes to run
-  pytestFlagsArray = [ "-m" "important" ];
+  pytestFlagsArray = [
+    "-m"
+    "important"
+  ];
 
   disabledTests = [
     # runs an isolated build that uses internet to download dependencies
diff --git a/pkgs/development/python-modules/setuptools-git/default.nix b/pkgs/development/python-modules/setuptools-git/default.nix
index 8e0b4af312b5f..ae5b4224ad0fe 100644
--- a/pkgs/development/python-modules/setuptools-git/default.nix
+++ b/pkgs/development/python-modules/setuptools-git/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pkgs
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pkgs,
 }:
 
 buildPythonPackage rec {
@@ -22,5 +23,4 @@ buildPythonPackage rec {
     homepage = "https://pypi.python.org/pypi/setuptools-git";
     license = licenses.bsd3;
   };
-
 }
diff --git a/pkgs/development/python-modules/setuptools-lint/default.nix b/pkgs/development/python-modules/setuptools-lint/default.nix
index 561b75e804832..3c89bdecda355 100644
--- a/pkgs/development/python-modules/setuptools-lint/default.nix
+++ b/pkgs/development/python-modules/setuptools-lint/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pylint }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pylint,
+}:
 
 buildPythonPackage rec {
   pname = "setuptools-lint";
@@ -19,4 +24,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ nickhu ];
   };
 }
-
diff --git a/pkgs/development/python-modules/setuptools-odoo/default.nix b/pkgs/development/python-modules/setuptools-odoo/default.nix
index cc2e767d2520d..6e2a3556013f8 100644
--- a/pkgs/development/python-modules/setuptools-odoo/default.nix
+++ b/pkgs/development/python-modules/setuptools-odoo/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, git
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
-, writeScript
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  git,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  writeScript,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-38YlkDH/PuJ1yvQ43OYmdnRd1SGJULv6fC/+fitLDJ8=";
   };
 
-  propagatedBuildInputs = [
-    setuptools-scm
-  ];
+  propagatedBuildInputs = [ setuptools-scm ];
 
   # HACK https://github.com/NixOS/nixpkgs/pull/229460
   patchPhase = ''
@@ -37,9 +36,7 @@ buildPythonPackage rec {
     runHook postPatch
   '';
 
-  pythonImportsCheck = [
-    "setuptools_odoo"
-  ];
+  pythonImportsCheck = [ "setuptools_odoo" ];
 
   setupHook = writeScript "setupHook.sh" ''
     setuptoolsOdooHook() {
diff --git a/pkgs/development/python-modules/setuptools-rust/default.nix b/pkgs/development/python-modules/setuptools-rust/default.nix
index a4aae07428245..734eef48a0efb 100644
--- a/pkgs/development/python-modules/setuptools-rust/default.nix
+++ b/pkgs/development/python-modules/setuptools-rust/default.nix
@@ -1,13 +1,14 @@
-{ callPackage
-, lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, semantic-version
-, setuptools
-, setuptools-scm
-, tomli
-, typing-extensions
+{
+  callPackage,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  semantic-version,
+  setuptools,
+  setuptools-scm,
+  tomli,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -31,13 +32,9 @@ buildPythonPackage rec {
     semantic-version
     setuptools
     typing-extensions
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
-  pythonImportsCheck = [
-    "setuptools_rust"
-  ];
+  pythonImportsCheck = [ "setuptools_rust" ];
 
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/setuptools-rust/pyo3-test/default.nix b/pkgs/development/python-modules/setuptools-rust/pyo3-test/default.nix
index 3a82ef799255d..b8f2c593a656c 100644
--- a/pkgs/development/python-modules/setuptools-rust/pyo3-test/default.nix
+++ b/pkgs/development/python-modules/setuptools-rust/pyo3-test/default.nix
@@ -1,8 +1,9 @@
-{ callPackage
-, cargo
-, rustPlatform
-, rustc
-, setuptools-rust
+{
+  callPackage,
+  cargo,
+  rustPlatform,
+  rustc,
+  setuptools-rust,
 }:
 
 callPackage ../../../tools/rust/maturin/pyo3-test/generic.nix {
@@ -13,11 +14,13 @@ callPackage ../../../tools/rust/maturin/pyo3-test/generic.nix {
   #
   format = "setuptools";
 
-  nativeBuildInputs = [ setuptools-rust ] ++ [
-    rustPlatform.cargoSetupHook
-    cargo
-    rustc
-  ];
+  nativeBuildInputs =
+    [ setuptools-rust ]
+    ++ [
+      rustPlatform.cargoSetupHook
+      cargo
+      rustc
+    ];
 
   preConfigure = ''
     # sourceRoot puts Cargo.lock in the wrong place due to the
diff --git a/pkgs/development/python-modules/setuptools-scm-git-archive/default.nix b/pkgs/development/python-modules/setuptools-scm-git-archive/default.nix
index f5f7fcd0561d1..a53df0fb0a581 100644
--- a/pkgs/development/python-modules/setuptools-scm-git-archive/default.nix
+++ b/pkgs/development/python-modules/setuptools-scm-git-archive/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, setuptools-scm
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,17 +23,11 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests.py"
-  ];
+  pytestFlagsArray = [ "tests.py" ];
 
-  pythonImportsCheck = [
-    "setuptools_scm_git_archive"
-  ];
+  pythonImportsCheck = [ "setuptools_scm_git_archive" ];
 
   meta = with lib; {
     description = "setuptools_scm plugin for git archives";
diff --git a/pkgs/development/python-modules/setuptools-scm/default.nix b/pkgs/development/python-modules/setuptools-scm/default.nix
index 01a1f0ff0d4b4..cc82356de85a7 100644
--- a/pkgs/development/python-modules/setuptools-scm/default.nix
+++ b/pkgs/development/python-modules/setuptools-scm/default.nix
@@ -1,54 +1,46 @@
-{ lib
-, buildPythonPackage
-, callPackage
-, fetchPypi
-, pythonOlder
-
-# build-system
-, setuptools
-
-# dependencies
-, packaging
-, typing-extensions
-, tomli
-
-# optional-dependencies
-, rich
+{
+  lib,
+  buildPythonPackage,
+  callPackage,
+  fetchPypi,
+  pythonOlder,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  packaging,
+  typing-extensions,
+  tomli,
+
+  # optional-dependencies
+  rich,
 }:
 
 buildPythonPackage rec {
   pname = "setuptools-scm";
-  version = "8.0.4";
+  version = "8.1.0";
   pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-tfQ/9oAGaVlRk/0JiRVk7p0dfcsZbKtLJQbVOi4clcc=";
+    pname = "setuptools_scm";
+    inherit version;
+    hash = "sha256-Qt6htldxy6k7elFdZaZdgkblYHaKZrkQalksjn8myKc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  build-system = [ setuptools ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     packaging
     setuptools
     typing-extensions
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
-  passthru.optional-dependencies = {
-    rich = [
-      rich
-    ];
+  optional-dependencies = {
+    rich = [ rich ];
   };
 
-  pythonImportsCheck = [
-    "setuptools_scm"
-  ];
+  pythonImportsCheck = [ "setuptools_scm" ];
 
   # check in passthru.tests.pytest to escape infinite recursion on pytest
   doCheck = false;
diff --git a/pkgs/development/python-modules/setuptools-scm/tests.nix b/pkgs/development/python-modules/setuptools-scm/tests.nix
index b679a0f5ca4c3..ad203b22c88a0 100644
--- a/pkgs/development/python-modules/setuptools-scm/tests.nix
+++ b/pkgs/development/python-modules/setuptools-scm/tests.nix
@@ -1,10 +1,11 @@
-{ buildPythonPackage
-, setuptools-scm
-, pytestCheckHook
-, git
-, mercurial
-, pip
-, virtualenv
+{
+  buildPythonPackage,
+  setuptools-scm,
+  pytestCheckHook,
+  git,
+  mercurial,
+  pip,
+  virtualenv,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/setuptools-trial/default.nix b/pkgs/development/python-modules/setuptools-trial/default.nix
index 14f666d311a24..3d1bd90167dcc 100644
--- a/pkgs/development/python-modules/setuptools-trial/default.nix
+++ b/pkgs/development/python-modules/setuptools-trial/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, twisted
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  twisted,
 }:
 
 buildPythonPackage rec {
@@ -19,20 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-FCIPj3YcSLoeJSbwhxlQd89U+tcJizgs4iBCLw/1mxI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    twisted
-  ];
+  propagatedBuildInputs = [ twisted ];
 
   # Couldn't get tests working
   doCheck = false;
 
-  pythonImportsCheck = [
-    "setuptools_trial"
-  ];
+  pythonImportsCheck = [ "setuptools_trial" ];
 
   meta = with lib; {
     description = "Setuptools plugin that makes unit tests execute with trial instead of pyunit";
diff --git a/pkgs/development/python-modules/setuptools/default.nix b/pkgs/development/python-modules/setuptools/default.nix
index c7cfd09dc49d8..3bc6b0f9a6b1e 100644
--- a/pkgs/development/python-modules/setuptools/default.nix
+++ b/pkgs/development/python-modules/setuptools/default.nix
@@ -1,21 +1,22 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, wheel
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "setuptools";
-  version = "69.5.1";
+  version = "70.0.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pypa";
     repo = "setuptools";
     rev = "refs/tags/v${version}";
-    hash = "sha256-X0ntFlDIhUjxtWzz0LxybQSuxhRpHlMeBYtOGwqDl4A=";
+    hash = "sha256-LXF3R9zfWylvihP2M8N94/IlgifwxUwKJFhtvcXEPB0=";
   };
 
   patches = [
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     ./setuptools-distutils-C++.patch
   ];
 
-  nativeBuildInputs = [
-    wheel
-  ];
+  nativeBuildInputs = [ wheel ];
 
   preBuild = lib.optionalString (!stdenv.hostPlatform.isWindows) ''
     export SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES=0
@@ -37,7 +36,9 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Utilities to facilitate the installation of Python packages";
     homepage = "https://github.com/pypa/setuptools";
-    changelog = "https://setuptools.pypa.io/en/stable/history.html#v${replaceStrings [ "." ] [ "-" ] version}";
+    changelog = "https://setuptools.pypa.io/en/stable/history.html#v${
+      replaceStrings [ "." ] [ "-" ] version
+    }";
     license = with licenses; [ mit ];
     platforms = python.meta.platforms;
     maintainers = teams.python.members;
diff --git a/pkgs/development/python-modules/sev-snp-measure/default.nix b/pkgs/development/python-modules/sev-snp-measure/default.nix
index 5293bc1179c0c..c586a1e0bd2df 100644
--- a/pkgs/development/python-modules/sev-snp-measure/default.nix
+++ b/pkgs/development/python-modules/sev-snp-measure/default.nix
@@ -1,9 +1,9 @@
-{ buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, lib
-, pythonRelaxDepsHook
-, setuptools
+{
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  lib,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +21,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     setuptools
-    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = [ "cryptography" ];
diff --git a/pkgs/development/python-modules/seventeentrack/default.nix b/pkgs/development/python-modules/seventeentrack/default.nix
index 351392aec46a2..d0331594e3fd5 100644
--- a/pkgs/development/python-modules/seventeentrack/default.nix
+++ b/pkgs/development/python-modules/seventeentrack/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, aresponses
-, attrs
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, pytz
+{
+  lib,
+  aiohttp,
+  aresponses,
+  attrs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -40,9 +41,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -63,9 +62,7 @@ buildPythonPackage rec {
     "examples/"
   ];
 
-  pythonImportsCheck = [
-    "seventeentrack"
-  ];
+  pythonImportsCheck = [ "seventeentrack" ];
 
   meta = with lib; {
     description = "Python library to track package info from 17track.com";
diff --git a/pkgs/development/python-modules/sexpdata/default.nix b/pkgs/development/python-modules/sexpdata/default.nix
index 0349c7cd94797..a410c430f60cc 100644
--- a/pkgs/development/python-modules/sexpdata/default.nix
+++ b/pkgs/development/python-modules/sexpdata/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,15 +18,11 @@ buildPythonPackage rec {
     hash = "sha256-krZ7A2H2dm+PnkS5UZzz+8+vp1Xbhbv4k8Phz03awQk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sexpdata"
-  ];
+  pythonImportsCheck = [ "sexpdata" ];
 
   meta = with lib; {
     description = "S-expression parser for Python";
diff --git a/pkgs/development/python-modules/sfepy/default.nix b/pkgs/development/python-modules/sfepy/default.nix
index 8e2c18fb1e625..b97840fbae541 100644
--- a/pkgs/development/python-modules/sfepy/default.nix
+++ b/pkgs/development/python-modules/sfepy/default.nix
@@ -1,48 +1,63 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, scipy
-, matplotlib
-, pyparsing
-, tables
-, cython_0
-, python
-, sympy
-, meshio
-, mpi4py
-, psutil
-, openssh
-, pyvista
-, pytest
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  cmake,
+  cython_0,
+  ninja,
+  oldest-supported-numpy,
+  setuptools,
+  scikit-build,
+  numpy,
+  scipy,
+  matplotlib,
+  pyparsing,
+  tables,
+  python,
+  sympy,
+  meshio,
+  mpi4py,
+  psutil,
+  openssh,
+  pyvista,
+  pytest,
+  stdenv,
 }:
 
 buildPythonPackage rec {
   pname = "sfepy";
-  version = "2023.1";
-  format = "setuptools";
+  version = "2024.1";
+  pyproject = true;
+
   disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "sfepy";
     repo = "sfepy";
     rev = "release_${version}";
-    hash = "sha256-PuU6DL9zftHltpYI9VZQzKGIP8l9UUU8GVChrHtpNM0=";
+    hash = "sha256-r2Qx9uJmVS4ugJxrIxg2UscnYu1Qr4hEkcz66NyWGmA=";
   };
 
-  propagatedBuildInputs = [
-    numpy
+  build-system = [
+    cmake
     cython_0
+    ninja
+    oldest-supported-numpy
+    setuptools
+    scikit-build
+  ];
+
+  dontUseCmakeConfigure = true;
+
+  dependencies = [
+    numpy
     scipy
     matplotlib
     pyparsing
     tables
     sympy
     meshio
-    mpi4py
-    psutil
-    openssh
     pyvista
   ];
 
@@ -58,9 +73,7 @@ buildPythonPackage rec {
     rm sfepy/tests/test_quadratures.py
   '';
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
   checkPhase = ''
     export OMPI_MCA_plm_rsh_agent=${openssh}/bin/ssh
@@ -71,10 +84,11 @@ buildPythonPackage rec {
     ${python.interpreter} -c "import sfepy; sfepy.test()"
   '';
 
-  meta = with lib; {
+  meta = {
     homepage = "https://sfepy.org/";
     description = "Simple Finite Elements in Python";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ wd15 ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ wd15 ];
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/python-modules/sfrbox-api/default.nix b/pkgs/development/python-modules/sfrbox-api/default.nix
index c1939e70a7e46..25722095f4328 100644
--- a/pkgs/development/python-modules/sfrbox-api/default.nix
+++ b/pkgs/development/python-modules/sfrbox-api/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, click
-, defusedxml
-, fetchFromGitHub
-, httpx
-, poetry-core
-, pydantic
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, respx
+{
+  lib,
+  buildPythonPackage,
+  click,
+  defusedxml,
+  fetchFromGitHub,
+  httpx,
+  poetry-core,
+  pydantic,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  respx,
 }:
 
 buildPythonPackage rec {
@@ -26,15 +27,13 @@ buildPythonPackage rec {
     hash = "sha256-rMfX9vA8IuWxXvVs4WYNHO6neeoie/3gABwhXyJoAF8=";
   };
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace 'pydantic = ">=1.10.2"' 'pydantic = "*"'
-  '';
-
-  nativeBuildInputs = [
-    poetry-core
+  pythonRelaxDeps = [
+    "defusedxml"
+    "pydantic"
   ];
 
+  nativeBuildInputs = [ poetry-core ];
+
   propagatedBuildInputs = [
     defusedxml
     httpx
@@ -42,9 +41,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    cli = [
-      click
-    ];
+    cli = [ click ];
   };
 
   nativeCheckInputs = [
@@ -53,9 +50,7 @@ buildPythonPackage rec {
     respx
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "sfrbox_api"
-  ];
+  pythonImportsCheck = [ "sfrbox_api" ];
 
   meta = with lib; {
     description = "Module for the SFR Box API";
diff --git a/pkgs/development/python-modules/sgmllib3k/default.nix b/pkgs/development/python-modules/sgmllib3k/default.nix
index e828e750fc8fb..1670a533e664e 100644
--- a/pkgs/development/python-modules/sgmllib3k/default.nix
+++ b/pkgs/development/python-modules/sgmllib3k/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, pytestCheckHook
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  pytestCheckHook,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -18,19 +19,13 @@ buildPythonPackage rec {
     hash = "sha256-eGj7HIv6dkwaxWPTzzacOB0TJdNhJJM6cm8p/NqoEuk=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = lib.optionals (pythonAtLeast "3.10") [
-    "test_declaration_junk_chars"
-  ];
+  disabledTests = lib.optionals (pythonAtLeast "3.10") [ "test_declaration_junk_chars" ];
 
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sgmllib"
-  ];
+  pythonImportsCheck = [ "sgmllib" ];
 
   meta = with lib; {
     homepage = "https://pypi.org/project/sgmllib3k/";
diff --git a/pkgs/development/python-modules/sgp4/default.nix b/pkgs/development/python-modules/sgp4/default.nix
index daa6a08f67f15..ce2826708c466 100644
--- a/pkgs/development/python-modules/sgp4/default.nix
+++ b/pkgs/development/python-modules/sgp4/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, numpy }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+}:
 
 buildPythonPackage rec {
   pname = "sgp4";
diff --git a/pkgs/development/python-modules/sh/default.nix b/pkgs/development/python-modules/sh/default.nix
index 46332d0d528a2..51a4a9d842f67 100644
--- a/pkgs/development/python-modules/sh/default.nix
+++ b/pkgs/development/python-modules/sh/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
- }:
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "sh";
@@ -18,40 +19,36 @@ buildPythonPackage rec {
     hash = "sha256-c4Ms4ydcW7LgmAI1WuYD74nzILuY/Xg+JePJe0q5AQQ=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests"
-  ];
+  pytestFlagsArray = [ "tests" ];
 
   # A test needs the HOME directory to be different from $TMPDIR.
   preCheck = ''
     export HOME=$(mktemp -d)
   '';
 
-  disabledTests = [
-    # Disable tests that fail on Hydra
-    "test_no_fd_leak"
-    "test_piped_exception1"
-    "test_piped_exception2"
-    "test_unicode_path"
-    # fails to import itself after modifying the environment
-    "test_environment"
-    # timing sensitive through usage of sleep(1) and signal handling
-    # https://github.com/amoffat/sh/issues/684
-    "test_general_signal"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # Disable tests that fail on Darwin sandbox
-    "test_background_exception"
-    "test_cwd"
-    "test_ok_code"
-  ];
+  disabledTests =
+    [
+      # Disable tests that fail on Hydra
+      "test_no_fd_leak"
+      "test_piped_exception1"
+      "test_piped_exception2"
+      "test_unicode_path"
+      # fails to import itself after modifying the environment
+      "test_environment"
+      # timing sensitive through usage of sleep(1) and signal handling
+      # https://github.com/amoffat/sh/issues/684
+      "test_general_signal"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # Disable tests that fail on Darwin sandbox
+      "test_background_exception"
+      "test_cwd"
+      "test_ok_code"
+    ];
 
   meta = with lib; {
     description = "Python subprocess interface";
diff --git a/pkgs/development/python-modules/shamir-mnemonic/default.nix b/pkgs/development/python-modules/shamir-mnemonic/default.nix
index 8d8a5f535b77b..11d580eaf8894 100644
--- a/pkgs/development/python-modules/shamir-mnemonic/default.nix
+++ b/pkgs/development/python-modules/shamir-mnemonic/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, isPy3k
-, fetchFromGitHub
-, attrs
-, click
-, colorama
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  isPy3k,
+  fetchFromGitHub,
+  attrs,
+  click,
+  colorama,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/shap/default.nix b/pkgs/development/python-modules/shap/default.nix
index 2bc1a8f5c2eca..65f6a1628a98d 100644
--- a/pkgs/development/python-modules/shap/default.nix
+++ b/pkgs/development/python-modules/shap/default.nix
@@ -1,37 +1,38 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, writeText
-, catboost
-, cloudpickle
-, ipython
-, lightgbm
-, lime
-, matplotlib
-, nose
-, numba
-, numpy
-, oldest-supported-numpy
-, opencv4
-, pandas
-, pyspark
-, pytest-mpl
-, scikit-learn
-, scipy
-, sentencepiece
-, setuptools
-, setuptools-scm
-, slicer
-, tqdm
-, transformers
-, xgboost
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  writeText,
+  catboost,
+  cloudpickle,
+  ipython,
+  lightgbm,
+  lime,
+  matplotlib,
+  nose,
+  numba,
+  numpy,
+  oldest-supported-numpy,
+  opencv4,
+  pandas,
+  pyspark,
+  pytest-mpl,
+  scikit-learn,
+  scipy,
+  sentencepiece,
+  setuptools,
+  setuptools-scm,
+  slicer,
+  tqdm,
+  transformers,
+  xgboost,
 }:
 
 buildPythonPackage rec {
   pname = "shap";
-  version = "0.45.0";
+  version = "0.45.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -40,7 +41,7 @@ buildPythonPackage rec {
     owner = "slundberg";
     repo = "shap";
     rev = "refs/tags/v${version}";
-    hash = "sha256-x8845saPoLsWu3Z8Thkhqo3HeLmfAZANj3KE0ftVqZc=";
+    hash = "sha256-REMAubT9WRe0exfhO4UCLt3FFQHq4HApHnI6i2F/V1o=";
   };
 
   nativeBuildInputs = [
@@ -61,43 +62,48 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    plots = [ matplotlib ipython ];
+    plots = [
+      matplotlib
+      ipython
+    ];
     others = [ lime ];
   };
 
-  preCheck = let
-    # This pytest hook mocks and catches attempts at accessing the network
-    # tests that try to access the network will raise, get caught, be marked as skipped and tagged as xfailed.
-    conftestSkipNetworkErrors = writeText "conftest.py" ''
-      from _pytest.runner import pytest_runtest_makereport as orig_pytest_runtest_makereport
-      import urllib, requests, transformers
-
-      class NetworkAccessDeniedError(RuntimeError): pass
-      def deny_network_access(*a, **kw):
-        raise NetworkAccessDeniedError
-
-      requests.head = deny_network_access
-      requests.get  = deny_network_access
-      urllib.request.urlopen = deny_network_access
-      urllib.request.Request = deny_network_access
-      transformers.AutoTokenizer.from_pretrained = deny_network_access
-
-      def pytest_runtest_makereport(item, call):
-        tr = orig_pytest_runtest_makereport(item, call)
-        if call.excinfo is not None and call.excinfo.type is NetworkAccessDeniedError:
-            tr.outcome = 'skipped'
-            tr.wasxfail = "reason: Requires network access."
-        return tr
+  preCheck =
+    let
+      # This pytest hook mocks and catches attempts at accessing the network
+      # tests that try to access the network will raise, get caught, be marked as skipped and tagged as xfailed.
+      conftestSkipNetworkErrors = writeText "conftest.py" ''
+        from _pytest.runner import pytest_runtest_makereport as orig_pytest_runtest_makereport
+        import urllib, requests, transformers
+
+        class NetworkAccessDeniedError(RuntimeError): pass
+        def deny_network_access(*a, **kw):
+          raise NetworkAccessDeniedError
+
+        requests.head = deny_network_access
+        requests.get  = deny_network_access
+        urllib.request.urlopen = deny_network_access
+        urllib.request.Request = deny_network_access
+        transformers.AutoTokenizer.from_pretrained = deny_network_access
+
+        def pytest_runtest_makereport(item, call):
+          tr = orig_pytest_runtest_makereport(item, call)
+          if call.excinfo is not None and call.excinfo.type is NetworkAccessDeniedError:
+              tr.outcome = 'skipped'
+              tr.wasxfail = "reason: Requires network access."
+          return tr
+      '';
+    in
+    ''
+      export HOME=$TMPDIR
+      # when importing the local copy the extension is not found
+      rm -r shap
+
+      # Add pytest hook skipping tests that access network.
+      # These tests are marked as "Expected fail" (xfail)
+      cat ${conftestSkipNetworkErrors} >> tests/conftest.py
     '';
-  in ''
-    export HOME=$TMPDIR
-    # when importing the local copy the extension is not found
-    rm -r shap
-
-    # Add pytest hook skipping tests that access network.
-    # These tests are marked as "Expected fail" (xfail)
-    cat ${conftestSkipNetworkErrors} >> tests/conftest.py
-  '';
 
   nativeCheckInputs = [
     ipython
@@ -134,15 +140,16 @@ buildPythonPackage rec {
     "test_simple_bar_with_cohorts_dict"
   ];
 
-  pythonImportsCheck = [
-    "shap"
-  ];
+  pythonImportsCheck = [ "shap" ];
 
   meta = with lib; {
-    description = "A unified approach to explain the output of any machine learning model";
+    description = "Unified approach to explain the output of any machine learning model";
     homepage = "https://github.com/slundberg/shap";
     changelog = "https://github.com/slundberg/shap/releases/tag/v${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ evax natsukium ];
+    maintainers = with maintainers; [
+      evax
+      natsukium
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/shapely/1.8.nix b/pkgs/development/python-modules/shapely/1.8.nix
index 4382ba93ec5e2..95ce815bd2eda 100644
--- a/pkgs/development/python-modules/shapely/1.8.nix
+++ b/pkgs/development/python-modules/shapely/1.8.nix
@@ -1,17 +1,18 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, substituteAll
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  substituteAll,
 
-, cython_0
-, geos_3_11
-, numpy
-, oldest-supported-numpy
-, setuptools
-, wheel
+  cython_0,
+  geos_3_11,
+  numpy,
+  oldest-supported-numpy,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -35,7 +36,9 @@ buildPythonPackage rec {
     (substituteAll {
       src = ./library-paths.patch;
       libgeos_c = GEOS_LIBRARY_PATH;
-      libc = 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";
     })
   ];
 
@@ -51,17 +54,11 @@ buildPythonPackage rec {
     wheel
   ];
 
-  buildInputs = [
-    geos_3_11
-  ];
+  buildInputs = [ geos_3_11 ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     rm -r shapely # prevent import of local shapely
diff --git a/pkgs/development/python-modules/shapely/default.nix b/pkgs/development/python-modules/shapely/default.nix
index 28f2acdffb2d5..9819cf04b54db 100644
--- a/pkgs/development/python-modules/shapely/default.nix
+++ b/pkgs/development/python-modules/shapely/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 
-, cython_0
-, geos
-, numpy
-, oldest-supported-numpy
-, setuptools
-, wheel
+  cython_0,
+  geos,
+  numpy,
+  oldest-supported-numpy,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -33,17 +34,11 @@ buildPythonPackage rec {
     wheel
   ];
 
-  buildInputs = [
-    geos
-  ];
+  buildInputs = [ geos ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Fix a ModuleNotFoundError. Investigated at:
   # https://github.com/NixOS/nixpkgs/issues/255262
diff --git a/pkgs/development/python-modules/shaperglot/default.nix b/pkgs/development/python-modules/shaperglot/default.nix
index 9201436d3b609..20c898c076981 100644
--- a/pkgs/development/python-modules/shaperglot/default.nix
+++ b/pkgs/development/python-modules/shaperglot/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, gflanguages
-, num2words
-, protobuf
-, pytestCheckHook
-, pyyaml
-, setuptools
-, setuptools-scm
-, strictyaml
-, termcolor
-, ufo2ft
-, vharfbuzz
-, youseedee
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gflanguages,
+  num2words,
+  protobuf,
+  pytestCheckHook,
+  pyyaml,
+  setuptools,
+  setuptools-scm,
+  strictyaml,
+  termcolor,
+  ufo2ft,
+  vharfbuzz,
+  youseedee,
 }:
 
 buildPythonPackage rec {
@@ -46,9 +47,7 @@ buildPythonPackage rec {
   ];
 
   doCheck = true;
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Tool to test OpenType fonts for language support";
diff --git a/pkgs/development/python-modules/sharedmem/default.nix b/pkgs/development/python-modules/sharedmem/default.nix
index 0e4a36f6ce276..0615feb911dfb 100644
--- a/pkgs/development/python-modules/sharedmem/default.nix
+++ b/pkgs/development/python-modules/sharedmem/default.nix
@@ -1,4 +1,9 @@
-{ buildPythonPackage, fetchPypi, lib, numpy }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  numpy,
+}:
 
 buildPythonPackage rec {
 
diff --git a/pkgs/development/python-modules/sharkiq/default.nix b/pkgs/development/python-modules/sharkiq/default.nix
index 0b99c15564fd4..afff1db73d9a7 100644
--- a/pkgs/development/python-modules/sharkiq/default.nix
+++ b/pkgs/development/python-modules/sharkiq/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, requests
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/sharp-aquos-rc/default.nix b/pkgs/development/python-modules/sharp-aquos-rc/default.nix
index 5dc7580467e87..11af74710b245 100644
--- a/pkgs/development/python-modules/sharp-aquos-rc/default.nix
+++ b/pkgs/development/python-modules/sharp-aquos-rc/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/shazamio/default.nix b/pkgs/development/python-modules/shazamio/default.nix
index e96776e60b8a1..bfa3f7c9211a5 100644
--- a/pkgs/development/python-modules/shazamio/default.nix
+++ b/pkgs/development/python-modules/shazamio/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, wheel
-, aiofiles
-, aiohttp
-, dataclass-factory
-, numpy
-, pydantic
-, pydub
-, ffmpeg
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  poetry-core,
+  wheel,
+  aiofiles,
+  aiohttp,
+  dataclass-factory,
+  numpy,
+  pydantic,
+  pydub,
+  ffmpeg,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -67,7 +68,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "shazamio" ];
 
   meta = with lib; {
-    description = "A free asynchronous library from reverse engineered Shazam API";
+    description = "Free asynchronous library from reverse engineered Shazam API";
     homepage = "https://github.com/dotX12/ShazamIO";
     changelog = "https://github.com/dotX12/ShazamIO/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/shellescape/default.nix b/pkgs/development/python-modules/shellescape/default.nix
index 6ea61402c0493..fe0a29458b6f0 100644
--- a/pkgs/development/python-modules/shellescape/default.nix
+++ b/pkgs/development/python-modules/shellescape/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,7 +23,10 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Shell escape a string to safely use it as a token in a shell command (backport of Python shlex.quote)";
     homepage = "https://github.com/chrissimpkins/shellescape";
-    license = with licenses; [ mit psfl ];
+    license = with licenses; [
+      mit
+      psfl
+    ];
     maintainers = with maintainers; [ veprbl ];
   };
 }
diff --git a/pkgs/development/python-modules/shellingham/default.nix b/pkgs/development/python-modules/shellingham/default.nix
index 71b5d5e438bf4..75b61530b9096 100644
--- a/pkgs/development/python-modules/shellingham/default.nix
+++ b/pkgs/development/python-modules/shellingham/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-xeBo3Ok+XPrHN4nQd7M8/11leSV/8z1f7Sj33+HFVtQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytest-mock
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "shellingham"
-  ];
+  pythonImportsCheck = [ "shellingham" ];
 
   meta = with lib; {
     description = "Tool to detect the surrounding shell";
diff --git a/pkgs/development/python-modules/shiboken2/default.nix b/pkgs/development/python-modules/shiboken2/default.nix
index 45eecc6faebfd..abf29ffaff97e 100644
--- a/pkgs/development/python-modules/shiboken2/default.nix
+++ b/pkgs/development/python-modules/shiboken2/default.nix
@@ -1,11 +1,13 @@
-{ python
-, lib
-, stdenv
-, pyside2
-, cmake
-, qt5
-, libxcrypt
-, llvmPackages_15
+{
+  python,
+  lib,
+  stdenv,
+  pyside2,
+  cmake,
+  qt5,
+  libxcrypt,
+  llvmPackages_15,
+  pythonAtLeast,
 }:
 
 stdenv.mkDerivation {
@@ -13,9 +15,7 @@ stdenv.mkDerivation {
 
   inherit (pyside2) version src;
 
-  patches = [
-    ./nix_compile_cflags.patch
-  ];
+  patches = [ ./nix_compile_cflags.patch ];
 
   postPatch = ''
     cd sources/shiboken2
@@ -25,21 +25,21 @@ stdenv.mkDerivation {
 
   nativeBuildInputs = [ cmake ];
 
-  buildInputs = [
-    llvmPackages_15.libclang
-    python
-    python.pkgs.setuptools
-    qt5.qtbase
-    qt5.qtxmlpatterns
-  ] ++ (lib.optionals (python.pythonOlder "3.9") [
-    # see similar issue: 202262
-    # libxcrypt is required for crypt.h for building older python modules
-    libxcrypt
-  ]);
-
-  cmakeFlags = [
-    "-DBUILD_TESTS=OFF"
-  ];
+  buildInputs =
+    [
+      llvmPackages_15.libclang
+      python
+      python.pkgs.setuptools
+      qt5.qtbase
+      qt5.qtxmlpatterns
+    ]
+    ++ (lib.optionals (python.pythonOlder "3.9") [
+      # see similar issue: 202262
+      # libxcrypt is required for crypt.h for building older python modules
+      libxcrypt
+    ]);
+
+  cmakeFlags = [ "-DBUILD_TESTS=OFF" ];
 
   dontWrapQtApps = true;
 
@@ -53,9 +53,12 @@ stdenv.mkDerivation {
   meta = with lib; {
     description = "Generator for the PySide2 Qt bindings";
     mainProgram = "shiboken2";
-    license = with licenses; [ gpl2 lgpl21 ];
+    license = with licenses; [
+      gpl2
+      lgpl21
+    ];
     homepage = "https://wiki.qt.io/Qt_for_Python";
     maintainers = with maintainers; [ gebner ];
-    broken = stdenv.isDarwin;
+    broken = stdenv.isDarwin || pythonAtLeast "3.12";
   };
 }
diff --git a/pkgs/development/python-modules/shiboken6/default.nix b/pkgs/development/python-modules/shiboken6/default.nix
index 57b7e64273d6e..39c61bc8cc3b5 100644
--- a/pkgs/development/python-modules/shiboken6/default.nix
+++ b/pkgs/development/python-modules/shiboken6/default.nix
@@ -1,37 +1,34 @@
-{ lib
-, fetchurl
-, llvmPackages
-, python
-, cmake
-, autoPatchelfHook
-, stdenv
+{
+  lib,
+  fetchurl,
+  llvmPackages,
+  python,
+  cmake,
+  autoPatchelfHook,
+  stdenv,
 }:
 
 let
   stdenv' = if stdenv.cc.isClang then stdenv else llvmPackages.stdenv;
 in
-stdenv'.mkDerivation rec {
+stdenv'.mkDerivation (finalAttrs: {
   pname = "shiboken6";
-  version = "6.7.0";
+  version = "6.7.2";
 
   src = fetchurl {
     # https://download.qt.io/official_releases/QtForPython/shiboken6/
-    url = "https://download.qt.io/official_releases/QtForPython/shiboken6/PySide6-${version}-src/pyside-setup-everywhere-src-${version}.tar.xz";
-    hash = "sha256-gurjcHN99ez1OcFl0J18gdX8YVOlQbjT03sRJ1+ePo8=";
+    url = "mirror://qt/official_releases/QtForPython/shiboken6/PySide6-${finalAttrs.version}-src/pyside-setup-everywhere-src-${finalAttrs.version}.tar.xz";
+    hash = "sha256-OisNDW54yapd3H8GyktvEaP+FFYLrrFI7qU7XZjjaMc=";
   };
 
-  sourceRoot = "pyside-setup-everywhere-src-${version}/sources/${pname}";
+  sourceRoot = "pyside-setup-everywhere-src-${finalAttrs.version}/sources/shiboken6";
 
-  patches = [
-    ./fix-include-qt-headers.patch
-  ];
+  patches = [ ./fix-include-qt-headers.patch ];
 
   nativeBuildInputs = [
     cmake
     (python.pythonOnBuildForHost.withPackages (ps: [ ps.setuptools ]))
-  ] ++ lib.optionals stdenv.isLinux [
-    autoPatchelfHook
-  ];
+  ] ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ];
 
   buildInputs = [
     llvmPackages.llvm
@@ -42,9 +39,7 @@ stdenv'.mkDerivation rec {
     python.pkgs.setuptools
   ];
 
-  cmakeFlags = [
-    "-DBUILD_TESTS=OFF"
-  ];
+  cmakeFlags = [ "-DBUILD_TESTS=OFF" ];
 
   # We intentionally use single quotes around `${BASH}` since it expands from a CMake
   # variable available in this file.
@@ -52,18 +47,6 @@ stdenv'.mkDerivation rec {
     substituteInPlace cmake/ShibokenHelpers.cmake --replace-fail '#!/bin/bash' '#!''${BASH}'
   '';
 
-  # Due to Shiboken.abi3.so being linked to libshiboken6.abi3.so.6.6 in the build tree,
-  # we need to remove the build tree reference from the RPATH and then add the correct
-  # directory to the RPATH. On Linux, the second part is handled by autoPatchelfHook.
-  # https://bugreports.qt.io/browse/PYSIDE-2233
-  preFixup = ''
-    echo "fixing RPATH of Shiboken.abi3.so"
-  '' + lib.optionalString stdenv.isDarwin ''
-    install_name_tool -change {@rpath,$out/lib}/libshiboken6.abi3.6.6.dylib $out/${python.sitePackages}/shiboken6/Shiboken.abi3.so
-  '' + lib.optionalString stdenv.isLinux ''
-    patchelf $out/${python.sitePackages}/shiboken6/Shiboken.abi3.so --shrink-rpath --allowed-rpath-prefixes ${builtins.storeDir}
-  '';
-
   postInstall = ''
     cd ../../..
     ${python.pythonOnBuildForHost.interpreter} setup.py egg_info --build-type=shiboken6
@@ -72,11 +55,19 @@ stdenv'.mkDerivation rec {
 
   dontWrapQtApps = true;
 
-  meta = with lib; {
+  meta = {
     description = "Generator for the pyside6 Qt bindings";
-    license = with licenses; [ lgpl3Only gpl2Only gpl3Only ];
+    license = with lib.licenses; [
+      lgpl3Only
+      gpl2Only
+      gpl3Only
+    ];
     homepage = "https://wiki.qt.io/Qt_for_Python";
-    maintainers = with maintainers; [ gebner Enzime ];
-    platforms = platforms.all;
+    changelog = "https://code.qt.io/cgit/pyside/pyside-setup.git/tree/doc/changelogs/changes-${finalAttrs.version}?h=v${finalAttrs.version}";
+    maintainers = with lib.maintainers; [
+      gebner
+      Enzime
+    ];
+    platforms = lib.platforms.all;
   };
-}
+})
diff --git a/pkgs/development/python-modules/shimmy/default.nix b/pkgs/development/python-modules/shimmy/default.nix
new file mode 100644
index 0000000000000..f1db250e1de2d
--- /dev/null
+++ b/pkgs/development/python-modules/shimmy/default.nix
@@ -0,0 +1,97 @@
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  gymnasium,
+  numpy,
+  ale-py,
+  bsuite,
+  dm-control,
+  gym,
+  imageio,
+  pettingzoo,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "shimmy";
+  version = "1.3.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "Farama-Foundation";
+    repo = "Shimmy";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-rYBbGyMSFF/iIGruKn2JXKAVIZIfJDEHUEZUESiUg/k=";
+  };
+
+  build-system = [
+    setuptools
+    wheel
+  ];
+
+  dependencies = [
+    gymnasium
+    numpy
+  ];
+
+  pythonImportsCheck = [ "shimmy" ];
+
+  nativeCheckInputs = [
+    ale-py
+    bsuite
+    dm-control
+    gym
+    imageio
+    pettingzoo
+    pytestCheckHook
+  ];
+
+  disabledTestPaths = [
+    # Requires unpackaged pyspiel
+    "tests/test_openspiel.py"
+
+    # Broken since ale-py v0.9.0 due to API change
+    # https://github.com/Farama-Foundation/Shimmy/issues/120
+    "tests/test_atari.py"
+  ];
+
+  preCheck = ''
+    export HOME=$(mktemp -d)
+  '';
+
+  disabledTests = [
+    # Require network access
+    "test_check_env[bsuite/mnist_noise-v0]"
+    "test_check_env[bsuite/mnist_scale-v0]"
+    "test_check_env[bsuite/mnist-v0]"
+    "test_existing_env"
+    "test_loading_env"
+    "test_pickle[bsuite/mnist-v0]"
+    "test_seeding[bsuite/mnist_noise-v0]"
+    "test_seeding[bsuite/mnist_scale-v0]"
+    "test_seeding[bsuite/mnist-v0]"
+    "test_seeding"
+
+    # RuntimeError: std::exception
+    "test_check_env"
+    "test_seeding[dm_control/quadruped-escape-v0]"
+    "test_rendering_camera_id"
+    "test_rendering_multiple_cameras"
+    "test_rendering_depth"
+    "test_render_height_widths"
+  ];
+
+  meta = {
+    changelog = "https://github.com/Farama-Foundation/Shimmy/releases/tag/v${version}";
+    description = "API conversion tool for popular external reinforcement learning environments";
+    homepage = "https://github.com/Farama-Foundation/Shimmy";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/pkgs/development/python-modules/shippai/default.nix b/pkgs/development/python-modules/shippai/default.nix
index b0591385b961d..e005b12dded32 100644
--- a/pkgs/development/python-modules/shippai/default.nix
+++ b/pkgs/development/python-modules/shippai/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "shippai";
diff --git a/pkgs/development/python-modules/shiv/default.nix b/pkgs/development/python-modules/shiv/default.nix
index a508ee2ec6959..010fd7aad9998 100644
--- a/pkgs/development/python-modules/shiv/default.nix
+++ b/pkgs/development/python-modules/shiv/default.nix
@@ -1,25 +1,31 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, click
-, pip
-, setuptools
-, wheel
-, pytestCheckHook
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  click,
+  pip,
+  setuptools,
+  wheel,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "shiv";
-  version = "1.0.5";
+  version = "1.0.6";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-3eryU4+4HFfMIrmst1Vlm6GounzvtCfFiAYFhAH/RdU=";
+    hash = "sha256-4iJ2gTWXe+vftcDRp9/qKVV8VmtY0wDVuMJTXvIj13Y=";
   };
 
-  propagatedBuildInputs = [ click pip setuptools wheel ];
+  propagatedBuildInputs = [
+    click
+    pip
+    setuptools
+    wheel
+  ];
 
   pythonImportsCheck = [ "shiv" ];
 
diff --git a/pkgs/development/python-modules/shlib/default.nix b/pkgs/development/python-modules/shlib/default.nix
index 81ffccead0e44..8bc4ba90d3e1d 100644
--- a/pkgs/development/python-modules/shlib/default.nix
+++ b/pkgs/development/python-modules/shlib/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pytestCheckHook
-, braceexpand
-, inform
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pytestCheckHook,
+  braceexpand,
+  inform,
 }:
 
 buildPythonPackage rec {
@@ -23,18 +24,14 @@ buildPythonPackage rec {
     patchShebangs .
   '';
 
-  build-system = [
-    flit-core
-  ];
+  build-system = [ flit-core ];
 
   dependencies = [
     braceexpand
     inform
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "shlib" ];
 
diff --git a/pkgs/development/python-modules/shodan/default.nix b/pkgs/development/python-modules/shodan/default.nix
index 43ea7bdba8a7d..e83336b07b910 100644
--- a/pkgs/development/python-modules/shodan/default.nix
+++ b/pkgs/development/python-modules/shodan/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, click-plugins
-, colorama
-, fetchPypi
-, pythonOlder
-, requests
-, setuptools
-, tldextract
-, xlsxwriter
+{
+  lib,
+  buildPythonPackage,
+  click-plugins,
+  colorama,
+  fetchPypi,
+  pythonOlder,
+  requests,
+  setuptools,
+  tldextract,
+  xlsxwriter,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
   # The tests require a shodan api key, so skip them.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "shodan"
-  ];
+  pythonImportsCheck = [ "shodan" ];
 
   meta = with lib; {
     description = "Python library and command-line utility for Shodan";
@@ -44,6 +43,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/achillean/shodan-python";
     changelog = "https://github.com/achillean/shodan-python/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
-    maintainers = with maintainers; [ fab lihop ];
+    maintainers = with maintainers; [
+      fab
+      lihop
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/shortuuid/default.nix b/pkgs/development/python-modules/shortuuid/default.nix
index 17b69da44700b..1ccefc016c933 100644
--- a/pkgs/development/python-modules/shortuuid/default.nix
+++ b/pkgs/development/python-modules/shortuuid/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-O7nPB/YGJgWEsd9GOZwLh92Edz57JZErfjkeMHl8XnI=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "shortuuid"
-  ];
+  pythonImportsCheck = [ "shortuuid" ];
 
   meta = with lib; {
     description = "Library to generate concise, unambiguous and URL-safe UUIDs";
diff --git a/pkgs/development/python-modules/should-dsl/default.nix b/pkgs/development/python-modules/should-dsl/default.nix
index 444e04b7f36f8..5ff8faa1b862c 100644
--- a/pkgs/development/python-modules/should-dsl/default.nix
+++ b/pkgs/development/python-modules/should-dsl/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "should-dsl";
diff --git a/pkgs/development/python-modules/shouldbe/default.nix b/pkgs/development/python-modules/shouldbe/default.nix
deleted file mode 100644
index 0c03d6d58d420..0000000000000
--- a/pkgs/development/python-modules/shouldbe/default.nix
+++ /dev/null
@@ -1,30 +0,0 @@
-{ lib
-, buildPythonPackage
-, pythonAtLeast
-, fetchPypi
-, nose
-, forbiddenfruit
-}:
-
-buildPythonPackage rec {
-  version = "0.1.2";
-  format = "setuptools";
-  pname = "shouldbe";
-  # incompatible, https://github.com/DirectXMan12/should_be/issues/4
-  disabled = pythonAtLeast "3.8";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "16zbvjxf71dl4yfbgcr6idyim3mdrfvix1dv8b95p0s9z07372pj";
-  };
-
-  nativeCheckInputs = [ nose ];
-  propagatedBuildInputs = [ forbiddenfruit ];
-
-  meta = with lib; {
-    description = "Python Assertion Helpers inspired by Shouldly";
-    homepage =  "https://pypi.python.org/pypi/shouldbe/";
-    license = licenses.mit;
-  };
-
-}
diff --git a/pkgs/development/python-modules/show-in-file-manager/default.nix b/pkgs/development/python-modules/show-in-file-manager/default.nix
index e48268c7ef66f..0d52bdb52bd4e 100644
--- a/pkgs/development/python-modules/show-in-file-manager/default.nix
+++ b/pkgs/development/python-modules/show-in-file-manager/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, argparse-manpage
-, setuptools
-, packaging
-, pyxdg
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  argparse-manpage,
+  setuptools,
+  packaging,
+  pyxdg,
 }:
 
 buildPythonPackage rec {
@@ -23,10 +24,7 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  propagatedBuildInputs = [
-    packaging
-  ]
-  ++ lib.optional (stdenv.isLinux) pyxdg;
+  propagatedBuildInputs = [ packaging ] ++ lib.optional (stdenv.isLinux) pyxdg;
 
   meta = with lib; {
     homepage = "https://github.com/damonlynch/showinfilemanager";
diff --git a/pkgs/development/python-modules/showit/default.nix b/pkgs/development/python-modules/showit/default.nix
index 4b424f76a2e39..b98b48df2cd99 100644
--- a/pkgs/development/python-modules/showit/default.nix
+++ b/pkgs/development/python-modules/showit/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, matplotlib
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  matplotlib,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     matplotlib
   ];
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
   checkPhase = ''
     pytest test
diff --git a/pkgs/development/python-modules/shtab/default.nix b/pkgs/development/python-modules/shtab/default.nix
index 7ec98fce432b4..2b1b13840848a 100644
--- a/pkgs/development/python-modules/shtab/default.nix
+++ b/pkgs/development/python-modules/shtab/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-timeout
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
-, bashInteractive
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-timeout,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  bashInteractive,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "shtab"
-  ];
+  pythonImportsCheck = [ "shtab" ];
 
   meta = with lib; {
     description = "Module for shell tab completion of Python CLI applications";
diff --git a/pkgs/development/python-modules/shutilwhich/default.nix b/pkgs/development/python-modules/shutilwhich/default.nix
index c3c48f47e6cd5..bc022fbe0f853 100644
--- a/pkgs/development/python-modules/shutilwhich/default.nix
+++ b/pkgs/development/python-modules/shutilwhich/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/signalslot/default.nix b/pkgs/development/python-modules/signalslot/default.nix
index 98e3a15eec579..0dcd543346667 100644
--- a/pkgs/development/python-modules/signalslot/default.nix
+++ b/pkgs/development/python-modules/signalslot/default.nix
@@ -1,14 +1,14 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, pythonRelaxDepsHook
-, contexter
-, eventlet
-, mock
-, pytest-xdist
-, pytestCheckHook
-, six
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  contexter,
+  eventlet,
+  mock,
+  pytest-xdist,
+  pytestCheckHook,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +27,6 @@ buildPythonPackage rec {
       --replace "--cov-report html" ""
   '';
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   propagatedBuildInputs = [
     contexter
diff --git a/pkgs/development/python-modules/signedjson/default.nix b/pkgs/development/python-modules/signedjson/default.nix
index e57a86c37f21c..ef386cfd378e2 100644
--- a/pkgs/development/python-modules/signedjson/default.nix
+++ b/pkgs/development/python-modules/signedjson/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, canonicaljson
-, fetchPypi
-, importlib-metadata
-, pynacl
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
-, typing-extensions
-, unpaddedbase64
+{
+  lib,
+  buildPythonPackage,
+  canonicaljson,
+  fetchPypi,
+  importlib-metadata,
+  pynacl,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  typing-extensions,
+  unpaddedbase64,
 }:
 
 buildPythonPackage rec {
@@ -23,26 +24,22 @@ buildPythonPackage rec {
     hash = "sha256-zZHFavU/Fp7wMsYunEoyktwViGaTMxjQWS40Yts9ZJI=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
-
-  propagatedBuildInputs = [
-    canonicaljson
-    unpaddedbase64
-    pynacl
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-    typing-extensions
-  ];
-
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
-
-  pythonImportsCheck = [
-    "signedjson"
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
+
+  propagatedBuildInputs =
+    [
+      canonicaljson
+      unpaddedbase64
+      pynacl
+    ]
+    ++ lib.optionals (pythonOlder "3.8") [
+      importlib-metadata
+      typing-extensions
+    ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "signedjson" ];
 
   meta = with lib; {
     description = "Sign JSON with Ed25519 signatures";
diff --git a/pkgs/development/python-modules/signify/default.nix b/pkgs/development/python-modules/signify/default.nix
index 1c7f503d33c12..ec2bed3ce36fc 100644
--- a/pkgs/development/python-modules/signify/default.nix
+++ b/pkgs/development/python-modules/signify/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, asn1crypto
-, buildPythonPackage
-, certvalidator
-, fetchFromGitHub
-, mscerts
-, oscrypto
-, pyasn1
-, pyasn1-modules
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  asn1crypto,
+  buildPythonPackage,
+  certvalidator,
+  fetchFromGitHub,
+  mscerts,
+  oscrypto,
+  pyasn1,
+  pyasn1-modules,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-29SyzqtZ1cI+1xrSPLFr63vwB5st/9i5b3FYtJn6eok=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     asn1crypto
@@ -41,13 +40,9 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  pythonImportsCheck = [
-    "signify"
-  ];
+  pythonImportsCheck = [ "signify" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     changelog = "https://github.com/ralphje/signify/blob/${src.rev}/docs/changelog.rst";
diff --git a/pkgs/development/python-modules/signxml/default.nix b/pkgs/development/python-modules/signxml/default.nix
index c6c6ccea9b15e..cf5b9504012ed 100644
--- a/pkgs/development/python-modules/signxml/default.nix
+++ b/pkgs/development/python-modules/signxml/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, certifi
-, cryptography
-, fetchFromGitHub
-, lxml
-, pyopenssl
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  certifi,
+  cryptography,
+  fetchFromGitHub,
+  lxml,
+  pyopenssl,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-TlOIHYvx1o46nr/3qq45pgeOqmuyWaaTGvOS0Jwz1zs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     certifi
@@ -35,17 +34,11 @@ buildPythonPackage rec {
     pyopenssl
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "signxml"
-  ];
+  pythonImportsCheck = [ "signxml" ];
 
-  pytestFlagsArray = [
-    "test/test.py"
-  ];
+  pytestFlagsArray = [ "test/test.py" ];
 
   meta = with lib; {
     description = "Python XML Signature and XAdES library";
diff --git a/pkgs/development/python-modules/sigrok/default.nix b/pkgs/development/python-modules/sigrok/default.nix
index b8b925ba6b16a..40253c5ad19c7 100644
--- a/pkgs/development/python-modules/sigrok/default.nix
+++ b/pkgs/development/python-modules/sigrok/default.nix
@@ -1,62 +1,67 @@
-{ lib
-, stdenv
-, libsigrok
-, toPythonModule
-, python
-, autoreconfHook
-, pythonImportsCheckHook
-, pythonCatchConflictsHook
-, swig
-, setuptools
-, numpy
-, pygobject3
+{
+  lib,
+  stdenv,
+  libsigrok,
+  toPythonModule,
+  python,
+  autoreconfHook,
+  pythonImportsCheckHook,
+  pythonCatchConflictsHook,
+  swig,
+  setuptools,
+  numpy,
+  pygobject3,
 }:
 
 # build libsigrok plus its Python bindings. Unfortunately it does not appear
 # to be possible to build them separately, at least not easily.
-toPythonModule ((libsigrok.override {
-  inherit python;
-}).overrideAttrs (orig: {
-  pname = "${python.libPrefix}-sigrok";
-
-  patches = orig.patches or [] ++ [
-    # Makes libsigrok install the bindings into site-packages properly (like
-    # we expect) instead of making a version-specific *.egg subdirectory.
-    ./python-install.patch
-  ];
-
-  nativeBuildInputs = orig.nativeBuildInputs or [] ++ [
-    autoreconfHook
-    setuptools
-    swig
-    numpy
-  ] ++ lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [
-    pythonImportsCheckHook
-    pythonCatchConflictsHook
-  ];
-
-  buildInputs = orig.buildInputs or [] ++ [
-    pygobject3 # makes headers available the configure script checks for
-  ];
-
-  propagatedBuildInputs = orig.propagatedBuildInputs or [] ++ [
-    pygobject3
-    numpy
-  ];
-
-  postInstall = ''
-    ${orig.postInstall or ""}
-
-    # for pythonImportsCheck
-    export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
-  '';
-
-  pythonImportsCheck = [ "sigrok" "sigrok.core" ];
-
-  meta = orig.meta // {
-    description = "Python bindings for libsigrok";
-    maintainers = orig.meta.maintainers ++ [
-      lib.maintainers.sternenseemann
+toPythonModule (
+  (libsigrok.override { inherit python; }).overrideAttrs (orig: {
+    pname = "${python.libPrefix}-sigrok";
+
+    patches = orig.patches or [ ] ++ [
+      # Makes libsigrok install the bindings into site-packages properly (like
+      # we expect) instead of making a version-specific *.egg subdirectory.
+      ./python-install.patch
+    ];
+
+    nativeBuildInputs =
+      orig.nativeBuildInputs or [ ]
+      ++ [
+        autoreconfHook
+        setuptools
+        swig
+        numpy
+      ]
+      ++ lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [
+        pythonImportsCheckHook
+        pythonCatchConflictsHook
+      ];
+
+    buildInputs = orig.buildInputs or [ ] ++ [
+      pygobject3 # makes headers available the configure script checks for
+    ];
+
+    propagatedBuildInputs = orig.propagatedBuildInputs or [ ] ++ [
+      pygobject3
+      numpy
     ];
-  };
-}))
+
+    postInstall = ''
+      ${orig.postInstall or ""}
+
+      # for pythonImportsCheck
+      export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH"
+    '';
+
+    pythonImportsCheck = [
+      "sigrok"
+      "sigrok.core"
+    ];
+
+    meta = orig.meta // {
+      description = "Python bindings for libsigrok";
+      maintainers = orig.meta.maintainers ++ [ lib.maintainers.sternenseemann ];
+    };
+  })
+)
diff --git a/pkgs/development/python-modules/sigstore-protobuf-specs/default.nix b/pkgs/development/python-modules/sigstore-protobuf-specs/default.nix
index 56da9cd5f4033..043b47e243108 100644
--- a/pkgs/development/python-modules/sigstore-protobuf-specs/default.nix
+++ b/pkgs/development/python-modules/sigstore-protobuf-specs/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, pythonOlder
-, flit-core
-, fetchPypi
-, buildPythonPackage
-, betterproto
+{
+  lib,
+  pythonOlder,
+  flit-core,
+  fetchPypi,
+  buildPythonPackage,
+  betterproto,
 }:
 
 buildPythonPackage rec {
   pname = "sigstore-protobuf-specs";
-  version = "0.3.1";
+  version = "0.3.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -16,23 +17,17 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "sigstore_protobuf_specs";
     inherit version;
-    hash = "sha256-xAthl1uVeukG6ymlvHBA7AFbaLa0YAXMWAXmKUk+jew=";
+    hash = "sha256-yuBBtAUCYAuKYz9DwldpXQIiqU76HlEQp+x62njDnZk=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    betterproto
-  ];
+  propagatedBuildInputs = [ betterproto ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sigstore_protobuf_specs"
-  ];
+  pythonImportsCheck = [ "sigstore_protobuf_specs" ];
 
   meta = with lib; {
     description = "Library for serializing and deserializing Sigstore messages";
diff --git a/pkgs/development/python-modules/sigstore/default.nix b/pkgs/development/python-modules/sigstore/default.nix
index 804e2fb69d897..56d7ecd6c5e94 100644
--- a/pkgs/development/python-modules/sigstore/default.nix
+++ b/pkgs/development/python-modules/sigstore/default.nix
@@ -78,7 +78,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A codesigning tool for Python packages";
+    description = "Codesigning tool for Python packages";
     homepage = "https://github.com/sigstore/sigstore-python";
     changelog = "https://github.com/sigstore/sigstore-python/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/sigtools/default.nix b/pkgs/development/python-modules/sigtools/default.nix
index 87dc4e91e6e90..d1122d16cfbf3 100644
--- a/pkgs/development/python-modules/sigtools/default.nix
+++ b/pkgs/development/python-modules/sigtools/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, attrs
-, buildPythonPackage
-, fetchPypi
-, mock
-, pythonOlder
-, repeated-test
-, setuptools-scm
-, sphinx
-, unittestCheckHook
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  repeated-test,
+  setuptools-scm,
+  sphinx,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -15,20 +15,14 @@ buildPythonPackage rec {
   version = "4.0.1";
   format = "pyproject";
 
-  disabled = pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-S44TWpzU0uoA2mcMCTNy105nK6OruH9MmNjnPepURFw=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    attrs
-  ];
+  propagatedBuildInputs = [ attrs ];
 
   nativeCheckInputs = [
     mock
@@ -37,9 +31,7 @@ buildPythonPackage rec {
     unittestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "sigtools"
-  ];
+  pythonImportsCheck = [ "sigtools" ];
 
   meta = with lib; {
     description = "Utilities for working with inspect.Signature objects";
diff --git a/pkgs/development/python-modules/simanneal/default.nix b/pkgs/development/python-modules/simanneal/default.nix
index 9bd957780adee..2bd0bd80be065 100644
--- a/pkgs/development/python-modules/simanneal/default.nix
+++ b/pkgs/development/python-modules/simanneal/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchFromGitHub, buildPythonPackage, pytest }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "simanneal";
@@ -16,7 +21,7 @@ buildPythonPackage rec {
   checkPhase = "pytest tests";
 
   meta = with lib; {
-    description = "A python implementation of the simulated annealing optimization technique";
+    description = "Python implementation of the simulated annealing optimization technique";
     homepage = "https://github.com/perrygeo/simanneal";
     license = licenses.isc;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/development/python-modules/simber/default.nix b/pkgs/development/python-modules/simber/default.nix
index c5e3a8ef22108..651f97e2048ad 100644
--- a/pkgs/development/python-modules/simber/default.nix
+++ b/pkgs/development/python-modules/simber/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, colorama
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  colorama,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-kHoFZD7nhVxJu9MqePLkL7KTG2saPecY9238c/oeEco=";
   };
 
-  propagatedBuildInputs = [
-    colorama
-  ];
+  propagatedBuildInputs = [ colorama ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "simber"
-  ];
+  pythonImportsCheck = [ "simber" ];
 
   meta = with lib; {
     description = "Simple, minimal and powerful logger for Python";
diff --git a/pkgs/development/python-modules/simpful/default.nix b/pkgs/development/python-modules/simpful/default.nix
index 37f2ae860c0ec..74c88e6a56449 100644
--- a/pkgs/development/python-modules/simpful/default.nix
+++ b/pkgs/development/python-modules/simpful/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, matplotlib
-, numpy
-, pytestCheckHook
-, pythonOlder
-, requests
-, scipy
-, seaborn
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  matplotlib,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  scipy,
+  seaborn,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-NtTw7sF1WfVebUk1wHrM8FHAe3/FXDcMApPkDbw0WXo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     numpy
@@ -47,9 +46,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "simpful"
-  ];
+  pythonImportsCheck = [ "simpful" ];
 
   meta = with lib; {
     description = "Library for fuzzy logic";
diff --git a/pkgs/development/python-modules/simple-di/default.nix b/pkgs/development/python-modules/simple-di/default.nix
index 79437c4a0b344..b8d32effc0983 100644
--- a/pkgs/development/python-modules/simple-di/default.nix
+++ b/pkgs/development/python-modules/simple-di/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  pythonImportsCheck = [
-    "simple_di"
-  ];
+  pythonImportsCheck = [ "simple_di" ];
 
   # pypi distribution contains no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/simple-rest-client/default.nix b/pkgs/development/python-modules/simple-rest-client/default.nix
index 325454c30ea71..023b604c8a57a 100644
--- a/pkgs/development/python-modules/simple-rest-client/default.nix
+++ b/pkgs/development/python-modules/simple-rest-client/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, httpx
-, pytest-asyncio
-, pytest-httpserver
-, pytestCheckHook
-, python-slugify
-, python-status
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpx,
+  pytest-asyncio,
+  pytest-httpserver,
+  pytestCheckHook,
+  python-slugify,
+  python-status,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -45,13 +46,9 @@ buildPythonPackage rec {
       --replace "asyncmock" ""
   '';
 
-  disabledTestPaths = [
-    "tests/test_decorators.py"
-  ];
+  disabledTestPaths = [ "tests/test_decorators.py" ];
 
-  pythonImportsCheck = [
-    "simple_rest_client"
-  ];
+  pythonImportsCheck = [ "simple_rest_client" ];
 
   meta = with lib; {
     description = "Simple REST client for Python";
diff --git a/pkgs/development/python-modules/simple-rlp/default.nix b/pkgs/development/python-modules/simple-rlp/default.nix
index f91f21a67d0c4..dd5aa752cdbd7 100644
--- a/pkgs/development/python-modules/simple-rlp/default.nix
+++ b/pkgs/development/python-modules/simple-rlp/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/simple-salesforce/default.nix b/pkgs/development/python-modules/simple-salesforce/default.nix
index e42d569b45e8d..c529e2ab04ae8 100644
--- a/pkgs/development/python-modules/simple-salesforce/default.nix
+++ b/pkgs/development/python-modules/simple-salesforce/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, more-itertools
-, pendulum
-, pyjwt
-, pytestCheckHook
-, pythonOlder
-, pytz
-, requests
-, responses
-, setuptools
-, typing-extensions
-, zeep
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  more-itertools,
+  pendulum,
+  pyjwt,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  requests,
+  responses,
+  setuptools,
+  typing-extensions,
+  zeep,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     hash = "sha256-nrfIyXftS2X2HuuLFRZpWLz/IbRasqUzv+r/HvhxfAw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cryptography
@@ -49,16 +48,13 @@ buildPythonPackage rec {
     responses
   ];
 
-  pythonImportsCheck = [
-    "simple_salesforce"
-  ];
+  pythonImportsCheck = [ "simple_salesforce" ];
 
   meta = with lib; {
-    description = "A very simple Salesforce.com REST API client for Python";
+    description = "Very simple Salesforce.com REST API client for Python";
     homepage = "https://github.com/simple-salesforce/simple-salesforce";
     changelog = "https://github.com/simple-salesforce/simple-salesforce/blob/v${version}/CHANGES";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/simple-term-menu/default.nix b/pkgs/development/python-modules/simple-term-menu/default.nix
index 7a348b1f602da..ea67d21d5adc9 100644
--- a/pkgs/development/python-modules/simple-term-menu/default.nix
+++ b/pkgs/development/python-modules/simple-term-menu/default.nix
@@ -1,8 +1,8 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -10,8 +10,6 @@ buildPythonPackage rec {
   version = "1.6.4";
   pyproject = true;
 
-  disabled = pythonOlder "3.4";
-
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-vpxdvY3xKkBLFM2Oldb8AtWMYOJVX2Xd3kF3fEh/s7k=";
@@ -25,7 +23,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A Python package which creates simple interactive menus on the command line";
+    description = "Python package which creates simple interactive menus on the command line";
     mainProgram = "simple-term-menu";
     homepage = "https://github.com/IngoMeyer441/simple-term-menu";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/simple-websocket-server/default.nix b/pkgs/development/python-modules/simple-websocket-server/default.nix
index 485a9a5c7cd4a..e7e2c0af5ae4e 100644
--- a/pkgs/development/python-modules/simple-websocket-server/default.nix
+++ b/pkgs/development/python-modules/simple-websocket-server/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchFromGitHub }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+}:
 
 buildPythonPackage {
   pname = "simple-websocket-server";
@@ -14,7 +18,7 @@ buildPythonPackage {
   doCheck = false; # no tests
 
   meta = with lib; {
-    description = "A python based websocket server that is simple and easy to use";
+    description = "Python based websocket server that is simple and easy to use";
     homepage = "https://github.com/dpallot/simple-websocket-server/";
     license = licenses.mit;
     maintainers = with maintainers; [ rvolosatovs ];
diff --git a/pkgs/development/python-modules/simple-websocket/default.nix b/pkgs/development/python-modules/simple-websocket/default.nix
index 5af426fb5ba2c..a7937b59f6c1e 100644
--- a/pkgs/development/python-modules/simple-websocket/default.nix
+++ b/pkgs/development/python-modules/simple-websocket/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, setuptools
-, wheel
-, wsproto
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  setuptools,
+  wheel,
+  wsproto,
 }:
 
 buildPythonPackage rec {
@@ -24,17 +25,11 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    wsproto
-  ];
+  propagatedBuildInputs = [ wsproto ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "simple_websocket"
-  ];
+  pythonImportsCheck = [ "simple_websocket" ];
 
   meta = with lib; {
     description = "Simple WebSocket server and client for Python";
diff --git a/pkgs/development/python-modules/simpleaudio/default.nix b/pkgs/development/python-modules/simpleaudio/default.nix
index ed90911dfc9b5..71d9cb43c06dd 100644
--- a/pkgs/development/python-modules/simpleaudio/default.nix
+++ b/pkgs/development/python-modules/simpleaudio/default.nix
@@ -1,4 +1,10 @@
-{ alsa-lib, buildPythonPackage, fetchFromGitHub, isPy27, lib }:
+{
+  alsa-lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy27,
+  lib,
+}:
 
 buildPythonPackage rec {
   pname = "simpleaudio";
@@ -17,8 +23,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/hamiltron/py-simple-audio";
-    description =
-      "A simple audio playback Python extension - cross-platform, asynchronous, dependency-free";
+    description = "Simple audio playback Python extension - cross-platform, asynchronous, dependency-free";
     license = licenses.mit;
     maintainers = with maintainers; [ lucus16 ];
   };
diff --git a/pkgs/development/python-modules/simplebayes/default.nix b/pkgs/development/python-modules/simplebayes/default.nix
index 1db9ff589e982..ea3fdd268e4c6 100644
--- a/pkgs/development/python-modules/simplebayes/default.nix
+++ b/pkgs/development/python-modules/simplebayes/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nose
-, mock
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nose,
+  mock,
+  isPy3k,
 }:
 
 buildPythonPackage {
@@ -20,7 +21,10 @@ buildPythonPackage {
     sha256 = "0mp7rvfdmpfxnka4czw3lv5kkh6gdxh6dm4r6hcln1zzfg9lxp4h";
   };
 
-  nativeCheckInputs = [ nose mock ];
+  nativeCheckInputs = [
+    nose
+    mock
+  ];
 
   postPatch = lib.optionalString isPy3k ''
     sed -i -e 's/open *(\([^)]*\))/open(\1, encoding="utf-8")/' setup.py
@@ -33,5 +37,4 @@ buildPythonPackage {
     homepage = "https://github.com/hickeroar/simplebayes";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/simpleeval/default.nix b/pkgs/development/python-modules/simpleeval/default.nix
index 57693fb3791c6..21cd49585fe7b 100644
--- a/pkgs/development/python-modules/simpleeval/default.nix
+++ b/pkgs/development/python-modules/simpleeval/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,21 +18,13 @@ buildPythonPackage rec {
     hash = "sha256-I1GILYPE6OyotgRe0Ek/iHHv6q9/b/MlcTxMAtfZD80=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "test_simpleeval.py"
-  ];
+  pytestFlagsArray = [ "test_simpleeval.py" ];
 
-  pythonImportsCheck = [
-    "simpleeval"
-  ];
+  pythonImportsCheck = [ "simpleeval" ];
 
   meta = with lib; {
     description = "Simple, safe single expression evaluator library";
diff --git a/pkgs/development/python-modules/simplefix/default.nix b/pkgs/development/python-modules/simplefix/default.nix
index 329c1ba313e0d..85ab1f40cc90a 100644
--- a/pkgs/development/python-modules/simplefix/default.nix
+++ b/pkgs/development/python-modules/simplefix/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-D85JW3JRQ1xErw6krMbAg94WYjPi76Xqjv/MGNMY5ZU=";
   };
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  pythonImportsCheck = [
-    "simplefix"
-  ];
+  pythonImportsCheck = [ "simplefix" ];
 
   unittestFlagsArray = [
     "-s"
diff --git a/pkgs/development/python-modules/simplegeneric/default.nix b/pkgs/development/python-modules/simplegeneric/default.nix
index 4bc1683404d6c..274b0a6ebb02f 100644
--- a/pkgs/development/python-modules/simplegeneric/default.nix
+++ b/pkgs/development/python-modules/simplegeneric/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/simplehound/default.nix b/pkgs/development/python-modules/simplehound/default.nix
index af97b7cc96197..bf2efed90c09a 100644
--- a/pkgs/development/python-modules/simplehound/default.nix
+++ b/pkgs/development/python-modules/simplehound/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, requests
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests-mock
+{
+  lib,
+  requests,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/simpleitk/default.nix b/pkgs/development/python-modules/simpleitk/default.nix
index e07e6e994d432..e69f39820c476 100644
--- a/pkgs/development/python-modules/simpleitk/default.nix
+++ b/pkgs/development/python-modules/simpleitk/default.nix
@@ -1,18 +1,23 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, cmake
-, swig4
-, elastix
-, itk
-, numpy
-, simpleitk
-, scikit-build
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  cmake,
+  swig4,
+  elastix,
+  itk,
+  numpy,
+  simpleitk,
+  scikit-build,
 }:
 
 buildPythonPackage rec {
-  inherit (simpleitk) pname version src meta;
+  inherit (simpleitk)
+    pname
+    version
+    src
+    meta
+    ;
   format = "pyproject";
   disabled = pythonOlder "3.8";
 
diff --git a/pkgs/development/python-modules/simplejson/default.nix b/pkgs/development/python-modules/simplejson/default.nix
index b136d9e94dac6..bbebbfd358673 100644
--- a/pkgs/development/python-modules/simplejson/default.nix
+++ b/pkgs/development/python-modules/simplejson/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,15 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-+HHtU6sxxwISciLxiwa5m1zj7h/SLDmRxOZNqW5FQSY=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   doCheck = !stdenv.isDarwin;
 
-  pythonImportsCheck = [
-    "simplejson"
-  ];
+  pythonImportsCheck = [ "simplejson" ];
 
   meta = with lib; {
     description = "Extensible JSON encoder/decoder for Python";
@@ -40,7 +37,10 @@ buildPythonPackage rec {
     '';
     homepage = "https://github.com/simplejson/simplejson";
     changelog = "https://github.com/simplejson/simplejson/blob/v${version}/CHANGES.txt";
-    license = with licenses; [ mit afl21 ];
+    license = with licenses; [
+      mit
+      afl21
+    ];
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/simplekml/default.nix b/pkgs/development/python-modules/simplekml/default.nix
index 550cd81a4f4e8..99637db57a430 100644
--- a/pkgs/development/python-modules/simplekml/default.nix
+++ b/pkgs/development/python-modules/simplekml/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python package to generate KML";
-    homepage =  "https://simplekml.readthedocs.io/";
+    homepage = "https://simplekml.readthedocs.io/";
     license = licenses.lgpl3Plus;
     maintainers = with maintainers; [ rvolosatovs ];
   };
diff --git a/pkgs/development/python-modules/simplekv/default.nix b/pkgs/development/python-modules/simplekv/default.nix
index 22851e6da57b4..24598ed8bf03e 100644
--- a/pkgs/development/python-modules/simplekv/default.nix
+++ b/pkgs/development/python-modules/simplekv/default.nix
@@ -41,7 +41,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A simple key-value store for binary data";
+    description = "Simple key-value store for binary data";
     homepage = "https://github.com/mbr/simplekv";
     changelog = "https://github.com/mbr/simplekv/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/simplemma/default.nix b/pkgs/development/python-modules/simplemma/default.nix
index 60cb7438e9fbb..e31fe1873f189 100644
--- a/pkgs/development/python-modules/simplemma/default.nix
+++ b/pkgs/development/python-modules/simplemma/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
 
-, pytestCheckHook
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "simplemma";
-  version = "0.9.1";
+  version = "1.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.6";
@@ -16,17 +17,13 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "adbar";
     repo = "simplemma";
-    rev = "v${version}";
-    hash = "sha256-2IvAJ+tRnlYISymYXznCGAoUTKkM/PoYwpZpuMSXRYQ=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-lhk6QrBg0m8orYHphnP+YiCnJFE44buyp3NQbz0U550=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "simplemma"
-  ];
+  pythonImportsCheck = [ "simplemma" ];
 
   meta = with lib; {
     description = "Simple multilingual lemmatizer for Python, especially useful for speed and efficiency";
diff --git a/pkgs/development/python-modules/simplenote/default.nix b/pkgs/development/python-modules/simplenote/default.nix
index 1a00b7ef5b6a4..d717ab1b32b81 100644
--- a/pkgs/development/python-modules/simplenote/default.nix
+++ b/pkgs/development/python-modules/simplenote/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
@@ -15,13 +16,12 @@ buildPythonPackage rec {
     sha256 = "1grvvgzdybhxjydalnsgh2aaz3f48idv5lqs48gr0cn7n18xwhd5";
   };
 
-   propagatedBuildInputs = [ ];
+  propagatedBuildInputs = [ ];
 
-   meta = with lib; {
-    description = "A python library for the simplenote.com web service";
+  meta = with lib; {
+    description = "Python library for the simplenote.com web service";
     homepage = "http://readthedocs.org/docs/simplenotepy/en/latest/api.html";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
-   };
-
+  };
 }
diff --git a/pkgs/development/python-modules/simplepush/default.nix b/pkgs/development/python-modules/simplepush/default.nix
index e7461a850b301..8df3016adc1f9 100644
--- a/pkgs/development/python-modules/simplepush/default.nix
+++ b/pkgs/development/python-modules/simplepush/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-DvDPihhx1rzJN6iQP5rHluplJ1AaN0b/glcd+tZCues=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -35,9 +34,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "simplepush"
-  ];
+  pythonImportsCheck = [ "simplepush" ];
 
   meta = with lib; {
     description = "Module to send push notifications via Simplepush";
diff --git a/pkgs/development/python-modules/simplesat/default.nix b/pkgs/development/python-modules/simplesat/default.nix
index 7000b010af966..f0981334e2174 100644
--- a/pkgs/development/python-modules/simplesat/default.nix
+++ b/pkgs/development/python-modules/simplesat/default.nix
@@ -1,10 +1,11 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, writeText
-, lib
-, attrs
-, six
-, okonomiyaki
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  writeText,
+  lib,
+  attrs,
+  six,
+  okonomiyaki,
 }:
 
 let
@@ -19,12 +20,16 @@ let
     msi_version = '${version}.000'
     version_info = (${lib.versions.major version}, ${lib.versions.minor version}, ${lib.versions.patch version}, 'final', 0)
   '';
-
-in buildPythonPackage rec {
+in
+buildPythonPackage rec {
   pname = "simplesat";
   inherit version;
 
-  propagatedBuildInputs = [ attrs six okonomiyaki ];
+  propagatedBuildInputs = [
+    attrs
+    six
+    okonomiyaki
+  ];
 
   src = fetchFromGitHub {
     owner = "enthought";
diff --git a/pkgs/development/python-modules/simplesqlite/default.nix b/pkgs/development/python-modules/simplesqlite/default.nix
index c616841813652..37afa77248730 100644
--- a/pkgs/development/python-modules/simplesqlite/default.nix
+++ b/pkgs/development/python-modules/simplesqlite/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, dataproperty
-, mbstrdecoder
-, pathvalidate
-, sqliteschema
-, setuptools
-, tabledata
-, typepy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  dataproperty,
+  mbstrdecoder,
+  pathvalidate,
+  sqliteschema,
+  setuptools,
+  tabledata,
+  typepy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/simplisafe-python/default.nix b/pkgs/development/python-modules/simplisafe-python/default.nix
index f417a5f6368d4..bd912e113ebdc 100644
--- a/pkgs/development/python-modules/simplisafe-python/default.nix
+++ b/pkgs/development/python-modules/simplisafe-python/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, aiohttp
-, aresponses
-, backoff
-, beautifulsoup4
-, buildPythonPackage
-, certifi
-, docutils
-, fetchFromGitHub
-, poetry-core
-, pytest-aiohttp
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, pytz
-, types-pytz
-, voluptuous
-, websockets
+{
+  lib,
+  aiohttp,
+  aresponses,
+  backoff,
+  beautifulsoup4,
+  buildPythonPackage,
+  certifi,
+  docutils,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  types-pytz,
+  voluptuous,
+  websockets,
 }:
 
 buildPythonPackage rec {
@@ -32,10 +33,7 @@ buildPythonPackage rec {
     hash = "sha256-ewbR2FI0t2F8HF0ZL5omsclB9OPAjHygGLPtSkVlvgM=";
   };
 
-
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -69,9 +67,7 @@ buildPythonPackage rec {
     "examples/"
   ];
 
-  pythonImportsCheck = [
-    "simplipy"
-  ];
+  pythonImportsCheck = [ "simplipy" ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/simpy/default.nix b/pkgs/development/python-modules/simpy/default.nix
index 91b1b6c7002ee..7672536d5432e 100644
--- a/pkgs/development/python-modules/simpy/default.nix
+++ b/pkgs/development/python-modules/simpy/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
-, fetchPypi
-, isPy27
-, lib
-, setuptools
-, setuptools-scm
-, py
-, pytestCheckHook
+{
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  lib,
+  setuptools,
+  setuptools-scm,
+  py,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -35,6 +36,9 @@ buildPythonPackage rec {
     homepage = "https://simpy.readthedocs.io/en/${version}/";
     description = "Process-based discrete-event simulation framework based on standard Python";
     license = [ licenses.mit ];
-    maintainers = with maintainers; [ dmrauh shlevy ];
+    maintainers = with maintainers; [
+      dmrauh
+      shlevy
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/single-source/default.nix b/pkgs/development/python-modules/single-source/default.nix
index 3bf2ff810d507..cc4e4fa3f3a7a 100644
--- a/pkgs/development/python-modules/single-source/default.nix
+++ b/pkgs/development/python-modules/single-source/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, importlib-metadata
-, poetry-core
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  importlib-metadata,
+  poetry-core,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-bhfMRIeJUd5JhN2tPww7fdbmHQ7ypcsZrYSa55v0+W8=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    importlib-metadata
-  ];
+  propagatedBuildInputs = [ importlib-metadata ];
 
   nativeCheckInputs = [
     pytest-mock
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "single_source"
-  ];
+  pythonImportsCheck = [ "single_source" ];
 
   meta = with lib; {
     description = "Access to the project version in Python code for PEP 621-style projects";
diff --git a/pkgs/development/python-modules/single-version/default.nix b/pkgs/development/python-modules/single-version/default.nix
index 558126bbbd71e..869ef6a38309f 100644
--- a/pkgs/development/python-modules/single-version/default.nix
+++ b/pkgs/development/python-modules/single-version/default.nix
@@ -1,9 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -28,6 +28,6 @@ buildPythonPackage rec {
     description = "Utility to let you have a single source of version in your code base";
     homepage = "https://github.com/hongquan/single-version";
     license = licenses.mit;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/siobrultech-protocols/default.nix b/pkgs/development/python-modules/siobrultech-protocols/default.nix
index 49d873f95167a..4bdb5917ecbe2 100644
--- a/pkgs/development/python-modules/siobrultech-protocols/default.nix
+++ b/pkgs/development/python-modules/siobrultech-protocols/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -34,7 +35,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Sans-I/O Python client library for Brultech Devices";
+    description = "Sans-I/O Python client library for Brultech Devices";
     homepage = "https://github.com/sdwilsh/siobrultech-protocols";
     changelog = "https://github.com/sdwilsh/siobrultech-protocols/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/siosocks/default.nix b/pkgs/development/python-modules/siosocks/default.nix
index 7af2a1118c312..7bbcce74073f0 100644
--- a/pkgs/development/python-modules/siosocks/default.nix
+++ b/pkgs/development/python-modules/siosocks/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest-asyncio
-, pytest-trio
-, pytestCheckHook
-, pythonOlder
-, trio
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest-asyncio,
+  pytest-trio,
+  pytestCheckHook,
+  pythonOlder,
+  trio,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-uja79vWhPYOhhTUBIh+XpS4GnrYJy0/XpDXXQjnyHWM=";
   };
 
-  propagatedBuildInputs = [
-    trio
-  ];
+  propagatedBuildInputs = [ trio ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -44,9 +43,7 @@ buildPythonPackage rec {
     "tests/test_socketserver.py"
   ];
 
-  pythonImportsCheck = [
-    "siosocks"
-  ];
+  pythonImportsCheck = [ "siosocks" ];
 
   meta = with lib; {
     description = "Python socks 4/5 client/server library/framework";
diff --git a/pkgs/development/python-modules/sip/4.x.nix b/pkgs/development/python-modules/sip/4.x.nix
index 9c89a01797e72..01de3d2c0b4e9 100644
--- a/pkgs/development/python-modules/sip/4.x.nix
+++ b/pkgs/development/python-modules/sip/4.x.nix
@@ -1,4 +1,13 @@
-{ lib, fetchurl, fetchpatch, buildPythonPackage, python, isPyPy, pythonAtLeast, sip-module ? "sip" }:
+{
+  lib,
+  fetchurl,
+  fetchpatch,
+  buildPythonPackage,
+  python,
+  isPyPy,
+  pythonAtLeast,
+  sip-module ? "sip",
+}:
 
 buildPythonPackage rec {
   pname = sip-module;
@@ -30,16 +39,22 @@ buildPythonPackage rec {
 
   enableParallelBuilding = true;
 
-  pythonImportsCheck = [ sip-module "sipconfig" ];
+  pythonImportsCheck = [
+    sip-module
+    "sipconfig"
+  ];
 
   doCheck = true;
 
   meta = with lib; {
     description = "Creates C++ bindings for Python modules";
     mainProgram = "sip";
-    homepage    = "https://riverbankcomputing.com/";
-    license     = licenses.gpl2Plus;
-    maintainers = with maintainers; [ lovek323 sander ];
-    platforms   = platforms.all;
+    homepage = "https://riverbankcomputing.com/";
+    license = licenses.gpl2Plus;
+    maintainers = with maintainers; [
+      lovek323
+      sander
+    ];
+    platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/python-modules/sip/default.nix b/pkgs/development/python-modules/sip/default.nix
index 30dd904f13962..38e604de874fe 100644
--- a/pkgs/development/python-modules/sip/default.nix
+++ b/pkgs/development/python-modules/sip/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, packaging
-, ply
-, toml
-, tomli
-
-# tests
-, poppler-qt5
-, qgis
-, qgis-ltr
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  packaging,
+  ply,
+  toml,
+  tomli,
+
+  # tests
+  poppler-qt5,
+  qgis,
+  qgis-ltr,
 }:
 
 buildPythonPackage rec {
@@ -24,16 +25,12 @@ buildPythonPackage rec {
     hash = "sha256-iIVHsBi7JMNq3tUZ6T0+UT1MaqC6VbfMGv+9Rc8Qdiw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     packaging
     setuptools
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   # There aren't tests
   doCheck = false;
@@ -47,8 +44,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Creates C++ bindings for Python modules";
-    homepage    = "https://riverbankcomputing.com/";
-    license     = licenses.gpl3Only;
+    homepage = "https://riverbankcomputing.com/";
+    license = licenses.gpl3Only;
     maintainers = with maintainers; [ nrdxp ];
   };
 }
diff --git a/pkgs/development/python-modules/sipyco/default.nix b/pkgs/development/python-modules/sipyco/default.nix
index 454876d16e8b0..438072e9b0722 100644
--- a/pkgs/development/python-modules/sipyco/default.nix
+++ b/pkgs/development/python-modules/sipyco/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-sEYWtp11piUIa8YyuTOdFIIJ2GfcrUb+HEzPVKr4hW8=";
   };
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "sipyco"
-  ];
+  pythonImportsCheck = [ "sipyco" ];
 
   meta = with lib; {
     description = "Simple Python Communications - used by the ARTIQ experimental control package";
diff --git a/pkgs/development/python-modules/sisyphus-control/default.nix b/pkgs/development/python-modules/sisyphus-control/default.nix
index 8e9a5b0168c8c..eeaaea1cb01ec 100644
--- a/pkgs/development/python-modules/sisyphus-control/default.nix
+++ b/pkgs/development/python-modules/sisyphus-control/default.nix
@@ -1,12 +1,12 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, netifaces
-, python-engineio
-, python-socketio
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  netifaces,
+  python-engineio,
+  python-socketio,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +28,6 @@ buildPythonPackage rec {
     "python-socketio"
   ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -42,9 +39,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sisyphus_control"
-  ];
+  pythonImportsCheck = [ "sisyphus_control" ];
 
   meta = with lib; {
     description = "Control your Sisyphus Kinetic Art Table";
diff --git a/pkgs/development/python-modules/siuba/default.nix b/pkgs/development/python-modules/siuba/default.nix
index dbaab8c6df6b5..4dbeb677987a4 100644
--- a/pkgs/development/python-modules/siuba/default.nix
+++ b/pkgs/development/python-modules/siuba/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, hypothesis
-, numpy
-, pandas
-, psycopg2
-, pymysql
-, python-dateutil
-, pytz
-, pyyaml
-, six
-, sqlalchemy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  hypothesis,
+  numpy,
+  pandas,
+  psycopg2,
+  pymysql,
+  python-dateutil,
+  pytz,
+  pyyaml,
+  six,
+  sqlalchemy,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/six/default.nix b/pkgs/development/python-modules/six/default.nix
index afaedae9529ec..89e77586339b7 100644
--- a/pkgs/development/python-modules/six/default.nix
+++ b/pkgs/development/python-modules/six/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPyPy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,14 +17,16 @@ buildPythonPackage rec {
     sha256 = "1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = if isPyPy then [
-    # uses ctypes to find native library
-    "--deselect=test_six.py::test_move_items"
-  ] else null;
+  pytestFlagsArray =
+    if isPyPy then
+      [
+        # uses ctypes to find native library
+        "--deselect=test_six.py::test_move_items"
+      ]
+    else
+      null;
 
   pythonImportsCheck = [ "six" ];
 
diff --git a/pkgs/development/python-modules/sjcl/default.nix b/pkgs/development/python-modules/sjcl/default.nix
index a44ceb91589f4..cca5d21cec0b0 100644
--- a/pkgs/development/python-modules/sjcl/default.nix
+++ b/pkgs/development/python-modules/sjcl/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pycryptodome
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pycryptodome,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,12 +26,10 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ unittestCheckHook ];
 
-  pythonImportsCheck = [
-    "sjcl"
-  ];
+  pythonImportsCheck = [ "sjcl" ];
 
   meta = with lib; {
-    description = "Decrypt and encrypt messages compatible to the \"Stanford Javascript Crypto Library (SJCL)\" message format. This is a wrapper around pycrypto.";
+    description = "Decrypt and encrypt messages compatible to the \"Stanford Javascript Crypto Library (SJCL)\" message format. This is a wrapper around pycrypto";
     homepage = "https://github.com/berlincode/sjcl";
     license = licenses.bsd3;
     maintainers = with maintainers; [ binsky ];
diff --git a/pkgs/development/python-modules/skein/default.nix b/pkgs/development/python-modules/skein/default.nix
index ff0884330b396..e9016bb32ac75 100644
--- a/pkgs/development/python-modules/skein/default.nix
+++ b/pkgs/development/python-modules/skein/default.nix
@@ -1,15 +1,19 @@
-{ buildPythonPackage
-, callPackage
-, fetchPypi
-, isPy27
-, lib
-, cryptography
-, grpcio
-, pyyaml
-, grpcio-tools
-, hadoop
-, pytestCheckHook
-, python
+{
+  buildPythonPackage,
+  callPackage,
+  fetchPypi,
+  isPy27,
+  pythonOlder,
+  lib,
+  cryptography,
+  grpcio,
+  pyyaml,
+  grpcio-tools,
+  hadoop,
+  pytestCheckHook,
+  python,
+  setuptools,
+  versioneer,
 }:
 
 buildPythonPackage rec {
@@ -25,7 +29,11 @@ buildPythonPackage rec {
   jarHash = "sha256-x2KH6tnoG7sogtjrJvUaxy0PCEA8q/zneuI969oBOKo=";
   skeinJar = callPackage ./skeinjar.nix { inherit pname version jarHash; };
 
-  propagatedBuildInputs = [ cryptography grpcio pyyaml ];
+  propagatedBuildInputs = [
+    cryptography
+    grpcio
+    pyyaml
+  ] ++ lib.optionals (!pythonOlder "3.12") [ setuptools ];
   buildInputs = [ grpcio-tools ];
 
   preBuild = ''
@@ -34,10 +42,19 @@ buildPythonPackage rec {
     ln -s ${skeinJar} skein/java/skein.jar
   '';
 
-  postPatch = ''
-    substituteInPlace skein/core.py --replace "'yarn'" "'${hadoop}/bin/yarn'" \
-      --replace "else 'java'" "else '${hadoop.jdk}/bin/java'"
-  '';
+  postPatch =
+    ''
+      substituteInPlace skein/core.py --replace "'yarn'" "'${hadoop}/bin/yarn'" \
+        --replace "else 'java'" "else '${hadoop.jdk}/bin/java'"
+      # Remove vendorized versioneer
+      rm versioneer.py
+    ''
+    + lib.optionalString (!pythonOlder "3.12") ''
+      substituteInPlace skein/utils.py \
+        --replace-fail "distutils" "setuptools._distutils"
+    '';
+
+  build-system = [ versioneer ];
 
   pythonImportsCheck = [ "skein" ];
 
@@ -51,12 +68,15 @@ buildPythonPackage rec {
     "test_cli"
   ];
 
-  meta = with lib; {
+  meta = {
     homepage = "https://jcristharif.com/skein";
-    description = "A tool and library for easily deploying applications on Apache YARN";
+    description = "Tool and library for easily deploying applications on Apache YARN";
     mainProgram = "skein";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ alexbiehl illustris ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [
+      alexbiehl
+      illustris
+    ];
     # https://github.com/NixOS/nixpkgs/issues/48663#issuecomment-1083031627
     # replace with https://github.com/NixOS/nixpkgs/pull/140325 once it is merged
     broken = lib.traceIf isPy27 "${pname} not supported on ${python.executable}" isPy27;
diff --git a/pkgs/development/python-modules/skein/skeinjar.nix b/pkgs/development/python-modules/skein/skeinjar.nix
index 1cec80fa93330..74df5ea12b8c8 100644
--- a/pkgs/development/python-modules/skein/skeinjar.nix
+++ b/pkgs/development/python-modules/skein/skeinjar.nix
@@ -1,4 +1,11 @@
-{ fetchPypi, unzip, stdenv, pname, version, jarHash }:
+{
+  fetchPypi,
+  unzip,
+  stdenv,
+  pname,
+  version,
+  jarHash,
+}:
 
 stdenv.mkDerivation rec {
   inherit pname version;
diff --git a/pkgs/development/python-modules/skia-pathops/default.nix b/pkgs/development/python-modules/skia-pathops/default.nix
index 2c35cba96937d..15806e8b1bce7 100644
--- a/pkgs/development/python-modules/skia-pathops/default.nix
+++ b/pkgs/development/python-modules/skia-pathops/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, cython
-, isPyPy
-, ninja
-, setuptools-scm
-, setuptools
-, fetchPypi
-, gn
-, pytestCheckHook
-, xcodebuild
-, ApplicationServices
-, OpenGL
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cython,
+  isPyPy,
+  ninja,
+  setuptools-scm,
+  setuptools,
+  fetchPypi,
+  gn,
+  pytestCheckHook,
+  xcodebuild,
+  ApplicationServices,
+  OpenGL,
 }:
 
 buildPythonPackage rec {
@@ -26,31 +27,42 @@ buildPythonPackage rec {
     hash = "sha256-oFYkneL2H6VRFrnuVVE8aja4eK7gDJFFDkBNFgZIXLs=";
   };
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "build_cmd = [sys.executable, build_skia_py, build_dir]" \
-        'build_cmd = [sys.executable, build_skia_py, "--no-fetch-gn", "--no-virtualenv", "--gn-path", "${gn}/bin/gn", build_dir]'
-  '' + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
-    substituteInPlace src/cpp/skia-builder/skia/gn/skia/BUILD.gn \
-      --replace "-march=armv7-a" "-march=armv8-a" \
-      --replace "-mfpu=neon" "" \
-      --replace "-mthumb" ""
-    substituteInPlace src/cpp/skia-builder/skia/src/core/SkOpts.cpp \
-      --replace "defined(SK_CPU_ARM64)" "0"
-  '' + lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) /* old compiler? */ ''
-    patch -p1 <<EOF
-    --- a/src/cpp/skia-builder/skia/include/private/base/SkTArray.h
-    +++ b/src/cpp/skia-builder/skia/include/private/base/SkTArray.h
-    @@ -492 +492 @@:
-    -    static constexpr int kMaxCapacity = SkToInt(std::min(SIZE_MAX / sizeof(T), (size_t)INT_MAX));
-    +    static constexpr int kMaxCapacity = SkToInt(std::min<size_t>(SIZE_MAX / sizeof(T), (size_t)INT_MAX));
-    EOF
-  '';
+  postPatch =
+    ''
+      substituteInPlace setup.py \
+        --replace "build_cmd = [sys.executable, build_skia_py, build_dir]" \
+          'build_cmd = [sys.executable, build_skia_py, "--no-fetch-gn", "--no-virtualenv", "--gn-path", "${gn}/bin/gn", build_dir]'
+    ''
+    + lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
+      substituteInPlace src/cpp/skia-builder/skia/gn/skia/BUILD.gn \
+        --replace "-march=armv7-a" "-march=armv8-a" \
+        --replace "-mfpu=neon" "" \
+        --replace "-mthumb" ""
+      substituteInPlace src/cpp/skia-builder/skia/src/core/SkOpts.cpp \
+        --replace "defined(SK_CPU_ARM64)" "0"
+    ''
+    +
+      lib.optionalString (stdenv.isDarwin && stdenv.isx86_64) # old compiler?
+        ''
+          patch -p1 <<EOF
+          --- a/src/cpp/skia-builder/skia/include/private/base/SkTArray.h
+          +++ b/src/cpp/skia-builder/skia/include/private/base/SkTArray.h
+          @@ -492 +492 @@:
+          -    static constexpr int kMaxCapacity = SkToInt(std::min(SIZE_MAX / sizeof(T), (size_t)INT_MAX));
+          +    static constexpr int kMaxCapacity = SkToInt(std::min<size_t>(SIZE_MAX / sizeof(T), (size_t)INT_MAX));
+          EOF
+        '';
 
-  nativeBuildInputs = [ cython ninja setuptools-scm ]
-    ++ lib.optionals stdenv.isDarwin [ xcodebuild ];
+  nativeBuildInputs = [
+    cython
+    ninja
+    setuptools-scm
+  ] ++ lib.optionals stdenv.isDarwin [ xcodebuild ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [ ApplicationServices OpenGL ];
+  buildInputs = lib.optionals stdenv.isDarwin [
+    ApplicationServices
+    OpenGL
+  ];
 
   propagatedBuildInputs = [ setuptools ];
 
diff --git a/pkgs/development/python-modules/skidl/default.nix b/pkgs/development/python-modules/skidl/default.nix
index 2203dee0ca3f9..06871bd079051 100644
--- a/pkgs/development/python-modules/skidl/default.nix
+++ b/pkgs/development/python-modules/skidl/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, future
-, kinparse
-, pyspice
-, graphviz
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  future,
+  kinparse,
+  pyspice,
+  graphviz,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/skl2onnx/default.nix b/pkgs/development/python-modules/skl2onnx/default.nix
index ca3e567b036c6..8d258c18883cc 100644
--- a/pkgs/development/python-modules/skl2onnx/default.nix
+++ b/pkgs/development/python-modules/skl2onnx/default.nix
@@ -1,26 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, scipy
-, protobuf
-, onnx
-, scikit-learn
-, onnxconverter-common
-, onnxruntime
-, pandas
-, unittestCheckHook
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  scipy,
+  protobuf,
+  onnx,
+  scikit-learn,
+  onnxconverter-common,
+  onnxruntime,
+  pandas,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "skl2onnx";
-  version = "1.16.0";
+  version = "1.17.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-M3Cz1AZc4txZM4eMMnP0rqQflFzGUUVDsTrS1X82nOU=";
+    hash = "sha256-cSfchORw9In2gJTM//mlqBW2CfcA1D5wjm9lijOwZAM=";
   };
 
   propagatedBuildInputs = [
@@ -32,9 +32,6 @@ buildPythonPackage rec {
     onnxconverter-common
   ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   pythonRelaxDeps = [ "scikit-learn" ];
 
@@ -44,7 +41,10 @@ buildPythonPackage rec {
     unittestCheckHook
   ];
 
-  unittestFlagsArray = [ "-s" "tests" ];
+  unittestFlagsArray = [
+    "-s"
+    "tests"
+  ];
 
   # Core dump
   doCheck = false;
diff --git a/pkgs/development/python-modules/sklearn-deap/default.nix b/pkgs/development/python-modules/sklearn-deap/default.nix
index 7e8f8e159ecad..00d5dd7a784e2 100644
--- a/pkgs/development/python-modules/sklearn-deap/default.nix
+++ b/pkgs/development/python-modules/sklearn-deap/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, deap
-, numpy
-, scikit-learn
-, scipy
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  deap,
+  numpy,
+  scikit-learn,
+  scipy,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -34,12 +35,15 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [ numpy scipy deap scikit-learn ];
-
-  nativeCheckInputs = [
-    unittestCheckHook
+  propagatedBuildInputs = [
+    numpy
+    scipy
+    deap
+    scikit-learn
   ];
 
+  nativeCheckInputs = [ unittestCheckHook ];
+
   pythonImportsCheck = [ "evolutionary_search" ];
 
   meta = with lib; {
@@ -49,4 +53,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ psyanticy ];
   };
 }
-
diff --git a/pkgs/development/python-modules/skodaconnect/default.nix b/pkgs/development/python-modules/skodaconnect/default.nix
index 3cd175e518f10..0ffb5bbf42226 100644
--- a/pkgs/development/python-modules/skodaconnect/default.nix
+++ b/pkgs/development/python-modules/skodaconnect/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, aiohttp
-, beautifulsoup4
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, flit-core
-, lxml
-, pyjwt
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  beautifulsoup4,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  flit-core,
+  lxml,
+  pyjwt,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-Cy2sXj8+t8lIqrKmI9Aa7tNEIvRArynU/02ajJ+tYHg=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -39,9 +38,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "skodaconnect"
-  ];
+  pythonImportsCheck = [ "skodaconnect" ];
 
   meta = with lib; {
     description = "Python module to communicate with Skoda Connect";
diff --git a/pkgs/development/python-modules/skorch/default.nix b/pkgs/development/python-modules/skorch/default.nix
index 01d23f596dd9e..19048dfc9ca83 100644
--- a/pkgs/development/python-modules/skorch/default.nix
+++ b/pkgs/development/python-modules/skorch/default.nix
@@ -1,31 +1,42 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, numpy
-, scikit-learn
-, scipy
-, tabulate
-, torch
-, tqdm
-, flaky
-, pandas
-, pytestCheckHook
-, safetensors
-, pythonAtLeast
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  pythonOlder,
+  numpy,
+  scikit-learn,
+  scipy,
+  tabulate,
+  torch,
+  tqdm,
+  flaky,
+  pandas,
+  pytestCheckHook,
+  safetensors,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
   pname = "skorch";
-  version = "0.15.0";
+  version = "1.0.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-39XVBlCmbg162z9uL84GZrU+v+M8waXbGdVV72ZYf84=";
+    hash = "sha256-JcplwaeYlGRAJXRNac1Ya/hgWoHE+NWjZhCU9eaSyRQ=";
   };
 
+  # Remove at next skorch release:
+  patches = [
+    (fetchpatch {
+      name = "unbreak-tests-with-sklearn-1.4";
+      url = "https://github.com/skorch-dev/skorch/commit/1f7a779d0aa78589e17262c206f5775f2fcd75f8.diff";
+      hash = "sha256-X3SgjgDeq3PlBI13cC56LIL1dV1e+Z3tsBj9sz5pizo=";
+    })
+  ];
+
   disabled = pythonOlder "3.8";
 
   propagatedBuildInputs = [
@@ -52,28 +63,33 @@ buildPythonPackage rec {
       --replace "--cov-config .coveragerc" ""
   '';
 
-  disabledTests = [
-    # on CPU, these expect artifacts from previous GPU run
-    "test_load_cuda_params_to_cpu"
-    # failing tests
-    "test_pickle_load"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # there is a problem with the compiler selection
-    "test_fit_and_predict_with_compile"
-  ] ++ lib.optionals (pythonAtLeast "3.11") [
-    # Python 3.11+ not yet supported for torch.compile
-    # https://github.com/pytorch/pytorch/blob/v2.0.1/torch/_dynamo/eval_frame.py#L376-L377
-    "test_fit_and_predict_with_compile"
-  ];
+  disabledTests =
+    [
+      # on CPU, these expect artifacts from previous GPU run
+      "test_load_cuda_params_to_cpu"
+      # failing tests
+      "test_pickle_load"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # there is a problem with the compiler selection
+      "test_fit_and_predict_with_compile"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.11") [
+      # Python 3.11+ not yet supported for torch.compile
+      # https://github.com/pytorch/pytorch/blob/v2.0.1/torch/_dynamo/eval_frame.py#L376-L377
+      "test_fit_and_predict_with_compile"
+    ];
 
-  disabledTestPaths = [
-    # tries to import `transformers` and download HuggingFace data
-    "skorch/tests/test_hf.py"
-  ] ++ lib.optionals (stdenv.hostPlatform.system != "x86_64-linux") [
-    # torch.distributed is disabled by default in darwin
-    # aarch64-linux also failed these tests
-    "skorch/tests/test_history.py"
-  ];
+  disabledTestPaths =
+    [
+      # tries to import `transformers` and download HuggingFace data
+      "skorch/tests/test_hf.py"
+    ]
+    ++ lib.optionals (stdenv.hostPlatform.system != "x86_64-linux") [
+      # torch.distributed is disabled by default in darwin
+      # aarch64-linux also failed these tests
+      "skorch/tests/test_history.py"
+    ];
 
   pythonImportsCheck = [ "skorch" ];
 
diff --git a/pkgs/development/python-modules/skrl/default.nix b/pkgs/development/python-modules/skrl/default.nix
index 143a86dff84e1..eb99c9240a567 100644
--- a/pkgs/development/python-modules/skrl/default.nix
+++ b/pkgs/development/python-modules/skrl/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, gym
-, gymnasium
-, torch
-, tensorboard
-, tqdm
-, wandb
-, packaging
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  gym,
+  gymnasium,
+  torch,
+  tensorboard,
+  tqdm,
+  wandb,
+  packaging,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/skybellpy/default.nix b/pkgs/development/python-modules/skybellpy/default.nix
index 69837c5d68533..c05b3b0b96ef7 100644
--- a/pkgs/development/python-modules/skybellpy/default.nix
+++ b/pkgs/development/python-modules/skybellpy/default.nix
@@ -1,29 +1,36 @@
-{ lib
-, buildPythonPackage
-, colorlog
-, fetchFromGitHub
-, pytest-sugar
-, pytest-timeout
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-mock
+{
+  lib,
+  buildPythonPackage,
+  colorlog,
+  fetchFromGitHub,
+  pytest-sugar,
+  pytest-timeout,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  requests,
+  requests-mock,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "skybellpy";
   version = "0.6.3";
-  format = "setuptools";
-  disabled = pythonOlder "3.6";
+  pyproject = true;
+
+  # Still uses distrutils, https://github.com/MisterWil/skybellpy/issues/22
+  disabled = pythonOlder "3.6" || pythonAtLeast "3.12";
 
   src = fetchFromGitHub {
     owner = "MisterWil";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "1ghvm0pcdyhq6xfjc2dkldd701x77w07077sx09xsk6q2milmvzz";
+    repo = "skybellpy";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-/+9KYxXYTN0T6PoccAA/pwdwWqOzCSZdNxj6xi6oG74=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     colorlog
     requests
   ];
@@ -39,9 +46,10 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python wrapper for the Skybell alarm API";
-    mainProgram = "skybellpy";
     homepage = "https://github.com/MisterWil/skybellpy";
-    license = with licenses; [ mit ];
+    changelog = "https://github.com/MisterWil/skybellpy/releases/tag/v${version}";
+    license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "skybellpy";
   };
 }
diff --git a/pkgs/development/python-modules/skyfield/default.nix b/pkgs/development/python-modules/skyfield/default.nix
index b3dc5a236ea46..c55422a969b5f 100644
--- a/pkgs/development/python-modules/skyfield/default.nix
+++ b/pkgs/development/python-modules/skyfield/default.nix
@@ -1,5 +1,16 @@
-{ lib, buildPythonPackage, pythonOlder, fetchFromGitHub, certifi, numpy, sgp4, jplephem
-, pandas, ipython, matplotlib, assay
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  certifi,
+  numpy,
+  sgp4,
+  jplephem,
+  pandas,
+  ipython,
+  matplotlib,
+  assay,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +32,19 @@ buildPythonPackage rec {
       --replace "if IS_32_BIT" "if True"
   '';
 
-  propagatedBuildInputs = [ certifi numpy sgp4 jplephem ];
+  propagatedBuildInputs = [
+    certifi
+    numpy
+    sgp4
+    jplephem
+  ];
 
-  nativeCheckInputs = [ pandas ipython matplotlib assay ];
+  nativeCheckInputs = [
+    pandas
+    ipython
+    matplotlib
+    assay
+  ];
 
   # assay is broken on Python >= 3.11
   # https://github.com/brandon-rhodes/assay/issues/15
diff --git a/pkgs/development/python-modules/skytemple-dtef/default.nix b/pkgs/development/python-modules/skytemple-dtef/default.nix
index 92b03f7d35496..f1320e68a867d 100644
--- a/pkgs/development/python-modules/skytemple-dtef/default.nix
+++ b/pkgs/development/python-modules/skytemple-dtef/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pillow
-, pytestCheckHook
-, pythonOlder
-, skytemple-files
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pillow,
+  pytestCheckHook,
+  pythonOlder,
+  skytemple-files,
 }:
 
 buildPythonPackage rec {
@@ -26,16 +27,12 @@ buildPythonPackage rec {
     skytemple-files
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "skytemple_dtef"
-  ];
+  pythonImportsCheck = [ "skytemple_dtef" ];
 
   meta = with lib; {
-    description = "A format for standardized rule-based tilesets with 256 adjacency combinations";
+    description = "Format for standardized rule-based tilesets with 256 adjacency combinations";
     homepage = "https://github.com/SkyTemple/skytemple-dtef";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ marius851000 ];
diff --git a/pkgs/development/python-modules/skytemple-eventserver/default.nix b/pkgs/development/python-modules/skytemple-eventserver/default.nix
index 94c38cbcf468c..275948b3970d2 100644
--- a/pkgs/development/python-modules/skytemple-eventserver/default.nix
+++ b/pkgs/development/python-modules/skytemple-eventserver/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchFromGitHub }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+}:
 
 buildPythonPackage rec {
   pname = "skytemple-eventserver";
diff --git a/pkgs/development/python-modules/skytemple-files/default.nix b/pkgs/development/python-modules/skytemple-files/default.nix
index 1f91f3a4bea20..ab4d8d085b261 100644
--- a/pkgs/development/python-modules/skytemple-files/default.nix
+++ b/pkgs/development/python-modules/skytemple-files/default.nix
@@ -1,31 +1,32 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, appdirs
-, dungeon-eos
-, explorerscript
-, ndspy
-, pillow
-, setuptools
-, skytemple-rust
-, tilequant
-, pyyaml
-, pmdsky-debug-py
-, range-typed-integers
-, importlib-resources
-, typing-extensions
-, pythonOlder
-, # optional dependancies for SpriteCollab
-  aiohttp
-, lru-dict
-, graphql-core
-, gql
-, armips
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  appdirs,
+  dungeon-eos,
+  explorerscript,
+  ndspy,
+  pillow,
+  setuptools,
+  skytemple-rust,
+  tilequant,
+  pyyaml,
+  pmdsky-debug-py,
+  range-typed-integers,
+  importlib-resources,
+  typing-extensions,
+  pythonOlder,
+  # optional dependancies for SpriteCollab
+  aiohttp,
+  lru-dict,
+  graphql-core,
+  gql,
+  armips,
   # tests
-, pytestCheckHook
-, parameterized
-, xmldiff
+  pytestCheckHook,
+  parameterized,
+  xmldiff,
 }:
 
 buildPythonPackage rec {
@@ -49,22 +50,24 @@ buildPythonPackage rec {
 
   buildInputs = [ armips ];
 
-  propagatedBuildInputs = [
-    appdirs
-    dungeon-eos
-    explorerscript
-    ndspy
-    pillow
-    setuptools
-    skytemple-rust
-    tilequant
-    pyyaml
-    pmdsky-debug-py
-    range-typed-integers
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    importlib-resources
-    typing-extensions
-  ];
+  propagatedBuildInputs =
+    [
+      appdirs
+      dungeon-eos
+      explorerscript
+      ndspy
+      pillow
+      setuptools
+      skytemple-rust
+      tilequant
+      pyyaml
+      pmdsky-debug-py
+      range-typed-integers
+    ]
+    ++ lib.optionals (pythonOlder "3.9") [
+      importlib-resources
+      typing-extensions
+    ];
 
   passthru.optional-dependencies = {
     spritecollab = [
@@ -75,7 +78,11 @@ buildPythonPackage rec {
     ] ++ gql.optional-dependencies.aiohttp;
   };
 
-  checkInputs = [ pytestCheckHook parameterized xmldiff ] ++ passthru.optional-dependencies.spritecollab;
+  checkInputs = [
+    pytestCheckHook
+    parameterized
+    xmldiff
+  ] ++ passthru.optional-dependencies.spritecollab;
   pytestFlagsArray = [ "test/" ];
   disabledTestPaths = [
     "test/skytemple_files_test/common/spritecollab/sc_online_test.py"
diff --git a/pkgs/development/python-modules/skytemple-icons/default.nix b/pkgs/development/python-modules/skytemple-icons/default.nix
index b78bc27e3c259..b13416271f584 100644
--- a/pkgs/development/python-modules/skytemple-icons/default.nix
+++ b/pkgs/development/python-modules/skytemple-icons/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchFromGitHub }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+}:
 
 buildPythonPackage rec {
   pname = "skytemple-icons";
diff --git a/pkgs/development/python-modules/skytemple-rust/default.nix b/pkgs/development/python-modules/skytemple-rust/default.nix
index 5a604db033e61..ed60b724f840f 100644
--- a/pkgs/development/python-modules/skytemple-rust/default.nix
+++ b/pkgs/development/python-modules/skytemple-rust/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, cargo
-, fetchPypi
-, libiconv
-, Foundation
-, rustPlatform
-, rustc
-, setuptools-rust
-, range-typed-integers
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cargo,
+  fetchPypi,
+  libiconv,
+  Foundation,
+  rustPlatform,
+  rustc,
+  setuptools-rust,
+  range-typed-integers,
 }:
 
 buildPythonPackage rec {
@@ -27,8 +28,16 @@ buildPythonPackage rec {
     hash = "sha256-0a57RmZPztcIeRs7GNYe18JO+LlWoeNWG3nD9cG0XIU=";
   };
 
-  buildInputs = lib.optionals stdenv.isDarwin [ libiconv Foundation ];
-  nativeBuildInputs = [ setuptools-rust rustPlatform.cargoSetupHook cargo rustc ];
+  buildInputs = lib.optionals stdenv.isDarwin [
+    libiconv
+    Foundation
+  ];
+  nativeBuildInputs = [
+    setuptools-rust
+    rustPlatform.cargoSetupHook
+    cargo
+    rustc
+  ];
   propagatedBuildInputs = [ range-typed-integers ];
 
   GETTEXT_SYSTEM = true;
diff --git a/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix b/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix
index 7b50a7ae6c197..0ea529c5ab287 100644
--- a/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix
+++ b/pkgs/development/python-modules/skytemple-ssb-debugger/default.nix
@@ -1,23 +1,24 @@
-{ buildPythonPackage
-, explorerscript
-, fetchFromGitHub
-, gobject-introspection
-, gtk3
-, gtksourceview4
-, importlib-metadata
-, lib
-, ndspy
-, nest-asyncio
-, pmdsky-debug-py
-, pycairo
-, pygobject3
-, pygtkspellcheck
-, pythonOlder
-, range-typed-integers
-, skytemple-files
-, skytemple-icons
-, skytemple-ssb-emulator
-, wrapGAppsHook3
+{
+  buildPythonPackage,
+  explorerscript,
+  fetchFromGitHub,
+  gobject-introspection,
+  gtk3,
+  gtksourceview4,
+  importlib-metadata,
+  lib,
+  ndspy,
+  nest-asyncio,
+  pmdsky-debug-py,
+  pycairo,
+  pygobject3,
+  pygtkspellcheck,
+  pythonOlder,
+  range-typed-integers,
+  skytemple-files,
+  skytemple-icons,
+  skytemple-ssb-emulator,
+  wrapGAppsHook3,
 }:
 
 buildPythonPackage rec {
@@ -32,8 +33,14 @@ buildPythonPackage rec {
     hash = "sha256-whnwFwPYPGF+UtjrzRKgXJNPsUGvmE+HHKJcPf0qcuA=";
   };
 
-  buildInputs = [ gtk3 gtksourceview4 ];
-  nativeBuildInputs = [ gobject-introspection wrapGAppsHook3 ];
+  buildInputs = [
+    gtk3
+    gtksourceview4
+  ];
+  nativeBuildInputs = [
+    gobject-introspection
+    wrapGAppsHook3
+  ];
   propagatedBuildInputs = [
     explorerscript
     ndspy
@@ -46,9 +53,7 @@ buildPythonPackage rec {
     skytemple-files
     skytemple-icons
     skytemple-ssb-emulator
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
   doCheck = false; # requires Pokémon Mystery Dungeon ROM
   pythonImportsCheck = [ "skytemple_ssb_debugger" ];
diff --git a/pkgs/development/python-modules/skytemple-ssb-emulator/default.nix b/pkgs/development/python-modules/skytemple-ssb-emulator/default.nix
index 39c034e3d87a2..ad3fdd758bac5 100644
--- a/pkgs/development/python-modules/skytemple-ssb-emulator/default.nix
+++ b/pkgs/development/python-modules/skytemple-ssb-emulator/default.nix
@@ -1,22 +1,23 @@
-{ alsa-lib
-, buildPythonPackage
-, cargo
-, fetchPypi
-, glib
-, lib
-, libpcap
-, meson
-, ninja
-, openal
-, pkg-config
-, range-typed-integers
-, rustc
-, rustPlatform
-, SDL2
-, setuptools
-, setuptools-rust
-, soundtouch
-, zlib
+{
+  alsa-lib,
+  buildPythonPackage,
+  cargo,
+  fetchPypi,
+  glib,
+  lib,
+  libpcap,
+  meson,
+  ninja,
+  openal,
+  pkg-config,
+  range-typed-integers,
+  rustc,
+  rustPlatform,
+  SDL2,
+  setuptools,
+  setuptools-rust,
+  soundtouch,
+  zlib,
 }:
 buildPythonPackage rec {
   pname = "skytemple-ssb-emulator";
@@ -56,18 +57,12 @@ buildPythonPackage rec {
     setuptools-rust
   ];
 
-  propagatedBuildInputs = [
-    range-typed-integers
-  ];
+  propagatedBuildInputs = [ range-typed-integers ];
 
-  hardeningDisable = [
-    "format"
-  ];
+  hardeningDisable = [ "format" ];
 
   doCheck = false; # there are no tests
-  pythonImportsCheck = [
-    "skytemple_ssb_emulator"
-  ];
+  pythonImportsCheck = [ "skytemple_ssb_emulator" ];
 
   meta = with lib; {
     description = "SkyTemple Script Engine Debugger Emulator Backend";
diff --git a/pkgs/development/python-modules/slack-bolt/default.nix b/pkgs/development/python-modules/slack-bolt/default.nix
index 94291d7a9cc41..d4f5eb2af44d8 100644
--- a/pkgs/development/python-modules/slack-bolt/default.nix
+++ b/pkgs/development/python-modules/slack-bolt/default.nix
@@ -1,33 +1,35 @@
-{ aiohttp
-, bottle
-, buildPythonPackage
-, chalice
-, cherrypy
-, django
-, docker
-, falcon
-, fastapi
-, fetchFromGitHub
-, flask
-, flask-sockets
-, gunicorn
-, lib
-, moto
-, numpy
-, pyramid
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, sanic
-, setuptools
-, sanic-testing
-, slack-sdk
-, starlette
-, tornado
-, uvicorn
-, websocket-client
-, websockets
-, werkzeug
+{
+  lib,
+  aiohttp,
+  bottle,
+  buildPythonPackage,
+  chalice,
+  cherrypy,
+  django,
+  docker,
+  falcon,
+  fastapi,
+  fetchFromGitHub,
+  fetchpatch,
+  flask,
+  flask-sockets,
+  gunicorn,
+  moto,
+  numpy,
+  pyramid,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  sanic,
+  setuptools,
+  sanic-testing,
+  slack-sdk,
+  starlette,
+  tornado,
+  uvicorn,
+  websocket-client,
+  websockets,
+  werkzeug,
 }:
 
 buildPythonPackage rec {
@@ -44,19 +46,23 @@ buildPythonPackage rec {
     hash = "sha256-UwVStemFVA4hgqnSpCKpQGwLYG+p5z7MwFXXnIhrvNk=";
   };
 
-  # The packaged pytest-runner version is too new as of 2023-07-27. It's not really needed anyway. Unfortunately,
-  # pythonRelaxDepsHook doesn't work on setup_requires packages.
   postPatch = ''
-    substituteInPlace setup.py --replace "pytest-runner==5.2" ""
+    substituteInPlace setup.py \
+      --replace-fail "pytest-runner==5.2" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
+  patches = [
+    # moto >=5 support, https://github.com/slackapi/bolt-python/pull/1046
+    (fetchpatch {
+      name = "moto-support.patch";
+      url = "https://github.com/slackapi/bolt-python/commit/69c2015ef49773de111f184dca9668aefac9e7c0.patch";
+      hash = "sha256-KW7KPeOqanV4n1UOv4DCadplJsqsPY+ju4ry0IvUqpA=";
+    })
   ];
 
-  propagatedBuildInputs = [
-    slack-sdk
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ slack-sdk ];
 
   passthru.optional-dependencies = {
     async = [
@@ -91,7 +97,6 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  # Work around "Read-only file system: '/homeless-shelter'" errors
   preCheck = ''
     export HOME="$(mktemp -d)"
   '';
@@ -116,7 +121,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "slack_bolt" ];
 
   meta = with lib; {
-    description = "A framework to build Slack apps using Python";
+    description = "Framework to build Slack apps using Python";
     homepage = "https://github.com/slackapi/bolt-python";
     changelog = "https://github.com/slackapi/bolt-python/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/slack-sdk/default.nix b/pkgs/development/python-modules/slack-sdk/default.nix
index 2782b5eea5db7..cce3de84a0e87 100644
--- a/pkgs/development/python-modules/slack-sdk/default.nix
+++ b/pkgs/development/python-modules/slack-sdk/default.nix
@@ -1,27 +1,28 @@
-{ stdenv
-, lib
-, aiodns
-, aiohttp
-, boto3
-, buildPythonPackage
-, codecov
-, fetchFromGitHub
-, flake8
-, flask-sockets
-, moto
-, pythonOlder
-, psutil
-, pytest-asyncio
-, pytestCheckHook
-, setuptools
-, sqlalchemy
-, websocket-client
-, websockets
+{
+  lib,
+  stdenv,
+  aiodns,
+  aiohttp,
+  boto3,
+  buildPythonPackage,
+  codecov,
+  fetchFromGitHub,
+  flake8,
+  flask-sockets,
+  moto,
+  pythonOlder,
+  psutil,
+  pytest-asyncio,
+  pytestCheckHook,
+  setuptools,
+  sqlalchemy,
+  websocket-client,
+  websockets,
 }:
 
 buildPythonPackage rec {
   pname = "slack-sdk";
-  version = "3.27.1";
+  version = "3.29.0";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -30,7 +31,7 @@ buildPythonPackage rec {
     owner = "slackapi";
     repo = "python-slack-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fBHu4e6pSt8yzXbLWr5cwjRFDfvdH2jzpSNzdMBg4N0=";
+    hash = "sha256-49dSRg0nrTXuXfnrC2/3p/zYMxouXO9FLqSBSxg4TcU=";
   };
 
   postPatch = ''
@@ -38,11 +39,9 @@ buildPythonPackage rec {
       --replace-fail ', "pytest-runner"' ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiodns
     aiohttp
     boto3
@@ -78,15 +77,13 @@ buildPythonPackage rec {
     "test_issue_690_oauth_access"
   ];
 
-  pythonImportsCheck = [
-    "slack_sdk"
-  ];
+  pythonImportsCheck = [ "slack_sdk" ];
 
   meta = with lib; {
     description = "Slack Developer Kit for Python";
     homepage = "https://slack.dev/python-slack-sdk/";
     changelog = "https://github.com/slackapi/python-slack-sdk/releases/tag/v${version}";
-    license = with licenses; [ mit ];
+    license = licenses.mit;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/slackclient/default.nix b/pkgs/development/python-modules/slackclient/default.nix
index 9769f22727a36..9f1d3e92c08d6 100644
--- a/pkgs/development/python-modules/slackclient/default.nix
+++ b/pkgs/development/python-modules/slackclient/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, stdenv
-, aiohttp
-, boto3
-, buildPythonPackage
-, fetchFromGitHub
-, flask
-, flask-sockets
-, pythonOlder
-, mock
-, moto
-, psutil
-, pytest-mock
-, pytestCheckHook
-, requests
-, responses
-, sqlalchemy
-, websockets
-, websocket-client
+{
+  lib,
+  stdenv,
+  aiohttp,
+  boto3,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+  flask-sockets,
+  pythonOlder,
+  mock,
+  moto,
+  psutil,
+  pytest-mock,
+  pytestCheckHook,
+  requests,
+  responses,
+  sqlalchemy,
+  websockets,
+  websocket-client,
 }:
 
 buildPythonPackage rec {
   pname = "slackclient";
-  version = "3.27.1";
-  format =  "setuptools";
+  version = "3.29.0";
+  format = "setuptools";
 
   disabled = pythonOlder "3.6";
 
@@ -30,7 +31,7 @@ buildPythonPackage rec {
     owner = "slackapi";
     repo = "python-slack-sdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fBHu4e6pSt8yzXbLWr5cwjRFDfvdH2jzpSNzdMBg4N0=";
+    hash = "sha256-49dSRg0nrTXuXfnrC2/3p/zYMxouXO9FLqSBSxg4TcU=";
   };
 
   propagatedBuildInputs = [
@@ -62,29 +63,32 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  disabledTests = [
-    "test_start_raises_an_error_if_rtm_ws_url_is_not_returned"
-    "test_interactions"
-    "test_send_message_while_disconnection"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # these fail with `ConnectionResetError: [Errno 54] Connection reset by peer`
-    "test_issue_690_oauth_access"
-    "test_issue_690_oauth_v2_access"
-    "test_send"
-    "test_send_attachments"
-    "test_send_blocks"
-    "test_send_dict"
-  ];
+  disabledTests =
+    [
+      "test_start_raises_an_error_if_rtm_ws_url_is_not_returned"
+      "test_interactions"
+      "test_send_message_while_disconnection"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # these fail with `ConnectionResetError: [Errno 54] Connection reset by peer`
+      "test_issue_690_oauth_access"
+      "test_issue_690_oauth_v2_access"
+      "test_send"
+      "test_send_attachments"
+      "test_send_blocks"
+      "test_send_dict"
+    ];
 
-  pythonImportsCheck = [
-    "slack"
-  ];
+  pythonImportsCheck = [ "slack" ];
 
   meta = with lib; {
-    description = "A client for Slack, which supports the Slack Web API and Real Time Messaging (RTM) API";
+    description = "Client for Slack, which supports the Slack Web API and Real Time Messaging (RTM) API";
     homepage = "https://github.com/slackapi/python-slackclient";
     changelog = "https://github.com/slackapi/python-slack-sdk/releases/tag/v${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ flokli psyanticy ];
+    maintainers = with maintainers; [
+      flokli
+      psyanticy
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/sleekxmpp/default.nix b/pkgs/development/python-modules/sleekxmpp/default.nix
index 4f4554b5a4ae9..dea81113d3908 100644
--- a/pkgs/development/python-modules/sleekxmpp/default.nix
+++ b/pkgs/development/python-modules/sleekxmpp/default.nix
@@ -1,4 +1,12 @@
-{ stdenv, lib, fetchPypi, buildPythonPackage, pythonAtLeast, dnspython, pyasn1 }:
+{
+  stdenv,
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonAtLeast,
+  dnspython,
+  pyasn1,
+}:
 
 buildPythonPackage rec {
   pname = "sleekxmpp";
@@ -7,12 +15,13 @@ buildPythonPackage rec {
 
   disabled = pythonAtLeast "3.10"; # Deprecated in favor of Slixmpp
 
-  propagatedBuildInputs = [ dnspython pyasn1 ];
-
-  patches = [
-    ./dnspython-ip6.patch
+  propagatedBuildInputs = [
+    dnspython
+    pyasn1
   ];
 
+  patches = [ ./dnspython-ip6.patch ];
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "d213c1de71d92505f95ced0460ee0f84fdc4ddcacb7d7dd343739ed4028e5569";
@@ -24,5 +33,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     homepage = "http://sleekxmpp.com/";
   };
-
 }
diff --git a/pkgs/development/python-modules/sleepyq/default.nix b/pkgs/development/python-modules/sleepyq/default.nix
index e93a77fd2e79e..2804be073b9e5 100644
--- a/pkgs/development/python-modules/sleepyq/default.nix
+++ b/pkgs/development/python-modules/sleepyq/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, inflection
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  inflection,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/slicedimage/default.nix b/pkgs/development/python-modules/slicedimage/default.nix
index 680bb0f6a5be1..8c7b0e242ce44 100644
--- a/pkgs/development/python-modules/slicedimage/default.nix
+++ b/pkgs/development/python-modules/slicedimage/default.nix
@@ -1,18 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, boto3
-, diskcache
-, enum34
-, packaging
-, pathlib
-, numpy
-, requests
-, scikit-image
-, six
-, pytestCheckHook
-, isPy27
-, tifffile
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  boto3,
+  diskcache,
+  packaging,
+  numpy,
+  requests,
+  scikit-image,
+  six,
+  pytestCheckHook,
+  tifffile,
 }:
 
 buildPythonPackage rec {
@@ -36,12 +34,10 @@ buildPythonPackage rec {
     scikit-image
     six
     tifffile
-  ] ++ lib.optionals isPy27 [ pathlib enum34 ];
-
-  nativeCheckInputs = [
-    pytestCheckHook
   ];
 
+  nativeCheckInputs = [ pytestCheckHook ];
+
   # Ignore tests which require setup, check again if disabledTestFiles can be used
   pytestFlagsArray = [ "--ignore tests/io_" ];
 
diff --git a/pkgs/development/python-modules/slicer/default.nix b/pkgs/development/python-modules/slicer/default.nix
index f6900cb634927..79e514f7ee9be 100644
--- a/pkgs/development/python-modules/slicer/default.nix
+++ b/pkgs/development/python-modules/slicer/default.nix
@@ -1,20 +1,20 @@
-{ lib
-, buildPythonPackage
-, dos2unix
-, fetchpatch
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, pandas
-, torch
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  dos2unix,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  pandas,
+  torch,
+  scipy,
 }:
 
 buildPythonPackage rec {
   pname = "slicer";
   version = "0.0.8";
-  format = "setuptools";
-  disabled = pythonOlder "3.6";
+  pyproject = true;
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
@@ -25,32 +25,13 @@ buildPythonPackage rec {
     dos2unix slicer/*
   '';
 
-  patches = [
-    # these patches add support for numpy>=1.24
-    (fetchpatch {
-      url = "https://github.com/interpretml/slicer/commit/028e09e639c4a3c99abe1d537cce30af2eebb081.patch";
-      hash = "sha256-jh/cbz7cx2ks6jMNh1gI1n5RS/OHBtSIDZRxUGyrl/I=";
-    })
-    (fetchpatch {
-      url = "https://github.com/interpretml/slicer/commit/d4bb09f136d7e1f64711633c16a37e7bee738696.patch";
-      hash = "sha256-9rh99s4JWF4iKClZ19jvqSeRulL32xB5Use8PGkh/SA=";
-    })
-    (fetchpatch {
-      url = "https://github.com/interpretml/slicer/commit/74b3683a5a7bd982f9eaaf8d8d665dfdaf2c6604.patch";
-      hash = "sha256-R3zsC3udYPFUT93eRhb6wyc9S5n2wceiOunWJ8K+648=";
-    })
-  ];
-
-  nativeBuildInputs = [
-    dos2unix
-  ];
-
-  nativeCheckInputs = [ pytestCheckHook pandas torch scipy ];
+  nativeBuildInputs = [ dos2unix ];
 
-  disabledTests = [
-    # IndexError: too many indices for array
-    "test_slicer_sparse"
-    "test_operations_2d"
+  nativeCheckInputs = [
+    pytestCheckHook
+    pandas
+    torch
+    scipy
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/slicerator/default.nix b/pkgs/development/python-modules/slicerator/default.nix
index a8a4a7d3b8d22..d76fb9fa16792 100644
--- a/pkgs/development/python-modules/slicerator/default.nix
+++ b/pkgs/development/python-modules/slicerator/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,7 +26,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A lazy-loading, fancy-sliceable iterable";
+    description = "Lazy-loading, fancy-sliceable iterable";
     homepage = "https://github.com/soft-matter/slicerator";
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/slimit/default.nix b/pkgs/development/python-modules/slimit/default.nix
index 40b4f0ca67b04..771fd05d8ceb1 100644
--- a/pkgs/development/python-modules/slimit/default.nix
+++ b/pkgs/development/python-modules/slimit/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, ply
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ply,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,17 +18,11 @@ buildPythonPackage rec {
     hash = "sha256-J+8RGENM/+eaTNvoC54XXPP+aWmazlssjnZAY88J/F0=";
   };
 
-  propagatedBuildInputs = [
-    ply
-  ];
+  propagatedBuildInputs = [ ply ];
 
-  pythonImportsCheck = [
-    "slimit"
-  ];
+  pythonImportsCheck = [ "slimit" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "SlimIt -  a JavaScript minifier/parser in Python";
diff --git a/pkgs/development/python-modules/slither-analyzer/default.nix b/pkgs/development/python-modules/slither-analyzer/default.nix
index 2dc276bac48b0..527cf726d39da 100644
--- a/pkgs/development/python-modules/slither-analyzer/default.nix
+++ b/pkgs/development/python-modules/slither-analyzer/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, crytic-compile
-, fetchFromGitHub
-, makeWrapper
-, packaging
-, prettytable
-, pythonOlder
-, setuptools-scm
-, solc
-, web3
-, withSolc ? false
-, testers
-, slither-analyzer
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  crytic-compile,
+  fetchFromGitHub,
+  makeWrapper,
+  packaging,
+  prettytable,
+  pythonOlder,
+  setuptools-scm,
+  solc,
+  web3,
+  withSolc ? false,
+  testers,
+  slither-analyzer,
 }:
 
 buildPythonPackage rec {
@@ -94,6 +95,10 @@ buildPythonPackage rec {
     changelog = "https://github.com/crytic/slither/releases/tag/${version}";
     license = licenses.agpl3Plus;
     mainProgram = "slither";
-    maintainers = with maintainers; [ arturcygan fab hellwolf ];
+    maintainers = with maintainers; [
+      arturcygan
+      fab
+      hellwolf
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/slixmpp/default.nix b/pkgs/development/python-modules/slixmpp/default.nix
index 82fba525c0372..e487f91d05a76 100644
--- a/pkgs/development/python-modules/slixmpp/default.nix
+++ b/pkgs/development/python-modules/slixmpp/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, aiodns
-, aiohttp
-, fetchPypi
-, gnupg
-, pyasn1
-, pyasn1-modules
-, pytestCheckHook
-, substituteAll
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  aiodns,
+  aiohttp,
+  fetchPypi,
+  gnupg,
+  pyasn1,
+  pyasn1-modules,
+  pytestCheckHook,
+  substituteAll,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     pyasn1-modules
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   patches = [
     (substituteAll {
@@ -47,9 +46,7 @@ buildPythonPackage rec {
     "tests/test_xep_0454.py"
   ];
 
-  pythonImportsCheck = [
-    "slixmpp"
-  ];
+  pythonImportsCheck = [ "slixmpp" ];
 
   meta = with lib; {
     description = "Python library for XMPP";
diff --git a/pkgs/development/python-modules/slob/default.nix b/pkgs/development/python-modules/slob/default.nix
index 38b0c9d92bfdf..3e72030896d55 100644
--- a/pkgs/development/python-modules/slob/default.nix
+++ b/pkgs/development/python-modules/slob/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy3k
-, pyicu
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy3k,
+  pyicu,
+  python,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/slovnet/default.nix b/pkgs/development/python-modules/slovnet/default.nix
index 7f813564cafd1..182b0475766af 100644
--- a/pkgs/development/python-modules/slovnet/default.nix
+++ b/pkgs/development/python-modules/slovnet/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, razdel
-, navec
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  razdel,
+  navec,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,11 @@ buildPythonPackage rec {
     hash = "sha256-AtIle9ybnMHSQr007iyGHGSPcIPveJj+FGirzDge95k=";
   };
 
-  propagatedBuildInputs = [ numpy navec razdel ];
+  propagatedBuildInputs = [
+    numpy
+    navec
+    razdel
+  ];
   nativeCheckInputs = [ pytestCheckHook ];
   pytestFlagsArray = [ "tests/" ];
   disabledTestPaths = [
diff --git a/pkgs/development/python-modules/slowapi/default.nix b/pkgs/development/python-modules/slowapi/default.nix
index c64a89d896df5..2e42fc17271f2 100644
--- a/pkgs/development/python-modules/slowapi/default.nix
+++ b/pkgs/development/python-modules/slowapi/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fastapi
-, fetchFromGitHub
-, limits
-, mock
-, hiro
-, httpx
-, poetry-core
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, redis
-, starlette
+{
+  lib,
+  buildPythonPackage,
+  fastapi,
+  fetchFromGitHub,
+  limits,
+  mock,
+  hiro,
+  httpx,
+  poetry-core,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  redis,
+  starlette,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     hash = "sha256-R/Mr+Qv22AN7HCDGmAUVh4efU8z4gMIyhC0AuKmxgdE=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     limits
@@ -50,13 +49,9 @@ buildPythonPackage rec {
     # AssertionError: Regex pattern 'parameter `request` must be an instance of starlette.requests.Request' does not match 'This portal is not running'.
     "test_endpoint_request_param_invalid"
     "test_endpoint_response_param_invalid"
-  ] ++ lib.optionals (pythonAtLeast "3.10") [
-    "test_multiple_decorators"
-  ];
+  ] ++ lib.optionals (pythonAtLeast "3.10") [ "test_multiple_decorators" ];
 
-  pythonImportsCheck = [
-    "slowapi"
-  ];
+  pythonImportsCheck = [ "slowapi" ];
 
   meta = with lib; {
     description = "Python library for API rate limiting";
diff --git a/pkgs/development/python-modules/slpp/default.nix b/pkgs/development/python-modules/slpp/default.nix
index 74dbfcc834cde..c21a183269a0a 100644
--- a/pkgs/development/python-modules/slpp/default.nix
+++ b/pkgs/development/python-modules/slpp/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-, setuptools
-, six
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -17,20 +18,14 @@ buildPythonPackage rec {
     hash = "sha256-If3ZMoNICQxxpdMnc+juaKq4rX7MMi9eDMAQEUy1Scg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   # No tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "slpp"
-  ];
+  pythonImportsCheck = [ "slpp" ];
 
   meta = with lib; {
     description = "Simple lua-python parser";
diff --git a/pkgs/development/python-modules/slugid/default.nix b/pkgs/development/python-modules/slugid/default.nix
index 3d3e541872673..cc695e5f2dbd6 100644
--- a/pkgs/development/python-modules/slugid/default.nix
+++ b/pkgs/development/python-modules/slugid/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, lib
-, fetchFromGitHub
+{
+  buildPythonPackage,
+  lib,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
 
   doCheck = false; # has no tests
 
-  pythonImportsCheck = [
-    "slugid"
-  ];
+  pythonImportsCheck = [ "slugid" ];
 
   meta = with lib; {
     description = "URL-safe base64 UUID encoder for generating 22 character slugs";
diff --git a/pkgs/development/python-modules/sly/default.nix b/pkgs/development/python-modules/sly/default.nix
index a1ba8f67f87b7..6087af1deee5f 100644
--- a/pkgs/development/python-modules/sly/default.nix
+++ b/pkgs/development/python-modules/sly/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,25 +19,19 @@ buildPythonPackage rec {
     hash = "sha256-JR1CAV6FBxWK7CFk8GA130qCsDFM5kUPRX1xJedkkCQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   postPatch = ''
     # imperative dev dependency installation
     rm Makefile
   '';
 
-  pythonImportsCheck = [
-    "sly"
-  ];
+  pythonImportsCheck = [ "sly" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "An improved PLY implementation of lex and yacc for Python 3";
+    description = "Improved PLY implementation of lex and yacc for Python 3";
     homepage = "https://github.com/dabeaz/sly";
     license = licenses.bsd3;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/smart-meter-texas/default.nix b/pkgs/development/python-modules/smart-meter-texas/default.nix
index 556f978c73124..f373faeb278b7 100644
--- a/pkgs/development/python-modules/smart-meter-texas/default.nix
+++ b/pkgs/development/python-modules/smart-meter-texas/default.nix
@@ -1,17 +1,19 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, aiohttp
-, asn1
-, python-dateutil
-, tenacity
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  aiohttp,
+  asn1,
+  python-dateutil,
+  setuptools,
+  tenacity,
 }:
 
 buildPythonPackage rec {
   pname = "smart-meter-texas";
-  version = "0.5.3";
-  format = "setuptools";
+  version = "0.5.5";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -19,15 +21,17 @@ buildPythonPackage rec {
     owner = "grahamwetzler";
     repo = "smart-meter-texas";
     rev = "refs/tags/v${version}";
-    hash = "sha256-8htd5fLrtkaVlSEm+RB7tWA5YZkcAOjAXVNzZiMwP7k=";
+    hash = "sha256-dHWcYrBtmKdEIU45rMy4KvoPX88hnRpd4KBlbJaNvgI=";
   };
 
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "pytest-runner" ""
+      --replace-fail "pytest-runner" ""
   '';
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     aiohttp
     asn1
     python-dateutil
diff --git a/pkgs/development/python-modules/smart-open/default.nix b/pkgs/development/python-modules/smart-open/default.nix
index b9622276bdf88..aa98f44b02ff1 100644
--- a/pkgs/development/python-modules/smart-open/default.nix
+++ b/pkgs/development/python-modules/smart-open/default.nix
@@ -1,20 +1,22 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, azure-common
-, azure-core
-, azure-storage-blob
-, boto3
-, google-cloud-storage
-, requests
-, moto
-, paramiko
-, pytestCheckHook
-, responses
-, setuptools
-, wrapt
-, zstandard
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  fetchpatch,
+  azure-common,
+  azure-core,
+  azure-storage-blob,
+  boto3,
+  google-cloud-storage,
+  requests,
+  moto,
+  paramiko,
+  pytestCheckHook,
+  responses,
+  setuptools,
+  wrapt,
+  zstandard,
 }:
 
 buildPythonPackage rec {
@@ -31,43 +33,35 @@ buildPythonPackage rec {
     hash = "sha256-4HOTaF6AKXGlVCvSGKnnaH73aa4IO0aRxz03XQ4gSd8=";
   };
 
-  build-system = [
-    setuptools
+  patches = [
+    # https://github.com/RaRe-Technologies/smart_open/pull/822
+    # fix test_smart_open.py on python 3.12
+    (fetchpatch {
+      name = "fix-smart-open-test.patch";
+      url = "https://github.com/RaRe-Technologies/smart_open/commit/3d29564ca034a56d343c9d14b178aaa0ff4c937c.patch";
+      hash = "sha256-CrAeqaIMM8bctWiFnq9uamnIlkaslDyjaWL6k9wUjT8=";
+    })
   ];
 
-  dependencies = [
-    wrapt
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ wrapt ];
 
   optional-dependencies = {
-    s3 = [
-      boto3
-    ];
-    gcs = [
-      google-cloud-storage
-    ];
+    s3 = [ boto3 ];
+    gcs = [ google-cloud-storage ];
     azure = [
       azure-storage-blob
       azure-common
       azure-core
     ];
-    http = [
-      requests
-    ];
-    webhdfs = [
-      requests
-    ];
-    ssh = [
-      paramiko
-    ];
-    zst = [
-      zstandard
-    ];
+    http = [ requests ];
+    webhdfs = [ requests ];
+    ssh = [ paramiko ];
+    zst = [ zstandard ];
   };
 
-  pythonImportsCheck = [
-    "smart_open"
-  ];
+  pythonImportsCheck = [ "smart_open" ];
 
   nativeCheckInputs = [
     moto
@@ -75,9 +69,7 @@ buildPythonPackage rec {
     responses
   ] ++ lib.flatten (builtins.attrValues optional-dependencies);
 
-  pytestFlagsArray = [
-    "smart_open"
-  ];
+  pytestFlagsArray = [ "smart_open" ];
 
   disabledTests = [
     # https://github.com/RaRe-Technologies/smart_open/issues/784
@@ -88,7 +80,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    changelog =  "https://github.com/piskvorky/smart_open/releases/tag/v${version}";
+    changelog = "https://github.com/piskvorky/smart_open/releases/tag/v${version}";
     description = "Library for efficient streaming of very large file";
     homepage = "https://github.com/RaRe-Technologies/smart_open";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/smarthab/default.nix b/pkgs/development/python-modules/smarthab/default.nix
index f317e9a008ede..4060a3a92a91d 100644
--- a/pkgs/development/python-modules/smarthab/default.nix
+++ b/pkgs/development/python-modules/smarthab/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, aiohttp
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  aiohttp,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     sha256 = "bf929455a2f7cc1e275b331de73d983587138a8d9179574988ba05fa152d3ccf";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # no tests on PyPI, no tags on GitLab
   doCheck = false;
diff --git a/pkgs/development/python-modules/smartypants/default.nix b/pkgs/development/python-modules/smartypants/default.nix
index 3d0fd5ba6e2c3..e51744b9f5076 100644
--- a/pkgs/development/python-modules/smartypants/default.nix
+++ b/pkgs/development/python-modules/smartypants/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch2
-, isPyPy
-, setuptools
-, docutils
-, pygments
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch2,
+  isPyPy,
+  setuptools,
+  docutils,
+  pygments,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     docutils
diff --git a/pkgs/development/python-modules/smbprotocol/default.nix b/pkgs/development/python-modules/smbprotocol/default.nix
index f72eef539134d..e531acb40b991 100644
--- a/pkgs/development/python-modules/smbprotocol/default.nix
+++ b/pkgs/development/python-modules/smbprotocol/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, pyspnego
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  pyspnego,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -43,9 +44,7 @@ buildPythonPackage rec {
     "test_recv_"
   ];
 
-  pythonImportsCheck = [
-    "smbprotocol"
-  ];
+  pythonImportsCheck = [ "smbprotocol" ];
 
   meta = with lib; {
     description = "Python SMBv2 and v3 Client";
diff --git a/pkgs/development/python-modules/smbus-cffi/default.nix b/pkgs/development/python-modules/smbus-cffi/default.nix
index b32cde3a87a4b..7d76327862c9d 100644
--- a/pkgs/development/python-modules/smbus-cffi/default.nix
+++ b/pkgs/development/python-modules/smbus-cffi/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cffi
-, py
-, pytestCheckHook
-, pyserial
-, fetchpatch
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cffi,
+  py,
+  pytestCheckHook,
+  pyserial,
+  fetchpatch,
 }:
 
 buildPythonPackage rec {
@@ -39,7 +40,11 @@ buildPythonPackage rec {
   # requires hardware access
   pytestFlagsArray = [ "--ignore=test/test_smbus_integration.py" ];
 
-  nativeCheckInputs = [ py pytestCheckHook pyserial ];
+  nativeCheckInputs = [
+    py
+    pytestCheckHook
+    pyserial
+  ];
 
   meta = with lib; {
     description = "Python module for SMBus access through Linux I2C /dev interface";
diff --git a/pkgs/development/python-modules/smbus2/default.nix b/pkgs/development/python-modules/smbus2/default.nix
index 893dd1921b512..f88d43362d583 100644
--- a/pkgs/development/python-modules/smbus2/default.nix
+++ b/pkgs/development/python-modules/smbus2/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-tjJurJzDn0ATiYY3Xo66lwUs98/7ZLG3d4+h1prVHAI=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "smbus2"
-  ];
+  pythonImportsCheck = [ "smbus2" ];
 
   meta = with lib; {
     description = "Drop-in replacement for smbus-cffi/smbus-python";
diff --git a/pkgs/development/python-modules/smdebug-rulesconfig/default.nix b/pkgs/development/python-modules/smdebug-rulesconfig/default.nix
index 1c64184c093bd..6f91ebe4c79a9 100644
--- a/pkgs/development/python-modules/smdebug-rulesconfig/default.nix
+++ b/pkgs/development/python-modules/smdebug-rulesconfig/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "smdebug-rulesconfig";
diff --git a/pkgs/development/python-modules/smhi-pkg/default.nix b/pkgs/development/python-modules/smhi-pkg/default.nix
index a6b5334cedfcc..2c812f5405ba6 100644
--- a/pkgs/development/python-modules/smhi-pkg/default.nix
+++ b/pkgs/development/python-modules/smhi-pkg/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-jcIXzAZO9SxC/0apdjAVv1GmBTbdlasfXr1/Tj9adNc=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   nativeCheckInputs = [
     pytest-asyncio
diff --git a/pkgs/development/python-modules/smmap/default.nix b/pkgs/development/python-modules/smmap/default.nix
index dd58978ced49a..27ae1788145fd 100644
--- a/pkgs/development/python-modules/smmap/default.nix
+++ b/pkgs/development/python-modules/smmap/default.nix
@@ -1,9 +1,9 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, setuptools
-, nosexcover
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,18 +16,14 @@ buildPythonPackage rec {
     hash = "sha256-jXkCjqbMEx2l6rCZpdlamY1DxneZVv/+O0VQQJEQdto=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  doCheck = pythonOlder "3.12";
+  pythonImportsCheck = [ "smmap" ];
 
-  nativeCheckInputs = [
-    nosexcover
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
-    description = "A pure python implementation of a sliding window memory map manager";
+    description = "Pure python implementation of a sliding window memory map manager";
     homepage = "https://github.com/gitpython-developers/smmap";
     maintainers = [ ];
     license = lib.licenses.bsd3;
diff --git a/pkgs/development/python-modules/smpp-pdu/default.nix b/pkgs/development/python-modules/smpp-pdu/default.nix
index e320b7e242c64..99fddc36fe767 100644
--- a/pkgs/development/python-modules/smpp-pdu/default.nix
+++ b/pkgs/development/python-modules/smpp-pdu/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pydantic
-, requests
-, pytestCheckHook
-, pytest-asyncio
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pydantic,
+  requests,
+  pytestCheckHook,
+  pytest-asyncio,
+  setuptools,
 }:
 
 buildPythonPackage {
@@ -22,13 +23,9 @@ buildPythonPackage {
     hash = "sha256-/icVexc2S8sbJqn4ioeIhYxyDFIENuCfsFhl0uAHa9g=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "smpp.pdu" ];
 
@@ -36,6 +33,9 @@ buildPythonPackage {
     description = "Library for parsing Protocol Data Units (PDUs) in SMPP protocol";
     homepage = "https://github.com/hologram-io/smpp.pdu";
     license = licenses.asl20;
-    maintainers = with maintainers; [ flokli janik ];
+    maintainers = with maintainers; [
+      flokli
+      janik
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/smpplib/default.nix b/pkgs/development/python-modules/smpplib/default.nix
index a991532fa9174..16c96ce311d46 100644
--- a/pkgs/development/python-modules/smpplib/default.nix
+++ b/pkgs/development/python-modules/smpplib/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, six
-, mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  six,
+  mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     sha256 = "sha256-UhWpWwU40m8YlgDgmCsx2oKB90U81uKGLFsh4+EAIzE=";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   nativeCheckInputs = [
     mock
@@ -30,9 +29,7 @@ buildPythonPackage rec {
     rm -rf $out/${python.sitePackages}/tests
   '';
 
-  pythonImportsCheck = [
-    "smpplib"
-  ];
+  pythonImportsCheck = [ "smpplib" ];
 
   meta = with lib; {
     description = "SMPP library for Python";
diff --git a/pkgs/development/python-modules/smtpdfix/default.nix b/pkgs/development/python-modules/smtpdfix/default.nix
index 5d34cd6693bff..51346fe358aa4 100644
--- a/pkgs/development/python-modules/smtpdfix/default.nix
+++ b/pkgs/development/python-modules/smtpdfix/default.nix
@@ -1,29 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonAtLeast
-, setuptools
-, pytest
-, portpicker
-, cryptography
-, aiosmtpd
-, pytestCheckHook
-, pytest-asyncio
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
+  setuptools,
+  pytest,
+  portpicker,
+  cryptography,
+  aiosmtpd,
+  pytestCheckHook,
+  pytest-asyncio,
 }:
 
 buildPythonPackage rec {
   pname = "smtpdfix";
-  version = "0.5.1";
+  version = "0.5.2";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-882i0T6EySZ6jxOgoM11MU+ha41XfKjDDhUjeX7qvp4=";
+    hash = "sha256-5NGs6Q83EqGRJ+2IdOaXqGFIwfSNKy2wwHIJaOjj7JU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiosmtpd
@@ -43,7 +42,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "An SMTP server for use as a pytest fixture for testing";
+    description = "SMTP server for use as a pytest fixture for testing";
     homepage = "https://github.com/bebleo/smtpdfix";
     changelog = "https://github.com/bebleo/smtpdfix/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/snakebite/default.nix b/pkgs/development/python-modules/snakebite/default.nix
index a5a1addf81b0a..5570972d24a49 100644
--- a/pkgs/development/python-modules/snakebite/default.nix
+++ b/pkgs/development/python-modules/snakebite/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, protobuf
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  protobuf,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     sha256 = "085238b4944cb9c658ee62d5794de936ac3d0c337c504b2cc86424a205ae978a";
   };
 
-  propagatedBuildInputs = [
-    protobuf
-  ];
+  propagatedBuildInputs = [ protobuf ];
 
   postPatch = ''
     substituteInPlace setup.py \
@@ -26,9 +25,7 @@ buildPythonPackage rec {
   # Tests require hadoop hdfs
   doCheck = false;
 
-  pythonImportsCheck = [
-    "snakebite"
-  ];
+  pythonImportsCheck = [ "snakebite" ];
 
   meta = with lib; {
     description = "Pure Python HDFS client";
diff --git a/pkgs/development/python-modules/snakemake-executor-plugin-cluster-generic/default.nix b/pkgs/development/python-modules/snakemake-executor-plugin-cluster-generic/default.nix
index 8785039c6a189..67ae31e9ff34c 100644
--- a/pkgs/development/python-modules/snakemake-executor-plugin-cluster-generic/default.nix
+++ b/pkgs/development/python-modules/snakemake-executor-plugin-cluster-generic/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, snakemake-interface-executor-plugins
-, snakemake-interface-common
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  snakemake-interface-executor-plugins,
+  snakemake-interface-common,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-RHMefoJOZb6TjRsFCORLFdHtI5ZpTsV6CHrjHKMat9o=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     snakemake-interface-executor-plugins
diff --git a/pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix b/pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix
index e40a0842b9086..cb41b71dc4a04 100644
--- a/pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix
+++ b/pkgs/development/python-modules/snakemake-interface-executor-plugins/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, argparse-dataclass
-, throttler
-, snakemake-interface-common
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  argparse-dataclass,
+  throttler,
+  snakemake-interface-common,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-jANSGNdWmc6ERClLR/pExoboyz8gUL2FW3W7kDQDOQo=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     argparse-dataclass
diff --git a/pkgs/development/python-modules/snakemake-interface-report-plugins/default.nix b/pkgs/development/python-modules/snakemake-interface-report-plugins/default.nix
index 85c4c756b534d..c20a0ad122462 100644
--- a/pkgs/development/python-modules/snakemake-interface-report-plugins/default.nix
+++ b/pkgs/development/python-modules/snakemake-interface-report-plugins/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, snakemake-interface-common
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  snakemake-interface-common,
 }:
 
 buildPythonPackage rec {
@@ -17,18 +18,14 @@ buildPythonPackage rec {
     hash = "sha256-30x4avA3FrqZ4GoTl6Js5h3VG5LW7BNHOcNWxznXoT0=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    snakemake-interface-common
-  ];
+  propagatedBuildInputs = [ snakemake-interface-common ];
 
   pythonImportsCheck = [ "snakemake_interface_report_plugins" ];
 
   meta = with lib; {
-    description = "The interface for Snakemake report plugins";
+    description = "Interface for Snakemake report plugins";
     homepage = "https://github.com/snakemake/snakemake-interface-report-plugins";
     license = licenses.mit;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/development/python-modules/snakemake-interface-storage-plugins/default.nix b/pkgs/development/python-modules/snakemake-interface-storage-plugins/default.nix
index 6df9688d1064a..493f142724e3c 100644
--- a/pkgs/development/python-modules/snakemake-interface-storage-plugins/default.nix
+++ b/pkgs/development/python-modules/snakemake-interface-storage-plugins/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, reretry
-, snakemake-interface-common
-, throttler
-, wrapt
-, snakemake
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  reretry,
+  snakemake-interface-common,
+  throttler,
+  wrapt,
+  snakemake,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-syUjK32RPV9FMV7RSpXy+PJ2AVigGH+ywm6iTjUAuec=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     reretry
diff --git a/pkgs/development/python-modules/snakemake-storage-plugin-s3/default.nix b/pkgs/development/python-modules/snakemake-storage-plugin-s3/default.nix
index 9f194eb253570..bd0e8f6a59515 100644
--- a/pkgs/development/python-modules/snakemake-storage-plugin-s3/default.nix
+++ b/pkgs/development/python-modules/snakemake-storage-plugin-s3/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, boto3
-, botocore
-, poetry-core
-, snakemake
-, snakemake-interface-storage-plugins
-, snakemake-interface-common
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  boto3,
+  botocore,
+  poetry-core,
+  snakemake,
+  snakemake-interface-storage-plugins,
+  snakemake-interface-common,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "snakemake-storage-plugin-s3";
-  version = "0.2.10";
+  version = "0.2.11";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "snakemake";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-k21DRQdSUFkdwNb7MZJmClhIg+pdSc7H6FkDrbf4DT8=";
+    hash = "sha256-pAMrWJe4+PWHglZ/C83Af+uHBg9wupfSlH4W8CvO9as=";
   };
 
   postPatch = ''
@@ -27,9 +28,7 @@ buildPythonPackage rec {
       --replace ">=2.0,<2.2" "*"
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     boto3
@@ -39,14 +38,12 @@ buildPythonPackage rec {
     urllib3
   ];
 
-  nativeCheckInputs = [
-    snakemake
-  ];
+  nativeCheckInputs = [ snakemake ];
 
   pythonImportsCheck = [ "snakemake_storage_plugin_s3" ];
 
   meta = with lib; {
-    description = "A Snakemake storage plugin for S3 API storage (AWS S3, MinIO, etc.)";
+    description = "Snakemake storage plugin for S3 API storage (AWS S3, MinIO, etc.)";
     homepage = "https://github.com/snakemake/snakemake-storage-plugin-s3";
     license = licenses.mit;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/development/python-modules/snakemake-storage-plugin-xrootd/default.nix b/pkgs/development/python-modules/snakemake-storage-plugin-xrootd/default.nix
index 82d8c2928c3cf..264dcf516d17d 100644
--- a/pkgs/development/python-modules/snakemake-storage-plugin-xrootd/default.nix
+++ b/pkgs/development/python-modules/snakemake-storage-plugin-xrootd/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, snakemake
-, snakemake-interface-storage-plugins
-, snakemake-interface-common
-, xrootd
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  snakemake,
+  snakemake-interface-storage-plugins,
+  snakemake-interface-common,
+  xrootd,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
       --replace 'xrootd = "^5.6.4"' ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     snakemake-interface-storage-plugins
@@ -36,14 +35,12 @@ buildPythonPackage rec {
     xrootd
   ];
 
-  nativeCheckInputs = [
-    snakemake
-  ];
+  nativeCheckInputs = [ snakemake ];
 
   pythonImportsCheck = [ "snakemake_storage_plugin_xrootd" ];
 
   meta = with lib; {
-    description = "A Snakemake storage plugin for handling input and output via XRootD";
+    description = "Snakemake storage plugin for handling input and output via XRootD";
     homepage = "https://github.com/snakemake/snakemake-storage-plugin-xrootd";
     license = licenses.mit;
     maintainers = with maintainers; [ veprbl ];
diff --git a/pkgs/development/python-modules/snakeviz/default.nix b/pkgs/development/python-modules/snakeviz/default.nix
index 6e3cc6244799d..c2fd38466ff64 100644
--- a/pkgs/development/python-modules/snakeviz/default.nix
+++ b/pkgs/development/python-modules/snakeviz/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, ipython
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
-, tornado
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ipython,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
+  tornado,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     hash = "sha256-tW1zUfCgOGQ8TjrKo2lBzGb0MSe25dP0/P9Q6x3736E=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    tornado
-  ];
+  propagatedBuildInputs = [ tornado ];
 
   __darwinAllowLocalNetworking = true;
 
@@ -39,9 +36,7 @@ buildPythonPackage rec {
     requests
   ];
 
-  pythonImportsCheck = [
-    "snakeviz"
-  ];
+  pythonImportsCheck = [ "snakeviz" ];
 
   preCheck = ''
     export PATH="$PATH:$out/bin";
diff --git a/pkgs/development/python-modules/snap-helpers/default.nix b/pkgs/development/python-modules/snap-helpers/default.nix
index c21df9231ee5b..a1a9ef70c1888 100644
--- a/pkgs/development/python-modules/snap-helpers/default.nix
+++ b/pkgs/development/python-modules/snap-helpers/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nix-update-script
-, pyyaml
-, setuptools
-, pytestCheckHook
-, pytest-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nix-update-script,
+  pyyaml,
+  setuptools,
+  pytestCheckHook,
+  pytest-mock,
 }:
 
 buildPythonPackage rec {
@@ -21,17 +22,11 @@ buildPythonPackage rec {
     hash = "sha256-7JBvrD4WNOcFSVx3xauk4JgiVGKWuUEdUMRlH7mudE4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    pyyaml
-  ];
+  propagatedBuildInputs = [ pyyaml ];
 
-  pythonImportsCheck = [
-    "snaphelpers"
-  ];
+  pythonImportsCheck = [ "snaphelpers" ];
 
   nativeCheckInputs = [
     pytest-mock
@@ -41,7 +36,7 @@ buildPythonPackage rec {
   passthru.updateScript = nix-update-script { };
 
   meta = {
-    description = "Interact with snap configuration and properties from inside a snap.";
+    description = "Interact with snap configuration and properties from inside a snap";
     homepage = "https://github.com/albertodonato/snap-helpers";
     changelog = "https://github.com/albertodonato/snap-helpers/releases/tag/${version}";
     license = lib.licenses.lgpl3Only;
@@ -49,4 +44,3 @@ buildPythonPackage rec {
     platforms = lib.platforms.linux;
   };
 }
-
diff --git a/pkgs/development/python-modules/snapcast/default.nix b/pkgs/development/python-modules/snapcast/default.nix
index 89a2b814bedb9..bd46684d42089 100644
--- a/pkgs/development/python-modules/snapcast/default.nix
+++ b/pkgs/development/python-modules/snapcast/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, construct
-, packaging
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  construct,
+  packaging,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,22 +23,16 @@ buildPythonPackage rec {
     hash = "sha256-gn+X0DZnox4mkJwDVgwNXae63iGbiqPIO15UV5pDwuY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     construct
     packaging
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "snapcast"
-  ];
+  pythonImportsCheck = [ "snapcast" ];
 
   disabledTests = [
     # AssertionError and TypeError
diff --git a/pkgs/development/python-modules/snapshottest/default.nix b/pkgs/development/python-modules/snapshottest/default.nix
index b19873318fd7d..dd2e2f192b815 100644
--- a/pkgs/development/python-modules/snapshottest/default.nix
+++ b/pkgs/development/python-modules/snapshottest/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fastdiff
-, six
-, termcolor
-, pytestCheckHook
-, pytest-cov
-, django
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fastdiff,
+  six,
+  termcolor,
+  pytestCheckHook,
+  pytest-cov,
+  django,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,17 @@ buildPythonPackage rec {
     sha256 = "0g35ggqw4jd9zmazw55kj6gfjdghv49qx4jw5q231qyqj8fzijmv";
   };
 
-  propagatedBuildInputs = [ fastdiff six termcolor ];
+  propagatedBuildInputs = [
+    fastdiff
+    six
+    termcolor
+  ];
 
-  nativeCheckInputs = [ django pytestCheckHook pytest-cov ];
+  nativeCheckInputs = [
+    django
+    pytestCheckHook
+    pytest-cov
+  ];
 
   pythonImportsCheck = [ "snapshottest" ];
 
diff --git a/pkgs/development/python-modules/snaptime/default.nix b/pkgs/development/python-modules/snaptime/default.nix
index 8f148eba4e68e..c48cfd27f9b19 100644
--- a/pkgs/development/python-modules/snaptime/default.nix
+++ b/pkgs/development/python-modules/snaptime/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, python-dateutil
-, pytz
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  python-dateutil,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-4/HriQQ9WNMHIauYy2UCPxpMJ0DjsZdwQpixY8ktUIs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   dependencies = [
     python-dateutil
diff --git a/pkgs/development/python-modules/sniffio/default.nix b/pkgs/development/python-modules/sniffio/default.nix
index 9496f0cb081ed..5bfe0e6c191b3 100644
--- a/pkgs/development/python-modules/sniffio/default.nix
+++ b/pkgs/development/python-modules/sniffio/default.nix
@@ -1,12 +1,13 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
-, setuptools
-, setuptools-scm
-, glibcLocales
-, isPy3k
-, pytestCheckHook
-, curio
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  glibcLocales,
+  isPy3k,
+  pytestCheckHook,
+  curio,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  buildInputs = [
-    glibcLocales
-  ];
+  buildInputs = [ glibcLocales ];
 
   nativeCheckInputs = [
     curio
diff --git a/pkgs/development/python-modules/snitun/default.nix b/pkgs/development/python-modules/snitun/default.nix
index 10df697818267..a0192ee1188e0 100644
--- a/pkgs/development/python-modules/snitun/default.nix
+++ b/pkgs/development/python-modules/snitun/default.nix
@@ -1,36 +1,37 @@
-{ lib
-, stdenv
-, setuptools
-, async-timeout
-, attrs
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, pytest-aiohttp
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
+{
+  lib,
+  stdenv,
+  aiohttp,
+  async-timeout,
+  attrs,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "snitun";
-  version = "0.36.2";
+  version = "0.39.1";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "NabuCasa";
     repo = "snitun";
     rev = "refs/tags/${version}";
-    hash = "sha256-ViNsmTq1iLxNujA71b9JZB5AZ79ZbiqdTyDeBGd4gUA=";
+    hash = "sha256-jewDQqvLUh/066BSEADXkCvjLFRnodKtUPKfvi0KUpI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    aiohttp
     async-timeout
     attrs
     cryptography
@@ -41,41 +42,44 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTests = [
-    # AssertionError: Expected 'fileno' to not have been called. Called 1 times.
-    "test_client_stop_no_wait"
-  ] ++ lib.optionals stdenv.isDarwin [
-    "test_multiplexer_data_channel_abort_full" # https://github.com/NabuCasa/snitun/issues/61
-    # port binding conflicts
-    "test_snitun_single_runner_timeout"
-    "test_snitun_single_runner_throttling"
-    # ConnectionResetError: [Errno 54] Connection reset by peer
-    "test_peer_listener_timeout"
-  ] ++ lib.optionals (pythonAtLeast "3.12") [
-    # blocking
-    "test_flow_client_peer"
-    "test_close_client_peer"
-    "test_init_connector"
-    "test_flow_connector"
-    "test_close_connector_remote"
-    "test_init_connector_whitelist"
-    "test_init_multiplexer_server"
-    "test_init_multiplexer_client"
-    "test_init_multiplexer_server_throttling"
-    "test_init_multiplexer_client_throttling"
-    "test_multiplexer_ping"
-    "test_multiplexer_ping_error"
-    "test_multiplexer_init_channel_full"
-    "test_multiplexer_close_channel_full"
-    "test_init_dual_peer_with_multiplexer"
-  ];
+  disabledTests =
+    [
+      # AssertionError: Expected 'fileno' to not have been called. Called 1 times.
+      "test_client_stop_no_wait"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      "test_multiplexer_data_channel_abort_full" # https://github.com/NabuCasa/snitun/issues/61
+      # port binding conflicts
+      "test_snitun_single_runner_timeout"
+      "test_snitun_single_runner_throttling"
+      # ConnectionResetError: [Errno 54] Connection reset by peer
+      "test_peer_listener_timeout"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # blocking
+      "test_flow_client_peer"
+      "test_close_client_peer"
+      "test_init_connector"
+      "test_flow_connector"
+      "test_close_connector_remote"
+      "test_init_connector_whitelist"
+      "test_init_multiplexer_server"
+      "test_init_multiplexer_client"
+      "test_init_multiplexer_server_throttling"
+      "test_init_multiplexer_client_throttling"
+      "test_multiplexer_ping"
+      "test_multiplexer_ping_error"
+      "test_multiplexer_init_channel_full"
+      "test_multiplexer_close_channel_full"
+      "test_init_dual_peer_with_multiplexer"
+    ];
 
   pythonImportsCheck = [ "snitun" ];
 
   meta = with lib; {
+    description = "SNI proxy with TCP multiplexer";
     changelog = "https://github.com/NabuCasa/snitun/releases/tag/${version}";
     homepage = "https://github.com/nabucasa/snitun";
-    description = "SNI proxy with TCP multiplexer";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ Scriptkiddi ];
     platforms = platforms.linux;
diff --git a/pkgs/development/python-modules/snorkel/default.nix b/pkgs/development/python-modules/snorkel/default.nix
index 04e605d14554b..91c650aa657c2 100644
--- a/pkgs/development/python-modules/snorkel/default.nix
+++ b/pkgs/development/python-modules/snorkel/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, tensorboard
-, scipy
-, tqdm
-, scikit-learn
-, munkres
-, networkx
-, torch
-, pandas
-# test dependencies
-, pytestCheckHook
-, spacy
-, pyspark
-, dill
-, dask
-, spacy-models
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  tensorboard,
+  scipy,
+  tqdm,
+  scikit-learn,
+  munkres,
+  networkx,
+  torch,
+  pandas,
+  # test dependencies
+  pytestCheckHook,
+  spacy,
+  pyspark,
+  dill,
+  dask,
+  spacy-models,
 }:
 let
   pname = "snorkel";
@@ -60,7 +61,7 @@ buildPythonPackage {
   ] ++ dask.optional-dependencies.distributed;
 
   meta = with lib; {
-    description = "A system for quickly generating training data with weak supervision";
+    description = "System for quickly generating training data with weak supervision";
     homepage = "https://github.com/snorkel-team/snorkel";
     changelog = "https://github.com/snorkel/snorkel/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/snowballstemmer/default.nix b/pkgs/development/python-modules/snowballstemmer/default.nix
index a1723bd15792a..37a2a51390d86 100644
--- a/pkgs/development/python-modules/snowballstemmer/default.nix
+++ b/pkgs/development/python-modules/snowballstemmer/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, pystemmer, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  pystemmer,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "snowballstemmer";
diff --git a/pkgs/development/python-modules/snowflake-connector-python/default.nix b/pkgs/development/python-modules/snowflake-connector-python/default.nix
index f7d7743ef6e5b..cfc61601b34d9 100644
--- a/pkgs/development/python-modules/snowflake-connector-python/default.nix
+++ b/pkgs/development/python-modules/snowflake-connector-python/default.nix
@@ -19,7 +19,6 @@
   pyjwt,
   pyopenssl,
   pythonOlder,
-  pythonRelaxDepsHook,
   pytz,
   requests,
   setuptools,
@@ -31,14 +30,15 @@
 
 buildPythonPackage rec {
   pname = "snowflake-connector-python";
-  version = "3.8.1";
+  version = "3.11.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-m8zhoNniEs7s9F7c6gLRjiBalfiMwEcK2kqLrLVCR9U=";
+    pname = "snowflake_connector_python";
+    inherit version;
+    hash = "sha256-MWnAFKA+X1hVESYF45OJelUuVYlTxp8loC4zsZmIZNA=";
   };
 
   build-system = [
@@ -47,7 +47,6 @@ buildPythonPackage rec {
     wheel
   ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     asn1crypto
diff --git a/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix b/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
index 66824e6ccd0f9..26942b6d91180 100644
--- a/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/snowflake-sqlalchemy/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
-, snowflake-connector-python
-, sqlalchemy
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  snowflake-connector-python,
+  sqlalchemy,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Pypi does not include tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "snowflake.sqlalchemy"
-  ];
+  pythonImportsCheck = [ "snowflake.sqlalchemy" ];
 
   meta = with lib; {
     changelog = "https://github.com/snowflakedb/snowflake-sqlalchemy/blob/v${version}/DESCRIPTION.md";
diff --git a/pkgs/development/python-modules/snscrape/default.nix b/pkgs/development/python-modules/snscrape/default.nix
index e834fc3226ff0..2b9f149e20c89 100644
--- a/pkgs/development/python-modules/snscrape/default.nix
+++ b/pkgs/development/python-modules/snscrape/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchFromGitHub
-, filelock
-, lxml
-, pythonOlder
-, pytz
-, requests
-, setuptools-scm
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitHub,
+  filelock,
+  lxml,
+  pythonOlder,
+  pytz,
+  requests,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -24,20 +25,14 @@ buildPythonPackage rec {
     hash = "sha256-9xAUMr1SWFePEvIz6DFEexk9Txex3u8wPNfMAdxEUCA=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     beautifulsoup4
     filelock
     lxml
     requests
-  ]
-  ++ requests.optional-dependencies.socks
-  ++ lib.optionals (pythonOlder "3.9") [
-    pytz
-  ];
+  ] ++ requests.optional-dependencies.socks ++ lib.optionals (pythonOlder "3.9") [ pytz ];
 
   # There are no tests; make sure the executable works.
   checkPhase = ''
@@ -45,12 +40,10 @@ buildPythonPackage rec {
     snscrape --help
   '';
 
-  pythonImportsCheck = [
-    "snscrape"
-  ];
+  pythonImportsCheck = [ "snscrape" ];
 
   meta = with lib; {
-    description = "A social networking service scraper";
+    description = "Social networking service scraper";
     mainProgram = "snscrape";
     homepage = "https://github.com/JustAnotherArchivist/snscrape";
     license = licenses.gpl3Plus;
diff --git a/pkgs/development/python-modules/snuggs/default.nix b/pkgs/development/python-modules/snuggs/default.nix
index 8824645973ede..9141661131704 100644
--- a/pkgs/development/python-modules/snuggs/default.nix
+++ b/pkgs/development/python-modules/snuggs/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, click
-, numpy
-, pyparsing
-, pytestCheckHook
-, hypothesis
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  click,
+  numpy,
+  pyparsing,
+  pytestCheckHook,
+  hypothesis,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,16 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [ click numpy pyparsing ];
+  propagatedBuildInputs = [
+    click
+    numpy
+    pyparsing
+  ];
 
-  nativeCheckInputs = [ pytestCheckHook hypothesis ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    hypothesis
+  ];
 
   meta = with lib; {
     description = "S-expressions for Numpy";
diff --git a/pkgs/development/python-modules/social-auth-app-django/default.nix b/pkgs/development/python-modules/social-auth-app-django/default.nix
index 1806752e60203..1441caa2cd5a4 100644
--- a/pkgs/development/python-modules/social-auth-app-django/default.nix
+++ b/pkgs/development/python-modules/social-auth-app-django/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, social-auth-core
-, django
-, python
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  social-auth-core,
+  django,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,17 +22,11 @@ buildPythonPackage rec {
     hash = "sha256-BvPQo0pXffGYu0tpy5yHT9lJVwOTewBiX5GLeezBrhE=";
   };
 
-  propagatedBuildInputs = [
-    social-auth-core
-  ];
+  propagatedBuildInputs = [ social-auth-core ];
 
-  pythonImportsCheck = [
-    "social_django"
-  ];
+  pythonImportsCheck = [ "social_django" ];
 
-  nativeCheckInputs = [
-    django
-  ];
+  nativeCheckInputs = [ django ];
 
   checkPhase = ''
     ${python.interpreter} -m django test --settings="tests.settings"
diff --git a/pkgs/development/python-modules/social-auth-core/default.nix b/pkgs/development/python-modules/social-auth-core/default.nix
index 2417de9daf191..7f9091b46f435 100644
--- a/pkgs/development/python-modules/social-auth-core/default.nix
+++ b/pkgs/development/python-modules/social-auth-core/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, defusedxml
-, fetchFromGitHub
-, httpretty
-, lxml
-, oauthlib
-, pyjwt
-, pytestCheckHook
-, python-jose
-, python3-openid
-, python3-saml
-, pythonOlder
-, requests
-, requests-oauthlib
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  defusedxml,
+  fetchFromGitHub,
+  httpretty,
+  lxml,
+  oauthlib,
+  pyjwt,
+  pytestCheckHook,
+  python-jose,
+  python3-openid,
+  python3-saml,
+  pythonOlder,
+  requests,
+  requests-oauthlib,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     hash = "sha256-tFaRvNoO5K7ytqMhL//Ntasc7jb4PYXB1yyjFvFqQH8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cryptography
@@ -46,16 +45,12 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    openidconnect = [
-      python-jose
-    ];
+    openidconnect = [ python-jose ];
     saml = [
       lxml
       python3-saml
     ];
-    azuread = [
-      cryptography
-    ];
+    azuread = [ cryptography ];
   };
 
   nativeCheckInputs = [
@@ -73,9 +68,7 @@ buildPythonPackage rec {
       --replace "{posargs:-v --cov=social_core}" "{posargs:-v}"
   '';
 
-  pythonImportsCheck = [
-    "social_core"
-  ];
+  pythonImportsCheck = [ "social_core" ];
 
   meta = with lib; {
     description = "Module for social authentication/registration mechanisms";
diff --git a/pkgs/development/python-modules/socialscan/default.nix b/pkgs/development/python-modules/socialscan/default.nix
index 430cc1f5a7253..c0b4541e7373b 100644
--- a/pkgs/development/python-modules/socialscan/default.nix
+++ b/pkgs/development/python-modules/socialscan/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, colorama
-, pythonOlder
-, tqdm
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  colorama,
+  pythonOlder,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Tests require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "socialscan"
-  ];
+  pythonImportsCheck = [ "socialscan" ];
 
   meta = with lib; {
     description = "Python library and CLI for accurately querying username and email usage on online platforms";
diff --git a/pkgs/development/python-modules/socid-extractor/default.nix b/pkgs/development/python-modules/socid-extractor/default.nix
index 6346d808127bd..1fd9b67c5a5cf 100644
--- a/pkgs/development/python-modules/socid-extractor/default.nix
+++ b/pkgs/development/python-modules/socid-extractor/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchFromGitHub
-, python-dateutil
-, pythonOlder
-, requests
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python-dateutil,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
   # Test require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "socid_extractor"
-  ];
+  pythonImportsCheck = [ "socid_extractor" ];
 
   meta = with lib; {
     description = "Python module to extract details from personal pages";
diff --git a/pkgs/development/python-modules/socketio-client/default.nix b/pkgs/development/python-modules/socketio-client/default.nix
index 3c45ee1d54622..4f71777668217 100644
--- a/pkgs/development/python-modules/socketio-client/default.nix
+++ b/pkgs/development/python-modules/socketio-client/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, requests
-, six
-, websocket-client
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  requests,
+  six,
+  websocket-client,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
@@ -27,12 +28,10 @@ buildPythonPackage rec {
   # Perform networking tests.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "socketIO_client"
-  ];
+  pythonImportsCheck = [ "socketIO_client" ];
 
   meta = with lib; {
-    description = "A socket.io client library for protocol 1.x";
+    description = "Socket.io client library for protocol 1.x";
     homepage = "https://github.com/invisibleroads/socketIO-client";
     license = licenses.mit;
     maintainers = with maintainers; [ raitobezarius ];
diff --git a/pkgs/development/python-modules/sockio/default.nix b/pkgs/development/python-modules/sockio/default.nix
index 8ce561b781f93..eedd12e0dc32d 100644
--- a/pkgs/development/python-modules/sockio/default.nix
+++ b/pkgs/development/python-modules/sockio/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "sockio"
-  ];
+  pythonImportsCheck = [ "sockio" ];
 
   disabledTests = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/sockjs-tornado/default.nix b/pkgs/development/python-modules/sockjs-tornado/default.nix
index 37d75b76edd9f..dd653621d6c58 100644
--- a/pkgs/development/python-modules/sockjs-tornado/default.nix
+++ b/pkgs/development/python-modules/sockjs-tornado/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, tornado }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  tornado,
+}:
 
 buildPythonPackage rec {
   pname = "sockjs-tornado";
diff --git a/pkgs/development/python-modules/sockjs/default.nix b/pkgs/development/python-modules/sockjs/default.nix
index 228ac2fd6bbf8..da423a4730526 100644
--- a/pkgs/development/python-modules/sockjs/default.nix
+++ b/pkgs/development/python-modules/sockjs/default.nix
@@ -1,13 +1,18 @@
-{ lib, buildPythonPackage, fetchPypi, aiohttp }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  aiohttp,
+}:
 
 buildPythonPackage rec {
   pname = "sockjs";
-  version = "0.11.0";
+  version = "0.13.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "A0fUBO2e8xllBnh+2AGPh+5OLQuupJ1CDN1TqWm+wik=";
+    sha256 = "sha256-V+lZoj8gqNVRSdHl2ws7hwcm8rStgWbUG9z0EbNs33Y=";
   };
 
   propagatedBuildInputs = [ aiohttp ];
diff --git a/pkgs/development/python-modules/socksio/default.nix b/pkgs/development/python-modules/socksio/default.nix
index fb767db631d87..02de4ab9cd6e0 100644
--- a/pkgs/development/python-modules/socksio/default.nix
+++ b/pkgs/development/python-modules/socksio/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, pythonAtLeast
-, flit-core
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchpatch,
+  fetchPypi,
+  pythonAtLeast,
+  flit-core,
+  pytestCheckHook,
 }:
 
 let
@@ -29,18 +30,14 @@ buildPythonPackage {
     })
   ];
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   # remove coverage configuration
   preCheck = ''
     rm pytest.ini
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Sans-I/O implementation of SOCKS4, SOCKS4A, and SOCKS5";
diff --git a/pkgs/development/python-modules/socksipy-branch/default.nix b/pkgs/development/python-modules/socksipy-branch/default.nix
index e9266bb27fe69..e09d1aeb025ad 100644
--- a/pkgs/development/python-modules/socksipy-branch/default.nix
+++ b/pkgs/development/python-modules/socksipy-branch/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -18,5 +19,4 @@ buildPythonPackage rec {
     description = "This Python module allows you to create TCP connections through a SOCKS proxy without any special effort";
     license = licenses.bsd3;
   };
-
 }
diff --git a/pkgs/development/python-modules/soco/default.nix b/pkgs/development/python-modules/soco/default.nix
index 347273e453e61..191f963c7594e 100644
--- a/pkgs/development/python-modules/soco/default.nix
+++ b/pkgs/development/python-modules/soco/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "soco";
-  version = "0.30.3";
+  version = "0.30.4";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "SoCo";
     repo = "SoCo";
     rev = "refs/tags/v${version}";
-    hash = "sha256-QAF3f1JMGFFsgdZzoyo+RwKKMaLG+hy+lvZwCzceU/g=";
+    hash = "sha256-t5Cxlm5HhN6WY6ty4i2MAtqjbC7DwZqSp1g5nybFAH4=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/softlayer/default.nix b/pkgs/development/python-modules/softlayer/default.nix
index 8ce880889d663..a3adf24ecb7d5 100644
--- a/pkgs/development/python-modules/softlayer/default.nix
+++ b/pkgs/development/python-modules/softlayer/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, mock
-, prettytable
-, prompt-toolkit
-, ptable
-, pygments
-, pytestCheckHook
-, pythonOlder
-, requests
-, rich
-, sphinx
-, testtools
-, tkinter
-, urllib3
-, zeep
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  mock,
+  prettytable,
+  prompt-toolkit,
+  ptable,
+  pygments,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  rich,
+  sphinx,
+  testtools,
+  tkinter,
+  urllib3,
+  zeep,
 }:
 
 buildPythonPackage rec {
   pname = "softlayer";
-  version = "6.1.11";
+  version = "6.2.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -29,8 +30,8 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = pname;
     repo = "softlayer-python";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-2iN3T58aICQlGwr10/e/mWE9pA4rbJCBTE1jTu3GeGk=";
+    rev = "refs/tags/v.${version}";
+    hash = "sha256-xlfVxQFsBKKpEsVmPlxn0sSyePNEmhly6wS/lTvP3DA=";
   };
 
   postPatch = ''
@@ -71,9 +72,7 @@ buildPythonPackage rec {
     "tests/transports/soap_tests.py.unstable"
   ];
 
-  pythonImportsCheck = [
-    "SoftLayer"
-  ];
+  pythonImportsCheck = [ "SoftLayer" ];
 
   meta = with lib; {
     description = "Python libraries that assist in calling the SoftLayer API";
diff --git a/pkgs/development/python-modules/solaredge/default.nix b/pkgs/development/python-modules/solaredge/default.nix
index 6dc0fa09be312..1d942f8ca6acf 100644
--- a/pkgs/development/python-modules/solaredge/default.nix
+++ b/pkgs/development/python-modules/solaredge/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python-dateutil
-, pythonOlder
-, pytz
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python-dateutil,
+  pythonOlder,
+  pytz,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/solax/default.nix b/pkgs/development/python-modules/solax/default.nix
index ffba0140becdb..7fa65384766a0 100644
--- a/pkgs/development/python-modules/solax/default.nix
+++ b/pkgs/development/python-modules/solax/default.nix
@@ -1,33 +1,32 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchPypi
-, pytest-asyncio
-, pytest-httpserver
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
-, voluptuous
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchPypi,
+  pytest-asyncio,
+  pytest-httpserver,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  voluptuous,
 }:
 
 buildPythonPackage rec {
   pname = "solax";
-  version = "3.0.5";
+  version = "3.1.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-PQ7qJCNfXGNF2RK6pHwf0U1DXgv2j2uQ64Nv/qh8f8s=";
+    hash = "sha256-OgQ320UBDChQXPFMeulDx8NKNvajr399tuoAmsIEhFg=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     async-timeout
     voluptuous
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "solax"
-  ];
+  pythonImportsCheck = [ "solax" ];
 
   disabledTests = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/solc-select/default.nix b/pkgs/development/python-modules/solc-select/default.nix
index f0724bd241ad3..3a9e0f7bb4a98 100644
--- a/pkgs/development/python-modules/solc-select/default.nix
+++ b/pkgs/development/python-modules/solc-select/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, packaging
-, pycryptodome
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  packaging,
+  pycryptodome,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/solo-python/default.nix b/pkgs/development/python-modules/solo-python/default.nix
index fef12eb963a3f..679351c90657c 100644
--- a/pkgs/development/python-modules/solo-python/default.nix
+++ b/pkgs/development/python-modules/solo-python/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, flit
-, click
-, cryptography
-, ecdsa
-, fido2
-, intelhex
-, pyserial
-, pyusb
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  flit,
+  click,
+  cryptography,
+  ecdsa,
+  fido2,
+  intelhex,
+  pyserial,
+  pyusb,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-XVPYr7JwxeZfZ68+vQ7a7MNiAfJ2bvMbM3R1ryVJ+OU=";
   };
 
-  nativeBuildInputs = [
-    flit
-  ];
+  nativeBuildInputs = [ flit ];
 
   propagatedBuildInputs = [
     click
@@ -58,7 +57,10 @@ buildPythonPackage rec {
     description = "Python tool and library for SoloKeys Solo 1";
     homepage = "https://github.com/solokeys/solo1-cli";
     maintainers = with maintainers; [ wucke13 ];
-    license = with licenses; [ asl20 mit ];
+    license = with licenses; [
+      asl20
+      mit
+    ];
     # not compatible with fido2 >= 1.0.0
     # https://github.com/solokeys/solo1-cli/issues/157
     broken = versionAtLeast fido2.version "1.0.0";
diff --git a/pkgs/development/python-modules/somajo/default.nix b/pkgs/development/python-modules/somajo/default.nix
index 2401bb9264a85..c8de14dd7fdd8 100644
--- a/pkgs/development/python-modules/somajo/default.nix
+++ b/pkgs/development/python-modules/somajo/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, buildPythonPackage
-, pythonOlder
-, setuptools
-, regex
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  setuptools,
+  regex,
 }:
 
 buildPythonPackage rec {
@@ -21,20 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-5rlgDnPYTtuVMincG5CgVwNh/IGmZk6ItvzdB/wHmgg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    regex
-  ];
+  propagatedBuildInputs = [ regex ];
 
   # loops forever
   doCheck = !stdenv.isDarwin;
 
-  pythonImportsCheck = [
-    "somajo"
-  ];
+  pythonImportsCheck = [ "somajo" ];
 
   meta = with lib; {
     description = "Tokenizer and sentence splitter for German and English web texts";
diff --git a/pkgs/development/python-modules/somfy-mylink-synergy/default.nix b/pkgs/development/python-modules/somfy-mylink-synergy/default.nix
index fce4af2086804..1bb28e17cd1fe 100644
--- a/pkgs/development/python-modules/somfy-mylink-synergy/default.nix
+++ b/pkgs/development/python-modules/somfy-mylink-synergy/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/sonarr/default.nix b/pkgs/development/python-modules/sonarr/default.nix
index 0d2fe50b39762..479ae69e96b94 100644
--- a/pkgs/development/python-modules/sonarr/default.nix
+++ b/pkgs/development/python-modules/sonarr/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, aiohttp
-, yarl
-, aresponses
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  aiohttp,
+  yarl,
+  aresponses,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/sonos-websocket/default.nix b/pkgs/development/python-modules/sonos-websocket/default.nix
index ce182adb8fac3..1239043c26a2b 100644
--- a/pkgs/development/python-modules/sonos-websocket/default.nix
+++ b/pkgs/development/python-modules/sonos-websocket/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-1sgYLwIW7VWnHJGsfIQ95AGZ5j/DPMKQr5n7F+/MsuY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sonos_websocket"
-  ];
+  pythonImportsCheck = [ "sonos_websocket" ];
 
   meta = with lib; {
     description = "Library to communicate with Sonos devices over websockets";
diff --git a/pkgs/development/python-modules/sopel/default.nix b/pkgs/development/python-modules/sopel/default.nix
index 93b942811c389..54943d0cb6258 100644
--- a/pkgs/development/python-modules/sopel/default.nix
+++ b/pkgs/development/python-modules/sopel/default.nix
@@ -1,30 +1,31 @@
-{ lib
-, buildPythonPackage
-, dnspython
-, fetchPypi
-, geoip2
-, ipython
-, isPyPy
-, praw
-, pyenchant
-, pygeoip
-, pytestCheckHook
-, pythonOlder
-, pytz
-, sqlalchemy
-, xmltodict
+{
+  lib,
+  buildPythonPackage,
+  dnspython,
+  fetchPypi,
+  geoip2,
+  ipython,
+  isPyPy,
+  praw,
+  pyenchant,
+  pygeoip,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  sqlalchemy,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
   pname = "sopel";
-  version = "7.1.9";
+  version = "8.0.0";
   format = "setuptools";
 
   disabled = isPyPy || pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-IJ+ovLQv6/UU1oepmUQjzaWBG3Rdd3xvui7FjK85Urs=";
+    hash = "sha256-juLJp0Et5qMZwBZzw0e4tKg1cBYqAsH8KUzqNoIP70U=";
   };
 
   patches = [
@@ -46,9 +47,7 @@ buildPythonPackage rec {
     xmltodict
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace requirements.txt \
@@ -67,9 +66,7 @@ buildPythonPackage rec {
     popd
   '';
 
-  pythonImportsCheck = [
-    "sopel"
-  ];
+  pythonImportsCheck = [ "sopel" ];
 
   meta = with lib; {
     description = "Simple and extensible IRC bot";
diff --git a/pkgs/development/python-modules/sorl-thumbnail/default.nix b/pkgs/development/python-modules/sorl-thumbnail/default.nix
index 2337d6b940c26..de3fd466ec6e4 100644
--- a/pkgs/development/python-modules/sorl-thumbnail/default.nix
+++ b/pkgs/development/python-modules/sorl-thumbnail/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, setuptools-scm
-, django
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  django,
 }:
 
 buildPythonPackage rec {
@@ -24,18 +25,14 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  buildInputs = [
-    django
-  ];
+  buildInputs = [ django ];
 
   env.DJANGO_SETTINGS_MODULE = "sorl.thumbnail.conf.defaults";
 
   # Disabled due to an improper configuration error when tested against django. This looks like something broken in the test cases for sorl.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sorl.thumbnail"
-  ];
+  pythonImportsCheck = [ "sorl.thumbnail" ];
 
   meta = with lib; {
     homepage = "https://sorl-thumbnail.readthedocs.org/en/latest/";
diff --git a/pkgs/development/python-modules/sortedcollections/default.nix b/pkgs/development/python-modules/sortedcollections/default.nix
index 97cf9d8afa159..3ee4eff750235 100644
--- a/pkgs/development/python-modules/sortedcollections/default.nix
+++ b/pkgs/development/python-modules/sortedcollections/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-cov
-, pytestCheckHook
-, sortedcontainers
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-cov,
+  pytestCheckHook,
+  sortedcontainers,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/sortedcontainers/default.nix b/pkgs/development/python-modules/sortedcontainers/default.nix
index 5cf34d566dcef..a764cf6d5ddec 100644
--- a/pkgs/development/python-modules/sortedcontainers/default.nix
+++ b/pkgs/development/python-modules/sortedcontainers/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 let
@@ -19,14 +20,14 @@ let
 
     doCheck = false;
 
-    nativeCheckInputs = [
-      pytestCheckHook
-    ];
+    nativeCheckInputs = [ pytestCheckHook ];
 
     pythonImportsCheck = [ "sortedcontainers" ];
 
     passthru.tests = {
-      pytest = sortedcontainers.overridePythonAttrs (_: { doCheck = true; });
+      pytest = sortedcontainers.overridePythonAttrs (_: {
+        doCheck = true;
+      });
     };
 
     meta = with lib; {
diff --git a/pkgs/development/python-modules/soundcloud-v2/default.nix b/pkgs/development/python-modules/soundcloud-v2/default.nix
index d1df08cf90396..7b46166ec2f40 100644
--- a/pkgs/development/python-modules/soundcloud-v2/default.nix
+++ b/pkgs/development/python-modules/soundcloud-v2/default.nix
@@ -1,28 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, dacite
-, python-dateutil
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  dacite,
+  python-dateutil,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "soundcloud-v2";
-  version = "1.3.7";
+  version = "1.3.8";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-DiaCnIEXKSxyE4+MCq0KwdKWUGfWO3LAVwsMNEkOmqc=";
+    sha256 = "sha256-wcRjzLnPvpz4zWhV7LxAJ6+BDvkI1MexdgL4nBjJwbg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     dacite
diff --git a/pkgs/development/python-modules/sounddevice/default.nix b/pkgs/development/python-modules/sounddevice/default.nix
index 34e413c21ab47..a4140a8a7f8af 100644
--- a/pkgs/development/python-modules/sounddevice/default.nix
+++ b/pkgs/development/python-modules/sounddevice/default.nix
@@ -1,26 +1,31 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, cffi
-, numpy
-, portaudio
-, substituteAll
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  cffi,
+  numpy,
+  portaudio,
+  substituteAll,
 }:
 
 buildPythonPackage rec {
   pname = "sounddevice";
-  version = "0.4.6";
+  version = "0.4.7";
   format = "setuptools";
   disabled = isPy27;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Mja3jxXwQVvfAGpiDO8HPQwFIoUdZvSpYe1tjrFIL+k=";
+    hash = "sha256-abOGgY1QotUYYH1LlzRC6NUkdgx81si4vgPYyY/EvOc=";
   };
 
-  propagatedBuildInputs = [ cffi numpy portaudio ];
+  propagatedBuildInputs = [
+    cffi
+    numpy
+    portaudio
+  ];
 
   # No tests included nor upstream available.
   doCheck = false;
diff --git a/pkgs/development/python-modules/soundfile/default.nix b/pkgs/development/python-modules/soundfile/default.nix
index 3a0193028c0d9..819975014f147 100644
--- a/pkgs/development/python-modules/soundfile/default.nix
+++ b/pkgs/development/python-modules/soundfile/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, numpy
-, libsndfile
-, cffi
-, isPyPy
-, stdenv
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  numpy,
+  libsndfile,
+  cffi,
+  isPyPy,
+  stdenv,
 }:
 
 buildPythonPackage rec {
@@ -21,20 +22,22 @@ buildPythonPackage rec {
     hash = "sha256-6OEBeyzx3adnrvGdL9nuXr4H4FDUMPd6Cnxmugi4za4=";
   };
 
-  patches = [
-    ./0001-Fix-build-on-linux-arm64.patch
-  ];
+  patches = [ ./0001-Fix-build-on-linux-arm64.patch ];
 
   postPatch = ''
     substituteInPlace soundfile.py --replace "_find_library('sndfile')" "'${libsndfile.out}/lib/libsndfile${stdenv.hostPlatform.extensions.sharedLibrary}'"
   '';
 
   nativeCheckInputs = [ pytestCheckHook ];
-  propagatedBuildInputs = [ numpy libsndfile cffi ];
+  propagatedBuildInputs = [
+    numpy
+    libsndfile
+    cffi
+  ];
   propagatedNativeBuildInputs = [ cffi ];
 
   meta = {
-    description = "An audio library based on libsndfile, CFFI and NumPy";
+    description = "Audio library based on libsndfile, CFFI and NumPy";
     license = lib.licenses.bsd3;
     homepage = "https://github.com/bastibe/python-soundfile";
   };
diff --git a/pkgs/development/python-modules/soupsieve/default.nix b/pkgs/development/python-modules/soupsieve/default.nix
index 1ae1cb7b8d2be..96dfbe9d8440b 100644
--- a/pkgs/development/python-modules/soupsieve/default.nix
+++ b/pkgs/development/python-modules/soupsieve/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatchling
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatchling,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     hash = "sha256-VmPVp7O/ru4LxDcuf8SPnP9JQLPuxUpkUcxSmfEJdpA=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   # Circular dependency on beautifulsoup4
   doCheck = false;
@@ -26,7 +25,7 @@ buildPythonPackage rec {
   # pythonImportsCheck = [ "soupsieve" ];
 
   meta = with lib; {
-    description = "A CSS4 selector implementation for Beautiful Soup";
+    description = "CSS4 selector implementation for Beautiful Soup";
     license = licenses.mit;
     homepage = "https://github.com/facelessuser/soupsieve";
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/sourmash/default.nix b/pkgs/development/python-modules/sourmash/default.nix
index 2a9dc470f1451..0798bd32324ed 100644
--- a/pkgs/development/python-modules/sourmash/default.nix
+++ b/pkgs/development/python-modules/sourmash/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, rustPlatform
-, bitstring
-, cachetools
-, cffi
-, deprecation
-, iconv
-, matplotlib
-, numpy
-, scipy
-, screed
-, hypothesis
-, pytest-xdist
-, pyyaml
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  rustPlatform,
+  bitstring,
+  cachetools,
+  cffi,
+  deprecation,
+  iconv,
+  matplotlib,
+  numpy,
+  scipy,
+  screed,
+  hypothesis,
+  pytest-xdist,
+  pyyaml,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/soxr/default.nix b/pkgs/development/python-modules/soxr/default.nix
index 7cd1cc0af6bc6..841ba83259f78 100644
--- a/pkgs/development/python-modules/soxr/default.nix
+++ b/pkgs/development/python-modules/soxr/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# build-system
-, cython
-, numpy
-, oldest-supported-numpy
-, setuptools
-, setuptools-scm
-, gnutar
-
-# native
-, libsoxr
-
-# tests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  cython,
+  numpy,
+  oldest-supported-numpy,
+  setuptools,
+  setuptools-scm,
+  gnutar,
+
+  # native
+  libsoxr,
+
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -44,17 +45,11 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  buildInputs = [
-    libsoxr
-  ];
+  buildInputs = [ libsoxr ];
 
-  pythonImportsCheck = [
-    "soxr"
-  ];
+  pythonImportsCheck = [ "soxr" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "High quality, one-dimensional sample-rate conversion library";
diff --git a/pkgs/development/python-modules/spacy-alignments/default.nix b/pkgs/development/python-modules/spacy-alignments/default.nix
index 103c100492843..fd548f5eb311e 100644
--- a/pkgs/development/python-modules/spacy-alignments/default.nix
+++ b/pkgs/development/python-modules/spacy-alignments/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, cargo
-, fetchPypi
-, buildPythonPackage
-, isPy3k
-, rustPlatform
-, rustc
-, setuptools-rust
-, libiconv
+{
+  lib,
+  stdenv,
+  cargo,
+  fetchPypi,
+  buildPythonPackage,
+  isPy3k,
+  rustPlatform,
+  rustc,
+  setuptools-rust,
+  libiconv,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/spacy-loggers/default.nix b/pkgs/development/python-modules/spacy-loggers/default.nix
index 72361aa04bf85..85201465bb4a7 100644
--- a/pkgs/development/python-modules/spacy-loggers/default.nix
+++ b/pkgs/development/python-modules/spacy-loggers/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, callPackage
-, fetchPypi
-, buildPythonPackage
-, wandb
-, wasabi
+{
+  lib,
+  callPackage,
+  fetchPypi,
+  buildPythonPackage,
+  wandb,
+  wasabi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/spacy-pkuseg/default.nix b/pkgs/development/python-modules/spacy-pkuseg/default.nix
index 02f47d7911541..04b8ca7e71dc9 100644
--- a/pkgs/development/python-modules/spacy-pkuseg/default.nix
+++ b/pkgs/development/python-modules/spacy-pkuseg/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-, cython
-, numpy
-, srsly
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  cython,
+  numpy,
+  srsly,
 }:
 
 buildPythonPackage rec {
@@ -26,7 +27,10 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ cython ];
 
-  propagatedBuildInputs = [ numpy srsly ];
+  propagatedBuildInputs = [
+    numpy
+    srsly
+  ];
 
   pythonImportsCheck = [ "spacy_pkuseg" ];
 
diff --git a/pkgs/development/python-modules/spacy-transformers/annotation-test/default.nix b/pkgs/development/python-modules/spacy-transformers/annotation-test/default.nix
index f2b4bfb3a068f..d6d1094447d24 100644
--- a/pkgs/development/python-modules/spacy-transformers/annotation-test/default.nix
+++ b/pkgs/development/python-modules/spacy-transformers/annotation-test/default.nix
@@ -1,15 +1,28 @@
-{ stdenv, pytest, spacy-models }:
+{
+  lib,
+  stdenv,
+  pytest,
+  spacy-models,
+}:
 
 stdenv.mkDerivation {
   name = "spacy-transformers-annotation-test";
 
-  src = ./.;
+  src = lib.fileset.toSource {
+    root = ./.;
+    fileset = lib.fileset.unions [
+      ./annotate.py
+    ];
+  };
 
   dontConfigure = true;
   dontBuild = true;
   doCheck = true;
 
-  nativeCheckInputs = [ pytest spacy-models.en_core_web_trf ];
+  nativeCheckInputs = [
+    pytest
+    spacy-models.en_core_web_trf
+  ];
 
   checkPhase = ''
     pytest annotate.py
diff --git a/pkgs/development/python-modules/spacy-transformers/default.nix b/pkgs/development/python-modules/spacy-transformers/default.nix
index bdff12f84e627..ddc71b75eac5b 100644
--- a/pkgs/development/python-modules/spacy-transformers/default.nix
+++ b/pkgs/development/python-modules/spacy-transformers/default.nix
@@ -1,18 +1,18 @@
-{ lib
-, callPackage
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, cython
-, pythonRelaxDepsHook
-, spacy
-, numpy
-, transformers
-, torch
-, srsly
-, spacy-alignments
-, pytestCheckHook
+{
+  lib,
+  callPackage,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  cython,
+  spacy,
+  numpy,
+  transformers,
+  torch,
+  srsly,
+  spacy-alignments,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +34,6 @@ buildPythonPackage rec {
     cython
   ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   dependencies = [
     spacy
@@ -47,20 +44,14 @@ buildPythonPackage rec {
     spacy-alignments
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonRelaxDeps = [
-    "transformers"
-  ];
+  pythonRelaxDeps = [ "transformers" ];
 
   # Test fails due to missing arguments for trfs2arrays().
   doCheck = false;
 
-  pythonImportsCheck = [
-    "spacy_transformers"
-  ];
+  pythonImportsCheck = [ "spacy_transformers" ];
 
   passthru.tests.annotation = callPackage ./annotation-test { };
 
diff --git a/pkgs/development/python-modules/spacy/annotation-test/default.nix b/pkgs/development/python-modules/spacy/annotation-test/default.nix
index 91ab0f33acaac..cb8a97aa568fc 100644
--- a/pkgs/development/python-modules/spacy/annotation-test/default.nix
+++ b/pkgs/development/python-modules/spacy/annotation-test/default.nix
@@ -1,15 +1,28 @@
-{ stdenv, pytest, spacy-models }:
+{
+  lib,
+  stdenv,
+  pytest,
+  spacy-models,
+}:
 
 stdenv.mkDerivation {
   name = "spacy-annotation-test";
 
-  src = ./.;
+  src = lib.fileset.toSource {
+    root  = ./.;
+    fileset = lib.fileset.unions [
+      ./annotate.py
+    ];
+  };
 
   dontConfigure = true;
   dontBuild = true;
   doCheck = true;
 
-  nativeCheckInputs = [ pytest spacy-models.en_core_web_sm ];
+  nativeCheckInputs = [
+    pytest
+    spacy-models.en_core_web_sm
+  ];
 
   checkPhase = ''
     pytest annotate.py
diff --git a/pkgs/development/python-modules/spacy/default.nix b/pkgs/development/python-modules/spacy/default.nix
index 32b78f40cdc11..0f47280570c6c 100644
--- a/pkgs/development/python-modules/spacy/default.nix
+++ b/pkgs/development/python-modules/spacy/default.nix
@@ -1,54 +1,54 @@
-{ lib
-, stdenv
-, blis
-, buildPythonPackage
-, callPackage
-, catalogue
-, cymem
-, cython_0
-, fetchPypi
-, hypothesis
-, jinja2
-, jsonschema
-, langcodes
-, mock
-, murmurhash
-, numpy
-, packaging
-, pathy
-, preshed
-, pydantic
-, pytestCheckHook
-, python
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
-, setuptools
-, spacy-legacy
-, spacy-loggers
-, srsly
-, thinc
-, tqdm
-, typer
-, typing-extensions
-, wasabi
-, weasel
-, writeScript
-, nix
-, git
-, nix-update
+{
+  lib,
+  stdenv,
+  blis,
+  buildPythonPackage,
+  callPackage,
+  catalogue,
+  cymem,
+  cython_0,
+  fetchPypi,
+  hypothesis,
+  jinja2,
+  jsonschema,
+  langcodes,
+  mock,
+  murmurhash,
+  numpy,
+  packaging,
+  pathy,
+  preshed,
+  pydantic,
+  pytestCheckHook,
+  python,
+  pythonOlder,
+  requests,
+  setuptools,
+  spacy-legacy,
+  spacy-loggers,
+  srsly,
+  thinc,
+  tqdm,
+  typer,
+  typing-extensions,
+  wasabi,
+  weasel,
+  writeScript,
+  nix,
+  git,
+  nix-update,
 }:
 
 buildPythonPackage rec {
   pname = "spacy";
-  version = "3.7.4";
+  version = "3.7.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Ul8s7S5AdhViyMrOk+9qHm6MSD8nvVZLwbFfYI776Fs=";
+    hash = "sha256-pkjGy/Ksx6Vaae6ef6TyK99pqoKKWHobxc//CM88LdM=";
   };
 
   pythonRelaxDeps = [
@@ -57,7 +57,6 @@ buildPythonPackage rec {
   ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     cython_0
   ];
 
@@ -84,9 +83,7 @@ buildPythonPackage rec {
     typer
     wasabi
     weasel
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -101,9 +98,7 @@ buildPythonPackage rec {
     cd $out
   '';
 
-  pytestFlagsArray = [
-    "-m 'slow'"
-  ];
+  pytestFlagsArray = [ "-m 'slow'" ];
 
   disabledTests = [
     # touches network
@@ -112,15 +107,19 @@ buildPythonPackage rec {
     "test_project_assets"
   ];
 
-  pythonImportsCheck = [
-    "spacy"
-  ];
+  pythonImportsCheck = [ "spacy" ];
 
   passthru = {
     updateScript = writeScript "update-spacy" ''
       #!${stdenv.shell}
       set -eou pipefail
-      PATH=${lib.makeBinPath [ nix git nix-update ]}
+      PATH=${
+        lib.makeBinPath [
+          nix
+          git
+          nix-update
+        ]
+      }
 
       nix-update python3Packages.spacy
 
diff --git a/pkgs/development/python-modules/spacy/legacy.nix b/pkgs/development/python-modules/spacy/legacy.nix
index f94855e66a3f4..3bd9c33b7e828 100644
--- a/pkgs/development/python-modules/spacy/legacy.nix
+++ b/pkgs/development/python-modules/spacy/legacy.nix
@@ -1,6 +1,7 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
   # nativeCheckInputs = [ pytestCheckHook spacy ];
   doCheck = false;
 
-  pythonImportsCheck = [
-    "spacy_legacy"
-  ];
+  pythonImportsCheck = [ "spacy_legacy" ];
 
   meta = with lib; {
     description = "Legacy registered functions for spaCy backwards compatibility";
diff --git a/pkgs/development/python-modules/spacy/lookups-data.nix b/pkgs/development/python-modules/spacy/lookups-data.nix
index 70469761eddb7..3e1e024350d83 100644
--- a/pkgs/development/python-modules/spacy/lookups-data.nix
+++ b/pkgs/development/python-modules/spacy/lookups-data.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, spacy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  spacy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/spacy/models.nix b/pkgs/development/python-modules/spacy/models.nix
index 3c8a3cc0ff2f3..bb795682a1873 100644
--- a/pkgs/development/python-modules/spacy/models.nix
+++ b/pkgs/development/python-modules/spacy/models.nix
@@ -1,22 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchurl
-, protobuf
-, pymorphy3
-, pymorphy3-dicts-uk
-, sentencepiece
-, setuptools
-, spacy
-, spacy-pkuseg
-, spacy-transformers
-, writeScript
-, stdenv
-, jq
-, nix
-, moreutils
+{
+  lib,
+  buildPythonPackage,
+  fetchurl,
+  protobuf,
+  pymorphy3,
+  pymorphy3-dicts-uk,
+  sentencepiece,
+  setuptools,
+  spacy,
+  spacy-pkuseg,
+  spacy-transformers,
+  writeScript,
+  stdenv,
+  jq,
+  nix,
+  moreutils,
 }:
 let
-  buildModelPackage = { pname, version, sha256, license }:
+  buildModelPackage =
+    {
+      pname,
+      version,
+      sha256,
+      license,
+    }:
 
     let
       lang = builtins.substring 0 2 pname;
@@ -31,10 +38,14 @@ let
         inherit sha256;
       };
 
-      propagatedBuildInputs = [ spacy ]
+      propagatedBuildInputs =
+        [ spacy ]
         ++ lib.optionals (lib.hasSuffix "_trf" pname) [ spacy-transformers ]
         ++ lib.optionals (lang == "ru") [ pymorphy3 ]
-        ++ lib.optionals (lang == "uk") [ pymorphy3 pymorphy3-dicts-uk ]
+        ++ lib.optionals (lang == "uk") [
+          pymorphy3
+          pymorphy3-dicts-uk
+        ]
         ++ lib.optionals (lang == "zh") [ spacy-pkuseg ]
         ++ lib.optionals (pname == "fr_dep_news_trf") [ sentencepiece ];
 
@@ -43,18 +54,20 @@ let
           --replace "protobuf<3.21.0" "protobuf"
       '';
 
-      nativeBuildInputs = [
-        setuptools
-      ] ++ lib.optionals requires-protobuf [
-        protobuf
-      ];
+      nativeBuildInputs = [ setuptools ] ++ lib.optionals requires-protobuf [ protobuf ];
 
       pythonImportsCheck = [ pname ];
 
       passthru.updateScript = writeScript "update-spacy-models" ''
         #!${stdenv.shell}
         set -eou pipefail
-        PATH=${lib.makeBinPath [ jq nix moreutils ]}
+        PATH=${
+          lib.makeBinPath [
+            jq
+            nix
+            moreutils
+          ]
+        }
 
         IFS=. read -r major minor patch <<<"${spacy.version}"
         spacyVersion="$(echo "$major.$minor.0")"
@@ -82,7 +95,7 @@ let
       };
     };
 
-  makeModelSet = models: with 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 (lib.importJSON ./models.json)
diff --git a/pkgs/development/python-modules/spake2/default.nix b/pkgs/development/python-modules/spake2/default.nix
index 2ccd62fcdf15c..956c15ab0b0ea 100644
--- a/pkgs/development/python-modules/spake2/default.nix
+++ b/pkgs/development/python-modules/spake2/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch2
-, setuptools
-, hkdf
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch2,
+  setuptools,
+  hkdf,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,19 +27,13 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    hkdf
-  ];
+  propagatedBuildInputs = [ hkdf ];
 
   pythonImportsCheck = [ "spake2" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     changelog = "https://github.com/warner/python-spake2/blob/v${version}/NEWS";
diff --git a/pkgs/development/python-modules/spark-parser/default.nix b/pkgs/development/python-modules/spark-parser/default.nix
index 690d9a295de44..3543cc0abadbc 100644
--- a/pkgs/development/python-modules/spark-parser/default.nix
+++ b/pkgs/development/python-modules/spark-parser/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-, click
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+  click,
 }:
 
 buildPythonPackage rec {
@@ -20,11 +21,10 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ click ];
 
   meta = with lib; {
-    description = "An Early-Algorithm Context-free grammar Parser";
+    description = "Early-Algorithm Context-free grammar Parser";
     mainProgram = "spark-parser-coverage";
     homepage = "https://github.com/rocky/python-spark";
     license = licenses.mit;
-    maintainers = with maintainers; [raskin];
+    maintainers = with maintainers; [ raskin ];
   };
-
 }
diff --git a/pkgs/development/python-modules/sparklines/default.nix b/pkgs/development/python-modules/sparklines/default.nix
index d5d4e33127932..9b7c002e40fc7 100644
--- a/pkgs/development/python-modules/sparklines/default.nix
+++ b/pkgs/development/python-modules/sparklines/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, future
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  future,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "sparklines";
-  version = "0.4.2";
+  version = "0.5.0";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "deeplook";
     repo = pname;
-    rev = "v${version}";
-    sha256 = "1hfxp5c4wbyddy7fgmnda819w3dia3i6gqb2323dr2z016p84r7l";
+    rev = "refs/tags/v${version}";
+    sha256 = "sha256-oit1bDqP96wwfTRCV8V0N9P/+pkdW2WYOWT6u3lb4Xs=";
   };
 
   propagatedBuildInputs = [ future ];
diff --git a/pkgs/development/python-modules/sparqlwrapper/default.nix b/pkgs/development/python-modules/sparqlwrapper/default.nix
index 1abea197499d5..20c32f52379fb 100644
--- a/pkgs/development/python-modules/sparqlwrapper/default.nix
+++ b/pkgs/development/python-modules/sparqlwrapper/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, keepalive
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  keepalive,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/sparse/default.nix b/pkgs/development/python-modules/sparse/default.nix
index acb9bfa1d8fa2..cfd6569472052 100644
--- a/pkgs/development/python-modules/sparse/default.nix
+++ b/pkgs/development/python-modules/sparse/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, dask
-, fetchPypi
-, numba
-, numpy
-, pytest7CheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  dask,
+  fetchPypi,
+  numba,
+  numpy,
+  pytest7CheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  scipy,
 }:
 
 buildPythonPackage rec {
   pname = "sparse";
-  version = "0.15.1";
+  version = "0.15.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-lzrcuIqNuOPYBHlTMx4m0/ZKVlf5tGprhZxHZjw+75k=";
+    hash = "sha256-1LHFfST/D2Ty/VtalbSbf7hO0geibX1Yzidk3MXHK4Q=";
   };
 
   postPatch = ''
@@ -44,9 +45,7 @@ buildPythonPackage rec {
     pytest7CheckHook
   ];
 
-  pythonImportsCheck = [
-    "sparse"
-  ];
+  pythonImportsCheck = [ "sparse" ];
 
   pytestFlagsArray = [
     "-W"
diff --git a/pkgs/development/python-modules/spatial-image/default.nix b/pkgs/development/python-modules/spatial-image/default.nix
index e578ac7e54209..6209ebc4de5cc 100644
--- a/pkgs/development/python-modules/spatial-image/default.nix
+++ b/pkgs/development/python-modules/spatial-image/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, flit-core
-, pytestCheckHook
-, numpy
-, xarray
-, xarray-dataclasses
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  flit-core,
+  pytestCheckHook,
+  numpy,
+  xarray,
+  xarray-dataclasses,
 }:
 
 buildPythonPackage rec {
   pname = "spatial-image";
-  version = "1.0.0";
+  version = "1.1.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,12 +21,10 @@ buildPythonPackage rec {
     owner = "spatial-image";
     repo = "spatial-image";
     rev = "refs/tags/v${version}";
-    hash = "sha256-nCsxPhIgGmZZntYbhQ3KnzptcKdN288eNixbQDgECSQ=";
+    hash = "sha256-yIAqHhq2naTA8PdLOdrNSrhEOhRwlFD6x9dH4xDVt9Y=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     numpy
@@ -38,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "spatial_image" ];
 
   meta = with lib; {
-    description = "A multi-dimensional spatial image data structure for scientific Python";
+    description = "Multi-dimensional spatial image data structure for scientific Python";
     homepage = "https://github.com/spatial-image/spatial-image";
     changelog = "https://github.com/spatial-image/spatial-image/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/spdx-lookup/default.nix b/pkgs/development/python-modules/spdx-lookup/default.nix
index 6bcb2c9427966..5da39999ace3d 100644
--- a/pkgs/development/python-modules/spdx-lookup/default.nix
+++ b/pkgs/development/python-modules/spdx-lookup/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, nix-update-script
-, spdx
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  nix-update-script,
+  spdx,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,9 @@ buildPythonPackage rec {
     hash = "sha256-jtzhqRAj1BWdU8AuR7Gr343mL5alLXhi+SyCkCI5AAU=";
   };
 
-  propagatedBuildInputs = [
-    spdx
-  ];
+  propagatedBuildInputs = [ spdx ];
 
-  pythonImportsCheck = [
-    "spdx_lookup"
-  ];
+  pythonImportsCheck = [ "spdx_lookup" ];
 
   passthru.updateScript = nix-update-script { };
 
@@ -34,4 +31,3 @@ buildPythonPackage rec {
     maintainers = with lib.maintainers; [ jnsgruk ];
   };
 }
-
diff --git a/pkgs/development/python-modules/spdx-tools/default.nix b/pkgs/development/python-modules/spdx-tools/default.nix
index 415534bff531f..336d8cb5549c1 100644
--- a/pkgs/development/python-modules/spdx-tools/default.nix
+++ b/pkgs/development/python-modules/spdx-tools/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, beartype
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, license-expression
-, ply
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, rdflib
-, semantic-version
-, setuptools
-, setuptools-scm
-, uritools
-, xmltodict
+{
+  lib,
+  beartype,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  license-expression,
+  ply,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  rdflib,
+  semantic-version,
+  setuptools,
+  setuptools-scm,
+  uritools,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
@@ -47,13 +48,9 @@ buildPythonPackage rec {
     xmltodict
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "spdx_tools.spdx"
-  ];
+  pythonImportsCheck = [ "spdx_tools.spdx" ];
 
   disabledTestPaths = [
     # Test depends on the currently not packaged pyshacl module
diff --git a/pkgs/development/python-modules/spdx/default.nix b/pkgs/development/python-modules/spdx/default.nix
index f09fcfceec8d3..0f8b434c2b74a 100644
--- a/pkgs/development/python-modules/spdx/default.nix
+++ b/pkgs/development/python-modules/spdx/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, nix-update-script
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  nix-update-script,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     hash = "sha256-lfTgAX4Wl01xrvLA12ZUqjah7ZiLafMAU+yNNdVkRk0=";
   };
 
-  pythonImportsCheck = [
-    "spdx"
-  ];
+  pythonImportsCheck = [ "spdx" ];
 
   passthru.updateScript = nix-update-script { };
 
@@ -29,4 +28,3 @@ buildPythonPackage rec {
     maintainers = with lib.maintainers; [ jnsgruk ];
   };
 }
-
diff --git a/pkgs/development/python-modules/speaklater/default.nix b/pkgs/development/python-modules/speaklater/default.nix
index 1ae66d9f4ffec..1529e200f731b 100644
--- a/pkgs/development/python-modules/speaklater/default.nix
+++ b/pkgs/development/python-modules/speaklater/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -19,5 +20,4 @@ buildPythonPackage rec {
     license = licenses.bsd0;
     maintainers = with maintainers; [ matejc ];
   };
-
 }
diff --git a/pkgs/development/python-modules/speaklater3/default.nix b/pkgs/development/python-modules/speaklater3/default.nix
index 5898dfe5cd1aa..780ef60bb996f 100644
--- a/pkgs/development/python-modules/speaklater3/default.nix
+++ b/pkgs/development/python-modules/speaklater3/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/spectral-cube/default.nix b/pkgs/development/python-modules/spectral-cube/default.nix
index 007528e228659..444761c461590 100644
--- a/pkgs/development/python-modules/spectral-cube/default.nix
+++ b/pkgs/development/python-modules/spectral-cube/default.nix
@@ -1,23 +1,31 @@
-{ lib
-, stdenv
-, aplpy
-, astropy
-, buildPythonPackage
-, casa-formats-io
-, dask
-, fetchPypi
-, joblib
-, pytest-astropy
-, pytestCheckHook
-, pythonOlder
-, radio-beam
-, setuptools-scm
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+
+  # build-system
+  setuptools-scm,
+
+  # dependencies
+  astropy,
+  casa-formats-io,
+  dask,
+  joblib,
+  looseversion,
+  radio-beam,
+
+  # checks
+  aplpy,
+  pytest-astropy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "spectral-cube";
   version = "0.6.5";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -26,16 +34,17 @@ buildPythonPackage rec {
     hash = "sha256-gJzrr3+/FsQN/HHDERxf/NECArwOaTqFwmI/Q2Z9HTM=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  patches = [ ./distutils-looseversion.patch ];
+
+  build-system = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     astropy
     casa-formats-io
-    radio-beam
-    joblib
     dask
+    joblib
+    looseversion
+    radio-beam
   ];
 
   nativeCheckInputs = [
@@ -51,19 +60,15 @@ buildPythonPackage rec {
 
   # On x86_darwin, this test fails with "Fatal Python error: Aborted"
   # when sandbox = true.
-  disabledTestPaths = lib.optionals stdenv.isDarwin [
-    "spectral_cube/tests/test_visualization.py"
-  ];
+  disabledTestPaths = lib.optionals stdenv.isDarwin [ "spectral_cube/tests/test_visualization.py" ];
 
-  pythonImportsCheck = [
-    "spectral_cube"
-  ];
+  pythonImportsCheck = [ "spectral_cube" ];
 
-  meta = with lib; {
+  meta = {
     description = "Library for reading and analyzing astrophysical spectral data cubes";
     homepage = "https://spectral-cube.readthedocs.io";
     changelog = "https://github.com/radio-astro-tools/spectral-cube/releases/tag/v${version}";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ smaret ];
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ smaret ];
   };
 }
diff --git a/pkgs/development/python-modules/spectral-cube/distutils-looseversion.patch b/pkgs/development/python-modules/spectral-cube/distutils-looseversion.patch
new file mode 100644
index 0000000000000..857d37a1a88ab
--- /dev/null
+++ b/pkgs/development/python-modules/spectral-cube/distutils-looseversion.patch
@@ -0,0 +1,152 @@
+diff --git a/spectral_cube/conftest.py b/spectral_cube/conftest.py
+index 0d7c158..6fac9b4 100644
+--- a/spectral_cube/conftest.py
++++ b/spectral_cube/conftest.py
+@@ -4,7 +4,7 @@
+ from __future__ import print_function, absolute_import, division
+ 
+ import os
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ from astropy.units.equivalencies import pixel_scale
+ 
+ # Import casatools and casatasks here if available as they can otherwise
+diff --git a/spectral_cube/lower_dimensional_structures.py b/spectral_cube/lower_dimensional_structures.py
+index f0e3745..1b1e1f8 100644
+--- a/spectral_cube/lower_dimensional_structures.py
++++ b/spectral_cube/lower_dimensional_structures.py
+@@ -526,7 +526,7 @@ class Projection(LowerDimensionalObject, SpatialCoordMixinClass,
+                               " installed.")
+ 
+         # Need version > 0.2 to work with cubes
+-        from distutils.version import LooseVersion
++        from looseversion import LooseVersion
+         if LooseVersion(version) < "0.3":
+             raise Warning("Requires version >=0.3 of reproject. The current "
+                           "version is: {}".format(version))
+diff --git a/spectral_cube/np_compat.py b/spectral_cube/np_compat.py
+index ed4a134..39aa320 100644
+--- a/spectral_cube/np_compat.py
++++ b/spectral_cube/np_compat.py
+@@ -1,7 +1,7 @@
+ from __future__ import print_function, absolute_import, division
+ 
+ import numpy as np
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ 
+ def allbadtonan(function):
+     """
+diff --git a/spectral_cube/spectral_cube.py b/spectral_cube/spectral_cube.py
+index 771a2d4..af752b4 100644
+--- a/spectral_cube/spectral_cube.py
++++ b/spectral_cube/spectral_cube.py
+@@ -57,7 +57,7 @@ from .spectral_axis import (determine_vconv_from_ctype, get_rest_value_from_wcs,
+                             doppler_beta, doppler_gamma, doppler_z)
+ from .io.core import SpectralCubeRead, SpectralCubeWrite
+ 
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ 
+ 
+ __all__ = ['BaseSpectralCube', 'SpectralCube', 'VaryingResolutionSpectralCube']
+@@ -2659,7 +2659,7 @@ class BaseSpectralCube(BaseNDClass, MaskableArrayMixinClass,
+ 
+         reproj_kwargs = kwargs
+         # Need version > 0.2 to work with cubes, >= 0.5 for memmap
+-        from distutils.version import LooseVersion
++        from looseversion import LooseVersion
+         if LooseVersion(version) < "0.5":
+             raise Warning("Requires version >=0.5 of reproject. The current "
+                           "version is: {}".format(version))
+diff --git a/spectral_cube/tests/test_masks.py b/spectral_cube/tests/test_masks.py
+index c38ba27..1d6895d 100644
+--- a/spectral_cube/tests/test_masks.py
++++ b/spectral_cube/tests/test_masks.py
+@@ -14,7 +14,7 @@ from .. import (BooleanArrayMask, LazyMask, LazyComparisonMask,
+                 FunctionMask, CompositeMask)
+ from ..masks import is_broadcastable_and_smaller, dims_to_skip, view_of_subset
+ 
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ 
+ 
+ def test_spectral_cube_mask():
+diff --git a/spectral_cube/tests/test_moments.py b/spectral_cube/tests/test_moments.py
+index 3043dd5..7e05c5b 100644
+--- a/spectral_cube/tests/test_moments.py
++++ b/spectral_cube/tests/test_moments.py
+@@ -1,7 +1,7 @@
+ from __future__ import print_function, absolute_import, division
+ 
+ import warnings
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ 
+ import pytest
+ import numpy as np
+diff --git a/spectral_cube/tests/test_performance.py b/spectral_cube/tests/test_performance.py
+index bdee040..a778abc 100644
+--- a/spectral_cube/tests/test_performance.py
++++ b/spectral_cube/tests/test_performance.py
+@@ -20,7 +20,7 @@ except ImportError:
+ 
+ # The comparison of Quantities in test_memory_usage
+ # fail with older versions of numpy
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ 
+ NPY_VERSION_CHECK = LooseVersion(np.version.version) >= "1.13"
+ 
+diff --git a/spectral_cube/tests/test_regrid.py b/spectral_cube/tests/test_regrid.py
+index 496ddd5..5b1fec7 100644
+--- a/spectral_cube/tests/test_regrid.py
++++ b/spectral_cube/tests/test_regrid.py
+@@ -18,7 +18,7 @@ except ImportError:
+ 
+ # The comparison of Quantities in test_memory_usage
+ # fail with older versions of numpy
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ 
+ NPY_VERSION_CHECK = LooseVersion(np.version.version) >= "1.13"
+ 
+diff --git a/spectral_cube/tests/test_spectral_cube.py b/spectral_cube/tests/test_spectral_cube.py
+index 9ebeb7d..93e5647 100644
+--- a/spectral_cube/tests/test_spectral_cube.py
++++ b/spectral_cube/tests/test_spectral_cube.py
+@@ -6,7 +6,7 @@ import operator
+ import itertools
+ import warnings
+ import mmap
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ import sys
+ 
+ import pytest
+diff --git a/spectral_cube/tests/test_subcubes.py b/spectral_cube/tests/test_subcubes.py
+index 6f74f68..217c324 100644
+--- a/spectral_cube/tests/test_subcubes.py
++++ b/spectral_cube/tests/test_subcubes.py
+@@ -1,7 +1,7 @@
+ from __future__ import print_function, absolute_import, division
+ 
+ import pytest
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ 
+ from astropy import units as u
+ from astropy import wcs
+diff --git a/spectral_cube/tests/test_visualization.py b/spectral_cube/tests/test_visualization.py
+index 85ea038..0ac8d58 100644
+--- a/spectral_cube/tests/test_visualization.py
++++ b/spectral_cube/tests/test_visualization.py
+@@ -1,7 +1,7 @@
+ from __future__ import print_function, absolute_import, division
+ 
+ import pytest
+-from distutils.version import LooseVersion
++from looseversion import LooseVersion
+ 
+ from .test_spectral_cube import cube_and_raw
+ 
diff --git a/pkgs/development/python-modules/speechbrain/default.nix b/pkgs/development/python-modules/speechbrain/default.nix
index 2a91b2b0b100d..4705db0866d5e 100644
--- a/pkgs/development/python-modules/speechbrain/default.nix
+++ b/pkgs/development/python-modules/speechbrain/default.nix
@@ -1,17 +1,18 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, huggingface-hub
-, hyperpyyaml
-, joblib
-, lib
-, numpy
-, packaging
-, pythonOlder
-, sentencepiece
-, scipy
-, torch
-, torchaudio
-, tqdm
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  huggingface-hub,
+  hyperpyyaml,
+  joblib,
+  lib,
+  numpy,
+  packaging,
+  pythonOlder,
+  sentencepiece,
+  scipy,
+  torch,
+  torchaudio,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -46,7 +47,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "speechbrain" ];
 
   meta = with lib; {
-    description = "A PyTorch-based Speech Toolkit";
+    description = "PyTorch-based Speech Toolkit";
     homepage = "https://speechbrain.github.io";
     changelog = "https://github.com/speechbrain/speechbrain/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/speechrecognition/default.nix b/pkgs/development/python-modules/speechrecognition/default.nix
index a6e839ead5ce9..8629af8a075f5 100644
--- a/pkgs/development/python-modules/speechrecognition/default.nix
+++ b/pkgs/development/python-modules/speechrecognition/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, pytestCheckHook
-, pythonOlder
-, torch
-, requests
-, setuptools
-, soundfile
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  torch,
+  requests,
+  setuptools,
+  soundfile,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "speechrecognition";
-  version = "3.10.3";
+  version = "3.10.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -22,12 +23,10 @@ buildPythonPackage rec {
     owner = "Uberi";
     repo = "speech_recognition";
     rev = "refs/tags/${version}";
-    hash = "sha256-g2DE3u2nuJHqWA2X8S6zw5nUVS1yvSqO0VI3zKoIUgg=";
+    hash = "sha256-icXZUg2lVLo8Z5t9ptDj67BjQLnEgrG8geYZ/lZeJt4=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     requests
@@ -41,9 +40,7 @@ buildPythonPackage rec {
     soundfile
   ];
 
-  pythonImportsCheck = [
-    "speech_recognition"
-  ];
+  pythonImportsCheck = [ "speech_recognition" ];
 
   disabledTests = [
     # Test files are missing in source
@@ -57,7 +54,11 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Speech recognition module for Python, supporting several engines and APIs, online and offline";
     homepage = "https://github.com/Uberi/speech_recognition";
-    license = with licenses; [ gpl2Only bsd3 ];
+    changelog = "https://github.com/Uberi/speech_recognition/releases/tag/${version}";
+    license = with licenses; [
+      gpl2Only
+      bsd3
+    ];
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/speedtest-cli/default.nix b/pkgs/development/python-modules/speedtest-cli/default.nix
index d91edda3a546a..3a995087f7d0e 100644
--- a/pkgs/development/python-modules/speedtest-cli/default.nix
+++ b/pkgs/development/python-modules/speedtest-cli/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 # cannot be built as pythonApplication because the library functions are
@@ -22,6 +23,9 @@ buildPythonPackage rec {
     description = "Command line interface for testing internet bandwidth using speedtest.net";
     homepage = "https://github.com/sivel/speedtest-cli";
     license = licenses.asl20;
-    maintainers = with maintainers; [ makefu domenkozar ];
+    maintainers = with maintainers; [
+      makefu
+      domenkozar
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/speg/default.nix b/pkgs/development/python-modules/speg/default.nix
index 93ae40d326038..d47382a5c213c 100644
--- a/pkgs/development/python-modules/speg/default.nix
+++ b/pkgs/development/python-modules/speg/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, speg
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  speg,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A PEG-based parser interpreter with memoization (in time)";
+    description = "PEG-based parser interpreter with memoization (in time)";
     homepage = "https://github.com/avakar/speg";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ xworld21 ];
diff --git a/pkgs/development/python-modules/spglib/default.nix b/pkgs/development/python-modules/spglib/default.nix
index 5255fedd044bb..300402b931072 100644
--- a/pkgs/development/python-modules/spglib/default.nix
+++ b/pkgs/development/python-modules/spglib/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-
-# build-system
-, scikit-build-core
-, cmake
-, pathspec
-, ninja
-, pyproject-metadata
-, setuptools-scm
-
-# dependencies
-, numpy
-
-# tests
-, pytestCheckHook
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+
+  # build-system
+  scikit-build-core,
+  cmake,
+  pathspec,
+  ninja,
+  pyproject-metadata,
+  setuptools-scm,
+
+  # dependencies
+  numpy,
+
+  # tests
+  pytestCheckHook,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -39,18 +40,14 @@ buildPythonPackage rec {
 
   dontUseCmakeConfigure = true;
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   nativeCheckInputs = [
     pytestCheckHook
     pyyaml
   ];
 
-  pythonImportsCheck = [
-    "spglib"
-  ];
+  pythonImportsCheck = [ "spglib" ];
 
   meta = with lib; {
     description = "Python bindings for C library for finding and handling crystal symmetries";
diff --git a/pkgs/development/python-modules/sphfile/default.nix b/pkgs/development/python-modules/sphfile/default.nix
index 99e366a5c29a7..806f39efa63b3 100644
--- a/pkgs/development/python-modules/sphfile/default.nix
+++ b/pkgs/development/python-modules/sphfile/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchurl, buildPythonPackage, numpy }:
+{
+  lib,
+  fetchurl,
+  buildPythonPackage,
+  numpy,
+}:
 
 buildPythonPackage rec {
   pname = "sphfile";
@@ -16,9 +21,9 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Numpy-based NIST SPH audio-file reader";
-    homepage    = "https://github.com/mcfletch/sphfile";
-    license     = licenses.mit;
+    homepage = "https://github.com/mcfletch/sphfile";
+    license = licenses.mit;
     maintainers = with maintainers; [ abbradar ];
-    platforms   = platforms.unix;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/sphinx-argparse/default.nix b/pkgs/development/python-modules/sphinx-argparse/default.nix
index 7ab3ae03c3433..8a88c346dbac4 100644
--- a/pkgs/development/python-modules/sphinx-argparse/default.nix
+++ b/pkgs/development/python-modules/sphinx-argparse/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -24,18 +25,14 @@ buildPythonPackage rec {
       --replace "if action_group.title == 'optional arguments':" "if action_group.title == 'optional arguments' or action_group.title == 'options':"
   '';
 
-  propagatedBuildInputs = [
-    sphinx
-  ];
+  propagatedBuildInputs = [ sphinx ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "sphinxarg" ];
 
   meta = {
-    description = "A sphinx extension that automatically documents argparse commands and options";
+    description = "Sphinx extension that automatically documents argparse commands and options";
     homepage = "https://github.com/ashb/sphinx-argparse";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ clacke ];
diff --git a/pkgs/development/python-modules/sphinx-autoapi/default.nix b/pkgs/development/python-modules/sphinx-autoapi/default.nix
index f10e8be83da6c..1a25fef81c244 100644
--- a/pkgs/development/python-modules/sphinx-autoapi/default.nix
+++ b/pkgs/development/python-modules/sphinx-autoapi/default.nix
@@ -1,41 +1,41 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, astroid
-, anyascii
-, jinja2
-, pyyaml
-, sphinx
+  # dependencies
+  astroid,
+  anyascii,
+  jinja2,
+  pyyaml,
+  sphinx,
 
-# tests
-, beautifulsoup4
-, mock
-, pytestCheckHook
+  # tests
+  beautifulsoup4,
+  mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "sphinx-autoapi";
-  version = "3.0.0";
-  format = "pyproject";
+  version = "3.1.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-CevWdKMrREZyIrD7ipF7l8iVI/INvwW1LLij8OFXFN4=";
+    pname = "sphinx_autoapi";
+    inherit version;
+    hash = "sha256-tfbjxhzYbAzbfud6nVgMD9EWcmxbKc3LHx1fMKW8ob0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     anyascii
     astroid
     jinja2
@@ -57,9 +57,7 @@ buildPythonPackage rec {
     "test_custom_jinja_filters"
   ];
 
-  pythonImportsCheck = [
-    "autoapi"
-  ];
+  pythonImportsCheck = [ "autoapi" ];
 
   meta = with lib; {
     homepage = "https://github.com/readthedocs/sphinx-autoapi";
diff --git a/pkgs/development/python-modules/sphinx-autobuild/default.nix b/pkgs/development/python-modules/sphinx-autobuild/default.nix
index 50189474d4c15..b802384ae133d 100644
--- a/pkgs/development/python-modules/sphinx-autobuild/default.nix
+++ b/pkgs/development/python-modules/sphinx-autobuild/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# build-system
-, flit-core
-
-# dependencies
-, colorama
-, sphinx
-, starlette
-, uvicorn
-, watchfiles
-, websockets
-
-# tests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  flit-core,
+
+  # dependencies
+  colorama,
+  sphinx,
+  starlette,
+  uvicorn,
+  watchfiles,
+  websockets,
+
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     hash = "sha256-5HgRqt2ZTGcQ6X2sZN0gRfahmwlqpDbae5gOnGa02L0=";
   };
 
-  build-system = [
-    flit-core
-  ];
+  build-system = [ flit-core ];
 
   dependencies = [
     colorama
@@ -42,9 +41,7 @@ buildPythonPackage rec {
     websockets
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "sphinx_autobuild" ];
 
@@ -53,6 +50,6 @@ buildPythonPackage rec {
     mainProgram = "sphinx-autobuild";
     homepage = "https://github.com/sphinx-doc/sphinx-autobuild";
     license = with licenses; [ mit ];
-    maintainers = with maintainers; [holgerpeters];
+    maintainers = with maintainers; [ holgerpeters ];
   };
 }
diff --git a/pkgs/development/python-modules/sphinx-autodoc-typehints/default.nix b/pkgs/development/python-modules/sphinx-autodoc-typehints/default.nix
index 45ef02367fbe0..7d3030c7226a8 100644
--- a/pkgs/development/python-modules/sphinx-autodoc-typehints/default.nix
+++ b/pkgs/development/python-modules/sphinx-autodoc-typehints/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatch-vcs
-, hatchling
-, pythonOlder
-, sphinx
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatch-vcs,
+  hatchling,
+  pythonOlder,
+  sphinx,
+  pytestCheckHook,
 }:
 
 let
   pname = "sphinx-autodoc-typehints";
-  version = "2.1.0";
+  version = "2.1.1";
 in
 
 buildPythonPackage {
@@ -22,7 +23,7 @@ buildPythonPackage {
   src = fetchPypi {
     pname = "sphinx_autodoc_typehints";
     inherit version;
-    hash = "sha256-Ub+Nx3xPunR+MvBzUAKpFQB0fQVTyuYWhjhI6PXkn+g=";
+    hash = "sha256-AHK2X1qygYwinW1sLMmTdwr1XTa7e/sWAB4vzk0UiAw=";
   };
 
   nativeBuildInputs = [
@@ -30,20 +31,14 @@ buildPythonPackage {
     hatchling
   ];
 
-  propagatedBuildInputs = [
-    sphinx
-  ];
+  propagatedBuildInputs = [ sphinx ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # requires spobjinv, nbtyping
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sphinx_autodoc_typehints"
-  ];
+  pythonImportsCheck = [ "sphinx_autodoc_typehints" ];
 
   meta = with lib; {
     changelog = "https://github.com/tox-dev/sphinx-autodoc-typehints/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/sphinx-automodapi/default.nix b/pkgs/development/python-modules/sphinx-automodapi/default.nix
index e8e888204113b..371be354dc70f 100644
--- a/pkgs/development/python-modules/sphinx-automodapi/default.nix
+++ b/pkgs/development/python-modules/sphinx-automodapi/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchurl
-, pythonOlder
-, setuptools-scm
-, git
-, sphinx
-, pytestCheckHook
-, cython
-, gcc
-, graphviz
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchurl,
+  pythonOlder,
+  setuptools-scm,
+  git,
+  sphinx,
+  pytestCheckHook,
+  cython,
+  gcc,
+  graphviz,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/sphinx-basic-ng/default.nix b/pkgs/development/python-modules/sphinx-basic-ng/default.nix
index 990be1979b4e2..9afde893cfde9 100644
--- a/pkgs/development/python-modules/sphinx-basic-ng/default.nix
+++ b/pkgs/development/python-modules/sphinx-basic-ng/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-MHBGIKOKhGklrx3O075LRud8NhY2hzlTWh+jalrFpko=";
   };
 
-  propagatedBuildInputs = [
-    sphinx
-  ];
+  propagatedBuildInputs = [ sphinx ];
 
   # no tests implemented
   doCheck = false;
@@ -28,7 +27,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sphinx_basic_ng" ];
 
   meta = with lib; {
-    description = "A modernised skeleton for Sphinx themes";
+    description = "Modernised skeleton for Sphinx themes";
     homepage = "https://sphinx-basic-ng.readthedocs.io/en/latest/";
     license = licenses.mit;
     maintainers = with maintainers; [ Luflosi ];
diff --git a/pkgs/development/python-modules/sphinx-better-theme/default.nix b/pkgs/development/python-modules/sphinx-better-theme/default.nix
index 8000c8bbb820f..130f96e3b78c2 100644
--- a/pkgs/development/python-modules/sphinx-better-theme/default.nix
+++ b/pkgs/development/python-modules/sphinx-better-theme/default.nix
@@ -1,10 +1,18 @@
-{ lib, buildPythonPackage, fetchFromGitHub, sphinxHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  sphinxHook,
+}:
 
 buildPythonPackage rec {
   pname = "sphinx-better-theme";
   version = "0.1.5";
   format = "setuptools";
-  outputs = [ "out" "doc" ];
+  outputs = [
+    "out"
+    "doc"
+  ];
 
   src = fetchFromGitHub {
     owner = "irskep";
diff --git a/pkgs/development/python-modules/sphinx-book-theme/default.nix b/pkgs/development/python-modules/sphinx-book-theme/default.nix
index ce8ce4e226b0d..5c65ccaeb4124 100644
--- a/pkgs/development/python-modules/sphinx-book-theme/default.nix
+++ b/pkgs/development/python-modules/sphinx-book-theme/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, sphinx
-, pydata-sphinx-theme
-, jupyter-book
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  sphinx,
+  pydata-sphinx-theme,
+  jupyter-book,
 }:
 
 buildPythonPackage rec {
   pname = "sphinx-book-theme";
-  version = "1.1.2";
+  version = "1.1.3";
 
   format = "wheel";
 
@@ -20,7 +21,7 @@ buildPythonPackage rec {
     dist = "py3";
     python = "py3";
     pname = "sphinx_book_theme";
-    hash = "sha256-zudERm/eSPUDArhRKRsgiqZ+cmyjG3o7+5tuahRWY+A=";
+    hash = "sha256-pVSpp6w4gZeah6KxD2M6oqVwbnIhihD3G+OLPJ6DGuk=";
   };
 
   propagatedBuildInputs = [
@@ -28,16 +29,14 @@ buildPythonPackage rec {
     sphinx
   ];
 
-  pythonImportsCheck = [
-    "sphinx_book_theme"
-  ];
+  pythonImportsCheck = [ "sphinx_book_theme" ];
 
   passthru.tests = {
     inherit jupyter-book;
   };
 
   meta = with lib; {
-    description = "A clean book theme for scientific explanations and documentation with Sphinx";
+    description = "Clean book theme for scientific explanations and documentation with Sphinx";
     homepage = "https://github.com/executablebooks/sphinx-book-theme";
     changelog = "https://github.com/executablebooks/sphinx-book-theme/raw/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/sphinx-codeautolink/default.nix b/pkgs/development/python-modules/sphinx-codeautolink/default.nix
index 6b024d4fd83bf..9353abc077774 100644
--- a/pkgs/development/python-modules/sphinx-codeautolink/default.nix
+++ b/pkgs/development/python-modules/sphinx-codeautolink/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-# documentation build dependencies
-, sphinxHook
-, sphinx-rtd-theme
-, matplotlib
-, ipython
-# runtime dependencies
-, sphinx
-, beautifulsoup4
-# check dependencies
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  # documentation build dependencies
+  sphinxHook,
+  sphinx-rtd-theme,
+  matplotlib,
+  ipython,
+  # runtime dependencies
+  sphinx,
+  beautifulsoup4,
+  # check dependencies
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +20,10 @@ buildPythonPackage rec {
   version = "0.15.1";
   format = "pyproject";
 
-  outputs = [ "out" "doc" ];
+  outputs = [
+    "out"
+    "doc"
+  ];
 
   src = fetchFromGitHub {
     owner = "felix-hilden";
@@ -38,14 +42,17 @@ buildPythonPackage rec {
 
   sphinxRoot = "docs/src";
 
-  propagatedBuildInputs = [ sphinx beautifulsoup4 ];
+  propagatedBuildInputs = [
+    sphinx
+    beautifulsoup4
+  ];
 
   nativeCheckInputs = [ pytest ];
 
   pythonImportsCheck = [ "sphinx_codeautolink" ];
 
   meta = with lib; {
-    description = "A sphinx extension that makes code examples clickable";
+    description = "Sphinx extension that makes code examples clickable";
     homepage = "https://github.com/felix-hilden/sphinx-codeautolink";
     license = licenses.mit;
     maintainers = with maintainers; [ kaction ];
diff --git a/pkgs/development/python-modules/sphinx-comments/default.nix b/pkgs/development/python-modules/sphinx-comments/default.nix
index 03a6461174cc1..867a457c0cf1f 100644
--- a/pkgs/development/python-modules/sphinx-comments/default.nix
+++ b/pkgs/development/python-modules/sphinx-comments/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  sphinx,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/sphinx-copybutton/default.nix b/pkgs/development/python-modules/sphinx-copybutton/default.nix
index 5a765e7c120c5..67216681b75e3 100644
--- a/pkgs/development/python-modules/sphinx-copybutton/default.nix
+++ b/pkgs/development/python-modules/sphinx-copybutton/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,14 @@ buildPythonPackage rec {
     fetchSubmodules = true;
   };
 
-  propagatedBuildInputs = [
-    sphinx
-  ];
+  propagatedBuildInputs = [ sphinx ];
 
   doCheck = false; # no tests
 
   pythonImportsCheck = [ "sphinx_copybutton" ];
 
   meta = with lib; {
-    description = "A small sphinx extension to add a \"copy\" button to code blocks";
+    description = "Small sphinx extension to add a \"copy\" button to code blocks";
     homepage = "https://github.com/executablebooks/sphinx-copybutton";
     license = licenses.mit;
     maintainers = with maintainers; [ Luflosi ];
diff --git a/pkgs/development/python-modules/sphinx-design/default.nix b/pkgs/development/python-modules/sphinx-design/default.nix
index 49883dc65760e..2b6fbde61ad3d 100644
--- a/pkgs/development/python-modules/sphinx-design/default.nix
+++ b/pkgs/development/python-modules/sphinx-design/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, flit-core
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  flit-core,
+  sphinx,
 }:
 
 buildPythonPackage rec {
   pname = "sphinx-design";
-  version = "0.5.0";
+  version = "0.6.0";
 
   format = "pyproject";
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit version;
     pname = "sphinx_design";
-    hash = "sha256-6OUTrOpvktFcbeOzTpVEWPJFuOdhtFtjlQ9lNzNSqwA=";
+    hash = "sha256-7I48XFn+1ASbOlouIJNg/qsxgpNGtfagx8NCuJQIIZI=";
   };
 
   nativeBuildInputs = [ flit-core ];
@@ -27,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sphinx_design" ];
 
   meta = with lib; {
-    description = "A sphinx extension for designing beautiful, view size responsive web components";
+    description = "Sphinx extension for designing beautiful, view size responsive web components";
     homepage = "https://github.com/executablebooks/sphinx-design";
     changelog = "https://github.com/executablebooks/sphinx-design/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/sphinx-external-toc/default.nix b/pkgs/development/python-modules/sphinx-external-toc/default.nix
index fa676391daede..051da27792f8a 100644
--- a/pkgs/development/python-modules/sphinx-external-toc/default.nix
+++ b/pkgs/development/python-modules/sphinx-external-toc/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, flit-core
-, click
-, pyyaml
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  flit-core,
+  click,
+  pyyaml,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -33,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "sphinx_external_toc" ];
 
   meta = with lib; {
-    description = "A sphinx extension that allows the site-map to be defined in a single YAML file";
+    description = "Sphinx extension that allows the site-map to be defined in a single YAML file";
     mainProgram = "sphinx-etoc";
     homepage = "https://github.com/executablebooks/sphinx-external-toc";
     changelog = "https://github.com/executablebooks/sphinx-external-toc/raw/v${version}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/sphinx-fortran/default.nix b/pkgs/development/python-modules/sphinx-fortran/default.nix
index b4e2b7dd6e4f4..e01342e8e6eb8 100644
--- a/pkgs/development/python-modules/sphinx-fortran/default.nix
+++ b/pkgs/development/python-modules/sphinx-fortran/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, future
-, numpy
-, sphinx
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  future,
+  numpy,
+  sphinx,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
   # Tests are failing because reference files are not updated
   doCheck = false;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Fortran domain and autodoc extensions to Sphinx";
diff --git a/pkgs/development/python-modules/sphinx-hoverxref/default.nix b/pkgs/development/python-modules/sphinx-hoverxref/default.nix
index d6237387bf88c..643e3111311d1 100644
--- a/pkgs/development/python-modules/sphinx-hoverxref/default.nix
+++ b/pkgs/development/python-modules/sphinx-hoverxref/default.nix
@@ -1,28 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pythonImportsCheckHook
-# documentation build dependencies
-, sphinxHook
-, sphinx-notfound-page
-, sphinx-prompt
-, sphinx-rtd-theme
-, sphinx-tabs
-, sphinx-version-warning
-, sphinx-autoapi
-, sphinxcontrib-bibtex
-, sphinxemoji
-# runtime dependencies
-, sphinx
-, sphinxcontrib-jquery
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pythonImportsCheckHook,
+  # documentation build dependencies
+  sphinxHook,
+  sphinx-notfound-page,
+  sphinx-prompt,
+  sphinx-rtd-theme,
+  sphinx-tabs,
+  sphinx-version-warning,
+  sphinx-autoapi,
+  sphinxcontrib-bibtex,
+  sphinxemoji,
+  # runtime dependencies
+  sphinx,
+  sphinxcontrib-jquery,
 }:
 
 buildPythonPackage rec {
   pname = "sphinx-hoverxref";
   version = "1.3.0";
   format = "pyproject";
-  outputs = [ "out" "doc" ];
+  outputs = [
+    "out"
+    "doc"
+  ];
 
   src = fetchFromGitHub {
     owner = "readthedocs";
@@ -46,12 +50,15 @@ buildPythonPackage rec {
     sphinxemoji
   ];
 
-  propagatedBuildInputs = [ sphinx sphinxcontrib-jquery ];
+  propagatedBuildInputs = [
+    sphinx
+    sphinxcontrib-jquery
+  ];
 
   pythonImportsCheck = [ "hoverxref" ];
 
   meta = with lib; {
-    description = "A sphinx extension for creating tooltips on the cross references of the documentation";
+    description = "Sphinx extension for creating tooltips on the cross references of the documentation";
     longDescription = ''
       sphinx-hoverxref is a Sphinx extension to show a floating window
       (tooltips or modal dialogues) on the cross references of the
diff --git a/pkgs/development/python-modules/sphinx-inline-tabs/default.nix b/pkgs/development/python-modules/sphinx-inline-tabs/default.nix
index 0f44efae97962..5a36420dc4306 100644
--- a/pkgs/development/python-modules/sphinx-inline-tabs/default.nix
+++ b/pkgs/development/python-modules/sphinx-inline-tabs/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-1oZheHDNOQU0vWL3YClQrJe94WyUJ72bCAF1UKtjJ0w=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    sphinx
-  ];
+  propagatedBuildInputs = [ sphinx ];
 
   # no tests, see https://github.com/pradyunsg/sphinx-inline-tabs/issues/6
   doCheck = false;
diff --git a/pkgs/development/python-modules/sphinx-intl/default.nix b/pkgs/development/python-modules/sphinx-intl/default.nix
index 1fdf937ae6504..3d17e1256a492 100644
--- a/pkgs/development/python-modules/sphinx-intl/default.nix
+++ b/pkgs/development/python-modules/sphinx-intl/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, transifex-cli
-, babel
-, click
-, setuptools
-, sphinx
-, pytestCheckHook
-, mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  transifex-cli,
+  babel,
+  click,
+  setuptools,
+  sphinx,
+  pytestCheckHook,
+  mock,
 }:
 
 buildPythonPackage rec {
   pname = "sphinx-intl";
-  version = "2.1.0";
-  format = "setuptools";
+  version = "2.2.0";
+  format = "pyproject";
 
- src = fetchFromGitHub {
+  src = fetchFromGitHub {
     owner = "sphinx-doc";
     repo = pname;
     rev = version;
-    hash = "sha256-U/YCviGrsZNruVzfP0P2dGcB0K0Afh+XUZtp71OeP6c=";
+    hash = "sha256-4sFKrUSk8DqPbEM+Q3cRijXyxRSIdkIEAI/mAmB0wB0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/sphinx-issues/default.nix b/pkgs/development/python-modules/sphinx-issues/default.nix
index 9cf4b680c7cd5..ea8f4268fb973 100644
--- a/pkgs/development/python-modules/sphinx-issues/default.nix
+++ b/pkgs/development/python-modules/sphinx-issues/default.nix
@@ -1,10 +1,19 @@
-{ lib, buildPythonPackage, sphinx, fetchFromGitHub, pandoc }:
+{
+  lib,
+  buildPythonPackage,
+  sphinx,
+  fetchFromGitHub,
+  pandoc,
+}:
 
 buildPythonPackage rec {
   pname = "sphinx-issues";
   version = "3.0.1";
   format = "setuptools";
-  outputs = [ "out" "doc" ];
+  outputs = [
+    "out"
+    "doc"
+  ];
 
   src = fetchFromGitHub {
     owner = "sloria";
@@ -30,7 +39,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/sloria/sphinx-issues";
-    description = "Sphinx extension for linking to your project's issue tracker.";
+    description = "Sphinx extension for linking to your project's issue tracker";
     license = licenses.mit;
     maintainers = with maintainers; [ kaction ];
   };
diff --git a/pkgs/development/python-modules/sphinx-jinja/default.nix b/pkgs/development/python-modules/sphinx-jinja/default.nix
index c557325cd376c..f1b4aa32402e0 100644
--- a/pkgs/development/python-modules/sphinx-jinja/default.nix
+++ b/pkgs/development/python-modules/sphinx-jinja/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, sphinx }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  sphinx,
+}:
 
 buildPythonPackage rec {
   pname = "sphinx-jinja";
diff --git a/pkgs/development/python-modules/sphinx-jupyterbook-latex/default.nix b/pkgs/development/python-modules/sphinx-jupyterbook-latex/default.nix
index 3d015a15f44ac..cca7c7fa4845f 100644
--- a/pkgs/development/python-modules/sphinx-jupyterbook-latex/default.nix
+++ b/pkgs/development/python-modules/sphinx-jupyterbook-latex/default.nix
@@ -1,17 +1,19 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, flit-core
-, packaging
-, sphinx
-, click
-, myst-parser
-, pytest-regressions
-, pytestCheckHook
-, sphinx-external-toc
-, sphinxcontrib-bibtex
-, texsoup
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  flit-core,
+  packaging,
+  sphinx,
+  click,
+  myst-parser,
+  pytest-regressions,
+  pytestCheckHook,
+  sphinx-external-toc,
+  sphinxcontrib-bibtex,
+  texsoup,
+  defusedxml,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +30,7 @@ buildPythonPackage rec {
     hash = "sha256-ZTR+s6a/++xXrLMtfFRmSmAeMWa/1de12ukxfsx85g4=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     packaging
@@ -47,6 +47,7 @@ buildPythonPackage rec {
     sphinx-external-toc
     sphinxcontrib-bibtex
     texsoup
+    defusedxml
   ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/sphinx-markdown-parser/default.nix b/pkgs/development/python-modules/sphinx-markdown-parser/default.nix
index b67667ca804d0..85c8b23e68203 100644
--- a/pkgs/development/python-modules/sphinx-markdown-parser/default.nix
+++ b/pkgs/development/python-modules/sphinx-markdown-parser/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, commonmark
-, fetchFromGitHub
-, markdown
-, pydash
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, recommonmark
-, setuptools
-, sphinx
-, unify
-, yapf
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  commonmark,
+  fetchFromGitHub,
+  markdown,
+  pydash,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  recommonmark,
+  setuptools,
+  sphinx,
+  unify,
+  yapf,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     sha256 = "0i0hhapmdmh83yx61lxi2h4bsmhnzddamz95844g2ghm132kw5mv";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     commonmark
@@ -45,17 +44,11 @@ buildPythonPackage rec {
     yapf
   ];
 
-  buildInputs = [
-    sphinx
-  ];
+  buildInputs = [ sphinx ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "sphinx_markdown_parser"
-  ];
+  pythonImportsCheck = [ "sphinx_markdown_parser" ];
 
   disabledTests = [
     # AssertionError
diff --git a/pkgs/development/python-modules/sphinx-markdown-tables/default.nix b/pkgs/development/python-modules/sphinx-markdown-tables/default.nix
index a560314a29865..6c9d36c69f0c1 100644
--- a/pkgs/development/python-modules/sphinx-markdown-tables/default.nix
+++ b/pkgs/development/python-modules/sphinx-markdown-tables/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, sphinx
-, markdown
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  sphinx,
+  markdown,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/sphinx-material/default.nix b/pkgs/development/python-modules/sphinx-material/default.nix
index 9cbcb31d33478..c7faabcd5d8d5 100644
--- a/pkgs/development/python-modules/sphinx-material/default.nix
+++ b/pkgs/development/python-modules/sphinx-material/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, css-html-js-minify
-, fetchPypi
-, lxml
-, python-slugify
-, pythonOlder
-, sphinx
-, unidecode
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  css-html-js-minify,
+  fetchPypi,
+  lxml,
+  python-slugify,
+  pythonOlder,
+  sphinx,
+  unidecode,
 }:
 
 buildPythonPackage rec {
@@ -34,12 +35,10 @@ buildPythonPackage rec {
 
   doCheck = false; # no tests
 
-  pythonImportsCheck = [
-    "sphinx_material"
-  ];
+  pythonImportsCheck = [ "sphinx_material" ];
 
   meta = with lib; {
-    description = "A material-based, responsive theme inspired by mkdocs-material";
+    description = "Material-based, responsive theme inspired by mkdocs-material";
     homepage = "https://bashtage.github.io/sphinx-material";
     license = licenses.mit;
     maintainers = with maintainers; [ FlorianFranzen ];
diff --git a/pkgs/development/python-modules/sphinx-mdinclude/default.nix b/pkgs/development/python-modules/sphinx-mdinclude/default.nix
index 64928f4379081..f938f267eb659 100644
--- a/pkgs/development/python-modules/sphinx-mdinclude/default.nix
+++ b/pkgs/development/python-modules/sphinx-mdinclude/default.nix
@@ -1,33 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, flit-core
+  # build-system
+  flit-core,
 
-# dependencies
-, docutils
-, mistune
-, pygments
+  # dependencies
+  docutils,
+  mistune,
+  pygments,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "sphinx-mdinclude";
-  version = "0.5.3";
+  version = "0.6.1";
   format = "pyproject";
 
   src = fetchPypi {
     pname = "sphinx_mdinclude";
     inherit version;
-    hash = "sha256-KZjj0YswIsmYPRtyGR/jfiX/zNVBZcvjrLIszu3ZGvQ=";
+    hash = "sha256-7OPYEuLVWbTn5H9ntqh7Dipom2svURR5XI7Uf/s5wWk=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     docutils
@@ -35,15 +34,13 @@ buildPythonPackage rec {
     pygments
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     broken = true; # https://github.com/omnilib/sphinx-mdinclude/issues/22
     homepage = "https://github.com/omnilib/sphinx-mdinclude";
     changelog = "https://github.com/omnilib/sphinx-mdinclude/blob/v${version}/CHANGELOG.md";
-    description = "Sphinx extension for including or writing pages in Markdown format.";
+    description = "Sphinx extension for including or writing pages in Markdown format";
     longDescription = ''
       A simple Sphinx extension that enables including Markdown documents from within
       reStructuredText.
diff --git a/pkgs/development/python-modules/sphinx-multitoc-numbering/default.nix b/pkgs/development/python-modules/sphinx-multitoc-numbering/default.nix
index 22030c9787dad..f24112e2379e1 100644
--- a/pkgs/development/python-modules/sphinx-multitoc-numbering/default.nix
+++ b/pkgs/development/python-modules/sphinx-multitoc-numbering/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, sphinx
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  sphinx,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-yWB2caxREjb6XWGnSRwQMecA6NSYydJBjmxh0SUSCa4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    sphinx
-  ];
+  propagatedBuildInputs = [ sphinx ];
 
-  pythonImportsCheck = [
-    "sphinx_multitoc_numbering"
-  ];
+  pythonImportsCheck = [ "sphinx_multitoc_numbering" ];
 
   meta = with lib; {
     description = "Supporting continuous HTML section numbering";
diff --git a/pkgs/development/python-modules/sphinx-notfound-page/default.nix b/pkgs/development/python-modules/sphinx-notfound-page/default.nix
index 0621c2867d03f..58c81240c42a6 100644
--- a/pkgs/development/python-modules/sphinx-notfound-page/default.nix
+++ b/pkgs/development/python-modules/sphinx-notfound-page/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pythonImportsCheckHook
-, pythonOlder
-# documentation build dependencies
-, sphinxHook
-, sphinx-prompt
-, sphinx-rtd-theme
-, sphinx-tabs
-, sphinx-autoapi
-, sphinxemoji
-# runtime dependencies
-, sphinx
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pythonImportsCheckHook,
+  pythonOlder,
+  # documentation build dependencies
+  sphinxHook,
+  sphinx-prompt,
+  sphinx-rtd-theme,
+  sphinx-tabs,
+  sphinx-autoapi,
+  sphinxemoji,
+  # runtime dependencies
+  sphinx,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -46,20 +47,14 @@ buildPythonPackage rec {
     sphinxemoji
   ];
 
-  buildInputs = [
-    sphinx
-  ];
+  buildInputs = [ sphinx ];
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  propagatedBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "notfound"
-  ];
+  pythonImportsCheck = [ "notfound" ];
 
   meta = with lib; {
-    description = "A sphinx extension to create a custom 404 page with absolute URLs hardcoded";
+    description = "Sphinx extension to create a custom 404 page with absolute URLs hardcoded";
     homepage = "https://github.com/readthedocs/sphinx-notfound-page";
     changelog = "https://github.com/readthedocs/sphinx-notfound-page/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/sphinx-prompt/default.nix b/pkgs/development/python-modules/sphinx-prompt/default.nix
index 4d96a831d6263..57fa112da926d 100644
--- a/pkgs/development/python-modules/sphinx-prompt/default.nix
+++ b/pkgs/development/python-modules/sphinx-prompt/default.nix
@@ -1,19 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, poetry-core
-, poetry-dynamic-versioning
+  # build-system
+  poetry-core,
+  poetry-dynamic-versioning,
 
-# dependencies
-, docutils
-, pygments
-, sphinx
+  # dependencies
+  docutils,
+  pygments,
+  sphinx,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -36,7 +36,6 @@ buildPythonPackage rec {
   nativeBuildInputs = [
     poetry-core
     poetry-dynamic-versioning
-    pythonRelaxDepsHook
   ];
 
   pythonRelaxDeps = [
@@ -51,15 +50,13 @@ buildPythonPackage rec {
     sphinx
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # versions >=1.8.0 cannot be build from source
   passthru.skipBulkUpdate = true;
 
   meta = with lib; {
-    description = "A sphinx extension for creating unselectable prompt";
+    description = "Sphinx extension for creating unselectable prompt";
     homepage = "https://github.com/sbrunner/sphinx-prompt";
     license = licenses.bsd3;
     maintainers = with maintainers; [ kaction ];
diff --git a/pkgs/development/python-modules/sphinx-pytest/default.nix b/pkgs/development/python-modules/sphinx-pytest/default.nix
index e89183641e40a..9cc950fcad95e 100644
--- a/pkgs/development/python-modules/sphinx-pytest/default.nix
+++ b/pkgs/development/python-modules/sphinx-pytest/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pytest
-, sphinx
-, defusedxml
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pytest,
+  sphinx,
+  defusedxml,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,21 +21,13 @@ buildPythonPackage rec {
     hash = "sha256-oSBBt+hSMs4mvGqibQHoYHXr2j/bpsGOnIMfwfTfWKQ=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    sphinx
-  ];
+  propagatedBuildInputs = [ sphinx ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  pythonImportsCheck = [
-    "sphinx_pytest"
-  ];
+  pythonImportsCheck = [ "sphinx_pytest" ];
 
   nativeCheckInputs = [
     defusedxml
diff --git a/pkgs/development/python-modules/sphinx-rtd-dark-mode/default.nix b/pkgs/development/python-modules/sphinx-rtd-dark-mode/default.nix
index dbe40c0fcafd1..98b962b1f4b79 100644
--- a/pkgs/development/python-modules/sphinx-rtd-dark-mode/default.nix
+++ b/pkgs/development/python-modules/sphinx-rtd-dark-mode/default.nix
@@ -1,10 +1,11 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, pynose
-, setuptools
-, sphinx
-, sphinx-rtd-theme
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  pynose,
+  setuptools,
+  sphinx,
+  sphinx-rtd-theme,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-N5KG2Wqn9wfGNY3VH4FnBce1aZUbnvVmwD10Loe0Qn4=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    sphinx-rtd-theme
-  ];
+  dependencies = [ sphinx-rtd-theme ];
 
   nativeCheckInputs = [
     pynose
@@ -40,12 +37,10 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "sphinx_rtd_dark_mode"
-  ];
+  pythonImportsCheck = [ "sphinx_rtd_dark_mode" ];
 
   meta = with lib; {
-    description = "Adds a toggleable dark mode to the Read the Docs theme for Sphinx.";
+    description = "Adds a toggleable dark mode to the Read the Docs theme for Sphinx";
     homepage = "https://github.com/MrDogeBro/sphinx_rtd_dark_mode";
     changelog = "https://github.com/MrDogeBro/sphinx_rtd_dark_mode/releases/tag/v${version}";
     maintainers = with maintainers; [ wolfgangwalther ];
diff --git a/pkgs/development/python-modules/sphinx-rtd-theme/default.nix b/pkgs/development/python-modules/sphinx-rtd-theme/default.nix
index 61e443333b3ea..b53a9849ac066 100644
--- a/pkgs/development/python-modules/sphinx-rtd-theme/default.nix
+++ b/pkgs/development/python-modules/sphinx-rtd-theme/default.nix
@@ -1,12 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, docutils
-, sphinx
-, readthedocs-sphinx-ext
-, sphinxcontrib-jquery
-, pytestCheckHook
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  docutils,
+  sphinx,
+  readthedocs-sphinx-ext,
+  sphinxcontrib-jquery,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +31,6 @@ buildPythonPackage rec {
     sphinxcontrib-jquery
   ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -50,9 +47,7 @@ buildPythonPackage rec {
     "sphinxcontrib-jquery"
   ];
 
-  pythonImportsCheck = [
-    "sphinx_rtd_theme"
-  ];
+  pythonImportsCheck = [ "sphinx_rtd_theme" ];
 
   meta = with lib; {
     description = "Sphinx theme for readthedocs.org";
diff --git a/pkgs/development/python-modules/sphinx-serve/default.nix b/pkgs/development/python-modules/sphinx-serve/default.nix
index 729118dd50963..1b0ab4166f272 100644
--- a/pkgs/development/python-modules/sphinx-serve/default.nix
+++ b/pkgs/development/python-modules/sphinx-serve/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/sphinx-sitemap/default.nix b/pkgs/development/python-modules/sphinx-sitemap/default.nix
index b14d669a10c9a..918282c97679e 100644
--- a/pkgs/development/python-modules/sphinx-sitemap/default.nix
+++ b/pkgs/development/python-modules/sphinx-sitemap/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, sphinx
-, sphinx-pytest
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  sphinx,
+  sphinx-pytest,
+  pytestCheckHook,
 }:
 let
   pname = "sphinx-sitemap";
@@ -21,13 +22,9 @@ buildPythonPackage {
     hash = "sha256-R8nAaEPd2vQs9Z0Fa5yvTP0KP3O+DnIJLPeISZ10Xtk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    sphinx
-  ];
+  propagatedBuildInputs = [ sphinx ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/sphinx-tabs/default.nix b/pkgs/development/python-modules/sphinx-tabs/default.nix
index e11db20b64d7a..9b8538408a7df 100644
--- a/pkgs/development/python-modules/sphinx-tabs/default.nix
+++ b/pkgs/development/python-modules/sphinx-tabs/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# build-system
-, setuptools
-
-# documentation build dependencies
-, sphinxHook
-# runtime dependencies
-, sphinx
-, pygments
-, docutils
-# test dependencies
-, pytest
-, beautifulsoup4
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+
+  # documentation build dependencies
+  sphinxHook,
+  # runtime dependencies
+  sphinx,
+  pygments,
+  docutils,
+  # test dependencies
+  pytest,
+  beautifulsoup4,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,10 @@ buildPythonPackage rec {
   version = "3.4.5";
   format = "pyproject";
 
-  outputs = [ "out" "doc" ];
+  outputs = [
+    "out"
+    "doc"
+  ];
 
   src = fetchFromGitHub {
     owner = "executablebooks";
@@ -41,14 +45,15 @@ buildPythonPackage rec {
     docutils
   ];
 
-  nativeCheckInputs = [ pytest
+  nativeCheckInputs = [
+    pytest
     beautifulsoup4
   ];
 
   pythonImportsCheck = [ "sphinx_tabs" ];
 
   meta = with lib; {
-    description = "A sphinx extension for creating tabbed content when building HTML.";
+    description = "Sphinx extension for creating tabbed content when building HTML";
     homepage = "https://github.com/executablebooks/sphinx-tabs";
     license = licenses.mit;
     maintainers = with maintainers; [ kaction ];
diff --git a/pkgs/development/python-modules/sphinx-testing/default.nix b/pkgs/development/python-modules/sphinx-testing/default.nix
index 0aaad111f73db..ec2f2055e3332 100644
--- a/pkgs/development/python-modules/sphinx-testing/default.nix
+++ b/pkgs/development/python-modules/sphinx-testing/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mock
-, sphinx
-, six
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  sphinx,
+  six,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,10 +18,19 @@ buildPythonPackage rec {
     sha256 = "ef661775b5722d7b00f67fc229104317d35637a4fb4434bf2c005afdf1da4d09";
   };
 
-  nativeCheckInputs = [ unittestCheckHook mock ];
-  propagatedBuildInputs = [ sphinx six ];
+  nativeCheckInputs = [
+    unittestCheckHook
+    mock
+  ];
+  propagatedBuildInputs = [
+    sphinx
+    six
+  ];
 
-  unittestFlagsArray = [ "-s" "tests" ];
+  unittestFlagsArray = [
+    "-s"
+    "tests"
+  ];
 
   # Test failures https://github.com/sphinx-doc/sphinx-testing/issues/5
   doCheck = false;
diff --git a/pkgs/development/python-modules/sphinx-thebe/default.nix b/pkgs/development/python-modules/sphinx-thebe/default.nix
index a9d3f78c069aa..cc6ac01aad99b 100644
--- a/pkgs/development/python-modules/sphinx-thebe/default.nix
+++ b/pkgs/development/python-modules/sphinx-thebe/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatch-vcs
-, hatchling
-, pythonOlder
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatch-vcs,
+  hatchling,
+  pythonOlder,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -25,13 +26,9 @@ buildPythonPackage rec {
     hatchling
   ];
 
-  propagatedBuildInputs = [
-    sphinx
-  ];
+  propagatedBuildInputs = [ sphinx ];
 
-  pythonImportsCheck = [
-    "sphinx_thebe"
-  ];
+  pythonImportsCheck = [ "sphinx_thebe" ];
 
   meta = with lib; {
     description = "Integrate interactive code blocks into your documentation with Thebe and Binder";
diff --git a/pkgs/development/python-modules/sphinx-togglebutton/default.nix b/pkgs/development/python-modules/sphinx-togglebutton/default.nix
index 7416e7d15eba1..f8b2c288ec93e 100644
--- a/pkgs/development/python-modules/sphinx-togglebutton/default.nix
+++ b/pkgs/development/python-modules/sphinx-togglebutton/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, wheel
-, docutils
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  wheel,
+  docutils,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     sphinx
   ];
 
-  pythonImportsCheck = [
-    "sphinx_togglebutton"
-  ];
+  pythonImportsCheck = [ "sphinx_togglebutton" ];
 
   meta = with lib; {
     description = "Toggle page content and collapse admonitions in Sphinx";
diff --git a/pkgs/development/python-modules/sphinx-version-warning/default.nix b/pkgs/development/python-modules/sphinx-version-warning/default.nix
index 7561fcd0dba56..6856bcd4fee7d 100644
--- a/pkgs/development/python-modules/sphinx-version-warning/default.nix
+++ b/pkgs/development/python-modules/sphinx-version-warning/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pythonImportsCheckHook
-, pythonOlder
-, setuptools
-, sphinx
-, sphinx-autoapi
-, sphinx-prompt
-, sphinx-rtd-theme
-, sphinx-tabs
-, sphinxemoji
-, sphinxHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pythonImportsCheckHook,
+  pythonOlder,
+  setuptools,
+  sphinx,
+  sphinx-autoapi,
+  sphinx-prompt,
+  sphinx-rtd-theme,
+  sphinx-tabs,
+  sphinxemoji,
+  sphinxHook,
 }:
 
 # Latest tagged release release "1.1.2" (Nov 2018) does not contain
@@ -56,16 +57,12 @@ buildPythonPackage {
     setuptools
   ];
 
-  buildInputs = [
-    sphinx
-  ];
+  buildInputs = [ sphinx ];
 
-  pythonImportsCheck = [
-    "versionwarning"
-  ];
+  pythonImportsCheck = [ "versionwarning" ];
 
   meta = with lib; {
-    description = "A sphinx extension to show a warning banner at the top of your documentation";
+    description = "Sphinx extension to show a warning banner at the top of your documentation";
     homepage = "https://github.com/humitos/sphinx-version-warning";
     changelog = "https://github.com/humitos/sphinx-version-warning/blob/${version}/CHANGELOG.rst";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/sphinx/default.nix b/pkgs/development/python-modules/sphinx/default.nix
index c9f83af0aee68..16e2a81e50432 100644
--- a/pkgs/development/python-modules/sphinx/default.nix
+++ b/pkgs/development/python-modules/sphinx/default.nix
@@ -1,37 +1,41 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, isPyPy
+{
+  lib,
+  buildPythonPackage,
+  pythonAtLeast,
+  pythonOlder,
+  fetchFromGitHub,
+  fetchpatch2,
+  isPyPy,
 
-# nativeBuildInputs
-, flit-core
+  # build-system
+  flit-core,
 
-# propagatedBuildInputs
-, babel
-, alabaster
-, docutils
-, imagesize
-, importlib-metadata
-, jinja2
-, packaging
-, pygments
-, requests
-, snowballstemmer
-, sphinxcontrib-applehelp
-, sphinxcontrib-devhelp
-, sphinxcontrib-htmlhelp
-, sphinxcontrib-jsmath
-, sphinxcontrib-qthelp
-, sphinxcontrib-serializinghtml
-, sphinxcontrib-websupport
+  # dependencies
+  babel,
+  alabaster,
+  docutils,
+  imagesize,
+  importlib-metadata,
+  jinja2,
+  packaging,
+  pygments,
+  requests,
+  snowballstemmer,
+  sphinxcontrib-applehelp,
+  sphinxcontrib-devhelp,
+  sphinxcontrib-htmlhelp,
+  sphinxcontrib-jsmath,
+  sphinxcontrib-qthelp,
+  sphinxcontrib-serializinghtml,
+  sphinxcontrib-websupport,
+  tomli,
 
-# check phase
-, defusedxml
-, filelock
-, html5lib
-, pytestCheckHook
-, pytest-xdist
+  # check phase
+  defusedxml,
+  filelock,
+  html5lib,
+  pytestCheckHook,
+  pytest-xdist,
 }:
 
 buildPythonPackage rec {
@@ -54,31 +58,38 @@ buildPythonPackage rec {
     hash = "sha256-XGGRWEvd1SbQsK8W5yxDzBd5hlvXcDzr8t5Qa6skH/M=";
   };
 
-  nativeBuildInputs = [
-    flit-core
+  patches = [
+    (fetchpatch2 {
+      name = "python-3.13-compat.patch";
+      url = "https://github.com/sphinx-doc/sphinx/commit/3496de62b743942115acb486cf35dfcc102586c3.patch";
+      hash = "sha256-5VBPOQeGyj3a8VBq4hc9S/eKaeVZeGCTNislwgsauZo=";
+    })
   ];
 
-  propagatedBuildInputs = [
-    alabaster
-    babel
-    docutils
-    imagesize
-    jinja2
-    packaging
-    pygments
-    requests
-    snowballstemmer
-    sphinxcontrib-applehelp
-    sphinxcontrib-devhelp
-    sphinxcontrib-htmlhelp
-    sphinxcontrib-jsmath
-    sphinxcontrib-qthelp
-    sphinxcontrib-serializinghtml
-    # extra[docs]
-    sphinxcontrib-websupport
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
+  build-system = [ flit-core ];
+
+  dependencies =
+    [
+      alabaster
+      babel
+      docutils
+      imagesize
+      jinja2
+      packaging
+      pygments
+      requests
+      snowballstemmer
+      sphinxcontrib-applehelp
+      sphinxcontrib-devhelp
+      sphinxcontrib-htmlhelp
+      sphinxcontrib-jsmath
+      sphinxcontrib-qthelp
+      sphinxcontrib-serializinghtml
+      # extra[docs]
+      sphinxcontrib-websupport
+    ]
+    ++ lib.optionals (pythonOlder "3.11") [ tomli ]
+    ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
   __darwinAllowLocalNetworking = true;
 
@@ -94,38 +105,44 @@ buildPythonPackage rec {
     export HOME=$TMPDIR
   '';
 
-  disabledTests = [
-    # requires network access
-    "test_latex_images"
-    # racy
-    "test_defaults"
-    "test_check_link_response_only"
-    "test_anchors_ignored_for_url"
-    "test_autodoc_default_options"
-    "test_too_many_requests_retry_after_int_delay"
-    # racy with pytest-xdist
-    "test_domain_cpp_build_semicolon"
-    "test_class_alias"
-    "test_class_alias_having_doccomment"
-    "test_class_alias_for_imported_object_having_doccomment"
-    "test_decorators"
-    # requires cython_0, but fails miserably on 3.11
-    "test_cython"
-    # Could not fetch remote image: http://localhost:7777/sphinx.png
-    "test_copy_images"
-  ] ++ lib.optionals isPyPy [
-    # PyPy has not __builtins__ which get asserted
-    # https://doc.pypy.org/en/latest/cpython_differences.html#miscellaneous
-    "test_autosummary_generate_content_for_module"
-    "test_autosummary_generate_content_for_module_skipped"
-    # internals are asserted which are sightly different in PyPy
-    "test_autodoc_inherited_members_None"
-    "test_automethod_for_builtin"
-    "test_builtin_function"
-    "test_isattributedescriptor"
-    "test_methoddescriptor"
-    "test_partialfunction"
-  ];
+  disabledTests =
+    [
+      # requires network access
+      "test_latex_images"
+      # racy
+      "test_defaults"
+      "test_check_link_response_only"
+      "test_anchors_ignored_for_url"
+      "test_autodoc_default_options"
+      "test_too_many_requests_retry_after_int_delay"
+      # racy with pytest-xdist
+      "test_domain_cpp_build_semicolon"
+      "test_class_alias"
+      "test_class_alias_having_doccomment"
+      "test_class_alias_for_imported_object_having_doccomment"
+      "test_decorators"
+      # requires cython_0, but fails miserably on 3.11
+      "test_cython"
+      # Could not fetch remote image: http://localhost:7777/sphinx.png
+      "test_copy_images"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [
+      # https://github.com/sphinx-doc/sphinx/issues/12430
+      "test_autodoc_type_aliases"
+    ]
+    ++ lib.optionals isPyPy [
+      # PyPy has not __builtins__ which get asserted
+      # https://doc.pypy.org/en/latest/cpython_differences.html#miscellaneous
+      "test_autosummary_generate_content_for_module"
+      "test_autosummary_generate_content_for_module_skipped"
+      # internals are asserted which are sightly different in PyPy
+      "test_autodoc_inherited_members_None"
+      "test_automethod_for_builtin"
+      "test_builtin_function"
+      "test_isattributedescriptor"
+      "test_methoddescriptor"
+      "test_partialfunction"
+    ];
 
   meta = {
     description = "Python documentation generator";
diff --git a/pkgs/development/python-modules/sphinxawesome-theme/default.nix b/pkgs/development/python-modules/sphinxawesome-theme/default.nix
new file mode 100644
index 0000000000000..8d028f2c63e71
--- /dev/null
+++ b/pkgs/development/python-modules/sphinxawesome-theme/default.nix
@@ -0,0 +1,35 @@
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  poetry-core,
+  sphinx,
+  beautifulsoup4,
+}:
+
+buildPythonPackage rec {
+  pname = "sphinxawesome-theme";
+  version = "5.2.0";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit version;
+    pname = "sphinxawesome_theme";
+    hash = "sha256-wk8eXAueR1OA0W/F8fO/2ElVgX2gkF2V9+IICdfNPF0=";
+  };
+
+  build-system = [ poetry-core ];
+  dependencies = [
+    sphinx
+    beautifulsoup4
+  ];
+
+  pythonRelaxDeps = [ "sphinx" ];
+
+  meta = {
+    description = "Awesome Sphinx Theme";
+    homepage = "https://sphinxawesome.xyz/";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [sigmanificient];
+  };
+}
diff --git a/pkgs/development/python-modules/sphinxcontrib-actdiag/default.nix b/pkgs/development/python-modules/sphinxcontrib-actdiag/default.nix
index bfe5739b2a7b0..35eee667daf4e 100644
--- a/pkgs/development/python-modules/sphinxcontrib-actdiag/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-actdiag/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, sphinx
-, actdiag
-, blockdiag
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  sphinx,
+  actdiag,
+  blockdiag,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     sphinx
   ];
 
-  pythonImportsCheck = [
-    "sphinxcontrib.actdiag"
-  ];
+  pythonImportsCheck = [ "sphinxcontrib.actdiag" ];
 
   pythonNamespaces = [ "sphinxcontrib" ];
 
diff --git a/pkgs/development/python-modules/sphinxcontrib-apidoc/default.nix b/pkgs/development/python-modules/sphinxcontrib-apidoc/default.nix
index 9abab99c05985..359b5387f6399 100644
--- a/pkgs/development/python-modules/sphinxcontrib-apidoc/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-apidoc/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pbr
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pbr,
+  setuptools,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix b/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix
index b5b52c92912e5..9a9e1a2e0078e 100644
--- a/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-applehelp/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, flit-core
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  flit-core,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-xApPlvN3bEOT2TNBIFOWL6wrhPTJmnmCukLglXanBhk=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   # Check is disabled due to circular dependency of sphinx
   dontCheckRuntimeDeps = true;
diff --git a/pkgs/development/python-modules/sphinxcontrib-asyncio/default.nix b/pkgs/development/python-modules/sphinxcontrib-asyncio/default.nix
index 1044723818964..36ee3d3c55593 100644
--- a/pkgs/development/python-modules/sphinxcontrib-asyncio/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-asyncio/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -14,15 +15,11 @@ buildPythonPackage rec {
     hash = "sha256-mf0m4P5+34ckSnGpnDFv0Mm1CFbCUZrMqSfr50EAci4=";
   };
 
-  propagatedBuildInputs = [
-    sphinx
-  ];
+  propagatedBuildInputs = [ sphinx ];
 
   doCheck = false; # no tests
 
-  pythonImportsCheck = [
-    "sphinxcontrib.asyncio"
-  ];
+  pythonImportsCheck = [ "sphinxcontrib.asyncio" ];
 
   pythonNamespaces = [ "sphinxcontrib" ];
 
diff --git a/pkgs/development/python-modules/sphinxcontrib-bayesnet/default.nix b/pkgs/development/python-modules/sphinxcontrib-bayesnet/default.nix
index ca968f3f232c2..ce7df8dcba700 100644
--- a/pkgs/development/python-modules/sphinxcontrib-bayesnet/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-bayesnet/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, sphinx
-, sphinxcontrib-tikz
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  sphinx,
+  sphinxcontrib-tikz,
 }:
 
 buildPythonPackage rec {
@@ -15,7 +16,10 @@ buildPythonPackage rec {
     hash = "sha256-+M+K8WzQqxQUGgAgGPK+isf3gKK7HOrdI6nNW/V8Wv0=";
   };
 
-  propagatedBuildInputs = [ sphinx sphinxcontrib-tikz ];
+  propagatedBuildInputs = [
+    sphinx
+    sphinxcontrib-tikz
+  ];
 
   # No tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix b/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
index 2d5a7b9974649..c190e1e625a58 100644
--- a/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-bibtex/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, oset
-, pybtex
-, pybtex-docutils
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  oset,
+  pybtex,
+  pybtex-docutils,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -29,14 +30,12 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sphinxcontrib.bibtex"
-  ];
+  pythonImportsCheck = [ "sphinxcontrib.bibtex" ];
 
   pythonNamespaces = [ "sphinxcontrib" ];
 
   meta = with lib; {
-    description = "A Sphinx extension for BibTeX style citations";
+    description = "Sphinx extension for BibTeX style citations";
     homepage = "https://github.com/mcmtroffaes/sphinxcontrib-bibtex";
     license = licenses.bsd2;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix b/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix
index 9f0790c0d6431..8fcb0c2c8f581 100644
--- a/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-blockdiag/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, unittestCheckHook
-, mock
-, sphinx-testing
-, sphinx
-, blockdiag
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  unittestCheckHook,
+  mock,
+  sphinx-testing,
+  sphinx,
+  blockdiag,
 }:
 
 buildPythonPackage rec {
@@ -18,15 +19,24 @@ buildPythonPackage rec {
     sha256 = "aa49bf924516f5de8a479994c7be81e077df5599c9da2a082003d5b388e1d450";
   };
 
-  buildInputs = [ mock sphinx-testing ];
-  propagatedBuildInputs = [ sphinx blockdiag ];
+  buildInputs = [
+    mock
+    sphinx-testing
+  ];
+  propagatedBuildInputs = [
+    sphinx
+    blockdiag
+  ];
 
   # Seems to look for files in the wrong dir
   doCheck = false;
 
   nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [ "-s" "tests" ];
+  unittestFlagsArray = [
+    "-s"
+    "tests"
+  ];
 
   pythonNamespaces = [ "sphinxcontrib" ];
 
@@ -36,5 +46,4 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ ];
     license = licenses.bsd2;
   };
-
 }
diff --git a/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix b/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix
index 240e51c724180..ee5021688f8e5 100644
--- a/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-confluencebuilder/default.nix
@@ -1,27 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, docutils
-, sphinx
-, requests
-, jinja2
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  docutils,
+  sphinx,
+  requests,
+  jinja2,
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-confluencebuilder";
-  version = "2.5.1";
+  version = "2.5.2";
   format = "pyproject";
 
   src = fetchPypi {
     pname = "sphinxcontrib_confluencebuilder";
     inherit version;
-    hash = "sha256-PQpkwQ95UVJwDGTAq1xdcSvd07FZpZfA/4jq3ywlMas=";
+    hash = "sha256-FwjjlMTIhAD/v4Ig+uqrJJybdPqpPG+7OMuJwSqWo84=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     docutils
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Tests are disabled due to a circular dependency on Sphinx
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sphinxcontrib.confluencebuilder"
-  ];
+  pythonImportsCheck = [ "sphinxcontrib.confluencebuilder" ];
 
   pythonNamespaces = [ "sphinxcontrib" ];
 
diff --git a/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix b/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix
index 5e37386e55100..d2daaded5b90b 100644
--- a/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-devhelp/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, flit-core
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  flit-core,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-mJP9P5BQa8S5e9uXfOuPvYI5ifQxayjDhB7BKFRDctM=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   # Check is disabled due to circular dependency of sphinx
   dontCheckRuntimeDeps = true;
@@ -29,7 +28,7 @@ buildPythonPackage rec {
   pythonNamespaces = [ "sphinxcontrib" ];
 
   meta = with lib; {
-    description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document.";
+    description = "sphinxcontrib-devhelp is a sphinx extension which outputs Devhelp document";
     homepage = "https://github.com/sphinx-doc/sphinxcontrib-devhelp";
     license = licenses.bsd2;
     maintainers = teams.sphinx.members;
diff --git a/pkgs/development/python-modules/sphinxcontrib-ditaa/default.nix b/pkgs/development/python-modules/sphinxcontrib-ditaa/default.nix
new file mode 100644
index 0000000000000..db263eab0f5b2
--- /dev/null
+++ b/pkgs/development/python-modules/sphinxcontrib-ditaa/default.nix
@@ -0,0 +1,42 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  unittestCheckHook,
+  setuptools,
+  sphinx,
+  ditaa,
+}:
+
+buildPythonPackage rec {
+  pname = "sphinxcontrib-ditaa";
+  version = "1.0.2";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-V/LhOwWbOP3olYC+ypFqxsp0VrLXBsPd6p3UiQ5fW9M=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    sphinx
+    ditaa
+  ];
+
+  # no tests provided
+  doCheck = false;
+
+  # ? needs docutils exported as runtime dep
+  #pythonImportsCheck = [ "sphinxcontrib.ditaa" ];
+
+  pythonNamespaces = [ "sphinxcontrib" ];
+
+  meta = {
+    description = "Sphinx ditaa extension";
+    homepage = "https://pypi.org/project/sphinxcontrib-ditaa";
+    maintainers = with lib.maintainers; [ rconybea ];
+    license = lib.licenses.bsd2;
+  };
+}
diff --git a/pkgs/development/python-modules/sphinxcontrib-excel-table/default.nix b/pkgs/development/python-modules/sphinxcontrib-excel-table/default.nix
index 732ed446aa28e..329db4319a51a 100644
--- a/pkgs/development/python-modules/sphinxcontrib-excel-table/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-excel-table/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, sphinx
-, openpyxl
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  sphinx,
+  openpyxl,
 }:
 
 buildPythonPackage rec {
@@ -15,7 +16,10 @@ buildPythonPackage rec {
     hash = "sha256:1q79byn3k3ribvwqafbpixwabjhymk46ns8ym0hxcn8vhf5nljzd";
   };
 
-  propagatedBuildInputs = [ sphinx openpyxl ];
+  propagatedBuildInputs = [
+    sphinx
+    openpyxl
+  ];
 
   pythonImportsCheck = [ "sphinxcontrib.excel_table" ];
 
diff --git a/pkgs/development/python-modules/sphinxcontrib-fulltoc/default.nix b/pkgs/development/python-modules/sphinxcontrib-fulltoc/default.nix
index f29e46b014e0f..1d2850bb20b29 100644
--- a/pkgs/development/python-modules/sphinxcontrib-fulltoc/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-fulltoc/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, sphinx, pbr }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  sphinx,
+  pbr,
+}:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-fulltoc";
diff --git a/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix b/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
index c49e3c49da31b..69b237b0452bf 100644
--- a/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-htmlhelp/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, flit-core
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  flit-core,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-Dch2N9XeU91e7DpqAXU7HM+ZSUvXVqr+zXS0+p5ykBU=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   # Check is disabled due to circular dependency of sphinx
   dontCheckRuntimeDeps = true;
diff --git a/pkgs/development/python-modules/sphinxcontrib-httpdomain/default.nix b/pkgs/development/python-modules/sphinxcontrib-httpdomain/default.nix
index 8be6779391a36..a483e50deea39 100644
--- a/pkgs/development/python-modules/sphinxcontrib-httpdomain/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-httpdomain/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -27,5 +28,4 @@ buildPythonPackage rec {
     homepage = "https://bitbucket.org/birkenfeld/sphinx-contrib";
     license = licenses.bsd0;
   };
-
 }
diff --git a/pkgs/development/python-modules/sphinxcontrib-jquery/default.nix b/pkgs/development/python-modules/sphinxcontrib-jquery/default.nix
index 0ca9fad7b7319..66047794eceaf 100644
--- a/pkgs/development/python-modules/sphinxcontrib-jquery/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-jquery/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, flit-core
-, defusedxml
-, pytestCheckHook
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  flit-core,
+  defusedxml,
+  pytestCheckHook,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -34,13 +35,9 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  pythonImportsCheck = [
-    "sphinxcontrib.jquery"
-  ];
+  pythonImportsCheck = [ "sphinxcontrib.jquery" ];
 
   nativeCheckInputs = [
     defusedxml
diff --git a/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix b/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix
index f0728a67adb2e..9ce7c66abc997 100644
--- a/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-jsmath/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
 }:
 
 buildPythonPackage rec {
@@ -21,7 +22,7 @@ buildPythonPackage rec {
   pythonNamespaces = [ "sphinxcontrib" ];
 
   meta = with lib; {
-    description = "sphinxcontrib-jsmath is a sphinx extension which renders display math in HTML via JavaScript.";
+    description = "sphinxcontrib-jsmath is a sphinx extension which renders display math in HTML via JavaScript";
     homepage = "https://github.com/sphinx-doc/sphinxcontrib-jsmath";
     license = licenses.bsd0;
     maintainers = teams.sphinx.members;
diff --git a/pkgs/development/python-modules/sphinxcontrib-katex/default.nix b/pkgs/development/python-modules/sphinxcontrib-katex/default.nix
index 9420c9882cbd2..6716a3ba7902a 100644
--- a/pkgs/development/python-modules/sphinxcontrib-katex/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-katex/default.nix
@@ -1,32 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  sphinx,
+  pytestCheckHook
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-katex";
-  version = "0.9.9";
-  format = "setuptools";
+  version = "0.9.10";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-1ZTILfVLBI1Z1I5GsQn2IhezEaublSCMq5bZAvmj/ik=";
+    pname = "sphinxcontrib_katex";
+    inherit version;
+    hash = "sha256-MJqS2uJF28WE/36l+2VJcnuuleTlIAi3TSWdL9GtDew=";
   };
 
-  propagatedBuildInputs = [
-    sphinx
-  ];
+  build-system = [ setuptools ];
 
-  # There are no unit tests
-  doCheck = false;
+  dependencies = [ sphinx ];
 
-  pythonImportsCheck = [
-    "sphinxcontrib.katex"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "sphinxcontrib.katex" ];
 
   pythonNamespaces = [ "sphinxcontrib" ];
 
diff --git a/pkgs/development/python-modules/sphinxcontrib-log-cabinet/default.nix b/pkgs/development/python-modules/sphinxcontrib-log-cabinet/default.nix
index 2dfc743a60f97..b9dfabb9fd81e 100644
--- a/pkgs/development/python-modules/sphinxcontrib-log-cabinet/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-log-cabinet/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, sphinx }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  sphinx,
+}:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-log-cabinet";
diff --git a/pkgs/development/python-modules/sphinxcontrib-mscgen/default.nix b/pkgs/development/python-modules/sphinxcontrib-mscgen/default.nix
index 7350b837a7f85..a95cd57dec85d 100644
--- a/pkgs/development/python-modules/sphinxcontrib-mscgen/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-mscgen/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, sphinx
-, mscgen
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  sphinx,
+  mscgen,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
   # There are no unit tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sphinxcontrib.mscgen"
-  ];
+  pythonImportsCheck = [ "sphinxcontrib.mscgen" ];
 
   pythonNamespaces = [ "sphinxcontrib" ];
 
diff --git a/pkgs/development/python-modules/sphinxcontrib-newsfeed/default.nix b/pkgs/development/python-modules/sphinxcontrib-newsfeed/default.nix
index ee9661d954e4f..2f7b6c1ee34df 100644
--- a/pkgs/development/python-modules/sphinxcontrib-newsfeed/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-newsfeed/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -15,13 +16,9 @@ buildPythonPackage rec {
     sha256 = "1d7gam3mn8v4in4p16yn3v10vps7nnaz6ilw99j4klij39dqd37p";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    sphinx
-  ];
+  propagatedBuildInputs = [ sphinx ];
 
   pythonNamespaces = [ "sphinxcontrib" ];
 
@@ -30,5 +27,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/prometheusresearch/sphinxcontrib-newsfeed";
     license = licenses.bsd2;
   };
-
 }
diff --git a/pkgs/development/python-modules/sphinxcontrib-nwdiag/default.nix b/pkgs/development/python-modules/sphinxcontrib-nwdiag/default.nix
index de4ebf723bf1e..56ca8292903cc 100644
--- a/pkgs/development/python-modules/sphinxcontrib-nwdiag/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-nwdiag/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, blockdiag
-, buildPythonPackage
-, fetchPypi
-, nwdiag
-, pythonOlder
-, sphinx
+{
+  lib,
+  blockdiag,
+  buildPythonPackage,
+  fetchPypi,
+  nwdiag,
+  pythonOlder,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     sphinx
   ];
 
-  pythonImportsCheck = [
-    "sphinxcontrib.nwdiag"
-  ];
+  pythonImportsCheck = [ "sphinxcontrib.nwdiag" ];
 
   pythonNamespaces = [ "sphinxcontrib" ];
 
diff --git a/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix b/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
index 6cfc2dc3d4c69..1076db106fcb9 100644
--- a/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-openapi/default.nix
@@ -1,15 +1,15 @@
-{ lib
-, buildPythonPackage
-, deepmerge
-, fetchPypi
-, fetchpatch
-, isPy27
-, setuptools-scm
-, jsonschema
-, picobox
-, pyyaml
-, sphinx-mdinclude
-, sphinxcontrib-httpdomain
+{
+  lib,
+  buildPythonPackage,
+  deepmerge,
+  fetchPypi,
+  isPy27,
+  setuptools-scm,
+  jsonschema,
+  picobox,
+  pyyaml,
+  sphinx-mdinclude,
+  sphinxcontrib-httpdomain,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix b/pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix
index 6e0b7802d03a8..0d4735caa6d02 100644
--- a/pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-plantuml/default.nix
@@ -1,27 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, sphinx
-, plantuml
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  sphinx,
+  plantuml,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "sphinxcontrib-plantuml";
-  version = "0.29";
-  format = "setuptools";
+  version = "0.30";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-l6Tyomr5HbiHcMz4o7LgMwW82n7EGn+Wn8jLJ7hKPEQ=";
+    hash = "sha256-KhJmykO930RkCuRBBwA99EkN4rPDFUoNYnz7Y+mhab8=";
   };
 
-  propagatedBuildInputs = [
-    sphinx
-    plantuml
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ sphinx ];
+
+  propagatedBuildInputs = [ plantuml ];
+
+  pythonImportsCheck = [ "sphinxcontrib.plantuml" ];
 
   # No tests included.
   doCheck = false;
diff --git a/pkgs/development/python-modules/sphinxcontrib-programoutput/default.nix b/pkgs/development/python-modules/sphinxcontrib-programoutput/default.nix
index 63dcfb16242b5..bf41b078d55e5 100644
--- a/pkgs/development/python-modules/sphinxcontrib-programoutput/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-programoutput/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, sphinx
-, sphinxcontrib-serializinghtml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  sphinx,
+  sphinxcontrib-serializinghtml,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     hash = "sha256-MA7puMrug1XSXMdLTRx+/RLmCNKtFl4xQdMeb7wVK38=";
   };
 
-  buildInputs = [
-    sphinx
-  ];
+  buildInputs = [ sphinx ];
 
   # fails to import sphinxcontrib.serializinghtml
   doCheck = false;
diff --git a/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix b/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
index 607060e2931d0..402432dd1e498 100644
--- a/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-qthelp/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, flit-core
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  flit-core,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-BT3tw4gjqApyCagIYLFrci6eAgnjL+qYyQ5OZiRYjtY=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   # Check is disabled due to circular dependency of sphinx
   dontCheckRuntimeDeps = true;
@@ -29,7 +28,7 @@ buildPythonPackage rec {
   pythonNamespaces = [ "sphinxcontrib" ];
 
   meta = with lib; {
-    description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document.";
+    description = "sphinxcontrib-qthelp is a sphinx extension which outputs QtHelp document";
     homepage = "https://github.com/sphinx-doc/sphinxcontrib-qthelp";
     license = licenses.bsd2;
     maintainers = teams.sphinx.members;
diff --git a/pkgs/development/python-modules/sphinxcontrib-seqdiag/default.nix b/pkgs/development/python-modules/sphinxcontrib-seqdiag/default.nix
index 085cb57305480..fbca10bced535 100644
--- a/pkgs/development/python-modules/sphinxcontrib-seqdiag/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-seqdiag/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, blockdiag
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, seqdiag
-, sphinx
+{
+  lib,
+  blockdiag,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  seqdiag,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     sphinx
   ];
 
-  pythonImportsCheck = [
-    "sphinxcontrib.seqdiag"
-  ];
+  pythonImportsCheck = [ "sphinxcontrib.seqdiag" ];
 
   pythonNamespaces = [ "sphinxcontrib" ];
 
diff --git a/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix b/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
index c2f09769d1ac9..99b4d5e5867f4 100644
--- a/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-serializinghtml/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, flit-core
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  flit-core,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-k/P13EWLkbGS/hDDl+Mk8mLPFj158ygsFY6ENqLEUR8=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   # Check is disabled due to circular dependency of sphinx
   dontCheckRuntimeDeps = true;
@@ -29,7 +28,7 @@ buildPythonPackage rec {
   pythonNamespaces = [ "sphinxcontrib" ];
 
   meta = with lib; {
-    description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle).";
+    description = "sphinxcontrib-serializinghtml is a sphinx extension which outputs \"serialized\" HTML files (json and pickle)";
     homepage = "https://github.com/sphinx-doc/sphinxcontrib-serializinghtml";
     license = licenses.bsd2;
     maintainers = teams.sphinx.members;
diff --git a/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix b/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
index b7a71f891c32c..a9125ef5d468f 100644
--- a/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-spelling/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, importlib-metadata
-, sphinx
-, pyenchant
-, setuptools
-, setuptools-scm
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  importlib-metadata,
+  sphinx,
+  pyenchant,
+  setuptools,
+  setuptools-scm,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -31,16 +32,12 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     sphinx
     pyenchant
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   # No tests included
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sphinxcontrib.spelling"
-  ];
+  pythonImportsCheck = [ "sphinxcontrib.spelling" ];
 
   pythonNamespaces = [ "sphinxcontrib" ];
 
diff --git a/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix b/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix
index a52ebdd83d6f5..972a77858f574 100644
--- a/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-tikz/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, sphinx
-, pdf2svg
-, texliveSmall
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  sphinx,
+  pdf2svg,
+  texliveSmall,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,14 @@ buildPythonPackage rec {
 
   postPatch = ''
     substituteInPlace sphinxcontrib/tikz.py \
-      --replace "config.latex_engine" "'${texliveSmall.withPackages (ps: with ps; [ standalone pgfplots ])}/bin/pdflatex'" \
+      --replace "config.latex_engine" "'${
+        texliveSmall.withPackages (
+          ps: with ps; [
+            standalone
+            pgfplots
+          ]
+        )
+      }/bin/pdflatex'" \
       --replace "system(['pdf2svg'" "system(['${pdf2svg}/bin/pdf2svg'"
   '';
 
@@ -37,5 +45,4 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ ];
     license = licenses.bsd3;
   };
-
 }
diff --git a/pkgs/development/python-modules/sphinxcontrib-wavedrom/default.nix b/pkgs/development/python-modules/sphinxcontrib-wavedrom/default.nix
index 6f35e2b59e32a..45cf5dda26cf5 100644
--- a/pkgs/development/python-modules/sphinxcontrib-wavedrom/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-wavedrom/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools-scm
-, sphinx
-, wavedrom
-, xcffib
-, cairosvg
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools-scm,
+  sphinx,
+  wavedrom,
+  xcffib,
+  cairosvg,
 }:
 
 buildPythonPackage rec {
@@ -36,7 +37,7 @@ buildPythonPackage rec {
   pythonNamespaces = [ "sphinxcontrib" ];
 
   meta = with lib; {
-    description = "A sphinx extension that allows including wavedrom diagrams by using its text-based representation";
+    description = "Sphinx extension that allows including wavedrom diagrams by using its text-based representation";
     homepage = "https://github.com/bavovanachte/sphinx-wavedrom";
     license = licenses.mit;
     maintainers = with maintainers; [ fsagbuya ];
diff --git a/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix b/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix
index 7371d8abdea81..a30a5a9809057 100644
--- a/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-websupport/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, jinja2
-, sphinxcontrib-serializinghtml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  jinja2,
+  sphinxcontrib-serializinghtml,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-4yKALr/V/nk2jv2GSuuHsGNWauYZEdzLJxTiikXtdWE=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     jinja2
diff --git a/pkgs/development/python-modules/sphinxcontrib-youtube/default.nix b/pkgs/development/python-modules/sphinxcontrib-youtube/default.nix
index ab48066dc6af2..2321bc467f5e0 100644
--- a/pkgs/development/python-modules/sphinxcontrib-youtube/default.nix
+++ b/pkgs/development/python-modules/sphinxcontrib-youtube/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, sphinx
-, requests
-, flit-core
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  sphinx,
+  requests,
+  flit-core,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,10 @@ buildPythonPackage rec {
     hash = "sha256-XuOfZ77tg9akmgTuMQN20OhgkFbn/6YzT46vpTsXxC8=";
   };
 
-  propagatedBuildInputs = [ sphinx requests ];
+  propagatedBuildInputs = [
+    sphinx
+    requests
+  ];
 
   # tests require internet access
   doCheck = false;
diff --git a/pkgs/development/python-modules/sphinxemoji/default.nix b/pkgs/development/python-modules/sphinxemoji/default.nix
index 639e6d2ab12be..b563388ab1a92 100644
--- a/pkgs/development/python-modules/sphinxemoji/default.nix
+++ b/pkgs/development/python-modules/sphinxemoji/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, sphinx
-, sphinxHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  sphinx,
+  sphinxHook,
 }:
 
 buildPythonPackage rec {
@@ -11,7 +12,10 @@ buildPythonPackage rec {
   version = "0.2.0";
   format = "pyproject";
 
-  outputs = [ "out" "doc" ];
+  outputs = [
+    "out"
+    "doc"
+  ];
 
   src = fetchFromGitHub {
     owner = "sphinx-contrib";
@@ -29,12 +33,10 @@ buildPythonPackage rec {
     sphinx
     # sphinxemoji.py imports pkg_resources directly
     setuptools
-   ];
-
-  pythonImportsCheck = [
-    "sphinxemoji"
   ];
 
+  pythonImportsCheck = [ "sphinxemoji" ];
+
   meta = with lib; {
     description = "Extension to use emoji codes in your Sphinx documentation";
     homepage = "https://github.com/sphinx-contrib/emojicodes";
diff --git a/pkgs/development/python-modules/sphinxext-opengraph/default.nix b/pkgs/development/python-modules/sphinxext-opengraph/default.nix
index 570cf5b95b599..2740b83afbb4d 100644
--- a/pkgs/development/python-modules/sphinxext-opengraph/default.nix
+++ b/pkgs/development/python-modules/sphinxext-opengraph/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, sphinx
-, matplotlib
-, pytestCheckHook
-, pythonOlder
-, beautifulsoup4
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  sphinx,
+  matplotlib,
+  pytestCheckHook,
+  pythonOlder,
+  beautifulsoup4,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -23,19 +24,13 @@ buildPythonPackage rec {
     hash = "sha256-B+bJ1tKqTTlbNeJLxk56o2a21n3Yg6OHwJiFfCx46aw=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   passthru.optional-dependencies = {
-    social_cards_generation = [
-      matplotlib
-    ];
+    social_cards_generation = [ matplotlib ];
   };
 
-  propagatedBuildInputs = [
-    sphinx
-  ];
+  propagatedBuildInputs = [ sphinx ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/spiderpy/default.nix b/pkgs/development/python-modules/spiderpy/default.nix
index 1747e8609924c..88823aff54ba4 100644
--- a/pkgs/development/python-modules/spiderpy/default.nix
+++ b/pkgs/development/python-modules/spiderpy/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, isPy27
-, fetchFromGitHub
-, poetry-core
-, requests
+{
+  lib,
+  buildPythonPackage,
+  isPy27,
+  fetchFromGitHub,
+  poetry-core,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -20,13 +21,9 @@ buildPythonPackage rec {
     hash = "sha256-Yujy8HSMbK2DQ/913r2c74hKPYDfcHFKq04ysqxG+go=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # tests don't mock remote resources
   doCheck = false;
diff --git a/pkgs/development/python-modules/spidev/default.nix b/pkgs/development/python-modules/spidev/default.nix
index b4e5344cca85c..1e62e9b3f988e 100644
--- a/pkgs/development/python-modules/spidev/default.nix
+++ b/pkgs/development/python-modules/spidev/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "spidev";
@@ -22,5 +26,4 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ hexa ];
     platforms = platforms.linux;
   };
-
 }
diff --git a/pkgs/development/python-modules/spinners/default.nix b/pkgs/development/python-modules/spinners/default.nix
index 6328a43df8f77..a5dcf83a68c12 100644
--- a/pkgs/development/python-modules/spinners/default.nix
+++ b/pkgs/development/python-modules/spinners/default.nix
@@ -1,7 +1,9 @@
-{ buildPythonPackage
-, fetchPypi
-, isPy27
-, lib }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  lib,
+}:
 
 buildPythonPackage rec {
   pname = "spinners";
@@ -19,7 +21,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "spinners" ];
 
   meta = with lib; {
-    description = "Spinners for the Terminal.";
+    description = "Spinners for the Terminal";
     homepage = "https://github.com/manrajgrover/py-spinners";
     license = licenses.mit;
     maintainers = with maintainers; [ urbas ];
diff --git a/pkgs/development/python-modules/splinter/default.nix b/pkgs/development/python-modules/splinter/default.nix
index 95ad23ec85c21..c85096167742e 100644
--- a/pkgs/development/python-modules/splinter/default.nix
+++ b/pkgs/development/python-modules/splinter/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, urllib3
-, selenium
-, cssselect
-, django
-, flask
-, lxml
-, pytestCheckHook
-, zope-testbrowser
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  urllib3,
+  selenium,
+  cssselect,
+  django,
+  flask,
+  lxml,
+  pytestCheckHook,
+  zope-testbrowser,
 }:
 
 buildPythonPackage rec {
@@ -28,18 +29,26 @@ buildPythonPackage rec {
     hash = "sha256-PGGql8yI1YosoUBAyDoI/8k7s4sVYnXEV7eow3GHH88=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    urllib3
-  ];
+  propagatedBuildInputs = [ urllib3 ];
 
   passthru.optional-dependencies = {
-    "zope.testbrowser" = [ zope-testbrowser lxml cssselect ];
-    django = [ django lxml cssselect ];
-    flask = [ flask lxml cssselect ];
+    "zope.testbrowser" = [
+      zope-testbrowser
+      lxml
+      cssselect
+    ];
+    django = [
+      django
+      lxml
+      cssselect
+    ];
+    flask = [
+      flask
+      lxml
+      cssselect
+    ];
     selenium = [ selenium ];
   };
 
diff --git a/pkgs/development/python-modules/spotipy/default.nix b/pkgs/development/python-modules/spotipy/default.nix
index 8ed6525fd0723..0167b45a83ec5 100644
--- a/pkgs/development/python-modules/spotipy/default.nix
+++ b/pkgs/development/python-modules/spotipy/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, redis
-, requests
-, six
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  redis,
+  requests,
+  six,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "spotipy";
-  version = "2.23.0";
+  version = "2.24.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Dfr+CCOdqubBb6po9gtXddQMQRByXhp8VFrUx/tm1Og=";
+    hash = "sha256-OWr4HmQghlUa8VcnDN/nQsFzlAWHG6nawfplG4ZJ7w0=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/spsdk/default.nix b/pkgs/development/python-modules/spsdk/default.nix
index b64ef4a3d910f..64f8c26489414 100644
--- a/pkgs/development/python-modules/spsdk/default.nix
+++ b/pkgs/development/python-modules/spsdk/default.nix
@@ -1,40 +1,40 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonRelaxDepsHook
-, asn1crypto
-, astunparse
-, bincopy
-, bitstring
-, click
-, click-command-tree
-, click-option-group
-, colorama
-, crcmod
-, cryptography
-, deepmerge
-, fastjsonschema
-, hexdump
-, libusbsio
-, oscrypto
-, platformdirs
-, prettytable
-, pylink-square
-, pyocd
-, pyocd-pemicro
-, pypemicro
-, pyserial
-, requests
-, ruamel-yaml
-, setuptools
-, sly
-, spsdk
-, testers
-, typing-extensions
-, ipykernel
-, pytest-notebook
-, pytestCheckHook
-, voluptuous
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  asn1crypto,
+  astunparse,
+  bincopy,
+  bitstring,
+  click,
+  click-command-tree,
+  click-option-group,
+  colorama,
+  crcmod,
+  cryptography,
+  deepmerge,
+  fastjsonschema,
+  hexdump,
+  libusbsio,
+  oscrypto,
+  platformdirs,
+  prettytable,
+  pylink-square,
+  pyocd,
+  pyocd-pemicro,
+  pypemicro,
+  pyserial,
+  requests,
+  ruamel-yaml,
+  setuptools,
+  sly,
+  spsdk,
+  testers,
+  typing-extensions,
+  ipykernel,
+  pytest-notebook,
+  pytestCheckHook,
+  voluptuous,
 }:
 
 buildPythonPackage rec {
@@ -50,7 +50,6 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -58,6 +57,7 @@ buildPythonPackage rec {
     "click"
     "cryptography"
     "platformdirs"
+    "requests"
     "typing-extensions"
   ];
 
@@ -107,12 +107,14 @@ buildPythonPackage rec {
   passthru.tests.version = testers.testVersion { package = spsdk; };
 
   meta = with lib; {
-    broken = versionAtLeast cryptography.version "41.1";
     changelog = "https://github.com/nxp-mcuxpresso/spsdk/blob/${src.rev}/docs/release_notes.rst";
     description = "NXP Secure Provisioning SDK";
     homepage = "https://github.com/nxp-mcuxpresso/spsdk";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ frogamic sbruder ];
+    maintainers = with maintainers; [
+      frogamic
+      sbruder
+    ];
     mainProgram = "spsdk";
   };
 }
diff --git a/pkgs/development/python-modules/spur/default.nix b/pkgs/development/python-modules/spur/default.nix
index 4b4fe911817e1..6762556268fde 100644
--- a/pkgs/development/python-modules/spur/default.nix
+++ b/pkgs/development/python-modules/spur/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, paramiko
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  paramiko,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-LTkZ1p2P9fsD+gZEQZaCS68Q6nGc4qFGMNtH75gQmXQ=";
   };
 
-  propagatedBuildInputs = [
-    paramiko
-  ];
+  propagatedBuildInputs = [ paramiko ];
 
   # Tests require a running SSH server
   doCheck = false;
 
-  pythonImportsCheck = [
-    "spur"
-  ];
+  pythonImportsCheck = [ "spur" ];
 
   meta = with lib; {
     description = "Python module to run commands and manipulate files locally or over SSH";
diff --git a/pkgs/development/python-modules/spyder-kernels/default.nix b/pkgs/development/python-modules/spyder-kernels/default.nix
index 30f76ffd62587..f872e2d2bcee6 100644
--- a/pkgs/development/python-modules/spyder-kernels/default.nix
+++ b/pkgs/development/python-modules/spyder-kernels/default.nix
@@ -1,30 +1,35 @@
-{ lib
-, buildPythonPackage
-, cloudpickle
-, fetchPypi
-, ipykernel
-, ipython
-, jupyter-client
-, packaging
-, pythonOlder
-, pyxdg
-, pyzmq
-, wurlitzer
+{
+  lib,
+  buildPythonPackage,
+  setuptools,
+  cloudpickle,
+  fetchPypi,
+  ipykernel,
+  ipython,
+  jupyter-client,
+  packaging,
+  pythonOlder,
+  pyxdg,
+  pyzmq,
+  wurlitzer,
 }:
 
 buildPythonPackage rec {
   pname = "spyder-kernels";
-  version = "2.5.1";
-  format = "setuptools";
+  version = "2.5.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-BQQqP5eyXxfN+o11AR/Xmq8CdSM0ip3/8PWiC92wubA=";
+    pname = "spyder_kernels";
+    inherit version;
+    hash = "sha256-cfJSkA4CsDlIIMxwSfie1yUkP2/M9kC3bdMpIDxBOWA=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     cloudpickle
     ipykernel
     ipython
@@ -35,25 +40,17 @@ buildPythonPackage rec {
     wurlitzer
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "ipykernel>=6.16.1,<7" "ipykernel" \
-      --replace "ipython>=7.31.1,<8" "ipython"
-  '';
-
   # No tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "spyder_kernels"
-  ];
+  pythonImportsCheck = [ "spyder_kernels" ];
 
-  meta = with lib; {
+  meta = {
     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";
     changelog = "https://github.com/spyder-ide/spyder-kernels/blob/v${version}/CHANGELOG.md";
-    license = licenses.mit;
-    maintainers = with maintainers; [ gebner ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ gebner ];
   };
 }
diff --git a/pkgs/development/python-modules/spyder/default.nix b/pkgs/development/python-modules/spyder/default.nix
index edefde907e2cc..eafc959eb8820 100644
--- a/pkgs/development/python-modules/spyder/default.nix
+++ b/pkgs/development/python-modules/spyder/default.nix
@@ -1,61 +1,60 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, atomicwrites
-, chardet
-, cloudpickle
-, cookiecutter
-, diff-match-patch
-, intervaltree
-, jedi
-, jellyfish
-, keyring
-, matplotlib
-, nbconvert
-, numpy
-, numpydoc
-, pickleshare
-, psutil
-, pygments
-, pylint-venv
-, pyls-spyder
-, pyopengl
-, pyqtwebengine
-, python-lsp-black
-, python-lsp-server
-, pyxdg
-, pyzmq
-, qdarkstyle
-, qstylizer
-, qtawesome
-, qtconsole
-, qtpy
-, rope
-, rtree
-, scipy
-, setuptools
-, spyder-kernels
-, textdistance
-, three-merge
-, watchdog
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  atomicwrites,
+  chardet,
+  cloudpickle,
+  cookiecutter,
+  diff-match-patch,
+  intervaltree,
+  jedi,
+  jellyfish,
+  keyring,
+  matplotlib,
+  nbconvert,
+  numpy,
+  numpydoc,
+  pickleshare,
+  psutil,
+  pygments,
+  pylint-venv,
+  pyls-spyder,
+  pyopengl,
+  pyqtwebengine,
+  python-lsp-black,
+  python-lsp-server,
+  pyxdg,
+  pyzmq,
+  qdarkstyle,
+  qstylizer,
+  qtawesome,
+  qtconsole,
+  qtpy,
+  rope,
+  rtree,
+  scipy,
+  setuptools,
+  spyder-kernels,
+  textdistance,
+  three-merge,
+  watchdog,
 }:
 
 buildPythonPackage rec {
   pname = "spyder";
-  version = "5.5.4";
+  version = "5.5.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-UiIyoFREfd3gV0uhSgZ8TVFQiP3yprrBZDOm3+8Dge0=";
+    hash = "sha256-Y+JZO/LfWi1QzoSSV1uDI4zxLcte0HwVMNmBK0aXgd4=";
   };
 
-  patches = [
-    ./dont-clear-pythonpath.patch
-  ];
+  patches = [ ./dont-clear-pythonpath.patch ];
 
   build-system = [
     pyqtwebengine.wrapQtAppsHook
@@ -104,15 +103,6 @@ buildPythonPackage rec {
   # There is no test for spyder
   doCheck = false;
 
-  postPatch = ''
-    # Remove dependency on pyqtwebengine
-    # This is still part of the pyqt 5.11 version we have in nixpkgs
-    sed -i /pyqtwebengine/d setup.py
-    substituteInPlace setup.py \
-      --replace "qdarkstyle>=3.0.2,<3.1.0" "qdarkstyle" \
-      --replace "ipython>=7.31.1,<8.0.0" "ipython"
-  '';
-
   postInstall = ''
     # Add Python libs to env so Spyder subprocesses
     # created to run compute kernels don't fail with ImportErrors
@@ -125,7 +115,7 @@ buildPythonPackage rec {
     makeWrapperArgs+=("''${qtWrapperArgs[@]}")
   '';
 
-  meta = with lib; {
+  meta = {
     description = "Scientific python development environment";
     mainProgram = "spyder";
     longDescription = ''
@@ -136,8 +126,8 @@ buildPythonPackage rec {
     homepage = "https://www.spyder-ide.org/";
     downloadPage = "https://github.com/spyder-ide/spyder/releases";
     changelog = "https://github.com/spyder-ide/spyder/blob/master/CHANGELOG.md";
-    license = licenses.mit;
-    maintainers = with maintainers; [ gebner ];
-    platforms = platforms.linux;
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ gebner ];
+    platforms = lib.platforms.linux;
   };
 }
diff --git a/pkgs/development/python-modules/spylls/default.nix b/pkgs/development/python-modules/spylls/default.nix
index 99f2a8031eadf..ecc1b8034ade1 100644
--- a/pkgs/development/python-modules/spylls/default.nix
+++ b/pkgs/development/python-modules/spylls/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-, pythonOlder
+  pythonOlder,
 
-, poetry-core
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     --replace-fail "poetry>=" "poetry-core>="
   '';
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   # no unit tests in source distribution...
   doCheck = false;
diff --git a/pkgs/development/python-modules/spyse-python/default.nix b/pkgs/development/python-modules/spyse-python/default.nix
index 56ffdfe8c080b..0a37e99b02a24 100644
--- a/pkgs/development/python-modules/spyse-python/default.nix
+++ b/pkgs/development/python-modules/spyse-python/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, dataclasses-json
-, fetchFromGitHub
-, fetchpatch
-, limiter
-, pythonOlder
-, requests
-, responses
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  dataclasses-json,
+  fetchFromGitHub,
+  fetchpatch,
+  limiter,
+  pythonOlder,
+  requests,
+  responses,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -42,9 +43,7 @@ buildPythonPackage rec {
       --replace "requests~=2.26.0" "requests>=2.26.0"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     requests
@@ -56,9 +55,7 @@ buildPythonPackage rec {
   # Tests requires an API token
   doCheck = false;
 
-  pythonImportsCheck = [
-    "spyse"
-  ];
+  pythonImportsCheck = [ "spyse" ];
 
   meta = with lib; {
     description = "Python module for spyse.com API";
diff --git a/pkgs/development/python-modules/spython/default.nix b/pkgs/development/python-modules/spython/default.nix
index 4339a3ccfec2e..60786d3cd48ae 100644
--- a/pkgs/development/python-modules/spython/default.nix
+++ b/pkgs/development/python-modules/spython/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,17 +26,11 @@ buildPythonPackage rec {
       --replace '"pytest-runner"' ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "spython"
-  ];
+  pythonImportsCheck = [ "spython" ];
 
   disabledTests = [
     # Assertion errors
diff --git a/pkgs/development/python-modules/sqids/default.nix b/pkgs/development/python-modules/sqids/default.nix
index a9d5fe3729532..c9e587555700a 100644
--- a/pkgs/development/python-modules/sqids/default.nix
+++ b/pkgs/development/python-modules/sqids/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools-scm
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools-scm,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,19 +19,15 @@ buildPythonPackage rec {
     hash = "sha256-/8P7/vY0kb7ouUCpgGU4g0Xb77BtSeQVt6nkdcogD50=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "sqids" ];
 
   meta = with lib; {
     homepage = "https://sqids.org/python";
-    description = "A library that lets you generate short YouTube-looking IDs from numbers";
+    description = "Library that lets you generate short YouTube-looking IDs from numbers";
     license = with licenses; mit;
     maintainers = with maintainers; [ panicgh ];
   };
diff --git a/pkgs/development/python-modules/sqlalchemy-citext/default.nix b/pkgs/development/python-modules/sqlalchemy-citext/default.nix
index b040ee597ef8b..0c0d631bf1512 100644
--- a/pkgs/development/python-modules/sqlalchemy-citext/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-citext/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, psycopg2
-, sqlalchemy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  psycopg2,
+  sqlalchemy,
 }:
 
 buildPythonPackage rec {
@@ -28,7 +29,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "citext" ];
 
   meta = with lib; {
-    description = "A sqlalchemy plugin that allows postgres use of CITEXT";
+    description = "Sqlalchemy plugin that allows postgres use of CITEXT";
     homepage = "https://github.com/mahmoudimus/sqlalchemy-citext";
     license = licenses.mit;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/sqlalchemy-continuum/default.nix b/pkgs/development/python-modules/sqlalchemy-continuum/default.nix
index 7801b029e1f28..10ea12e7fefae 100644
--- a/pkgs/development/python-modules/sqlalchemy-continuum/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-continuum/default.nix
@@ -1,63 +1,59 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flask
-, flask-login
-, flask-sqlalchemy
-, psycopg2
-, pymysql
-, pytestCheckHook
-, pythonOlder
-, sqlalchemy
-, sqlalchemy-i18n
-, sqlalchemy-utils
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  flask,
+  flask-login,
+  flask-sqlalchemy,
+  psycopg2,
+  pymysql,
+  pytestCheckHook,
+  pythonOlder,
+  sqlalchemy,
+  sqlalchemy-i18n,
+  sqlalchemy-utils,
 }:
 
 buildPythonPackage rec {
   pname = "sqlalchemy-continuum";
-  version = "1.4.1";
-  format = "setuptools";
+  version = "1.4.2";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    pname = "SQLAlchemy-Continuum";
+    pname = "sqlalchemy_continuum";
     inherit version;
-    hash = "sha256-4BZGzfv9azGiGwrrprv/ZhJY1b6Ed8dQDKs6HHSEjm4=";
+    hash = "sha256-D9K+efcY7aR8IgaHnZLsTr8YiTZGN7PK8+5dNL0ZyOM=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     sqlalchemy
     sqlalchemy-utils
   ];
 
-  passthru.optional-dependencies = {
-    flask = [
-      flask
-    ];
-    flask-login = [
-      flask-login
-    ];
-    flask-sqlalchemy = [
-      flask-sqlalchemy
-    ];
-    i18n = [
-      sqlalchemy-i18n
-    ];
+  optional-dependencies = {
+    flask = [ flask ];
+    flask-login = [ flask-login ];
+    flask-sqlalchemy = [ flask-sqlalchemy ];
+    i18n = [ sqlalchemy-i18n ];
   };
 
   nativeCheckInputs = [
     psycopg2
     pymysql
     pytestCheckHook
-  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+  ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
-  # Indicate tests that we don't have a database server at hand
-  env.DB = "sqlite";
+  preCheck = ''
+    # Indicate tests that we don't have a database server at hand
+    export DB=sqlite
+  '';
 
-  pythonImportsCheck = [
-    "sqlalchemy_continuum"
-  ];
+  pythonImportsCheck = [ "sqlalchemy_continuum" ];
 
   meta = with lib; {
     description = "Versioning and auditing extension for SQLAlchemy";
diff --git a/pkgs/development/python-modules/sqlalchemy-i18n/default.nix b/pkgs/development/python-modules/sqlalchemy-i18n/default.nix
index a33a9783319ff..b3540712d926e 100644
--- a/pkgs/development/python-modules/sqlalchemy-i18n/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-i18n/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, sqlalchemy
-, sqlalchemy-utils
-, six
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  sqlalchemy,
+  sqlalchemy-utils,
+  six,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/sqlalchemy-jsonfield/default.nix b/pkgs/development/python-modules/sqlalchemy-jsonfield/default.nix
index 54422df03e5a6..edcb8dff3bb92 100644
--- a/pkgs/development/python-modules/sqlalchemy-jsonfield/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-jsonfield/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, sqlalchemy
-, setuptools-scm
-, setuptools
-, sphinx
-, pytestCheckHook
-, pytest-sugar
-, pymysql
-, psycopg2
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  sqlalchemy,
+  setuptools-scm,
+  setuptools,
+  sphinx,
+  pytestCheckHook,
+  pytest-sugar,
+  pymysql,
+  psycopg2,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-4zLXB3UQh6pgQ80KrxkLeC5yiv1R8t2+JmSukmGXr7I=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     sqlalchemy
@@ -42,9 +41,7 @@ buildPythonPackage rec {
     psycopg2
   ];
 
-  pythonImportsCheck = [
-    "sqlalchemy_jsonfield"
-  ];
+  pythonImportsCheck = [ "sqlalchemy_jsonfield" ];
 
   meta = with lib; {
     description = "SQLALchemy JSONField implementation for storing dicts at SQL independently from JSON type support";
diff --git a/pkgs/development/python-modules/sqlalchemy-migrate/default.nix b/pkgs/development/python-modules/sqlalchemy-migrate/default.nix
index cf3a6b64cfcc0..93703010e5920 100644
--- a/pkgs/development/python-modules/sqlalchemy-migrate/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-migrate/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, python
-, scripttest
-, pytz
-, pbr
-, tempita
-, decorator
-, sqlalchemy
-, six
-, sqlparse
-, testrepository
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  python,
+  scripttest,
+  pytz,
+  pbr,
+  tempita,
+  decorator,
+  sqlalchemy,
+  six,
+  sqlparse,
+  testrepository,
 }:
 
 buildPythonPackage rec {
@@ -44,8 +45,19 @@ buildPythonPackage rec {
       --replace "pylint" ""
   '';
 
-  nativeCheckInputs = [ scripttest pytz testrepository ];
-  propagatedBuildInputs = [ pbr tempita decorator sqlalchemy six sqlparse ];
+  nativeCheckInputs = [
+    scripttest
+    pytz
+    testrepository
+  ];
+  propagatedBuildInputs = [
+    pbr
+    tempita
+    decorator
+    sqlalchemy
+    six
+    sqlparse
+  ];
 
   doCheck = !stdenv.isDarwin;
 
diff --git a/pkgs/development/python-modules/sqlalchemy-mixins/default.nix b/pkgs/development/python-modules/sqlalchemy-mixins/default.nix
index 1a075b227913d..492b0521201dd 100644
--- a/pkgs/development/python-modules/sqlalchemy-mixins/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-mixins/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nose
-, pytestCheckHook
-, pythonOlder
-, six
-, sqlalchemy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nose,
+  pytestCheckHook,
+  pythonOlder,
+  six,
+  sqlalchemy,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "sqlalchemy_mixins"
-  ];
+  pythonImportsCheck = [ "sqlalchemy_mixins" ];
 
   meta = with lib; {
     description = "Python mixins for SQLAlchemy ORM";
diff --git a/pkgs/development/python-modules/sqlalchemy-utils/default.nix b/pkgs/development/python-modules/sqlalchemy-utils/default.nix
index 8b0a1a374754b..e4865cd091af8 100644
--- a/pkgs/development/python-modules/sqlalchemy-utils/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-utils/default.nix
@@ -1,38 +1,38 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# runtime
-, importlib-metadata
-, sqlalchemy
+  # runtime
+  importlib-metadata,
+  sqlalchemy,
 
-# optionals
-, babel
-, arrow
-, pendulum
-#, intervals
-, phonenumbers
-, passlib
-, colour
-, python-dateutil
-, furl
-, cryptography
+  # optionals
+  babel,
+  arrow,
+  pendulum,
+  #, intervals
+  phonenumbers,
+  passlib,
+  colour,
+  python-dateutil,
+  furl,
+  cryptography,
 
-# tests
-, pytestCheckHook
-, pygments
-, jinja2
-, docutils
-, flexmock
-, psycopg2
-, psycopg2cffi
-, pg8000
-, pytz
-, backports-zoneinfo
-, pymysql
-, pyodbc
+  # tests
+  pytestCheckHook,
+  pygments,
+  jinja2,
+  docutils,
+  flexmock,
+  psycopg2,
+  psycopg2cffi,
+  pg8000,
+  pytz,
+  backports-zoneinfo,
+  pymysql,
+  pyodbc,
 
 }:
 
@@ -47,15 +47,9 @@ buildPythonPackage rec {
     hash = "sha256-vFmcjDszGeU85sXDxHESC9Ml0AcftvOKEOkk49B7mZA=";
   };
 
-  patches = [
-    ./skip-database-tests.patch
-  ];
+  patches = [ ./skip-database-tests.patch ];
 
-  propagatedBuildInputs = [
-    sqlalchemy
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  propagatedBuildInputs = [ sqlalchemy ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   passthru.optional-dependencies = {
     babel = [ babel ];
@@ -70,27 +64,26 @@ buildPythonPackage rec {
     encrypted = [ cryptography ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-    pygments
-    jinja2
-    docutils
-    flexmock
-    psycopg2
-    pg8000
-    pytz
-    python-dateutil
-    pymysql
-    pyodbc
-  ]
-  ++ lib.flatten (builtins.attrValues passthru.optional-dependencies)
-  ++ lib.optionals (pythonOlder "3.12") [
-    # requires distutils, which were removed in 3.12
-    psycopg2cffi
-  ]
-  ++ lib.optionals (pythonOlder "3.9") [
-    backports-zoneinfo
-  ];
+  nativeCheckInputs =
+    [
+      pytestCheckHook
+      pygments
+      jinja2
+      docutils
+      flexmock
+      psycopg2
+      pg8000
+      pytz
+      python-dateutil
+      pymysql
+      pyodbc
+    ]
+    ++ lib.flatten (builtins.attrValues passthru.optional-dependencies)
+    ++ lib.optionals (pythonOlder "3.12") [
+      # requires distutils, which were removed in 3.12
+      psycopg2cffi
+    ]
+    ++ lib.optionals (pythonOlder "3.9") [ backports-zoneinfo ];
 
   pytestFlagsArray = [
     "--deselect tests/functions/test_database.py::TestDatabasePostgresCreateDatabaseCloseConnection::test_create_database_twice"
diff --git a/pkgs/development/python-modules/sqlalchemy-views/default.nix b/pkgs/development/python-modules/sqlalchemy-views/default.nix
index beafdbc2b5383..596ff985290fa 100644
--- a/pkgs/development/python-modules/sqlalchemy-views/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy-views/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, sqlalchemy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  sqlalchemy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,21 +23,13 @@ buildPythonPackage rec {
     substituteInPlace tox.ini --replace '--cov=sqlalchemy_views --cov-report=term' ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    sqlalchemy
-  ];
+  propagatedBuildInputs = [ sqlalchemy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "sqlalchemy_views"
-  ];
+  pythonImportsCheck = [ "sqlalchemy_views" ];
 
   meta = with lib; {
     description = "Adds CreateView and DropView constructs to SQLAlchemy";
diff --git a/pkgs/development/python-modules/sqlalchemy/1_4.nix b/pkgs/development/python-modules/sqlalchemy/1_4.nix
index a630b110314d8..376570156dbdf 100644
--- a/pkgs/development/python-modules/sqlalchemy/1_4.nix
+++ b/pkgs/development/python-modules/sqlalchemy/1_4.nix
@@ -1,36 +1,37 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, greenlet
+  # dependencies
+  greenlet,
 
-# optionals
-, aiomysql
-, aiosqlite
-, asyncmy
-, asyncpg
-, cx-oracle
-, mariadb
-, mypy
-, mysql-connector
-, mysqlclient
-, pg8000
-, psycopg2
-, psycopg2cffi
-# TODO: pymssql
-, pymysql
-, pyodbc
-# TODO: sqlcipher3
-, typing-extensions
+  # optionals
+  aiomysql,
+  aiosqlite,
+  asyncmy,
+  asyncpg,
+  cx-oracle,
+  mariadb,
+  mypy,
+  mysql-connector,
+  mysqlclient,
+  pg8000,
+  psycopg2,
+  psycopg2cffi,
+  # TODO: pymssql
+  pymysql,
+  pyodbc,
+  # TODO: sqlcipher3
+  typing-extensions,
 
-# tests
-, mock
-, pytest-xdist
-, pytestCheckHook
+  # tests
+  mock,
+  pytest-xdist,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -49,66 +50,30 @@ buildPythonPackage rec {
     sed -i '/tag_build = dev/d' setup.cfg
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    greenlet
-  ];
+  propagatedBuildInputs = [ greenlet ];
 
   passthru.optional-dependencies = lib.fix (self: {
-    asyncio = [
-      greenlet
-    ];
-    mypy = [
-      mypy
-    ];
-    mssql = [
-      pyodbc
-    ];
+    asyncio = [ greenlet ];
+    mypy = [ mypy ];
+    mssql = [ pyodbc ];
     mssql_pymysql = [
       # TODO: pymssql
     ];
-    mssql_pyodbc = [
-      pyodbc
-    ];
-    mysql = [
-      mysqlclient
-    ];
-    mysql_connector = [
-      mysql-connector
-    ];
-    mariadb_connector = [
-      mariadb
-    ];
-    oracle = [
-      cx-oracle
-    ];
-    postgresql = [
-      psycopg2
-    ];
-    postgresql_pg8000 = [
-      pg8000
-    ];
-    postgresql_asyncpg = [
-      asyncpg
-    ] ++ self.asyncio;
-    postgresql_psycopg2binary = [
-      psycopg2
-    ];
-    postgresql_psycopg2cffi = [
-      psycopg2cffi
-    ];
-    pymysql = [
-      pymysql
-    ];
-    aiomysql = [
-      aiomysql
-    ] ++ self.asyncio;
-    asyncmy = [
-      asyncmy
-    ] ++ self.asyncio;
+    mssql_pyodbc = [ pyodbc ];
+    mysql = [ mysqlclient ];
+    mysql_connector = [ mysql-connector ];
+    mariadb_connector = [ mariadb ];
+    oracle = [ cx-oracle ];
+    postgresql = [ psycopg2 ];
+    postgresql_pg8000 = [ pg8000 ];
+    postgresql_asyncpg = [ asyncpg ] ++ self.asyncio;
+    postgresql_psycopg2binary = [ psycopg2 ];
+    postgresql_psycopg2cffi = [ psycopg2cffi ];
+    pymysql = [ pymysql ];
+    aiomysql = [ aiomysql ] ++ self.asyncio;
+    asyncmy = [ asyncmy ] ++ self.asyncio;
     aiosqlite = [
       aiosqlite
       typing-extensions
@@ -131,13 +96,13 @@ buildPythonPackage rec {
     "test/aaa_profiling"
   ];
 
-  pythonImportsCheck = [
-    "sqlalchemy"
-  ];
+  pythonImportsCheck = [ "sqlalchemy" ];
 
   meta = with lib; {
-    changelog = "https://github.com/sqlalchemy/sqlalchemy/releases/tag/rel_${builtins.replaceStrings [ "." ] [ "_" ] version}";
-    description = "The Database Toolkit for Python";
+    changelog = "https://github.com/sqlalchemy/sqlalchemy/releases/tag/rel_${
+      builtins.replaceStrings [ "." ] [ "_" ] version
+    }";
+    description = "Database Toolkit for Python";
     homepage = "https://github.com/sqlalchemy/sqlalchemy";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/sqlalchemy/default.nix b/pkgs/development/python-modules/sqlalchemy/default.nix
index ae1f22b4c2f68..a40b2897cdabb 100644
--- a/pkgs/development/python-modules/sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/sqlalchemy/default.nix
@@ -1,46 +1,47 @@
-{ lib
-, isPyPy
-, pythonOlder
-, fetchFromGitHub
-, buildPythonPackage
+{
+  lib,
+  isPyPy,
+  pythonOlder,
+  fetchFromGitHub,
+  buildPythonPackage,
 
-# build
-, cython
-, setuptools
+  # build
+  cython,
+  setuptools,
 
-# propagates
-, greenlet
-, typing-extensions
+  # propagates
+  greenlet,
+  typing-extensions,
 
-# optionals
-, aiomysql
-, aiosqlite
-, asyncmy
-, asyncpg
-, cx-oracle
-, mariadb
-, mypy
-, mysql-connector
-, mysqlclient
-, oracledb
-, pg8000
-, psycopg
-, psycopg2
-, psycopg2cffi
-# TODO: pymssql
-, pymysql
-, pyodbc
-# TODO: sqlcipher3
+  # optionals
+  aiomysql,
+  aiosqlite,
+  asyncmy,
+  asyncpg,
+  cx-oracle,
+  mariadb,
+  mypy,
+  mysql-connector,
+  mysqlclient,
+  oracledb,
+  pg8000,
+  psycopg,
+  psycopg2,
+  psycopg2cffi,
+  # TODO: pymssql
+  pymysql,
+  pyodbc,
+  # TODO: sqlcipher3
 
-# tests
-, mock
-, pytest-xdist
-, pytestCheckHook
+  # tests
+  mock,
+  pytest-xdist,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "sqlalchemy";
-  version = "2.0.29";
+  version = "2.0.31";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -49,18 +50,14 @@ buildPythonPackage rec {
     owner = "sqlalchemy";
     repo = "sqlalchemy";
     rev = "refs/tags/rel_${lib.replaceStrings [ "." ] [ "_" ] version}";
-    hash = "sha256-jEkuvwq/KKjcsREWDvvTFT87kgu3TSBR3JaseOs54qc=";
+    hash = "sha256-+bF7pdz8bxkR+mbrOI773qLoZVzBHpzKOENWPEuVFt8=";
   };
 
   postPatch = ''
     sed -i '/tag_build = dev/d' setup.cfg
   '';
 
-  nativeBuildInputs =[
-    setuptools
-  ] ++ lib.optionals (!isPyPy) [
-    cython
-  ];
+  nativeBuildInputs = [ setuptools ] ++ lib.optionals (!isPyPy) [ cython ];
 
   propagatedBuildInputs = [
     greenlet
@@ -68,66 +65,28 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = lib.fix (self: {
-    asyncio = [
-      greenlet
-    ];
-    mypy = [
-      mypy
-    ];
-    mssql = [
-      pyodbc
-    ];
+    asyncio = [ greenlet ];
+    mypy = [ mypy ];
+    mssql = [ pyodbc ];
     mssql_pymysql = [
       # TODO: pymssql
     ];
-    mssql_pyodbc = [
-      pyodbc
-    ];
-    mysql = [
-      mysqlclient
-    ];
-    mysql_connector = [
-      mysql-connector
-    ];
-    mariadb_connector = [
-      mariadb
-    ];
-    oracle = [
-      cx-oracle
-    ];
-    oracle_oracledb = [
-      oracledb
-    ];
-    postgresql = [
-      psycopg2
-    ];
-    postgresql_pg8000 = [
-      pg8000
-    ];
-    postgresql_asyncpg = [
-      asyncpg
-    ] ++ self.asyncio;
-    postgresql_psycopg2binary = [
-      psycopg2
-    ];
-    postgresql_psycopg2cffi = [
-      psycopg2cffi
-    ];
-    postgresql_psycopg = [
-      psycopg
-    ];
-    postgresql_psycopgbinary = [
-      psycopg
-    ];
-    pymysql = [
-      pymysql
-    ];
-    aiomysql = [
-      aiomysql
-    ] ++ self.asyncio;
-    asyncmy = [
-      asyncmy
-    ] ++ self.asyncio;
+    mssql_pyodbc = [ pyodbc ];
+    mysql = [ mysqlclient ];
+    mysql_connector = [ mysql-connector ];
+    mariadb_connector = [ mariadb ];
+    oracle = [ cx-oracle ];
+    oracle_oracledb = [ oracledb ];
+    postgresql = [ psycopg2 ];
+    postgresql_pg8000 = [ pg8000 ];
+    postgresql_asyncpg = [ asyncpg ] ++ self.asyncio;
+    postgresql_psycopg2binary = [ psycopg2 ];
+    postgresql_psycopg2cffi = [ psycopg2cffi ];
+    postgresql_psycopg = [ psycopg ];
+    postgresql_psycopgbinary = [ psycopg ];
+    pymysql = [ pymysql ];
+    aiomysql = [ aiomysql ] ++ self.asyncio;
+    asyncmy = [ asyncmy ] ++ self.asyncio;
     aiosqlite = [
       aiosqlite
       typing-extensions
@@ -152,8 +111,10 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    changelog = "https://github.com/sqlalchemy/sqlalchemy/releases/tag/rel_${builtins.replaceStrings [ "." ] [ "_" ] version}";
-    description = "The Python SQL toolkit and Object Relational Mapper";
+    changelog = "https://github.com/sqlalchemy/sqlalchemy/releases/tag/rel_${
+      builtins.replaceStrings [ "." ] [ "_" ] version
+    }";
+    description = "Python SQL toolkit and Object Relational Mapper";
     homepage = "http://www.sqlalchemy.org/";
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/sqlbag/default.nix b/pkgs/development/python-modules/sqlbag/default.nix
index 8b21d89ad5da5..3915bf562e0f0 100644
--- a/pkgs/development/python-modules/sqlbag/default.nix
+++ b/pkgs/development/python-modules/sqlbag/default.nix
@@ -1,23 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy27
-, psycopg2
-, pymysql
-, sqlalchemy
-, pathlib
-, six
-, flask
-, pendulum
-, packaging
-, setuptools
-, poetry-core
-, pytestCheckHook
-, pytest-xdist
-, pytest-sugar
-, postgresql
-, postgresqlTestHook
-,
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  psycopg2,
+  pymysql,
+  sqlalchemy,
+  six,
+  flask,
+  pendulum,
+  packaging,
+  setuptools,
+  poetry-core,
+  pytestCheckHook,
+  pytest-xdist,
+  pytest-sugar,
+  postgresql,
+  postgresqlTestHook,
 }:
 buildPythonPackage rec {
   pname = "sqlbag";
@@ -32,22 +30,18 @@ buildPythonPackage rec {
     hash = "sha256-lipgnkqrzjzqwbhtVcWDQypBNzq6Dct/qoM8y/FNiNs=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs =
-    [
-      sqlalchemy
-      six
-      packaging
+  propagatedBuildInputs = [
+    sqlalchemy
+    six
+    packaging
 
-      psycopg2
-      pymysql
+    psycopg2
+    pymysql
 
-      setuptools # needed for 'pkg_resources'
-    ]
-    ++ lib.optional isPy27 pathlib;
+    setuptools # needed for 'pkg_resources'
+  ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -82,14 +76,13 @@ buildPythonPackage rec {
     "tests"
   ];
 
-  pythonImportsCheck = [
-    "sqlbag"
-  ];
+  pythonImportsCheck = [ "sqlbag" ];
 
   meta = with lib; {
     description = "Handy python code for doing database things";
     homepage = "https://github.com/djrobstep/sqlbag";
     license = with licenses; [ unlicense ];
     maintainers = with maintainers; [ soispha ];
+    broken = true; # Fails to build against the current flask version
   };
 }
diff --git a/pkgs/development/python-modules/sqlglot/default.nix b/pkgs/development/python-modules/sqlglot/default.nix
index c25a2c10bc59e..f146f9d8a7f5e 100644
--- a/pkgs/development/python-modules/sqlglot/default.nix
+++ b/pkgs/development/python-modules/sqlglot/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, duckdb
-, fetchFromGitHub
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  duckdb,
+  fetchFromGitHub,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -43,12 +44,10 @@ buildPythonPackage rec {
     "tests/dataframe/integration"
   ];
 
-  pythonImportsCheck = [
-    "sqlglot"
-  ];
+  pythonImportsCheck = [ "sqlglot" ];
 
   meta = with lib; {
-    description = "A no dependency Python SQL parser, transpiler, and optimizer";
+    description = "No dependency Python SQL parser, transpiler, and optimizer";
     homepage = "https://github.com/tobymao/sqlglot";
     changelog = "https://github.com/tobymao/sqlglot/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/sqlite-anyio/default.nix b/pkgs/development/python-modules/sqlite-anyio/default.nix
new file mode 100644
index 0000000000000..bc9fd2ffcb230
--- /dev/null
+++ b/pkgs/development/python-modules/sqlite-anyio/default.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  hatchling,
+  anyio,
+  pytestCheckHook,
+  trio,
+}:
+
+buildPythonPackage rec {
+  pname = "sqlite-anyio";
+  version = "0.2.2";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "davidbrochart";
+    repo = "sqlite-anyio";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-lOUGT9SUxvzTvTDpiwx7Oa+0o3/lnrJ9xxMYFQAmFZk=";
+  };
+
+  build-system = [ hatchling ];
+
+  dependencies = [ anyio ];
+
+  pythonImportsCheck = [ "sqlite_anyio" ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    trio
+  ];
+
+  meta = with lib; {
+    description = "Asynchronous client for SQLite using AnyIO";
+    homepage = "https://github.com/davidbrochart/sqlite-anyio";
+    changelog = "https://github.com/davidbrochart/sqlite-anyio/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ ];
+  };
+}
diff --git a/pkgs/development/python-modules/sqlite-fts4/default.nix b/pkgs/development/python-modules/sqlite-fts4/default.nix
index 27a6913020a03..1d7af05a78e33 100644
--- a/pkgs/development/python-modules/sqlite-fts4/default.nix
+++ b/pkgs/development/python-modules/sqlite-fts4/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-Ibiows3DSnzjIUv7U9tYNVnDaecBBxjXzDqxbIlNhhU=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "sqlite_fts4"
-  ];
+  pythonImportsCheck = [ "sqlite_fts4" ];
 
   meta = with lib; {
     description = "Custom Python functions for working with SQLite FTS4";
diff --git a/pkgs/development/python-modules/sqlite-migrate/default.nix b/pkgs/development/python-modules/sqlite-migrate/default.nix
index b19d3e590f526..8c1d58d9dc017 100644
--- a/pkgs/development/python-modules/sqlite-migrate/default.nix
+++ b/pkgs/development/python-modules/sqlite-migrate/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, sqlite-utils
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  sqlite-utils,
 }:
 
 buildPythonPackage rec {
@@ -19,24 +20,16 @@ buildPythonPackage rec {
     hash = "sha256-wztAqe3TW0SQ4JX1XPWeA4KNJci5c3fNih97cmlPwRE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    sqlite-utils
-  ];
+  propagatedBuildInputs = [ sqlite-utils ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "sqlite_migrate"
-  ];
+  pythonImportsCheck = [ "sqlite_migrate" ];
 
   meta = with lib; {
-    description = "A simple database migration system for SQLite, based on sqlite-utils";
+    description = "Simple database migration system for SQLite, based on sqlite-utils";
     homepage = "https://github.com/simonw/sqlite-migrate";
     changelog = "https://github.com/simonw/sqlite-migrate/releases/tag/${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/sqlite-utils/default.nix b/pkgs/development/python-modules/sqlite-utils/default.nix
index cd93626f08ebe..99800ceadbcfc 100644
--- a/pkgs/development/python-modules/sqlite-utils/default.nix
+++ b/pkgs/development/python-modules/sqlite-utils/default.nix
@@ -1,18 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, pythonOlder
-, click
-, click-default-group
-, python-dateutil
-, sqlite-fts4
-, tabulate
-, pluggy
-, pytestCheckHook
-, hypothesis
-, testers
-, sqlite-utils
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  click,
+  click-default-group,
+  python-dateutil,
+  sqlite-fts4,
+  tabulate,
+  pluggy,
+  pytestCheckHook,
+  hypothesis,
+  testers,
+  sqlite-utils,
 }:
 
 buildPythonPackage rec {
@@ -46,13 +46,9 @@ buildPythonPackage rec {
     hypothesis
   ];
 
-  pythonImportsCheck = [
-    "sqlite_utils"
-  ];
+  pythonImportsCheck = [ "sqlite_utils" ];
 
-  passthru.tests.version = testers.testVersion {
-    package = sqlite-utils;
-  };
+  passthru.tests.version = testers.testVersion { package = sqlite-utils; };
 
   meta = with lib; {
     description = "Python CLI utility and library for manipulating SQLite databases";
@@ -60,6 +56,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/simonw/sqlite-utils";
     changelog = "https://github.com/simonw/sqlite-utils/releases/tag/${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [ meatcar techknowlogick ];
+    maintainers = with maintainers; [
+      meatcar
+      techknowlogick
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/sqlitedict/default.nix b/pkgs/development/python-modules/sqlitedict/default.nix
index eb11a9805c2fc..8dbe9d93b4521 100644
--- a/pkgs/development/python-modules/sqlitedict/default.nix
+++ b/pkgs/development/python-modules/sqlitedict/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, py
-, pytest-benchmark
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  py,
+  pytest-benchmark,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-GfvvkQ6a75UBPn70IFOvjvL1MedSc4siiIjA3IsQnic=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     py
@@ -36,13 +35,9 @@ buildPythonPackage rec {
     mkdir tests/db
   '';
 
-  pythonImportsCheck = [
-    "sqlitedict"
-  ];
+  pythonImportsCheck = [ "sqlitedict" ];
 
-  pytestFlagsArray = [
-    "--benchmark-disable"
-  ];
+  pytestFlagsArray = [ "--benchmark-disable" ];
 
   meta = with lib; {
     description = "Persistent, thread-safe dict";
diff --git a/pkgs/development/python-modules/sqliteschema/default.nix b/pkgs/development/python-modules/sqliteschema/default.nix
index cb73b6e5a606b..f4c5c89e08e72 100644
--- a/pkgs/development/python-modules/sqliteschema/default.nix
+++ b/pkgs/development/python-modules/sqliteschema/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mbstrdecoder
-, setuptools
-, simplesqlite
-, sqliteschema
-, tabledata
-, typepy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mbstrdecoder,
+  setuptools,
+  simplesqlite,
+  sqliteschema,
+  tabledata,
+  typepy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/sqlmap/default.nix b/pkgs/development/python-modules/sqlmap/default.nix
index 9771771c8d0f2..08a23ed4f273c 100644
--- a/pkgs/development/python-modules/sqlmap/default.nix
+++ b/pkgs/development/python-modules/sqlmap/default.nix
@@ -10,14 +10,14 @@
 
 buildPythonPackage rec {
   pname = "sqlmap";
-  version = "1.8.4";
+  version = "1.8.5";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-zTFdGDzvPlNebsepPxXn2++22YANlDu82yprs7eHfac=";
+    hash = "sha256-ADs0Tfd8iR1OSGkV7pFdRw0RDHbxk6Ztje1AvSIdWqI=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/sqlmodel/default.nix b/pkgs/development/python-modules/sqlmodel/default.nix
index 55bf943264de7..cad54edc8ebbb 100644
--- a/pkgs/development/python-modules/sqlmodel/default.nix
+++ b/pkgs/development/python-modules/sqlmodel/default.nix
@@ -1,20 +1,23 @@
 {
   lib,
   buildPythonPackage,
+  black,
+  jinja2,
   dirty-equals,
   fastapi,
   fetchFromGitHub,
+  fetchpatch,
   pdm-backend,
   pydantic,
   pytest-asyncio,
-  pytest7CheckHook,
+  pytestCheckHook,
   pythonOlder,
   sqlalchemy,
 }:
 
 buildPythonPackage rec {
   pname = "sqlmodel";
-  version = "0.0.18";
+  version = "0.0.19";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -23,9 +26,17 @@ buildPythonPackage rec {
     owner = "tiangolo";
     repo = "sqlmodel";
     rev = "refs/tags/${version}";
-    hash = "sha256-2ens+wEFJThccBTBeBy8j1AzKJtebg3dJTGG6+Cpt+Q=";
+    hash = "sha256-Fr/umAgTbcfBtui+V/ncp4no+pquLExB/dInSFhsgGc=";
   };
 
+  patches = [
+    (fetchpatch { # https://github.com/tiangolo/sqlmodel/pull/969
+      name = "passthru-environ-variables.patch";
+      url = "https://github.com/tiangolo/sqlmodel/pull/969/commits/42d33049e9e4182b78914ad41d1e3d30125126ba.patch";
+      hash = "sha256-dPuFCFUnmTpduxn45tE8XUP0Jlwjwmwe+zFaKSganOg=";
+    })
+  ];
+
   build-system = [ pdm-backend ];
 
   dependencies = [
@@ -34,10 +45,12 @@ buildPythonPackage rec {
   ];
 
   nativeCheckInputs = [
+    black
+    jinja2
     dirty-equals
     fastapi
     pytest-asyncio
-    pytest7CheckHook
+    pytestCheckHook
   ];
 
   pythonImportsCheck = [ "sqlmodel" ];
diff --git a/pkgs/development/python-modules/sqlobject/default.nix b/pkgs/development/python-modules/sqlobject/default.nix
index e4ac317418ab2..211bbafd06662 100644
--- a/pkgs/development/python-modules/sqlobject/default.nix
+++ b/pkgs/development/python-modules/sqlobject/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, formencode
-, pastedeploy
-, paste
-, pydispatcher
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  formencode,
+  pastedeploy,
+  paste,
+  pydispatcher,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -29,18 +30,14 @@ buildPythonPackage rec {
     pydispatcher
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # https://github.com/sqlobject/sqlobject/issues/179
     "test_fail"
   ];
 
-  pythonImportsCheck = [
-    "sqlobject"
-  ];
+  pythonImportsCheck = [ "sqlobject" ];
 
   meta = with lib; {
     description = "Object Relational Manager for providing an object interface to your database";
diff --git a/pkgs/development/python-modules/sqlparse/default.nix b/pkgs/development/python-modules/sqlparse/default.nix
index 2e63191e033c5..69c91cf65c0cf 100644
--- a/pkgs/development/python-modules/sqlparse/default.nix
+++ b/pkgs/development/python-modules/sqlparse/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatchling
-, installShellFiles
-, pytestCheckHook
-, pythonOlder
-
-# for passthru.tests
-, django
-, django_4
-, django-silk
-, pgadmin4
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatchling,
+  installShellFiles,
+  pytestCheckHook,
+  pythonOlder,
+
+  # for passthru.tests
+  django,
+  django_4,
+  django-silk,
+  pgadmin4,
 }:
 
 buildPythonPackage rec {
@@ -36,7 +37,12 @@ buildPythonPackage rec {
   '';
 
   passthru.tests = {
-    inherit django django_4 django-silk pgadmin4;
+    inherit
+      django
+      django_4
+      django-silk
+      pgadmin4
+      ;
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/sqlsoup/default.nix b/pkgs/development/python-modules/sqlsoup/default.nix
deleted file mode 100644
index d75621cc6345c..0000000000000
--- a/pkgs/development/python-modules/sqlsoup/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ buildPythonPackage, fetchPypi, lib, sqlalchemy, nose }:
-
-buildPythonPackage rec {
-  pname = "sqlsoup";
-  version = "0.9.1";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "1mj00fhxj75ac3i8xk9jmm7hvcjz9p4x2r3yndcwsgb659rvgbrg";
-  };
-
-  propagatedBuildInputs = [ sqlalchemy ];
-  nativeCheckInputs = [ nose ];
-
-  meta = with lib; {
-    description = "A one step database access tool, built on the SQLAlchemy ORM";
-    homepage = "https://github.com/zzzeek/sqlsoup";
-    license = licenses.mit;
-    maintainers = [];
-    broken = true; # incompatible with sqlalchemy>=1.4 and unmaintained since 2016
-  };
-}
diff --git a/pkgs/development/python-modules/sqltrie/default.nix b/pkgs/development/python-modules/sqltrie/default.nix
index 6c8ee069a8cfe..c87c7442761f6 100644
--- a/pkgs/development/python-modules/sqltrie/default.nix
+++ b/pkgs/development/python-modules/sqltrie/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, attrs
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pygtrie
-, orjson
-, python
-, setuptools-scm
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pygtrie,
+  orjson,
+  python,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-QR5IlMHrDNsauKW3VQG0ibMUwetATuwX4fszGPzKuxg=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     attrs
@@ -36,9 +35,7 @@ buildPythonPackage rec {
   # nox is not available at the moment
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sqltrie"
-  ];
+  pythonImportsCheck = [ "sqltrie" ];
 
   meta = with lib; {
     description = "DVC's data management subsystem";
diff --git a/pkgs/development/python-modules/squarify/default.nix b/pkgs/development/python-modules/squarify/default.nix
index 5bdc4c43f3fb1..b37df470acaad 100644
--- a/pkgs/development/python-modules/squarify/default.nix
+++ b/pkgs/development/python-modules/squarify/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, pytestCheckHook
-, matplotlib
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  pytestCheckHook,
+  matplotlib,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/sre-yield/default.nix b/pkgs/development/python-modules/sre-yield/default.nix
index 68d8c43ebb13a..04cc121840902 100644
--- a/pkgs/development/python-modules/sre-yield/default.nix
+++ b/pkgs/development/python-modules/sre-yield/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,14 +17,10 @@ buildPythonPackage rec {
     hash = "sha256-6U8aKjy6//4dzRXB1U5AGhUX4FKqZMfTFk+I3HYde4o=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   doCheck = true;
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   meta = with lib; {
     description = "Python library to efficiently generate all values that can match a given regular expression";
@@ -33,4 +30,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ danc86 ];
   };
 }
-
diff --git a/pkgs/development/python-modules/srp/default.nix b/pkgs/development/python-modules/srp/default.nix
index 9527131231340..6c907d58a2a5a 100644
--- a/pkgs/development/python-modules/srp/default.nix
+++ b/pkgs/development/python-modules/srp/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,22 +18,18 @@ buildPythonPackage rec {
     hash = "sha256-LbRTvc4mue6tNnp7V4MHTvgOhIK/MMAUCnuJg2oFRwc=";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   # Tests ends up with libssl.so cannot load shared
   doCheck = false;
 
-  pythonImportsCheck = [
-    "srp"
-  ];
+  pythonImportsCheck = [ "srp" ];
 
   meta = with lib; {
     description = "Implementation of the Secure Remote Password protocol (SRP)";
     longDescription = ''
-     This package provides an implementation of the Secure Remote Password protocol (SRP).
-     SRP is a cryptographically strong authentication protocol for password-based, mutual authentication over an insecure network connection.
+      This package provides an implementation of the Secure Remote Password protocol (SRP).
+      SRP is a cryptographically strong authentication protocol for password-based, mutual authentication over an insecure network connection.
     '';
     homepage = "https://github.com/cocagne/pysrp";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/srpenergy/default.nix b/pkgs/development/python-modules/srpenergy/default.nix
index 8d82ad614d0dc..7eb66f05d5442 100644
--- a/pkgs/development/python-modules/srpenergy/default.nix
+++ b/pkgs/development/python-modules/srpenergy/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, python-dateutil
-, requests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  python-dateutil,
+  requests,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -27,18 +28,14 @@ buildPythonPackage rec {
       --replace-fail "setuptools==" "setuptools>="
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     python-dateutil
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "srpenergy.client" ];
 
diff --git a/pkgs/development/python-modules/srptools/default.nix b/pkgs/development/python-modules/srptools/default.nix
index 801980b9214d1..5e443c6665b54 100644
--- a/pkgs/development/python-modules/srptools/default.nix
+++ b/pkgs/development/python-modules/srptools/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-f6QzclahVC6PW7S+0Z4dmuqY/l/5uvdmkzQqHdasfJY=";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "srptools"
-  ];
+  pythonImportsCheck = [ "srptools" ];
 
   meta = with lib; {
     description = "Module to implement Secure Remote Password (SRP) authentication";
diff --git a/pkgs/development/python-modules/srsly/default.nix b/pkgs/development/python-modules/srsly/default.nix
index be1871c0dd14e..5d40ccd3a06e5 100644
--- a/pkgs/development/python-modules/srsly/default.nix
+++ b/pkgs/development/python-modules/srsly/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, cython_0
-, catalogue
-, mock
-, numpy
-, psutil
-, pytest
-, ruamel-yaml
-, setuptools
-, tornado
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  cython_0,
+  catalogue,
+  mock,
+  numpy,
+  psutil,
+  pytest,
+  ruamel-yaml,
+  setuptools,
+  tornado,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  propagatedBuildInputs = [
-    catalogue
-  ];
+  propagatedBuildInputs = [ catalogue ];
 
   nativeCheckInputs = [
     mock
@@ -43,9 +42,7 @@ buildPythonPackage rec {
     tornado
   ];
 
-  pythonImportsCheck = [
-    "srsly"
-  ];
+  pythonImportsCheck = [ "srsly" ];
 
   meta = with lib; {
     changelog = "https://github.com/explosion/srsly/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/srt/default.nix b/pkgs/development/python-modules/srt/default.nix
index 8fb0d72761418..d4ae26479ca60 100644
--- a/pkgs/development/python-modules/srt/default.nix
+++ b/pkgs/development/python-modules/srt/default.nix
@@ -1,9 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hypothesis
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hypothesis,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -11,8 +11,6 @@ buildPythonPackage rec {
   version = "3.5.3";
   format = "setuptools";
 
-  disabled = pythonOlder "2.7";
-
   src = fetchPypi {
     inherit pname version;
     sha256 = "sha256-SIQxUEOk8HQP0fh47WyqN2rAbXDhNfMGptxEYy7tDMA=";
@@ -27,8 +25,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/cdown/srt";
-    description = "A tiny but featureful Python library for parsing, modifying, and composing SRT files";
+    description = "Tiny but featureful Python library for parsing, modifying, and composing SRT files";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ friedelino ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/srvlookup/default.nix b/pkgs/development/python-modules/srvlookup/default.nix
index a81c1d25da23c..c13860e68db96 100644
--- a/pkgs/development/python-modules/srvlookup/default.nix
+++ b/pkgs/development/python-modules/srvlookup/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, dnspython
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  dnspython,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-iXbi25HsoNX0hnhwZoFik5ddlJ7i+xml3HGaezj3jgY=";
   };
 
-  propagatedBuildInputs = [
-    dnspython
-  ];
+  propagatedBuildInputs = [ dnspython ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "srvlookup"
-  ];
+  pythonImportsCheck = [ "srvlookup" ];
 
   meta = with lib; {
     description = "Wrapper for dnspython to return SRV records for a given host, protocol, and domain name";
diff --git a/pkgs/development/python-modules/ssdeep/default.nix b/pkgs/development/python-modules/ssdeep/default.nix
index 44a7f37190dc7..83c720de8e830 100644
--- a/pkgs/development/python-modules/ssdeep/default.nix
+++ b/pkgs/development/python-modules/ssdeep/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, cffi
-, fetchFromGitHub
-, pytestCheckHook
-, six
-, ssdeep
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  cffi,
+  fetchFromGitHub,
+  pytestCheckHook,
+  six,
+  ssdeep,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,27 +23,21 @@ buildPythonPackage rec {
     hash = "sha256-I5ci5BS+B3OE0xdLSahu3HCh99jjhnRHJFz830SvFpg=";
   };
 
-  buildInputs = [
-    ssdeep
-  ];
+  buildInputs = [ ssdeep ];
 
   propagatedBuildInputs = [
     cffi
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace setup.py \
       --replace '"pytest-runner"' ""
   '';
 
-  pythonImportsCheck = [
-    "ssdeep"
-  ];
+  pythonImportsCheck = [ "ssdeep" ];
 
   meta = with lib; {
     description = "Python wrapper for the ssdeep library";
diff --git a/pkgs/development/python-modules/ssdp/default.nix b/pkgs/development/python-modules/ssdp/default.nix
index 87e4181c9b635..b354b35a01c1b 100644
--- a/pkgs/development/python-modules/ssdp/default.nix
+++ b/pkgs/development/python-modules/ssdp/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, flit-scm
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  flit-scm,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -31,13 +32,9 @@ buildPythonPackage rec {
     flit-scm
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ssdp"
-  ];
+  pythonImportsCheck = [ "ssdp" ];
 
   meta = with lib; {
     description = "Python asyncio library for Simple Service Discovery Protocol (SSDP)";
diff --git a/pkgs/development/python-modules/ssdpy/default.nix b/pkgs/development/python-modules/ssdpy/default.nix
index ba9d32d710b18..8cadb4ec74fa9 100644
--- a/pkgs/development/python-modules/ssdpy/default.nix
+++ b/pkgs/development/python-modules/ssdpy/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
-, pytest-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  pytest-mock,
 }:
 
 buildPythonPackage rec {
@@ -40,7 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/MoshiBin/ssdpy/releases/tag/${version}";
-    description = "A lightweight, compatible SSDP library for Python";
+    description = "Lightweight, compatible SSDP library for Python";
     homepage = "https://github.com/MoshiBin/ssdpy";
     license = licenses.mit;
     maintainers = with maintainers; [ mjm ];
diff --git a/pkgs/development/python-modules/sse-starlette/default.nix b/pkgs/development/python-modules/sse-starlette/default.nix
index d2fc7de38bb17..baeaf9436c5ca 100644
--- a/pkgs/development/python-modules/sse-starlette/default.nix
+++ b/pkgs/development/python-modules/sse-starlette/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "sse-starlette";
-  version = "2.1.0";
+  version = "2.1.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "sysid";
     repo = "sse-starlette";
     rev = "refs/tags/v${version}";
-    hash = "sha256-gBkEs1jSKIOme2rbLf+pM3jFDgJkxyU92q+GsUsp8Eo=";
+    hash = "sha256-/aL0IkMdHNt7Ms1Et+xf00B9FGI31FuHAiJbxVMm3w0=";
   };
 
   build-system = [ pdm-backend ];
diff --git a/pkgs/development/python-modules/sseclient-py/default.nix b/pkgs/development/python-modules/sseclient-py/default.nix
index 5e9fcf4c61e9a..b8ea4f4053f3f 100644
--- a/pkgs/development/python-modules/sseclient-py/default.nix
+++ b/pkgs/development/python-modules/sseclient-py/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,17 +20,11 @@ buildPythonPackage rec {
     hash = "sha256-rNiJqR7/e+Rhi6kVBY8gZJZczqSUsyszotXkb4OKfWk=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "sseclient"
-  ];
+  pythonImportsCheck = [ "sseclient" ];
 
-  pytestFlagsArray = [
-    "tests/unittests.py"
-  ];
+  pytestFlagsArray = [ "tests/unittests.py" ];
 
   meta = with lib; {
     description = "Pure-Python Server Side Events (SSE) client";
diff --git a/pkgs/development/python-modules/sseclient/default.nix b/pkgs/development/python-modules/sseclient/default.nix
index bc1be1222bbe6..70927d104e5dc 100644
--- a/pkgs/development/python-modules/sseclient/default.nix
+++ b/pkgs/development/python-modules/sseclient/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, requests
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +25,9 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = [
-    "event_stream"
-  ];
+  disabledTests = [ "event_stream" ];
 
   meta = with lib; {
     description = "Client library for reading Server Sent Event streams";
diff --git a/pkgs/development/python-modules/sshfs/default.nix b/pkgs/development/python-modules/sshfs/default.nix
index a014d59b38c8a..300cba868c0c3 100644
--- a/pkgs/development/python-modules/sshfs/default.nix
+++ b/pkgs/development/python-modules/sshfs/default.nix
@@ -1,15 +1,16 @@
-{ stdenv
-, lib
-, asyncssh
-, bcrypt
-, buildPythonPackage
-, fetchFromGitHub
-, fsspec
-, mock-ssh-server
-, pytest-asyncio
-, pytestCheckHook
-, setuptools
-, setuptools-scm
+{
+  stdenv,
+  lib,
+  asyncssh,
+  bcrypt,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fsspec,
+  mock-ssh-server,
+  pytest-asyncio,
+  pytestCheckHook,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -48,9 +49,7 @@ buildPythonPackage rec {
     "test_checksum"
   ];
 
-  pythonImportsCheck = [
-    "sshfs"
-  ];
+  pythonImportsCheck = [ "sshfs" ];
 
   meta = with lib; {
     description = "SSH/SFTP implementation for fsspec";
diff --git a/pkgs/development/python-modules/sshpubkeys/default.nix b/pkgs/development/python-modules/sshpubkeys/default.nix
index a63b456292f37..0f2fc24474a12 100644
--- a/pkgs/development/python-modules/sshpubkeys/default.nix
+++ b/pkgs/development/python-modules/sshpubkeys/default.nix
@@ -1,6 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub
-, cryptography
-, ecdsa
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cryptography,
+  ecdsa,
 }:
 
 buildPythonPackage rec {
@@ -15,7 +18,10 @@ buildPythonPackage rec {
     sha256 = "1qsixmqg97kyvg1naw76blq4314vaw4hl5f9wi0v111mcmdia1r4";
   };
 
-  propagatedBuildInputs = [ cryptography ecdsa ];
+  propagatedBuildInputs = [
+    cryptography
+    ecdsa
+  ];
 
   meta = with lib; {
     description = "OpenSSH Public Key Parser for Python";
diff --git a/pkgs/development/python-modules/sshtunnel/default.nix b/pkgs/development/python-modules/sshtunnel/default.nix
index dff398addf8a4..e683eac23e35d 100644
--- a/pkgs/development/python-modules/sshtunnel/default.nix
+++ b/pkgs/development/python-modules/sshtunnel/default.nix
@@ -1,7 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi
-, paramiko
-, pytestCheckHook
-, mock
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  paramiko,
+  pytestCheckHook,
+  mock,
 }:
 
 buildPythonPackage rec {
@@ -16,7 +19,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ paramiko ];
 
-  nativeCheckInputs = [ pytestCheckHook mock ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    mock
+  ];
 
   # disable impure tests
   disabledTests = [
diff --git a/pkgs/development/python-modules/sslib/default.nix b/pkgs/development/python-modules/sslib/default.nix
index 4f0492b84b37e..422a775e1ef51 100644
--- a/pkgs/development/python-modules/sslib/default.nix
+++ b/pkgs/development/python-modules/sslib/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchPypi, buildPythonPackage, isPy3k }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  isPy3k,
+}:
 
 buildPythonPackage rec {
   pname = "sslib";
@@ -16,7 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/jqueiroz/python-sslib";
-    description = "A Python3 library for sharing secrets";
+    description = "Python3 library for sharing secrets";
     license = licenses.mit;
     maintainers = with maintainers; [ jqueiroz ];
   };
diff --git a/pkgs/development/python-modules/stack-data/default.nix b/pkgs/development/python-modules/stack-data/default.nix
index a3fe6964f755e..5e27b9805af63 100644
--- a/pkgs/development/python-modules/stack-data/default.nix
+++ b/pkgs/development/python-modules/stack-data/default.nix
@@ -1,17 +1,18 @@
-{ asttokens
-, buildPythonPackage
-, cython
-, executing
-, fetchFromGitHub
-, lib
-, littleutils
-, pure-eval
-, pygments
-, pytestCheckHook
-, setuptools-scm
-, typeguard
-, setuptools
-, wheel
+{
+  asttokens,
+  buildPythonPackage,
+  cython,
+  executing,
+  fetchFromGitHub,
+  lib,
+  littleutils,
+  pure-eval,
+  pygments,
+  pytestCheckHook,
+  setuptools-scm,
+  typeguard,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/stanio/default.nix b/pkgs/development/python-modules/stanio/default.nix
index ef4928e6e4f8b..27d754a7d8944 100644
--- a/pkgs/development/python-modules/stanio/default.nix
+++ b/pkgs/development/python-modules/stanio/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     hash = "sha256-3uQpMU2WXzkBga+o/3/4FERG7rWMwlR8zBCLpz5nROI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   pythonImportsCheck = [ "stanio" ];
 
diff --git a/pkgs/development/python-modules/stanza/default.nix b/pkgs/development/python-modules/stanza/default.nix
index 0f7d7fddacb1b..dbc64f227bda2 100644
--- a/pkgs/development/python-modules/stanza/default.nix
+++ b/pkgs/development/python-modules/stanza/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, emoji
-, fetchFromGitHub
-, networkx
-, numpy
-, peft
-, protobuf
-, pythonOlder
-, requests
-, six
-, toml
-, torch
-, tqdm
-, transformers
+{
+  lib,
+  buildPythonPackage,
+  emoji,
+  fetchFromGitHub,
+  networkx,
+  numpy,
+  peft,
+  protobuf,
+  pythonOlder,
+  requests,
+  six,
+  toml,
+  torch,
+  tqdm,
+  transformers,
 }:
 
 buildPythonPackage rec {
@@ -46,9 +47,7 @@ buildPythonPackage rec {
   # Tests require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "stanza"
-  ];
+  pythonImportsCheck = [ "stanza" ];
 
   meta = with lib; {
     description = "Official Stanford NLP Python Library for Many Human Languages";
diff --git a/pkgs/development/python-modules/starkbank-ecdsa/default.nix b/pkgs/development/python-modules/starkbank-ecdsa/default.nix
index ec741b7e1ee41..f0158e4a0d42f 100644
--- a/pkgs/development/python-modules/starkbank-ecdsa/default.nix
+++ b/pkgs/development/python-modules/starkbank-ecdsa/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-HarlCDE2qOLbyhMLOE++bTC+7srJqwmohM6vrJkJ/gc=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     cd tests
@@ -32,9 +31,7 @@ buildPythonPackage rec {
     "*.py"
   ];
 
-  pythonImportsCheck = [
-    "ellipticcurve"
-  ];
+  pythonImportsCheck = [ "ellipticcurve" ];
 
   meta = with lib; {
     description = "Python ECDSA library";
diff --git a/pkgs/development/python-modules/starlette-context/default.nix b/pkgs/development/python-modules/starlette-context/default.nix
index 2657e9740a60e..1fbe852147d75 100644
--- a/pkgs/development/python-modules/starlette-context/default.nix
+++ b/pkgs/development/python-modules/starlette-context/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, httpx
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, starlette
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  httpx,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  starlette,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
     hash = "sha256-ZKwE2M86clYKdptd0o/j8VYUOj/Y/72uUnpxFbJ65vw=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    starlette
-  ];
+  dependencies = [ starlette ];
 
   nativeCheckInputs = [
     httpx
@@ -37,9 +34,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "starlette_context"
-  ];
+  pythonImportsCheck = [ "starlette_context" ];
 
   meta = with lib; {
     description = "Middleware for Starlette that allows you to store and access the context data of a request";
diff --git a/pkgs/development/python-modules/starlette-wtf/default.nix b/pkgs/development/python-modules/starlette-wtf/default.nix
index 3ca744a71f2f4..9396dba186d76 100644
--- a/pkgs/development/python-modules/starlette-wtf/default.nix
+++ b/pkgs/development/python-modules/starlette-wtf/default.nix
@@ -1,31 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, itsdangerous
-, python-multipart
-, starlette
-, wtforms
-, httpx
-, jinja2
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  itsdangerous,
+  python-multipart,
+  starlette,
+  wtforms,
+  httpx,
+  jinja2,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "starlette-wtf";
-  version = "0.4.3";
+  version = "0.4.5";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "muicss";
     repo = "starlette-wtf";
-    rev = "v${version}";
-    hash = "sha256-TSxcIgINRjQwiyhpGOEEpXJKcPlhFCxMQh4/GY1g1lw=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-88zU2NAsdty2OhHauwQ5+6LazuRDYPoqN9IIipI1t2Q=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
   propagatedBuildInputs = [
     itsdangerous
     python-multipart
@@ -40,7 +39,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A simple tool for integrating Starlette and WTForms";
+    description = "Simple tool for integrating Starlette and WTForms";
     changelog = "https://github.com/muicss/starlette-wtf/blob/v${version}/CHANGELOG.md";
     homepage = "https://github.com/muicss/starlette-wtf";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/starlette/default.nix b/pkgs/development/python-modules/starlette/default.nix
index 5bdc0c505a090..73fb920314c97 100644
--- a/pkgs/development/python-modules/starlette/default.nix
+++ b/pkgs/development/python-modules/starlette/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-
-# build-system
-, hatchling
-
-# dependencies
-, anyio
-, typing-extensions
-
-# optional dependencies
-, itsdangerous
-, jinja2
-, python-multipart
-, pyyaml
-, httpx
-
-# tests
-, pytestCheckHook
-, pythonOlder
-, trio
-
-# reverse dependencies
-, fastapi
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  hatchling,
+
+  # dependencies
+  anyio,
+  typing-extensions,
+
+  # optional dependencies
+  itsdangerous,
+  jinja2,
+  python-multipart,
+  pyyaml,
+  httpx,
+
+  # tests
+  pytestCheckHook,
+  pythonOlder,
+  trio,
+
+  # reverse dependencies
+  fastapi,
 }:
 
 buildPythonPackage rec {
@@ -39,17 +40,11 @@ buildPythonPackage rec {
     hash = "sha256-GiCN1sfhLu9i19d2OcLZrlY8E64DFrFh+ITRSvLaxdE=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
-  propagatedBuildInputs = [
-    anyio
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    typing-extensions
-  ];
+  dependencies = [ anyio ] ++ lib.optionals (pythonOlder "3.10") [ typing-extensions ];
 
-  passthru.optional-dependencies.full = [
+  optional-dependencies.full = [
     itsdangerous
     jinja2
     python-multipart
@@ -61,16 +56,16 @@ buildPythonPackage rec {
     pytestCheckHook
     trio
     typing-extensions
-  ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
+  ] ++ lib.flatten (lib.attrValues optional-dependencies);
 
   pytestFlagsArray = [
-    "-W" "ignore::DeprecationWarning"
-    "-W" "ignore::trio.TrioDeprecationWarning"
+    "-W"
+    "ignore::DeprecationWarning"
+    "-W"
+    "ignore::trio.TrioDeprecationWarning"
   ];
 
-  pythonImportsCheck = [
-    "starlette"
-  ];
+  pythonImportsCheck = [ "starlette" ];
 
   passthru.tests = {
     inherit fastapi;
@@ -80,7 +75,7 @@ buildPythonPackage rec {
     changelog = "https://www.starlette.io/release-notes/#${lib.replaceStrings [ "." ] [ "" ] version}";
     downloadPage = "https://github.com/encode/starlette";
     homepage = "https://www.starlette.io/";
-    description = "The little ASGI framework that shines";
+    description = "Little ASGI framework that shines";
     license = licenses.bsd3;
     maintainers = with maintainers; [ wd15 ];
   };
diff --git a/pkgs/development/python-modules/starline/default.nix b/pkgs/development/python-modules/starline/default.nix
index 0496aad832614..4fbccc73f76a6 100644
--- a/pkgs/development/python-modules/starline/default.nix
+++ b/pkgs/development/python-modules/starline/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, fetchpatch
-, setuptools
-, requests
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  fetchpatch,
+  setuptools,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +29,9 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # no tests implemented
   doCheck = false;
diff --git a/pkgs/development/python-modules/stashy/default.nix b/pkgs/development/python-modules/stashy/default.nix
index fbac0df71f1de..96903ff8e51f1 100644
--- a/pkgs/development/python-modules/stashy/default.nix
+++ b/pkgs/development/python-modules/stashy/default.nix
@@ -1,30 +1,32 @@
-{ lib
-, buildPythonPackage
-, decorator
-, fetchPypi
-, pythonOlder
-, requests
- }:
+{
+  lib,
+  buildPythonPackage,
+  decorator,
+  fetchPypi,
+  requests,
+}:
 
 buildPythonPackage rec {
   pname = "stashy";
   version = "0.7";
   format = "setuptools";
-  disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
     sha256 = "1x89zazwxnsx6rdfw8nfr372hj4sk8nrcs5hsjxpcxcva0calrcr";
   };
 
-  propagatedBuildInputs = [ decorator requests ];
+  propagatedBuildInputs = [
+    decorator
+    requests
+  ];
 
   # Tests require internet connection
   doCheck = false;
   pythonImportsCheck = [ "stashy" ];
 
   meta = with lib; {
-    description = "Python client for the Atlassian Bitbucket Server (formerly known as Stash) REST API.";
+    description = "Python client for the Atlassian Bitbucket Server (formerly known as Stash) REST API";
     homepage = "https://github.com/cosmin/stashy";
     license = licenses.asl20;
     maintainers = with maintainers; [ mupdt ];
diff --git a/pkgs/development/python-modules/static3/default.nix b/pkgs/development/python-modules/static3/default.nix
index cf0c6c8e30f4c..050fb2119daee 100644
--- a/pkgs/development/python-modules/static3/default.nix
+++ b/pkgs/development/python-modules/static3/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# optionals
-, genshi
+  # optionals
+  genshi,
 
-# tests
-, pytestCheckHook
-, webtest
+  # tests
+  pytestCheckHook,
+  webtest,
 }:
 
 buildPythonPackage rec {
@@ -31,23 +32,19 @@ buildPythonPackage rec {
     KidMagic = [
       # TODO: kid
     ];
-    Genshimagic = [
-      genshi
-    ];
+    Genshimagic = [ genshi ];
   };
 
-  pythonImportsCheck = [
-    "static"
-  ];
+  pythonImportsCheck = [ "static" ];
 
-  nativeCheckInputs  = [
+  nativeCheckInputs = [
     pytestCheckHook
     webtest
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
   meta = with lib; {
     changelog = "https://github.com/rmohr/static3/releases/tag/v${version}";
-    description = "A really simple WSGI way to serve static (or mixed) content";
+    description = "Really simple WSGI way to serve static (or mixed) content";
     mainProgram = "static";
     homepage = "https://github.com/rmohr/static3";
     license = licenses.lgpl21Only;
diff --git a/pkgs/development/python-modules/staticjinja/default.nix b/pkgs/development/python-modules/staticjinja/default.nix
index a0e6659d0d25a..2967f11b9aa67 100644
--- a/pkgs/development/python-modules/staticjinja/default.nix
+++ b/pkgs/development/python-modules/staticjinja/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, poetry-core
-, docopt-ng
-, easywatch
-, jinja2
-, pytestCheckHook
-, pytest-check
-, pythonOlder
-, markdown
-, testers
-, tomlkit
-, typing-extensions
-, staticjinja
-, callPackage
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  poetry-core,
+  docopt-ng,
+  easywatch,
+  jinja2,
+  pytestCheckHook,
+  pytest-check,
+  pythonOlder,
+  markdown,
+  testers,
+  tomlkit,
+  typing-extensions,
+  staticjinja,
+  callPackage,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     hash = "sha256-LfJTQhZtnTOm39EWF1m2MP5rxz/5reE0G1Uk9L7yx0w=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     jinja2
@@ -56,11 +55,11 @@ buildPythonPackage rec {
 
   passthru.tests = {
     version = testers.testVersion { package = staticjinja; };
-    minimal-template = callPackage ./test-minimal-template {};
+    minimal-template = callPackage ./test-minimal-template { };
   };
 
   meta = with lib; {
-    description = "A library and cli tool that makes it easy to build static sites using Jinja2";
+    description = "Library and cli tool that makes it easy to build static sites using Jinja2";
     mainProgram = "staticjinja";
     homepage = "https://staticjinja.readthedocs.io/en/latest/";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/staticmap/default.nix b/pkgs/development/python-modules/staticmap/default.nix
index bb3eac8655bdf..2136f016fc2c0 100644
--- a/pkgs/development/python-modules/staticmap/default.nix
+++ b/pkgs/development/python-modules/staticmap/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pillow
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pillow,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -15,7 +16,10 @@ buildPythonPackage rec {
     hash = "sha256-x6lrkCumEpLoGMILCBBhnWuBps21C8wauS1QrE2yCn8=";
   };
 
-  propagatedBuildInputs = [ requests pillow ];
+  propagatedBuildInputs = [
+    requests
+    pillow
+  ];
 
   pythonImportsCheck = [ "staticmap" ];
 
@@ -23,7 +27,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A small, python-based library for creating map images with lines and markers";
+    description = "Small, python-based library for creating map images with lines and markers";
     homepage = "https://pypi.org/project/staticmap/";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ traxys ];
diff --git a/pkgs/development/python-modules/statistics/default.nix b/pkgs/development/python-modules/statistics/default.nix
index 2e3c62671a1cb..4f43cb0120b01 100644
--- a/pkgs/development/python-modules/statistics/default.nix
+++ b/pkgs/development/python-modules/statistics/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, docutils
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  docutils,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = {
-    description = "A Python 2.* port of 3.4 Statistics Module";
+    description = "Python 2.* port of 3.4 Statistics Module";
     homepage = "https://github.com/digitalemagine/py-statistics";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ ];
diff --git a/pkgs/development/python-modules/statmake/default.nix b/pkgs/development/python-modules/statmake/default.nix
index 0970b8f882dc8..ee3d79302a2c2 100644
--- a/pkgs/development/python-modules/statmake/default.nix
+++ b/pkgs/development/python-modules/statmake/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, attrs
-, buildPythonPackage
-, cattrs
-, exceptiongroup
-, fetchFromGitHub
-, fonttools
-, fs
-, importlib-metadata
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, ufo2ft
-, ufolib2
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  cattrs,
+  exceptiongroup,
+  fetchFromGitHub,
+  fonttools,
+  fs,
+  importlib-metadata,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  ufo2ft,
+  ufolib2,
 }:
 
 buildPythonPackage rec {
@@ -28,21 +29,18 @@ buildPythonPackage rec {
     hash = "sha256-3BZ71JVvj7GCojM8ycu160viPj8BLJ1SiW86Df2fzsw=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    attrs
-    cattrs
-    fonttools
-    # required by fonttools[ufo]
-    fs
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    exceptiongroup
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  propagatedBuildInputs =
+    [
+      attrs
+      cattrs
+      fonttools
+      # required by fonttools[ufo]
+      fs
+    ]
+    ++ lib.optionals (pythonOlder "3.11") [ exceptiongroup ]
+    ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -50,9 +48,7 @@ buildPythonPackage rec {
     ufolib2
   ];
 
-  pythonImportsCheck = [
-    "statmake"
-  ];
+  pythonImportsCheck = [ "statmake" ];
 
   disabledTests = [
     # Test requires an update as later cattrs is present in Nixpkgs
diff --git a/pkgs/development/python-modules/statsd/default.nix b/pkgs/development/python-modules/statsd/default.nix
index 7ff02acd0bdcb..1f6e5df951125 100644
--- a/pkgs/development/python-modules/statsd/default.nix
+++ b/pkgs/development/python-modules/statsd/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pynose
-, mock
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pynose,
+  mock,
 }:
 
 buildPythonPackage rec {
@@ -16,11 +17,12 @@ buildPythonPackage rec {
     hash = "sha256-mXY9qBv+qNr2s9ItEarMsBqND1LqUh2qs351ikyn0Sg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [ pynose mock ];
+  nativeCheckInputs = [
+    pynose
+    mock
+  ];
 
   checkPhase = ''
     nosetests -sv
@@ -28,9 +30,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     maintainers = with maintainers; [ domenkozar ];
-    description = "A simple statsd client";
+    description = "Simple statsd client";
     license = licenses.mit;
     homepage = "https://github.com/jsocol/pystatsd";
   };
-
 }
diff --git a/pkgs/development/python-modules/statsmodels/default.nix b/pkgs/development/python-modules/statsmodels/default.nix
index e3f40a5cff31f..d7447e6c33b71 100644
--- a/pkgs/development/python-modules/statsmodels/default.nix
+++ b/pkgs/development/python-modules/statsmodels/default.nix
@@ -1,15 +1,17 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchPypi
-, numpy
-, packaging
-, pandas
-, patsy
-, pythonOlder
-, scipy
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchPypi,
+  numpy,
+  packaging,
+  pandas,
+  patsy,
+  pythonOlder,
+  scipy,
+  setuptools,
+  setuptools-scm,
+  stdenv,
 }:
 
 buildPythonPackage rec {
@@ -48,14 +50,14 @@ buildPythonPackage rec {
   # Huge test suites with several test failures
   doCheck = false;
 
-  pythonImportsCheck = [
-    "statsmodels"
-  ];
+  pythonImportsCheck = [ "statsmodels" ];
 
   meta = with lib; {
     description = "Statistical computations and models for use with SciPy";
     homepage = "https://www.github.com/statsmodels/statsmodels";
     changelog = "https://github.com/statsmodels/statsmodels/releases/tag/v${version}";
     license = licenses.bsd3;
+    # Fails at build time
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/python-modules/std-uritemplate/default.nix b/pkgs/development/python-modules/std-uritemplate/default.nix
index 5b5d2faa301c7..83c17826ff281 100644
--- a/pkgs/development/python-modules/std-uritemplate/default.nix
+++ b/pkgs/development/python-modules/std-uritemplate/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "std-uritemplate";
-  version = "0.0.57";
+  version = "1.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "std_uritemplate";
     inherit version;
-    hash = "sha256-9K3HF67BOFYuZSuV2nT8aBWpQiMdlxMUhWuB9DTBuUw=";
+    hash = "sha256-Mf7o2nDbj663cdC6OfXIK/newY1NKnUpWTniowXlNvE=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/std2/default.nix b/pkgs/development/python-modules/std2/default.nix
index 8e117b10e775b..aa46ad29dd9f5 100644
--- a/pkgs/development/python-modules/std2/default.nix
+++ b/pkgs/development/python-modules/std2/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/stdiomask/default.nix b/pkgs/development/python-modules/stdiomask/default.nix
index 90d73baceecf3..5a78a3a727e19 100644
--- a/pkgs/development/python-modules/stdiomask/default.nix
+++ b/pkgs/development/python-modules/stdiomask/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/stdlib-list/default.nix b/pkgs/development/python-modules/stdlib-list/default.nix
index 89dbf4afb3e14..9c739a6ec1997 100644
--- a/pkgs/development/python-modules/stdlib-list/default.nix
+++ b/pkgs/development/python-modules/stdlib-list/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, flit-core
+  # build-system
+  flit-core,
 }:
 
 buildPythonPackage rec {
@@ -17,20 +18,16 @@ buildPythonPackage rec {
     hash = "sha256-ZRnFDWRVE+0odle/6FbVJ/J3MxVAaR3er3eyVFmWShQ=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  pythonImportsCheck = [
-    "stdlib_list"
-  ];
+  pythonImportsCheck = [ "stdlib_list" ];
 
   # tests see mismatches to our standard library
   doCheck = false;
 
   meta = with lib; {
     changelog = "https://github.com/pypi/stdlib-list/releases/tag/v${version}";
-    description = "A list of Python Standard Libraries";
+    description = "List of Python Standard Libraries";
     homepage = "https://github.com/jackmaney/python-stdlib-list";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/stdlibs/default.nix b/pkgs/development/python-modules/stdlibs/default.nix
index 677d282f06536..fb9c0f54479f4 100644
--- a/pkgs/development/python-modules/stdlibs/default.nix
+++ b/pkgs/development/python-modules/stdlibs/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "stdlibs";
-  version = "2024.1.28";
-  format = "pyproject";
+  version = "2024.5.15";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -16,19 +17,15 @@ buildPythonPackage rec {
     owner = "omnilib";
     repo = "stdlibs";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xf46ih7viVUKNIT1tLs5MQPNjNtQlQ2N9BJIGPt4Srk=";
+    hash = "sha256-DthHvL5x3HVwACLnxeyuoC0hb8OokabODircEY9eEhE=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  build-system = [ flit-core ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "stdlibs"
-  ];
+  pythonImportsCheck = [ "stdlibs" ];
 
   meta = with lib; {
     description = "Overview of the Python stdlib";
diff --git a/pkgs/development/python-modules/steamodd/default.nix b/pkgs/development/python-modules/steamodd/default.nix
index edc489b297e8e..dd1be22acb1a4 100644
--- a/pkgs/development/python-modules/steamodd/default.nix
+++ b/pkgs/development/python-modules/steamodd/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/steamship/default.nix b/pkgs/development/python-modules/steamship/default.nix
index dc39e50aebcd2..ef61a23970649 100644
--- a/pkgs/development/python-modules/steamship/default.nix
+++ b/pkgs/development/python-modules/steamship/default.nix
@@ -1,17 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, pythonRelaxDepsHook
-, requests
-, pydantic
-, aiohttp
-, inflection
-, fluent-logger
-, toml
-, click
-, semver
-, tiktoken
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  requests,
+  pydantic,
+  aiohttp,
+  inflection,
+  fluent-logger,
+  toml,
+  click,
+  semver,
+  tiktoken,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +24,10 @@ buildPythonPackage rec {
     hash = "sha256-U9SA2Dvepl9BjrvhH+8bVBNjby8IWu5UE+/oor7YWzI=";
   };
 
-  pythonRelaxDeps = [
-    "requests"
-  ];
+  pythonRelaxDeps = [ "requests" ];
 
   nativeBuildInputs = [
     setuptools-scm
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -48,12 +45,10 @@ buildPythonPackage rec {
   # almost all tests require "steamship api key"
   doCheck = false;
 
-  pythonImportsCheck = [
-    "steamship"
-  ];
+  pythonImportsCheck = [ "steamship" ];
 
   meta = with lib; {
-    description = "The fastest way to add language AI to your product";
+    description = "Fastest way to add language AI to your product";
     homepage = "https://www.steamship.com/";
     changelog = "https://github.com/steamship-core/python-client/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/stem/default.nix b/pkgs/development/python-modules/stem/default.nix
index 7d9dc7564a09f..fd7cf8c9d6bf8 100644
--- a/pkgs/development/python-modules/stem/default.nix
+++ b/pkgs/development/python-modules/stem/default.nix
@@ -1,11 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, cryptography
-, mock
-, python
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  fetchpatch,
+  setuptools,
+  cryptography,
+  mock,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -23,10 +25,16 @@ buildPythonPackage rec {
     hash = "sha256-Oc73Jx31SLzuhT9Iym5HHszKfflKZ+3aky5flXudvmI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
+  patches = [
+    # fixes deprecated test assertion, assertRaisesRegexp in python 3
+    (fetchpatch {
+      url = "https://github.com/trishtzy/stem/commit/d5012a1039f05c69ebe832723ce96ecbe8f79fe1.patch";
+      hash = "sha256-ozOTx4/c86sW/9Ss5eZ6ZxX63ByJT5x7JF6wBBd+VFY=";
+    })
   ];
 
+  nativeBuildInputs = [ setuptools ];
+
   nativeCheckInputs = [
     cryptography
     mock
diff --git a/pkgs/development/python-modules/stemming/default.nix b/pkgs/development/python-modules/stemming/default.nix
index b0e9ce0c44530..98ef1eea9b092 100644
--- a/pkgs/development/python-modules/stemming/default.nix
+++ b/pkgs/development/python-modules/stemming/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
 }:
 let
   pname = "stemming";
@@ -24,7 +25,7 @@ buildPythonPackage {
   pythonImportsCheck = [ "stemming" ];
 
   meta = with lib; {
-    description = "Python implementations of various stemming algorithms.";
+    description = "Python implementations of various stemming algorithms";
     homepage = "https://github.com/nmstoker/stemming";
     license = licenses.unlicense;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/development/python-modules/stestr/default.nix b/pkgs/development/python-modules/stestr/default.nix
index 723188d6c5eec..57c1723b86c30 100644
--- a/pkgs/development/python-modules/stestr/default.nix
+++ b/pkgs/development/python-modules/stestr/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cliff
-, fixtures
-, future
-, pbr
-, setuptools
-, subunit
-, testtools
-, tomlkit
-, voluptuous
-, callPackage
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cliff,
+  fixtures,
+  future,
+  pbr,
+  setuptools,
+  subunit,
+  testtools,
+  tomlkit,
+  voluptuous,
+  callPackage,
 }:
 
 buildPythonPackage rec {
@@ -55,7 +56,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "stestr" ];
 
   meta = with lib; {
-    description = "A parallel Python test runner built around subunit";
+    description = "Parallel Python test runner built around subunit";
     mainProgram = "stestr";
     homepage = "https://github.com/mtreinish/stestr";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/stestr/tests.nix b/pkgs/development/python-modules/stestr/tests.nix
index f4964fa8f66e3..21d1fd2c7a1e9 100644
--- a/pkgs/development/python-modules/stestr/tests.nix
+++ b/pkgs/development/python-modules/stestr/tests.nix
@@ -1,6 +1,4 @@
-{  buildPythonPackage
-, stestr
-}:
+{ buildPythonPackage, stestr }:
 
 buildPythonPackage {
   pname = "stestr-tests";
@@ -19,9 +17,7 @@ buildPythonPackage {
     pythonOutputDistPhase() { touch $dist; }
   '';
 
-  nativeCheckInputs = [
-    stestr
-  ];
+  nativeCheckInputs = [ stestr ];
 
   checkPhase = ''
     export PATH=$out/bin:$PATH
diff --git a/pkgs/development/python-modules/stevedore/default.nix b/pkgs/development/python-modules/stevedore/default.nix
index 3e7d9dfab3245..b1642c4df1999 100644
--- a/pkgs/development/python-modules/stevedore/default.nix
+++ b/pkgs/development/python-modules/stevedore/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, importlib-metadata
-, pbr
-, setuptools
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  importlib-metadata,
+  pbr,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     pbr
     setuptools
     six
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   doCheck = false;
   pythonImportsCheck = [ "stevedore" ];
diff --git a/pkgs/development/python-modules/stickytape/default.nix b/pkgs/development/python-modules/stickytape/default.nix
index 99e63ebd3dfb2..405d7202a16da 100644
--- a/pkgs/development/python-modules/stickytape/default.nix
+++ b/pkgs/development/python-modules/stickytape/default.nix
@@ -1,38 +1,37 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, nose
-, pytestCheckHook
-, pythonOlder
-, spur
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "stickytape";
   version = "0.2.1";
-  format = "setuptools";
+  pyproject = true;
 
-  disabled = pythonOlder "3.4";
+  disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "mwilliamson";
-    repo = pname;
-    rev = version;
+    repo = "stickytape";
+    rev = "refs/tags/${version}";
     hash = "sha256-KOZN9oxPb91l8QVU07I49UMNXqox8j+oekA1fMtj6l8=";
   };
 
+  build-system = [ setuptools ];
+
   # Tests have additional requirements
   doCheck = false;
 
-  pythonImportsCheck = [
-    "stickytape"
-  ];
+  pythonImportsCheck = [ "stickytape" ];
 
   meta = with lib; {
     description = "Python module to convert Python packages into a single script";
-    mainProgram = "stickytape";
     homepage = "https://github.com/mwilliamson/stickytape";
-    license = with licenses; [ bsd2 ];
+    license = licenses.bsd2;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "stickytape";
   };
 }
diff --git a/pkgs/development/python-modules/stim/default.nix b/pkgs/development/python-modules/stim/default.nix
index 3e95b74ef9ef4..9d1cda9a761fb 100644
--- a/pkgs/development/python-modules/stim/default.nix
+++ b/pkgs/development/python-modules/stim/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, cirq-core
-, fetchFromGitHub
-, matplotlib
-, networkx
-, numpy
-, pandas
-, pybind11
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, scipy
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  cirq-core,
+  fetchFromGitHub,
+  matplotlib,
+  networkx,
+  numpy,
+  pandas,
+  pybind11,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -32,7 +33,7 @@ buildPythonPackage rec {
   postPatch = ''
     # asked to relax this in https://github.com/quantumlib/Stim/issues/623
     substituteInPlace pyproject.toml \
-      --replace "pybind11==" "pybind11>="
+      --replace-quiet "pybind11~=" "pybind11>="
   '';
 
   nativeBuildInputs = [
@@ -41,9 +42,7 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   nativeCheckInputs = [
     cirq-core
@@ -55,9 +54,7 @@ buildPythonPackage rec {
     scipy
   ];
 
-  pythonImportsCheck = [
-    "stim"
-  ];
+  pythonImportsCheck = [ "stim" ];
 
   enableParallelBuilding = true;
 
@@ -67,7 +64,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A tool for high performance simulation and analysis of quantum stabilizer circuits, especially quantum error correction (QEC) circuits";
+    description = "Tool for high performance simulation and analysis of quantum stabilizer circuits, especially quantum error correction (QEC) circuits";
     mainProgram = "stim";
     homepage = "https://github.com/quantumlib/stim";
     changelog = "https://github.com/quantumlib/Stim/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/stm32loader/default.nix b/pkgs/development/python-modules/stm32loader/default.nix
index fec3eb6b56e60..6578e3c119575 100644
--- a/pkgs/development/python-modules/stm32loader/default.nix
+++ b/pkgs/development/python-modules/stm32loader/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, flit-core
+  # build-system
+  flit-core,
 
-# dependenices
-, progress
-, pyserial
+  # dependenices
+  progress,
+  pyserial,
 
-# optional-dependencies
-, intelhex
+  # optional-dependencies
+  intelhex,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-QTLSEjdJtDH4GCamnKHN5pEjW41rRtAMXxyZZMM5K3w=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     progress
@@ -36,18 +35,14 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    hex = [
-      intelhex
-    ];
+    hex = [ intelhex ];
   };
 
   nativeCheckInputs = [
     pytestCheckHook
   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
-  pytestFlagsArray = [
-    "tests/unit"
-  ];
+  pytestFlagsArray = [ "tests/unit" ];
 
   meta = with lib; {
     description = "Flash firmware to STM32 microcontrollers in Python";
@@ -55,6 +50,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/florisla/stm32loader";
     changelog = "https://github.com/florisla/stm32loader/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ emily ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/stone/default.nix b/pkgs/development/python-modules/stone/default.nix
index a2053f60aeeb8..174cca93a355b 100644
--- a/pkgs/development/python-modules/stone/default.nix
+++ b/pkgs/development/python-modules/stone/default.nix
@@ -1,11 +1,12 @@
 {
-  lib,
   buildPythonPackage,
   fetchFromGitHub,
+  fetchpatch,
+  lib,
   mock,
+  packaging,
   ply,
   pytestCheckHook,
-  pythonAtLeast,
   pythonOlder,
   setuptools,
   six,
@@ -13,17 +14,32 @@
 
 buildPythonPackage rec {
   pname = "stone";
-  version = "3.3.3";
+  version = "3.3.6";
   pyproject = true;
 
-  # distutils removal, https://github.com/dropbox/stone/issues/323
-  disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
+  disabled = pythonOlder "3.7";
+
+  patches = [
+    # fix distutils issue
+    # fix versions in tests to conform pep 440
+    # See https://github.com/dropbox/stone/pull/334
+    (fetchpatch {
+      name = "no-distutils.patch";
+      url = "https://github.com/dropbox/stone/commit/f772d8d3b7e2ce62b14b4fb208a478bc8e54c7f2.patch";
+      hash = "sha256-SH4gG5S13n/pXppm62LvH9poGfeQGGonW7bkzdYh73Q=";
+    })
+    (fetchpatch {
+      name = "fix-test-pep-440.patch";
+      url = "https://github.com/dropbox/stone/commit/f36de56b1f87eae61829258b2f16aa8319bbcc5c.patch";
+      hash = "sha256-sBJukNk02RmQQza1qhLAkyx1OJRck0/zQOeRaXD9tkY=";
+    })
+  ];
 
   src = fetchFromGitHub {
     owner = "dropbox";
     repo = "stone";
     rev = "refs/tags/v${version}";
-    hash = "sha256-l86j2fd6x57bKt/TFGiyg+ZFjZFFCo43rE48MoPvXWc=";
+    hash = "sha256-Og0hUUCCd9wRdHUhZBl62rDAunP2Bph5COsCw/T1kUA=";
   };
 
   postPatch = ''
@@ -36,6 +52,7 @@ buildPythonPackage rec {
   dependencies = [
     ply
     six
+    packaging
   ];
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/stookalert/default.nix b/pkgs/development/python-modules/stookalert/default.nix
index 82552ca44bb39..0948c87731572 100644
--- a/pkgs/development/python-modules/stookalert/default.nix
+++ b/pkgs/development/python-modules/stookalert/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     sha256 = "38c479e2fb7668f9b37aff0f9ffdd7bfd1ee9393528f2d3d36b5911b40da70a1";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # upstream has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/stopit/default.nix b/pkgs/development/python-modules/stopit/default.nix
index 06ed79491ed71..4569b1ba88e2a 100644
--- a/pkgs/development/python-modules/stopit/default.nix
+++ b/pkgs/development/python-modules/stopit/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
 
 }:
 
diff --git a/pkgs/development/python-modules/stransi/default.nix b/pkgs/development/python-modules/stransi/default.nix
index 5b2802ea1afe8..52e6ee474549f 100644
--- a/pkgs/development/python-modules/stransi/default.nix
+++ b/pkgs/development/python-modules/stransi/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, hypothesis
-, pytestCheckHook
-, ochre
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  hypothesis,
+  pytestCheckHook,
+  ochre,
 }:
 
 buildPythonPackage rec {
@@ -19,23 +20,19 @@ buildPythonPackage rec {
     hash = "sha256-PDMel6emra5bzX+FwHvUVpFu2YkRKy31UwkCL4sGJ14=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     hypothesis
     pytestCheckHook
   ];
 
-  propagatedBuildInputs = [
-    ochre
-  ];
+  propagatedBuildInputs = [ ochre ];
 
   pythonImportsCheck = [ "stransi" ];
 
   meta = with lib; {
-    description = "A lightweight Python parser library for ANSI escape code sequences";
+    description = "Lightweight Python parser library for ANSI escape code sequences";
     homepage = "https://github.com/getcuia/stransi";
     changelog = "https://github.com/getcuia/stransi/releases/tag/${src.rev}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/strategies/default.nix b/pkgs/development/python-modules/strategies/default.nix
index f9f31e34d1586..07aa6b8f00db3 100644
--- a/pkgs/development/python-modules/strategies/default.nix
+++ b/pkgs/development/python-modules/strategies/default.nix
@@ -1,6 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi
-, multipledispatch, toolz
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  multipledispatch,
+  toolz,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -13,13 +17,16 @@ buildPythonPackage rec {
     sha256 = "02i4ydrs9k61p8iv2vl2akks8p9gc88rw8031wlwb1zqsyjmb328";
   };
 
-  propagatedBuildInputs = [ multipledispatch toolz ];
+  propagatedBuildInputs = [
+    multipledispatch
+    toolz
+  ];
   nativeCheckInputs = [ pytest ];
 
   meta = {
-    description = "A Python library for control flow programming";
-    homepage    = "https://github.com/logpy/strategies";
-    license     = lib.licenses.mit;
+    description = "Python library for control flow programming";
+    homepage = "https://github.com/logpy/strategies";
+    license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ suhr ];
   };
 }
diff --git a/pkgs/development/python-modules/stravalib/default.nix b/pkgs/development/python-modules/stravalib/default.nix
index 8f9898657b658..935f40d000049 100644
--- a/pkgs/development/python-modules/stravalib/default.nix
+++ b/pkgs/development/python-modules/stravalib/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, arrow
-, buildPythonPackage
-, fetchFromGitHub
-, pint
-, pydantic
-, pythonOlder
-, pytz
-, requests
-, responses
-, setuptools
-, setuptools-scm
+{
+  lib,
+  arrow,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pint,
+  pydantic,
+  pythonOlder,
+  pytz,
+  requests,
+  responses,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -43,9 +44,7 @@ buildPythonPackage rec {
   # Tests require network access, testing strava API
   doCheck = false;
 
-  pythonImportsCheck = [
-    "stravalib"
-  ];
+  pythonImportsCheck = [ "stravalib" ];
 
   meta = with lib; {
     description = "Python library for interacting with Strava v3 REST API";
diff --git a/pkgs/development/python-modules/strawberry-graphql/default.nix b/pkgs/development/python-modules/strawberry-graphql/default.nix
index 40ae06c91c8fc..0ec6c7bfc616e 100644
--- a/pkgs/development/python-modules/strawberry-graphql/default.nix
+++ b/pkgs/development/python-modules/strawberry-graphql/default.nix
@@ -1,57 +1,59 @@
-{ lib
-, aiohttp
-, asgiref
-, buildPythonPackage
-, chalice
-, channels
-, click
-, daphne
-, django
-, email-validator
-, fastapi
-, fetchFromGitHub
-, fetchpatch
-, flask
-, freezegun
-, graphql-core
-, libcst
-, opentelemetry-api
-, opentelemetry-sdk
-, poetry-core
-, pydantic
-, pygments
-, pyinstrument
-, pytest-aiohttp
-, pytest-asyncio
-, pytest-django
-, pytest-emoji
-, pytest-flask
-, pytest-mock
-, pytest-snapshot
-, pytestCheckHook
-, python-dateutil
-, python-multipart
-, pythonOlder
-, rich
-, sanic
-, sanic-testing
-, starlette
-, typing-extensions
-, uvicorn
+{
+  lib,
+  aiohttp,
+  asgiref,
+  buildPythonPackage,
+  chalice,
+  channels,
+  click,
+  daphne,
+  django,
+  email-validator,
+  fastapi,
+  fetchFromGitHub,
+  fetchpatch,
+  flask,
+  freezegun,
+  graphql-core,
+  inline-snapshot,
+  libcst,
+  opentelemetry-api,
+  opentelemetry-sdk,
+  poetry-core,
+  pydantic,
+  pygments,
+  pyinstrument,
+  pytest-aiohttp,
+  pytest-asyncio,
+  pytest-django,
+  pytest-emoji,
+  pytest-flask,
+  pytest-mock,
+  pytest-snapshot,
+  pytestCheckHook,
+  python-dateutil,
+  python-multipart,
+  pythonOlder,
+  rich,
+  sanic,
+  sanic-testing,
+  starlette,
+  typing-extensions,
+  uvicorn,
 }:
 
 buildPythonPackage rec {
   pname = "strawberry-graphql";
-  version = "0.219.2";
-  format = "pyproject";
+  version = "0.235.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "strawberry-graphql";
     repo = "strawberry";
     rev = "refs/tags/${version}";
-    hash = "sha256-uIUETjzuDnlQp6wM7uxyLRSMT5uyrXFrI9NilcjP0BU=";
+    hash = "sha256-M9GwddyLfwGhA1z+imEOiNrXYFM2gFT9IcFf/8cRHAE=";
   };
 
   patches = [
@@ -61,24 +63,16 @@ buildPythonPackage rec {
       url = "https://github.com/strawberry-graphql/strawberry/commit/710bb96f47c244e78fc54c921802bcdb48f5f421.patch";
       hash = "sha256-ekUZ2hDPCqwXp9n0YjBikwSkhCmVKUzQk7LrPECcD7Y=";
     })
-    (fetchpatch {
-      # https://github.com/strawberry-graphql/strawberry/pull/3255
-      name = "fix-tests-with-pydantic_2.patch";
-      url = "https://github.com/strawberry-graphql/strawberry/commit/0a0dc284ee6d31d4e82ac7ff1ed9fea4dff39fa6.patch";
-      hash = "sha256-LACWD7XA6YL/apJwhpx3LPCKxKUfa+XWyTLK+Zkxlaw=";
-    })
   ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
-      --replace "--emoji --mypy-ini-file=mypy.ini" "" \
+      --replace-fail "--emoji" "" \
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     graphql-core
     python-dateutil
     typing-extensions
@@ -123,37 +117,29 @@ buildPythonPackage rec {
       opentelemetry-api
       opentelemetry-sdk
     ];
-    pydantic = [
-      pydantic
-    ];
-    sanic = [
-      sanic
-    ];
+    pydantic = [ pydantic ];
+    sanic = [ sanic ];
     fastapi = [
       fastapi
       python-multipart
     ];
-    chalice = [
-      chalice
-    ];
+    chalice = [ chalice ];
     cli = [
       click
       pygments
       rich
       libcst
     ];
-    # starlite = [
-    #   starlite
-    # ];
-    pyinstrument = [
-      pyinstrument
-    ];
+    # starlite = [ starlite ];
+    # litestar = [ litestar ];
+    pyinstrument = [ pyinstrument ];
   };
 
   nativeCheckInputs = [
     daphne
     email-validator
     freezegun
+    inline-snapshot
     pytest-asyncio
     pytest-emoji
     pytest-mock
@@ -162,9 +148,7 @@ buildPythonPackage rec {
     sanic-testing
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "strawberry"
-  ];
+  pythonImportsCheck = [ "strawberry" ];
 
   disabledTestPaths = [
     "tests/benchmarks/"
@@ -172,7 +156,6 @@ buildPythonPackage rec {
     "tests/django/test_dataloaders.py"
     "tests/exceptions/"
     "tests/http/"
-    "tests/mypy/test_plugin.py" # avoid dependency on mypy
     "tests/schema/extensions/"
     "tests/schema/test_dataloaders.py"
     "tests/schema/test_lazy/"
@@ -180,16 +163,17 @@ buildPythonPackage rec {
     "tests/test_dataloaders.py"
     "tests/utils/test_pretty_print.py"
     "tests/websockets/test_graphql_transport_ws.py"
+    "tests/litestar/"
   ];
 
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "A GraphQL library for Python that leverages type annotations";
-    mainProgram = "strawberry";
+    description = "GraphQL library for Python that leverages type annotations";
     homepage = "https://strawberry.rocks";
     changelog = "https://github.com/strawberry-graphql/strawberry/blob/${version}/CHANGELOG.md";
-    license = with licenses; [ mit ];
+    license = licenses.mit;
     maintainers = with maintainers; [ izorkin ];
+    mainProgram = "strawberry";
   };
 }
diff --git a/pkgs/development/python-modules/strct/default.nix b/pkgs/development/python-modules/strct/default.nix
index c5f9bc2f994b4..eff84c1f1dcb2 100644
--- a/pkgs/development/python-modules/strct/default.nix
+++ b/pkgs/development/python-modules/strct/default.nix
@@ -1,47 +1,35 @@
-{ lib
-, fetchFromGitHub
-, fetchpatch
-, buildPythonPackage
-, setuptools
-, pytestCheckHook
-, sortedcontainers
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  setuptools,
+  pytestCheckHook,
+  sortedcontainers,
 }:
 
 buildPythonPackage rec {
   pname = "strct";
-  version = "0.0.32";
+  version = "0.0.34";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "shaypal5";
     repo = "strct";
     rev = "v${version}";
-    hash = "sha256-ctafvdfSOdp7tlCUYg7d5XTXR1qBcWvOVtGtNUnhYIw=";
+    hash = "sha256-uPM2U+emZUCGqEhIeTBmaOu8eSfK4arqvv9bItBWpUs=";
   };
 
-  patches = [
-    # https://github.com/shaypal5/strct/pull/4
-    (fetchpatch {
-      name = "fix-versioneer-on-python312.patch";
-      url = "https://github.com/shaypal5/strct/commit/a1e5b6ca9045b52efdfdbb3c82e12a01e251d41b.patch";
-      hash = "sha256-xXADCSIhq1ARny2twzrhR1J8LkMFWFl6tmGxrM8RvkU=";
-    })
-  ];
-
   postPatch = ''
-    substituteInPlace pytest.ini \
+    substituteInPlace pyproject.toml \
       --replace-fail  \
-        "--cov" \
-        "#--cov"
-
-    # configure correct version, which fails due to missing .git
-    substituteInPlace versioneer.py strct/_version.py \
-      --replace-fail '"0+unknown"' '"${version}"'
+        '"--cov' \
+        '#"--cov'
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  # don't append .dev0 to version
+  env.RELEASING_PROCESS = "1";
+
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -58,7 +46,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A small pure-python package for data structure related utility functions";
+    description = "Small pure-python package for data structure related utility functions";
     homepage = "https://github.com/shaypal5/strct";
     license = licenses.mit;
     maintainers = with maintainers; [ pbsds ];
diff --git a/pkgs/development/python-modules/streamdeck/default.nix b/pkgs/development/python-modules/streamdeck/default.nix
index 6202fcdf1f798..01587d491653a 100644
--- a/pkgs/development/python-modules/streamdeck/default.nix
+++ b/pkgs/development/python-modules/streamdeck/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, substituteAll
-, pkgs
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  substituteAll,
+  pkgs,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/streaming-form-data/default.nix b/pkgs/development/python-modules/streaming-form-data/default.nix
index 18df3a778da2b..0d13b9db97cca 100644
--- a/pkgs/development/python-modules/streaming-form-data/default.nix
+++ b/pkgs/development/python-modules/streaming-form-data/default.nix
@@ -1,5 +1,12 @@
-{ lib, fetchFromGitHub, buildPythonPackage, pythonOlder,
-cython, pytestCheckHook, requests-toolbelt }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonOlder,
+  cython,
+  pytestCheckHook,
+  requests-toolbelt,
+}:
 
 buildPythonPackage rec {
   pname = "streaming-form-data";
@@ -17,13 +24,14 @@ buildPythonPackage rec {
   # streaming-form-data has a small bit of code that uses smart_open, which has a massive closure.
   # The only consumer of streaming-form-data is Moonraker, which doesn't use that code.
   # So, just drop the dependency to not have to deal with it.
-  patches = [
-    ./drop-smart-open.patch
-  ];
+  patches = [ ./drop-smart-open.patch ];
 
   nativeBuildInputs = [ cython ];
 
-  nativeCheckInputs = [ pytestCheckHook requests-toolbelt ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    requests-toolbelt
+  ];
 
   pytestFlagsArray = [ "tests" ];
 
diff --git a/pkgs/development/python-modules/streamlabswater/default.nix b/pkgs/development/python-modules/streamlabswater/default.nix
index 68f6011edcf48..6ca91eaa33ca4 100644
--- a/pkgs/development/python-modules/streamlabswater/default.nix
+++ b/pkgs/development/python-modules/streamlabswater/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-kXG0Wg3PVryMBQ9RMMtEzudMiwVQq7Ikw2OK7JcBojA=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/streamlit/default.nix b/pkgs/development/python-modules/streamlit/default.nix
index 7dc7395749b39..c30512d1171d7 100644
--- a/pkgs/development/python-modules/streamlit/default.nix
+++ b/pkgs/development/python-modules/streamlit/default.nix
@@ -1,56 +1,53 @@
-{ lib
-, stdenv
-, altair
-, blinker
-, buildPythonPackage
-, cachetools
-, click
-, fetchPypi
-, gitpython
-, importlib-metadata
-, numpy
-, packaging
-, pandas
-, pillow
-, protobuf
-, pyarrow
-, pydeck
-, pympler
-, python-dateutil
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
-, requests
-, rich
-, tenacity
-, toml
-, tornado
-, typing-extensions
-, tzlocal
-, validators
-, watchdog
+{
+  lib,
+  stdenv,
+  altair,
+  blinker,
+  buildPythonPackage,
+  cachetools,
+  click,
+  fetchPypi,
+  gitpython,
+  importlib-metadata,
+  numpy,
+  packaging,
+  pandas,
+  pillow,
+  protobuf,
+  pyarrow,
+  pydeck,
+  pympler,
+  python-dateutil,
+  pythonOlder,
+  setuptools,
+  requests,
+  rich,
+  tenacity,
+  toml,
+  tornado,
+  typing-extensions,
+  tzlocal,
+  validators,
+  watchdog,
 }:
 
 buildPythonPackage rec {
   pname = "streamlit";
-  version = "1.33.0";
+  version = "1.36.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-qNqP9G9blIxW0tx6ynphz42ZX08hdEz4IliudeYwBLo=";
+    hash = "sha256-oSr58Othq1gy9DgzYlex7CDrKdjg4Ma0CnkRa6k5vJw=";
   };
 
   nativeBuildInputs = [
     setuptools
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "packaging"
-  ];
+  pythonRelaxDeps = [ "packaging" ];
 
   propagatedBuildInputs = [
     altair
@@ -76,16 +73,12 @@ buildPythonPackage rec {
     typing-extensions
     tzlocal
     validators
-  ] ++ lib.optionals (!stdenv.isDarwin) [
-    watchdog
-  ];
+  ] ++ lib.optionals (!stdenv.isDarwin) [ watchdog ];
 
   # pypi package does not include the tests, but cannot be built with fetchFromGitHub
   doCheck = false;
 
-  pythonImportsCheck = [
-    "streamlit"
-  ];
+  pythonImportsCheck = [ "streamlit" ];
 
   postInstall = ''
     rm $out/bin/streamlit.cmd # remove windows helper
@@ -94,9 +87,12 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://streamlit.io/";
     changelog = "https://github.com/streamlit/streamlit/releases/tag/${version}";
-    description = "The fastest way to build custom ML tools";
+    description = "Fastest way to build custom ML tools";
     mainProgram = "streamlit";
-    maintainers = with maintainers; [ natsukium yrashk ];
+    maintainers = with maintainers; [
+      natsukium
+      yrashk
+    ];
     license = licenses.asl20;
   };
 }
diff --git a/pkgs/development/python-modules/streamz/default.nix b/pkgs/development/python-modules/streamz/default.nix
index ff12abf47ae39..c993e187813df 100644
--- a/pkgs/development/python-modules/streamz/default.nix
+++ b/pkgs/development/python-modules/streamz/default.nix
@@ -1,27 +1,30 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, confluent-kafka
-, distributed
-, fetchpatch
-, fetchPypi
-, flaky
-, graphviz
-, networkx
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, requests
-, six
-, toolz
-, tornado
-, zict
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  confluent-kafka,
+  dask,
+  dask-expr,
+  distributed,
+  flaky,
+  graphviz,
+  networkx,
+  pytest-asyncio,
+  pytestCheckHook,
+  requests,
+  six,
+  toolz,
+  tornado,
+  zict,
 }:
 
 buildPythonPackage rec {
   pname = "streamz";
   version = "0.6.4";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
@@ -30,7 +33,9 @@ buildPythonPackage rec {
     hash = "sha256-VXfWkEwuxInBQVQJV3IQXgGVRkiBmYfUZCBMbjyWNPM=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     networkx
     six
     toolz
@@ -40,6 +45,8 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [
     confluent-kafka
+    dask
+    dask-expr
     distributed
     flaky
     graphviz
@@ -48,9 +55,7 @@ buildPythonPackage rec {
     requests
   ];
 
-  pythonImportsCheck = [
-    "streamz"
-  ];
+  pythonImportsCheck = [ "streamz" ];
 
   disabledTests = [
     # Error with distutils version: fixture 'cleanup' not found
diff --git a/pkgs/development/python-modules/strenum/default.nix b/pkgs/development/python-modules/strenum/default.nix
index b3ae130af2705..68e6a93e76c24 100644
--- a/pkgs/development/python-modules/strenum/default.nix
+++ b/pkgs/development/python-modules/strenum/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -37,17 +38,11 @@ buildPythonPackage rec {
       --replace " --cov=strenum --cov-report term-missing --black --pylint" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "strenum"
-  ];
+  pythonImportsCheck = [ "strenum" ];
 
   meta = with lib; {
     description = "Module for enum that inherits from str";
diff --git a/pkgs/development/python-modules/strict-rfc3339/default.nix b/pkgs/development/python-modules/strict-rfc3339/default.nix
index 783aa49904d7f..5f4cfe3b7c4bb 100644
--- a/pkgs/development/python-modules/strict-rfc3339/default.nix
+++ b/pkgs/development/python-modules/strict-rfc3339/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "strict-rfc3339";
diff --git a/pkgs/development/python-modules/strictyaml/default.nix b/pkgs/development/python-modules/strictyaml/default.nix
index d9d57faf48f4d..96c004b5abd54 100644
--- a/pkgs/development/python-modules/strictyaml/default.nix
+++ b/pkgs/development/python-modules/strictyaml/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, ruamel-yaml
-, python-dateutil
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  ruamel-yaml,
+  python-dateutil,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
   # https://hitchdev.com/approach/contributing-to-hitch-libraries/
   doCheck = false;
 
-  pythonImportsCheck = [
-    "strictyaml"
-  ];
+  pythonImportsCheck = [ "strictyaml" ];
 
   meta = with lib; {
     description = "Strict, typed YAML parser";
diff --git a/pkgs/development/python-modules/stringbrewer/default.nix b/pkgs/development/python-modules/stringbrewer/default.nix
index d93552816cd26..8b79efd7be55d 100644
--- a/pkgs/development/python-modules/stringbrewer/default.nix
+++ b/pkgs/development/python-modules/stringbrewer/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, rstr
-, sre-yield
-, pythonImportsCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  rstr,
+  sre-yield,
+  pythonImportsCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     rstr
     sre-yield
   ];
-  nativeBuildInputs = [
-    pythonImportsCheckHook
-  ];
+  nativeBuildInputs = [ pythonImportsCheckHook ];
 
   # Package has no tests
   doCheck = false;
@@ -35,4 +34,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ danc86 ];
   };
 }
-
diff --git a/pkgs/development/python-modules/stringcase/default.nix b/pkgs/development/python-modules/stringcase/default.nix
index 3875afcc72baa..6fa57744e1f93 100644
--- a/pkgs/development/python-modules/stringcase/default.nix
+++ b/pkgs/development/python-modules/stringcase/default.nix
@@ -1,4 +1,7 @@
-{ buildPythonPackage, fetchPypi, lib
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/stringly/default.nix b/pkgs/development/python-modules/stringly/default.nix
index b0b8f0515b59a..c7637bb082c7c 100644
--- a/pkgs/development/python-modules/stringly/default.nix
+++ b/pkgs/development/python-modules/stringly/default.nix
@@ -1,4 +1,9 @@
-{ lib , python, buildPythonPackage , fetchPypi, typing-extensions }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  typing-extensions,
+}:
 
 buildPythonPackage rec {
   pname = "stringly";
@@ -12,13 +17,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "stringly" ];
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
-
-  checkPhase = ''
-    ${python.interpreter} -m unittest
-  '';
+  propagatedBuildInputs = [ typing-extensions ];
 
   meta = with lib; {
     description = "Stringly: Human Readable Object Serialization";
diff --git a/pkgs/development/python-modules/stringparser/default.nix b/pkgs/development/python-modules/stringparser/default.nix
index 900f102088060..63f163d5f8995 100644
--- a/pkgs/development/python-modules/stringparser/default.nix
+++ b/pkgs/development/python-modules/stringparser/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -27,17 +28,11 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ typing-extensions ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "stringparser"
-  ];
+  pythonImportsCheck = [ "stringparser" ];
 
   meta = with lib; {
     description = "Easy to use pattern matching and information extraction";
diff --git a/pkgs/development/python-modules/stripe/default.nix b/pkgs/development/python-modules/stripe/default.nix
index fe31361a65be7..3823eb4ea1b9f 100644
--- a/pkgs/development/python-modules/stripe/default.nix
+++ b/pkgs/development/python-modules/stripe/default.nix
@@ -1,29 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
-, setuptools
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
+  setuptools,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "stripe";
-  version = "9.4.0";
+  version = "9.12.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-D94cu/Re4Nd71/vYVhiG37bawPNuWp5T/cpKc4biPsw=";
+    hash = "sha256-y8Umq9DwAckgwyO6fEDM497hZH2SDp2+yuNIjzc2dSQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     requests
     typing-extensions
   ];
@@ -31,9 +30,7 @@ buildPythonPackage rec {
   # Tests require network connectivity and there's no easy way to disable them
   doCheck = false;
 
-  pythonImportsCheck = [
-    "stripe"
-  ];
+  pythonImportsCheck = [ "stripe" ];
 
   meta = with lib; {
     description = "Stripe Python bindings";
diff --git a/pkgs/development/python-modules/striprtf/default.nix b/pkgs/development/python-modules/striprtf/default.nix
index d7024ef130de5..94afa18cf9faf 100644
--- a/pkgs/development/python-modules/striprtf/default.nix
+++ b/pkgs/development/python-modules/striprtf/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -16,14 +17,12 @@ buildPythonPackage rec {
     hash = "sha256-/bK7p6xEAHLRxB6rUNjXSuiPYKi2V1xuLHgF3EYgk6o=";
   };
 
-  pythonImportsCheck = [
-    "striprtf"
-  ];
+  pythonImportsCheck = [ "striprtf" ];
 
   meta = with lib; {
     changelog = "https://github.com/joshy/striprtf/blob/v${version}/CHANGELOG.md";
     homepage = "https://github.com/joshy/striprtf";
-    description = "A simple library to convert rtf to text";
+    description = "Simple library to convert rtf to text";
     mainProgram = "striprtf";
     maintainers = with maintainers; [ aanderse ];
     license = with licenses; [ bsd3 ];
diff --git a/pkgs/development/python-modules/structlog/default.nix b/pkgs/development/python-modules/structlog/default.nix
index a6c826a00a5e0..2cbf24c15db03 100644
--- a/pkgs/development/python-modules/structlog/default.nix
+++ b/pkgs/development/python-modules/structlog/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, freezegun
-, hatch-fancy-pypi-readme
-, hatch-vcs
-, hatchling
-, pretend
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, simplejson
-, twisted
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  freezegun,
+  hatch-fancy-pypi-readme,
+  hatch-vcs,
+  hatchling,
+  pretend,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  simplejson,
+  twisted,
 }:
 
 buildPythonPackage rec {
@@ -42,9 +43,7 @@ buildPythonPackage rec {
     twisted
   ];
 
-  pythonImportsCheck = [
-    "structlog"
-  ];
+  pythonImportsCheck = [ "structlog" ];
 
   meta = with lib; {
     description = "Painless structural logging";
diff --git a/pkgs/development/python-modules/stubserver/default.nix b/pkgs/development/python-modules/stubserver/default.nix
index 87b9cd988cce4..af0ba80ce0609 100644
--- a/pkgs/development/python-modules/stubserver/default.nix
+++ b/pkgs/development/python-modules/stubserver/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
   # Tests are not shipped and the source not tagged
   doCheck = false;
 
-  pythonImportsCheck = [
-    "stubserver"
-  ];
+  pythonImportsCheck = [ "stubserver" ];
 
   meta = with lib; {
     description = "Web and FTP server for use in unit and7or acceptance tests";
diff --git a/pkgs/development/python-modules/stumpy/default.nix b/pkgs/development/python-modules/stumpy/default.nix
index 491af1105dae7..6587e6193e118 100644
--- a/pkgs/development/python-modules/stumpy/default.nix
+++ b/pkgs/development/python-modules/stumpy/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, scipy
-, numba
-, pandas
-, dask
-, distributed
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  scipy,
+  numba,
+  pandas,
+  dask,
+  distributed,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "stumpy"
-  ];
+  pythonImportsCheck = [ "stumpy" ];
 
   pytestFlagsArray = [
     # whole testsuite is very CPU intensive, only run core tests
diff --git a/pkgs/development/python-modules/stupidartnet/default.nix b/pkgs/development/python-modules/stupidartnet/default.nix
index 6ed5783f13d20..8c97d3cb5e6ed 100644
--- a/pkgs/development/python-modules/stupidartnet/default.nix
+++ b/pkgs/development/python-modules/stupidartnet/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-6vEzInt1ofVVjTZAOH0Zw3BdwpX//1ZWwJqWPP5fIC8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "stupidArtnet"
-  ];
+  pythonImportsCheck = [ "stupidArtnet" ];
 
   meta = with lib; {
     description = "Library implementation of the Art-Net protocol";
diff --git a/pkgs/development/python-modules/stups-cli-support/default.nix b/pkgs/development/python-modules/stups-cli-support/default.nix
index 33673f7a47af5..ef36962843072 100644
--- a/pkgs/development/python-modules/stups-cli-support/default.nix
+++ b/pkgs/development/python-modules/stups-cli-support/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, clickclick
-, dnspython
-, requests
-, pytest
-, pytest-cov
-, isPy3k
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  clickclick,
+  dnspython,
+  requests,
+  pytest,
+  pytest-cov,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -36,7 +37,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Helper library for all STUPS command line tools.";
+    description = "Helper library for all STUPS command line tools";
     homepage = "https://github.com/zalando-stups/stups-cli-support";
     license = licenses.asl20;
     maintainers = [ maintainers.mschuwalow ];
diff --git a/pkgs/development/python-modules/stups-fullstop/default.nix b/pkgs/development/python-modules/stups-fullstop/default.nix
index 2b668871f57f6..2b4efbaacb2fe 100644
--- a/pkgs/development/python-modules/stups-fullstop/default.nix
+++ b/pkgs/development/python-modules/stups-fullstop/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, requests
-, stups-cli-support
-, stups-zign
-, pytest
-, pytest-cov
-, isPy3k
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  requests,
+  stups-cli-support,
+  stups-zign,
+  pytest,
+  pytest-cov,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -38,7 +39,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Convenience command line tool for fullstop. audit reporting.";
+    description = "Convenience command line tool for fullstop. audit reporting";
     homepage = "https://github.com/zalando-stups/stups-fullstop-cli";
     license = licenses.asl20;
     maintainers = [ maintainers.mschuwalow ];
diff --git a/pkgs/development/python-modules/stups-pierone/default.nix b/pkgs/development/python-modules/stups-pierone/default.nix
index b99ac4cf520bf..af90fcb193485 100644
--- a/pkgs/development/python-modules/stups-pierone/default.nix
+++ b/pkgs/development/python-modules/stups-pierone/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, requests
-, stups-cli-support
-, stups-zign
-, pytest
-, pytest-cov
-, hypothesis
-, pythonOlder
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  requests,
+  stups-cli-support,
+  stups-zign,
+  pytest,
+  pytest-cov,
+  hypothesis,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -40,9 +41,7 @@ buildPythonPackage rec {
     hypothesis
   ];
 
-  pythonImportsCheck = [
-    "pierone"
-  ];
+  pythonImportsCheck = [ "pierone" ];
 
   meta = with lib; {
     description = "Convenient command line client for STUPS' Pier One Docker registry";
diff --git a/pkgs/development/python-modules/stups-tokens/default.nix b/pkgs/development/python-modules/stups-tokens/default.nix
index dd95394632659..6201fa99cab33 100644
--- a/pkgs/development/python-modules/stups-tokens/default.nix
+++ b/pkgs/development/python-modules/stups-tokens/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, requests
-, mock
-, pytest
-, pytest-cov
-, isPy3k
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  requests,
+  mock,
+  pytest,
+  pytest-cov,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     sha256 = "09z3l3xzdlwpivbi141gk1k0zd9m75mjwbdy81zc386rr9k8s0im";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     mock
@@ -32,7 +31,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python library that keeps OAuth 2.0 service access tokens in memory for your usage.";
+    description = "Python library that keeps OAuth 2.0 service access tokens in memory for your usage";
     homepage = "https://github.com/zalando-stups/python-tokens";
     license = licenses.asl20;
     maintainers = [ maintainers.mschuwalow ];
diff --git a/pkgs/development/python-modules/stups-zign/default.nix b/pkgs/development/python-modules/stups-zign/default.nix
index 3fd99c0621678..c6fb2495dd27a 100644
--- a/pkgs/development/python-modules/stups-zign/default.nix
+++ b/pkgs/development/python-modules/stups-zign/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, stups-tokens
-, stups-cli-support
-, pytest
-, pytest-cov
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  stups-tokens,
+  stups-cli-support,
+  pytest,
+  pytest-cov,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -45,7 +46,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "OAuth2 token management command line utility.";
+    description = "OAuth2 token management command line utility";
     homepage = "https://github.com/zalando-stups/zign";
     license = licenses.asl20;
     maintainers = [ maintainers.mschuwalow ];
diff --git a/pkgs/development/python-modules/stytra/default.nix b/pkgs/development/python-modules/stytra/default.nix
index 821aaa41437c8..94f14cc090523 100644
--- a/pkgs/development/python-modules/stytra/default.nix
+++ b/pkgs/development/python-modules/stytra/default.nix
@@ -1,33 +1,34 @@
-{ lib
-, anytree
-, arrayqueues
-, av
-, buildPythonPackage
-, colorspacious
-, fetchPypi
-, flammkuchen
-, git
-, gitpython
-, imageio
-, imageio-ffmpeg
-, lightparam
-, matplotlib
-, nose
-, numba
-, numpy
-, opencv4
-, pandas
-, pims
-, pyqt5
-, pyqtgraph
-, pyserial
-, pytestCheckHook
-, pythonOlder
-, qdarkstyle
-, qimage2ndarray
-, scikit-image
-, scipy
-, tables
+{
+  lib,
+  anytree,
+  arrayqueues,
+  av,
+  buildPythonPackage,
+  colorspacious,
+  fetchPypi,
+  flammkuchen,
+  git,
+  gitpython,
+  imageio,
+  imageio-ffmpeg,
+  lightparam,
+  matplotlib,
+  nose,
+  numba,
+  numpy,
+  opencv4,
+  pandas,
+  pims,
+  pyqt5,
+  pyqtgraph,
+  pyserial,
+  pytestCheckHook,
+  pythonOlder,
+  qdarkstyle,
+  qimage2ndarray,
+  scikit-image,
+  scipy,
+  tables,
 }:
 
 buildPythonPackage rec {
@@ -84,10 +85,10 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A modular package to control stimulation and track behaviour";
+    description = "Modular package to control stimulation and track behaviour";
     homepage = "https://github.com/portugueslab/stytra";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ tbenst ];
-    broken = true;  # incompatible with pyqtgraph>0.13.0: https://github.com/portugueslab/stytra/issues/87
+    broken = true; # incompatible with pyqtgraph>0.13.0: https://github.com/portugueslab/stytra/issues/87
   };
 }
diff --git a/pkgs/development/python-modules/subarulink/default.nix b/pkgs/development/python-modules/subarulink/default.nix
index 1cff8ae459ff3..f669da48ddd53 100644
--- a/pkgs/development/python-modules/subarulink/default.nix
+++ b/pkgs/development/python-modules/subarulink/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, stdiomask
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  stdiomask,
 }:
 
 buildPythonPackage rec {
@@ -45,9 +46,7 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  pythonImportsCheck = [
-    "subarulink"
-  ];
+  pythonImportsCheck = [ "subarulink" ];
 
   meta = with lib; {
     description = "Python module for interacting with STARLINK-enabled vehicle";
diff --git a/pkgs/development/python-modules/subliminal/default.nix b/pkgs/development/python-modules/subliminal/default.nix
index b72d8e0311ccc..d34a49f46ff18 100644
--- a/pkgs/development/python-modules/subliminal/default.nix
+++ b/pkgs/development/python-modules/subliminal/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, appdirs
-, babelfish
-, beautifulsoup4
-, buildPythonPackage
-, chardet
-, click
-, dogpile-cache
-, enzyme
-, fetchFromGitHub
-, guessit
-, pysrt
-, pytestCheckHook
-, pythonOlder
-, pytz
-, rarfile
-, requests
-, six
-, stevedore
-, sympy
-, vcrpy
+{
+  lib,
+  appdirs,
+  babelfish,
+  beautifulsoup4,
+  buildPythonPackage,
+  chardet,
+  click,
+  dogpile-cache,
+  enzyme,
+  fetchFromGitHub,
+  guessit,
+  pysrt,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  rarfile,
+  requests,
+  six,
+  stevedore,
+  sympy,
+  vcrpy,
 }:
 
 buildPythonPackage rec {
@@ -63,9 +64,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "subliminal"
-  ];
+  pythonImportsCheck = [ "subliminal" ];
 
   disabledTests = [
     # Tests rewuire network access
diff --git a/pkgs/development/python-modules/subprocess-tee/default.nix b/pkgs/development/python-modules/subprocess-tee/default.nix
index 462a0cd60b0b5..1ca46a4652061 100644
--- a/pkgs/development/python-modules/subprocess-tee/default.nix
+++ b/pkgs/development/python-modules/subprocess-tee/default.nix
@@ -1,22 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, pytestCheckHook
-, enrich
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  enrich,
 }:
 
 buildPythonPackage rec {
   pname = "subprocess-tee";
-  version = "0.4.1";
-  format = "pyproject";
+  version = "0.4.2";
+  pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-s8EkmT+LiNHrHC/eC8IGl4fqxyC6iHccuhfoyTMkgl0=";
+  src = fetchFromGitHub {
+    owner = "pycontribs";
+    repo = "subprocess-tee";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-rfI4UZdENfSQ9EbQeldv6DDGIQe5yMjboGTCOwed1AU=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
+    setuptools
     setuptools-scm
   ];
 
@@ -32,13 +37,12 @@ buildPythonPackage rec {
     "test_rich_console_ex"
   ];
 
-  pythonImportsCheck = [
-    "subprocess_tee"
-  ];
+  pythonImportsCheck = [ "subprocess_tee" ];
 
   meta = with lib; {
     homepage = "https://github.com/pycontribs/subprocess-tee";
-    description = "A subprocess.run drop-in replacement that supports a tee mode";
+    description = "Subprocess.run drop-in replacement that supports a tee mode";
+    changelog = "https://github.com/pycontribs/subprocess-tee/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ putchar ];
   };
diff --git a/pkgs/development/python-modules/subunit/default.nix b/pkgs/development/python-modules/subunit/default.nix
index 299d7a2ecd29c..b101ec505aebe 100644
--- a/pkgs/development/python-modules/subunit/default.nix
+++ b/pkgs/development/python-modules/subunit/default.nix
@@ -1,19 +1,20 @@
-{ buildPythonPackage
-# pkgs dependencies
-, check
-, cppunit
-, pkg-config
-, subunit
-, pythonOlder
-
-# python dependencies
-, extras
-, fixtures
-, hypothesis
-, pytestCheckHook
-, setuptools
-, testscenarios
-, testtools
+{
+  buildPythonPackage,
+  # pkgs dependencies
+  check,
+  cppunit,
+  pkg-config,
+  subunit,
+  pythonOlder,
+
+  # python dependencies
+  extras,
+  fixtures,
+  hypothesis,
+  pytestCheckHook,
+  setuptools,
+  testscenarios,
+  testtools,
 }:
 
 buildPythonPackage {
@@ -32,7 +33,10 @@ buildPythonPackage {
     setuptools
   ];
 
-  buildInputs = [ check cppunit ];
+  buildInputs = [
+    check
+    cppunit
+  ];
 
   propagatedBuildInputs = [
     extras
@@ -46,9 +50,7 @@ buildPythonPackage {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "python/subunit"
-  ];
+  pytestFlagsArray = [ "python/subunit" ];
 
   disabledTestPaths = [
     # these tests require testtools and don't work with pytest
diff --git a/pkgs/development/python-modules/subunit2sql/default.nix b/pkgs/development/python-modules/subunit2sql/default.nix
index 7955ed3d8d89a..402ee1a7bc3ec 100644
--- a/pkgs/development/python-modules/subunit2sql/default.nix
+++ b/pkgs/development/python-modules/subunit2sql/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mock
-, oslo-concurrency
-, oslo-db
-, pbr
-, python-dateutil
-, stestr
-, testresources
-, testscenarios
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  oslo-concurrency,
+  oslo-db,
+  pbr,
+  python-dateutil,
+  stestr,
+  testresources,
+  testscenarios,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/subzerod/default.nix b/pkgs/development/python-modules/subzerod/default.nix
index 3739e595e00c0..49d59c66833d3 100644
--- a/pkgs/development/python-modules/subzerod/default.nix
+++ b/pkgs/development/python-modules/subzerod/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-/7g8Upj9Hb4m83JXLI3X2lqa9faCt42LVxh+V9WpI68=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "subzerod"
-  ];
+  pythonImportsCheck = [ "subzerod" ];
 
   meta = with lib; {
     description = "Python module to help with the enumeration of subdomains";
diff --git a/pkgs/development/python-modules/succulent/default.nix b/pkgs/development/python-modules/succulent/default.nix
index 74d369acefc1b..f039a30d522ac 100644
--- a/pkgs/development/python-modules/succulent/default.nix
+++ b/pkgs/development/python-modules/succulent/default.nix
@@ -1,22 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flask
-, pandas
-, pyyaml
-, poetry-core
-, pytestCheckHook
-, pythonRelaxDepsHook
-, pythonOlder
-, toml-adapt
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flask,
+  lxml,
+  pandas,
+  pyyaml,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  toml-adapt,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
   pname = "succulent";
   version = "0.3.3";
-  format = "pyproject";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "firefly-cpp";
@@ -25,29 +27,23 @@ buildPythonPackage rec {
     hash = "sha256-+S4ekvaQvbBxjUQkG+Bd9lYdZwHB3oq7Ay9kWquCcyE=";
   };
 
-  pythonRelaxDeps = [
-    "flask"
-    "pandas"
-  ];
+  pythonRelaxDeps = [ "flask" ];
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
     flask
+    lxml
     pandas
     pyyaml
+    xmltodict
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "succulent"
-  ];
+  pythonImportsCheck = [ "succulent" ];
 
   meta = with lib; {
     description = "Collect POST requests";
diff --git a/pkgs/development/python-modules/sudachidict/default.nix b/pkgs/development/python-modules/sudachidict/default.nix
index 65f5d4630d064..1035f42bff840 100644
--- a/pkgs/development/python-modules/sudachidict/default.nix
+++ b/pkgs/development/python-modules/sudachidict/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, sudachidict
-, setuptools
-, sudachipy
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  sudachidict,
+  setuptools,
+  sudachipy,
 }:
 
 buildPythonPackage rec {
@@ -30,13 +31,9 @@ buildPythonPackage rec {
       --replace "%%DICT_TYPE%%" ${sudachidict.dict-type}
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    sudachipy
-  ];
+  propagatedBuildInputs = [ sudachipy ];
 
   # we need to prepare some files before the build
   # https://github.com/WorksApplications/SudachiDict/blob/develop/package_python.sh
diff --git a/pkgs/development/python-modules/sudachipy/default.nix b/pkgs/development/python-modules/sudachipy/default.nix
index 3e3bd5b4adf65..d722b368756e0 100644
--- a/pkgs/development/python-modules/sudachipy/default.nix
+++ b/pkgs/development/python-modules/sudachipy/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, cargo
-, libiconv
-, rustPlatform
-, rustc
-, sudachi-rs
-, setuptools-rust
-, pytestCheckHook
-, sudachidict-core
-, tokenizers
-, sudachipy
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cargo,
+  libiconv,
+  rustPlatform,
+  rustc,
+  sudachi-rs,
+  setuptools-rust,
+  pytestCheckHook,
+  sudachidict-core,
+  tokenizers,
+  sudachipy,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     setuptools-rust
   ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
-    libiconv
-  ];
+  buildInputs = lib.optionals stdenv.isDarwin [ libiconv ];
 
   preBuild = ''
     cd python
@@ -47,21 +46,17 @@ buildPythonPackage rec {
     tokenizers
   ];
 
-  pythonImportsCheck = [
-    "sudachipy"
-  ];
+  pythonImportsCheck = [ "sudachipy" ];
 
   passthru = {
     inherit (sudachi-rs) updateScript;
     tests = {
-      pytest = sudachipy.overridePythonAttrs (
-        _: {
-          doCheck = true;
-          # avoid catchConflicts of sudachipy
-          # we don't need to install this package since it is just a test
-          dontInstall = true;
-        }
-      );
+      pytest = sudachipy.overridePythonAttrs (_: {
+        doCheck = true;
+        # avoid catchConflicts of sudachipy
+        # we don't need to install this package since it is just a test
+        dontInstall = true;
+      });
     };
   };
 
diff --git a/pkgs/development/python-modules/summarytools/default.nix b/pkgs/development/python-modules/summarytools/default.nix
index 4bbbae78c88b7..58457768fe0e7 100644
--- a/pkgs/development/python-modules/summarytools/default.nix
+++ b/pkgs/development/python-modules/summarytools/default.nix
@@ -1,31 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, ipython
-, matplotlib
-, numpy
-, pandas
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  ipython,
+  matplotlib,
+  numpy,
+  pandas,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "summarytools";
-  version = "0.2.3";
+  version = "0.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
-  # no version tags in GitHub repo
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wsDf9IXCMQe0cVfQQuRVwMhxkhhUxbPu06yWZPLvgw4=";
+    hash = "sha256-m29ug+JZC4HgMIVopovA/dyR40Z1IcADOiDWKg9mzdc=";
   };
 
-  nativeBuildInputs = [ setuptools ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     ipython
     matplotlib
     numpy
@@ -33,11 +33,13 @@ buildPythonPackage rec {
   ];
 
   nativeCheckImports = [ pytestCheckHook ];
+
   pythonImportsCheck = [ "summarytools" ];
 
   meta = with lib; {
     description = "Python port of the R summarytools package for summarizing dataframes";
     homepage = "https://github.com/6chaoran/jupyter-summarytools";
+    changelog = "https://github.com/6chaoran/jupyter-summarytools/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ bcdarwin ];
   };
diff --git a/pkgs/development/python-modules/sumo/default.nix b/pkgs/development/python-modules/sumo/default.nix
index 1f60553de0bce..719bb0a882779 100644
--- a/pkgs/development/python-modules/sumo/default.nix
+++ b/pkgs/development/python-modules/sumo/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, cython
-, h5py
-, matplotlib
-, numpy
-, phonopy
-, pymatgen
-, scipy
-, seekpath
-, spglib
-, castepxbin
-, pytestCheckHook
-, colormath
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  cython,
+  h5py,
+  matplotlib,
+  numpy,
+  phonopy,
+  pymatgen,
+  scipy,
+  seekpath,
+  spglib,
+  castepxbin,
+  pytestCheckHook,
+  colormath,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     hash = "sha256-nQ5US7maFcOJCqFYeokGiBFp3jhiOPSfCBeclLdHdkk=";
   };
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
   propagatedBuildInputs = [
     castepxbin
@@ -47,13 +46,9 @@ buildPythonPackage rec {
     spglib
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "sumo"
-  ];
+  pythonImportsCheck = [ "sumo" ];
 
   meta = with lib; {
     description = "Toolkit for plotting and analysis of ab initio solid-state calculation data";
diff --git a/pkgs/development/python-modules/sumtypes/default.nix b/pkgs/development/python-modules/sumtypes/default.nix
index 1b6f1c38e6042..91ae86b01206c 100644
--- a/pkgs/development/python-modules/sumtypes/default.nix
+++ b/pkgs/development/python-modules/sumtypes/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, attrs
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,13 +21,9 @@ buildPythonPackage rec {
     hash = "sha256-qwQyFKVnGEqHUqFmUSnHVvedsp2peM6rJZcS90paLOo=";
   };
 
-  propagatedBuildInputs = [
-    attrs
-  ];
+  propagatedBuildInputs = [ attrs ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Algebraic data types for Python";
diff --git a/pkgs/development/python-modules/sunpy/default.nix b/pkgs/development/python-modules/sunpy/default.nix
index 88a803fa46fbd..afabfff242f2d 100644
--- a/pkgs/development/python-modules/sunpy/default.nix
+++ b/pkgs/development/python-modules/sunpy/default.nix
@@ -1,44 +1,45 @@
-{ lib
-, stdenv
-, asdf
-, astropy
-, astropy-extension-helpers
-, astropy-helpers
-, beautifulsoup4
-, buildPythonPackage
-, drms
-, fetchPypi
-, glymur
-, h5netcdf
-, hypothesis
-, lxml
-, matplotlib
-, numpy
-, pandas
-, parfive
-, pytest-astropy
-, pytestCheckHook
-, pytest-mock
-, python-dateutil
-, pythonOlder
-, scikit-image
-, scipy
-, setuptools-scm
-, sqlalchemy
-, tqdm
-, zeep
+{
+  lib,
+  stdenv,
+  asdf,
+  astropy,
+  astropy-extension-helpers,
+  astropy-helpers,
+  beautifulsoup4,
+  buildPythonPackage,
+  drms,
+  fetchPypi,
+  glymur,
+  h5netcdf,
+  hypothesis,
+  lxml,
+  matplotlib,
+  numpy,
+  pandas,
+  parfive,
+  pytest-astropy,
+  pytestCheckHook,
+  pytest-mock,
+  python-dateutil,
+  pythonOlder,
+  scikit-image,
+  scipy,
+  setuptools-scm,
+  sqlalchemy,
+  tqdm,
+  zeep,
 }:
 
 buildPythonPackage rec {
   pname = "sunpy";
-  version = "5.1.2";
+  version = "5.1.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-1/oz2Ir1K7nR6B2TPZzSjbyiADyQyRlzE9KqTg7EwkA=";
+    hash = "sha256-y+tw1I+C6wDFlJvObWrOhisrryQCeXulkwFyRCuAgTA=";
   };
 
   nativeBuildInputs = [
@@ -58,9 +59,7 @@ buildPythonPackage rec {
       asdf
       # asdf-astropy
     ];
-    database = [
-      sqlalchemy
-    ];
+    database = [ sqlalchemy ];
     image = [
       scikit-image
       scipy
@@ -85,12 +84,14 @@ buildPythonPackage rec {
     ];
   };
 
-  nativeCheckInputs = [
-    hypothesis
-    pytest-astropy
-    pytest-mock
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.asdf
+  nativeCheckInputs =
+    [
+      hypothesis
+      pytest-astropy
+      pytest-mock
+      pytestCheckHook
+    ]
+    ++ passthru.optional-dependencies.asdf
     ++ passthru.optional-dependencies.database
     ++ passthru.optional-dependencies.image
     ++ passthru.optional-dependencies.net
diff --git a/pkgs/development/python-modules/sunwatcher/default.nix b/pkgs/development/python-modules/sunwatcher/default.nix
index ee3a2e200b17c..0fcac2bfb205f 100644
--- a/pkgs/development/python-modules/sunwatcher/default.nix
+++ b/pkgs/development/python-modules/sunwatcher/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     sha256 = "0swmvmmbfb914k473yv3fc4zizy2abq2qhd7h6lixli11l5wfjxv";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/sunweg/default.nix b/pkgs/development/python-modules/sunweg/default.nix
index c662a01868ed4..10603bb5cd344 100644
--- a/pkgs/development/python-modules/sunweg/default.nix
+++ b/pkgs/development/python-modules/sunweg/default.nix
@@ -1,15 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  python-dateutil,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "sunweg";
-  version = "2.1.1";
+  version = "3.0.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,23 +20,20 @@ buildPythonPackage rec {
     owner = "rokam";
     repo = "sunweg";
     rev = "refs/tags/${version}";
-    hash = "sha256-fgNtxCBIuNulCfuDaEsM7kL1WpwNE9O+JQ1DMZrz5jA=";
+    hash = "sha256-9VzDOl393+jm6Nf40X4ZPMBbRc6KOwOQkpTNoqBsw1M=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
+    python-dateutil
     requests
   ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sunweg"
-  ];
+  pythonImportsCheck = [ "sunweg" ];
 
   meta = with lib; {
     description = "Module to access the WEG solar energy platform";
diff --git a/pkgs/development/python-modules/superqt/default.nix b/pkgs/development/python-modules/superqt/default.nix
index e7c3aaa04589a..c2fbba8406847 100644
--- a/pkgs/development/python-modules/superqt/default.nix
+++ b/pkgs/development/python-modules/superqt/default.nix
@@ -1,44 +1,66 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools-scm
-, pyqt5
-, qtpy
-, typing-extensions
-, pytestCheckHook
-, pygments
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatch-vcs,
+  hatchling,
+  pint,
+  pygments,
+  pyqt5,
+  pyqt6,
+  pyside2,
+  pyside6,
+  pytestCheckHook,
+  pythonOlder,
+  qtpy,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "superqt";
-  version = "0.3.8";
-  format = "pyproject";
+  version = "0.6.7";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
-    owner = "napari";
-    repo = pname;
+    owner = "pyapp-kit";
+    repo = "superqt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-zEMG2zscGDlRxtLn/lUTEjZBPabcwzMcj/kMcy3yOs8=";
+    hash = "sha256-/VR9Lc1x+7J/3zyo/eBFBvGkPXzpTfPpNAvNhSzWio8=";
   };
 
-  nativeBuildInputs = [ setuptools-scm ];
+  build-system = [
+    hatch-vcs
+    hatchling
+  ];
 
-  propagatedBuildInputs = [
+  dependencies = [
+    pygments
     pyqt5
     qtpy
     typing-extensions
-    pygments
   ];
 
+  passthru.optional-dependencies = {
+    quantity = [ pint ];
+    pyside2 = [ pyside2 ];
+    pyside6 = [ pyside6 ];
+    pyqt6 = [ pyqt6 ];
+  };
+
   nativeCheckInputs = [ pytestCheckHook ];
 
-  doCheck = false; # Segfaults...
+  # Segmentation fault
+  doCheck = false;
 
-  pythonImportsCheck = [ "superqt" ];
+  # Segmentation fault
+  # pythonImportsCheck = [ "superqt" ];
 
   meta = with lib; {
     description = "Missing widgets and components for Qt-python (napari/superqt)";
     homepage = "https://github.com/napari/superqt";
+    changelog = "https://github.com/pyapp-kit/superqt/releases/tag/v${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ SomeoneSerge ];
   };
diff --git a/pkgs/development/python-modules/supervise-api/default.nix b/pkgs/development/python-modules/supervise-api/default.nix
index 3bd223127a7d9..9ef2083eb0ce4 100644
--- a/pkgs/development/python-modules/supervise-api/default.nix
+++ b/pkgs/development/python-modules/supervise-api/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, substituteAll
-, supervise
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  substituteAll,
+  supervise,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,20 +24,14 @@ buildPythonPackage rec {
       --replace 'which("supervise")' '"${supervise}/bin/supervise"'
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "supervise_api"
-  ];
+  pythonImportsCheck = [ "supervise_api" ];
 
   meta = {
-    description = "An API for running processes safely and securely";
+    description = "API for running processes safely and securely";
     homepage = "https://github.com/catern/supervise";
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
diff --git a/pkgs/development/python-modules/supervisor/default.nix b/pkgs/development/python-modules/supervisor/default.nix
index b99b5cfd05b3b..e75998606b63a 100644
--- a/pkgs/development/python-modules/supervisor/default.nix
+++ b/pkgs/development/python-modules/supervisor/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, mock
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-NHYbrhojxYGSKBpRFfsH+/IsmwEzwIFmvv/HD+0+vBI=";
   };
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  propagatedBuildInputs = [ setuptools ];
 
   # wants to write to /tmp/foo which is likely already owned by another
   # nixbld user on hydra
@@ -33,12 +32,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "supervisor"
-  ];
+  pythonImportsCheck = [ "supervisor" ];
 
   meta = with lib; {
-    description = "A system for controlling process state under UNIX";
+    description = "System for controlling process state under UNIX";
     homepage = "http://supervisord.org/";
     changelog = "https://github.com/Supervisor/supervisor/blob/${version}/CHANGES.rst";
     license = licenses.free; # http://www.repoze.org/LICENSE.txt
diff --git a/pkgs/development/python-modules/sure/default.nix b/pkgs/development/python-modules/sure/default.nix
index 9d16cd48af4ca..493f761c85119 100644
--- a/pkgs/development/python-modules/sure/default.nix
+++ b/pkgs/development/python-modules/sure/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-, mock
-, six
-, isPyPy
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+  mock,
+  six,
+  isPyPy,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -32,13 +33,9 @@ buildPythonPackage rec {
 
   doCheck = pythonOlder "3.12"; # nose requires imp module
 
-  nativeCheckInputs = [
-    nose
-  ];
+  nativeCheckInputs = [ nose ];
 
-  pythonImportsCheck = [
-    "sure"
-  ];
+  pythonImportsCheck = [ "sure" ];
 
   meta = with lib; {
     description = "Utility belt for automated testing";
diff --git a/pkgs/development/python-modules/surepy/default.nix b/pkgs/development/python-modules/surepy/default.nix
index d590681fd7fc4..14ffe80ccae82 100644
--- a/pkgs/development/python-modules/surepy/default.nix
+++ b/pkgs/development/python-modules/surepy/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, aiodns
-, aiohttp
-, async-timeout
-, attrs
-, brotlipy
-, buildPythonPackage
-, faust-cchardet
-, click
-, colorama
-, fetchFromGitHub
-, halo
-, poetry-core
-, pythonOlder
-, requests
-, rich
+{
+  lib,
+  aiodns,
+  aiohttp,
+  async-timeout,
+  attrs,
+  brotlipy,
+  buildPythonPackage,
+  faust-cchardet,
+  click,
+  colorama,
+  fetchFromGitHub,
+  halo,
+  poetry-core,
+  pythonOlder,
+  requests,
+  rich,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
       --replace 'rich = "^10.1.0"' 'rich = ">=10.1.0"'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiodns
@@ -58,9 +57,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "surepy"
-  ];
+  pythonImportsCheck = [ "surepy" ];
 
   meta = with lib; {
     description = "Python library to interact with the Sure Petcare API";
diff --git a/pkgs/development/python-modules/surt/default.nix b/pkgs/development/python-modules/surt/default.nix
index d11e8e2fe53f9..74e5723eb9062 100644
--- a/pkgs/development/python-modules/surt/default.nix
+++ b/pkgs/development/python-modules/surt/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, six
-, tldextract
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  six,
+  tldextract,
 }:
 
 buildPythonPackage rec {
@@ -27,13 +28,9 @@ buildPythonPackage rec {
     tldextract
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "surt"
-  ];
+  pythonImportsCheck = [ "surt" ];
 
   disabledTests = [
     # Tests want to download Public Suffix List
diff --git a/pkgs/development/python-modules/survey/default.nix b/pkgs/development/python-modules/survey/default.nix
index 9564195c94779..f0ff72b8b7857 100644
--- a/pkgs/development/python-modules/survey/default.nix
+++ b/pkgs/development/python-modules/survey/default.nix
@@ -1,23 +1,26 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "survey";
-  version = "5.3.0";
-  format = "setuptools";
+  version = "5.4.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-jMTtsrEdt3NPy8NfeNPX4YNwjH2gaQfO89Iag/MBS+A=";
+    hash = "sha256-JT0tcNBReNdfbZrwSgv0OFcBz9Hp1N5JF4nP9oXfTJs=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
+    setuptools
     setuptools-scm
   ];
 
@@ -25,7 +28,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "survey" ];
 
   meta = with lib; {
-    description = "A simple library for creating beautiful interactive prompts";
+    description = "Simple library for creating beautiful interactive prompts";
     homepage = "https://github.com/Exahilosys/survey";
     changelog = "https://github.com/Exahilosys/survey/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/sv-ttk/default.nix b/pkgs/development/python-modules/sv-ttk/default.nix
index 834178a5c2362..542ef1d2ed272 100644
--- a/pkgs/development/python-modules/sv-ttk/default.nix
+++ b/pkgs/development/python-modules/sv-ttk/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, tkinter
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  tkinter,
 }:
 
 buildPythonPackage rec {
@@ -21,16 +22,12 @@ buildPythonPackage rec {
   # No tests available
   doCheck = false;
 
-  propagatedBuildInputs = [
-    tkinter
-  ];
+  propagatedBuildInputs = [ tkinter ];
 
-  pythonImportsCheck = [
-    "sv_ttk"
-  ];
+  pythonImportsCheck = [ "sv_ttk" ];
 
   meta = with lib; {
-    description = "A gorgeous theme for Tkinter/ttk, based on the Sun Valley visual style";
+    description = "Gorgeous theme for Tkinter/ttk, based on the Sun Valley visual style";
     homepage = "https://github.com/rdbende/Sun-Valley-ttk-theme";
     changelog = "https://github.com/rdbende/Sun-Valley-ttk-theme/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/svg-path/default.nix b/pkgs/development/python-modules/svg-path/default.nix
index 2ec9f5b780251..a3eb4b8f09fdf 100644
--- a/pkgs/development/python-modules/svg-path/default.nix
+++ b/pkgs/development/python-modules/svg-path/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pillow
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pillow,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     "test_image"
   ];
 
-  pythonImportsCheck = [
-    "svg.path"
-  ];
+  pythonImportsCheck = [ "svg.path" ];
 
   meta = with lib; {
     description = "SVG path objects and parser";
diff --git a/pkgs/development/python-modules/svg-py/default.nix b/pkgs/development/python-modules/svg-py/default.nix
index 236e5fd3105da..b59d23c539a07 100644
--- a/pkgs/development/python-modules/svg-py/default.nix
+++ b/pkgs/development/python-modules/svg-py/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pytestCheckHook
-, pythonOlder
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-rnxznJM3ihuEJrD3ba6uMdGMozIrLw/QyGzA3JPygH4=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   nativeCheckInputs = [
     pytestCheckHook
     pyyaml
   ];
 
-  pythonImportsCheck = [
-    "svg"
-  ];
+  pythonImportsCheck = [ "svg" ];
 
   disabledTestPaths = [
     # Tests need additional files
diff --git a/pkgs/development/python-modules/svg2tikz/default.nix b/pkgs/development/python-modules/svg2tikz/default.nix
index 7e24071c9c7c2..4c63ce7dbf616 100644
--- a/pkgs/development/python-modules/svg2tikz/default.nix
+++ b/pkgs/development/python-modules/svg2tikz/default.nix
@@ -1,41 +1,45 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, inkex
-, lxml
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  inkex,
+  lxml,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "svg2tikz";
-  version = "3.0.1";
+  version = "3.1.0";
 
   disabled = pythonOlder "3.7";
 
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "xyz2tex";
     repo = "svg2tikz";
     rev = "refs/tags/v${version}";
-    hash = "sha256-hvGvJFxhu7llj+tFfZvz12dZ8QYjY7zcLzB5S44l+IM=";
+    hash = "sha256-lL+CQGZMK+rxjw2kTNE6kK3FCt6ARsAD6ROMsXWwDCs=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     poetry-core
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     inkex
     lxml
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
+  pythonRelaxDeps = [
+    "lxml"
   ];
 
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
   pythonImportsCheck = [ "svg2tikz" ];
 
   meta = with lib; {
@@ -43,6 +47,9 @@ buildPythonPackage rec {
     homepage = "https://github.com/xyz2tex/svg2tikz";
     description = "Set of tools for converting SVG graphics to TikZ/PGF code";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ dotlambda gal_bolle ];
+    maintainers = with maintainers; [
+      dotlambda
+      gal_bolle
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/svgelements/default.nix b/pkgs/development/python-modules/svgelements/default.nix
index 22a7e2c5b1adb..7e4709ff5a08f 100644
--- a/pkgs/development/python-modules/svgelements/default.nix
+++ b/pkgs/development/python-modules/svgelements/default.nix
@@ -1,15 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, anyio
-, numpy
-, pillow
-, pytest-forked
-, pytest-xdist
-, pytestCheckHook
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  setuptools,
+  wheel,
+  anyio,
+  numpy,
+  pillow,
+  pytest-forked,
+  pytest-xdist,
+  pytestCheckHook,
+  scipy,
 }:
 
 buildPythonPackage rec {
@@ -24,14 +26,22 @@ buildPythonPackage rec {
     hash = "sha256-nx2sGXeeh8S17TfRDFifQbdSxc4YGsDNnrPSSbxv7S4=";
   };
 
-  nativeBuildInputs = [
+  patches = [
+    (fetchpatch {
+      name = "fix-assert-tests";
+      url = "https://github.com/meerk40t/svgelements/commit/23da98941a94cf1afed39c10750222ccfee73c9f.patch";
+      hash = "sha256-/53w4eWlaSNEQxuoAxPrN2HciZ3Az2A2SKcIAlNgKAs=";
+    })
+  ];
+
+  build-system = [
     setuptools
     wheel
   ];
 
   pythonImportsCheck = [ "svgelements" ];
 
-  nativeCheckInputs =  [
+  nativeCheckInputs = [
     anyio
     numpy
     pillow
@@ -41,10 +51,10 @@ buildPythonPackage rec {
     scipy
   ];
 
-  meta = with lib; {
+  meta = {
     description = "SVG Parsing for Elements, Paths, and other SVG Objects";
     homepage = "https://github.com/meerk40t/svgelements";
-    license = licenses.mit;
-    maintainers = with maintainers; [ GaetanLepage ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
   };
 }
diff --git a/pkgs/development/python-modules/svglib/default.nix b/pkgs/development/python-modules/svglib/default.nix
index 61ac8a625656f..ab8978e144c96 100644
--- a/pkgs/development/python-modules/svglib/default.nix
+++ b/pkgs/development/python-modules/svglib/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, cssselect2
-, lxml
-, pillow
-, pytestCheckHook
-, reportlab
-, tinycss2
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  cssselect2,
+  lxml,
+  pillow,
+  pytestCheckHook,
+  reportlab,
+  tinycss2,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     tinycss2
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Ignore tests that require network access (TestWikipediaFlags and TestW3CSVG), and tests that
@@ -42,12 +41,10 @@ buildPythonPackage rec {
     "TestOtherFiles"
   ];
 
-  pythonImportsCheck = [
-    "svglib.svglib"
-  ];
+  pythonImportsCheck = [ "svglib.svglib" ];
 
   meta = with lib; {
-    description = "A pure-Python library for reading and converting SVG";
+    description = "Pure-Python library for reading and converting SVG";
     mainProgram = "svg2pdf";
     homepage = "https://github.com/deeplook/svglib";
     changelog = "https://github.com/deeplook/svglib/blob/v${version}/CHANGELOG.rst";
diff --git a/pkgs/development/python-modules/svgutils/default.nix b/pkgs/development/python-modules/svgutils/default.nix
index ea2c7c547e437..3d56da85a02ff 100644
--- a/pkgs/development/python-modules/svgutils/default.nix
+++ b/pkgs/development/python-modules/svgutils/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, lxml
-, matplotlib
-, pytestCheckHook
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  lxml,
+  matplotlib,
+  pytestCheckHook,
+  nose,
 }:
 
 buildPythonPackage rec {
@@ -27,7 +28,10 @@ buildPythonPackage rec {
     matplotlib
   ];
 
-  nativeCheckInputs = [ pytestCheckHook nose ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    nose
+  ];
 
   pythonImportsCheck = [ "svgutils" ];
 
diff --git a/pkgs/development/python-modules/svgwrite/default.nix b/pkgs/development/python-modules/svgwrite/default.nix
index 7ac6fd9f13cfc..24bb2622ecc19 100644
--- a/pkgs/development/python-modules/svgwrite/default.nix
+++ b/pkgs/development/python-modules/svgwrite/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,8 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python library to create SVG drawings";
+    description = "Python library to create SVG drawings";
     homepage = "https://github.com/mozman/svgwrite";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/swagger-spec-validator/default.nix b/pkgs/development/python-modules/swagger-spec-validator/default.nix
index 7b9ed410106be..c6f41fd03b1cb 100644
--- a/pkgs/development/python-modules/swagger-spec-validator/default.nix
+++ b/pkgs/development/python-modules/swagger-spec-validator/default.nix
@@ -1,4 +1,13 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pyyaml, jsonschema, six, pytestCheckHook, mock }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyyaml,
+  jsonschema,
+  six,
+  pytestCheckHook,
+  mock,
+}:
 
 buildPythonPackage rec {
   pname = "swagger-spec-validator";
diff --git a/pkgs/development/python-modules/swagger-ui-bundle/default.nix b/pkgs/development/python-modules/swagger-ui-bundle/default.nix
index 13ebaed72c6d4..b71ae59cca9ba 100644
--- a/pkgs/development/python-modules/swagger-ui-bundle/default.nix
+++ b/pkgs/development/python-modules/swagger-ui-bundle/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 
-# build-system
-, poetry-core
+  # build-system
+  poetry-core,
 
-# dependencies
-, importlib-resources
-, jinja2
+  # dependencies
+  importlib-resources,
+  jinja2,
 
- }:
+}:
 
 buildPythonPackage rec {
   pname = "swagger-ui-bundle";
@@ -23,15 +24,9 @@ buildPythonPackage rec {
     hash = "sha256-IGc8NDHIcz1dFhXs952azzDP91ICrK8hp9nH9IlxRSk=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    jinja2
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    importlib-resources
-  ];
+  propagatedBuildInputs = [ jinja2 ] ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ];
 
   # package contains no tests
   doCheck = false;
@@ -40,6 +35,5 @@ buildPythonPackage rec {
     description = "bundled swagger-ui pip package";
     homepage = "https://github.com/dtkav/swagger_ui_bundle";
     license = licenses.asl20;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/swift/default.nix b/pkgs/development/python-modules/swift/default.nix
index ec4f1b7a39632..ddcecdb3e6b32 100644
--- a/pkgs/development/python-modules/swift/default.nix
+++ b/pkgs/development/python-modules/swift/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, boto3
-, cryptography
-, eventlet
-, greenlet
-, iana-etc
-, installShellFiles
-, libredirect
-, lxml
-, mock
-, netifaces
-, pastedeploy
-, pbr
-, pyeclib
-, requests
-, setuptools
-, six
-, stestr
-, swiftclient
-, xattr
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  boto3,
+  cryptography,
+  eventlet,
+  greenlet,
+  iana-etc,
+  installShellFiles,
+  libredirect,
+  lxml,
+  mock,
+  netifaces,
+  pastedeploy,
+  pbr,
+  pyeclib,
+  requests,
+  setuptools,
+  six,
+  stestr,
+  swiftclient,
+  xattr,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/swisshydrodata/default.nix b/pkgs/development/python-modules/swisshydrodata/default.nix
index 1ab94a63df381..24048a199746b 100644
--- a/pkgs/development/python-modules/swisshydrodata/default.nix
+++ b/pkgs/development/python-modules/swisshydrodata/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, requests
-, requests-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  requests,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "1rdgfc6zg5j3fvrpbqs9vc3n5m66r5yljawyl7nmrqd5lwq1lqak";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/switchbot-api/default.nix b/pkgs/development/python-modules/switchbot-api/default.nix
index 4f6f5ff177842..06eae69b07e78 100644
--- a/pkgs/development/python-modules/switchbot-api/default.nix
+++ b/pkgs/development/python-modules/switchbot-api/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,23 +21,17 @@ buildPythonPackage rec {
     hash = "sha256-dJLjWwBzrT3GnsRpTIXu3SkVDUlnAbRwBlfSQaHWPzc=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    aiohttp
-  ];
+  dependencies = [ aiohttp ];
 
   # Module has no tests
-  doCheck= false;
+  doCheck = false;
 
-  pythonImportsCheck = [
-    "switchbot_api"
-  ];
+  pythonImportsCheck = [ "switchbot_api" ];
 
   meta = with lib; {
-    description = "An asynchronous library to use Switchbot API";
+    description = "Asynchronous library to use Switchbot API";
     homepage = "https://github.com/SeraphicCorp/py-switchbot-api";
     changelog = "https://github.com/SeraphicCorp/py-switchbot-api/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/swspotify/default.nix b/pkgs/development/python-modules/swspotify/default.nix
index e2627660006ba..fd5c524f18a6a 100644
--- a/pkgs/development/python-modules/swspotify/default.nix
+++ b/pkgs/development/python-modules/swspotify/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, dbus-python
-, fetchFromGitHub
-, flask
-, flask-cors
-, poetry-core
-, pythonOlder
-, requests
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  dbus-python,
+  fetchFromGitHub,
+  flask,
+  flask-cors,
+  poetry-core,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-xGLvc154xnje45Akf7H1qqQRUc03gGVt8AhGlkcP3kY=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     dbus-python
@@ -38,9 +37,7 @@ buildPythonPackage rec {
   # Tests want to use Dbus
   doCheck = false;
 
-  pythonImportsCheck = [
-    "SwSpotify"
-  ];
+  pythonImportsCheck = [ "SwSpotify" ];
 
   meta = with lib; {
     description = "Library to get the currently playing song and artist from Spotify";
diff --git a/pkgs/development/python-modules/sybil/default.nix b/pkgs/development/python-modules/sybil/default.nix
index 045c5f97501cb..0d2e4b3d3377a 100644
--- a/pkgs/development/python-modules/sybil/default.nix
+++ b/pkgs/development/python-modules/sybil/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "sybil";
   version = "6.0.3";
-  pyproject =  true;
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-SqAP+hj+pivsuGxx9/TvmfVrfrLSWQRYIjKh0ui0AVc=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   # Circular dependency with testfixtures
   doCheck = false;
 
-  pythonImportsCheck = [
-    "sybil"
-  ];
+  pythonImportsCheck = [ "sybil" ];
 
   meta = with lib; {
     description = "Automated testing for the examples in your documentation";
diff --git a/pkgs/development/python-modules/symengine/default.nix b/pkgs/development/python-modules/symengine/default.nix
index 7d02d2e0c6fd9..d59abb27c8d66 100644
--- a/pkgs/development/python-modules/symengine/default.nix
+++ b/pkgs/development/python-modules/symengine/default.nix
@@ -1,18 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cython
-, cmake
-, symengine
-, pytest
-, sympy
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  cython,
+  cmake,
+  symengine,
+  pytest,
+  sympy,
+  python,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "symengine";
   version = "0.11.0";
-  format = "setuptools";
+
+  build-system = [ setuptools ];
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "symengine";
@@ -21,26 +26,39 @@ buildPythonPackage rec {
     hash = "sha256-uUMcNnynE2itIwc7IGFwxveqLRL8f4dAAcaD6FUWJaY=";
   };
 
+  env = {
+    SymEngine_DIR = "${symengine}";
+  };
+
+  patches = [
+    # Distutils has been removed in python 3.12
+    # See https://github.com/symengine/symengine.py/pull/478
+    (fetchpatch {
+      name = "no-distutils.patch";
+      url = "https://github.com/symengine/symengine.py/pull/478/commits/e72006d5f7425cd50c54b22766e0ed4bcd2dca85.patch";
+      hash = "sha256-kGJRGkBgxOfI1wf88JwnSztkOYd1wvg62H7wA6CcYEQ=";
+    })
+  ];
+
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "\"cmake\"" "\"${cmake}/bin/cmake\"" \
-      --replace "'cython>=0.29.24'" "'cython'"
+      --replace-fail "\"cmake\"" "\"${lib.getExe' cmake "cmake"}\"" \
+      --replace-fail "'cython>=0.29.24'" "'cython'"
+
+    export PATH=${cython}/bin:$PATH
   '';
 
   nativeBuildUnputs = [ cmake ];
 
   buildInputs = [ cython ];
 
-  nativeCheckInputs = [ pytest sympy ];
-
-  setupPyBuildFlags = [
-    "--symengine-dir=${symengine}/"
-    "--define=\"CYTHON_BIN=${cython}/bin/cython\""
+  nativeCheckInputs = [
+    pytest
+    sympy
   ];
 
   checkPhase = ''
-    mkdir empty
-    cd empty
+    mkdir empty && cd empty
     ${python.interpreter} ../bin/test_python.py
   '';
 
diff --git a/pkgs/development/python-modules/sympy/default.nix b/pkgs/development/python-modules/sympy/default.nix
index d2a10492153e0..c9978724763bc 100644
--- a/pkgs/development/python-modules/sympy/default.nix
+++ b/pkgs/development/python-modules/sympy/default.nix
@@ -1,18 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, glibcLocales
-, mpmath
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  glibcLocales,
+  mpmath,
+
+  # Reverse dependency
+  sage,
 }:
 
 buildPythonPackage rec {
   pname = "sympy";
-  version = "1.12";
+  version = "1.12.1";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-6/WVyNrD4P3EFSxRh4tJg5bsfzDnqRTWBx5nTUlCD7g=";
+    hash = "sha256-KHewP5mM2MCPB80N5bdnEZzT70DQn0HDDXIvZoaw+4g=";
   };
 
   nativeCheckInputs = [ glibcLocales ];
@@ -27,11 +31,15 @@ buildPythonPackage rec {
     export LANG="en_US.UTF-8"
   '';
 
+  passthru.tests = {
+    inherit sage;
+  };
+
   meta = with lib; {
-    description = "A Python library for symbolic mathematics";
+    description = "Python library for symbolic mathematics";
     mainProgram = "isympy";
-    homepage    = "https://www.sympy.org/";
-    license     = licenses.bsd3;
+    homepage = "https://www.sympy.org/";
+    license = licenses.bsd3;
     maintainers = with maintainers; [ lovek323 ] ++ teams.sage.members;
   };
 }
diff --git a/pkgs/development/python-modules/symspellpy/default.nix b/pkgs/development/python-modules/symspellpy/default.nix
index ad3b732209ef7..ea823e6f204bc 100644
--- a/pkgs/development/python-modules/symspellpy/default.nix
+++ b/pkgs/development/python-modules/symspellpy/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
 
-, pythonOlder
+  pythonOlder,
 
-, pytestCheckHook
+  pytestCheckHook,
 
-, setuptools
+  setuptools,
 
   # for testing
-, numpy
-, importlib-resources
+  numpy,
+  importlib-resources,
 
   # requirements
-, editdistpy
+  editdistpy,
 }:
 
 buildPythonPackage rec {
@@ -46,13 +47,9 @@ buildPythonPackage rec {
     hash = "sha256-D8xdMCy4fSff3nuS2sD2QHWk0869AlFDE+lFRvayYDQ=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    editdistpy
-  ];
+  dependencies = [ editdistpy ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -65,12 +62,11 @@ buildPythonPackage rec {
     "symspellpy.symspellpy"
   ];
 
-  meta = with lib;
-    {
-      description = "Python port of SymSpell v6.7.1, which provides much higher speed and lower memory consumption";
-      homepage = "https://github.com/mammothb/symspellpy";
-      changelog = "https://github.com/mammothb/symspellpy/releases/tag/v${version}";
-      license = licenses.mit;
-      maintainers = with maintainers; [ vizid ];
-    };
+  meta = with lib; {
+    description = "Python port of SymSpell v6.7.1, which provides much higher speed and lower memory consumption";
+    homepage = "https://github.com/mammothb/symspellpy";
+    changelog = "https://github.com/mammothb/symspellpy/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ vizid ];
+  };
 }
diff --git a/pkgs/development/python-modules/syncedlyrics/default.nix b/pkgs/development/python-modules/syncedlyrics/default.nix
index a53740b37253d..ec90db0811bb0 100644
--- a/pkgs/development/python-modules/syncedlyrics/default.nix
+++ b/pkgs/development/python-modules/syncedlyrics/default.nix
@@ -1,17 +1,17 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
-, pythonRelaxDepsHook
-, rapidfuzz
-, requests
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
+  rapidfuzz,
+  requests,
 }:
 
 buildPythonPackage rec {
   pname = "syncedlyrics";
-  version = "0.9.0";
+  version = "0.10.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,17 +20,14 @@ buildPythonPackage rec {
     owner = "rtcq";
     repo = "syncedlyrics";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Q0Hu403Hxr4iDuZfGQjgTSuNMVgsqd9zLRl9Vc1YzyQ=";
+    hash = "sha256-jqd68Npt7qq9aMWO3AVR4JRAs9avO4x9u+MC/brU1Cw=";
   };
 
   build-system = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "rapidfuzz"
-  ];
+  pythonRelaxDeps = [ "rapidfuzz" ];
 
   dependencies = [
     requests
@@ -41,16 +38,14 @@ buildPythonPackage rec {
   # Tests require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "syncedlyrics"
-  ];
+  pythonImportsCheck = [ "syncedlyrics" ];
 
   meta = with lib; {
     description = "Module to get LRC format (synchronized) lyrics";
-    mainProgram = "syncedlyrics";
     homepage = "https://github.com/rtcq/syncedlyrics";
     changelog = "https://github.com/rtcq/syncedlyrics/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "syncedlyrics";
   };
 }
diff --git a/pkgs/development/python-modules/syncer/default.nix b/pkgs/development/python-modules/syncer/default.nix
index cb86cd2e7ceea..aed4172d9a3f4 100644
--- a/pkgs/development/python-modules/syncer/default.nix
+++ b/pkgs/development/python-modules/syncer/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/synergy/default.nix b/pkgs/development/python-modules/synergy/default.nix
index 570390d67f153..12dacb1586e10 100644
--- a/pkgs/development/python-modules/synergy/default.nix
+++ b/pkgs/development/python-modules/synergy/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, numpy
-, scipy
-, matplotlib
-, plotly
-, pandas
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  numpy,
+  scipy,
+  matplotlib,
+  plotly,
+  pandas,
 }:
 
 buildPythonPackage rec {
@@ -36,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "synergy" ];
 
   meta = with lib; {
-    description = "A Python library for calculating, analyzing, and visualizing drug combination synergy";
+    description = "Python library for calculating, analyzing, and visualizing drug combination synergy";
     homepage = "https://github.com/djwooten/synergy";
     maintainers = [ maintainers.ivar ];
     license = licenses.gpl3Plus;
diff --git a/pkgs/development/python-modules/synologydsm-api/default.nix b/pkgs/development/python-modules/synologydsm-api/default.nix
index 8be0564de4d73..6fc64f5baad7e 100644
--- a/pkgs/development/python-modules/synologydsm-api/default.nix
+++ b/pkgs/development/python-modules/synologydsm-api/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, pythonRelaxDepsHook
-, requests
-, urllib3
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  fetchpatch,
+  poetry-core,
+  requests,
+  urllib3,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -36,21 +36,16 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "urllib3"
-  ];
+  pythonRelaxDeps = [ "urllib3" ];
 
   propagatedBuildInputs = [
     requests
     urllib3
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "synology_dsm" ];
 
diff --git a/pkgs/development/python-modules/syrupy/default.nix b/pkgs/development/python-modules/syrupy/default.nix
index c5b860e840504..ac6cdafda0314 100644
--- a/pkgs/development/python-modules/syrupy/default.nix
+++ b/pkgs/development/python-modules/syrupy/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, poetry-core
-, pytest
-, colored
-, invoke
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  poetry-core,
+  pytest,
+  colored,
+  invoke,
 }:
 
 buildPythonPackage rec {
@@ -22,17 +23,11 @@ buildPythonPackage rec {
     hash = "sha256-NBJJqQsZqqKHOdqGa/j/2KQvlenLCEJBqlfdjtFK00U=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  buildInputs = [
-    pytest
-  ];
+  buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [
-    colored
-  ];
+  propagatedBuildInputs = [ colored ];
 
   nativeCheckInputs = [
     invoke
diff --git a/pkgs/development/python-modules/syslog-rfc5424-formatter/default.nix b/pkgs/development/python-modules/syslog-rfc5424-formatter/default.nix
index 50ebc91d9e81c..61c9a489b7387 100644
--- a/pkgs/development/python-modules/syslog-rfc5424-formatter/default.nix
+++ b/pkgs/development/python-modules/syslog-rfc5424-formatter/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
   # Tests are not picked up, review later again
   doCheck = false;
 
-  pythonImportsCheck = [
-    "syslog_rfc5424_formatter"
-  ];
+  pythonImportsCheck = [ "syslog_rfc5424_formatter" ];
 
   meta = with lib; {
     description = "Python logging formatter for emitting RFC5424 Syslog messages";
diff --git a/pkgs/development/python-modules/systembridge/default.nix b/pkgs/development/python-modules/systembridge/default.nix
index f60a1c3298c4b..3af2cb7c4964d 100644
--- a/pkgs/development/python-modules/systembridge/default.nix
+++ b/pkgs/development/python-modules/systembridge/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, websockets
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  websockets,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/systembridgeconnector/default.nix b/pkgs/development/python-modules/systembridgeconnector/default.nix
index 04132ffe081a2..d75f815cb0ad9 100644
--- a/pkgs/development/python-modules/systembridgeconnector/default.nix
+++ b/pkgs/development/python-modules/systembridgeconnector/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, fetchpatch2
-, setuptools
-, aiohttp
-, incremental
-, systembridgemodels
-, pytest-aiohttp
-, pytest-socket
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  fetchpatch2,
+  setuptools,
+  aiohttp,
+  incremental,
+  systembridgemodels,
+  pytest-aiohttp,
+  pytest-socket,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
       --replace-fail ", dev=0" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
diff --git a/pkgs/development/python-modules/systembridgemodels/default.nix b/pkgs/development/python-modules/systembridgemodels/default.nix
index 82d581ff3e1e4..a1a2233cd4c45 100644
--- a/pkgs/development/python-modules/systembridgemodels/default.nix
+++ b/pkgs/development/python-modules/systembridgemodels/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, incremental
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  incremental,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,19 +27,13 @@ buildPythonPackage rec {
       --replace-fail ", dev=1" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    incremental
-  ];
+  propagatedBuildInputs = [ incremental ];
 
   pythonImportsCheck = [ "systembridgemodels" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
     changelog = "https://github.com/timmo001/system-bridge-models/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/systemd/default.nix b/pkgs/development/python-modules/systemd/default.nix
index de195da11240d..ebf70c9946cb5 100644
--- a/pkgs/development/python-modules/systemd/default.nix
+++ b/pkgs/development/python-modules/systemd/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, libredirect
-, systemd
-, pkg-config
-, pytest
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  libredirect,
+  systemd,
+  pkg-config,
+  pytest,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-8p4m4iM/z4o6PHRQIpuSXb64tPTWGlujEYCDVLiIt2o=";
   };
 
-  nativeBuildInputs = [
-    pkg-config
-  ];
+  nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [
-    systemd
-  ];
+  buildInputs = [ systemd ];
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
   checkPhase = ''
     echo "12345678901234567890123456789012" > machine-id
diff --git a/pkgs/development/python-modules/sysv-ipc/default.nix b/pkgs/development/python-modules/sysv-ipc/default.nix
index e6e1db135a05c..d7e2f628756fe 100644
--- a/pkgs/development/python-modules/sysv-ipc/default.nix
+++ b/pkgs/development/python-modules/sysv-ipc/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -20,5 +21,4 @@ buildPythonPackage rec {
     homepage = "http://semanchuk.com/philip/sysv_ipc/";
     maintainers = with maintainers; [ ris ];
   };
-
 }
diff --git a/pkgs/development/python-modules/tabcmd/default.nix b/pkgs/development/python-modules/tabcmd/default.nix
index 956e71bff6054..7638e67378ae4 100644
--- a/pkgs/development/python-modules/tabcmd/default.nix
+++ b/pkgs/development/python-modules/tabcmd/default.nix
@@ -12,7 +12,6 @@
   pytestCheckHook,
   python3,
   pythonOlder,
-  pythonRelaxDepsHook,
   requests,
   setuptools,
   setuptools-scm,
@@ -26,14 +25,14 @@
 
 buildPythonPackage rec {
   pname = "tabcmd";
-  version = "2.0.13";
+  version = "2.0.14";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-f9zoYeb4RzcCtgcCYYvvuCuFrjqpP3Fhv38bUWH24+g=";
+    hash = "sha256-wyfKy0g2btdNMNviCd7brB+lwZvPcZ3/DnymdVjCGFg=";
   };
 
   prePatch = ''
@@ -47,7 +46,6 @@ buildPythonPackage rec {
     "urllib3"
   ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   build-system = [ setuptools ];
 
@@ -93,7 +91,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "tabcmd" ];
 
   meta = with lib; {
-    description = "A command line client for working with Tableau Server";
+    description = "Command line client for working with Tableau Server";
     homepage = "https://github.com/tableau/tabcmd";
     changelog = "https://github.com/tableau/tabcmd/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/tableaudocumentapi/default.nix b/pkgs/development/python-modules/tableaudocumentapi/default.nix
index 437c1b2183947..1d9b22ce5b4e7 100644
--- a/pkgs/development/python-modules/tableaudocumentapi/default.nix
+++ b/pkgs/development/python-modules/tableaudocumentapi/default.nix
@@ -1,15 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, lxml
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  lxml,
+  pytestCheckHook,
+  pythonOlder,
+  fetchpatch,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "tableaudocumentapi";
   version = "0.11";
-  format = "setuptools";
+
+  pyproject = true;
+  build-system = [ setuptools ];
 
   disabled = pythonOlder "3.7";
 
@@ -17,18 +22,21 @@ buildPythonPackage rec {
     inherit pname version;
     hash = "sha256-g6V1UBf+P21FcZkR3PHoUmdmrQwEvjdd1VKhvNmvOys=";
   };
-
-  propagatedBuildInputs = [
-    lxml
+  patches = [
+    # distutils has been removed since python 3.12
+    # see https://github.com/tableau/document-api-python/pull/255
+    (fetchpatch {
+      name = "no-distutils.patch";
+      url = "https://github.com/tableau/document-api-python/pull/255/commits/59280bbe073060d1249e6404e11303ed6faa84f6.patch";
+      hash = "sha256-mjIF9iP1BQXvqkS0jYNTm8otkhSKLj2b2iHSMZ2K0iI=";
+    })
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  dependencies = [ lxml ];
 
-  pythonImportsCheck = [
-    "tableaudocumentapi"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "tableaudocumentapi" ];
 
   # ModuleNotFoundError: No module named 'test.assets'
   doCheck = false;
diff --git a/pkgs/development/python-modules/tableauserverclient/default.nix b/pkgs/development/python-modules/tableauserverclient/default.nix
index 3ddf8c9a2d15c..e37539b18de64 100644
--- a/pkgs/development/python-modules/tableauserverclient/default.nix
+++ b/pkgs/development/python-modules/tableauserverclient/default.nix
@@ -1,27 +1,27 @@
-{ lib
-, buildPythonPackage
-, defusedxml
-, fetchPypi
-, packaging
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
-, requests-mock
-, setuptools
-, versioneer
+{
+  lib,
+  buildPythonPackage,
+  defusedxml,
+  fetchPypi,
+  packaging,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-mock,
+  setuptools,
+  versioneer,
 }:
 
 buildPythonPackage rec {
   pname = "tableauserverclient";
-  version = "0.30";
+  version = "0.31";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-MIE6V84xLEbgmTwvP6jQC0H//gBnMTO1sowL1HIMbpQ=";
+    hash = "sha256-e00/+yVKg7dGGq3Os+oWu/F93j5e9dnwWZxKwm+soqM=";
   };
 
   postPatch = ''
@@ -29,13 +29,10 @@ buildPythonPackage rec {
     rm versioneer.py
   '';
 
-  pythonRelaxDeps = [
-    "urllib3"
-  ];
+  pythonRelaxDeps = [ "urllib3" ];
 
   nativeBuildInputs = [
     setuptools
-    pythonRelaxDepsHook
     versioneer
   ];
 
@@ -53,9 +50,7 @@ buildPythonPackage rec {
   # Tests attempt to create some file artifacts and fails
   doCheck = false;
 
-  pythonImportsCheck = [
-    "tableauserverclient"
-  ];
+  pythonImportsCheck = [ "tableauserverclient" ];
 
   meta = with lib; {
     description = "Module for working with the Tableau Server REST API";
diff --git a/pkgs/development/python-modules/tabledata/default.nix b/pkgs/development/python-modules/tabledata/default.nix
index 290774b17b41d..49769b3f0e51e 100644
--- a/pkgs/development/python-modules/tabledata/default.nix
+++ b/pkgs/development/python-modules/tabledata/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, dataproperty
-, typepy
-, pytestCheckHook
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  dataproperty,
+  typepy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,16 @@ buildPythonPackage rec {
     hash = "sha256-84KrXnks76mvIjcEeQPpwd8rPO5SMbH/jfqERaFTrWo=";
   };
 
-  propagatedBuildInputs = [ dataproperty typepy ];
+  propagatedBuildInputs = [
+    dataproperty
+    typepy
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     homepage = "https://github.com/thombashi/tabledata";
-    description = "A library to represent tabular data";
+    description = "Library to represent tabular data";
     changelog = "https://github.com/thombashi/tabledata/releases/tag/v${version}";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/tables/default.nix b/pkgs/development/python-modules/tables/default.nix
index fd034b2091335..e7f22b68f39f9 100644
--- a/pkgs/development/python-modules/tables/default.nix
+++ b/pkgs/development/python-modules/tables/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, blosc2
-, bzip2
-, c-blosc
-, cython
-, hdf5
-, lzo
-, numpy
-, numexpr
-, packaging
-, setuptools
-, sphinx
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  blosc2,
+  bzip2,
+  c-blosc,
+  cython,
+  hdf5,
+  lzo,
+  numpy,
+  numexpr,
+  packaging,
+  setuptools,
+  sphinx,
   # Test inputs
-, python
-, pytest
-, py-cpuinfo
+  python,
+  pytest,
+  py-cpuinfo,
 }:
 
 buildPythonPackage rec {
@@ -79,9 +80,7 @@ buildPythonPackage rec {
     "--blosc2=${lib.getDev blosc2.c-blosc2}"
   ];
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
   preCheck = ''
     cd ..
diff --git a/pkgs/development/python-modules/tablib/default.nix b/pkgs/development/python-modules/tablib/default.nix
index 66388b285686b..38c58f5cb313b 100644
--- a/pkgs/development/python-modules/tablib/default.nix
+++ b/pkgs/development/python-modules/tablib/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, markuppy
-, odfpy
-, openpyxl
-, pandas
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, setuptools-scm
-, tabulate
-, unicodecsv
-, xlrd
-, xlwt
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  markuppy,
+  odfpy,
+  openpyxl,
+  pandas,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  setuptools-scm,
+  tabulate,
+  unicodecsv,
+  xlrd,
+  xlwt,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
       --replace " --cov=tablib --cov=tests --cov-report xml --cov-report term --cov-report html" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   passthru.optional-dependencies = {
     all = [
@@ -47,28 +46,16 @@ buildPythonPackage rec {
       xlrd
       xlwt
     ];
-    cli = [
-      tabulate
-    ];
-    html = [
-      markuppy
-    ];
-    ods = [
-      odfpy
-    ];
-    pandas = [
-      pandas
-    ];
+    cli = [ tabulate ];
+    html = [ markuppy ];
+    ods = [ odfpy ];
+    pandas = [ pandas ];
     xls = [
       xlrd
       xlwt
     ];
-    xlsx = [
-      openpyxl
-    ];
-    yaml = [
-      pyyaml
-    ];
+    xlsx = [ openpyxl ];
+    yaml = [ pyyaml ];
   };
 
   nativeCheckInputs = [
@@ -82,9 +69,7 @@ buildPythonPackage rec {
     "tests/test_tablib.py"
   ];
 
-  pythonImportsCheck = [
-    "tablib"
-  ];
+  pythonImportsCheck = [ "tablib" ];
 
   meta = with lib; {
     description = "Format-agnostic tabular dataset library";
diff --git a/pkgs/development/python-modules/tabula-py/default.nix b/pkgs/development/python-modules/tabula-py/default.nix
index bdc31012cf2d0..0299d511c25a8 100644
--- a/pkgs/development/python-modules/tabula-py/default.nix
+++ b/pkgs/development/python-modules/tabula-py/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, distro
-, fetchFromGitHub
-, jre
-, numpy
-, pandas
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
-, jpype1
+{
+  lib,
+  buildPythonPackage,
+  distro,
+  fetchFromGitHub,
+  jre,
+  numpy,
+  pandas,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  jpype1,
 }:
 
 buildPythonPackage rec {
   pname = "tabula-py";
-  version = "2.9.0";
+  version = "2.9.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -23,37 +24,31 @@ buildPythonPackage rec {
     owner = "chezou";
     repo = "tabula-py";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MGv2n8DoSjumD3lRcqwI0sEsaEDgs1n+st8DwZuZauo=";
+    hash = "sha256-dEcVIlK3M7zqRMN7W7mnnMPWhM2A4/qvf0aY61ko4yE=";
   };
 
   postPatch = ''
     substituteInPlace tabula/backend.py \
-      --replace '"java"' '"${lib.getExe jre}"'
+      --replace-fail '"java"' '"${lib.getExe jre}"'
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  buildInputs = [
-    jre
-  ];
+  buildInputs = [ jre ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     distro
     numpy
     pandas
     jpype1
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "tabula"
-  ];
+  pythonImportsCheck = [ "tabula" ];
 
   disabledTests = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/tabulate/default.nix b/pkgs/development/python-modules/tabulate/default.nix
index 9b1108481c755..c781a453397ac 100644
--- a/pkgs/development/python-modules/tabulate/default.nix
+++ b/pkgs/development/python-modules/tabulate/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools-scm
-, setuptools
-, wcwidth
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools-scm,
+  setuptools,
+  wcwidth,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/tabview/default.nix b/pkgs/development/python-modules/tabview/default.nix
index 8d83fe4ef9ad5..4db25a42b8cd0 100644
--- a/pkgs/development/python-modules/tabview/default.nix
+++ b/pkgs/development/python-modules/tabview/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/tadasets/default.nix b/pkgs/development/python-modules/tadasets/default.nix
index 4f3b179e63dca..2cf02af4efb23 100644
--- a/pkgs/development/python-modules/tadasets/default.nix
+++ b/pkgs/development/python-modules/tadasets/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, matplotlib
-, pytest
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  matplotlib,
+  pytest,
+  scipy,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/tag-expressions/default.nix b/pkgs/development/python-modules/tag-expressions/default.nix
index e87c489dae4a0..ed06454a5f6ab 100644
--- a/pkgs/development/python-modules/tag-expressions/default.nix
+++ b/pkgs/development/python-modules/tag-expressions/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-/6Ym72jlgVdpel4V2W2aCKNtISDT9y5qz7+gTllUuPg=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "tagexpressions"
-  ];
+  pythonImportsCheck = [ "tagexpressions" ];
 
   meta = with lib; {
     description = "Package to parse logical tag expressions";
diff --git a/pkgs/development/python-modules/tago/default.nix b/pkgs/development/python-modules/tago/default.nix
index d20d99f9ebc18..eb42efff56896 100644
--- a/pkgs/development/python-modules/tago/default.nix
+++ b/pkgs/development/python-modules/tago/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, promise
-, python-socketio
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
-, websockets
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  promise,
+  python-socketio,
+  pythonOlder,
+  requests,
+  websockets,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +26,6 @@ buildPythonPackage rec {
 
   pythonRelaxDeps = true;
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -41,9 +38,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "tago"
-  ];
+  pythonImportsCheck = [ "tago" ];
 
   meta = with lib; {
     description = "Python module for interacting with Tago.io";
diff --git a/pkgs/development/python-modules/tagoio-sdk/default.nix b/pkgs/development/python-modules/tagoio-sdk/default.nix
index 626872794e035..4e2984a987215 100644
--- a/pkgs/development/python-modules/tagoio-sdk/default.nix
+++ b/pkgs/development/python-modules/tagoio-sdk/default.nix
@@ -1,15 +1,15 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, python-dateutil
-, python-socketio
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
-, requests-mock
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  python-dateutil,
+  python-socketio,
+  pythonOlder,
+  requests,
+  requests-mock,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +26,10 @@ buildPythonPackage rec {
     hash = "sha256-37/fg2vbwYPhYPvSJ2YxWAPrfspqTE3thIL/VR1+AkI=";
   };
 
-  pythonRelaxDeps = [
-    "requests"
-  ];
+  pythonRelaxDeps = [ "requests" ];
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -47,9 +44,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "tagoio_sdk"
-  ];
+  pythonImportsCheck = [ "tagoio_sdk" ];
 
   meta = with lib; {
     description = "Module for interacting with Tago.io";
diff --git a/pkgs/development/python-modules/tahoma-api/default.nix b/pkgs/development/python-modules/tahoma-api/default.nix
index edd3469416680..13744f25f24d0 100644
--- a/pkgs/development/python-modules/tahoma-api/default.nix
+++ b/pkgs/development/python-modules/tahoma-api/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/tailer/default.nix b/pkgs/development/python-modules/tailer/default.nix
index ffc7e3da17c8b..dbdc4e527962c 100644
--- a/pkgs/development/python-modules/tailer/default.nix
+++ b/pkgs/development/python-modules/tailer/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/tailscale/default.nix b/pkgs/development/python-modules/tailscale/default.nix
index c146c7fd9bd8c..cc91b6ea395f1 100644
--- a/pkgs/development/python-modules/tailscale/default.nix
+++ b/pkgs/development/python-modules/tailscale/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, mashumaro
-, orjson
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mashumaro,
+  orjson,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
       --replace "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -50,9 +49,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "tailscale"
-  ];
+  pythonImportsCheck = [ "tailscale" ];
 
   meta = with lib; {
     description = "Python client for the Tailscale API";
diff --git a/pkgs/development/python-modules/takethetime/default.nix b/pkgs/development/python-modules/takethetime/default.nix
index c79df0b179f12..6c397f7535c84 100644
--- a/pkgs/development/python-modules/takethetime/default.nix
+++ b/pkgs/development/python-modules/takethetime/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/tank-utility/default.nix b/pkgs/development/python-modules/tank-utility/default.nix
index d9783789df7ca..9d195004e9845 100644
--- a/pkgs/development/python-modules/tank-utility/default.nix
+++ b/pkgs/development/python-modules/tank-utility/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pytestCheckHook
-, pythonOlder
-, requests
-, responses
-, setuptools
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  responses,
+  setuptools,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-h9y3X+FSzSFt+bd/chz+x0nocHaKZ8DvreMxAYMs8/E=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     requests
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     responses
   ];
 
-  pythonImportsCheck = [
-    "tank_utility"
-  ];
+  pythonImportsCheck = [ "tank_utility" ];
 
   meta = with lib; {
     description = "Library for the Tank Utility API";
diff --git a/pkgs/development/python-modules/tappy/default.nix b/pkgs/development/python-modules/tappy/default.nix
index d2a311f7e95af..916ac21e3d8ec 100644
--- a/pkgs/development/python-modules/tappy/default.nix
+++ b/pkgs/development/python-modules/tappy/default.nix
@@ -1,19 +1,35 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  pyyaml,
+  more-itertools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "tap.py";
   version = "3.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3c0cd45212ad5a25b35445964e2517efa000a118a1bfc3437dae828892eaf1e1";
+    hash = "sha256-PAzUUhKtWiWzVEWWTiUX76AAoRihv8NDfa6CiJLq8eE=";
+  };
+
+  build-system = [
+    setuptools
+  ];
+
+  optional-dependencies = {
+    yaml = [
+      pyyaml
+      more-itertools
+    ];
   };
 
   nativeCheckInputs = [ pytestCheckHook ];
@@ -21,9 +37,10 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "tap" ];
 
   meta = with lib; {
-    description = "A set of tools for working with the Test Anything Protocol (TAP) in Python";
+    description = "Set of tools for working with the Test Anything Protocol (TAP) in Python";
     homepage = "https://github.com/python-tap/tappy";
     changelog = "https://tappy.readthedocs.io/en/latest/releases.html";
+    mainProgram = "tappy";
     license = licenses.bsd2;
     maintainers = with maintainers; [ sfrijters ];
   };
diff --git a/pkgs/development/python-modules/tasklib/default.nix b/pkgs/development/python-modules/tasklib/default.nix
index b7fdbcd5a9fbb..0645f80780b7d 100644
--- a/pkgs/development/python-modules/tasklib/default.nix
+++ b/pkgs/development/python-modules/tasklib/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, pythonPackages
-, fetchPypi
-, taskwarrior
-, writeShellScriptBin
+{
+  lib,
+  pythonPackages,
+  fetchPypi,
+  taskwarrior,
+  writeShellScriptBin,
 }:
 
 with pythonPackages;
 
 let
 
-wsl_stub = writeShellScriptBin "wsl" "true";
-
-in buildPythonPackage rec {
+  wsl_stub = writeShellScriptBin "wsl" "true";
+in
+buildPythonPackage rec {
   pname = "tasklib";
   version = "2.5.1";
   format = "setuptools";
diff --git a/pkgs/development/python-modules/taskw-ng/default.nix b/pkgs/development/python-modules/taskw-ng/default.nix
index 15f6412831d63..90f9ce35ed88c 100644
--- a/pkgs/development/python-modules/taskw-ng/default.nix
+++ b/pkgs/development/python-modules/taskw-ng/default.nix
@@ -8,7 +8,6 @@
   poetry-dynamic-versioning,
   python-dateutil,
   pythonOlder,
-  pythonRelaxDepsHook,
   pytz,
   taskwarrior,
 }:
@@ -37,7 +36,6 @@ buildPythonPackage rec {
     poetry-dynamic-versioning
   ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   propagatedBuildInputs = [
     kitchen
diff --git a/pkgs/development/python-modules/taskw/default.nix b/pkgs/development/python-modules/taskw/default.nix
index 36ac9293e1d4c..97b3031c067e7 100644
--- a/pkgs/development/python-modules/taskw/default.nix
+++ b/pkgs/development/python-modules/taskw/default.nix
@@ -1,20 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# native dependencies
-, pkgs
+  # native dependencies
+  pkgs,
 
-# dependencies
-, kitchen
-, python-dateutil
-, pytz
+  # dependencies
+  kitchen,
+  python-dateutil,
+  pytz,
 
-# tests
-, pytest7CheckHook
+  # tests
+  pytest7CheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,6 +24,9 @@ buildPythonPackage rec {
   version = "2.0.0";
   pyproject = true;
 
+  # ModuleNotFoundError: No module named 'distutils'
+  disabled = pythonAtLeast "3.12";
+
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-EQm9+b3nqbMqUAejAsh4MD/2UYi2QiWsdKMomkxUi90=";
@@ -37,9 +42,7 @@ buildPythonPackage rec {
       --replace '@@taskwarrior@@' '${pkgs.taskwarrior}'
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   buildInputs = [ pkgs.taskwarrior ];
 
@@ -52,7 +55,7 @@ buildPythonPackage rec {
   nativeCheckInputs = [ pytest7CheckHook ];
 
   meta = with lib; {
-    homepage =  "https://github.com/ralphbean/taskw";
+    homepage = "https://github.com/ralphbean/taskw";
     description = "Python bindings for your taskwarrior database";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ pierron ];
diff --git a/pkgs/development/python-modules/tatsu/default.nix b/pkgs/development/python-modules/tatsu/default.nix
index 69b17a826fb5c..d1d7697331d01 100644
--- a/pkgs/development/python-modules/tatsu/default.nix
+++ b/pkgs/development/python-modules/tatsu/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, colorama
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, regex
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  colorama,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  regex,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "tatsu";
-  version = "5.12.0";
+  version = "5.12.1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -19,25 +20,19 @@ buildPythonPackage rec {
     owner = "neogeny";
     repo = "TatSu";
     rev = "refs/tags/v${version}";
-    hash = "sha256-55sTUqNwfWg5h9msByq2RuVx/z23ST7p7pA/ZsIeYr8=";
+    hash = "sha256-dY+hvNwYrkKko9A5yRT0EWYlvVu3OrhJMzk/8cjzuUo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     colorama
     regex
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "tatsu"
-  ];
+  pythonImportsCheck = [ "tatsu" ];
 
   meta = with lib; {
     description = "Generates Python parsers from grammars in a variation of EBNF";
diff --git a/pkgs/development/python-modules/taxi/default.nix b/pkgs/development/python-modules/taxi/default.nix
index 98d998f92a404..92a389512cad4 100644
--- a/pkgs/development/python-modules/taxi/default.nix
+++ b/pkgs/development/python-modules/taxi/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, appdirs
-, requests
-, click
-, setuptools
-, pytestCheckHook
-, freezegun
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  appdirs,
+  requests,
+  click,
+  setuptools,
+  pytestCheckHook,
+  freezegun,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/tbats/default.nix b/pkgs/development/python-modules/tbats/default.nix
index 8976fef859d34..1f0545b49caf3 100644
--- a/pkgs/development/python-modules/tbats/default.nix
+++ b/pkgs/development/python-modules/tbats/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, numpy
-, pmdarima
-, scikit-learn
-, scipy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  numpy,
+  pmdarima,
+  scikit-learn,
+  scipy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-f6QqDq/ffbnFBZRAT6KQRlqvZZSE+Pff2/o+htVabZI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     numpy
diff --git a/pkgs/development/python-modules/tblib/default.nix b/pkgs/development/python-modules/tblib/default.nix
index 283bfcd83e402..86a036c47d5da 100644
--- a/pkgs/development/python-modules/tblib/default.nix
+++ b/pkgs/development/python-modules/tblib/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -16,12 +17,10 @@ buildPythonPackage rec {
     hash = "sha256-k2InkKCingTwNGRY+s4eFE3E0y9JNxTGw9/4Kkrbd+Y=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   meta = with lib; {
-    description = "Traceback fiddling library. Allows you to pickle tracebacks.";
+    description = "Traceback fiddling library. Allows you to pickle tracebacks";
     homepage = "https://github.com/ionelmc/python-tblib";
     license = licenses.bsd2;
     maintainers = with maintainers; [ teh ];
diff --git a/pkgs/development/python-modules/tbm-utils/default.nix b/pkgs/development/python-modules/tbm-utils/default.nix
index 7f4963ca6dba3..f2cec77022a70 100644
--- a/pkgs/development/python-modules/tbm-utils/default.nix
+++ b/pkgs/development/python-modules/tbm-utils/default.nix
@@ -10,7 +10,6 @@
   pprintpp,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
   wrapt,
 }:
 
@@ -52,7 +51,6 @@ buildPythonPackage rec {
 
   build-system = [ poetry-core ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   propagatedBuildInputs = [
     attrs
@@ -80,7 +78,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "tbm_utils" ];
 
   meta = with lib; {
-    description = "A commonly-used set of utilities";
+    description = "Commonly-used set of utilities";
     homepage = "https://github.com/thebigmunch/tbm-utils";
     changelog = "https://github.com/thebigmunch/tbm-utils/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/tcolorpy/default.nix b/pkgs/development/python-modules/tcolorpy/default.nix
index 87c9f5b8147d3..ab7b6bc198de2 100644
--- a/pkgs/development/python-modules/tcolorpy/default.nix
+++ b/pkgs/development/python-modules/tcolorpy/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, pytestCheckHook
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/thombashi/tcolorpy";
-    description = "A library to apply true color for terminal text";
+    description = "Library to apply true color for terminal text";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.mit;
   };
diff --git a/pkgs/development/python-modules/tcxparser/default.nix b/pkgs/development/python-modules/tcxparser/default.nix
index c011b9e32fac7..4de4e9a39a971 100644
--- a/pkgs/development/python-modules/tcxparser/default.nix
+++ b/pkgs/development/python-modules/tcxparser/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, lxml
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxml,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
     python-dateutil
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "tcxparser"
-  ];
+  pythonImportsCheck = [ "tcxparser" ];
 
   meta = with lib; {
     description = "Simple parser for Garmin TCX files";
@@ -41,4 +38,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ firefly-cpp ];
   };
 }
-
diff --git a/pkgs/development/python-modules/tcxreader/default.nix b/pkgs/development/python-modules/tcxreader/default.nix
index c9a965ae8145f..9bcab11b58822 100644
--- a/pkgs/development/python-modules/tcxreader/default.nix
+++ b/pkgs/development/python-modules/tcxreader/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,24 +21,17 @@ buildPythonPackage rec {
     hash = "sha256-qTAqRzrHFj0nEujlkBohLaprIvvkSYhcDoRfqWIJMjo=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "tcxreader"
-  ];
+  pythonImportsCheck = [ "tcxreader" ];
 
   meta = with lib; {
-    description = "A reader for Garmin’s TCX file format";
+    description = "Reader for Garmin’s TCX file format";
     homepage = "https://github.com/alenrajsp/tcxreader";
     changelog = "https://github.com/alenrajsp/tcxreader/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ firefly-cpp ];
   };
 }
-
diff --git a/pkgs/development/python-modules/tdir/default.nix b/pkgs/development/python-modules/tdir/default.nix
index 644adda75ff0e..4f0fe0ee60594 100644
--- a/pkgs/development/python-modules/tdir/default.nix
+++ b/pkgs/development/python-modules/tdir/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, dek
-, xmod
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  dek,
+  xmod,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,22 +20,16 @@ buildPythonPackage rec {
     hash = "sha256-YYQ33Blhqk/CbocqkB9Nh6qbzMjQT07fmzx+fDTvdw8=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     dek
     xmod
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "tdir"
-  ];
+  pythonImportsCheck = [ "tdir" ];
 
   meta = with lib; {
     description = "Create, fill a temporary directory";
diff --git a/pkgs/development/python-modules/teamcity-messages/default.nix b/pkgs/development/python-modules/teamcity-messages/default.nix
index bc4f25003b605..b68f7acbca927 100644
--- a/pkgs/development/python-modules/teamcity-messages/default.nix
+++ b/pkgs/development/python-modules/teamcity-messages/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,17 +20,11 @@ buildPythonPackage rec {
     hash = "sha256-9az7kD7nKqMF2b3/eFgF+pOKKIYLvTy2sf4TSJfHRnA=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests/unit-tests/"
-  ];
+  pytestFlagsArray = [ "tests/unit-tests/" ];
 
-  pythonImportsCheck = [
-    "teamcity"
-  ];
+  pythonImportsCheck = [ "teamcity" ];
 
   meta = with lib; {
     description = "Python unit test reporting to TeamCity";
diff --git a/pkgs/development/python-modules/telegram-text/default.nix b/pkgs/development/python-modules/telegram-text/default.nix
index ca37dde8fb861..be123911f871b 100644
--- a/pkgs/development/python-modules/telegram-text/default.nix
+++ b/pkgs/development/python-modules/telegram-text/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, poetry-core
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  poetry-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,13 +21,9 @@ buildPythonPackage rec {
     hash = "sha256-eUy4kyCmM/5Ag/0s9hYW2IIg+OTX2L7EsoOYivhd0pU=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Python markup module for Telegram messenger";
diff --git a/pkgs/development/python-modules/telegram/default.nix b/pkgs/development/python-modules/telegram/default.nix
index d07baaa4169fd..c706a7b7dad7a 100644
--- a/pkgs/development/python-modules/telegram/default.nix
+++ b/pkgs/development/python-modules/telegram/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -18,5 +19,4 @@ buildPythonPackage rec {
     description = "Telegram APIs";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/telegraph/default.nix b/pkgs/development/python-modules/telegraph/default.nix
index b6bca3a357a31..387c7034bb82d 100644
--- a/pkgs/development/python-modules/telegraph/default.nix
+++ b/pkgs/development/python-modules/telegraph/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
-, httpx
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
+  httpx,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,33 +22,21 @@ buildPythonPackage rec {
     hash = "sha256-xARX8lSOftNVYY4InR5vU4OiguCJJJZv/W76G9eLgNY=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   passthru.optional-dependencies = {
-    aio = [
-      httpx
-    ];
+    aio = [ httpx ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "tests/"
-  ];
+  pytestFlagsArray = [ "tests/" ];
 
-  disabledTests = [
-    "test_get_page"
-  ];
+  disabledTests = [ "test_get_page" ];
 
   doCheck = true;
 
-  pythonImportsCheck = [
-    "telegraph"
-  ];
+  pythonImportsCheck = [ "telegraph" ];
 
   meta = with lib; {
     description = "Telegraph API wrapper";
@@ -57,4 +46,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ gp2112 ];
   };
 }
-
diff --git a/pkgs/development/python-modules/telepath/default.nix b/pkgs/development/python-modules/telepath/default.nix
index 73cab072dbd2f..3af1ba09950f5 100644
--- a/pkgs/development/python-modules/telepath/default.nix
+++ b/pkgs/development/python-modules/telepath/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, django
-, fetchFromGitHub
-, lib
-, python
+{
+  buildPythonPackage,
+  django,
+  fetchFromGitHub,
+  lib,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -26,7 +27,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "telepath" ];
 
   meta = with lib; {
-    description = "A library for exchanging data between Python and JavaScript";
+    description = "Library for exchanging data between Python and JavaScript";
     homepage = "https://github.com/wagtail/telepath";
     changelog = "https://github.com/wagtail/telepath/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/telethon-session-sqlalchemy/default.nix b/pkgs/development/python-modules/telethon-session-sqlalchemy/default.nix
index 8cea09fea3a02..9d24e4c252902 100644
--- a/pkgs/development/python-modules/telethon-session-sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/telethon-session-sqlalchemy/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, sqlalchemy }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  sqlalchemy,
+}:
 
 buildPythonPackage rec {
   pname = "telethon-session-sqlalchemy";
@@ -12,9 +18,7 @@ buildPythonPackage rec {
     sha256 = "f847c57302a102eb88e29ed95b8f4efa69582db2966fd806c21376b9a66ad4a8";
   };
 
-  propagatedBuildInputs = [
-    sqlalchemy
-  ];
+  propagatedBuildInputs = [ sqlalchemy ];
 
   # No tests available
   doCheck = false;
diff --git a/pkgs/development/python-modules/telethon/default.nix b/pkgs/development/python-modules/telethon/default.nix
index f40809dabf9e5..b349c470f8fe9 100644
--- a/pkgs/development/python-modules/telethon/default.nix
+++ b/pkgs/development/python-modules/telethon/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, openssl
-, rsa
-, pyaes
-, pythonOlder
-, setuptools
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  openssl,
+  rsa,
+  pyaes,
+  pythonOlder,
+  setuptools,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
       "ctypes.util.find_library('ssl')" "'${lib.getLib openssl}/lib/libssl.so'"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     rsa
@@ -42,9 +41,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "tests/telethon"
-  ];
+  pytestFlagsArray = [ "tests/telethon" ];
 
   meta = with lib; {
     homepage = "https://github.com/LonamiWebs/Telethon";
diff --git a/pkgs/development/python-modules/teletype/default.nix b/pkgs/development/python-modules/teletype/default.nix
index 83cfb471e0d2d..73aa506b29aa1 100644
--- a/pkgs/development/python-modules/teletype/default.nix
+++ b/pkgs/development/python-modules/teletype/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,19 +18,15 @@ buildPythonPackage rec {
     hash = "sha256-uBppM4w9GlMgYqKFGw1Rcjvq+mnU04K3E74jCgK9YYo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "teletype"
-  ];
+  pythonImportsCheck = [ "teletype" ];
 
   meta = with lib; {
-    description = "A high-level cross platform tty library";
+    description = "High-level cross platform tty library";
     homepage = "https://github.com/jkwill87/teletype";
     license = licenses.mit;
     maintainers = with maintainers; [ urlordjames ];
diff --git a/pkgs/development/python-modules/telfhash/default.nix b/pkgs/development/python-modules/telfhash/default.nix
index f2f403765006c..0aafd816d039d 100644
--- a/pkgs/development/python-modules/telfhash/default.nix
+++ b/pkgs/development/python-modules/telfhash/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, capstone
-, packaging
-, pyelftools
-, tlsh
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  capstone,
+  packaging,
+  pyelftools,
+  tlsh,
+  nose,
 }:
 buildPythonPackage rec {
   pname = "telfhash";
@@ -33,17 +34,13 @@ buildPythonPackage rec {
     packaging
   ];
 
-  nativeCheckInputs = [
-    nose
-  ];
+  nativeCheckInputs = [ nose ];
 
   checkPhase = ''
     nosetests
   '';
 
-  pythonImportsCheck = [
-    "telfhash"
-  ];
+  pythonImportsCheck = [ "telfhash" ];
 
   meta = with lib; {
     description = "Symbol hash for ELF files";
diff --git a/pkgs/development/python-modules/tellduslive/default.nix b/pkgs/development/python-modules/tellduslive/default.nix
index b367c5d4417e1..44fd11d24342a 100644
--- a/pkgs/development/python-modules/tellduslive/default.nix
+++ b/pkgs/development/python-modules/tellduslive/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, docopt
-, fetchFromGitHub
-, requests
-, requests-oauthlib
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  docopt,
+  fetchFromGitHub,
+  requests,
+  requests-oauthlib,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "tellduslive"
-  ];
+  pythonImportsCheck = [ "tellduslive" ];
 
   meta = with lib; {
     description = "Python module to communicate with Telldus Live";
diff --git a/pkgs/development/python-modules/temescal/default.nix b/pkgs/development/python-modules/temescal/default.nix
index 2c19ab2844ad8..c7a824b92c2ee 100644
--- a/pkgs/development/python-modules/temescal/default.nix
+++ b/pkgs/development/python-modules/temescal/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pycryptodome
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pycryptodome,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-MfTftheNj8zI3iXIIJU+jy9xikvX9eO58LA0NCMJBnY=";
   };
 
-  propagatedBuildInputs = [
-    pycryptodome
-  ];
+  propagatedBuildInputs = [ pycryptodome ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "temescal"
-  ];
+  pythonImportsCheck = [ "temescal" ];
 
   meta = with lib; {
     description = "Module for interacting with LG speaker systems";
diff --git a/pkgs/development/python-modules/temperusb/default.nix b/pkgs/development/python-modules/temperusb/default.nix
index 79363508ecbf4..2dc1a2af1ffdb 100644
--- a/pkgs/development/python-modules/temperusb/default.nix
+++ b/pkgs/development/python-modules/temperusb/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pyusb
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pyusb,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-PwKHT1zzVn+nmxO/R+aK+029WaaHBo7FyVV4eQtHhbM=";
   };
 
-  propagatedBuildInputs = [
-    pyusb
-  ];
+  propagatedBuildInputs = [ pyusb ];
 
   # Module has no tests which are shipped and source is not tagged
   doCheck = false;
 
-  pythonImportsCheck = [
-    "temperusb"
-  ];
+  pythonImportsCheck = [ "temperusb" ];
 
   meta = with lib; {
     description = "Library to read TEMPer USB HID devices";
diff --git a/pkgs/development/python-modules/tempest/default.nix b/pkgs/development/python-modules/tempest/default.nix
index ad8ad53dafadf..66b7e1aee3db9 100644
--- a/pkgs/development/python-modules/tempest/default.nix
+++ b/pkgs/development/python-modules/tempest/default.nix
@@ -1,49 +1,48 @@
-{ lib
-, buildPythonPackage
-, defusedxml
-, fetchPypi
-, pbr
-, cliff
-, jsonschema
-, testtools
-, paramiko
-, netaddr
-, oslo-concurrency
-, oslo-config
-, oslo-log
-, stestr
-, oslo-serialization
-, oslo-utils
-, fixtures
-, pythonOlder
-, pyyaml
-, subunit
-, stevedore
-, prettytable
-, urllib3
-, debtcollector
-, hacking
-, oslotest
-, bash
-, python
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  defusedxml,
+  fetchPypi,
+  pbr,
+  cliff,
+  jsonschema,
+  testtools,
+  paramiko,
+  netaddr,
+  oslo-concurrency,
+  oslo-config,
+  oslo-log,
+  stestr,
+  oslo-serialization,
+  oslo-utils,
+  fixtures,
+  pythonOlder,
+  pyyaml,
+  subunit,
+  stevedore,
+  prettytable,
+  urllib3,
+  debtcollector,
+  hacking,
+  oslotest,
+  bash,
+  python,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "tempest";
-  version = "38.0.0";
+  version = "39.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-2WmSN4NrH5/y5iAuYaaVuZkuh1ym14jFj7OXw8Jfxtc=";
+    hash = "sha256-l4qKbTfQRWiRsoHN9fiAAiGMGP+q3gwRH1pMSXV/eSU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pbr
@@ -90,7 +89,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "tempest" ];
 
   meta = with lib; {
-    description = "An OpenStack integration test suite that runs against live OpenStack cluster and validates an OpenStack deployment";
+    description = "OpenStack integration test suite that runs against live OpenStack cluster and validates an OpenStack deployment";
     homepage = "https://github.com/openstack/tempest";
     license = licenses.asl20;
     maintainers = teams.openstack.members;
diff --git a/pkgs/development/python-modules/tempita/default.nix b/pkgs/development/python-modules/tempita/default.nix
index d7e2c91357721..718eeb93eb2dd 100644
--- a/pkgs/development/python-modules/tempita/default.nix
+++ b/pkgs/development/python-modules/tempita/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, nose }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nose,
+}:
 
 buildPythonPackage {
   version = "0.5.3-2016-09-28";
@@ -16,7 +21,7 @@ buildPythonPackage {
 
   meta = {
     homepage = "https://github.com/agramfort/tempita";
-    description = "A very small text templating language";
+    description = "Very small text templating language";
     license = lib.licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/templateflow/default.nix b/pkgs/development/python-modules/templateflow/default.nix
index b46387740b51f..83d9ccfb885c6 100644
--- a/pkgs/development/python-modules/templateflow/default.nix
+++ b/pkgs/development/python-modules/templateflow/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools-scm
-, nipreps-versions
-, pybids
-, requests
-, tqdm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools-scm,
+  nipreps-versions,
+  pybids,
+  requests,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -31,7 +32,7 @@ buildPythonPackage rec {
     tqdm
   ];
 
-  doCheck = false;  # most tests try to download data
+  doCheck = false; # most tests try to download data
   #pythonImportsCheck = [ "templateflow" ];  # touches $HOME/.cache, hence needs https://github.com/NixOS/nixpkgs/pull/120300
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/tempora/default.nix b/pkgs/development/python-modules/tempora/default.nix
index b33d72b99b790..6c2a136d831ea 100644
--- a/pkgs/development/python-modules/tempora/default.nix
+++ b/pkgs/development/python-modules/tempora/default.nix
@@ -1,30 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, freezegun
-, jaraco-functools
-, pytest-freezegun
-, pytestCheckHook
-, pythonOlder
-, pytz
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  freezegun,
+  jaraco-functools,
+  pytest-freezegun,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "tempora";
-  version = "5.5.1";
+  version = "5.6.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ortR4hIZdtkxNHs+QzkXw2S4P91fZO8nM2yGW/H7D3U=";
+    hash = "sha256-O/zBLL27uv7KrMuQl/w3VENbnQY9zkMzjk+ofTkQSu0=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     jaraco-functools
diff --git a/pkgs/development/python-modules/tenacity/default.nix b/pkgs/development/python-modules/tenacity/default.nix
index 5fe70090feeac..5ac8b3e2c9637 100644
--- a/pkgs/development/python-modules/tenacity/default.nix
+++ b/pkgs/development/python-modules/tenacity/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pbr
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
-, tornado
-, typeguard
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pbr,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  tornado,
+  typeguard,
 }:
 
 buildPythonPackage rec {
   pname = "tenacity";
-  version = "8.2.3";
+  version = "8.4.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.6";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-U5jvDXjmP0AAfB+0wL/5bhkROU0vqNGU93YZwF/2zIo=";
+    hash = "sha256-VLFBK4eN334fFXfNSVJ7rYze8yQhvVmb6sDGw/EFgv0=";
   };
 
   nativeBuildInputs = [
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     typeguard
   ];
 
-  pythonImportsCheck = [
-    "tenacity"
-  ];
+  pythonImportsCheck = [ "tenacity" ];
 
   meta = with lib; {
     homepage = "https://github.com/jd/tenacity";
diff --git a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
index 502e791ddd309..2fd63f5e1d929 100644
--- a/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
+++ b/pkgs/development/python-modules/tencentcloud-sdk-python/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "tencentcloud-sdk-python";
-  version = "3.0.1139";
+  version = "3.0.1173";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "TencentCloud";
     repo = "tencentcloud-sdk-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-DH+15I/kMuUbRU8jYGLaDWxO7zumJ7Bh5yze3mmrh/M=";
+    hash = "sha256-rCfTgK6ZfddBofxOfA1ilRwUGRkYTj4NpDEFRfpjSEk=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/tendo/default.nix b/pkgs/development/python-modules/tendo/default.nix
index fe02bc0aed29b..3c8dae032c694 100644
--- a/pkgs/development/python-modules/tendo/default.nix
+++ b/pkgs/development/python-modules/tendo/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -31,13 +32,9 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "tendo"
-  ];
+  pythonImportsCheck = [ "tendo" ];
 
   meta = with lib; {
     description = "Adds basic functionality that is not provided by Python";
diff --git a/pkgs/development/python-modules/tensorboard-data-server/default.nix b/pkgs/development/python-modules/tensorboard-data-server/default.nix
index 6277049f92a0e..ef0662c4c2dac 100644
--- a/pkgs/development/python-modules/tensorboard-data-server/default.nix
+++ b/pkgs/development/python-modules/tensorboard-data-server/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+}:
 
 buildPythonPackage rec {
   pname = "tensorboard-data-server";
diff --git a/pkgs/development/python-modules/tensorboard-plugin-profile/default.nix b/pkgs/development/python-modules/tensorboard-plugin-profile/default.nix
index 158437a93d1fc..9719d1d0c6a0b 100644
--- a/pkgs/development/python-modules/tensorboard-plugin-profile/default.nix
+++ b/pkgs/development/python-modules/tensorboard-plugin-profile/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, setuptools
-, gviz-api
-, protobuf
-, werkzeug
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  setuptools,
+  gviz-api,
+  protobuf,
+  werkzeug,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-t9AZg0BGjDcOxtoRBHZO0joIgLHpoKqEUY4pxmw8sjg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     gviz-api
@@ -31,7 +30,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Profile Tensorboard Plugin.";
+    description = "Profile Tensorboard Plugin";
     homepage = "http://tensorflow.org";
     license = licenses.asl20;
     maintainers = with maintainers; [ ndl ];
diff --git a/pkgs/development/python-modules/tensorboard-plugin-wit/default.nix b/pkgs/development/python-modules/tensorboard-plugin-wit/default.nix
index ec4a63f65d437..4a5760e3e92ed 100644
--- a/pkgs/development/python-modules/tensorboard-plugin-wit/default.nix
+++ b/pkgs/development/python-modules/tensorboard-plugin-wit/default.nix
@@ -1,4 +1,7 @@
-{ lib, fetchPypi, buildPythonPackage
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
 }:
 
 buildPythonPackage rec {
@@ -14,7 +17,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "What-If Tool TensorBoard plugin.";
+    description = "What-If Tool TensorBoard plugin";
     homepage = "http://tensorflow.org";
     license = licenses.asl20;
     maintainers = with maintainers; [ ndl ];
diff --git a/pkgs/development/python-modules/tensorboard/default.nix b/pkgs/development/python-modules/tensorboard/default.nix
index 9fdc3bb711922..2c09edbf60a4f 100644
--- a/pkgs/development/python-modules/tensorboard/default.nix
+++ b/pkgs/development/python-modules/tensorboard/default.nix
@@ -1,20 +1,20 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, pythonRelaxDepsHook
-, numpy
-, wheel
-, werkzeug
-, protobuf
-, grpcio
-, markdown
-, absl-py
-, google-auth-oauthlib
-, setuptools
-, tensorboard-data-server
-, tensorboard-plugin-wit
-, tensorboard-plugin-profile
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  numpy,
+  wheel,
+  werkzeug,
+  protobuf,
+  grpcio,
+  markdown,
+  absl-py,
+  google-auth-oauthlib,
+  setuptools,
+  tensorboard-data-server,
+  tensorboard-plugin-wit,
+  tensorboard-plugin-profile,
 }:
 
 # tensorflow/tensorboard is built from a downloaded wheel, because
@@ -23,7 +23,7 @@
 
 buildPythonPackage rec {
   pname = "tensorboard";
-  version = "2.16.2";
+  version = "2.17.0";
   format = "wheel";
   disabled = pythonOlder "3.9";
 
@@ -31,12 +31,9 @@ buildPythonPackage rec {
     inherit pname version format;
     dist = "py3";
     python = "py3";
-    hash = "sha256-nytOfa2GZnYVwOXNBy8eqEA/wDKimfAHLW90hVd1zEU=";
+    hash = "sha256-hZpJmpsftooFiFiWRIZicQC3H8shZGhhxh0xhGpkePs=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   pythonRelaxDeps = [
     "google-auth-oauthlib"
diff --git a/pkgs/development/python-modules/tensorboardx/default.nix b/pkgs/development/python-modules/tensorboardx/default.nix
index 820b00744195d..e0c4231be405b 100644
--- a/pkgs/development/python-modules/tensorboardx/default.nix
+++ b/pkgs/development/python-modules/tensorboardx/default.nix
@@ -1,19 +1,20 @@
-{ boto3
-, buildPythonPackage
-, crc32c
-, fetchFromGitHub
-, lib
-, matplotlib
-, moto
-, numpy
-, protobuf
-, pytestCheckHook
-, torch
-, setuptools-scm
-, soundfile
-, stdenv
-, tensorboard
-, torchvision
+{
+  boto3,
+  buildPythonPackage,
+  crc32c,
+  fetchFromGitHub,
+  lib,
+  matplotlib,
+  moto,
+  numpy,
+  protobuf,
+  pytestCheckHook,
+  torch,
+  setuptools-scm,
+  soundfile,
+  stdenv,
+  tensorboard,
+  torchvision,
 }:
 
 buildPythonPackage rec {
@@ -54,16 +55,18 @@ buildPythonPackage rec {
     torchvision
   ];
 
-  disabledTests = [
-    # ImportError: Visdom visualization requires installation of Visdom
-    "test_TorchVis"
-    # Requires network access (FileNotFoundError: [Errno 2] No such file or directory: 'wget')
-    "test_onnx_graph"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # Fails with a mysterious error in pytorch:
-    # RuntimeError: required keyword attribute 'name' has the wrong type
-    "test_pytorch_graph"
-  ];
+  disabledTests =
+    [
+      # ImportError: Visdom visualization requires installation of Visdom
+      "test_TorchVis"
+      # Requires network access (FileNotFoundError: [Errno 2] No such file or directory: 'wget')
+      "test_onnx_graph"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # Fails with a mysterious error in pytorch:
+      # RuntimeError: required keyword attribute 'name' has the wrong type
+      "test_pytorch_graph"
+    ];
 
   disabledTestPaths = [
     # we are not interested in linting errors
@@ -79,7 +82,10 @@ buildPythonPackage rec {
     downloadPage = "https://github.com/lanpa/tensorboardX";
     changelog = "https://github.com/lanpa/tensorboardX/blob/${src.rev}/HISTORY.rst";
     license = licenses.mit;
-    maintainers = with maintainers; [ lebastr akamaus ];
+    maintainers = with maintainers; [
+      lebastr
+      akamaus
+    ];
     platforms = platforms.all;
   };
 }
diff --git a/pkgs/development/python-modules/tensordict/default.nix b/pkgs/development/python-modules/tensordict/default.nix
index 6c64ca00c5ee5..bd35eff65707e 100644
--- a/pkgs/development/python-modules/tensordict/default.nix
+++ b/pkgs/development/python-modules/tensordict/default.nix
@@ -1,21 +1,23 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, torch
-, wheel
-, which
-, cloudpickle
-, numpy
-, h5py
-, pytestCheckHook
-, stdenv
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  torch,
+  wheel,
+  which,
+  cloudpickle,
+  numpy,
+  h5py,
+  pytestCheckHook,
+  stdenv,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
   pname = "tensordict";
-  version = "0.3.1";
+  version = "0.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -24,25 +26,23 @@ buildPythonPackage rec {
     owner = "pytorch";
     repo = "tensordict";
     rev = "refs/tags/v${version}";
-    hash = "sha256-eCx1r7goqOdGX/0mSGCiLhdGQTh4Swa5aFiLSsL56p0=";
+    hash = "sha256-wKEzNaaazGEkoElzp93RIlq/r5uRUdM7UyDy/DygIEc=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     torch
     wheel
     which
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     cloudpickle
     numpy
     torch
   ];
 
-  pythonImportsCheck = [
-    "tensordict"
-  ];
+  pythonImportsCheck = [ "tensordict" ];
 
   # We have to delete the source because otherwise it is used instead of the installed package.
   preCheck = ''
@@ -54,23 +54,29 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  # RuntimeError: internal error
-  disabledTests = lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [
-    "test_add_scale_sequence"
-    "test_modules"
-    "test_setattr"
-  ];
+  disabledTests =
+    # Hangs forever
+    [ "test_copy_onto" ]
+    ++ lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [
+      # RuntimeError: internal error
+      "test_add_scale_sequence"
+      "test_modules"
+      "test_setattr"
+
+      # _queue.Empty errors in multiprocessing tests
+      "test_isend"
+    ];
 
   # ModuleNotFoundError: No module named 'torch._C._distributed_c10d'; 'torch._C' is not a package
-  disabledTestPaths = lib.optionals stdenv.isDarwin [
-    "test/test_distributed.py"
-  ];
+  disabledTestPaths = lib.optionals stdenv.isDarwin [ "test/test_distributed.py" ];
 
-  meta = with lib; {
-    description = "A pytorch dedicated tensor container";
+  meta = {
+    description = "Pytorch dedicated tensor container";
     changelog = "https://github.com/pytorch/tensordict/releases/tag/v${version}";
     homepage = "https://github.com/pytorch/tensordict";
-    license = licenses.mit;
-    maintainers = with maintainers; [ GaetanLepage ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
+    # No python 3.12 support yet: https://github.com/pytorch/rl/issues/2035
+    broken = pythonAtLeast "3.12";
   };
 }
diff --git a/pkgs/development/python-modules/tensorflow-datasets/default.nix b/pkgs/development/python-modules/tensorflow-datasets/default.nix
index 8440eb58f4fc9..15a8115c20366 100644
--- a/pkgs/development/python-modules/tensorflow-datasets/default.nix
+++ b/pkgs/development/python-modules/tensorflow-datasets/default.nix
@@ -1,49 +1,50 @@
-{ apache-beam
-, array-record
-, attrs
-, beautifulsoup4
-, buildPythonPackage
-, click
-, datasets
-, dill
-, dm-tree
-, fetchFromGitHub
-, ffmpeg
-, future
-, imagemagick
-, importlib-resources
-, jax
-, jaxlib
-, jinja2
-, langdetect
-, lib
-, lxml
-, matplotlib
-, mwparserfromhell
-, mwxml
-, networkx
-, nltk
-, numpy
-, opencv4
-, pandas
-, pillow
-, promise
-, protobuf
-, psutil
-, pycocotools
-, pydub
-, pytest-xdist
-, pytestCheckHook
-, requests
-, scikit-image
-, scipy
-, six
-, tensorflow
-, tensorflow-metadata
-, termcolor
-, tifffile
-, tqdm
-, zarr
+{
+  apache-beam,
+  array-record,
+  attrs,
+  beautifulsoup4,
+  buildPythonPackage,
+  click,
+  datasets,
+  dill,
+  dm-tree,
+  fetchFromGitHub,
+  ffmpeg,
+  future,
+  imagemagick,
+  importlib-resources,
+  jax,
+  jaxlib,
+  jinja2,
+  langdetect,
+  lib,
+  lxml,
+  matplotlib,
+  mwparserfromhell,
+  mwxml,
+  networkx,
+  nltk,
+  numpy,
+  opencv4,
+  pandas,
+  pillow,
+  promise,
+  protobuf,
+  psutil,
+  pycocotools,
+  pydub,
+  pytest-xdist,
+  pytestCheckHook,
+  requests,
+  scikit-image,
+  scipy,
+  six,
+  tensorflow,
+  tensorflow-metadata,
+  termcolor,
+  tifffile,
+  tqdm,
+  zarr,
 }:
 
 buildPythonPackage rec {
@@ -81,9 +82,7 @@ buildPythonPackage rec {
     tqdm
   ];
 
-  pythonImportsCheck = [
-    "tensorflow_datasets"
-  ];
+  pythonImportsCheck = [ "tensorflow_datasets" ];
 
   nativeCheckInputs = [
     apache-beam
diff --git a/pkgs/development/python-modules/tensorflow-estimator/bin.nix b/pkgs/development/python-modules/tensorflow-estimator/bin.nix
index c7d8e4d630be9..7146208c4d653 100644
--- a/pkgs/development/python-modules/tensorflow-estimator/bin.nix
+++ b/pkgs/development/python-modules/tensorflow-estimator/bin.nix
@@ -1,7 +1,10 @@
-{ lib, fetchPypi, buildPythonPackage
-, numpy
-, absl-py
-, mock
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  numpy,
+  absl-py,
+  mock,
 }:
 
 buildPythonPackage rec {
@@ -15,13 +18,16 @@ buildPythonPackage rec {
     hash = "sha256-6jtkrP/z2aJE8GF4yb3ty90/Eltn0IiNuoIpSY0GRos=";
   };
 
-  propagatedBuildInputs = [ mock numpy absl-py ];
+  propagatedBuildInputs = [
+    mock
+    numpy
+    absl-py
+  ];
 
   meta = with lib; {
-    description = "TensorFlow Estimator is a high-level API that encapsulates model training, evaluation, prediction, and exporting.";
+    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/pkgs/development/python-modules/tensorflow-metadata/default.nix b/pkgs/development/python-modules/tensorflow-metadata/default.nix
index 0f11461eb9d66..14a1d00dc4503 100644
--- a/pkgs/development/python-modules/tensorflow-metadata/default.nix
+++ b/pkgs/development/python-modules/tensorflow-metadata/default.nix
@@ -1,9 +1,10 @@
-{ absl-py
-, buildPythonPackage
-, fetchFromGitHub
-, googleapis-common-protos
-, protobuf
-, lib
+{
+  absl-py,
+  buildPythonPackage,
+  fetchFromGitHub,
+  googleapis-common-protos,
+  protobuf,
+  lib,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-ZfX25CaV+tZVdas+n7O6Gqv1GxOP1iwippIXxfhcOfg=";
   };
 
-  patches = [
-    ./build.patch
-  ];
+  patches = [ ./build.patch ];
 
   postPatch = ''
     substituteInPlace setup.py \
@@ -44,9 +43,7 @@ buildPythonPackage rec {
   # has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "tensorflow_metadata"
-  ];
+  pythonImportsCheck = [ "tensorflow_metadata" ];
 
   meta = with lib; {
     description = "Standard representations for metadata that are useful when training machine learning models with TensorFlow";
diff --git a/pkgs/development/python-modules/tensorflow-probability/default.nix b/pkgs/development/python-modules/tensorflow-probability/default.nix
index 769a4969fc2dd..587f6b683a7da 100644
--- a/pkgs/development/python-modules/tensorflow-probability/default.nix
+++ b/pkgs/development/python-modules/tensorflow-probability/default.nix
@@ -1,29 +1,30 @@
-{ lib
-, stdenv
-, fetchFromGitHub
-, bazel_6
-, buildBazelPackage
-, buildPythonPackage
-, cctools
-, python
-, setuptools
-, wheel
-, absl-py
-, tensorflow
-, six
-, numpy
-, dm-tree
-, keras
-, decorator
-, cloudpickle
-, gast
-, hypothesis
-, scipy
-, pandas
-, mpmath
-, matplotlib
-, mock
-, pytest
+{
+  lib,
+  stdenv,
+  fetchFromGitHub,
+  bazel_6,
+  buildBazelPackage,
+  buildPythonPackage,
+  cctools,
+  python,
+  setuptools,
+  wheel,
+  absl-py,
+  tensorflow,
+  six,
+  numpy,
+  dm-tree,
+  keras,
+  decorator,
+  cloudpickle,
+  gast,
+  hypothesis,
+  scipy,
+  pandas,
+  mpmath,
+  matplotlib,
+  mock,
+  pytest,
 }:
 
 let
diff --git a/pkgs/development/python-modules/tensorflow/bin.nix b/pkgs/development/python-modules/tensorflow/bin.nix
index 1040023619262..0f54cade00cd6 100644
--- a/pkgs/development/python-modules/tensorflow/bin.nix
+++ b/pkgs/development/python-modules/tensorflow/bin.nix
@@ -1,37 +1,42 @@
-{ stdenv
-, lib
-, fetchurl
-, buildPythonPackage
-, isPy3k, pythonOlder, pythonAtLeast, astor
-, gast
-, google-pasta
-, wrapt
-, numpy
-, six
-, termcolor
-, packaging
-, protobuf
-, absl-py
-, grpcio
-, mock
-, scipy
-, wheel
-, jax
-, opt-einsum
-, tensorflow-estimator-bin
-, tensorboard
-, config
-, cudaSupport ? config.cudaSupport
-, cudaPackagesGoogle
-, zlib
-, python
-, keras-applications
-, keras-preprocessing
-, addOpenGLRunpath
-, astunparse
-, flatbuffers
-, h5py
-, typing-extensions
+{
+  stdenv,
+  lib,
+  fetchurl,
+  buildPythonPackage,
+  isPy3k,
+  pythonOlder,
+  pythonAtLeast,
+  astor,
+  gast,
+  google-pasta,
+  wrapt,
+  numpy,
+  six,
+  termcolor,
+  packaging,
+  protobuf,
+  absl-py,
+  grpcio,
+  mock,
+  scipy,
+  wheel,
+  jax,
+  opt-einsum,
+  tensorflow-estimator-bin,
+  tensorboard,
+  config,
+  cudaSupport ? config.cudaSupport,
+  cudaPackages,
+  zlib,
+  python,
+  keras-applications,
+  keras-preprocessing,
+  addOpenGLRunpath,
+  astunparse,
+  flatbuffers,
+  h5py,
+  llvmPackages,
+  typing-extensions,
 }:
 
 # We keep this binary build for two reasons:
@@ -39,24 +44,29 @@
 # - the source build is currently brittle and not easy to maintain
 
 # unsupported combination
-assert ! (stdenv.isDarwin && cudaSupport);
+assert !(stdenv.isDarwin && cudaSupport);
 
 let
   packages = import ./binary-hashes.nix;
-  inherit (cudaPackagesGoogle) cudatoolkit cudnn;
-in buildPythonPackage {
+  inherit (cudaPackages) cudatoolkit cudnn;
+in
+buildPythonPackage {
   pname = "tensorflow" + lib.optionalString cudaSupport "-gpu";
   inherit (packages) version;
   format = "wheel";
 
-  src = let
-    pyVerNoDot = lib.strings.stringAsChars (x: lib.optionalString (x != ".") x) python.pythonVersion;
-    platform = if stdenv.isDarwin then "mac" else "linux";
-    unit = if cudaSupport then "gpu" else "cpu";
-    key = "${platform}_py_${pyVerNoDot}_${unit}";
-  in fetchurl (packages.${key} or {});
+  src =
+    let
+      pyVerNoDot = lib.strings.stringAsChars (x: lib.optionalString (x != ".") x) python.pythonVersion;
+      platform = stdenv.system;
+      cuda = lib.optionalString cudaSupport "_gpu";
+      key = "${platform}_${pyVerNoDot}${cuda}";
+    in
+    fetchurl (packages.${key} or (throw "tensoflow-bin: unsupported system: ${stdenv.system}"));
+
+  buildInputs = [ llvmPackages.openmp ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     astunparse
     flatbuffers
     typing-extensions
@@ -81,7 +91,7 @@ in buildPythonPackage {
     h5py
   ] ++ lib.optional (!isPy3k) mock;
 
-  nativeBuildInputs = [ wheel ] ++ lib.optionals cudaSupport [ addOpenGLRunpath ];
+  build-system = [ wheel ] ++ lib.optionals cudaSupport [ addOpenGLRunpath ];
 
   preConfigure = ''
     unset SOURCE_DATE_EPOCH
@@ -91,7 +101,6 @@ in buildPythonPackage {
 
     pushd dist
 
-    orig_name="$(echo ./*.whl)"
     wheel unpack --dest unpacked ./*.whl
     rm ./*.whl
     (
@@ -113,7 +122,6 @@ in buildPythonPackage {
         -e "s/Requires-Dist: numpy (.*)/Requires-Dist: numpy/"
     )
     wheel pack ./unpacked/tensorflow*
-    mv *.whl $orig_name # avoid changes to the _os_arch.whl suffix
 
     popd
   '';
@@ -168,6 +176,7 @@ in buildPythonPackage {
         "$out/${python.sitePackages}/tensorflow/python/saved_model"
         "$out/${python.sitePackages}/tensorflow/python/util"
         "$out/${python.sitePackages}/tensorflow/tsl/python/lib/core"
+        "$out/${python.sitePackages}/tensorflow.libs/"
         "${rpath}"
       )
 
@@ -199,16 +208,19 @@ in buildPythonPackage {
     "tensorflow.python.framework"
   ];
 
-  passthru = {
-    cudaPackages = cudaPackagesGoogle;
-  };
-
   meta = with lib; {
     description = "Computation using data flow graphs for scalable machine learning";
     homepage = "http://tensorflow.org";
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     license = licenses.asl20;
-    maintainers = with maintainers; [ jyp abbradar ];
-    platforms = [ "x86_64-linux" "x86_64-darwin" ];
+    maintainers = with maintainers; [
+      jyp
+      abbradar
+    ];
+    platforms = platforms.all;
+    # Cannot import tensortfow on python 3.12 as it still dependends on distutils:
+    # ModuleNotFoundError: No module named 'distutils'
+    # https://github.com/tensorflow/tensorflow/issues/58073
+    broken = pythonAtLeast "3.12";
   };
 }
diff --git a/pkgs/development/python-modules/tensorflow/binary-hashes.nix b/pkgs/development/python-modules/tensorflow/binary-hashes.nix
index 9204d1652d032..0f71cbc008b1c 100644
--- a/pkgs/development/python-modules/tensorflow/binary-hashes.nix
+++ b/pkgs/development/python-modules/tensorflow/binary-hashes.nix
@@ -1,39 +1,83 @@
 {
-version = "2.15.0";
-linux_py_39_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
-  sha256 = "01m5wn9wpywd2cscklr2h8wdsf3wzg11dhgl0nfj7a997v2bvlyg";
-};
-linux_py_310_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
-  sha256 = "0qjahvq9gd89cx2dwkb6gk3s947czmasp9cx1pqyw1x5f113s2zn";
-};
-linux_py_311_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow_cpu-2.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
-  sha256 = "0w3jz7rpbf4r8hm91rjh666qyqflqy6x619fas1iqcgnfx8pjv7l";
-};
-linux_py_39_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-2.15.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
-  sha256 = "0ckij6jffsi6yvjfiysnwrfblhqm5g1f8dkw4i7n3dwndnanba1z";
-};
-linux_py_310_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-2.15.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
-  sha256 = "1y0cxsps4rkidc2c3apaf7vd9vsnjg5lpcq30bnrnzcvvx1inq7d";
-};
-linux_py_311_gpu = {
-  url = "https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow-2.15.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
-  sha256 = "1z7bd4yrdxa7rq4k1fybbwnyhxf4rm9nwx15bpk2m53c5hmyrs6y";
-};
-mac_py_39_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.15.0-cp39-cp39-macosx_10_15_x86_64.whl";
-  sha256 = "1kqb5h4vs4jlhlqjmqvcg6jivccwqj1rgklrgrhvw09wzzhxvz1c";
-};
-mac_py_310_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.15.0-cp310-cp310-macosx_10_15_x86_64.whl";
-  sha256 = "0wmawdfhva9ixal7468c0rrx8qd7nzgkxy6i9k2s7cqn8c7qw94v";
-};
-mac_py_311_cpu = {
-  url = "https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-2.15.0-cp311-cp311-macosx_10_15_x86_64.whl";
-  sha256 = "0cigk43fabps7vskz4pfgmca3wa0545b15qridyqdbyp5ri1c1qy";
-};
+  version = "2.16.1";
+  x86_64-linux_39 = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow_cpu-2.16.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+    sha256 = "0j4311fav3b4wdhw9wb3zvc3grvgxddl28i4kwnbsvvjb191pcs5";
+  };
+  x86_64-linux_310 = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow_cpu-2.16.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+    sha256 = "0b8q3r2ql7rknlshiv3bh3hj9zll0dn6w0wdxnqgg18cljys5nhh";
+  };
+  x86_64-linux_311 = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow_cpu-2.16.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+    sha256 = "12vv2jxybdfa8nq7r2y53vl7lvmaacb1xmy2368hkwqm2ld4mplg";
+  };
+  x86_64-linux_312 = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow_cpu-2.16.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+    sha256 = "0vvv3cr10r6kgkalk3hydqz18y4lp990pm4vwq8mbwdi101m59mf";
+  };
+  x86_64-linux_39_gpu = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow-2.16.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+    sha256 = "17v85433ns360rcccx7pnkhjzd003cr8p6rj51wqb3gl7gkldf83";
+  };
+  x86_64-linux_310_gpu = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow-2.16.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+    sha256 = "0w3jd7siamvhgd7si59zpv3rdpq3s2ii3hhcdaimji66axv095hy";
+  };
+  x86_64-linux_311_gpu = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow-2.16.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+    sha256 = "014liy5wnbi2d2lnr8lqhd7221a4a1v6gzih7nv5qfnf1h86234k";
+  };
+  x86_64-linux_312_gpu = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow-2.16.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl";
+    sha256 = "0qd09bxfnad969y2h3mlzib51y6xcsqipq1w278k1fl8ayxky4ja";
+  };
+  aarch64-linux_39 = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow-2.16.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+    sha256 = "1n3qf0snjwrc0lcahls4bi2qhpd4yrd531b80vlq89j0gjkjl5cj";
+  };
+  aarch64-linux_310 = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow-2.16.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+    sha256 = "1aygypgm5fbpskf6xvzni2yd9l49hf3ls855z2aq0as73m3m81df";
+  };
+  aarch64-linux_311 = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow-2.16.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+    sha256 = "1c0bqiq2hbzcqhaym3s3s0dsp06m07mqgvm35z14nz395pxgjzb1";
+  };
+  aarch64-linux_312 = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow-2.16.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+    sha256 = "1ai2hrmn1il0hididdvhd005pjcn6hjivpgcw7dbhmdv6vacs4n6";
+  };
+  x86_64-darwin_39 = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow-2.16.1-cp39-cp39-macosx_10_15_x86_64.whl";
+    sha256 = "0dkcd1v0ivjp6v5pngg0x461wci94nxvwprc6jwgi7rqgyx3zkz9";
+  };
+  x86_64-darwin_310 = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow-2.16.1-cp310-cp310-macosx_10_15_x86_64.whl";
+    sha256 = "0rnlxrb4q2cgqaifalhpji15g1f3m9flqfvfj2p2sv3lvmbg2ydb";
+  };
+  x86_64-darwin_311 = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow-2.16.1-cp311-cp311-macosx_10_15_x86_64.whl";
+    sha256 = "1xc9lis61adk2y22a82i3rvc0j7qznf4fqwg2pd1665zlhybi9gq";
+  };
+  x86_64-darwin_312 = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow-2.16.1-cp312-cp312-macosx_10_15_x86_64.whl";
+    sha256 = "10g8y02ncp5l7f133vank6h01palc445h6s9jndmmy7vm33c7jh9";
+  };
+  aarch64-darwin_39 = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow-2.16.1-cp39-cp39-macosx_12_0_arm64.whl";
+    sha256 = "0541ldysc1a06xcb632340gn1c33w245lzqwq2f2p6hm2ifqp1a2";
+  };
+  aarch64-darwin_310 = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow-2.16.1-cp310-cp310-macosx_12_0_arm64.whl";
+    sha256 = "1crrd4izayqwji5gxjw1g9qppkvfsc8p1mr7z6hiipxidys6ldwf";
+  };
+  aarch64-darwin_311 = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow-2.16.1-cp311-cp311-macosx_12_0_arm64.whl";
+    sha256 = "0kg4g4p563nhw0l2jzydhw4ycyj3dkgqzzm0m3z8k7vzsb8na86c";
+  };
+  aarch64-darwin_312 = {
+    url = "https://storage.googleapis.com/tensorflow/versions/2.16.1/tensorflow-2.16.1-cp312-cp312-macosx_12_0_arm64.whl";
+    sha256 = "1hnzfpfncw8fa84y0jivpfyb5cbbd4cvpln72wkcxpvhj23nvw5v";
+  };
 }
diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix
index 069b87b76f843..d311edc188ad6 100644
--- a/pkgs/development/python-modules/tensorflow/default.nix
+++ b/pkgs/development/python-modules/tensorflow/default.nix
@@ -1,35 +1,90 @@
-{ stdenv, bazel_5, buildBazelPackage, lib, fetchFromGitHub, symlinkJoin
-, addOpenGLRunpath, fetchpatch, fetchzip, linkFarm
-# Python deps
-, buildPythonPackage, pythonOlder, python
-# Python libraries
-, numpy, tensorboard, abseil-cpp, absl-py
-, packaging, setuptools, wheel, keras-preprocessing, google-pasta
-, opt-einsum, astunparse, h5py
-, termcolor, grpcio, six, wrapt, protobuf-python, tensorflow-estimator-bin
-, dill, flatbuffers-python, portpicker, tblib, typing-extensions
-# Common deps
-, git, pybind11, which, binutils, glibcLocales, cython, perl
-# Common libraries
-, jemalloc, mpi, gast, grpc, sqlite, boringssl, jsoncpp, nsync
-, curl, snappy, flatbuffers-core, icu, double-conversion, libpng, libjpeg_turbo, giflib, protobuf-core
-# Upstream 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
-, config
-, cudaSupport ? config.cudaSupport
-, cudaPackagesGoogle
-, cudaCapabilities ? cudaPackagesGoogle.cudaFlags.cudaCapabilities
-, mklSupport ? false, mkl
-, tensorboardSupport ? true
-# XLA without CUDA is broken
-, xlaSupport ? cudaSupport
-, sse42Support ? stdenv.hostPlatform.sse4_2Support
-, avx2Support  ? stdenv.hostPlatform.avx2Support
-, fmaSupport   ? stdenv.hostPlatform.fmaSupport
-# Darwin deps
-, Foundation, Security, cctools, llvmPackages
+{
+  stdenv,
+  bazel_5,
+  buildBazelPackage,
+  lib,
+  fetchFromGitHub,
+  symlinkJoin,
+  addOpenGLRunpath,
+  fetchpatch,
+  fetchzip,
+  linkFarm,
+  # Python deps
+  buildPythonPackage,
+  pythonAtLeast,
+  pythonOlder,
+  python,
+  # Python libraries
+  numpy,
+  tensorboard,
+  abseil-cpp,
+  absl-py,
+  packaging,
+  setuptools,
+  wheel,
+  keras-preprocessing,
+  google-pasta,
+  opt-einsum,
+  astunparse,
+  h5py,
+  termcolor,
+  grpcio,
+  six,
+  wrapt,
+  protobuf-python,
+  tensorflow-estimator-bin,
+  dill,
+  flatbuffers-python,
+  portpicker,
+  tblib,
+  typing-extensions,
+  # Common deps
+  git,
+  pybind11,
+  which,
+  binutils,
+  glibcLocales,
+  cython,
+  perl,
+  # Common libraries
+  jemalloc,
+  mpi,
+  gast,
+  grpc,
+  sqlite,
+  boringssl,
+  jsoncpp,
+  nsync,
+  curl,
+  snappy,
+  flatbuffers-core,
+  icu,
+  double-conversion,
+  libpng,
+  libjpeg_turbo,
+  giflib,
+  protobuf-core,
+  # Upstream 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
+  config,
+  cudaSupport ? config.cudaSupport,
+  cudaPackages,
+  cudaCapabilities ? cudaPackages.cudaFlags.cudaCapabilities,
+  mklSupport ? false,
+  mkl,
+  tensorboardSupport ? true,
+  # XLA without CUDA is broken
+  xlaSupport ? cudaSupport,
+  sse42Support ? stdenv.hostPlatform.sse4_2Support,
+  avx2Support ? stdenv.hostPlatform.avx2Support,
+  fmaSupport ? stdenv.hostPlatform.fmaSupport,
+  # Darwin deps
+  Foundation,
+  Security,
+  cctools,
+  llvmPackages,
 }:
 
 let
@@ -50,21 +105,27 @@ let
   # __ZN4llvm11SmallPtrSetIPKNS_10AllocaInstELj8EED1Ev in any of the
   # translation units, so the build fails at link time
   stdenv =
-    if cudaSupport then cudaPackagesGoogle.backendStdenv
-    else if originalStdenv.isDarwin then llvmPackages.stdenv
-    else originalStdenv;
-  inherit (cudaPackagesGoogle) cudatoolkit nccl;
+    if cudaSupport then
+      cudaPackages.backendStdenv
+    else if originalStdenv.isDarwin then
+      llvmPackages.stdenv
+    else
+      originalStdenv;
+  inherit (cudaPackages) cudatoolkit nccl;
   # use compatible cuDNN (https://www.tensorflow.org/install/source#gpu)
   # cudaPackages.cudnn led to this:
   # https://github.com/tensorflow/tensorflow/issues/60398
   cudnnAttribute = "cudnn_8_6";
-  cudnn = cudaPackagesGoogle.${cudnnAttribute};
+  cudnn = cudaPackages.${cudnnAttribute};
   gentoo-patches = fetchzip {
     url = "https://dev.gentoo.org/~perfinion/patches/tensorflow-patches-2.12.0.tar.bz2";
     hash = "sha256-SCRX/5/zML7LmKEPJkcM5Tebez9vv/gmE4xhT/jyqWs=";
   };
   protobuf-extra = linkFarm "protobuf-extra" [
-    { name = "include"; path = protobuf-core.src; }
+    {
+      name = "include";
+      path = protobuf-core.src;
+    }
   ];
 
   withTensorboard = (pythonOlder "3.6") || tensorboardSupport;
@@ -72,14 +133,16 @@ let
   # FIXME: migrate to redist cudaPackages
   cudatoolkit_joined = symlinkJoin {
     name = "${cudatoolkit.name}-merged";
-    paths = [
-      cudatoolkit.lib
-      cudatoolkit.out
-    ] ++ lib.optionals (lib.versionOlder cudatoolkit.version "11") [
-      # 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}"
-    ];
+    paths =
+      [
+        cudatoolkit.lib
+        cudatoolkit.out
+      ]
+      ++ lib.optionals (lib.versionOlder cudatoolkit.version "11") [
+        # 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}"
+      ];
   };
 
   # Tensorflow expects bintools at hard-coded paths, e.g. /usr/bin/ar
@@ -96,9 +159,7 @@ let
   # Needed for _some_ system libraries, grep INCLUDEDIR.
   includes_joined = symlinkJoin {
     name = "tensorflow-deps-merged";
-    paths = [
-      jsoncpp
-    ];
+    paths = [ jsoncpp ];
   };
 
   tfFeature = x: if x then "1" else "0";
@@ -108,31 +169,31 @@ let
   variant = lib.optionalString cudaSupport "-gpu";
   pname = "tensorflow${variant}";
 
-  pythonEnv = python.withPackages (_:
-    [ # python deps needed during wheel build time (not runtime, see the buildPythonPackage part for that)
-      # 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
-      packaging
-      protobuf-python
-      setuptools
-      six
-      tblib
-      tensorboard
-      tensorflow-estimator-bin
-      termcolor
-      typing-extensions
-      wheel
-      wrapt
+  pythonEnv = python.withPackages (_: [
+    # python deps needed during wheel build time (not runtime, see the buildPythonPackage part for that)
+    # 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
+    packaging
+    protobuf-python
+    setuptools
+    six
+    tblib
+    tensorboard
+    tensorflow-estimator-bin
+    termcolor
+    typing-extensions
+    wheel
+    wrapt
   ]);
 
   rules_cc_darwin_patched = stdenv.mkDerivation {
@@ -195,15 +256,19 @@ let
       runHook postInstall
     '';
   };
-  bazel-build = if stdenv.isDarwin then _bazel-build.overrideAttrs (prev: {
-    bazelFlags = prev.bazelFlags ++ [
-      "--override_repository=rules_cc=${rules_cc_darwin_patched}"
-      "--override_repository=llvm-raw=${llvm-raw_darwin_patched}"
-    ];
-    preBuild = ''
-      export AR="${cctools}/bin/libtool"
-    '';
-  }) else _bazel-build;
+  bazel-build =
+    if stdenv.isDarwin then
+      _bazel-build.overrideAttrs (prev: {
+        bazelFlags = prev.bazelFlags ++ [
+          "--override_repository=rules_cc=${rules_cc_darwin_patched}"
+          "--override_repository=llvm-raw=${llvm-raw_darwin_patched}"
+        ];
+        preBuild = ''
+          export AR="${cctools}/bin/libtool"
+        '';
+      })
+    else
+      _bazel-build;
 
   _bazel-build = buildBazelPackage.override { inherit stdenv; } {
     name = "${pname}-${version}";
@@ -220,42 +285,50 @@ let
     # https://gitweb.gentoo.org/repo/gentoo.git/tree/sci-libs/tensorflow
 
     nativeBuildInputs = [
-      which pythonEnv cython perl protobuf-core protobuf-extra
+      which
+      pythonEnv
+      cython
+      perl
+      protobuf-core
+      protobuf-extra
     ] ++ lib.optional cudaSupport addOpenGLRunpath;
 
-    buildInputs = [
-      jemalloc
-      mpi
-      glibcLocales
-      git
-
-      # libs taken from system through the TF_SYS_LIBS mechanism
-      abseil-cpp
-      boringssl
-      curl
-      double-conversion
-      flatbuffers-core
-      giflib
-      grpc
-      # Necessary to fix the "`GLIBCXX_3.4.30' not found" error
-      (icu.override { inherit stdenv; })
-      jsoncpp
-      libjpeg_turbo
-      libpng
-      (pybind11.overridePythonAttrs (_: { inherit stdenv; }))
-      snappy
-      sqlite
-    ] ++ lib.optionals cudaSupport [
-      cudatoolkit
-      cudnn
-    ] ++ lib.optionals mklSupport [
-      mkl
-    ] ++ lib.optionals stdenv.isDarwin [
-      Foundation
-      Security
-    ] ++ lib.optionals (!stdenv.isDarwin) [
-      nsync
-    ];
+    buildInputs =
+      [
+        jemalloc
+        mpi
+        glibcLocales
+        git
+
+        # libs taken from system through the TF_SYS_LIBS mechanism
+        abseil-cpp
+        boringssl
+        curl
+        double-conversion
+        flatbuffers-core
+        giflib
+        grpc
+        # Necessary to fix the "`GLIBCXX_3.4.30' not found" error
+        (icu.override { inherit stdenv; })
+        jsoncpp
+        libjpeg_turbo
+        libpng
+        (pybind11.overridePythonAttrs (_: {
+          inherit stdenv;
+        }))
+        snappy
+        sqlite
+      ]
+      ++ lib.optionals cudaSupport [
+        cudatoolkit
+        cudnn
+      ]
+      ++ lib.optionals mklSupport [ mkl ]
+      ++ lib.optionals stdenv.isDarwin [
+        Foundation
+        Security
+      ]
+      ++ lib.optionals (!stdenv.isDarwin) [ nsync ];
 
     # arbitrarily set to the current latest bazel version, overly careful
     TF_IGNORE_MAX_BAZEL_VERSION = true;
@@ -265,47 +338,50 @@ let
     # 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"
-      "astunparse_archive"
-      "boringssl"
-      "com_google_absl"
-      # Not packaged in nixpkgs
-      # "com_github_googleapis_googleapis"
-      # "com_github_googlecloudplatform_google_cloud_cpp"
-      "com_github_grpc_grpc"
-      "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"
-      "flatbuffers"
-      "functools32_archive"
-      "gast_archive"
-      "gif"
-      "hwloc"
-      "icu"
-      "jsoncpp_git"
-      "libjpeg_turbo"
-      "nasm"
-      "opt_einsum_archive"
-      "org_sqlite"
-      "pasta"
-      "png"
-      "pybind11"
-      "six_archive"
-      "snappy"
-      "tblib_archive"
-      "termcolor_archive"
-      "typing_extensions_archive"
-      "wrapt"
-      "zlib"
-    ] ++ lib.optionals (!stdenv.isDarwin) [
-      "nsync" # fails to build on darwin
-    ]);
+    TF_SYSTEM_LIBS = lib.concatStringsSep "," (
+      [
+        "absl_py"
+        "astor_archive"
+        "astunparse_archive"
+        "boringssl"
+        "com_google_absl"
+        # Not packaged in nixpkgs
+        # "com_github_googleapis_googleapis"
+        # "com_github_googlecloudplatform_google_cloud_cpp"
+        "com_github_grpc_grpc"
+        "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"
+        "flatbuffers"
+        "functools32_archive"
+        "gast_archive"
+        "gif"
+        "hwloc"
+        "icu"
+        "jsoncpp_git"
+        "libjpeg_turbo"
+        "nasm"
+        "opt_einsum_archive"
+        "org_sqlite"
+        "pasta"
+        "png"
+        "pybind11"
+        "six_archive"
+        "snappy"
+        "tblib_archive"
+        "termcolor_archive"
+        "typing_extensions_archive"
+        "wrapt"
+        "zlib"
+      ]
+      ++ lib.optionals (!stdenv.isDarwin) [
+        "nsync" # fails to build on darwin
+      ]
+    );
 
     INCLUDEDIR = "${includes_joined}/include";
 
@@ -348,47 +424,51 @@ let
       ./protobuf_python.patch
       ./pybind11_protobuf_python_runtime_dep.patch
       ./pybind11_protobuf_newer_version.patch
-    ] ++ lib.optionals (stdenv.hostPlatform.system == "aarch64-darwin") [
-      ./absl_to_std.patch
-    ];
+    ] ++ lib.optionals (stdenv.hostPlatform.system == "aarch64-darwin") [ ./absl_to_std.patch ];
 
-    postPatch = ''
-      # bazel 3.3 should work just as well as bazel 3.1
-      rm -f .bazelversion
-      patchShebangs .
-    '' + lib.optionalString (stdenv.hostPlatform.system == "x86_64-darwin") ''
-      cat ${./com_google_absl_fix_macos.patch} >> third_party/absl/com_google_absl_fix_mac_and_nvcc_build.patch
-    '' + 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
-    '';
+    postPatch =
+      ''
+        # bazel 3.3 should work just as well as bazel 3.1
+        rm -f .bazelversion
+        patchShebangs .
+      ''
+      + lib.optionalString (stdenv.hostPlatform.system == "x86_64-darwin") ''
+        cat ${./com_google_absl_fix_macos.patch} >> third_party/absl/com_google_absl_fix_mac_and_nvcc_build.patch
+      ''
+      + 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
+      '';
 
     # https://github.com/tensorflow/tensorflow/pull/39470
     env.NIX_CFLAGS_COMPILE = toString [ "-Wno-stringop-truncation" ];
 
-    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
-    '';
+    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
@@ -398,39 +478,53 @@ let
 
     hardeningDisable = [ "format" ];
 
-    bazelBuildFlags = [
-      "--config=opt" # optimize using the flags set in the configure phase
-    ]
-    ++ lib.optionals stdenv.cc.isClang [
-      "--cxxopt=-x" "--cxxopt=c++"
-      "--host_cxxopt=-x" "--host_cxxopt=c++"
-
-      # workaround for https://github.com/bazelbuild/bazel/issues/15359
-      "--spawn_strategy=sandboxed"
-    ]
-    ++ lib.optionals (mklSupport) [ "--config=mkl" ];
-
-    bazelTargets = [ "//tensorflow/tools/pip_package:build_pip_package //tensorflow/tools/lib_package:libtensorflow" ];
+    bazelBuildFlags =
+      [
+        "--config=opt" # optimize using the flags set in the configure phase
+      ]
+      ++ lib.optionals stdenv.cc.isClang [
+        "--cxxopt=-x"
+        "--cxxopt=c++"
+        "--host_cxxopt=-x"
+        "--host_cxxopt=c++"
+
+        # workaround for https://github.com/bazelbuild/bazel/issues/15359
+        "--spawn_strategy=sandboxed"
+      ]
+      ++ lib.optionals (mklSupport) [ "--config=mkl" ];
+
+    bazelTargets = [
+      "//tensorflow/tools/pip_package:build_pip_package //tensorflow/tools/lib_package:libtensorflow"
+    ];
 
     removeRulesCC = false;
     # Without this Bazel complaints about sandbox violations.
     dontAddBazelOpts = true;
 
     fetchAttrs = {
-      sha256 = {
-      x86_64-linux = if cudaSupport
-        then "sha256-5VFMNHeLrUxW5RTr6EhT3pay9nWJ5JkZTGirDds5QkU="
-        else "sha256-KzgWV69Btr84FdwQ5JI2nQEsqiPg1/+TWdbw5bmxXOE=";
-      aarch64-linux = if cudaSupport
-        then "sha256-ty5+51BwHWE1xR4/0WcWTp608NzSAS/iiyN+9zx7/wI="
-        else "sha256-9btXrNHqd720oXTPDhSmFidv5iaZRLjCVX8opmrMjXk=";
-      x86_64-darwin = "sha256-gqb03kB0z2pZQ6m1fyRp1/Nbt8AVVHWpOJSeZNCLc4w=";
-      aarch64-darwin = "sha256-WdgAaFZU+ePwWkVBhLzjlNT7ELfGHOTaMdafcAMD5yo=";
-      }.${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}");
+      sha256 =
+        {
+          x86_64-linux =
+            if cudaSupport then
+              "sha256-5VFMNHeLrUxW5RTr6EhT3pay9nWJ5JkZTGirDds5QkU="
+            else
+              "sha256-KzgWV69Btr84FdwQ5JI2nQEsqiPg1/+TWdbw5bmxXOE=";
+          aarch64-linux =
+            if cudaSupport then
+              "sha256-ty5+51BwHWE1xR4/0WcWTp608NzSAS/iiyN+9zx7/wI="
+            else
+              "sha256-9btXrNHqd720oXTPDhSmFidv5iaZRLjCVX8opmrMjXk=";
+          x86_64-darwin = "sha256-gqb03kB0z2pZQ6m1fyRp1/Nbt8AVVHWpOJSeZNCLc4w=";
+          aarch64-darwin = "sha256-WdgAaFZU+ePwWkVBhLzjlNT7ELfGHOTaMdafcAMD5yo=";
+        }
+        .${stdenv.hostPlatform.system} or (throw "unsupported system ${stdenv.hostPlatform.system}");
     };
 
     buildAttrs = {
-      outputs = [ "out" "python" ];
+      outputs = [
+        "out"
+        "python"
+      ];
 
       # need to rebuild schemas since we use a different flatbuffers version
       preBuild = ''
@@ -474,33 +568,34 @@ let
         done
       '';
 
-      requiredSystemFeatures = [
-        "big-parallel"
-      ];
+      requiredSystemFeatures = [ "big-parallel" ];
     };
 
-    meta = with lib; {
-      badPlatforms = lib.optionals cudaSupport lib.platforms.darwin;
-      changelog = "https://github.com/tensorflow/tensorflow/releases/tag/v${version}";
-      description = "Computation using data flow graphs for scalable machine learning";
-      homepage = "http://tensorflow.org";
-      license = licenses.asl20;
-      maintainers = with maintainers; [ abbradar ];
-      platforms = with platforms; linux ++ darwin;
-      broken =
-        stdenv.isDarwin
-        || !(xlaSupport -> cudaSupport)
-        || !(cudaSupport -> builtins.hasAttr cudnnAttribute cudaPackagesGoogle)
-        || !(cudaSupport -> cudaPackagesGoogle ? cudatoolkit);
-    } // lib.optionalAttrs stdenv.isDarwin {
-      timeout = 86400; # 24 hours
-      maxSilent = 14400; # 4h, double the default of 7200s
-    };
+    meta =
+      with lib;
+      {
+        badPlatforms = lib.optionals cudaSupport lib.platforms.darwin;
+        changelog = "https://github.com/tensorflow/tensorflow/releases/tag/v${version}";
+        description = "Computation using data flow graphs for scalable machine learning";
+        homepage = "http://tensorflow.org";
+        license = licenses.asl20;
+        maintainers = with maintainers; [ abbradar ];
+        platforms = with platforms; linux ++ darwin;
+        broken =
+          stdenv.isDarwin
+          || !(xlaSupport -> cudaSupport)
+          || !(cudaSupport -> builtins.hasAttr cudnnAttribute cudaPackages)
+          || !(cudaSupport -> cudaPackages ? cudatoolkit);
+      }
+      // lib.optionalAttrs stdenv.isDarwin {
+        timeout = 86400; # 24 hours
+        maxSilent = 14400; # 4h, double the default of 7200s
+      };
   };
-
-in buildPythonPackage {
+in
+buildPythonPackage {
   inherit version pname;
-  disabled = pythonOlder "3.8";
+  disabled = pythonAtLeast "3.12";
 
   src = bazel-build.python;
 
@@ -550,9 +645,7 @@ in buildPythonPackage {
     termcolor
     typing-extensions
     wrapt
-  ] ++ lib.optionals withTensorboard [
-    tensorboard
-  ];
+  ] ++ lib.optionals withTensorboard [ tensorboard ];
 
   nativeBuildInputs = lib.optionals cudaSupport [ addOpenGLRunpath ];
 
@@ -594,7 +687,6 @@ in buildPythonPackage {
   # Regression test for #77626 removed because not more `tensorflow.contrib`.
 
   passthru = {
-    cudaPackages = cudaPackagesGoogle;
     deps = bazel-build.deps;
     libtensorflow = bazel-build.out;
   };
diff --git a/pkgs/development/python-modules/tensorflow/prefetcher.sh b/pkgs/development/python-modules/tensorflow/prefetcher.sh
index 136d982f2f60f..acd2bc0857b30 100755
--- a/pkgs/development/python-modules/tensorflow/prefetcher.sh
+++ b/pkgs/development/python-modules/tensorflow/prefetcher.sh
@@ -1,22 +1,33 @@
 #!/usr/bin/env bash
 
-version="2.15.0"
+version="2.16.1"
 
-bucket="https://storage.googleapis.com/tensorflow"
+bucket="https://storage.googleapis.com/tensorflow/versions/${version}"
 
 # List of binary wheels for Tensorflow.  The most recent versions can be found
 # on the following page:
 # https://www.tensorflow.org/install/pip?lang=python3#package-location
 url_and_key_list=(
-"linux_py_39_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
-"linux_py_310_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
-"linux_py_311_cpu $bucket/linux/cpu/tensorflow_cpu-${version}-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
-"linux_py_39_gpu $bucket/linux/gpu/tensorflow-${version}-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
-"linux_py_310_gpu $bucket/linux/gpu/tensorflow-${version}-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
-"linux_py_311_gpu $bucket/linux/gpu/tensorflow-${version}-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
-"mac_py_39_cpu $bucket/mac/cpu/tensorflow-${version}-cp39-cp39-macosx_10_15_x86_64.whl"
-"mac_py_310_cpu $bucket/mac/cpu/tensorflow-${version}-cp310-cp310-macosx_10_15_x86_64.whl"
-"mac_py_311_cpu $bucket/mac/cpu/tensorflow-${version}-cp311-cp311-macosx_10_15_x86_64.whl"
+"x86_64-linux_39 $bucket/tensorflow_cpu-${version}-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"x86_64-linux_310 $bucket/tensorflow_cpu-${version}-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"x86_64-linux_311 $bucket/tensorflow_cpu-${version}-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"x86_64-linux_312 $bucket/tensorflow_cpu-${version}-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"x86_64-linux_39_gpu $bucket/tensorflow-${version}-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"x86_64-linux_310_gpu $bucket/tensorflow-${version}-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"x86_64-linux_311_gpu $bucket/tensorflow-${version}-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"x86_64-linux_312_gpu $bucket/tensorflow-${version}-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl"
+"aarch64-linux_39 $bucket/tensorflow-${version}-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"
+"aarch64-linux_310 $bucket/tensorflow-${version}-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"
+"aarch64-linux_311 $bucket/tensorflow-${version}-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"
+"aarch64-linux_312 $bucket/tensorflow-${version}-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"
+"x86_64-darwin_39 $bucket/tensorflow-${version}-cp39-cp39-macosx_10_15_x86_64.whl"
+"x86_64-darwin_310 $bucket/tensorflow-${version}-cp310-cp310-macosx_10_15_x86_64.whl"
+"x86_64-darwin_311 $bucket/tensorflow-${version}-cp311-cp311-macosx_10_15_x86_64.whl"
+"x86_64-darwin_312 $bucket/tensorflow-${version}-cp312-cp312-macosx_10_15_x86_64.whl"
+"aarch64-darwin_39 $bucket/tensorflow-${version}-cp39-cp39-macosx_12_0_arm64.whl"
+"aarch64-darwin_310 $bucket/tensorflow-${version}-cp310-cp310-macosx_12_0_arm64.whl"
+"aarch64-darwin_311 $bucket/tensorflow-${version}-cp311-cp311-macosx_12_0_arm64.whl"
+"aarch64-darwin_312 $bucket/tensorflow-${version}-cp312-cp312-macosx_12_0_arm64.whl"
 )
 
 hashfile=binary-hashes.nix
diff --git a/pkgs/development/python-modules/tensorly/default.nix b/pkgs/development/python-modules/tensorly/default.nix
index a6e5c5a42e6ed..20bd49a8a9bad 100644
--- a/pkgs/development/python-modules/tensorly/default.nix
+++ b/pkgs/development/python-modules/tensorly/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, pytestCheckHook
-, pythonOlder
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
 }:
 
 buildPythonPackage rec {
   pname = "tensorly";
-  version = "0.8.1";
+  version = "0.8.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -18,7 +19,7 @@ buildPythonPackage rec {
     owner = pname;
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-hwpdExW/ESOavFkL3old1Efo5WC+PYmcgJp5/oLelaA=";
+    hash = "sha256-kYKyLY2V6M53co+26ZTZP4U6bHkFebKI5Uhh1x1/N58=";
   };
 
   propagatedBuildInputs = [
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     scipy
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [
     "tensorly"
@@ -48,9 +47,7 @@ buildPythonPackage rec {
     "tensorly.contrib"
   ];
 
-  pytestFlagsArray = [
-    "tensorly"
-  ];
+  pytestFlagsArray = [ "tensorly" ];
 
   disabledTests = [
     # this can fail on hydra and other peoples machines, check with others before re-enabling
diff --git a/pkgs/development/python-modules/tensorrt/default.nix b/pkgs/development/python-modules/tensorrt/default.nix
index 2f3606d8562ec..b69986fdc7e71 100644
--- a/pkgs/development/python-modules/tensorrt/default.nix
+++ b/pkgs/development/python-modules/tensorrt/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, python
-, autoAddDriverRunpath
-, buildPythonPackage
-, autoPatchelfHook
-, unzip
-, cudaPackages
+{
+  lib,
+  python,
+  autoAddDriverRunpath,
+  buildPythonPackage,
+  autoPatchelfHook,
+  unzip,
+  cudaPackages,
 }:
 
 let
@@ -39,9 +40,7 @@ buildPythonPackage rec {
     cudaPackages.tensorrt
   ];
 
-  pythonImportsCheck = [
-    "tensorrt"
-  ];
+  pythonImportsCheck = [ "tensorrt" ];
 
   meta = with lib; {
     description = "Python bindings for TensorRT, a high-performance deep learning interface";
@@ -49,8 +48,6 @@ buildPythonPackage rec {
     license = licenses.unfree;
     platforms = [ "x86_64-linux" ];
     maintainers = with maintainers; [ aidalgol ];
-    broken =
-      !(cudaPackages ? tensorrt)
-      || !(cudaPackages ? cudnn);
+    broken = !(cudaPackages ? tensorrt) || !(cudaPackages ? cudnn);
   };
 }
diff --git a/pkgs/development/python-modules/tensorstore/default.nix b/pkgs/development/python-modules/tensorstore/default.nix
index 7ad175d700772..31c126f628357 100644
--- a/pkgs/development/python-modules/tensorstore/default.nix
+++ b/pkgs/development/python-modules/tensorstore/default.nix
@@ -1,11 +1,12 @@
-{ autoPatchelfHook
-, buildPythonPackage
-, fetchPypi
-, lib
-, ml-dtypes
-, numpy
-, python
-, stdenv
+{
+  autoPatchelfHook,
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  ml-dtypes,
+  numpy,
+  python,
+  stdenv,
 }:
 
 let
@@ -36,7 +37,9 @@ buildPythonPackage rec {
     abi = "cp${pythonVersionNoDot}";
     dist = "cp${pythonVersionNoDot}";
     platform = systemToPlatform.${stdenv.system} or (throw "unsupported system");
-    hash = hashes."${pythonVersionNoDot}-${stdenv.system}" or (throw "unsupported system/python version combination");
+    hash =
+      hashes."${pythonVersionNoDot}-${stdenv.system}"
+        or (throw "unsupported system/python version combination");
   };
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ autoPatchelfHook ];
diff --git a/pkgs/development/python-modules/termcolor/default.nix b/pkgs/development/python-modules/termcolor/default.nix
index 474af852d39f0..1755f671b3ee8 100644
--- a/pkgs/development/python-modules/termcolor/default.nix
+++ b/pkgs/development/python-modules/termcolor/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatch-vcs
-, hatchling
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatch-vcs,
+  hatchling,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +22,9 @@ buildPythonPackage rec {
     hatchling
   ];
 
-  pythonImportsCheck = [
-    "termcolor"
-  ];
+  pythonImportsCheck = [ "termcolor" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "ANSI color formatting for output in terminal";
diff --git a/pkgs/development/python-modules/termgraph/default.nix b/pkgs/development/python-modules/termgraph/default.nix
index 2e9f0a8c22bf7..b2ae6ae1f979b 100644
--- a/pkgs/development/python-modules/termgraph/default.nix
+++ b/pkgs/development/python-modules/termgraph/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, colorama
-, fetchFromGitHub
-, lib
-, pytestCheckHook
+{
+  buildPythonPackage,
+  colorama,
+  fetchFromGitHub,
+  lib,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,7 +25,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "termgraph" ];
 
   meta = with lib; {
-    description = "A python command-line tool which draws basic graphs in the terminal";
+    description = "Python command-line tool which draws basic graphs in the terminal";
     mainProgram = "termgraph";
     homepage = "https://github.com/mkaz/termgraph";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/terminado/default.nix b/pkgs/development/python-modules/terminado/default.nix
index 52c0eaa61f818..fdf4b5dab44ec 100644
--- a/pkgs/development/python-modules/terminado/default.nix
+++ b/pkgs/development/python-modules/terminado/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatchling
-, ptyprocess
-, tornado
-, pytest-timeout
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatchling,
+  ptyprocess,
+  tornado,
+  pytest-timeout,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,18 +19,14 @@ buildPythonPackage rec {
     hash = "sha256-3gnyxLhd5HZfdxRoj/9X0+dbrR+Qm1if3ogEYMdT/S4=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     ptyprocess
     tornado
   ];
 
-  pythonImportsCheck = [
-    "terminado"
-  ];
+  pythonImportsCheck = [ "terminado" ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/terminaltables/default.nix b/pkgs/development/python-modules/terminaltables/default.nix
index 83895d7ad0bc2..f88cc61838da2 100644
--- a/pkgs/development/python-modules/terminaltables/default.nix
+++ b/pkgs/development/python-modules/terminaltables/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -18,5 +19,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/Robpol86/terminaltables";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/terminaltexteffects/default.nix b/pkgs/development/python-modules/terminaltexteffects/default.nix
new file mode 100644
index 0000000000000..78310f2fd9674
--- /dev/null
+++ b/pkgs/development/python-modules/terminaltexteffects/default.nix
@@ -0,0 +1,36 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+}:
+
+buildPythonPackage rec {
+  pname = "terminaltexteffects";
+  version = "0.11.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+   # no tests on pypi, no tags on github
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-FDDLc7oAOgSpaxmuS6Wzej+vEOuSx3WT2ntpfoET3LI=";
+  };
+
+  build-system = [ poetry-core ];
+
+  pythonImportsCheck = [ "terminaltexteffects" ];
+
+  meta = with lib; {
+    description = "A collection of visual effects that can be applied to terminal piped stdin text";
+    homepage = "https://chrisbuilds.github.io/terminaltexteffects";
+    changelog = "https://chrisbuilds.github.io/terminaltexteffects/changeblog/";
+    license = licenses.mit;
+    platforms = with platforms; unix;
+    maintainers = with maintainers; [ qwqawawow ];
+    mainProgram = "tte";
+  };
+}
diff --git a/pkgs/development/python-modules/termplotlib/default.nix b/pkgs/development/python-modules/termplotlib/default.nix
index 5ed244959eb1e..c4112b3e16293 100644
--- a/pkgs/development/python-modules/termplotlib/default.nix
+++ b/pkgs/development/python-modules/termplotlib/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, substituteAll
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, exdown
-, numpy
-, gnuplot
-, setuptools
+{
+  lib,
+  substituteAll,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  exdown,
+  numpy,
+  gnuplot,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     sha256 = "1qfrv2w7vb2bbjvd5lqfq57c23iqkry0pwmif1ha3asmz330rja1";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   format = "pyproject";
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/termstyle/default.nix b/pkgs/development/python-modules/termstyle/default.nix
index 862cea1741687..a3d752b7e7a7a 100644
--- a/pkgs/development/python-modules/termstyle/default.nix
+++ b/pkgs/development/python-modules/termstyle/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "termstyle";
diff --git a/pkgs/development/python-modules/tern/default.nix b/pkgs/development/python-modules/tern/default.nix
index 45553889b1bd0..978ba12ee1a1a 100644
--- a/pkgs/development/python-modules/tern/default.nix
+++ b/pkgs/development/python-modules/tern/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, debian-inspector
-, docker
-, dockerfile-parse
-, fetchPypi
-, gitpython
-, idna
-, license-expression
-, packageurl-python
-, pbr
-, prettytable
-, pythonOlder
-, pyyaml
-, regex
-, requests
-, stevedore
+{
+  lib,
+  buildPythonPackage,
+  debian-inspector,
+  docker,
+  dockerfile-parse,
+  fetchPypi,
+  gitpython,
+  idna,
+  license-expression,
+  packageurl-python,
+  pbr,
+  prettytable,
+  pythonOlder,
+  pyyaml,
+  regex,
+  requests,
+  stevedore,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
     cp requirements.{in,txt}
   '';
 
-  nativeBuildInputs = [
-    pbr
-  ];
+  nativeBuildInputs = [ pbr ];
 
   propagatedBuildInputs = [
     pyyaml
@@ -55,12 +54,10 @@ buildPythonPackage rec {
   # No tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "tern"
-  ];
+  pythonImportsCheck = [ "tern" ];
 
   meta = with lib; {
-    description = "A software composition analysis tool and Python library that generates a Software Bill of Materials for container images and Dockerfiles";
+    description = "Software composition analysis tool and Python library that generates a Software Bill of Materials for container images and Dockerfiles";
     mainProgram = "tern";
     homepage = "https://github.com/tern-tools/tern";
     changelog = "https://github.com/tern-tools/tern/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/tesla-fleet-api/default.nix b/pkgs/development/python-modules/tesla-fleet-api/default.nix
index fad5795a930e5..4be63b1b4b4b2 100644
--- a/pkgs/development/python-modules/tesla-fleet-api/default.nix
+++ b/pkgs/development/python-modules/tesla-fleet-api/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, aiolimiter
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  aiolimiter,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "tesla-fleet-api";
-  version = "0.5.6";
+  version = "0.6.1";
   pyproject = true;
 
   disabled = pythonOlder "3.10";
@@ -18,12 +19,10 @@ buildPythonPackage rec {
     owner = "Teslemetry";
     repo = "python-tesla-fleet-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-dkxKC0WAgfDvUD9YktRrNCgXpw2+6apfsMVqStZICII=";
+    hash = "sha256-dCkk0ikg8KvB7us4mEcUQ1q3JIRoNbSE6STVZXRBErE=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     aiohttp
@@ -31,11 +30,9 @@ buildPythonPackage rec {
   ];
 
   # Module has no tests
-  doCheck  =false;
+  doCheck = false;
 
-  pythonImportsCheck = [
-    "tesla_fleet_api"
-  ];
+  pythonImportsCheck = [ "tesla_fleet_api" ];
 
   meta = with lib; {
     description = "Python library for Tesla Fleet API and Teslemetry";
diff --git a/pkgs/development/python-modules/tesla-powerwall/default.nix b/pkgs/development/python-modules/tesla-powerwall/default.nix
index 95222f4de3894..8677ae389af62 100644
--- a/pkgs/development/python-modules/tesla-powerwall/default.nix
+++ b/pkgs/development/python-modules/tesla-powerwall/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, aiohttp
-, urllib3
-, orjson
-, aresponses
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  aiohttp,
+  urllib3,
+  orjson,
+  aresponses,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-cAsJKFM0i0e7w2T4HP4a5ybJGuDvBAGCGmPEKFzNFAY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -39,13 +38,9 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "tests/unit"
-  ];
+  pytestFlagsArray = [ "tests/unit" ];
 
-  pythonImportsCheck = [
-    "tesla_powerwall"
-  ];
+  pythonImportsCheck = [ "tesla_powerwall" ];
 
   meta = with lib; {
     description = "API for Tesla Powerwall";
diff --git a/pkgs/development/python-modules/tesla-wall-connector/default.nix b/pkgs/development/python-modules/tesla-wall-connector/default.nix
index 9bce448f7d2ae..e3da4c482f9ec 100644
--- a/pkgs/development/python-modules/tesla-wall-connector/default.nix
+++ b/pkgs/development/python-modules/tesla-wall-connector/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aiohttp
-, aioresponses
-, aresponses
-, backoff
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  aresponses,
+  backoff,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-GblKXWV9h37E3bxNsx17hEe0uDm8ahzJUx8wiE+Vc38=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -40,9 +39,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "tesla_wall_connector"
-  ];
+  pythonImportsCheck = [ "tesla_wall_connector" ];
 
   meta = with lib; {
     description = "Library for communicating with a Tesla Wall Connector";
diff --git a/pkgs/development/python-modules/teslajsonpy/default.nix b/pkgs/development/python-modules/teslajsonpy/default.nix
index bbfabbefd78a6..a6d0ea2e8ee66 100644
--- a/pkgs/development/python-modules/teslajsonpy/default.nix
+++ b/pkgs/development/python-modules/teslajsonpy/default.nix
@@ -18,7 +18,7 @@
 
 buildPythonPackage rec {
   pname = "teslajsonpy";
-  version = "3.10.3";
+  version = "3.12.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -27,7 +27,7 @@ buildPythonPackage rec {
     owner = "zabuldon";
     repo = "teslajsonpy";
     rev = "refs/tags/v${version}";
-    hash = "sha256-g5csh014gXdYJ28cBn0Frk5g3zFuZ9ufrypcLcNPwg0=";
+    hash = "sha256-oIuIE5N/cHCEP3azMrwNiknP4q3rDxg4BiFQiJqcFkc=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/tess/default.nix b/pkgs/development/python-modules/tess/default.nix
index b11cf5535d1d1..d0443f82392a9 100644
--- a/pkgs/development/python-modules/tess/default.nix
+++ b/pkgs/development/python-modules/tess/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cython
-, numpy
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cython,
+  numpy,
+  scipy,
 }:
 
 buildPythonPackage {
@@ -20,10 +21,13 @@ buildPythonPackage {
 
   buildInputs = [ cython ];
 
-  propagatedBuildInputs = [ numpy scipy ];
+  propagatedBuildInputs = [
+    numpy
+    scipy
+  ];
 
   meta = with lib; {
-    description = "A module for calculating and analyzing Voronoi tessellations";
+    description = "Module for calculating and analyzing Voronoi tessellations";
     homepage = "https://tess.readthedocs.org";
     license = licenses.bsd3;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/tesserocr/default.nix b/pkgs/development/python-modules/tesserocr/default.nix
index 95b5ced2a7d35..2561a15c763ef 100644
--- a/pkgs/development/python-modules/tesserocr/default.nix
+++ b/pkgs/development/python-modules/tesserocr/default.nix
@@ -1,28 +1,29 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-
-# build dependencies
-, cython
-, leptonica
-, pkg-config
-, tesseract4
-
-# propagates
-, pillow
-
-# tests
-, unittestCheckHook
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+
+  # build dependencies
+  cython,
+  leptonica,
+  pkg-config,
+  tesseract4,
+
+  # propagates
+  pillow,
+
+  # tests
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "tesserocr";
-  version = "2.6.3";
+  version = "2.7.0";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-RMHE73vcKGz6FEzhoJfoHDMp9KQ1CbyElKGrhSM4xuE=";
+    sha256 = "sha256-RcCTYwM30Bpqj5d6JGrW1zLrEfLgcrsibVmtPSR4HJk=";
   };
 
   # https://github.com/sirfz/tesserocr/issues/314
@@ -40,21 +41,15 @@ buildPythonPackage rec {
     tesseract4
   ];
 
-  propagatedBuildInputs = [
-    pillow
-  ];
+  propagatedBuildInputs = [ pillow ];
 
-  pythonImportsCheck = [
-    "tesserocr"
-  ];
+  pythonImportsCheck = [ "tesserocr" ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   meta = with lib; {
     changelog = "https://github.com/sirfz/tesserocr/releases/tag/v${version}";
-    description = "A simple, Pillow-friendly, wrapper around the tesseract-ocr API for Optical Character Recognition (OCR)";
+    description = "Simple, Pillow-friendly, wrapper around the tesseract-ocr API for Optical Character Recognition (OCR)";
     homepage = "https://github.com/sirfz/tesserocr";
     license = licenses.mit;
     maintainers = with maintainers; [ mtrsk ];
diff --git a/pkgs/development/python-modules/test-tube/default.nix b/pkgs/development/python-modules/test-tube/default.nix
index 0c4e75169c9f5..d133362c3fb2f 100644
--- a/pkgs/development/python-modules/test-tube/default.nix
+++ b/pkgs/development/python-modules/test-tube/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, isPy27
-, pytestCheckHook
-, future
-, imageio
-, numpy
-, pandas
-, torch
-, tensorboard
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy27,
+  pytestCheckHook,
+  future,
+  imageio,
+  numpy,
+  pandas,
+  torch,
+  tensorboard,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     sha256 = "0w60xarmcw06gc4002sy7bjfykdz34gbgniswxkl0lw8a1v0xn2m";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   propagatedBuildInputs = [
     future
diff --git a/pkgs/development/python-modules/testbook/default.nix b/pkgs/development/python-modules/testbook/default.nix
index 331a7b61160c1..3e6661ceb687b 100644
--- a/pkgs/development/python-modules/testbook/default.nix
+++ b/pkgs/development/python-modules/testbook/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, nbformat
-, nbclient
-, ipykernel
-, pandas
-, pytestCheckHook
-, setuptools
-, traitlets
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  nbformat,
+  nbclient,
+  ipykernel,
+  pandas,
+  pytestCheckHook,
+  setuptools,
+  traitlets,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     nbformat
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     ipykernel
@@ -41,12 +40,10 @@ buildPythonPackage rec {
     traitlets
   ];
 
-  pythonImportsCheck = [
-    "testbook"
-  ];
+  pythonImportsCheck = [ "testbook" ];
 
   meta = with lib; {
-    description = "A unit testing framework extension for testing code in Jupyter Notebooks";
+    description = "Unit testing framework extension for testing code in Jupyter Notebooks";
     homepage = "https://testbook.readthedocs.io/";
     license = with licenses; [ bsd3 ];
     maintainers = with maintainers; [ djacu ];
diff --git a/pkgs/development/python-modules/testcontainers/default.nix b/pkgs/development/python-modules/testcontainers/default.nix
index 66607ed06fff1..dd59406a7dfd0 100644
--- a/pkgs/development/python-modules/testcontainers/default.nix
+++ b/pkgs/development/python-modules/testcontainers/default.nix
@@ -1,35 +1,34 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, deprecation
-, docker
-, wrapt
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  deprecation,
+  docker,
+  wrapt,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "testcontainers";
-  version = "4.4.0";
-  disabled = pythonOlder "3.9";
-
+  version = "4.6.0";
   pyproject = true;
 
+  disabled = pythonOlder "3.9";
+
   src = fetchFromGitHub {
     owner = "testcontainers";
     repo = "testcontainers-python";
     rev = "refs/tags/testcontainers-v${version}";
-    hash = "sha256-1iwbfArEjYxpEpMlmJ8rzVLXA8OSNT7ozkpTVTIL91U=";
+    hash = "sha256-jTTpeIWZD61UZkQWW5q/c0vgViT76qjDXw4qXfNqDnA=";
   };
 
   postPatch = ''
     echo "${version}" > VERSION
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   buildInputs = [
     deprecation
@@ -37,23 +36,17 @@ buildPythonPackage rec {
     wrapt
   ];
 
-  dependencies = [
-    typing-extensions
-  ];
+  dependencies = [ typing-extensions ];
 
   # Tests require various container and database services running
   doCheck = false;
 
-  pythonImportsCheck = [
-    "testcontainers"
-  ];
+  pythonImportsCheck = [ "testcontainers" ];
 
-  meta = with lib; {
-    description = ''
-      Allows using docker containers for functional and integration testing
-    '';
+  meta = {
+    description = "Allows using docker containers for functional and integration testing";
     homepage = "https://github.com/testcontainers/testcontainers-python";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ onny ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ onny ];
   };
 }
diff --git a/pkgs/development/python-modules/testfixtures/default.nix b/pkgs/development/python-modules/testfixtures/default.nix
index b8c0a5dc1371a..e95952f940103 100644
--- a/pkgs/development/python-modules/testfixtures/default.nix
+++ b/pkgs/development/python-modules/testfixtures/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mock
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, sybil
-, twisted
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  sybil,
+  twisted,
 }:
 
 buildPythonPackage rec {
   pname = "testfixtures";
-  version = "8.1.0";
+  version = "8.3.0";
   pyproject = true;
   # DO NOT CONTACT upstream.
   # https://github.com/simplistix/ is only concerned with internal CI process.
@@ -24,12 +25,10 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gISJkDBIWcOito3+S8r3e25kJaOSUEe8JaUnVSd7+m0=";
+    hash = "sha256-1MC4SvLyZ2EPkIAJtQ1vmDpOWK3iLGe6tnh7WkAtWcA=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   nativeCheckInputs = [
     mock
@@ -43,13 +42,9 @@ buildPythonPackage rec {
     "testfixtures/tests/test_django"
   ];
 
-  pytestFlagsArray = [
-    "testfixtures/tests"
-  ];
+  pytestFlagsArray = [ "testfixtures/tests" ];
 
-  pythonImportsCheck = [
-    "testfixtures"
-  ];
+  pythonImportsCheck = [ "testfixtures" ];
 
   meta = with lib; {
     description = "Collection of helpers and mock objects for unit tests and doc tests";
diff --git a/pkgs/development/python-modules/testing-common-database/default.nix b/pkgs/development/python-modules/testing-common-database/default.nix
index ff323b85e720f..021b3e7ef7e2f 100644
--- a/pkgs/development/python-modules/testing-common-database/default.nix
+++ b/pkgs/development/python-modules/testing-common-database/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi  }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "testing.common.database";
@@ -9,7 +13,7 @@ buildPythonPackage rec {
     sha256 = "0wvdv0frl7xib05sixjv9m6jywaa2wdhdhsqqdfk45akk2r80pcn";
   };
 
-  postPatch =  ''
+  postPatch = ''
     substituteInPlace src/testing/common/database.py \
       --replace "collections.Callable" "collections.abc.Callable"
   '';
diff --git a/pkgs/development/python-modules/testing-postgresql/default.nix b/pkgs/development/python-modules/testing-postgresql/default.nix
index ad64fa53bebb5..1b1527cc4872b 100644
--- a/pkgs/development/python-modules/testing-postgresql/default.nix
+++ b/pkgs/development/python-modules/testing-postgresql/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pg8000
-, postgresql
-, psycopg2
-, pytestCheckHook
-, pythonOlder
-, sqlalchemy
-, testing-common-database
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pg8000,
+  postgresql,
+  psycopg2,
+  pytestCheckHook,
+  pythonOlder,
+  sqlalchemy,
+  testing-common-database,
 }:
 
 buildPythonPackage rec {
@@ -47,9 +48,7 @@ buildPythonPackage rec {
       --replace "pg8000 >= 1.10" "pg8000"
   '';
 
-  pythonImportsCheck = [
-    "testing.postgresql"
-  ];
+  pythonImportsCheck = [ "testing.postgresql" ];
 
   # Fix tests for Darwin build. See:
   # https://github.com/NixOS/nixpkgs/pull/74716#issuecomment-598546916
diff --git a/pkgs/development/python-modules/testpath/default.nix b/pkgs/development/python-modules/testpath/default.nix
index eb66bea56f573..7403d9c2af240 100644
--- a/pkgs/development/python-modules/testpath/default.nix
+++ b/pkgs/development/python-modules/testpath/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,9 @@ buildPythonPackage rec {
     hash = "sha256-LxuX5kQsAmgevgG9hPUxAop8rqGvOCUAD1I0XDAoXg8=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # exe are only required when testpath is used on windows
   # https://github.com/jupyter/testpath/blob/de8ca59539eb23b9781e55848b7d2646c8c61df9/testpath/commands.py#L128
@@ -40,5 +37,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     homepage = "https://github.com/jupyter/testpath";
   };
-
 }
diff --git a/pkgs/development/python-modules/testrail-api/default.nix b/pkgs/development/python-modules/testrail-api/default.nix
index 0e9daa6cdde99..cbad3f993bc9f 100644
--- a/pkgs/development/python-modules/testrail-api/default.nix
+++ b/pkgs/development/python-modules/testrail-api/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, responses
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  responses,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -27,25 +28,19 @@ buildPythonPackage rec {
       --replace "setuptools_scm==7.1.0" "setuptools_scm"
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     pytestCheckHook
     responses
   ];
 
-  pythonImportsCheck = [
-    "testrail_api"
-  ];
+  pythonImportsCheck = [ "testrail_api" ];
 
   meta = with lib; {
-    description = "A Python wrapper of the TestRail API";
+    description = "Python wrapper of the TestRail API";
     homepage = "https://github.com/tolstislon/testrail-api";
     changelog = "https://github.com/tolstislon/ytestrail-api/releases/tag/${version}";
     license = with licenses; [ mit ];
diff --git a/pkgs/development/python-modules/testrepository/default.nix b/pkgs/development/python-modules/testrepository/default.nix
index 751292ab5be75..9217aff5a8ff1 100644
--- a/pkgs/development/python-modules/testrepository/default.nix
+++ b/pkgs/development/python-modules/testrepository/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, testtools
-, testresources
-, pbr
-, subunit
-, fixtures
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  testtools,
+  testresources,
+  pbr,
+  subunit,
+  fixtures,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -21,17 +22,20 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ testresources ];
   buildInputs = [ pbr ];
-  propagatedBuildInputs = [ fixtures subunit testtools ];
+  propagatedBuildInputs = [
+    fixtures
+    subunit
+    testtools
+  ];
 
   checkPhase = ''
     ${python.interpreter} ./testr
   '';
 
   meta = with lib; {
-    description = "A database of test results which can be used as part of developer workflow";
+    description = "Database of test results which can be used as part of developer workflow";
     mainProgram = "testr";
     homepage = "https://pypi.python.org/pypi/testrepository";
     license = licenses.bsd2;
   };
-
 }
diff --git a/pkgs/development/python-modules/testresources/default.nix b/pkgs/development/python-modules/testresources/default.nix
index 724a6c3643583..7d4710c743882 100644
--- a/pkgs/development/python-modules/testresources/default.nix
+++ b/pkgs/development/python-modules/testresources/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pbr
-, fixtures
-, testtools
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pbr,
+  fixtures,
+  testtools,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,9 @@ buildPythonPackage rec {
       --replace "failIf" "assertFalse"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    pbr
-  ];
+  propagatedBuildInputs = [ pbr ];
 
   nativeCheckInputs = [
     fixtures
diff --git a/pkgs/development/python-modules/testscenarios/default.nix b/pkgs/development/python-modules/testscenarios/default.nix
index 8218947d68683..f46f4e2f2c1ac 100644
--- a/pkgs/development/python-modules/testscenarios/default.nix
+++ b/pkgs/development/python-modules/testscenarios/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, pbr
-, setuptools
+  # build-system
+  pbr,
+  setuptools,
 
-# dependencies
-, testtools
+  # dependencies
+  testtools,
 
-# tests
-, python
+  # tests
+  python,
 }:
 
 buildPythonPackage rec {
@@ -48,9 +49,8 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A pyunit extension for dependency injection";
+    description = "Pyunit extension for dependency injection";
     homepage = "https://github.com/testing-cabal/testscenarios";
     license = licenses.asl20;
   };
-
 }
diff --git a/pkgs/development/python-modules/testtools/default.nix b/pkgs/development/python-modules/testtools/default.nix
index ffc007af7acf6..6e98a9f3461e2 100644
--- a/pkgs/development/python-modules/testtools/default.nix
+++ b/pkgs/development/python-modules/testtools/default.nix
@@ -1,46 +1,41 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonAtLeast
-, pythonRelaxDepsHook
-
-# build-system
-, hatchling
-, hatch-vcs
-
-# dependencies
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
+
+  # build-system
+  hatchling,
+  hatch-vcs,
+
+  # dependencies
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "testtools";
-  version = "2.7.1";
+  version = "2.7.2";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "sha256-323pYBDinuIfY3oUfqvzDVCyXjhB3R1o+T7onOd+Nmw=";
+    sha256 = "sha256-W+W7wfD6D4tgrKbO7AeEXUHQxHXPRFv6200sRew5fqM=";
   };
 
   nativeBuildInputs = [
     hatchling
     hatch-vcs
-    pythonRelaxDepsHook
   ];
 
-  pythonRemoveDeps = [
-    "fixtures"
-  ];
+  pythonRemoveDeps = [ "fixtures" ];
 
-  propagatedBuildInputs = lib.optionals (pythonAtLeast "3.12") [
-    setuptools
-  ];
+  propagatedBuildInputs = lib.optionals (pythonAtLeast "3.12") [ setuptools ];
 
   # testscenarios has a circular dependency on testtools
   doCheck = false;
 
   meta = {
-    description = "A set of extensions to the Python standard library's unit testing framework";
+    description = "Set of extensions to the Python standard library's unit testing framework";
     homepage = "https://pypi.python.org/pypi/testtools";
     license = lib.licenses.mit;
   };
diff --git a/pkgs/development/python-modules/texsoup/default.nix b/pkgs/development/python-modules/texsoup/default.nix
index da59b2fc28bc5..697d160adc8e5 100644
--- a/pkgs/development/python-modules/texsoup/default.nix
+++ b/pkgs/development/python-modules/texsoup/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,15 +18,11 @@ buildPythonPackage rec {
     hash = "sha256-XKYJycYivtrszU46B3Bd4JLrvckBpQu9gKDMdr6MyZU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   pythonImportsCheck = [ "TexSoup" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     substituteInPlace pytest.ini \
diff --git a/pkgs/development/python-modules/text-unidecode/default.nix b/pkgs/development/python-modules/text-unidecode/default.nix
index b971b94c99ab6..dd72689635ee6 100644
--- a/pkgs/development/python-modules/text-unidecode/default.nix
+++ b/pkgs/development/python-modules/text-unidecode/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "text-unidecode";
@@ -17,7 +22,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "The most basic Text::Unidecode port";
+    description = "Most basic Text::Unidecode port";
     homepage = "https://github.com/kmike/text-unidecode";
     license = licenses.artistic1;
   };
diff --git a/pkgs/development/python-modules/textacy/default.nix b/pkgs/development/python-modules/textacy/default.nix
index 18bdddfa08185..8a95ecf22feaf 100644
--- a/pkgs/development/python-modules/textacy/default.nix
+++ b/pkgs/development/python-modules/textacy/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, cachetools
-, cytoolz
-, fetchPypi
-, floret
-, jellyfish
-, joblib
-, matplotlib
-, networkx
-, numpy
-, pyemd
-, pyphen
-, pytestCheckHook
-, pythonOlder
-, requests
-, scikit-learn
-, scipy
-, spacy
-, tqdm
+{
+  lib,
+  buildPythonPackage,
+  cachetools,
+  cytoolz,
+  fetchPypi,
+  floret,
+  jellyfish,
+  joblib,
+  matplotlib,
+  networkx,
+  numpy,
+  pyemd,
+  pyphen,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  scikit-learn,
+  scipy,
+  spacy,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -49,9 +50,7 @@ buildPythonPackage rec {
     tqdm
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [
     # Almost all tests have to deal with downloading a dataset, only test pure tests
diff --git a/pkgs/development/python-modules/textdistance/default.nix b/pkgs/development/python-modules/textdistance/default.nix
index c362e936eb32d..0f51381f540f8 100644
--- a/pkgs/development/python-modules/textdistance/default.nix
+++ b/pkgs/development/python-modules/textdistance/default.nix
@@ -1,27 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "textdistance";
-  version = "4.6.1";
+  version = "4.6.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-JYllgBse+FaGppq/bDzv3F2iHC+9iMkMaHJfV6fUXyE=";
+    hash = "sha256-AeH7z3uHHrj0GRHZT0YbC5nPgAM4TuDhw0ylwaerLtA=";
   };
 
   # There aren't tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "textdistance"
-  ];
+  pythonImportsCheck = [ "textdistance" ];
 
   meta = with lib; {
     description = "Python library for comparing distance between two or more sequences";
diff --git a/pkgs/development/python-modules/textfsm/default.nix b/pkgs/development/python-modules/textfsm/default.nix
index 84eba320791cb..38d07c9f10956 100644
--- a/pkgs/development/python-modules/textfsm/default.nix
+++ b/pkgs/development/python-modules/textfsm/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, six
-, future
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  six,
+  future,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -11,7 +12,6 @@ buildPythonPackage rec {
   version = "1.1.3";
   format = "setuptools";
 
-
   src = fetchFromGitHub {
     owner = "google";
     repo = pname;
@@ -30,9 +30,7 @@ buildPythonPackage rec {
     future
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Python module for parsing semi-structured text into python tables";
diff --git a/pkgs/development/python-modules/textile/default.nix b/pkgs/development/python-modules/textile/default.nix
index 01686e4fc2acc..725e6adae5498 100644
--- a/pkgs/development/python-modules/textile/default.nix
+++ b/pkgs/development/python-modules/textile/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, html5lib
-, pytestCheckHook
-, pythonOlder
-, regex
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  html5lib,
+  pytestCheckHook,
+  pythonOlder,
+  regex,
 }:
 
 buildPythonPackage rec {
@@ -26,18 +27,14 @@ buildPythonPackage rec {
     regex
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace pytest.ini \
       --replace " --cov=textile --cov-report=html --cov-append --cov-report=term-missing" ""
   '';
 
-  pythonImportsCheck = [
-    "textile"
-  ];
+  pythonImportsCheck = [ "textile" ];
 
   meta = with lib; {
     description = "MOdule for generating web text";
diff --git a/pkgs/development/python-modules/textnets/default.nix b/pkgs/development/python-modules/textnets/default.nix
index 399bc5288022a..09b47a1b12075 100644
--- a/pkgs/development/python-modules/textnets/default.nix
+++ b/pkgs/development/python-modules/textnets/default.nix
@@ -1,23 +1,23 @@
-{ lib
-, buildPythonPackage
-, cairocffi
-, cython
-, fetchPypi
-, igraph
-, leidenalg
-, pandas
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, scipy
-, setuptools
-, spacy
-, spacy-lookups-data
-, en_core_web_sm
-, toolz
-, tqdm
-, wasabi
+{
+  lib,
+  buildPythonPackage,
+  cairocffi,
+  cython,
+  fetchPypi,
+  igraph,
+  leidenalg,
+  pandas,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
+  setuptools,
+  spacy,
+  spacy-lookups-data,
+  en_core_web_sm,
+  toolz,
+  tqdm,
+  wasabi,
 }:
 
 buildPythonPackage rec {
@@ -33,13 +33,15 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     cython
     poetry-core
     setuptools
   ];
 
-  pythonRelaxDeps = [ "igraph" "leidenalg" ];
+  pythonRelaxDeps = [
+    "igraph"
+    "leidenalg"
+  ];
 
   propagatedBuildInputs = [
     cairocffi
@@ -59,9 +61,7 @@ buildPythonPackage rec {
     en_core_web_sm
   ];
 
-  pythonImportsCheck = [
-    "textnets"
-  ];
+  pythonImportsCheck = [ "textnets" ];
 
   # Enables the package to find the cythonized .so files during testing. See #255262
   preCheck = ''
diff --git a/pkgs/development/python-modules/textparser/default.nix b/pkgs/development/python-modules/textparser/default.nix
index 86c436ac21f99..f0f2e0b16a3d9 100644
--- a/pkgs/development/python-modules/textparser/default.nix
+++ b/pkgs/development/python-modules/textparser/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,21 +19,15 @@ buildPythonPackage rec {
     hash = "sha256-VvcI51qp0AKtt22CO6bvFm1+zsHj5MpMHKED+BdWgzU=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "textparser"
-  ];
+  pythonImportsCheck = [ "textparser" ];
 
   meta = with lib; {
     homepage = "https://github.com/eerimoq/textparser";
-    description = "A text parser";
+    description = "Text parser";
     license = licenses.mit;
     maintainers = with maintainers; [ gray-heron ];
   };
diff --git a/pkgs/development/python-modules/texttable/default.nix b/pkgs/development/python-modules/texttable/default.nix
index d1134a28601a9..10d123e08da39 100644
--- a/pkgs/development/python-modules/texttable/default.nix
+++ b/pkgs/development/python-modules/texttable/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,17 +18,11 @@ buildPythonPackage rec {
     hash = "sha256-LSBo+1URWAfTrHekymj6SIA+hOuw7iNA+FgQejZSJjg=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "texttable"
-  ];
+  pythonImportsCheck = [ "texttable" ];
 
-  pytestFlagsArray = [
-    "tests.py"
-  ];
+  pytestFlagsArray = [ "tests.py" ];
 
   meta = with lib; {
     description = "Module to generate a formatted text table, using ASCII characters";
diff --git a/pkgs/development/python-modules/textual-dev/default.nix b/pkgs/development/python-modules/textual-dev/default.nix
index d8ca583d97b62..0e2b1c4884bee 100644
--- a/pkgs/development/python-modules/textual-dev/default.nix
+++ b/pkgs/development/python-modules/textual-dev/default.nix
@@ -1,16 +1,14 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, msgpack
-, poetry-core
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, textual
-, time-machine
-, typing-extensions
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  msgpack,
+  poetry-core,
+  pythonOlder,
+  textual,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -27,11 +25,9 @@ buildPythonPackage rec {
     hash = "sha256-QnMKVt1WxnwGnZFNb7Gbus7xewGvyG5xJ0hIKKK5hug=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     click
     msgpack
@@ -39,21 +35,17 @@ buildPythonPackage rec {
     typing-extensions
   ];
 
-  nativeCheckInputs = [
-    pytest-aiohttp
-    pytestCheckHook
-    time-machine
-  ];
+  # Tests require a running textual WS server
+  doCheck = false;
 
-  pythonImportsCheck = [
-    "textual_dev"
-  ];
+  pythonImportsCheck = [ "textual_dev" ];
 
   meta = with lib; {
     description = "Development tools for Textual";
-    mainProgram = "textual";
     homepage = "https://github.com/Textualize/textual-dev";
+    changelog = "https://github.com/Textualize/textual-dev/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ yannip ];
+    mainProgram = "textual";
   };
 }
diff --git a/pkgs/development/python-modules/textual-universal-directorytree/default.nix b/pkgs/development/python-modules/textual-universal-directorytree/default.nix
index 0e9e3e6d002c3..cc574741ecb2c 100644
--- a/pkgs/development/python-modules/textual-universal-directorytree/default.nix
+++ b/pkgs/development/python-modules/textual-universal-directorytree/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, textual
-, universal-pathlib
-, adlfs
-, aiohttp
-, gcsfs
-, paramiko
-, requests
-, s3fs
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  textual,
+  universal-pathlib,
+  adlfs,
+  aiohttp,
+  gcsfs,
+  paramiko,
+  requests,
+  s3fs,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-ncQ3IRaZaCv1rMUWT9dkUKo6OAEC5pziMCM7adIBGWo=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     textual
@@ -47,9 +46,7 @@ buildPythonPackage rec {
     ];
   };
 
-  pythonImportsCheck = [
-    "textual_universal_directorytree"
-  ];
+  pythonImportsCheck = [ "textual_universal_directorytree" ];
 
   meta = with lib; {
     description = "Textual plugin for a DirectoryTree compatible with remote filesystems";
diff --git a/pkgs/development/python-modules/textual/default.nix b/pkgs/development/python-modules/textual/default.nix
index c9303d198b62c..ea00817ab76de 100644
--- a/pkgs/development/python-modules/textual/default.nix
+++ b/pkgs/development/python-modules/textual/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, jinja2
-, markdown-it-py
-, poetry-core
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, rich
-, syrupy
-, time-machine
-, tree-sitter
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jinja2,
+  markdown-it-py,
+  poetry-core,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  rich,
+  syrupy,
+  time-machine,
+  tree-sitter,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "textual";
-  version = "0.53.1";
+  version = "0.70.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -25,19 +26,16 @@ buildPythonPackage rec {
     owner = "Textualize";
     repo = "textual";
     rev = "refs/tags/v${version}";
-    hash = "sha256-73qEogHe69B66r4EJOj2RAP95O5z7v/UYARTIEPxrcA=";
+    hash = "sha256-nOgiMT+q2pc94Q6g3MvKQVhGJYSGNnoE+5/foK62zLM=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     markdown-it-py
     rich
     typing-extensions
-  ] ++ markdown-it-py.optional-dependencies.plugins
-    ++ markdown-it-py.optional-dependencies.linkify;
+  ] ++ markdown-it-py.optional-dependencies.plugins ++ markdown-it-py.optional-dependencies.linkify;
 
   optional-dependencies = {
     syntax = [
@@ -69,9 +67,7 @@ buildPythonPackage rec {
     "test_language_binary_missing"
   ];
 
-  pythonImportsCheck = [
-    "textual"
-  ];
+  pythonImportsCheck = [ "textual" ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/textwrap3/default.nix b/pkgs/development/python-modules/textwrap3/default.nix
index 17832c11b8cf0..1cf7dcb376ead 100644
--- a/pkgs/development/python-modules/textwrap3/default.nix
+++ b/pkgs/development/python-modules/textwrap3/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     sha256 = "5008eeebdb236f6303dcd68f18b856d355f6197511d952ba74bc75e40e0c3414";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Textwrap from Python 3.6 backport plus a few tweaks";
diff --git a/pkgs/development/python-modules/textx/default.nix b/pkgs/development/python-modules/textx/default.nix
index 46847572714c7..ec8779e4ccce0 100644
--- a/pkgs/development/python-modules/textx/default.nix
+++ b/pkgs/development/python-modules/textx/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, python
-, fetchFromGitHub
-, mkdocs
-, twine
-, arpeggio
-, click
-, future
-, setuptools
-, callPackage
-, gprof2dot
-, html5lib
-, jinja2
-, psutil
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  python,
+  fetchFromGitHub,
+  mkdocs,
+  twine,
+  arpeggio,
+  click,
+  future,
+  setuptools,
+  callPackage,
+  gprof2dot,
+  html5lib,
+  jinja2,
+  psutil,
+  pytestCheckHook,
 }:
 
 let
@@ -59,9 +60,7 @@ let
       cp -r tests $testout/tests
     '';
 
-    pythonImportsCheck = [
-      "textx"
-    ];
+    pythonImportsCheck = [ "textx" ];
 
     # Circular dependencies, do tests in passthru.tests instead.
     doCheck = false;
@@ -73,8 +72,9 @@ let
           textx-example-project
           textx-flow-codegen
           textx-flow-dsl
-          textx-types-dsl;
-       };
+          textx-types-dsl
+          ;
+      };
     };
 
     meta = with lib; {
@@ -131,9 +131,7 @@ let
     format = "setuptools";
     pathToSourceRoot = "tests/functional/registration/projects/flow_dsl";
     sourceRoot = "${src.name}/" + pathToSourceRoot;
-    propagatedBuildInputs = [
-      textx
-    ];
+    propagatedBuildInputs = [ textx ];
     meta = with lib; {
       inherit (textx.meta) license maintainers;
       description = "Sample textX language for testing";
@@ -148,9 +146,7 @@ let
     format = "setuptools";
     pathToSourceRoot = "tests/functional/registration/projects/types_dsl";
     sourceRoot = "${src.name}/" + pathToSourceRoot;
-    propagatedBuildInputs = [
-      textx
-    ];
+    propagatedBuildInputs = [ textx ];
     meta = with lib; {
       inherit (textx.meta) license maintainers;
       description = "Sample textX language for testing";
@@ -165,9 +161,7 @@ let
     format = "setuptools";
     pathToSourceRoot = "tests/functional/subcommands/example_project";
     sourceRoot = "${src.name}/" + pathToSourceRoot;
-    propagatedBuildInputs = [
-      textx
-    ];
+    propagatedBuildInputs = [ textx ];
     meta = with lib; {
       inherit (textx.meta) license maintainers;
       description = "Sample textX sub-command for testing";
@@ -175,4 +169,4 @@ let
     };
   };
 in
-  textx
+textx
diff --git a/pkgs/development/python-modules/textx/tests.nix b/pkgs/development/python-modules/textx/tests.nix
index 488c276e910f3..b991c8ed25c9f 100644
--- a/pkgs/development/python-modules/textx/tests.nix
+++ b/pkgs/development/python-modules/textx/tests.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, click
-, gprof2dot
-, html5lib
-, jinja2
-, memory-profiler
-, psutil
-, pytestCheckHook
-, setuptools
-, textx
-, textx-data-dsl
-, textx-example-project
-, textx-flow-codegen
-, textx-flow-dsl
-, textx-types-dsl
+{
+  lib,
+  buildPythonPackage,
+  click,
+  gprof2dot,
+  html5lib,
+  jinja2,
+  memory-profiler,
+  psutil,
+  pytestCheckHook,
+  setuptools,
+  textx,
+  textx-data-dsl,
+  textx-example-project,
+  textx-flow-codegen,
+  textx-flow-dsl,
+  textx-types-dsl,
 }:
 
 buildPythonPackage {
@@ -41,9 +42,7 @@ buildPythonPackage {
     textx-types-dsl
   ];
 
-  pytestFlagsArray = [
-    "tests/functional"
-  ];
+  pytestFlagsArray = [ "tests/functional" ];
 
   meta = with lib; {
     inherit (textx.meta) license maintainers;
diff --git a/pkgs/development/python-modules/tf-keras/default.nix b/pkgs/development/python-modules/tf-keras/default.nix
new file mode 100644
index 0000000000000..da7d2d6d869c7
--- /dev/null
+++ b/pkgs/development/python-modules/tf-keras/default.nix
@@ -0,0 +1,53 @@
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  wheel,
+  numpy,
+  tensorflow,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "tf-keras";
+  version = "2.16.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchPypi {
+    pname = "tf_keras";
+    inherit version;
+    hash = "sha256-21OJHxrJgZfCrM7ZjNyowGuoJVZVpst+uV7UlnYRgoA=";
+  };
+
+  nativeBuildInputs = [
+  ];
+
+  pythonRelaxDeps = [
+    "tensorflow"
+  ];
+
+  build-system = [
+    setuptools
+    wheel
+  ];
+
+  dependencies = [
+    numpy
+    tensorflow
+  ];
+
+  pythonImportsCheck = [ "tf_keras" ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  meta = {
+    description = "Deep learning for humans";
+    homepage = "https://pypi.org/project/tf-keras/";
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ GaetanLepage ];
+  };
+}
diff --git a/pkgs/development/python-modules/tf2onnx/default.nix b/pkgs/development/python-modules/tf2onnx/default.nix
index deb739ce162f1..73c19842f103e 100644
--- a/pkgs/development/python-modules/tf2onnx/default.nix
+++ b/pkgs/development/python-modules/tf2onnx/default.nix
@@ -1,25 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonRelaxDepsHook
-, pytest-runner
-# runtime dependencies
-, numpy
-, onnx
-, requests
-, six
-, flatbuffers
-, protobuf
-, tensorflow
-# check dependencies
-, pytestCheckHook
-, graphviz
-, parameterized
-, pytest-cov
-, pyyaml
-, timeout-decorator
-, onnxruntime
-, keras
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-runner,
+  # runtime dependencies
+  numpy,
+  onnx,
+  requests,
+  six,
+  flatbuffers,
+  protobuf,
+  tensorflow,
+  # check dependencies
+  pytestCheckHook,
+  graphviz,
+  parameterized,
+  pytest-cov,
+  pyyaml,
+  timeout-decorator,
+  onnxruntime,
+  keras,
 }:
 
 buildPythonPackage rec {
@@ -35,13 +35,10 @@ buildPythonPackage rec {
   };
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     pytest-runner
   ];
 
-  pythonRelaxDeps = [
-    "flatbuffers"
-  ];
+  pythonRelaxDeps = [ "flatbuffers" ];
 
   propagatedBuildInputs = [
     numpy
@@ -73,14 +70,17 @@ buildPythonPackage rec {
     "tests/test_einsum_optimizers.py"
   ];
 
-  disabledTests = [
-    "test_profile_conversion_time"
-  ];
+  disabledTests = [ "test_profile_conversion_time" ];
 
   meta = with lib; {
     description = "Convert TensorFlow, Keras, Tensorflow.js and Tflite models to ONNX";
     homepage = "https://github.com/onnx/tensorflow-onnx";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
+    # Duplicated `protobuf` in the derivation:
+    # - version 4.24.4 (from onnx), the default version of protobuf in nixpkgs
+    # - version 4.21.12 (from tensorflow), pinned as such because tensorflow is outdated and does
+    #   not support more recent versions of protobuf
+    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/tflearn/default.nix b/pkgs/development/python-modules/tflearn/default.nix
index d2eee46f14ce8..3bd15b7fba5e1 100644
--- a/pkgs/development/python-modules/tflearn/default.nix
+++ b/pkgs/development/python-modules/tflearn/default.nix
@@ -1,5 +1,13 @@
-{ lib, fetchPypi, buildPythonPackage, pytest, scipy, h5py
-, pillow, tensorflow }:
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pytest,
+  scipy,
+  h5py,
+  pillow,
+  tensorflow,
+}:
 
 buildPythonPackage rec {
   pname = "tflearn";
@@ -13,13 +21,18 @@ buildPythonPackage rec {
 
   buildInputs = [ pytest ];
 
-  propagatedBuildInputs = [ scipy h5py pillow tensorflow ];
+  propagatedBuildInputs = [
+    scipy
+    h5py
+    pillow
+    tensorflow
+  ];
 
   doCheck = false;
 
   meta = with lib; {
     description = "Deep learning library featuring a higher-level API for TensorFlow";
-    homepage    = "https://github.com/tflearn/tflearn";
-    license     = licenses.mit;
+    homepage = "https://github.com/tflearn/tflearn";
+    license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/tftpy/default.nix b/pkgs/development/python-modules/tftpy/default.nix
index 92589c8cfc229..2fe4c4b7b2666 100644
--- a/pkgs/development/python-modules/tftpy/default.nix
+++ b/pkgs/development/python-modules/tftpy/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/tgcrypto/default.nix b/pkgs/development/python-modules/tgcrypto/default.nix
index 6d5ebba2ee1e3..2eb68c4f59d48 100644
--- a/pkgs/development/python-modules/tgcrypto/default.nix
+++ b/pkgs/development/python-modules/tgcrypto/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +22,9 @@ buildPythonPackage rec {
     hash = "sha256-u+mXzkmM79NBi4oHnb32RbN9WPnba/cm1q2Ko0uNEZg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "tgcrypto" ];
 
diff --git a/pkgs/development/python-modules/theano-pymc/default.nix b/pkgs/development/python-modules/theano-pymc/default.nix
deleted file mode 100644
index fa8218237cc12..0000000000000
--- a/pkgs/development/python-modules/theano-pymc/default.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, pandas
-, numpy
-, scipy
-, filelock
-, pytest
-, nose
-, parameterized
-}:
-
-buildPythonPackage rec {
-  pname = "theano-pymc";
-  version = "1.1.2";
-  format = "setuptools";
-  disabled = pythonOlder "3.6";
-
-  src = fetchPypi {
-    pname = "Theano-PyMC";
-    inherit version;
-    sha256 = "5da6c2242ea72a991c8446d7fe7d35189ea346ef7d024c890397011114bf10fc";
-  };
-
-  # No need for coverage stats in Nix builds
-  postPatch = ''
-    substituteInPlace setup.py --replace ", 'pytest-cov'" ""
-  '';
-
-  propagatedBuildInputs = [
-    pandas
-    numpy
-    scipy
-    filelock
-  ];
-
-  # The test suite is computationally intensive and test failures are not
-  # indicative for package usability hence tests are disabled by default.
-  doCheck = false;
-  pythonImportsCheck = [ "theano" ];
-
-  meta = {
-    description = "PyMC theano fork";
-    homepage = "https://github.com/majidaldo/Theano-PyMC";
-    license = lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ nidabdella ];
-    broken = true;
-  };
-}
diff --git a/pkgs/development/python-modules/theano/default.nix b/pkgs/development/python-modules/theano/default.nix
deleted file mode 100644
index 78a2a0836e765..0000000000000
--- a/pkgs/development/python-modules/theano/default.nix
+++ /dev/null
@@ -1,107 +0,0 @@
-{ lib, stdenv
-, runCommandCC
-, fetchPypi
-, buildPythonPackage
-, isPyPy
-, pythonOlder
-, isPy3k
-, nose
-, numpy
-, scipy
-, setuptools
-, six
-, libgpuarray
-, config
-, cudaSupport ? config.cudaSupport, cudaPackages ? { }
-, cudnnSupport ? cudaSupport
-}:
-
-let
-  inherit (cudaPackages) cudatoolkit cudnn;
-in
-
-assert cudnnSupport -> cudaSupport;
-
-let
-  wrapped = command: buildTop: buildInputs:
-    runCommandCC "${command}-wrapped" { inherit buildInputs; } ''
-      type -P '${command}' || { echo '${command}: not found'; exit 1; }
-      cat > "$out" <<EOF
-      #!$(type -P bash)
-      $(declare -xp | sed -e '/^[^=]\+="\('"''${NIX_STORE//\//\\/}"'\|[^\/]\)/!d')
-      declare -x NIX_BUILD_TOP="${buildTop}"
-      $(type -P '${command}') "\$@"
-      EOF
-      chmod +x "$out"
-    '';
-
-  # Theano spews warnings and disabled flags if the compiler isn't named g++
-  cxx_compiler_name =
-    if stdenv.cc.isGNU then "g++" else
-    if stdenv.cc.isClang then "clang++" else
-    throw "Unknown C++ compiler";
-  cxx_compiler = wrapped cxx_compiler_name "\\$HOME/.theano"
-    (    lib.optional cudaSupport libgpuarray_
-      ++ lib.optional cudnnSupport cudnn );
-
-  # We need to be careful with overriding Python packages within the package set
-  # as this can lead to collisions!
-  libgpuarray_ = libgpuarray.override { inherit cudaSupport cudaPackages; };
-
-in buildPythonPackage rec {
-  pname = "theano";
-  version = "1.0.5";
-  format = "setuptools";
-
-  disabled = isPyPy || pythonOlder "2.6" || (isPy3k && pythonOlder "3.3");
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "129f43ww2a6badfdr6b88kzjzz2b0wk0dwkvwb55z6dsagfkk53f";
-  };
-
-  postPatch = ''
-    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 != ""'
-  '' + lib.optionalString cudaSupport ''
-    substituteInPlace theano/configdefaults.py \
-      --replace 'StrParam(get_cuda_root)' 'StrParam('\'''${cudatoolkit}'\''')'
-  '' + lib.optionalString cudnnSupport ''
-    substituteInPlace theano/configdefaults.py \
-      --replace 'StrParam(default_dnn_base_path)' 'StrParam('\'''${cudnn}'\''')'
-  '';
-
-  # needs to be postFixup so it runs before pythonImportsCheck even when
-  # doCheck = false (meaning preCheck would be disabled)
-  postFixup = ''
-    mkdir -p check-phase
-    export HOME=$(pwd)/check-phase
-  '';
-  doCheck = false;
-  # takes far too long, also throws "TypeError: sort() missing 1 required positional argument: 'a'"
-  # when run from the installer, and testing with Python 3.5 hits github.com/Theano/Theano/issues/4276,
-  # the fix for which hasn't been merged yet.
-
-  # keep Nose around since running the tests by hand is possible from Python or bash
-  nativeCheckInputs = [ nose ];
-  # setuptools needed for cuda support
-  propagatedBuildInputs = [
-    libgpuarray_
-    numpy
-    numpy.blas
-    scipy
-    setuptools
-    six
-  ];
-
-  pythonImportsCheck = [ "theano" ];
-
-  meta = with lib; {
-    homepage = "https://github.com/Theano/Theano";
-    description = "A Python library for large-scale array computation";
-    license = licenses.bsd3;
-    maintainers = [ ];
-    broken = true;
-  };
-}
diff --git a/pkgs/development/python-modules/thefuzz/default.nix b/pkgs/development/python-modules/thefuzz/default.nix
index 1297ef2895c10..d307d5912b035 100644
--- a/pkgs/development/python-modules/thefuzz/default.nix
+++ b/pkgs/development/python-modules/thefuzz/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pytestCheckHook
-, hypothesis
-, levenshtein
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytestCheckHook,
+  hypothesis,
+  levenshtein,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     substituteInPlace test_thefuzz.py --replace "import pycodestyle" ""
   '';
 
-  pythonImportsCheck = [
-    "thefuzz"
-  ];
+  pythonImportsCheck = [ "thefuzz" ];
 
   nativeCheckInputs = [
     hypothesis
diff --git a/pkgs/development/python-modules/thelogrus/default.nix b/pkgs/development/python-modules/thelogrus/default.nix
index 62011023516dd..2ba9c5c1fd9b5 100644
--- a/pkgs/development/python-modules/thelogrus/default.nix
+++ b/pkgs/development/python-modules/thelogrus/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, dateutils
-, fetchFromGitHub
-, poetry-core
-, pyaml
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  dateutils,
+  fetchFromGitHub,
+  poetry-core,
+  pyaml,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -24,12 +24,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "pyaml"
-  ];
+  pythonRelaxDeps = [ "pyaml" ];
 
   propagatedBuildInputs = [
     dateutils
@@ -39,9 +36,7 @@ buildPythonPackage rec {
   # Module has no unit tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "thelogrus"
-  ];
+  pythonImportsCheck = [ "thelogrus" ];
 
   meta = with lib; {
     description = "Python 3 version of logrus";
diff --git a/pkgs/development/python-modules/thermobeacon-ble/default.nix b/pkgs/development/python-modules/thermobeacon-ble/default.nix
index 38e6708e0e390..b31384e06bc03 100644
--- a/pkgs/development/python-modules/thermobeacon-ble/default.nix
+++ b/pkgs/development/python-modules/thermobeacon-ble/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, bluetooth-data-tools
-, bluetooth-sensor-state-data
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, sensor-state-data
+{
+  lib,
+  bluetooth-data-tools,
+  bluetooth-sensor-state-data,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  sensor-state-data,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
       --replace " --cov=thermobeacon_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bluetooth-data-tools
@@ -38,13 +37,9 @@ buildPythonPackage rec {
     sensor-state-data
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "thermobeacon_ble"
-  ];
+  pythonImportsCheck = [ "thermobeacon_ble" ];
 
   meta = with lib; {
     description = "Library for Thermobeacon BLE devices";
diff --git a/pkgs/development/python-modules/thermopro-ble/default.nix b/pkgs/development/python-modules/thermopro-ble/default.nix
index 573047f99fe81..1308da2326172 100644
--- a/pkgs/development/python-modules/thermopro-ble/default.nix
+++ b/pkgs/development/python-modules/thermopro-ble/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, bluetooth-data-tools
-, bluetooth-sensor-state-data
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, sensor-state-data
+{
+  lib,
+  bluetooth-data-tools,
+  bluetooth-sensor-state-data,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  sensor-state-data,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-xaRbp9XLCDGJ0NE0TzJygn2OzqvSFszs97vGHawCkzU=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bluetooth-data-tools
@@ -33,18 +32,14 @@ buildPythonPackage rec {
     sensor-state-data
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace " --cov=thermopro_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  pythonImportsCheck = [
-    "thermopro_ble"
-  ];
+  pythonImportsCheck = [ "thermopro_ble" ];
 
   meta = with lib; {
     description = "Library for Thermopro BLE devices";
diff --git a/pkgs/development/python-modules/thespian/default.nix b/pkgs/development/python-modules/thespian/default.nix
index 564e7d73e6191..67a1906a3c032 100644
--- a/pkgs/development/python-modules/thespian/default.nix
+++ b/pkgs/development/python-modules/thespian/default.nix
@@ -1,4 +1,8 @@
-{ fetchPypi, buildPythonPackage, lib }:
+{
+  fetchPypi,
+  buildPythonPackage,
+  lib,
+}:
 
 buildPythonPackage rec {
   version = "3.10.7";
diff --git a/pkgs/development/python-modules/thinc/default.nix b/pkgs/development/python-modules/thinc/default.nix
index b62c408a77fb1..2c6dc71e6a88f 100644
--- a/pkgs/development/python-modules/thinc/default.nix
+++ b/pkgs/development/python-modules/thinc/default.nix
@@ -1,43 +1,44 @@
-{ lib
-, stdenv
-, Accelerate
-, blis
-, buildPythonPackage
-, catalogue
-, confection
-, CoreFoundation
-, CoreGraphics
-, CoreVideo
-, cymem
-, cython_0
-, fetchPypi
-, hypothesis
-, mock
-, murmurhash
-, numpy
-, plac
-, preshed
-, pydantic
-, pytestCheckHook
-, python
-, pythonOlder
-, setuptools
-, srsly
-, tqdm
-, typing-extensions
-, wasabi
+{
+  lib,
+  stdenv,
+  Accelerate,
+  blis,
+  buildPythonPackage,
+  catalogue,
+  confection,
+  CoreFoundation,
+  CoreGraphics,
+  CoreVideo,
+  cymem,
+  cython_0,
+  fetchPypi,
+  hypothesis,
+  mock,
+  murmurhash,
+  numpy,
+  plac,
+  preshed,
+  pydantic,
+  pytestCheckHook,
+  python,
+  pythonOlder,
+  setuptools,
+  srsly,
+  tqdm,
+  typing-extensions,
+  wasabi,
 }:
 
 buildPythonPackage rec {
   pname = "thinc";
-  version = "8.2.3";
+  version = "9.0.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-9a/FIikSqAvai9zslYNiorpTjXAn3I22FUhF0oWdynY=";
+    hash = "sha256-u+f8PcpPK4miwUKei/HJ3CCw+q0T8KwpBTu7PCUxrVc=";
   };
 
   postPatch = ''
@@ -45,18 +46,16 @@ buildPythonPackage rec {
       --replace "preshed>=3.0.2,<3.1.0" "preshed"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  buildInputs = [
-    cython_0
-  ] ++ lib.optionals stdenv.isDarwin [
-    Accelerate
-    CoreFoundation
-    CoreGraphics
-    CoreVideo
-  ];
+  buildInputs =
+    [ cython_0 ]
+    ++ lib.optionals stdenv.isDarwin [
+      Accelerate
+      CoreFoundation
+      CoreGraphics
+      CoreVideo
+    ];
 
   propagatedBuildInputs = [
     blis
@@ -71,9 +70,7 @@ buildPythonPackage rec {
     srsly
     tqdm
     wasabi
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   nativeCheckInputs = [
     hypothesis
@@ -90,9 +87,7 @@ buildPythonPackage rec {
     rm -r thinc
   '';
 
-  pythonImportsCheck = [
-    "thinc"
-  ];
+  pythonImportsCheck = [ "thinc" ];
 
   meta = with lib; {
     description = "Library for NLP machine learning";
diff --git a/pkgs/development/python-modules/thorlabspm100/default.nix b/pkgs/development/python-modules/thorlabspm100/default.nix
index 333105d0ad6f6..c88dab853f579 100644
--- a/pkgs/development/python-modules/thorlabspm100/default.nix
+++ b/pkgs/development/python-modules/thorlabspm100/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, unittestCheckHook
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  unittestCheckHook,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -17,17 +18,11 @@ buildPythonPackage rec {
     hash = "sha256-X4qEow6u4aE0sbFwZfK3YEso2RS0c9j4iaWJPHaPQV4=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  pythonImportsCheck = [
-    "ThorlabsPM100"
-  ];
+  pythonImportsCheck = [ "ThorlabsPM100" ];
 
   meta = with lib; {
     description = "Interface to the PM100A/D power meter from Thorlabs";
diff --git a/pkgs/development/python-modules/threadloop/default.nix b/pkgs/development/python-modules/threadloop/default.nix
index fdf0e3a08114a..9b548f1a9127b 100644
--- a/pkgs/development/python-modules/threadloop/default.nix
+++ b/pkgs/development/python-modules/threadloop/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-, tornado
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  tornado,
 }:
 
 buildPythonPackage rec {
@@ -14,16 +15,14 @@ buildPythonPackage rec {
     sha256 = "8b180aac31013de13c2ad5c834819771992d350267bddb854613ae77ef571944";
   };
 
-  propagatedBuildInputs = [
-    tornado
-  ];
+  propagatedBuildInputs = [ tornado ];
 
   doCheck = false; # ImportError: cannot import name 'ThreadLoop' from 'threadloop'
 
   pythonImportsCheck = [ "threadloop" ];
 
   meta = with lib; {
-    description = "A library to run tornado coroutines from synchronous Python";
+    description = "Library to run tornado coroutines from synchronous Python";
     homepage = "https://github.com/GoodPete/threadloop";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/threadpool/default.nix b/pkgs/development/python-modules/threadpool/default.nix
index 4b08fd7acef83..d3e0499b03546 100644
--- a/pkgs/development/python-modules/threadpool/default.nix
+++ b/pkgs/development/python-modules/threadpool/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -18,5 +19,4 @@ buildPythonPackage rec {
     description = "Easy to use object-oriented thread pool framework";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/threadpoolctl/default.nix b/pkgs/development/python-modules/threadpoolctl/default.nix
index a8d3cd41e6a86..14ae9cca78ce2 100644
--- a/pkgs/development/python-modules/threadpoolctl/default.nix
+++ b/pkgs/development/python-modules/threadpoolctl/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, flit-core
-, pytestCheckHook
-, numpy
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  flit-core,
+  pytestCheckHook,
+  numpy,
+  scipy,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-nWaBhiFw76azx6dV4I18XodiUnHiLb0gNNhXks6iHIg=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -47,9 +46,7 @@ buildPythonPackage rec {
     "test_threadpool_limits_manual_restore"
   ];
 
-  pythonImportsCheck = [
-    "threadpoolctl"
-  ];
+  pythonImportsCheck = [ "threadpoolctl" ];
 
   meta = with lib; {
     homepage = "https://github.com/joblib/threadpoolctl";
@@ -57,5 +54,4 @@ buildPythonPackage rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ bcdarwin ];
   };
-
 }
diff --git a/pkgs/development/python-modules/threat9-test-bed/default.nix b/pkgs/development/python-modules/threat9-test-bed/default.nix
index cb4f47e6496e3..8f4cc23d3e8ef 100644
--- a/pkgs/development/python-modules/threat9-test-bed/default.nix
+++ b/pkgs/development/python-modules/threat9-test-bed/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, click
-, faker
-, fetchFromGitHub
-, flask
-, gunicorn
-, pyopenssl
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
-, requests
+{
+  lib,
+  buildPythonPackage,
+  click,
+  faker,
+  fetchFromGitHub,
+  flask,
+  gunicorn,
+  pyopenssl,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-0YSjMf2gDdrvkDaT77iwfCkiDDXKHnZyI8d7JmBSuCg=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     click
@@ -39,13 +38,9 @@ buildPythonPackage rec {
     requests
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "threat9_test_bed"
-  ];
+  pythonImportsCheck = [ "threat9_test_bed" ];
 
   disabledTests = [
     # Assertion issue with the response codes
diff --git a/pkgs/development/python-modules/three-merge/default.nix b/pkgs/development/python-modules/three-merge/default.nix
index 18d9eea211e5d..c30c0a018d21e 100644
--- a/pkgs/development/python-modules/three-merge/default.nix
+++ b/pkgs/development/python-modules/three-merge/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, diff-match-patch }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  diff-match-patch,
+}:
 
 buildPythonPackage rec {
   pname = "three-merge";
diff --git a/pkgs/development/python-modules/thrift/default.nix b/pkgs/development/python-modules/thrift/default.nix
index 40f959122690a..f33ba9cfa2f64 100644
--- a/pkgs/development/python-modules/thrift/default.nix
+++ b/pkgs/development/python-modules/thrift/default.nix
@@ -1,20 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "thrift";
   version = "0.20.0";
-  format = "setuptools";
+  pyproject = true;
+
+  # Still uses distutils
+  disabled = pythonOlder "3.7" || pythonAtLeast "3.12";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-TdZi6t9riuvopBcpUnvWmt9s6qKoaBy+9k0Sc7Po/ro=";
   };
 
-  propagatedBuildInputs = [ six ];
+  build-system = [ setuptools ];
+
+  dependencies = [ six ];
 
   # No tests. Breaks when not disabling.
   doCheck = false;
diff --git a/pkgs/development/python-modules/thriftpy2/default.nix b/pkgs/development/python-modules/thriftpy2/default.nix
index e6a696dec9bb8..4a125dd1775bc 100644
--- a/pkgs/development/python-modules/thriftpy2/default.nix
+++ b/pkgs/development/python-modules/thriftpy2/default.nix
@@ -1,32 +1,34 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, ply
-, pythonOlder
-, six
-, tornado
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchFromGitHub,
+  ply,
+  pythonOlder,
+  six,
+  setuptools,
+  tornado,
 }:
 
 buildPythonPackage rec {
   pname = "thriftpy2";
-  version = "0.4.20";
-  format = "setuptools";
+  version = "0.5.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.6";
 
   src = fetchFromGitHub {
     owner = "Thriftpy";
-    repo = pname;
+    repo = "thriftpy2";
     rev = "refs/tags/v${version}";
-    hash = "sha256-IEYoSLaJUeQdwHaXR0UUlCZg5zBEh5Y2/IwB4RVEAcg=";
+    hash = "sha256-Pjy9OPwFfKaw+XVl7IbbAKPz050TlqI4+yLqSITOkSY=";
   };
 
-  nativeBuildInputs = [
-    cython
-  ];
+  build-system = [ setuptools ];
+
+  nativeBuildInputs = [ cython ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     ply
     six
     tornado
@@ -35,9 +37,7 @@ buildPythonPackage rec {
   # Not all needed files seems to be present
   doCheck = false;
 
-  pythonImportsCheck = [
-    "thriftpy2"
-  ];
+  pythonImportsCheck = [ "thriftpy2" ];
 
   meta = with lib; {
     description = "Python module for Apache Thrift";
diff --git a/pkgs/development/python-modules/throttler/default.nix b/pkgs/development/python-modules/throttler/default.nix
index dea390403592a..4dc15bffedae1 100644
--- a/pkgs/development/python-modules/throttler/default.nix
+++ b/pkgs/development/python-modules/throttler/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, aiohttp
-, codecov
-, flake8
-, pytest
-, pytest-asyncio
-, pytest-cov
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  aiohttp,
+  codecov,
+  flake8,
+  pytest,
+  pytest-asyncio,
+  pytest-cov,
 }:
 
 buildPythonPackage rec {
@@ -35,7 +36,7 @@ buildPythonPackage rec {
   pytestFlagsArray = [ "tests/" ];
 
   meta = with lib; {
-    description = "Zero-dependency Python package for easy throttling with asyncio support.";
+    description = "Zero-dependency Python package for easy throttling with asyncio support";
     homepage = "https://github.com/uburuntu/throttler";
     license = licenses.mit;
     maintainers = with maintainers; [ renatoGarcia ];
diff --git a/pkgs/development/python-modules/thttp/default.nix b/pkgs/development/python-modules/thttp/default.nix
index 0e42f2a0c23a7..afda125c5d4e6 100644
--- a/pkgs/development/python-modules/thttp/default.nix
+++ b/pkgs/development/python-modules/thttp/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-e15QMRMpTcWo8TfH3tk23ybSlXFb8F4B/eqAp9oyK8g=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "thttp"
-  ];
+  pythonImportsCheck = [ "thttp" ];
 
   meta = with lib; {
-    description = "A lightweight wrapper around urllib";
+    description = "Lightweight wrapper around urllib";
     homepage = "https://github.com/sesh/thttp";
     changelog = "https://github.com/sesh/thttp/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/tidalapi/default.nix b/pkgs/development/python-modules/tidalapi/default.nix
index edbe6ee398116..dcd27bffb2bcd 100644
--- a/pkgs/development/python-modules/tidalapi/default.nix
+++ b/pkgs/development/python-modules/tidalapi/default.nix
@@ -1,42 +1,45 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, python-dateutil
-, poetry-core
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python-dateutil,
+  poetry-core,
+  requests,
+  isodate,
+  ratelimit,
+  typing-extensions,
+  mpegdash,
 }:
-
 buildPythonPackage rec {
   pname = "tidalapi";
   version = "0.7.6";
-  format = "pyproject";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-X6U34T1sM4P+JFpOfcI7CmULcGZ4SCXwP2fFHKi1cWE=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     requests
     python-dateutil
+    mpegdash
+    isodate
+    ratelimit
+    typing-extensions
   ];
 
   doCheck = false; # tests require internet access
 
-  pythonImportsCheck = [
-    "tidalapi"
-  ];
+  pythonImportsCheck = [ "tidalapi" ];
 
-  meta = with lib; {
+  meta = {
     changelog = "https://github.com/tamland/python-tidal/releases/tag/v${version}";
     description = "Unofficial Python API for TIDAL music streaming service";
     homepage = "https://github.com/tamland/python-tidal";
-    license = licenses.gpl3;
-    maintainers = [ ];
+    license = lib.licenses.gpl3;
+    maintainers = with lib.maintainers; [ drawbu ];
   };
 }
diff --git a/pkgs/development/python-modules/tidyexc/default.nix b/pkgs/development/python-modules/tidyexc/default.nix
index 5e14812fe7bc6..71e62e6d8a94a 100644
--- a/pkgs/development/python-modules/tidyexc/default.nix
+++ b/pkgs/development/python-modules/tidyexc/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, flit
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  flit,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     sha256 = "1gl1jmihafawg7hvnn4xb20vd2x5qpvca0m1wr2gk0m2jj42yiq6";
   };
 
-  nativeBuildInputs = [
-    flit
-  ];
+  nativeBuildInputs = [ flit ];
 
-  pythonImportsCheck = [
-    "tidyexc"
-  ];
+  pythonImportsCheck = [ "tidyexc" ];
 
   meta = with lib; {
     description = "Raise rich, helpful exceptions";
diff --git a/pkgs/development/python-modules/tifffile/default.nix b/pkgs/development/python-modules/tifffile/default.nix
index 21931254d202e..edde349d41253 100644
--- a/pkgs/development/python-modules/tifffile/default.nix
+++ b/pkgs/development/python-modules/tifffile/default.nix
@@ -1,30 +1,29 @@
-{ lib
-, buildPythonPackage
-, dask
-, fetchPypi
-, fsspec
-, lxml
-, numpy
-, pytestCheckHook
-, pythonOlder
-, zarr
+{
+  lib,
+  buildPythonPackage,
+  dask,
+  fetchPypi,
+  fsspec,
+  lxml,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  zarr,
 }:
 
 buildPythonPackage rec {
   pname = "tifffile";
-  version = "2024.4.18";
+  version = "2024.6.18";
   format = "setuptools";
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-X/zXe513w6raEnhjGvXIrHiEOEUv2i6xubYNVVPpXII=";
+    hash = "sha256-V+DSoDS8tih+oxVdhxZQjfrIZEOiV/ZQK1fuf4ozs7Y=";
   };
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   nativeCheckInputs = [
     dask
@@ -51,9 +50,7 @@ buildPythonPackage rec {
     "test_issue_invalid_predictor"
   ];
 
-  pythonImportsCheck = [
-    "tifffile"
-  ];
+  pythonImportsCheck = [ "tifffile" ];
 
   # flaky, often killed due to OOM or timeout
   env.SKIP_LARGE = "1";
diff --git a/pkgs/development/python-modules/tika-client/default.nix b/pkgs/development/python-modules/tika-client/default.nix
index e148fce241635..ec9c4a0f4dd17 100644
--- a/pkgs/development/python-modules/tika-client/default.nix
+++ b/pkgs/development/python-modules/tika-client/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, hatchling
-, httpx
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  hatchling,
+  httpx,
 }:
 buildPythonPackage rec {
   pname = "tika-client";
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hatchling
     httpx
   ];
-  pythonImportsCheck = [
-    "tika_client"
-  ];
+  pythonImportsCheck = [ "tika_client" ];
   # Almost all of the tests (all except one in 0.1.0) fail since there
   # is no tika http API endpoint reachable. Since tika is not yet
   # packaged for nixpkgs, it seems like an unreasonable amount of effort
@@ -33,7 +32,7 @@ buildPythonPackage rec {
   doChecks = false;
 
   meta = with lib; {
-    description = "A modern Python REST client for Apache Tika server";
+    description = "Modern Python REST client for Apache Tika server";
     homepage = "https://github.com/stumpylog/tika-client";
     changelog = "https://github.com/stumpylog/tika-client/blob/${version}/CHANGELOG.md";
     license = licenses.mpl20;
diff --git a/pkgs/development/python-modules/tika/default.nix b/pkgs/development/python-modules/tika/default.nix
index f9a6458900847..8d2148523f814 100644
--- a/pkgs/development/python-modules/tika/default.nix
+++ b/pkgs/development/python-modules/tika/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyyaml
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyyaml,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -15,14 +16,17 @@ buildPythonPackage rec {
     hash = "sha256-VmcOuBKUTrJe1z8bOwdapB56E1t0skCCLyi4GeWzc9o=";
   };
 
-  propagatedBuildInputs = [ pyyaml requests ];
+  propagatedBuildInputs = [
+    pyyaml
+    requests
+  ];
 
   # Requires network
   doCheck = false;
   pythonImportsCheck = [ pname ];
 
   meta = with lib; {
-    description = "A Python binding to the Apache Tika™ REST services";
+    description = "Python binding to the Apache Tika™ REST services";
     mainProgram = "tika-python";
     homepage = "https://github.com/chrismattmann/tika-python";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/tiktoken/default.nix b/pkgs/development/python-modules/tiktoken/default.nix
index 3cf68063f1199..d7b8b6c1c631f 100644
--- a/pkgs/development/python-modules/tiktoken/default.nix
+++ b/pkgs/development/python-modules/tiktoken/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, rustPlatform
-, cargo
-, rustc
-, setuptools
-, setuptools-rust
-, wheel
-, libiconv
-, requests
-, regex
-, blobfile
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  rustPlatform,
+  cargo,
+  rustc,
+  setuptools,
+  setuptools-rust,
+  wheel,
+  libiconv,
+  requests,
+  regex,
+  blobfile,
 }:
 let
   pname = "tiktoken";
@@ -26,7 +27,12 @@ let
   '';
 in
 buildPythonPackage {
-  inherit pname version src postPatch;
+  inherit
+    pname
+    version
+    src
+    postPatch
+    ;
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -61,12 +67,10 @@ buildPythonPackage {
   # almost all tests require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "tiktoken"
-  ];
+  pythonImportsCheck = [ "tiktoken" ];
 
   meta = with lib; {
-    description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models.";
+    description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models";
     homepage = "https://github.com/openai/tiktoken";
     license = licenses.mit;
     maintainers = with maintainers; [ happysalada ];
diff --git a/pkgs/development/python-modules/tikzplotlib/default.nix b/pkgs/development/python-modules/tikzplotlib/default.nix
index 564d8e58b8ee0..e09c735f4c1f6 100644
--- a/pkgs/development/python-modules/tikzplotlib/default.nix
+++ b/pkgs/development/python-modules/tikzplotlib/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, matplotlib
-, numpy
-, pillow
-, webcolors
-, flit-core
-, pytestCheckHook
-, pandas
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  matplotlib,
+  numpy,
+  pillow,
+  webcolors,
+  flit-core,
+  pytestCheckHook,
+  pandas,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/tiledb/default.nix b/pkgs/development/python-modules/tiledb/default.nix
index 3231ae8036335..a9cfbc082c902 100644
--- a/pkgs/development/python-modules/tiledb/default.nix
+++ b/pkgs/development/python-modules/tiledb/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, python
-, buildPythonPackage
-, fetchFromGitHub
-, cython
-, pybind11
-, tiledb
-, numpy
-, wheel
-, isPy3k
-, setuptools-scm
-, psutil
-, pandas
+{
+  lib,
+  python,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cython,
+  pybind11,
+  tiledb,
+  numpy,
+  wheel,
+  isPy3k,
+  setuptools-scm,
+  psutil,
+  pandas,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  buildInputs = [
-    tiledb
-  ];
+  buildInputs = [ tiledb ];
 
   propagatedBuildInputs = [
     numpy
diff --git a/pkgs/development/python-modules/tilequant/default.nix b/pkgs/development/python-modules/tilequant/default.nix
index 906f644d89b11..e6f43890f5647 100644
--- a/pkgs/development/python-modules/tilequant/default.nix
+++ b/pkgs/development/python-modules/tilequant/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchPypi
-, ordered-set
-, pillow
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
-, setuptools-dso
-, sortedcollections
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchPypi,
+  ordered-set,
+  pillow,
+  pythonOlder,
+  setuptools,
+  setuptools-dso,
+  sortedcollections,
 }:
 
 buildPythonPackage rec {
@@ -23,12 +23,9 @@ buildPythonPackage rec {
     hash = "sha256-uW1g3nlT6Y+1beifo/MOlGxsGL7on/jcAROxSddySHk=";
   };
 
-  pythonRelaxDeps = [
-    "pillow"
-  ];
+  pythonRelaxDeps = [ "pillow" ];
 
   build-system = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -42,9 +39,7 @@ buildPythonPackage rec {
 
   doCheck = false; # there are no tests
 
-  pythonImportsCheck = [
-    "tilequant"
-  ];
+  pythonImportsCheck = [ "tilequant" ];
 
   meta = with lib; {
     description = "Tool for quantizing image colors using tile-based palette restrictions";
diff --git a/pkgs/development/python-modules/tiler/default.nix b/pkgs/development/python-modules/tiler/default.nix
index 9de7bc0ec92fa..40766f6436c6d 100644
--- a/pkgs/development/python-modules/tiler/default.nix
+++ b/pkgs/development/python-modules/tiler/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, setuptools
-, setuptools-scm
-, wheel
-, numpy
-, tqdm
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchpatch,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  numpy,
+  tqdm,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -40,9 +41,7 @@ buildPythonPackage rec {
     tqdm
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "tiler" ];
 
diff --git a/pkgs/development/python-modules/tilestache/default.nix b/pkgs/development/python-modules/tilestache/default.nix
index a33a219b1f02a..23fe0e26ea7cb 100644
--- a/pkgs/development/python-modules/tilestache/default.nix
+++ b/pkgs/development/python-modules/tilestache/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, modestmaps
-, pillow
-, pycairo
-, python-mapnik
-, simplejson
-, werkzeug
-, isPy27
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  modestmaps,
+  pillow,
+  pycairo,
+  python-mapnik,
+  simplejson,
+  werkzeug,
+  isPy27,
 }:
 
 buildPythonPackage rec {
@@ -22,12 +23,18 @@ buildPythonPackage rec {
     sha256 = "1qjrabl6qr7i6yj6v647ck92abcyklb0vmb6h6kj7x8v2cj5xbvk";
   };
 
-  propagatedBuildInputs = [ modestmaps pillow pycairo python-mapnik simplejson werkzeug ];
+  propagatedBuildInputs = [
+    modestmaps
+    pillow
+    pycairo
+    python-mapnik
+    simplejson
+    werkzeug
+  ];
 
   meta = with lib; {
-    description = "A tile server for rendered geographic data";
+    description = "Tile server for rendered geographic data";
     homepage = "http://tilestache.org";
     license = licenses.bsd3;
   };
-
 }
diff --git a/pkgs/development/python-modules/tilt-ble/default.nix b/pkgs/development/python-modules/tilt-ble/default.nix
index 1be167f9a88af..11c8961308b70 100644
--- a/pkgs/development/python-modules/tilt-ble/default.nix
+++ b/pkgs/development/python-modules/tilt-ble/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, bluetooth-sensor-state-data
-, buildPythonPackage
-, fetchFromGitHub
-, home-assistant-bluetooth
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, sensor-state-data
+{
+  lib,
+  bluetooth-sensor-state-data,
+  buildPythonPackage,
+  fetchFromGitHub,
+  home-assistant-bluetooth,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  sensor-state-data,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-ok9XWx47hcke535480NORfS1pSagaOJvMR48lYTa/Tg=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     bluetooth-sensor-state-data
@@ -33,18 +32,14 @@ buildPythonPackage rec {
     sensor-state-data
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace " --cov=tilt_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  pythonImportsCheck = [
-    "tilt_ble"
-  ];
+  pythonImportsCheck = [ "tilt_ble" ];
 
   meta = with lib; {
     description = "Library for Tilt BLE devices";
diff --git a/pkgs/development/python-modules/time-machine/default.nix b/pkgs/development/python-modules/time-machine/default.nix
index 6ce2e7194c8cd..8d2490f428e07 100644
--- a/pkgs/development/python-modules/time-machine/default.nix
+++ b/pkgs/development/python-modules/time-machine/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonAtLeast
-, pythonOlder
-, setuptools
-, backports-zoneinfo
-, python-dateutil
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
+  backports-zoneinfo,
+  python-dateutil,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -23,19 +24,13 @@ buildPythonPackage rec {
     hash = "sha256-SjenPLLr4JoWK5HAokwgW+bw3mfAZiuDb1N7Za5wtrw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     python-dateutil
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    backports-zoneinfo
-  ];
+  ] ++ lib.optionals (pythonOlder "3.9") [ backports-zoneinfo ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = lib.optionals (pythonAtLeast "3.9") [
     # https://github.com/adamchainz/time-machine/issues/405
@@ -47,9 +42,7 @@ buildPythonPackage rec {
     "test_move_to_datetime_with_tzinfo_zoneinfo"
   ];
 
-  pythonImportsCheck = [
-    "time_machine"
-  ];
+  pythonImportsCheck = [ "time_machine" ];
 
   meta = with lib; {
     changelog = "https://github.com/adamchainz/time-machine/blob/${src.rev}/CHANGELOG.rst";
diff --git a/pkgs/development/python-modules/timeago/default.nix b/pkgs/development/python-modules/timeago/default.nix
index 8f450d2c03a80..a1bd21cf16ae5 100644
--- a/pkgs/development/python-modules/timeago/default.nix
+++ b/pkgs/development/python-modules/timeago/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     sha256 = "sha256-PqORJKAVrjezU/yP2ky3gb1XsM8obDI3GQzi+mok/OM=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [ "test/testcase.py" ];
 
diff --git a/pkgs/development/python-modules/timecop/default.nix b/pkgs/development/python-modules/timecop/default.nix
index 443b609fb4c4f..8099f646606cb 100644
--- a/pkgs/development/python-modules/timecop/default.nix
+++ b/pkgs/development/python-modules/timecop/default.nix
@@ -31,7 +31,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "timecop" ];
 
   meta = with lib; {
-    description = "A port of the most excellent TimeCop Ruby Gem for Python";
+    description = "Port of the most excellent TimeCop Ruby Gem for Python";
     homepage = "https://github.com/bluekelp/pytimecop";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ zakame ];
diff --git a/pkgs/development/python-modules/timelib/default.nix b/pkgs/development/python-modules/timelib/default.nix
index 2667867505a6c..15e7251dd6a01 100644
--- a/pkgs/development/python-modules/timelib/default.nix
+++ b/pkgs/development/python-modules/timelib/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -14,14 +15,11 @@ buildPythonPackage rec {
     hash = "sha256-0bInBlVxhuYFjaiLoPhYN0AbKuneFX9ZNT3JeNglGHo=";
   };
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
   meta = with lib; {
     description = "Parse english textual date descriptions";
     homepage = "https://github.com/pediapress/timelib/";
     license = licenses.zlib;
   };
-
 }
diff --git a/pkgs/development/python-modules/timeout-decorator/default.nix b/pkgs/development/python-modules/timeout-decorator/default.nix
index 2907117d34836..ea7750dfc97e6 100644
--- a/pkgs/development/python-modules/timeout-decorator/default.nix
+++ b/pkgs/development/python-modules/timeout-decorator/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 buildPythonPackage rec {
   pname = "timeout-decorator";
   version = "0.5.0";
diff --git a/pkgs/development/python-modules/timeslot/default.nix b/pkgs/development/python-modules/timeslot/default.nix
index 1a71651ca0540..d1ac79f37995f 100644
--- a/pkgs/development/python-modules/timeslot/default.nix
+++ b/pkgs/development/python-modules/timeslot/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, poetry-core
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  poetry-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.6";
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [
     # The pyproject.toml specifies the flag `--cov=timeslot`,
diff --git a/pkgs/development/python-modules/timetagger/default.nix b/pkgs/development/python-modules/timetagger/default.nix
index 3edaa14529048..a775c3d01f25b 100644
--- a/pkgs/development/python-modules/timetagger/default.nix
+++ b/pkgs/development/python-modules/timetagger/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, stdenv
-, asgineer
-, bcrypt
-, buildPythonPackage
-, fetchFromGitHub
-, iptools
-, itemdb
-, jinja2
-, markdown
-, nodejs
-, pscript
-, pyjwt
-, pytestCheckHook
-, pythonOlder
-, requests
-, uvicorn
+{
+  lib,
+  stdenv,
+  asgineer,
+  bcrypt,
+  buildPythonPackage,
+  fetchFromGitHub,
+  iptools,
+  itemdb,
+  jinja2,
+  markdown,
+  nodejs,
+  pscript,
+  pyjwt,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  uvicorn,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/timezonefinder/default.nix b/pkgs/development/python-modules/timezonefinder/default.nix
index 79675ebc629ae..94482d760678e 100644
--- a/pkgs/development/python-modules/timezonefinder/default.nix
+++ b/pkgs/development/python-modules/timezonefinder/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cffi
-, h3
-, numba
-, numpy
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cffi,
+  h3,
+  numba,
+  numpy,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "timezonefinder";
-  version = "6.5.0";
+  version = "6.5.2";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -22,7 +23,7 @@ buildPythonPackage rec {
     owner = "jannikmi";
     repo = "timezonefinder";
     rev = "refs/tags/${version}";
-    hash = "sha256-V5g1zTdXWeJba71/eUGQbF9XOhMQuzivtGkqGD4OHMY=";
+    hash = "sha256-2vQk7aSsyyh3mN1l4A5Y5yASJ2V7e4fegsOExGwyhGA=";
   };
 
   nativeBuildInputs = [
@@ -42,9 +43,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "timezonefinder"
-  ];
+  pythonImportsCheck = [ "timezonefinder" ];
 
   preCheck = ''
     # Some tests need the CLI on the PATH
diff --git a/pkgs/development/python-modules/timing-asgi/default.nix b/pkgs/development/python-modules/timing-asgi/default.nix
index d1dc1ccc81b4e..30798baa5ba1e 100644
--- a/pkgs/development/python-modules/timing-asgi/default.nix
+++ b/pkgs/development/python-modules/timing-asgi/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, asynctest
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  asynctest,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     --replace-fail "poetry>=" "poetry-core>="
   '';
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   pythonImportsCheck = [ "timing_asgi" ];
 
diff --git a/pkgs/development/python-modules/timm/default.nix b/pkgs/development/python-modules/timm/default.nix
index 18ac893e9261d..a02c90152435a 100644
--- a/pkgs/development/python-modules/timm/default.nix
+++ b/pkgs/development/python-modules/timm/default.nix
@@ -1,38 +1,39 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pdm-backend
-, huggingface-hub
-, pyyaml
-, safetensors
-, torch
-, torchvision
-, expecttest
-, pytestCheckHook
-, pytest-timeout
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  pdm-backend,
+  huggingface-hub,
+  numpy,
+  pyyaml,
+  safetensors,
+  torch,
+  torchvision,
+  expecttest,
+  pytestCheckHook,
+  pytest-timeout,
 }:
 
 buildPythonPackage rec {
   pname = "timm";
-  version = "0.9.16";
+  version = "1.0.7";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "huggingface";
     repo = "pytorch-image-models";
     rev = "refs/tags/v${version}";
-    hash = "sha256-IWEDKuI2565Z07q1MxTpzKS+CROPR6SyaD5fKcQ5eXk=";
+    hash = "sha256-0o88gOZvHXblGPwyRIz2D3sD7wdg0J0knrAFlognEOY=";
   };
 
-  nativeBuildInputs = [
-    pdm-backend
-  ];
+  build-system = [ pdm-backend ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     huggingface-hub
+    numpy
     pyyaml
     safetensors
     torch
@@ -45,9 +46,7 @@ buildPythonPackage rec {
     pytest-timeout
   ];
 
-  pytestFlagsArray = [
-    "tests"
-  ];
+  pytestFlagsArray = [ "tests" ];
 
   disabledTestPaths = [
     # Takes too long and also tries to download models
@@ -64,11 +63,11 @@ buildPythonPackage rec {
     "timm.data"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "PyTorch image models, scripts, and pretrained weights";
     homepage = "https://huggingface.co/docs/timm/index";
     changelog = "https://github.com/huggingface/pytorch-image-models/blob/v${version}/README.md#whats-new";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ bcdarwin ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ bcdarwin ];
   };
 }
diff --git a/pkgs/development/python-modules/timy/default.nix b/pkgs/development/python-modules/timy/default.nix
new file mode 100644
index 0000000000000..3fb4096bb5196
--- /dev/null
+++ b/pkgs/development/python-modules/timy/default.nix
@@ -0,0 +1,28 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+  pname = "timy";
+  version = "0.4.2";
+
+  src = fetchFromGitHub {
+    owner = "ramonsaraiva";
+    repo = "timy";
+    rev = "36a97e55f058de002a0da4f2a8e18c00d944821c";
+    hash = "sha256-4Opaph8Q1tQH+C/Epur8AA26RN4vO944DjCg0zDJqxM=";
+  };
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Minimalist measurement of python code time";
+    homepage = "https://github.com/ramonsaraiva/timy";
+    license = licenses.mit;
+    maintainers = with maintainers; [ flandweber ];
+  };
+}
diff --git a/pkgs/development/python-modules/tiny-proxy/default.nix b/pkgs/development/python-modules/tiny-proxy/default.nix
index 9a319d90a1649..48c2bb04f6644 100644
--- a/pkgs/development/python-modules/tiny-proxy/default.nix
+++ b/pkgs/development/python-modules/tiny-proxy/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, anyio
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  anyio,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-59T09qcOstl/yfzQmNlTNxGerQethZntwDAHwz/5FFM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    anyio
-  ];
+  propagatedBuildInputs = [ anyio ];
 
   # The tests depend on httpx-socks, whose tests depend on tiny-proxy.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "tiny_proxy"
-  ];
+  pythonImportsCheck = [ "tiny_proxy" ];
 
   meta = with lib; {
     description = "SOCKS5/SOCKS4/HTTP proxy server";
diff --git a/pkgs/development/python-modules/tinycss/default.nix b/pkgs/development/python-modules/tinycss/default.nix
index aa537c6a61351..8d9d2bf4920cf 100644
--- a/pkgs/development/python-modules/tinycss/default.nix
+++ b/pkgs/development/python-modules/tinycss/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, cssutils
-, cython
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  cssutils,
+  cython,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,17 +24,11 @@ buildPythonPackage rec {
     sed -i "/--cov/d" setup.cfg
   '';
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
-  propagatedBuildInputs = [
-    cssutils
-  ];
+  propagatedBuildInputs = [ cssutils ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preBuild = ''
     # Force Cython to re-generate this file. If it is present, Cython will
@@ -46,9 +41,7 @@ buildPythonPackage rec {
   # Disable Cython tests
   TINYCSS_SKIP_SPEEDUPS_TESTS = true;
 
-  pythonImportsCheck = [
-    "tinycss"
-  ];
+  pythonImportsCheck = [ "tinycss" ];
 
   meta = with lib; {
     description = "Complete yet simple CSS parser for Python";
diff --git a/pkgs/development/python-modules/tinycss2/default.nix b/pkgs/development/python-modules/tinycss2/default.nix
index 5e6f441d3d3bd..730bbfc4f4d7f 100644
--- a/pkgs/development/python-modules/tinycss2/default.nix
+++ b/pkgs/development/python-modules/tinycss2/default.nix
@@ -1,26 +1,29 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, webencodings
-, pytestCheckHook
-, flit-core
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  webencodings,
+  pytestCheckHook,
+  flit-core,
 }:
 
 buildPythonPackage rec {
   pname = "tinycss2";
-  version = "1.2.1";
+  version = "1.3.0";
   format = "pyproject";
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.8";
 
   src = fetchFromGitHub {
     owner = "kozea";
     repo = "tinycss2";
-    rev = "refs/tags/v${version}";
+
+    # Tag v1.3.0 is missing the actual version number bump.
+    rev = "bda62b101530588718d931d61bcc343a628b9af9";
     # for tests
     fetchSubmodules = true;
-    hash = "sha256-rJtxMmW30NK+E+Dhh/fu6FPrEojWWdoEWNt0raYEubs=";
+    hash = "sha256-Exjxdm0VnnjHUKjquXsC/zDmwA7bELHdX1f55IGBjYk=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/tinydb/default.nix b/pkgs/development/python-modules/tinydb/default.nix
index 2786018b99adf..5ad3e1fb4cda6 100644
--- a/pkgs/development/python-modules/tinydb/default.nix
+++ b/pkgs/development/python-modules/tinydb/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pycodestyle
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pycodestyle,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-sdWcpkjC8LtOI1k0Wyk4vLXBcwYe1vuQON9J7P8JPxA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   postPatch = ''
     substituteInPlace pytest.ini \
diff --git a/pkgs/development/python-modules/tinygrad/default.nix b/pkgs/development/python-modules/tinygrad/default.nix
index 25b1f049bf697..cd322ecfacde9 100644
--- a/pkgs/development/python-modules/tinygrad/default.nix
+++ b/pkgs/development/python-modules/tinygrad/default.nix
@@ -1,50 +1,101 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, gpuctypes
-, numpy
-, tqdm
-, hypothesis
-, librosa
-, onnx
-, pillow
-, pytest-xdist
-, pytestCheckHook
-, safetensors
-, sentencepiece
-, tiktoken
-, torch
-, transformers
+{
+  lib,
+  config,
+  buildPythonPackage,
+  fetchFromGitHub,
+  substituteAll,
+  addDriverRunpath,
+  cudaSupport ? config.cudaSupport,
+  rocmSupport ? config.rocmSupport,
+  cudaPackages,
+  ocl-icd,
+  stdenv,
+  rocmPackages,
+  # build-system
+  setuptools,
+  wheel,
+  # dependencies
+  numpy,
+  tqdm,
+  # nativeCheckInputs
+  clang,
+  hexdump,
+  hypothesis,
+  librosa,
+  onnx,
+  pillow,
+  pytest-xdist,
+  pytestCheckHook,
+  safetensors,
+  sentencepiece,
+  tiktoken,
+  torch,
+  transformers,
 }:
 
 buildPythonPackage rec {
   pname = "tinygrad";
-  version = "0.8.0";
+  version = "0.9.0";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "tinygrad";
     repo = "tinygrad";
     rev = "refs/tags/v${version}";
-    hash = "sha256-QAccZ79qUbe27yUykIf22WdkxYUlOffnMlShakKfp60=";
+    hash = "sha256-opBxciETZruZjHqz/3vO7rogzjvVJKItulIiok/Zs2Y=";
   };
 
-  nativeBuildInputs = [
+  patches = [
+    (substituteAll {
+      src = ./fix-dlopen-cuda.patch;
+      inherit (addDriverRunpath) driverLink;
+      libnvrtc =
+        if cudaSupport then
+          "${lib.getLib cudaPackages.cuda_nvrtc}/lib/libnvrtc.so"
+        else
+          "Please import nixpkgs with `config.cudaSupport = true`";
+    })
+  ];
+
+  postPatch =
+    ''
+      substituteInPlace tinygrad/runtime/autogen/opencl.py \
+        --replace-fail "ctypes.util.find_library('OpenCL')" "'${ocl-icd}/lib/libOpenCL.so'"
+    ''
+    # hipGetDevicePropertiesR0600 is a symbol from rocm-6. We are currently at rocm-5.
+    # We are not sure that this works. Remove when rocm gets updated to version 6.
+    + lib.optionalString rocmSupport ''
+      substituteInPlace extra/hip_gpu_driver/hip_ioctl.py \
+        --replace-fail "processor = platform.processor()" "processor = ${stdenv.hostPlatform.linuxArch}"
+      substituteInPlace tinygrad/runtime/autogen/hip.py \
+        --replace-fail "/opt/rocm/lib/libamdhip64.so" "${rocmPackages.clr}/lib/libamdhip64.so" \
+        --replace-fail "/opt/rocm/lib/libhiprtc.so" "${rocmPackages.clr}/lib/libhiprtc.so" \
+        --replace-fail "hipGetDevicePropertiesR0600" "hipGetDeviceProperties"
+
+      substituteInPlace tinygrad/runtime/autogen/comgr.py \
+        --replace-fail "/opt/rocm/lib/libamd_comgr.so" "${rocmPackages.rocm-comgr}/lib/libamd_comgr.so"
+    '';
+
+  build-system = [
     setuptools
     wheel
   ];
 
-  propagatedBuildInputs = [
-    gpuctypes
-    numpy
-    tqdm
-  ];
+  dependencies =
+    [
+      numpy
+      tqdm
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # pyobjc-framework-libdispatch
+      # pyobjc-framework-metal
+    ];
 
   pythonImportsCheck = [ "tinygrad" ];
 
   nativeCheckInputs = [
+    clang
+    hexdump
     hypothesis
     librosa
     onnx
@@ -62,50 +113,68 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  disabledTests = [
-    # Require internet access
-    "test_benchmark_openpilot_model"
-    "test_bn_alone"
-    "test_bn_linear"
-    "test_bn_mnist"
-    "test_car"
-    "test_chicken"
-    "test_chicken_bigbatch"
-    "test_conv_mnist"
-    "testCopySHMtoDefault"
-    "test_data_parallel_resnet"
-    "test_e2e_big"
-    "test_fetch_small"
-    "test_huggingface_enet_safetensors"
-    "test_linear_mnist"
-    "test_load_convnext"
-    "test_load_enet"
-    "test_load_enet_alt"
-    "test_load_llama2bfloat"
-    "test_load_resnet"
-    "test_openpilot_model"
-    "test_resnet"
-    "test_shufflenet"
-    "test_transcribe_batch12"
-    "test_transcribe_batch21"
-    "test_transcribe_file1"
-    "test_transcribe_file2"
-    "test_transcribe_long"
-    "test_transcribe_long_no_batch"
-    "test_vgg7"
-  ];
+  disabledTests =
+    [
+      # Require internet access
+      "test_benchmark_openpilot_model"
+      "test_bn_alone"
+      "test_bn_linear"
+      "test_bn_mnist"
+      "test_car"
+      "test_chicken"
+      "test_chicken_bigbatch"
+      "test_conv_mnist"
+      "testCopySHMtoDefault"
+      "test_data_parallel_resnet"
+      "test_e2e_big"
+      "test_fetch_small"
+      "test_huggingface_enet_safetensors"
+      "test_linear_mnist"
+      "test_load_convnext"
+      "test_load_enet"
+      "test_load_enet_alt"
+      "test_load_llama2bfloat"
+      "test_load_resnet"
+      "test_openpilot_model"
+      "test_resnet"
+      "test_shufflenet"
+      "test_transcribe_batch12"
+      "test_transcribe_batch21"
+      "test_transcribe_file1"
+      "test_transcribe_file2"
+      "test_transcribe_long"
+      "test_transcribe_long_no_batch"
+      "test_vgg7"
+    ]
+    # Fail on aarch64-linux with AssertionError
+    ++ lib.optionals (stdenv.hostPlatform.system == "aarch64-linux") [
+      "test_casts_to"
+      "test_casts_to"
+      "test_int8_to_uint16_negative"
+      "test_casts_to"
+      "test_casts_to"
+      "test_casts_from"
+      "test_casts_to"
+      "test_int8"
+      "test_casts_to"
+    ];
 
-  disabledTestPaths = [
-    "test/extra/test_lr_scheduler.py"
-    "test/models/test_mnist.py"
-    "test/models/test_real_world.py"
-  ];
+  disabledTestPaths =
+    [
+      # Require internet access
+      "test/models/test_mnist.py"
+      "test/models/test_real_world.py"
+      "test/testextra/test_lr_scheduler.py"
+    ]
+    ++ lib.optionals (!rocmSupport) [ "extra/hip_gpu_driver/" ];
 
   meta = with lib; {
-    description = "A simple and powerful neural network framework";
+    description = "Simple and powerful neural network framework";
     homepage = "https://github.com/tinygrad/tinygrad";
     changelog = "https://github.com/tinygrad/tinygrad/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ GaetanLepage ];
+    # Requires unpackaged pyobjc-framework-libdispatch and pyobjc-framework-metal
+    broken = stdenv.isDarwin;
   };
 }
diff --git a/pkgs/development/python-modules/gpuctypes/fix-dlopen-cuda.patch b/pkgs/development/python-modules/tinygrad/fix-dlopen-cuda.patch
index 8d3b69e35e110..6b77173b4eccf 100644
--- a/pkgs/development/python-modules/gpuctypes/fix-dlopen-cuda.patch
+++ b/pkgs/development/python-modules/tinygrad/fix-dlopen-cuda.patch
@@ -1,9 +1,9 @@
-diff --git a/gpuctypes/cuda.py b/gpuctypes/cuda.py
-index acba81c..aac5fc7 100644
---- a/gpuctypes/cuda.py
-+++ b/gpuctypes/cuda.py
-@@ -143,9 +143,25 @@ def char_pointer_cast(string, encoding='utf-8'):
- 
+diff --git a/tinygrad/runtime/autogen/cuda.py b/tinygrad/runtime/autogen/cuda.py
+index 359083a9..3cd5f7be 100644
+--- a/tinygrad/runtime/autogen/cuda.py
++++ b/tinygrad/runtime/autogen/cuda.py
+@@ -143,10 +143,25 @@ def char_pointer_cast(string, encoding='utf-8'):
+     return ctypes.cast(string, ctypes.POINTER(ctypes.c_char))
  
  
 +NAME_TO_PATHS = {
@@ -19,9 +19,9 @@ index acba81c..aac5fc7 100644
 +        try:
 +            return ctypes.CDLL(candidate)
 +        except OSError:
-+	     pass
++	        pass
 +    raise RuntimeError(f"{name} not found")
-+
+ 
  _libraries = {}
 -_libraries['libcuda.so'] = ctypes.CDLL(ctypes.util.find_library('cuda'))
 -_libraries['libnvrtc.so'] = ctypes.CDLL(ctypes.util.find_library('nvrtc'))
diff --git a/pkgs/development/python-modules/tinyobjloader-py/default.nix b/pkgs/development/python-modules/tinyobjloader-py/default.nix
index 21dc0a5f4ddf2..1d0b621c482dd 100644
--- a/pkgs/development/python-modules/tinyobjloader-py/default.nix
+++ b/pkgs/development/python-modules/tinyobjloader-py/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, pybind11, tinyobjloader }:
+{
+  lib,
+  buildPythonPackage,
+  pybind11,
+  tinyobjloader,
+}:
 
 buildPythonPackage rec {
   pname = "tinyobjloader-py";
@@ -16,7 +21,10 @@ buildPythonPackage rec {
   doCheck = false;
   pythonImportsCheck = [ "tinyobjloader" ];
 
-  meta = with lib; tinyobjloader.meta // {
-    description = "Python wrapper for the C++ wavefront .obj loader tinyobjloader";
-  };
+  meta =
+    with lib;
+    tinyobjloader.meta
+    // {
+      description = "Python wrapper for the C++ wavefront .obj loader tinyobjloader";
+    };
 }
diff --git a/pkgs/development/python-modules/tinyrecord/default.nix b/pkgs/development/python-modules/tinyrecord/default.nix
index 025ffdeefd495..137d386a652f9 100644
--- a/pkgs/development/python-modules/tinyrecord/default.nix
+++ b/pkgs/development/python-modules/tinyrecord/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, tinydb
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  tinydb,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
     tinydb
   ];
 
-  pytestFlagsArray = [
-    "tests.py"
-  ];
+  pytestFlagsArray = [ "tests.py" ];
 
-  pythonImportsCheck = [
-    "tinyrecord"
-  ];
+  pythonImportsCheck = [ "tinyrecord" ];
 
   meta = with lib; {
     description = "Transaction support for TinyDB";
diff --git a/pkgs/development/python-modules/tinysegmenter/default.nix b/pkgs/development/python-modules/tinysegmenter/default.nix
index 2b56544061b70..788332d379e8c 100644
--- a/pkgs/development/python-modules/tinysegmenter/default.nix
+++ b/pkgs/development/python-modules/tinysegmenter/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-, unittestCheckHook
+  unittestCheckHook,
 
-, setuptools
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,15 +18,14 @@ buildPythonPackage rec {
     hash = "sha256-ZEWL26VLp0gsAseF+WDPPWz2FZSk2rPWTDJUOQlPwbc=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [ "-s" "tests" ];
+  unittestFlagsArray = [
+    "-s"
+    "tests"
+  ];
 
   pythonImportsCheck = [ "tinysegmenter" ];
 
diff --git a/pkgs/development/python-modules/tinytuya/default.nix b/pkgs/development/python-modules/tinytuya/default.nix
new file mode 100644
index 0000000000000..cb9b37a01a84d
--- /dev/null
+++ b/pkgs/development/python-modules/tinytuya/default.nix
@@ -0,0 +1,47 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  cryptography,
+  requests,
+  colorama,
+}:
+
+buildPythonPackage rec {
+  pname = "tinytuya";
+  version = "1.14.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "jasonacox";
+    repo = "tinytuya";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ytM7S0V/hDOCb3RyzAXZEd2zV/sMVQPrah/2zRACMsQ=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [
+    cryptography
+    requests
+    colorama
+  ];
+
+  # Tests require real network resources
+  doCheck = false;
+
+  pythonImportsCheck = [ "tinytuya" ];
+
+  meta = with lib; {
+    description = "Python API for Tuya WiFi smart devices using a direct local area network (LAN) connection or the cloud (TuyaCloud API)";
+    homepage = "https://github.com/jasonacox/tinytuya";
+    changelog = "https://github.com/jasonacox/tinytuya/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ pathob ];
+  };
+}
diff --git a/pkgs/development/python-modules/tissue/default.nix b/pkgs/development/python-modules/tissue/default.nix
index 3c5b1a452b5d3..f716c1b715f89 100644
--- a/pkgs/development/python-modules/tissue/default.nix
+++ b/pkgs/development/python-modules/tissue/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-, pep8
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+  pep8,
 }:
 
 buildPythonPackage rec {
@@ -24,5 +25,4 @@ buildPythonPackage rec {
     license = licenses.lgpl2;
     maintainers = with maintainers; [ domenkozar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/titlecase/default.nix b/pkgs/development/python-modules/titlecase/default.nix
index 73d6f7b8876db..813fe48eb0745 100644
--- a/pkgs/development/python-modules/titlecase/default.nix
+++ b/pkgs/development/python-modules/titlecase/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, regex
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  regex,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -21,25 +22,15 @@ buildPythonPackage rec {
     hash = "sha256-aJbbfNnQvmmYPXVOO+xx7ADetsxE+jnVQOVDzV5jUp8=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    regex
-  ];
+  propagatedBuildInputs = [ regex ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "titlecase/tests.py"
-  ];
+  pytestFlagsArray = [ "titlecase/tests.py" ];
 
-  pythonImportsCheck = [
-    "titlecase"
-  ];
+  pythonImportsCheck = [ "titlecase" ];
 
   meta = with lib; {
     description = "Python library to capitalize strings as specified by the New York Times";
diff --git a/pkgs/development/python-modules/tkinter/default.nix b/pkgs/development/python-modules/tkinter/default.nix
index ccfc729070145..beba9834e703c 100644
--- a/pkgs/development/python-modules/tkinter/default.nix
+++ b/pkgs/development/python-modules/tkinter/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, python
-, py
-, isPyPy
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  python,
+  py,
+  isPyPy,
 }:
 
 buildPythonPackage {
@@ -14,20 +15,22 @@ buildPythonPackage {
 
   disabled = isPyPy;
 
-  installPhase = ''
-    # Move the tkinter module
-    mkdir -p $out/${py.sitePackages}
-    mv lib/${py.libPrefix}/lib-dynload/_tkinter* $out/${py.sitePackages}/
-  '' + 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" )
-    patchelf --set-rpath $new_rpath $out/${py.sitePackages}/_tkinter*
-  '';
+  installPhase =
+    ''
+      # Move the tkinter module
+      mkdir -p $out/${py.sitePackages}
+      mv lib/${py.libPrefix}/lib-dynload/_tkinter* $out/${py.sitePackages}/
+    ''
+    + 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" )
+      patchelf --set-rpath $new_rpath $out/${py.sitePackages}/_tkinter*
+    '';
 
   meta = py.meta // {
     # Based on first sentence from https://docs.python.org/3/library/tkinter.html
-    description = "The standard Python interface to the Tcl/Tk GUI toolkit";
+    description = "Standard Python interface to the Tcl/Tk GUI toolkit";
     longDescription = ''
       The tkinter package (“Tk interface”) is the standard Python interface to
       the Tcl/Tk GUI toolkit. Both Tk and tkinter are available on most Unix
@@ -50,5 +53,4 @@ buildPythonPackage {
       documentation for details that are unchanged.
     '';
   };
-
 }
diff --git a/pkgs/development/python-modules/tld/default.nix b/pkgs/development/python-modules/tld/default.nix
index 8ec2c85d63a16..e6507b54c994c 100644
--- a/pkgs/development/python-modules/tld/default.nix
+++ b/pkgs/development/python-modules/tld/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, factory-boy
-, faker
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  factory-boy,
+  faker,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     sed -i "/--cov/d" pytest.ini
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   checkInputs = [
     factory-boy
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     echo > src/tld/tests/test_commands.py
   '';
 
-  pythonImportsCheck = [
-    "tld"
-  ];
+  pythonImportsCheck = [ "tld" ];
 
   meta = with lib; {
     description = "Extracts the top level domain (TLD) from the URL given";
@@ -50,7 +47,11 @@ buildPythonPackage rec {
     changelog = "https://github.com/barseghyanartur/tld/blob/${version}/CHANGELOG.rst";
     # 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 ];
+    license = with licenses; [
+      lgpl21Plus
+      mpl11
+      gpl2Only
+    ];
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/tldextract/default.nix b/pkgs/development/python-modules/tldextract/default.nix
index 2aab849ae5f0d..a4044fc8a0ced 100644
--- a/pkgs/development/python-modules/tldextract/default.nix
+++ b/pkgs/development/python-modules/tldextract/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, filelock
-, idna
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-file
-, responses
-, setuptools
-, setuptools-scm
-, syrupy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  filelock,
+  idna,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-file,
+  responses,
+  setuptools,
+  setuptools-scm,
+  syrupy,
 }:
 
 buildPythonPackage rec {
@@ -47,9 +48,7 @@ buildPythonPackage rec {
     syrupy
   ];
 
-  pythonImportsCheck = [
-    "tldextract"
-  ];
+  pythonImportsCheck = [ "tldextract" ];
 
   meta = with lib; {
     description = "Python module to accurately separate the TLD from the domain of an URL";
diff --git a/pkgs/development/python-modules/tlds/default.nix b/pkgs/development/python-modules/tlds/default.nix
index 3967781bb0f8f..b1248d18b283b 100644
--- a/pkgs/development/python-modules/tlds/default.nix
+++ b/pkgs/development/python-modules/tlds/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -16,20 +17,16 @@ buildPythonPackage rec {
     hash = "sha256-rmKqY7Z4bBR4r+w4gH04g0Xm9N7QeMVcuFR3pB/pOQY=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "tlds"
-  ];
+  pythonImportsCheck = [ "tlds" ];
 
   # no tests
   doCheck = false;
 
   meta = with lib; {
     description = "Automatically updated list of valid TLDs taken directly from IANA";
-    homepage = "https://github.com/mweinelt/tlds";
+    homepage = "https://github.com/kichik/tlds";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
   };
diff --git a/pkgs/development/python-modules/tls-client/default.nix b/pkgs/development/python-modules/tls-client/default.nix
index 77e7a2f3e55c1..aea819eaca8e7 100644
--- a/pkgs/development/python-modules/tls-client/default.nix
+++ b/pkgs/development/python-modules/tls-client/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, typing-extensions
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  typing-extensions,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-0eH9fA/oQzrgXcQilUdg4AaTqezj1Q9hP9olhZEDeBc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ typing-extensions ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "tls_client"
-  ];
+  pythonImportsCheck = [ "tls_client" ];
 
   meta = with lib; {
     description = "Advanced HTTP Library";
diff --git a/pkgs/development/python-modules/tls-parser/default.nix b/pkgs/development/python-modules/tls-parser/default.nix
index c9b317c3c22b1..9c5cc5724f196 100644
--- a/pkgs/development/python-modules/tls-parser/default.nix
+++ b/pkgs/development/python-modules/tls-parser/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, pythonOlder
-, fetchFromGitHub
-, buildPythonPackage
-, pytestCheckHook
+{
+  lib,
+  pythonOlder,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-2XHhUDiJ1EctnYdxYFbNSVLF8dmHP9cZXjziOE9+Dew=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "tls_parser"
-  ];
+  pythonImportsCheck = [ "tls_parser" ];
 
   meta = with lib; {
     description = "Small library to parse TLS records";
diff --git a/pkgs/development/python-modules/tlsh/default.nix b/pkgs/development/python-modules/tlsh/default.nix
index a64fd4fd79c2a..8bc321100aeba 100644
--- a/pkgs/development/python-modules/tlsh/default.nix
+++ b/pkgs/development/python-modules/tlsh/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cmake
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cmake,
 }:
 
 buildPythonPackage rec {
@@ -31,5 +32,4 @@ buildPythonPackage rec {
     license = licenses.asl20;
     platforms = platforms.unix;
   };
-
 }
diff --git a/pkgs/development/python-modules/tlslite-ng/default.nix b/pkgs/development/python-modules/tlslite-ng/default.nix
index 467a50a4027e5..450f40234378a 100644
--- a/pkgs/development/python-modules/tlslite-ng/default.nix
+++ b/pkgs/development/python-modules/tlslite-ng/default.nix
@@ -1,7 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, ecdsa
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
+  ecdsa,
 }:
 
 buildPythonPackage rec {
@@ -9,6 +11,9 @@ buildPythonPackage rec {
   version = "0.7.6";
   format = "setuptools";
 
+  # https://github.com/tlsfuzzer/tlslite-ng/issues/501
+  disabled = pythonAtLeast "3.12";
+
   src = fetchPypi {
     inherit pname version;
     sha256 = "6ab56f0e9629ce3d807eb528c9112defa9f2e00af2b2961254e8429ca5c1ff00";
@@ -17,10 +22,9 @@ buildPythonPackage rec {
   buildInputs = [ ecdsa ];
 
   meta = with lib; {
-    description = "Pure python implementation of SSL and TLS.";
+    description = "Pure python implementation of SSL and TLS";
     homepage = "https://pypi.python.org/pypi/tlslite-ng";
     license = licenses.lgpl2;
     maintainers = [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/tlslite/default.nix b/pkgs/development/python-modules/tlslite/default.nix
index 52b662be2b2e4..069377735f6b9 100644
--- a/pkgs/development/python-modules/tlslite/default.nix
+++ b/pkgs/development/python-modules/tlslite/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -13,9 +14,8 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "A pure Python implementation of SSL and TLS";
+    description = "Pure Python implementation of SSL and TLS";
     homepage = "https://pypi.python.org/pypi/tlslite";
     license = licenses.bsd3;
   };
-
 }
diff --git a/pkgs/development/python-modules/tlv8/default.nix b/pkgs/development/python-modules/tlv8/default.nix
index 05ece63e42e0a..4e3045ddff503 100644
--- a/pkgs/development/python-modules/tlv8/default.nix
+++ b/pkgs/development/python-modules/tlv8/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     sha256 = "sha256-G35xMFYasKD3LnGi9q8wBmmFvqgtg0HPdC+y82nxRWA=";
   };
 
-  checkInputs = [
-    pytestCheckHook
-  ];
+  checkInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "tlv8"
-  ];
+  pythonImportsCheck = [ "tlv8" ];
 
   meta = with lib; {
     description = "Type-Length-Value8 (TLV8) for Python";
diff --git a/pkgs/development/python-modules/tmb/default.nix b/pkgs/development/python-modules/tmb/default.nix
index 1c5869ac53773..9c97153d9d22d 100644
--- a/pkgs/development/python-modules/tmb/default.nix
+++ b/pkgs/development/python-modules/tmb/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +22,9 @@ buildPythonPackage rec {
 
   VERSION = version;
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
-  pythonImportsCheck = [
-    "tmb"
-  ];
+  pythonImportsCheck = [ "tmb" ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/todoist-api-python/default.nix b/pkgs/development/python-modules/todoist-api-python/default.nix
index 823fee06a4ac4..1c4ff4eafcd8e 100644
--- a/pkgs/development/python-modules/todoist-api-python/default.nix
+++ b/pkgs/development/python-modules/todoist-api-python/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, requests
-, responses
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -33,13 +34,9 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -47,9 +44,7 @@ buildPythonPackage rec {
     responses
   ];
 
-  pythonImportsCheck = [
-    "todoist_api_python"
-  ];
+  pythonImportsCheck = [ "todoist_api_python" ];
 
   meta = with lib; {
     description = "Library for the Todoist REST API";
diff --git a/pkgs/development/python-modules/todoist/default.nix b/pkgs/development/python-modules/todoist/default.nix
index d3d93e79946b7..e276725a53a89 100644
--- a/pkgs/development/python-modules/todoist/default.nix
+++ b/pkgs/development/python-modules/todoist/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, requests
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  requests,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-Rkg6eSLiQe8DZaVu2DEnlKLe8RLkRwKmpw+TaYj+lp0=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
-  pythonImportsCheck = [
-    "todoist"
-  ];
+  pythonImportsCheck = [ "todoist" ];
 
   meta = with lib; {
-    description = "The official Todoist Python API library";
+    description = "Official Todoist Python API library";
     homepage = "https://todoist-python.readthedocs.io/";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/token-bucket/default.nix b/pkgs/development/python-modules/token-bucket/default.nix
index 0805ee9dea39e..a2a9b7a04e7c0 100644
--- a/pkgs/development/python-modules/token-bucket/default.nix
+++ b/pkgs/development/python-modules/token-bucket/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -36,13 +37,9 @@ buildPythonPackage rec {
       --replace "'pytest-runner'" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   doCheck = !stdenv.isDarwin;
 
diff --git a/pkgs/development/python-modules/tokenize-rt/default.nix b/pkgs/development/python-modules/tokenize-rt/default.nix
index 662f96479834e..1634f76813630 100644
--- a/pkgs/development/python-modules/tokenize-rt/default.nix
+++ b/pkgs/development/python-modules/tokenize-rt/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, lib
-, fetchFromGitHub
-, isPy27
-, setuptools
-, pytestCheckHook
+{
+  buildPythonPackage,
+  lib,
+  fetchFromGitHub,
+  isPy27,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,16 +21,12 @@ buildPythonPackage rec {
     hash = "sha256-G4Dn6iZLVOovzfEt9eMzp93mTX+bo0tHI5cCbaJLxBQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A wrapper around the stdlib `tokenize` which roundtrips";
+    description = "Wrapper around the stdlib `tokenize` which roundtrips";
     mainProgram = "tokenize-rt";
     homepage = "https://github.com/asottile/tokenize-rt";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/tokenizers/default.nix b/pkgs/development/python-modules/tokenizers/default.nix
index 92d55ef4a235c..cda6f1b7a58ef 100644
--- a/pkgs/development/python-modules/tokenizers/default.nix
+++ b/pkgs/development/python-modules/tokenizers/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, stdenv
-, linkFarm
-, buildPythonPackage
-, cargo
-, datasets
-, huggingface-hub
-, fetchFromGitHub
-, fetchurl
-, libiconv
-, numpy
-, openssl
-, pkg-config
-, pytestCheckHook
-, python
-, pythonOlder
-, requests
-, rustPlatform
-, rustc
-, Security
-, setuptools-rust
+{
+  lib,
+  stdenv,
+  linkFarm,
+  buildPythonPackage,
+  cargo,
+  datasets,
+  huggingface-hub,
+  fetchFromGitHub,
+  fetchurl,
+  libiconv,
+  numpy,
+  openssl,
+  pkg-config,
+  pytestCheckHook,
+  python,
+  pythonOlder,
+  requests,
+  rustPlatform,
+  rustc,
+  Security,
+  setuptools-rust,
 }:
 
 let
@@ -77,9 +78,7 @@ buildPythonPackage rec {
     hash = "sha256-sKEAt46cdme821tzz9WSKnQb3hPmFJ4zvHgBNRxjEuk=";
   };
 
-  cargoDeps = rustPlatform.importCargoLock {
-    lockFile = ./Cargo.lock;
-  };
+  cargoDeps = rustPlatform.importCargoLock { lockFile = ./Cargo.lock; };
 
   sourceRoot = "${src.name}/bindings/python";
   maturinBuildFlags = [ "--interpreter ${python.executable}" ];
@@ -93,18 +92,12 @@ buildPythonPackage rec {
     rustc
   ];
 
-  buildInputs = [
-    openssl
-  ] ++ lib.optionals stdenv.isDarwin [
-    libiconv
-    Security
-  ];
-
-  # Cargo.lock is outdated
-  # TODO: remove at next release
-  preConfigure = ''
-    cargo update --offline
-  '';
+  buildInputs =
+    [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [
+      libiconv
+      Security
+    ];
 
   dependencies = [
     numpy
@@ -127,9 +120,7 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d);
   '';
 
-  pythonImportsCheck = [
-    "tokenizers"
-  ];
+  pythonImportsCheck = [ "tokenizers" ];
 
   disabledTests = [
     # Downloads data using the datasets module
diff --git a/pkgs/development/python-modules/tokenlib/default.nix b/pkgs/development/python-modules/tokenlib/default.nix
index f417235613818..59a19b81a3f92 100644
--- a/pkgs/development/python-modules/tokenlib/default.nix
+++ b/pkgs/development/python-modules/tokenlib/default.nix
@@ -1,28 +1,46 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, webob
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  webob,
+  fetchpatch,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "tokenlib";
-  version = "0.3.1";
-  format = "setuptools";
+  version = "2.0.0";
+
+  pyproject = true;
+  build-system = [ setuptools ];
 
   src = fetchFromGitHub {
     owner = "mozilla-services";
-    repo = pname;
-    rev = "refs/tags/${version}";
-    sha256 = "0bq6dqyfwh29pg8ngmrm4mx4q27an9lsj0p9l79p9snn4g2rxzc8";
+    repo = "tokenlib";
+    rev = "${version}";
+    hash = "sha256-+KybaLb4XAcuBARJUhL5gK71jfNMb8YL8dV5Vzf7yXI=";
   };
 
-  propagatedBuildInputs = [ requests webob ];
+  patches = [
+    # fix wrong function name in tests
+    # See https://github.com/mozilla-services/tokenlib/pull/9
+    (fetchpatch {
+      url = "https://github.com/mozilla-services/tokenlib/pull/9/commits/cb7ef761f82f36e40069bd1b8684eec05af3b8a3.patch";
+      hash = "sha256-hc+iydxZu9bFqBD0EQDWMkRs2ibqNAhx6Qxjh6ppKNw=";
+    })
+  ];
+
+  dependencies = [
+    requests
+    webob
+  ];
+
+  pythonImportsCheck = [ "tokenlib" ];
 
   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/pkgs/development/python-modules/tokentrim/default.nix b/pkgs/development/python-modules/tokentrim/default.nix
index 9588fadd6cb52..0482ba5e110e4 100644
--- a/pkgs/development/python-modules/tokentrim/default.nix
+++ b/pkgs/development/python-modules/tokentrim/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, tiktoken
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  tiktoken,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-zr2SLT3MBuMD98g9fdS0mLuijcssRQ/S3+tCq2Cw1/4=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    tiktoken
-  ];
+  propagatedBuildInputs = [ tiktoken ];
 
   pythonImportsCheck = [ "tokentrim" ];
 
diff --git a/pkgs/development/python-modules/tololib/default.nix b/pkgs/development/python-modules/tololib/default.nix
index ed530f95d1915..03bb2f2ea81e7 100644
--- a/pkgs/development/python-modules/tololib/default.nix
+++ b/pkgs/development/python-modules/tololib/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitLab
-, fetchpatch
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitLab,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -21,33 +22,25 @@ buildPythonPackage rec {
     hash = "sha256-TxWKV2nrnCxZmj6+wBDMSdJRvKV+MsPFbOyIlUJYJ3Q=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools-scm ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export PATH="$PATH:$out/bin";
   '';
 
-  disabledTests = [
-    # Test requires network access
-    "test_discovery"
-  ];
+  pythonImportsCheck = [ "tololib" ];
 
-  pythonImportsCheck = [
-    "tololib"
-  ];
+  # Network discovery doesn't work in the sandbox for darwin
+  doCheck = !stdenv.isDarwin;
 
   meta = with lib; {
     description = "Python Library for Controlling TOLO Sauna/Steam Bath Devices";
-    mainProgram = "tolo-cli";
     homepage = "https://gitlab.com/MatthiasLohr/tololib";
     changelog = "https://gitlab.com/MatthiasLohr/tololib/-/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "tolo-cli";
   };
 }
diff --git a/pkgs/development/python-modules/toml-adapt/default.nix b/pkgs/development/python-modules/toml-adapt/default.nix
index 6af7f0940ed20..8d6184cbc5738 100644
--- a/pkgs/development/python-modules/toml-adapt/default.nix
+++ b/pkgs/development/python-modules/toml-adapt/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, toml
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  toml,
 }:
 
 buildPythonPackage rec {
@@ -22,25 +23,19 @@ buildPythonPackage rec {
     hash = "sha256-KD5dTr/wxFbDg3AbfE0jUbgNjvxqDmbHwjY5Dmp6JFI=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     click
     toml
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "toml_adapt"
-  ];
+  pythonImportsCheck = [ "toml_adapt" ];
 
   meta = with lib; {
-    description = "A simple Command-line interface for manipulating toml files";
+    description = "Simple Command-line interface for manipulating toml files";
     homepage = "https://github.com/firefly-cpp/toml-adapt";
     changelog = "https://github.com/firefly-cpp/toml-adapt/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/toml/default.nix b/pkgs/development/python-modules/toml/default.nix
index aa12d2936c42b..883bfeaeed6db 100644
--- a/pkgs/development/python-modules/toml/default.nix
+++ b/pkgs/development/python-modules/toml/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "toml";
@@ -16,7 +20,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "a Python library for parsing and creating TOML";
+    description = "Python library for parsing and creating TOML";
     homepage = "https://github.com/uiri/toml";
     license = licenses.mit;
     maintainers = with maintainers; [ twey ];
diff --git a/pkgs/development/python-modules/tomli-w/default.nix b/pkgs/development/python-modules/tomli-w/default.nix
index 920063fd10ebf..c864dfe142656 100644
--- a/pkgs/development/python-modules/tomli-w/default.nix
+++ b/pkgs/development/python-modules/tomli-w/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, callPackage
-, fetchFromGitHub
-, flit-core
+{
+  lib,
+  buildPythonPackage,
+  callPackage,
+  fetchFromGitHub,
+  flit-core,
 }:
 
 buildPythonPackage rec {
@@ -22,7 +23,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "tomli_w" ];
 
   meta = with lib; {
-    description = "A write-only counterpart to Tomli, which is a read-only TOML parser";
+    description = "Write-only counterpart to Tomli, which is a read-only TOML parser";
     homepage = "https://github.com/hukkin/tomli-w";
     license = licenses.mit;
     maintainers = with maintainers; [ lovesegfault ];
diff --git a/pkgs/development/python-modules/tomli/default.nix b/pkgs/development/python-modules/tomli/default.nix
index b2de1c0dfdeb2..74a9f78b2e4ba 100644
--- a/pkgs/development/python-modules/tomli/default.nix
+++ b/pkgs/development/python-modules/tomli/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, callPackage
-, fetchFromGitHub
-, flit-core
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  callPackage,
+  fetchFromGitHub,
+  flit-core,
+  unittestCheckHook,
 
   # important downstream dependencies
-, flit
-, black
-, mypy
-, setuptools-scm
+  flit,
+  black,
+  mypy,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -32,11 +33,16 @@ buildPythonPackage rec {
 
   passthru.tests = {
     # test downstream dependencies
-    inherit flit black mypy setuptools-scm;
+    inherit
+      flit
+      black
+      mypy
+      setuptools-scm
+      ;
   };
 
   meta = with lib; {
-    description = "A Python library for parsing TOML, fully compatible with TOML v1.0.0";
+    description = "Python library for parsing TOML, fully compatible with TOML v1.0.0";
     homepage = "https://github.com/hukkin/tomli";
     license = licenses.mit;
     maintainers = with maintainers; [ veehaitch ];
diff --git a/pkgs/development/python-modules/tomlkit/default.nix b/pkgs/development/python-modules/tomlkit/default.nix
index 94f63be259a6c..85f9ed273b7d5 100644
--- a/pkgs/development/python-modules/tomlkit/default.nix
+++ b/pkgs/development/python-modules/tomlkit/default.nix
@@ -1,28 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# build-system
-, poetry-core
+  # build-system
+  poetry-core,
 
-# tests
-, pytestCheckHook
-, pyyaml
+  # tests
+  pytestCheckHook,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
   pname = "tomlkit";
-  version = "0.12.4";
+  version = "0.12.5";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-fKHPwSIygGUXqFFQR7pmoZNp5x7fJDnQ9YJPkQMrbMM=";
+    hash = "sha256-7vNPujmDTU1rc8m6fz5NHEF6Tlb4mn6W4JDdDSS4+zw=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     pyyaml
diff --git a/pkgs/development/python-modules/toolz/default.nix b/pkgs/development/python-modules/toolz/default.nix
index d11a02a02b7bd..4d4e0a71c74d6 100644
--- a/pkgs/development/python-modules/toolz/default.nix
+++ b/pkgs/development/python-modules/toolz/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/toonapi/default.nix b/pkgs/development/python-modules/toonapi/default.nix
index ac51cae1c805d..97cfb696c7b5d 100644
--- a/pkgs/development/python-modules/toonapi/default.nix
+++ b/pkgs/development/python-modules/toonapi/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, backoff
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, yarl
+{
+  lib,
+  aiohttp,
+  backoff,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "toonapi"
-  ];
+  pythonImportsCheck = [ "toonapi" ];
 
   meta = with lib; {
     description = "Python client for the Quby ToonAPI";
diff --git a/pkgs/development/python-modules/toposort/default.nix b/pkgs/development/python-modules/toposort/default.nix
index 5270da85f4a96..f7d1a069434a9 100644
--- a/pkgs/development/python-modules/toposort/default.nix
+++ b/pkgs/development/python-modules/toposort/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -14,16 +15,12 @@ buildPythonPackage rec {
     hash = "sha256-v7tHnFPQppbqdAJgH05pPJewNng3yImLxkca38o3pr0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "toposort"
-  ];
+  pythonImportsCheck = [ "toposort" ];
 
   meta = with lib; {
-    description = "A topological sort algorithm";
+    description = "Topological sort algorithm";
     homepage = "https://pypi.python.org/pypi/toposort/";
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
diff --git a/pkgs/development/python-modules/torch-audiomentations/default.nix b/pkgs/development/python-modules/torch-audiomentations/default.nix
index 5a849752586be..2a9985ce91b49 100644
--- a/pkgs/development/python-modules/torch-audiomentations/default.nix
+++ b/pkgs/development/python-modules/torch-audiomentations/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, julius
-, librosa
-, torch
-, torchaudio
-, torch-pitch-shift
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  julius,
+  librosa,
+  torch,
+  torchaudio,
+  torch-pitch-shift,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/torch-pitch-shift/default.nix b/pkgs/development/python-modules/torch-pitch-shift/default.nix
index 2d9aa146abb9a..f6d35338dad8b 100644
--- a/pkgs/development/python-modules/torch-pitch-shift/default.nix
+++ b/pkgs/development/python-modules/torch-pitch-shift/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, wheel
-, packaging
-, primepy
-, torch
-, torchaudio
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  packaging,
+  primepy,
+  torch,
+  torchaudio,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/torch-tb-profiler/default.nix b/pkgs/development/python-modules/torch-tb-profiler/default.nix
index 108acfb0d355d..005c9f375455c 100644
--- a/pkgs/development/python-modules/torch-tb-profiler/default.nix
+++ b/pkgs/development/python-modules/torch-tb-profiler/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, pandas
-, pytestCheckHook
-, torch
-, tensorboard
-, torchvision
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  pandas,
+  pytestCheckHook,
+  torch,
+  tensorboard,
+  torchvision,
 }:
 
 let
@@ -25,9 +26,16 @@ buildPythonPackage rec {
   # See https://discourse.nixos.org/t/extracting-sub-directory-from-fetchgit-or-fetchurl-or-any-derivation/8830.
   src = "${repo}/tb_plugin";
 
-  propagatedBuildInputs = [ pandas tensorboard ];
+  propagatedBuildInputs = [
+    pandas
+    tensorboard
+  ];
 
-  nativeCheckInputs = [ pytestCheckHook torch torchvision ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    torch
+    torchvision
+  ];
 
   disabledTests = [
     # Tests that attempt to access the filesystem in naughty ways.
diff --git a/pkgs/development/python-modules/torch/bin.nix b/pkgs/development/python-modules/torch/bin.nix
index d92767b87d4b2..f9d5cd97c183a 100644
--- a/pkgs/development/python-modules/torch/bin.nix
+++ b/pkgs/development/python-modules/torch/bin.nix
@@ -1,32 +1,35 @@
-{ lib, stdenv
-, buildPythonPackage
-, autoAddDriverRunpath
-, fetchurl
-, python
-, pythonAtLeast
-, pythonOlder
-, addOpenGLRunpath
-, cudaPackages
-, future
-, numpy
-, autoPatchelfHook
-, pyyaml
-, requests
-, setuptools
-, typing-extensions
-, sympy
-, jinja2
-, networkx
-, filelock
-, openai-triton
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  autoAddDriverRunpath,
+  fetchurl,
+  python,
+  pythonAtLeast,
+  pythonOlder,
+  addOpenGLRunpath,
+  cudaPackages,
+  future,
+  numpy,
+  autoPatchelfHook,
+  pyyaml,
+  requests,
+  setuptools,
+  typing-extensions,
+  sympy,
+  jinja2,
+  networkx,
+  filelock,
+  openai-triton,
 }:
 
 let
   pyVerNoDot = builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
   srcs = import ./binary-hashes.nix version;
   unsupported = throw "Unsupported system";
-  version = "2.2.2";
-in buildPythonPackage {
+  version = "2.3.1";
+in
+buildPythonPackage {
   inherit version;
 
   pname = "torch";
@@ -34,7 +37,7 @@ in buildPythonPackage {
 
   format = "wheel";
 
-  disabled = (pythonOlder "3.8") || (pythonAtLeast "3.12");
+  disabled = (pythonOlder "3.8") || (pythonAtLeast "3.13");
 
   src = fetchurl srcs."${stdenv.system}-${pyVerNoDot}" or unsupported;
 
@@ -44,22 +47,25 @@ in buildPythonPackage {
     autoAddDriverRunpath
   ];
 
-  buildInputs = lib.optionals stdenv.isLinux (with cudaPackages; [
-    # $out/${sitePackages}/nvfuser/_C*.so wants libnvToolsExt.so.1 but torch/lib only ships
-    # libnvToolsExt-$hash.so.1
-    cuda_nvtx
-
-    cuda_cudart
-    cuda_cupti
-    cuda_nvrtc
-    cudnn
-    libcublas
-    libcufft
-    libcurand
-    libcusolver
-    libcusparse
-    nccl
-  ]);
+  buildInputs = lib.optionals stdenv.isLinux (
+    with cudaPackages;
+    [
+      # $out/${sitePackages}/nvfuser/_C*.so wants libnvToolsExt.so.1 but torch/lib only ships
+      # libnvToolsExt-$hash.so.1
+      cuda_nvtx
+
+      cuda_cudart
+      cuda_cupti
+      cuda_nvrtc
+      cudnn
+      libcublas
+      libcufft
+      libcurand
+      libcusolver
+      libcusparse
+      nccl
+    ]
+  );
 
   autoPatchelfIgnoreMissingDeps = lib.optionals stdenv.isLinux [
     # This is the hardware-dependent userspace driver that comes from
@@ -69,7 +75,7 @@ in buildPythonPackage {
     "libcuda.so.1"
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     future
     numpy
     pyyaml
@@ -80,9 +86,7 @@ in buildPythonPackage {
     jinja2
     networkx
     filelock
-  ] ++ lib.optionals (stdenv.isLinux && stdenv.isx86_64) [
-    openai-triton
-  ];
+  ] ++ lib.optionals (stdenv.isLinux && stdenv.isx86_64) [ openai-triton ];
 
   postInstall = ''
     # ONNX conversion
@@ -93,12 +97,29 @@ in buildPythonPackage {
     addAutoPatchelfSearchPath "$out/${python.sitePackages}/torch/lib"
   '';
 
+  # See https://github.com/NixOS/nixpkgs/issues/296179
+  #
+  # This is a quick hack to add `libnvrtc` to the runpath so that torch can find
+  # it when it is needed at runtime.
+  extraRunpaths = lib.optionals stdenv.hostPlatform.isLinux [ "${lib.getLib cudaPackages.cuda_nvrtc}/lib" ];
+  postPhases = lib.optionals stdenv.isLinux [ "postPatchelfPhase" ];
+  postPatchelfPhase = ''
+    while IFS= read -r -d $'\0' elf ; do
+      for extra in $extraRunpaths ; do
+        echo patchelf "$elf" --add-rpath "$extra" >&2
+        patchelf "$elf" --add-rpath "$extra"
+      done
+    done < <(
+      find "''${!outputLib}" "$out" -type f -iname '*.so' -print0
+    )
+  '';
+
   # The wheel-binary is not stripped to avoid the error of `ImportError: libtorch_cuda_cpp.so: ELF load command address/offset not properly aligned.`.
   dontStrip = true;
 
   pythonImportsCheck = [ "torch" ];
 
-  meta = with lib; {
+  meta = {
     description = "PyTorch: Tensors and Dynamic neural networks in Python with strong GPU acceleration";
     homepage = "https://pytorch.org/";
     changelog = "https://github.com/pytorch/pytorch/releases/tag/v${version}";
@@ -107,10 +128,18 @@ in buildPythonPackage {
     # https://www.intel.com/content/www/us/en/developer/articles/license/onemkl-license-faq.html
     # torch's license is BSD3.
     # torch-bin used to vendor CUDA. It still links against CUDA and MKL.
-    license = with licenses; [ bsd3 issl unfreeRedistributable ];
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    platforms = [ "aarch64-darwin" "aarch64-linux" "x86_64-darwin" "x86_64-linux" ];
-    hydraPlatforms = []; # output size 3.2G on 1.11.0
-    maintainers = with maintainers; [ junjihashimoto ];
+    license = with lib.licenses; [
+      bsd3
+      issl
+      unfreeRedistributable
+    ];
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    platforms = [
+      "aarch64-darwin"
+      "aarch64-linux"
+      "x86_64-linux"
+    ];
+    hydraPlatforms = [ ]; # output size 3.2G on 1.11.0
+    maintainers = with lib.maintainers; [ junjihashimoto ];
   };
 }
diff --git a/pkgs/development/python-modules/torch/binary-hashes.nix b/pkgs/development/python-modules/torch/binary-hashes.nix
index 8cd3bccc121cd..8d41a4c1eeca3 100644
--- a/pkgs/development/python-modules/torch/binary-hashes.nix
+++ b/pkgs/development/python-modules/torch/binary-hashes.nix
@@ -5,87 +5,83 @@
 
 # To add a new version, run "prefetch.sh 'new-version'" to paste the generated file as follows.
 
-version : builtins.getAttr version {
-  "2.2.2" = {
+version:
+builtins.getAttr version {
+  "2.3.1" = {
     x86_64-linux-38 = {
-      name = "torch-2.2.2-cp38-cp38-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torch-2.2.2%2Bcu121-cp38-cp38-linux_x86_64.whl";
-      hash = "sha256-wXi+srsB93NgF3e8SBx2Ub5bHxic8YDwwKzqwHiaqaU=";
+      name = "torch-2.3.1-cp38-cp38-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp38-cp38-linux_x86_64.whl";
+      hash = "sha256-TkEPNC/YbHO+oO0kVQnV/15od72lSySfdaM9U1yHfy8=";
     };
     x86_64-linux-39 = {
-      name = "torch-2.2.2-cp39-cp39-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torch-2.2.2%2Bcu121-cp39-cp39-linux_x86_64.whl";
-      hash = "sha256-EU6TlYZ+6GAWZWLYzB8oCSJfnil4PdXnIXXZqaeoUFw=";
+      name = "torch-2.3.1-cp39-cp39-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp39-cp39-linux_x86_64.whl";
+      hash = "sha256-3+phA2LA4qX/KNMi1qpl1l4D4TNJlhGaWjdwx9GCGsQ=";
     };
     x86_64-linux-310 = {
-      name = "torch-2.2.2-cp310-cp310-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torch-2.2.2%2Bcu121-cp310-cp310-linux_x86_64.whl";
-      hash = "sha256-yt5P1sjOfYJtvPq9ZfHVOw7goFjbjBgJ1lv9YFG1VTA=";
+      name = "torch-2.3.1-cp310-cp310-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp310-cp310-linux_x86_64.whl";
+      hash = "sha256-8N610vkypo7VRiW6FA7dvyryK+l47hm5tjyYat1kJbI=";
     };
     x86_64-linux-311 = {
-      name = "torch-2.2.2-cp311-cp311-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torch-2.2.2%2Bcu121-cp311-cp311-linux_x86_64.whl";
-      hash = "sha256-TJTk0aItcKu9/3Ft7Jm6Xv+UtDQP+nO0+2KflA27inU=";
+      name = "torch-2.3.1-cp311-cp311-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp311-cp311-linux_x86_64.whl";
+      hash = "sha256-kl40rwkFBipItPgtDmZWNBrU1iaDSmqCRe9OruU3XJg=";
     };
-    x86_64-darwin-38 = {
-      name = "torch-2.2.2-cp38-none-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp38-none-macosx_10_9_x86_64.whl";
-      hash = "sha256-gVF29iyPN8z7shCBwHaaiLG6pptxaRGapCtl7l8QTi0=";
-    };
-    x86_64-darwin-39 = {
-      name = "torch-2.2.2-cp39-none-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp39-none-macosx_10_9_x86_64.whl";
-      hash = "sha256-8TdigY3CgP7KfjD2CZWhe6jR0asz/vttB/0sj/FXHqo=";
-    };
-    x86_64-darwin-310 = {
-      name = "torch-2.2.2-cp310-none-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp310-none-macosx_10_9_x86_64.whl";
-      hash = "sha256-5nfE102wz8KxCSPeG95XXZgculRQXdwIKwUI2WQRmFA=";
-    };
-    x86_64-darwin-311 = {
-      name = "torch-2.2.2-cp311-none-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp311-none-macosx_10_9_x86_64.whl";
-      hash = "sha256-QwDLu00EKMUbXBlBkBaQGNW4GP2fb6/Ci76P2E3tF0A=";
+    x86_64-linux-312 = {
+      name = "torch-2.3.1-cp312-cp312-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torch-2.3.1%2Bcu121-cp312-cp312-linux_x86_64.whl";
+      hash = "sha256-s8WG9Ksl6D7//M+5cHnpEyUym8IoFmVVxLuTlXdT1Oo=";
     };
     aarch64-darwin-38 = {
-      name = "torch-2.2.2-cp38-none-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp38-none-macosx_11_0_arm64.whl";
-      hash = "sha256-7RTSpDZEIEkDg9JveQCj99XFDDLlzf3d3/+Dd22eD9Q=";
+      name = "torch-2.3.1-cp38-none-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp38-none-macosx_11_0_arm64.whl";
+      hash = "sha256-vuC9M9xYqo/Ip1J4dum5oOgSrQgSIFSlv/LOWr8AWxA=";
     };
     aarch64-darwin-39 = {
-      name = "torch-2.2.2-cp39-none-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp39-none-macosx_11_0_arm64.whl";
-      hash = "sha256-/q2//ddjTP40Xqh9fuQDGzAPnHZFIFkOA0idZYtpMds=";
+      name = "torch-2.3.1-cp39-none-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp39-none-macosx_11_0_arm64.whl";
+      hash = "sha256-K7WveAxVvmj+EA/rBSjS7eus4dVcsuNR3nNYCbpzkes=";
     };
     aarch64-darwin-310 = {
-      name = "torch-2.2.2-cp310-none-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp310-none-macosx_11_0_arm64.whl";
-      hash = "sha256-tSDRTS8oEK1dp1i+oQyveXjvNkNWW8APkN6JLgDXeSU=";
+      name = "torch-2.3.1-cp310-none-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp310-none-macosx_11_0_arm64.whl";
+      hash = "sha256-fAmpQ2J3hChIS8+ZX2AEsElSEGruDvRf8LS6tIT1SY0=";
     };
     aarch64-darwin-311 = {
-      name = "torch-2.2.2-cp311-none-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp311-none-macosx_11_0_arm64.whl";
-      hash = "sha256-gipYlnXLqKzwRX1qTltspEGtO0w6RKHLyPizGueWRF4=";
+      name = "torch-2.3.1-cp311-none-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp311-none-macosx_11_0_arm64.whl";
+      hash = "sha256-p91O04itHz1QK/CUU9X+WWx7Eh3n4M+soeIBd4Lpu6w=";
+    };
+    aarch64-darwin-312 = {
+      name = "torch-2.3.1-cp312-none-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp312-none-macosx_11_0_arm64.whl";
+      hash = "sha256-PDM9wuvBiVYVFO2gboHfIr+Ptk4jhHRrLLnwT5bR1Mg=";
     };
     aarch64-linux-38 = {
-      name = "torch-2.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      hash = "sha256-mJTc3W71tbYDzYzqPjcR+eJ3CC/3sPFLFSb90ay4JSE=";
+      name = "torch-2.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      hash = "sha256-O3wUmPkE9n6x4zHy6+h0J3GiznG57pvAHelnJX6IHH0=";
     };
     aarch64-linux-39 = {
-      name = "torch-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      hash = "sha256-1dhev9E/fNA+UGMlP4R57RpXBSZBZtXdH8abS5YjGyA=";
+      name = "torch-2.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      hash = "sha256-22v/S6YnO1muRD3gS1rcNtakC7KJiGYTO/8tUvJ26v4=";
     };
     aarch64-linux-310 = {
-      name = "torch-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      hash = "sha256-OiwHUhgIHvnHv4xVxwbyNtrrt1PaQd5JispxYyVzgL0=";
+      name = "torch-2.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      hash = "sha256-ZUT98pAYZowKbUobzJVZgsGtpwgGKBsBDLqTvc+9zyI=";
     };
     aarch64-linux-311 = {
-      name = "torch-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torch-2.2.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
-      hash = "sha256-WUgt9dxA2uEF5z9I3Sk/TMxndkCCLCzjQnOjh1SZA64=";
+      name = "torch-2.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      hash = "sha256-Kq8ON3NMvF/mv8yBraNuy7iZ1N2+E0mL2EqsqKkchig=";
+    };
+    aarch64-linux-312 = {
+      name = "torch-2.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torch-2.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl";
+      hash = "sha256-d9LeGklaHAf1ksM4oNWS5VzAudL4ADCeRqDqLA46KRk=";
     };
   };
 }
diff --git a/pkgs/development/python-modules/torch/default.nix b/pkgs/development/python-modules/torch/default.nix
index 3bd019375046c..752a6dc28eb58 100644
--- a/pkgs/development/python-modules/torch/default.nix
+++ b/pkgs/development/python-modules/torch/default.nix
@@ -1,25 +1,41 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, buildPythonPackage, python,
-  config, cudaSupport ? config.cudaSupport, cudaPackages,
+{
+  stdenv,
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  python,
+  config,
+  cudaSupport ? config.cudaSupport,
+  cudaPackages,
   autoAddDriverRunpath,
   effectiveMagma ?
-  if cudaSupport then magma-cuda-static
-  else if rocmSupport then magma-hip
-  else magma,
+    if cudaSupport then
+      magma-cuda-static
+    else if rocmSupport then
+      magma-hip
+    else
+      magma,
   magma,
   magma-hip,
   magma-cuda-static,
   # Use the system NCCL as long as we're targeting CUDA on a supported platform.
   useSystemNccl ? (cudaSupport && !cudaPackages.nccl.meta.unsupported || rocmSupport),
-  MPISupport ? false, mpi,
+  MPISupport ? false,
+  mpi,
   buildDocs ? false,
 
   # Native build inputs
-  cmake, linkFarm, symlinkJoin, which, pybind11, removeReferencesTo,
-  pythonRelaxDepsHook,
+  cmake,
+  symlinkJoin,
+  which,
+  pybind11,
+  removeReferencesTo,
 
   # Build inputs
   numactl,
-  Accelerate, CoreServices, libobjc,
+  Accelerate,
+  CoreServices,
+  libobjc,
 
   # Propagated build inputs
   astunparse,
@@ -28,12 +44,18 @@
   jinja2,
   networkx,
   sympy,
-  numpy, pyyaml, cffi, click, typing-extensions,
+  numpy,
+  pyyaml,
+  cffi,
+  click,
+  typing-extensions,
   # ROCm build and `torch.compile` requires `openai-triton`
-  tritonSupport ? (!stdenv.isDarwin), openai-triton,
+  tritonSupport ? (!stdenv.isDarwin),
+  openai-triton,
 
   # Unit tests
-  hypothesis, psutil,
+  hypothesis,
+  psutil,
 
   # Disable MKLDNN on aarch64-darwin, it negatively impacts performance,
   # this is also what official pytorch build does
@@ -47,18 +69,27 @@
   ninja,
 
   # dependencies for torch.utils.tensorboard
-  pillow, six, future, tensorboard, protobuf,
+  pillow,
+  six,
+  future,
+  tensorboard,
+  protobuf,
 
   pythonOlder,
 
   # ROCm dependencies
   rocmSupport ? config.rocmSupport,
   rocmPackages_5,
-  gpuTargets ? [ ]
+  gpuTargets ? [ ],
 }:
 
 let
-  inherit (lib) attrsets lists strings trivial;
+  inherit (lib)
+    attrsets
+    lists
+    strings
+    trivial
+    ;
   inherit (cudaPackages) cudaFlags cudnn nccl;
 
   rocmPackages = rocmPackages_5;
@@ -68,7 +99,24 @@ let
   # https://github.com/pytorch/pytorch/blob/v2.0.1/torch/utils/cpp_extension.py#L1744
   supportedTorchCudaCapabilities =
     let
-      real = ["3.5" "3.7" "5.0" "5.2" "5.3" "6.0" "6.1" "6.2" "7.0" "7.2" "7.5" "8.0" "8.6" "8.7" "8.9" "9.0"];
+      real = [
+        "3.5"
+        "3.7"
+        "5.0"
+        "5.2"
+        "5.3"
+        "6.0"
+        "6.1"
+        "6.2"
+        "7.0"
+        "7.2"
+        "7.5"
+        "8.0"
+        "8.6"
+        "8.7"
+        "8.9"
+        "9.0"
+      ];
       ptx = lists.map (x: "${x}+PTX") real;
     in
     real ++ ptx;
@@ -82,18 +130,17 @@ let
   unsupportedCudaCapabilities = lists.subtractLists supportedCudaCapabilities cudaFlags.cudaCapabilities;
 
   # Use trivial.warnIf to print a warning if any unsupported GPU targets are specified.
-  gpuArchWarner = supported: unsupported:
-    trivial.throwIf (supported == [ ])
-      (
-        "No supported GPU targets specified. Requested GPU targets: "
-        + strings.concatStringsSep ", " unsupported
-      )
-      supported;
+  gpuArchWarner =
+    supported: unsupported:
+    trivial.throwIf (supported == [ ]) (
+      "No supported GPU targets specified. Requested GPU targets: "
+      + strings.concatStringsSep ", " unsupported
+    ) supported;
 
   # Create the gpuTargetString.
   gpuTargetString = strings.concatStringsSep ";" (
     if gpuTargets != [ ] then
-    # If gpuTargets is specified, it always takes priority.
+      # If gpuTargets is specified, it always takes priority.
       gpuTargets
     else if cudaSupport then
       gpuArchWarner supportedCudaCapabilities unsupportedCudaCapabilities
@@ -107,11 +154,31 @@ let
     name = "rocm-merged";
 
     paths = with rocmPackages; [
-      rocm-core clr rccl miopen miopengemm rocrand rocblas
-      rocsparse hipsparse rocthrust rocprim hipcub roctracer
-      rocfft rocsolver hipfft hipsolver hipblas
-      rocminfo rocm-thunk rocm-comgr rocm-device-libs
-      rocm-runtime clr.icd hipify
+      rocm-core
+      clr
+      rccl
+      miopen
+      miopengemm
+      rocrand
+      rocblas
+      rocsparse
+      hipsparse
+      rocthrust
+      rocprim
+      hipcub
+      roctracer
+      rocfft
+      rocsolver
+      hipfft
+      hipsolver
+      hipblas
+      rocminfo
+      rocm-thunk
+      rocm-comgr
+      rocm-device-libs
+      rocm-runtime
+      clr.icd
+      hipify
     ];
 
     # Fix `setuptools` not being found
@@ -123,14 +190,23 @@ let
   brokenConditions = attrsets.filterAttrs (_: cond: cond) {
     "CUDA and ROCm are mutually exclusive" = cudaSupport && rocmSupport;
     "CUDA is not targeting Linux" = cudaSupport && !stdenv.isLinux;
-    "Unsupported CUDA version" = cudaSupport && !(builtins.elem cudaPackages.cudaMajorVersion [ "11" "12" ]);
-    "MPI cudatoolkit does not match cudaPackages.cudatoolkit" = MPISupport && cudaSupport && (mpi.cudatoolkit != cudaPackages.cudatoolkit);
-    "Magma cudaPackages does not match cudaPackages" = cudaSupport && (effectiveMagma.cudaPackages != cudaPackages);
+    "Unsupported CUDA version" =
+      cudaSupport
+      && !(builtins.elem cudaPackages.cudaMajorVersion [
+        "11"
+        "12"
+      ]);
+    "MPI cudatoolkit does not match cudaPackages.cudatoolkit" =
+      MPISupport && cudaSupport && (mpi.cudatoolkit != cudaPackages.cudatoolkit);
+    "Magma cudaPackages does not match cudaPackages" =
+      cudaSupport && (effectiveMagma.cudaPackages != cudaPackages);
+    "Rocm support is currently broken because `rocmPackages.hipblaslt` is unpackaged. (2024-06-09)" = rocmSupport;
   };
-in buildPythonPackage rec {
+in
+buildPythonPackage rec {
   pname = "torch";
   # Don't forget to update torch-bin to the same version.
-  version = "2.2.2";
+  version = "2.3.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8.0";
@@ -148,86 +224,92 @@ in buildPythonPackage rec {
     repo = "pytorch";
     rev = "refs/tags/v${version}";
     fetchSubmodules = true;
-    hash = "sha256-la9wL9pOlgrSfq5V8aRKXt3hjW+Er/6484m0oUujlzk=";
+    hash = "sha256-vpgtOqzIDKgRuqdT8lB/g6j+oMIH1RPxdbjtlzZFjV8=";
   };
 
-  patches = lib.optionals cudaSupport [
-    ./fix-cmake-cuda-toolkit.patch
-  ]
-  ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
-    # pthreadpool added support for Grand Central Dispatch in April
-    # 2020. However, this relies on functionality (DISPATCH_APPLY_AUTO)
-    # that is available starting with macOS 10.13. However, our current
-    # base is 10.12. Until we upgrade, we can fall back on the older
-    # pthread support.
-    ./pthreadpool-disable-gcd.diff
-  ] ++ lib.optionals stdenv.isLinux [
-    # Propagate CUPTI to Kineto by overriding the search path with environment variables.
-    # https://github.com/pytorch/pytorch/pull/108847
-    ./pytorch-pr-108847.patch
-  ];
+  patches =
+    lib.optionals cudaSupport [ ./fix-cmake-cuda-toolkit.patch ]
+    ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
+      # pthreadpool added support for Grand Central Dispatch in April
+      # 2020. However, this relies on functionality (DISPATCH_APPLY_AUTO)
+      # that is available starting with macOS 10.13. However, our current
+      # base is 10.12. Until we upgrade, we can fall back on the older
+      # pthread support.
+      ./pthreadpool-disable-gcd.diff
+    ]
+    ++ lib.optionals stdenv.isLinux [
+      # Propagate CUPTI to Kineto by overriding the search path with environment variables.
+      # https://github.com/pytorch/pytorch/pull/108847
+      ./pytorch-pr-108847.patch
+    ];
 
-  postPatch = lib.optionalString rocmSupport ''
-    # https://github.com/facebookincubator/gloo/pull/297
-    substituteInPlace third_party/gloo/cmake/Hipify.cmake \
-      --replace "\''${HIPIFY_COMMAND}" "python \''${HIPIFY_COMMAND}"
-
-    # Replace hard-coded rocm paths
-    substituteInPlace caffe2/CMakeLists.txt \
-      --replace "/opt/rocm" "${rocmtoolkit_joined}" \
-      --replace "hcc/include" "hip/include" \
-      --replace "rocblas/include" "include/rocblas" \
-      --replace "hipsparse/include" "include/hipsparse"
-
-    # Doesn't pick up the environment variable?
-    substituteInPlace third_party/kineto/libkineto/CMakeLists.txt \
-      --replace "\''$ENV{ROCM_SOURCE_DIR}" "${rocmtoolkit_joined}" \
-      --replace "/opt/rocm" "${rocmtoolkit_joined}"
-
-    # Strangely, this is never set in cmake
-    substituteInPlace cmake/public/LoadHIP.cmake \
-      --replace "set(ROCM_PATH \$ENV{ROCM_PATH})" \
-        "set(ROCM_PATH \$ENV{ROCM_PATH})''\nset(ROCM_VERSION ${lib.concatStrings (lib.intersperse "0" (lib.splitVersion rocmPackages.clr.version))})"
-  ''
-  # Detection of NCCL version doesn't work particularly well when using the static binary.
-  + lib.optionalString cudaSupport ''
-    substituteInPlace cmake/Modules/FindNCCL.cmake \
-      --replace \
-        'message(FATAL_ERROR "Found NCCL header version and library version' \
-        'message(WARNING "Found NCCL header version and library version'
-  ''
-  # Remove PyTorch's FindCUDAToolkit.cmake and to use CMake's default.
-  # We do not remove the entirety of cmake/Modules_CUDA_fix because we need FindCUDNN.cmake.
-  + lib.optionalString cudaSupport ''
-    rm cmake/Modules/FindCUDAToolkit.cmake
-    rm -rf cmake/Modules_CUDA_fix/{upstream,FindCUDA.cmake}
-  ''
-  # error: no member named 'aligned_alloc' in the global namespace; did you mean simply 'aligned_alloc'
-  # This lib overrided aligned_alloc hence the error message. Tltr: his function is linkable but not in header.
-  + lib.optionalString (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinSdkVersion "11.0") ''
-    substituteInPlace third_party/pocketfft/pocketfft_hdronly.h --replace '#if __cplusplus >= 201703L
-    inline void *aligned_alloc(size_t align, size_t size)' '#if __cplusplus >= 201703L && 0
-    inline void *aligned_alloc(size_t align, size_t size)'
-  '';
+  postPatch =
+    lib.optionalString rocmSupport ''
+      # https://github.com/facebookincubator/gloo/pull/297
+      substituteInPlace third_party/gloo/cmake/Hipify.cmake \
+        --replace "\''${HIPIFY_COMMAND}" "python \''${HIPIFY_COMMAND}"
+
+      # Replace hard-coded rocm paths
+      substituteInPlace caffe2/CMakeLists.txt \
+        --replace "/opt/rocm" "${rocmtoolkit_joined}" \
+        --replace "hcc/include" "hip/include" \
+        --replace "rocblas/include" "include/rocblas" \
+        --replace "hipsparse/include" "include/hipsparse"
+
+      # Doesn't pick up the environment variable?
+      substituteInPlace third_party/kineto/libkineto/CMakeLists.txt \
+        --replace "\''$ENV{ROCM_SOURCE_DIR}" "${rocmtoolkit_joined}" \
+        --replace "/opt/rocm" "${rocmtoolkit_joined}"
+
+      # Strangely, this is never set in cmake
+      substituteInPlace cmake/public/LoadHIP.cmake \
+        --replace "set(ROCM_PATH \$ENV{ROCM_PATH})" \
+          "set(ROCM_PATH \$ENV{ROCM_PATH})''\nset(ROCM_VERSION ${lib.concatStrings (lib.intersperse "0" (lib.splitVersion rocmPackages.clr.version))})"
+    ''
+    # Detection of NCCL version doesn't work particularly well when using the static binary.
+    + lib.optionalString cudaSupport ''
+      substituteInPlace cmake/Modules/FindNCCL.cmake \
+        --replace \
+          'message(FATAL_ERROR "Found NCCL header version and library version' \
+          'message(WARNING "Found NCCL header version and library version'
+    ''
+    # Remove PyTorch's FindCUDAToolkit.cmake and to use CMake's default.
+    # We do not remove the entirety of cmake/Modules_CUDA_fix because we need FindCUDNN.cmake.
+    + lib.optionalString cudaSupport ''
+      rm cmake/Modules/FindCUDAToolkit.cmake
+      rm -rf cmake/Modules_CUDA_fix/{upstream,FindCUDA.cmake}
+    ''
+    # error: no member named 'aligned_alloc' in the global namespace; did you mean simply 'aligned_alloc'
+    # This lib overrided aligned_alloc hence the error message. Tltr: his function is linkable but not in header.
+    +
+      lib.optionalString (stdenv.isDarwin && lib.versionOlder stdenv.hostPlatform.darwinSdkVersion "11.0")
+        ''
+          substituteInPlace third_party/pocketfft/pocketfft_hdronly.h --replace-fail '#if (__cplusplus >= 201703L) && (!defined(__MINGW32__)) && (!defined(_MSC_VER))
+          inline void *aligned_alloc(size_t align, size_t size)' '#if 0
+          inline void *aligned_alloc(size_t align, size_t size)'
+        '';
 
   # NOTE(@connorbaker): Though we do not disable Gloo or MPI when building with CUDA support, caution should be taken
   # when using the different backends. Gloo's GPU support isn't great, and MPI and CUDA can't be used at the same time
   # without extreme care to ensure they don't lock each other out of shared resources.
   # For more, see https://github.com/open-mpi/ompi/issues/7733#issuecomment-629806195.
-  preConfigure = lib.optionalString cudaSupport ''
-    export TORCH_CUDA_ARCH_LIST="${gpuTargetString}"
-    export CUPTI_INCLUDE_DIR=${cudaPackages.cuda_cupti.dev}/include
-    export CUPTI_LIBRARY_DIR=${cudaPackages.cuda_cupti.lib}/lib
-  '' + lib.optionalString (cudaSupport && cudaPackages ? cudnn) ''
-    export CUDNN_INCLUDE_DIR=${cudnn.dev}/include
-    export CUDNN_LIB_DIR=${cudnn.lib}/lib
-  '' + lib.optionalString rocmSupport ''
-    export ROCM_PATH=${rocmtoolkit_joined}
-    export ROCM_SOURCE_DIR=${rocmtoolkit_joined}
-    export PYTORCH_ROCM_ARCH="${gpuTargetString}"
-    export CMAKE_CXX_FLAGS="-I${rocmtoolkit_joined}/include -I${rocmtoolkit_joined}/include/rocblas"
-    python tools/amd_build/build_amd.py
-  '';
+  preConfigure =
+    lib.optionalString cudaSupport ''
+      export TORCH_CUDA_ARCH_LIST="${gpuTargetString}"
+      export CUPTI_INCLUDE_DIR=${cudaPackages.cuda_cupti.dev}/include
+      export CUPTI_LIBRARY_DIR=${cudaPackages.cuda_cupti.lib}/lib
+    ''
+    + lib.optionalString (cudaSupport && cudaPackages ? cudnn) ''
+      export CUDNN_INCLUDE_DIR=${cudnn.dev}/include
+      export CUDNN_LIB_DIR=${cudnn.lib}/lib
+    ''
+    + lib.optionalString rocmSupport ''
+      export ROCM_PATH=${rocmtoolkit_joined}
+      export ROCM_SOURCE_DIR=${rocmtoolkit_joined}
+      export PYTORCH_ROCM_ARCH="${gpuTargetString}"
+      export CMAKE_CXX_FLAGS="-I${rocmtoolkit_joined}/include -I${rocmtoolkit_joined}/include/rocblas"
+      python tools/amd_build/build_amd.py
+    '';
 
   # Use pytorch's custom configurations
   dontUseCmakeConfigure = true;
@@ -294,102 +376,128 @@ in buildPythonPackage rec {
   #
   # Also of interest: pytorch ignores CXXFLAGS uses CFLAGS for both C and C++:
   # https://github.com/pytorch/pytorch/blob/v1.11.0/setup.py#L17
-  env.NIX_CFLAGS_COMPILE = toString ((lib.optionals (blas.implementation == "mkl") [ "-Wno-error=array-bounds" ]
-  # Suppress gcc regression: avx512 math function raises uninitialized variable warning
-  # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105593
-  # See also: Fails to compile with GCC 12.1.0 https://github.com/pytorch/pytorch/issues/77939
-  ++ lib.optionals (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "12.0.0") [
-    "-Wno-error=maybe-uninitialized"
-    "-Wno-error=uninitialized"
-  ]
-  # Since pytorch 2.0:
-  # gcc-12.2.0/include/c++/12.2.0/bits/new_allocator.h:158:33: error: ‘void operator delete(void*, std::size_t)’
-  # ... called on pointer ‘<unknown>’ with nonzero offset [1, 9223372036854775800] [-Werror=free-nonheap-object]
-  ++ lib.optionals (stdenv.cc.isGNU && lib.versions.major stdenv.cc.version == "12" ) [
-    "-Wno-error=free-nonheap-object"
-  ]
-  # .../source/torch/csrc/autograd/generated/python_functions_0.cpp:85:3:
-  # error: cast from ... to ... converts to incompatible function type [-Werror,-Wcast-function-type-strict]
-  ++ lib.optionals (stdenv.cc.isClang && lib.versionAtLeast stdenv.cc.version "16") [
-    "-Wno-error=cast-function-type-strict"
-  # Suppresses the most spammy warnings.
-  # This is mainly to fix https://github.com/NixOS/nixpkgs/issues/266895.
-  ] ++ lib.optionals rocmSupport [
-    "-Wno-#warnings"
-    "-Wno-cpp"
-    "-Wno-unknown-warning-option"
-    "-Wno-ignored-attributes"
-    "-Wno-deprecated-declarations"
-    "-Wno-defaulted-function-deleted"
-    "-Wno-pass-failed"
-  ] ++ [
-    "-Wno-unused-command-line-argument"
-    "-Wno-uninitialized"
-    "-Wno-array-bounds"
-    "-Wno-free-nonheap-object"
-    "-Wno-unused-result"
-  ] ++ lib.optionals stdenv.cc.isGNU [
-    "-Wno-maybe-uninitialized"
-    "-Wno-stringop-overflow"
-  ]));
-
-  nativeBuildInputs = [
-    cmake
-    which
-    ninja
-    pybind11
-    pythonRelaxDepsHook
-    removeReferencesTo
-  ] ++ lib.optionals cudaSupport (with cudaPackages; [
-    autoAddDriverRunpath
-    cuda_nvcc
-  ])
-  ++ lib.optionals rocmSupport [ rocmtoolkit_joined ];
-
-  buildInputs = [ blas blas.provider ]
-    ++ lib.optionals cudaSupport (with cudaPackages; [
-      cuda_cccl.dev # <thrust/*>
-      cuda_cudart.dev # cuda_runtime.h and libraries
-      cuda_cudart.lib
-      cuda_cudart.static
-      cuda_cupti.dev # For kineto
-      cuda_cupti.lib # For kineto
-      cuda_nvcc.dev # crt/host_config.h; even though we include this in nativeBuildinputs, it's needed here too
-      cuda_nvml_dev.dev # <nvml.h>
-      cuda_nvrtc.dev
-      cuda_nvrtc.lib
-      cuda_nvtx.dev
-      cuda_nvtx.lib # -llibNVToolsExt
-      libcublas.dev
-      libcublas.lib
-      libcufft.dev
-      libcufft.lib
-      libcurand.dev
-      libcurand.lib
-      libcusolver.dev
-      libcusolver.lib
-      libcusparse.dev
-      libcusparse.lib
-    ] ++ lists.optionals (cudaPackages ? cudnn) [
-      cudnn.dev
-      cudnn.lib
-    ] ++ lists.optionals useSystemNccl [
-      # Some platforms do not support NCCL (i.e., Jetson)
-      nccl.dev # Provides nccl.h AND a static copy of NCCL!
-    ] ++ lists.optionals (strings.versionOlder cudaVersion "11.8") [
-      cuda_nvprof.dev # <cuda_profiler_api.h>
-    ] ++ lists.optionals (strings.versionAtLeast cudaVersion "11.8") [
-      cuda_profiler_api.dev # <cuda_profiler_api.h>
-    ])
+  env.NIX_CFLAGS_COMPILE = toString (
+    (
+      lib.optionals (blas.implementation == "mkl") [ "-Wno-error=array-bounds" ]
+      # Suppress gcc regression: avx512 math function raises uninitialized variable warning
+      # https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105593
+      # See also: Fails to compile with GCC 12.1.0 https://github.com/pytorch/pytorch/issues/77939
+      ++ lib.optionals (stdenv.cc.isGNU && lib.versionAtLeast stdenv.cc.version "12.0.0") [
+        "-Wno-error=maybe-uninitialized"
+        "-Wno-error=uninitialized"
+      ]
+      # Since pytorch 2.0:
+      # gcc-12.2.0/include/c++/12.2.0/bits/new_allocator.h:158:33: error: ‘void operator delete(void*, std::size_t)’
+      # ... called on pointer ‘<unknown>’ with nonzero offset [1, 9223372036854775800] [-Werror=free-nonheap-object]
+      ++ lib.optionals (stdenv.cc.isGNU && lib.versions.major stdenv.cc.version == "12") [
+        "-Wno-error=free-nonheap-object"
+      ]
+      # .../source/torch/csrc/autograd/generated/python_functions_0.cpp:85:3:
+      # error: cast from ... to ... converts to incompatible function type [-Werror,-Wcast-function-type-strict]
+      ++ lib.optionals (stdenv.cc.isClang && lib.versionAtLeast stdenv.cc.version "16") [
+        "-Wno-error=cast-function-type-strict"
+        # Suppresses the most spammy warnings.
+        # This is mainly to fix https://github.com/NixOS/nixpkgs/issues/266895.
+      ]
+      ++ lib.optionals rocmSupport [
+        "-Wno-#warnings"
+        "-Wno-cpp"
+        "-Wno-unknown-warning-option"
+        "-Wno-ignored-attributes"
+        "-Wno-deprecated-declarations"
+        "-Wno-defaulted-function-deleted"
+        "-Wno-pass-failed"
+      ]
+      ++ [
+        "-Wno-unused-command-line-argument"
+        "-Wno-uninitialized"
+        "-Wno-array-bounds"
+        "-Wno-free-nonheap-object"
+        "-Wno-unused-result"
+      ]
+      ++ lib.optionals stdenv.cc.isGNU [
+        "-Wno-maybe-uninitialized"
+        "-Wno-stringop-overflow"
+      ]
+    )
+  );
+
+  nativeBuildInputs =
+    [
+      cmake
+      which
+      ninja
+      pybind11
+      removeReferencesTo
+    ]
+    ++ lib.optionals cudaSupport (
+      with cudaPackages;
+      [
+        autoAddDriverRunpath
+        cuda_nvcc
+      ]
+    )
+    ++ lib.optionals rocmSupport [ rocmtoolkit_joined ];
+
+  buildInputs =
+    [
+      blas
+      blas.provider
+    ]
+    ++ lib.optionals cudaSupport (
+      with cudaPackages;
+      [
+        cuda_cccl.dev # <thrust/*>
+        cuda_cudart.dev # cuda_runtime.h and libraries
+        cuda_cudart.lib
+        cuda_cudart.static
+        cuda_cupti.dev # For kineto
+        cuda_cupti.lib # For kineto
+        cuda_nvcc.dev # crt/host_config.h; even though we include this in nativeBuildinputs, it's needed here too
+        cuda_nvml_dev.dev # <nvml.h>
+        cuda_nvrtc.dev
+        cuda_nvrtc.lib
+        cuda_nvtx.dev
+        cuda_nvtx.lib # -llibNVToolsExt
+        libcublas.dev
+        libcublas.lib
+        libcufft.dev
+        libcufft.lib
+        libcurand.dev
+        libcurand.lib
+        libcusolver.dev
+        libcusolver.lib
+        libcusparse.dev
+        libcusparse.lib
+      ]
+      ++ lists.optionals (cudaPackages ? cudnn) [
+        cudnn.dev
+        cudnn.lib
+      ]
+      ++ lists.optionals useSystemNccl [
+        # Some platforms do not support NCCL (i.e., Jetson)
+        nccl.dev # Provides nccl.h AND a static copy of NCCL!
+      ]
+      ++ lists.optionals (strings.versionOlder cudaVersion "11.8") [
+        cuda_nvprof.dev # <cuda_profiler_api.h>
+      ]
+      ++ lists.optionals (strings.versionAtLeast cudaVersion "11.8") [
+        cuda_profiler_api.dev # <cuda_profiler_api.h>
+      ]
+    )
     ++ lib.optionals rocmSupport [ rocmPackages.llvm.openmp ]
     ++ lib.optionals (cudaSupport || rocmSupport) [ effectiveMagma ]
     ++ lib.optionals stdenv.isLinux [ numactl ]
-    ++ lib.optionals stdenv.isDarwin [ Accelerate CoreServices libobjc ]
+    ++ lib.optionals stdenv.isDarwin [
+      Accelerate
+      CoreServices
+      libobjc
+    ]
     ++ lib.optionals tritonSupport [ openai-triton ]
     ++ lib.optionals MPISupport [ mpi ]
     ++ lib.optionals rocmSupport [ rocmtoolkit_joined ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     astunparse
     cffi
     click
@@ -405,97 +513,130 @@ in buildPythonPackage rec {
     jinja2
 
     # the following are required for tensorboard support
-    pillow six future tensorboard protobuf
+    pillow
+    six
+    future
+    tensorboard
+    protobuf
 
     # torch/csrc requires `pybind11` at runtime
     pybind11
   ] ++ lib.optionals tritonSupport [ openai-triton ];
 
-  propagatedCxxBuildInputs = [
-  ]
-  ++ lib.optionals MPISupport [ mpi ]
-  ++ lib.optionals rocmSupport [ rocmtoolkit_joined ];
+  propagatedCxxBuildInputs =
+    [ ] ++ lib.optionals MPISupport [ mpi ] ++ lib.optionals rocmSupport [ rocmtoolkit_joined ];
 
   # Tests take a long time and may be flaky, so just sanity-check imports
   doCheck = false;
 
-  pythonImportsCheck = [
-    "torch"
-  ];
-
-  nativeCheckInputs = [ hypothesis ninja psutil ];
+  pythonImportsCheck = [ "torch" ];
 
-  checkPhase = with lib.versions; with lib.strings; concatStringsSep " " [
-    "runHook preCheck"
-    "${python.interpreter} test/run_test.py"
-    "--exclude"
-    (concatStringsSep " " [
-      "utils" # utils requires git, which is not allowed in the check phase
-
-      # "dataloader" # psutils correctly finds and triggers multiprocessing, but is too sandboxed to run -- resulting in numerous errors
-      # ^^^^^^^^^^^^ NOTE: while test_dataloader does return errors, these are acceptable errors and do not interfere with the build
-
-      # tensorboard has acceptable failures for pytorch 1.3.x due to dependencies on tensorboard-plugins
-      (optionalString (majorMinor version == "1.3" ) "tensorboard")
-    ])
-    "runHook postCheck"
+  nativeCheckInputs = [
+    hypothesis
+    ninja
+    psutil
   ];
 
+  checkPhase =
+    with lib.versions;
+    with lib.strings;
+    concatStringsSep " " [
+      "runHook preCheck"
+      "${python.interpreter} test/run_test.py"
+      "--exclude"
+      (concatStringsSep " " [
+        "utils" # utils requires git, which is not allowed in the check phase
+
+        # "dataloader" # psutils correctly finds and triggers multiprocessing, but is too sandboxed to run -- resulting in numerous errors
+        # ^^^^^^^^^^^^ NOTE: while test_dataloader does return errors, these are acceptable errors and do not interfere with the build
+
+        # tensorboard has acceptable failures for pytorch 1.3.x due to dependencies on tensorboard-plugins
+        (optionalString (majorMinor version == "1.3") "tensorboard")
+      ])
+      "runHook postCheck"
+    ];
+
   pythonRemoveDeps = [
     # In our dist-info the name is just "triton"
     "pytorch-triton-rocm"
   ];
 
-  postInstall = ''
-    find "$out/${python.sitePackages}/torch/include" "$out/${python.sitePackages}/torch/lib" -type f -exec remove-references-to -t ${stdenv.cc} '{}' +
-
-    mkdir $dev
-    cp -r $out/${python.sitePackages}/torch/include $dev/include
-    cp -r $out/${python.sitePackages}/torch/share $dev/share
-
-    # Fix up library paths for split outputs
-    substituteInPlace \
-      $dev/share/cmake/Torch/TorchConfig.cmake \
-      --replace \''${TORCH_INSTALL_PREFIX}/lib "$lib/lib"
-
-    substituteInPlace \
-      $dev/share/cmake/Caffe2/Caffe2Targets-release.cmake \
-      --replace \''${_IMPORT_PREFIX}/lib "$lib/lib"
+  postInstall =
+    ''
+      find "$out/${python.sitePackages}/torch/include" "$out/${python.sitePackages}/torch/lib" -type f -exec remove-references-to -t ${stdenv.cc} '{}' +
+
+      mkdir $dev
+      cp -r $out/${python.sitePackages}/torch/include $dev/include
+      cp -r $out/${python.sitePackages}/torch/share $dev/share
+
+      # Fix up library paths for split outputs
+      substituteInPlace \
+        $dev/share/cmake/Torch/TorchConfig.cmake \
+        --replace \''${TORCH_INSTALL_PREFIX}/lib "$lib/lib"
+
+      substituteInPlace \
+        $dev/share/cmake/Caffe2/Caffe2Targets-release.cmake \
+        --replace \''${_IMPORT_PREFIX}/lib "$lib/lib"
+
+      mkdir $lib
+      mv $out/${python.sitePackages}/torch/lib $lib/lib
+      ln -s $lib/lib $out/${python.sitePackages}/torch/lib
+    ''
+    + lib.optionalString rocmSupport ''
+      substituteInPlace $dev/share/cmake/Tensorpipe/TensorpipeTargets-release.cmake \
+        --replace "\''${_IMPORT_PREFIX}/lib64" "$lib/lib"
+
+      substituteInPlace $dev/share/cmake/ATen/ATenConfig.cmake \
+        --replace "/build/source/torch/include" "$dev/include"
+    '';
 
-    mkdir $lib
-    mv $out/${python.sitePackages}/torch/lib $lib/lib
-    ln -s $lib/lib $out/${python.sitePackages}/torch/lib
-  '' + lib.optionalString rocmSupport ''
-    substituteInPlace $dev/share/cmake/Tensorpipe/TensorpipeTargets-release.cmake \
-      --replace "\''${_IMPORT_PREFIX}/lib64" "$lib/lib"
+  postFixup =
+    ''
+      mkdir -p "$cxxdev/nix-support"
+      printWords "''${propagatedCxxBuildInputs[@]}" >> "$cxxdev/nix-support/propagated-build-inputs"
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      for f in $(ls $lib/lib/*.dylib); do
+          install_name_tool -id $lib/lib/$(basename $f) $f || true
+      done
 
-    substituteInPlace $dev/share/cmake/ATen/ATenConfig.cmake \
-      --replace "/build/source/torch/include" "$dev/include"
-  '';
+      install_name_tool -change @rpath/libshm.dylib $lib/lib/libshm.dylib $lib/lib/libtorch_python.dylib
+      install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libtorch_python.dylib
+      install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libtorch_python.dylib
 
-  postFixup = ''
-    mkdir -p "$cxxdev/nix-support"
-    printWords "''${propagatedCxxBuildInputs[@]}" >> "$cxxdev/nix-support/propagated-build-inputs"
-  '' + lib.optionalString stdenv.isDarwin ''
-    for f in $(ls $lib/lib/*.dylib); do
-        install_name_tool -id $lib/lib/$(basename $f) $f || true
-    done
+      install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libtorch.dylib
 
-    install_name_tool -change @rpath/libshm.dylib $lib/lib/libshm.dylib $lib/lib/libtorch_python.dylib
-    install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libtorch_python.dylib
-    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libtorch_python.dylib
-
-    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libtorch.dylib
+      install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libshm.dylib
+      install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libshm.dylib
+    '';
 
-    install_name_tool -change @rpath/libtorch.dylib $lib/lib/libtorch.dylib $lib/lib/libshm.dylib
-    install_name_tool -change @rpath/libc10.dylib $lib/lib/libc10.dylib $lib/lib/libshm.dylib
+  # See https://github.com/NixOS/nixpkgs/issues/296179
+  #
+  # This is a quick hack to add `libnvrtc` to the runpath so that torch can find
+  # it when it is needed at runtime.
+  extraRunpaths = lib.optionals cudaSupport [ "${lib.getLib cudaPackages.cuda_nvrtc}/lib" ];
+  postPhases = lib.optionals stdenv.isLinux [ "postPatchelfPhase" ];
+  postPatchelfPhase = ''
+    while IFS= read -r -d $'\0' elf ; do
+      for extra in $extraRunpaths ; do
+        echo patchelf "$elf" --add-rpath "$extra" >&2
+        patchelf "$elf" --add-rpath "$extra"
+      done
+    done < <(
+      find "''${!outputLib}" "$out" -type f -iname '*.so' -print0
+    )
   '';
 
   # Builds in 2+h with 2 cores, and ~15m with a big-parallel builder.
   requiredSystemFeatures = [ "big-parallel" ];
 
   passthru = {
-    inherit cudaSupport cudaPackages;
+    inherit
+      cudaSupport
+      cudaPackages
+      rocmSupport
+      rocmPackages
+      ;
     # At least for 1.10.2 `torch.fft` is unavailable unless BLAS provider is MKL. This attribute allows for easy detection of its availability.
     blasProvider = blas.provider;
     # To help debug when a package is broken due to CUDA support
@@ -503,14 +644,18 @@ in buildPythonPackage rec {
     cudaCapabilities = if cudaSupport then supportedCudaCapabilities else [ ];
   };
 
-  meta = with lib; {
+  meta = {
     changelog = "https://github.com/pytorch/pytorch/releases/tag/v${version}";
     # keep PyTorch in the description so the package can be found under that name on search.nixos.org
     description = "PyTorch: Tensors and Dynamic neural networks in Python with strong GPU acceleration";
     homepage = "https://pytorch.org/";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ teh thoughtpolice tscholak ]; # tscholak esp. for darwin-related builds
-    platforms = with platforms; linux ++ lib.optionals (!cudaSupport && !rocmSupport) darwin;
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [
+      teh
+      thoughtpolice
+      tscholak
+    ]; # tscholak esp. for darwin-related builds
+    platforms = with lib.platforms; linux ++ lib.optionals (!cudaSupport && !rocmSupport) darwin;
     broken = builtins.any trivial.id (builtins.attrValues brokenConditions);
   };
 }
diff --git a/pkgs/development/python-modules/torch/prefetch.sh b/pkgs/development/python-modules/torch/prefetch.sh
index 7b9c26de35f25..88cbfa2c346e3 100755
--- a/pkgs/development/python-modules/torch/prefetch.sh
+++ b/pkgs/development/python-modules/torch/prefetch.sh
@@ -15,18 +15,17 @@ url_and_key_list=(
   "x86_64-linux-39 $linux_cuda_bucket/torch-${version}%2B${linux_cuda_version}-cp39-cp39-linux_x86_64.whl torch-${version}-cp39-cp39-linux_x86_64.whl"
   "x86_64-linux-310 $linux_cuda_bucket/torch-${version}%2B${linux_cuda_version}-cp310-cp310-linux_x86_64.whl torch-${version}-cp310-cp310-linux_x86_64.whl"
   "x86_64-linux-311 $linux_cuda_bucket/torch-${version}%2B${linux_cuda_version}-cp311-cp311-linux_x86_64.whl torch-${version}-cp311-cp311-linux_x86_64.whl"
-  "x86_64-darwin-38 $darwin_bucket/torch-${version}-cp38-none-macosx_10_9_x86_64.whl torch-${version}-cp38-none-macosx_10_9_x86_64.whl"
-  "x86_64-darwin-39 $darwin_bucket/torch-${version}-cp39-none-macosx_10_9_x86_64.whl torch-${version}-cp39-none-macosx_10_9_x86_64.whl"
-  "x86_64-darwin-310 $darwin_bucket/torch-${version}-cp310-none-macosx_10_9_x86_64.whl torch-${version}-cp310-none-macosx_10_9_x86_64.whl"
-  "x86_64-darwin-311 $darwin_bucket/torch-${version}-cp311-none-macosx_10_9_x86_64.whl torch-${version}-cp311-none-macosx_10_9_x86_64.whl"
+  "x86_64-linux-312 $linux_cuda_bucket/torch-${version}%2B${linux_cuda_version}-cp312-cp312-linux_x86_64.whl torch-${version}-cp312-cp312-linux_x86_64.whl"
   "aarch64-darwin-38 $darwin_bucket/torch-${version}-cp38-none-macosx_11_0_arm64.whl torch-${version}-cp38-none-macosx_11_0_arm64.whl"
   "aarch64-darwin-39 $darwin_bucket/torch-${version}-cp39-none-macosx_11_0_arm64.whl torch-${version}-cp39-none-macosx_11_0_arm64.whl"
   "aarch64-darwin-310 $darwin_bucket/torch-${version}-cp310-none-macosx_11_0_arm64.whl torch-${version}-cp310-none-macosx_11_0_arm64.whl"
   "aarch64-darwin-311 $darwin_bucket/torch-${version}-cp311-none-macosx_11_0_arm64.whl torch-${version}-cp311-none-macosx_11_0_arm64.whl"
+  "aarch64-darwin-312 $darwin_bucket/torch-${version}-cp312-none-macosx_11_0_arm64.whl torch-${version}-cp312-none-macosx_11_0_arm64.whl"
   "aarch64-linux-38 $linux_cpu_bucket/torch-${version}-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl torch-${version}-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"
   "aarch64-linux-39 $linux_cpu_bucket/torch-${version}-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl torch-${version}-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"
   "aarch64-linux-310 $linux_cpu_bucket/torch-${version}-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl torch-${version}-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"
   "aarch64-linux-311 $linux_cpu_bucket/torch-${version}-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl torch-${version}-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"
+  "aarch64-linux-312 $linux_cpu_bucket/torch-${version}-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl torch-${version}-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl"
 )
 
 hashfile="binary-hashes-$version.nix"
diff --git a/pkgs/development/python-modules/torchaudio/bin.nix b/pkgs/development/python-modules/torchaudio/bin.nix
index dc69195b693a3..be9710041f9cd 100644
--- a/pkgs/development/python-modules/torchaudio/bin.nix
+++ b/pkgs/development/python-modules/torchaudio/bin.nix
@@ -1,60 +1,65 @@
-{ lib
-, stdenv
-, addOpenGLRunpath
-, autoPatchelfHook
-, buildPythonPackage
-, cudaPackages
-, fetchurl
-, ffmpeg_4
-, ffmpeg_5
-, ffmpeg_6
-, sox
-, pythonAtLeast
-, pythonOlder
-, python
-, torch-bin
+{
+  lib,
+  stdenv,
+  addOpenGLRunpath,
+  autoPatchelfHook,
+  buildPythonPackage,
+  cudaPackages,
+  fetchurl,
+  ffmpeg_4,
+  ffmpeg_5,
+  ffmpeg_6,
+  sox,
+  pythonAtLeast,
+  pythonOlder,
+  python,
+  torch-bin,
 }:
 
 buildPythonPackage rec {
   pname = "torchaudio";
-  version = "2.2.2";
+  version = "2.3.1";
   format = "wheel";
 
   src =
-    let pyVerNoDot = lib.replaceStrings [ "." ] [ "" ] python.pythonVersion;
-        unsupported = throw "Unsupported system";
-        srcs = (import ./binary-hashes.nix version)."${stdenv.system}-${pyVerNoDot}" or unsupported;
+    let
+      pyVerNoDot = lib.replaceStrings [ "." ] [ "" ] python.pythonVersion;
+      unsupported = throw "Unsupported system";
+      srcs = (import ./binary-hashes.nix version)."${stdenv.system}-${pyVerNoDot}" or unsupported;
     in
     fetchurl srcs;
 
-  disabled = (pythonOlder "3.8") || (pythonAtLeast "3.12");
+  disabled = (pythonOlder "3.8") || (pythonAtLeast "3.13");
 
-  buildInputs = with cudaPackages; [
-    # $out/${sitePackages}/torchaudio/lib/libtorchaudio*.so wants libcudart.so.11.0 but torch/lib only ships
-    # libcudart.$hash.so.11.0
-    cuda_cudart
+  buildInputs =
+    [
+      # We need to patch the lib/_torchaudio_ffmpeg[4-6]
+      ffmpeg_4.dev
+      ffmpeg_5.dev
+      ffmpeg_6.dev
+      sox
+    ]
+    ++ lib.optionals stdenv.isLinux (
+      with cudaPackages;
+      [
+        # $out/${sitePackages}/torchaudio/lib/libtorchaudio*.so wants libcudart.so.11.0 but torch/lib only ships
+        # libcudart.$hash.so.11.0
+        cuda_cudart
 
-    # $out/${sitePackages}/torchaudio/lib/libtorchaudio*.so wants libnvToolsExt.so.2 but torch/lib only ships
-    # libnvToolsExt-$hash.so.1
-    cuda_nvtx
+        # $out/${sitePackages}/torchaudio/lib/libtorchaudio*.so wants libnvToolsExt.so.2 but torch/lib only ships
+        # libnvToolsExt-$hash.so.1
+        cuda_nvtx
+      ]
+    );
 
-    # We need to patch the lib/_torchaudio_ffmpeg[4-6]
-    ffmpeg_4.dev
-    ffmpeg_5.dev
-    ffmpeg_6.dev
-    sox
-  ];
-
-  nativeBuildInputs = [
+  nativeBuildInputs = lib.optionals stdenv.isLinux [
     autoPatchelfHook
     addOpenGLRunpath
   ];
 
-  propagatedBuildInputs = [
-    torch-bin
-  ];
+  dependencies = [ torch-bin ];
 
-  preInstall = ''
+  preInstall = lib.optionals stdenv.isLinux ''
     addAutoPatchelfSearchPath "${torch-bin}/${python.sitePackages}/torch"
   '';
 
@@ -63,16 +68,20 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "torchaudio" ];
 
-  meta = with lib; {
+  meta = {
     description = "PyTorch audio library";
     homepage = "https://pytorch.org/";
     changelog = "https://github.com/pytorch/audio/releases/tag/v${version}";
     # Includes CUDA and Intel MKL, but redistributions of the binary are not limited.
     # https://docs.nvidia.com/cuda/eula/index.html
     # https://www.intel.com/content/www/us/en/developer/articles/license/onemkl-license-faq.html
-    license = licenses.bsd3;
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    platforms = [ "aarch64-linux" "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ];
-    maintainers = with maintainers; [ junjihashimoto ];
+    license = lib.licenses.bsd3;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    platforms = [
+      "aarch64-linux"
+      "x86_64-linux"
+      "aarch64-darwin"
+    ];
+    maintainers = with lib.maintainers; [ junjihashimoto ];
   };
 }
diff --git a/pkgs/development/python-modules/torchaudio/binary-hashes.nix b/pkgs/development/python-modules/torchaudio/binary-hashes.nix
index a15dffc4856a9..bce74eff052ee 100644
--- a/pkgs/development/python-modules/torchaudio/binary-hashes.nix
+++ b/pkgs/development/python-modules/torchaudio/binary-hashes.nix
@@ -5,87 +5,83 @@
 
 # To add a new version, run "prefetch.sh 'new-version'" to paste the generated file as follows.
 
-version : builtins.getAttr version {
-  "2.2.2" = {
+version:
+builtins.getAttr version {
+  "2.3.1" = {
     x86_64-linux-38 = {
-      name = "torchaudio-2.2.2-cp38-cp38-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.2.2%2Bcu121-cp38-cp38-linux_x86_64.whl";
-      hash = "sha256-KPwkn2+sVuS9GbZdk7f6lSJ956D1WLY2YS7k3qE3tog=";
+      name = "torchaudio-2.3.1-cp38-cp38-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.1%2Bcu121-cp38-cp38-linux_x86_64.whl";
+      hash = "sha256-4QoP0bNR6EnnzZ4ekw3KP/uMow+WI5vqEx8YP2WUXNs=";
     };
     x86_64-linux-39 = {
-      name = "torchaudio-2.2.2-cp39-cp39-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.2.2%2Bcu121-cp39-cp39-linux_x86_64.whl";
-      hash = "sha256-YzzBeuAiMH0HPyZhvK/z9Q2bPW99MukXMFRCAybiDRs=";
+      name = "torchaudio-2.3.1-cp39-cp39-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.1%2Bcu121-cp39-cp39-linux_x86_64.whl";
+      hash = "sha256-bOv8CdkcpAPASLnPKuPWS09UzzGghYTQ0/v3+VAewNw=";
     };
     x86_64-linux-310 = {
-      name = "torchaudio-2.2.2-cp310-cp310-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.2.2%2Bcu121-cp310-cp310-linux_x86_64.whl";
-      hash = "sha256-/eGFVNhP0AR1iPC87QPXcPZVPxeFGjtEE3kWShPJmwc=";
+      name = "torchaudio-2.3.1-cp310-cp310-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.1%2Bcu121-cp310-cp310-linux_x86_64.whl";
+      hash = "sha256-C0I/SuM1bxH2cj6MdyCKw/k2Gk+UHkzAjYbDLBN1lLw=";
     };
     x86_64-linux-311 = {
-      name = "torchaudio-2.2.2-cp311-cp311-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.2.2%2Bcu121-cp311-cp311-linux_x86_64.whl";
-      hash = "sha256-DgdNBcIlizAU3aAu7wB60Xq0TP0B2XgMmpFOXZcqwAs=";
+      name = "torchaudio-2.3.1-cp311-cp311-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.1%2Bcu121-cp311-cp311-linux_x86_64.whl";
+      hash = "sha256-LZE2vzybarltxC8m9suDbUXRFfV2bhav9Sg1yOfN5WU=";
     };
-    x86_64-darwin-38 = {
-      name = "torchaudio-2.2.2-cp38-cp38-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp38-cp38-macosx_10_13_x86_64.whl";
-      hash = "sha256-jOTfBlqUmRHStngqpME2h++t6iP/x8em8V9+euXIlSQ=";
-    };
-    x86_64-darwin-39 = {
-      name = "torchaudio-2.2.2-cp39-cp39-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp39-cp39-macosx_10_13_x86_64.whl";
-      hash = "sha256-23CxOocaSUh72QQr8EsS90rtd7GofS++to0J2bZLxSg=";
-    };
-    x86_64-darwin-310 = {
-      name = "torchaudio-2.2.2-cp310-cp310-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp310-cp310-macosx_10_13_x86_64.whl";
-      hash = "sha256-sdWCAdEI6F2z41uEMZ8ziE9h8yfDjq2GkTIYyMGsw90=";
-    };
-    x86_64-darwin-311 = {
-      name = "torchaudio-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp311-cp311-macosx_10_13_x86_64.whl";
-      hash = "sha256-8agaUYo+hsAEEl64kfxDPOj7I0MpW11hLQ83sk4THv0=";
+    x86_64-linux-312 = {
+      name = "torchaudio-2.3.1-cp312-cp312-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchaudio-2.3.1%2Bcu121-cp312-cp312-linux_x86_64.whl";
+      hash = "sha256-sAdz3eOqMNmxuYh1ZQQo+/tp/jC5jrtc7/vY/GHegSU=";
     };
     aarch64-darwin-38 = {
-      name = "torchaudio-2.2.2-cp38-cp38-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp38-cp38-macosx_11_0_arm64.whl";
-      hash = "sha256-s7ir4msGfpxKbj26FWuR16hSR+iN2nC3xDhZ9VuXjdw=";
+      name = "torchaudio-2.3.1-cp38-cp38-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp38-cp38-macosx_11_0_arm64.whl";
+      hash = "sha256-zkXgWs1URpbGpvAj1P6GFK3ldRV5mhEDskGOhUg41KU=";
     };
     aarch64-darwin-39 = {
-      name = "torchaudio-2.2.2-cp39-cp39-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp39-cp39-macosx_11_0_arm64.whl";
-      hash = "sha256-S3ioShib89pLlmN1zr3sxYSk3F9g4L3nIdc0Ae1crUU=";
+      name = "torchaudio-2.3.1-cp39-cp39-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp39-cp39-macosx_11_0_arm64.whl";
+      hash = "sha256-NujAtlMlccJ6CKQNrkKM00ryJQB/FbzXcnJkO2JmuB0=";
     };
     aarch64-darwin-310 = {
-      name = "torchaudio-2.2.2-cp310-cp310-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp310-cp310-macosx_11_0_arm64.whl";
-      hash = "sha256-pSDhTqC6idncJ5IutGCfnqxcAcJ5gw4PIWucngF9Q4s=";
+      name = "torchaudio-2.3.1-cp310-cp310-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp310-cp310-macosx_11_0_arm64.whl";
+      hash = "sha256-H5E0sn5afwweMzgvwP4njlNpV2jLCvAujSK1AGx0oq0=";
     };
     aarch64-darwin-311 = {
-      name = "torchaudio-2.2.2-cp311-cp311-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp311-cp311-macosx_11_0_arm64.whl";
-      hash = "sha256-AUgvyFEX+F7kT4qo6cEbHAIjJhc+B0h4ntQrIZECk38=";
+      name = "torchaudio-2.3.1-cp311-cp311-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp311-cp311-macosx_11_0_arm64.whl";
+      hash = "sha256-AZhPODmMpemOz7/q+3KuWyEx0LuKpGS1d3rds+SCaHc=";
+    };
+    aarch64-darwin-312 = {
+      name = "torchaudio-2.3.1-cp312-cp312-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp312-cp312-macosx_11_0_arm64.whl";
+      hash = "sha256-XjZoVCCgehdhRunW4PqCJRmPEm4WegB4VTj4U4B+LUM=";
     };
     aarch64-linux-38 = {
-      name = "torchaudio-2.2.2-cp38-cp38-manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp38-cp38-linux_aarch64.whl";
-      hash = "sha256-T3VqbmZ92IQb8hoH6tPv7ap6J9VYUnecJm9vKhBkyZQ=";
+      name = "torchaudio-2.3.1-cp38-cp38-manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp38-cp38-linux_aarch64.whl";
+      hash = "sha256-n9D0u8P9WF+9fZdqmI/m54P8suDbnXDaxg9AvgcsZQQ=";
     };
     aarch64-linux-39 = {
-      name = "torchaudio-2.2.2-cp39-cp39-manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp39-cp39-linux_aarch64.whl";
-      hash = "sha256-cj9OV7XQwSA1fKYM1VtObPrIRbwOzMtLQXpEqk68Ums=";
+      name = "torchaudio-2.3.1-cp39-cp39-manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp39-cp39-linux_aarch64.whl";
+      hash = "sha256-TjvKIy+CDGoPpTlEJAdsxRn64yKI5/9vbWi9cXlNw1Q=";
     };
     aarch64-linux-310 = {
-      name = "torchaudio-2.2.2-cp310-cp310-manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp310-cp310-linux_aarch64.whl";
-      hash = "sha256-sPOOfTVIkU14qvwn/wD3cBsaUL/N3FiWX1RfySzNSmY=";
+      name = "torchaudio-2.3.1-cp310-cp310-manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp310-cp310-linux_aarch64.whl";
+      hash = "sha256-a1fnc6rXJ0PVCmSnQCoGy4vfzHCe/G2MJkKdlA5niOI=";
     };
     aarch64-linux-311 = {
-      name = "torchaudio-2.2.2-cp311-cp311-manylinux2014_aarch64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.2.2-cp311-cp311-linux_aarch64.whl";
-      hash = "sha256-CgOki21V0X1I9Bmn8dDUAY1IoEx2WFwWqbXmkoH5L5Q=";
+      name = "torchaudio-2.3.1-cp311-cp311-manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp311-cp311-linux_aarch64.whl";
+      hash = "sha256-yMcnyDQYJb0Y2RAXxMAPNrU7CPIXbNub3LDe8cRQsh0=";
+    };
+    aarch64-linux-312 = {
+      name = "torchaudio-2.3.1-cp312-cp312-manylinux2014_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchaudio-2.3.1-cp312-cp312-linux_aarch64.whl";
+      hash = "sha256-Qq9sekMOYmjywCjgYHjUE5ErXsbvoooJfr3Tw8eWWd8=";
     };
   };
 }
diff --git a/pkgs/development/python-modules/torchaudio/default.nix b/pkgs/development/python-modules/torchaudio/default.nix
index 3ca33cc36b656..3252a5b19cfaf 100644
--- a/pkgs/development/python-modules/torchaudio/default.nix
+++ b/pkgs/development/python-modules/torchaudio/default.nix
@@ -1,39 +1,100 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cmake
-, symlinkJoin
-, ffmpeg-full
-, pkg-config
-, ninja
-, pybind11
-, sox
-, torch
-, cudaSupport ? torch.cudaSupport
-, cudaPackages
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cmake,
+  symlinkJoin,
+  ffmpeg-full,
+  pkg-config,
+  ninja,
+  pybind11,
+  sox,
+  torch,
+
+  cudaSupport ? torch.cudaSupport,
+  cudaPackages,
+  rocmSupport ? torch.rocmSupport,
+  rocmPackages,
+
+  gpuTargets ? [ ],
 }:
 
+let
+  # TODO: Reuse one defined in torch?
+  # Some of those dependencies are probbly not required,
+  # but it breaks when the store path is different between torch and torchaudio
+  rocmtoolkit_joined = symlinkJoin {
+    name = "rocm-merged";
+
+    paths = with rocmPackages; [
+      rocm-core
+      clr
+      rccl
+      miopen
+      miopengemm
+      rocrand
+      rocblas
+      rocsparse
+      hipsparse
+      rocthrust
+      rocprim
+      hipcub
+      roctracer
+      rocfft
+      rocsolver
+      hipfft
+      hipsolver
+      hipblas
+      rocminfo
+      rocm-thunk
+      rocm-comgr
+      rocm-device-libs
+      rocm-runtime
+      clr.icd
+      hipify
+    ];
+
+    # Fix `setuptools` not being found
+    postBuild = ''
+      rm -rf $out/nix-support
+    '';
+  };
+  # Only used for ROCm
+  gpuTargetString = lib.strings.concatStringsSep ";" (
+    if gpuTargets != [ ] then
+      # If gpuTargets is specified, it always takes priority.
+      gpuTargets
+    else if rocmSupport then
+      rocmPackages.clr.gpuTargets
+    else
+      throw "No GPU targets specified"
+  );
+in
 buildPythonPackage rec {
   pname = "torchaudio";
-  version = "2.2.2";
+  version = "2.3.1";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "pytorch";
     repo = "audio";
     rev = "refs/tags/v${version}";
-    hash = "sha256-rW4xLUFTpGpUeMnTBdrI/2OjgZX1ihK0EfcVK6snmpk=";
+    hash = "sha256-PYaqRNKIhQ1DnFRZYyJJfBszVM2Bmu7A/lvvzJ6lL3g=";
   };
 
-  patches = [
-    ./0001-setup.py-propagate-cmakeFlags.patch
-  ];
+  patches = [ ./0001-setup.py-propagate-cmakeFlags.patch ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace 'print(" --- Initializing submodules")' "return" \
-      --replace "_fetch_archives(_parse_sources())" "pass"
-  '';
+  postPatch =
+    ''
+      substituteInPlace setup.py \
+        --replace 'print(" --- Initializing submodules")' "return" \
+        --replace "_fetch_archives(_parse_sources())" "pass"
+    ''
+    + lib.optionalString rocmSupport ''
+      # There is no .info/version-dev, only .info/version
+      substituteInPlace cmake/LoadHIP.cmake \
+        --replace "/.info/version-dev" "/.info/version"
+    '';
 
   env = {
     TORCH_CUDA_ARCH_LIST = "${lib.concatStringsSep ";" torch.cudaCapabilities}";
@@ -49,13 +110,21 @@ buildPythonPackage rec {
     ];
   };
 
-  nativeBuildInputs = [
-    cmake
-    pkg-config
-    ninja
-  ] ++ lib.optionals cudaSupport [
-    cudaPackages.cuda_nvcc
-  ];
+  nativeBuildInputs =
+    [
+      cmake
+      pkg-config
+      ninja
+    ]
+    ++ lib.optionals cudaSupport [ cudaPackages.cuda_nvcc ]
+    ++ lib.optionals rocmSupport (
+      with rocmPackages;
+      [
+        clr
+        rocblas
+        hipblas
+      ]
+    );
 
   buildInputs = [
     ffmpeg-full
@@ -64,25 +133,32 @@ buildPythonPackage rec {
     torch.cxxdev
   ];
 
-  propagatedBuildInputs = [
-    torch
-  ];
+  dependencies = [ torch ];
 
-  BUILD_SOX=0;
-  BUILD_KALDI=0;
-  BUILD_RNNT=0;
-  BUILD_CTC_DECODER=0;
+  BUILD_SOX = 0;
+  BUILD_KALDI = 0;
+  BUILD_RNNT = 0;
+  BUILD_CTC_DECODER = 0;
+
+  preConfigure = lib.optionalString rocmSupport ''
+    export ROCM_PATH=${rocmtoolkit_joined}
+    export PYTORCH_ROCM_ARCH="${gpuTargetString}"
+  '';
 
   dontUseCmakeConfigure = true;
 
   doCheck = false; # requires sox backend
 
-  meta = with lib; {
+  meta = {
     description = "PyTorch audio library";
     homepage = "https://pytorch.org/";
     changelog = "https://github.com/pytorch/audio/releases/tag/v${version}";
-    license = licenses.bsd2;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ junjihashimoto ];
+    license = lib.licenses.bsd2;
+    platforms = [
+      "aarch64-darwin"
+      "aarch64-linux"
+      "x86_64-linux"
+    ];
+    maintainers = with lib.maintainers; [ junjihashimoto ];
   };
 }
diff --git a/pkgs/development/python-modules/torchaudio/prefetch.sh b/pkgs/development/python-modules/torchaudio/prefetch.sh
index 89422ff7c65e0..e4a9b9c90f6cd 100755
--- a/pkgs/development/python-modules/torchaudio/prefetch.sh
+++ b/pkgs/development/python-modules/torchaudio/prefetch.sh
@@ -15,18 +15,17 @@ url_and_key_list=(
     "x86_64-linux-39 $linux_cuda_bucket/torchaudio-${version}%2B${linux_cuda_version}-cp39-cp39-linux_x86_64.whl torchaudio-${version}-cp39-cp39-linux_x86_64.whl"
     "x86_64-linux-310 $linux_cuda_bucket/torchaudio-${version}%2B${linux_cuda_version}-cp310-cp310-linux_x86_64.whl torchaudio-${version}-cp310-cp310-linux_x86_64.whl"
     "x86_64-linux-311 $linux_cuda_bucket/torchaudio-${version}%2B${linux_cuda_version}-cp311-cp311-linux_x86_64.whl torchaudio-${version}-cp311-cp311-linux_x86_64.whl"
-    "x86_64-darwin-38 $darwin_bucket/torchaudio-${version}-cp38-cp38-macosx_10_13_x86_64.whl torchaudio-${version}-cp38-cp38-macosx_10_9_x86_64.whl"
-    "x86_64-darwin-39 $darwin_bucket/torchaudio-${version}-cp39-cp39-macosx_10_13_x86_64.whl torchaudio-${version}-cp39-cp39-macosx_10_9_x86_64.whl"
-    "x86_64-darwin-310 $darwin_bucket/torchaudio-${version}-cp310-cp310-macosx_10_13_x86_64.whl torchaudio-${version}-cp310-cp310-macosx_10_9_x86_64.whl"
-    "x86_64-darwin-311 $darwin_bucket/torchaudio-${version}-cp311-cp311-macosx_10_13_x86_64.whl torchaudio-${version}-cp311-cp311-macosx_10_9_x86_64.whl"
+    "x86_64-linux-312 $linux_cuda_bucket/torchaudio-${version}%2B${linux_cuda_version}-cp312-cp312-linux_x86_64.whl torchaudio-${version}-cp312-cp312-linux_x86_64.whl"
     "aarch64-darwin-38 $darwin_bucket/torchaudio-${version}-cp38-cp38-macosx_11_0_arm64.whl torchaudio-${version}-cp38-cp38-macosx_11_0_arm64.whl"
     "aarch64-darwin-39 $darwin_bucket/torchaudio-${version}-cp39-cp39-macosx_11_0_arm64.whl torchaudio-${version}-cp39-cp39-macosx_11_0_arm64.whl"
     "aarch64-darwin-310 $darwin_bucket/torchaudio-${version}-cp310-cp310-macosx_11_0_arm64.whl torchaudio-${version}-cp310-cp310-macosx_11_0_arm64.whl"
     "aarch64-darwin-311 $darwin_bucket/torchaudio-${version}-cp311-cp311-macosx_11_0_arm64.whl torchaudio-${version}-cp311-cp311-macosx_11_0_arm64.whl"
+    "aarch64-darwin-312 $darwin_bucket/torchaudio-${version}-cp312-cp312-macosx_11_0_arm64.whl torchaudio-${version}-cp312-cp312-macosx_11_0_arm64.whl"
     "aarch64-linux-38 $linux_cpu_bucket/torchaudio-${version}-cp38-cp38-linux_aarch64.whl torchaudio-${version}-cp38-cp38-manylinux2014_aarch64.whl"
     "aarch64-linux-39 $linux_cpu_bucket/torchaudio-${version}-cp39-cp39-linux_aarch64.whl torchaudio-${version}-cp39-cp39-manylinux2014_aarch64.whl"
     "aarch64-linux-310 $linux_cpu_bucket/torchaudio-${version}-cp310-cp310-linux_aarch64.whl torchaudio-${version}-cp310-cp310-manylinux2014_aarch64.whl"
     "aarch64-linux-311 $linux_cpu_bucket/torchaudio-${version}-cp311-cp311-linux_aarch64.whl torchaudio-${version}-cp311-cp311-manylinux2014_aarch64.whl"
+    "aarch64-linux-312 $linux_cpu_bucket/torchaudio-${version}-cp312-cp312-linux_aarch64.whl torchaudio-${version}-cp312-cp312-manylinux2014_aarch64.whl"
 )
 
 hashfile=binary-hashes-"$version".nix
diff --git a/pkgs/development/python-modules/torchdiffeq/default.nix b/pkgs/development/python-modules/torchdiffeq/default.nix
index 8195d750c6f76..455450a718c16 100644
--- a/pkgs/development/python-modules/torchdiffeq/default.nix
+++ b/pkgs/development/python-modules/torchdiffeq/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-# dependencies
-, torch
-, scipy
+  # dependencies
+  torch,
+  scipy,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "torchdiffeq";
-  version = "0.2.3";
+  version = "0.2.4";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-/nX0NLkJCsDCdwLgK+0hRysPhwNb5lgfUe3F1AE+oxo=";
+    hash = "sha256-wOV8PIif7dp/I6YBXb/Nba5QcqBt1u0Q6CAMIAmEQEM=";
   };
 
   propagatedBuildInputs = [
@@ -30,9 +31,7 @@ buildPythonPackage rec {
   # no tests in sdist, no tags on git
   doCheck = false;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Differentiable ODE solvers with full GPU support and O(1)-memory backpropagation";
diff --git a/pkgs/development/python-modules/torchgpipe/default.nix b/pkgs/development/python-modules/torchgpipe/default.nix
deleted file mode 100644
index f96add92f0cc7..0000000000000
--- a/pkgs/development/python-modules/torchgpipe/default.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, torch
-}:
-
-buildPythonPackage rec {
-  pname = "torchgpipe";
-  version = "0.0.7";
-  format = "setuptools";
-
-  disabled = pythonOlder "3.6";
-
-  src = fetchFromGitHub {
-    owner = "kakaobrain";
-    repo = pname;
-    rev = "v${version}";
-    sha256 = "0ki0njhmz1i3pkpr3y6h6ac7p5qh1kih06mknc2s18mfw34f2l55";
-  };
-
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "'pytest-runner'" ""
-  '';
-
-  propagatedBuildInputs = [ torch ];
-
-  nativeCheckInputs = [ pytestCheckHook ];
-  disabledTests = [
-    "test_inplace_on_requires_grad"
-    "test_input_requiring_grad"
-  ];
-
-  meta = with lib; {
-    description = "GPipe implemented in Pytorch and optimized for CUDA rather than TPU";
-    homepage = "https://torchgpipe.readthedocs.io";
-    license = licenses.asl20;
-    maintainers = [ maintainers.bcdarwin ];
-  };
-}
diff --git a/pkgs/development/python-modules/torchinfo/default.nix b/pkgs/development/python-modules/torchinfo/default.nix
index 59b7e99c9dfca..a10dad4b10c0a 100644
--- a/pkgs/development/python-modules/torchinfo/default.nix
+++ b/pkgs/development/python-modules/torchinfo/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pythonOlder
-, torch
-, torchvision
-, pytestCheckHook
-, transformers
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pythonOlder,
+  torch,
+  torchvision,
+  pytestCheckHook,
+  transformers,
 }:
 
 buildPythonPackage rec {
@@ -24,12 +25,11 @@ buildPythonPackage rec {
   };
 
   patches = [
-    (fetchpatch {  # Add support for Python 3.11 and pytorch 2.1
+    (fetchpatch {
+      # Add support for Python 3.11 and pytorch 2.1
       url = "https://github.com/TylerYep/torchinfo/commit/c74784c71c84e62bcf56664653b7f28d72a2ee0d.patch";
       hash = "sha256-xSSqs0tuFpdMXUsoVv4sZLCeVnkK6pDDhX/Eobvn5mw=";
-      includes = [
-        "torchinfo/model_statistics.py"
-      ];
+      includes = [ "torchinfo/model_statistics.py" ];
     })
   ];
 
@@ -62,9 +62,7 @@ buildPythonPackage rec {
     "tests/torchinfo_xl_test.py"
   ];
 
-  pythonImportsCheck = [
-    "torchinfo"
-  ];
+  pythonImportsCheck = [ "torchinfo" ];
 
   meta = with lib; {
     description = "API to visualize pytorch models";
diff --git a/pkgs/development/python-modules/torchio/default.nix b/pkgs/development/python-modules/torchio/default.nix
index 3549664e15b9d..79d245c926d25 100644
--- a/pkgs/development/python-modules/torchio/default.nix
+++ b/pkgs/development/python-modules/torchio/default.nix
@@ -1,25 +1,26 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, deprecated
-, humanize
-, matplotlib
-, nibabel
-, numpy
-, parameterized
-, scipy
-, simpleitk
-, torch
-, tqdm
-, typer
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  deprecated,
+  humanize,
+  matplotlib,
+  nibabel,
+  numpy,
+  parameterized,
+  scipy,
+  simpleitk,
+  torch,
+  tqdm,
+  typer,
 }:
 
 buildPythonPackage rec {
   pname = "torchio";
-  version = "0.19.5";
+  version = "0.19.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -28,7 +29,7 @@ buildPythonPackage rec {
     owner = "fepegar";
     repo = "torchio";
     rev = "refs/tags/v${version}";
-    hash = "sha256-RqKJStUZhnSmsifn3WjYLfmRkkme+GOe6dp0E0MW9tE=";
+    hash = "sha256-FlsjDgthXDGVjj4L0Yw+8UzBROw9jiM4Z+qi67D5ygU=";
   };
 
   propagatedBuildInputs = [
@@ -43,14 +44,20 @@ buildPythonPackage rec {
     typer
   ] ++ typer.passthru.optional-dependencies.all;
 
-  nativeCheckInputs = [ pytestCheckHook matplotlib parameterized ];
-  disabledTests = [
-    # tries to download models:
-    "test_load_all"
-  ] ++ lib.optionals stdenv.isAarch64 [
-    # RuntimeError: DataLoader worker (pid(s) <...>) exited unexpectedly
-    "test_queue_multiprocessing"
+  nativeCheckInputs = [
+    pytestCheckHook
+    matplotlib
+    parameterized
   ];
+  disabledTests =
+    [
+      # tries to download models:
+      "test_load_all"
+    ]
+    ++ lib.optionals stdenv.isAarch64 [
+      # RuntimeError: DataLoader worker (pid(s) <...>) exited unexpectedly
+      "test_queue_multiprocessing"
+    ];
   pythonImportsCheck = [
     "torchio"
     "torchio.data"
diff --git a/pkgs/development/python-modules/torchlibrosa/default.nix b/pkgs/development/python-modules/torchlibrosa/default.nix
index ca8f890c0e620..9ea19d6157a54 100644
--- a/pkgs/development/python-modules/torchlibrosa/default.nix
+++ b/pkgs/development/python-modules/torchlibrosa/default.nix
@@ -1,10 +1,11 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, librosa
-, numpy
-, torch
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  librosa,
+  numpy,
+  torch,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/torchmetrics/default.nix b/pkgs/development/python-modules/torchmetrics/default.nix
index e5c05c6dd4978..b0e0e46a303ca 100644
--- a/pkgs/development/python-modules/torchmetrics/default.nix
+++ b/pkgs/development/python-modules/torchmetrics/default.nix
@@ -1,26 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, numpy
-, lightning-utilities
-, cloudpickle
-, scikit-learn
-, scikit-image
-, packaging
-, psutil
-, py-deprecate
-, torch
-, pytestCheckHook
-, torchmetrics
-, pytorch-lightning
-, pytest-doctestplus
-, pytest-xdist
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  numpy,
+  lightning-utilities,
+  cloudpickle,
+  scikit-learn,
+  scikit-image,
+  packaging,
+  pretty-errors,
+  psutil,
+  py-deprecate,
+  torch,
+  pytestCheckHook,
+  torchmetrics,
+  pytorch-lightning,
+  pytest-doctestplus,
+  pytest-xdist,
 }:
 
 let
   pname = "torchmetrics";
-  version = "1.3.2";
+  version = "1.4.0.post0";
 in
 buildPythonPackage {
   inherit pname version;
@@ -32,20 +34,19 @@ buildPythonPackage {
     owner = "Lightning-AI";
     repo = "torchmetrics";
     rev = "refs/tags/v${version}";
-    hash = "sha256-0lverGF8HVlnwWmnCjScWoSfWPLZlMF2cHDG+uxNCCQ=";
+    hash = "sha256-tQqlLfdk8rSJqwR3rC7kqnM+pLFYZSPHfI7RmIi2Iq4=";
   };
 
-  propagatedBuildInputs = [
+  dependencies = [
     numpy
     lightning-utilities
     packaging
+    pretty-errors
     py-deprecate
   ];
 
   # Let the user bring their own instance
-  buildInputs = [
-    torch
-  ];
+  buildInputs = [ torch ];
 
   nativeCheckInputs = [
     pytorch-lightning
@@ -83,17 +84,13 @@ buildPythonPackage {
     "src/torchmetrics"
   ];
 
-  pythonImportsCheck = [
-    "torchmetrics"
-  ];
+  pythonImportsCheck = [ "torchmetrics" ];
 
   meta = with lib; {
     description = "Machine learning metrics for distributed, scalable PyTorch applications (used in pytorch-lightning)";
     homepage = "https://lightning.ai/docs/torchmetrics/";
     changelog = "https://github.com/Lightning-AI/torchmetrics/releases/tag/v${version}";
     license = licenses.asl20;
-    maintainers = with maintainers; [
-      SomeoneSerge
-    ];
+    maintainers = with maintainers; [ SomeoneSerge ];
   };
 }
diff --git a/pkgs/development/python-modules/torchrl/default.nix b/pkgs/development/python-modules/torchrl/default.nix
index 591e59302ea6a..e075696881104 100644
--- a/pkgs/development/python-modules/torchrl/default.nix
+++ b/pkgs/development/python-modules/torchrl/default.nix
@@ -1,37 +1,48 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, ninja
-, setuptools
-, wheel
-, which
-, cloudpickle
-, numpy
-, torch
-, ale-py
-, gym
-, pygame
-, gymnasium
-, mujoco
-, moviepy
-, git
-, hydra-core
-, tensorboard
-, tqdm
-, wandb
-, packaging
-, tensordict
-, imageio
-, pytest-rerunfailures
-, pytestCheckHook
-, pyyaml
-, scipy
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  ninja,
+  setuptools,
+  wheel,
+  which,
+  cloudpickle,
+  numpy,
+  torch,
+  ale-py,
+  gym,
+  pygame,
+  torchsnapshot,
+  gymnasium,
+  mujoco,
+  h5py,
+  huggingface-hub,
+  minari,
+  pandas,
+  pillow,
+  requests,
+  scikit-learn,
+  torchvision,
+  tqdm,
+  moviepy,
+  git,
+  hydra-core,
+  tensorboard,
+  wandb,
+  packaging,
+  tensordict,
+  imageio,
+  pytest-rerunfailures,
+  pytestCheckHook,
+  pyyaml,
+  scipy,
+  stdenv,
 }:
 
 buildPythonPackage rec {
   pname = "torchrl";
-  version = "0.3.1";
+  version = "0.4.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -40,17 +51,17 @@ buildPythonPackage rec {
     owner = "pytorch";
     repo = "rl";
     rev = "refs/tags/v${version}";
-    hash = "sha256-lETW996IKPUGgZpe+cyzrXvVmDSwj5G4XFreFmGxReQ=";
+    hash = "sha256-8wSyyErqveP9zZS/UGvWVBYyylu9BuA447GEjXIzBIk=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     ninja
     setuptools
     wheel
     which
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     cloudpickle
     numpy
     packaging
@@ -64,13 +75,23 @@ buildPythonPackage rec {
       gym
       pygame
     ];
+    checkpointing = [ torchsnapshot ];
     gym-continuous = [
       gymnasium
       mujoco
     ];
-    rendering = [
-      moviepy
+    offline-data = [
+      h5py
+      huggingface-hub
+      minari
+      pandas
+      pillow
+      requests
+      scikit-learn
+      torchvision
+      tqdm
     ];
+    rendering = [ moviepy ];
     utils = [
       git
       hydra-core
@@ -85,9 +106,7 @@ buildPythonPackage rec {
     export D4RL_DATASET_DIR=$(mktemp -d)
   '';
 
-  pythonImportsCheck = [
-    "torchrl"
-  ];
+  pythonImportsCheck = [ "torchrl" ];
 
   # We have to delete the source because otherwise it is used instead of the installed package.
   preCheck = ''
@@ -96,17 +115,19 @@ buildPythonPackage rec {
     export XDG_RUNTIME_DIR=$(mktemp -d)
   '';
 
-  nativeCheckInputs = [
-    gymnasium
-    imageio
-    pytest-rerunfailures
-    pytestCheckHook
-    pyyaml
-    scipy
-  ]
-  ++ passthru.optional-dependencies.atari
-  ++ passthru.optional-dependencies.gym-continuous
-  ++ passthru.optional-dependencies.rendering;
+  nativeCheckInputs =
+    [
+      gymnasium
+      imageio
+      pytest-rerunfailures
+      pytestCheckHook
+      pyyaml
+      scipy
+      torchvision
+    ]
+    ++ passthru.optional-dependencies.atari
+    ++ passthru.optional-dependencies.gym-continuous
+    ++ passthru.optional-dependencies.rendering;
 
   disabledTests = [
     # mujoco.FatalError: an OpenGL platform library has not been loaded into this process, this most likely means that a valid OpenGL context has not been created before mjr_makeContext was called
@@ -129,13 +150,19 @@ buildPythonPackage rec {
     "test_trans_parallel_env_check"
     "test_trans_serial_env_check"
     "test_transform_env"
+
+    # undeterministic
+    "test_distributed_collector_updatepolicy"
+    "test_timeit"
   ];
 
   meta = with lib; {
-    description = "A modular, primitive-first, python-first PyTorch library for Reinforcement Learning";
+    description = "Modular, primitive-first, python-first PyTorch library for Reinforcement Learning";
     homepage = "https://github.com/pytorch/rl";
     changelog = "https://github.com/pytorch/rl/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ GaetanLepage ];
+    # ~3k tests fail with: RuntimeError: internal error
+    broken = stdenv.isLinux && stdenv.isAarch64;
   };
 }
diff --git a/pkgs/development/python-modules/torchsde/default.nix b/pkgs/development/python-modules/torchsde/default.nix
index 66e23a594f91f..32ad7a3931f1e 100644
--- a/pkgs/development/python-modules/torchsde/default.nix
+++ b/pkgs/development/python-modules/torchsde/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, boltons
-, numpy
-, scipy
-, torch
-, trampoline
+  # dependencies
+  boltons,
+  numpy,
+  scipy,
+  torch,
+  trampoline,
 
-# tests
-, pytest7CheckHook
+  # tests
+  pytest7CheckHook,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
       --replace "scipy==1.5.*" "scipy"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     boltons
@@ -48,9 +47,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "torchsde" ];
 
-  nativeCheckInputs = [
-    pytest7CheckHook
-  ];
+  nativeCheckInputs = [ pytest7CheckHook ];
 
   disabledTests = [
     # RuntimeError: a view of a leaf Variable that requires grad is being used in an in-place operation.
diff --git a/pkgs/development/python-modules/torchsnapshot/default.nix b/pkgs/development/python-modules/torchsnapshot/default.nix
new file mode 100644
index 0000000000000..dc1e66156a7ec
--- /dev/null
+++ b/pkgs/development/python-modules/torchsnapshot/default.nix
@@ -0,0 +1,71 @@
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  aiofiles,
+  aiohttp,
+  importlib-metadata,
+  nest-asyncio,
+  psutil,
+  pyyaml,
+  torch,
+  typing-extensions,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonAtLeast,
+  stdenv,
+}:
+
+buildPythonPackage rec {
+  pname = "torchsnapshot";
+  version = "0.1.0";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "pytorch";
+    repo = "torchsnapshot";
+    rev = "refs/tags/${version}";
+    hash = "sha256-F8OaxLH8BL6MPNLFv1hBuVmeEdnEQ5w2Qny6by1wP6k=";
+  };
+
+  build-system = [
+    setuptools
+    wheel
+  ];
+
+  dependencies = [
+    aiofiles
+    aiohttp
+    importlib-metadata
+    nest-asyncio
+    psutil
+    pyyaml
+    torch
+    typing-extensions
+  ];
+
+  pythonImportsCheck = [ "torchsnapshot" ];
+
+  nativeCheckInputs = [
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  meta = with lib; {
+    description = "Performant, memory-efficient checkpointing library for PyTorch applications, designed with large, complex distributed workloads in mind";
+    homepage = "https://github.com/pytorch/torchsnapshot/";
+    changelog = "https://github.com/pytorch/torchsnapshot/releases/tag/${version}";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ GaetanLepage ];
+    broken =
+      # https://github.com/pytorch/torchsnapshot/issues/175
+      pythonAtLeast "3.12"
+      # ModuleNotFoundError: No module named 'torch._C._distributed_c10d'; 'torch._C' is not a package
+      || stdenv.isDarwin;
+  };
+}
diff --git a/pkgs/development/python-modules/torchsummary/default.nix b/pkgs/development/python-modules/torchsummary/default.nix
new file mode 100644
index 0000000000000..8805e8fa2117b
--- /dev/null
+++ b/pkgs/development/python-modules/torchsummary/default.nix
@@ -0,0 +1,34 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  torch,
+}:
+
+buildPythonPackage rec {
+  pname = "torchsummary";
+  version = "1.5.1";
+  pyproject = true;
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-mBv2ieIuDPf5XHRgAvIKJK0mqmudhhE0oUvGzpIjBZA=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [ torch ];
+
+  # no tests in pypi tarball
+  doCheck = false;
+
+  pythonImportsCheck = [ "torchsummary" ];
+
+  meta = {
+    description = "Model summary in PyTorch similar to `model.summary()` in Keras";
+    homepage = "https://github.com/sksq96/pytorch-summary";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ tomasajt ];
+  };
+}
diff --git a/pkgs/development/python-modules/torchvision/bin.nix b/pkgs/development/python-modules/torchvision/bin.nix
index 70026bb363df8..fc731fae2e07e 100644
--- a/pkgs/development/python-modules/torchvision/bin.nix
+++ b/pkgs/development/python-modules/torchvision/bin.nix
@@ -1,23 +1,25 @@
-{ lib
-, stdenv
-, addOpenGLRunpath
-, autoPatchelfHook
-, buildPythonPackage
-, cudaPackages
-, fetchurl
-, pythonAtLeast
-, pythonOlder
-, pillow
-, python
-, torch-bin
+{
+  lib,
+  stdenv,
+  addOpenGLRunpath,
+  autoPatchelfHook,
+  buildPythonPackage,
+  cudaPackages,
+  fetchurl,
+  pythonAtLeast,
+  pythonOlder,
+  pillow,
+  python,
+  torch-bin,
 }:
 
 let
   pyVerNoDot = builtins.replaceStrings [ "." ] [ "" ] python.pythonVersion;
   srcs = import ./binary-hashes.nix version;
   unsupported = throw "Unsupported system";
-  version = "0.17.2";
-in buildPythonPackage {
+  version = "0.18.1";
+in
+buildPythonPackage {
   inherit version;
 
   pname = "torchvision";
@@ -26,21 +28,23 @@ in buildPythonPackage {
 
   src = fetchurl srcs."${stdenv.system}-${pyVerNoDot}" or unsupported;
 
-  disabled = (pythonOlder "3.8") || (pythonAtLeast "3.12");
+  disabled = (pythonOlder "3.8") || (pythonAtLeast "3.13");
 
   # Note that we don't rely on config.cudaSupport here, because the Linux wheels all come built with CUDA support.
-  buildInputs = with cudaPackages; lib.optionals stdenv.isLinux [
-    # $out/${sitePackages}/torchvision/_C.so wants libcudart.so.11.0 but torchvision.libs only ships
-    # libcudart.$hash.so.11.0
-    cuda_cudart
-  ];
+  buildInputs =
+    with cudaPackages;
+    lib.optionals stdenv.isLinux [
+      # $out/${sitePackages}/torchvision/_C.so wants libcudart.so.11.0 but torchvision.libs only ships
+      # libcudart.$hash.so.11.0
+      cuda_cudart
+    ];
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [
     autoPatchelfHook
     addOpenGLRunpath
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     pillow
     torch-bin
   ];
@@ -54,16 +58,20 @@ in buildPythonPackage {
     addAutoPatchelfSearchPath "${torch-bin}/${python.sitePackages}/torch"
   '';
 
-  meta = with lib; {
+  meta = {
     description = "PyTorch vision library";
     homepage = "https://pytorch.org/";
     changelog = "https://github.com/pytorch/vision/releases/tag/v${version}";
     # Includes CUDA and Intel MKL, but redistributions of the binary are not limited.
     # https://docs.nvidia.com/cuda/eula/index.html
     # https://www.intel.com/content/www/us/en/developer/articles/license/onemkl-license-faq.html
-    license = licenses.bsd3;
-    sourceProvenance = with sourceTypes; [ binaryNativeCode ];
-    platforms = [ "aarch64-darwin" "x86_64-darwin" "x86_64-linux" ];
-    maintainers = with maintainers; [ junjihashimoto ];
+    license = lib.licenses.bsd3;
+    sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
+    platforms = [
+      "aarch64-darwin"
+      "x86_64-linux"
+      "aarch64-linux"
+    ];
+    maintainers = with lib.maintainers; [ junjihashimoto ];
   };
 }
diff --git a/pkgs/development/python-modules/torchvision/binary-hashes.nix b/pkgs/development/python-modules/torchvision/binary-hashes.nix
index 3a5654b18ca7e..c3283f1c90b61 100644
--- a/pkgs/development/python-modules/torchvision/binary-hashes.nix
+++ b/pkgs/development/python-modules/torchvision/binary-hashes.nix
@@ -5,67 +5,83 @@
 
 # To add a new version, run "prefetch.sh 'new-version'" to paste the generated file as follows.
 
-version : builtins.getAttr version {
-  "0.17.2" = {
+version:
+builtins.getAttr version {
+  "0.18.1" = {
     x86_64-linux-38 = {
-      name = "torchvision-0.17.2-cp38-cp38-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchvision-0.17.2%2Bcu121-cp38-cp38-linux_x86_64.whl";
-      hash = "sha256-3450y7tN4KYPEc18KNggEWAnzTlJiT+XxVtvEjJr168=";
+      name = "torchvision-0.18.1-cp38-cp38-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.1%2Bcu121-cp38-cp38-linux_x86_64.whl";
+      hash = "sha256-ruiWHcuKQY6S0G1LPpr1KYcpOkjBQjHDxQyO6jdB5BI=";
     };
     x86_64-linux-39 = {
-      name = "torchvision-0.17.2-cp39-cp39-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchvision-0.17.2%2Bcu121-cp39-cp39-linux_x86_64.whl";
-      hash = "sha256-839ZLjEovz2ZloraWhKPEY+a7R2rYJ4nKscjEUb8aEM=";
+      name = "torchvision-0.18.1-cp39-cp39-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.1%2Bcu121-cp39-cp39-linux_x86_64.whl";
+      hash = "sha256-Hr9du9869EbITkK68u2+sb1vsMydO0kBr5acg5HRSl4=";
     };
     x86_64-linux-310 = {
-      name = "torchvision-0.17.2-cp310-cp310-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchvision-0.17.2%2Bcu121-cp310-cp310-linux_x86_64.whl";
-      hash = "sha256-wPMlY1+INPpV5pq2EHX7K7y7RTlamFu6HbN4sVYnEEs=";
+      name = "torchvision-0.18.1-cp310-cp310-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.1%2Bcu121-cp310-cp310-linux_x86_64.whl";
+      hash = "sha256-6VulosYWk5KB4Bur8RZk1tFyXoG7pX74H4HD5X5NQVE=";
     };
     x86_64-linux-311 = {
-      name = "torchvision-0.17.2-cp311-cp311-linux_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cu121/torchvision-0.17.2%2Bcu121-cp311-cp311-linux_x86_64.whl";
-      hash = "sha256-BZ+GocjSsnayZshKj1qSzIQm1DwqLCSNxzwUCrOoIvM=";
+      name = "torchvision-0.18.1-cp311-cp311-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.1%2Bcu121-cp311-cp311-linux_x86_64.whl";
+      hash = "sha256-KyrsLGjguhf57tiSF5b6Lbx6ST3qejtF0lwFWtQXSGg=";
     };
-    x86_64-darwin-38 = {
-      name = "torchvision-0.17.2-cp38-cp38-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.2-cp38-cp38-macosx_10_13_x86_64.whl";
-      hash = "sha256-uDqsjXj0iYEUbVghaNdbbJR8+wp2k/duIZ8ZJvbllaM=";
-    };
-    x86_64-darwin-39 = {
-      name = "torchvision-0.17.2-cp39-cp39-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.2-cp39-cp39-macosx_10_13_x86_64.whl";
-      hash = "sha256-SGi7+lV1jIEH5poOfdXne4kFYDXNOLdnrVuYzbccDw0=";
-    };
-    x86_64-darwin-310 = {
-      name = "torchvision-0.17.2-cp310-cp310-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.2-cp310-cp310-macosx_10_13_x86_64.whl";
-      hash = "sha256-HykQ/jwhrWh1snINRvrYNbLkszbpVT0xyjZNJMkLHU8=";
-    };
-    x86_64-darwin-311 = {
-      name = "torchvision-0.17.2-cp311-cp311-macosx_10_9_x86_64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.2-cp311-cp311-macosx_10_13_x86_64.whl";
-      hash = "sha256-m4PlXufQoXBPUrnArIc4jnptHZimveews1+atU172lQ=";
+    x86_64-linux-312 = {
+      name = "torchvision-0.18.1-cp312-cp312-linux_x86_64.whl";
+      url = "https://download.pytorch.org/whl/cu121/torchvision-0.18.1%2Bcu121-cp312-cp312-linux_x86_64.whl";
+      hash = "sha256-zo1bmSBW8GQKOe9XNDQuQ8pKgBVH3if7jbwwVdk0WUc=";
     };
     aarch64-darwin-38 = {
-      name = "torchvision-0.17.2-cp38-cp38-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.2-cp38-cp38-macosx_11_0_arm64.whl";
-      hash = "sha256-Hs5AVX4SLXmXWGCgBap+Kp4ubDUKA+eKAOwUUAgzEv0=";
+      name = "torchvision-0.18.1-cp38-cp38-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp38-cp38-macosx_11_0_arm64.whl";
+      hash = "sha256-scOGT6k3jIi86K0O81mfTyU5eJfOYS4cJFx0uXCS814=";
     };
     aarch64-darwin-39 = {
-      name = "torchvision-0.17.2-cp39-cp39-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.2-cp39-cp39-macosx_11_0_arm64.whl";
-      hash = "sha256-79bQ3QZo4V0Bos/63HQGhDOzLLz1aS4MSqFfxcslDOc=";
+      name = "torchvision-0.18.1-cp39-cp39-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp39-cp39-macosx_11_0_arm64.whl";
+      hash = "sha256-l1uFlMD1KIh1QIrLt0lG7qeGxbAI0SnA0EXQ6tI3Qrw=";
     };
     aarch64-darwin-310 = {
-      name = "torchvision-0.17.2-cp310-cp310-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.2-cp310-cp310-macosx_11_0_arm64.whl";
-      hash = "sha256-7MHFA/qKVPurd34Gp8IoAyuKt47+vzWyi8jyL1RPUfE=";
+      name = "torchvision-0.18.1-cp310-cp310-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp310-cp310-macosx_11_0_arm64.whl";
+      hash = "sha256-PmlOVLBUja2ZwSr2vwyOTzNQE305Hc0ZryKhxfiTIrM=";
     };
     aarch64-darwin-311 = {
-      name = "torchvision-0.17.2-cp311-cp311-macosx_11_0_arm64.whl";
-      url = "https://download.pytorch.org/whl/cpu/torchvision-0.17.2-cp311-cp311-macosx_11_0_arm64.whl";
-      hash = "sha256-4DEAShvEMsmAp71kL2wYmj78MW5CP8MLVWmDcWak4o0=";
+      name = "torchvision-0.18.1-cp311-cp311-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp311-cp311-macosx_11_0_arm64.whl";
+      hash = "sha256-gLXXlN0P26eHrcIvGjZ6Xq1FIydoZHPLJg3ZQ2S8VqY=";
+    };
+    aarch64-darwin-312 = {
+      name = "torchvision-0.18.1-cp312-cp312-macosx_11_0_arm64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp312-cp312-macosx_11_0_arm64.whl";
+      hash = "sha256-K+bwv3xFXImlGh27b2aNNsbtxHn0mskS10XRDfVxVlc=";
+    };
+    aarch64-linux-38 = {
+      name = "torchvision-0.18.1-cp38-cp38-linux_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp38-cp38-linux_aarch64.whl";
+      hash = "sha256-lybDFqJQHfhQPlpdxGpjGv1MUVqViXLlt/e5yH0hJcA=";
+    };
+    aarch64-linux-39 = {
+      name = "torchvision-0.18.1-cp39-cp39-linux_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp39-cp39-linux_aarch64.whl";
+      hash = "sha256-VL/NNSq7OW1cnCN9IAFnwXi9E2BRsTjh6O9GzjZ8J3M=";
+    };
+    aarch64-linux-310 = {
+      name = "torchvision-0.18.1-cp310-cp310-linux_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp310-cp310-linux_aarch64.whl";
+      hash = "sha256-Vz/1I8c5QF7bCF9ly1kvSC0oow4psL5MS6CAQLOueF8=";
+    };
+    aarch64-linux-311 = {
+      name = "torchvision-0.18.1-cp311-cp311-linux_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp311-cp311-linux_aarch64.whl";
+      hash = "sha256-zrmTqILxrnrjc+05wo1+PoAiBbDlmn7YTvQCjwu6jX8=";
+    };
+    aarch64-linux-312 = {
+      name = "torchvision-0.18.1-cp312-cp312-linux_aarch64.whl";
+      url = "https://download.pytorch.org/whl/cpu/torchvision-0.18.1-cp312-cp312-linux_aarch64.whl";
+      hash = "sha256-E9JNkE9l5i1moeDEH67GMLwZOGe4pKARZnaeio6N+Ok=";
     };
   };
 }
diff --git a/pkgs/development/python-modules/torchvision/default.nix b/pkgs/development/python-modules/torchvision/default.nix
index 496a8c08710b0..ea0453b8bc597 100644
--- a/pkgs/development/python-modules/torchvision/default.nix
+++ b/pkgs/development/python-modules/torchvision/default.nix
@@ -1,15 +1,16 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
-, libjpeg_turbo
-, libpng
-, ninja
-, numpy
-, pillow
-, pytest
-, scipy
-, torch
-, which
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  libjpeg_turbo,
+  libpng,
+  ninja,
+  numpy,
+  pillow,
+  pytest,
+  scipy,
+  torch,
+  which,
 }:
 
 let
@@ -17,7 +18,7 @@ let
   inherit (cudaPackages) backendStdenv;
 
   pname = "torchvision";
-  version = "0.17.2";
+  version = "0.18.1";
 in
 buildPythonPackage {
   inherit pname version;
@@ -26,33 +27,41 @@ buildPythonPackage {
     owner = "pytorch";
     repo = "vision";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Y7TkdbdrdiXQO2pBkUePCLw1EYQjsAqkV2OTMzxbU78=";
+    hash = "sha256-aFm6CyoMA8HtpOAVF5Q35n3JRaOXYswWEqfooORUKsw=";
   };
 
   nativeBuildInputs = [
     libpng
     ninja
     which
-  ] ++ lib.optionals cudaSupport [
-    cudaPackages.cuda_nvcc
-  ];
+  ] ++ lib.optionals cudaSupport [ cudaPackages.cuda_nvcc ];
 
-  buildInputs = [ libjpeg_turbo libpng torch.cxxdev ];
+  buildInputs = [
+    libjpeg_turbo
+    libpng
+    torch.cxxdev
+  ];
 
-  propagatedBuildInputs = [ numpy pillow torch scipy ];
+  dependencies = [
+    numpy
+    pillow
+    torch
+    scipy
+  ];
 
-  preConfigure = ''
-    export TORCHVISION_INCLUDE="${libjpeg_turbo.dev}/include/"
-    export TORCHVISION_LIBRARY="${libjpeg_turbo}/lib/"
-  ''
-  # NOTE: We essentially override the compilers provided by stdenv because we don't have a hook
-  #   for cudaPackages to swap in compilers supported by NVCC.
-  + lib.optionalString cudaSupport ''
-    export CC=${backendStdenv.cc}/bin/cc
-    export CXX=${backendStdenv.cc}/bin/c++
-    export TORCH_CUDA_ARCH_LIST="${lib.concatStringsSep ";" cudaCapabilities}"
-    export FORCE_CUDA=1
-  '';
+  preConfigure =
+    ''
+      export TORCHVISION_INCLUDE="${libjpeg_turbo.dev}/include/"
+      export TORCHVISION_LIBRARY="${libjpeg_turbo}/lib/"
+    ''
+    # NOTE: We essentially override the compilers provided by stdenv because we don't have a hook
+    #   for cudaPackages to swap in compilers supported by NVCC.
+    + lib.optionalString cudaSupport ''
+      export CC=${backendStdenv.cc}/bin/cc
+      export CXX=${backendStdenv.cc}/bin/c++
+      export TORCH_CUDA_ARCH_LIST="${lib.concatStringsSep ";" cudaCapabilities}"
+      export FORCE_CUDA=1
+    '';
 
   # tries to download many datasets for tests
   doCheck = false;
@@ -64,11 +73,11 @@ buildPythonPackage {
 
   nativeCheckInputs = [ pytest ];
 
-  meta = with lib; {
+  meta = {
     description = "PyTorch vision library";
     homepage = "https://pytorch.org/";
-    license = licenses.bsd3;
-    platforms = with platforms; linux ++ lib.optionals (!cudaSupport) darwin;
-    maintainers = with maintainers; [ ericsagnes ];
+    license = lib.licenses.bsd3;
+    platforms = with lib.platforms; linux ++ lib.optionals (!cudaSupport) darwin;
+    maintainers = with lib.maintainers; [ ericsagnes ];
   };
 }
diff --git a/pkgs/development/python-modules/torchvision/prefetch.sh b/pkgs/development/python-modules/torchvision/prefetch.sh
index e80718a50530e..47ccbd935c8a0 100755
--- a/pkgs/development/python-modules/torchvision/prefetch.sh
+++ b/pkgs/development/python-modules/torchvision/prefetch.sh
@@ -14,14 +14,17 @@ url_and_key_list=(
   "x86_64-linux-39 $linux_bucket/torchvision-${version}%2B${linux_cuda_version}-cp39-cp39-linux_x86_64.whl torchvision-${version}-cp39-cp39-linux_x86_64.whl"
   "x86_64-linux-310 $linux_bucket/torchvision-${version}%2B${linux_cuda_version}-cp310-cp310-linux_x86_64.whl torchvision-${version}-cp310-cp310-linux_x86_64.whl"
   "x86_64-linux-311 $linux_bucket/torchvision-${version}%2B${linux_cuda_version}-cp311-cp311-linux_x86_64.whl torchvision-${version}-cp311-cp311-linux_x86_64.whl"
-  "x86_64-darwin-38 $darwin_bucket/torchvision-${version}-cp38-cp38-macosx_10_13_x86_64.whl torchvision-${version}-cp38-cp38-macosx_10_9_x86_64.whl"
-  "x86_64-darwin-39 $darwin_bucket/torchvision-${version}-cp39-cp39-macosx_10_13_x86_64.whl torchvision-${version}-cp39-cp39-macosx_10_9_x86_64.whl"
-  "x86_64-darwin-310 $darwin_bucket/torchvision-${version}-cp310-cp310-macosx_10_13_x86_64.whl torchvision-${version}-cp310-cp310-macosx_10_9_x86_64.whl"
-  "x86_64-darwin-311 $darwin_bucket/torchvision-${version}-cp311-cp311-macosx_10_13_x86_64.whl torchvision-${version}-cp311-cp311-macosx_10_9_x86_64.whl"
+  "x86_64-linux-312 $linux_bucket/torchvision-${version}%2B${linux_cuda_version}-cp312-cp312-linux_x86_64.whl torchvision-${version}-cp312-cp312-linux_x86_64.whl"
   "aarch64-darwin-38 $darwin_bucket/torchvision-${version}-cp38-cp38-macosx_11_0_arm64.whl torchvision-${version}-cp38-cp38-macosx_11_0_arm64.whl"
   "aarch64-darwin-39 $darwin_bucket/torchvision-${version}-cp39-cp39-macosx_11_0_arm64.whl torchvision-${version}-cp39-cp39-macosx_11_0_arm64.whl"
   "aarch64-darwin-310 $darwin_bucket/torchvision-${version}-cp310-cp310-macosx_11_0_arm64.whl torchvision-${version}-cp310-cp310-macosx_11_0_arm64.whl"
   "aarch64-darwin-311 $darwin_bucket/torchvision-${version}-cp311-cp311-macosx_11_0_arm64.whl torchvision-${version}-cp311-cp311-macosx_11_0_arm64.whl"
+  "aarch64-darwin-312 $darwin_bucket/torchvision-${version}-cp312-cp312-macosx_11_0_arm64.whl torchvision-${version}-cp312-cp312-macosx_11_0_arm64.whl"
+  "aarch64-linux-38 $darwin_bucket/torchvision-${version}-cp38-cp38-linux_aarch64.whl torchvision-${version}-cp38-cp38-linux_aarch64.whl"
+  "aarch64-linux-39 $darwin_bucket/torchvision-${version}-cp39-cp39-linux_aarch64.whl torchvision-${version}-cp39-cp39-linux_aarch64.whl"
+  "aarch64-linux-310 $darwin_bucket/torchvision-${version}-cp310-cp310-linux_aarch64.whl torchvision-${version}-cp310-cp310-linux_aarch64.whl"
+  "aarch64-linux-311 $darwin_bucket/torchvision-${version}-cp311-cp311-linux_aarch64.whl torchvision-${version}-cp311-cp311-linux_aarch64.whl"
+  "aarch64-linux-312 $darwin_bucket/torchvision-${version}-cp312-cp312-linux_aarch64.whl torchvision-${version}-cp312-cp312-linux_aarch64.whl"
 )
 
 hashfile="binary-hashes-$version.nix"
diff --git a/pkgs/development/python-modules/tornado/4.nix b/pkgs/development/python-modules/tornado/4.nix
index 7476a22792eef..0381e25d953e8 100644
--- a/pkgs/development/python-modules/tornado/4.nix
+++ b/pkgs/development/python-modules/tornado/4.nix
@@ -1,10 +1,11 @@
-{ lib
-, unittestCheckHook
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, isPy27
-, pythonAtLeast
+{
+  lib,
+  unittestCheckHook,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  isPy27,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -34,7 +35,7 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = {
-    description = "A web framework and asynchronous networking library";
+    description = "Web framework and asynchronous networking library";
     homepage = "https://www.tornadoweb.org/";
     license = lib.licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/tornado/5.nix b/pkgs/development/python-modules/tornado/5.nix
index 8ba3a8c073ba2..a1b0d8979e208 100644
--- a/pkgs/development/python-modules/tornado/5.nix
+++ b/pkgs/development/python-modules/tornado/5.nix
@@ -1,10 +1,11 @@
-{ lib
-, unittestCheckHook
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, isPy27
-, pythonAtLeast
+{
+  lib,
+  unittestCheckHook,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  isPy27,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -34,7 +35,7 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = {
-    description = "A web framework and asynchronous networking library";
+    description = "Web framework and asynchronous networking library";
     homepage = "https://www.tornadoweb.org/";
     license = lib.licenses.asl20;
   };
diff --git a/pkgs/development/python-modules/tornado/default.nix b/pkgs/development/python-modules/tornado/default.nix
index 75187d12d29f3..38afe65df6cf2 100644
--- a/pkgs/development/python-modules/tornado/default.nix
+++ b/pkgs/development/python-modules/tornado/default.nix
@@ -1,37 +1,38 @@
-{ lib
-, python
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
 
-# for passthru.tests
-, distributed
-, jupyter-server
-, jupyterlab
-, matplotlib
-, mitmproxy
-, pytest-tornado
-, pytest-tornasync
-, pyzmq
-, sockjs-tornado
-, urllib3
+  # for passthru.tests
+  distributed,
+  jupyter-server,
+  jupyterlab,
+  matplotlib,
+  mitmproxy,
+  pytest-tornado,
+  pytest-tornasync,
+  pyzmq,
+  sockjs-tornado,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "tornado";
-  version = "6.3.3";
-  format = "setuptools";
+  version = "6.4.1";
+  pyproject = true;
 
   src = fetchFromGitHub {
     owner = "tornadoweb";
     repo = "tornado";
     rev = "v${version}";
-    hash = "sha256-l9Ce/c2wDSmsySr9yXu5Fl/+63QkQay46aDSUTJmetA=";
+    hash = "sha256-vWiTLKL5gzrf3J6T3u8I1HHg5Ww0sf5ybSbZX6G3UXM=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTestPaths = [
     # additional tests that have extra dependencies, run slowly, or produce more output than a simple pass/fail
@@ -62,11 +63,12 @@ buildPythonPackage rec {
       pytest-tornasync
       pyzmq
       sockjs-tornado
-      urllib3;
+      urllib3
+      ;
   };
 
   meta = with lib; {
-    description = "A web framework and asynchronous networking library";
+    description = "Web framework and asynchronous networking library";
     homepage = "https://www.tornadoweb.org/";
     license = licenses.asl20;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/torpy/default.nix b/pkgs/development/python-modules/torpy/default.nix
index cfaaef421926f..d6f257dfa9ad3 100644
--- a/pkgs/development/python-modules/torpy/default.nix
+++ b/pkgs/development/python-modules/torpy/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, cryptography
-, pytestCheckHook
-, requests
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  cryptography,
+  pytestCheckHook,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -24,20 +25,16 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     cryptography
     requests
-   ];
-
-  nativeCheckInputs = [
-    pytestCheckHook
   ];
 
+  nativeCheckInputs = [ pytestCheckHook ];
+
   disabledTestPaths = [
     # requires network
     "tests/integration"
   ];
 
-  pythonImportsCheck = [
-    "cryptography"
-  ];
+  pythonImportsCheck = [ "cryptography" ];
 
   meta = with lib; {
     description = "Pure python Tor client";
diff --git a/pkgs/development/python-modules/torrent-parser/default.nix b/pkgs/development/python-modules/torrent-parser/default.nix
index bd46ea57e0fba..baa2fbe76b214 100644
--- a/pkgs/development/python-modules/torrent-parser/default.nix
+++ b/pkgs/development/python-modules/torrent-parser/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -11,30 +12,24 @@ buildPythonPackage rec {
   pyproject = true;
 
   src = fetchFromGitHub {
-    owner  = "7sDream";
-    repo   = "torrent_parser";
-    rev    = "v${version}";
+    owner = "7sDream";
+    repo = "torrent_parser";
+    rev = "v${version}";
     hash = "sha256-zM738r3o9dGZYoWLN7fM4E06m6YPcAODEkgDS6wU/Sc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "torrent_parser"
-  ];
+  pythonImportsCheck = [ "torrent_parser" ];
 
   meta = {
-    description = "A .torrent file parser and creator for both Python 2 and 3";
+    description = ".torrent file parser and creator for both Python 2 and 3";
     mainProgram = "pytp";
-    homepage    = "https://github.com/7sDream/torrent_parser";
+    homepage = "https://github.com/7sDream/torrent_parser";
     changelog = "https://github.com/7sDream/torrent_parser/blob/${src.rev}/CHANGELOG.md";
-    license     = lib.licenses.mit;
+    license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/torrequest/default.nix b/pkgs/development/python-modules/torrequest/default.nix
index 90a0ab747a88a..18fc52c24aa66 100644
--- a/pkgs/development/python-modules/torrequest/default.nix
+++ b/pkgs/development/python-modules/torrequest/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, requests, pysocks, stem }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  pysocks,
+  stem,
+}:
 
 buildPythonPackage rec {
   pname = "torrequest";
@@ -11,15 +18,15 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [
-    pysocks requests stem
+    pysocks
+    requests
+    stem
   ];
 
   # This package does not contain any tests.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "torrequest"
-  ];
+  pythonImportsCheck = [ "torrequest" ];
 
   meta = with lib; {
     homepage = "https://github.com/erdiaker/torrequest";
diff --git a/pkgs/development/python-modules/total-connect-client/default.nix b/pkgs/development/python-modules/total-connect-client/default.nix
index e7b85cf199b60..6770e65194cc2 100644
--- a/pkgs/development/python-modules/total-connect-client/default.nix
+++ b/pkgs/development/python-modules/total-connect-client/default.nix
@@ -1,41 +1,34 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, zeep
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  zeep,
 }:
 
 buildPythonPackage rec {
   pname = "total-connect-client";
-  version = "2024.4";
+  version = "2024.5";
   pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "craigjmidwinter";
     repo = "total-connect-client";
     rev = "refs/tags/${version}";
-    hash = "sha256-LuPyhidbAzt/AU5WuXyxggGxjm9yArHsbn6iAaccMEc=";
+    hash = "sha256-NGiI4gn59U7NiRYtB6UydxOu+lVtmbl8qF3nbAjiYwk=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    zeep
-  ];
+  dependencies = [ zeep ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "total_connect_client"
-  ];
+  pythonImportsCheck = [ "total_connect_client" ];
 
   meta = with lib; {
     description = "Interact with Total Connect 2 alarm systems";
diff --git a/pkgs/development/python-modules/towncrier/default.nix b/pkgs/development/python-modules/towncrier/default.nix
index 507160291b568..6bd00159fd8e0 100644
--- a/pkgs/development/python-modules/towncrier/default.nix
+++ b/pkgs/development/python-modules/towncrier/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchPypi
-, git # shells out to git
-, hatchling
-, importlib-resources
-, incremental
-, jinja2
-, mock
-, pytestCheckHook
-, pythonOlder
-, tomli
-, twisted
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchPypi,
+  git, # shells out to git
+  hatchling,
+  importlib-resources,
+  incremental,
+  jinja2,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
+  tomli,
+  twisted,
 }:
 
 buildPythonPackage rec {
@@ -31,19 +32,16 @@ buildPythonPackage rec {
       --replace "hatchling ~= 1.17.1" "hatchling"
   '';
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = [
-    click
-    incremental
-    jinja2
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-resources
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  propagatedBuildInputs =
+    [
+      click
+      incremental
+      jinja2
+    ]
+    ++ lib.optionals (pythonOlder "3.10") [ importlib-resources ]
+    ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   preCheck = ''
     export PATH=$out/bin:$PATH
@@ -56,9 +54,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "towncrier"
-  ];
+  pythonImportsCheck = [ "towncrier" ];
 
   meta = with lib; {
     description = "Utility to produce useful, summarised news files";
diff --git a/pkgs/development/python-modules/tox/default.nix b/pkgs/development/python-modules/tox/default.nix
index b534a4baed876..b143ab8d8563d 100644
--- a/pkgs/development/python-modules/tox/default.nix
+++ b/pkgs/development/python-modules/tox/default.nix
@@ -1,37 +1,38 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, packaging
-, pluggy
-, py
-, six
-, virtualenv
-, setuptools-scm
-, toml
-, tomli
-, filelock
-, hatchling
-, hatch-vcs
-, platformdirs
-, pyproject-api
-, colorama
-, chardet
-, cachetools
-, testers
-, tox
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  packaging,
+  pluggy,
+  py,
+  six,
+  virtualenv,
+  setuptools-scm,
+  toml,
+  tomli,
+  filelock,
+  hatchling,
+  hatch-vcs,
+  platformdirs,
+  pyproject-api,
+  colorama,
+  chardet,
+  cachetools,
+  testers,
+  tox,
 }:
 
 buildPythonPackage rec {
   pname = "tox";
-  version = "4.15.0";
+  version = "4.15.1";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "tox-dev";
     repo = "tox";
     rev = "refs/tags/${version}";
-    hash = "sha256-aKk3a0RAcLyrHK6I3Q7rcBdZVJGNBXsBqA8N7Kpdrms=";
+    hash = "sha256-BLOxyvcC3ngQDVSMaw/NfLVbFkIHbTmhUOOVBqlcK/Q=";
   };
 
   postPatch = ''
@@ -57,9 +58,7 @@ buildPythonPackage rec {
     six
     toml
     virtualenv
-  ]  ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   doCheck = false; # infinite recursion via devpi-client
 
@@ -69,7 +68,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/tox-dev/tox/releases/tag/${version}";
-    description = "A generic virtualenv management and test command line tool";
+    description = "Generic virtualenv management and test command line tool";
     mainProgram = "tox";
     homepage = "https://github.com/tox-dev/tox";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/tplink-omada-client/default.nix b/pkgs/development/python-modules/tplink-omada-client/default.nix
index cea4b17679cec..eb53e74cebb6b 100644
--- a/pkgs/development/python-modules/tplink-omada-client/default.nix
+++ b/pkgs/development/python-modules/tplink-omada-client/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, awesomeversion
-, buildPythonPackage
-, fetchPypi
-, hatchling
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  awesomeversion,
+  buildPythonPackage,
+  fetchPypi,
+  hatchling,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-P7kb8gzPjRwl6KpKbh/k7QqjGU6m+HVBbMCuoabG+5M=";
   };
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
   dependencies = [
     aiohttp
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Module have no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "tplink_omada_client"
-  ];
+  pythonImportsCheck = [ "tplink_omada_client" ];
 
   meta = with lib; {
     description = "Library for the TP-Link Omada SDN Controller API";
diff --git a/pkgs/development/python-modules/tpm2-pytss/default.nix b/pkgs/development/python-modules/tpm2-pytss/default.nix
index 7b5fd56b0a109..02494a535bfd6 100644
--- a/pkgs/development/python-modules/tpm2-pytss/default.nix
+++ b/pkgs/development/python-modules/tpm2-pytss/default.nix
@@ -1,22 +1,24 @@
-{ lib
-, stdenv
-, substituteAll
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, asn1crypto
-, cffi
-, cryptography
-, pkgconfig # see nativeBuildInputs
-, pkg-config # see nativeBuildInputs
-, pycparser
-, pytestCheckHook
-, python
-, pyyaml
-, setuptools-scm
-, tpm2-tss
-, tpm2-tools
-, swtpm
+{
+  lib,
+  stdenv,
+  fetchurl,
+  substituteAll,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  asn1crypto,
+  cffi,
+  cryptography,
+  pkgconfig, # see nativeBuildInputs
+  pkg-config, # see nativeBuildInputs
+  pycparser,
+  pytestCheckHook,
+  python,
+  pyyaml,
+  setuptools-scm,
+  tpm2-tss,
+  tpm2-tools,
+  swtpm,
 }:
 
 let
@@ -34,22 +36,27 @@ buildPythonPackage rec {
     hash = "sha256-uPFUc0IvN39ZxyF9zRR5FlzOYt+jOTTsl2oni68unv4=";
   };
 
-  patches = [
-    # Fix hardcoded `fapi-config.json` configuration path
-    ./fapi-config.patch
-  ] ++ lib.optionals isCross [
-    # pytss will regenerate files from headers of tpm2-tss.
-    # Those headers are fed through a compiler via pycparser. pycparser expects `cpp`
-    # to be in the path.
-    # This is put in the path via stdenv when not cross-compiling, but this is absent
-    # when cross-compiling is turned on.
-    # This patch changes the call to pycparser.preprocess_file to provide the name
-    # of the cross-compiling cpp
-    (substituteAll {
-      src = ./cross.patch;
-      crossPrefix = stdenv.hostPlatform.config;
-    })
-  ];
+  patches =
+    [
+      # Fix hardcoded `fapi-config.json` configuration path
+      ./fapi-config.patch
+      # Backport for https://github.com/tpm2-software/tpm2-pytss/pull/576
+      # This is likely to be dropped with the next major release (>= 2.3)
+      ./pr576-backport.patch
+    ]
+    ++ lib.optionals isCross [
+      # pytss will regenerate files from headers of tpm2-tss.
+      # Those headers are fed through a compiler via pycparser. pycparser expects `cpp`
+      # to be in the path.
+      # This is put in the path via stdenv when not cross-compiling, but this is absent
+      # when cross-compiling is turned on.
+      # This patch changes the call to pycparser.preprocess_file to provide the name
+      # of the cross-compiling cpp
+      (substituteAll {
+        src = ./cross.patch;
+        crossPrefix = stdenv.hostPlatform.config;
+      })
+    ];
 
   postPatch = ''
     sed -i "s#@TPM2_TSS@#${tpm2-tss.out}#" src/tpm2_pytss/FAPI.py
@@ -59,9 +66,7 @@ buildPythonPackage rec {
   # due to pycparsing handling it poorly.
   # See https://github.com/NixOS/nixpkgs/issues/252023
   # for more details.
-  hardeningDisable = [
-    "fortify"
-  ];
+  hardeningDisable = [ "fortify" ];
 
   nativeBuildInputs = [
     cffi
@@ -70,9 +75,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  buildInputs = [
-    tpm2-tss
-  ];
+  buildInputs = [ tpm2-tss ];
 
   propagatedBuildInputs = [
     cffi
@@ -89,9 +92,7 @@ buildPythonPackage rec {
     swtpm
   ];
 
-  pythonImportsCheck = [
-    "tpm2_pytss"
-  ];
+  pythonImportsCheck = [ "tpm2_pytss" ];
 
   meta = with lib; {
     homepage = "https://github.com/tpm2-software/tpm2-pytss";
diff --git a/pkgs/development/python-modules/tpm2-pytss/pr576-backport.patch b/pkgs/development/python-modules/tpm2-pytss/pr576-backport.patch
new file mode 100644
index 0000000000000..ee04701f39314
--- /dev/null
+++ b/pkgs/development/python-modules/tpm2-pytss/pr576-backport.patch
@@ -0,0 +1,117 @@
+Backport for https://github.com/tpm2-software/tpm2-pytss/pull/576 on 2.2.1
+
+diff --git a/scripts/prepare_headers.py b/scripts/prepare_headers.py
+index 6ca9b64..a7529b3 100644
+--- a/scripts/prepare_headers.py
++++ b/scripts/prepare_headers.py
+@@ -32,6 +32,7 @@ def remove_common_guards(s):
+ 
+     # Restructure #defines with ...
+     s = re.sub("(#define [A-Za-z0-9_]+) +\(\(.*?\) \(.*?\)\)", "\g<1>...", s)
++    s = re.sub("(#define [A-Za-z0-9_]+) +\(\(\(.*?\) .*\)", "\g<1>...", s)
+     s = re.sub("(#define [A-Za-z0-9_]+) +\(\(.*?\).*?\) ", "\g<1>...", s)
+     s = re.sub(
+         "(#define [A-Za-z0-9_]+) .*\n.*?.*\)\)", "\g<1>...", s, flags=re.MULTILINE
+diff --git a/src/tpm2_pytss/internal/crypto.py b/src/tpm2_pytss/internal/crypto.py
+index 42030c5..f9d8c34 100644
+--- a/src/tpm2_pytss/internal/crypto.py
++++ b/src/tpm2_pytss/internal/crypto.py
+@@ -25,6 +25,7 @@ from cryptography.hazmat.backends import default_backend
+ from cryptography.exceptions import UnsupportedAlgorithm, InvalidSignature
+ from typing import Tuple, Type, Any
+ import secrets
++import inspect
+ import sys
+ 
+ _curvetable = (
+diff --git a/test/test_encoding.py b/test/test_encoding.py
+index 1f58562..8cf4b51 100644
+--- a/test/test_encoding.py
++++ b/test/test_encoding.py
+@@ -1406,7 +1406,7 @@ class ToolsTest(TSS2_BaseTest):
+     def test_tools_decode_tpm2b_name(self):
+         if not self.has_tools:
+             self.skipTest("tools not in path")
+-        key = ec.generate_private_key(ec.SECP256R1).public_key()
++        key = ec.generate_private_key(ec.SECP256R1()).public_key()
+         kb = key.public_bytes(
+             serialization.Encoding.PEM, serialization.PublicFormat.SubjectPublicKeyInfo
+         )
+diff --git a/test/test_fapi.py b/test/test_fapi.py
+index f702fc9..6b77c66 100644
+--- a/test/test_fapi.py
++++ b/test/test_fapi.py
+@@ -13,7 +13,7 @@ from cryptography.hazmat.primitives.asymmetric.padding import PSS
+ 
+ from tpm2_pytss import *
+ 
+-from tpm2_pytss.internal.utils import is_bug_fixed, _lib_version_atleast
++from tpm2_pytss.internal.utils import is_bug_fixed
+ 
+ from .TSS2_BaseTest import TpmSimulator
+ from tpm2_pytss.TSS2_Exception import TSS2_Exception
+@@ -614,8 +614,7 @@ class Common:
+         self.fapi.sign(key_path, b"\x22" * 32)
+ 
+     @pytest.mark.skipif(
+-        _lib_version_atleast("tss2-fapi", "4.0.1-170")
+-        or not is_bug_fixed(fixed_in="3.2", backports=["2.4.7", "3.0.5", "3.1.1"]),
++        not is_bug_fixed(fixed_in="3.2", backports=["2.4.7", "3.0.5", "3.1.1"]),
+         reason="tpm2-tss bug, see #2084",
+     )
+     def test_write_authorize_nv(self, esys):
+@@ -662,8 +661,7 @@ class Common:
+             self.fapi.quote(path=key_path, pcrs=[7, 9])
+ 
+     @pytest.mark.skipif(
+-        _lib_version_atleast("tss2-fapi", "4.0.1-170")
+-        or not is_bug_fixed(fixed_in="3.2", backports=["2.4.7", "3.0.5", "3.1.1"]),
++        not is_bug_fixed(fixed_in="3.2", backports=["2.4.7", "3.0.5", "3.1.1"]),
+         reason="tpm2-tss bug, see #2084",
+     )
+     def test_authorize_policy(self, sign_key):
+@@ -728,9 +726,7 @@ class Common:
+             self.fapi.quote(path=key_path, pcrs=[7, 9])
+ 
+     @pytest.mark.skipif(
+-        _lib_version_atleast("tss2-fapi", "4.0.1-170")
+-        or not is_bug_fixed(fixed_in="3.2"),
+-        reason="tpm2-tss bug, see #2080",
++        not is_bug_fixed(fixed_in="3.2"), reason="tpm2-tss bug, see #2080"
+     )
+     def test_policy_signed(self, cryptography_key):
+         # create external signing key used by the signing authority external to the TPM
+@@ -792,10 +788,6 @@ class Common:
+         with pytest.raises(TSS2_Exception):
+             self.fapi.sign(path=key_path, digest=b"\x11" * 32)
+ 
+-    @pytest.mark.skipif(
+-        _lib_version_atleast("tss2-fapi", "4.0.1-170"),
+-        reason="issue on master branch.",
+-    )
+     def test_policy_branched(self):
+         pcr_index = 15
+         pcr_data = b"ABCDEF"
+@@ -913,8 +905,7 @@ class Common:
+         self.fapi.delete(path=nv_path)
+ 
+     @pytest.mark.skipif(
+-        _lib_version_atleast("tss2-fapi", "4.0.1-170")
+-        or not is_bug_fixed(fixed_in="3.2", backports=["2.4.7", "3.0.5", "3.1.1"]),
++        not is_bug_fixed(fixed_in="3.2", backports=["2.4.7", "3.0.5", "3.1.1"]),
+         reason="tpm2-tss bug, see #2089",
+     )
+     def test_policy_action(self):
+diff --git a/test/test_policy.py b/test/test_policy.py
+index f18aa8a..5f56e21 100644
+--- a/test/test_policy.py
++++ b/test/test_policy.py
+@@ -47,7 +47,7 @@ class TestPolicy(TSS2_EsapiTest):
+         super().setUp()
+         self._has_secp192r1 = True
+         try:
+-            ec.generate_private_key(ec.SECP192R1)
++            ec.generate_private_key(ec.SECP192R1())
+         except Exception:
+             self._has_secp192r1 = False
+ 
diff --git a/pkgs/development/python-modules/tqdm/default.nix b/pkgs/development/python-modules/tqdm/default.nix
index 4f3ff0f1545c2..4c3e8230fba72 100644
--- a/pkgs/development/python-modules/tqdm/default.nix
+++ b/pkgs/development/python-modules/tqdm/default.nix
@@ -1,28 +1,27 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, setuptools-scm
-, wheel
-, pytestCheckHook
-, pytest-asyncio
-, pytest-timeout
-, numpy
-, pandas
-, rich
-, tkinter
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  pytestCheckHook,
+  pytest-asyncio,
+  pytest-timeout,
+  numpy,
+  pandas,
+  rich,
+  tkinter,
 }:
 
 buildPythonPackage rec {
   pname = "tqdm";
-  version = "4.66.2";
+  version = "4.66.4";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-bNUs3w/vDg9UMpnPyW/skNe4p+iHRfQR7DPrRNXtNTE=";
+    hash = "sha256-5Nk2yd6HJ5KPO+YHlZDpfZq/6NOaWQvmeOtZGf/Bhrs=";
   };
 
   nativeBuildInputs = [
@@ -31,9 +30,6 @@ buildPythonPackage rec {
     wheel
   ];
 
-  # https://github.com/tqdm/tqdm/issues/1537
-  doCheck = pythonOlder "3.12";
-
   nativeCheckInputs = [
     pytestCheckHook
     pytest-asyncio
@@ -46,22 +42,22 @@ buildPythonPackage rec {
   ];
 
   pytestFlagsArray = [
-    "-W" "ignore::FutureWarning"
-    "-W" "ignore::DeprecationWarning"
+    "-W"
+    "ignore::FutureWarning"
+    "-W"
+    "ignore::DeprecationWarning"
   ];
 
   # Remove performance testing.
   # Too sensitive for on Hydra.
-  disabledTests = [
-    "perf"
-  ];
+  disabledTests = [ "perf" ];
 
-  LC_ALL="en_US.UTF-8";
+  LC_ALL = "en_US.UTF-8";
 
   pythonImportsCheck = [ "tqdm" ];
 
   meta = with lib; {
-    description = "A Fast, Extensible Progress Meter";
+    description = "Fast, Extensible Progress Meter";
     mainProgram = "tqdm";
     homepage = "https://github.com/tqdm/tqdm";
     changelog = "https://tqdm.github.io/releases/";
diff --git a/pkgs/development/python-modules/traceback2/default.nix b/pkgs/development/python-modules/traceback2/default.nix
index 9992cd1470b76..a0b3eef17ab51 100644
--- a/pkgs/development/python-modules/traceback2/default.nix
+++ b/pkgs/development/python-modules/traceback2/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pbr
-, linecache2
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pbr,
+  linecache2,
 }:
 
 buildPythonPackage rec {
@@ -15,15 +16,17 @@ buildPythonPackage rec {
     sha256 = "0c1h3jas1jp1fdbn9z2mrgn3jj0hw1x3yhnkxp7jw34q15xcdb05";
   };
 
-  propagatedBuildInputs = [ pbr linecache2 ];
+  propagatedBuildInputs = [
+    pbr
+    linecache2
+  ];
 
   # circular dependencies for tests
   doCheck = false;
 
   meta = with lib; {
-    description = "A backport of traceback to older supported Pythons";
+    description = "Backport of traceback to older supported Pythons";
     homepage = "https://pypi.python.org/pypi/traceback2/";
     license = licenses.psfl;
   };
-
 }
diff --git a/pkgs/development/python-modules/tracerite/default.nix b/pkgs/development/python-modules/tracerite/default.nix
index 9b98e986bb362..024859c6be28f 100644
--- a/pkgs/development/python-modules/tracerite/default.nix
+++ b/pkgs/development/python-modules/tracerite/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools-scm
-, html5tagger
-, python
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools-scm,
+  html5tagger,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +22,9 @@ buildPythonPackage rec {
     hash = "sha256-rI1MNdYl/P64tUHyB3qV9gfLbGbCVOXnEFoqFTkaqgg=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    html5tagger
-  ];
+  propagatedBuildInputs = [ html5tagger ];
 
   postInstall = ''
     cp tracerite/style.css $out/${python.sitePackages}/tracerite
@@ -36,9 +33,7 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "tracerite"
-  ];
+  pythonImportsCheck = [ "tracerite" ];
 
   meta = with lib; {
     description = "Tracebacks for Humans in Jupyter notebooks";
diff --git a/pkgs/development/python-modules/tracing/default.nix b/pkgs/development/python-modules/tracing/default.nix
index a447ae2ad0bae..1740e6d7bad33 100644
--- a/pkgs/development/python-modules/tracing/default.nix
+++ b/pkgs/development/python-modules/tracing/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchurl
-, sphinx
+{
+  lib,
+  buildPythonPackage,
+  fetchurl,
+  sphinx,
 }:
 
 buildPythonPackage rec {
@@ -23,7 +24,6 @@ buildPythonPackage rec {
     homepage = "https://liw.fi/tracing/";
     description = "Python debug logging helper";
     license = licenses.gpl3;
-    maintainers = [];
+    maintainers = [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/trackpy/default.nix b/pkgs/development/python-modules/trackpy/default.nix
index 1292e7d72a711..d62058381b7b1 100644
--- a/pkgs/development/python-modules/trackpy/default.nix
+++ b/pkgs/development/python-modules/trackpy/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, looseversion
-, matplotlib
-, numba
-, numpy
-, pandas
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, scipy
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  looseversion,
+  matplotlib,
+  numba,
+  numpy,
+  pandas,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  scipy,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
     scipy
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = lib.optionalString stdenv.isDarwin ''
     # specifically needed for darwin
@@ -48,9 +47,7 @@ buildPythonPackage rec {
     echo "backend: ps" > $HOME/.matplotlib/matplotlibrc
   '';
 
-  pythonImportsCheck = [
-    "trackpy"
-  ];
+  pythonImportsCheck = [ "trackpy" ];
 
   meta = with lib; {
     description = "Particle-tracking toolkit";
diff --git a/pkgs/development/python-modules/trafilatura/default.nix b/pkgs/development/python-modules/trafilatura/default.nix
index 35212c3434438..720ead19e0109 100644
--- a/pkgs/development/python-modules/trafilatura/default.nix
+++ b/pkgs/development/python-modules/trafilatura/default.nix
@@ -1,35 +1,43 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, certifi
-, charset-normalizer
-, courlan
-, htmldate
-, justext
-, lxml
-, urllib3
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  certifi,
+  charset-normalizer,
+  courlan,
+  fetchPypi,
+  htmldate,
+  justext,
+  lxml,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "trafilatura";
-  version = "1.8.1";
+  version = "1.10.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-a4eN/b1cXftV0Pgwfyt9wVrDRYBU90hh/5ihcvXjhyA=";
+    hash = "sha256-exBXPi3Ra2cC9W9WhYsl80/4HWsW5CmvCjsmbwdGru4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  # Patch out gui cli because it is not supported in this packaging and
+  # nixify path to the trafilatura binary in the test suite
+  postPatch = ''
+    substituteInPlace setup.py \
+      --replace-fail '"trafilatura_gui=trafilatura.gui:main",' ""
+    substituteInPlace tests/cli_tests.py \
+      --replace-fail "trafilatura_bin = 'trafilatura'" "trafilatura_bin = '$out/bin/trafilatura'"
+  '';
+
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     certifi
     charset-normalizer
     courlan
@@ -39,34 +47,22 @@ buildPythonPackage rec {
     urllib3
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Disable tests that require an internet connection
+    "test_cli_pipeline"
+    "test_crawl_page"
     "test_download"
     "test_fetch"
-    "test_redirection"
     "test_meta_redirections"
-    "test_crawl_page"
-    "test_whole"
     "test_probing"
-    "test_cli_pipeline"
+    "test_queue"
+    "test_redirection"
+    "test_whole"
   ];
 
-  # patch out gui cli because it is not supported in this packaging
-  # nixify path to the trafilatura binary in the test suite
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace-fail '"trafilatura_gui=trafilatura.gui:main",' ""
-    substituteInPlace tests/cli_tests.py \
-      --replace-fail "trafilatura_bin = 'trafilatura'" "trafilatura_bin = '$out/bin/trafilatura'"
-  '';
-
-  pythonImportsCheck = [
-    "trafilatura"
-  ];
+  pythonImportsCheck = [ "trafilatura" ];
 
   meta = with lib; {
     description = "Python package and command-line tool designed to gather text on the Web";
diff --git a/pkgs/development/python-modules/trailrunner/default.nix b/pkgs/development/python-modules/trailrunner/default.nix
index 04cf6b0c071fa..1e7a13cdaefd7 100644
--- a/pkgs/development/python-modules/trailrunner/default.nix
+++ b/pkgs/development/python-modules/trailrunner/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pathspec
-, pythonOlder
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pathspec,
+  pythonOlder,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-qtEBr22yyj6WcSfyYr/4r0IuuMJ6chFFqnmb+uMfQPA=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    pathspec
-  ];
+  propagatedBuildInputs = [ pathspec ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  pythonImportsCheck = [
-    "trailrunner"
-  ];
+  pythonImportsCheck = [ "trailrunner" ];
 
   meta = with lib; {
     description = "Module to walk paths and run things";
diff --git a/pkgs/development/python-modules/trainer/default.nix b/pkgs/development/python-modules/trainer/default.nix
index 848b970248f02..117e954e7f308 100644
--- a/pkgs/development/python-modules/trainer/default.nix
+++ b/pkgs/development/python-modules/trainer/default.nix
@@ -1,17 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
 
-, coqpit
-, fsspec
-, torch
-, tensorboard
-, protobuf
-, psutil
+  coqpit,
+  fsspec,
+  torch,
+  tensorboard,
+  protobuf,
+  psutil,
 
-, pytestCheckHook
-, soundfile
-, torchvision
+  pytestCheckHook,
+  soundfile,
+  torchvision,
 }:
 
 let
@@ -29,6 +31,14 @@ buildPythonPackage {
     hash = "sha256-z6TOzWqE3NytkdG3nUzh9GpFVGQEXFyzSQ8gvdB4wiw=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "add-support-for-python312.patch";
+      hash = "sha256-V5RPn/2pGKzQrf/SIRU3imo6nBhpBEJpI7HsFYbVZj4=";
+      url = "https://github.com/coqui-ai/Trainer/commit/0278012c7e6f5972b656d11757add4ab89f6d272.patch";
+    })
+  ];
+
   postPatch = ''
     sed -i 's/^protobuf.*/protobuf/' requirements.txt
   '';
@@ -51,12 +61,10 @@ buildPythonPackage {
     torchvision
   ];
 
-  pythonImportsCheck = [
-    "trainer"
-  ];
+  pythonImportsCheck = [ "trainer" ];
 
   meta = with lib; {
-    description = "A general purpose model trainer, as flexible as it gets";
+    description = "General purpose model trainer, as flexible as it gets";
     homepage = "https://github.com/coqui-ai/Trainer";
     changelog = "https://github.com/coqui-ai/Trainer/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/traitlets/default.nix b/pkgs/development/python-modules/traitlets/default.nix
index 51336a0f9195a..09a4e2d944ac2 100644
--- a/pkgs/development/python-modules/traitlets/default.nix
+++ b/pkgs/development/python-modules/traitlets/default.nix
@@ -1,32 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-
-# build-system
-, hatchling
-
-# tests
-, argcomplete
-, pytest-mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+
+  # build-system
+  hatchling,
+
+  # tests
+  argcomplete,
+  pytest-mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "traitlets";
-  version = "5.14.2";
+  version = "5.14.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-jN2DwEDat9He6CJnjl9dEAtRT3tysBYVsm/FcYkW/fk=";
+    hash = "sha256-ntBXnTUCyUtLNzKsEgN1zalvkjEUUihH3ks7uYuWtrc=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   nativeCheckInputs = [
     argcomplete
diff --git a/pkgs/development/python-modules/traits/default.nix b/pkgs/development/python-modules/traits/default.nix
index 47b5eef29cede..e2335a8b1b7b7 100644
--- a/pkgs/development/python-modules/traits/default.nix
+++ b/pkgs/development/python-modules/traits/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, numpy
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  numpy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
   # Circular dependency
   doCheck = false;
 
-  pythonImportsCheck = [
-    "traits"
-  ];
+  pythonImportsCheck = [ "traits" ];
 
   meta = with lib; {
     description = "Explicitly typed attributes for Python";
diff --git a/pkgs/development/python-modules/traitsui/default.nix b/pkgs/development/python-modules/traitsui/default.nix
index 0c7245225d10d..d19d1d04e23eb 100644
--- a/pkgs/development/python-modules/traitsui/default.nix
+++ b/pkgs/development/python-modules/traitsui/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, setuptools
-, traits
-, pyface
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  setuptools,
+  traits,
+  pyface,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-kBudHLxFUT4Apzl2d7CYRBsod0tojzChWbrUgBv0A2Q=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     traits
@@ -31,9 +30,7 @@ buildPythonPackage rec {
   # Needs X server
   doCheck = false;
 
-  pythonImportsCheck = [
-    "traitsui"
-  ];
+  pythonImportsCheck = [ "traitsui" ];
 
   meta = with lib; {
     description = "Traits-capable windowing framework";
diff --git a/pkgs/development/python-modules/traittypes/default.nix b/pkgs/development/python-modules/traittypes/default.nix
index 3f8ab6fa4dd12..dfc793888bac7 100644
--- a/pkgs/development/python-modules/traittypes/default.nix
+++ b/pkgs/development/python-modules/traittypes/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, isPy27
-, pytestCheckHook
-, nose
-, numpy
-, pandas
-, xarray
-, traitlets
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  isPy27,
+  pytestCheckHook,
+  nose,
+  numpy,
+  pandas,
+  xarray,
+  traitlets,
 }:
 
 buildPythonPackage rec {
@@ -27,15 +28,21 @@ buildPythonPackage rec {
 
   patches = [
     (fetchpatch {
-       name = "fix-intarray-test.patch";
-       url = "https://github.com/minrk/traittypes/commit/a02441e5b259e5858453a853207260c9bd4efbb5.patch";
-       sha256 = "120dsvr5nksizw75z1ah3h38mi399fxbvz5anakica557jahi0aw";
+      name = "fix-intarray-test.patch";
+      url = "https://github.com/minrk/traittypes/commit/a02441e5b259e5858453a853207260c9bd4efbb5.patch";
+      sha256 = "120dsvr5nksizw75z1ah3h38mi399fxbvz5anakica557jahi0aw";
     })
   ];
 
   propagatedBuildInputs = [ traitlets ];
 
-  nativeCheckInputs = [ numpy pandas xarray nose pytestCheckHook ];
+  nativeCheckInputs = [
+    numpy
+    pandas
+    xarray
+    nose
+    pytestCheckHook
+  ];
 
   disabledTestPaths = lib.optionals (lib.versionAtLeast numpy.version "1.17") [
     # https://github.com/jupyter-widgets/traittypes/blob/master/setup.py#L86-L87
@@ -50,5 +57,4 @@ buildPythonPackage rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ bcdarwin ];
   };
-
 }
diff --git a/pkgs/development/python-modules/trampoline/default.nix b/pkgs/development/python-modules/trampoline/default.nix
index 2be2ff6e819db..6cc163885ccc7 100644
--- a/pkgs/development/python-modules/trampoline/default.nix
+++ b/pkgs/development/python-modules/trampoline/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitLab
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitLab,
+  pytestCheckHook,
 }:
 
 buildPythonPackage {
@@ -17,13 +18,9 @@ buildPythonPackage {
     hash = "sha256-A/tuR+QW9sKh76Qjwn1uQxlVJgWrSFzXeBRDdnSi2o4=";
   };
 
-  pythonImportsCheck = [
-    "trampoline"
-  ];
+  pythonImportsCheck = [ "trampoline" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Simple and tiny yield-based trampoline implementation for python";
diff --git a/pkgs/development/python-modules/transaction/default.nix b/pkgs/development/python-modules/transaction/default.nix
index 4587bc4949882..fa4cef5acb9c8 100644
--- a/pkgs/development/python-modules/transaction/default.nix
+++ b/pkgs/development/python-modules/transaction/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, zope-interface
-, mock
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  zope-interface,
+  mock,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     mock
   ];
 
-  pythonImportsCheck = [
-    "transaction"
-  ];
+  pythonImportsCheck = [ "transaction" ];
 
   meta = with lib; {
     description = "Transaction management";
diff --git a/pkgs/development/python-modules/transformers/default.nix b/pkgs/development/python-modules/transformers/default.nix
index 5bcbeb035f673..f730d649361b8 100644
--- a/pkgs/development/python-modules/transformers/default.nix
+++ b/pkgs/development/python-modules/transformers/default.nix
@@ -1,60 +1,61 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-# propagated build inputs
-, filelock
-, huggingface-hub
-, numpy
-, protobuf
-, packaging
-, pyyaml
-, regex
-, requests
-, tokenizers
-, safetensors
-, tqdm
-# optional dependencies
-, diffusers
-, scikit-learn
-, tensorflow
-, onnxconverter-common
-, opencv4
-, tf2onnx
-, torch
-, accelerate
-, faiss
-, datasets
-, jax
-, jaxlib
-, flax
-, optax
-, ftfy
-, onnxruntime
-, onnxruntime-tools
-, cookiecutter
-, sagemaker
-, fairscale
-, optuna
-, ray
-, pydantic
-, uvicorn
-, fastapi
-, starlette
-, librosa
-, phonemizer
-, torchaudio
-, pillow
-, timm
-, torchvision
-, av
-, sentencepiece
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  # propagated build inputs
+  filelock,
+  huggingface-hub,
+  numpy,
+  protobuf,
+  packaging,
+  pyyaml,
+  regex,
+  requests,
+  tokenizers,
+  safetensors,
+  tqdm,
+  # optional dependencies
+  diffusers,
+  scikit-learn,
+  tensorflow,
+  onnxconverter-common,
+  opencv4,
+  tf2onnx,
+  torch,
+  accelerate,
+  faiss,
+  datasets,
+  jax,
+  jaxlib,
+  flax,
+  optax,
+  ftfy,
+  onnxruntime,
+  onnxruntime-tools,
+  cookiecutter,
+  sagemaker,
+  fairscale,
+  optuna,
+  ray,
+  pydantic,
+  uvicorn,
+  fastapi,
+  starlette,
+  librosa,
+  phonemizer,
+  torchaudio,
+  pillow,
+  timm,
+  torchvision,
+  av,
+  sentencepiece,
 }:
 
 buildPythonPackage rec {
   pname = "transformers";
-  version = "4.40.1";
+  version = "4.41.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -63,14 +64,12 @@ buildPythonPackage rec {
     owner = "huggingface";
     repo = "transformers";
     rev = "refs/tags/v${version}";
-    hash = "sha256-w9BVJwYS2QV58UTOpcoQwdC+dxZuhLS2h8PqN5W2Yjc=";
+    hash = "sha256-Y3WYO+63n/ATT9RmRJ9JLuhFWUiuBO4NL2KzvzELi+M=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     filelock
     huggingface-hub
     numpy
@@ -84,116 +83,119 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies =
-  let
-    audio = [
-      librosa
-      # pyctcdecode
-      phonemizer
-      # kenlm
-    ];
-    vision = [ pillow ];
-  in
+    let
+      audio = [
+        librosa
+        # pyctcdecode
+        phonemizer
+        # kenlm
+      ];
+      vision = [ pillow ];
+    in
     {
-    agents = [
-      diffusers
-      accelerate
-      datasets
-      torch
-      sentencepiece
-      opencv4
-      pillow
-    ];
-    ja = [
-      # fugashi
-      # ipadic
-      # rhoknp
-      # sudachidict_core
-      # sudachipy
-      # unidic
-      # unidic_lite
-    ];
-    sklearn = [
-      scikit-learn
-    ];
-    tf = [
-      tensorflow
-      onnxconverter-common
-      tf2onnx
-      # tensorflow-text
-      # keras-nlp
-    ];
-    torch = [
-      torch
-      accelerate
-    ];
-    retrieval = [ faiss datasets ];
-    flax = [ jax jaxlib flax optax ];
-    tokenizers = [
-      tokenizers
-    ];
-    ftfy = [ ftfy ];
-    onnxruntime = [
-      onnxruntime
-      onnxruntime-tools
-    ];
-    onnx = [
-      onnxconverter-common
-      tf2onnx
-      onnxruntime
-      onnxruntime-tools
-    ];
-    modelcreation = [
-      cookiecutter
-    ];
-    sagemaker = [
-      sagemaker
-    ];
-    deepspeed = [
-      # deepspeed
-      accelerate
-    ];
-    fairscale = [ fairscale ];
-    optuna = [ optuna ];
-    ray = [ ray ] ++ ray.optional-dependencies.tune-deps;
-    # sigopt = [ sigopt ];
-    # integrations = ray ++ optuna ++ sigopt;
-    serving = [
-      pydantic
-      uvicorn
-      fastapi
-      starlette
-    ];
-    audio = audio;
-    speech = [ torchaudio ] ++ audio;
-    torch-speech = [ torchaudio ] ++ audio;
-    tf-speech = audio;
-    flax-speech = audio;
-    timm = [ timm ];
-    torch-vision = [ torchvision ] ++ vision;
-    # natten = [ natten ];
-    # codecarbon = [ codecarbon ];
-    video = [
-      # decord
-      av
-    ];
-    sentencepiece = [ sentencepiece protobuf ];
-  };
-
+      agents = [
+        diffusers
+        accelerate
+        datasets
+        torch
+        sentencepiece
+        opencv4
+        pillow
+      ];
+      ja = [
+        # fugashi
+        # ipadic
+        # rhoknp
+        # sudachidict_core
+        # sudachipy
+        # unidic
+        # unidic_lite
+      ];
+      sklearn = [ scikit-learn ];
+      tf = [
+        tensorflow
+        onnxconverter-common
+        tf2onnx
+        # tensorflow-text
+        # keras-nlp
+      ];
+      torch = [
+        torch
+        accelerate
+      ];
+      retrieval = [
+        faiss
+        datasets
+      ];
+      flax = [
+        jax
+        jaxlib
+        flax
+        optax
+      ];
+      tokenizers = [ tokenizers ];
+      ftfy = [ ftfy ];
+      onnxruntime = [
+        onnxruntime
+        onnxruntime-tools
+      ];
+      onnx = [
+        onnxconverter-common
+        tf2onnx
+        onnxruntime
+        onnxruntime-tools
+      ];
+      modelcreation = [ cookiecutter ];
+      sagemaker = [ sagemaker ];
+      deepspeed = [
+        # deepspeed
+        accelerate
+      ];
+      fairscale = [ fairscale ];
+      optuna = [ optuna ];
+      ray = [ ray ] ++ ray.optional-dependencies.tune-deps;
+      # sigopt = [ sigopt ];
+      # integrations = ray ++ optuna ++ sigopt;
+      serving = [
+        pydantic
+        uvicorn
+        fastapi
+        starlette
+      ];
+      audio = audio;
+      speech = [ torchaudio ] ++ audio;
+      torch-speech = [ torchaudio ] ++ audio;
+      tf-speech = audio;
+      flax-speech = audio;
+      timm = [ timm ];
+      torch-vision = [ torchvision ] ++ vision;
+      # natten = [ natten ];
+      # codecarbon = [ codecarbon ];
+      video = [
+        # decord
+        av
+      ];
+      sentencepiece = [
+        sentencepiece
+        protobuf
+      ];
+    };
 
   # Many tests require internet access.
   doCheck = false;
 
-  pythonImportsCheck = [
-    "transformers"
-  ];
+  pythonImportsCheck = [ "transformers" ];
 
-  meta = with lib; {
+  meta = {
     homepage = "https://github.com/huggingface/transformers";
     description = "Natural Language Processing for TensorFlow 2.0 and PyTorch";
     mainProgram = "transformers-cli";
     changelog = "https://github.com/huggingface/transformers/releases/tag/v${version}";
-    license = licenses.asl20;
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ pashashocky happysalada ];
+    license = lib.licenses.asl20;
+    platforms = lib.platforms.unix;
+    maintainers = with lib.maintainers; [
+      pashashocky
+      happysalada
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/transforms3d/default.nix b/pkgs/development/python-modules/transforms3d/default.nix
index 6bab6a5148b51..154badcbaa3aa 100644
--- a/pkgs/development/python-modules/transforms3d/default.nix
+++ b/pkgs/development/python-modules/transforms3d/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, numpy
-, scipy
-, sympy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  numpy,
+  scipy,
+  sympy,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,15 @@ buildPythonPackage rec {
     hash = "sha256-GgnjvwAfyxnDfBGvgMFIPPbR88BWFiNGrScVORygq94=";
   };
 
-  propagatedBuildInputs = [ numpy sympy ];
+  propagatedBuildInputs = [
+    numpy
+    sympy
+  ];
 
-  nativeCheckInputs = [ pytestCheckHook scipy ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    scipy
+  ];
   pythonImportsCheck = [ "transforms3d" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/transitions/default.nix b/pkgs/development/python-modules/transitions/default.nix
index 8ed221cd23e94..0f7310ca5c1fe 100644
--- a/pkgs/development/python-modules/transitions/default.nix
+++ b/pkgs/development/python-modules/transitions/default.nix
@@ -1,31 +1,30 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, fontconfig
-, graphviz
-, mock
-, pycodestyle
-, pygraphviz
-, pytestCheckHook
-, pythonAtLeast
-, setuptools
-, six
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  fontconfig,
+  graphviz,
+  mock,
+  pycodestyle,
+  pygraphviz,
+  pytestCheckHook,
+  pythonAtLeast,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "transitions";
-  version = "0.9.0";
+  version = "0.9.1";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-L1TRG9siV3nX5ykBHpOp+3F2aM49xl+NT1pde6L0jhA=";
+    hash = "sha256-NULDcQjpPirl8hUgjsVzLJSncpN4VKECzXNFuWf+5hs=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     six
@@ -44,21 +43,21 @@ buildPythonPackage rec {
     export HOME=$TMPDIR
   '';
 
-  disabledTests = [
-    "test_diagram"
-    "test_ordered_with_graph"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # Upstream issue https://github.com/pygraphviz/pygraphviz/issues/441
-    "test_binary_stream"
-  ];
+  disabledTests =
+    [
+      "test_diagram"
+      "test_ordered_with_graph"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # Upstream issue https://github.com/pygraphviz/pygraphviz/issues/441
+      "test_binary_stream"
+    ];
 
-  pythonImportsCheck = [
-    "transitions"
-  ];
+  pythonImportsCheck = [ "transitions" ];
 
   meta = with lib; {
     homepage = "https://github.com/pytransitions/transitions";
-    description = "A lightweight, object-oriented finite state machine implementation in Python";
+    description = "Lightweight, object-oriented finite state machine implementation in Python";
     changelog = "https://github.com/pytransitions/transitions/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/translatehtml/default.nix b/pkgs/development/python-modules/translatehtml/default.nix
index e97e248edfdd4..da93e4d8484bb 100644
--- a/pkgs/development/python-modules/translatehtml/default.nix
+++ b/pkgs/development/python-modules/translatehtml/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, argostranslate
-, beautifulsoup4
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  argostranslate,
+  beautifulsoup4,
 }:
 
 buildPythonPackage rec {
@@ -45,7 +46,7 @@ buildPythonPackage rec {
   doCheck = false; # no tests
 
   meta = with lib; {
-    description = "Translate HTML using Beautiful Soup and Argos Translate.";
+    description = "Translate HTML using Beautiful Soup and Argos Translate";
     homepage = "https://www.argosopentech.com";
     license = licenses.mit;
     maintainers = with maintainers; [ misuzu ];
diff --git a/pkgs/development/python-modules/translatepy/default.nix b/pkgs/development/python-modules/translatepy/default.nix
index 0fc86af44cc40..499a47c2b999b 100644
--- a/pkgs/development/python-modules/translatepy/default.nix
+++ b/pkgs/development/python-modules/translatepy/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, beautifulsoup4
-, pyuseragents
-, safeio
-, inquirer
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  beautifulsoup4,
+  pyuseragents,
+  safeio,
+  inquirer,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -38,7 +39,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "translatepy" ];
 
   meta = with lib; {
-    description = "A module grouping multiple translation APIs";
+    description = "Module grouping multiple translation APIs";
     mainProgram = "translatepy";
     homepage = "https://github.com/Animenosekai/translate";
     license = with licenses; [ agpl3Only ];
diff --git a/pkgs/development/python-modules/translationstring/default.nix b/pkgs/development/python-modules/translationstring/default.nix
index ab6c1808e428d..1110c6c58e910 100644
--- a/pkgs/development/python-modules/translationstring/default.nix
+++ b/pkgs/development/python-modules/translationstring/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -19,5 +20,4 @@ buildPythonPackage rec {
     license = licenses.bsd0;
     maintainers = with maintainers; [ domenkozar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/translitcodec/default.nix b/pkgs/development/python-modules/translitcodec/default.nix
index 20da4d3431c4c..2b77a2fceb519 100644
--- a/pkgs/development/python-modules/translitcodec/default.nix
+++ b/pkgs/development/python-modules/translitcodec/default.nix
@@ -1,9 +1,16 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook, pythonOlder }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+}:
 
 let
   pname = "translitcodec";
   version = "0.7.0";
-in buildPythonPackage {
+in
+buildPythonPackage {
   inherit pname version;
 
   format = "setuptools";
diff --git a/pkgs/development/python-modules/transmission-rpc/default.nix b/pkgs/development/python-modules/transmission-rpc/default.nix
index 32427487934a0..71a4b2778ba75 100644
--- a/pkgs/development/python-modules/transmission-rpc/default.nix
+++ b/pkgs/development/python-modules/transmission-rpc/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, python-dotenv
-, pytz
-, requests
-, typing-extensions
-, yarl
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  python-dotenv,
+  pytz,
+  requests,
+  typing-extensions,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-HthWeFInolNEs7RNA773DJjhGvl1rfDhvhO8WwRwuuY=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     requests
@@ -41,9 +40,7 @@ buildPythonPackage rec {
     yarl
   ];
 
-  pythonImportsCheck = [
-    "transmission_rpc"
-  ];
+  pythonImportsCheck = [ "transmission_rpc" ];
 
   disabledTests = [
     # Tests require a running Transmission instance
diff --git a/pkgs/development/python-modules/transmissionrpc/default.nix b/pkgs/development/python-modules/transmissionrpc/default.nix
index 5c2cf2ee85dee..0b6875390be0f 100644
--- a/pkgs/development/python-modules/transmissionrpc/default.nix
+++ b/pkgs/development/python-modules/transmissionrpc/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/trectools/default.nix b/pkgs/development/python-modules/trectools/default.nix
index f6870bd48c1ab..e6e585397f42e 100644
--- a/pkgs/development/python-modules/trectools/default.nix
+++ b/pkgs/development/python-modules/trectools/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, beautifulsoup4
-, pythonOlder
-, pandas
-, python
-, numpy
-, scikit-learn
-, scipy
-, lxml
-, matplotlib
-, sarge
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  beautifulsoup4,
+  pythonOlder,
+  pandas,
+  python,
+  numpy,
+  scikit-learn,
+  scipy,
+  lxml,
+  matplotlib,
+  sarge,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/tree-sitter-html/Cargo.lock b/pkgs/development/python-modules/tree-sitter-html/Cargo.lock
new file mode 100644
index 0000000000000..e34eb1cd132d0
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-html/Cargo.lock
@@ -0,0 +1,71 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "tree-sitter"
+version = "0.22.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df7cc499ceadd4dcdf7ec6d4cbc34ece92c3fa07821e287aedecd4416c516dca"
+dependencies = [
+ "cc",
+ "regex",
+]
+
+[[package]]
+name = "tree-sitter-html"
+version = "0.20.3"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
diff --git a/pkgs/development/python-modules/tree-sitter-html/default.nix b/pkgs/development/python-modules/tree-sitter-html/default.nix
new file mode 100644
index 0000000000000..2085ef7bad575
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-html/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cargo
+, rustPlatform
+, rustc
+, setuptools
+, wheel
+, tree-sitter
+}:
+
+buildPythonPackage rec {
+  pname = "tree-sitter-html";
+  version = "0.20.3";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "tree-sitter";
+    repo = "tree-sitter-html";
+    rev = "v${version}";
+    hash = "sha256-sHy3fVWemJod18HCQ8zBC/LpeCCPH0nzhI1wrkCg8nw=";
+  };
+
+  cargoDeps = rustPlatform.importCargoLock {
+    lockFile = ./Cargo.lock;
+  };
+
+  postPatch = ''
+    ln -s ${./Cargo.lock} Cargo.lock
+  '';
+
+  build-system = [
+    cargo
+    rustPlatform.cargoSetupHook
+    rustc
+    setuptools
+    wheel
+  ];
+
+  passthru.optional-dependencies = {
+    core = [
+      tree-sitter
+    ];
+  };
+
+  # There are no tests
+  doCheck = false;
+  pythonImportsCheck = [ "tree_sitter_html" ];
+
+  meta = with lib; {
+    description = "HTML grammar for tree-sitter";
+    homepage = "https://github.com/tree-sitter/tree-sitter-html";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/tree-sitter-javascript/Cargo.lock b/pkgs/development/python-modules/tree-sitter-javascript/Cargo.lock
new file mode 100644
index 0000000000000..2a6627a051151
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-javascript/Cargo.lock
@@ -0,0 +1,71 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "tree-sitter"
+version = "0.22.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df7cc499ceadd4dcdf7ec6d4cbc34ece92c3fa07821e287aedecd4416c516dca"
+dependencies = [
+ "cc",
+ "regex",
+]
+
+[[package]]
+name = "tree-sitter-javascript"
+version = "0.21.3"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
diff --git a/pkgs/development/python-modules/tree-sitter-javascript/default.nix b/pkgs/development/python-modules/tree-sitter-javascript/default.nix
new file mode 100644
index 0000000000000..50b115c4e7ef8
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-javascript/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cargo
+, rustPlatform
+, rustc
+, setuptools
+, wheel
+, tree-sitter
+}:
+
+buildPythonPackage rec {
+  pname = "tree-sitter-javascript";
+  version = "0.21.3";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "tree-sitter";
+    repo = "tree-sitter-javascript";
+    rev = "v${version}";
+    hash = "sha256-jsdY9Pd9WqZuBYtk088mx1bRQadC6D2/tGGVY+ZZ0J4=";
+  };
+
+  cargoDeps = rustPlatform.importCargoLock {
+    # Upstream doesn't track a Cargo.lock file unfortunatly, but they barely
+    # have rust dependencies so it doesn't cost us too much.
+    lockFile = ./Cargo.lock;
+  };
+
+  postPatch = ''
+    ln -s ${./Cargo.lock} Cargo.lock
+  '';
+
+  build-system = [
+    cargo
+    rustPlatform.cargoSetupHook
+    rustc
+    setuptools
+    wheel
+  ];
+
+  passthru.optional-dependencies = {
+    core = [
+      tree-sitter
+    ];
+  };
+
+  # There are no tests
+  doCheck = false;
+  pythonImportsCheck = [ "tree_sitter_javascript" ];
+
+  meta = with lib; {
+    description = "JavaScript and JSX grammar for tree-sitter";
+    homepage = "https://github.com/tree-sitter/tree-sitter-javascript";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/tree-sitter-json/Cargo.lock b/pkgs/development/python-modules/tree-sitter-json/Cargo.lock
new file mode 100644
index 0000000000000..1b9b095b26378
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-json/Cargo.lock
@@ -0,0 +1,71 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "tree-sitter"
+version = "0.22.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df7cc499ceadd4dcdf7ec6d4cbc34ece92c3fa07821e287aedecd4416c516dca"
+dependencies = [
+ "cc",
+ "regex",
+]
+
+[[package]]
+name = "tree-sitter-json"
+version = "0.21.0"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
diff --git a/pkgs/development/python-modules/tree-sitter-json/default.nix b/pkgs/development/python-modules/tree-sitter-json/default.nix
new file mode 100644
index 0000000000000..acf574bef1d98
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-json/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cargo
+, rustPlatform
+, rustc
+, setuptools
+, wheel
+, tree-sitter
+}:
+
+buildPythonPackage rec {
+  pname = "tree-sitter-json";
+  version = "0.21.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "tree-sitter";
+    repo = "tree-sitter-json";
+    rev = "v${version}";
+    hash = "sha256-waejAbS7MjrE7w03MPqvBRpEpqTcKc6RgKCVSYaDV1Y=";
+  };
+
+  cargoDeps = rustPlatform.importCargoLock {
+    # Upstream doesn't track a Cargo.lock file unfortunatly, but they barely
+    # have rust dependencies so it doesn't cost us too much.
+    lockFile = ./Cargo.lock;
+  };
+
+  postPatch = ''
+    ln -s ${./Cargo.lock} Cargo.lock
+  '';
+
+  build-system = [
+    cargo
+    rustPlatform.cargoSetupHook
+    rustc
+    setuptools
+    wheel
+  ];
+
+  passthru.optional-dependencies = {
+    core = [
+      tree-sitter
+    ];
+  };
+
+  # There are no tests
+  doCheck = false;
+  pythonImportsCheck = [ "tree_sitter_json" ];
+
+  meta = with lib; {
+    description = "JSON grammar for tree-sitter";
+    homepage = "https://github.com/tree-sitter/tree-sitter-json";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/tree-sitter-languages/default.nix b/pkgs/development/python-modules/tree-sitter-languages/default.nix
new file mode 100644
index 0000000000000..a118e4ffe0cca
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-languages/default.nix
@@ -0,0 +1,68 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, setuptools
+, wheel
+, cython
+, tree-sitter0_21
+, pytestCheckHook
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "tree-sitter-languages";
+  version = "1.10.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "grantjenks";
+    repo = "py-tree-sitter-languages";
+    rev = "v${version}";
+    hash = "sha256-wKU2c8QRBKFVFqg+DAeH5+cwm5jpDLmPZG3YBUsh/lM=";
+    # Use git, to also fetch tree-sitter repositories that upstream puts their
+    # hases in the repository as well, in repos.txt.
+    forceFetchGit = true;
+    postFetch = ''
+      cd $out
+      substitute build.py get-repos.py \
+        --replace-fail "from tree_sitter import Language" "" \
+        --replace-fail 'print(f"{sys.argv[0]}: Building", languages_filename)' "exit(0)"
+      ${python.pythonOnBuildForHost.interpreter} get-repos.py
+      rm -rf vendor/*/.git
+    '';
+  };
+
+  build-system = [
+    setuptools
+    wheel
+    cython
+  ];
+  dependencies = [
+    # https://github.com/grantjenks/py-tree-sitter-languages/issues/67
+    tree-sitter0_21
+  ];
+  # Generate languages.so file (build won't fail without this, but tests will).
+  preBuild = ''
+    ${python.pythonOnBuildForHost.interpreter} build.py
+  '';
+  nativeCheckInputs = [
+    pytestCheckHook
+  ];
+  # Without cd $out, tests fail to import the compiled cython extensions.
+  # Without copying the ./tests/ directory to $out, pytest won't detect the
+  # tests and run them. See also:
+  # https://github.com/NixOS/nixpkgs/issues/255262
+  preCheck = ''
+    cp -r tests $out/${python.sitePackages}/tree_sitter_languages
+    cd $out
+  '';
+
+  pythonImportsCheck = [ "tree_sitter_languages" ];
+
+  meta = with lib; {
+    description = "Binary Python wheels for all tree sitter languages";
+    homepage = "https://github.com/grantjenks/py-tree-sitter-languages";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/tree-sitter-python/Cargo.lock b/pkgs/development/python-modules/tree-sitter-python/Cargo.lock
new file mode 100644
index 0000000000000..001baef04472e
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-python/Cargo.lock
@@ -0,0 +1,71 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "tree-sitter"
+version = "0.22.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df7cc499ceadd4dcdf7ec6d4cbc34ece92c3fa07821e287aedecd4416c516dca"
+dependencies = [
+ "cc",
+ "regex",
+]
+
+[[package]]
+name = "tree-sitter-python"
+version = "0.21.0"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
diff --git a/pkgs/development/python-modules/tree-sitter-python/default.nix b/pkgs/development/python-modules/tree-sitter-python/default.nix
new file mode 100644
index 0000000000000..e42136f5c2ada
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-python/default.nix
@@ -0,0 +1,58 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cargo
+, rustPlatform
+, rustc
+, setuptools
+, wheel
+, tree-sitter
+}:
+
+buildPythonPackage rec {
+  pname = "tree-sitter-python";
+  version = "0.21.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "tree-sitter";
+    repo = "tree-sitter-python";
+    rev = "v${version}";
+    hash = "sha256-ZQ949GbgzZ/W667J+ekvQbs4bGnbDO+IWejivhxPZXM=";
+  };
+
+  cargoDeps = rustPlatform.importCargoLock {
+    # Upstream doesn't track a Cargo.lock file unfortunatly, but they barely
+    # have rust dependencies so it doesn't cost us too much.
+    lockFile = ./Cargo.lock;
+  };
+
+  postPatch = ''
+    ln -s ${./Cargo.lock} Cargo.lock
+  '';
+
+  build-system = [
+    cargo
+    rustPlatform.cargoSetupHook
+    rustc
+    setuptools
+    wheel
+  ];
+
+  passthru.optional-dependencies = {
+    core = [
+      tree-sitter
+    ];
+  };
+
+  # There are no tests
+  doCheck = false;
+  pythonImportsCheck = [ "tree_sitter_python" ];
+
+  meta = with lib; {
+    description = "Python grammar for tree-sitter";
+    homepage = "https://github.com/tree-sitter/tree-sitter-python";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/tree-sitter-rust/Cargo.lock b/pkgs/development/python-modules/tree-sitter-rust/Cargo.lock
new file mode 100644
index 0000000000000..406fa5fc19bbe
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-rust/Cargo.lock
@@ -0,0 +1,71 @@
+# This file is automatically @generated by Cargo.
+# It is not intended for manual editing.
+version = 3
+
+[[package]]
+name = "aho-corasick"
+version = "1.1.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8e60d3430d3a69478ad0993f19238d2df97c507009a52b3c10addcd7f6bcb916"
+dependencies = [
+ "memchr",
+]
+
+[[package]]
+name = "cc"
+version = "1.0.98"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "41c270e7540d725e65ac7f1b212ac8ce349719624d7bcff99f8e2e488e8cf03f"
+
+[[package]]
+name = "memchr"
+version = "2.7.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6c8640c5d730cb13ebd907d8d04b52f55ac9a2eec55b440c8892f40d56c76c1d"
+
+[[package]]
+name = "regex"
+version = "1.10.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c117dbdfde9c8308975b6a18d71f3f385c89461f7b3fb054288ecf2a2058ba4c"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-automata",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-automata"
+version = "0.4.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "86b83b8b9847f9bf95ef68afb0b8e6cdb80f498442f5179a29fad448fcc1eaea"
+dependencies = [
+ "aho-corasick",
+ "memchr",
+ "regex-syntax",
+]
+
+[[package]]
+name = "regex-syntax"
+version = "0.8.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "adad44e29e4c806119491a7f06f03de4d1af22c3a680dd47f1e6e179439d1f56"
+
+[[package]]
+name = "tree-sitter"
+version = "0.22.6"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "df7cc499ceadd4dcdf7ec6d4cbc34ece92c3fa07821e287aedecd4416c516dca"
+dependencies = [
+ "cc",
+ "regex",
+]
+
+[[package]]
+name = "tree-sitter-rust"
+version = "0.21.2"
+dependencies = [
+ "cc",
+ "tree-sitter",
+]
diff --git a/pkgs/development/python-modules/tree-sitter-rust/default.nix b/pkgs/development/python-modules/tree-sitter-rust/default.nix
new file mode 100644
index 0000000000000..b2c85aa9c5c1e
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter-rust/default.nix
@@ -0,0 +1,59 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cargo
+, rustPlatform
+, rustc
+, setuptools
+, wheel
+, tree-sitter
+}:
+
+buildPythonPackage rec {
+  pname = "tree-sitter-rust";
+  version = "0.21.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "tree-sitter";
+    repo = "tree-sitter-rust";
+    rev = "v${version}";
+    hash = "sha256-4CTh6fKSV8TuMHLAfEKWsAeCqeCM2uo6hVmF5KWhyPY=";
+  };
+
+  cargoDeps = rustPlatform.importCargoLock {
+    # Upstream doesn't track a Cargo.lock file unfortunatly, but they barely
+    # have rust dependencies so it doesn't cost us too much.
+    lockFile = ./Cargo.lock;
+  };
+
+  postPatch = ''
+    ln -s ${./Cargo.lock} Cargo.lock
+  '';
+
+  build-system = [
+    cargo
+    rustPlatform.cargoSetupHook
+    rustc
+    setuptools
+    wheel
+  ];
+
+
+  passthru.optional-dependencies = {
+    core = [
+      tree-sitter
+    ];
+  };
+
+  # There are no tests
+  doCheck = false;
+  pythonImportsCheck = [ "tree_sitter_rust" ];
+
+  meta = with lib; {
+    description = "Rust grammar for tree-sitter";
+    homepage = "https://github.com/tree-sitter/tree-sitter-rust";
+    license = licenses.mit;
+    maintainers = with maintainers; [ doronbehar ];
+  };
+}
diff --git a/pkgs/development/python-modules/tree-sitter/default.nix b/pkgs/development/python-modules/tree-sitter/default.nix
index 039b9ce21cea7..fdaa03554433a 100644
--- a/pkgs/development/python-modules/tree-sitter/default.nix
+++ b/pkgs/development/python-modules/tree-sitter/default.nix
@@ -1,15 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  tree-sitter-python,
+  tree-sitter-rust,
+  tree-sitter-html,
+  tree-sitter-javascript,
+  tree-sitter-json,
 }:
 
 buildPythonPackage rec {
   pname = "tree-sitter";
-  version = "0.21.1";
+  version = "0.22.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -18,32 +23,25 @@ buildPythonPackage rec {
     owner = "tree-sitter";
     repo = "py-tree-sitter";
     rev = "refs/tags/v${version}";
-    hash = "sha256-U4ZdU0lxjZO/y0q20bG5CLKipnfpaxzV3AFR6fGS7m4=";
+    hash = "sha256-4lxE8oDFE0X7YAnB72PKIaHIqovWSM5QnFo0grPAtKU=";
     fetchSubmodules = true;
   };
 
-  patches = [
-    #  Replace distutils with setuptools, https://github.com/tree-sitter/py-tree-sitter/pull/214
-    (fetchpatch {
-      name = "replace-distutils.patch";
-      url = "https://github.com/tree-sitter/py-tree-sitter/commit/80d3cae493c4a47e49cc1d2ebab0a8eaf7617825.patch";
-      hash = "sha256-00coI8/COpYMiSflAECwh6yJCMJj/ucFEn18Npj2g+Q=";
-    })
-  ];
-
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   nativeCheckInputs = [
     pytestCheckHook
+    tree-sitter-python
+    tree-sitter-rust
+    tree-sitter-html
+    tree-sitter-javascript
+    tree-sitter-json
   ];
 
-  pythonImportsCheck = [
-    "tree_sitter"
-  ];
+  pythonImportsCheck = [ "tree_sitter" ];
 
   preCheck = ''
+    # https://github.com/NixOS/nixpkgs/issues/255262#issuecomment-1721265871
     rm -r tree_sitter
   '';
 
diff --git a/pkgs/development/python-modules/tree-sitter0_21/default.nix b/pkgs/development/python-modules/tree-sitter0_21/default.nix
new file mode 100644
index 0000000000000..665f7d6b56ce9
--- /dev/null
+++ b/pkgs/development/python-modules/tree-sitter0_21/default.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  pythonAtLeast,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "tree-sitter0_21";
+  version = "0.21.3";
+  pyproject = true;
+
+  # https://github.com/tree-sitter/py-tree-sitter/issues/209
+  disabled = pythonAtLeast "3.12" || pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "tree-sitter";
+    repo = "py-tree-sitter";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-HT1sRzDFpeelWCq1ZMeRmoUg0a3SBR7bZKxBqn4fb2g=";
+    fetchSubmodules = true;
+  };
+
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "tree_sitter" ];
+
+  preCheck = ''
+    rm -r tree_sitter
+  '';
+
+  meta = with lib; {
+    description = "Python bindings to the Tree-sitter parsing library";
+    homepage = "https://github.com/tree-sitter/py-tree-sitter";
+    changelog = "https://github.com/tree-sitter/py-tree-sitter/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/treelib/default.nix b/pkgs/development/python-modules/treelib/default.nix
index cf32b37a23195..213823da0e283 100644
--- a/pkgs/development/python-modules/treelib/default.nix
+++ b/pkgs/development/python-modules/treelib/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, six
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  six,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,14 @@ buildPythonPackage rec {
     hash = "sha256-FIdJWpkOmUVZb+IkYocu1nn+oSPROrkcHeiw9wZupgM=";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "treelib" ];
 
   meta = with lib; {
-    description = "An efficient implementation of tree data structure in python 2/3";
+    description = "Efficient implementation of tree data structure in python 2/3";
     homepage = "https://github.com/caesar0301/treelib";
     changelog = "https://github.com/caesar0301/treelib/releases/tag/${src.rev}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/treelog/default.nix b/pkgs/development/python-modules/treelog/default.nix
index 5f825bee623c8..7739b8253bb42 100644
--- a/pkgs/development/python-modules/treelog/default.nix
+++ b/pkgs/development/python-modules/treelog/default.nix
@@ -1,4 +1,9 @@
-{ lib , python, buildPythonPackage , fetchPypi, typing-extensions }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  typing-extensions,
+}:
 
 buildPythonPackage rec {
   pname = "treelog";
@@ -12,13 +17,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "treelog" ];
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
-
-  checkPhase = ''
-    ${python.interpreter} -m unittest
-  '';
+  propagatedBuildInputs = [ typing-extensions ];
 
   meta = with lib; {
     description = "Logging framework that organizes messages in a tree structure";
diff --git a/pkgs/development/python-modules/treeo/default.nix b/pkgs/development/python-modules/treeo/default.nix
index 789eb346e8c64..bca135f92a177 100644
--- a/pkgs/development/python-modules/treeo/default.nix
+++ b/pkgs/development/python-modules/treeo/default.nix
@@ -1,10 +1,11 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, jax
-, jaxlib
-, lib
-, poetry-core
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  jax,
+  jaxlib,
+  lib,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -34,22 +35,16 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   # jax is not declared in the dependencies, but is necessary.
-  propagatedBuildInputs = [
-    jax
-  ];
+  propagatedBuildInputs = [ jax ];
 
   nativeCheckInputs = [ jaxlib ];
-  pythonImportsCheck = [
-    "treeo"
-  ];
+  pythonImportsCheck = [ "treeo" ];
 
   meta = with lib; {
-    description = "A small library for creating and manipulating custom JAX Pytree classes.";
+    description = "Small library for creating and manipulating custom JAX Pytree classes";
     homepage = "https://github.com/cgarciae/treeo";
     license = licenses.mit;
     maintainers = with maintainers; [ ndl ];
diff --git a/pkgs/development/python-modules/treex/default.nix b/pkgs/development/python-modules/treex/default.nix
index cfbadc344effb..cc98867484a66 100644
--- a/pkgs/development/python-modules/treex/default.nix
+++ b/pkgs/development/python-modules/treex/default.nix
@@ -1,22 +1,22 @@
-{ buildPythonPackage
-, cloudpickle
-, dm-haiku
-, einops
-, fetchFromGitHub
-, flax
-, hypothesis
-, jaxlib
-, keras
-, lib
-, poetry-core
-, pytestCheckHook
-, pyyaml
-, rich
-, tensorflow
-, treeo
-, torchmetrics
-, pythonRelaxDepsHook
-, torch
+{
+  buildPythonPackage,
+  cloudpickle,
+  dm-haiku,
+  einops,
+  fetchFromGitHub,
+  flax,
+  hypothesis,
+  jaxlib,
+  keras,
+  lib,
+  poetry-core,
+  pytestCheckHook,
+  pyyaml,
+  rich,
+  tensorflow,
+  treeo,
+  torchmetrics,
+  torch,
 }:
 
 buildPythonPackage rec {
@@ -43,7 +43,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   buildInputs = [ jaxlib ];
diff --git a/pkgs/development/python-modules/treq/default.nix b/pkgs/development/python-modules/treq/default.nix
index b2f020a8e3793..9c090790124ab 100644
--- a/pkgs/development/python-modules/treq/default.nix
+++ b/pkgs/development/python-modules/treq/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-
-# build-system
-, incremental
-, setuptools
-
-# dependenices
-, attrs
-, hyperlink
-, requests
-, twisted
-
-# tests
-, httpbin
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+
+  # build-system
+  incremental,
+  setuptools,
+
+  # dependenices
+  attrs,
+  hyperlink,
+  requests,
+  twisted,
+
+  # tests
+  httpbin,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/trezor-agent/default.nix b/pkgs/development/python-modules/trezor-agent/default.nix
index f0b72da158b70..5f4093965fd00 100644
--- a/pkgs/development/python-modules/trezor-agent/default.nix
+++ b/pkgs/development/python-modules/trezor-agent/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, trezor
-, libagent
-, ecdsa
-, ed25519
-, mnemonic
-, keepkey
-, semver
-, setuptools
-, wheel
-, pinentry
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  trezor,
+  libagent,
+  ecdsa,
+  ed25519,
+  mnemonic,
+  keepkey,
+  semver,
+  setuptools,
+  wheel,
+  pinentry,
 }:
 
 buildPythonPackage rec {
@@ -24,7 +25,18 @@ buildPythonPackage rec {
     hash = "sha256-4IylpUvXZYAXFkyFGNbN9iPTsHff3M/RL2Eq9f7wWFU=";
   };
 
-  propagatedBuildInputs = [ setuptools trezor libagent ecdsa ed25519 mnemonic keepkey semver wheel pinentry ];
+  propagatedBuildInputs = [
+    setuptools
+    trezor
+    libagent
+    ecdsa
+    ed25519
+    mnemonic
+    keepkey
+    semver
+    wheel
+    pinentry
+  ];
 
   # relax dependency constraint
   postPatch = ''
@@ -39,7 +51,10 @@ buildPythonPackage rec {
     description = "Using Trezor as hardware SSH agent";
     homepage = "https://github.com/romanz/trezor-agent";
     license = licenses.gpl3;
-    maintainers = with maintainers; [ hkjn np mmahut ];
+    maintainers = with maintainers; [
+      hkjn
+      np
+      mmahut
+    ];
   };
-
 }
diff --git a/pkgs/development/python-modules/trezor/default.nix b/pkgs/development/python-modules/trezor/default.nix
index 7a4403550964f..38dec6da3263c 100644
--- a/pkgs/development/python-modules/trezor/default.nix
+++ b/pkgs/development/python-modules/trezor/default.nix
@@ -1,59 +1,43 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-, installShellFiles
-, attrs
-, click
-, construct
-, construct-classes
-, ecdsa
-, hidapi
-, libusb1
-, mnemonic
-, pillow
-, protobuf
-, requests
-, shamir-mnemonic
-, simple-rlp
-, typing-extensions
-, trezor-udev-rules
-, pytestCheckHook
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  click,
+  construct,
+  construct-classes,
+  ecdsa,
+  libusb1,
+  mnemonic,
+  requests,
+  setuptools,
+  typing-extensions,
+  trezor-udev-rules,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "trezor";
   version = "0.13.8";
-  format = "setuptools";
-
-  disabled = !isPy3k;
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-Y01O3fNWAyV8MhYY2FSMajWyc4Rle2XjsL261jWlfP8=";
   };
 
-  nativeBuildInputs = [ installShellFiles ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    attrs
+  dependencies = [
     click
     construct
     construct-classes
     ecdsa
-    hidapi
     libusb1
     mnemonic
-    pillow
-    protobuf
     requests
-    shamir-mnemonic
-    simple-rlp
     typing-extensions
-  ] ++ lib.optionals stdenv.isLinux [
-    trezor-udev-rules
-  ];
+  ] ++ lib.optionals stdenv.isLinux [ trezor-udev-rules ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
@@ -68,21 +52,15 @@ buildPythonPackage rec {
     $out/bin/trezorctl --version
   '';
 
-  postFixup = ''
-    mkdir completions
-    _TREZORCTL_COMPLETE=source_bash $out/bin/trezorctl > completions/trezorctl || true
-    _TREZORCTL_COMPLETE=source_zsh $out/bin/trezorctl > completions/_trezorctl || true
-    _TREZORCTL_COMPLETE=source_fish $out/bin/trezorctl > completions/trezorctl.fish || true
-    installShellCompletion --bash completions/trezorctl
-    installShellCompletion --zsh completions/_trezorctl
-    installShellCompletion --fish completions/trezorctl.fish
-  '';
-
   meta = with lib; {
     description = "Python library for communicating with Trezor Hardware Wallet";
     mainProgram = "trezorctl";
     homepage = "https://github.com/trezor/trezor-firmware/tree/master/python";
-    license = licenses.gpl3;
-    maintainers = with maintainers; [ np prusnak mmahut ];
+    license = licenses.lgpl3Only;
+    maintainers = with maintainers; [
+      np
+      prusnak
+      mmahut
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/trfl/default.nix b/pkgs/development/python-modules/trfl/default.nix
index 8538b47598ede..1e8120bdec681 100644
--- a/pkgs/development/python-modules/trfl/default.nix
+++ b/pkgs/development/python-modules/trfl/default.nix
@@ -1,14 +1,16 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, numpy
-, absl-py
-, dm-tree
-, wrapt
-, tensorflow
-, tensorflow-probability
-, pytestCheckHook
-, nose }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  numpy,
+  absl-py,
+  dm-tree,
+  wrapt,
+  tensorflow,
+  tensorflow-probability,
+  pytestCheckHook,
+  nose,
+}:
 
 buildPythonPackage rec {
   pname = "trfl";
@@ -39,9 +41,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "trfl"
-  ];
+  pythonImportsCheck = [ "trfl" ];
 
   # Tests currently fail with assertion errors
   doCheck = false;
@@ -72,5 +72,7 @@ buildPythonPackage rec {
     homepage = "https://github.com/deepmind/trfl";
     license = licenses.asl20;
     maintainers = with maintainers; [ onny ];
+    # ModuleNotFoundError: No module named 'keras.api._v2' as tensorflow is too outdated
+    broken = true;
   };
 }
diff --git a/pkgs/development/python-modules/trimesh/default.nix b/pkgs/development/python-modules/trimesh/default.nix
index bd3a9f8d762d2..daa6282fb1a3e 100644
--- a/pkgs/development/python-modules/trimesh/default.nix
+++ b/pkgs/development/python-modules/trimesh/default.nix
@@ -1,30 +1,34 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pytestCheckHook
-, pythonOlder
-, numpy
-, lxml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pytestCheckHook,
+  pythonOlder,
+  numpy,
+  lxml,
 }:
 
 buildPythonPackage rec {
   pname = "trimesh";
-  version = "4.3.2";
+  version = "4.4.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-FFDb0aro3YJe3dVsWn19GzXK1+/Cxj1TXhlWlXfCWRY=";
+    hash = "sha256-dn/jyGa6dObZqdIWw07MHP4vvz8SmmwR1ZhxcFpZGro=";
   };
 
   nativeBuildInputs = [ setuptools ];
 
   dependencies = [ numpy ];
 
-  nativeCheckInputs = [ lxml pytestCheckHook ];
+  nativeCheckInputs = [
+    lxml
+    pytestCheckHook
+  ];
 
   disabledTests = [
     # requires loading models which aren't part of the Pypi tarball
@@ -40,6 +44,9 @@ buildPythonPackage rec {
     homepage = "https://trimsh.org/";
     changelog = "https://github.com/mikedh/trimesh/releases/tag/${version}";
     license = licenses.mit;
-    maintainers = with maintainers; [ gebner pbsds ];
+    maintainers = with maintainers; [
+      gebner
+      pbsds
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/trino-python-client/default.nix b/pkgs/development/python-modules/trino-python-client/default.nix
index 479832bf95644..a75171f6957f9 100644
--- a/pkgs/development/python-modules/trino-python-client/default.nix
+++ b/pkgs/development/python-modules/trino-python-client/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
   # build
-, setuptools
+  setuptools,
   # required
-, pytz
-, requests
-, tzlocal
+  pytz,
+  requests,
+  tzlocal,
   # optional
-, requests-kerberos
-, sqlalchemy
-, keyring
+  requests-kerberos,
+  sqlalchemy,
+  keyring,
   # tests
-, pytestCheckHook
-, httpretty
+  pytestCheckHook,
+  httpretty,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     hash = "sha256-Hl88Keavyp1QBw67AFbevy/btzNs7UlsKQ93K02YgLM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pytz
@@ -39,15 +38,9 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = lib.fix (self: {
-    kerberos = [
-      requests-kerberos
-    ];
-    sqlalchemy = [
-      sqlalchemy
-    ];
-    external-authentication-token-cache = [
-      keyring
-    ];
+    kerberos = [ requests-kerberos ];
+    sqlalchemy = [ sqlalchemy ];
+    external-authentication-token-cache = [ keyring ];
     all = self.kerberos ++ self.sqlalchemy;
   });
 
@@ -56,9 +49,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ passthru.optional-dependencies.all;
 
-  pythonImportsCheck = [
-    "trino"
-  ];
+  pythonImportsCheck = [ "trino" ];
 
   disabledTestPaths = [
     # these all require a running trino instance
@@ -67,9 +58,7 @@ buildPythonPackage rec {
     "tests/integration/test_sqlalchemy_integration.py"
   ];
 
-  pytestFlagsArray = [
-    "-k 'not auth'"
-  ];
+  pytestFlagsArray = [ "-k 'not auth'" ];
 
   meta = with lib; {
     changelog = "https://github.com/trinodb/trino-python-client/blob/${version}/CHANGES.md";
diff --git a/pkgs/development/python-modules/trio-asyncio/default.nix b/pkgs/development/python-modules/trio-asyncio/default.nix
index 258bb61b66e85..e66716474dd57 100644
--- a/pkgs/development/python-modules/trio-asyncio/default.nix
+++ b/pkgs/development/python-modules/trio-asyncio/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, greenlet
-, trio
-, outcome
-, sniffio
-, exceptiongroup
-, pytest-trio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  greenlet,
+  trio,
+  outcome,
+  sniffio,
+  exceptiongroup,
+  pytest-trio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -31,22 +32,19 @@ buildPythonPackage rec {
       --replace-fail '"pytest-runner"' ""
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     greenlet
     trio
     outcome
     sniffio
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    exceptiongroup
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ exceptiongroup ];
 
   pytestFlagsArray = [
     # RuntimeWarning: Can't run the Python asyncio tests because they're not installed
-    "-W" "ignore::RuntimeWarning"
+    "-W"
+    "ignore::RuntimeWarning"
   ];
 
   nativeCheckInputs = [
@@ -54,15 +52,16 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "trio_asyncio"
-  ];
+  pythonImportsCheck = [ "trio_asyncio" ];
 
   meta = with lib; {
     changelog = "https://github.com/python-trio/trio-asyncio/blob/v${version}/docs/source/history.rst";
     description = "Re-implementation of the asyncio mainloop on top of Trio";
     homepage = "https://github.com/python-trio/trio-asyncio";
-    license = with licenses; [ asl20 /* or */ mit ];
+    license = with licenses; [
+      asl20 # or
+      mit
+    ];
     maintainers = with maintainers; [ dotlambda ];
   };
 }
diff --git a/pkgs/development/python-modules/trio-websocket/default.nix b/pkgs/development/python-modules/trio-websocket/default.nix
index 8ffa3de60fc3c..87bc67368d560 100644
--- a/pkgs/development/python-modules/trio-websocket/default.nix
+++ b/pkgs/development/python-modules/trio-websocket/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, exceptiongroup
-, pytest-trio
-, pytestCheckHook
-, trio
-, trustme
-, wsproto
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  exceptiongroup,
+  pytest-trio,
+  pytestCheckHook,
+  trio,
+  trustme,
+  wsproto,
 }:
 
 buildPythonPackage rec {
@@ -24,16 +25,12 @@ buildPythonPackage rec {
     hash = "sha256-ddLbYkb1m9zRjv3Lb7YwUzj26gYbK4nYN6jN+FAuiOs=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     trio
     wsproto
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    exceptiongroup
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ exceptiongroup ];
 
   nativeCheckInputs = [
     pytest-trio
@@ -41,25 +38,27 @@ buildPythonPackage rec {
     trustme
   ];
 
-  disabledTests = [
-    # https://github.com/python-trio/trio-websocket/issues/187
-    "test_handshake_exception_before_accept"
-    "test_reject_handshake"
-    "test_reject_handshake_invalid_info_status"
-    "test_client_open_timeout"
-    "test_client_close_timeout"
-    "test_client_connect_networking_error"
-    "test_finalization_dropped_exception"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # Failed: DID NOT RAISE <class 'ValueError'>
-    "test_finalization_dropped_exception"
-    # Timing related
-    "test_client_close_timeout"
-    "test_cm_exit_with_pending_messages"
-    "test_server_close_timeout"
-    "test_server_handler_exit"
-    "test_server_open_timeout"
-  ];
+  disabledTests =
+    [
+      # https://github.com/python-trio/trio-websocket/issues/187
+      "test_handshake_exception_before_accept"
+      "test_reject_handshake"
+      "test_reject_handshake_invalid_info_status"
+      "test_client_open_timeout"
+      "test_client_close_timeout"
+      "test_client_connect_networking_error"
+      "test_finalization_dropped_exception"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # Failed: DID NOT RAISE <class 'ValueError'>
+      "test_finalization_dropped_exception"
+      # Timing related
+      "test_client_close_timeout"
+      "test_cm_exit_with_pending_messages"
+      "test_server_close_timeout"
+      "test_server_handler_exit"
+      "test_server_open_timeout"
+    ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/trio/default.nix b/pkgs/development/python-modules/trio/default.nix
index 84215b5122a64..b4e37ee448f6a 100644
--- a/pkgs/development/python-modules/trio/default.nix
+++ b/pkgs/development/python-modules/trio/default.nix
@@ -1,38 +1,37 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, stdenv
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  stdenv,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, attrs
-, exceptiongroup
-, idna
-, outcome
-, sniffio
-, sortedcontainers
+  # dependencies
+  attrs,
+  exceptiongroup,
+  idna,
+  outcome,
+  sniffio,
+  sortedcontainers,
 
-# tests
-, astor
-, coreutils
-, jedi
-, pyopenssl
-, pytestCheckHook
-, pytest-trio
-, trustme
-, yapf
+  # tests
+  astor,
+  coreutils,
+  jedi,
+  pyopenssl,
+  pytestCheckHook,
+  pytest-trio,
+  trustme,
+  yapf,
 }:
 
 let
   # escape infinite recursion with pytest-trio
-  pytest-trio' = (pytest-trio.override {
-    trio = null;
-  }).overrideAttrs {
+  pytest-trio' = (pytest-trio.override { trio = null; }).overrideAttrs {
     doCheck = false;
-    pythonImportsCheck = [];
+    pythonImportsCheck = [ ];
   };
 in
 buildPythonPackage rec {
@@ -49,9 +48,7 @@ buildPythonPackage rec {
     hash = "sha256-JQ493U4WINOG6ob4IzfNQt5Lgs3DmEM2BDwbae7Bvsw=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     attrs
@@ -59,9 +56,7 @@ buildPythonPackage rec {
     outcome
     sniffio
     sortedcontainers
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    exceptiongroup
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ exceptiongroup ];
 
   # tests are failing on Darwin
   doCheck = !stdenv.isDarwin;
@@ -102,9 +97,12 @@ buildPythonPackage rec {
 
   meta = {
     changelog = "https://github.com/python-trio/trio/blob/v${version}/docs/source/history.rst";
-    description = "An async/await-native I/O library for humans and snake people";
+    description = "Async/await-native I/O library for humans and snake people";
     homepage = "https://github.com/python-trio/trio";
-    license = with lib.licenses; [ mit asl20 ];
+    license = with lib.licenses; [
+      mit
+      asl20
+    ];
     maintainers = with lib.maintainers; [ catern ];
   };
 }
diff --git a/pkgs/development/python-modules/tritonclient/default.nix b/pkgs/development/python-modules/tritonclient/default.nix
index f218d02a4e2b5..47c87866aad12 100644
--- a/pkgs/development/python-modules/tritonclient/default.nix
+++ b/pkgs/development/python-modules/tritonclient/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pythonOlder
-, python-rapidjson
-, numpy
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pythonOlder,
+  python-rapidjson,
+  numpy,
   # optional dependencies
-, grpcio
-, packaging
-, aiohttp
-, geventhttpclient
+  grpcio,
+  packaging,
+  aiohttp,
+  geventhttpclient,
 }:
 
 let
@@ -37,9 +38,7 @@ buildPythonPackage {
 
   doCheck = false;
 
-  pythonImportsCheck = [
-    "tritonclient"
-  ];
+  pythonImportsCheck = [ "tritonclient" ];
 
   passthru = {
     optional-dependencies = {
@@ -62,4 +61,3 @@ buildPythonPackage {
     platforms = platforms.linux;
   };
 }
-
diff --git a/pkgs/development/python-modules/troposphere/default.nix b/pkgs/development/python-modules/troposphere/default.nix
index f4645afc461b5..42326544c3405 100644
--- a/pkgs/development/python-modules/troposphere/default.nix
+++ b/pkgs/development/python-modules/troposphere/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, awacs
-, buildPythonPackage
-, cfn-flip
-, fetchFromGitHub
-, pythonOlder
-, typing-extensions
-, unittestCheckHook
+{
+  lib,
+  awacs,
+  buildPythonPackage,
+  cfn-flip,
+  fetchFromGitHub,
+  pythonOlder,
+  typing-extensions,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "troposphere";
-  version = "4.7.0";
+  version = "4.8.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -19,14 +20,10 @@ buildPythonPackage rec {
     owner = "cloudtools";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-9zzbBtIJ4v+eI0eJZ6vGUABN4i9GLJcMAzerRSnzpqQ=";
+    hash = "sha256-JmoPXYEqaFxDIW8NmmZ8VpKX9gfZ1rVFu+dPZOL7C5k=";
   };
 
-  propagatedBuildInputs = [
-    cfn-flip
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ cfn-flip ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   nativeCheckInputs = [
     awacs
@@ -34,14 +31,10 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    policy = [
-      awacs
-    ];
+    policy = [ awacs ];
   };
 
-  pythonImportsCheck = [
-    "troposphere"
-  ];
+  pythonImportsCheck = [ "troposphere" ];
 
   meta = with lib; {
     description = "Library to create AWS CloudFormation descriptions";
diff --git a/pkgs/development/python-modules/trove-classifiers/default.nix b/pkgs/development/python-modules/trove-classifiers/default.nix
index 61ef9858d2dd2..ec13fb857cee7 100644
--- a/pkgs/development/python-modules/trove-classifiers/default.nix
+++ b/pkgs/development/python-modules/trove-classifiers/default.nix
@@ -1,23 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, calver
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  calver,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 let
   self = buildPythonPackage rec {
     pname = "trove-classifiers";
-    version = "2024.4.10";
+    version = "2024.5.22";
     pyproject = true;
 
     disabled = pythonOlder "3.7";
 
     src = fetchPypi {
-      inherit pname version;
-      hash = "sha256-SfQLtqdGtyocuk+NVe6CUhac2g9wgC4/0k8Et/slpJI=";
+      pname = "trove_classifiers";
+      inherit version;
+      hash = "sha256-imJCu7XJrojTTPZl6Bayh9IhKXPId336717BjXKsHQM=";
     };
 
     postPatch = ''
@@ -32,9 +34,7 @@ let
 
     doCheck = false; # avoid infinite recursion with hatchling
 
-    nativeCheckInputs = [
-      pytestCheckHook
-    ];
+    nativeCheckInputs = [ pytestCheckHook ];
 
     pythonImportsCheck = [ "trove_classifiers" ];
 
@@ -49,4 +49,4 @@ let
     };
   };
 in
-  self
+self
diff --git a/pkgs/development/python-modules/trueskill/default.nix b/pkgs/development/python-modules/trueskill/default.nix
index ae17c8fa83c21..8013f252ac9e7 100644
--- a/pkgs/development/python-modules/trueskill/default.nix
+++ b/pkgs/development/python-modules/trueskill/default.nix
@@ -1,5 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi
-, six }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "trueskill";
@@ -11,19 +15,15 @@ buildPythonPackage rec {
     sha256 = "1fv7g1szyjykja9mzax2w4js7jm2z7wwzgnr5dqrsdi84j6v8qlx";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   # Can't build distribute, see https://github.com/NixOS/nixpkgs/pull/49340
   doCheck = false;
 
   meta = with lib; {
-    description = "The video game rating system";
+    description = "Video game rating system";
     homepage = "https://trueskill.org";
     license = licenses.bsd3;
-    maintainers = with maintainers; [
-      eadwu
-    ];
+    maintainers = with maintainers; [ eadwu ];
   };
 }
diff --git a/pkgs/development/python-modules/truncnorm/default.nix b/pkgs/development/python-modules/truncnorm/default.nix
new file mode 100644
index 0000000000000..b9b9d77b22f66
--- /dev/null
+++ b/pkgs/development/python-modules/truncnorm/default.nix
@@ -0,0 +1,44 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  numpy,
+  scipy,
+}:
+
+buildPythonPackage rec {
+  pname = "truncnorm";
+  version = "0.0.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "jluttine";
+    repo = "truncnorm";
+    rev = "refs/tags/${version}";
+    hash = "sha256-F+RBXN/pjxmHf26/Vxptz1NbF58eqU018l3zmepSoJk=";
+  };
+
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  dependencies = [
+    numpy
+    scipy
+  ];
+
+  # No checks
+  doCheck = false;
+
+  pythonImportsCheck = [ "truncnorm" ];
+
+  meta = with lib; {
+    homepage = "https://pypi.org/project/truncnorm";
+    description = "Moments for doubly truncated multivariate normal distributions";
+    license = licenses.mit;
+    maintainers = with maintainers; [ jluttine ];
+  };
+}
diff --git a/pkgs/development/python-modules/trustme/default.nix b/pkgs/development/python-modules/trustme/default.nix
index 4648dd75a26e1..297a666dc5b35 100644
--- a/pkgs/development/python-modules/trustme/default.nix
+++ b/pkgs/development/python-modules/trustme/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchPypi
-, idna
-, pyopenssl
-, pytestCheckHook
-, pythonOlder
-, service-identity
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  idna,
+  pyopenssl,
+  pytestCheckHook,
+  pythonOlder,
+  service-identity,
 }:
 
 buildPythonPackage rec {
@@ -35,15 +36,16 @@ buildPythonPackage rec {
   # Some of the tests use localhost networking.
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [
-    "trustme"
-  ];
+  pythonImportsCheck = [ "trustme" ];
 
   meta = with lib; {
     description = "High quality TLS certs while you wait, for the discerning tester";
     homepage = "https://github.com/python-trio/trustme";
     changelog = "https://trustme.readthedocs.io/en/latest/#change-history";
-    license = with licenses; [ mit asl20 ];
+    license = with licenses; [
+      mit
+      asl20
+    ];
     maintainers = with maintainers; [ catern ];
   };
 }
diff --git a/pkgs/development/python-modules/truststore/default.nix b/pkgs/development/python-modules/truststore/default.nix
index 961799efeb725..820d823f81468 100644
--- a/pkgs/development/python-modules/truststore/default.nix
+++ b/pkgs/development/python-modules/truststore/default.nix
@@ -1,34 +1,33 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, httpx
-, pyopenssl
-, pythonOlder
-, requests
-, trustme
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  httpx,
+  pyopenssl,
+  pythonOlder,
+  requests,
+  trustme,
 }:
 
 buildPythonPackage rec {
   pname = "truststore";
-  version = "0.8.0";
-  format = "pyproject";
+  version = "0.9.1";
+  pyproject = true;
 
   disabled = pythonOlder "3.10";
 
   src = fetchFromGitHub {
     owner = "sethmlarson";
-    repo = pname;
+    repo = "truststore";
     rev = "refs/tags/v${version}";
-    hash = "sha256-K11nHzpckNR8pqmgLOo/yCJ2cNQnqPHgjMDPQkpeRkQ=";
+    hash = "sha256-BP88oQ363XFuRMKZqW8wSm1wl5upU+yEgmwktv65JOU=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  build-system = [ flit-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     httpx
     pyopenssl
@@ -36,16 +35,14 @@ buildPythonPackage rec {
     trustme
   ];
 
-  # tests requires networking
+  # Tests requires networking
   doCheck = false;
 
-  pythonImportsCheck = [
-    "truststore"
-  ];
+  pythonImportsCheck = [ "truststore" ];
 
   meta = with lib; {
-    homepage = "https://github.com/sethmlarson/truststore";
     description = "Verify certificates using native system trust stores";
+    homepage = "https://github.com/sethmlarson/truststore";
     changelog = "https://github.com/sethmlarson/truststore/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ anthonyroussel ];
diff --git a/pkgs/development/python-modules/trytond/default.nix b/pkgs/development/python-modules/trytond/default.nix
index 8660e95508ff6..e70bfcdc802dd 100644
--- a/pkgs/development/python-modules/trytond/default.nix
+++ b/pkgs/development/python-modules/trytond/default.nix
@@ -1,63 +1,67 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, defusedxml
-, lxml
-, relatorio
-, genshi
-, python-dateutil
-, polib
-, python-sql
-, werkzeug
-, wrapt
-, passlib
-, pydot
-, levenshtein
-, html2text
-, weasyprint
-, gevent
-, pillow
-, withPostgresql ? true
-, psycopg2
-, unittestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  defusedxml,
+  lxml,
+  relatorio,
+  genshi,
+  python-dateutil,
+  polib,
+  python-sql,
+  werkzeug,
+  wrapt,
+  passlib,
+  pydot,
+  levenshtein,
+  html2text,
+  weasyprint,
+  gevent,
+  pillow,
+  withPostgresql ? true,
+  psycopg2,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "trytond";
-  version = "7.0.10";
+  version = "7.2.4";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-N/O27qQBD18lncW0hCfJkUlmCuej8HtV2x/MnRUDGcc=";
+    hash = "sha256-iYx9qpZmf2r8Ndynx+jyyrLnAmB56NgjleUoLtyz+20=";
   };
 
-  propagatedBuildInputs = [
-    defusedxml
-    lxml
-    relatorio
-    genshi
-    python-dateutil
-    polib
-    python-sql
-    werkzeug
-    wrapt
-    passlib
+  propagatedBuildInputs =
+    [
+      defusedxml
+      lxml
+      relatorio
+      genshi
+      python-dateutil
+      polib
+      python-sql
+      werkzeug
+      wrapt
+      passlib
 
-    # extra dependencies
-    pydot
-    levenshtein
-    html2text
-    weasyprint
-    gevent
-    pillow
-  ] ++ relatorio.optional-dependencies.fodt
-  ++ passlib.optional-dependencies.bcrypt
-  ++ passlib.optional-dependencies.argon2
-  ++ lib.optional withPostgresql psycopg2;
+      # extra dependencies
+      pydot
+      levenshtein
+      html2text
+      weasyprint
+      gevent
+      pillow
+    ]
+    ++ relatorio.optional-dependencies.fodt
+    ++ passlib.optional-dependencies.bcrypt
+    ++ passlib.optional-dependencies.argon2
+    ++ lib.optional withPostgresql psycopg2;
 
   nativeCheckInputs = [ unittestCheckHook ];
 
@@ -67,10 +71,13 @@ buildPythonPackage rec {
     export DB_NAME=":memory:";
   '';
 
-  unittestFlagsArray = [ "-s" "trytond.tests" ];
+  unittestFlagsArray = [
+    "-s"
+    "trytond.tests"
+  ];
 
   meta = with lib; {
-    description = "The server of the Tryton application platform";
+    description = "Server of the Tryton application platform";
     longDescription = ''
       The server for Tryton, a three-tier high-level general purpose
       application platform under the license GPL-3 written in Python and using
@@ -82,6 +89,10 @@ buildPythonPackage rec {
     homepage = "http://www.tryton.org/";
     changelog = "https://foss.heptapod.net/tryton/tryton/-/blob/trytond-${version}/trytond/CHANGELOG?ref_type=tags";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ udono johbo ];
+    broken = stdenv.isDarwin;
+    maintainers = with maintainers; [
+      udono
+      johbo
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/tsfresh/default.nix b/pkgs/development/python-modules/tsfresh/default.nix
index 42cd12eb9d00f..045385e9fa1be 100644
--- a/pkgs/development/python-modules/tsfresh/default.nix
+++ b/pkgs/development/python-modules/tsfresh/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
-, numpy
-, pandas
-, scipy
-, statsmodels
-, patsy
-, scikit-learn
-, tqdm
-, dask
-, distributed
-, stumpy
-, cloudpickle
-, pytestCheckHook
-, pytest-xdist
-, mock
-, matplotlib
-, seaborn
-, ipython
-, notebook
-, pandas-datareader
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
+  numpy,
+  pandas,
+  scipy,
+  statsmodels,
+  patsy,
+  scikit-learn,
+  tqdm,
+  dask,
+  distributed,
+  stumpy,
+  cloudpickle,
+  pytestCheckHook,
+  pytest-xdist,
+  mock,
+  matplotlib,
+  seaborn,
+  ipython,
+  notebook,
+  pandas-datareader,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/tskit/default.nix b/pkgs/development/python-modules/tskit/default.nix
index c76b3c4972958..0299fea08e5aa 100644
--- a/pkgs/development/python-modules/tskit/default.nix
+++ b/pkgs/development/python-modules/tskit/default.nix
@@ -1,31 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, pythonOlder
-, numpy
-, jsonschema
-, svgwrite
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pythonOlder,
+  numpy,
+  jsonschema,
+  svgwrite,
 }:
 
 buildPythonPackage rec {
   pname = "tskit";
-  version = "0.5.6";
-  format = "pyproject";
+  version = "0.5.7";
+  pyproject = true;
+
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-3f4hPxywY822mCF3IwooBezX38fM1zAm4Th4q//SzkY=";
+    hash = "sha256-yD+2W1tzzi+5wFoZrqNe+jJLpWyx6ZILBgKivDE+wiM=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    numpy
+  dependencies = [
     jsonschema
+    numpy
     svgwrite
   ];
 
@@ -33,15 +33,13 @@ buildPythonPackage rec {
   # will ask upstream to include tests in pypi
   doCheck = false;
 
-  pythonImportsCheck = [
-    "tskit"
-  ];
+  pythonImportsCheck = [ "tskit" ];
 
-  meta = with lib; {
-    description = "The tree sequence toolkit";
+  meta = {
+    description = "Tree sequence toolkit";
     mainProgram = "tskit";
     homepage = "https://github.com/tskit-dev/tskit";
-    license = licenses.mit;
-    maintainers = with maintainers; [ alxsimon ];
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ alxsimon ];
   };
 }
diff --git a/pkgs/development/python-modules/ttach/default.nix b/pkgs/development/python-modules/ttach/default.nix
index 39d504cf1b46d..dc0ef4e251aa8 100644
--- a/pkgs/development/python-modules/ttach/default.nix
+++ b/pkgs/development/python-modules/ttach/default.nix
@@ -1,9 +1,10 @@
-{ fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, torch
-, buildPythonPackage
-, lib
+{
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  torch,
+  buildPythonPackage,
+  lib,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/ttls/default.nix b/pkgs/development/python-modules/ttls/default.nix
index c3f18f3d5d40a..dc6662caa3804 100644
--- a/pkgs/development/python-modules/ttls/default.nix
+++ b/pkgs/development/python-modules/ttls/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, colour
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  colour,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-i9vJr7uTpkUZ9WiL0BGidIgCdG87k8JnmZuPqt6qLQE=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -35,9 +34,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ttls"
-  ];
+  pythonImportsCheck = [ "ttls" ];
 
   meta = with lib; {
     description = "Module to interact with Twinkly LEDs";
diff --git a/pkgs/development/python-modules/ttn-client/default.nix b/pkgs/development/python-modules/ttn-client/default.nix
index 515f616dbe24a..8c875737a62bd 100644
--- a/pkgs/development/python-modules/ttn-client/default.nix
+++ b/pkgs/development/python-modules/ttn-client/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "ttn-client";
-  version = "0.0.4";
+  version = "1.0.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,24 +19,16 @@ buildPythonPackage rec {
     owner = "angelnu";
     repo = "thethingsnetwork_python_client";
     rev = "refs/tags/v${version}";
-    hash = "sha256-ZLSMxFyzfPtz51fsY2wgucHzcAnSrL7VPOuW7DXTNbQ=";
+    hash = "sha256-AVEPOsEV/oJ5qM0w18dokH2R6zr1kvvJ1diR7GWqJwg=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
-  checkInputs = [
-    pytestCheckHook
-  ];
+  checkInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ttn_client"
-  ];
+  pythonImportsCheck = [ "ttn_client" ];
 
   meta = with lib; {
     description = "Module to fetch/receive and parse uplink messages from The Thinks Network";
diff --git a/pkgs/development/python-modules/ttp-templates/default.nix b/pkgs/development/python-modules/ttp-templates/default.nix
index 292d598e9d61c..e22190ff82d94 100644
--- a/pkgs/development/python-modules/ttp-templates/default.nix
+++ b/pkgs/development/python-modules/ttp-templates/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-Pntm/wUv/K0ci8U/+nBUVszuX8KT95gyp+i2N6NshKo=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   postPatch = ''
     # Drop circular dependency on ttp
diff --git a/pkgs/development/python-modules/ttp/default.nix b/pkgs/development/python-modules/ttp/default.nix
index 3df86d13cf3a0..dc6cc76abb64d 100644
--- a/pkgs/development/python-modules/ttp/default.nix
+++ b/pkgs/development/python-modules/ttp/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, cerberus
-, configparser
-, deepdiff
-, fetchFromGitHub
-, geoip2
-, jinja2
-, netmiko
-, openpyxl
-, pytestCheckHook
-, poetry-core
-, pyyaml
-, tabulate
-, ttp-templates
-, yangson
+{
+  lib,
+  buildPythonPackage,
+  cerberus,
+  configparser,
+  deepdiff,
+  fetchFromGitHub,
+  geoip2,
+  jinja2,
+  netmiko,
+  openpyxl,
+  pytestCheckHook,
+  poetry-core,
+  pyyaml,
+  tabulate,
+  ttp-templates,
+  yangson,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     hash = "sha256-IWqPFspERBVkjsTYTAkOTOrugq4fD65Q140G3SCEV0w=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     # https://github.com/dmulyalin/ttp/blob/master/docs/source/Installation.rst#additional-dependencies
@@ -47,9 +46,7 @@ buildPythonPackage rec {
     yangson
   ];
 
-  pythonImportsCheck = [
-    "ttp"
-  ];
+  pythonImportsCheck = [ "ttp" ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -97,9 +94,7 @@ buildPythonPackage rec {
     "test_ttp_templates_dir_env_variable"
   ];
 
-  pytestFlagsArray = [
-    "test/pytest"
-  ];
+  pytestFlagsArray = [ "test/pytest" ];
 
   meta = with lib; {
     changelog = "https://github.com/dmulyalin/ttp/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/ttstokenizer/default.nix b/pkgs/development/python-modules/ttstokenizer/default.nix
index 554e0341fb164..d8ab25b942192 100644
--- a/pkgs/development/python-modules/ttstokenizer/default.nix
+++ b/pkgs/development/python-modules/ttstokenizer/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, anyascii
-, inflect
-, nltk
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  anyascii,
+  inflect,
+  nltk,
+  numpy,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/tubes/default.nix b/pkgs/development/python-modules/tubes/default.nix
index 28d7b7bc4be22..df51ef91265ae 100644
--- a/pkgs/development/python-modules/tubes/default.nix
+++ b/pkgs/development/python-modules/tubes/default.nix
@@ -1,19 +1,30 @@
-{ lib, buildPythonPackage, fetchPypi, python
-, characteristic, six, twisted
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  characteristic,
+  six,
+  twisted,
 }:
 
 buildPythonPackage rec {
   pname = "tubes";
-  version = "0.2.1";
+  version = "0.2.1-unstable-2023-11-06";
   format = "setuptools";
 
-  src = fetchPypi {
-    pname = "Tubes";
-    inherit version;
-    hash = "sha256-WbkZfy+m9/xrwygd5VeXrccpu3XJxhO09tbEFZnw14s=";
+  src = fetchFromGitHub {
+    owner = "twisted";
+    repo = "tubes";
+    rev = "b74680b8e7bcfe64362865356bb9461b77bbd5c0";
+    hash = "sha256-E8brnt8CtTEEP1KQTsTsgnl54H4zRGp+1IuoI/Qf5NA=";
   };
 
-  propagatedBuildInputs = [ characteristic six twisted ];
+  propagatedBuildInputs = [
+    characteristic
+    six
+    twisted
+  ];
 
   checkPhase = ''
     ${python.interpreter} -m twisted.trial -j $NIX_BUILD_CORES tubes
@@ -22,9 +33,9 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "tubes" ];
 
   meta = with lib; {
-    description = "a data-processing and flow-control engine for event-driven programs";
-    homepage    = "https://github.com/twisted/tubes";
-    license     = licenses.mit;
+    description = "Data-processing and flow-control engine for event-driven programs";
+    homepage = "https://github.com/twisted/tubes";
+    license = licenses.mit;
     maintainers = with maintainers; [ exarkun ];
   };
 }
diff --git a/pkgs/development/python-modules/tubeup/default.nix b/pkgs/development/python-modules/tubeup/default.nix
index 463b89017cb3c..3b351c3a608ff 100644
--- a/pkgs/development/python-modules/tubeup/default.nix
+++ b/pkgs/development/python-modules/tubeup/default.nix
@@ -1,11 +1,11 @@
-{ lib
-, buildPythonPackage
-, internetarchive
-, fetchPypi
-, yt-dlp
-, docopt
-, pythonOlder
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  internetarchive,
+  fetchPypi,
+  yt-dlp,
+  docopt,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +20,6 @@ buildPythonPackage rec {
     sha256 = "sha256-Pp4h0MBoYhczmxPq21cLiYpLUeFP+2JoACcFpBl3b0E=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   propagatedBuildInputs = [
     internetarchive
@@ -30,13 +27,9 @@ buildPythonPackage rec {
     yt-dlp
   ];
 
-  pythonRelaxDeps = [
-    "docopt"
-  ];
+  pythonRelaxDeps = [ "docopt" ];
 
-  pythonImportsCheck = [
-    "tubeup"
-  ];
+  pythonImportsCheck = [ "tubeup" ];
 
   # Tests failing upstream
   doCheck = false;
diff --git a/pkgs/development/python-modules/tuf/default.nix b/pkgs/development/python-modules/tuf/default.nix
index 2572c4ed8cd74..984bd6f54c4b9 100644
--- a/pkgs/development/python-modules/tuf/default.nix
+++ b/pkgs/development/python-modules/tuf/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, ed25519
-, fetchFromGitHub
-, hatchling
-, pytestCheckHook
-, pythonOlder
-, requests
-, securesystemslib
+{
+  lib,
+  buildPythonPackage,
+  ed25519,
+  fetchFromGitHub,
+  hatchling,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  securesystemslib,
 }:
 
 buildPythonPackage rec {
@@ -28,24 +29,19 @@ buildPythonPackage rec {
       --replace-fail "hatchling==" "hatchling>="
   '';
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     requests
     securesystemslib
-  ] ++ securesystemslib.optional-dependencies.pynacl
-  ++ securesystemslib.optional-dependencies.crypto;
+  ] ++ securesystemslib.optional-dependencies.pynacl ++ securesystemslib.optional-dependencies.crypto;
 
   nativeCheckInputs = [
     ed25519
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "tuf"
-  ];
+  pythonImportsCheck = [ "tuf" ];
 
   preCheck = ''
     cd tests
@@ -55,7 +51,10 @@ buildPythonPackage rec {
     description = "Python reference implementation of The Update Framework (TUF)";
     homepage = "https://github.com/theupdateframework/python-tuf";
     changelog = "https://github.com/theupdateframework/python-tuf/blob/v${version}/docs/CHANGELOG.md";
-    license = with licenses; [ asl20 mit ];
+    license = with licenses; [
+      asl20
+      mit
+    ];
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/tunigo/default.nix b/pkgs/development/python-modules/tunigo/default.nix
index 600228b0d66f7..034aed0251b31 100644
--- a/pkgs/development/python-modules/tunigo/default.nix
+++ b/pkgs/development/python-modules/tunigo/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchFromGitHub, requests, mock, responses, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  mock,
+  responses,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "tunigo";
@@ -14,7 +22,11 @@ buildPythonPackage rec {
     sha256 = "07q9girrjjffzkn8xj4l3ynf9m4psi809zf6f81f54jdb330p2fs";
   };
 
-  nativeCheckInputs = [ mock responses pytest ];
+  nativeCheckInputs = [
+    mock
+    responses
+    pytest
+  ];
 
   checkPhase = ''
     py.test
diff --git a/pkgs/development/python-modules/turnt/default.nix b/pkgs/development/python-modules/turnt/default.nix
index 27aaee039d3bf..43a223bdfd5ee 100644
--- a/pkgs/development/python-modules/turnt/default.nix
+++ b/pkgs/development/python-modules/turnt/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, flit, click, tomli }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit,
+  click,
+  tomli,
+}:
 
 buildPythonPackage rec {
   pname = "turnt";
@@ -10,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-XN+qzRgZMSdeBmW0OM36mQ79sRCuP8E++SqH8FOoEq0=";
   };
 
-  nativeBuildInputs = [
-    flit
-  ];
+  nativeBuildInputs = [ flit ];
 
   propagatedBuildInputs = [
     click
diff --git a/pkgs/development/python-modules/tuya-device-sharing-sdk/default.nix b/pkgs/development/python-modules/tuya-device-sharing-sdk/default.nix
index dd95baba855d4..3179f22b5a5ef 100644
--- a/pkgs/development/python-modules/tuya-device-sharing-sdk/default.nix
+++ b/pkgs/development/python-modules/tuya-device-sharing-sdk/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, requests
-, paho-mqtt
-, cryptography
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  requests,
+  paho-mqtt,
+  cryptography,
 }:
 let
   pname = "tuya-device-sharing-sdk";
@@ -23,9 +24,7 @@ buildPythonPackage {
     touch requirements.txt
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   dependencies = [
     requests
diff --git a/pkgs/development/python-modules/tuya-iot-py-sdk/default.nix b/pkgs/development/python-modules/tuya-iot-py-sdk/default.nix
index d1b9d482da1de..cf8c96e1b1439 100644
--- a/pkgs/development/python-modules/tuya-iot-py-sdk/default.nix
+++ b/pkgs/development/python-modules/tuya-iot-py-sdk/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, paho-mqtt
-, pycryptodome
-, pythonOlder
-, requests
-, websocket-client
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  paho-mqtt,
+  pycryptodome,
+  pythonOlder,
+  requests,
+  websocket-client,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/tuyaha/default.nix b/pkgs/development/python-modules/tuyaha/default.nix
index 5973b763ef636..eb56f96547d6f 100644
--- a/pkgs/development/python-modules/tuyaha/default.nix
+++ b/pkgs/development/python-modules/tuyaha/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/tvdb-api/default.nix b/pkgs/development/python-modules/tvdb-api/default.nix
index f4255d8e854b7..31877a0e58d90 100644
--- a/pkgs/development/python-modules/tvdb-api/default.nix
+++ b/pkgs/development/python-modules/tvdb-api/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests-cache
-, pytest
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests-cache,
+  pytest,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/tweedledum/default.nix b/pkgs/development/python-modules/tweedledum/default.nix
index bc4808a268cb6..f31bee02bc17d 100644
--- a/pkgs/development/python-modules/tweedledum/default.nix
+++ b/pkgs/development/python-modules/tweedledum/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, cmake
-, ninja
-, scikit-build
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cmake,
+  ninja,
+  scikit-build,
   # Check Inputs
-, pytestCheckHook
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -14,7 +15,7 @@ buildPythonPackage rec {
   version = "1.1.1";
   format = "pyproject";
 
-  src = fetchFromGitHub{
+  src = fetchFromGitHub {
     owner = "boschmitt";
     repo = "tweedledum";
     rev = "v${version}";
@@ -26,7 +27,11 @@ buildPythonPackage rec {
     sed -i '/\[project\]/a name = "tweedledum"' pyproject.toml
   '';
 
-  nativeBuildInputs = [ cmake ninja scikit-build ];
+  nativeBuildInputs = [
+    cmake
+    ninja
+    scikit-build
+  ];
   dontUseCmakeConfigure = true;
 
   pythonImportsCheck = [ "tweedledum" ];
@@ -35,9 +40,9 @@ buildPythonPackage rec {
   pytestFlagsArray = [ "python/test" ];
 
   meta = with lib; {
-    description = "A library for synthesizing and manipulating quantum circuits";
+    description = "Library for synthesizing and manipulating quantum circuits";
     homepage = "https://github.com/boschmitt/tweedledum";
-    license = licenses.mit ;
+    license = licenses.mit;
     maintainers = with maintainers; [ drewrisinger ];
   };
 }
diff --git a/pkgs/development/python-modules/tweepy/default.nix b/pkgs/development/python-modules/tweepy/default.nix
index 4b83122575921..4d368b403a1ea 100644
--- a/pkgs/development/python-modules/tweepy/default.nix
+++ b/pkgs/development/python-modules/tweepy/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, aiohttp
-, async-lru
-, buildPythonPackage
-, fetchFromGitHub
-, oauthlib
-, pytestCheckHook
-, pythonOlder
-, requests
-, requests-oauthlib
-, six
-, vcrpy
+{
+  lib,
+  aiohttp,
+  async-lru,
+  buildPythonPackage,
+  fetchFromGitHub,
+  oauthlib,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  requests-oauthlib,
+  six,
+  vcrpy,
 }:
 
 buildPythonPackage rec {
@@ -40,15 +41,11 @@ buildPythonPackage rec {
     vcrpy
   ];
 
-  pythonImportsCheck = [
-    "tweepy"
-  ];
+  pythonImportsCheck = [ "tweepy" ];
 
   # The checks with streaming fail due to (seemingly) not decoding (or unexpectedly sending response in) GZIP
   # Same issue impacted mastodon-py, see https://github.com/halcy/Mastodon.py/commit/cd86887d88bbc07de462d1e00a8fbc3d956c0151 (who just disabled these)
-  disabledTestPaths = [
-    "tests/test_client.py"
-  ];
+  disabledTestPaths = [ "tests/test_client.py" ];
 
   disabledTests = [
     "test_indicate_direct_message_typing"
diff --git a/pkgs/development/python-modules/twentemilieu/default.nix b/pkgs/development/python-modules/twentemilieu/default.nix
index 389f31ba89bf0..5148a25e9ffaf 100644
--- a/pkgs/development/python-modules/twentemilieu/default.nix
+++ b/pkgs/development/python-modules/twentemilieu/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, aiohttp
-, yarl
-, aresponses
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  aiohttp,
+  yarl,
+  aresponses,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
       --replace '"0.0.0"' '"${version}"'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "twentemilieu"
-  ];
+  pythonImportsCheck = [ "twentemilieu" ];
 
   meta = with lib; {
     description = "Python client for Twente Milieu";
diff --git a/pkgs/development/python-modules/twiggy/default.nix b/pkgs/development/python-modules/twiggy/default.nix
index d25fd36a0d919..1c1759aeb8152 100644
--- a/pkgs/development/python-modules/twiggy/default.nix
+++ b/pkgs/development/python-modules/twiggy/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -21,8 +22,7 @@ buildPythonPackage rec {
     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";
-    license     = licenses.bsd3;
+    license = licenses.bsd3;
     maintainers = with maintainers; [ pierron ];
   };
-
 }
diff --git a/pkgs/development/python-modules/twilio/default.nix b/pkgs/development/python-modules/twilio/default.nix
index 5558ce327290d..c5e6a7c61607f 100644
--- a/pkgs/development/python-modules/twilio/default.nix
+++ b/pkgs/development/python-modules/twilio/default.nix
@@ -20,7 +20,7 @@
 
 buildPythonPackage rec {
   pname = "twilio";
-  version = "9.0.5";
+  version = "9.2.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -29,7 +29,7 @@ buildPythonPackage rec {
     owner = "twilio";
     repo = "twilio-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-q7tY44L8KA29HeoLBJf75Xp3IZSiT5DOkhtZ+7BD7Hg=";
+    hash = "sha256-lCa9dV8rYyGRff+uOKIT0eq5PRItGRuedgY7IrRZ714=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/twill/default.nix b/pkgs/development/python-modules/twill/default.nix
index 08e8ad74de225..9403f50f326b2 100644
--- a/pkgs/development/python-modules/twill/default.nix
+++ b/pkgs/development/python-modules/twill/default.nix
@@ -7,7 +7,6 @@
   pyparsing,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
   quixote,
   setuptools,
 }:
@@ -28,7 +27,6 @@ buildPythonPackage rec {
 
   build-system = [ setuptools ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     httpx
@@ -49,7 +47,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "twill" ];
 
   meta = with lib; {
-    description = "A simple scripting language for Web browsing";
+    description = "Simple scripting language for Web browsing";
     homepage = "https://twill-tools.github.io/twill/";
     changelog = "https://github.com/twill-tools/twill/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/twine/default.nix b/pkgs/development/python-modules/twine/default.nix
index e61ae137679dd..2002f84439d46 100644
--- a/pkgs/development/python-modules/twine/default.nix
+++ b/pkgs/development/python-modules/twine/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, importlib-metadata
-, keyring
-, pkginfo
-, readme-renderer
-, requests
-, requests-toolbelt
-, rich
-, rfc3986
-, setuptools-scm
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  importlib-metadata,
+  keyring,
+  pkginfo,
+  readme-renderer,
+  requests,
+  requests-toolbelt,
+  rich,
+  rfc3986,
+  setuptools-scm,
+  urllib3,
 }:
 
 buildPythonPackage rec {
   pname = "twine";
-  version = "5.0.0";
+  version = "5.1.0";
   format = "pyproject";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ibDMfTcKS2ZCHMYQLyaaqRD+DxhhwST1c88t3tvBDPQ=";
+    hash = "sha256-TXR3DIjE/K+BNNKmqdhj5A8IJV/32OKss8u9V9Jfbp0=";
   };
 
   nativeBuildInputs = [ setuptools-scm ];
diff --git a/pkgs/development/python-modules/twinkly-client/default.nix b/pkgs/development/python-modules/twinkly-client/default.nix
index d9931c044ba9a..4f348b29a0ee8 100644
--- a/pkgs/development/python-modules/twinkly-client/default.nix
+++ b/pkgs/development/python-modules/twinkly-client/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-F/N6yMOvLHIfXvPyR7z3P/Rlh79OvCbvEiNwClLSLl8=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "twinkly_client"
-  ];
+  pythonImportsCheck = [ "twinkly_client" ];
 
   meta = with lib; {
     description = "Python module to communicate with Twinkly LED strings";
diff --git a/pkgs/development/python-modules/twisted/default.nix b/pkgs/development/python-modules/twisted/default.nix
index d919aa568d9dd..8449cc2a6f125 100644
--- a/pkgs/development/python-modules/twisted/default.nix
+++ b/pkgs/development/python-modules/twisted/default.nix
@@ -1,55 +1,56 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, fetchpatch
-, python
-
-# build-system
-, hatchling
-, hatch-fancy-pypi-readme
-
-# dependencies
-, attrs
-, automat
-, constantly
-, hyperlink
-, incremental
-, typing-extensions
-, zope-interface
-
-# optional-dependencies
-, appdirs
-, bcrypt
-, cryptography
-, h2
-, idna
-, priority
-, pyasn1
-, pyopenssl
-, pyserial
-, service-identity
-
-# tests
-, cython-test-exception-raiser
-, git
-, glibcLocales
-, pyhamcrest
-, hypothesis
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  fetchpatch,
+  python,
+
+  # build-system
+  hatchling,
+  hatch-fancy-pypi-readme,
+
+  # dependencies
+  attrs,
+  automat,
+  constantly,
+  hyperlink,
+  incremental,
+  typing-extensions,
+  zope-interface,
+
+  # optional-dependencies
+  appdirs,
+  bcrypt,
+  cryptography,
+  h2,
+  idna,
+  priority,
+  pyasn1,
+  pyopenssl,
+  pyserial,
+  service-identity,
+
+  # tests
+  cython-test-exception-raiser,
+  git,
+  glibcLocales,
+  pyhamcrest,
+  hypothesis,
 
   # for passthru.tests
-, cassandra-driver
-, klein
-, magic-wormhole
-, scrapy
-, treq
-, txaio
-, txamqp
-, txrequests
-, txtorcon
-, thrift
-, nixosTests
+  cassandra-driver,
+  klein,
+  magic-wormhole,
+  scrapy,
+  treq,
+  txaio,
+  txamqp,
+  txrequests,
+  txtorcon,
+  thrift,
+  nixosTests,
 }:
 
 buildPythonPackage rec {
@@ -92,61 +93,68 @@ buildPythonPackage rec {
     zope-interface
   ];
 
-  postPatch = ''
-    echo 'ListingTests.test_localeIndependent.skip = "Timezone issue"'>> src/twisted/conch/test/test_cftp.py
-    echo 'ListingTests.test_newFile.skip = "Timezone issue"'>> src/twisted/conch/test/test_cftp.py
-    echo 'ListingTests.test_newSingleDigitDayOfMonth.skip = "Timezone issue"'>> src/twisted/conch/test/test_cftp.py
-    echo 'ListingTests.test_oldFile.skip = "Timezone issue"'>> src/twisted/conch/test/test_cftp.py
-    echo 'ListingTests.test_oldSingleDigitDayOfMonth.skip = "Timezone issue"'>> src/twisted/conch/test/test_cftp.py
-
-    echo 'WrapClientTLSParserTests.test_tls.skip = "pyopenssl update"' >> src/twisted/internet/test/test_endpoints.py
-    echo 'UNIXTestsBuilder_AsyncioSelectorReactorTests.test_sendFileDescriptorTriggersPauseProducing.skip = "sendFileDescriptor producer was not paused"'>> src/twisted/internet/test/test_unix.py
-    echo 'UNIXTestsBuilder_SelectReactorTests.test_sendFileDescriptorTriggersPauseProducing.skip = "sendFileDescriptor producer was not paused"'>> src/twisted/internet/test/test_unix.py
-
-    echo 'FileObserverTests.test_getTimezoneOffsetEastOfUTC.skip = "mktime argument out of range"'>> src/twisted/test/test_log.py
-    echo 'FileObserverTests.test_getTimezoneOffsetWestOfUTC.skip = "mktime argument out of range"'>> src/twisted/test/test_log.py
-    echo 'FileObserverTests.test_getTimezoneOffsetWithoutDaylightSavingTime.skip = "tuple differs, values not"'>> src/twisted/test/test_log.py
-
-    echo 'FileDescriptorTests.test_expectedFDs.skip = "Expected duplicate file descriptor to be greater than original"' >> src/twisted/internet/test/test_posixprocess.py
-
-    echo 'MulticastTests.test_joinLeave.skip = "No such device"'>> src/twisted/test/test_udp.py
-    echo 'MulticastTests.test_loopback.skip = "No such device"'>> src/twisted/test/test_udp.py
-    echo 'MulticastTests.test_multicast.skip = "Reactor was unclean"'>> src/twisted/test/test_udp.py
-    echo 'MulticastTests.test_multiListen.skip = "No such device"'>> src/twisted/test/test_udp.py
-
-    # fails since migrating to libxcrypt
-    echo 'HelperTests.test_refuteCryptedPassword.skip = "OSError: Invalid argument"' >> src/twisted/conch/test/test_checkers.py
-
-    # expectation mismatch with `python -m twisted --help` and `python -m twisted.trial --help` usage output
-    echo 'MainTests.test_twisted.skip = "Expectation Mismatch"' >> src/twisted/test/test_main.py
-    echo 'MainTests.test_trial.skip = "Expectation Mismatch"' >> src/twisted/test/test_main.py
-
-    # tests for missing https support in usage
-    echo 'ServiceTests.test_HTTPSFailureOnMissingSSL.skip = "Expectation Mismatch"' >> src/twisted/web/test/test_tap.py
-
-    # fail on Python 3.12
-    echo 'WorkerReporterTests.test_addSkipPyunit.skip = "'WorkerReporter' object has no attribute '_testStarted'"' >> src/twisted/trial/_dist/test/test_workerreporter.py
-    echo 'LocalWorkerAMPTests.test_runSkip.skip = "twisted.protocols.amp.UnknownRemoteError: Code<UNKNOWN>: Unknown Error"' >> src/twisted/trial/_dist/test/test_worker.py
-
-    # not packaged
-    substituteInPlace src/twisted/test/test_failure.py \
-      --replace "from cython_test_exception_raiser import raiser  # type: ignore[import]" "raiser = None"
-  '' + lib.optionalString stdenv.isLinux ''
-    echo 'PTYProcessTestsBuilder_EPollReactorTests.test_openFileDescriptors.skip = "invalid syntax"'>> src/twisted/internet/test/test_process.py
-    echo 'PTYProcessTestsBuilder_PollReactorTests.test_openFileDescriptors.skip = "invalid syntax"'>> src/twisted/internet/test/test_process.py
-    echo 'UNIXTestsBuilder_EPollReactorTests.test_sendFileDescriptorTriggersPauseProducing.skip = "sendFileDescriptor producer was not paused"'>> src/twisted/internet/test/test_unix.py
-    echo 'UNIXTestsBuilder_PollReactorTests.test_sendFileDescriptorTriggersPauseProducing.skip = "sendFileDescriptor producer was not paused"'>> src/twisted/internet/test/test_unix.py
-
-    # Patch t.p._inotify to point to libc. Without this,
-    # twisted.python.runtime.platform.supportsINotify() == False
-    substituteInPlace src/twisted/python/_inotify.py --replace \
-      "ctypes.util.find_library(\"c\")" "'${stdenv.cc.libc}/lib/libc.so.6'"
-  '' + lib.optionalString stdenv.isDarwin ''
-    echo 'ProcessTestsBuilder_AsyncioSelectorReactorTests.test_openFileDescriptors.skip = "invalid syntax"'>> src/twisted/internet/test/test_process.py
-    echo 'ProcessTestsBuilder_SelectReactorTests.test_openFileDescriptors.skip = "invalid syntax"'>> src/twisted/internet/test/test_process.py
-    echo 'ProcessTestsBuilder_AsyncioSelectorReactorTests.test_processEnded.skip = "exit code 120"' >> src/twisted/internet/test/test_process.py
-    echo 'ProcessTestsBuilder_SelectReactorTests.test_processEnded.skip = "exit code 120"' >> src/twisted/internet/test/test_process.py
-  '';
+  postPatch =
+    ''
+      echo 'ListingTests.test_localeIndependent.skip = "Timezone issue"'>> src/twisted/conch/test/test_cftp.py
+      echo 'ListingTests.test_newFile.skip = "Timezone issue"'>> src/twisted/conch/test/test_cftp.py
+      echo 'ListingTests.test_newSingleDigitDayOfMonth.skip = "Timezone issue"'>> src/twisted/conch/test/test_cftp.py
+      echo 'ListingTests.test_oldFile.skip = "Timezone issue"'>> src/twisted/conch/test/test_cftp.py
+      echo 'ListingTests.test_oldSingleDigitDayOfMonth.skip = "Timezone issue"'>> src/twisted/conch/test/test_cftp.py
+
+      echo 'WrapClientTLSParserTests.test_tls.skip = "pyopenssl update"' >> src/twisted/internet/test/test_endpoints.py
+      echo 'UNIXTestsBuilder_AsyncioSelectorReactorTests.test_sendFileDescriptorTriggersPauseProducing.skip = "sendFileDescriptor producer was not paused"'>> src/twisted/internet/test/test_unix.py
+      echo 'UNIXTestsBuilder_SelectReactorTests.test_sendFileDescriptorTriggersPauseProducing.skip = "sendFileDescriptor producer was not paused"'>> src/twisted/internet/test/test_unix.py
+
+      echo 'FileObserverTests.test_getTimezoneOffsetEastOfUTC.skip = "mktime argument out of range"'>> src/twisted/test/test_log.py
+      echo 'FileObserverTests.test_getTimezoneOffsetWestOfUTC.skip = "mktime argument out of range"'>> src/twisted/test/test_log.py
+      echo 'FileObserverTests.test_getTimezoneOffsetWithoutDaylightSavingTime.skip = "tuple differs, values not"'>> src/twisted/test/test_log.py
+
+      echo 'FileDescriptorTests.test_expectedFDs.skip = "Expected duplicate file descriptor to be greater than original"' >> src/twisted/internet/test/test_posixprocess.py
+
+      echo 'MulticastTests.test_joinLeave.skip = "No such device"'>> src/twisted/test/test_udp.py
+      echo 'MulticastTests.test_loopback.skip = "No such device"'>> src/twisted/test/test_udp.py
+      echo 'MulticastTests.test_multicast.skip = "Reactor was unclean"'>> src/twisted/test/test_udp.py
+      echo 'MulticastTests.test_multiListen.skip = "No such device"'>> src/twisted/test/test_udp.py
+
+      # fails since migrating to libxcrypt
+      echo 'HelperTests.test_refuteCryptedPassword.skip = "OSError: Invalid argument"' >> src/twisted/conch/test/test_checkers.py
+
+      # expectation mismatch with `python -m twisted --help` and `python -m twisted.trial --help` usage output
+      echo 'MainTests.test_twisted.skip = "Expectation Mismatch"' >> src/twisted/test/test_main.py
+      echo 'MainTests.test_trial.skip = "Expectation Mismatch"' >> src/twisted/test/test_main.py
+
+      # tests for missing https support in usage
+      echo 'ServiceTests.test_HTTPSFailureOnMissingSSL.skip = "Expectation Mismatch"' >> src/twisted/web/test/test_tap.py
+
+      # fail on Python 3.12
+      echo 'WorkerReporterTests.test_addSkipPyunit.skip = "'WorkerReporter' object has no attribute '_testStarted'"' >> src/twisted/trial/_dist/test/test_workerreporter.py
+      echo 'LocalWorkerAMPTests.test_runSkip.skip = "twisted.protocols.amp.UnknownRemoteError: Code<UNKNOWN>: Unknown Error"' >> src/twisted/trial/_dist/test/test_worker.py
+
+      # https://github.com/twisted/twisted/issues/12194
+      echo 'FlattenerErrorTests.test_asynchronousFlattenError.skip = "builtins.KeyError: 'root'"' >> src/twisted/web/test/test_flatten.py
+      echo 'FlattenerErrorTests.test_cancel.skip = "builtins.KeyError: 'root'"' >> src/twisted/web/test/test_flatten.py
+
+      # not packaged
+      substituteInPlace src/twisted/test/test_failure.py \
+        --replace "from cython_test_exception_raiser import raiser  # type: ignore[import]" "raiser = None"
+    ''
+    + lib.optionalString stdenv.isLinux ''
+      echo 'PTYProcessTestsBuilder_EPollReactorTests.test_openFileDescriptors.skip = "invalid syntax"'>> src/twisted/internet/test/test_process.py
+      echo 'PTYProcessTestsBuilder_PollReactorTests.test_openFileDescriptors.skip = "invalid syntax"'>> src/twisted/internet/test/test_process.py
+      echo 'UNIXTestsBuilder_EPollReactorTests.test_sendFileDescriptorTriggersPauseProducing.skip = "sendFileDescriptor producer was not paused"'>> src/twisted/internet/test/test_unix.py
+      echo 'UNIXTestsBuilder_PollReactorTests.test_sendFileDescriptorTriggersPauseProducing.skip = "sendFileDescriptor producer was not paused"'>> src/twisted/internet/test/test_unix.py
+
+      # Patch t.p._inotify to point to libc. Without this,
+      # twisted.python.runtime.platform.supportsINotify() == False
+      substituteInPlace src/twisted/python/_inotify.py --replace \
+        "ctypes.util.find_library(\"c\")" "'${stdenv.cc.libc}/lib/libc.so.6'"
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      echo 'ProcessTestsBuilder_AsyncioSelectorReactorTests.test_openFileDescriptors.skip = "invalid syntax"'>> src/twisted/internet/test/test_process.py
+      echo 'ProcessTestsBuilder_SelectReactorTests.test_openFileDescriptors.skip = "invalid syntax"'>> src/twisted/internet/test/test_process.py
+      echo 'ProcessTestsBuilder_AsyncioSelectorReactorTests.test_processEnded.skip = "exit code 120"' >> src/twisted/internet/test/test_process.py
+      echo 'ProcessTestsBuilder_SelectReactorTests.test_processEnded.skip = "exit code 120"' >> src/twisted/internet/test/test_process.py
+    '';
 
   # Generate Twisted's plug-in cache. Twisted users must do it as well. See
   # http://twistedmatrix.com/documents/current/core/howto/plugin.html#auto3
@@ -155,18 +163,19 @@ buildPythonPackage rec {
     $out/bin/twistd --help > /dev/null
   '';
 
-  nativeCheckInputs = [
-    cython-test-exception-raiser
-    git
-    glibcLocales
-    hypothesis
-    pyhamcrest
-  ]
-  ++ passthru.optional-dependencies.conch
-  ++ passthru.optional-dependencies.http2
-  ++ passthru.optional-dependencies.serial
-  # not supported on aarch64-darwin: https://github.com/pyca/pyopenssl/issues/873
-  ++ lib.optionals (!(stdenv.isDarwin && stdenv.isAarch64)) passthru.optional-dependencies.tls;
+  nativeCheckInputs =
+    [
+      cython-test-exception-raiser
+      git
+      glibcLocales
+      hypothesis
+      pyhamcrest
+    ]
+    ++ passthru.optional-dependencies.conch
+    ++ passthru.optional-dependencies.http2
+    ++ passthru.optional-dependencies.serial
+    # not supported on aarch64-darwin: https://github.com/pyca/pyopenssl/issues/873
+    ++ lib.optionals (!(stdenv.isDarwin && stdenv.isAarch64)) passthru.optional-dependencies.tls;
 
   checkPhase = ''
     export SOURCE_DATE_EPOCH=315532800
@@ -177,10 +186,22 @@ buildPythonPackage rec {
 
   passthru = {
     optional-dependencies = {
-      conch = [ appdirs bcrypt cryptography pyasn1 ];
-      http2 = [ h2 priority ];
+      conch = [
+        appdirs
+        bcrypt
+        cryptography
+        pyasn1
+      ];
+      http2 = [
+        h2
+        priority
+      ];
       serial = [ pyserial ];
-      tls = [ idna pyopenssl service-identity ];
+      tls = [
+        idna
+        pyopenssl
+        service-identity
+      ];
     };
 
     tests = {
@@ -194,7 +215,8 @@ buildPythonPackage rec {
         txamqp
         txrequests
         txtorcon
-        thrift;
+        thrift
+        ;
       inherit (nixosTests) buildbot matrix-synapse;
     };
   };
diff --git a/pkgs/development/python-modules/twitch-python/default.nix b/pkgs/development/python-modules/twitch-python/default.nix
index 9a578ebeedc27..ea16e8927feca 100644
--- a/pkgs/development/python-modules/twitch-python/default.nix
+++ b/pkgs/development/python-modules/twitch-python/default.nix
@@ -1,4 +1,13 @@
-{ lib, buildPythonPackage, fetchPypi, requests, rx, pytestCheckHook, responses, isPy3k }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  rx,
+  pytestCheckHook,
+  responses,
+  isPy3k,
+}:
 
 buildPythonPackage rec {
   pname = "twitch-python";
@@ -16,9 +25,15 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "'pipenv'," ""
   '';
 
-  propagatedBuildInputs = [ requests rx ];
+  propagatedBuildInputs = [
+    requests
+    rx
+  ];
 
-  nativeCheckInputs = [ pytestCheckHook responses ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    responses
+  ];
 
   pythonImportsCheck = [ "twitch" ];
 
diff --git a/pkgs/development/python-modules/twitchapi/default.nix b/pkgs/development/python-modules/twitchapi/default.nix
index 8dc26553d422c..6ceb6b5313664 100644
--- a/pkgs/development/python-modules/twitchapi/default.nix
+++ b/pkgs/development/python-modules/twitchapi/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, aiohttp
-, python-dateutil
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  aiohttp,
+  python-dateutil,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-QAxLYujnsudaiz9UepwrBA835Pct5h4VcE9ZrbkwMmg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -49,6 +48,8 @@ buildPythonPackage rec {
     description = "Python implementation of the Twitch Helix API, its Webhook, PubSub and EventSub";
     homepage = "https://github.com/Teekeks/pyTwitchAPI";
     license = licenses.mit;
-    maintainers = with maintainers; [ dotlambda wolfangaukang ];
+    maintainers = with maintainers; [
+      dotlambda
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/twitter-common-collections/default.nix b/pkgs/development/python-modules/twitter-common-collections/default.nix
index 644a97d2b2ec0..89137a3263913 100644
--- a/pkgs/development/python-modules/twitter-common-collections/default.nix
+++ b/pkgs/development/python-modules/twitter-common-collections/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, twitter-common-lang
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  twitter-common-lang,
 }:
 
 buildPythonPackage rec {
-  pname   = "twitter.common.collections";
+  pname = "twitter.common.collections";
   version = "0.3.11";
 
   src = fetchPypi {
@@ -17,9 +18,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Twitter's common collections";
-    homepage    = "https://twitter.github.io/commons/";
-    license     = licenses.asl20;
+    homepage = "https://twitter.github.io/commons/";
+    license = licenses.asl20;
     maintainers = with maintainers; [ copumpkin ];
   };
-
 }
diff --git a/pkgs/development/python-modules/twitter-common-confluence/default.nix b/pkgs/development/python-modules/twitter-common-confluence/default.nix
index d718a18822bed..f7b900f2ca11b 100644
--- a/pkgs/development/python-modules/twitter-common-confluence/default.nix
+++ b/pkgs/development/python-modules/twitter-common-confluence/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, twitter-common-log
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  twitter-common-log,
 }:
 
 buildPythonPackage rec {
-  pname   = "twitter.common.confluence";
+  pname = "twitter.common.confluence";
   version = "0.3.11";
 
   src = fetchPypi {
@@ -17,9 +18,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Twitter's API to the confluence wiki";
-    homepage    = "https://twitter.github.io/commons/";
-    license     = licenses.asl20;
+    homepage = "https://twitter.github.io/commons/";
+    license = licenses.asl20;
     maintainers = with maintainers; [ copumpkin ];
   };
-
 }
diff --git a/pkgs/development/python-modules/twitter-common-dirutil/default.nix b/pkgs/development/python-modules/twitter-common-dirutil/default.nix
index bf9ec099ddbae..10043c7ead8f3 100644
--- a/pkgs/development/python-modules/twitter-common-dirutil/default.nix
+++ b/pkgs/development/python-modules/twitter-common-dirutil/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, twitter-common-lang
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  twitter-common-lang,
 }:
 
 buildPythonPackage rec {
-  pname   = "twitter.common.dirutil";
+  pname = "twitter.common.dirutil";
   version = "0.3.11";
 
   src = fetchPypi {
@@ -17,9 +18,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Utilities for manipulating and finding files and directories";
-    homepage    = "https://twitter.github.io/commons/";
-    license     = licenses.asl20;
+    homepage = "https://twitter.github.io/commons/";
+    license = licenses.asl20;
     maintainers = with maintainers; [ copumpkin ];
   };
-
 }
diff --git a/pkgs/development/python-modules/twitter-common-lang/default.nix b/pkgs/development/python-modules/twitter-common-lang/default.nix
index 93178f4679217..975b6d128d0b0 100644
--- a/pkgs/development/python-modules/twitter-common-lang/default.nix
+++ b/pkgs/development/python-modules/twitter-common-lang/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
-  pname   = "twitter.common.lang";
+  pname = "twitter.common.lang";
   version = "0.3.11";
 
   src = fetchPypi {
@@ -14,9 +15,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Twitter's 2.x / 3.x compatibility swiss-army knife";
-    homepage    = "https://twitter.github.io/commons/";
-    license     = licenses.asl20;
+    homepage = "https://twitter.github.io/commons/";
+    license = licenses.asl20;
     maintainers = with maintainers; [ copumpkin ];
   };
-
 }
diff --git a/pkgs/development/python-modules/twitter-common-log/default.nix b/pkgs/development/python-modules/twitter-common-log/default.nix
index 61f5d99a8f1c6..bd7a2fec8198e 100644
--- a/pkgs/development/python-modules/twitter-common-log/default.nix
+++ b/pkgs/development/python-modules/twitter-common-log/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, twitter-common-options
-, twitter-common-dirutil
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  twitter-common-options,
+  twitter-common-dirutil,
 }:
 
 buildPythonPackage rec {
-  pname   = "twitter.common.log";
+  pname = "twitter.common.log";
   version = "0.3.11";
 
   src = fetchPypi {
@@ -14,13 +15,15 @@ buildPythonPackage rec {
     sha256 = "7160a864eed30044705e05b816077dd193aec0c66f50ef1c077b7f8490e0d06a";
   };
 
-  propagatedBuildInputs = [ twitter-common-options twitter-common-dirutil ];
+  propagatedBuildInputs = [
+    twitter-common-options
+    twitter-common-dirutil
+  ];
 
   meta = with lib; {
     description = "Twitter's common logging library";
-    homepage    = "https://twitter.github.io/commons/";
-    license     = licenses.asl20;
+    homepage = "https://twitter.github.io/commons/";
+    license = licenses.asl20;
     maintainers = with maintainers; [ copumpkin ];
   };
-
 }
diff --git a/pkgs/development/python-modules/twitter-common-options/default.nix b/pkgs/development/python-modules/twitter-common-options/default.nix
index b3ae7f7f5d94c..47aa9e70824e5 100644
--- a/pkgs/development/python-modules/twitter-common-options/default.nix
+++ b/pkgs/development/python-modules/twitter-common-options/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
-  pname   = "twitter.common.options";
+  pname = "twitter.common.options";
   version = "0.3.11";
 
   src = fetchPypi {
@@ -14,9 +15,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Twitter's optparse wrapper";
-    homepage    = "https://twitter.github.io/commons/";
-    license     = licenses.asl20;
+    homepage = "https://twitter.github.io/commons/";
+    license = licenses.asl20;
     maintainers = with maintainers; [ copumpkin ];
   };
-
 }
diff --git a/pkgs/development/python-modules/twitter/default.nix b/pkgs/development/python-modules/twitter/default.nix
index 64ca41f60c2f0..545b7784b9a01 100644
--- a/pkgs/development/python-modules/twitter/default.nix
+++ b/pkgs/development/python-modules/twitter/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools-scm
-, certifi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools-scm,
+  certifi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,19 +19,13 @@ buildPythonPackage rec {
     hash = "sha256-gN3WmuLuuIMT/u3uoxvxGf1ueVQe5bN6u5xD0jMZThA=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    certifi
-  ];
+  propagatedBuildInputs = [ certifi ];
 
   doCheck = false;
 
-  pythonImportsCheck = [
-    "twitter"
-  ];
+  pythonImportsCheck = [ "twitter" ];
 
   meta = with lib; {
     description = "Twitter API library";
diff --git a/pkgs/development/python-modules/twitterapi/default.nix b/pkgs/development/python-modules/twitterapi/default.nix
index 72185f243bedd..c9ee6a5af064f 100644
--- a/pkgs/development/python-modules/twitterapi/default.nix
+++ b/pkgs/development/python-modules/twitterapi/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, requests-oauthlib
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  requests-oauthlib,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Tests are interacting with the Twitter API
   doCheck = false;
 
-  pythonImportsCheck = [
-    "TwitterAPI"
-  ];
+  pythonImportsCheck = [ "TwitterAPI" ];
 
   meta = with lib; {
     description = "Python wrapper for Twitter's REST and Streaming APIs";
diff --git a/pkgs/development/python-modules/twofish/default.nix b/pkgs/development/python-modules/twofish/default.nix
index 5076de1ad3c33..e741b97d071de 100644
--- a/pkgs/development/python-modules/twofish/default.nix
+++ b/pkgs/development/python-modules/twofish/default.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
 
-# pythonPackages
-, javaobj-py3
+  # pythonPackages
+  javaobj-py3,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     sha256 = "1yihp2n42amrxw0wk9f66llpb3w5kwhgkcdg9krkzcik1nsqp7dh";
   };
 
-  propagatedBuildInputs = [
-    javaobj-py3
-  ];
+  propagatedBuildInputs = [ javaobj-py3 ];
 
   # No tests implemented
   doCheck = false;
@@ -27,8 +26,6 @@ buildPythonPackage rec {
     description = "Bindings for the Twofish implementation by Niels Ferguson";
     homepage = "https://github.com/keybase/python-twofish";
     license = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [
-      kamadorueda
-    ];
+    maintainers = with lib.maintainers; [ kamadorueda ];
   };
 }
diff --git a/pkgs/development/python-modules/txaio/default.nix b/pkgs/development/python-modules/txaio/default.nix
index ec8ffb3901fb3..60c7f0f444467 100644
--- a/pkgs/development/python-modules/txaio/default.nix
+++ b/pkgs/development/python-modules/txaio/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mock
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, twisted
-, zope-interface
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  twisted,
+  zope-interface,
 }:
 
 buildPythonPackage rec {
@@ -44,9 +45,7 @@ buildPythonPackage rec {
     "test_cancel"
   ];
 
-  pythonImportsCheck = [
-    "txaio"
-  ];
+  pythonImportsCheck = [ "txaio" ];
 
   meta = with lib; {
     description = "Utilities to support code that runs unmodified on Twisted and asyncio";
diff --git a/pkgs/development/python-modules/txamqp/default.nix b/pkgs/development/python-modules/txamqp/default.nix
index 935ef043f22fa..f9dacc571c58e 100644
--- a/pkgs/development/python-modules/txamqp/default.nix
+++ b/pkgs/development/python-modules/txamqp/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, twisted
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  twisted,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,6 @@ buildPythonPackage rec {
     homepage = "https://github.com/txamqp/txamqp";
     description = "Library for communicating with AMQP peers and brokers using Twisted";
     license = licenses.asl20;
-    maintainers = [];
+    maintainers = [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/txdbus/default.nix b/pkgs/development/python-modules/txdbus/default.nix
index 3f377313a0bd2..33ed4a66a68e4 100644
--- a/pkgs/development/python-modules/txdbus/default.nix
+++ b/pkgs/development/python-modules/txdbus/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, six, twisted }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  twisted,
+}:
 
 buildPythonPackage rec {
   pname = "txdbus";
@@ -10,7 +16,10 @@ buildPythonPackage rec {
     sha256 = "8375a5fb68a12054f0def91af800c821fb2232949337756ed975f88d8ea2bc97";
   };
 
-  propagatedBuildInputs = [ six twisted ];
+  propagatedBuildInputs = [
+    six
+    twisted
+  ];
   pythonImportsCheck = [ "txdbus" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/txgithub/default.nix b/pkgs/development/python-modules/txgithub/default.nix
index 8fa0229f0ca52..98530fb9f413a 100644
--- a/pkgs/development/python-modules/txgithub/default.nix
+++ b/pkgs/development/python-modules/txgithub/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyopenssl
-, twisted
-, service-identity
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyopenssl,
+  twisted,
+  service-identity,
 }:
 
 buildPythonPackage rec {
@@ -16,7 +17,11 @@ buildPythonPackage rec {
     sha256 = "16gbizy8vkxasxylwzj4p66yw8979nvzxdj6csidgmng7gi2k8nx";
   };
 
-  propagatedBuildInputs = [ pyopenssl twisted service-identity ];
+  propagatedBuildInputs = [
+    pyopenssl
+    twisted
+    service-identity
+  ];
 
   # fix python3 issues
   patchPhase = ''
@@ -31,10 +36,9 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "GitHub API client implemented using Twisted.";
-    homepage    = "https://github.com/tomprince/txgithub";
-    license     = licenses.mit;
+    description = "GitHub API client implemented using Twisted";
+    homepage = "https://github.com/tomprince/txgithub";
+    license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/txi2p-tahoe/default.nix b/pkgs/development/python-modules/txi2p-tahoe/default.nix
index 9ddc10885788a..751facddfd1aa 100644
--- a/pkgs/development/python-modules/txi2p-tahoe/default.nix
+++ b/pkgs/development/python-modules/txi2p-tahoe/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, setuptools-scm
-, parsley
-, twisted
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  parsley,
+  twisted,
+  python,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/txredisapi/default.nix b/pkgs/development/python-modules/txredisapi/default.nix
index 315e7f8e27138..d73b87b286217 100644
--- a/pkgs/development/python-modules/txredisapi/default.nix
+++ b/pkgs/development/python-modules/txredisapi/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, six
-, twisted
-, nixosTests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  six,
+  twisted,
+  nixosTests,
 }:
 
 buildPythonPackage rec {
@@ -19,19 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-6Z2vurTAw9YHxvEiixtdxBH0YHj+Y9aTdsSkafPMZus=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     six
     twisted
-  ]
-  ++ twisted.optional-dependencies.tls;
+  ] ++ twisted.optional-dependencies.tls;
 
-  pythonImportsCheck = [
-    "txredisapi"
-  ];
+  pythonImportsCheck = [ "txredisapi" ];
 
   doCheck = false;
 
@@ -44,4 +40,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ dandellion ];
   };
 }
-
diff --git a/pkgs/development/python-modules/txrequests/default.nix b/pkgs/development/python-modules/txrequests/default.nix
index 706a97b6297ab..aeabc80a94259 100644
--- a/pkgs/development/python-modules/txrequests/default.nix
+++ b/pkgs/development/python-modules/txrequests/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, twisted
-, requests
-, cryptography
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  twisted,
+  requests,
+  cryptography,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,11 @@ buildPythonPackage rec {
     sha256 = "b452a1cafa4d005678f6fa47922a330feb4907d5b4732d1841ca98e89f1362e1";
   };
 
-  propagatedBuildInputs = [ twisted requests cryptography ];
+  propagatedBuildInputs = [
+    twisted
+    requests
+    cryptography
+  ];
 
   # Require network access
   doCheck = false;
@@ -25,10 +30,9 @@ buildPythonPackage rec {
   nativeCheckInputs = [ unittestCheckHook ];
 
   meta = with lib; {
-    description = "Asynchronous Python HTTP for Humans.";
-    homepage    = "https://github.com/tardyp/txrequests";
-    license     = licenses.asl20;
+    description = "Asynchronous Python HTTP for Humans";
+    homepage = "https://github.com/tardyp/txrequests";
+    license = licenses.asl20;
     maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/txtai/default.nix b/pkgs/development/python-modules/txtai/default.nix
index 256ed0889bfe7..b2b9704d5425c 100644
--- a/pkgs/development/python-modules/txtai/default.nix
+++ b/pkgs/development/python-modules/txtai/default.nix
@@ -1,73 +1,110 @@
 {
-  lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, pythonRelaxDepsHook
-# propagated build input
-, faiss
-, torch
-, transformers
-, huggingface-hub
-, numpy
-, pyyaml
-, regex
-# optional-dependencies
-, aiohttp
-, fastapi
-, uvicorn
-# TODO add apache-libcloud
-# , apache-libcloud
-, rich
-, duckdb
-, pillow
-, networkx
-, python-louvain
-, onnx
-, onnxruntime
-, soundfile
-, scipy
-, ttstokenizer
-, beautifulsoup4
-, nltk
-, pandas
-, tika
-, imagehash
-, timm
-, fasttext
-, sentencepiece
-, accelerate
-, onnxmltools
-, annoy
-, hnswlib
-# TODO add pymagnitude-lite
-#, pymagnitude-lite
-, scikit-learn
-, sentence-transformers
-, croniter
-, openpyxl
-, requests
-, xmltodict
-# native check inputs
-, unittestCheckHook
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  # propagated build input
+  faiss,
+  torch,
+  transformers,
+  huggingface-hub,
+  numpy,
+  pyyaml,
+  regex,
+  # optional-dependencies
+  aiohttp,
+  fastapi,
+  uvicorn,
+  # TODO add apache-libcloud
+  # , apache-libcloud
+  rich,
+  duckdb,
+  pillow,
+  networkx,
+  python-louvain,
+  onnx,
+  onnxruntime,
+  soundfile,
+  scipy,
+  ttstokenizer,
+  beautifulsoup4,
+  nltk,
+  pandas,
+  tika,
+  imagehash,
+  timm,
+  fasttext,
+  sentencepiece,
+  accelerate,
+  onnxmltools,
+  annoy,
+  hnswlib,
+  # TODO add pymagnitude-lite
+  #, pymagnitude-lite
+  scikit-learn,
+  sentence-transformers,
+  croniter,
+  openpyxl,
+  requests,
+  xmltodict,
+  # native check inputs
+  unittestCheckHook,
+
+  pythonAtLeast,
 }:
 let
-  version = "7.1.0";
-  api = [ aiohttp fastapi uvicorn ];
+  version = "7.2.0";
+  api = [
+    aiohttp
+    fastapi
+    uvicorn
+  ];
   # cloud = [ apache-libcloud ];
   console = [ rich ];
 
-  database = [ duckdb pillow ];
+  database = [
+    duckdb
+    pillow
+  ];
 
-  graph = [ networkx python-louvain ];
+  graph = [
+    networkx
+    python-louvain
+  ];
 
-  model = [ onnx onnxruntime ];
+  model = [
+    onnx
+    onnxruntime
+  ];
 
-  pipeline-audio = [ onnx onnxruntime soundfile scipy ttstokenizer ];
-  pipeline-data = [ beautifulsoup4 nltk pandas tika ];
-  pipeline-image = [ imagehash pillow timm ];
-  pipeline-text = [ fasttext sentencepiece ];
-  pipeline-train = [ accelerate onnx onnxmltools onnxruntime ];
+  pipeline-audio = [
+    onnx
+    onnxruntime
+    soundfile
+    scipy
+    ttstokenizer
+  ];
+  pipeline-data = [
+    beautifulsoup4
+    nltk
+    pandas
+    tika
+  ];
+  pipeline-image = [
+    imagehash
+    pillow
+    timm
+  ];
+  pipeline-text = [
+    fasttext
+    sentencepiece
+  ];
+  pipeline-train = [
+    accelerate
+    onnx
+    onnxmltools
+    onnxruntime
+  ];
   pipeline = pipeline-audio ++ pipeline-data ++ pipeline-image ++ pipeline-text ++ pipeline-train;
 
   similarity = [
@@ -90,8 +127,21 @@ let
   all = api ++ console ++ database ++ graph ++ model ++ pipeline ++ similarity ++ workflow;
 
   optional-dependencies = {
-    inherit api console database graph model pipeline-audio pipeline-image
-      pipeline-text pipeline-train pipeline similarity workflow all;
+    inherit
+      api
+      console
+      database
+      graph
+      model
+      pipeline-audio
+      pipeline-image
+      pipeline-text
+      pipeline-train
+      pipeline
+      similarity
+      workflow
+      all
+      ;
   };
 in
 buildPythonPackage {
@@ -105,12 +155,9 @@ buildPythonPackage {
     owner = "neuml";
     repo = "txtai";
     rev = "refs/tags/v${version}";
-    hash = "sha256-L+L2jRkCQKOgd1k3N4mft0Kt6kvCN81lgSQUjoon5rk=";
+    hash = "sha256-2d31wzUz0/FcrejDIog2EI4BXgjd7XXpN4tRXpLk5DI=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   pythonRemoveDeps = [
     # We call it faiss, not faiss-cpu.
@@ -143,14 +190,18 @@ buildPythonPackage {
   ] ++ optional-dependencies.api ++ optional-dependencies.similarity;
 
   unittestFlagsArray = [
-    "-s" "test/python" "-v"
+    "-s"
+    "test/python"
+    "-v"
   ];
 
-  meta = with lib; {
+  meta = {
     description = "Semantic search and workflows powered by language models";
     changelog = "https://github.com/neuml/txtai/releases/tag/v${version}";
     homepage = "https://github.com/neuml/txtai";
-    license = licenses.asl20;
-    maintainers = with maintainers; [ happysalada ];
+    license = lib.licenses.asl20;
+    maintainers = with lib.maintainers; [ happysalada ];
+    # This should be addressed in a newer version, but we first need to wait for python311Packages.faiss to be updated
+    broken = pythonAtLeast "3.12";
   };
 }
diff --git a/pkgs/development/python-modules/txtorcon/default.nix b/pkgs/development/python-modules/txtorcon/default.nix
index e9b1fdf24b1cd..1c4352caa48fd 100644
--- a/pkgs/development/python-modules/txtorcon/default.nix
+++ b/pkgs/development/python-modules/txtorcon/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, stdenv
-, automat
-, buildPythonPackage
-, cryptography
-, fetchPypi
-, geoip
-, idna
-, incremental
-, lsof
-, mock
-, pyopenssl
-, pytestCheckHook
-, python
-, pythonOlder
-, service-identity
-, twisted
-, zope-interface
+{
+  lib,
+  stdenv,
+  automat,
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  geoip,
+  idna,
+  incremental,
+  lsof,
+  mock,
+  pyopenssl,
+  pytestCheckHook,
+  python,
+  pythonOlder,
+  service-identity,
+  twisted,
+  zope-interface,
 }:
 
 buildPythonPackage rec {
@@ -51,7 +52,10 @@ buildPythonPackage rec {
     description = "Twisted-based Tor controller client, with state-tracking and configuration abstractions";
     homepage = "https://github.com/meejah/txtorcon";
     changelog = "https://github.com/meejah/txtorcon/releases/tag/v${version}";
-    maintainers = with maintainers; [ jluttine exarkun ];
+    maintainers = with maintainers; [
+      jluttine
+      exarkun
+    ];
     license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/txzmq/default.nix b/pkgs/development/python-modules/txzmq/default.nix
index a8e75896b7c26..6c521d2f69f32 100644
--- a/pkgs/development/python-modules/txzmq/default.nix
+++ b/pkgs/development/python-modules/txzmq/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pyzmq
-, twisted
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pyzmq,
+  twisted,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     twisted
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "txzmq" ];
 
@@ -32,6 +31,6 @@ buildPythonPackage rec {
     description = "Twisted bindings for ZeroMQ";
     homepage = "https://github.com/smira/txZMQ";
     license = licenses.mpl20;
-    maintainers = with maintainers; [ wolfangaukang ];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/type-infer/default.nix b/pkgs/development/python-modules/type-infer/default.nix
index 1e10215031006..93fcfe9b18d7f 100644
--- a/pkgs/development/python-modules/type-infer/default.nix
+++ b/pkgs/development/python-modules/type-infer/default.nix
@@ -1,30 +1,35 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, poetry-core
-, colorlog
-, dataclasses-json
-, langid
-, nltk
-, numpy
-, pandas
-, psutil
-, python-dateutil
-, scipy
-, toml
-, nltk-data
-, symlinkJoin
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  poetry-core,
+  colorlog,
+  dataclasses-json,
+  langid,
+  nltk,
+  numpy,
+  pandas,
+  psutil,
+  py3langid,
+  python-dateutil,
+  scipy,
+  toml,
+  nltk-data,
+  symlinkJoin,
 }:
 let
   testNltkData = symlinkJoin {
     name = "nltk-test-data";
-    paths = [ nltk-data.punkt nltk-data.stopwords ];
+    paths = [
+      nltk-data.punkt
+      nltk-data.stopwords
+    ];
   };
 in
 buildPythonPackage rec {
   pname = "type-infer";
-  version = "0.0.19";
+  version = "0.0.20";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
@@ -33,12 +38,10 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "type_infer";
     inherit version;
-    hash = "sha256-7fWRM776lAyOncp6WZDLH9ouVBhVvV23105xvhw8V24=";
+    hash = "sha256-F+gfA7ofrbMEE5SrVt9H3s2mZKQLyr6roNUmL4EMJbI=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     colorlog
@@ -48,6 +51,7 @@ buildPythonPackage rec {
     numpy
     pandas
     psutil
+    py3langid
     python-dateutil
     scipy
     toml
diff --git a/pkgs/development/python-modules/typechecks/default.nix b/pkgs/development/python-modules/typechecks/default.nix
index c458c9c15236c..4d7da1759f311 100644
--- a/pkgs/development/python-modules/typechecks/default.nix
+++ b/pkgs/development/python-modules/typechecks/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/typecode/default.nix b/pkgs/development/python-modules/typecode/default.nix
index 88e76fda670a4..ed9bc62959cc4 100644
--- a/pkgs/development/python-modules/typecode/default.nix
+++ b/pkgs/development/python-modules/typecode/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, setuptools-scm
-, attrs
-, pdfminer-six
-, commoncode
-, plugincode
-, binaryornot
-, typecode-libmagic
-, pytestCheckHook
-, pytest-xdist
-, pythonOlder
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  setuptools-scm,
+  attrs,
+  pdfminer-six,
+  commoncode,
+  plugincode,
+  binaryornot,
+  typecode-libmagic,
+  pytestCheckHook,
+  pytest-xdist,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
 
   dontConfigure = true;
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     attrs
@@ -60,9 +59,7 @@ buildPythonPackage rec {
     "test_package_debian"
   ];
 
-  pythonImportsCheck = [
-    "typecode"
-  ];
+  pythonImportsCheck = [ "typecode" ];
 
   meta = with lib; {
     description = "Comprehensive filetype and mimetype detection using libmagic and Pygments";
diff --git a/pkgs/development/python-modules/typecode/libmagic.nix b/pkgs/development/python-modules/typecode/libmagic.nix
index 1c9144226bc24..7d1add320b4cb 100644
--- a/pkgs/development/python-modules/typecode/libmagic.nix
+++ b/pkgs/development/python-modules/typecode/libmagic.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, plugincode
-, file
-, zlib
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  plugincode,
+  file,
+  zlib,
 }:
 buildPythonPackage rec {
   pname = "typecode-libmagic";
@@ -18,9 +19,7 @@ buildPythonPackage rec {
 
   sourceRoot = "${src.name}/builtins/typecode_libmagic-linux";
 
-  propagatedBuildInputs = [
-    plugincode
-  ];
+  propagatedBuildInputs = [ plugincode ];
 
   preBuild = ''
     pushd src/typecode_libmagic
@@ -36,12 +35,10 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "typecode_libmagic"
-  ];
+  pythonImportsCheck = [ "typecode_libmagic" ];
 
   meta = with lib; {
-    description = "A ScanCode Toolkit plugin to provide pre-built binary libraries and utilities and their locations";
+    description = "ScanCode Toolkit plugin to provide pre-built binary libraries and utilities and their locations";
     homepage = "https://github.com/nexB/scancode-plugins/tree/main/builtins/typecode_libmagic-linux";
     license = licenses.asl20;
     maintainers = [ ];
diff --git a/pkgs/development/python-modules/typed-ast/default.nix b/pkgs/development/python-modules/typed-ast/default.nix
index 48ce811b9ebec..68f1a238107e3 100644
--- a/pkgs/development/python-modules/typed-ast/default.nix
+++ b/pkgs/development/python-modules/typed-ast/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-GRmKw7SRrrIIb61VeB8GLhSKCmLUd54AA+GAf43vor8=";
   };
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
   checkPhase = ''
     runHook preCheck
diff --git a/pkgs/development/python-modules/typed-settings/default.nix b/pkgs/development/python-modules/typed-settings/default.nix
index fe2ebd26d7d18..66f59fb6f0ad0 100644
--- a/pkgs/development/python-modules/typed-settings/default.nix
+++ b/pkgs/development/python-modules/typed-settings/default.nix
@@ -17,7 +17,7 @@
 
 buildPythonPackage rec {
   pname = "typed-settings";
-  version = "24.2.0";
+  version = "24.3.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -25,7 +25,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "typed_settings";
     inherit version;
-    hash = "sha256-BuosfIlCgCD+h7eA/6/oE98zdURaT3eik+dysBpJR+Y=";
+    hash = "sha256-x1ojSSZNrKkBHKE9dWw7NzX/G6ggRYRIQ5MMahwL1Ps=";
   };
 
   build-system = [ hatchling ];
diff --git a/pkgs/development/python-modules/typeguard/default.nix b/pkgs/development/python-modules/typeguard/default.nix
index 31fb7a3ff43d2..41e7c35791ac7 100644
--- a/pkgs/development/python-modules/typeguard/default.nix
+++ b/pkgs/development/python-modules/typeguard/default.nix
@@ -1,28 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, typing-extensions
-, importlib-metadata
-, sphinxHook
-, sphinx-autodoc-typehints
-, sphinx-rtd-theme
-, glibcLocales
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  typing-extensions,
+  importlib-metadata,
+  mypy,
+  sphinxHook,
+  sphinx-autodoc-typehints,
+  sphinx-rtd-theme,
+  glibcLocales,
 }:
 
 buildPythonPackage rec {
   pname = "typeguard";
-  version = "4.2.1";
-  format = "pyproject";
+  version = "4.3.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-xVahuVlIIwUQBwylP6A0H7CWRhG9BdWY2H+1IRXWX+4=";
+    hash = "sha256-ku5qCuyRNRgermBn69YX/Z3o111xT7VIcopJM7HeplE=";
   };
 
   outputs = [
@@ -30,7 +32,7 @@ buildPythonPackage rec {
     "doc"
   ];
 
-  nativeBuildInputs = [
+  build-system = [
     glibcLocales
     setuptools
     setuptools-scm
@@ -39,21 +41,18 @@ buildPythonPackage rec {
     sphinx-rtd-theme
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     typing-extensions
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ];
 
   env.LC_ALL = "en_US.utf-8";
 
   nativeCheckInputs = [
+    mypy
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "typeguard"
-  ];
+  pythonImportsCheck = [ "typeguard" ];
 
   disabledTestPaths = [
     # mypy tests aren't passing with latest mypy
diff --git a/pkgs/development/python-modules/typepy/default.nix b/pkgs/development/python-modules/typepy/default.nix
index ae97d857da8d0..91e01efa20192 100644
--- a/pkgs/development/python-modules/typepy/default.nix
+++ b/pkgs/development/python-modules/typepy/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mbstrdecoder
-, python-dateutil
-, pytz
-, packaging
-, pytestCheckHook
-, pythonOlder
-, tcolorpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mbstrdecoder,
+  python-dateutil,
+  pytz,
+  packaging,
+  pytestCheckHook,
+  pythonOlder,
+  tcolorpy,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-oIDVjJwapHun0Rk04zOZ4IjAh7qZ2k0BXK6zqFmtVds=";
   };
 
-  propagatedBuildInputs = [
-    mbstrdecoder
-  ];
+  propagatedBuildInputs = [ mbstrdecoder ];
 
   passthru.optional-dependencies = {
     datetime = [
@@ -41,9 +40,7 @@ buildPythonPackage rec {
     tcolorpy
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "typepy"
-  ];
+  pythonImportsCheck = [ "typepy" ];
 
   meta = with lib; {
     description = "Library for variable type checker/validator/converter at a run time";
diff --git a/pkgs/development/python-modules/typer-shell/default.nix b/pkgs/development/python-modules/typer-shell/default.nix
new file mode 100644
index 0000000000000..b54ad8d256f6f
--- /dev/null
+++ b/pkgs/development/python-modules/typer-shell/default.nix
@@ -0,0 +1,57 @@
+{
+  lib,
+  buildPythonPackage,
+  click,
+  click-shell,
+  fetchFromGitHub,
+  iterfzf,
+  poetry-core,
+  pythonOlder,
+  pyyaml,
+  rich,
+  typer,
+}:
+
+buildPythonPackage rec {
+  pname = "typer-shell";
+  version = "0.1.9";
+  pyproject = true;
+
+  disabled = pythonOlder "3.9";
+
+  src = fetchFromGitHub {
+    owner = "FergusFettes";
+    repo = "typer-shell";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-y66Je9E0IWDuGrHtd1D8zP7E0EVfvrF3KOlA2dRFU+s=";
+  };
+
+  pythonRelaxDeps = [
+    "iterfzf"
+    "typer"
+  ];
+
+  build-system = [ poetry-core ];
+
+
+  dependencies = [
+    click
+    click-shell
+    iterfzf
+    pyyaml
+    rich
+    typer
+  ];
+
+  # Module has no tests
+  doCheck = false;
+
+  pythonImportsCheck = [ "typer_shell" ];
+
+  meta = with lib; {
+    description = "Library for making beautiful shells/REPLs with Typer";
+    homepage = "https://github.com/FergusFettes/typer-shell";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/typer/default.nix b/pkgs/development/python-modules/typer/default.nix
index a1f0a9033e109..298db51c8f7b5 100644
--- a/pkgs/development/python-modules/typer/default.nix
+++ b/pkgs/development/python-modules/typer/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, click
-, colorama
-, coverage
-, fetchPypi
-, pdm-backend
-, pytest-sugar
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, rich
-, shellingham
-, typing-extensions
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  click,
+  colorama,
+  coverage,
+  fetchPypi,
+  pdm-backend,
+  pytest-sugar,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  rich,
+  shellingham,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-SecxMUgdgEKI72JZjZehzu8wWJBapTahE0+QiRujVII=";
   };
 
-  nativeBuildInputs = [
-    pdm-backend
-  ];
+  nativeBuildInputs = [ pdm-backend ];
 
   propagatedBuildInputs = [
     click
@@ -61,13 +60,9 @@ buildPythonPackage rec {
     # fails also on Linux
     "test_show_completion"
     "test_install_completion"
-  ] ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [
-    "test_install_completion"
-  ];
+  ] ++ lib.optionals (stdenv.isLinux && stdenv.isAarch64) [ "test_install_completion" ];
 
-  pythonImportsCheck = [
-    "typer"
-  ];
+  pythonImportsCheck = [ "typer" ];
 
   meta = with lib; {
     description = "Library for building CLI applications";
diff --git a/pkgs/development/python-modules/types-aiobotocore-packages/default.nix b/pkgs/development/python-modules/types-aiobotocore-packages/default.nix
index 3e98124668f3a..b7ae5e53db882 100644
--- a/pkgs/development/python-modules/types-aiobotocore-packages/default.nix
+++ b/pkgs/development/python-modules/types-aiobotocore-packages/default.nix
@@ -1,757 +1,1460 @@
-{ lib
-, aiobotocore
-, botocore
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, typing-extensions
+{
+  lib,
+  stdenv,
+  aiobotocore,
+  botocore,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
 }:
+
 let
   toUnderscore = str: builtins.replaceStrings [ "-" ] [ "_" ] str;
-
-  buildTypesAiobotocorePackage = serviceName: version: hash:
+  buildTypesAiobotocorePackage =
+    serviceName: version: hash:
     buildPythonPackage rec {
       pname = "types-aiobotocore-${serviceName}";
       inherit version;
       pyproject = true;
-
       disabled = pythonOlder "3.7";
 
+      oldStylePackages = [ "gamesparks" "iot-roborunner" "macie" ];
+
       src = fetchPypi {
-        inherit pname version hash;
+        pname = if builtins.elem serviceName oldStylePackages then
+            "types-aiobotocore-${serviceName}"
+          else
+            "types_aiobotocore_${toUnderscore serviceName}";
+        inherit version hash;
       };
-
-      build-system = [
-        setuptools
-      ];
-
+      build-system = [ setuptools ];
       dependencies = [
         aiobotocore
         botocore
-      ] ++ lib.optionals (pythonOlder "3.12") [
-        typing-extensions
-      ];
-
-      # Project has no tests
+      ] ++ lib.optionals (pythonOlder "3.12") [ typing-extensions ];
+      # Module has no tests
       doCheck = false;
-
-      pythonImportsCheck = [
-        "types_aiobotocore_${toUnderscore serviceName}"
-      ];
-
+      pythonImportsCheck = [ "types_aiobotocore_${toUnderscore serviceName}" ];
       meta = with lib; {
         description = "Type annotations for aiobotocore ${serviceName}";
         homepage = "https://github.com/youtype/mypy_boto3_builder";
-        license = with licenses; [ mit ];
+        license = licenses.mit;
         maintainers = with maintainers; [ mbalatsko ];
       };
     };
 in
 rec {
-  types-aiobotocore-accessanalyzer = buildTypesAiobotocorePackage "accessanalyzer" "2.11.2" "sha256-hUS1ZTj9CbC74Aiinmeh2BEQ2KymcqxuYVSeD12s5xg";
+  types-aiobotocore-accessanalyzer =
+    buildTypesAiobotocorePackage "accessanalyzer" "2.13.0"
+      "sha256-2rGRzXYKK3p9OCb0navkEMfhOD5KHkn8wcBPL1LaNSw=";
 
-  types-aiobotocore-account = buildTypesAiobotocorePackage "account" "2.11.2" "sha256-XtL7R0UrgI/9rSxfNYbA0Lez+DiVyB7R+rhn49Nxerc=";
+  types-aiobotocore-account =
+    buildTypesAiobotocorePackage "account" "2.13.0"
+      "sha256-AZFkiL11ITJ7BqrQ2n6O36KZTkEnHfWPgCfrNujkSUM=";
 
-  types-aiobotocore-acm = buildTypesAiobotocorePackage "acm" "2.11.2" "sha256-vpE1GuvKFPsBf3rTk5V6B4ujFGaHE3wk9yN3j0sM0bo=";
+  types-aiobotocore-acm =
+    buildTypesAiobotocorePackage "acm" "2.13.0"
+      "sha256-3ix+COBwfB2vw9SZdg4VWTll8xnJHklVHGxzETuARIk=";
 
-  types-aiobotocore-acm-pca = buildTypesAiobotocorePackage "acm-pca" "2.11.2" "sha256-g9a2ad5hZonlKWGnLQchfT5CAgwqsvseeQBQemCSCQw=";
+  types-aiobotocore-acm-pca =
+    buildTypesAiobotocorePackage "acm-pca" "2.13.0"
+      "sha256-ZnVAvkJfc0T4bjEA2nCXz3HRkqYc25Y/J+1+rs5BP3s=";
 
-  types-aiobotocore-alexaforbusiness = buildTypesAiobotocorePackage "alexaforbusiness" "2.12.3" "sha256-eSIy045Ai6VGJTJbCq7sOEskFByShCv1D8S+XyCdP8g=";
+  types-aiobotocore-alexaforbusiness =
+    buildTypesAiobotocorePackage "alexaforbusiness" "2.13.0"
+      "sha256-+w/InoQR2aZ5prieGhgEEp7auBiSSghG5zIIHY5Kyao=";
 
-  types-aiobotocore-amp = buildTypesAiobotocorePackage "amp" "2.12.3" "sha256-Q9LX7O74paxJtFgBXpmMHmE5Oymr+KsKc7/a4LkxXsc=";
+  types-aiobotocore-amp =
+    buildTypesAiobotocorePackage "amp" "2.13.0"
+      "sha256-WTFXRsPvia7R7E0E1eUj70j+0gfSz7357jW8rRtjF4M=";
 
-  types-aiobotocore-amplify = buildTypesAiobotocorePackage "amplify" "2.12.3" "sha256-/2Ic2KPevRUyQyv2w95ESlGLa1z+j6c7wqO7sJhkglk=";
+  types-aiobotocore-amplify =
+    buildTypesAiobotocorePackage "amplify" "2.13.0"
+      "sha256-aTDO+xerXkn8pXEaaP5AMjIxN5WfHjsrwhg+mywYshM=";
 
-  types-aiobotocore-amplifybackend = buildTypesAiobotocorePackage "amplifybackend" "2.12.3" "sha256-Z/yUxzo0dmcZbguurdnkplc1xF7Ro7t0Fpp4frqo8fw=";
+  types-aiobotocore-amplifybackend =
+    buildTypesAiobotocorePackage "amplifybackend" "2.13.0"
+      "sha256-SjPzrFsewsxhtFZ9I+M8TdogzhIHZ5+EQDezOKjxjzI=";
 
-  types-aiobotocore-amplifyuibuilder = buildTypesAiobotocorePackage "amplifyuibuilder" "2.12.3" "sha256-Nziq7FXFXAGfzV36uLVoXJP3N/gA3ydhR1zOL2DAi50=";
+  types-aiobotocore-amplifyuibuilder =
+    buildTypesAiobotocorePackage "amplifyuibuilder" "2.13.0"
+      "sha256-X7rXIFPTWoLSH8qeEr82lasrMWmMxIcvf54GqFhrBuI=";
 
-  types-aiobotocore-apigateway = buildTypesAiobotocorePackage "apigateway" "2.12.3" "sha256-2k0txnK7EV4REsOEynvy1+twaP5rJVI6yIBO59LSKww=";
+  types-aiobotocore-apigateway =
+    buildTypesAiobotocorePackage "apigateway" "2.13.0"
+      "sha256-MeO+lzOoycmkMyYRo5oGv38imF3FxE3PqldSByd80IM=";
 
-  types-aiobotocore-apigatewaymanagementapi = buildTypesAiobotocorePackage "apigatewaymanagementapi" "2.12.3" "sha256-0GVRVAWl4NrqJScy69zhNt/sFq03gquN2CbEPoja1ug=";
+  types-aiobotocore-apigatewaymanagementapi =
+    buildTypesAiobotocorePackage "apigatewaymanagementapi" "2.13.0"
+      "sha256-nzo28vBn5eB6DTBJd0MKqnWglnVnFvTctK6AvdUUIl4=";
 
-  types-aiobotocore-apigatewayv2 = buildTypesAiobotocorePackage "apigatewayv2" "2.12.3" "sha256-+CpKEb30BCdrRAE/3xO3wIBxMXLTyCOJxu4YScDDk6k=";
+  types-aiobotocore-apigatewayv2 =
+    buildTypesAiobotocorePackage "apigatewayv2" "2.13.0"
+      "sha256-09iYkY/l9OlvJ8G6t2RDjidefo7xRcCNvHXwNuct+eM=";
 
-  types-aiobotocore-appconfig = buildTypesAiobotocorePackage "appconfig" "2.12.3" "sha256-/90wLlLiPLTKxnAqgqhTbtc1hmSalzwD8yHh7/shrFs=";
+  types-aiobotocore-appconfig =
+    buildTypesAiobotocorePackage "appconfig" "2.13.0"
+      "sha256-LcRjuQxaVqSaBL2o5zZSwJcFvWpnJppGWrodhxVTylw=";
 
-  types-aiobotocore-appconfigdata = buildTypesAiobotocorePackage "appconfigdata" "2.12.3" "sha256-KXNCQswudY3MGCBd37kGXuG6TJz3jzD7Y3LsWLvWPYw=";
+  types-aiobotocore-appconfigdata =
+    buildTypesAiobotocorePackage "appconfigdata" "2.13.0"
+      "sha256-GdNvsp/kLjvbk0AXe81RU0OpOy8rNtsYbUCzzsbNqak=";
 
-  types-aiobotocore-appfabric = buildTypesAiobotocorePackage "appfabric" "2.12.3" "sha256-1pfpKQ0tmQU3Rm8DGPfDsALecd9XUeeQq/H8Tnp9v4A=";
+  types-aiobotocore-appfabric =
+    buildTypesAiobotocorePackage "appfabric" "2.13.0"
+      "sha256-Zjrdq4psuqLpx5Dfc+jFz1bJjr6aN/lw4cxdrP1FxYc=";
 
-  types-aiobotocore-appflow = buildTypesAiobotocorePackage "appflow" "2.12.3" "sha256-c7pC0InqhtHuDKlEln9lt3tQL6w7Af9vxXuIZnhrdqY=";
+  types-aiobotocore-appflow =
+    buildTypesAiobotocorePackage "appflow" "2.13.0"
+      "sha256-3FzQHi9zHeIOw+4VC+4ad+tcgqHkIOnVbwLIDOX29qY=";
 
-  types-aiobotocore-appintegrations = buildTypesAiobotocorePackage "appintegrations" "2.12.3" "sha256-lJJXK+Wy6PvAQaCrKDe2GdHEjkuIY+mFmQt62xj21y4=";
+  types-aiobotocore-appintegrations =
+    buildTypesAiobotocorePackage "appintegrations" "2.13.0"
+      "sha256-w8A+hrPeNSIHHcybIYHX3Yv14eAsJeVE5oQaRlqC7cc=";
 
-  types-aiobotocore-application-autoscaling = buildTypesAiobotocorePackage "application-autoscaling" "2.12.3" "sha256-n1EMzB6uPQtYz4sSx6uvhk3ONjX9olg+5OkJoX6QUUo=";
+  types-aiobotocore-application-autoscaling =
+    buildTypesAiobotocorePackage "application-autoscaling" "2.13.0"
+      "sha256-dY3cmGpEBK0IR6A32rv3rQlA0HPRVEQ38uRF1tVHpkE=";
 
-  types-aiobotocore-application-insights = buildTypesAiobotocorePackage "application-insights" "2.12.3" "sha256-m9STzjg6PfbKi4mxM28Nh5eDVPPaoSjwLhy6bJ5z8vg=";
+  types-aiobotocore-application-insights =
+    buildTypesAiobotocorePackage "application-insights" "2.13.0"
+      "sha256-rMjqSqhjIVRwDGWuMh/l42R40HDH/YNO61GJecPS8ns=";
 
-  types-aiobotocore-applicationcostprofiler = buildTypesAiobotocorePackage "applicationcostprofiler" "2.12.3" "sha256-fOZzzkp4q11/pM7tFVsUCuxcAbp09icWOq7Ys89u8Q0=";
+  types-aiobotocore-applicationcostprofiler =
+    buildTypesAiobotocorePackage "applicationcostprofiler" "2.13.0"
+      "sha256-bwkDaXZzvzs+o1xc7Iw49Q/OkDqgGkERsmc5mg5cDGU=";
 
-  types-aiobotocore-appmesh = buildTypesAiobotocorePackage "appmesh" "2.12.3" "sha256-Ovib8qtm+ZCIJ/cQwVB5ksmYpeO8xDoIvkgvnRhL2jY=";
+  types-aiobotocore-appmesh =
+    buildTypesAiobotocorePackage "appmesh" "2.13.0"
+      "sha256-Q8EH1n2JyREf6C16pa1aaI3G12OtUODcRtffVq4T/kI=";
 
-  types-aiobotocore-apprunner = buildTypesAiobotocorePackage "apprunner" "2.12.3" "sha256-hRsWYed0ZwgfgkXRAuVfsmAuaJqTYogLVXtQkDGskMI=";
+  types-aiobotocore-apprunner =
+    buildTypesAiobotocorePackage "apprunner" "2.13.0"
+      "sha256-jUYqurcU2DLVlWwEglTQciaukFTv27k54AuuROfcySE=";
 
-  types-aiobotocore-appstream = buildTypesAiobotocorePackage "appstream" "2.12.3" "sha256-cpXkWYtPnkVDGbkhgy8s5DgvEHYLRe5Huygkfk/W998=";
+  types-aiobotocore-appstream =
+    buildTypesAiobotocorePackage "appstream" "2.13.0"
+      "sha256-Zlt7YYpOwMDM3QKu0w+dbdQ+hyEVY7LiZmAj6pwAbpA=";
 
-  types-aiobotocore-appsync = buildTypesAiobotocorePackage "appsync" "2.12.3" "sha256-Dem6NGryjCUzQBMCXCNFvop51KhdmIopDUjI2OofEGA=";
+  types-aiobotocore-appsync =
+    buildTypesAiobotocorePackage "appsync" "2.13.0"
+      "sha256-8/BY5YO5fpICY/sr65eNlask8ndV2XvywOlx2OrtHyI=";
 
-  types-aiobotocore-arc-zonal-shift = buildTypesAiobotocorePackage "arc-zonal-shift" "2.12.3" "sha256-qAMj0+7ywqR/89lUUyRcaqPdVgbARYLdjqMFKOuohZI=";
+  types-aiobotocore-arc-zonal-shift =
+    buildTypesAiobotocorePackage "arc-zonal-shift" "2.13.0"
+      "sha256-ekiWpPFp19h60dcWlDh4kDxwKGHMQnGktqf79lyKRl8=";
 
-  types-aiobotocore-athena = buildTypesAiobotocorePackage "athena" "2.12.3" "sha256-D1RbyLJdOrMm1dGq6FiRPYEZ1pbMTA14tJEyukqtFXs=";
+  types-aiobotocore-athena =
+    buildTypesAiobotocorePackage "athena" "2.13.0"
+      "sha256-fgYlxpwdOFJJT3M7KL3ZptXAA3Kh5bqI49dlpDTqb/c=";
 
-  types-aiobotocore-auditmanager = buildTypesAiobotocorePackage "auditmanager" "2.12.3" "sha256-Oqr3fp5uXPeleOlSFGzqeS7yUcqI+WJlPsLsYTBWfp4=";
+  types-aiobotocore-auditmanager =
+    buildTypesAiobotocorePackage "auditmanager" "2.13.0"
+      "sha256-KSB1DTKg4lqffLOznLbWVkoyJzlzY4vBY/yDs5iU4Zw=";
 
-  types-aiobotocore-autoscaling = buildTypesAiobotocorePackage "autoscaling" "2.12.3" "sha256-f32qZpqQ27sujqeA5V7opwQ2LBLuLgcKEvYxgn53Z/A=";
+  types-aiobotocore-autoscaling =
+    buildTypesAiobotocorePackage "autoscaling" "2.13.0"
+      "sha256-TJ7kUw4+I4ULd0C6h1jPxSXcdQdKVCex4kCKDaoh4VA=";
 
-  types-aiobotocore-autoscaling-plans = buildTypesAiobotocorePackage "autoscaling-plans" "2.12.3" "sha256-gZItvHv6bKmUJo7N68E43nNipGuVPru1FpirryM613A=";
+  types-aiobotocore-autoscaling-plans =
+    buildTypesAiobotocorePackage "autoscaling-plans" "2.13.0"
+      "sha256-gwrLUcGcLzrHUcr2IC00n5AARmomcplngo4Wen/KLSI=";
 
-  types-aiobotocore-backup = buildTypesAiobotocorePackage "backup" "2.12.3" "sha256-n7TwvQPRPpjucEdl8oqhRCyuoUobC94eoaxo3fUcX0k=";
+  types-aiobotocore-backup =
+    buildTypesAiobotocorePackage "backup" "2.13.0"
+      "sha256-zvzQxpvc9BLRhyEFJuGy+eWXBp164g4GNK0h6MlmOus=";
 
-  types-aiobotocore-backup-gateway = buildTypesAiobotocorePackage "backup-gateway" "2.12.3" "sha256-y5tONAuzm2ReIX2ZbXkgCdm1mdOwELVTiI/E88y3RRM=";
+  types-aiobotocore-backup-gateway =
+    buildTypesAiobotocorePackage "backup-gateway" "2.13.0"
+      "sha256-aEb7RKPyB2bqBY0stzW4pQs7bxo/p2k48/+L5C5YGzg=";
 
-  types-aiobotocore-backupstorage = buildTypesAiobotocorePackage "backupstorage" "2.12.3" "sha256-XMNbgsaMB1xCMffocyb8Qm/vVgwUFJ3HR7vjS4WNJjg=";
+  types-aiobotocore-backupstorage =
+    buildTypesAiobotocorePackage "backupstorage" "2.13.0"
+      "sha256-YUKtBdBrdwL2yqDqOovvzDPbcv/sD8JLRnKz3Oh7iSU=";
 
-  types-aiobotocore-batch = buildTypesAiobotocorePackage "batch" "2.12.3" "sha256-+agBXcUaXKm0gmrLk5S5CUaivA7UOxQegBFXRwNIRoI=";
+  types-aiobotocore-batch =
+    buildTypesAiobotocorePackage "batch" "2.13.0"
+      "sha256-pbtnM1AriZtRP/HJc41dDlobc3xSsTfTp/zJocuKlg8=";
 
-  types-aiobotocore-billingconductor = buildTypesAiobotocorePackage "billingconductor" "2.12.3" "sha256-188KzcjDcJF5uoBKsFNBSxrFThz8HzuF20dUA4+2aqY=";
+  types-aiobotocore-billingconductor =
+    buildTypesAiobotocorePackage "billingconductor" "2.13.0"
+      "sha256-xF44RthHgDDS5ByOypisgNuc+WEMVNrv5HLGzYR9JYE=";
 
-  types-aiobotocore-braket = buildTypesAiobotocorePackage "braket" "2.12.3" "sha256-Q17Y1YmrT8DdP/iqeXXFg+Nixx6602jVp7EvwglZXHA=";
+  types-aiobotocore-braket =
+    buildTypesAiobotocorePackage "braket" "2.13.0"
+      "sha256-HrvVOyhXIyyYeWOUGd7/j8Tzl3jTLntxxjvy/Mc7wrE=";
 
-  types-aiobotocore-budgets = buildTypesAiobotocorePackage "budgets" "2.12.3" "sha256-R1qcbs1TFd/hqXBbE1byIBHfhX71LXITICQtT1y2E0w=";
+  types-aiobotocore-budgets =
+    buildTypesAiobotocorePackage "budgets" "2.13.0"
+      "sha256-xz4ufUY8jlYNfM3s+v1eKTfwd4kNILHyc/R2RnDomJ0=";
 
-  types-aiobotocore-ce = buildTypesAiobotocorePackage "ce" "2.12.3" "sha256-zpwmqCaymuhlXNQFmOXRwedgyJXqnbKQkzaJVmL+YcI=";
+  types-aiobotocore-ce =
+    buildTypesAiobotocorePackage "ce" "2.13.0"
+      "sha256-v5BUWy2kn0FCu3Megiz14zRNMz5FA8sU70JAseQ+ta4=";
 
-  types-aiobotocore-chime = buildTypesAiobotocorePackage "chime" "2.12.3" "sha256-qoOzWvS2oU27h0G3rDJrD3A7uDTT1nE3r91Jurs1VL8=";
+  types-aiobotocore-chime =
+    buildTypesAiobotocorePackage "chime" "2.13.0"
+      "sha256-77yNiBRXsIHdzq0l3OuDcpgLP+Os8fQ0BHD2mbG6318=";
 
-  types-aiobotocore-chime-sdk-identity = buildTypesAiobotocorePackage "chime-sdk-identity" "2.12.3" "sha256-c4lXCVVtzb1nYHpHCkC6GhaKAGh59f10HOF4pt6jDZQ=";
+  types-aiobotocore-chime-sdk-identity =
+    buildTypesAiobotocorePackage "chime-sdk-identity" "2.13.0"
+      "sha256-XNCLUW6nzzZjyvHCaaIJ/T4gTM8N+442xCeL8XBNTsI=";
 
-  types-aiobotocore-chime-sdk-media-pipelines = buildTypesAiobotocorePackage "chime-sdk-media-pipelines" "2.12.3" "sha256-UiUNm5obofAynGBDUU9dDTnALCgquEeD0CWikJoffcg=";
+  types-aiobotocore-chime-sdk-media-pipelines =
+    buildTypesAiobotocorePackage "chime-sdk-media-pipelines" "2.13.0"
+      "sha256-qbOkIqemaH4TCqW2/6gYTyfPOlwHyRPLmz5f88HI+b0=";
 
-  types-aiobotocore-chime-sdk-meetings = buildTypesAiobotocorePackage "chime-sdk-meetings" "2.12.3" "sha256-PRgs4jqH+H77oq8TJnp8BvxFe+VeGAt2HJqGAswsJ48=";
+  types-aiobotocore-chime-sdk-meetings =
+    buildTypesAiobotocorePackage "chime-sdk-meetings" "2.13.0"
+      "sha256-TVZRLx8lI0yZN6nOtdq3WhF6OkUFMWGTp25351JTE5E=";
 
-  types-aiobotocore-chime-sdk-messaging = buildTypesAiobotocorePackage "chime-sdk-messaging" "2.12.3" "sha256-jhelKCrofsCsoEiQCgkgbmyxPDEzRmrflzsOYEG5VBg=";
+  types-aiobotocore-chime-sdk-messaging =
+    buildTypesAiobotocorePackage "chime-sdk-messaging" "2.13.0"
+      "sha256-48fjMzUahQ7P4cC0b5JG8czayHNAWuVvgD6v7/LTkjU=";
 
-  types-aiobotocore-chime-sdk-voice = buildTypesAiobotocorePackage "chime-sdk-voice" "2.12.3" "sha256-ycz16wpxuooSUJNo2EF578mQ/vuN19wORbRO4KIYAlw=";
+  types-aiobotocore-chime-sdk-voice =
+    buildTypesAiobotocorePackage "chime-sdk-voice" "2.13.0"
+      "sha256-lxDHSs3VxWJ4Evu9msY3f9rWb+Fm8yrrsZy8usMu4vE=";
 
-  types-aiobotocore-cleanrooms = buildTypesAiobotocorePackage "cleanrooms" "2.12.3" "sha256-chPRscE8/t0zweeG2oI9Ffe9MhUfro3r67WPQMRrVVI=";
+  types-aiobotocore-cleanrooms =
+    buildTypesAiobotocorePackage "cleanrooms" "2.13.0"
+      "sha256-AVUVMbvgYxkc8ksqwoFTyjxUbb79Yl4577Scavnj0Cs=";
 
-  types-aiobotocore-cloud9 = buildTypesAiobotocorePackage "cloud9" "2.12.3" "sha256-MsppSKc4o0kkEn+YS8fjmRHMMHCk/vp7MzwWSeMbfO8=";
+  types-aiobotocore-cloud9 =
+    buildTypesAiobotocorePackage "cloud9" "2.13.0"
+      "sha256-AYixLXRtXT24h3mFOQ2cWfTLNbXQHmGPnx/VZ7IK4ow=";
 
-  types-aiobotocore-cloudcontrol = buildTypesAiobotocorePackage "cloudcontrol" "2.12.3" "sha256-QtvI10XobuCCTdbJZk1JV8rbUnaKp1NhTQA4pOrl/8A=";
+  types-aiobotocore-cloudcontrol =
+    buildTypesAiobotocorePackage "cloudcontrol" "2.13.0"
+      "sha256-FBRfBadhpoAcLMgAe7hAJbTtjgPRPSlJESuDZPriGv0=";
 
-  types-aiobotocore-clouddirectory = buildTypesAiobotocorePackage "clouddirectory" "2.12.3" "sha256-mrLk190wtLVLBY9oLKCBcGgNRRsOF4SAxMnyDvHif2U=";
+  types-aiobotocore-clouddirectory =
+    buildTypesAiobotocorePackage "clouddirectory" "2.13.0"
+      "sha256-ELw+jWSGWPeQJNiv18908fodXCKE8/sJ0/wzOgkixuA=";
 
-  types-aiobotocore-cloudformation = buildTypesAiobotocorePackage "cloudformation" "2.12.3" "sha256-vjNBwP+SPBXBO9c7W+zOm800kNDfQYHs58ERS82/Hvk=";
+  types-aiobotocore-cloudformation =
+    buildTypesAiobotocorePackage "cloudformation" "2.13.0"
+      "sha256-8s+cGZ339c8Xf/AGFR6Y6Fsdz1pOW3KlYKAuo1e12Ss=";
 
-  types-aiobotocore-cloudfront = buildTypesAiobotocorePackage "cloudfront" "2.12.3" "sha256-xD0zbOk1Vjzr3DslNSQqFBIIN4NliV3rVlAmUcgfp7E=";
+  types-aiobotocore-cloudfront =
+    buildTypesAiobotocorePackage "cloudfront" "2.13.0"
+      "sha256-9uGsmz+S8Te3/hOZoIZIqLg0EG3Mz/fM1k8LWSe4rLY=";
 
-  types-aiobotocore-cloudhsm = buildTypesAiobotocorePackage "cloudhsm" "2.12.3" "sha256-PXuzI5csFVH9FbW7U0p71U9N3Avmjy0SK4ULdnqyWv4=";
+  types-aiobotocore-cloudhsm =
+    buildTypesAiobotocorePackage "cloudhsm" "2.13.0"
+      "sha256-/uqAAVrtejrLdZEFrDhK84nhhr8An4Ha2O6HbcnfPL0=";
 
-  types-aiobotocore-cloudhsmv2 = buildTypesAiobotocorePackage "cloudhsmv2" "2.12.3" "sha256-FBC4K4XZglWNdXvaf5vgk0KwlaO4HgQ+CsTxX8RpJSY=";
+  types-aiobotocore-cloudhsmv2 =
+    buildTypesAiobotocorePackage "cloudhsmv2" "2.13.0"
+      "sha256-/QZuBKPxLDmZXB15Mlia4nKhVpDniavrHbjsdtg+61g=";
 
-  types-aiobotocore-cloudsearch = buildTypesAiobotocorePackage "cloudsearch" "2.12.3" "sha256-0bIEY8/+KkoRXyaxV3XlsvNbhZGgi5Yfkaoe2G8Hx7U=";
+  types-aiobotocore-cloudsearch =
+    buildTypesAiobotocorePackage "cloudsearch" "2.13.0"
+      "sha256-TJ8gYpQgqtIJv6COksxKzv0QvlMrnGJF6+vclKxkONM=";
 
-  types-aiobotocore-cloudsearchdomain = buildTypesAiobotocorePackage "cloudsearchdomain" "2.12.3" "sha256-sQJloZGuAt3FDiVu0rXB4fs6LQ8Ypwanbhk905JlAWE=";
+  types-aiobotocore-cloudsearchdomain =
+    buildTypesAiobotocorePackage "cloudsearchdomain" "2.13.0"
+      "sha256-wzMsnA1GbS8VIc0wCL9hWdsYV/ygCYmorBzEjbQbhTc=";
 
-  types-aiobotocore-cloudtrail = buildTypesAiobotocorePackage "cloudtrail" "2.12.3" "sha256-kir3GveVZbvSEjnna0xKETIA/qKLgCZUxQ95WCw25vY=";
+  types-aiobotocore-cloudtrail =
+    buildTypesAiobotocorePackage "cloudtrail" "2.13.0"
+      "sha256-2XXac5p2UGkczHqR0h3Nf8Q6pAcfML3b9pMwEXwz2XM=";
 
-  types-aiobotocore-cloudtrail-data = buildTypesAiobotocorePackage "cloudtrail-data" "2.12.3" "sha256-o+CM6IzDuQJz/Hcmzs4Z//21ujWzILBVN+TpfW0BnAc=";
+  types-aiobotocore-cloudtrail-data =
+    buildTypesAiobotocorePackage "cloudtrail-data" "2.13.0"
+      "sha256-VcJu3TW7Ha8VBZoJSH3owe6ufCSoIYQqfOfEg1Trx5Y=";
 
-  types-aiobotocore-cloudwatch = buildTypesAiobotocorePackage "cloudwatch" "2.12.3" "sha256-s0smSONUSY6hwm81yQXTa0hOe+0FfYHWJ+a2V8vWtnQ=";
+  types-aiobotocore-cloudwatch =
+    buildTypesAiobotocorePackage "cloudwatch" "2.13.0"
+      "sha256-BPWVovVZAd/sif+YTkGM/WpOoJp6uwpUMeKmGFd/LGg=";
 
-  types-aiobotocore-codeartifact = buildTypesAiobotocorePackage "codeartifact" "2.12.3" "sha256-ueY0F1OWpMsFOOSzsE+P4aJ4r0R5UhoefuNyBL5kFSQ=";
+  types-aiobotocore-codeartifact =
+    buildTypesAiobotocorePackage "codeartifact" "2.13.0"
+      "sha256-kNaKAn54V5xhQv1faxjrhChZ7icBAJJZTqibSdwYTk4=";
 
-  types-aiobotocore-codebuild = buildTypesAiobotocorePackage "codebuild" "2.12.3" "sha256-FdTkOmj1ISBgBTcdf0z5QK/LxvsTobvKMqAd4hFK9bc=";
+  types-aiobotocore-codebuild =
+    buildTypesAiobotocorePackage "codebuild" "2.13.0"
+      "sha256-myGVjxJ/1CvAt913JQXE9/7pGW8anI4F2JrEX7lgaOQ=";
 
-  types-aiobotocore-codecatalyst = buildTypesAiobotocorePackage "codecatalyst" "2.12.3" "sha256-J4kvblSIcjSsdtTIcxFEO5Dhno8Q8yrD1t/CYr4wmaQ=";
+  types-aiobotocore-codecatalyst =
+    buildTypesAiobotocorePackage "codecatalyst" "2.13.0"
+      "sha256-gCJYgtZcErsh6e/dupRxG2tDdau4wB9nT+HJdRgI6gc=";
 
-  types-aiobotocore-codecommit = buildTypesAiobotocorePackage "codecommit" "2.12.3" "sha256-ipolOmnH/0M8Y+GY8qoOPhoDfs1nqMqoMotT2n/BSB8=";
+  types-aiobotocore-codecommit =
+    buildTypesAiobotocorePackage "codecommit" "2.13.0"
+      "sha256-rcJSBY35FT2aG91rsZqxS3QwYkP9MBfCQLAgR8ZZ60g=";
 
-  types-aiobotocore-codedeploy = buildTypesAiobotocorePackage "codedeploy" "2.12.3" "sha256-aEIj+XsEq35mzKliuUICkIoJV3Mx+l7kd+pFP+mX+Us=";
+  types-aiobotocore-codedeploy =
+    buildTypesAiobotocorePackage "codedeploy" "2.13.0"
+      "sha256-pjVsGz/wmxwm3r1a5M9oMqRYACXpzsBJZR62GFQKw9Q=";
 
-  types-aiobotocore-codeguru-reviewer = buildTypesAiobotocorePackage "codeguru-reviewer" "2.12.3" "sha256-UxR7jMxmKeqo2dazqRsnGCHmeycL2uwmuOxzN2Ug06I=";
+  types-aiobotocore-codeguru-reviewer =
+    buildTypesAiobotocorePackage "codeguru-reviewer" "2.13.0"
+      "sha256-t+ZK1nVpuAEzTzokBQ+HDd9pbRNv/Z+AsYA+3+nHKLE=";
 
-  types-aiobotocore-codeguru-security = buildTypesAiobotocorePackage "codeguru-security" "2.12.3" "sha256-Dn8upHxWZMl5QRye+v47vlgi/SqhQi8PUOcVX8no7zQ=";
+  types-aiobotocore-codeguru-security =
+    buildTypesAiobotocorePackage "codeguru-security" "2.13.0"
+      "sha256-Or5a/BiJnYMvXDZvCRJ59GsvYr8Um/ziypVohwarFYg=";
 
-  types-aiobotocore-codeguruprofiler = buildTypesAiobotocorePackage "codeguruprofiler" "2.12.3" "sha256-s1hhUmQ09fkP7DRGAoajbBrIr8AWioJBXO6vC/kbk9s=";
+  types-aiobotocore-codeguruprofiler =
+    buildTypesAiobotocorePackage "codeguruprofiler" "2.13.0"
+      "sha256-UZHJByboBKeyGYF6SfdFzcuZKAUOyK8Uh92cdQ4Z36g=";
 
-  types-aiobotocore-codepipeline = buildTypesAiobotocorePackage "codepipeline" "2.12.3" "sha256-pS8TgS/thI4GJY7TqdSLFjnWltjZraE8QDV02GlL0Zc=";
+  types-aiobotocore-codepipeline =
+    buildTypesAiobotocorePackage "codepipeline" "2.13.0"
+      "sha256-9ewkKGfQeeIPLYsgiq3RI2f8Q+g1/QFaqTvcqpXtPt8=";
 
-  types-aiobotocore-codestar = buildTypesAiobotocorePackage "codestar" "2.12.3" "sha256-jciY4abtX0IMbxCGPrOshFQE8jNyqDS67UqUgt0UYe4=";
+  types-aiobotocore-codestar =
+    buildTypesAiobotocorePackage "codestar" "2.13.0"
+      "sha256-nvkAGHA2VL7tGHz/VZiWHKRcHDN87eDq8js127VlZMk=";
 
-  types-aiobotocore-codestar-connections = buildTypesAiobotocorePackage "codestar-connections" "2.12.3" "sha256-W1/tJKDFRpHB1hsguuAbDCHe+lzh0UAIWlqYVS83MyI=";
+  types-aiobotocore-codestar-connections =
+    buildTypesAiobotocorePackage "codestar-connections" "2.13.0"
+      "sha256-huStUWVW5h9PPm4k0IjZoS7mBXYEf1nuc/BbYASjJYo=";
 
-  types-aiobotocore-codestar-notifications = buildTypesAiobotocorePackage "codestar-notifications" "2.12.3" "sha256-1r65KMMX+A6Ww3+MgG9kIXH48zI9yxt/FbNXq7ATACs=";
+  types-aiobotocore-codestar-notifications =
+    buildTypesAiobotocorePackage "codestar-notifications" "2.13.0"
+      "sha256-9Amvc3yj1khFTLpYsqUGPlTRCjbW3J9Y7Htr9gkSEAQ=";
 
-  types-aiobotocore-cognito-identity = buildTypesAiobotocorePackage "cognito-identity" "2.12.3" "sha256-Njd/E0EgRqq69EhYhbrmcu71GFvoqG9vI61i4RXIInQ=";
+  types-aiobotocore-cognito-identity =
+    buildTypesAiobotocorePackage "cognito-identity" "2.13.0"
+      "sha256-Vr+ZB3RAWOdioDoKn6O8LCQGqM67x+3Yvq6DvYjwbSQ=";
 
-  types-aiobotocore-cognito-idp = buildTypesAiobotocorePackage "cognito-idp" "2.12.3" "sha256-eFjfo4grkBO9FGUySGAOclXUjJ+RzaeI0FG7GqZweNc=";
+  types-aiobotocore-cognito-idp =
+    buildTypesAiobotocorePackage "cognito-idp" "2.13.0"
+      "sha256-ryZ+wZ3acevXf3gIZV37Lb2t5LGtz6RVrKok6OUYt7Q=";
 
-  types-aiobotocore-cognito-sync = buildTypesAiobotocorePackage "cognito-sync" "2.12.3" "sha256-wSOf6kdxIA2oe2a06c9MuIxnvmPb1UZoY+TPKKWNgfA=";
+  types-aiobotocore-cognito-sync =
+    buildTypesAiobotocorePackage "cognito-sync" "2.13.0"
+      "sha256-XnAF9Zz+BslG+teKTgWVKqBKxv159gJqRVvP3fF2BU4=";
 
-  types-aiobotocore-comprehend = buildTypesAiobotocorePackage "comprehend" "2.12.3" "sha256-TSZn6O5sSqutb+hcA5tJWplkN8jN7q1uVfQyoK6p+sM=";
+  types-aiobotocore-comprehend =
+    buildTypesAiobotocorePackage "comprehend" "2.13.0"
+      "sha256-NzcktZnXaylZ0OzDWQV9r7G+Yk/QJvqApcBOggk5yg4=";
 
-  types-aiobotocore-comprehendmedical = buildTypesAiobotocorePackage "comprehendmedical" "2.12.3" "sha256-foykefLjYtgroFE14HAKJ0qK/vL7U6LGGP3z8P/ZV9E=";
+  types-aiobotocore-comprehendmedical =
+    buildTypesAiobotocorePackage "comprehendmedical" "2.13.0"
+      "sha256-cn1rch5FwLmFJPM5G8YmKzRuZ5VEyB1vkapOeSg0QEA=";
 
-  types-aiobotocore-compute-optimizer = buildTypesAiobotocorePackage "compute-optimizer" "2.12.3" "sha256-HM7wBstqaO6pnvXHGTgiIa1FcdJGImW/2BFl/stRJ/w=";
+  types-aiobotocore-compute-optimizer =
+    buildTypesAiobotocorePackage "compute-optimizer" "2.13.0"
+      "sha256-e+WsU3fcS7Al+IEibaxaM7lYFFHJNEaW2ULd37wA17o=";
 
-  types-aiobotocore-config = buildTypesAiobotocorePackage "config" "2.12.3" "sha256-Ab7L47TU/w5Mk36MJGb3VfHG1wXyHmePDaP37FnQikM=";
+  types-aiobotocore-config =
+    buildTypesAiobotocorePackage "config" "2.13.0"
+      "sha256-wWrYX1uqUkHegLr3bjyP3TZjBst6+dCMEpK1lXVnMo0=";
 
-  types-aiobotocore-connect = buildTypesAiobotocorePackage "connect" "2.12.3" "sha256-R+p+mV/+SMFaWczEwECfoReQ9KBswiYj0jGysFPn/LQ=";
+  types-aiobotocore-connect =
+    buildTypesAiobotocorePackage "connect" "2.13.0"
+      "sha256-OfnncqMXbS7bH7VqKlvMNuj4ixmoli3MlDxrMq1Zmj0=";
 
-  types-aiobotocore-connect-contact-lens = buildTypesAiobotocorePackage "connect-contact-lens" "2.12.3" "sha256-KuyJAoend5pAMEEh1EbqUuhWwoFSI5QyJhL/T4fg3vA=";
+  types-aiobotocore-connect-contact-lens =
+    buildTypesAiobotocorePackage "connect-contact-lens" "2.13.0"
+      "sha256-PEOGQ3/cMA2JxN87CyJx4FeuY2l6YP9ZMsVlZQuVnOI=";
 
-  types-aiobotocore-connectcampaigns = buildTypesAiobotocorePackage "connectcampaigns" "2.12.3" "sha256-8RDp99dyEgxBQNJbQXMxU6Td6rCKBaOtvk22mGVkMpo=";
+  types-aiobotocore-connectcampaigns =
+    buildTypesAiobotocorePackage "connectcampaigns" "2.13.0"
+      "sha256-pdEDzu2cBdsdDZ9MBkuXXXouIWLczlnQLLLrJ2ZrdvE=";
 
-  types-aiobotocore-connectcases = buildTypesAiobotocorePackage "connectcases" "2.12.3" "sha256-ka9T0Ln54mHiPec74fHYkOBL3RbJJ+hVOSkqh35LBXs=";
+  types-aiobotocore-connectcases =
+    buildTypesAiobotocorePackage "connectcases" "2.13.0"
+      "sha256-7HQAZPgHTGNmE3cZKsPE3Q1FSD1DOpxhmgx7k2VvRfI=";
 
-  types-aiobotocore-connectparticipant = buildTypesAiobotocorePackage "connectparticipant" "2.12.3" "sha256-nAUWrVmTO2PbB4aJERZaZ2NBdE/fH5pyj2UYPxn1BJ0=";
+  types-aiobotocore-connectparticipant =
+    buildTypesAiobotocorePackage "connectparticipant" "2.13.0"
+      "sha256-mxTtpPu8ejJhwBUqpIJld9tQgx2+KdZDCWLxgz3KIbI=";
 
-  types-aiobotocore-controltower = buildTypesAiobotocorePackage "controltower" "2.12.3" "sha256-tXkoU2hPbB0IYR0QP9yKSLwRknrIcupeeIjHoZD8id4=";
+  types-aiobotocore-controltower =
+    buildTypesAiobotocorePackage "controltower" "2.13.0"
+      "sha256-BpX2KPUIEzev3J59SjXr2+87So9AYcPP4NqqqYxg7nM=";
 
-  types-aiobotocore-cur = buildTypesAiobotocorePackage "cur" "2.12.3" "sha256-DbLeEVfr1xXtwIT9eqBY6+Enk1AFfF4ChzOeSO2jSc8=";
+  types-aiobotocore-cur =
+    buildTypesAiobotocorePackage "cur" "2.13.0"
+      "sha256-R23tUBiFw3XIwd5dPEKosq+JjOcaan4mefgrnb/tnZ4=";
 
-  types-aiobotocore-customer-profiles = buildTypesAiobotocorePackage "customer-profiles" "2.12.3" "sha256-TpmMtpIVdE2SPr+ZaKHUoNqJQFoglcyF4pBIn0jkW9Q=";
+  types-aiobotocore-customer-profiles =
+    buildTypesAiobotocorePackage "customer-profiles" "2.13.0"
+      "sha256-g52TkGMLMtLZceDfPEuT/+A/uiVdqnZODxzJUwihin0=";
 
-  types-aiobotocore-databrew = buildTypesAiobotocorePackage "databrew" "2.12.3" "sha256-fKUL2ZJgytMhv4rni6lD92M1uh1vnUfFcjh30Tdfofk=";
+  types-aiobotocore-databrew =
+    buildTypesAiobotocorePackage "databrew" "2.13.0"
+      "sha256-Gejx2MwkOofstb/goBp0C9qSWcpLW2E5Fgn46VAtK0w=";
 
-  types-aiobotocore-dataexchange = buildTypesAiobotocorePackage "dataexchange" "2.12.3" "sha256-x5t5rK4UQ4ltFqSB2dyG6NXrzoJLPBBF8Ovn8Fka8Mo=";
+  types-aiobotocore-dataexchange =
+    buildTypesAiobotocorePackage "dataexchange" "2.13.0"
+      "sha256-fQzxx8jCPu4/TdtNrOQITAEFGzyPccCNK6diQu/4Imo=";
 
-  types-aiobotocore-datapipeline = buildTypesAiobotocorePackage "datapipeline" "2.12.3" "sha256-eMMWqVDoEmIJV3P4aA15bXsWEJ1cBpcvFf6elzvKBsM=";
+  types-aiobotocore-datapipeline =
+    buildTypesAiobotocorePackage "datapipeline" "2.13.0"
+      "sha256-GTh5tb9BwtM2zNvAQ47DvwlbgwNhOuL9Vofq3MVJ7ic=";
 
-  types-aiobotocore-datasync = buildTypesAiobotocorePackage "datasync" "2.12.3" "sha256-TMD7XAqQivkQJbwBr6B4s629euXQyvxglG+hFhH7C8s=";
+  types-aiobotocore-datasync =
+    buildTypesAiobotocorePackage "datasync" "2.13.0"
+      "sha256-wdInWu2P70+17ir7mpBK/qO7+sT5bp/lKIkOQwfk3tk=";
 
-  types-aiobotocore-dax = buildTypesAiobotocorePackage "dax" "2.12.3" "sha256-JV8EpsEUOmeGEvSmb2zUboota0wu99TcvBcwkYGFa50=";
+  types-aiobotocore-dax =
+    buildTypesAiobotocorePackage "dax" "2.13.0"
+      "sha256-qFfp+vOsmY43ipbENzgzQXBoNnTQ+jFXyxe9QL7y58c=";
 
-  types-aiobotocore-detective = buildTypesAiobotocorePackage "detective" "2.12.3" "sha256-1SRrURvp+hOnYWZsANu8waOJJ4SUBzGPAEFwNFyW4zc=";
+  types-aiobotocore-detective =
+    buildTypesAiobotocorePackage "detective" "2.13.0"
+      "sha256-K9ofKUFMP3qY86xRNgpjZen6R1gOcvVZ0ry9A7geTKQ=";
 
-  types-aiobotocore-devicefarm = buildTypesAiobotocorePackage "devicefarm" "2.12.3" "sha256-3XTNHMYWlZUK7o7XQYpnsCq3FHBYuXJ6y2iVM+caKcc=";
+  types-aiobotocore-devicefarm =
+    buildTypesAiobotocorePackage "devicefarm" "2.13.0"
+      "sha256-hfqMkbY/VKpx9Ew0Li9eCiBN17LK/UOZWYpoAZ2IaQo=";
 
-  types-aiobotocore-devops-guru = buildTypesAiobotocorePackage "devops-guru" "2.12.3" "sha256-kfeH7r2zaNw3gDH7QqKe2x93kEfzeUMY5aBOJFDz3vE=";
+  types-aiobotocore-devops-guru =
+    buildTypesAiobotocorePackage "devops-guru" "2.13.0"
+      "sha256-nQv5dFtxEwm1PJExUdId8LOXF/stNBIg96wgJJb+nYQ=";
 
-  types-aiobotocore-directconnect = buildTypesAiobotocorePackage "directconnect" "2.12.3" "sha256-0fsNThA4QJhTC8JlTJviOv+GwrMvVQxoddvRX4+Nrtk=";
+  types-aiobotocore-directconnect =
+    buildTypesAiobotocorePackage "directconnect" "2.13.0"
+      "sha256-Gc5vGyASaYsEqYRGX9fbIuOYNVKzdjFYXd20U1Wo8BM=";
 
-  types-aiobotocore-discovery = buildTypesAiobotocorePackage "discovery" "2.12.3" "sha256-acjirpyoMe2Mq72IuGHb85q/B0UHhQ2wEJO9Cy+OHmQ=";
+  types-aiobotocore-discovery =
+    buildTypesAiobotocorePackage "discovery" "2.13.0"
+      "sha256-Hjq8egh2iPANaq4LehzVS/kMX/Uh0/S7YFFPDuTA+N4=";
 
-  types-aiobotocore-dlm = buildTypesAiobotocorePackage "dlm" "2.12.3" "sha256-Z4V00bBobcChsYr6MPJ+pwCV1VJwHVMeks2URMVGzgk=";
+  types-aiobotocore-dlm =
+    buildTypesAiobotocorePackage "dlm" "2.13.0"
+      "sha256-fS4Y28YisR0C3MQWQsBwCfKfqaffZCbHu6sZZeao/ds=";
 
-  types-aiobotocore-dms = buildTypesAiobotocorePackage "dms" "2.12.3" "sha256-JG8rHk86RHyCEeLPGHERMZ1f+gBAcS+TI+RSfxVWkdI=";
+  types-aiobotocore-dms =
+    buildTypesAiobotocorePackage "dms" "2.13.0"
+      "sha256-BzWDZW/196ajDFw47jOZyTJPcZkAHKgzMYU4NmKeyUg=";
 
-  types-aiobotocore-docdb = buildTypesAiobotocorePackage "docdb" "2.12.3" "sha256-t6ybt/wp+YL2qNyI89RzijJT1qPX6cBykQ803F81Q/0=";
+  types-aiobotocore-docdb =
+    buildTypesAiobotocorePackage "docdb" "2.13.0"
+      "sha256-oTf+KiNaXrDYdMCZMF+O/tAPmsybWldtT86WhnreN20=";
 
-  types-aiobotocore-docdb-elastic = buildTypesAiobotocorePackage "docdb-elastic" "2.12.3" "sha256-MI9e+SYSjbO8PMRFa8VSyAfoupTb8wzhO+DXCcQgu3Q=";
+  types-aiobotocore-docdb-elastic =
+    buildTypesAiobotocorePackage "docdb-elastic" "2.13.0"
+      "sha256-xK+ixxVGf6Hr/NJGu4k4vlq8V5cpSPViHKsfjusQaKY=";
 
-  types-aiobotocore-drs = buildTypesAiobotocorePackage "drs" "2.12.3" "sha256-qsyiQH75/L2HPM/QrQ5nrf9Bh+7xClIQggCWSA/7xho=";
+  types-aiobotocore-drs =
+    buildTypesAiobotocorePackage "drs" "2.13.0"
+      "sha256-v/h5WFjIR51RjwCn02abRfo8fu+tnncldVPd71xJt7s=";
 
-  types-aiobotocore-ds = buildTypesAiobotocorePackage "ds" "2.12.3" "sha256-ms93yRBMH/9hVVyN5jGZqP6Su4qdP/oKRHyAMlM5Nis=";
+  types-aiobotocore-ds =
+    buildTypesAiobotocorePackage "ds" "2.13.0"
+      "sha256-Em0eoBCYM0HmkJBgVJKsEyLZDhVu2zW9OKZ5TEQ1xEE=";
 
-  types-aiobotocore-dynamodb = buildTypesAiobotocorePackage "dynamodb" "2.12.3" "sha256-sBsjF7ZIldzEN6LyXy9r9zmeKMEX8QXQE7GKYmXrYPg=";
+  types-aiobotocore-dynamodb =
+    buildTypesAiobotocorePackage "dynamodb" "2.13.0"
+      "sha256-AXclEe7W1pqC8JVsOY9afICCUT7lIcwR7De0JMuPbSM=";
 
-  types-aiobotocore-dynamodbstreams = buildTypesAiobotocorePackage "dynamodbstreams" "2.12.3" "sha256-0SZQFZf19WRnNA0uTbOoHxfuVZ/Oo4HgttiJcJ+ec3s=";
+  types-aiobotocore-dynamodbstreams =
+    buildTypesAiobotocorePackage "dynamodbstreams" "2.13.0"
+      "sha256-QETi2ToYBF8UQq1+aNW3ZaNEI+haQTQq76yes/U/dpk=";
 
-  types-aiobotocore-ebs = buildTypesAiobotocorePackage "ebs" "2.12.3" "sha256-nGyIT/TXqUMRWwA5tIDie1ktVwy0tspw3avgJ//kW5k=";
+  types-aiobotocore-ebs =
+    buildTypesAiobotocorePackage "ebs" "2.13.0"
+      "sha256-Oftnt6MpThaa3USfEGZeAvx0pCiY0vQImtNWVwk3ACs=";
 
-  types-aiobotocore-ec2 = buildTypesAiobotocorePackage "ec2" "2.12.3" "sha256-8OPqG7wMdu92O0BfGb9zI5Wj+NFA25jWZN0dvzQV0Yo=";
+  types-aiobotocore-ec2 =
+    buildTypesAiobotocorePackage "ec2" "2.13.0"
+      "sha256-GvUGSs/nQTL3VJpVsFx9mAI9nBx+gnk6yhwRfTpSiSk=";
 
-  types-aiobotocore-ec2-instance-connect = buildTypesAiobotocorePackage "ec2-instance-connect" "2.12.3" "sha256-Va2yM0tmcIj4b2wXUzWyhuhv5lhcfCslR0h0C7A5EsY=";
+  types-aiobotocore-ec2-instance-connect =
+    buildTypesAiobotocorePackage "ec2-instance-connect" "2.13.0"
+      "sha256-P3kqtbGfUKRCJzZqPjg5DpuUADyo9OQvBzqX+e6eoZw=";
 
-  types-aiobotocore-ecr = buildTypesAiobotocorePackage "ecr" "2.12.3" "sha256-FshaLIdFjrTh/bxE9X2to7OMqORJUl/THmE4rhIFbFI=";
+  types-aiobotocore-ecr =
+    buildTypesAiobotocorePackage "ecr" "2.13.0"
+      "sha256-Qv3/a0zCZZ7HSH/egZeRBb+8QnWWVIq4FI+UnA/l7Ls=";
 
-  types-aiobotocore-ecr-public = buildTypesAiobotocorePackage "ecr-public" "2.12.3" "sha256-GXZ0wSgko3LNMoWFdGAk75Z/ALecaJNJjog9zog+0pY=";
+  types-aiobotocore-ecr-public =
+    buildTypesAiobotocorePackage "ecr-public" "2.13.0"
+      "sha256-yKGswYQKMKkagsVI9Kxae04Xrdrn8dXZSy0BkQ6RzG0=";
 
-  types-aiobotocore-ecs = buildTypesAiobotocorePackage "ecs" "2.12.3" "sha256-JumaYfl8+YpgxAnxZF+1IW4Xhw4UuT2wxX979xbGFqc=";
+  types-aiobotocore-ecs =
+    buildTypesAiobotocorePackage "ecs" "2.13.0"
+      "sha256-6Bc80WQMAmA8LzLEC/ADFz1kc7oRQLYb7YZH8FOfmVs=";
 
-  types-aiobotocore-efs = buildTypesAiobotocorePackage "efs" "2.12.3" "sha256-Ea6AgjHGqrUNP8TF6PFNStVAuRED80agLuzhjdkIUM4=";
+  types-aiobotocore-efs =
+    buildTypesAiobotocorePackage "efs" "2.13.0"
+      "sha256-NIB1DC4qaMXEwrDOHcnRAifKUH0LouzyKlCd7448PZk=";
 
-  types-aiobotocore-eks = buildTypesAiobotocorePackage "eks" "2.12.3" "sha256-JceWf2TRg+t55trAJhFAp4YVarc56ZiZYdjB7lhP/cc=";
+  types-aiobotocore-eks =
+    buildTypesAiobotocorePackage "eks" "2.13.0"
+      "sha256-isdFNO1MOrx3O9l4DWjUN/GmfJk2PnprHrAfeaLDkgA=";
 
-  types-aiobotocore-elastic-inference = buildTypesAiobotocorePackage "elastic-inference" "2.12.3" "sha256-hhgI8CplzvzbKVPB43udHODE+td4B4Tdk2vls+JNyn4=";
+  types-aiobotocore-elastic-inference =
+    buildTypesAiobotocorePackage "elastic-inference" "2.13.0"
+      "sha256-886NH6Lg6mLHdVCRqZ/c+z1DgQ6Yy5DYX7Gd9kf3lMg=";
 
-  types-aiobotocore-elasticache = buildTypesAiobotocorePackage "elasticache" "2.12.3" "sha256-DnZqKJCvFFzgjncV6w+Cxi7HTtA7A7t/RGJyQ9icYos=";
+  types-aiobotocore-elasticache =
+    buildTypesAiobotocorePackage "elasticache" "2.13.0"
+      "sha256-8vm8VQENdxdjhMEg7I9SyQX//LLnKE++SvIRhyCgb7Q=";
 
-  types-aiobotocore-elasticbeanstalk = buildTypesAiobotocorePackage "elasticbeanstalk" "2.12.3" "sha256-HC3+b8rFuJshIax6g8oLFMSxxHcbYHP3HDvP2u3UX3U=";
+  types-aiobotocore-elasticbeanstalk =
+    buildTypesAiobotocorePackage "elasticbeanstalk" "2.13.0"
+      "sha256-L8/0MxGvGLTfwrNSPyYVtfz46TXJVPn+0pBGPs+SwGo=";
 
-  types-aiobotocore-elastictranscoder = buildTypesAiobotocorePackage "elastictranscoder" "2.12.3" "sha256-jXW3LMDaQgXL7QVUJ0OxEUaNfPED5GjXefbWzzf+MGA=";
+  types-aiobotocore-elastictranscoder =
+    buildTypesAiobotocorePackage "elastictranscoder" "2.13.0"
+      "sha256-UiN9U4WpqgBs8fCcteUTz7bzwFBwJV7mpOMvEZIy7r8=";
 
-  types-aiobotocore-elb = buildTypesAiobotocorePackage "elb" "2.12.3" "sha256-L5be76HYM3piIMrbP0QiaLKc6YOdqPMR52fBuNkpLx4=";
+  types-aiobotocore-elb =
+    buildTypesAiobotocorePackage "elb" "2.13.0"
+      "sha256-ok+Ystctf+09dxI2Q+lXeucckPQZSJSyx6fbPsYgOn4=";
 
-  types-aiobotocore-elbv2 = buildTypesAiobotocorePackage "elbv2" "2.12.3" "sha256-MCM9zyNpUUt4aAO04aMmPzg+r71VqQzeV4eH+ukBZiw=";
+  types-aiobotocore-elbv2 =
+    buildTypesAiobotocorePackage "elbv2" "2.13.0"
+      "sha256-e8UsYdshyUhdyGxo6ZNhYMw3H5MyL2NjZ6IVDoJN1/0=";
 
-  types-aiobotocore-emr = buildTypesAiobotocorePackage "emr" "2.12.3" "sha256-5hCuf3QgmnKhaI8L5BmZfOztgsB9Quy/Zwwu3vutKj0=";
+  types-aiobotocore-emr =
+    buildTypesAiobotocorePackage "emr" "2.13.0"
+      "sha256-k+/+TC9m2v7t9O+etubXMGrD1FJ2Ul2eGYf2MwPYDyc=";
 
-  types-aiobotocore-emr-containers = buildTypesAiobotocorePackage "emr-containers" "2.12.3" "sha256-Qq8koQIHkd4ZsuYfAnW7wpCgRzpGaFyKRCN5WQBIqJY=";
+  types-aiobotocore-emr-containers =
+    buildTypesAiobotocorePackage "emr-containers" "2.13.0"
+      "sha256-LFmBCNyHEG5j0oK3waIrVQd1KeE7sd50JdD5J+rjxX4=";
 
-  types-aiobotocore-emr-serverless = buildTypesAiobotocorePackage "emr-serverless" "2.12.3" "sha256-b5iOWjrnxCT/enOPOixlD4tdav5DMavg32xlqE2u4DY=";
+  types-aiobotocore-emr-serverless =
+    buildTypesAiobotocorePackage "emr-serverless" "2.13.0"
+      "sha256-Y0LOqCJs15OO+n3vmIi0g2DU3DLzus1lvZXQU1FjDVI=";
 
-  types-aiobotocore-entityresolution = buildTypesAiobotocorePackage "entityresolution" "2.12.3" "sha256-aIFYYN2GPbDYPjQsbm9D6WPNRAGmFpfkQPhLYwGwZH8=";
+  types-aiobotocore-entityresolution =
+    buildTypesAiobotocorePackage "entityresolution" "2.13.0"
+      "sha256-L1y4kgUBTQx4DfFP9/Yegz0T8I5Qcvv6Ll99NFCuC0Q=";
 
-  types-aiobotocore-es = buildTypesAiobotocorePackage "es" "2.12.3" "sha256-xVn8IRXYklNychp8P8z79yVVwlCYzvhmnhSgq9LJv8Y=";
+  types-aiobotocore-es =
+    buildTypesAiobotocorePackage "es" "2.13.0"
+      "sha256-N1u90rw2M4Sr6CQgB3tXBAmXX/Qu5jG8QHfRn4gmxxU=";
 
-  types-aiobotocore-events = buildTypesAiobotocorePackage "events" "2.12.3" "sha256-8n9aFOaZYqQvwnb1Yt509JhZjNisL+dY3PVqkxbwbQA=";
+  types-aiobotocore-events =
+    buildTypesAiobotocorePackage "events" "2.13.0"
+      "sha256-3E01v7MvD0NC5QXMG7zQ1m66sa9oo6VAzVqMwQaUQ04=";
 
-  types-aiobotocore-evidently = buildTypesAiobotocorePackage "evidently" "2.12.3" "sha256-8QZLlmUwuveQf1dXbJZGUJC2XiKA4vrdxG6Ee9F+jPA=";
+  types-aiobotocore-evidently =
+    buildTypesAiobotocorePackage "evidently" "2.13.0"
+      "sha256-KDJlHpf+95/H7axc65nY2XNTtxSUox2iAG2SQkRw600=";
 
-  types-aiobotocore-finspace = buildTypesAiobotocorePackage "finspace" "2.12.3" "sha256-icXRzSXSn/M50jVun2Evm1QB9m9feFGWazKSvZwCa30=";
+  types-aiobotocore-finspace =
+    buildTypesAiobotocorePackage "finspace" "2.13.0"
+      "sha256-or5hhp/ZxYw5DN6LUpAqcR/2bDmRppT1a/9L0+mRcSA=";
 
-  types-aiobotocore-finspace-data = buildTypesAiobotocorePackage "finspace-data" "2.12.3" "sha256-dPw16YNaK5CvMNWxdkK0vNVzXcDY3hocWr9ffg2vtGI=";
+  types-aiobotocore-finspace-data =
+    buildTypesAiobotocorePackage "finspace-data" "2.13.0"
+      "sha256-80Y0tP4x+fWeJg+zaS/c3TxYflD8Hto7vNNuDqApRrg=";
 
-  types-aiobotocore-firehose = buildTypesAiobotocorePackage "firehose" "2.12.3" "sha256-xcFTvd7d+lrXiJ4SlxiznwFfFRHnxmTZk6vwVurICvc=";
+  types-aiobotocore-firehose =
+    buildTypesAiobotocorePackage "firehose" "2.13.0"
+      "sha256-Wtz55HZjmJwAcZhhuGGq4U+LGg+/xfADcXXCtgNVpGQ=";
 
-  types-aiobotocore-fis = buildTypesAiobotocorePackage "fis" "2.12.3" "sha256-ivJ/ekU1qvjuOXnLNXUUoGp/xc0DtHnqh4QwqUyIwk8=";
+  types-aiobotocore-fis =
+    buildTypesAiobotocorePackage "fis" "2.13.0"
+      "sha256-8O3BKG+R6CL7CSYWcxPrKfcsJGkSoIbI0DTOXLzS2/Q=";
 
-  types-aiobotocore-fms = buildTypesAiobotocorePackage "fms" "2.12.3" "sha256-ddMnkPvFyn2HG88pYapA3TWbOgV6DRLbnSWdd5CauyM=";
+  types-aiobotocore-fms =
+    buildTypesAiobotocorePackage "fms" "2.13.0"
+      "sha256-lUo54nWEsFMcNDC7rpBFc3VhNjafUax1Utc76BWd/bM=";
 
-  types-aiobotocore-forecast = buildTypesAiobotocorePackage "forecast" "2.12.3" "sha256-RvaEG2bWIOOOdPOk1A/CW+UTtYMuQ3ZyD0tYfLzOhfc=";
+  types-aiobotocore-forecast =
+    buildTypesAiobotocorePackage "forecast" "2.13.0"
+      "sha256-LB2Ms4okxEMMOEwMd8/JykfnzmsOKRsSOF92UAlI+Kw=";
 
-  types-aiobotocore-forecastquery = buildTypesAiobotocorePackage "forecastquery" "2.12.3" "sha256-I5vvbmW1BO0ZfKkQEXAhcGb8Q9DMKXDR9AYFcAm6bLM=";
+  types-aiobotocore-forecastquery =
+    buildTypesAiobotocorePackage "forecastquery" "2.13.0"
+      "sha256-atPLPwuCkYDv3vyYQuj9+2VkLx4tL0q5/S8g24oapSY=";
 
-  types-aiobotocore-frauddetector = buildTypesAiobotocorePackage "frauddetector" "2.12.3" "sha256-NGi+3jWxWPMlsKGDjdWzcORI6ElDbtVexeVQh71cego=";
+  types-aiobotocore-frauddetector =
+    buildTypesAiobotocorePackage "frauddetector" "2.13.0"
+      "sha256-2XZkPccKpLYIXNKhIRuheJVnAOLr2f8mya/vuefX0d4=";
 
-  types-aiobotocore-fsx = buildTypesAiobotocorePackage "fsx" "2.12.3" "sha256-1vl16o9foO6wmumbOvgF3FA8vEOjpCmkcHaktY8pEYY=";
+  types-aiobotocore-fsx =
+    buildTypesAiobotocorePackage "fsx" "2.13.0"
+      "sha256-Sxhfg/weC3nSRYdT2BnPiL1zzHMtXV0X0iDar2LQFiY=";
 
-  types-aiobotocore-gamelift = buildTypesAiobotocorePackage "gamelift" "2.12.3" "sha256-FARwguNmU+BDV5XyJSL4dqGESEoKmXPjVoPU6ktzRIg=";
+  types-aiobotocore-gamelift =
+    buildTypesAiobotocorePackage "gamelift" "2.13.0"
+      "sha256-UowdjQc9yaP5Y9XCcynACAUrHJzFZXeeCRWT8NvSLhs=";
 
-  types-aiobotocore-gamesparks = buildTypesAiobotocorePackage "gamesparks" "2.7.0" "sha256-oVbKtuLMPpCQcZYx/cH1Dqjv/t6/uXsveflfFVqfN+8=";
+  types-aiobotocore-gamesparks =
+    buildTypesAiobotocorePackage "gamesparks" "2.7.0"
+      "sha256-oVbKtuLMPpCQcZYx/cH1Dqjv/t6/uXsveflfFVqfN+8=";
 
-  types-aiobotocore-glacier = buildTypesAiobotocorePackage "glacier" "2.12.3" "sha256-Xpob7f0ucl+F+X++5GAdQ4B0IgF4YM7oRFFbm77n4LI=";
+  types-aiobotocore-glacier =
+    buildTypesAiobotocorePackage "glacier" "2.13.0"
+      "sha256-lJNVoAMtqdFmzFX9RKmVoW0Ww0EGRWFrB4HpD8EL7i8=";
 
-  types-aiobotocore-globalaccelerator = buildTypesAiobotocorePackage "globalaccelerator" "2.12.3" "sha256-aMaPlDZGLvuPDjH5p8bKU0JYRImjheJnpP2oKshtVDY=";
+  types-aiobotocore-globalaccelerator =
+    buildTypesAiobotocorePackage "globalaccelerator" "2.13.0"
+      "sha256-vYJcni53gQDsns8fPNQTsbSIu2pKlfHOi+Y6ZBsIlrQ=";
 
-  types-aiobotocore-glue = buildTypesAiobotocorePackage "glue" "2.12.3" "sha256-d9rFpL4iv1k2zJgE8qQymisVDuOJMEL6ZuQkuV78d0U=";
+  types-aiobotocore-glue =
+    buildTypesAiobotocorePackage "glue" "2.13.0"
+      "sha256-lpk9u8K+XKTHa/U0y42B6WJ/LMH9Sftp958PbwTeJiE=";
 
-  types-aiobotocore-grafana = buildTypesAiobotocorePackage "grafana" "2.12.3" "sha256-jmavkKefg/AZMrhU1bhI6Njy78MDNrT+3riIaKIAUlY=";
+  types-aiobotocore-grafana =
+    buildTypesAiobotocorePackage "grafana" "2.13.0"
+      "sha256-mnCvxOER/AasPUVwwfLl/jYsb/HgU6n2nJs5vtCgD0Y=";
 
-  types-aiobotocore-greengrass = buildTypesAiobotocorePackage "greengrass" "2.12.3" "sha256-zvg/8evrSn14vr9RJXeI4YVOiwva8GwdnCHKkfMygKk=";
+  types-aiobotocore-greengrass =
+    buildTypesAiobotocorePackage "greengrass" "2.13.0"
+      "sha256-pEBpwnQBOwzbr76xdEggj9Nrp7aPJjRHGV0lpU45GDY=";
 
-  types-aiobotocore-greengrassv2 = buildTypesAiobotocorePackage "greengrassv2" "2.12.3" "sha256-3DHm+EPlUQA3LHs1Pbi+B9ipCGg/sN7F5etOzJoXTMY=";
+  types-aiobotocore-greengrassv2 =
+    buildTypesAiobotocorePackage "greengrassv2" "2.13.0"
+      "sha256-PiioTpD0PMyQStz7C4PP7/jPhCFGPGAJmV6tEroM8TE=";
 
-  types-aiobotocore-groundstation = buildTypesAiobotocorePackage "groundstation" "2.12.3" "sha256-0n8ec0H/Nz7Z5Dl7cK/BdxCSIv+wmP/jsS+uL9+ar9Q=";
+  types-aiobotocore-groundstation =
+    buildTypesAiobotocorePackage "groundstation" "2.13.0"
+      "sha256-doSLPlEx0bEJHGMPDSUXWRmuJwdfiOaDCxkd32kFU/Y=";
 
-  types-aiobotocore-guardduty = buildTypesAiobotocorePackage "guardduty" "2.12.3" "sha256-POI2RmnRoUfjx74/MC/Nf9bqxsn3jUnkzHwuY5b7Oy4=";
+  types-aiobotocore-guardduty =
+    buildTypesAiobotocorePackage "guardduty" "2.13.0"
+      "sha256-HyptnMArByCpLsFRTZWFHIptEaPLujUiyGHDUshW+3w=";
 
-  types-aiobotocore-health = buildTypesAiobotocorePackage "health" "2.12.3" "sha256-5sa+9i8KahglRVdJnTqp8zYUHfvGq4GCfcMYhd2qJdU=";
+  types-aiobotocore-health =
+    buildTypesAiobotocorePackage "health" "2.13.0"
+      "sha256-o+AKZJnVXd/MDaP0Ws2ImRHmudPJkmJIinNtE1HLX90=";
 
-  types-aiobotocore-healthlake = buildTypesAiobotocorePackage "healthlake" "2.12.3" "sha256-CQDgDkaJ0hbmsRMxxBXGBOzn2XU5DG4uBFUOl3P4XwY=";
+  types-aiobotocore-healthlake =
+    buildTypesAiobotocorePackage "healthlake" "2.13.0"
+      "sha256-whj5Wf3XLhhzJz0pH9ewMrrReI+8UiVmnuU9oi+0KRM=";
 
-  types-aiobotocore-honeycode = buildTypesAiobotocorePackage "honeycode" "2.12.3" "sha256-NDecqTRmki4/c55vpjW8aCLW9fkKvkDRHAMrf54P9cM=";
+  types-aiobotocore-honeycode =
+    buildTypesAiobotocorePackage "honeycode" "2.13.0"
+      "sha256-DeeheoQeFEcDH21DSNs2kSR1rjnPLtTgz0yNCFnE+Io=";
 
-  types-aiobotocore-iam = buildTypesAiobotocorePackage "iam" "2.12.3" "sha256-0zxf9IpiVF1nxY+Cfk631+vTtjojo8Ky4M69zfU62MQ=";
+  types-aiobotocore-iam =
+    buildTypesAiobotocorePackage "iam" "2.13.0"
+      "sha256-zT6k0pAwR3ActVWyUsE5blqv78xHuQGQlJKvjqI06Os=";
 
-  types-aiobotocore-identitystore = buildTypesAiobotocorePackage "identitystore" "2.12.3" "sha256-GZnXAGM2WMamZkyHmxb/+uRfUtLmmXCkN1yRgUmO1pE=";
+  types-aiobotocore-identitystore =
+    buildTypesAiobotocorePackage "identitystore" "2.13.0"
+      "sha256-rmrC8PXW1KyrZo0T2pA9bsHCGSR3DIPYP827jCPR7Ao=";
 
-  types-aiobotocore-imagebuilder = buildTypesAiobotocorePackage "imagebuilder" "2.12.3" "sha256-ValWGfzRPnhA2HVwF/bHfCEv/NCOYoOjVPplRomIXgw=";
+  types-aiobotocore-imagebuilder =
+    buildTypesAiobotocorePackage "imagebuilder" "2.13.0"
+      "sha256-rP9XtYKaG8sCSeF0HTGCLofTIbg0iyCjozqUAwQvOFk=";
 
-  types-aiobotocore-importexport = buildTypesAiobotocorePackage "importexport" "2.12.3" "sha256-o609SDjx1+dzBTmNSGuoh8H6XLfZLJgaqUJVEmG3gzU=";
+  types-aiobotocore-importexport =
+    buildTypesAiobotocorePackage "importexport" "2.13.0"
+      "sha256-iZHJ4C/Ai7cSnWQsUsb9D1eMr8+17XQr+okJkb6KquM=";
 
-  types-aiobotocore-inspector = buildTypesAiobotocorePackage "inspector" "2.12.3" "sha256-ymj+ugkTQkGEloCtdnFsmwXtLmMnpgxsgINsZjCnPCI=";
+  types-aiobotocore-inspector =
+    buildTypesAiobotocorePackage "inspector" "2.13.0"
+      "sha256-uVr5nzXn9/OlJgcGckH6Qi5eOWULyhwBbDehHxMHk60=";
 
-  types-aiobotocore-inspector2 = buildTypesAiobotocorePackage "inspector2" "2.12.3" "sha256-+kC/viBAYxGSP80pStaSD6bIXN5pdwu96NA6lcfIWzM=";
+  types-aiobotocore-inspector2 =
+    buildTypesAiobotocorePackage "inspector2" "2.13.0"
+      "sha256-BENRjvjKgd9fy4zt1LXqcDhUhK/OJG5FyIaSRl+NnPA=";
 
-  types-aiobotocore-internetmonitor = buildTypesAiobotocorePackage "internetmonitor" "2.12.3" "sha256-iCVPf+7LtTfRvrX7vKt2DNkfw1xdTCpzlqvA2w4LsjQ=";
+  types-aiobotocore-internetmonitor =
+    buildTypesAiobotocorePackage "internetmonitor" "2.13.0"
+      "sha256-bhC316GPUqjSpmrsyZAZgCHcPGubEBXqXsueTnXaAOg=";
 
-  types-aiobotocore-iot = buildTypesAiobotocorePackage "iot" "2.12.3" "sha256-YJSr/C6V7yASlg2Ifif8lAYsy9zOo9ficn0DWmWIZB8=";
+  types-aiobotocore-iot =
+    buildTypesAiobotocorePackage "iot" "2.13.0"
+      "sha256-xXYong7il5S1cjAJUJe1d4gSkn+6c/eBe7FIjEmNYl4=";
 
-  types-aiobotocore-iot-data = buildTypesAiobotocorePackage "iot-data" "2.12.3" "sha256-7LJRrYAcyil9Trw8gCu7lOkrdcSW5yQeZOrQ1bPL+qE=";
+  types-aiobotocore-iot-data =
+    buildTypesAiobotocorePackage "iot-data" "2.13.0"
+      "sha256-bQah1T+GlZryFRE8Z7vpNUEVJmXjCX05GWYR5Y8KANk=";
 
-  types-aiobotocore-iot-jobs-data = buildTypesAiobotocorePackage "iot-jobs-data" "2.12.3" "sha256-An0qRP6UxBOHwkQ7e/a0ZN9c0drgC8uYz1xXslEwStc=";
+  types-aiobotocore-iot-jobs-data =
+    buildTypesAiobotocorePackage "iot-jobs-data" "2.13.0"
+      "sha256-0lWhcUjZ4R8etiKugTuELzpbF/7+7rfbAsXAmB8OXRM=";
 
-  types-aiobotocore-iot-roborunner = buildTypesAiobotocorePackage "iot-roborunner" "2.12.2" "sha256-O/nGvYfUibI4EvHgONtkYHFv/dZSpHCehXjietPiMJo=";
+  types-aiobotocore-iot-roborunner =
+    buildTypesAiobotocorePackage "iot-roborunner" "2.12.2"
+      "sha256-O/nGvYfUibI4EvHgONtkYHFv/dZSpHCehXjietPiMJo=";
 
-  types-aiobotocore-iot1click-devices = buildTypesAiobotocorePackage "iot1click-devices" "2.12.3" "sha256-5PQV2KlzOpRWkeJhsPFwCZ8iZQp+flTH1UUGn3q3/7k=";
+  types-aiobotocore-iot1click-devices =
+    buildTypesAiobotocorePackage "iot1click-devices" "2.13.0"
+      "sha256-Ge098mg+jeOxwpBr3BMELnRD0cqZqmRSArHh/m2OsBE=";
 
-  types-aiobotocore-iot1click-projects = buildTypesAiobotocorePackage "iot1click-projects" "2.12.3" "sha256-FuC8skyo0yoqd+He5cOKlUUnPiGk9I8vUen0uj5Eqcc=";
+  types-aiobotocore-iot1click-projects =
+    buildTypesAiobotocorePackage "iot1click-projects" "2.13.0"
+      "sha256-hf5aYWELJQniMsldhHv25/2Rqk3SnSGbJ0OBsdDO/us=";
 
-  types-aiobotocore-iotanalytics = buildTypesAiobotocorePackage "iotanalytics" "2.12.3" "sha256-EPHXokF9XO/0EAOnOyhp2MUfs7UHozFKYbWqPeDFweQ=";
+  types-aiobotocore-iotanalytics =
+    buildTypesAiobotocorePackage "iotanalytics" "2.13.0"
+      "sha256-T784XUsVCpZKSfl8JtrCA8zYieE7WRFUS0GjGkiMb7M=";
 
-  types-aiobotocore-iotdeviceadvisor = buildTypesAiobotocorePackage "iotdeviceadvisor" "2.12.3" "sha256-iZVZJZFCrwmKpYglS/UT4Qew1GdttI7rwn+XduS2DPc=";
+  types-aiobotocore-iotdeviceadvisor =
+    buildTypesAiobotocorePackage "iotdeviceadvisor" "2.13.0"
+      "sha256-vY8bUjfix0ooShceyA56KkI3VvTQhWQdO2KAFOQK/fs=";
 
-  types-aiobotocore-iotevents = buildTypesAiobotocorePackage "iotevents" "2.12.3" "sha256-bxW0Wtqua7ny+kv8bSdyss/MFxLWDMqCxbojBsjtNY4=";
+  types-aiobotocore-iotevents =
+    buildTypesAiobotocorePackage "iotevents" "2.13.0"
+      "sha256-x7GlfEgtPacEjliok6xIqJ0wYC/AZqYDHPiGrXRmpGg=";
 
-  types-aiobotocore-iotevents-data = buildTypesAiobotocorePackage "iotevents-data" "2.12.3" "sha256-jOVKCfHNJmfGHnqG/y75qz6hsYUWrD911KCV3amWldc=";
+  types-aiobotocore-iotevents-data =
+    buildTypesAiobotocorePackage "iotevents-data" "2.13.0"
+      "sha256-eCf9pN4Xra2TTjes8hDFegbkmM/pz1onMS5ntJKE1E0=";
 
-  types-aiobotocore-iotfleethub = buildTypesAiobotocorePackage "iotfleethub" "2.12.3" "sha256-gp2YjRDGXRFBrHnzs5m/SsugG7U6hh3NvYG8ym5/2FU=";
+  types-aiobotocore-iotfleethub =
+    buildTypesAiobotocorePackage "iotfleethub" "2.13.0"
+      "sha256-VMIE+miyZDZRG9BYy/q6Y+FQngScblfnL3UKQVY0VhA=";
 
-  types-aiobotocore-iotfleetwise = buildTypesAiobotocorePackage "iotfleetwise" "2.12.3" "sha256-YHZZUZmmmE6T8Z+Vvh4SZEf5xrzzObLKP6EuGY+aIaI=";
+  types-aiobotocore-iotfleetwise =
+    buildTypesAiobotocorePackage "iotfleetwise" "2.13.0"
+      "sha256-rVC6BOWbPKiivjAyqGlG1sYPwAPMDfy0puzrk+2ow+U=";
 
-  types-aiobotocore-iotsecuretunneling = buildTypesAiobotocorePackage "iotsecuretunneling" "2.12.3" "sha256-Bx43NAwPTlPqZrV3SN39amD0on7RJvvXC27QJ9kShWY=";
+  types-aiobotocore-iotsecuretunneling =
+    buildTypesAiobotocorePackage "iotsecuretunneling" "2.13.0"
+      "sha256-XtNzPH9a+FZg6RgXuJFkkHj4utt84u/PYWpHz3fQOC8=";
 
-  types-aiobotocore-iotsitewise = buildTypesAiobotocorePackage "iotsitewise" "2.12.3" "sha256-fXmG7vvCgM24P+WwPgVlh+uVJdzT3r5dgEf5eU2763w=";
+  types-aiobotocore-iotsitewise =
+    buildTypesAiobotocorePackage "iotsitewise" "2.13.0"
+      "sha256-52y4FXYR7Hk3pjNe8Er9j94tGuLnPKx2sf+YJtyg8Sg=";
 
-  types-aiobotocore-iotthingsgraph = buildTypesAiobotocorePackage "iotthingsgraph" "2.12.3" "sha256-1rdcWFEfM9paoGxm3NhS/A5tDMCgCoMkGeXUG49i238=";
+  types-aiobotocore-iotthingsgraph =
+    buildTypesAiobotocorePackage "iotthingsgraph" "2.13.0"
+      "sha256-GZBsVNbdQ8J936kW8UfVfOwIw9ftEttSl942pcDxr4A=";
 
-  types-aiobotocore-iottwinmaker = buildTypesAiobotocorePackage "iottwinmaker" "2.12.3" "sha256-AEp5cF3vVj5t/M7J4hSuk7KsUIKN9sSpSk2XfH4w8Hk=";
+  types-aiobotocore-iottwinmaker =
+    buildTypesAiobotocorePackage "iottwinmaker" "2.13.0"
+      "sha256-hE+juDpyRZ0zPsSGMGt037o7NLN0z7Co7m+HCKSh5Fc=";
 
-  types-aiobotocore-iotwireless = buildTypesAiobotocorePackage "iotwireless" "2.12.3" "sha256-LfmlJGalNaiZB1UAqG1XwDPNBKxz0hO2S9EiTakmtmA=";
+  types-aiobotocore-iotwireless =
+    buildTypesAiobotocorePackage "iotwireless" "2.13.0"
+      "sha256-O8F7NN8hkQiDJNy8Y3Cx1w1WwUGH0y9YtGIz8Wcj1/E=";
 
-  types-aiobotocore-ivs = buildTypesAiobotocorePackage "ivs" "2.12.3" "sha256-vxFbBTyf0psVvc0N8kAEJrX/JumRoWD5GKQ2JmkJkPg=";
+  types-aiobotocore-ivs =
+    buildTypesAiobotocorePackage "ivs" "2.13.0"
+      "sha256-dZHvgOfBn61k6VMcFGBmBZ4BrR1TUgTPx55Rvw3+isc=";
 
-  types-aiobotocore-ivs-realtime = buildTypesAiobotocorePackage "ivs-realtime" "2.12.3" "sha256-78x0QtBZsBztNaAqiUCtosIf+Lm3DCJqVerRBOLiEXs=";
+  types-aiobotocore-ivs-realtime =
+    buildTypesAiobotocorePackage "ivs-realtime" "2.13.0"
+      "sha256-LF9SEkOMDBq2yvlQHPBx4pLByEzRtgOZS8x1btm0snc=";
 
-  types-aiobotocore-ivschat = buildTypesAiobotocorePackage "ivschat" "2.12.3" "sha256-/yakndOCbZlLhARZ6jd6eG0YLRZjg8Igw4Fc15obqRo=";
+  types-aiobotocore-ivschat =
+    buildTypesAiobotocorePackage "ivschat" "2.13.0"
+      "sha256-Bv5lSIWGbFJxpMK//ZUm8ewaf0d7XuAgZcYA1EghVtA=";
 
-  types-aiobotocore-kafka = buildTypesAiobotocorePackage "kafka" "2.12.3" "sha256-oayTFZfzOURWDfzexxrHxV/JdJDXAmk9LupPWMFZpkc=";
+  types-aiobotocore-kafka =
+    buildTypesAiobotocorePackage "kafka" "2.13.0"
+      "sha256-5hMlJfYR8qYQg9S12xwKHxIt7Grv3F0CwUE/p0WP2ZU=";
 
-  types-aiobotocore-kafkaconnect = buildTypesAiobotocorePackage "kafkaconnect" "2.12.3" "sha256-pA6EEsfS9W1uK7s92CGqZtk3o+GUI92T/lFOqCQotTI=";
+  types-aiobotocore-kafkaconnect =
+    buildTypesAiobotocorePackage "kafkaconnect" "2.13.0"
+      "sha256-ecnz27IztSMrBt4xc4DsZbNpliciSswNIOHT3t6tTXg=";
 
-  types-aiobotocore-kendra = buildTypesAiobotocorePackage "kendra" "2.12.3" "sha256-RPSoV974cSYfPL1cFnpZjcMQeSENxThtG44zWUemN9E=";
+  types-aiobotocore-kendra =
+    buildTypesAiobotocorePackage "kendra" "2.13.0"
+      "sha256-nhKOiHgIC59fwH1HTLusuTgiaOJ5KidRm9DHuGQmQnE=";
 
-  types-aiobotocore-kendra-ranking = buildTypesAiobotocorePackage "kendra-ranking" "2.12.3" "sha256-A5o/guqeDNvH27DCB5SAJuOmgSMYSrJjru5qn3sOL6k=";
+  types-aiobotocore-kendra-ranking =
+    buildTypesAiobotocorePackage "kendra-ranking" "2.13.0"
+      "sha256-FBQDcjY3tx1M3012LzP2FO/1z9WQ9xihburpWv9Tq78=";
 
-  types-aiobotocore-keyspaces = buildTypesAiobotocorePackage "keyspaces" "2.12.3" "sha256-1gACiFQAo1iCzITBQIcRNId8S2t3L7ga8MiC1oKQX58=";
+  types-aiobotocore-keyspaces =
+    buildTypesAiobotocorePackage "keyspaces" "2.13.0"
+      "sha256-rEOkdFru0ZbjPWLvC9TlAd46r9bviqEmpKPvL0MqhjI=";
 
-  types-aiobotocore-kinesis = buildTypesAiobotocorePackage "kinesis" "2.12.3" "sha256-jcFBnfzUcCyWt5qOgiCx/2Lbf2QEGW4G7JjTNclGy/k=";
+  types-aiobotocore-kinesis =
+    buildTypesAiobotocorePackage "kinesis" "2.13.0"
+      "sha256-0f/Nl7BqZ+AFAJrckS1DtZGl3QNWCIsJAusVgkXuTvQ=";
 
-  types-aiobotocore-kinesis-video-archived-media = buildTypesAiobotocorePackage "kinesis-video-archived-media" "2.12.3" "sha256-DkvRjmHxmyj3TWQK5FxsgpU8vm+I7d7dibkI6rwGg8c=";
+  types-aiobotocore-kinesis-video-archived-media =
+    buildTypesAiobotocorePackage "kinesis-video-archived-media" "2.13.0"
+      "sha256-nl6GBcrpUaBWghji5309vsHGxWuRHe8R1Z0w1OSpf2k=";
 
-  types-aiobotocore-kinesis-video-media = buildTypesAiobotocorePackage "kinesis-video-media" "2.12.3" "sha256-cDko/AYbz8KLxheVLhGhYr9eUOxB6R3JCoNCXyOBL48=";
+  types-aiobotocore-kinesis-video-media =
+    buildTypesAiobotocorePackage "kinesis-video-media" "2.13.0"
+      "sha256-EX0Wq0B/2gOhX6ekSDpWUsC57wrVPBXakf7zjLql7i0=";
 
-  types-aiobotocore-kinesis-video-signaling = buildTypesAiobotocorePackage "kinesis-video-signaling" "2.12.3" "sha256-f/8FAIf6DFf0ly5qRhG+kFHYzs4whggUsxhphA2bPuM=";
+  types-aiobotocore-kinesis-video-signaling =
+    buildTypesAiobotocorePackage "kinesis-video-signaling" "2.13.0"
+      "sha256-2YYJskPHKJJGwvfWKT3CA2XZFcJ//dSroaZj8Z3Zz/M=";
 
-  types-aiobotocore-kinesis-video-webrtc-storage = buildTypesAiobotocorePackage "kinesis-video-webrtc-storage" "2.12.3" "sha256-dIvQeCqeL+oBy0N+uTcBTbkkNfGfrgKwGYrI8XaLeYQ=";
+  types-aiobotocore-kinesis-video-webrtc-storage =
+    buildTypesAiobotocorePackage "kinesis-video-webrtc-storage" "2.13.0"
+      "sha256-TPueQ1LwzxJVM11CfA5Uy+s1wgZ4cFtFg2h9lwX/Bqk=";
 
-  types-aiobotocore-kinesisanalytics = buildTypesAiobotocorePackage "kinesisanalytics" "2.12.3" "sha256-nEc26wCazquuuiOVbWWpa7ab4ZQE0TElsWrbIuL2VHE=";
+  types-aiobotocore-kinesisanalytics =
+    buildTypesAiobotocorePackage "kinesisanalytics" "2.13.0"
+      "sha256-MrjUkjhU9spam5WRWNMNrEaUV+VDj5bLb4jEOpxSnic=";
 
-  types-aiobotocore-kinesisanalyticsv2 = buildTypesAiobotocorePackage "kinesisanalyticsv2" "2.12.3" "sha256-MX/moxuQphb6YaO3BeuMhDyvuYG8WEevYizg0yQq4Pw=";
+  types-aiobotocore-kinesisanalyticsv2 =
+    buildTypesAiobotocorePackage "kinesisanalyticsv2" "2.13.0"
+      "sha256-ApnELs3BVh05bLJvzFfLgbn1kY2IjItbjZh8xw90UPo=";
 
-  types-aiobotocore-kinesisvideo = buildTypesAiobotocorePackage "kinesisvideo" "2.12.3" "sha256-G3kO0yM3jbw1RdRo5JX7Ju2vzsR+7GXeLjyoPGFIEQg=";
+  types-aiobotocore-kinesisvideo =
+    buildTypesAiobotocorePackage "kinesisvideo" "2.13.0"
+      "sha256-+xPIVVF1QdCbs/yaWKlD5WHc400MwV01BJAKlau85I4=";
 
-  types-aiobotocore-kms = buildTypesAiobotocorePackage "kms" "2.12.3" "sha256-6JfxOXCsDjP0QqYqXBiPXp3R31mBL6Z4xUwXMFHGgdI=";
+  types-aiobotocore-kms =
+    buildTypesAiobotocorePackage "kms" "2.13.0"
+      "sha256-Vc7G2TRaxerOVf+wG6T5gHqR0atMP0SdehJe+55GZZc=";
 
-  types-aiobotocore-lakeformation = buildTypesAiobotocorePackage "lakeformation" "2.12.3" "sha256-KuXvIcrlvCA7ATv6az1Oeoe0CCysnCUb/B/D9+pd/Q0=";
+  types-aiobotocore-lakeformation =
+    buildTypesAiobotocorePackage "lakeformation" "2.13.0"
+      "sha256-os4//4oH0mvWDeA8TyuZc3WL4Zqs2blepwLx+3W/RKw=";
 
-  types-aiobotocore-lambda = buildTypesAiobotocorePackage "lambda" "2.12.3" "sha256-4RSFi2CyKz/0Y3d9xIYM6CpOONTLP1X8rJqzJolVdck=";
+  types-aiobotocore-lambda =
+    buildTypesAiobotocorePackage "lambda" "2.13.0"
+      "sha256-M1j3PX0xDOwp6N2kPR2B9q0hzKZ8SlGkNlRNQHl4F3o=";
 
-  types-aiobotocore-lex-models = buildTypesAiobotocorePackage "lex-models" "2.12.3" "sha256-EoASjvQ8uJy15SVq5vNek+vMqNgU40/Rj1i1NwWDHuk=";
+  types-aiobotocore-lex-models =
+    buildTypesAiobotocorePackage "lex-models" "2.13.0"
+      "sha256-i/nA25zWKIpg25TJJqKnFaudaSUjbPc7PHXtixu3rIE=";
 
-  types-aiobotocore-lex-runtime = buildTypesAiobotocorePackage "lex-runtime" "2.12.3" "sha256-JbL9RhcnbNll+68jzuiF6coqdMYeYLYkuPJz85Q4gAg=";
+  types-aiobotocore-lex-runtime =
+    buildTypesAiobotocorePackage "lex-runtime" "2.13.0"
+      "sha256-0R7Z1p9CVjtWKlhs1n4jDMDheOQXn5jrbxIGK6Hz3+A=";
 
-  types-aiobotocore-lexv2-models = buildTypesAiobotocorePackage "lexv2-models" "2.12.3" "sha256-cTndR1V9msDL+8NIqp6HRvSmP/rhZlwVuZwLKBoitZA=";
+  types-aiobotocore-lexv2-models =
+    buildTypesAiobotocorePackage "lexv2-models" "2.13.0"
+      "sha256-aLJfuoQrT10rDwqZXGdE8d5WQ5GnSwAhO3ttX4ZhdG8=";
 
-  types-aiobotocore-lexv2-runtime = buildTypesAiobotocorePackage "lexv2-runtime" "2.12.3" "sha256-V/PGGRZDXhilxUE5YslkyiJYWulQkEsxQZbaAbPP/cU=";
+  types-aiobotocore-lexv2-runtime =
+    buildTypesAiobotocorePackage "lexv2-runtime" "2.13.0"
+      "sha256-7LXp7pXpgCx083rzIeytSzoRKsI9Lry/k356/mwlWQM=";
 
-  types-aiobotocore-license-manager = buildTypesAiobotocorePackage "license-manager" "2.12.3" "sha256-zA+rcTsvrOFB1/st0q9vK4L0YZTGVlk0XNl5gxcxSK0=";
+  types-aiobotocore-license-manager =
+    buildTypesAiobotocorePackage "license-manager" "2.13.0"
+      "sha256-ayM9VLN9jAmJeMXWmJwa5knSIK/goX+IFP5IJyaYYN0=";
 
-  types-aiobotocore-license-manager-linux-subscriptions = buildTypesAiobotocorePackage "license-manager-linux-subscriptions" "2.12.3" "sha256-vGzT4Q90+FeF8tELo3zWp90MqrbNJ95kzovjFbnz9LY=";
+  types-aiobotocore-license-manager-linux-subscriptions =
+    buildTypesAiobotocorePackage "license-manager-linux-subscriptions" "2.13.0"
+      "sha256-gbVx6et48YFYzqqhhHg1OhhbYBCTUOv7me9mxcFEx/w=";
 
-  types-aiobotocore-license-manager-user-subscriptions = buildTypesAiobotocorePackage "license-manager-user-subscriptions" "2.12.3" "sha256-qI9Pw+lK7JGSKEl+wxZz1CmG7UG1AsDmxkHuYY/sQxQ=";
+  types-aiobotocore-license-manager-user-subscriptions =
+    buildTypesAiobotocorePackage "license-manager-user-subscriptions" "2.13.0"
+      "sha256-Nm50NIyIhRJ7zy/riVNYZhGW4iJXV1BZdHukpFFQi+c=";
 
-  types-aiobotocore-lightsail = buildTypesAiobotocorePackage "lightsail" "2.12.3" "sha256-hl58xChUqHdkl0KtZjMetrR+am1gHIPZtSfRXSQg6ac=";
+  types-aiobotocore-lightsail =
+    buildTypesAiobotocorePackage "lightsail" "2.13.0"
+      "sha256-POUIiTtEa85VA6s7FtwP8TSNdo1MNe+6IWIDDIKpFMs=";
 
-  types-aiobotocore-location = buildTypesAiobotocorePackage "location" "2.12.3" "sha256-nTBbzRhNWl5B1tGlaQVd0eKbnBvy/8fmDZ4kY9de4cU=";
+  types-aiobotocore-location =
+    buildTypesAiobotocorePackage "location" "2.13.0"
+      "sha256-nVxbggkxC82171TDifKU7NRcohmiWdGKBbAY6cNLZkM=";
 
-  types-aiobotocore-logs = buildTypesAiobotocorePackage "logs" "2.12.3" "sha256-mmmR4vLdjfNys1uXGMbvF84/CrI6GKNH/tRkneHI9PQ=";
+  types-aiobotocore-logs =
+    buildTypesAiobotocorePackage "logs" "2.13.0"
+      "sha256-rwImBaQiRyo/FMibogZwe+cuJVNkKCK05R7O6RFt1hc=";
 
-  types-aiobotocore-lookoutequipment = buildTypesAiobotocorePackage "lookoutequipment" "2.12.3" "sha256-rSoOIJywU+Vzh73LQac0ugfiu2r25SHdsgIjHmmHZnw=";
+  types-aiobotocore-lookoutequipment =
+    buildTypesAiobotocorePackage "lookoutequipment" "2.13.0"
+      "sha256-eOB6McK2F4B2c1vQmc26OsU/N8HAVtm3ZUBSZzkRyUA=";
 
-  types-aiobotocore-lookoutmetrics = buildTypesAiobotocorePackage "lookoutmetrics" "2.12.3" "sha256-hrVID1/a/McspXe+Tl6VPTApYJpjERa1Hb4QmTtWpBM=";
+  types-aiobotocore-lookoutmetrics =
+    buildTypesAiobotocorePackage "lookoutmetrics" "2.13.0"
+      "sha256-mTfRSAwyOYBk3fcPgcwilZ0o7sEB1U5msLt9AOzUNnY=";
 
-  types-aiobotocore-lookoutvision = buildTypesAiobotocorePackage "lookoutvision" "2.12.3" "sha256-KYxkVAaRxZxCHz4FBFNaZUrSLbtumaU1Qh3w467nPjo=";
+  types-aiobotocore-lookoutvision =
+    buildTypesAiobotocorePackage "lookoutvision" "2.13.0"
+      "sha256-JyMI0ldwLZcY20vTs5lIda2EjRhnzyJVw3/EQKkxPQs=";
 
-  types-aiobotocore-m2 = buildTypesAiobotocorePackage "m2" "2.12.3" "sha256-1f6YJ6a9OqmJ1szPMao5l3zAs97grpDr4SvldDNohV4=";
+  types-aiobotocore-m2 =
+    buildTypesAiobotocorePackage "m2" "2.13.0"
+      "sha256-CAqHIVnso4h6Vw7nK3Oy1BbMxywPmHt6oaJcpCQk6GM=";
 
-  types-aiobotocore-machinelearning = buildTypesAiobotocorePackage "machinelearning" "2.12.3" "sha256-0b6bNQvxR+OJd/hyM47qAM5/B0ALYEkWJqO5OosKOtw=";
+  types-aiobotocore-machinelearning =
+    buildTypesAiobotocorePackage "machinelearning" "2.13.0"
+      "sha256-MIqF9A9KPW2yzWHeEhX8usTtT92GuAEKAYf9FhjxW90=";
 
-  types-aiobotocore-macie = buildTypesAiobotocorePackage "macie" "2.7.0" "sha256-hJJtGsK2b56nKX1ZhiarC+ffyjHYWRiC8II4oyDZWWw=";
+  types-aiobotocore-macie =
+    buildTypesAiobotocorePackage "macie" "2.7.0"
+      "sha256-hJJtGsK2b56nKX1ZhiarC+ffyjHYWRiC8II4oyDZWWw=";
 
-  types-aiobotocore-macie2 = buildTypesAiobotocorePackage "macie2" "2.12.3" "sha256-sd30ATrunzj5kqZDJLGd7sGdxtpBcR0Kl1qG2QhqeFk=";
+  types-aiobotocore-macie2 =
+    buildTypesAiobotocorePackage "macie2" "2.13.0"
+      "sha256-83zr/u4Q6KhFm3Id0nY6yVAtBZhD45jWXaqRdyPftNU=";
 
-  types-aiobotocore-managedblockchain = buildTypesAiobotocorePackage "managedblockchain" "2.12.3" "sha256-8uZkHItyZfvSv8rr2PKYLHVDHxeL/f/Z8mcHYXBsiXw=";
+  types-aiobotocore-managedblockchain =
+    buildTypesAiobotocorePackage "managedblockchain" "2.13.0"
+      "sha256-ZaQSNpRsGarE8NCcoafeRokn2HfdKApexxLwcz7rUVM=";
 
-  types-aiobotocore-managedblockchain-query = buildTypesAiobotocorePackage "managedblockchain-query" "2.12.3" "sha256-n3hInygsT+Zkl4TTjZ7gtkvT7npEvvl6HoNpRW0kI2M=";
+  types-aiobotocore-managedblockchain-query =
+    buildTypesAiobotocorePackage "managedblockchain-query" "2.13.0"
+      "sha256-kjxNEPAKBHsCKnJI+WgdVhEmrVURHfyUUwHOLSNazn0=";
 
-  types-aiobotocore-marketplace-catalog = buildTypesAiobotocorePackage "marketplace-catalog" "2.12.3" "sha256-GkzlSr5zRispSfeIe2pmOMlLhxoBctn9EM1VXTnMSkg=";
+  types-aiobotocore-marketplace-catalog =
+    buildTypesAiobotocorePackage "marketplace-catalog" "2.13.0"
+      "sha256-LG6cM9E5KgkMR2On3Z45UN3VgfcBtIPtBpt8OmTbhP8=";
 
-  types-aiobotocore-marketplace-entitlement = buildTypesAiobotocorePackage "marketplace-entitlement" "2.12.3" "sha256-61Sgh1moietvRwtc2SrJhWZ5y1ZobI+CiIlL+zkbbgE=";
+  types-aiobotocore-marketplace-entitlement =
+    buildTypesAiobotocorePackage "marketplace-entitlement" "2.13.0"
+      "sha256-jPzcbqjrCS22zhDmrOK9KOvYv7y15iY88FSad2t9Dyc=";
 
-  types-aiobotocore-marketplacecommerceanalytics = buildTypesAiobotocorePackage "marketplacecommerceanalytics" "2.12.3" "sha256-//+fB39zKqT9n+KIa9fMHoj4Oq5S5bq1vwsnEorPS2g=";
+  types-aiobotocore-marketplacecommerceanalytics =
+    buildTypesAiobotocorePackage "marketplacecommerceanalytics" "2.13.0"
+      "sha256-Mtpin8e/YS95wDCII4w4lD9KiL4jXyYbeEDEGaLb38U=";
 
-  types-aiobotocore-mediaconnect = buildTypesAiobotocorePackage "mediaconnect" "2.12.3" "sha256-DoIwvqLsCmcUR4UaEvTShKf6sYs3iQDyWkuDxz//cB8=";
+  types-aiobotocore-mediaconnect =
+    buildTypesAiobotocorePackage "mediaconnect" "2.13.0"
+      "sha256-/fpb6bsagRYCil2SOWviJjdqNEMJjD7WMemzRf7C63o=";
 
-  types-aiobotocore-mediaconvert = buildTypesAiobotocorePackage "mediaconvert" "2.12.3" "sha256-ESAo1QuHtL7T5fZMP15bwxtjDdymDOmz0MX/mcDd82s=";
+  types-aiobotocore-mediaconvert =
+    buildTypesAiobotocorePackage "mediaconvert" "2.13.0"
+      "sha256-MSL3mYBrUDBeLitsWfR3Q2mwRzpoclL/oJkaFxc6TTw=";
 
-  types-aiobotocore-medialive = buildTypesAiobotocorePackage "medialive" "2.12.3" "sha256-ZF+D7dzjmQNntkyM271BePIbCchA3o1naO/sChfYrGo=";
+  types-aiobotocore-medialive =
+    buildTypesAiobotocorePackage "medialive" "2.13.0"
+      "sha256-hZGqU1HI/0et9myUffbJDHFhsCkpl8x5M+iNgsxeNnk=";
 
-  types-aiobotocore-mediapackage = buildTypesAiobotocorePackage "mediapackage" "2.12.3" "sha256-OiwnSNch2kbYfNbKNCPSrhg+9yAe4sktibGEQ3MPyXI=";
+  types-aiobotocore-mediapackage =
+    buildTypesAiobotocorePackage "mediapackage" "2.13.0"
+      "sha256-HD2rT2bgrFPGQQrHicz/1jnP9pbLnp+KN/kdA+Dp12U=";
 
-  types-aiobotocore-mediapackage-vod = buildTypesAiobotocorePackage "mediapackage-vod" "2.12.3" "sha256-tmBmDVpO4hTT8xMuFpeAl1Gx+m+MacalYwdxKO8k8o4=";
+  types-aiobotocore-mediapackage-vod =
+    buildTypesAiobotocorePackage "mediapackage-vod" "2.13.0"
+      "sha256-iXg4JDx3U42iwFVrpHHqk6yhCnHA0g9NA+f25BR85Ws=";
 
-  types-aiobotocore-mediapackagev2 = buildTypesAiobotocorePackage "mediapackagev2" "2.12.3" "sha256-siRePAYIWMPCaivNTOCjhfafut6sQzFYqpiGO4rO+v8=";
+  types-aiobotocore-mediapackagev2 =
+    buildTypesAiobotocorePackage "mediapackagev2" "2.13.0"
+      "sha256-B91QlIhMp9hGgJsToYseTQSB4n3Sgei4Bdgl3RmU5cw=";
 
-  types-aiobotocore-mediastore = buildTypesAiobotocorePackage "mediastore" "2.12.3" "sha256-S5o0T8mUQ1ppq4vPdNeBr5FjcNpRtFPRQG4C/MZye2U=";
+  types-aiobotocore-mediastore =
+    buildTypesAiobotocorePackage "mediastore" "2.13.0"
+      "sha256-2UwHy/6Ni/6rmd+OW1FKXp2jSDueGntuVInNt2kbHR8=";
 
-  types-aiobotocore-mediastore-data = buildTypesAiobotocorePackage "mediastore-data" "2.12.3" "sha256-q4AFkM7keYfHWmnFOM5r1xHpVEnDjWsAmyATcfC7264=";
+  types-aiobotocore-mediastore-data =
+    buildTypesAiobotocorePackage "mediastore-data" "2.13.0"
+      "sha256-L+Lo4cSR905FO7fkyFgJAhJ7JXmwpZY6yrAs3sI9Pow=";
 
-  types-aiobotocore-mediatailor = buildTypesAiobotocorePackage "mediatailor" "2.12.3" "sha256-PLyaXf2/hrmo4YGS6KY8aXyhEv5ewGPWVsGoHS0Ui2g=";
+  types-aiobotocore-mediatailor =
+    buildTypesAiobotocorePackage "mediatailor" "2.13.0"
+      "sha256-eLnheUZLKCaklJuihJbnOi/nK/4G4QWpnpz8PWRYDa0=";
 
-  types-aiobotocore-medical-imaging = buildTypesAiobotocorePackage "medical-imaging" "2.12.3" "sha256-3ZFHete+MHeUGomdkD54eCqwDfshP+5Vtf+jTOkRZww=";
+  types-aiobotocore-medical-imaging =
+    buildTypesAiobotocorePackage "medical-imaging" "2.13.0"
+      "sha256-5r6e/tA+U8IJhX89/aQBSnEzOECDFqIoQ1t906c8p8s=";
 
-  types-aiobotocore-memorydb = buildTypesAiobotocorePackage "memorydb" "2.12.3" "sha256-PB1wrc6y3enPpB+Wk3ciL7F1dgU8bqRxE5FarSaV/80=";
+  types-aiobotocore-memorydb =
+    buildTypesAiobotocorePackage "memorydb" "2.13.0"
+      "sha256-2IKR1goAmHifDr1emN4VORd9WV1rZMbfEapVc+TQ9WE=";
 
-  types-aiobotocore-meteringmarketplace = buildTypesAiobotocorePackage "meteringmarketplace" "2.12.3" "sha256-rKVoKaY63jArGx0R5Y9Xnp7OoztedmbshmB9d338LzM=";
+  types-aiobotocore-meteringmarketplace =
+    buildTypesAiobotocorePackage "meteringmarketplace" "2.13.0"
+      "sha256-M/B4jn9RFGHHa1xbC7JeCQdKPqC7eU2Dv8wEIH0J9jQ=";
 
-  types-aiobotocore-mgh = buildTypesAiobotocorePackage "mgh" "2.12.3" "sha256-bUWSyqyUMzvSQSMkqEPJYjhLoAXG1hUcIqHY5bpAito=";
+  types-aiobotocore-mgh =
+    buildTypesAiobotocorePackage "mgh" "2.13.0"
+      "sha256-mzvCnITcMJzMfpfRQFyIVpbtfVPY4qy5OLyb3UIlqUo=";
 
-  types-aiobotocore-mgn = buildTypesAiobotocorePackage "mgn" "2.12.3" "sha256-I/NeUqOmAXeiF1Sej2LJkMOgKw1Lz4c7YrNJMf+Q4Ac=";
+  types-aiobotocore-mgn =
+    buildTypesAiobotocorePackage "mgn" "2.13.0"
+      "sha256-RejNbn28WmZ+ioSAKYFIegfC1AkbkRWLd65IwnWgzHY=";
 
-  types-aiobotocore-migration-hub-refactor-spaces = buildTypesAiobotocorePackage "migration-hub-refactor-spaces" "2.12.3" "sha256-0mOX1FRHqlY4FggS/ieTRzc6I4dwoNT6syl0lUiSnFs=";
+  types-aiobotocore-migration-hub-refactor-spaces =
+    buildTypesAiobotocorePackage "migration-hub-refactor-spaces" "2.13.0"
+      "sha256-HR9zSE6SOLTYqQZV+RowVCV+YfVafbuCvfNvrNYUVgo=";
 
-  types-aiobotocore-migrationhub-config = buildTypesAiobotocorePackage "migrationhub-config" "2.12.3" "sha256-CiobxWUFRuAI5qKFDO1zRQj5Xtp+RzMVjwGm2ZSBijY=";
+  types-aiobotocore-migrationhub-config =
+    buildTypesAiobotocorePackage "migrationhub-config" "2.13.0"
+      "sha256-WWfZkvq+OgnYGrTRcJfLJCZGsjpUy2AsEMkTyb+CUcs=";
 
-  types-aiobotocore-migrationhuborchestrator = buildTypesAiobotocorePackage "migrationhuborchestrator" "2.12.3" "sha256-SZ+e7oEbPvRY8J6jLePeoG7osJv7zPtn9SV5z4cU4gU=";
+  types-aiobotocore-migrationhuborchestrator =
+    buildTypesAiobotocorePackage "migrationhuborchestrator" "2.13.0"
+      "sha256-icVLvU1ZI1/5/owDALeg25qCK1Ny3PVrCvfydIfBCO8=";
 
-  types-aiobotocore-migrationhubstrategy = buildTypesAiobotocorePackage "migrationhubstrategy" "2.12.3" "sha256-vO0Tjigj2x/HsA5gPsPU1peloI7GMvHXHe8dtsxSGTg=";
+  types-aiobotocore-migrationhubstrategy =
+    buildTypesAiobotocorePackage "migrationhubstrategy" "2.13.0"
+      "sha256-rgKjBmULUFRAFr8b6J9m58aoR2pKkSjLhJY7lkZOKRY=";
 
-  types-aiobotocore-mobile = buildTypesAiobotocorePackage "mobile" "2.12.3" "sha256-s1ddYopINo+Q6T9QuD1sQ0P1UYgGxmYaSjxW6eCxK+Y=";
+  types-aiobotocore-mobile =
+    buildTypesAiobotocorePackage "mobile" "2.13.0"
+      "sha256-BICpQNN+Br+iDoMeTNSNyNacVgI1OrfcyZkDBl2SoUo=";
 
-  types-aiobotocore-mq = buildTypesAiobotocorePackage "mq" "2.12.3" "sha256-tEvBlyvVNNDLRHe8UPzdjnq1hA5QqPDUdtuS2zj6zu0=";
+  types-aiobotocore-mq =
+    buildTypesAiobotocorePackage "mq" "2.13.0"
+      "sha256-+Y1GRkcDbR4SXOIGneHepAS/qrgjnM7K26po8Nf1YsA=";
 
-  types-aiobotocore-mturk = buildTypesAiobotocorePackage "mturk" "2.12.3" "sha256-59BieemJgQXv3YyitmffaeD7oxlQAKT8xX/E/VxG0JY=";
+  types-aiobotocore-mturk =
+    buildTypesAiobotocorePackage "mturk" "2.13.0"
+      "sha256-s3unZa/uhHtqArgIuBNoWcTnAFj9rduODKfs6gtc2fw=";
 
-  types-aiobotocore-mwaa = buildTypesAiobotocorePackage "mwaa" "2.12.3" "sha256-ayUivauZR/s6ivrJA5DFviFgH/rq/f3KYGimULyoizY=";
+  types-aiobotocore-mwaa =
+    buildTypesAiobotocorePackage "mwaa" "2.13.0"
+      "sha256-ZS8XXr4rroDTCDSuPep8kG7e/h8v9i7499UJrQfgEDk=";
 
-  types-aiobotocore-neptune = buildTypesAiobotocorePackage "neptune" "2.12.3" "sha256-bzIzK9sKecGyKvEVWvgwis8Lm9HRP/y49MSnQQb1XGk=";
+  types-aiobotocore-neptune =
+    buildTypesAiobotocorePackage "neptune" "2.13.0"
+      "sha256-fvEnIIx66IrTx4exrIJm/KVytf0F+fb3RpmUVE2niXA=";
 
-  types-aiobotocore-network-firewall = buildTypesAiobotocorePackage "network-firewall" "2.12.3" "sha256-2Ze/cG5ixrzYm0jZ4hByh7Wz3nAzH3/jyopgFyTUjdg=";
+  types-aiobotocore-network-firewall =
+    buildTypesAiobotocorePackage "network-firewall" "2.13.0"
+      "sha256-R12G5XKsP034MeJ2Tf2bctcrMVlfQ6o9ZDCBpdLN/+E=";
 
-  types-aiobotocore-networkmanager = buildTypesAiobotocorePackage "networkmanager" "2.12.3" "sha256-F14ejhHjbv2BmfNng0hmI34+aA8pVCf4L+Cvn2Kx6Jc=";
+  types-aiobotocore-networkmanager =
+    buildTypesAiobotocorePackage "networkmanager" "2.13.0"
+      "sha256-H2tj/8DQqtT1GIZP1FmRuAR/bf5Q5d1VOoCcsgsQxJA=";
 
-  types-aiobotocore-nimble = buildTypesAiobotocorePackage "nimble" "2.12.3" "sha256-8WpARJKsOatdQXzmFt30FFri8b1h3bBeyydbZ73kPMc=";
+  types-aiobotocore-nimble =
+    buildTypesAiobotocorePackage "nimble" "2.13.0"
+      "sha256-00Di+tYc0/CTTUOu1ax1lNp/2tfCvB58L9ETzqWEjRE=";
 
-  types-aiobotocore-oam = buildTypesAiobotocorePackage "oam" "2.12.3" "sha256-qJlO69CxqQnDekL7KRoQEkDd3w5rCxwJ0Z6RRGZxVgU=";
+  types-aiobotocore-oam =
+    buildTypesAiobotocorePackage "oam" "2.13.0"
+      "sha256-q9sBKS2BiiuCGvv+pkm/WSgN70a/KY7gLgxayG3yu98=";
 
-  types-aiobotocore-omics = buildTypesAiobotocorePackage "omics" "2.12.3" "sha256-TA4kRoEoYZ6awy9TL550xT0sjVg2FEdfOQLrBEurCTo=";
+  types-aiobotocore-omics =
+    buildTypesAiobotocorePackage "omics" "2.13.0"
+      "sha256-bNahQYb5iuNxk+XQSpf61w68hjGA6Hm62zr70Gj2UeU=";
 
-  types-aiobotocore-opensearch = buildTypesAiobotocorePackage "opensearch" "2.12.3" "sha256-uDCRtJuEKNh1HuHCq+YjucLj4VAoHTiqVaOvVnTDJr8=";
+  types-aiobotocore-opensearch =
+    buildTypesAiobotocorePackage "opensearch" "2.13.0"
+      "sha256-zpvBC/rJ/7+C1JDwpiZtksC964po0TuHPBeW6yvD5ww=";
 
-  types-aiobotocore-opensearchserverless = buildTypesAiobotocorePackage "opensearchserverless" "2.12.3" "sha256-KMftaU+mCA1yUnZ1/N1C4N353Lulnmue1Y95GGmIAPg=";
+  types-aiobotocore-opensearchserverless =
+    buildTypesAiobotocorePackage "opensearchserverless" "2.13.0"
+      "sha256-E3N6ewi/YCAeoHBW5WS0FwkO5YjZURxUJhSnESWuG40=";
 
-  types-aiobotocore-opsworks = buildTypesAiobotocorePackage "opsworks" "2.12.3" "sha256-0YVnEY6G5Huj3pnvouc6LaIPHb0uJdRkwF2/EPknFd0=";
+  types-aiobotocore-opsworks =
+    buildTypesAiobotocorePackage "opsworks" "2.13.0"
+      "sha256-LGOxPGYIIXqu/+4SenVUAWhpo7xiSf76wkv8RmSaWro=";
 
-  types-aiobotocore-opsworkscm = buildTypesAiobotocorePackage "opsworkscm" "2.12.3" "sha256-o+tbhUjox4tueImh0cWLqe8Z0xDaDmA1BGMUmFDoEkA=";
+  types-aiobotocore-opsworkscm =
+    buildTypesAiobotocorePackage "opsworkscm" "2.13.0"
+      "sha256-inV4lalhHYvkbyIHcG3DQfAllLSW15sUYHr9b0yhg0g=";
 
-  types-aiobotocore-organizations = buildTypesAiobotocorePackage "organizations" "2.12.3" "sha256-uZ/hxE2GOIPcbtlyG82sBA+uT4RxAORvck4WjghJ+kg=";
+  types-aiobotocore-organizations =
+    buildTypesAiobotocorePackage "organizations" "2.13.0"
+      "sha256-KjQ+zOmxStuXKokL3R1JfZhKwEpH/FRhfhpfz78rZw0=";
 
-  types-aiobotocore-osis = buildTypesAiobotocorePackage "osis" "2.12.3" "sha256-kxa5cYYzTSpPmLHV+1ZKjBAC4S9ITmT0p/NI34rQwSs=";
+  types-aiobotocore-osis =
+    buildTypesAiobotocorePackage "osis" "2.13.0"
+      "sha256-LfEOIg6J72v6JBlpl5QFEuqxA28CWJCP+bkhtIvQB6c=";
 
-  types-aiobotocore-outposts = buildTypesAiobotocorePackage "outposts" "2.12.3" "sha256-Xf3CuvPjTQODNeSmI+meP7aHj9a26lPGWQ7nWfc/FjE=";
+  types-aiobotocore-outposts =
+    buildTypesAiobotocorePackage "outposts" "2.13.0"
+      "sha256-Ss1iKr7EUhLXTT/bSM63HX01NNuKtpKWLodVaZIfNso=";
 
-  types-aiobotocore-panorama = buildTypesAiobotocorePackage "panorama" "2.12.3" "sha256-nzkVKxoLpkEBthjyO4d2m8QsEVz2pYsjfBC0sGsTkrY=";
+  types-aiobotocore-panorama =
+    buildTypesAiobotocorePackage "panorama" "2.13.0"
+      "sha256-POEZh26xXi3VJWuGaWjf4r8XHL9RKdrEkpb3gqAWWOQ=";
 
-  types-aiobotocore-payment-cryptography = buildTypesAiobotocorePackage "payment-cryptography" "2.12.3" "sha256-7H0ew8JQNCUkbNiqCH4jCoO883j5y1hbxXqwwJARuTs=";
+  types-aiobotocore-payment-cryptography =
+    buildTypesAiobotocorePackage "payment-cryptography" "2.13.0"
+      "sha256-3X8YP4T3ZhW4QG9eUZDK/YEH4GrqsjlYKcajkx3EwrQ=";
 
-  types-aiobotocore-payment-cryptography-data = buildTypesAiobotocorePackage "payment-cryptography-data" "2.12.3" "sha256-awVZZf6o0VRTqOl1myJggGdCmwoC5XBTlYSeupceWr0=";
+  types-aiobotocore-payment-cryptography-data =
+    buildTypesAiobotocorePackage "payment-cryptography-data" "2.13.0"
+      "sha256-jk2OPWSuPMSU5N4dGhEKacjcker9fWnvKqFAB0CR71o=";
 
-  types-aiobotocore-personalize = buildTypesAiobotocorePackage "personalize" "2.12.3" "sha256-j+q16/K4NSdsLmt+vXF3SEy2Kde+/6BxEZ05zOOPI2w=";
+  types-aiobotocore-personalize =
+    buildTypesAiobotocorePackage "personalize" "2.13.0"
+      "sha256-ev7xOsnF0HscpYbp8P4tcHCs9NepHHWU0LCetScAlx0=";
 
-  types-aiobotocore-personalize-events = buildTypesAiobotocorePackage "personalize-events" "2.12.3" "sha256-YY3hOmgc5ZU1rrN5cbHoIS54eby1AM2vYPz//fGH7Mw=";
+  types-aiobotocore-personalize-events =
+    buildTypesAiobotocorePackage "personalize-events" "2.13.0"
+      "sha256-l3p0VtDiGp8FyXjDjSgiX2IjvLizx9kkv3EvJEIFNBI=";
 
-  types-aiobotocore-personalize-runtime = buildTypesAiobotocorePackage "personalize-runtime" "2.12.3" "sha256-D8k7Ui77IvVkpODg7p8SQLO7We3/EYhZaHODsJskJgc=";
+  types-aiobotocore-personalize-runtime =
+    buildTypesAiobotocorePackage "personalize-runtime" "2.13.0"
+      "sha256-f79eCbB0RFbcNbmPFWpT830y+42QXb5+dM1WTab9cP0=";
 
-  types-aiobotocore-pi = buildTypesAiobotocorePackage "pi" "2.12.3" "sha256-sOLfoF0t58cvdvB8LModo1fs8cPovn9gkg0d0opDj1c=";
+  types-aiobotocore-pi =
+    buildTypesAiobotocorePackage "pi" "2.13.0"
+      "sha256-DzpcGn4lfHbUysUx2S2mcSOOTJJhYS0soEFDapYADkE=";
 
-  types-aiobotocore-pinpoint = buildTypesAiobotocorePackage "pinpoint" "2.12.3" "sha256-YMB/QCn6zawXBB2Fw4he6CIdZFMz4s91IZIbx1W5RwU=";
+  types-aiobotocore-pinpoint =
+    buildTypesAiobotocorePackage "pinpoint" "2.13.0"
+      "sha256-9CUdzl8WKlgOZK6ovzTT7Kjt9/RuUiER0LAR/T1Su1Q=";
 
-  types-aiobotocore-pinpoint-email = buildTypesAiobotocorePackage "pinpoint-email" "2.12.3" "sha256-7MCEh3ICp+3qD6Uijk4/wpEzaP56khP7lG/1RJ26IJg=";
+  types-aiobotocore-pinpoint-email =
+    buildTypesAiobotocorePackage "pinpoint-email" "2.13.0"
+      "sha256-57zdAVy4B/Xvr2g81zB4z7pkvrQgcCPq+AhV305OS1Y=";
 
-  types-aiobotocore-pinpoint-sms-voice = buildTypesAiobotocorePackage "pinpoint-sms-voice" "2.12.3" "sha256-qCnMdlF9VwoTpXxgMObmOa61xzj8NHQoxJriMEbWUPs=";
+  types-aiobotocore-pinpoint-sms-voice =
+    buildTypesAiobotocorePackage "pinpoint-sms-voice" "2.13.0"
+      "sha256-E6p9sQx8+NPVMXMxD8c1UdZrHYH4Qd0A80JHGFhA7ss=";
 
-  types-aiobotocore-pinpoint-sms-voice-v2 = buildTypesAiobotocorePackage "pinpoint-sms-voice-v2" "2.12.3" "sha256-eWOhKQR0tTlqLKCmy3zWvRsg5Y0zRKxtQPM8DGEbvuE=";
+  types-aiobotocore-pinpoint-sms-voice-v2 =
+    buildTypesAiobotocorePackage "pinpoint-sms-voice-v2" "2.13.0"
+      "sha256-aXh055/gbJJCyG5QVXpIKqw+coxVBGmhw2VPdvZnBik=";
 
-  types-aiobotocore-pipes = buildTypesAiobotocorePackage "pipes" "2.12.3" "sha256-kKpp8rQ/co4tJhi1xpuEaIpICy+8sM4grp6bu9HsGMw=";
+  types-aiobotocore-pipes =
+    buildTypesAiobotocorePackage "pipes" "2.13.0"
+      "sha256-c42b0kDLfRBE+lJ7r/GUqYqj7Dl/z0aUbpg4y2XEoAU=";
 
-  types-aiobotocore-polly = buildTypesAiobotocorePackage "polly" "2.12.3" "sha256-lwU91zv+IhHXBoGtioox9iB7lqGxXwf+s3A43qDZFRw=";
+  types-aiobotocore-polly =
+    buildTypesAiobotocorePackage "polly" "2.13.0"
+      "sha256-be+Ul5pZYU3EuBoSriRHdOECu+8FcIBu/hHsBtMSrCM=";
 
-  types-aiobotocore-pricing = buildTypesAiobotocorePackage "pricing" "2.12.3" "sha256-n3bM48N4nqgXA5XQ+2lHgqyfADGP8pt8MDcpd3Afdbc=";
+  types-aiobotocore-pricing =
+    buildTypesAiobotocorePackage "pricing" "2.13.0"
+      "sha256-6nulrxv3q74k1Mld1/JtGFx+EQCDuFecxskw1aZvZ3M=";
 
-  types-aiobotocore-privatenetworks = buildTypesAiobotocorePackage "privatenetworks" "2.12.3" "sha256-EvxCTzjfaxz3sj7S39I1MvOUo5n4vnc4h0X4bWevSwE=";
+  types-aiobotocore-privatenetworks =
+    buildTypesAiobotocorePackage "privatenetworks" "2.13.0"
+      "sha256-dB0R/ZUIIgEyWmlvbrFxh53C3Xq92EGrObd/FiQJlOU=";
 
-  types-aiobotocore-proton = buildTypesAiobotocorePackage "proton" "2.12.3" "sha256-/0MAjPO7xXsuePNUGpqpSOORe6GsH8IpbZUj4F9+Jp0=";
+  types-aiobotocore-proton =
+    buildTypesAiobotocorePackage "proton" "2.13.0"
+      "sha256-Urwvd8q8FOwhYhl1oi8onuP3r1Qu3V7kCgfH7mN5t8g=";
 
-  types-aiobotocore-qldb = buildTypesAiobotocorePackage "qldb" "2.12.3" "sha256-2LbMUzIge0Jf+iGDI06ne7QP3EMoiVY3m1KOniiRnsw=";
+  types-aiobotocore-qldb =
+    buildTypesAiobotocorePackage "qldb" "2.13.0"
+      "sha256-36D0kXk4qitMvkA7If8bZUUdnntEkXFeg2txUzjFzJc=";
 
-  types-aiobotocore-qldb-session = buildTypesAiobotocorePackage "qldb-session" "2.12.3" "sha256-Ooj8lzd48n+tcICQgAJT9z//7r+obDdv4jvTNTAhzCw=";
+  types-aiobotocore-qldb-session =
+    buildTypesAiobotocorePackage "qldb-session" "2.13.0"
+      "sha256-39psT/kzcSLJqP3Wy08GBZ9/4guzw/x+ndbNYuLP1ns=";
 
-  types-aiobotocore-quicksight = buildTypesAiobotocorePackage "quicksight" "2.12.3" "sha256-aZGpaXSomaU0+oFEEuN1C/1zjA4UAz4vn/Nu2JJThrA=";
+  types-aiobotocore-quicksight =
+    buildTypesAiobotocorePackage "quicksight" "2.13.0"
+      "sha256-15z6hK1P9LREE8ehE+SzTR6BZqUzkFLjw/x3UGuRNAw=";
 
-  types-aiobotocore-ram = buildTypesAiobotocorePackage "ram" "2.12.3" "sha256-bauCdG3Qf4Uiyw0szQL7SBm7QmYSmcDAOW2nW23xlQ0=";
+  types-aiobotocore-ram =
+    buildTypesAiobotocorePackage "ram" "2.13.0"
+      "sha256-LlVfeu1m0FROsfyWrLcZRFU0cZivHfuLIZNbpLhXvuU=";
 
-  types-aiobotocore-rbin = buildTypesAiobotocorePackage "rbin" "2.12.3" "sha256-zitp/IE5zJL0qKF5TM3nQdUA1qgSeCSGcK/WS3niRUA=";
+  types-aiobotocore-rbin =
+    buildTypesAiobotocorePackage "rbin" "2.13.0"
+      "sha256-AdwPPoUy7jnSTdnAR1w2m9b+txQagRaBUWr8/TOuTjU=";
 
-  types-aiobotocore-rds = buildTypesAiobotocorePackage "rds" "2.12.3" "sha256-scJBwjmxy+UmivIBKl5ncB0/JQSeSwSh3wA30EWH/+o=";
+  types-aiobotocore-rds =
+    buildTypesAiobotocorePackage "rds" "2.13.0"
+      "sha256-tq4SeOB2pAsw7p+zHp7l3A9rkCu8Gx9/shuYA0W3gbY=";
 
-  types-aiobotocore-rds-data = buildTypesAiobotocorePackage "rds-data" "2.12.3" "sha256-KmEecWh2Z0O6eoRjEClzDC/Vp3qYwrPtdIW6ty2/jM4=";
+  types-aiobotocore-rds-data =
+    buildTypesAiobotocorePackage "rds-data" "2.13.0"
+      "sha256-n8y+lLePLNr0OQG8V0orUolAk25T9+zjOESwL7hzx0U=";
 
-  types-aiobotocore-redshift = buildTypesAiobotocorePackage "redshift" "2.12.3" "sha256-H0GqZM72tVXcvs6ciE9wcqOAQfECU84iKn2VdGaNhIg=";
+  types-aiobotocore-redshift =
+    buildTypesAiobotocorePackage "redshift" "2.13.0"
+      "sha256-6wjuDJGyF08s0iVFiz/ZemBxz76ZMiMBO+JBGcBhUL0=";
 
-  types-aiobotocore-redshift-data = buildTypesAiobotocorePackage "redshift-data" "2.12.3" "sha256-3eJxMH1JvdJ1n9XnC/6+q7rT5ipaUE/J5G++O1MGf40=";
+  types-aiobotocore-redshift-data =
+    buildTypesAiobotocorePackage "redshift-data" "2.13.0"
+      "sha256-YRCKvcxvjYvLjvh5s02A9EihxBqTsGMDgByhqbFhlmY=";
 
-  types-aiobotocore-redshift-serverless = buildTypesAiobotocorePackage "redshift-serverless" "2.12.3" "sha256-+KyAzCuPDV9QTx5COJZjGRpiciYdSHDaaulH++s8Olk=";
+  types-aiobotocore-redshift-serverless =
+    buildTypesAiobotocorePackage "redshift-serverless" "2.13.0"
+      "sha256-w3xyGATAH0dku7XD4qBR8x4YW9n1lBkxCm45b6oZYw4=";
 
-  types-aiobotocore-rekognition = buildTypesAiobotocorePackage "rekognition" "2.12.3" "sha256-AZ3tTUTTQsxIDn7hmq5DkepvOGRA/OBGC7O0Y9ZCqb4=";
+  types-aiobotocore-rekognition =
+    buildTypesAiobotocorePackage "rekognition" "2.13.0"
+      "sha256-c/74cWPIFaFqZO2/KwuBFzDRFXUN6mGEU4+dhlmZL2c=";
 
-  types-aiobotocore-resiliencehub = buildTypesAiobotocorePackage "resiliencehub" "2.12.3" "sha256-mAKlLfWNTYpYA7QJl6VLHv9Kl4xNXKsRFZJbCEpLjdI=";
+  types-aiobotocore-resiliencehub =
+    buildTypesAiobotocorePackage "resiliencehub" "2.13.0"
+      "sha256-KWIljOtiUP4vnED4jhtEK+o8KkNd5144rHrGGOFEzSo=";
 
-  types-aiobotocore-resource-explorer-2 = buildTypesAiobotocorePackage "resource-explorer-2" "2.12.3" "sha256-Tc2AoAADC9+ElCBKqATsRqAlq12gNcJKr7evJpbZejg=";
+  types-aiobotocore-resource-explorer-2 =
+    buildTypesAiobotocorePackage "resource-explorer-2" "2.13.0"
+      "sha256-7TABg31imqlKbOpfhHfEsvBWiuSvXFQXBV5sy4Vypdw=";
 
-  types-aiobotocore-resource-groups = buildTypesAiobotocorePackage "resource-groups" "2.12.3" "sha256-U02sdfU+FPpcKf7KP4WEIhwbew7CHnXUhE497fYmEXk=";
+  types-aiobotocore-resource-groups =
+    buildTypesAiobotocorePackage "resource-groups" "2.13.0"
+      "sha256-n94mli/2Ugq3wfsB7nY6xMG/w4mPnpna7nzKd8tuH9s=";
 
-  types-aiobotocore-resourcegroupstaggingapi = buildTypesAiobotocorePackage "resourcegroupstaggingapi" "2.12.3" "sha256-Ydf20+setw1400AydFrUHUWQdvNE4g2x23Q9Vn+FG+0=";
+  types-aiobotocore-resourcegroupstaggingapi =
+    buildTypesAiobotocorePackage "resourcegroupstaggingapi" "2.13.0"
+      "sha256-TUX08CfZ+ts1c8nnUVQTXueX7A6Kv/+8gVxvIs/r1vs=";
 
-  types-aiobotocore-robomaker = buildTypesAiobotocorePackage "robomaker" "2.12.3" "sha256-trj8NpEEUJTB0WEzX1XyVQtofWH/j52oNb9CKL/lpSQ=";
+  types-aiobotocore-robomaker =
+    buildTypesAiobotocorePackage "robomaker" "2.13.0"
+      "sha256-Rkys6ilXRFonXAt/w97LYfBbqASrs9pLiB79wgzIXxk=";
 
-  types-aiobotocore-rolesanywhere = buildTypesAiobotocorePackage "rolesanywhere" "2.12.3" "sha256-xd23IpWelx5jtNTBWtCJZEIG4m/o0dpHlXi82goX8m8=";
+  types-aiobotocore-rolesanywhere =
+    buildTypesAiobotocorePackage "rolesanywhere" "2.13.0"
+      "sha256-nN6qqN6uhy0NvrubHlYjLurHZxbKqmdMMBS3GM0wcXQ=";
 
-  types-aiobotocore-route53 = buildTypesAiobotocorePackage "route53" "2.12.3" "sha256-oEyb1NE+3wDStkvUX0gtJ6Bzp/oHIUw1gyQVdFv0PXw=";
+  types-aiobotocore-route53 =
+    buildTypesAiobotocorePackage "route53" "2.13.0"
+      "sha256-CCG6vttkC1uj7gxRxO7xFnd35gAfhhLm5Dj7VVeJEHc=";
 
-  types-aiobotocore-route53-recovery-cluster = buildTypesAiobotocorePackage "route53-recovery-cluster" "2.12.3" "sha256-lnWLEXErO3LO4teDnVnkGRawfEXdh2EgkDL9RVp941Q=";
+  types-aiobotocore-route53-recovery-cluster =
+    buildTypesAiobotocorePackage "route53-recovery-cluster" "2.13.0"
+      "sha256-CQUSDYfeW4Esvi3gTae4xaYZTA6ylPriWV81S6+NeNQ=";
 
-  types-aiobotocore-route53-recovery-control-config = buildTypesAiobotocorePackage "route53-recovery-control-config" "2.12.3" "sha256-FsnXHspKP62zQiB0zhX28V3yeLAMNqMW6JHTVtGVjsk=";
+  types-aiobotocore-route53-recovery-control-config =
+    buildTypesAiobotocorePackage "route53-recovery-control-config" "2.13.0"
+      "sha256-8chbPLryP96xhv2Y6mPLYnAmUp7tz1KL14EB9OED3aA=";
 
-  types-aiobotocore-route53-recovery-readiness = buildTypesAiobotocorePackage "route53-recovery-readiness" "2.12.3" "sha256-mAWpWgYqjnoIHJzw3nNNQA5m5bQd+mkU1536hDb2K+w=";
+  types-aiobotocore-route53-recovery-readiness =
+    buildTypesAiobotocorePackage "route53-recovery-readiness" "2.13.0"
+      "sha256-gaFNIBWhLBXgSdvrztz702QROQbkwd0+VTAjV0zme2Q=";
 
-  types-aiobotocore-route53domains = buildTypesAiobotocorePackage "route53domains" "2.12.3" "sha256-sm1A/O/k62QDcmrhv5mpHZ3YqixRWcPnV2VEL9AfkFs=";
+  types-aiobotocore-route53domains =
+    buildTypesAiobotocorePackage "route53domains" "2.13.0"
+      "sha256-JvPF9T7h4Vz/9lXQ+JZr+NtmUHj2JTcpdUPq1hH9Z0Y=";
 
-  types-aiobotocore-route53resolver = buildTypesAiobotocorePackage "route53resolver" "2.12.3" "sha256-wZVYaDPSU5d0xTeCJQcPi0hiLRt4pvrbMozalM3fIUA=";
+  types-aiobotocore-route53resolver =
+    buildTypesAiobotocorePackage "route53resolver" "2.13.0"
+      "sha256-cnyN8S4V+wdlhqhWLwOBlsZxL7LEXy/hPI14+xwCP1o=";
 
-  types-aiobotocore-rum = buildTypesAiobotocorePackage "rum" "2.12.3" "sha256-IMk/fTHusesqUz0k9KC0TIDcCiShh+DSdQowOBBpeJg=";
+  types-aiobotocore-rum =
+    buildTypesAiobotocorePackage "rum" "2.13.0"
+      "sha256-xEkOqe5WtYJArHH7MIluw/ANTxo2/Yrh4XZoFW12fAM=";
 
-  types-aiobotocore-s3 = buildTypesAiobotocorePackage "s3" "2.12.3" "sha256-UcY0A+OAG3Dfi6HfH2leuknKraIHceX6pWcPsXElzX8=";
+  types-aiobotocore-s3 =
+    buildTypesAiobotocorePackage "s3" "2.13.0"
+      "sha256-ENUvZw4nCFffkH2VCfTKg2gzvATLXqh+SbXdPdowJbI=";
 
-  types-aiobotocore-s3control = buildTypesAiobotocorePackage "s3control" "2.12.3" "sha256-SSD5mCt392ZE0SmypwASM1HeuqnNFbnBjsI/8Uwy+Y0=";
+  types-aiobotocore-s3control =
+    buildTypesAiobotocorePackage "s3control" "2.13.0"
+      "sha256-55qykWmSOXfwrZuLq6xgyPSLp+fW1k4sOm9Az8SPAls=";
 
-  types-aiobotocore-s3outposts = buildTypesAiobotocorePackage "s3outposts" "2.12.3" "sha256-iFrAYHvNIpgH+M6HeuogIZJiRiyzLhuOboEF3ipCCug=";
+  types-aiobotocore-s3outposts =
+    buildTypesAiobotocorePackage "s3outposts" "2.13.0"
+      "sha256-ZGWo0IqJls/dZp0nHCjL7kxHoqHThm0IrNH81ecaHiA=";
 
-  types-aiobotocore-sagemaker = buildTypesAiobotocorePackage "sagemaker" "2.12.3" "sha256-DTUta+jol6bEAisciUDPaiubNdc7CE1DC2njjPVCuEw=";
+  types-aiobotocore-sagemaker =
+    buildTypesAiobotocorePackage "sagemaker" "2.13.0"
+      "sha256-UEmw6ehUWFpNECvB5fg9hy4MzsSUYbypb+NPwshH97I=";
 
-  types-aiobotocore-sagemaker-a2i-runtime = buildTypesAiobotocorePackage "sagemaker-a2i-runtime" "2.12.3" "sha256-+DV7vYutJqk3pcA8gaXVQW2foTKD07elUUFyMi13QT8=";
+  types-aiobotocore-sagemaker-a2i-runtime =
+    buildTypesAiobotocorePackage "sagemaker-a2i-runtime" "2.13.0"
+      "sha256-0gSeq5TGWisG+7juOwMikhMcZRyVj1K996sHUuQJhJg=";
 
-  types-aiobotocore-sagemaker-edge = buildTypesAiobotocorePackage "sagemaker-edge" "2.12.3" "sha256-SFZJnRXUDM5qlvMf6nTso38RmBXKbN3xqOdXFwoCOEc=";
+  types-aiobotocore-sagemaker-edge =
+    buildTypesAiobotocorePackage "sagemaker-edge" "2.13.0"
+      "sha256-BhDbkVmqNNw3thOA7dDBf2wsGsOYnT5jsgXvMiQlSp4=";
 
-  types-aiobotocore-sagemaker-featurestore-runtime = buildTypesAiobotocorePackage "sagemaker-featurestore-runtime" "2.12.3" "sha256-PnVM2KeIEodV1RVmiXv6Zh80NfnzxV3ih3RpNYJlnzw=";
+  types-aiobotocore-sagemaker-featurestore-runtime =
+    buildTypesAiobotocorePackage "sagemaker-featurestore-runtime" "2.13.0"
+      "sha256-bPXKu5HDDvU9wPb5Av6n2C1sszO1zAfC395oC1x11yA=";
 
-  types-aiobotocore-sagemaker-geospatial = buildTypesAiobotocorePackage "sagemaker-geospatial" "2.12.3" "sha256-Lg2PR/AB5yqsRwUWZfIf7vP7Ig2G8APEZRzCXUm0H48=";
+  types-aiobotocore-sagemaker-geospatial =
+    buildTypesAiobotocorePackage "sagemaker-geospatial" "2.13.0"
+      "sha256-1mXX7egH6VDSUPnxmSAeBUm4tqh9CS+tDjdu+j/tPWo=";
 
-  types-aiobotocore-sagemaker-metrics = buildTypesAiobotocorePackage "sagemaker-metrics" "2.12.3" "sha256-Iv6JOyRcAfkaNdq/m2ot/e8CTZREWIE7V+tEsZNZ3HY=";
+  types-aiobotocore-sagemaker-metrics =
+    buildTypesAiobotocorePackage "sagemaker-metrics" "2.13.0"
+      "sha256-wt0NAOC+pb6XTD59ZNLksByX4FwAmrQ2HErj15FUA2E=";
 
-  types-aiobotocore-sagemaker-runtime = buildTypesAiobotocorePackage "sagemaker-runtime" "2.12.3" "sha256-/jd4KgxRbV9IzTGDm0BkcQ5UIaRpDyLBUFZXLsaYzA4=";
+  types-aiobotocore-sagemaker-runtime =
+    buildTypesAiobotocorePackage "sagemaker-runtime" "2.13.0"
+      "sha256-csZFZFJwaxrWFmhzQjdw7DHfTxdfEt41GUh2OQ52wkg=";
 
-  types-aiobotocore-savingsplans = buildTypesAiobotocorePackage "savingsplans" "2.12.3" "sha256-PgrfYlgmvM7QtF0E1z4xi8gGK+ixZykxvdEMpTz3SZw=";
+  types-aiobotocore-savingsplans =
+    buildTypesAiobotocorePackage "savingsplans" "2.13.0"
+      "sha256-WAPagWtRhqsmwrCXGNTai/uargonI8p9PMx6ER3gUus=";
 
-  types-aiobotocore-scheduler = buildTypesAiobotocorePackage "scheduler" "2.12.3" "sha256-jXpQJ1Uw2nOVZpkXtUf1mCrS9YykBJcvVMCp5Jz9558=";
+  types-aiobotocore-scheduler =
+    buildTypesAiobotocorePackage "scheduler" "2.13.0"
+      "sha256-AjAj8QHxU0aOqWMt98M+Qe5v6Dc72ftWuaQ7omTlkRg=";
 
-  types-aiobotocore-schemas = buildTypesAiobotocorePackage "schemas" "2.12.3" "sha256-PiRnAEU/+r/VT3SiboaUpU9FRyOs/3Wj5wCJDyzKZNU=";
+  types-aiobotocore-schemas =
+    buildTypesAiobotocorePackage "schemas" "2.13.0"
+      "sha256-liVnb5YGMACt8P3NXYudpY8Ai5bVqZuv3Q0/WNrLCHg=";
 
-  types-aiobotocore-sdb = buildTypesAiobotocorePackage "sdb" "2.12.3" "sha256-17iQmuTvmeMDkz3fRxYlE/JcCy/XTuCNmlG5EGGY1S8=";
+  types-aiobotocore-sdb =
+    buildTypesAiobotocorePackage "sdb" "2.13.0"
+      "sha256-Yl/GGw/5EUPuIsPUbrG+g1icYqlewsFLwFdvUCnrT4E=";
 
-  types-aiobotocore-secretsmanager = buildTypesAiobotocorePackage "secretsmanager" "2.12.3" "sha256-Yk0GEeSSl3Bhx9w/uRrrl9oNjpdw4ekye1Ia38fpvXE=";
+  types-aiobotocore-secretsmanager =
+    buildTypesAiobotocorePackage "secretsmanager" "2.13.0"
+      "sha256-v0mr8Z2VMpMzPVbnxCoGJ4Oc2Az2QI3Emnci4UMe6sc=";
 
-  types-aiobotocore-securityhub = buildTypesAiobotocorePackage "securityhub" "2.12.3" "sha256-iZzzocPVbiWn6ZaHOEu42hcOLJyjgIRWCJpeSiQE3I4=";
+  types-aiobotocore-securityhub =
+    buildTypesAiobotocorePackage "securityhub" "2.13.0"
+      "sha256-lwsfWc2pkCpsX84z1CfwbWjORqwv+ULpe96Gl4063Fk=";
 
-  types-aiobotocore-securitylake = buildTypesAiobotocorePackage "securitylake" "2.12.3" "sha256-q9e+7s3//qaswRo1wwIIhtEz7qszUKuHXXG3n4z8piE=";
+  types-aiobotocore-securitylake =
+    buildTypesAiobotocorePackage "securitylake" "2.13.0"
+      "sha256-viS9OU1nyW8tk4c0G4oWh48APJf39s/P2Vqo2iLJXbg=";
 
-  types-aiobotocore-serverlessrepo = buildTypesAiobotocorePackage "serverlessrepo" "2.12.3" "sha256-sqFr4/WFedUrgVK9PAVffaA4lhEK510679P/RoTv4xw=";
+  types-aiobotocore-serverlessrepo =
+    buildTypesAiobotocorePackage "serverlessrepo" "2.13.0"
+      "sha256-09grClFgCl+HJX5jmttq7y1HRDuBIn0z16dHO4iRmB4=";
 
-  types-aiobotocore-service-quotas = buildTypesAiobotocorePackage "service-quotas" "2.12.3" "sha256-vCRTtFjQfCe38y/wZaxjIfHRLzkqAakDf/sNXtU2TOY=";
+  types-aiobotocore-service-quotas =
+    buildTypesAiobotocorePackage "service-quotas" "2.13.0"
+      "sha256-IKxnbv5AnPFS2MnkruYX3BsQTwrj/dnWhDURTD1/rcU=";
 
-  types-aiobotocore-servicecatalog = buildTypesAiobotocorePackage "servicecatalog" "2.12.3" "sha256-9EXbCcvcrXmKktoZXp+LdKXQOi6V9VKHrFVR++XGhOI=";
+  types-aiobotocore-servicecatalog =
+    buildTypesAiobotocorePackage "servicecatalog" "2.13.0"
+      "sha256-VhxY09Y/GdngzaNQClwDBxrIsxGGUPnUfhnIEmoFa08=";
 
-  types-aiobotocore-servicecatalog-appregistry = buildTypesAiobotocorePackage "servicecatalog-appregistry" "2.12.3" "sha256-VenvRShJhVaZHkM0MN+iEZHGeOeqbAYneRW0lB4+fww=";
+  types-aiobotocore-servicecatalog-appregistry =
+    buildTypesAiobotocorePackage "servicecatalog-appregistry" "2.13.0"
+      "sha256-TCuTVU3ibRuJxqo0YofFDHkKhsqPErqdSIEks1lFGxE=";
 
-  types-aiobotocore-servicediscovery = buildTypesAiobotocorePackage "servicediscovery" "2.12.3" "sha256-fK38DE6aGY03HmtIBBhyxX4pjA3XOiKKZJ2iMJeZDP8=";
+  types-aiobotocore-servicediscovery =
+    buildTypesAiobotocorePackage "servicediscovery" "2.13.0"
+      "sha256-22jlffIHiNjCGc7Vfz5HhLPrquy/3qTB2MRtjOvKHkk=";
 
-  types-aiobotocore-ses = buildTypesAiobotocorePackage "ses" "2.12.3" "sha256-oYoq9cMFB7qKjUccWa4iunjlwizUA/pevKcQiHS68wY=";
+  types-aiobotocore-ses =
+    buildTypesAiobotocorePackage "ses" "2.13.0"
+      "sha256-4pjWdJ2/5iUM6YOs8lhApi0zDFnsrt9Nja3W59sNZpw=";
 
-  types-aiobotocore-sesv2 = buildTypesAiobotocorePackage "sesv2" "2.12.3" "sha256-JR16UIvxYyWR+T7Ar9ft8rwxZrqwyzKy5pVJMi6kzbA=";
+  types-aiobotocore-sesv2 =
+    buildTypesAiobotocorePackage "sesv2" "2.13.0"
+      "sha256-Cfmcdmx6SjcL+26o1T6yyC/KDYBx/B0jn4wYZizWTuw=";
 
-  types-aiobotocore-shield = buildTypesAiobotocorePackage "shield" "2.12.3" "sha256-tuzWmBEyMr9k4isVkg5ybz7NBwKl5udmHHdokUVILog=";
+  types-aiobotocore-shield =
+    buildTypesAiobotocorePackage "shield" "2.13.0"
+      "sha256-7fo5XF4RMTKWHqDknStr/3T++TCDJvkxXGTw8l2y3n8=";
 
-  types-aiobotocore-signer = buildTypesAiobotocorePackage "signer" "2.12.3" "sha256-jy6cpicBp423tHyp6ALwPro0CwPddDfQHdo9KBOOtLo=";
+  types-aiobotocore-signer =
+    buildTypesAiobotocorePackage "signer" "2.13.0"
+      "sha256-Z7q+pNHlTSyagYUkCIQwsOgNousT7s7VnNEyGqi9LqM=";
 
-  types-aiobotocore-simspaceweaver = buildTypesAiobotocorePackage "simspaceweaver" "2.12.3" "sha256-fDVnFlLYm+8lfSVfFAGu5sjqrVIjmC0WCPpPbIhyf9w=";
+  types-aiobotocore-simspaceweaver =
+    buildTypesAiobotocorePackage "simspaceweaver" "2.13.0"
+      "sha256-+0aYuQO2nN1nyNFwSL1Fh/CWfLWkb7tu2ZAPtwG5vxw=";
 
-  types-aiobotocore-sms = buildTypesAiobotocorePackage "sms" "2.12.3" "sha256-RF91H0JiSTScbqvFbKHkid/Wp7+Qr/qLc6UT9bltEdY=";
+  types-aiobotocore-sms =
+    buildTypesAiobotocorePackage "sms" "2.13.0"
+      "sha256-K+l4X7/2e4iv1kip9iPZUj22/HsJhhQGZ0H7rUHg/5g=";
 
-  types-aiobotocore-sms-voice = buildTypesAiobotocorePackage "sms-voice" "2.12.3" "sha256-nT82/oiMPjWyVbwWLhLjRoQoEMZERe2ET2ti2OnefQw=";
+  types-aiobotocore-sms-voice =
+    buildTypesAiobotocorePackage "sms-voice" "2.13.0"
+      "sha256-6j+YcV4oEB5rZ6k2+Jlzn0irZCd5f1tIIASjKFNkMx4=";
 
-  types-aiobotocore-snow-device-management = buildTypesAiobotocorePackage "snow-device-management" "2.12.3" "sha256-ama8FOWJb2czu+++Ps1nSKCnwZxMk9SP0OGHzX02x7Y=";
+  types-aiobotocore-snow-device-management =
+    buildTypesAiobotocorePackage "snow-device-management" "2.13.0"
+      "sha256-gWuBHbxl8UkEUL2FQ/Gfb1rKmFNHrON72Bo1lxRbwYU=";
 
-  types-aiobotocore-snowball = buildTypesAiobotocorePackage "snowball" "2.12.3" "sha256-elqHFPOYXK8xx1XC5yDkcPJPyY2x0/FKt3Kor+gPk9s=";
+  types-aiobotocore-snowball =
+    buildTypesAiobotocorePackage "snowball" "2.13.0"
+      "sha256-gpaamDvztO5syi72/O721Li1YUmjnWbsT2fxTi8TfKQ=";
 
-  types-aiobotocore-sns = buildTypesAiobotocorePackage "sns" "2.12.3" "sha256-HfqnblwWhnFpVfFe6a4OLPQXuSZB+SzKRS5u39viIjE=";
+  types-aiobotocore-sns =
+    buildTypesAiobotocorePackage "sns" "2.13.0"
+      "sha256-39J795V0hlag4UXJPL95hwp/nvYsRKrrFfCA/DSh4Dk=";
 
-  types-aiobotocore-sqs = buildTypesAiobotocorePackage "sqs" "2.12.3" "sha256-m4tcWZXlixyURA7V1bJvThC1VydPmalqIdz7JrqsEl0=";
+  types-aiobotocore-sqs =
+    buildTypesAiobotocorePackage "sqs" "2.13.0"
+      "sha256-/rlkm98WGctndpPkt1ffkeK1+EVBecwouhTK2ycdenU=";
 
-  types-aiobotocore-ssm = buildTypesAiobotocorePackage "ssm" "2.12.3" "sha256-Zl8oXCdd7lPPNpIF27EPUfPcTVnwfjCBKfS1/t0ta60=";
+  types-aiobotocore-ssm =
+    buildTypesAiobotocorePackage "ssm" "2.13.0"
+      "sha256-Mw6f1xt421x+gA/pmhD9XXDMAIKsDG/oN8/wBVnaRxw=";
 
-  types-aiobotocore-ssm-contacts = buildTypesAiobotocorePackage "ssm-contacts" "2.12.3" "sha256-TYFO1JBWesLY+oNg+k4IdR5OOtrddgUgDn7ONGARRKU=";
+  types-aiobotocore-ssm-contacts =
+    buildTypesAiobotocorePackage "ssm-contacts" "2.13.0"
+      "sha256-lSwXwyKhLxHwAV8Qdkq0IlDg6UnhlBBjFJthHjSv4TY=";
 
-  types-aiobotocore-ssm-incidents = buildTypesAiobotocorePackage "ssm-incidents" "2.12.3" "sha256-IzUQDV1C6TGKT+UXA2c9C6HVBlrg3qHynH/+7klH/6E=";
+  types-aiobotocore-ssm-incidents =
+    buildTypesAiobotocorePackage "ssm-incidents" "2.13.0"
+      "sha256-O4f9e6TkSssRfRW1DWRabocBjElEPyZNbZQwKiGtEmM=";
 
-  types-aiobotocore-ssm-sap = buildTypesAiobotocorePackage "ssm-sap" "2.12.3" "sha256-xaXFwmc+VBX005jom+oYI0fjqebI2BN7Mj14+dVXGQE=";
+  types-aiobotocore-ssm-sap =
+    buildTypesAiobotocorePackage "ssm-sap" "2.13.0"
+      "sha256-m9FxXdOGc4VrM552FB1QIpLnX0dIT+wcK7zWyXLqCm4=";
 
-  types-aiobotocore-sso = buildTypesAiobotocorePackage "sso" "2.12.3" "sha256-ZC4pgxkd0NM+jxOrdiZCoMv39N5dp6yvCfcbkuWxKkE=";
+  types-aiobotocore-sso =
+    buildTypesAiobotocorePackage "sso" "2.13.0"
+      "sha256-biwuRY/iWsjeX61+TXeFmiUbxjPpCuSCrFXXcvwQFW4=";
 
-  types-aiobotocore-sso-admin = buildTypesAiobotocorePackage "sso-admin" "2.12.3" "sha256-chLpz3GeLrw6SbnmqeZntzFZb8YseYXswmlU1icccMs=";
+  types-aiobotocore-sso-admin =
+    buildTypesAiobotocorePackage "sso-admin" "2.13.0"
+      "sha256-8K0aNHqTSthROSsUNjoUqeqlkW5ieJx5tjngkNZ+aPY=";
 
-  types-aiobotocore-sso-oidc = buildTypesAiobotocorePackage "sso-oidc" "2.12.3" "sha256-P7D0/lG3YJbQi12viIdd/Ykl3PCC1u/EAE0oqZv0zAk=";
+  types-aiobotocore-sso-oidc =
+    buildTypesAiobotocorePackage "sso-oidc" "2.13.0"
+      "sha256-cHmk1b0IOwKUKq+QWj6BtkVj1sUI2goELu+uOG1WSX4=";
 
-  types-aiobotocore-stepfunctions = buildTypesAiobotocorePackage "stepfunctions" "2.12.3" "sha256-sYm/6MQNZfRL88M6JPhgZUrPV0r2kWfiNT9nPQB1Uwo=";
+  types-aiobotocore-stepfunctions =
+    buildTypesAiobotocorePackage "stepfunctions" "2.13.0"
+      "sha256-MFlLufnrOZuVEz0X4saMIZ6NOmoOZz4ErhGu2qmIU+M=";
 
-  types-aiobotocore-storagegateway = buildTypesAiobotocorePackage "storagegateway" "2.12.3" "sha256-bdVAioN/pPSA3Ma7PPFhAVL4L1E7clZJzPct0k7ABp8=";
+  types-aiobotocore-storagegateway =
+    buildTypesAiobotocorePackage "storagegateway" "2.13.0"
+      "sha256-NQpTnbyABcbdDOiqNowjyp8eE1FHiiNBP3WfzQuvIWU=";
 
-  types-aiobotocore-sts = buildTypesAiobotocorePackage "sts" "2.12.3" "sha256-aQyVJ9UWizJuKDkko6+xHNIONLq3hI+rQfHsPaW6JVU=";
+  types-aiobotocore-sts =
+    buildTypesAiobotocorePackage "sts" "2.13.0"
+      "sha256-l6LidYUiTrHzuCLlLAU+8XHHpMjy6csClPvGOf7o8Zk=";
 
-  types-aiobotocore-support = buildTypesAiobotocorePackage "support" "2.12.3" "sha256-pJg8YolBrgYx0FwW3J60x2S9H4XymC0XlBBilb1YIEY=";
+  types-aiobotocore-support =
+    buildTypesAiobotocorePackage "support" "2.13.0"
+      "sha256-6Y2NJj3bs88agfiUEzMgl/1Zkci45hoVtNIClzcar/Q=";
 
-  types-aiobotocore-support-app = buildTypesAiobotocorePackage "support-app" "2.12.3" "sha256-NMG419sd7+MjfBEGjaDYcr7kHCE3R3wAY5rFLzfIg18=";
+  types-aiobotocore-support-app =
+    buildTypesAiobotocorePackage "support-app" "2.13.0"
+      "sha256-awkyq4V50G0l5epg1BFD54kMXEYrHe8iso8zlrobvF8=";
 
-  types-aiobotocore-swf = buildTypesAiobotocorePackage "swf" "2.12.3" "sha256-HFcaf+erCthcjXILJYmkH1YDM6xGR1DVi9xd61/UmUc=";
+  types-aiobotocore-swf =
+    buildTypesAiobotocorePackage "swf" "2.13.0"
+      "sha256-CIAMqHhr0E0SFz9IyS2fOn/44Xi8oo0WPvVKNsByTfo=";
 
-  types-aiobotocore-synthetics = buildTypesAiobotocorePackage "synthetics" "2.12.3" "sha256-91qq9ziYFML/0rdn3SP8glsG9mW1LUjvqPlNDt4Fbwo=";
+  types-aiobotocore-synthetics =
+    buildTypesAiobotocorePackage "synthetics" "2.13.0"
+      "sha256-1jMVFO/QbT+hh+jYt42E9DWV4uIoamdG5NjqdkOqovI=";
 
-  types-aiobotocore-textract = buildTypesAiobotocorePackage "textract" "2.12.3" "sha256-WQFJaP++IIr0eWa810stZzMM0gW5Cxh3CPVTfuFzhYg=";
+  types-aiobotocore-textract =
+    buildTypesAiobotocorePackage "textract" "2.13.0"
+      "sha256-qqgWwtB+7ZvjfQP5JOUrszNtZTDXf44Lb2jrnpQAxmM=";
 
-  types-aiobotocore-timestream-query = buildTypesAiobotocorePackage "timestream-query" "2.12.3" "sha256-TOXo/JhCp8+dD0umfIuokpF/lmUgFfsMLOoLtkiZNpg=";
+  types-aiobotocore-timestream-query =
+    buildTypesAiobotocorePackage "timestream-query" "2.13.0"
+      "sha256-9FxDlKjBAlhb+Nu1d3A8AGyvaFXk6ejQI2b7f47SguQ=";
 
-  types-aiobotocore-timestream-write = buildTypesAiobotocorePackage "timestream-write" "2.12.3" "sha256-teNvXZu8T74wuYy13s9UvT2sBc/Q8pT27Mj0lP1uDa0=";
+  types-aiobotocore-timestream-write =
+    buildTypesAiobotocorePackage "timestream-write" "2.13.0"
+      "sha256-yrloTL8MYnHkeVEF2Bp8i2QQ3Yh0IRGiY/VGih41lJQ=";
 
-  types-aiobotocore-tnb = buildTypesAiobotocorePackage "tnb" "2.12.3" "sha256-y3efi+c+4NOXvdnc+y/PMD2CuFuLDGU9HwFUgkNV8HU=";
+  types-aiobotocore-tnb =
+    buildTypesAiobotocorePackage "tnb" "2.13.0"
+      "sha256-Ln5KwCFTs+7T/ONaVj9TeBmSxsOCxXdUokiCa83ozzg=";
 
-  types-aiobotocore-transcribe = buildTypesAiobotocorePackage "transcribe" "2.12.3" "sha256-RdPWi2yNUdoDh3vrQGJx7BoF8tfYO2h9e0juwuNZTPY=";
+  types-aiobotocore-transcribe =
+    buildTypesAiobotocorePackage "transcribe" "2.13.0"
+      "sha256-IFlZRCvhK1vZSB4uHwPa1CP678E8UboL4geqHHivrg4=";
 
-  types-aiobotocore-transfer = buildTypesAiobotocorePackage "transfer" "2.12.3" "sha256-svX7Mr99aXUcYxtuFDAuEYvBF16IJqWbRNjubgxtRww=";
+  types-aiobotocore-transfer =
+    buildTypesAiobotocorePackage "transfer" "2.13.0"
+      "sha256-IouagvvqSdfFQ5ZryCukEBXSryTHxT34z4aQu4vG/E4=";
 
-  types-aiobotocore-translate = buildTypesAiobotocorePackage "translate" "2.12.3" "sha256-AY9NzJprshQe5UPAERG+DquylhKLtec05KMjM+CfJx4=";
+  types-aiobotocore-translate =
+    buildTypesAiobotocorePackage "translate" "2.13.0"
+      "sha256-Th2TUSe1gS/hvUEP8UOx3Yxyse7JEtccznZB4TSDlxQ=";
 
-  types-aiobotocore-verifiedpermissions = buildTypesAiobotocorePackage "verifiedpermissions" "2.12.3" "sha256-bH15twDf36YZuWTGhIdl2XsV9CYxrTRstI8+9otJA0A=";
+  types-aiobotocore-verifiedpermissions =
+    buildTypesAiobotocorePackage "verifiedpermissions" "2.13.0"
+      "sha256-rgjP4mUyhAa8hqnsR+EkNHY4U58Vd90xOcj/WZT3Q1E=";
 
-  types-aiobotocore-voice-id = buildTypesAiobotocorePackage "voice-id" "2.12.3" "sha256-BA/JY5cusubF2NYIFOotM14O6YHEmcP9PX59ksnj8e0=";
+  types-aiobotocore-voice-id =
+    buildTypesAiobotocorePackage "voice-id" "2.13.0"
+      "sha256-4ECIbOcUc7DlARzgd+mE0bFr8QDVrpW2ZmMWiFDmIu0=";
 
-  types-aiobotocore-vpc-lattice = buildTypesAiobotocorePackage "vpc-lattice" "2.12.3" "sha256-YYH5fIP+7yWLwm/UlAfdQWACsXXuyqGPNVWx1ZTsKq8=";
+  types-aiobotocore-vpc-lattice =
+    buildTypesAiobotocorePackage "vpc-lattice" "2.13.0"
+      "sha256-H4kG7rpxijqag14yZmNYmSxdSkRcAQw3tD/EVglkMJc=";
 
-  types-aiobotocore-waf = buildTypesAiobotocorePackage "waf" "2.12.3" "sha256-3vNi+7zjFmOsphhkiCe3sL3xGc6vJn+QxXfnJiGzeRE=";
+  types-aiobotocore-waf =
+    buildTypesAiobotocorePackage "waf" "2.13.0"
+      "sha256-1W4gNPVBvTCSZiC12iymw2LBRwr7i2MlimBStcjinRY=";
 
-  types-aiobotocore-waf-regional = buildTypesAiobotocorePackage "waf-regional" "2.12.3" "sha256-v/NoOoMS6KwZotYZsCIqwQ3EkUusaK5YuCnQz3eBhz8=";
+  types-aiobotocore-waf-regional =
+    buildTypesAiobotocorePackage "waf-regional" "2.13.0"
+      "sha256-xRQlOmoSW0w1L/jvS5aUkh3+mwCFMDem4MR8GmXTLDk=";
 
-  types-aiobotocore-wafv2 = buildTypesAiobotocorePackage "wafv2" "2.12.3" "sha256-DI5GBYssyNe5yDUD9EF4+waE1d/SD6iDyNK93Hhbl38=";
+  types-aiobotocore-wafv2 =
+    buildTypesAiobotocorePackage "wafv2" "2.13.0"
+      "sha256-AE1njAVbSJZf2Ce5ra6ARUnqOb/FKQpA8mN2TpFiwJ4=";
 
-  types-aiobotocore-wellarchitected = buildTypesAiobotocorePackage "wellarchitected" "2.12.3" "sha256-g+EwfgHlhvFWHlQsjZriiPHFF+VzLlMAo9LtX+AImlc=";
+  types-aiobotocore-wellarchitected =
+    buildTypesAiobotocorePackage "wellarchitected" "2.13.0"
+      "sha256-gwk2sUPHH7+k4NcHXMmnSV2lDVZbgZcTJZY8QScoQhY=";
 
-  types-aiobotocore-wisdom = buildTypesAiobotocorePackage "wisdom" "2.12.3" "sha256-EHqZb51vIHt4ox9Zd9G/Hl6KGWd7vIipjYn+ru3zwTw=";
+  types-aiobotocore-wisdom =
+    buildTypesAiobotocorePackage "wisdom" "2.13.0"
+      "sha256-kLp8W+KROrwxNC4hgD41EVtjQuw+CPjgbbz2vFec8Us=";
 
-  types-aiobotocore-workdocs = buildTypesAiobotocorePackage "workdocs" "2.12.3" "sha256-/lVbhKOMtyTSZEEgzKH2DySZM1+Jv3LM4TJAauTWyLc=";
+  types-aiobotocore-workdocs =
+    buildTypesAiobotocorePackage "workdocs" "2.13.0"
+      "sha256-kcFiysNx0GmHJdhgiuAcNWX+WM7p6410oxv11d6nAi8=";
 
-  types-aiobotocore-worklink = buildTypesAiobotocorePackage "worklink" "2.12.3" "sha256-agu/CSxY1gjcVTU42I2DR9Rxrk0c9GANXJe16Nx4U1I=";
+  types-aiobotocore-worklink =
+    buildTypesAiobotocorePackage "worklink" "2.13.0"
+      "sha256-du7dFEEWnVCZKIOK63SxyakQRXGqqBWUhRPQ7hcsvPo=";
 
-  types-aiobotocore-workmail = buildTypesAiobotocorePackage "workmail" "2.12.3" "sha256-XYf1bnCmYZI51uvJY9IG+imcUyqNO1AUc3gWF/jMhkA=";
+  types-aiobotocore-workmail =
+    buildTypesAiobotocorePackage "workmail" "2.13.0"
+      "sha256-OtL2BuB9ORvHBjbkgTRcnwyt8g5hml/eIR3JZh5XAE0=";
 
-  types-aiobotocore-workmailmessageflow = buildTypesAiobotocorePackage "workmailmessageflow" "2.12.3" "sha256-qMBxt5KkYqfDqWAFJVdch2edQCIl+lP5lyjAGkMriN8=";
+  types-aiobotocore-workmailmessageflow =
+    buildTypesAiobotocorePackage "workmailmessageflow" "2.13.0"
+      "sha256-qCxrMdw7XIUfBnpkUP6CuV3qzaJIDGNEHynh38VxH/c=";
 
-  types-aiobotocore-workspaces = buildTypesAiobotocorePackage "workspaces" "2.12.3" "sha256-KLg4Q2VvinCIBhqD33CnpXqSjaex8JlN0vh1BIq1bpE=";
+  types-aiobotocore-workspaces =
+    buildTypesAiobotocorePackage "workspaces" "2.13.0"
+      "sha256-hP+dRmyRoNOyUXLOtZk92glo80ZJ5RL98++8BWv4dPk=";
 
-  types-aiobotocore-workspaces-web = buildTypesAiobotocorePackage "workspaces-web" "2.12.3" "sha256-y+iQviR02Kuy0czNmKJOefkI9AVBgGGXGm8DQPxVoXM=";
+  types-aiobotocore-workspaces-web =
+    buildTypesAiobotocorePackage "workspaces-web" "2.13.0"
+      "sha256-no1EEOjNvuRNXlWnOxIQ7ULXyfPzIEAFLfaIDRt4/gg=";
 
-  types-aiobotocore-xray = buildTypesAiobotocorePackage "xray" "2.12.3" "sha256-l89VAkb3pdSU559nWIaipZOYsRG1DGz1wEDKOyehe0Q=";
+  types-aiobotocore-xray =
+    buildTypesAiobotocorePackage "xray" "2.13.0"
+      "sha256-Uq7grT2EwFiVvBQNlSFIn00A/gN2Co3DU4fYsW0Bc6U=";
 }
diff --git a/pkgs/development/python-modules/types-aiobotocore/default.nix b/pkgs/development/python-modules/types-aiobotocore/default.nix
index 0c1a13950b7e3..45f86523ac3a6 100644
--- a/pkgs/development/python-modules/types-aiobotocore/default.nix
+++ b/pkgs/development/python-modules/types-aiobotocore/default.nix
@@ -1,16 +1,15 @@
 {
   lib,
+  aiobotocore,
+  botocore-stubs,
+  botocore,
   buildPythonPackage,
   fetchPypi,
   setuptools,
-  botocore-stubs,
-  typing-extensions,
   types-aiobotocore-accessanalyzer,
   types-aiobotocore-account,
-  types-aiobotocore-acm,
   types-aiobotocore-acm-pca,
-  aiobotocore,
-  botocore,
+  types-aiobotocore-acm,
   types-aiobotocore-alexaforbusiness,
   types-aiobotocore-amp,
   types-aiobotocore-amplify,
@@ -34,22 +33,22 @@
   types-aiobotocore-arc-zonal-shift,
   types-aiobotocore-athena,
   types-aiobotocore-auditmanager,
-  types-aiobotocore-autoscaling,
   types-aiobotocore-autoscaling-plans,
-  types-aiobotocore-backup,
+  types-aiobotocore-autoscaling,
   types-aiobotocore-backup-gateway,
+  types-aiobotocore-backup,
   types-aiobotocore-backupstorage,
   types-aiobotocore-batch,
   types-aiobotocore-billingconductor,
   types-aiobotocore-braket,
   types-aiobotocore-budgets,
   types-aiobotocore-ce,
-  types-aiobotocore-chime,
   types-aiobotocore-chime-sdk-identity,
   types-aiobotocore-chime-sdk-media-pipelines,
   types-aiobotocore-chime-sdk-meetings,
   types-aiobotocore-chime-sdk-messaging,
   types-aiobotocore-chime-sdk-voice,
+  types-aiobotocore-chime,
   types-aiobotocore-cleanrooms,
   types-aiobotocore-cloud9,
   types-aiobotocore-cloudcontrol,
@@ -60,8 +59,8 @@
   types-aiobotocore-cloudhsmv2,
   types-aiobotocore-cloudsearch,
   types-aiobotocore-cloudsearchdomain,
-  types-aiobotocore-cloudtrail,
   types-aiobotocore-cloudtrail-data,
+  types-aiobotocore-cloudtrail,
   types-aiobotocore-cloudwatch,
   types-aiobotocore-codeartifact,
   types-aiobotocore-codebuild,
@@ -72,9 +71,9 @@
   types-aiobotocore-codeguru-security,
   types-aiobotocore-codeguruprofiler,
   types-aiobotocore-codepipeline,
-  types-aiobotocore-codestar,
   types-aiobotocore-codestar-connections,
   types-aiobotocore-codestar-notifications,
+  types-aiobotocore-codestar,
   types-aiobotocore-cognito-identity,
   types-aiobotocore-cognito-idp,
   types-aiobotocore-cognito-sync,
@@ -82,8 +81,8 @@
   types-aiobotocore-comprehendmedical,
   types-aiobotocore-compute-optimizer,
   types-aiobotocore-config,
-  types-aiobotocore-connect,
   types-aiobotocore-connect-contact-lens,
+  types-aiobotocore-connect,
   types-aiobotocore-connectcampaigns,
   types-aiobotocore-connectcases,
   types-aiobotocore-connectparticipant,
@@ -102,17 +101,17 @@
   types-aiobotocore-discovery,
   types-aiobotocore-dlm,
   types-aiobotocore-dms,
-  types-aiobotocore-docdb,
   types-aiobotocore-docdb-elastic,
+  types-aiobotocore-docdb,
   types-aiobotocore-drs,
   types-aiobotocore-ds,
   types-aiobotocore-dynamodb,
   types-aiobotocore-dynamodbstreams,
   types-aiobotocore-ebs,
-  types-aiobotocore-ec2,
   types-aiobotocore-ec2-instance-connect,
-  types-aiobotocore-ecr,
+  types-aiobotocore-ec2,
   types-aiobotocore-ecr-public,
+  types-aiobotocore-ecr,
   types-aiobotocore-ecs,
   types-aiobotocore-efs,
   types-aiobotocore-eks,
@@ -122,15 +121,15 @@
   types-aiobotocore-elastictranscoder,
   types-aiobotocore-elb,
   types-aiobotocore-elbv2,
-  types-aiobotocore-emr,
   types-aiobotocore-emr-containers,
   types-aiobotocore-emr-serverless,
+  types-aiobotocore-emr,
   types-aiobotocore-entityresolution,
   types-aiobotocore-es,
   types-aiobotocore-events,
   types-aiobotocore-evidently,
-  types-aiobotocore-finspace,
   types-aiobotocore-finspace-data,
+  types-aiobotocore-finspace,
   types-aiobotocore-firehose,
   types-aiobotocore-fis,
   types-aiobotocore-fms,
@@ -158,16 +157,16 @@
   types-aiobotocore-inspector,
   types-aiobotocore-inspector2,
   types-aiobotocore-internetmonitor,
-  types-aiobotocore-iot,
   types-aiobotocore-iot-data,
   types-aiobotocore-iot-jobs-data,
   types-aiobotocore-iot-roborunner,
+  types-aiobotocore-iot,
   types-aiobotocore-iot1click-devices,
   types-aiobotocore-iot1click-projects,
   types-aiobotocore-iotanalytics,
   types-aiobotocore-iotdeviceadvisor,
-  types-aiobotocore-iotevents,
   types-aiobotocore-iotevents-data,
+  types-aiobotocore-iotevents,
   types-aiobotocore-iotfleethub,
   types-aiobotocore-iotfleetwise,
   types-aiobotocore-iotsecuretunneling,
@@ -175,19 +174,19 @@
   types-aiobotocore-iotthingsgraph,
   types-aiobotocore-iottwinmaker,
   types-aiobotocore-iotwireless,
-  types-aiobotocore-ivs,
   types-aiobotocore-ivs-realtime,
+  types-aiobotocore-ivs,
   types-aiobotocore-ivschat,
   types-aiobotocore-kafka,
   types-aiobotocore-kafkaconnect,
-  types-aiobotocore-kendra,
   types-aiobotocore-kendra-ranking,
+  types-aiobotocore-kendra,
   types-aiobotocore-keyspaces,
-  types-aiobotocore-kinesis,
   types-aiobotocore-kinesis-video-archived-media,
   types-aiobotocore-kinesis-video-media,
   types-aiobotocore-kinesis-video-signaling,
   types-aiobotocore-kinesis-video-webrtc-storage,
+  types-aiobotocore-kinesis,
   types-aiobotocore-kinesisanalytics,
   types-aiobotocore-kinesisanalyticsv2,
   types-aiobotocore-kinesisvideo,
@@ -198,9 +197,9 @@
   types-aiobotocore-lex-runtime,
   types-aiobotocore-lexv2-models,
   types-aiobotocore-lexv2-runtime,
-  types-aiobotocore-license-manager,
   types-aiobotocore-license-manager-linux-subscriptions,
   types-aiobotocore-license-manager-user-subscriptions,
+  types-aiobotocore-license-manager,
   types-aiobotocore-lightsail,
   types-aiobotocore-location,
   types-aiobotocore-logs,
@@ -211,19 +210,19 @@
   types-aiobotocore-machinelearning,
   types-aiobotocore-macie,
   types-aiobotocore-macie2,
-  types-aiobotocore-managedblockchain,
   types-aiobotocore-managedblockchain-query,
+  types-aiobotocore-managedblockchain,
   types-aiobotocore-marketplace-catalog,
   types-aiobotocore-marketplace-entitlement,
   types-aiobotocore-marketplacecommerceanalytics,
   types-aiobotocore-mediaconnect,
   types-aiobotocore-mediaconvert,
   types-aiobotocore-medialive,
-  types-aiobotocore-mediapackage,
   types-aiobotocore-mediapackage-vod,
+  types-aiobotocore-mediapackage,
   types-aiobotocore-mediapackagev2,
-  types-aiobotocore-mediastore,
   types-aiobotocore-mediastore-data,
+  types-aiobotocore-mediastore,
   types-aiobotocore-mediatailor,
   types-aiobotocore-medical-imaging,
   types-aiobotocore-memorydb,
@@ -252,31 +251,31 @@
   types-aiobotocore-osis,
   types-aiobotocore-outposts,
   types-aiobotocore-panorama,
-  types-aiobotocore-payment-cryptography,
   types-aiobotocore-payment-cryptography-data,
-  types-aiobotocore-personalize,
+  types-aiobotocore-payment-cryptography,
   types-aiobotocore-personalize-events,
   types-aiobotocore-personalize-runtime,
+  types-aiobotocore-personalize,
   types-aiobotocore-pi,
-  types-aiobotocore-pinpoint,
   types-aiobotocore-pinpoint-email,
-  types-aiobotocore-pinpoint-sms-voice,
   types-aiobotocore-pinpoint-sms-voice-v2,
+  types-aiobotocore-pinpoint-sms-voice,
+  types-aiobotocore-pinpoint,
   types-aiobotocore-pipes,
   types-aiobotocore-polly,
   types-aiobotocore-pricing,
   types-aiobotocore-privatenetworks,
   types-aiobotocore-proton,
-  types-aiobotocore-qldb,
   types-aiobotocore-qldb-session,
+  types-aiobotocore-qldb,
   types-aiobotocore-quicksight,
   types-aiobotocore-ram,
   types-aiobotocore-rbin,
-  types-aiobotocore-rds,
   types-aiobotocore-rds-data,
-  types-aiobotocore-redshift,
+  types-aiobotocore-rds,
   types-aiobotocore-redshift-data,
   types-aiobotocore-redshift-serverless,
+  types-aiobotocore-redshift,
   types-aiobotocore-rekognition,
   types-aiobotocore-resiliencehub,
   types-aiobotocore-resource-explorer-2,
@@ -284,23 +283,23 @@
   types-aiobotocore-resourcegroupstaggingapi,
   types-aiobotocore-robomaker,
   types-aiobotocore-rolesanywhere,
-  types-aiobotocore-route53,
   types-aiobotocore-route53-recovery-cluster,
   types-aiobotocore-route53-recovery-control-config,
   types-aiobotocore-route53-recovery-readiness,
+  types-aiobotocore-route53,
   types-aiobotocore-route53domains,
   types-aiobotocore-route53resolver,
   types-aiobotocore-rum,
   types-aiobotocore-s3,
   types-aiobotocore-s3control,
   types-aiobotocore-s3outposts,
-  types-aiobotocore-sagemaker,
   types-aiobotocore-sagemaker-a2i-runtime,
   types-aiobotocore-sagemaker-edge,
   types-aiobotocore-sagemaker-featurestore-runtime,
   types-aiobotocore-sagemaker-geospatial,
   types-aiobotocore-sagemaker-metrics,
   types-aiobotocore-sagemaker-runtime,
+  types-aiobotocore-sagemaker,
   types-aiobotocore-savingsplans,
   types-aiobotocore-scheduler,
   types-aiobotocore-schemas,
@@ -310,32 +309,32 @@
   types-aiobotocore-securitylake,
   types-aiobotocore-serverlessrepo,
   types-aiobotocore-service-quotas,
-  types-aiobotocore-servicecatalog,
   types-aiobotocore-servicecatalog-appregistry,
+  types-aiobotocore-servicecatalog,
   types-aiobotocore-servicediscovery,
   types-aiobotocore-ses,
   types-aiobotocore-sesv2,
   types-aiobotocore-shield,
   types-aiobotocore-signer,
   types-aiobotocore-simspaceweaver,
-  types-aiobotocore-sms,
   types-aiobotocore-sms-voice,
+  types-aiobotocore-sms,
   types-aiobotocore-snow-device-management,
   types-aiobotocore-snowball,
   types-aiobotocore-sns,
   types-aiobotocore-sqs,
-  types-aiobotocore-ssm,
   types-aiobotocore-ssm-contacts,
   types-aiobotocore-ssm-incidents,
   types-aiobotocore-ssm-sap,
-  types-aiobotocore-sso,
+  types-aiobotocore-ssm,
   types-aiobotocore-sso-admin,
   types-aiobotocore-sso-oidc,
+  types-aiobotocore-sso,
   types-aiobotocore-stepfunctions,
   types-aiobotocore-storagegateway,
   types-aiobotocore-sts,
-  types-aiobotocore-support,
   types-aiobotocore-support-app,
+  types-aiobotocore-support,
   types-aiobotocore-swf,
   types-aiobotocore-synthetics,
   types-aiobotocore-textract,
@@ -348,8 +347,8 @@
   types-aiobotocore-verifiedpermissions,
   types-aiobotocore-voice-id,
   types-aiobotocore-vpc-lattice,
-  types-aiobotocore-waf,
   types-aiobotocore-waf-regional,
+  types-aiobotocore-waf,
   types-aiobotocore-wafv2,
   types-aiobotocore-wellarchitected,
   types-aiobotocore-wisdom,
@@ -357,19 +356,21 @@
   types-aiobotocore-worklink,
   types-aiobotocore-workmail,
   types-aiobotocore-workmailmessageflow,
-  types-aiobotocore-workspaces,
   types-aiobotocore-workspaces-web,
+  types-aiobotocore-workspaces,
   types-aiobotocore-xray,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "types-aiobotocore";
-  version = "2.12.3";
+  version = "2.13.0";
   pyproject = true;
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-h1dg3vgjPBYErgj8UKEcckCQuzGZr+VfhAuBS1biJ/M=";
+    pname = "types_aiobotocore";
+    inherit version;
+    hash = "sha256-CDDY60I1eMMIChOCvbSQi7ZsKSo0mlOccNlvjypq3+U=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/types-aiobotocore/update.sh b/pkgs/development/python-modules/types-aiobotocore/update.sh
index 4a5a75123c7c9..2ed7a430402c5 100755
--- a/pkgs/development/python-modules/types-aiobotocore/update.sh
+++ b/pkgs/development/python-modules/types-aiobotocore/update.sh
@@ -1,15 +1,17 @@
 #!/usr/bin/env nix-shell
-#!nix-shell -i bash -p nix-update nixpkgs-fmt
+#!nix-shell -i bash -p nix-update nixfmt curl jq
 
 set -eu -o pipefail
 
 source_file=pkgs/development/python-modules/types-aiobotocore-packages/default.nix
 
-version="2.12.3"
-
 #nix-update python312Packages.types-aiobotocore --commit --build
 
 packages=(
+  types-aiobotocore-accessanalyzer
+  types-aiobotocore-account
+  types-aiobotocore-acm
+  types-aiobotocore-acm-pca
   types-aiobotocore-alexaforbusiness
   types-aiobotocore-amp
   types-aiobotocore-amplify
@@ -138,6 +140,7 @@ packages=(
   types-aiobotocore-frauddetector
   types-aiobotocore-fsx
   types-aiobotocore-gamelift
+  # types-aiobotocore-gamesparks  Obsolete, will be removed soon
   types-aiobotocore-glacier
   types-aiobotocore-globalaccelerator
   types-aiobotocore-glue
@@ -159,7 +162,7 @@ packages=(
   types-aiobotocore-iot
   types-aiobotocore-iot-data
   types-aiobotocore-iot-jobs-data
-  types-aiobotocore-iot-roborunner
+  # types-aiobotocore-iot-roborunner  Obsolete, will be removed soon
   types-aiobotocore-iot1click-devices
   types-aiobotocore-iot1click-projects
   types-aiobotocore-iotanalytics
@@ -207,6 +210,7 @@ packages=(
   types-aiobotocore-lookoutvision
   types-aiobotocore-m2
   types-aiobotocore-machinelearning
+  # types-aiobotocore-macie  Obsolete, will be removed soon
   types-aiobotocore-macie2
   types-aiobotocore-managedblockchain
   types-aiobotocore-managedblockchain-query
@@ -359,21 +363,34 @@ packages=(
   types-aiobotocore-xray
 )
 
+version=$(curl -s https://pypi.org/pypi/types-aiobotocore/json | jq -r '.info.version')
+echo "All types-aiobotocore-* packages will be updated to ${version}"
+
 for package in "${packages[@]}"; do
-  echo "Updating ${package}"
+  echo "Updating ${package} ..."
 
-  url="https://pypi.io/packages/source/t/${package}/${package}-${version}.tar.gz"
+  url="https://pypi.io/packages/source/t/${package}/${package//-/_}-${version}.tar.gz"
   hash=$(nix-prefetch-url --type sha256 $url)
   sri_hash="$(nix hash to-sri --type sha256 $hash)"
+  package_short="${package#types-aiobotocore-}"
 
-  awk -i inplace -v package="$package" -v new_version="$version" -v new_sha256="$sri_hash" '
-    $1 == package {
-      $5 = "\"" new_version "\"";
-      $6 = "\"" new_sha256 "\";";
-    }
-    {print}
-  ' $source_file
+  awk -i inplace -v pkg="$package" -v pkg_short="$package_short" -v ver="$version" -v hash="$sri_hash" '
+  {
+      # If the line contains the package name
+      if ($0 ~ "^\\s*" pkg "\\s*=") {
+          print $0
+          inside_block = 1
+      } else if (inside_block && $0 ~ "buildTypesAiobotocorePackage") {
+          print "    buildTypesAiobotocorePackage \"" "" pkg_short "\" \"" ver "\""
+      } else if (inside_block && $0 ~ "sha256-") {
+          print "      \"" hash "\";"
+          inside_block = 0
+      } else {
+          # Preserve blank lines to honor nixfmt
+          print $0
+      }
+  }' ${source_file}
 
 done
 
-nixpkgs-fmt ${source_file}
+nixfmt ${source_file}
diff --git a/pkgs/development/python-modules/types-appdirs/default.nix b/pkgs/development/python-modules/types-appdirs/default.nix
index ce7bb9cd53df9..ec18f6cbcedb8 100644
--- a/pkgs/development/python-modules/types-appdirs/default.nix
+++ b/pkgs/development/python-modules/types-appdirs/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/types-awscrt/default.nix b/pkgs/development/python-modules/types-awscrt/default.nix
index a9f1eb3d4614c..112c19286a92b 100644
--- a/pkgs/development/python-modules/types-awscrt/default.nix
+++ b/pkgs/development/python-modules/types-awscrt/default.nix
@@ -8,7 +8,7 @@
 
 buildPythonPackage rec {
   pname = "types-awscrt";
-  version = "0.20.9";
+  version = "0.20.12";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -16,7 +16,7 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "types_awscrt";
     inherit version;
-    hash = "sha256-ZImKL0okaPZiM8uMKcX2bekHz4C6HvW7E1mu8vgbtSE=";
+    hash = "sha256-C+q93gIF3B2meepGT9P5i1cO9PD8glsVWpdPtRsh6Nk=";
   };
 
   build-system = [ poetry-core ];
diff --git a/pkgs/development/python-modules/types-beautifulsoup4/default.nix b/pkgs/development/python-modules/types-beautifulsoup4/default.nix
index 687dadc3eb65e..57c1f550b2e49 100644
--- a/pkgs/development/python-modules/types-beautifulsoup4/default.nix
+++ b/pkgs/development/python-modules/types-beautifulsoup4/default.nix
@@ -1,29 +1,29 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, types-html5lib
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  types-html5lib,
 }:
 
 buildPythonPackage rec {
   pname = "types-beautifulsoup4";
-  version = "4.12.0.20240229";
-  format = "setuptools";
+  version = "4.12.0.20240511";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-435M+hGwOwF3VzLlbSwBDLJO4Qd4Yne65rwPo+MFtoY=";
+    hash = "sha256-AE9glv3YOxnNv2yxDk6uV7ECBezMNl0Kadd9qDYBLig=";
   };
 
-  propagatedBuildInputs = [
-    types-html5lib
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ types-html5lib ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "bs4-stubs"
-  ];
+  pythonImportsCheck = [ "bs4-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for beautifulsoup4";
diff --git a/pkgs/development/python-modules/types-click/default.nix b/pkgs/development/python-modules/types-click/default.nix
index 78c99fe42808a..29f2da7b2303e 100644
--- a/pkgs/development/python-modules/types-click/default.nix
+++ b/pkgs/development/python-modules/types-click/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 let
diff --git a/pkgs/development/python-modules/types-colorama/default.nix b/pkgs/development/python-modules/types-colorama/default.nix
index a3e5cfba04bdd..c14b2e4ded7a0 100644
--- a/pkgs/development/python-modules/types-colorama/default.nix
+++ b/pkgs/development/python-modules/types-colorama/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-oo5/mNF9KxT7lWXTI4jkGfQQj1V6fZOaZjGZabK5nHo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Module has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/types-dateutil/default.nix b/pkgs/development/python-modules/types-dateutil/default.nix
index c02934519ca8b..46f98100ac75a 100644
--- a/pkgs/development/python-modules/types-dateutil/default.nix
+++ b/pkgs/development/python-modules/types-dateutil/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -15,13 +16,9 @@ buildPythonPackage rec {
     hash = "sha256-XS8uJAuGkF5AlE3Xh9ttqSY/Deq+8Qdt2u15c1HsAgI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "dateutil-stubs"
-  ];
+  pythonImportsCheck = [ "dateutil-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for python-dateutil";
diff --git a/pkgs/development/python-modules/types-decorator/default.nix b/pkgs/development/python-modules/types-decorator/default.nix
index 3cc020d8a9f2a..88874e3be5656 100644
--- a/pkgs/development/python-modules/types-decorator/default.nix
+++ b/pkgs/development/python-modules/types-decorator/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -14,16 +15,12 @@ buildPythonPackage rec {
     hash = "sha256-UuMWsDeDiGqKKr3CKPcHFoC6ZYlFRc0ghevjz4hoSg4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Modules doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "decorator-stubs"
-  ];
+  pythonImportsCheck = [ "decorator-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for decorator";
diff --git a/pkgs/development/python-modules/types-deprecated/default.nix b/pkgs/development/python-modules/types-deprecated/default.nix
index 374ed108b7a27..13b371b4e3fef 100644
--- a/pkgs/development/python-modules/types-deprecated/default.nix
+++ b/pkgs/development/python-modules/types-deprecated/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -15,16 +16,12 @@ buildPythonPackage rec {
     hash = "sha256-BoDomYmoFCcH3oED8V0YJEWlM8EEf9m36MVFkQHpuQo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Modules has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "deprecated-stubs"
-  ];
+  pythonImportsCheck = [ "deprecated-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for Deprecated";
diff --git a/pkgs/development/python-modules/types-docopt/default.nix b/pkgs/development/python-modules/types-docopt/default.nix
index 7c1128efb840c..284fa0ea0fcce 100644
--- a/pkgs/development/python-modules/types-docopt/default.nix
+++ b/pkgs/development/python-modules/types-docopt/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "docopt-stubs"
-  ];
+  pythonImportsCheck = [ "docopt-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for docopt";
diff --git a/pkgs/development/python-modules/types-enum34/default.nix b/pkgs/development/python-modules/types-enum34/default.nix
index d82c84c5c5da0..ace209f28c86a 100644
--- a/pkgs/development/python-modules/types-enum34/default.nix
+++ b/pkgs/development/python-modules/types-enum34/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -13,9 +14,7 @@ buildPythonPackage rec {
     sha256 = "0421lr89vv3fpg77kkj5nmzd7z3nmhw4vh8ibsjp6vfh86b7d73g";
   };
 
-  pythonImportsCheck = [
-    "enum-python2-stubs"
-  ];
+  pythonImportsCheck = [ "enum-python2-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for enum34";
diff --git a/pkgs/development/python-modules/types-freezegun/default.nix b/pkgs/development/python-modules/types-freezegun/default.nix
index ebca11ad47761..26456f53f6d74 100644
--- a/pkgs/development/python-modules/types-freezegun/default.nix
+++ b/pkgs/development/python-modules/types-freezegun/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
   # Module doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "freezegun-stubs"
-  ];
+  pythonImportsCheck = [ "freezegun-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for freezegun";
diff --git a/pkgs/development/python-modules/types-futures/default.nix b/pkgs/development/python-modules/types-futures/default.nix
index 9eb4b956d3ebb..7478d77dc8a79 100644
--- a/pkgs/development/python-modules/types-futures/default.nix
+++ b/pkgs/development/python-modules/types-futures/default.nix
@@ -1,4 +1,8 @@
-{ buildPythonPackage, fetchPypi, lib }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+}:
 
 buildPythonPackage rec {
   pname = "types-futures";
diff --git a/pkgs/development/python-modules/types-html5lib/default.nix b/pkgs/development/python-modules/types-html5lib/default.nix
index 996f8b4e5c3d8..563227bc85b86 100644
--- a/pkgs/development/python-modules/types-html5lib/default.nix
+++ b/pkgs/development/python-modules/types-html5lib/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -14,16 +15,12 @@ buildPythonPackage rec {
     hash = "sha256-InNrcpnmBexLpTnUhpHpBf0MYcPqYQrMWZIiMtyEzt4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "html5lib-stubs"
-  ];
+  pythonImportsCheck = [ "html5lib-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for html5lib";
diff --git a/pkgs/development/python-modules/types-ipaddress/default.nix b/pkgs/development/python-modules/types-ipaddress/default.nix
index 3bdffafb34e3e..216195c6e1ce7 100644
--- a/pkgs/development/python-modules/types-ipaddress/default.nix
+++ b/pkgs/development/python-modules/types-ipaddress/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -13,9 +14,7 @@ buildPythonPackage rec {
     sha256 = "0h9q9pjvw1ap5k70ygp750d096jkzymxlhx87yh0pr9mb6zg6gd0";
   };
 
-  pythonImportsCheck = [
-    "ipaddress-python2-stubs"
-  ];
+  pythonImportsCheck = [ "ipaddress-python2-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for ipaddress";
diff --git a/pkgs/development/python-modules/types-lxml/default.nix b/pkgs/development/python-modules/types-lxml/default.nix
index 21a8dc8821613..03a90f292ee76 100644
--- a/pkgs/development/python-modules/types-lxml/default.nix
+++ b/pkgs/development/python-modules/types-lxml/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, lxml
-, pyright
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
-, typeguard
-, types-beautifulsoup4
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxml,
+  pyright,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  typeguard,
+  types-beautifulsoup4,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -43,9 +44,7 @@ buildPythonPackage rec {
     typeguard
   ];
 
-  pythonImportsCheck = [
-    "lxml-stubs"
-  ];
+  pythonImportsCheck = [ "lxml-stubs" ];
 
   disabledTests = [
     # AttributeError: 'bytes' object has no attribute 'find_class'
diff --git a/pkgs/development/python-modules/types-markdown/default.nix b/pkgs/development/python-modules/types-markdown/default.nix
index 3ea38cde3d83e..35b93b468eaeb 100644
--- a/pkgs/development/python-modules/types-markdown/default.nix
+++ b/pkgs/development/python-modules/types-markdown/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -15,13 +16,9 @@ buildPythonPackage rec {
     hash = "sha256-3p+4SGC1W2R7FwyldolfzKYbk0puzcZcMZMsZ5W0QLg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "markdown-stubs"
-  ];
+  pythonImportsCheck = [ "markdown-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for Markdown";
diff --git a/pkgs/development/python-modules/types-mock/default.nix b/pkgs/development/python-modules/types-mock/default.nix
index 11d81aa0e8330..dfad6b26d0e47 100644
--- a/pkgs/development/python-modules/types-mock/default.nix
+++ b/pkgs/development/python-modules/types-mock/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-UoGmRdcugn1wBD48wUT+M7HAA9sIT3idwgOqkOgSpaQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Module has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/types-pillow/default.nix b/pkgs/development/python-modules/types-pillow/default.nix
index db173d39e74b5..c47eaf243b4b7 100644
--- a/pkgs/development/python-modules/types-pillow/default.nix
+++ b/pkgs/development/python-modules/types-pillow/default.nix
@@ -1,25 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
   pname = "types-pillow";
-  version = "10.2.0.20240415";
+  version = "10.2.0.20240520";
   format = "setuptools";
 
   src = fetchPypi {
     inherit version;
     pname = "types-Pillow";
-    hash = "sha256-3WBYAnY5vNxmuniyKMwl/a5CUkwhUMeMgE2kJ+fnbnA=";
+    hash = "sha256-EwuXkZVGX6HhZ22OgcnHwwMZ6OlbEvrpRejw1SUhMQc=";
   };
 
   # Modules doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "PIL-stubs"
-  ];
+  pythonImportsCheck = [ "PIL-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for Pillow";
diff --git a/pkgs/development/python-modules/types-protobuf/default.nix b/pkgs/development/python-modules/types-protobuf/default.nix
index 6482d4e30ba15..e7db25836e8f6 100644
--- a/pkgs/development/python-modules/types-protobuf/default.nix
+++ b/pkgs/development/python-modules/types-protobuf/default.nix
@@ -1,29 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, types-futures
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  types-futures,
 }:
 
 buildPythonPackage rec {
   pname = "types-protobuf";
-  version = "4.25.0.20240417";
+  version = "5.26.0.20240422";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-w07/F7mzoK22gwYi8PMCSE5MCJ9TOkbj8UdWgxNUQ1I=";
+    hash = "sha256-5gdBeBCfl+/p8LIKA1umHXw7A+hn60fSVNKyq2qAXjY=";
   };
 
-  propagatedBuildInputs = [
-    types-futures
-  ];
+  propagatedBuildInputs = [ types-futures ];
 
   # Module doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "google-stubs"
-  ];
+  pythonImportsCheck = [ "google-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for protobuf";
diff --git a/pkgs/development/python-modules/types-psutil/default.nix b/pkgs/development/python-modules/types-psutil/default.nix
index dce0292b0ad96..766f6beebefe8 100644
--- a/pkgs/development/python-modules/types-psutil/default.nix
+++ b/pkgs/development/python-modules/types-psutil/default.nix
@@ -1,24 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
   pname = "types-psutil";
-  version = "5.9.5.20240423";
+  version = "5.9.5.20240516";
   format = "setuptools";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-G5ds+GMIMWxawizsaIAVsEJzyE+OaRw9+wwSMY8ypvM=";
+    hash = "sha256-uylvWfxWRYiR0P6xmUcX5UihvPiZNqKHffh5K4IrRpY=";
   };
 
   # Module doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "psutil-stubs"
-  ];
+  pythonImportsCheck = [ "psutil-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for psutil";
diff --git a/pkgs/development/python-modules/types-psycopg2/default.nix b/pkgs/development/python-modules/types-psycopg2/default.nix
index e9901ef6678d5..8a3f08f8e79a3 100644
--- a/pkgs/development/python-modules/types-psycopg2/default.nix
+++ b/pkgs/development/python-modules/types-psycopg2/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -14,13 +15,9 @@ buildPythonPackage rec {
     hash = "sha256-Bdslb0pFn7IaQmuOf8oGVsNTkQX/Agjq9r2vQGo4cIc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "psycopg2-stubs"
-  ];
+  pythonImportsCheck = [ "psycopg2-stubs" ];
 
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/types-pyopenssl/default.nix b/pkgs/development/python-modules/types-pyopenssl/default.nix
index a00f14c89395e..60457be769c00 100644
--- a/pkgs/development/python-modules/types-pyopenssl/default.nix
+++ b/pkgs/development/python-modules/types-pyopenssl/default.nix
@@ -1,30 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cryptography
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cryptography,
 }:
 
 buildPythonPackage rec {
   pname = "types-pyopenssl";
-  version = "24.0.0.20240417";
+  version = "24.1.0.20240425";
   format = "setuptools";
 
   src = fetchPypi {
     pname = "types-pyOpenSSL";
     inherit version;
-    hash = "sha256-OOdfuCjScXvhc3cLuujCKBH97GjivD9YM5VBE+uEI30=";
+    hash = "sha256-Cn6CYmwZg9yNxZKSvyBlSlHDw4gby7mzN8HabjLwIE4=";
   };
 
-  propagatedBuildInputs = [
-    cryptography
-  ];
+  propagatedBuildInputs = [ cryptography ];
 
   # Module doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "OpenSSL-stubs"
-  ];
+  pythonImportsCheck = [ "OpenSSL-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for pyopenssl";
diff --git a/pkgs/development/python-modules/types-python-dateutil/default.nix b/pkgs/development/python-modules/types-python-dateutil/default.nix
index 0bee1e8ddca2c..a84b7e22b8109 100644
--- a/pkgs/development/python-modules/types-python-dateutil/default.nix
+++ b/pkgs/development/python-modules/types-python-dateutil/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -14,16 +15,12 @@ buildPythonPackage rec {
     hash = "sha256-XS8uJAuGkF5AlE3Xh9ttqSY/Deq+8Qdt2u15c1HsAgI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Modules doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "dateutil-stubs"
-  ];
+  pythonImportsCheck = [ "dateutil-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for python-dateutil";
diff --git a/pkgs/development/python-modules/types-pytz/default.nix b/pkgs/development/python-modules/types-pytz/default.nix
index 8f86e7be43d87..55aefbd5fd390 100644
--- a/pkgs/development/python-modules/types-pytz/default.nix
+++ b/pkgs/development/python-modules/types-pytz/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -14,16 +15,12 @@ buildPythonPackage rec {
     hash = "sha256-aBDIofaPIf3w9PN0pDJIfHdkWgrAsx3kv0aQzyGtOYE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Modules doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "pytz-stubs"
-  ];
+  pythonImportsCheck = [ "pytz-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for pytz";
diff --git a/pkgs/development/python-modules/types-pyyaml/default.nix b/pkgs/development/python-modules/types-pyyaml/default.nix
index 35f02941b6d5d..99006754e304d 100644
--- a/pkgs/development/python-modules/types-pyyaml/default.nix
+++ b/pkgs/development/python-modules/types-pyyaml/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
   # Module doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "yaml-stubs"
-  ];
+  pythonImportsCheck = [ "yaml-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for PyYAML";
diff --git a/pkgs/development/python-modules/types-requests/default.nix b/pkgs/development/python-modules/types-requests/default.nix
index 6cabdc3b89a5e..0d0cc3e6ecb39 100644
--- a/pkgs/development/python-modules/types-requests/default.nix
+++ b/pkgs/development/python-modules/types-requests/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "types-requests";
-  version = "2.31.0.20240406";
+  version = "2.32.0.20240602";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-RCjfM8VQOUXHSz9C6CsYHobse3JGIEGaKWbi3mBM4aE=";
+    hash = "sha256-P5jXu9DdlOvRD/Q6f74gw7hSisrObY76/vC2oYR5PwY=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/types-retry/default.nix b/pkgs/development/python-modules/types-retry/default.nix
index ecef01714f9d3..ba1bb5b124553 100644
--- a/pkgs/development/python-modules/types-retry/default.nix
+++ b/pkgs/development/python-modules/types-retry/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
   # Modules doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "retry-stubs"
-  ];
+  pythonImportsCheck = [ "retry-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for retry";
diff --git a/pkgs/development/python-modules/types-s3transfer/default.nix b/pkgs/development/python-modules/types-s3transfer/default.nix
index 30533010fbe04..1db9bc7323bd6 100644
--- a/pkgs/development/python-modules/types-s3transfer/default.nix
+++ b/pkgs/development/python-modules/types-s3transfer/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -15,16 +16,12 @@ buildPythonPackage rec {
     hash = "sha256-AhVMzkZSgoetdq0aAVOEDgSSI5oIh+iDNGbsz4S5jaA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "s3transfer-stubs"
-  ];
+  pythonImportsCheck = [ "s3transfer-stubs" ];
 
   meta = with lib; {
     description = "Type annotations and code completion for s3transfer";
diff --git a/pkgs/development/python-modules/types-setuptools/default.nix b/pkgs/development/python-modules/types-setuptools/default.nix
index 557a065c68e9d..0c5bcbbb5c482 100644
--- a/pkgs/development/python-modules/types-setuptools/default.nix
+++ b/pkgs/development/python-modules/types-setuptools/default.nix
@@ -1,29 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "types-setuptools";
-  version = "69.5.0.20240415";
+  version = "70.0.0.20240524";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-6mSvCpamdPjEC6NMCcJU88cLw/IYxr/6HQkSvZFYSi8=";
+    hash = "sha256-4x/ue50V71OYBSZXmsYImzrlGgBaKBrPlxeOkKxxr/Y=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Module doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "setuptools-stubs"
-  ];
+  pythonImportsCheck = [ "setuptools-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for setuptools";
diff --git a/pkgs/development/python-modules/types-tabulate/default.nix b/pkgs/development/python-modules/types-tabulate/default.nix
index fe5787f805f26..570581e05ac04 100644
--- a/pkgs/development/python-modules/types-tabulate/default.nix
+++ b/pkgs/development/python-modules/types-tabulate/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -14,16 +15,12 @@ buildPythonPackage rec {
     hash = "sha256-ybbbEN1/z1W9FxLdNTf4bdznKgj9Yrsa9DOMcJbOlH4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # Module doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "tabulate-stubs"
-  ];
+  pythonImportsCheck = [ "tabulate-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for tabulate";
diff --git a/pkgs/development/python-modules/types-toml/default.nix b/pkgs/development/python-modules/types-toml/default.nix
index db58fbc181b5c..040177b5e68fd 100644
--- a/pkgs/development/python-modules/types-toml/default.nix
+++ b/pkgs/development/python-modules/types-toml/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/types-tqdm/default.nix b/pkgs/development/python-modules/types-tqdm/default.nix
index 339a83f7b17ca..ff3f5c189a0de 100644
--- a/pkgs/development/python-modules/types-tqdm/default.nix
+++ b/pkgs/development/python-modules/types-tqdm/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-Ftzp71IuqNQOT1uNhN2KEWbu/BPO7np+FYvw8aFCGjE=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   # This package does not have tests.
   doCheck = false;
diff --git a/pkgs/development/python-modules/types-typed-ast/default.nix b/pkgs/development/python-modules/types-typed-ast/default.nix
index 32671d5846416..13713c669519c 100644
--- a/pkgs/development/python-modules/types-typed-ast/default.nix
+++ b/pkgs/development/python-modules/types-typed-ast/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
   # Module doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "typed_ast-stubs"
-  ];
+  pythonImportsCheck = [ "typed_ast-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for typed-ast";
diff --git a/pkgs/development/python-modules/types-ujson/default.nix b/pkgs/development/python-modules/types-ujson/default.nix
index eb46df9c93378..cbd3c4c7c08bb 100644
--- a/pkgs/development/python-modules/types-ujson/default.nix
+++ b/pkgs/development/python-modules/types-ujson/default.nix
@@ -1,23 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "types-ujson";
-  version = "5.9.0.0";
-  format = "setuptools";
+  version = "5.10.0.20240515";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-fnBCRU3HzX8xsJxCDXyvNrk9ML30uNuTeRvQVhcT0Bc=";
+    hash = "sha256-zq5xJ/Da/kr13Q7PmO4T6ddZUe+WO1xam36pLg1x8Nc=";
   };
 
+  build-system = [ setuptools ];
+
+  # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ujson-stubs"
-  ];
+  pythonImportsCheck = [ "ujson-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for ujson";
diff --git a/pkgs/development/python-modules/types-urllib3/default.nix b/pkgs/development/python-modules/types-urllib3/default.nix
index d02174d7727fe..e3c91f48197fd 100644
--- a/pkgs/development/python-modules/types-urllib3/default.nix
+++ b/pkgs/development/python-modules/types-urllib3/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
   # Module doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "urllib3-stubs"
-  ];
+  pythonImportsCheck = [ "urllib3-stubs" ];
 
   meta = with lib; {
     description = "Typing stubs for urllib3";
diff --git a/pkgs/development/python-modules/typesentry/default.nix b/pkgs/development/python-modules/typesentry/default.nix
index f38947c04677b..66c594720ff70 100644
--- a/pkgs/development/python-modules/typesentry/default.nix
+++ b/pkgs/development/python-modules/typesentry/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, colorama
-, pytest
-, pytest-cov
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  colorama,
+  pytest,
+  pytest-cov,
 }:
 
 buildPythonPackage {
@@ -20,7 +21,10 @@ buildPythonPackage {
   };
 
   propagatedBuildInputs = [ colorama ];
-  nativeCheckInputs = [ pytest pytest-cov ];
+  nativeCheckInputs = [
+    pytest
+    pytest-cov
+  ];
   checkPhase = ''
     pytest
   '';
diff --git a/pkgs/development/python-modules/typesystem/default.nix b/pkgs/development/python-modules/typesystem/default.nix
index 96f351ccaf1f6..9d0b250f35bc6 100644
--- a/pkgs/development/python-modules/typesystem/default.nix
+++ b/pkgs/development/python-modules/typesystem/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, jinja2
-, pytestCheckHook
-, pythonOlder
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jinja2,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -26,18 +27,14 @@ buildPythonPackage rec {
     pyyaml
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "typesystem"
-  ];
+  pythonImportsCheck = [ "typesystem" ];
 
   meta = with lib; {
-    description = "A type system library for Python";
+    description = "Type system library for Python";
     homepage = "https://github.com/encode/typesystem";
     license = licenses.bsd3;
-    maintainers =  with maintainers; [ ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/typical/default.nix b/pkgs/development/python-modules/typical/default.nix
index 8201e4ba8104d..357bb8d1094a5 100644
--- a/pkgs/development/python-modules/typical/default.nix
+++ b/pkgs/development/python-modules/typical/default.nix
@@ -12,7 +12,6 @@
   pydantic,
   pytestCheckHook,
   pythonOlder,
-  pythonRelaxDepsHook,
   sqlalchemy,
   ujson,
 }:
@@ -35,7 +34,6 @@ buildPythonPackage rec {
 
   build-system = [ poetry-core ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     fastjsonschema
diff --git a/pkgs/development/python-modules/typing-extensions/default.nix b/pkgs/development/python-modules/typing-extensions/default.nix
index b20fe1a051069..198326fe35c2d 100644
--- a/pkgs/development/python-modules/typing-extensions/default.nix
+++ b/pkgs/development/python-modules/typing-extensions/default.nix
@@ -1,13 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit-core
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit-core,
+  pythonOlder,
+
+  # reverse dependencies
+  mashumaro,
+  pydantic,
 }:
 
 buildPythonPackage rec {
   pname = "typing-extensions";
-  version = "4.11.0";
+  version = "4.12.2";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -15,20 +20,20 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "typing_extensions";
     inherit version;
-    hash = "sha256-g/CFvVylnIApX8KoKrXaxnnL4CufM/fYOvaOJBvqUbA=";
+    hash = "sha256-Gn6tVcflWd1N7ohW46iLQSJav+HOjfV7fBORX+Eh/7g=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   # Tests are not part of PyPI releases. GitHub source can't be used
   # as it ends with an infinite recursion
   doCheck = false;
 
-  pythonImportsCheck = [
-    "typing_extensions"
-  ];
+  pythonImportsCheck = [ "typing_extensions" ];
+
+  passthru.tests = {
+    inherit mashumaro pydantic;
+  };
 
   meta = with lib; {
     description = "Backported and Experimental Type Hints for Python";
diff --git a/pkgs/development/python-modules/typing-inspect/default.nix b/pkgs/development/python-modules/typing-inspect/default.nix
index f88a718c736c3..ce03e47d7614e 100644
--- a/pkgs/development/python-modules/typing-inspect/default.nix
+++ b/pkgs/development/python-modules/typing-inspect/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, typing-extensions
-, mypy-extensions
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  typing-extensions,
+  mypy-extensions,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,18 +23,14 @@ buildPythonPackage rec {
     mypy-extensions
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # https://github.com/ilevkivskyi/typing_inspect/issues/84
     "test_typed_dict_typing_extension"
   ];
 
-  pythonImportsCheck = [
-    "typing_inspect"
-  ];
+  pythonImportsCheck = [ "typing_inspect" ];
 
   meta = with lib; {
     description = "Runtime inspection utilities for Python typing module";
diff --git a/pkgs/development/python-modules/typing-validation/default.nix b/pkgs/development/python-modules/typing-validation/default.nix
index 975119b3be1bd..01f9b43b4ba5e 100644
--- a/pkgs/development/python-modules/typing-validation/default.nix
+++ b/pkgs/development/python-modules/typing-validation/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-, pytestCheckHook
+  pytestCheckHook,
 
-, pythonOlder
+  pythonOlder,
 
-, setuptools
-, setuptools-scm
-, wheel
+  setuptools,
+  setuptools-scm,
+  wheel,
 
-, numpy
+  numpy,
 
-, typing-extensions
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -35,21 +36,17 @@ buildPythonPackage rec {
     wheel
   ];
 
-  dependencies = [
-    typing-extensions
-  ];
+  dependencies = [ typing-extensions ];
 
   nativeCheckInputs = [
     pytestCheckHook
     numpy
   ];
 
-  pythonImportsCheck = [
-    "typing_validation"
-  ];
+  pythonImportsCheck = [ "typing_validation" ];
 
   meta = with lib; {
-    description = "A simple library for runtime type-checking";
+    description = "Simple library for runtime type-checking";
     homepage = "https://github.com/hashberg-io/typing-validation";
     changelog = "https://github.com/hashberg-io/typing-validation/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/typish/default.nix b/pkgs/development/python-modules/typish/default.nix
index c05518c257f0e..8e9677c0d3bce 100644
--- a/pkgs/development/python-modules/typish/default.nix
+++ b/pkgs/development/python-modules/typish/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
     "test_get_origin"
   ];
 
-  pythonImportsCheck = [
-    "typish"
-  ];
+  pythonImportsCheck = [ "typish" ];
 
   meta = with lib; {
     description = "Python module for checking types of objects";
diff --git a/pkgs/development/python-modules/typogrify/default.nix b/pkgs/development/python-modules/typogrify/default.nix
index 81425b22f181e..a2a17791eaa93 100644
--- a/pkgs/development/python-modules/typogrify/default.nix
+++ b/pkgs/development/python-modules/typogrify/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, smartypants
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  smartypants,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     sha256 = "8be4668cda434163ce229d87ca273a11922cb1614cb359970b7dc96eed13cb38";
   };
 
-  propagatedBuildInputs = [
-    smartypants
-  ];
+  propagatedBuildInputs = [ smartypants ];
 
   # Wants to set up Django
   doCheck = false;
diff --git a/pkgs/development/python-modules/tzdata/default.nix b/pkgs/development/python-modules/tzdata/default.nix
index ac25b071a31bb..26e01f033fd95 100644
--- a/pkgs/development/python-modules/tzdata/default.nix
+++ b/pkgs/development/python-modules/tzdata/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, importlib-resources
-, pytest-subtests
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  importlib-resources,
+  pytest-subtests,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,20 +19,14 @@ buildPythonPackage rec {
     hash = "sha256-JnQSD42JGQl1HDirzf04asCloRJ5VPvDMq9rXOrgfv0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytestCheckHook
     pytest-subtests
-  ] ++ lib.optionals (pythonOlder "3.7") [
-    importlib-resources
-  ];
+  ] ++ lib.optionals (pythonOlder "3.7") [ importlib-resources ];
 
-  pythonImportsCheck = [
-    "tzdata"
-  ];
+  pythonImportsCheck = [ "tzdata" ];
 
   meta = with lib; {
     description = "Provider of IANA time zone data";
diff --git a/pkgs/development/python-modules/tzlocal/default.nix b/pkgs/development/python-modules/tzlocal/default.nix
index 4f74b552b0c4d..81f1ed1d2b806 100644
--- a/pkgs/development/python-modules/tzlocal/default.nix
+++ b/pkgs/development/python-modules/tzlocal/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools
-, pytest-mock
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  pytest-mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-jTmSBVePGpNCgWQJzB5GqT69V1XjnqLYUzS+qRG/Dm4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytest-mock
diff --git a/pkgs/development/python-modules/u-msgpack-python/default.nix b/pkgs/development/python-modules/u-msgpack-python/default.nix
index 1b79d265ff861..3e1935cfd1ddc 100644
--- a/pkgs/development/python-modules/u-msgpack-python/default.nix
+++ b/pkgs/development/python-modules/u-msgpack-python/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
-, glibcLocales
-, unittestCheckHook
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+  glibcLocales,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -15,14 +16,14 @@ buildPythonPackage rec {
     hash = "sha256-uAGoPW7XXm30HkRRi08qnCIdwtpLzVOA46D+2lILxho=";
   };
 
-  env.LC_ALL="en_US.UTF-8";
+  env.LC_ALL = "en_US.UTF-8";
 
   buildInputs = [ glibcLocales ];
 
   nativeCheckInputs = [ unittestCheckHook ];
 
   meta = {
-    description = "A portable, lightweight MessagePack serializer and deserializer written in pure Python";
+    description = "Portable, lightweight MessagePack serializer and deserializer written in pure Python";
     homepage = "https://github.com/vsergeev/u-msgpack-python";
     changelog = "https://github.com/vsergeev/u-msgpack-python/blob/v${version}/CHANGELOG.md";
     license = lib.licenses.mit;
diff --git a/pkgs/development/python-modules/ua-parser/default.nix b/pkgs/development/python-modules/ua-parser/default.nix
index ba0f75ce6f356..fa0dfffdf6b0e 100644
--- a/pkgs/development/python-modules/ua-parser/default.nix
+++ b/pkgs/development/python-modules/ua-parser/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyyaml
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyyaml,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,17 +20,11 @@ buildPythonPackage rec {
     hash = "sha256-GiuGPnyYL0HQ/J2OpDTD1/panZCuzKtD3mKW5op5lXA=";
   };
 
-  patches = [
-    ./dont-fetch-submodule.patch
-  ];
+  patches = [ ./dont-fetch-submodule.patch ];
 
-  nativeBuildInputs = [
-    pyyaml
-  ];
+  nativeBuildInputs = [ pyyaml ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     # import from $out
@@ -39,7 +34,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "ua_parser" ];
 
   meta = with lib; {
-    description = "A python implementation of the UA Parser";
+    description = "Python implementation of the UA Parser";
     homepage = "https://github.com/ua-parser/uap-python";
     license = licenses.asl20;
     platforms = platforms.unix;
diff --git a/pkgs/development/python-modules/uamqp/default.nix b/pkgs/development/python-modules/uamqp/default.nix
index 2881c8ef0d6b2..0bde984b93e52 100644
--- a/pkgs/development/python-modules/uamqp/default.nix
+++ b/pkgs/development/python-modules/uamqp/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, cython_0
-, certifi
-, CFNetwork
-, cmake
-, CoreFoundation
-, openssl
-, Security
-, pytestCheckHook
-, pytest-asyncio
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  cython_0,
+  certifi,
+  CFNetwork,
+  cmake,
+  CoreFoundation,
+  openssl,
+  Security,
+  pytestCheckHook,
+  pytest-asyncio,
 }:
 
 buildPythonPackage rec {
@@ -26,29 +27,31 @@ buildPythonPackage rec {
     hash = "sha256-L4E7nnsVZ/VrOM0t4KtztU9ALmtGfi1vDzUi0ogtZOc=";
   };
 
-  patches = lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
-    ./darwin-azure-c-shared-utility-corefoundation.patch
-  ] ++ [
-    (fetchpatch {
-      name = "CVE-2024-25110.patch";
-      url = "https://github.com/Azure/azure-uamqp-c/commit/30865c9ccedaa32ddb036e87a8ebb52c3f18f695.patch";
-      stripLen = 1;
-      extraPrefix = "src/vendor/azure-uamqp-c/";
-      hash = "sha256-igzZqTLUUyuNcpCUbYHI4RXmWxg+7EC/yyD4DBurR2M=";
-    })
-    (fetchpatch {
-      name = "CVE-2024-27099.patch";
-      url = "https://github.com/Azure/azure-uamqp-c/commit/2ca42b6e4e098af2d17e487814a91d05f6ae4987.patch";
-      stripLen = 1;
-      extraPrefix = "src/vendor/azure-uamqp-c/";
-      # other files are just tests which aren't run from the python
-      # builder anyway
-      includes = [ "src/vendor/azure-uamqp-c/src/link.c" ];
-      hash = "sha256-EqDfG1xAz5CG8MssSSrz8Yrje5qwF8ri1Kdw+UUu5ms=";
-    })
-    # Fix incompatible function pointer conversion error with clang 16.
-    ./clang-fix-incompatible-function-pointer-conversion.patch
-  ];
+  patches =
+    lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
+      ./darwin-azure-c-shared-utility-corefoundation.patch
+    ]
+    ++ [
+      (fetchpatch {
+        name = "CVE-2024-25110.patch";
+        url = "https://github.com/Azure/azure-uamqp-c/commit/30865c9ccedaa32ddb036e87a8ebb52c3f18f695.patch";
+        stripLen = 1;
+        extraPrefix = "src/vendor/azure-uamqp-c/";
+        hash = "sha256-igzZqTLUUyuNcpCUbYHI4RXmWxg+7EC/yyD4DBurR2M=";
+      })
+      (fetchpatch {
+        name = "CVE-2024-27099.patch";
+        url = "https://github.com/Azure/azure-uamqp-c/commit/2ca42b6e4e098af2d17e487814a91d05f6ae4987.patch";
+        stripLen = 1;
+        extraPrefix = "src/vendor/azure-uamqp-c/";
+        # other files are just tests which aren't run from the python
+        # builder anyway
+        includes = [ "src/vendor/azure-uamqp-c/src/link.c" ];
+        hash = "sha256-EqDfG1xAz5CG8MssSSrz8Yrje5qwF8ri1Kdw+UUu5ms=";
+      })
+      # Fix incompatible function pointer conversion error with clang 16.
+      ./clang-fix-incompatible-function-pointer-conversion.patch
+    ];
 
   postPatch = lib.optionalString (stdenv.isDarwin && !stdenv.isx86_64) ''
     # force darwin aarch64 to use openssl instead of applessl, removing
@@ -71,17 +74,15 @@ buildPythonPackage rec {
     cython_0
   ];
 
-  buildInputs = [
-    openssl
-  ] ++ lib.optionals stdenv.isDarwin [
-    CoreFoundation
-    CFNetwork
-    Security
-  ];
+  buildInputs =
+    [ openssl ]
+    ++ lib.optionals stdenv.isDarwin [
+      CoreFoundation
+      CFNetwork
+      Security
+    ];
 
-  propagatedBuildInputs = [
-    certifi
-  ];
+  propagatedBuildInputs = [ certifi ];
 
   dontUseCmakeConfigure = true;
 
@@ -95,12 +96,10 @@ buildPythonPackage rec {
     pytest-asyncio
   ];
 
-  pythonImportsCheck = [
-    "uamqp"
-  ];
+  pythonImportsCheck = [ "uamqp" ];
 
   meta = with lib; {
-    description = "An AMQP 1.0 client library for Python";
+    description = "AMQP 1.0 client library for Python";
     homepage = "https://github.com/Azure/azure-uamqp-python";
     license = licenses.mit;
     maintainers = with maintainers; [ maxwilson ];
diff --git a/pkgs/development/python-modules/uarray/default.nix b/pkgs/development/python-modules/uarray/default.nix
index b6070cb8d9e16..731da3b75fbe3 100644
--- a/pkgs/development/python-modules/uarray/default.nix
+++ b/pkgs/development/python-modules/uarray/default.nix
@@ -1,15 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, setuptools
-, setuptools-scm
-, matchpy
-, numpy
-, astunparse
-, typing-extensions
-, pytest7CheckHook
-, pytest-cov
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  setuptools-scm,
+  matchpy,
+  numpy,
+  astunparse,
+  typing-extensions,
+  pytest7CheckHook,
+  pytest-cov,
 }:
 
 buildPythonPackage rec {
@@ -24,10 +24,11 @@ buildPythonPackage rec {
     hash = "sha256-wTKqOw64b+/kdZpSYLwCJATOuo807BWCtVHB4pH58fY=";
   };
 
-  nativeBuildInputs = [ setuptools setuptools-scm ];
-  build-system = [
+  nativeBuildInputs = [
     setuptools
+    setuptools-scm
   ];
+  build-system = [ setuptools ];
 
   dependencies = [
     astunparse
diff --git a/pkgs/development/python-modules/uart-devices/default.nix b/pkgs/development/python-modules/uart-devices/default.nix
index 7859d5ce32d10..790bee28b635e 100644
--- a/pkgs/development/python-modules/uart-devices/default.nix
+++ b/pkgs/development/python-modules/uart-devices/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-asyncio
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
       --replace-fail "-Wdefault --cov=uart_devices --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     pytest-asyncio
diff --git a/pkgs/development/python-modules/uasiren/default.nix b/pkgs/development/python-modules/uasiren/default.nix
index 25f28f3d15d32..a30bc00e8ba30 100644
--- a/pkgs/development/python-modules/uasiren/default.nix
+++ b/pkgs/development/python-modules/uasiren/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build time
-, setuptools-scm
+  # build time
+  setuptools-scm,
 
-# propagates
-, aiohttp
+  # propagates
+  aiohttp,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 let
@@ -28,17 +29,11 @@ buildPythonPackage {
     hash = "sha256-NHrnG5Vhz+JZgcTJyfIgGz0Ye+3dFVv2zLCCqw2++oM=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [
     "uasiren"
@@ -53,4 +48,3 @@ buildPythonPackage {
     maintainers = with maintainers; [ hexa ];
   };
 }
-
diff --git a/pkgs/development/python-modules/ubelt/default.nix b/pkgs/development/python-modules/ubelt/default.nix
index b964c7d4de426..85764d05986c2 100644
--- a/pkgs/development/python-modules/ubelt/default.nix
+++ b/pkgs/development/python-modules/ubelt/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, wheel
-, numpy
-, python-dateutil
-, xxhash
-, pytestCheckHook
-, requests
-, xdoctest
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  wheel,
+  numpy,
+  python-dateutil,
+  xxhash,
+  pytestCheckHook,
+  requests,
+  xdoctest,
 }:
 
 buildPythonPackage rec {
   pname = "ubelt";
-  version = "1.3.5";
+  version = "1.3.6";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -24,7 +25,7 @@ buildPythonPackage rec {
     owner = "Erotemic";
     repo = "ubelt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-pwqqt5Syag4cO6a93+7ZE3eI61yTZGc+NEu/Y0i1U0k=";
+    hash = "sha256-ygoJqyTscfuZVDGVbrZobZFvlcuF4HavTU65tmhyU+w=";
   };
 
   nativeBuildInputs = [
@@ -61,7 +62,7 @@ buildPythonPackage rec {
   __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "A Python utility library with a stdlib like feel and extra batteries. Paths, Progress, Dicts, Downloads, Caching, Hashing: ubelt makes it easy";
+    description = "Python utility library with a stdlib like feel and extra batteries. Paths, Progress, Dicts, Downloads, Caching, Hashing: ubelt makes it easy";
     homepage = "https://github.com/Erotemic/ubelt";
     changelog = "https://github.com/Erotemic/ubelt/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/uc-micro-py/default.nix b/pkgs/development/python-modules/uc-micro-py/default.nix
index 77f7eb1625d97..fcd45808087b6 100644
--- a/pkgs/development/python-modules/uc-micro-py/default.nix
+++ b/pkgs/development/python-modules/uc-micro-py/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-Z7XHWeV5I/y19EKg4lzcl9pwRexWnSQ7d8CpQu5xdnI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "uc_micro"
-  ];
+  pythonImportsCheck = [ "uc_micro" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Micro subset of unicode data files for linkify-it-py";
diff --git a/pkgs/development/python-modules/ucsmsdk/default.nix b/pkgs/development/python-modules/ucsmsdk/default.nix
index f2442d2a60785..667ebeca93410 100644
--- a/pkgs/development/python-modules/ucsmsdk/default.nix
+++ b/pkgs/development/python-modules/ucsmsdk/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyparsing
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyparsing,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "ucsmsdk";
-  version = "0.9.17";
+  version = "0.9.18";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "CiscoUcs";
     repo = "ucsmsdk";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Ejn99MArKZjCHsl81WSHfpWV3Kz/mBrItIa0tPVProU=";
+    hash = "sha256-9LCrjelxx8HxIEiSdsvtvm31XiE11Gnp0suapmo2L5Q=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/udatetime/default.nix b/pkgs/development/python-modules/udatetime/default.nix
index 46824549ba279..41b97a8115028 100644
--- a/pkgs/development/python-modules/udatetime/default.nix
+++ b/pkgs/development/python-modules/udatetime/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/ueagle/default.nix b/pkgs/development/python-modules/ueagle/default.nix
index d54b18925e900..5edd077416ef6 100644
--- a/pkgs/development/python-modules/ueagle/default.nix
+++ b/pkgs/development/python-modules/ueagle/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     sha256 = "1hxwk5alalvmhc31y917dxsnbiwq1xci2krma3235581319xr3w7";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/ueberzug/default.nix b/pkgs/development/python-modules/ueberzug/default.nix
index 2e16ea7f2f82f..633e2d9d7db27 100644
--- a/pkgs/development/python-modules/ueberzug/default.nix
+++ b/pkgs/development/python-modules/ueberzug/default.nix
@@ -1,6 +1,16 @@
-{ lib, buildPythonPackage, fetchPypi, isPy27
-, libX11, libXext
-, attrs, docopt, pillow, psutil, xlib }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  libX11,
+  libXext,
+  attrs,
+  docopt,
+  pillow,
+  psutil,
+  xlib,
+}:
 
 buildPythonPackage rec {
   pname = "ueberzug";
@@ -14,9 +24,18 @@ buildPythonPackage rec {
     sha256 = "7ce49f351132c7d1b0f8097f6e4c5635376151ca59318540da3e296e5b21adc3";
   };
 
-  buildInputs = [ libX11 libXext ];
+  buildInputs = [
+    libX11
+    libXext
+  ];
 
-  propagatedBuildInputs = [ attrs docopt pillow psutil xlib ];
+  propagatedBuildInputs = [
+    attrs
+    docopt
+    pillow
+    psutil
+    xlib
+  ];
 
   doCheck = false;
 
@@ -24,7 +43,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/seebye/ueberzug";
-    description = "An alternative for w3mimgdisplay";
+    description = "Alternative for w3mimgdisplay";
     mainProgram = "ueberzug";
     license = licenses.gpl3;
     maintainers = with maintainers; [ Br1ght0ne ];
diff --git a/pkgs/development/python-modules/ufmt/default.nix b/pkgs/development/python-modules/ufmt/default.nix
index 3d1f9033cda60..e494d280ed726 100644
--- a/pkgs/development/python-modules/ufmt/default.nix
+++ b/pkgs/development/python-modules/ufmt/default.nix
@@ -1,38 +1,39 @@
-{ lib
-, black
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, flit-core
-, libcst
-, moreorless
-, pythonOlder
-, tomlkit
-, trailrunner
-, typing-extensions
-, unittestCheckHook
-, usort
+{
+  lib,
+  black,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  flit-core,
+  libcst,
+  moreorless,
+  pygls,
+  pythonOlder,
+  tomlkit,
+  trailrunner,
+  ruff-api,
+  typing-extensions,
+  unittestCheckHook,
+  usort,
 }:
 
 buildPythonPackage rec {
   pname = "ufmt";
-  version = "2.1.0";
-  format = "pyproject";
+  version = "2.7.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.";
 
   src = fetchFromGitHub {
     owner = "omnilib";
     repo = "ufmt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-eQIbSC0Oxi6JD7/3o2y9f+KhT8GIiFiYiV4A3QBoWl0=";
+    hash = "sha256-hIbzW7yDqk8siob+RhcnbOonkl+67sl/IGHimIeMM+Q=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  build-system = [ flit-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     black
     click
     libcst
@@ -43,20 +44,23 @@ buildPythonPackage rec {
     usort
   ];
 
+  passthru.optional-dependencies = {
+    lsp = [ pygls ];
+    ruff = [ ruff-api ];
+  };
+
   nativeCheckInputs = [
     unittestCheckHook
-  ];
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "ufmt"
-  ];
+  pythonImportsCheck = [ "ufmt" ];
 
   meta = with lib; {
     description = "Safe, atomic formatting with black and usort";
-    mainProgram = "ufmt";
     homepage = "https://github.com/omnilib/ufmt";
     changelog = "https://github.com/omnilib/ufmt/blob/${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "ufmt";
   };
 }
diff --git a/pkgs/development/python-modules/ufo2ft/default.nix b/pkgs/development/python-modules/ufo2ft/default.nix
index 5cbcf1370372f..62741a5a06c1d 100644
--- a/pkgs/development/python-modules/ufo2ft/default.nix
+++ b/pkgs/development/python-modules/ufo2ft/default.nix
@@ -1,43 +1,42 @@
-{ lib
-, booleanoperations
-, buildPythonPackage
-, cffsubr
-, compreffor
-, cu2qu
-, defcon
-, fetchPypi
-, fonttools
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools-scm
-, skia-pathops
-, ufolib2
+{
+  lib,
+  booleanoperations,
+  buildPythonPackage,
+  cffsubr,
+  compreffor,
+  cu2qu,
+  defcon,
+  fetchPypi,
+  fontmath,
+  fonttools,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  skia-pathops,
+  ufolib2,
 }:
 
 buildPythonPackage rec {
   pname = "ufo2ft";
-  version = "3.1.0";
+  version = "3.2.5";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-5EUrML1Yd88tVEP+Kd9TmXm+5Ejk/XIH/USYBakK/wQ=";
+    hash = "sha256-PUPk92wugtIZWXP8vq8bJNxqTDhDENKdNhW1kNEcL3E=";
   };
 
   nativeBuildInputs = [
     setuptools-scm
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "cffsubr"
-  ];
+  pythonRelaxDeps = [ "cffsubr" ];
 
   propagatedBuildInputs = [
     cu2qu
+    fontmath
     fonttools
     defcon
     compreffor
@@ -45,13 +44,9 @@ buildPythonPackage rec {
     cffsubr
     ufolib2
     skia-pathops
-  ]
-  ++ fonttools.optional-dependencies.lxml
-  ++ fonttools.optional-dependencies.ufo;
+  ] ++ fonttools.optional-dependencies.lxml ++ fonttools.optional-dependencies.ufo;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Do not depend on skia.
@@ -66,9 +61,7 @@ buildPythonPackage rec {
     "test_drop_glyph_names_variable"
   ];
 
-  pythonImportsCheck = [
-    "ufo2ft"
-  ];
+  pythonImportsCheck = [ "ufo2ft" ];
 
   meta = with lib; {
     description = "Bridge from UFOs to FontTools objects";
diff --git a/pkgs/development/python-modules/ufolib2/default.nix b/pkgs/development/python-modules/ufolib2/default.nix
index 5712b150569ed..2cc899002a79f 100644
--- a/pkgs/development/python-modules/ufolib2/default.nix
+++ b/pkgs/development/python-modules/ufolib2/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, attrs
-, fonttools
-, pytestCheckHook
-, setuptools-scm
-
-# optionals
-, cattrs
-, lxml
-, orjson
-, msgpack
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  attrs,
+  fonttools,
+  pytestCheckHook,
+  setuptools-scm,
+
+  # optionals
+  cattrs,
+  lxml,
+  orjson,
+  msgpack,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     hash = "sha256-SfDcf3LMrP5/rv4NU9N5cdRWZNiwVj7zaVb6e/pVor0=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     attrs
@@ -36,8 +35,14 @@ buildPythonPackage rec {
   passthru.optional-dependencies = {
     lxml = [ lxml ];
     converters = [ cattrs ];
-    json = [ cattrs orjson ];
-    msgpack = [ cattrs msgpack ];
+    json = [
+      cattrs
+      orjson
+    ];
+    msgpack = [
+      cattrs
+      msgpack
+    ];
   };
 
   nativeCheckInputs = [
diff --git a/pkgs/development/python-modules/ufolint/default.nix b/pkgs/development/python-modules/ufolint/default.nix
index 0b561bf6f8307..95db33a7bfc13 100644
--- a/pkgs/development/python-modules/ufolint/default.nix
+++ b/pkgs/development/python-modules/ufolint/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, commandlines
-, fonttools
-, fs
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  commandlines,
+  fonttools,
+  fs,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
   ];
 
   doCheck = true;
-  nativeBuildInputs = [
-    pytestCheckHook
-  ];
+  nativeBuildInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Linter for Unified Font Object (UFO) source code";
@@ -39,4 +38,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ danc86 ];
   };
 }
-
diff --git a/pkgs/development/python-modules/ufonormalizer/default.nix b/pkgs/development/python-modules/ufonormalizer/default.nix
index bfc354c116e0c..920a211708b1d 100644
--- a/pkgs/development/python-modules/ufonormalizer/default.nix
+++ b/pkgs/development/python-modules/ufonormalizer/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, setuptools-scm }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools-scm,
+}:
 
 buildPythonPackage rec {
   pname = "ufonormalizer";
diff --git a/pkgs/development/python-modules/ufoprocessor/default.nix b/pkgs/development/python-modules/ufoprocessor/default.nix
index dda782897b8d7..fb0ac0e1fd8ec 100644
--- a/pkgs/development/python-modules/ufoprocessor/default.nix
+++ b/pkgs/development/python-modules/ufoprocessor/default.nix
@@ -1,7 +1,15 @@
-{ lib, buildPythonPackage, fetchPypi
-, defcon, fonttools, lxml, fs
-, mutatormath, fontmath, fontparts
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  defcon,
+  fonttools,
+  lxml,
+  fs,
+  mutatormath,
+  fontmath,
+  fontparts,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/uharfbuzz/default.nix b/pkgs/development/python-modules/uharfbuzz/default.nix
index b4ea16f1abd5e..3e2cb60517929 100644
--- a/pkgs/development/python-modules/uharfbuzz/default.nix
+++ b/pkgs/development/python-modules/uharfbuzz/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, cython
-, setuptools
-, setuptools-scm
-, pytestCheckHook
-, ApplicationServices
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  cython,
+  setuptools,
+  setuptools-scm,
+  pytestCheckHook,
+  ApplicationServices,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
 
   buildInputs = lib.optionals stdenv.isDarwin [ ApplicationServices ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "uharfbuzz" ];
 
diff --git a/pkgs/development/python-modules/uhi/default.nix b/pkgs/development/python-modules/uhi/default.nix
index 774ff6f273126..4fab1494d88b7 100644
--- a/pkgs/development/python-modules/uhi/default.nix
+++ b/pkgs/development/python-modules/uhi/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, hatchling
-, hatch-vcs
-, numpy
-, pytestCheckHook
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  hatchling,
+  hatch-vcs,
+  numpy,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
     hatch-vcs
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  checkInputs = [
-    pytestCheckHook
-  ];
+  checkInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Universal Histogram Interface";
diff --git a/pkgs/development/python-modules/uiprotect/default.nix b/pkgs/development/python-modules/uiprotect/default.nix
new file mode 100644
index 0000000000000..77a4f48428d2a
--- /dev/null
+++ b/pkgs/development/python-modules/uiprotect/default.nix
@@ -0,0 +1,93 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  poetry-core,
+
+  # dependencies
+  aiofiles,
+  aiohttp,
+  aioshutil,
+  async-timeout,
+  dateparser,
+  orjson,
+  packaging,
+  pillow,
+  platformdirs,
+  pydantic,
+  pyjwt,
+  rich,
+  typer,
+  yarl,
+
+  # tests
+  aiosqlite,
+  asttokens,
+  ffmpeg,
+  pytest-asyncio,
+  pytest-benchmark,
+  pytest-timeout,
+  pytest-xdist,
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "uiprotect";
+  version = "1.7.2";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "uilibs";
+    repo = "uiprotect";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-gr+P7V0vsmWha/Di3BGORjssCLz0lsufawzMZKOMYt0=";
+  };
+
+  postPatch = ''
+    sed -i "/addopts =/d" pyproject.toml
+  '';
+
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    aiofiles
+    aiohttp
+    aioshutil
+    async-timeout
+    dateparser
+    orjson
+    packaging
+    pillow
+    platformdirs
+    pydantic
+    pyjwt
+    rich
+    typer
+    yarl
+  ];
+
+  nativeCheckInputs = [
+    aiosqlite
+    asttokens
+    ffmpeg # Required for command ffprobe
+    pytest-asyncio
+    pytest-benchmark
+    pytest-timeout
+    pytest-xdist
+    pytestCheckHook
+  ];
+
+  pytestFlagsArray = [ "--benchmark-disable" ];
+
+  pythonImportsCheck = [ "uiprotect" ];
+
+  meta = with lib; {
+    description = "Python API for UniFi Protect (Unofficial";
+    homepage = "https://github.com/uilibs/uiprotect";
+    changelog = "https://github.com/uilibs/uiprotect/blob/${src.rev}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/ujson/default.nix b/pkgs/development/python-modules/ujson/default.nix
index 1dd98186e26fc..b94550bdce50d 100644
--- a/pkgs/development/python-modules/ujson/default.nix
+++ b/pkgs/development/python-modules/ujson/default.nix
@@ -1,29 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "ujson";
-  version = "5.9.0";
+  version = "5.10.0";
   format = "setuptools";
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-icyS5z1VAbin9IV17rFK0nFWrQksLp/H48+UnwfnVTI=";
+    hash = "sha256-s82PPF2MdzglfxAYiARE97fZtmIyxkZJ9WLXuoatS8E=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "ujson" ];
 
diff --git a/pkgs/development/python-modules/ukkonen/default.nix b/pkgs/development/python-modules/ukkonen/default.nix
index 5ea0930d7d890..136303b02b72e 100644
--- a/pkgs/development/python-modules/ukkonen/default.nix
+++ b/pkgs/development/python-modules/ukkonen/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, cffi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cffi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     sha256 = "jG6VP/P5sadrdrmneH36/ExSld9blyMAAG963QS9+p0=";
   };
 
-  nativeBuildInputs = [
-    cffi
-  ];
+  nativeBuildInputs = [ cffi ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "ukkonen"
-  ];
+  pythonImportsCheck = [ "ukkonen" ];
 
   meta = with lib; {
     description = "Python implementation of bounded Levenshtein distance (Ukkonen)";
diff --git a/pkgs/development/python-modules/ukpostcodeparser/default.nix b/pkgs/development/python-modules/ukpostcodeparser/default.nix
index 486cee90435a8..611e21ed8ada2 100644
--- a/pkgs/development/python-modules/ukpostcodeparser/default.nix
+++ b/pkgs/development/python-modules/ukpostcodeparser/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "ukpostcodeparser";
@@ -14,9 +18,9 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "UK Postcode parser";
-    homepage    = "https://github.com/hamstah/ukpostcodeparser";
-    license     = licenses.publicDomain;
+    homepage = "https://github.com/hamstah/ukpostcodeparser";
+    license = licenses.publicDomain;
     maintainers = with maintainers; [ siddharthist ];
-    platforms   = platforms.unix;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/python-modules/ulid-transform/default.nix b/pkgs/development/python-modules/ulid-transform/default.nix
index 95b765bd3e602..0f7ae6d0b42cd 100644
--- a/pkgs/development/python-modules/ulid-transform/default.nix
+++ b/pkgs/development/python-modules/ulid-transform/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, cython
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  cython,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -28,18 +29,14 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
       --replace " --cov=ulid_transform --cov-report=term-missing:skip-covered" ""
   '';
 
-  pythonImportsCheck = [
-    "ulid_transform"
-  ];
+  pythonImportsCheck = [ "ulid_transform" ];
 
   meta = with lib; {
     description = "Library to create and transform ULIDs";
diff --git a/pkgs/development/python-modules/ultraheat-api/default.nix b/pkgs/development/python-modules/ultraheat-api/default.nix
index b478c7c6c0ab0..9b345f073379b 100644
--- a/pkgs/development/python-modules/ultraheat-api/default.nix
+++ b/pkgs/development/python-modules/ultraheat-api/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyserial
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyserial,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,16 +19,12 @@ buildPythonPackage rec {
     hash = "sha256-rRQTjV9hyUawMaXBgUx/d6pQjM8ffjcFJE2x08Cf4Gw=";
   };
 
-  propagatedBuildInputs = [
-    pyserial
-  ];
+  propagatedBuildInputs = [ pyserial ];
 
   # Source is not tagged, only PyPI releases
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ultraheat_api"
-  ];
+  pythonImportsCheck = [ "ultraheat_api" ];
 
   meta = with lib; {
     description = "Module for working with data from Landis+Gyr Ultraheat heat meter unit";
diff --git a/pkgs/development/python-modules/umalqurra/default.nix b/pkgs/development/python-modules/umalqurra/default.nix
index f06f1d4731046..407edb28ff88d 100644
--- a/pkgs/development/python-modules/umalqurra/default.nix
+++ b/pkgs/development/python-modules/umalqurra/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -23,5 +24,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/tytkal/python-hijiri-ummalqura";
     license = with licenses; [ publicDomain ];
   };
-
 }
diff --git a/pkgs/development/python-modules/umap-learn/default.nix b/pkgs/development/python-modules/umap-learn/default.nix
index 195dde57bf2e4..238cc2547a367 100644
--- a/pkgs/development/python-modules/umap-learn/default.nix
+++ b/pkgs/development/python-modules/umap-learn/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, bokeh
-, buildPythonPackage
-, colorcet
-, datashader
-, fetchFromGitHub
-, holoviews
-, matplotlib
-, numba
-, numpy
-, pandas
-, pynndescent
-, pytestCheckHook
-, pythonOlder
-, scikit-image
-, scikit-learn
-, scipy
-, seaborn
-, tbb
-, tensorflow
-, tensorflow-probability
-, tqdm
+{
+  lib,
+  bokeh,
+  buildPythonPackage,
+  colorcet,
+  datashader,
+  fetchFromGitHub,
+  holoviews,
+  matplotlib,
+  numba,
+  numpy,
+  pandas,
+  pynndescent,
+  pytestCheckHook,
+  pythonOlder,
+  scikit-image,
+  scikit-learn,
+  scipy,
+  seaborn,
+  tbb,
+  tensorflow,
+  tensorflow-probability,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -62,16 +63,12 @@ buildPythonPackage rec {
       tensorflow-probability
     ];
 
-    tbb = [
-      tbb
-    ];
+    tbb = [ tbb ];
 
     all = plot ++ parametric_umap ++ tbb;
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export HOME=$TMPDIR
diff --git a/pkgs/development/python-modules/umodbus/default.nix b/pkgs/development/python-modules/umodbus/default.nix
index 7ce4997342036..0ccefecf0d8cc 100644
--- a/pkgs/development/python-modules/umodbus/default.nix
+++ b/pkgs/development/python-modules/umodbus/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyserial
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyserial,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,19 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-5IXadb5mjrMwr+L9S1iMN5kba5VGrzYt1p8nBvvLCh4=";
   };
 
-  propagatedBuildInputs = [
-    pyserial
-  ];
+  propagatedBuildInputs = [ pyserial ];
 
   __darwinAllowLocalNetworking = true;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "umodbus"
-  ];
+  pythonImportsCheck = [ "umodbus" ];
 
   meta = with lib; {
     description = "Implementation of the Modbus protocol";
diff --git a/pkgs/development/python-modules/unasync/default.nix b/pkgs/development/python-modules/unasync/default.nix
index d6e8c99510e40..ff43f3c81669e 100644
--- a/pkgs/development/python-modules/unasync/default.nix
+++ b/pkgs/development/python-modules/unasync/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     sha256 = "0h86i09v4909a8nk5lp36jlwz6rsln6vyg3d0i13ykxa6lrx1c2l";
   };
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  propagatedBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # mess with $PYTHONPATH
@@ -39,7 +36,10 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Project that can transform your asynchronous code into synchronous code";
     homepage = "https://github.com/python-trio/unasync";
-    license = with licenses; [ mit /* or */ asl20 ];
+    license = with licenses; [
+      mit # or
+      asl20
+    ];
     maintainers = with maintainers; [ dotlambda ];
   };
 }
diff --git a/pkgs/development/python-modules/uncertainties/default.nix b/pkgs/development/python-modules/uncertainties/default.nix
index 827a21c811b7c..89d47e0d84350 100644
--- a/pkgs/development/python-modules/uncertainties/default.nix
+++ b/pkgs/development/python-modules/uncertainties/default.nix
@@ -1,27 +1,42 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, future
-, numpy
-, pynose
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+
+  # build-system
+  setuptools,
+  setuptools-scm,
+
+  # optional-dependencies
+  numpy,
+
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "uncertainties";
-  version = "3.1.7";
-  format = "setuptools";
+  version = "3.2.1";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-gBEeCDnyOcWyM8tHcgF7SDoLehVzpYG5Krd0ajXm+qs=";
+    hash = "sha256-sFQXtYve8jbCDnEfsv7hjk23NIqS7c7AExizKqs0kl4=";
   };
 
-  propagatedBuildInputs = [ future ];
-  nativeCheckInputs = [ pynose numpy ];
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
+
+  optional-dependencies.arrays = [ numpy ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ]
+  ++ optional-dependencies.arrays;
 
-  checkPhase = ''
-    nosetests -sve test_1to2
-  '';
+  pythonImportsCheck = [ "uncertainties" ];
 
   meta = with lib; {
     homepage = "https://pythonhosted.org/uncertainties/";
diff --git a/pkgs/development/python-modules/uncompyle6/default.nix b/pkgs/development/python-modules/uncompyle6/default.nix
index fa48931594c9e..abf225feb5eee 100644
--- a/pkgs/development/python-modules/uncompyle6/default.nix
+++ b/pkgs/development/python-modules/uncompyle6/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, spark-parser
-, xdis
-, nose
-, pytest
-, hypothesis
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  spark-parser,
+  xdis,
+  nose,
+  pytest,
+  hypothesis,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,17 @@ buildPythonPackage rec {
     hash = "sha256-xFHDjrPFzINOuLip5uCwzzIm5NlNCP0nbdA/6RWO2yc=";
   };
 
-  propagatedBuildInputs = [ spark-parser xdis ];
+  propagatedBuildInputs = [
+    spark-parser
+    xdis
+  ];
 
-  nativeCheckInputs = [ nose pytest hypothesis six ];
+  nativeCheckInputs = [
+    nose
+    pytest
+    hypothesis
+    six
+  ];
 
   # Tests attempt to decompile bytecode of the python version
   # that is running the tests - this does not work for versions
@@ -40,5 +49,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/rocky/python-uncompyle6/";
     license = licenses.gpl3;
   };
-
 }
diff --git a/pkgs/development/python-modules/undefined/default.nix b/pkgs/development/python-modules/undefined/default.nix
index 5348688680e1c..ccd803bc08027 100644
--- a/pkgs/development/python-modules/undefined/default.nix
+++ b/pkgs/development/python-modules/undefined/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit,
 }:
 
 buildPythonPackage rec {
@@ -14,13 +15,9 @@ buildPythonPackage rec {
     hash = "sha256-xvI3wOPX51GWlLIb1HHcJe48M3nZwjt06/Aqo0nFz/c=";
   };
 
-  nativeBuildInputs = [
-    flit
-  ];
+  nativeBuildInputs = [ flit ];
 
-  pythonImportsCheck = [
-    "undefined"
-  ];
+  pythonImportsCheck = [ "undefined" ];
 
   meta = with lib; {
     description = "Ever needed a global object that act as None but not quite?";
diff --git a/pkgs/development/python-modules/unearth/default.nix b/pkgs/development/python-modules/unearth/default.nix
index 25be1098eb9d2..e9bb746f7d8e3 100644
--- a/pkgs/development/python-modules/unearth/default.nix
+++ b/pkgs/development/python-modules/unearth/default.nix
@@ -1,33 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, packaging
-, pdm-backend
-, httpx
-, flask
-, pytest-httpserver
-, pytest-mock
-, pytestCheckHook
-, requests-wsgi-adapter
-, trustme
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  packaging,
+  pdm-backend,
+  httpx,
+  flask,
+  pytest-httpserver,
+  pytest-mock,
+  pytestCheckHook,
+  requests-wsgi-adapter,
+  trustme,
 }:
 
 buildPythonPackage rec {
   pname = "unearth";
-  version = "0.15.2";
+  version = "0.15.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-OB8+aWnbCyjZ/C+/shaGBXm/NBvWlUcvLGLivM6ebT0=";
+    hash = "sha256-+9has/2wlvmcgmaiCnV4qPMTCtSfR86osTjACIg7e2E=";
   };
 
-  build-system = [
-    pdm-backend
-  ];
+  build-system = [ pdm-backend ];
 
   dependencies = [
     packaging
@@ -45,12 +44,10 @@ buildPythonPackage rec {
     trustme
   ];
 
-  pythonImportsCheck = [
-    "unearth"
-  ];
+  pythonImportsCheck = [ "unearth" ];
 
   meta = with lib; {
-    description = "A utility to fetch and download Python packages";
+    description = "Utility to fetch and download Python packages";
     mainProgram = "unearth";
     homepage = "https://github.com/frostming/unearth";
     changelog = "https://github.com/frostming/unearth/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/unicode-rbnf/default.nix b/pkgs/development/python-modules/unicode-rbnf/default.nix
index 6dd4e813312eb..a672feebf5ee5 100644
--- a/pkgs/development/python-modules/unicode-rbnf/default.nix
+++ b/pkgs/development/python-modules/unicode-rbnf/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,15 @@ buildPythonPackage rec {
     hash = "sha256-PquPoiaO1rEDMz7jaN9MUB0UQGH07M0O9mlrUCsfhm4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "unicode_rbnf"
-  ];
+  pythonImportsCheck = [ "unicode_rbnf" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     changelog = "https://github.com/rhasspy/unicode-rbnf/blob/v${version}/CHANGELOG.md";
-    description = "A pure Python implementation of ICU's rule-based number format engine";
+    description = "Pure Python implementation of ICU's rule-based number format engine";
     homepage = "https://github.com/rhasspy/unicode-rbnf";
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
diff --git a/pkgs/development/python-modules/unicode-slugify/default.nix b/pkgs/development/python-modules/unicode-slugify/default.nix
index e967e187d9f1d..47a91979bf434 100644
--- a/pkgs/development/python-modules/unicode-slugify/default.nix
+++ b/pkgs/development/python-modules/unicode-slugify/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nose
-, six
-, unidecode
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nose,
+  six,
+  unidecode,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,10 @@ buildPythonPackage rec {
     sha256 = "25f424258317e4cb41093e2953374b3af1f23097297664731cdb3ae46f6bd6c3";
   };
 
-  propagatedBuildInputs = [ six unidecode ];
+  propagatedBuildInputs = [
+    six
+    unidecode
+  ];
 
   nativeCheckInputs = [
     nose
diff --git a/pkgs/development/python-modules/unicodecsv/default.nix b/pkgs/development/python-modules/unicodecsv/default.nix
index 4690590c03fad..1355a7bab4c78 100644
--- a/pkgs/development/python-modules/unicodecsv/default.nix
+++ b/pkgs/development/python-modules/unicodecsv/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -21,5 +22,4 @@ buildPythonPackage rec {
     homepage = "https://github.com/jdunck/python-unicodecsv";
     maintainers = with maintainers; [ koral ];
   };
-
 }
diff --git a/pkgs/development/python-modules/unicodedata2/default.nix b/pkgs/development/python-modules/unicodedata2/default.nix
index 972aa3093a8cd..4857edc8d73ee 100644
--- a/pkgs/development/python-modules/unicodedata2/default.nix
+++ b/pkgs/development/python-modules/unicodedata2/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-yzDxia1mSC+FKaRdpxsqiEHpvSuzdswpMwA6SlWgdkg=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "unicodedata2"
-  ];
+  pythonImportsCheck = [ "unicodedata2" ];
 
   meta = with lib; {
     description = "Backport and updates for the unicodedata module";
diff --git a/pkgs/development/python-modules/unicorn/default.nix b/pkgs/development/python-modules/unicorn/default.nix
index c1f17ce880a6b..a684d0fda8171 100644
--- a/pkgs/development/python-modules/unicorn/default.nix
+++ b/pkgs/development/python-modules/unicorn/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, setuptools
-, unicorn-emu
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  setuptools,
+  unicorn-emu,
 }:
 
 buildPythonPackage rec {
@@ -19,14 +20,19 @@ buildPythonPackage rec {
   '';
 
   # needed on non-x86 linux
-  setupPyBuildFlags = lib.optionals stdenv.isLinux [ "--plat-name" "linux" ]
-                   # aarch64 only available from MacOS SDK 11 onwards, so fix the version tag.
-                   # otherwise, bdist_wheel may detect "macosx_10_6_arm64" which doesn't make sense.
-                   ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [ "--plat-name" "macosx_11_0" ];
-
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  setupPyBuildFlags =
+    lib.optionals stdenv.isLinux [
+      "--plat-name"
+      "linux"
+    ]
+    # aarch64 only available from MacOS SDK 11 onwards, so fix the version tag.
+    # otherwise, bdist_wheel may detect "macosx_10_6_arm64" which doesn't make sense.
+    ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+      "--plat-name"
+      "macosx_11_0"
+    ];
+
+  propagatedBuildInputs = [ setuptools ];
 
   checkPhase = ''
     runHook preCheck
@@ -38,14 +44,15 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "unicorn"
-  ];
+  pythonImportsCheck = [ "unicorn" ];
 
   meta = with lib; {
     description = "Python bindings for Unicorn CPU emulator engine";
     homepage = "https://www.unicorn-engine.org/";
     license = licenses.gpl2Plus;
-    maintainers = with maintainers; [ bennofs ris ];
+    maintainers = with maintainers; [
+      bennofs
+      ris
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/unicrypto/default.nix b/pkgs/development/python-modules/unicrypto/default.nix
index 5167bc8494691..9c992870f6695 100644
--- a/pkgs/development/python-modules/unicrypto/default.nix
+++ b/pkgs/development/python-modules/unicrypto/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pycryptodome
-, pycryptodomex
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pycryptodome,
+  pycryptodomex,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "unicrypto"
-  ];
+  pythonImportsCheck = [ "unicrypto" ];
 
   meta = with lib; {
     description = "Unified interface for cryptographic libraries";
diff --git a/pkgs/development/python-modules/unicurses/default.nix b/pkgs/development/python-modules/unicurses/default.nix
index 4eae54692b547..273fc56d4b81f 100644
--- a/pkgs/development/python-modules/unicurses/default.nix
+++ b/pkgs/development/python-modules/unicurses/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, ncurses, x256 }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  ncurses,
+  x256,
+}:
 
 buildPythonPackage rec {
   pname = "unicurses";
diff --git a/pkgs/development/python-modules/unidata-blocks/default.nix b/pkgs/development/python-modules/unidata-blocks/default.nix
index 93857756bb651..ba48416c5157c 100644
--- a/pkgs/development/python-modules/unidata-blocks/default.nix
+++ b/pkgs/development/python-modules/unidata-blocks/default.nix
@@ -1,44 +1,47 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, nix-update-script
-, hatch-vcs
-, hatchling
-, langcodes
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytestCheckHook,
+  nix-update-script,
+  hatchling,
+  langcodes,
 }:
 
 buildPythonPackage rec {
   pname = "unidata-blocks";
-  version = "0.0.10";
+  version = "0.0.12";
+  pyproject = true;
 
-  disabled = pythonOlder "3.11";
+  disabled = pythonOlder "3.10";
 
   src = fetchPypi {
     pname = "unidata_blocks";
     inherit version;
-    hash = "sha256-wwiOjfIAx6AZtK98uuPQ0jwblq+CdnMQp+JkQWh+RgM=";
+    hash = "sha256-V8xmw8CDq0Y89pidcMF+f0A40PfAmkRwcduTFkUguU4=";
   };
 
-  format = "pyproject";
+  build-system = [ hatchling ];
 
-  nativeBuildInputs = [
-    hatch-vcs
-    hatchling
+  dependencies = [
+    langcodes
   ];
 
-  propagatedBuildInputs = [ langcodes ];
-
   nativeCheckInputs = [ pytestCheckHook ];
 
+  pythonImportsCheck = [ "unidata_blocks" ];
+
   passthru.updateScript = nix-update-script { };
 
   meta = {
     homepage = "https://github.com/TakWolf/unidata-blocks";
-    description = "A library that helps query unicode blocks by Blocks.txt";
+    description = "Library that helps query unicode blocks by Blocks.txt";
     platforms = lib.platforms.all;
     license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [ h7x4 ];
+    maintainers = with lib.maintainers; [
+      TakWolf
+      h7x4
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/unidecode/default.nix b/pkgs/development/python-modules/unidecode/default.nix
index 23263403fbd25..aa19b4478861c 100644
--- a/pkgs/development/python-modules/unidecode/default.nix
+++ b/pkgs/development/python-modules/unidecode/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-OoJSY+dNNISyVwKuRboMH7Je8nYFKxus2c4v3VsmyRE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "unidecode"
-  ];
+  pythonImportsCheck = [ "unidecode" ];
 
   meta = with lib; {
     description = "ASCII transliterations of Unicode text";
diff --git a/pkgs/development/python-modules/unidic-lite/default.nix b/pkgs/development/python-modules/unidic-lite/default.nix
index eec9c7022a0d8..3152b87253131 100644
--- a/pkgs/development/python-modules/unidic-lite/default.nix
+++ b/pkgs/development/python-modules/unidic-lite/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -16,12 +17,10 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "unidic_lite"
-  ];
+  pythonImportsCheck = [ "unidic_lite" ];
 
   meta = with lib; {
-    description = "A small version of UniDic";
+    description = "Small version of UniDic";
     homepage = "https://github.com/polm/unidic-lite";
     license = licenses.mit;
     maintainers = teams.tts.members;
diff --git a/pkgs/development/python-modules/unidic/default.nix b/pkgs/development/python-modules/unidic/default.nix
index cd8363d6fc972..69e38dafef065 100644
--- a/pkgs/development/python-modules/unidic/default.nix
+++ b/pkgs/development/python-modules/unidic/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, mecab
-, setuptools-scm
-, requests
-, tqdm
-, wasabi
-, plac
-, cython
-, platformdirs
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  mecab,
+  setuptools-scm,
+  requests,
+  tqdm,
+  wasabi,
+  plac,
+  cython,
+  platformdirs,
 }:
 
 buildPythonPackage rec {
@@ -35,9 +36,19 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  propagatedBuildInputs = [ requests tqdm wasabi plac platformdirs ];
-
-  nativeBuildInputs = [ cython mecab setuptools-scm ];
+  propagatedBuildInputs = [
+    requests
+    tqdm
+    wasabi
+    plac
+    platformdirs
+  ];
+
+  nativeBuildInputs = [
+    cython
+    mecab
+    setuptools-scm
+  ];
 
   pythonImportsCheck = [ "unidic" ];
 
diff --git a/pkgs/development/python-modules/unidiff/default.nix b/pkgs/development/python-modules/unidiff/default.nix
index 3519d35c209f1..3f2034098dc00 100644
--- a/pkgs/development/python-modules/unidiff/default.nix
+++ b/pkgs/development/python-modules/unidiff/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, unittestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  unittestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "unidiff";
@@ -12,7 +17,10 @@ buildPythonPackage rec {
 
   nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [ "-s" "tests" ];
+  unittestFlagsArray = [
+    "-s"
+    "tests"
+  ];
 
   pythonImportsCheck = [ "unidiff" ];
 
diff --git a/pkgs/development/python-modules/unifi-discovery/default.nix b/pkgs/development/python-modules/unifi-discovery/default.nix
index 760b9f96c89ba..1bfcce4e430e4 100644
--- a/pkgs/development/python-modules/unifi-discovery/default.nix
+++ b/pkgs/development/python-modules/unifi-discovery/default.nix
@@ -1,34 +1,38 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pyroute2
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pyroute2,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "unifi-discovery";
   version = "1.1.8";
-  format = "pyproject";
+  pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchFromGitHub {
     owner = "bdraco";
-    repo = pname;
+    repo = "unifi-discovery";
     rev = "refs/tags/v${version}";
     hash = "sha256-gE/2awyhDACrc0nuTvTPOcK2lFbPIZAXDPRnVJtWFco=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail "--cov=unifi_discovery --cov-report=term-missing:skip-covered" ""
+  '';
+
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     pyroute2
   ];
@@ -39,23 +43,16 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "--asyncio-mode=auto"
-  ];
+  pytestFlagsArray = [ "--asyncio-mode=auto" ];
 
-  postPatch = ''
-    substituteInPlace pyproject.toml \
-      --replace "--cov=unifi_discovery --cov-report=term-missing:skip-covered" ""
-  '';
-
-  pythonImportsCheck = [
-    "unifi_discovery"
-  ];
+  pythonImportsCheck = [ "unifi_discovery" ];
 
   meta = with lib; {
     description = "Module to discover Unifi devices";
     homepage = "https://github.com/bdraco/unifi-discovery";
+    changelog = "https://github.com/bdraco/unifi-discovery/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/python-modules/unifi/default.nix b/pkgs/development/python-modules/unifi/default.nix
index bc868f0ed4f40..daebd11ee3c0a 100644
--- a/pkgs/development/python-modules/unifi/default.nix
+++ b/pkgs/development/python-modules/unifi/default.nix
@@ -1,5 +1,9 @@
-{ lib, buildPythonPackage
-, fetchPypi, urllib3 }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  urllib3,
+}:
 
 buildPythonPackage rec {
   pname = "unifi";
@@ -17,9 +21,9 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "An API towards the Ubiquity Networks UniFi controller";
-    homepage    = "https://pypi.python.org/pypi/unifi/";
-    license     = licenses.mit;
+    description = "API towards the Ubiquity Networks UniFi controller";
+    homepage = "https://pypi.python.org/pypi/unifi/";
+    license = licenses.mit;
     maintainers = with maintainers; [ peterhoeg ];
   };
 }
diff --git a/pkgs/development/python-modules/unifiled/default.nix b/pkgs/development/python-modules/unifiled/default.nix
index 9b3b7274a4957..0c2ec7dd96459 100644
--- a/pkgs/development/python-modules/unifiled/default.nix
+++ b/pkgs/development/python-modules/unifiled/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  urllib3,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/unify/default.nix b/pkgs/development/python-modules/unify/default.nix
index 52c6ba64e59f3..9f6f7d929c6e4 100644
--- a/pkgs/development/python-modules/unify/default.nix
+++ b/pkgs/development/python-modules/unify/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, pytestCheckHook
-, untokenize
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  pytestCheckHook,
+  untokenize,
 }:
 
 buildPythonPackage rec {
@@ -21,21 +22,13 @@ buildPythonPackage rec {
     hash = "sha256-cWV/Q+LbeIxnQNqyatRWQUF8X+HHlQdc10y9qJ7v3dA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    untokenize
-  ];
+  propagatedBuildInputs = [ untokenize ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "unify"
-  ];
+  pythonImportsCheck = [ "unify" ];
 
   disabledTests = [
     # https://github.com/myint/unify/issues/21
diff --git a/pkgs/development/python-modules/unique-log-filter/default.nix b/pkgs/development/python-modules/unique-log-filter/default.nix
index 2b91ab437adfb..45e86a083dadf 100644
--- a/pkgs/development/python-modules/unique-log-filter/default.nix
+++ b/pkgs/development/python-modules/unique-log-filter/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-av1pVPDsO2dto5fhBK74jKfVsVY2ChyUE5NNja2B1Qw=";
   };
 
-  build-system = [
-    flit-core
-  ];
+  build-system = [ flit-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "unique_log_filter"
-  ];
+  pythonImportsCheck = [ "unique_log_filter" ];
 
   meta = with lib; {
-    description = "A log filter that removes duplicate log messages";
+    description = "Log filter that removes duplicate log messages";
     homepage = "https://github.com/twizmwazin/unique_log_filter";
     changelog = "https://github.com/twizmwazin/unique_log_filter/releases/tag/v${version}";
     license = licenses.bsd2;
diff --git a/pkgs/development/python-modules/unittest-data-provider/default.nix b/pkgs/development/python-modules/unittest-data-provider/default.nix
index 9d60e7ccaeb66..d6f3389540de0 100644
--- a/pkgs/development/python-modules/unittest-data-provider/default.nix
+++ b/pkgs/development/python-modules/unittest-data-provider/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/unittest-xml-reporting/default.nix b/pkgs/development/python-modules/unittest-xml-reporting/default.nix
index 36768b0fccb77..030ab4337ec70 100644
--- a/pkgs/development/python-modules/unittest-xml-reporting/default.nix
+++ b/pkgs/development/python-modules/unittest-xml-reporting/default.nix
@@ -1,44 +1,48 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, lxml
-, pythonAtLeast
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  lxml,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "unittest-xml-reporting";
   version = "3.2.0";
-  format = "setuptools";
+  pyproject = true;
+
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "xmlrunner";
     repo = "unittest-xml-reporting";
-    rev = version;
+    rev = "refs/tags/${version}";
     hash = "sha256-lOJ/+8CVJUXdIaZLLF5PpPkG0DzlNgo46kRZ1Xy7Ju0=";
   };
 
-  propagatedBuildInputs = [
-    lxml
-  ];
+  build-system = [ setuptools ];
+
+  dependencies = [ lxml ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = lib.optionals (pythonAtLeast "3.11") [
-    # AttributeError: 'tuple' object has no attribute 'shortDescription'
-    "--deselect=tests/testsuite.py::XMLTestRunnerTestCase::test_basic_unittest_constructs"
-    "--deselect=tests/testsuite.py::XMLTestRunnerTestCase::test_unexpected_success"
-  ];
+  disabledTests =
+    lib.optionals (pythonAtLeast "3.11") [
+      # AttributeError: 'tuple' object has no attribute 'shortDescription'
+      "test_basic_unittest_constructs"
+      "test_unexpected_success"
+    ]
+    ++ lib.optionals (pythonAtLeast "3.12") [ "test_xmlrunner_hold_traceback" ];
 
   pythonImportsCheck = [ "xmlrunner" ];
 
   meta = with lib; {
+    description = "Unittest-based test runner with Ant/JUnit like XML reporting";
     homepage = "https://github.com/xmlrunner/unittest-xml-reporting";
-    description = "unittest-based test runner with Ant/JUnit like XML reporting";
+    changelog = "https://github.com/xmlrunner/unittest-xml-reporting/releases/tag/${version}";
     license = licenses.bsd2;
     maintainers = with maintainers; [ rprospero ];
   };
diff --git a/pkgs/development/python-modules/univers/default.nix b/pkgs/development/python-modules/univers/default.nix
index 3308be6a9b29c..081641c6cb65e 100644
--- a/pkgs/development/python-modules/univers/default.nix
+++ b/pkgs/development/python-modules/univers/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, attrs
-, buildPythonPackage
-, commoncode
-, fetchPypi
-, packaging
-, pyparsing
-, pytestCheckHook
-, pythonOlder
-, saneyaml
-, semantic-version
-, semver
-, setuptools-scm
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  commoncode,
+  fetchPypi,
+  packaging,
+  pyparsing,
+  pytestCheckHook,
+  pythonOlder,
+  saneyaml,
+  semantic-version,
+  semver,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-xyrg8B+C5xUN8zHLrMbAe/MWjZb8fCL0MIAz2w4B7/U=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     attrs
@@ -45,9 +44,7 @@ buildPythonPackage rec {
 
   dontConfigure = true; # ./configure tries to setup virtualenv and downloads dependencies
 
-  pythonImportsCheck = [
-    "univers"
-  ];
+  pythonImportsCheck = [ "univers" ];
 
   disabledTests = [
     # No value for us
@@ -61,7 +58,14 @@ buildPythonPackage rec {
     description = "Library for parsing version ranges and expressions";
     homepage = "https://github.com/nexB/univers";
     changelog = "https://github.com/nexB/univers/blob/v${version}/CHANGELOG.rst";
-    license = with licenses; [ asl20 bsd3 mit ];
-    maintainers = with maintainers; [ armijnhemel sbruder ];
+    license = with licenses; [
+      asl20
+      bsd3
+      mit
+    ];
+    maintainers = with maintainers; [
+      armijnhemel
+      sbruder
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/universal-pathlib/default.nix b/pkgs/development/python-modules/universal-pathlib/default.nix
index 195d6cbfe2a86..e44fed7b9752a 100644
--- a/pkgs/development/python-modules/universal-pathlib/default.nix
+++ b/pkgs/development/python-modules/universal-pathlib/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, setuptools
-, setuptools-scm
-, fsspec
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  fsspec,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    fsspec
-  ];
+  propagatedBuildInputs = [ fsspec ];
 
   pythonImportsCheck = [ "upath" ];
 
diff --git a/pkgs/development/python-modules/universal-silabs-flasher/default.nix b/pkgs/development/python-modules/universal-silabs-flasher/default.nix
index bfc6bb97aab4e..55551a5206ef7 100644
--- a/pkgs/development/python-modules/universal-silabs-flasher/default.nix
+++ b/pkgs/development/python-modules/universal-silabs-flasher/default.nix
@@ -1,39 +1,39 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, pythonRelaxDepsHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# dependencies
-, async-timeout
-, bellows
-, click
-, coloredlogs
-, crc
-, libgpiod
-, typing-extensions
-, zigpy
+  # dependencies
+  async-timeout,
+  bellows,
+  click,
+  coloredlogs,
+  crc,
+  libgpiod,
+  typing-extensions,
+  zigpy,
 
-# tests
-, pytestCheckHook
-, pytest-asyncio
-, pytest-mock
-, pytest-timeout
+  # tests
+  pytestCheckHook,
+  pytest-asyncio,
+  pytest-mock,
+  pytest-timeout,
 }:
 
 buildPythonPackage rec {
   pname = "universal-silabs-flasher";
-  version = "0.0.19";
+  version = "0.0.20";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "NabuCasa";
     repo = "universal-silabs-flasher";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VoO9B27CNY2Cnt/Q2HsU6DVYkukQMgbIHc6xqfN0P7w=";
+    hash = "sha256-+wmBsb7zsN6vdNqUvozV317kEZCg1b+lBToRSdN2YM4=";
   };
 
   postPatch = ''
@@ -42,13 +42,8 @@ buildPythonPackage rec {
       --replace-fail 'dynamic = ["version"]' 'version = "${version}"'
   '';
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   pythonRelaxDeps = [
     # https://github.com/NabuCasa/universal-silabs-flasher/pull/50
@@ -63,9 +58,7 @@ buildPythonPackage rec {
     crc
     typing-extensions
     zigpy
-  ] ++ lib.optionals (stdenv.hostPlatform.isLinux) [
-    libgpiod
-  ];
+  ] ++ lib.optionals (stdenv.hostPlatform.isLinux) [ libgpiod ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/unix-ar/default.nix b/pkgs/development/python-modules/unix-ar/default.nix
index d77c542b3a9e6..04155e74221e7 100644
--- a/pkgs/development/python-modules/unix-ar/default.nix
+++ b/pkgs/development/python-modules/unix-ar/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/unpaddedbase64/default.nix b/pkgs/development/python-modules/unpaddedbase64/default.nix
index b5ff5be20616b..f21eff8ec6f9b 100644
--- a/pkgs/development/python-modules/unpaddedbase64/default.nix
+++ b/pkgs/development/python-modules/unpaddedbase64/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -16,14 +17,11 @@ buildPythonPackage rec {
     sha256 = "1n6har8pxv0mqb96lanzihp1xf76aa17jw3977drb1fgz947pnmz";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   meta = with lib; {
     homepage = "https://github.com/matrix-org/python-unpaddedbase64";
     description = "Unpadded Base64";
     license = licenses.asl20;
   };
-
 }
diff --git a/pkgs/development/python-modules/unrardll/default.nix b/pkgs/development/python-modules/unrardll/default.nix
index c11cf39546ce8..ef69a9bbe94ea 100644
--- a/pkgs/development/python-modules/unrardll/default.nix
+++ b/pkgs/development/python-modules/unrardll/default.nix
@@ -1,4 +1,10 @@
-{ lib, stdenv, buildPythonPackage, fetchPypi, unrar }:
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  unrar,
+}:
 
 buildPythonPackage rec {
   pname = "unrardll";
diff --git a/pkgs/development/python-modules/unrpa/default.nix b/pkgs/development/python-modules/unrpa/default.nix
index f02056506b11b..c64443ff66614 100644
--- a/pkgs/development/python-modules/unrpa/default.nix
+++ b/pkgs/development/python-modules/unrpa/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, uncompyle6
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  uncompyle6,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -29,7 +30,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/Lattyware/unrpa";
     changelog = "https://github.com/Lattyware/unrpa/releases/tag/${version}";
-    description = "A program to extract files from the RPA archive format";
+    description = "Program to extract files from the RPA archive format";
     mainProgram = "unrpa";
     license = licenses.gpl3;
     maintainers = with maintainers; [ leo60228 ];
diff --git a/pkgs/development/python-modules/unstructured-api-tools/default.nix b/pkgs/development/python-modules/unstructured-api-tools/default.nix
index 6909d95eb26b2..0eae368c30c37 100644
--- a/pkgs/development/python-modules/unstructured-api-tools/default.nix
+++ b/pkgs/development/python-modules/unstructured-api-tools/default.nix
@@ -1,31 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-# propagated build inputs
-, click
-, fastapi
-, jinja2
-, mypy
-, nbconvert
-, python-multipart
-, pandas
-, types-requests
-, types-ujson
-, uvicorn
-, autoflake
-# native check inputs
-, pytestCheckHook
-, black
-, coverage
-, flake8
-, httpx
-, ipython
-, pytest-cov
-, requests
-, requests-toolbelt
-, nbdev
-, pytest-mock
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  # propagated build inputs
+  click,
+  fastapi,
+  jinja2,
+  mypy,
+  nbconvert,
+  python-multipart,
+  pandas,
+  types-requests,
+  types-ujson,
+  uvicorn,
+  autoflake,
+  # native check inputs
+  pytestCheckHook,
+  black,
+  coverage,
+  flake8,
+  httpx,
+  ipython,
+  pytest-cov,
+  requests,
+  requests-toolbelt,
+  nbdev,
+  pytest-mock,
 }:
 let
   version = "0.10.11";
diff --git a/pkgs/development/python-modules/unstructured-inference/default.nix b/pkgs/development/python-modules/unstructured-inference/default.nix
index 82cda0652a518..b619b5b70e454 100644
--- a/pkgs/development/python-modules/unstructured-inference/default.nix
+++ b/pkgs/development/python-modules/unstructured-inference/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-# runtime dependencies
-, layoutparser
-, python-multipart
-, huggingface-hub
-, opencv
-, onnxruntime
-, transformers
-, detectron2
-, paddleocr
-# check inputs
-, pytestCheckHook
-, coverage
-, click
-, httpx
-, mypy
-, pytest-cov
-, pdf2image
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  # runtime dependencies
+  layoutparser,
+  python-multipart,
+  huggingface-hub,
+  opencv,
+  onnxruntime,
+  transformers,
+  detectron2,
+  paddleocr,
+  # check inputs
+  pytestCheckHook,
+  coverage,
+  click,
+  httpx,
+  mypy,
+  pytest-cov,
+  pdf2image,
 }:
 
 buildPythonPackage rec {
@@ -37,19 +38,19 @@ buildPythonPackage rec {
       --replace "opencv-python" "opencv"
   '';
 
-  propagatedBuildInputs = [
-    layoutparser
-    python-multipart
-    huggingface-hub
-    opencv
-    onnxruntime
-    transformers
-    detectron2
-    paddleocr
-    # yolox
-  ]
-    ++ layoutparser.optional-dependencies.layoutmodels
-    ++ layoutparser.optional-dependencies.tesseract;
+  propagatedBuildInputs =
+    [
+      layoutparser
+      python-multipart
+      huggingface-hub
+      opencv
+      onnxruntime
+      transformers
+      detectron2
+      paddleocr
+      # yolox
+    ]
+    ++ layoutparser.optional-dependencies.layoutmodels ++ layoutparser.optional-dependencies.tesseract;
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -94,6 +95,10 @@ buildPythonPackage rec {
     changelog = "https://github.com/Unstructured-IO/unstructured-inference/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ happysalada ];
-    platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ];
+    platforms = [
+      "x86_64-linux"
+      "x86_64-darwin"
+      "aarch64-darwin"
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/unstructured/default.nix b/pkgs/development/python-modules/unstructured/default.nix
index 3b797ed297d70..5cc743b9e3213 100644
--- a/pkgs/development/python-modules/unstructured/default.nix
+++ b/pkgs/development/python-modules/unstructured/default.nix
@@ -1,62 +1,63 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-# propagated build inputs
-, chardet
-, filetype
-, lxml
-, msg-parser
-, nltk
-, openpyxl
-, pandas
-, pdf2image
-, pdfminer-six
-, pillow
-, pypandoc
-, python-docx
-, python-pptx
-, python-magic
-, markdown
-, requests
-, tabulate
-, xlrd
-# optional-dependencies
-, langdetect
-, sacremoses
-, sentencepiece
-, torch
-, transformers
-, unstructured-inference
-, s3fs
-, fsspec
-, adlfs
-# , discord-py
-, pygithub
-, python-gitlab
-, praw
-, slack-sdk
-, wikipedia
-, google-api-python-client
-# , gcsfs
-, elasticsearch8
-, jq
-# , dropboxdrivefs
-, atlassian-python-api
-# test dependencies
-, pytestCheckHook
-, black
-, coverage
-, click
-, freezegun
-# , label-studio-sdk
-, mypy
-, pytest-cov
-, pytest-mock
-, vcrpy
-, grpcio
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  # propagated build inputs
+  chardet,
+  filetype,
+  lxml,
+  msg-parser,
+  nltk,
+  openpyxl,
+  pandas,
+  pdf2image,
+  pdfminer-six,
+  pillow,
+  pypandoc,
+  python-docx,
+  python-pptx,
+  python-magic,
+  markdown,
+  requests,
+  tabulate,
+  xlrd,
+  # optional-dependencies
+  langdetect,
+  sacremoses,
+  sentencepiece,
+  torch,
+  transformers,
+  unstructured-inference,
+  s3fs,
+  fsspec,
+  adlfs,
+  # , discord-py
+  pygithub,
+  python-gitlab,
+  praw,
+  slack-sdk,
+  wikipedia,
+  google-api-python-client,
+  # , gcsfs
+  elasticsearch8,
+  jq,
+  # , dropboxdrivefs
+  atlassian-python-api,
+  # test dependencies
+  pytestCheckHook,
+  black,
+  coverage,
+  click,
+  freezegun,
+  # , label-studio-sdk
+  mypy,
+  pytest-cov,
+  pytest-mock,
+  vcrpy,
+  grpcio,
 }:
 let
-  version = "0.13.2";
+  version = "0.14.7";
   optional-dependencies = {
     huggingflace = [
       langdetect
@@ -66,8 +67,14 @@ let
       transformers
     ];
     local-inference = [ unstructured-inference ];
-    s3 = [ s3fs fsspec ];
-    azure = [ adlfs fsspec ];
+    s3 = [
+      s3fs
+      fsspec
+    ];
+    azure = [
+      adlfs
+      fsspec
+    ];
     discord = [ ]; # discord-py
     github = [ pygithub ];
     gitlab = [ python-gitlab ];
@@ -75,9 +82,12 @@ let
     slack = [ slack-sdk ];
     wikipedia = [ wikipedia ];
     google-drive = [ google-api-python-client ];
-    gcs = []; # gcsfs fsspec
-    elasticsearch = [ elasticsearch8 jq ];
-    dropbox = []; # dropboxdrivefs fsspec
+    gcs = [ ]; # gcsfs fsspec
+    elasticsearch = [
+      elasticsearch8
+      jq
+    ];
+    dropbox = [ ]; # dropboxdrivefs fsspec
     confluence = [ atlassian-python-api ];
   };
 in
@@ -90,7 +100,7 @@ buildPythonPackage {
     owner = "Unstructured-IO";
     repo = "unstructured";
     rev = "refs/tags/${version}";
-    hash = "sha256-6pR/tewHWstgIqqD8Jwj+AQutdhXU5aufm6RiEpXr9s=";
+    hash = "sha256-V4LUo3di25IJ09KOPwcrOfgPxxgdRbFJHiBkWYnmxYc=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/untangle/default.nix b/pkgs/development/python-modules/untangle/default.nix
index 253fd6bf9f9a8..097ad96a7c918 100644
--- a/pkgs/development/python-modules/untangle/default.nix
+++ b/pkgs/development/python-modules/untangle/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, unittestCheckHook, defusedxml }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  unittestCheckHook,
+  defusedxml,
+}:
 
 buildPythonPackage rec {
   pname = "untangle";
@@ -13,13 +19,14 @@ buildPythonPackage rec {
     hash = "sha256-cJkN8vT5hW5hRuLxr/6udwMO4GVH1pJhAc6qmPO2EEI=";
   };
 
-  propagatedBuildInputs = [
-    defusedxml
-  ];
+  propagatedBuildInputs = [ defusedxml ];
 
   nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [ "-s" "tests" ];
+  unittestFlagsArray = [
+    "-s"
+    "tests"
+  ];
 
   meta = with lib; {
     description = "Convert XML documents into Python objects";
diff --git a/pkgs/development/python-modules/untokenize/default.nix b/pkgs/development/python-modules/untokenize/default.nix
index 079a915cee190..e4f6eea843e1c 100644
--- a/pkgs/development/python-modules/untokenize/default.nix
+++ b/pkgs/development/python-modules/untokenize/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/uonet-request-signer-hebe/default.nix b/pkgs/development/python-modules/uonet-request-signer-hebe/default.nix
index 19d4bba0b9745..3e8fc7fc5f2f6 100644
--- a/pkgs/development/python-modules/uonet-request-signer-hebe/default.nix
+++ b/pkgs/development/python-modules/uonet-request-signer-hebe/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pyopenssl
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pyopenssl,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     sha256 = "fidopnpAt5CXPsLbx+V8wrJCQQ/WIO6AqxpsYLDv8qM=";
   };
 
-  propagatedBuildInputs = [
-    pyopenssl
-  ];
+  propagatedBuildInputs = [ pyopenssl ];
 
   # Source is not tagged
   doCheck = false;
 
-  pythonImportsCheck = [
-    "uonet_request_signer_hebe"
-  ];
+  pythonImportsCheck = [ "uonet_request_signer_hebe" ];
 
   meta = with lib; {
     description = "UONET+ (hebe) request signer for Python";
diff --git a/pkgs/development/python-modules/upass/default.nix b/pkgs/development/python-modules/upass/default.nix
index d8473bd518519..79d2e4389ac6c 100644
--- a/pkgs/development/python-modules/upass/default.nix
+++ b/pkgs/development/python-modules/upass/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyperclip
-, urwid
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyperclip,
+  urwid,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     mkdir $HOME/.config
   '';
 
-  pythonImportsCheck = [
-    "upass"
-  ];
+  pythonImportsCheck = [ "upass" ];
 
   meta = with lib; {
     description = "Console UI for pass";
diff --git a/pkgs/development/python-modules/upb-lib/default.nix b/pkgs/development/python-modules/upb-lib/default.nix
index da85053a7d18e..a1170ed32ff34 100644
--- a/pkgs/development/python-modules/upb-lib/default.nix
+++ b/pkgs/development/python-modules/upb-lib/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyserial-asyncio-fast
-, pytestCheckHook
-, pythonOlder
-, pytz
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyserial-asyncio-fast,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -22,18 +23,14 @@ buildPythonPackage rec {
     hash = "sha256-e8LYywKA5lNZ4UYFZTwcfePDWB4cTNz38Tiy4xzOxOs=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     pyserial-asyncio-fast
     pytz
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "upb_lib" ];
 
diff --git a/pkgs/development/python-modules/upcloud-api/default.nix b/pkgs/development/python-modules/upcloud-api/default.nix
index 304feaf069ffe..350d52e9d181c 100644
--- a/pkgs/development/python-modules/upcloud-api/default.nix
+++ b/pkgs/development/python-modules/upcloud-api/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, pytestCheckHook
-, responses
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  pytestCheckHook,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-fMsI0aZ8jA08rrNPm8HmfYz/a3HLUExvvXIeDGPh2e8=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/update-checker/default.nix b/pkgs/development/python-modules/update-checker/default.nix
index 4a6056a99f7b3..848028378a452 100644
--- a/pkgs/development/python-modules/update-checker/default.nix
+++ b/pkgs/development/python-modules/update-checker/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, requests, isPy27
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  isPy27,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +24,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A python module that will check for package updates";
+    description = "Python module that will check for package updates";
     homepage = "https://github.com/bboe/update_checker";
     license = licenses.bsd2;
   };
diff --git a/pkgs/development/python-modules/update-copyright/default.nix b/pkgs/development/python-modules/update-copyright/default.nix
index 2abb9945ece2c..1ad99b7ff4bd4 100644
--- a/pkgs/development/python-modules/update-copyright/default.nix
+++ b/pkgs/development/python-modules/update-copyright/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+}:
 
 buildPythonPackage rec {
   pname = "update-copyright";
@@ -16,7 +21,7 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "An automatic copyright update tool";
+    description = "Automatic copyright update tool";
     mainProgram = "update-copyright.py";
     homepage = "http://blog.tremily.us/posts/update-copyright";
     license = licenses.gpl3;
diff --git a/pkgs/development/python-modules/update-dotdee/default.nix b/pkgs/development/python-modules/update-dotdee/default.nix
index 7b9f4e3ccc9e3..d6f92a0e40619 100644
--- a/pkgs/development/python-modules/update-dotdee/default.nix
+++ b/pkgs/development/python-modules/update-dotdee/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, coloredlogs
-, executor
-, fetchFromGitHub
-, humanfriendly
-, naturalsort
-, property-manager
-, pytestCheckHook
-, pythonOlder
-, six
+{
+  lib,
+  buildPythonPackage,
+  coloredlogs,
+  executor,
+  fetchFromGitHub,
+  humanfriendly,
+  naturalsort,
+  property-manager,
+  pytestCheckHook,
+  pythonOlder,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -34,18 +35,14 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace tox.ini \
       --replace " --cov --showlocals --verbose" ""
   '';
 
-  pythonImportsCheck = [
-    "update_dotdee"
-  ];
+  pythonImportsCheck = [ "update_dotdee" ];
 
   disabledTests = [
     # TypeError: %o format: an integer is required, not str
diff --git a/pkgs/development/python-modules/uplc/default.nix b/pkgs/development/python-modules/uplc/default.nix
index a3aa8d10e7adc..8d93cd5926267 100644
--- a/pkgs/development/python-modules/uplc/default.nix
+++ b/pkgs/development/python-modules/uplc/default.nix
@@ -1,16 +1,16 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, pythonRelaxDepsHook
-# Python deps
-, frozenlist2
-, python-secp256k1-cardano
-, setuptools
-, poetry-core
-, frozendict
-, cbor2
-, rply
-, pycardano
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  # Python deps
+  frozenlist2,
+  python-secp256k1-cardano,
+  setuptools,
+  poetry-core,
+  frozendict,
+  cbor2,
+  rply,
+  pycardano,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +26,6 @@ buildPythonPackage rec {
     hash = "sha256-djJMNXijMVzMVzw8NZSe3YFRGyAPqdvr0P374Za5XkU=";
   };
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   propagatedBuildInputs = [
     setuptools
@@ -41,7 +38,10 @@ buildPythonPackage rec {
     python-secp256k1-cardano
   ];
 
-  pythonRelaxDeps = [ "pycardano" "rply" ];
+  pythonRelaxDeps = [
+    "pycardano"
+    "rply"
+  ];
 
   pythonImportsCheck = [ "uplc" ];
 
diff --git a/pkgs/development/python-modules/upnpy/default.nix b/pkgs/development/python-modules/upnpy/default.nix
index 62cc708f5cc23..b6677afbd2b2f 100644
--- a/pkgs/development/python-modules/upnpy/default.nix
+++ b/pkgs/development/python-modules/upnpy/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/uproot/default.nix b/pkgs/development/python-modules/uproot/default.nix
index 4fd55870b0f42..efcb91c202e52 100644
--- a/pkgs/development/python-modules/uproot/default.nix
+++ b/pkgs/development/python-modules/uproot/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, awkward
-, cramjam
-, hatch-vcs
-, hatchling
-, numpy
-, fsspec
-, packaging
-, pandas
-, pytestCheckHook
-, pytest-timeout
-, rangehttpserver
-, scikit-hep-testdata
-, xxhash
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  awkward,
+  cramjam,
+  hatch-vcs,
+  hatchling,
+  numpy,
+  fsspec,
+  packaging,
+  pandas,
+  pytestCheckHook,
+  pytest-timeout,
+  rangehttpserver,
+  scikit-hep-testdata,
+  xxhash,
 }:
 
 buildPythonPackage rec {
   pname = "uproot";
-  version = "5.3.2";
+  version = "5.3.7";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -28,15 +29,15 @@ buildPythonPackage rec {
     owner = "scikit-hep";
     repo = "uproot5";
     rev = "refs/tags/v${version}";
-    hash = "sha256-dq362pevqgLx5KwZ19zQ6aOn5NCyiqynPCF7YdI6tkw=";
+    hash = "sha256-ptfT31eUNSpVaZfXAyRcIc2T2p82rXmzUyySSVbI9lI=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     hatch-vcs
     hatchling
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     awkward
     cramjam
     numpy
@@ -76,6 +77,7 @@ buildPythonPackage rec {
     "test_http_size"
     "test_http_size_port"
     "test_issue_1054_filename_colons"
+    "test_multiple_page_lists"
     "test_no_multipart"
     "test_open_fsspec_github"
     "test_open_fsspec_http"
@@ -83,6 +85,7 @@ buildPythonPackage rec {
     "test_pickle_roundtrip_http"
     "test_split_ranges_if_large_file_in_http"
     # Cyclic dependency with dask-awkward
+    "test_dask_duplicated_keys"
     "test_decompression_executor_for_dask"
   ];
 
@@ -96,9 +99,7 @@ buildPythonPackage rec {
     "tests/test_1043_const_std_string.py"
   ];
 
-  pythonImportsCheck = [
-    "uproot"
-  ];
+  pythonImportsCheck = [ "uproot" ];
 
   meta = with lib; {
     description = "ROOT I/O in pure Python and Numpy";
diff --git a/pkgs/development/python-modules/uptime-kuma-api/default.nix b/pkgs/development/python-modules/uptime-kuma-api/default.nix
index f1f086c2661b5..7d1e6cb975f6a 100644
--- a/pkgs/development/python-modules/uptime-kuma-api/default.nix
+++ b/pkgs/development/python-modules/uptime-kuma-api/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, packaging
-, python-socketio
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  packaging,
+  python-socketio,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,15 +26,13 @@ buildPythonPackage rec {
     python-socketio.optional-dependencies.client
   ];
 
-  pythonImportsCheck = [
-    "uptime_kuma_api"
-  ];
+  pythonImportsCheck = [ "uptime_kuma_api" ];
 
   # Tests need an uptime-kuma instance to run
   doCheck = false;
 
   meta = with lib; {
-    description = "A Python wrapper for the Uptime Kuma Socket.IO API";
+    description = "Python wrapper for the Uptime Kuma Socket.IO API";
     homepage = "https://github.com/lucasheld/uptime-kuma-api";
     changelog = "https://github.com/lucasheld/uptime-kuma-api/blob/${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
diff --git a/pkgs/development/python-modules/uptime-kuma-monitor/default.nix b/pkgs/development/python-modules/uptime-kuma-monitor/default.nix
index f689942abf93e..dcc901125d661 100644
--- a/pkgs/development/python-modules/uptime-kuma-monitor/default.nix
+++ b/pkgs/development/python-modules/uptime-kuma-monitor/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, requests
-, buildPythonPackage
-, fetchPypi
-, prometheus-client
-, pythonOlder
+{
+  lib,
+  requests,
+  buildPythonPackage,
+  fetchPypi,
+  prometheus-client,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
   # Project has no test
   doCheck = false;
 
-  pythonImportsCheck = [
-    "uptime_kuma_monitor"
-  ];
+  pythonImportsCheck = [ "uptime_kuma_monitor" ];
 
   meta = with lib; {
     description = "Python wrapper around UptimeKuma /metrics endpoint";
diff --git a/pkgs/development/python-modules/uptime/default.nix b/pkgs/development/python-modules/uptime/default.nix
index 7dd3710b81d36..d20bd4dc5506c 100644
--- a/pkgs/development/python-modules/uptime/default.nix
+++ b/pkgs/development/python-modules/uptime/default.nix
@@ -1,23 +1,34 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "uptime";
   version = "3.0.1";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0wr9jkixprlywz0plyn5p42a5fd31aiwvjrxdvj7r02vfxa04c3w";
+    hash = "sha256-fDACVHdbgHzkbj3LzaMKo7miBLnFenrB557m2+OUKXM=";
   };
 
+  build-system = [ setuptools ];
+
+  # Tests are not shipped
+  doCheck = false;
+
+  pythonImportsCheck = [ "uptime" ];
+
   meta = with lib; {
-    homepage = "https://github.com/Cairnarvon/uptime";
     description = "Cross-platform way to retrieve system uptime and boot time";
+    homepage = "https://github.com/Cairnarvon/uptime";
     license = licenses.bsd2;
     maintainers = with maintainers; [ rob ];
   };
-
 }
diff --git a/pkgs/development/python-modules/uqbar/default.nix b/pkgs/development/python-modules/uqbar/default.nix
index 83ccc7fe11fd8..63eaa24ab4fbf 100644
--- a/pkgs/development/python-modules/uqbar/default.nix
+++ b/pkgs/development/python-modules/uqbar/default.nix
@@ -1,12 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, setuptools
-, sphinx
-, unidecode
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  defusedxml,
+  setuptools,
+  sphinx,
+  typing-extensions,
+  unidecode,
 }:
 
 buildPythonPackage rec {
@@ -27,40 +30,42 @@ buildPythonPackage rec {
     -e "/--cov/d"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     unidecode
     sphinx
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = [
-    # UnboundLocalError: local variable 'output_path' referenced before assignment
-    "test_01"
-    # AssertionError: assert False
-    "test_sphinx_book_html_cached"
-    # FileNotFoundError: [Errno 2] No such file or directory: 'unflatten'
-    "test_sphinx_style_html"
-    # assert not ["\x1b[91mWARNING: dot command 'dot' cannot be run (needed for
-    # graphviz output), check the graphviz_dot setting\x1b[39;49;00m"]
-    "test_sphinx_style_latex"
-  ] ++ lib.optional (pythonAtLeast "3.11") [
-    # assert not '\x1b[91m/build/uqbar-0.7.0/tests/fake_package/enums.py:docstring
-    "test_sphinx_style"
-  ] ++ lib.optional (pythonAtLeast "3.12") [
-    # https://github.com/josiah-wolf-oberholtzer/uqbar/issues/93
-    "objects.get_vars"
+  checkInputs = [
+    defusedxml
+    typing-extensions
   ];
 
-  pythonImportsCheck = [
-    "uqbar"
-  ];
+  disabledTests =
+    [
+      # UnboundLocalError: local variable 'output_path' referenced before assignment
+      "test_01"
+      # AssertionError: assert False
+      "test_sphinx_book_html_cached"
+      # FileNotFoundError: [Errno 2] No such file or directory: 'unflatten'
+      "test_sphinx_style_html"
+      # assert not ["\x1b[91mWARNING: dot command 'dot' cannot be run (needed for
+      # graphviz output), check the graphviz_dot setting\x1b[39;49;00m"]
+      "test_sphinx_style_latex"
+    ]
+    ++ lib.optional (pythonAtLeast "3.11") [
+      # assert not '\x1b[91m/build/uqbar-0.7.0/tests/fake_package/enums.py:docstring
+      "test_sphinx_style"
+    ]
+    ++ lib.optional (pythonAtLeast "3.12") [
+      # https://github.com/josiah-wolf-oberholtzer/uqbar/issues/93
+      "objects.get_vars"
+    ];
+
+  pythonImportsCheck = [ "uqbar" ];
 
   meta = with lib; {
     description = "Tools for creating Sphinx and Graphviz documentation";
diff --git a/pkgs/development/python-modules/uranium/default.nix b/pkgs/development/python-modules/uranium/default.nix
index 8af65b0cc65d7..3084b3018a0d0 100644
--- a/pkgs/development/python-modules/uranium/default.nix
+++ b/pkgs/development/python-modules/uranium/default.nix
@@ -1,5 +1,19 @@
-{ lib, buildPythonPackage, fetchFromGitHub, python, cmake
-, pyqt5, numpy, scipy, shapely, libarcus, cryptography, doxygen, gettext, pythonOlder }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  cmake,
+  pyqt5,
+  numpy,
+  scipy,
+  shapely,
+  libarcus,
+  cryptography,
+  doxygen,
+  gettext,
+  pythonOlder,
+}:
 
 buildPythonPackage rec {
   version = "4.12.0";
@@ -15,9 +29,22 @@ buildPythonPackage rec {
 
   disabled = pythonOlder "3.5.0";
 
-  buildInputs = [ python gettext ];
-  propagatedBuildInputs = [ pyqt5 numpy scipy shapely libarcus cryptography ];
-  nativeBuildInputs = [ cmake doxygen ];
+  buildInputs = [
+    python
+    gettext
+  ];
+  propagatedBuildInputs = [
+    pyqt5
+    numpy
+    scipy
+    shapely
+    libarcus
+    cryptography
+  ];
+  nativeBuildInputs = [
+    cmake
+    doxygen
+  ];
 
   postPatch = ''
     sed -i 's,/python''${PYTHON_VERSION_MAJOR}/dist-packages,/python''${PYTHON_VERSION_MAJOR}.''${PYTHON_VERSION_MINOR}/site-packages,g' CMakeLists.txt
@@ -28,10 +55,13 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A Python framework for building Desktop applications";
+    description = "Python framework for building Desktop applications";
     homepage = "https://github.com/Ultimaker/Uranium";
     license = licenses.lgpl3Plus;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ abbradar gebner ];
+    maintainers = with maintainers; [
+      abbradar
+      gebner
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/uri-template/default.nix b/pkgs/development/python-modules/uri-template/default.nix
index a403417b10934..e37fd44391483 100644
--- a/pkgs/development/python-modules/uri-template/default.nix
+++ b/pkgs/development/python-modules/uri-template/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
@@ -30,12 +31,10 @@ buildPythonPackage rec {
     ${python.interpreter} test.py
   '';
 
-  pythonImportsCheck = [
-    "uri_template"
-  ];
+  pythonImportsCheck = [ "uri_template" ];
 
   meta = with lib; {
-    description = "An implementation of RFC 6570 URI Templates";
+    description = "Implementation of RFC 6570 URI Templates";
     homepage = "https://github.com/plinss/uri_template/";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/uritemplate/default.nix b/pkgs/development/python-modules/uritemplate/default.nix
index 400d7d54e3265..1d757d4134a76 100644
--- a/pkgs/development/python-modules/uritemplate/default.nix
+++ b/pkgs/development/python-modules/uritemplate/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,23 +19,20 @@ buildPythonPackage rec {
     hash = "sha256-Q0bt/Fw7efaUvM1tYJmjIrvrYo2/LNhu6lWkVs5RJPA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "uritemplate"
-  ];
+  pythonImportsCheck = [ "uritemplate" ];
 
   meta = with lib; {
     description = "Implementation of RFC 6570 URI templates";
     homepage = "https://github.com/python-hyper/uritemplate";
     changelog = "https://github.com/python-hyper/uritemplate/blob/${version}/HISTORY.rst";
-    license = with licenses; [ asl20 bsd3 ];
+    license = with licenses; [
+      asl20
+      bsd3
+    ];
     maintainers = with maintainers; [ matthiasbeyer ];
   };
 }
diff --git a/pkgs/development/python-modules/uritools/default.nix b/pkgs/development/python-modules/uritools/default.nix
index 7975e0f742314..946bb76e40409 100644
--- a/pkgs/development/python-modules/uritools/default.nix
+++ b/pkgs/development/python-modules/uritools/default.nix
@@ -1,24 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "uritools";
-  version = "4.0.2";
+  version = "4.0.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-BN8reH0Ot2IA6DGTgqA1Yvv+R0H9ZsFVBrCNO4IR1XM=";
+    hash = "sha256-7gahgqnISUZM6dX6kXU5qsyO3SpJJNG3qr7uyryuO8I=";
   };
 
-  pythonImportsCheck = [
-    "uritools"
-  ];
+  pythonImportsCheck = [ "uritools" ];
 
   meta = with lib; {
     description = "RFC 3986 compliant, Unicode-aware, scheme-agnostic replacement for urlparse";
diff --git a/pkgs/development/python-modules/url-normalize/default.nix b/pkgs/development/python-modules/url-normalize/default.nix
index b851eccbe26fd..b914c8ae61ebf 100644
--- a/pkgs/development/python-modules/url-normalize/default.nix
+++ b/pkgs/development/python-modules/url-normalize/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, poetry-core
-, pytest-flakes
-, pytest-mock
-, pytest-socket
-, pytestCheckHook
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  poetry-core,
+  pytest-flakes,
+  pytest-mock,
+  pytest-socket,
+  pytestCheckHook,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
     hash = "sha256-WE3MM9B/voI23taFbLp2FYhl0uxOfuUWsaCTBG1hyiY=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   nativeCheckInputs = [
     pytest-flakes
@@ -51,9 +48,7 @@ buildPythonPackage rec {
     sed -i "/--flakes/d" tox.ini
   '';
 
-  pythonImportsCheck = [
-    "url_normalize"
-  ];
+  pythonImportsCheck = [ "url_normalize" ];
 
   meta = with lib; {
     description = "URL normalization for Python";
diff --git a/pkgs/development/python-modules/urlextract/default.nix b/pkgs/development/python-modules/urlextract/default.nix
index a5701ee651607..d7a605b69d69d 100644
--- a/pkgs/development/python-modules/urlextract/default.nix
+++ b/pkgs/development/python-modules/urlextract/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, dnspython
-, fetchPypi
-, filelock
-, idna
-, platformdirs
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, uritools
+{
+  lib,
+  buildPythonPackage,
+  dnspython,
+  fetchPypi,
+  filelock,
+  idna,
+  platformdirs,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  uritools,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-cFCOArqd83LiXPBkLbNnzs4nPocSzQzngXj8XdfqANs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     filelock
@@ -48,9 +47,7 @@ buildPythonPackage rec {
     "test_dns_cache_reuse"
   ];
 
-  pythonImportsCheck = [
-    "urlextract"
-  ];
+  pythonImportsCheck = [ "urlextract" ];
 
   meta = with lib; {
     description = "Collects and extracts URLs from given text";
diff --git a/pkgs/development/python-modules/urlgrabber/default.nix b/pkgs/development/python-modules/urlgrabber/default.nix
index f991bff5db11f..11d97578bae95 100644
--- a/pkgs/development/python-modules/urlgrabber/default.nix
+++ b/pkgs/development/python-modules/urlgrabber/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, pycurl, six }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pycurl,
+  six,
+}:
 
 buildPythonPackage rec {
   pname = "urlgrabber";
@@ -10,7 +16,10 @@ buildPythonPackage rec {
     sha256 = "075af8afabae6362482d254e5ac3ffa595d1766117b684e53d9c25c2e937e139";
   };
 
-  propagatedBuildInputs = [ pycurl six ];
+  propagatedBuildInputs = [
+    pycurl
+    six
+  ];
 
   meta = with lib; {
     homepage = "http://urlgrabber.baseurl.org";
diff --git a/pkgs/development/python-modules/urllib3/default.nix b/pkgs/development/python-modules/urllib3/default.nix
index 70d8750a84d02..1bffd501e763d 100644
--- a/pkgs/development/python-modules/urllib3/default.nix
+++ b/pkgs/development/python-modules/urllib3/default.nix
@@ -1,88 +1,84 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPyPy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
 
-# build-system
-, hatchling
+  # build-system
+  hatchling,
 
-# optional-dependencies
-, brotli
-, brotlicffi
-, pysocks
+  # optional-dependencies
+  brotli,
+  brotlicffi,
+  pysocks,
 
-# tests
-, backports-zoneinfo
-, pytestCheckHook
-, pytest-timeout
-, pythonOlder
-, tornado
-, trustme
+  # tests
+  backports-zoneinfo,
+  pytestCheckHook,
+  pytest-timeout,
+  pythonOlder,
+  tornado,
+  trustme,
 }:
 
-let self = buildPythonPackage rec {
-  pname = "urllib3";
-  version = "2.2.1";
-  pyproject = true;
+let
+  self = buildPythonPackage rec {
+    pname = "urllib3";
+    version = "2.2.2";
+    pyproject = true;
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-0FcIdsYaueUg13bDisu7WwWndtP5/5ilyP1RYqREzxk=";
-  };
+    src = fetchPypi {
+      inherit pname version;
+      hash = "sha256-3VBUhVSaelUoM9peYGNjnQ0XfATyO8OGTkHl3F9hIWg=";
+    };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+    nativeBuildInputs = [ hatchling ];
 
-  passthru.optional-dependencies = {
-    brotli = if isPyPy then [
-      brotlicffi
-    ] else [
-      brotli
-    ];
-    socks = [
-      pysocks
-    ];
-  };
+    passthru.optional-dependencies = {
+      brotli = if isPyPy then [ brotlicffi ] else [ brotli ];
+      socks = [ pysocks ];
+    };
 
-  nativeCheckInputs = [
-    pytest-timeout
-    pytestCheckHook
-    tornado
-    trustme
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    backports-zoneinfo
-  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+    nativeCheckInputs =
+      [
+        pytest-timeout
+        pytestCheckHook
+        tornado
+        trustme
+      ]
+      ++ lib.optionals (pythonOlder "3.9") [ backports-zoneinfo ]
+      ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  # Tests in urllib3 are mostly timeout-based instead of event-based and
-  # are therefore inherently flaky. On your own machine, the tests will
-  # typically build fine, but on a loaded cluster such as Hydra random
-  # timeouts will occur.
-  #
-  # The urllib3 test suite has two different timeouts in their test suite
-  # (see `test/__init__.py`):
-  # - SHORT_TIMEOUT
-  # - LONG_TIMEOUT
-  # When CI is in the env, LONG_TIMEOUT will be significantly increased.
-  # Still, failures can occur and for that reason tests are disabled.
-  doCheck = false;
+    # Tests in urllib3 are mostly timeout-based instead of event-based and
+    # are therefore inherently flaky. On your own machine, the tests will
+    # typically build fine, but on a loaded cluster such as Hydra random
+    # timeouts will occur.
+    #
+    # The urllib3 test suite has two different timeouts in their test suite
+    # (see `test/__init__.py`):
+    # - SHORT_TIMEOUT
+    # - LONG_TIMEOUT
+    # When CI is in the env, LONG_TIMEOUT will be significantly increased.
+    # Still, failures can occur and for that reason tests are disabled.
+    doCheck = false;
 
-  passthru.tests.pytest = self.overridePythonAttrs (_: { doCheck = true; });
+    passthru.tests.pytest = self.overridePythonAttrs (_: {
+      doCheck = true;
+    });
 
-  preCheck = ''
-    export CI # Increases LONG_TIMEOUT
-  '';
+    preCheck = ''
+      export CI # Increases LONG_TIMEOUT
+    '';
 
-  pythonImportsCheck = [
-    "urllib3"
-  ];
+    pythonImportsCheck = [ "urllib3" ];
 
-  meta = with lib; {
-    description = "Powerful, user-friendly HTTP client for Python";
-    homepage = "https://github.com/urllib3/urllib3";
-    changelog = "https://github.com/urllib3/urllib3/blob/${version}/CHANGES.rst";
-    license = licenses.mit;
-    maintainers = with maintainers; [ fab ];
+    meta = with lib; {
+      description = "Powerful, user-friendly HTTP client for Python";
+      homepage = "https://github.com/urllib3/urllib3";
+      changelog = "https://github.com/urllib3/urllib3/blob/${version}/CHANGES.rst";
+      license = licenses.mit;
+      maintainers = with maintainers; [ fab ];
+    };
   };
-};
-in self
+in
+self
diff --git a/pkgs/development/python-modules/urlman/default.nix b/pkgs/development/python-modules/urlman/default.nix
index 8bc7ce028299d..fb6ca4ebb5e95 100644
--- a/pkgs/development/python-modules/urlman/default.nix
+++ b/pkgs/development/python-modules/urlman/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,9 @@ buildPythonPackage rec {
     hash = "sha256-p6lRuMHM2xJrlY5LDa0XLCGQPDE39UwCouK6e0U9zJE=";
   };
 
-  pythonImportsCheck = [
-    "urlman"
-  ];
+  pythonImportsCheck = [ "urlman" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Django URL pattern helpers";
diff --git a/pkgs/development/python-modules/urlpy/default.nix b/pkgs/development/python-modules/urlpy/default.nix
index ad793f593969e..fda5519701faa 100644
--- a/pkgs/development/python-modules/urlpy/default.nix
+++ b/pkgs/development/python-modules/urlpy/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, publicsuffix2
-, pytestCheckHook
-, pythonAtLeast
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  publicsuffix2,
+  pytestCheckHook,
+  pythonAtLeast,
 }:
 buildPythonPackage rec {
   pname = "urlpy";
@@ -19,22 +20,16 @@ buildPythonPackage rec {
 
   dontConfigure = true;
 
-  propagatedBuildInputs = [
-    publicsuffix2
-  ];
+  propagatedBuildInputs = [ publicsuffix2 ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = lib.optionals (pythonAtLeast "3.9") [
     # Fails with "AssertionError: assert 'unknown' == ''"
     "test_unknown_protocol"
   ];
 
-  pythonImportsCheck = [
-    "urlpy"
-  ];
+  pythonImportsCheck = [ "urlpy" ];
 
   meta = with lib; {
     description = "Simple URL parsing, canonicalization and equivalence";
diff --git a/pkgs/development/python-modules/urwid-mitmproxy/default.nix b/pkgs/development/python-modules/urwid-mitmproxy/default.nix
index 60dd32fc6fc39..09e28d2839635 100644
--- a/pkgs/development/python-modules/urwid-mitmproxy/default.nix
+++ b/pkgs/development/python-modules/urwid-mitmproxy/default.nix
@@ -1,10 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, glibcLocales
-, pythonOlder
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-93AauYWbrG/2smAhbNKGE0twGJZ2u9gBetlXGCpciH8=";
   };
 
-  pythonImportsCheck = [
-    "urwid"
-  ];
+  pythonImportsCheck = [ "urwid" ];
 
   # Tests which assert on strings don't decode results correctly, see urwid
   doCheck = false;
diff --git a/pkgs/development/python-modules/urwid-readline/default.nix b/pkgs/development/python-modules/urwid-readline/default.nix
index 3e47f886cdb70..72e17928a5f0d 100644
--- a/pkgs/development/python-modules/urwid-readline/default.nix
+++ b/pkgs/development/python-modules/urwid-readline/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, urwid
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  urwid,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,22 +19,16 @@ buildPythonPackage rec {
     hash = "sha256-ZTg+GZnu7R6Jf2+SIwVo57yHnjwuY92DElTJs8oRErE=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    urwid
-  ];
+  propagatedBuildInputs = [ urwid ];
 
   pythonImportsCheck = [ "urwid_readline" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
-    description = "A textbox edit widget for urwid that supports readline shortcuts";
+    description = "Textbox edit widget for urwid that supports readline shortcuts";
     homepage = "https://github.com/rr-/urwid_readline";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
diff --git a/pkgs/development/python-modules/urwid/default.nix b/pkgs/development/python-modules/urwid/default.nix
index aff9556f04b50..7e8091dac4dab 100644
--- a/pkgs/development/python-modules/urwid/default.nix
+++ b/pkgs/development/python-modules/urwid/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, exceptiongroup
-, fetchFromGitHub
-, glibcLocales
-, pygobject3
-, pyserial
-, pytestCheckHook
-, pythonOlder
-, pyzmq
-, setuptools
-, setuptools-scm
-, tornado
-, trio
-, twisted
-, typing-extensions
-, wcwidth
+{
+  lib,
+  buildPythonPackage,
+  exceptiongroup,
+  fetchFromGitHub,
+  glibcLocales,
+  pygobject3,
+  pyserial,
+  pytestCheckHook,
+  pythonOlder,
+  pyzmq,
+  setuptools,
+  setuptools-scm,
+  tornado,
+  trio,
+  twisted,
+  typing-extensions,
+  wcwidth,
 }:
 
 buildPythonPackage rec {
   pname = "urwid";
-  version = "2.6.11";
+  version = "2.6.14";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -28,46 +29,34 @@ buildPythonPackage rec {
     owner = "urwid";
     repo = "urwid";
     rev = "refs/tags/${version}";
-    hash = "sha256-EArHHsHqr1z+UhdsUCc4IPZa33sSCaR1sDSr7eCGSOM=";
+    hash = "sha256-UDYIAAAKmdqtTzV8yn1zkEH0PvOUmVXodxF1ZyubgE0=";
   };
 
   postPatch = ''
     sed -i '/addopts =/d' pyproject.toml
   '';
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     typing-extensions
     wcwidth
   ];
 
   passthru.optional-dependencies = {
-    glib = [
-      pygobject3
-    ];
-    tornado = [
-      tornado
-    ];
+    glib = [ pygobject3 ];
+    tornado = [ tornado ];
     trio = [
       exceptiongroup
       trio
     ];
-    twisted = [
-      twisted
-    ];
-    zmq = [
-      pyzmq
-    ];
-    serial = [
-      pyserial
-    ];
-    lcd = [
-      pyserial
-    ];
+    twisted = [ twisted ];
+    zmq = [ pyzmq ];
+    serial = [ pyserial ];
+    lcd = [ pyserial ];
   };
 
   nativeCheckInputs = [
@@ -77,21 +66,17 @@ buildPythonPackage rec {
 
   env.LC_ALL = "en_US.UTF8";
 
-  pytestFlagsArray = [
-    "tests"
-  ];
+  pytestFlagsArray = [ "tests" ];
 
   disabledTestPaths = [
     # expect call hangs
     "tests/test_vterm.py"
   ];
 
-  pythonImportsCheck = [
-    "urwid"
-  ];
+  pythonImportsCheck = [ "urwid" ];
 
   meta = with lib; {
-    description = "A full-featured console (xterm et al.) user interface library";
+    description = "Full-featured console (xterm et al.) user interface library";
     changelog = "https://github.com/urwid/urwid/releases/tag/${version}";
     downloadPage = "https://github.com/urwid/urwid";
     homepage = "https://urwid.org/";
diff --git a/pkgs/development/python-modules/urwidgets/default.nix b/pkgs/development/python-modules/urwidgets/default.nix
index 82e4eee38379e..4a1bbdd9ff172 100644
--- a/pkgs/development/python-modules/urwidgets/default.nix
+++ b/pkgs/development/python-modules/urwidgets/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, urwid
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  urwid,
 }:
 
 buildPythonPackage rec {
@@ -20,20 +21,14 @@ buildPythonPackage rec {
     hash = "sha256-ultlfNeCGFTqKaMeXu0+NihkN5/6NtMewk33YfIzhu8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    urwid
-  ];
+  propagatedBuildInputs = [ urwid ];
 
-  pythonImportsCheck = [
-    "urwidgets"
-  ];
+  pythonImportsCheck = [ "urwidgets" ];
 
   meta = with lib; {
-    description = "A collection of widgets for urwid";
+    description = "Collection of widgets for urwid";
     homepage = "https://github.com/AnonymouX47/urwidgets";
     changelog = "https://github.com/AnonymouX47/urwidgets/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/urwidtrees/default.nix b/pkgs/development/python-modules/urwidtrees/default.nix
index f12f91906efaa..0f03b4fdbc4ea 100644
--- a/pkgs/development/python-modules/urwidtrees/default.nix
+++ b/pkgs/development/python-modules/urwidtrees/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, setuptools
-, urwid
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  setuptools,
+  urwid,
 }:
 
 buildPythonPackage rec {
   pname = "urwidtrees";
-  version  = "1.0.3";
+  version = "1.0.3";
   pyproject = true;
 
   src = fetchFromGitHub {
@@ -21,24 +22,18 @@ buildPythonPackage rec {
   patches = [
     (fetchpatch {
       url = "https://github.com/pazz/urwidtrees/commit/ed39dbc4fc67b0e0249bf108116a88cd18543aa9.patch";
-    hash = "sha256-fA+30d2uVaoNCg4rtoWLNPvrZtq41Co4vcmM80hkURs=";
+      hash = "sha256-fA+30d2uVaoNCg4rtoWLNPvrZtq41Co4vcmM80hkURs=";
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    urwid
-  ];
+  propagatedBuildInputs = [ urwid ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "urwidtrees"
-  ];
+  pythonImportsCheck = [ "urwidtrees" ];
 
   meta = with lib; {
     description = "Tree widgets for urwid";
diff --git a/pkgs/development/python-modules/us/default.nix b/pkgs/development/python-modules/us/default.nix
index 6b15bec2684d0..1aa4d2bc8d18a 100644
--- a/pkgs/development/python-modules/us/default.nix
+++ b/pkgs/development/python-modules/us/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jellyfish
-, pytestCheckHook
-, pythonOlder
-, pytz
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jellyfish,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
 }:
 
 buildPythonPackage rec {
@@ -25,21 +26,17 @@ buildPythonPackage rec {
       --replace "jellyfish==" "jellyfish>="
   '';
 
-  propagatedBuildInputs = [
-    jellyfish
-  ];
+  propagatedBuildInputs = [ jellyfish ];
 
   nativeCheckInputs = [
     pytestCheckHook
     pytz
   ];
 
-  pythonImportsCheck = [
-    "us"
-  ];
+  pythonImportsCheck = [ "us" ];
 
   meta = with lib; {
-    description = "A package for easily working with US and state metadata";
+    description = "Package for easily working with US and state metadata";
     mainProgram = "states";
     longDescription = ''
       All US states and territories, postal abbreviations, Associated Press style
diff --git a/pkgs/development/python-modules/usb-devices/default.nix b/pkgs/development/python-modules/usb-devices/default.nix
index da4abcd5f8f24..bf86e943e2c76 100644
--- a/pkgs/development/python-modules/usb-devices/default.nix
+++ b/pkgs/development/python-modules/usb-devices/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,17 +26,11 @@ buildPythonPackage rec {
       --replace " --cov=usb_devices --cov-report=term-missing:skip-covered" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "usb_devices"
-  ];
+  pythonImportsCheck = [ "usb_devices" ];
 
   meta = with lib; {
     description = "Library for for mapping, describing, and resetting USB devices";
diff --git a/pkgs/development/python-modules/usbtmc/default.nix b/pkgs/development/python-modules/usbtmc/default.nix
index 62d7b47dea91f..9220c3acde9e2 100644
--- a/pkgs/development/python-modules/usbtmc/default.nix
+++ b/pkgs/development/python-modules/usbtmc/default.nix
@@ -1,4 +1,9 @@
-{ lib, fetchFromGitHub, buildPythonPackage, pyusb }:
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pyusb,
+}:
 
 buildPythonPackage rec {
   pname = "usbtmc";
diff --git a/pkgs/development/python-modules/user-agents/default.nix b/pkgs/development/python-modules/user-agents/default.nix
index af61caba82c48..1da16e9c68642 100644
--- a/pkgs/development/python-modules/user-agents/default.nix
+++ b/pkgs/development/python-modules/user-agents/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, ua-parser }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ua-parser,
+}:
 
 buildPythonPackage rec {
   pname = "user-agents";
@@ -16,7 +21,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ ua-parser ];
 
   meta = with lib; {
-    description = "A Python library to identify devices by parsing user agent strings";
+    description = "Python library to identify devices by parsing user agent strings";
     homepage = "https://github.com/selwin/python-user-agents";
     license = licenses.mit;
     platforms = platforms.unix;
diff --git a/pkgs/development/python-modules/userpath/default.nix b/pkgs/development/python-modules/userpath/default.nix
index 17783bef05c00..20c387615c489 100644
--- a/pkgs/development/python-modules/userpath/default.nix
+++ b/pkgs/development/python-modules/userpath/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatchling
-, click
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatchling,
+  click,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,27 +19,24 @@ buildPythonPackage rec {
     hash = "sha256-bFIojasGklfMgxhG0V1IEzUiRV1Gd+5pqXgfEdvv2BU=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = [
-    click
-  ];
+  propagatedBuildInputs = [ click ];
 
   # Test suite is difficult to emulate in sandbox due to shell manipulation
   doCheck = false;
 
-  pythonImportsCheck = [
-    "userpath"
-  ];
+  pythonImportsCheck = [ "userpath" ];
 
   meta = with lib; {
     description = "Cross-platform tool for adding locations to the user PATH";
     mainProgram = "userpath";
     homepage = "https://github.com/ofek/userpath";
     changelog = "https://github.com/ofek/userpath/releases/tag/v${version}";
-    license = with licenses; [ asl20 mit ];
+    license = with licenses; [
+      asl20
+      mit
+    ];
     maintainers = with maintainers; [ yshym ];
   };
 }
diff --git a/pkgs/development/python-modules/ush/default.nix b/pkgs/development/python-modules/ush/default.nix
index db66feca8d949..82c089b99c399 100644
--- a/pkgs/development/python-modules/ush/default.nix
+++ b/pkgs/development/python-modules/ush/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  six,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/usort/default.nix b/pkgs/development/python-modules/usort/default.nix
index 68dbe6a9b7d58..bfb650c91c0b6 100644
--- a/pkgs/development/python-modules/usort/default.nix
+++ b/pkgs/development/python-modules/usort/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, attrs
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, hatch-vcs
-, hatchling
-, libcst
-, moreorless
-, pythonOlder
-, stdlibs
-, toml
-, trailrunner
-, unittestCheckHook
-, volatile
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  hatch-vcs,
+  hatchling,
+  libcst,
+  moreorless,
+  pythonOlder,
+  stdlibs,
+  toml,
+  trailrunner,
+  unittestCheckHook,
+  volatile,
 }:
 
 buildPythonPackage rec {
   pname = "usort";
-  version = "1.0.7";
+  version = "1.0.8";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -26,7 +27,7 @@ buildPythonPackage rec {
     owner = "facebook";
     repo = "usort";
     rev = "refs/tags/v${version}";
-    hash = "sha256-emnrghdsUs+VfvYiJExG13SKQNrXAEtGNAJQLScADnw=";
+    hash = "sha256-iezq2K+Rw0djyOoFm7tguw/vkkDSyrPZIfZPmaZvFpM=";
   };
 
   nativeBuildInputs = [
@@ -49,9 +50,7 @@ buildPythonPackage rec {
     volatile
   ];
 
-  pythonImportsCheck = [
-    "usort"
-  ];
+  pythonImportsCheck = [ "usort" ];
 
   meta = with lib; {
     description = "Safe, minimal import sorting for Python projects";
diff --git a/pkgs/development/python-modules/utils/default.nix b/pkgs/development/python-modules/utils/default.nix
index 36b399bed4778..e76fa6e6bab06 100644
--- a/pkgs/development/python-modules/utils/default.nix
+++ b/pkgs/development/python-modules/utils/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/uvcclient/default.nix b/pkgs/development/python-modules/uvcclient/default.nix
index 6be1dc84065c5..741c3d39c2130 100644
--- a/pkgs/development/python-modules/uvcclient/default.nix
+++ b/pkgs/development/python-modules/uvcclient/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, pynose, mock }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pynose,
+  mock,
+}:
 
 buildPythonPackage rec {
   pname = "uvcclient";
diff --git a/pkgs/development/python-modules/uvicorn/default.nix b/pkgs/development/python-modules/uvicorn/default.nix
index 2694880594b0e..48bd9e9ef85ec 100644
--- a/pkgs/development/python-modules/uvicorn/default.nix
+++ b/pkgs/development/python-modules/uvicorn/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, callPackage
-, fetchFromGitHub
-, click
-, h11
-, httptools
-, python-dotenv
-, pyyaml
-, typing-extensions
-, uvloop
-, watchfiles
-, websockets
-, hatchling
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  callPackage,
+  fetchFromGitHub,
+  click,
+  h11,
+  httptools,
+  python-dotenv,
+  pyyaml,
+  typing-extensions,
+  uvloop,
+  watchfiles,
+  websockets,
+  hatchling,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
   dependencies = [
     click
     h11
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ typing-extensions ];
 
   passthru.optional-dependencies.standard = [
     httptools
@@ -57,9 +56,7 @@ buildPythonPackage rec {
     cp -R tests $testsout/tests
   '';
 
-  pythonImportsCheck = [
-    "uvicorn"
-  ];
+  pythonImportsCheck = [ "uvicorn" ];
 
   # check in passthru.tests.pytest to escape infinite recursion with httpx/httpcore
   doCheck = false;
@@ -71,7 +68,7 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://www.uvicorn.org/";
     changelog = "https://github.com/encode/uvicorn/blob/${src.rev}/CHANGELOG.md";
-    description = "The lightning-fast ASGI server";
+    description = "Lightning-fast ASGI server";
     mainProgram = "uvicorn";
     license = licenses.bsd3;
     maintainers = with maintainers; [ wd15 ];
diff --git a/pkgs/development/python-modules/uvicorn/tests.nix b/pkgs/development/python-modules/uvicorn/tests.nix
index 805e8df1c710c..24dd8d2b848c9 100644
--- a/pkgs/development/python-modules/uvicorn/tests.nix
+++ b/pkgs/development/python-modules/uvicorn/tests.nix
@@ -1,13 +1,14 @@
-{ stdenv
-, buildPythonPackage
-, a2wsgi
-, uvicorn
-, httpx
-, pytestCheckHook
-, pytest-mock
-, trustme
-, watchgod
-, wsproto
+{
+  stdenv,
+  buildPythonPackage,
+  a2wsgi,
+  uvicorn,
+  httpx,
+  pytestCheckHook,
+  pytest-mock,
+  trustme,
+  watchgod,
+  wsproto,
 }:
 
 buildPythonPackage {
@@ -31,8 +32,7 @@ buildPythonPackage {
     a2wsgi
     watchgod
     wsproto
-  ]
-  ++ uvicorn.optional-dependencies.standard;
+  ] ++ uvicorn.optional-dependencies.standard;
 
   doCheck = !stdenv.isDarwin;
 
@@ -45,4 +45,3 @@ buildPythonPackage {
     "test_multiple_server_header"
   ];
 }
-
diff --git a/pkgs/development/python-modules/uvloop/default.nix b/pkgs/development/python-modules/uvloop/default.nix
index 7aa551086869d..4f2ff7d11ceae 100644
--- a/pkgs/development/python-modules/uvloop/default.nix
+++ b/pkgs/development/python-modules/uvloop/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-
-# build-system
-, cython_0
-, setuptools
-
-# native dependencies
-, libuv
-, CoreServices
-, ApplicationServices
-
-# tests
-, aiohttp
-, psutil
-, pyopenssl
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+
+  # build-system
+  cython_0,
+  setuptools,
+
+  # native dependencies
+  libuv,
+  CoreServices,
+  ApplicationServices,
+
+  # tests
+  aiohttp,
+  psutil,
+  pyopenssl,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -39,12 +40,12 @@ buildPythonPackage rec {
 
   env.LIBUV_CONFIGURE_HOST = stdenv.hostPlatform.config;
 
-  buildInputs = [
-    libuv
-  ] ++ lib.optionals stdenv.isDarwin [
-    CoreServices
-    ApplicationServices
-  ];
+  buildInputs =
+    [ libuv ]
+    ++ lib.optionals stdenv.isDarwin [
+      CoreServices
+      ApplicationServices
+    ];
 
   nativeCheckInputs = [
     aiohttp
@@ -53,33 +54,37 @@ buildPythonPackage rec {
     psutil
   ];
 
-  pytestFlagsArray = [
-    # Tries to run "env", but fails to find it, even with coreutils provided
-    "--deselect=tests/test_process.py::Test_UV_Process::test_process_env_2"
-    "--deselect=tests/test_process.py::Test_AIO_Process::test_process_env_2"
-    # AssertionError: b'' != b'out\n'
-    "--deselect=tests/test_process.py::Test_UV_Process::test_process_streams_redirect"
-    "--deselect=tests/test_process.py::Test_AIO_Process::test_process_streams_redirect"
-  ] ++ lib.optionals (stdenv.isDarwin) [
-    # Segmentation fault
-    "--deselect=tests/test_fs_event.py::Test_UV_FS_EVENT_RENAME::test_fs_event_rename"
-    # Broken: https://github.com/NixOS/nixpkgs/issues/160904
-    "--deselect=tests/test_context.py::Test_UV_Context::test_create_ssl_server_manual_connection_lost"
-  ];
+  pytestFlagsArray =
+    [
+      # Tries to run "env", but fails to find it, even with coreutils provided
+      "--deselect=tests/test_process.py::Test_UV_Process::test_process_env_2"
+      "--deselect=tests/test_process.py::Test_AIO_Process::test_process_env_2"
+      # AssertionError: b'' != b'out\n'
+      "--deselect=tests/test_process.py::Test_UV_Process::test_process_streams_redirect"
+      "--deselect=tests/test_process.py::Test_AIO_Process::test_process_streams_redirect"
+    ]
+    ++ lib.optionals (stdenv.isDarwin) [
+      # Segmentation fault
+      "--deselect=tests/test_fs_event.py::Test_UV_FS_EVENT_RENAME::test_fs_event_rename"
+      # Broken: https://github.com/NixOS/nixpkgs/issues/160904
+      "--deselect=tests/test_context.py::Test_UV_Context::test_create_ssl_server_manual_connection_lost"
+    ];
 
   disabledTestPaths = [
     # ignore code linting tests
     "tests/test_sourcecode.py"
   ];
 
-  preCheck = ''
-    # force using installed/compiled uvloop
-    rm -rf uvloop
-  '' + lib.optionalString stdenv.isDarwin ''
-    # Work around "OSError: AF_UNIX path too long"
-    # https://github.com/MagicStack/uvloop/issues/463
-    export TMPDIR="/tmp"
-  '';
+  preCheck =
+    ''
+      # force using installed/compiled uvloop
+      rm -rf uvloop
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      # Work around "OSError: AF_UNIX path too long"
+      # https://github.com/MagicStack/uvloop/issues/463
+      export TMPDIR="/tmp"
+    '';
 
   pythonImportsCheck = [
     "uvloop"
diff --git a/pkgs/development/python-modules/uxsim/add-qt-plugin-path-to-env.patch b/pkgs/development/python-modules/uxsim/add-qt-plugin-path-to-env.patch
new file mode 100644
index 0000000000000..a496456caa487
--- /dev/null
+++ b/pkgs/development/python-modules/uxsim/add-qt-plugin-path-to-env.patch
@@ -0,0 +1,11 @@
+diff --git a/uxsim/__init__.py b/uxsim/__init__.py
+index cf661c5..540e6f8 100644
+--- a/uxsim/__init__.py
++++ b/uxsim/__init__.py
+@@ -1,3 +1,6 @@
++import os
++if not os.getenv("QT_PLUGIN_PATH"):
++    os.environ["QT_PLUGIN_PATH"] = "$NIX_QT_PLUGIN_PATH"
+ from .uxsim import *
+ from .utils import *
+ from .analyzer import *
diff --git a/pkgs/development/python-modules/uxsim/default.nix b/pkgs/development/python-modules/uxsim/default.nix
new file mode 100644
index 0000000000000..675e92a1de315
--- /dev/null
+++ b/pkgs/development/python-modules/uxsim/default.nix
@@ -0,0 +1,64 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  wheel,
+  qt5,
+  python,
+  dill,
+  matplotlib,
+  numpy,
+  pandas,
+  pillow,
+  pyqt5,
+  scipy,
+  tqdm,
+}:
+buildPythonPackage rec {
+  pname = "uxsim";
+  version = "1.3.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "toruseo";
+    repo = "UXsim";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-2lN2Cu0XXiYdLiE7phpGqhkBDjkmxLJt4ILb6ORWdCI=";
+  };
+
+  patches = [ ./add-qt-plugin-path-to-env.patch ];
+
+  nativeBuildInputs = [
+    setuptools
+    wheel
+  ];
+
+  propagatedBuildInputs = [
+    dill
+    matplotlib
+    numpy
+    pandas
+    pillow
+    pyqt5
+    scipy
+    tqdm
+  ];
+
+  pythonImportsCheck = [ "uxsim" ];
+
+  # QT_PLUGIN_PATH is required to be set for the program to produce its images
+  # our patch sets it to $NIX_QT_PLUGIN_PATH if QT_PLUGIN_PATH is not set
+  # and here we replace this string with the actual path to qt plugins
+  postInstall = ''
+    substituteInPlace $out/${python.sitePackages}/uxsim/__init__.py \
+      --replace-fail '$NIX_QT_PLUGIN_PATH' '${qt5.qtbase.bin}/${qt5.qtbase.qtPluginPrefix}'
+  '';
+
+  meta = with lib; {
+    description = "Vehicular traffic flow simulator in road network, written in pure Python";
+    homepage = "https://github.com/toruseo/UXsim";
+    license = licenses.mit;
+    maintainers = with maintainers; [ vinnymeller ];
+  };
+}
diff --git a/pkgs/development/python-modules/vaa/default.nix b/pkgs/development/python-modules/vaa/default.nix
index 54c2520ee6654..a94ca49b9131e 100644
--- a/pkgs/development/python-modules/vaa/default.nix
+++ b/pkgs/development/python-modules/vaa/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, pytestCheckHook
-, cerberus
-, django
-, djangorestframework
-, marshmallow
-, pyschemes
-, wtforms
-, email-validator
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  pytestCheckHook,
+  cerberus,
+  django,
+  djangorestframework,
+  marshmallow,
+  pyschemes,
+  wtforms,
+  email-validator,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
       --replace "build-backend = \"flit.buildapi\"" "build-backend = \"flit_core.buildapi\""
   '';
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/vacuum-map-parser-base/default.nix b/pkgs/development/python-modules/vacuum-map-parser-base/default.nix
index e27ea9d8b6f07..0eb545df0b2a9 100644
--- a/pkgs/development/python-modules/vacuum-map-parser-base/default.nix
+++ b/pkgs/development/python-modules/vacuum-map-parser-base/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, pillow
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  pillow,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/vacuum-map-parser-roborock/default.nix b/pkgs/development/python-modules/vacuum-map-parser-roborock/default.nix
index 68683c1d76903..7346d779c4c22 100644
--- a/pkgs/development/python-modules/vacuum-map-parser-roborock/default.nix
+++ b/pkgs/development/python-modules/vacuum-map-parser-roborock/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, pillow
-, vacuum-map-parser-base
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  pillow,
+  vacuum-map-parser-base,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/validator-collection/default.nix b/pkgs/development/python-modules/validator-collection/default.nix
index 8625956d77546..60cc3c9c6f5e3 100644
--- a/pkgs/development/python-modules/validator-collection/default.nix
+++ b/pkgs/development/python-modules/validator-collection/default.nix
@@ -135,6 +135,14 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "validator_collection" ];
 
+  disabledTests = [
+    # Issues with fake filesystem /var/data
+    "test_writeable"
+    "test_executable"
+    "test_readable"
+    "test_is_readable"
+  ];
+
   meta = with lib; {
     description = "Python library of 60+ commonly-used validator functions";
     homepage = "https://github.com/insightindustry/validator-collection/";
diff --git a/pkgs/development/python-modules/validobj/default.nix b/pkgs/development/python-modules/validobj/default.nix
index 4eba3276a9cf2..5ee2b0d6d0c80 100644
--- a/pkgs/development/python-modules/validobj/default.nix
+++ b/pkgs/development/python-modules/validobj/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flit
-, hypothesis
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flit,
+  hypothesis,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,10 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ flit ];
 
-  nativeCheckInputs = [ hypothesis pytestCheckHook ];
+  nativeCheckInputs = [
+    hypothesis
+    pytestCheckHook
+  ];
 
   pythonImportsCheck = [ "validobj" ];
 
diff --git a/pkgs/development/python-modules/validphys2/default.nix b/pkgs/development/python-modules/validphys2/default.nix
index 38debb91be11b..fd408820a2d72 100644
--- a/pkgs/development/python-modules/validphys2/default.nix
+++ b/pkgs/development/python-modules/validphys2/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, lhapdf
-, nnpdf
-, prompt-toolkit
-, reportengine
-, requests
-, seaborn
-, validobj
+{
+  lib,
+  buildPythonPackage,
+  lhapdf,
+  nnpdf,
+  prompt-toolkit,
+  reportengine,
+  requests,
+  seaborn,
+  validobj,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/vallox-websocket-api/default.nix b/pkgs/development/python-modules/vallox-websocket-api/default.nix
index a27a512a448f3..292d18bee421e 100644
--- a/pkgs/development/python-modules/vallox-websocket-api/default.nix
+++ b/pkgs/development/python-modules/vallox-websocket-api/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, pythonOlder
-, pythonRelaxDepsHook
-, fetchFromGitHub
-, setuptools
-, construct
-, websockets
-, pytest-asyncio
-, pytestCheckHook
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  construct,
+  websockets,
+  pytest-asyncio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -27,12 +27,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     setuptools
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "websockets"
-  ];
+  pythonRelaxDeps = [ "websockets" ];
 
   propagatedBuildInputs = [
     aiohttp
diff --git a/pkgs/development/python-modules/vapoursynth/default.nix b/pkgs/development/python-modules/vapoursynth/default.nix
index 2043fb2d4a588..1fb1d4be03efe 100644
--- a/pkgs/development/python-modules/vapoursynth/default.nix
+++ b/pkgs/development/python-modules/vapoursynth/default.nix
@@ -1,4 +1,10 @@
-{ vapoursynth, cython, buildPythonPackage, unittestCheckHook, python }:
+{
+  vapoursynth,
+  cython,
+  buildPythonPackage,
+  unittestCheckHook,
+  python,
+}:
 
 buildPythonPackage {
   pname = "vapoursynth";
@@ -6,27 +12,23 @@ buildPythonPackage {
 
   inherit (vapoursynth) version src;
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
-  buildInputs = [
-    vapoursynth
-  ];
+  buildInputs = [ vapoursynth ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [ "-s" "$src/test" "-p" "'*test.py'" ];
+  unittestFlagsArray = [
+    "-s"
+    "$src/test"
+    "-p"
+    "'*test.py'"
+  ];
 
   passthru = {
-    withPlugins = plugins:
-      python.pkgs.vapoursynth.override {
-        vapoursynth = vapoursynth.withPlugins plugins;
-      };
+    withPlugins =
+      plugins: python.pkgs.vapoursynth.override { vapoursynth = vapoursynth.withPlugins plugins; };
   };
 
   inherit (vapoursynth) meta;
 }
-
diff --git a/pkgs/development/python-modules/variants/default.nix b/pkgs/development/python-modules/variants/default.nix
index 8379034af9e5b..5aa3c89afd1bc 100644
--- a/pkgs/development/python-modules/variants/default.nix
+++ b/pkgs/development/python-modules/variants/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -19,18 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-UR91tM90g8J+TYbZrM8rUxcmeQDBZtF2Nr7u0RiSm5A=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   nativeCheckInputs = [
     pytestCheckHook
     six
   ];
 
-  pythonImportsCheck = [
-    "variants"
-  ];
+  pythonImportsCheck = [ "variants" ];
 
   meta = with lib; {
     description = "Library providing syntactic sugar for creating variant forms of a canonical function";
diff --git a/pkgs/development/python-modules/varint/default.nix b/pkgs/development/python-modules/varint/default.nix
index dcc24c8de7029..4430fd84f3182 100644
--- a/pkgs/development/python-modules/varint/default.nix
+++ b/pkgs/development/python-modules/varint/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
 }:
 buildPythonPackage rec {
   pname = "varint";
@@ -8,7 +9,7 @@ buildPythonPackage rec {
   format = "setuptools";
 
   src = fetchPypi {
-    inherit pname version ;
+    inherit pname version;
     sha256 = "a6ecc02377ac5ee9d65a6a8ad45c9ff1dac8ccee19400a5950fb51d594214ca5";
   };
 
@@ -18,7 +19,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "varint" ];
 
   meta = with lib; {
-    description = "A basic varint implementation in python";
+    description = "Basic varint implementation in python";
     homepage = "https://github.com/fmoo/python-varint";
     license = licenses.mit;
     maintainers = with maintainers; [ rakesh4g ];
diff --git a/pkgs/development/python-modules/vat-moss/default.nix b/pkgs/development/python-modules/vat-moss/default.nix
index 1bf0879d34275..a3fba68a65c0c 100644
--- a/pkgs/development/python-modules/vat-moss/default.nix
+++ b/pkgs/development/python-modules/vat-moss/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,17 +26,11 @@ buildPythonPackage rec {
     })
   ];
 
-  pythonImportsCheck = [
-    "vat_moss"
-  ];
+  pythonImportsCheck = [ "vat_moss" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = [
-    "test_fetch"
-  ];
+  disabledTests = [ "test_fetch" ];
 
   disabledTestPaths = [
     # network access
@@ -43,7 +38,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A Python library for dealing with VAT MOSS and Norway VAT on digital services. Includes VAT ID validation, rate calculation based on place of supply, exchange rate and currency tools for invoices";
+    description = "Python library for dealing with VAT MOSS and Norway VAT on digital services. Includes VAT ID validation, rate calculation based on place of supply, exchange rate and currency tools for invoices";
     homepage = "https://github.com/raphaelm/vat_moss-python";
     changelog = "https://github.com/raphaelm/vat_moss-python/blob/${src.rev}/changelog.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/vcard/default.nix b/pkgs/development/python-modules/vcard/default.nix
index 1c207387ea852..41fecf60da031 100644
--- a/pkgs/development/python-modules/vcard/default.nix
+++ b/pkgs/development/python-modules/vcard/default.nix
@@ -1,14 +1,20 @@
-{ buildPythonPackage
-, fetchFromGitLab
-, lib
-, pytestCheckHook
-, python-dateutil
-, pythonAtLeast
-, pythonOlder
+{
+  buildPythonPackage,
+  fetchFromGitLab,
+  lib,
+  nix-update-script,
+  pytestCheckHook,
+  python-dateutil,
+  pythonAtLeast,
+  pythonOlder,
 }:
-buildPythonPackage rec {
-  pname = "vcard";
+let
   version = "0.15.4";
+in
+buildPythonPackage {
+  inherit version;
+
+  pname = "vcard";
   format = "setuptools";
 
   disabled = pythonOlder "3.8" || pythonAtLeast "3.12";
@@ -26,6 +32,8 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "vcard" ];
 
+  passthru.updateScript = nix-update-script { };
+
   meta = {
     homepage = "https://gitlab.com/engmark/vcard";
     description = "vCard validator, class and utility functions";
diff --git a/pkgs/development/python-modules/vcrpy/default.nix b/pkgs/development/python-modules/vcrpy/default.nix
index c60d3310cda73..920a439d33799 100644
--- a/pkgs/development/python-modules/vcrpy/default.nix
+++ b/pkgs/development/python-modules/vcrpy/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest-httpbin
-, pytestCheckHook
-, pythonOlder
-, pyyaml
-, six
-, yarl
-, wrapt
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest-httpbin,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  six,
+  yarl,
+  wrapt,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  disabledTestPaths = [
-    "tests/integration"
-  ];
+  disabledTestPaths = [ "tests/integration" ];
 
   disabledTests = [
     "TestVCRConnection"
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     "test_testcase_playback"
   ];
 
-  pythonImportsCheck = [
-    "vcr"
-  ];
+  pythonImportsCheck = [ "vcr" ];
 
   meta = with lib; {
     description = "Automatically mock your HTTP interactions to simplify and speed up testing";
diff --git a/pkgs/development/python-modules/vcver/default.nix b/pkgs/development/python-modules/vcver/default.nix
index 56afec9127da0..5dcbab7dc6d9c 100644
--- a/pkgs/development/python-modules/vcver/default.nix
+++ b/pkgs/development/python-modules/vcver/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, packaging
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  packaging,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     sha256 = "1cvgs70jf7ki78338zaglaw2dkvyndmx15ybd6k4zqwwsfgk490b";
   };
 
-  propagatedBuildInputs = [
-    packaging
-  ];
+  propagatedBuildInputs = [ packaging ];
 
   # circular dependency on test tool uranium https://pypi.org/project/uranium/
   doCheck = false;
diff --git a/pkgs/development/python-modules/vcversioner/default.nix b/pkgs/development/python-modules/vcversioner/default.nix
index f3f64015e2a70..25d569b23cf5c 100644
--- a/pkgs/development/python-modules/vcversioner/default.nix
+++ b/pkgs/development/python-modules/vcversioner/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "vcversioner";
diff --git a/pkgs/development/python-modules/vdf/default.nix b/pkgs/development/python-modules/vdf/default.nix
index d473ded6c24ae..e74f735538e58 100644
--- a/pkgs/development/python-modules/vdf/default.nix
+++ b/pkgs/development/python-modules/vdf/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,10 @@ buildPythonPackage rec {
     hash = "sha256-6ozglzZZNKDtADkHwxX2Zsnkh6BE8WbcRcC9HkTTgPU=";
   };
 
-  nativeCheckInputs = [ mock pytestCheckHook ];
+  nativeCheckInputs = [
+    mock
+    pytestCheckHook
+  ];
   pythonImportsCheck = [ "vdf" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/vdirsyncer/default.nix b/pkgs/development/python-modules/vdirsyncer/default.nix
index b417245498979..7851df4a29712 100644
--- a/pkgs/development/python-modules/vdirsyncer/default.nix
+++ b/pkgs/development/python-modules/vdirsyncer/default.nix
@@ -1,28 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, click
-, click-log
-, click-threading
-, requests-toolbelt
-, requests
-, atomicwrites
-, hypothesis
-, pytestCheckHook
-, pytest-subtesthack
-, setuptools
-, setuptools-scm
-, wheel
-, aiostream
-, aiohttp-oauthlib
-, aiohttp
-, pytest-asyncio
-, trustme
-, aioresponses
-, vdirsyncer
-, testers
-, pythonRelaxDepsHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  click,
+  click-log,
+  click-threading,
+  requests-toolbelt,
+  requests,
+  atomicwrites,
+  hypothesis,
+  pytestCheckHook,
+  pytest-subtesthack,
+  setuptools,
+  setuptools-scm,
+  wheel,
+  aiostream,
+  aiohttp-oauthlib,
+  aiohttp,
+  pytest-asyncio,
+  trustme,
+  aioresponses,
+  vdirsyncer,
+  testers,
 }:
 
 buildPythonPackage rec {
@@ -45,12 +45,9 @@ buildPythonPackage rec {
     setuptools
     setuptools-scm
     wheel
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "aiostream"
-  ];
+  pythonRelaxDeps = [ "aiostream" ];
 
   propagatedBuildInputs = [
     atomicwrites
diff --git a/pkgs/development/python-modules/vector/default.nix b/pkgs/development/python-modules/vector/default.nix
index 7edad1b6321a3..f0ebd1f621281 100644
--- a/pkgs/development/python-modules/vector/default.nix
+++ b/pkgs/development/python-modules/vector/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, awkward
-, buildPythonPackage
-, fetchPypi
-, hatch-vcs
-, hatchling
-, numba
-, numpy
-, notebook
-, packaging
-, papermill
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  awkward,
+  buildPythonPackage,
+  fetchPypi,
+  hatch-vcs,
+  hatchling,
+  numba,
+  numpy,
+  notebook,
+  packaging,
+  papermill,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "vector";
-  version = "1.3.1";
+  version = "1.4.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-GpQhDCGl04020Po2wa+5LChXuh0JyCSw1LhhXVH08uU=";
+    hash = "sha256-Fa74kRVg2x6j/6nb1UFNDsV1pQSiw/I+pFFwoYmURm4=";
   };
 
   nativeBuildInputs = [
@@ -43,9 +44,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "vector"
-  ];
+  pythonImportsCheck = [ "vector" ];
 
   __darwinAllowLocalNetworking = true;
 
diff --git a/pkgs/development/python-modules/vega-datasets/default.nix b/pkgs/development/python-modules/vega-datasets/default.nix
index e0c9133767fc2..09da2c1f0792f 100644
--- a/pkgs/development/python-modules/vega-datasets/default.nix
+++ b/pkgs/development/python-modules/vega-datasets/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pandas
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pandas,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,28 +18,25 @@ buildPythonPackage rec {
     hash = "sha256-nb6YNCCOjsMqtElw3zFd6RAoYeTNoT2OFDqreoDZP8A=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [ pandas ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "--doctest-modules"
-  ];
-
-  pythonImportsCheck = [
-    "vega_datasets"
-  ];
-
-  meta = with lib; let
-    tag = removeSuffix ".0" "v${version}";
-  in {
-    description = "A Python package for offline access to vega datasets";
-    homepage = "https://github.com/altair-viz/vega_datasets";
-    changelog = "https://github.com/altair-viz/vega_datasets/blob/${tag}/CHANGES.md";
-    license = licenses.mit;
-  };
+  pytestFlagsArray = [ "--doctest-modules" ];
+
+  pythonImportsCheck = [ "vega_datasets" ];
+
+  meta =
+    with lib;
+    let
+      tag = removeSuffix ".0" "v${version}";
+    in
+    {
+      description = "Python package for offline access to vega datasets";
+      homepage = "https://github.com/altair-viz/vega_datasets";
+      changelog = "https://github.com/altair-viz/vega_datasets/blob/${tag}/CHANGES.md";
+      license = licenses.mit;
+    };
 }
diff --git a/pkgs/development/python-modules/vega/default.nix b/pkgs/development/python-modules/vega/default.nix
index 556d06d7d3935..d7fbe2cabaa2f 100644
--- a/pkgs/development/python-modules/vega/default.nix
+++ b/pkgs/development/python-modules/vega/default.nix
@@ -1,18 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, pythonOlder
-, pythonRelaxDepsHook
-, altair
-, ipytablewidgets
-, ipywidgets
-, jupyter
-, jupyter-core
-, jupyterlab
-, pandas
-, poetry-core
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchpatch,
+  fetchPypi,
+  pythonOlder,
+  altair,
+  ipytablewidgets,
+  ipywidgets,
+  jupyter,
+  jupyter-core,
+  jupyterlab,
+  pandas,
+  poetry-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -38,12 +38,9 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "pandas"
-  ];
+  pythonRelaxDeps = [ "pandas" ];
 
   propagatedBuildInputs = [
     ipytablewidgets
@@ -53,12 +50,8 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    widget = [
-      ipywidgets
-    ];
-    jupyterlab = [
-      jupyterlab
-    ];
+    widget = [ ipywidgets ];
+    jupyterlab = [ jupyterlab ];
   };
 
   nativeCheckInputs = [
@@ -74,7 +67,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "vega" ];
 
   meta = with lib; {
-    description = "An IPython/Jupyter widget for Vega and Vega-Lite";
+    description = "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/pkgs/development/python-modules/vehicle/default.nix b/pkgs/development/python-modules/vehicle/default.nix
index f09e88842bee4..767885292989c 100644
--- a/pkgs/development/python-modules/vehicle/default.nix
+++ b/pkgs/development/python-modules/vehicle/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, mashumaro
-, orjson
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, syrupy
-, yarl
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mashumaro,
+  orjson,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  syrupy,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
       --replace "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
@@ -52,9 +51,7 @@ buildPythonPackage rec {
     syrupy
   ];
 
-  pythonImportsCheck = [
-    "vehicle"
-  ];
+  pythonImportsCheck = [ "vehicle" ];
 
   meta = with lib; {
     description = "Python client providing RDW vehicle information";
diff --git a/pkgs/development/python-modules/velbus-aio/default.nix b/pkgs/development/python-modules/velbus-aio/default.nix
index f754c828dea3d..d7ba738dd86fd 100644
--- a/pkgs/development/python-modules/velbus-aio/default.nix
+++ b/pkgs/development/python-modules/velbus-aio/default.nix
@@ -5,14 +5,14 @@
   fetchFromGitHub,
   pythonOlder,
   pyserial,
-  pyserial-asyncio,
+  pyserial-asyncio-fast,
   pytestCheckHook,
   setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "velbus-aio";
-  version = "2024.4.1";
+  version = "2024.5.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "Cereal2nd";
     repo = "velbus-aio";
     rev = "refs/tags/${version}";
-    hash = "sha256-rskWnH5zFvBuNL5eJ8O4D6htRP/XtFcq1xH8ZXzT1I4=";
+    hash = "sha256-rOuw1Iw6mGoXNSqxOlBappARzSGIlii03Hd8/3jWiQg=";
     fetchSubmodules = true;
   };
 
@@ -30,7 +30,7 @@ buildPythonPackage rec {
   dependencies = [
     backoff
     pyserial
-    pyserial-asyncio
+    pyserial-asyncio-fast
   ];
 
   nativeCheckInputs = [ pytestCheckHook ];
diff --git a/pkgs/development/python-modules/venstarcolortouch/default.nix b/pkgs/development/python-modules/venstarcolortouch/default.nix
index 04d632b0a185e..5d8dbb07e0334 100644
--- a/pkgs/development/python-modules/venstarcolortouch/default.nix
+++ b/pkgs/development/python-modules/venstarcolortouch/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -14,16 +15,12 @@ buildPythonPackage rec {
     hash = "sha256-QjcoF46GrBH7ExGQno8xDgtOSGNxhAP+NycJb22hL+E=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "venstarcolortouch"
-  ];
+  pythonImportsCheck = [ "venstarcolortouch" ];
 
   meta = with lib; {
     description = "Python interface for Venstar ColorTouch thermostats Resources";
diff --git a/pkgs/development/python-modules/venusian/default.nix b/pkgs/development/python-modules/venusian/default.nix
index b992f518c5fbe..7dd1e7a818f9e 100644
--- a/pkgs/development/python-modules/venusian/default.nix
+++ b/pkgs/development/python-modules/venusian/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, pytestCheckHook
-, pytest-cov
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  pytestCheckHook,
+  pytest-cov,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-63LNym8xOaFdyA+cldPBD4pUoLqIHu744uxbQtPuOpU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -33,7 +32,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "A library for deferring decorator actions";
+    description = "Library for deferring decorator actions";
     homepage = "https://pylonsproject.org/";
     license = licenses.bsd0;
     maintainers = with maintainers; [ domenkozar ];
diff --git a/pkgs/development/python-modules/verboselogs/default.nix b/pkgs/development/python-modules/verboselogs/default.nix
index 45f747b936ee0..63393b593fc6e 100644
--- a/pkgs/development/python-modules/verboselogs/default.nix
+++ b/pkgs/development/python-modules/verboselogs/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     mock
   ];
 
-  pythonImportsCheck = [
-    "verboselogs"
-  ];
+  pythonImportsCheck = [ "verboselogs" ];
 
   disabledTests = [
     # Do not run pylint plugin test
diff --git a/pkgs/development/python-modules/verlib2/default.nix b/pkgs/development/python-modules/verlib2/default.nix
index 41c1d95eff25a..178568e87b009 100644
--- a/pkgs/development/python-modules/verlib2/default.nix
+++ b/pkgs/development/python-modules/verlib2/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, versioningit
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  versioningit,
 }:
 
 buildPythonPackage rec {
@@ -29,7 +30,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "verlib2" ];
 
   meta = with lib; {
-    description = "A standalone variant of packaging.version, without anything else";
+    description = "Standalone variant of packaging.version, without anything else";
     homepage = "https://pypi.org/project/verlib2/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ doronbehar ];
diff --git a/pkgs/development/python-modules/versioneer/default.nix b/pkgs/development/python-modules/versioneer/default.nix
index 6bd7384c9890c..d98aa5ab71d1b 100644
--- a/pkgs/development/python-modules/versioneer/default.nix
+++ b/pkgs/development/python-modules/versioneer/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, tomli
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  tomli,
 }:
 
 buildPythonPackage rec {
@@ -20,24 +21,16 @@ buildPythonPackage rec {
     hash = "sha256-3b7Wfhd24Vym5XCeN/M1832Q1VzvlWi3quTRaZrID2s=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  nativeBuildInputs = [ setuptools ] ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   passthru.optional-dependencies = {
-    toml = lib.optionals (pythonOlder "3.11") [
-      tomli
-    ];
+    toml = lib.optionals (pythonOlder "3.11") [ tomli ];
   };
 
   # Couldn't get tests to work because, for instance, they used virtualenv and pip
   doCheck = false;
 
-  pythonImportsCheck = [
-    "versioneer"
-  ];
+  pythonImportsCheck = [ "versioneer" ];
 
   meta = with lib; {
     description = "Version-string management for VCS-controlled trees";
diff --git a/pkgs/development/python-modules/versionfinder/default.nix b/pkgs/development/python-modules/versionfinder/default.nix
index 1930b14edad68..2672fc20f99ef 100644
--- a/pkgs/development/python-modules/versionfinder/default.nix
+++ b/pkgs/development/python-modules/versionfinder/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, backoff
-, buildPythonPackage
-, fetchFromGitHub
-, gitpython
-, pip
-, pytestCheckHook
-, pythonOlder
-, requests
+{
+  lib,
+  backoff,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gitpython,
+  pip,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -44,9 +45,7 @@ buildPythonPackage rec {
     "TestFindPipInfo"
   ];
 
-  pythonImportsCheck = [
-    "versionfinder"
-  ];
+  pythonImportsCheck = [ "versionfinder" ];
 
   meta = with lib; {
     description = "Find the version of another package, whether installed via pip, setuptools or git";
diff --git a/pkgs/development/python-modules/versioningit/default.nix b/pkgs/development/python-modules/versioningit/default.nix
index f5c6180b2344c..c578f96e18838 100644
--- a/pkgs/development/python-modules/versioningit/default.nix
+++ b/pkgs/development/python-modules/versioningit/default.nix
@@ -1,30 +1,31 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, importlib-metadata
-, packaging
-, tomli
-, pytestCheckHook
-, build
-, hatchling
-, pydantic
-, pytest-mock
-, setuptools
-, git
-, mercurial
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  importlib-metadata,
+  packaging,
+  tomli,
+  pytestCheckHook,
+  build,
+  hatchling,
+  pydantic,
+  pytest-mock,
+  setuptools,
+  git,
+  mercurial,
 }:
 
 buildPythonPackage rec {
   pname = "versioningit";
-  version = "3.1.0";
+  version = "3.1.1";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-eqxxPDGlPrNnprvC6LPejMK4bRDUXFEBr9ZRRGyxD9c=";
+    hash = "sha256-sLpYblrwi4fb4zVAgpEKHQUCw2IC1JbhrmDvO0HuKcE=";
   };
 
   postPatch = ''
@@ -34,17 +35,12 @@ buildPythonPackage rec {
       --replace "--no-cov-on-fail" ""
   '';
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  propagatedBuildInputs = [
-    packaging
-  ] ++ lib.optionals (pythonOlder "3.10") [
-    importlib-metadata
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  propagatedBuildInputs =
+    [ packaging ]
+    ++ lib.optionals (pythonOlder "3.10") [ importlib-metadata ]
+    ++ lib.optionals (pythonOlder "3.11") [ tomli ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -62,16 +58,14 @@ buildPythonPackage rec {
     "test_editable_mode"
   ];
 
-  pythonImportsCheck = [
-    "versioningit"
-  ];
+  pythonImportsCheck = [ "versioningit" ];
 
   meta = with lib; {
     description = "setuptools plugin for determining package version from VCS";
     mainProgram = "versioningit";
     homepage = "https://github.com/jwodder/versioningit";
     changelog = "https://versioningit.readthedocs.io/en/latest/changelog.html";
-    license     = licenses.mit;
+    license = licenses.mit;
     maintainers = with maintainers; [ DeeUnderscore ];
   };
 }
diff --git a/pkgs/development/python-modules/versiontag/default.nix b/pkgs/development/python-modules/versiontag/default.nix
index 76024a9e8795a..6a50c7996dd8d 100644
--- a/pkgs/development/python-modules/versiontag/default.nix
+++ b/pkgs/development/python-modules/versiontag/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, git }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  git,
+}:
 
 buildPythonPackage rec {
   pname = "versiontag";
diff --git a/pkgs/development/python-modules/versiontools/default.nix b/pkgs/development/python-modules/versiontools/default.nix
index 3f7afae09fd79..d2e3d84727f14 100644
--- a/pkgs/development/python-modules/versiontools/default.nix
+++ b/pkgs/development/python-modules/versiontools/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
 }:
 
 buildPythonPackage rec {
@@ -21,5 +22,4 @@ buildPythonPackage rec {
     description = "Smart replacement for plain tuple used in __version__";
     license = licenses.lgpl2;
   };
-
 }
diff --git a/pkgs/development/python-modules/verspec/default.nix b/pkgs/development/python-modules/verspec/default.nix
index d8bd972a99638..4064f1a18caeb 100644
--- a/pkgs/development/python-modules/verspec/default.nix
+++ b/pkgs/development/python-modules/verspec/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pretend
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pretend,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,15 +29,16 @@ buildPythonPackage rec {
     "test/test_specifiers.py"
   ];
 
-  pythonImportsCheck = [
-    "verspec"
-  ];
+  pythonImportsCheck = [ "verspec" ];
 
   meta = with lib; {
     description = "Flexible version handling";
     homepage = "https://github.com/jimporter/verspec";
     changelog = "https://github.com/jimporter/averspec/releases/tag/v${version}";
-    license = with licenses; [ bsd2 /* and */ asl20 ];
+    license = with licenses; [
+      bsd2 # and
+      asl20
+    ];
     maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/vertica-python/default.nix b/pkgs/development/python-modules/vertica-python/default.nix
index 8ea7ef738de0c..ac2dc4d195fc9 100644
--- a/pkgs/development/python-modules/vertica-python/default.nix
+++ b/pkgs/development/python-modules/vertica-python/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, future
-, mock
-, parameterized
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  future,
+  mock,
+  parameterized,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
     "vertica_python/tests/integration_tests"
   ];
 
-  pythonImportsCheck = [
-    "vertica_python"
-  ];
+  pythonImportsCheck = [ "vertica_python" ];
 
   meta = with lib; {
     description = "Native Python client for Vertica database";
diff --git a/pkgs/development/python-modules/veryprettytable/default.nix b/pkgs/development/python-modules/veryprettytable/default.nix
index 7d87c67376467..01ee6b6930cc3 100644
--- a/pkgs/development/python-modules/veryprettytable/default.nix
+++ b/pkgs/development/python-modules/veryprettytable/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, termcolor
-, colorama
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  termcolor,
+  colorama,
 }:
 
 buildPythonPackage rec {
@@ -15,12 +16,14 @@ buildPythonPackage rec {
     sha256 = "1k1rifz8x6qcicmx2is9vgxcj0qb2f5pvzrp7zhmvbmci3yack3f";
   };
 
-  propagatedBuildInputs = [ termcolor colorama ];
+  propagatedBuildInputs = [
+    termcolor
+    colorama
+  ];
 
   meta = with lib; {
-    description = "A simple Python library for easily displaying tabular data in a visually appealing ASCII table format";
+    description = "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/pkgs/development/python-modules/vg/default.nix b/pkgs/development/python-modules/vg/default.nix
index efda04f78b9d9..a1695da99aed7 100644
--- a/pkgs/development/python-modules/vg/default.nix
+++ b/pkgs/development/python-modules/vg/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, poetry-core
-, pythonOlder
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  numpy,
+  poetry-core,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -27,21 +28,13 @@ buildPythonPackage rec {
       --replace 'requires = ["setuptools", "poetry-core>=1.0.0"]' 'requires = ["poetry-core>=1.0.0"]'
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "vg"
-  ];
+  pythonImportsCheck = [ "vg" ];
 
   meta = with lib; {
     description = "Linear algebra for humans: a very good vector-geometry and linear-algebra toolbelt";
diff --git a/pkgs/development/python-modules/vharfbuzz/default.nix b/pkgs/development/python-modules/vharfbuzz/default.nix
index 6551ef2cbb7a5..5d41a3a2e57bc 100644
--- a/pkgs/development/python-modules/vharfbuzz/default.nix
+++ b/pkgs/development/python-modules/vharfbuzz/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fonttools
-, pythonImportsCheckHook
-, uharfbuzz
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fonttools,
+  pythonImportsCheckHook,
+  uharfbuzz,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     fonttools
     uharfbuzz
   ];
-  nativeBuildInputs = [
-    pythonImportsCheckHook
-  ];
+  nativeBuildInputs = [ pythonImportsCheckHook ];
 
   # Package has no tests.
   doCheck = false;
@@ -35,4 +34,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ danc86 ];
   };
 }
-
diff --git a/pkgs/development/python-modules/videocr/default.nix b/pkgs/development/python-modules/videocr/default.nix
index 1f027563d480d..cb388dd66d007 100644
--- a/pkgs/development/python-modules/videocr/default.nix
+++ b/pkgs/development/python-modules/videocr/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, levenshtein
-, pytesseract
-, opencv4
-, fuzzywuzzy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  levenshtein,
+  pytesseract,
+  opencv4,
+  fuzzywuzzy,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/vidstab/default.nix b/pkgs/development/python-modules/vidstab/default.nix
index b16a5374c10b9..fb41510d12ddb 100644
--- a/pkgs/development/python-modules/vidstab/default.nix
+++ b/pkgs/development/python-modules/vidstab/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, numpy
-, pandas
-, imutils
-, progress
-, matplotlib
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  numpy,
+  pandas,
+  imutils,
+  progress,
+  matplotlib,
 }:
 
 buildPythonPackage rec {
@@ -18,7 +19,13 @@ buildPythonPackage rec {
     sha256 = "865c4a097e2a8527aa8bfc96ab0bcc0d280a88cc93eabcc36531268f5d343ce1";
   };
 
-  propagatedBuildInputs = [ numpy pandas imutils progress matplotlib ];
+  propagatedBuildInputs = [
+    numpy
+    pandas
+    imutils
+    progress
+    matplotlib
+  ];
 
   # tests not packaged with pypi
   doCheck = false;
diff --git a/pkgs/development/python-modules/viewstate/default.nix b/pkgs/development/python-modules/viewstate/default.nix
index aac82239e94e0..27cb972bb7804 100644
--- a/pkgs/development/python-modules/viewstate/default.nix
+++ b/pkgs/development/python-modules/viewstate/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, isPy3k
-, lib
-, pytest
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  isPy3k,
+  lib,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     sha256 = "15s0n1lhkz0zwi33waqkkjipal3f7s45rxsj1bw89xpr4dj87qx5";
   };
 
-  nativeCheckInputs = [
-    pytest
-  ];
+  nativeCheckInputs = [ pytest ];
 
   checkPhase = ''
     pytest
@@ -30,8 +29,6 @@ buildPythonPackage rec {
     description = ".NET viewstate decoder";
     homepage = "https://github.com/yuvadm/viewstate";
     license = lib.licenses.mit;
-    maintainers = with lib.maintainers; [
-      kamadorueda
-    ];
+    maintainers = with lib.maintainers; [ kamadorueda ];
   };
 }
diff --git a/pkgs/development/python-modules/vilfo-api-client/default.nix b/pkgs/development/python-modules/vilfo-api-client/default.nix
index b4b9f77304ef7..d8d93c6fa390a 100644
--- a/pkgs/development/python-modules/vilfo-api-client/default.nix
+++ b/pkgs/development/python-modules/vilfo-api-client/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools-scm
-, getmac
-, requests
-, semver
-, pytestCheckHook
-, responses
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools-scm,
+  getmac,
+  requests,
+  semver,
+  pytestCheckHook,
+  responses,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
       --replace "get-mac" "getmac"
   '';
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     getmac
diff --git a/pkgs/development/python-modules/vincenty/default.nix b/pkgs/development/python-modules/vincenty/default.nix
index 8e1022cc5eb7c..c4e28ff23f442 100644
--- a/pkgs/development/python-modules/vincenty/default.nix
+++ b/pkgs/development/python-modules/vincenty/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/vine/default.nix b/pkgs/development/python-modules/vine/default.nix
index 46330ac4247bb..eda027cbc4f36 100644
--- a/pkgs/development/python-modules/vine/default.nix
+++ b/pkgs/development/python-modules/vine/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, case
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  case,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     "t/unit/test_synchronization.py"
   ];
 
-  pythonImportsCheck = [
-    "vine"
-  ];
+  pythonImportsCheck = [ "vine" ];
 
   meta = with lib; {
     description = "Python promises";
diff --git a/pkgs/development/python-modules/virt-firmware/default.nix b/pkgs/development/python-modules/virt-firmware/default.nix
index d5da9d57c40f2..19c6244f26264 100644
--- a/pkgs/development/python-modules/virt-firmware/default.nix
+++ b/pkgs/development/python-modules/virt-firmware/default.nix
@@ -1,16 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, cryptography
-, pytestCheckHook
-, pefile
+{
+  lib,
+  pkgs,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  cryptography,
+  pytestCheckHook,
+  pefile,
 }:
 
 buildPythonPackage rec {
   pname = "virt-firmware";
   version = "24.4";
-
   pyproject = true;
 
   src = fetchPypi {
@@ -18,27 +20,32 @@ buildPythonPackage rec {
     hash = "sha256-rqhaKDOQEOj6bcRz3qZJ+a4yG1qTC9SUjuxMhZlnmwU=";
   };
 
-  pythonImportsCheck = [ "virt.firmware.efi" ];
+  build-system = [ setuptools ];
 
-  nativeBuildInputs = [
+  dependencies = [
     setuptools
+    cryptography
+    pefile
   ];
 
+  # tests require systemd-detect-virt
+  doCheck = lib.meta.availableOn stdenv.hostPlatform pkgs.systemd;
+
   nativeCheckInputs = [
     pytestCheckHook
+    pkgs.systemd
   ];
-  pytestFlagsArray = ["tests/tests.py"];
 
-  propagatedBuildInputs = [
-    setuptools
-    cryptography
-    pefile
-  ];
+  pytestFlagsArray = [ "tests/tests.py" ];
+
+  pythonImportsCheck = [ "virt.firmware.efi" ];
 
   meta = with lib; {
     description = "Tools for virtual machine firmware volumes";
     homepage = "https://gitlab.com/kraxel/virt-firmware";
     license = licenses.gpl2;
-    maintainers = with maintainers; [ lheckemann raitobezarius ];
+    maintainers = with maintainers; [
+      raitobezarius
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/virtkey/default.nix b/pkgs/development/python-modules/virtkey/default.nix
index df1d0461e434c..4815ce63413f4 100644
--- a/pkgs/development/python-modules/virtkey/default.nix
+++ b/pkgs/development/python-modules/virtkey/default.nix
@@ -1,9 +1,22 @@
-{ stdenv, lib, buildPythonPackage, fetchurl, pkg-config, gtk2, libX11, libXtst, libXi, libxkbfile, xorgproto }:
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchurl,
+  pkg-config,
+  gtk2,
+  libX11,
+  libXtst,
+  libXi,
+  libxkbfile,
+  xorgproto,
+}:
 
 let
   majorVersion = "0.63";
   minorVersion = "0";
-in buildPythonPackage rec {
+in
+buildPythonPackage rec {
   pname = "virtkey";
   version = "${majorVersion}.${minorVersion}";
   format = "setuptools";
@@ -15,7 +28,14 @@ in buildPythonPackage rec {
 
   nativeBuildInputs = [ pkg-config ];
 
-  buildInputs = [ gtk2 libX11 libXtst libXi libxkbfile xorgproto ];
+  buildInputs = [
+    gtk2
+    libX11
+    libXtst
+    libXi
+    libxkbfile
+    xorgproto
+  ];
 
   meta = with lib; {
     broken = stdenv.isDarwin;
diff --git a/pkgs/development/python-modules/virtualenv-clone/default.nix b/pkgs/development/python-modules/virtualenv-clone/default.nix
index 51c1d12b184d8..2e1e864cb81bb 100644
--- a/pkgs/development/python-modules/virtualenv-clone/default.nix
+++ b/pkgs/development/python-modules/virtualenv-clone/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, virtualenv
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  virtualenv,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,19 +21,15 @@ buildPythonPackage rec {
   postPatch = ''
     substituteInPlace tests/__init__.py \
       --replace "'virtualenv'" "'${virtualenv}/bin/virtualenv'" \
-      --replace "'3.9', '3.10']" "'3.9', '3.10', '3.11']" # if the Python version used isn't in this list, tests fail
+      --replace "'3.9', '3.10']" "'3.9', '3.10', '3.11', '3.12']" # if the Python version used isn't in this list, tests fail
 
     substituteInPlace tests/test_virtualenv_sys.py \
       --replace "'virtualenv'" "'${virtualenv}/bin/virtualenv'"
   '';
 
-  propagatedBuildInputs = [
-    virtualenv
-  ];
+  propagatedBuildInputs = [ virtualenv ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     homepage = "https://github.com/edwardgeorge/virtualenv-clone";
diff --git a/pkgs/development/python-modules/virtualenv/default.nix b/pkgs/development/python-modules/virtualenv/default.nix
index d2b60338121bf..75e9d40e860d5 100644
--- a/pkgs/development/python-modules/virtualenv/default.nix
+++ b/pkgs/development/python-modules/virtualenv/default.nix
@@ -1,34 +1,35 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, isPy27
-, isPyPy
-, cython
-, distlib
-, fetchPypi
-, filelock
-, flaky
-, hatch-vcs
-, hatchling
-, importlib-metadata
-, platformdirs
-, pytest-freezegun
-, pytest-mock
-, pytest-timeout
-, pytestCheckHook
-, time-machine
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  isPy27,
+  isPyPy,
+  cython,
+  distlib,
+  fetchPypi,
+  filelock,
+  flaky,
+  hatch-vcs,
+  hatchling,
+  importlib-metadata,
+  platformdirs,
+  pytest-freezegun,
+  pytest-mock,
+  pytest-timeout,
+  pytestCheckHook,
+  time-machine,
 }:
 
 buildPythonPackage rec {
   pname = "virtualenv";
-  version = "20.25.3";
+  version = "20.26.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-e7VUu9/qrMM0n6YU6lv/asMA/HwzXp+s86O8/HA/Rb4=";
+    hash = "sha256-gr8PTuu7eNNt2u4Cg9Q/5XNrU4gLiozc03OQoHrDdBw=";
   };
 
   nativeBuildInputs = [
@@ -40,9 +41,7 @@ buildPythonPackage rec {
     distlib
     filelock
     platformdirs
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    importlib-metadata
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ];
 
   nativeCheckInputs = [
     cython
@@ -51,9 +50,7 @@ buildPythonPackage rec {
     pytest-mock
     pytest-timeout
     pytestCheckHook
-  ] ++ lib.optionals (!isPyPy) [
-    time-machine
-  ];
+  ] ++ lib.optionals (!isPyPy) [ time-machine ];
 
   preCheck = ''
     export HOME=$(mktemp -d)
@@ -65,29 +62,28 @@ buildPythonPackage rec {
     "tests/unit/seed/embed/test_bootstrap_link_via_app_data.py"
   ];
 
-  disabledTests = [
-    # Network access
-    "test_create_no_seed"
-    "test_seed_link_via_app_data"
-    # Permission Error
-    "test_bad_exe_py_info_no_raise"
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    "test_help"
-  ] ++ lib.optionals (isPyPy) [
-    # encoding problems
-    "test_bash"
-    # permission error
-    "test_can_build_c_extensions"
-    # fails to detect pypy version
-    "test_discover_ok"
-  ];
+  disabledTests =
+    [
+      # Network access
+      "test_create_no_seed"
+      "test_seed_link_via_app_data"
+      # Permission Error
+      "test_bad_exe_py_info_no_raise"
+    ]
+    ++ lib.optionals (pythonOlder "3.11") [ "test_help" ]
+    ++ lib.optionals (isPyPy) [
+      # encoding problems
+      "test_bash"
+      # permission error
+      "test_can_build_c_extensions"
+      # fails to detect pypy version
+      "test_discover_ok"
+    ];
 
-  pythonImportsCheck = [
-    "virtualenv"
-  ];
+  pythonImportsCheck = [ "virtualenv" ];
 
   meta = with lib; {
-    description = "A tool to create isolated Python environments";
+    description = "Tool to create isolated Python environments";
     mainProgram = "virtualenv";
     homepage = "http://www.virtualenv.org";
     changelog = "https://github.com/pypa/virtualenv/blob/${version}/docs/changelog.rst";
diff --git a/pkgs/development/python-modules/virtualenvwrapper/default.nix b/pkgs/development/python-modules/virtualenvwrapper/default.nix
index c7f6dad7c8cec..62f6315880fa3 100644
--- a/pkgs/development/python-modules/virtualenvwrapper/default.nix
+++ b/pkgs/development/python-modules/virtualenvwrapper/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pbr
-, pip
-, pkgs
-, stevedore
-, virtualenv
-, virtualenv-clone
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pbr,
+  pip,
+  pkgs,
+  stevedore,
+  virtualenv,
+  virtualenv-clone,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -23,8 +24,16 @@ buildPythonPackage rec {
   # pip depend on $HOME setting
   preConfigure = "export HOME=$TMPDIR";
 
-  buildInputs = [ pbr pip pkgs.which ];
-  propagatedBuildInputs = [ stevedore virtualenv virtualenv-clone ];
+  buildInputs = [
+    pbr
+    pip
+    pkgs.which
+  ];
+  propagatedBuildInputs = [
+    stevedore
+    virtualenv
+    virtualenv-clone
+  ];
 
   postPatch = ''
     for file in "virtualenvwrapper.sh" "virtualenvwrapper_lazy.sh"; do
@@ -46,25 +55,25 @@ buildPythonPackage rec {
   '';
 
   postInstall = ''
-    # This might look like a dirty hack but we can't use the makeWrapper function because
-    # the wrapped file were then called via "exec". The virtualenvwrapper shell scripts
-    # aren't normal executables. Instead, the user has to evaluate them.
+        # This might look like a dirty hack but we can't use the makeWrapper function because
+        # the wrapped file were then called via "exec". The virtualenvwrapper shell scripts
+        # aren't normal executables. Instead, the user has to evaluate them.
 
-    for file in "virtualenvwrapper.sh" "virtualenvwrapper_lazy.sh"; do
-      local wrapper="$out/bin/$file"
-      local wrapped="$out/bin/.$file-wrapped"
-      mv "$wrapper" "$wrapped"
+        for file in "virtualenvwrapper.sh" "virtualenvwrapper_lazy.sh"; do
+          local wrapper="$out/bin/$file"
+          local wrapped="$out/bin/.$file-wrapped"
+          mv "$wrapper" "$wrapped"
 
-      # WARNING: Don't indent the lines below because that would break EOF
-      cat > "$wrapper" << EOF
-export PATH="${python}/bin:\$PATH"
-export VIRTUALENVWRAPPER_PYTHONPATH="$PYTHONPATH:$(toPythonPath $out)"
-source "$wrapped"
-EOF
+          # WARNING: Don't indent the lines below because that would break EOF
+          cat > "$wrapper" << EOF
+    export PATH="${python}/bin:\$PATH"
+    export VIRTUALENVWRAPPER_PYTHONPATH="$PYTHONPATH:$(toPythonPath $out)"
+    source "$wrapped"
+    EOF
 
-      chmod -x "$wrapped"
-      chmod +x "$wrapper"
-    done
+          chmod -x "$wrapped"
+          chmod +x "$wrapper"
+        done
   '';
 
   meta = with lib; {
@@ -72,5 +81,4 @@ EOF
     homepage = "https://pypi.python.org/pypi/virtualenvwrapper";
     license = licenses.mit;
   };
-
 }
diff --git a/pkgs/development/python-modules/visions/default.nix b/pkgs/development/python-modules/visions/default.nix
new file mode 100644
index 0000000000000..6d3da09118f97
--- /dev/null
+++ b/pkgs/development/python-modules/visions/default.nix
@@ -0,0 +1,70 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+, setuptools
+, attrs
+, imagehash
+, matplotlib
+, multimethod
+, networkx
+, numpy
+, pandas
+, pillow
+, pydot
+, pygraphviz
+, shapely
+}:
+
+buildPythonPackage rec {
+  pname = "visions";
+  version = "0.7.6";
+  pyproject = true;
+
+  disabled = pythonOlder "3.8";
+
+  src = fetchFromGitHub {
+    owner = "dylan-profiler";
+    repo = "visions";
+    rev = "5fe9dd0c2a5ada0162a005c880bac5296686a5aa";  # no 0.7.6 tag in github
+    hash = "sha256-SZzDXm+faAvrfSOT0fwwAf9IH7upNybwKxbjw1CrHj8=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [
+    attrs
+    imagehash
+    multimethod
+    networkx
+    numpy
+    pandas
+  ];
+
+  passthru.optional-dependencies = {
+    type-geometry = [ shapely ];
+    type-image-path = [ imagehash pillow ];
+    plotting = [ matplotlib pydot pygraphviz ];
+  };
+
+  nativeCheckInputs = [
+    pytestCheckHook
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+
+  disabledTestPaths = [
+    # requires running Apache Spark:
+    "tests/spark_/typesets/test_spark_standard_set.py"
+  ];
+
+  pythonImportsCheck = [
+    "visions"
+  ];
+
+  meta = with lib; {
+    description = "Type system for data analysis in Python";
+    homepage = "https://dylan-profiler.github.io/visions";
+    license = licenses.bsdOriginal;
+    maintainers = with maintainers; [ bcdarwin ];
+  };
+}
diff --git a/pkgs/development/python-modules/visitor/default.nix b/pkgs/development/python-modules/visitor/default.nix
index e0caa64b2b10f..87c286c8e3425 100644
--- a/pkgs/development/python-modules/visitor/default.nix
+++ b/pkgs/development/python-modules/visitor/default.nix
@@ -1,4 +1,8 @@
-{ lib, buildPythonPackage, fetchPypi }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+}:
 
 buildPythonPackage rec {
   pname = "visitor";
@@ -12,7 +16,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/mbr/visitor";
-    description = "A tiny pythonic visitor implementation";
+    description = "Tiny pythonic visitor implementation";
     license = licenses.mit;
     maintainers = with maintainers; [ ];
   };
diff --git a/pkgs/development/python-modules/vispy/default.nix b/pkgs/development/python-modules/vispy/default.nix
index e25133dfda5b6..eb3b16c0a3ea5 100644
--- a/pkgs/development/python-modules/vispy/default.nix
+++ b/pkgs/development/python-modules/vispy/default.nix
@@ -1,36 +1,37 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, substituteAll
-, fetchPypi
-, cython
-, fontconfig
-, freetype-py
-, hsluv
-, kiwisolver
-, libGL
-, numpy
-, oldest-supported-numpy
-, packaging
-, pythonOlder
-, setuptools
-, setuptools-scm
-, wheel
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  substituteAll,
+  fetchPypi,
+  cython,
+  fontconfig,
+  freetype-py,
+  hsluv,
+  kiwisolver,
+  libGL,
+  numpy,
+  oldest-supported-numpy,
+  packaging,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
+  wheel,
 }:
 
 buildPythonPackage rec {
   pname = "vispy";
-  version = "0.14.2";
+  version = "0.14.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-7ti0TW9ch70pWySqmi4OTm3GqQXM7gGy1ByPvwp2ez0=";
+    hash = "sha256-77u4R6kIuvfnFpq5vylhOKOTZPNn5ssKjsA61xaZ0x0=";
   };
 
-  patches = [
+  patches = lib.optionals (!stdenv.hostPlatform.isDarwin) [
     (substituteAll {
       src = ./library-paths.patch;
       fontconfig = "${fontconfig.lib}/lib/libfontconfig${stdenv.hostPlatform.extensions.sharedLibrary}";
@@ -46,9 +47,7 @@ buildPythonPackage rec {
     wheel
   ];
 
-  buildInputs = [
-    libGL
-  ];
+  buildInputs = [ libGL ];
 
   propagatedBuildInputs = [
     freetype-py
@@ -58,7 +57,7 @@ buildPythonPackage rec {
     packaging
   ];
 
-  doCheck = false;  # otherwise runs OSX code on linux.
+  doCheck = false; # otherwise runs OSX code on linux.
 
   pythonImportsCheck = [
     "vispy"
diff --git a/pkgs/development/python-modules/viv-utils/default.nix b/pkgs/development/python-modules/viv-utils/default.nix
index e411a2dd5758c..59119f85cd2bb 100644
--- a/pkgs/development/python-modules/viv-utils/default.nix
+++ b/pkgs/development/python-modules/viv-utils/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, funcy
-, intervaltree
-, pefile
-, typing-extensions
-, vivisect
-, pytest-sugar
-, pytestCheckHook
-, python-flirt
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  funcy,
+  intervaltree,
+  pefile,
+  typing-extensions,
+  vivisect,
+  pytest-sugar,
+  pytestCheckHook,
+  python-flirt,
 }:
 buildPythonPackage rec {
   pname = "viv-utils";
-  version = "0.7.9";
+  version = "0.7.10";
   format = "setuptools";
 
   src = fetchFromGitHub {
     owner = "williballenthin";
     repo = "viv-utils";
     rev = "refs/tags/v${version}";
-    hash = "sha256-xM3jtA6fNk36+enL/EcQH59CNajYnGlEDu06QXIFz6A=";
+    hash = "sha256-pQAe4QuOcx5MG+slJkf4UU38TGt4pU0uVZr+vtwsWgM=";
   };
 
   postPatch = ''
@@ -42,9 +43,7 @@ buildPythonPackage rec {
 
   passthru = {
     optional-dependencies = {
-      flirt = [
-        python-flirt
-      ];
+      flirt = [ python-flirt ];
     };
   };
 
diff --git a/pkgs/development/python-modules/vivisect/default.nix b/pkgs/development/python-modules/vivisect/default.nix
index bf281f374c509..ef939cbdca6e0 100644
--- a/pkgs/development/python-modules/vivisect/default.nix
+++ b/pkgs/development/python-modules/vivisect/default.nix
@@ -1,17 +1,17 @@
-{ lib
-, buildPythonPackage
-, cxxfilt
-, fetchPypi
-, msgpack
-, pyasn1
-, pyasn1-modules
-, pycparser
-, pyqt5
-, pythonRelaxDepsHook
-, pyqtwebengine
-, pythonOlder
-, withGui ? false
-, wrapQtAppsHook
+{
+  lib,
+  buildPythonPackage,
+  cxxfilt,
+  fetchPypi,
+  msgpack,
+  pyasn1,
+  pyasn1-modules,
+  pycparser,
+  pyqt5,
+  pyqtwebengine,
+  pythonOlder,
+  withGui ? false,
+  wrapQtAppsHook,
 }:
 
 buildPythonPackage rec {
@@ -33,7 +33,6 @@ buildPythonPackage rec {
   ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     wrapQtAppsHook
   ];
 
@@ -57,9 +56,7 @@ buildPythonPackage rec {
   # requires another repo for test files
   doCheck = false;
 
-  pythonImportsCheck = [
-    "vivisect"
-  ];
+  pythonImportsCheck = [ "vivisect" ];
 
   meta = with lib; {
     description = "Python disassembler, debugger, emulator, and static analysis framework";
diff --git a/pkgs/development/python-modules/vllm/default.nix b/pkgs/development/python-modules/vllm/default.nix
index ce739e1d6dd27..7ccab0a231293 100644
--- a/pkgs/development/python-modules/vllm/default.nix
+++ b/pkgs/development/python-modules/vllm/default.nix
@@ -1,38 +1,38 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, which
-, ninja
-, packaging
-, setuptools
-, torch
-, outlines
-, wheel
-, psutil
-, ray
-, pandas
-, pyarrow
-, sentencepiece
-, numpy
-, transformers
-, xformers
-, fastapi
-, uvicorn
-, pydantic
-, aioprometheus
-, pynvml
-, cupy
-, writeShellScript
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  which,
+  ninja,
+  packaging,
+  setuptools,
+  torch,
+  outlines,
+  wheel,
+  psutil,
+  ray,
+  pandas,
+  pyarrow,
+  sentencepiece,
+  numpy,
+  transformers,
+  xformers,
+  fastapi,
+  uvicorn,
+  pydantic,
+  aioprometheus,
+  pynvml,
+  cupy,
+  writeShellScript,
 
-, config
+  config,
 
-, cudaSupport ? config.cudaSupport
-, cudaPackages ? {}
+  cudaSupport ? config.cudaSupport,
+  cudaPackages ? { },
 
-, rocmSupport ? config.rocmSupport
-, rocmPackages ? {}
-, gpuTargets ? []
+  rocmSupport ? config.rocmSupport,
+  rocmPackages ? { },
+  gpuTargets ? [ ],
 }:
 
 buildPythonPackage rec {
@@ -48,7 +48,9 @@ buildPythonPackage rec {
   };
 
   # Otherwise it tries to enumerate host supported ROCM gfx archs, and that is not possible due to sandboxing.
-  PYTORCH_ROCM_ARCH = lib.optionalString rocmSupport (lib.strings.concatStringsSep ";" rocmPackages.clr.gpuTargets);
+  PYTORCH_ROCM_ARCH = lib.optionalString rocmSupport (
+    lib.strings.concatStringsSep ";" rocmPackages.clr.gpuTargets
+  );
 
   # xformers 0.0.23.post1 github release specifies its version as 0.0.24
   #
@@ -57,29 +59,32 @@ buildPythonPackage rec {
   # https://github.com/vllm-project/vllm/pull/2845/commits/34a0ad7f9bb7880c0daa2992d700df3e01e91363
   #
   # hipcc --version works badly on NixOS due to unresolved paths.
-  postPatch = ''
-    substituteInPlace requirements.txt \
-      --replace "xformers == 0.0.23.post1" "xformers == 0.0.24"
-    substituteInPlace requirements.txt \
-      --replace "cupy-cuda12x == 12.1.0" "cupy == 12.3.0"
-    substituteInPlace requirements-build.txt \
-      --replace "torch==2.1.2" "torch == 2.2.1"
-    substituteInPlace pyproject.toml \
-      --replace "torch == 2.1.2" "torch == 2.2.1"
-    substituteInPlace requirements.txt \
-      --replace "torch == 2.1.2" "torch == 2.2.1"
-  '' + lib.optionalString rocmSupport ''
-    substituteInPlace setup.py \
-      --replace "'hipcc', '--version'" "'${writeShellScript "hipcc-version-stub" "echo HIP version: 0.0"}'"
-  '';
+  postPatch =
+    ''
+      substituteInPlace requirements.txt \
+        --replace "xformers == 0.0.23.post1" "xformers == 0.0.24"
+      substituteInPlace requirements.txt \
+        --replace "cupy-cuda12x == 12.1.0" "cupy == 12.3.0"
+      substituteInPlace requirements-build.txt \
+        --replace "torch==2.1.2" "torch == 2.2.1"
+      substituteInPlace pyproject.toml \
+        --replace "torch == 2.1.2" "torch == 2.2.1"
+      substituteInPlace requirements.txt \
+        --replace "torch == 2.1.2" "torch == 2.2.1"
+    ''
+    + lib.optionalString rocmSupport ''
+      substituteInPlace setup.py \
+        --replace "'hipcc', '--version'" "'${writeShellScript "hipcc-version-stub" "echo HIP version: 0.0"}'"
+    '';
 
-  preBuild = lib.optionalString cudaSupport ''
-    export CUDA_HOME=${cudaPackages.cuda_nvcc}
-  ''
-  + lib.optionalString rocmSupport ''
-    export ROCM_HOME=${rocmPackages.clr}
-    export PATH=$PATH:${rocmPackages.hipcc}
-  '';
+  preBuild =
+    lib.optionalString cudaSupport ''
+      export CUDA_HOME=${cudaPackages.cuda_nvcc}
+    ''
+    + lib.optionalString rocmSupport ''
+      export ROCM_HOME=${rocmPackages.clr}
+      export PATH=$PATH:${rocmPackages.hipcc}
+    '';
 
   nativeBuildInputs = [
     ninja
@@ -88,40 +93,48 @@ buildPythonPackage rec {
     torch
     wheel
     which
-  ] ++ lib.optionals rocmSupport [
-    rocmPackages.hipcc
-  ];
+  ] ++ lib.optionals rocmSupport [ rocmPackages.hipcc ];
 
-  buildInputs = (lib.optionals cudaSupport (with cudaPackages; [
-    cuda_cudart # cuda_runtime.h, -lcudart
-    cuda_cccl.dev # <thrust/*>
-    libcusparse.dev # cusparse.h
-    libcublas.dev # cublas_v2.h
-    libcusolver # cusolverDn.h
-  ])) ++ (lib.optionals rocmSupport (with rocmPackages; [
-    clr
-    rocthrust
-    rocprim
-    hipsparse
-    hipblas
-  ]));
+  buildInputs =
+    (lib.optionals cudaSupport (
+      with cudaPackages;
+      [
+        cuda_cudart # cuda_runtime.h, -lcudart
+        cuda_cccl.dev # <thrust/*>
+        libcusparse.dev # cusparse.h
+        libcublas.dev # cublas_v2.h
+        libcusolver # cusolverDn.h
+      ]
+    ))
+    ++ (lib.optionals rocmSupport (
+      with rocmPackages;
+      [
+        clr
+        rocthrust
+        rocprim
+        hipsparse
+        hipblas
+      ]
+    ));
 
-  propagatedBuildInputs = [
-    psutil
-    ray
-    pandas
-    pyarrow
-    sentencepiece
-    numpy
-    torch
-    transformers
-    outlines
-    xformers
-    fastapi
-    uvicorn
-    pydantic
-    aioprometheus
-  ] ++ uvicorn.optional-dependencies.standard
+  propagatedBuildInputs =
+    [
+      psutil
+      ray
+      pandas
+      pyarrow
+      sentencepiece
+      numpy
+      torch
+      transformers
+      outlines
+      xformers
+      fastapi
+      uvicorn
+      pydantic
+      aioprometheus
+    ]
+    ++ uvicorn.optional-dependencies.standard
     ++ aioprometheus.optional-dependencies.starlette
     ++ lib.optionals cudaSupport [
       pynvml
@@ -131,11 +144,14 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "vllm" ];
 
   meta = with lib; {
-    description = "A high-throughput and memory-efficient inference and serving engine for LLMs";
+    description = "High-throughput and memory-efficient inference and serving engine for LLMs";
     changelog = "https://github.com/vllm-project/vllm/releases/tag/v${version}";
     homepage = "https://github.com/vllm-project/vllm";
     license = licenses.asl20;
-    maintainers = with maintainers; [ happysalada lach ];
+    maintainers = with maintainers; [
+      happysalada
+      lach
+    ];
     broken = !cudaSupport && !rocmSupport;
   };
 }
diff --git a/pkgs/development/python-modules/vmprof/default.nix b/pkgs/development/python-modules/vmprof/default.nix
index 755417803a2e5..e8b28062a829a 100644
--- a/pkgs/development/python-modules/vmprof/default.nix
+++ b/pkgs/development/python-modules/vmprof/default.nix
@@ -1,58 +1,56 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchpatch
-, fetchPypi
-, colorama
-, libunwind
-, pytz
-, requests
-, six
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  pythonAtLeast,
+  fetchFromGitHub,
+  setuptools,
+  colorama,
+  pytz,
+  requests,
+  six,
+  libunwind,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
-  version = "0.4.17";
-  format = "setuptools";
   pname = "vmprof";
+  version = "0.4.17";
+  pyproject = true;
+
+  disabled = pythonOlder "3.6" || pythonAtLeast "3.12";
 
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "sha256-ACYj7Lb/QT6deG0uuiPCj850QXhaw4XuQX6aZu8OM2U=";
+  src = fetchFromGitHub {
+    owner = "vmprof";
+    repo = "vmprof-python";
+    rev = "refs/tags/${version}";
+    hash = "sha256-7k6mtEdPmp1eNzB4l/k/ExSYtRJVmRxcx50ql8zR36k=";
   };
 
+  build-system = [ setuptools ];
+
+  dependencies = [
+    colorama
+    requests
+    six
+    pytz
+  ];
+
   buildInputs = [ libunwind ];
-  propagatedBuildInputs = [ colorama requests six pytz ];
-
-  patches = [
-    (fetchpatch {
-      name = "${pname}-python-3.10-compat.patch";
-      # https://github.com/vmprof/vmprof-python/pull/198
-      url = "https://github.com/vmprof/vmprof-python/commit/e4e99e5aa677f96d1970d88c8a439f995f429f85.patch";
-      hash = "sha256-W/c6WtVuKi7xO2sCOr71mrZTWqI86bWg5a0FeDNolh0=";
-    })
-    (fetchpatch {
-      name = "${pname}-python-3.11-compat.patch";
-      # https://github.com/vmprof/vmprof-python/pull/251 (not yet merged)
-      url = "https://github.com/matthiasdiener/vmprof-python/compare/a1a1b5264ec0b197444c0053e44f8ae4ffed9353...13c39166363b960017393b614270befe01230be8.patch";
-      excludes = [ "test_requirements.txt" ];
-      hash = "sha256-3+0PVdAf83McNd93Q9dD4HLXt39UinVU5BA8jWfT6F4=";
-    })
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  disabledTests = [
+    "test_gzip_call"
+    "test_is_enabled"
+    "test_get_profile_path"
+    "test_get_runtime"
   ];
 
-  # No tests included
-  doCheck = false;
   pythonImportsCheck = [ "vmprof" ];
 
-  # Workaround build failure on -fno-common toolchains:
-  #   ld: src/vmprof_unix.o:src/vmprof_common.h:92: multiple definition of
-  #     `_PyThreadState_Current'; src/_vmprof.o:src/vmprof_common.h:92: first defined here
-  # TODO: can be removed once next release contains:
-  #   https://github.com/vmprof/vmprof-python/pull/203
-  env.NIX_CFLAGS_COMPILE = "-fcommon";
-
   meta = with lib; {
-    broken = (stdenv.isLinux && stdenv.isAarch64) || stdenv.isDarwin;
-    description = "A vmprof client";
+    description = "Vmprof client";
     mainProgram = "vmprofshow";
     license = licenses.mit;
     homepage = "https://vmprof.readthedocs.org/";
diff --git a/pkgs/development/python-modules/vncdo/default.nix b/pkgs/development/python-modules/vncdo/default.nix
index 2fbee9f2d65a6..76fb2fc98ef54 100644
--- a/pkgs/development/python-modules/vncdo/default.nix
+++ b/pkgs/development/python-modules/vncdo/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pexpect
-, pillow
-, pycryptodomex
-, pytestCheckHook
-, pythonOlder
-, pyvirtualdisplay
-, setuptools
-, twisted
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pexpect,
+  pillow,
+  pycryptodomex,
+  pytestCheckHook,
+  pythonOlder,
+  pyvirtualdisplay,
+  setuptools,
+  twisted,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-QrD6z/g85FwaZCJ1PRn8CBKCOQcbVjQ9g0NpPIxguqk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pillow
@@ -41,12 +40,10 @@ buildPythonPackage rec {
     pyvirtualdisplay
   ];
 
-  pythonImportsCheck = [
-    "vncdotool"
-  ];
+  pythonImportsCheck = [ "vncdotool" ];
 
   meta = with lib; {
-    description = "A command line VNC client and Python library";
+    description = "Command line VNC client and Python library";
     homepage = "https://github.com/sibson/vncdotool";
     changelog = "https://github.com/sibson/vncdotool/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/vnoise/default.nix b/pkgs/development/python-modules/vnoise/default.nix
new file mode 100644
index 0000000000000..02f917bc17aca
--- /dev/null
+++ b/pkgs/development/python-modules/vnoise/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, numpy
+, pytestCheckHook
+, setuptools
+}:
+
+buildPythonPackage rec {
+  pname = "vnoise";
+  version = "0.1.0";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "plottertools";
+    repo = "vnoise";
+    rev = version;
+    hash = "sha256-nflAh3vj48wneM0wy/+M+XD6GC63KZEIFb1x4SS46YI=";
+  };
+
+  nativeBuildInputs = [ setuptools ];
+
+  propagatedBuildInputs = [ numpy ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "vnoise" ];
+
+  meta = with lib; {
+    description = "Vectorized, pure-Python Perlin noise library";
+    homepage = "https://github.com/plottertools/vnoise";
+    license = licenses.mit;
+    maintainers = with maintainers; [ SuperSandro2000 ];
+  };
+}
diff --git a/pkgs/development/python-modules/vobject/default.nix b/pkgs/development/python-modules/vobject/default.nix
index 50ebd8c52824e..5653e5629d402 100644
--- a/pkgs/development/python-modules/vobject/default.nix
+++ b/pkgs/development/python-modules/vobject/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchPypi, isPyPy, python, python-dateutil }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  python,
+  python-dateutil,
+}:
 
 buildPythonPackage rec {
   version = "0.9.7";
diff --git a/pkgs/development/python-modules/volatile/default.nix b/pkgs/development/python-modules/volatile/default.nix
index 7be5989b159b3..931980ebc356f 100644
--- a/pkgs/development/python-modules/volatile/default.nix
+++ b/pkgs/development/python-modules/volatile/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-TYUvr0bscM/FaPk9oiF4Ob7HdKa2HlbpEFmaPfh4ir0=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "volatile"
-  ];
+  pythonImportsCheck = [ "volatile" ];
 
   meta = with lib; {
-    description = "A small extension for the tempfile module";
+    description = "Small extension for the tempfile module";
     homepage = "https://github.com/mbr/volatile";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
diff --git a/pkgs/development/python-modules/volkszaehler/default.nix b/pkgs/development/python-modules/volkszaehler/default.nix
index 648447536e379..6b14f37d9e08f 100644
--- a/pkgs/development/python-modules/volkszaehler/default.nix
+++ b/pkgs/development/python-modules/volkszaehler/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-7SB0x0BO9SMeMG1M/hH4fX7oDbtwPgCzyRrrUq1/WPo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   dependencies = [
     aiohttp
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # no tests are present
   doCheck = false;
 
-  pythonImportsCheck = [
-    "volkszaehler"
-  ];
+  pythonImportsCheck = [ "volkszaehler" ];
 
   meta = with lib; {
     description = "Python module for interacting with the Volkszahler API";
diff --git a/pkgs/development/python-modules/voluptuous-openapi/default.nix b/pkgs/development/python-modules/voluptuous-openapi/default.nix
new file mode 100644
index 0000000000000..a1f75cb60b01a
--- /dev/null
+++ b/pkgs/development/python-modules/voluptuous-openapi/default.nix
@@ -0,0 +1,43 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  setuptools,
+
+  # dependencies
+  voluptuous,
+
+  # tests
+  pytestCheckHook,
+}:
+
+buildPythonPackage rec {
+  pname = "voluptuous-openapi";
+  version = "0.0.4";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "Shulyaka";
+    repo = "voluptuous-openapi";
+    # TODO: https://github.com/Shulyaka/voluptuous-openapi/commit/155f2dd6d55998c41aaafe0aa8a980f78f9e478b#commitcomment-142845137
+    rev = "155f2dd6d55998c41aaafe0aa8a980f78f9e478b";
+    hash = "sha256-ciAaWTltPKT9NzfxWoX6gk1gSMszQjVVimfn/0D+mfg=";
+  };
+
+  build-system = [ setuptools ];
+
+  dependencies = [ voluptuous ];
+
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "voluptuous_openapi" ];
+
+  meta = with lib; {
+    description = "Convert voluptuous schemas to OpenAPI Schema object";
+    homepage = "https://github.com/Shulyaka/voluptuous-openapi";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ hexa ];
+  };
+}
diff --git a/pkgs/development/python-modules/voluptuous-serialize/default.nix b/pkgs/development/python-modules/voluptuous-serialize/default.nix
index c5e0093f44870..f23b771e83067 100644
--- a/pkgs/development/python-modules/voluptuous-serialize/default.nix
+++ b/pkgs/development/python-modules/voluptuous-serialize/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, pytestCheckHook
-, voluptuous
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  pytestCheckHook,
+  voluptuous,
 }:
 
-buildPythonPackage rec  {
+buildPythonPackage rec {
   pname = "voluptuous-serialize";
   version = "2.6.0";
   format = "setuptools";
@@ -20,17 +21,11 @@ buildPythonPackage rec  {
     hash = "sha256-vvreXSQDkA3JkZpOKZqJgMRyObJX/cSR8r+A26h9fNE=";
   };
 
-  propagatedBuildInputs = [
-    voluptuous
-  ];
+  propagatedBuildInputs = [ voluptuous ];
 
-  pythonImportsCheck = [
-    "voluptuous_serialize"
-  ];
+  pythonImportsCheck = [ "voluptuous_serialize" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Convert Voluptuous schemas to dictionaries so they can be serialized";
diff --git a/pkgs/development/python-modules/voluptuous-stubs/default.nix b/pkgs/development/python-modules/voluptuous-stubs/default.nix
index 840a7cc510048..1f77a12b41831 100644
--- a/pkgs/development/python-modules/voluptuous-stubs/default.nix
+++ b/pkgs/development/python-modules/voluptuous-stubs/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mypy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mypy,
 }:
 
 buildPythonPackage rec {
@@ -14,13 +15,9 @@ buildPythonPackage rec {
     hash = "sha256-cPscCIJC8g4RAjJStWSM13+DH2ks2RDI+XE8wTXPjMg=";
   };
 
-  nativeBuildInputs = [
-    mypy
-  ];
+  nativeBuildInputs = [ mypy ];
 
-  pythonImportsCheck = [
-    "voluptuous-stubs"
-  ];
+  pythonImportsCheck = [ "voluptuous-stubs" ];
 
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/voluptuous/default.nix b/pkgs/development/python-modules/voluptuous/default.nix
index 1f9d53412d3df..fb86d84a9dcde 100644
--- a/pkgs/development/python-modules/voluptuous/default.nix
+++ b/pkgs/development/python-modules/voluptuous/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,21 +21,13 @@ buildPythonPackage rec {
     hash = "sha256-2a4lid9NibbvhHfs/fcyHgPRZ2HirIKuPYxMsl5oA4o=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "voluptuous"
-  ];
+  pythonImportsCheck = [ "voluptuous" ];
 
-  pytestFlagsArray = [
-    "voluptuous/tests/"
-  ];
+  pytestFlagsArray = [ "voluptuous/tests/" ];
 
   meta = with lib; {
     description = "Python data validation library";
diff --git a/pkgs/development/python-modules/volvooncall/default.nix b/pkgs/development/python-modules/volvooncall/default.nix
index 33efbf4082ac2..c3189b86623e9 100644
--- a/pkgs/development/python-modules/volvooncall/default.nix
+++ b/pkgs/development/python-modules/volvooncall/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, aiohttp
-, amqtt
-, buildPythonPackage
-, certifi
-, docopt
-, fetchFromGitHub
-, fetchpatch
-, geopy
-, mock
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, websockets
+{
+  lib,
+  aiohttp,
+  amqtt,
+  buildPythonPackage,
+  certifi,
+  docopt,
+  fetchFromGitHub,
+  fetchpatch,
+  geopy,
+  mock,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  websockets,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   passthru.optional-dependencies = {
     console = [
@@ -60,9 +59,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ] ++ passthru.optional-dependencies.mqtt;
 
-  pythonImportsCheck = [
-    "volvooncall"
-  ];
+  pythonImportsCheck = [ "volvooncall" ];
 
   meta = with lib; {
     description = "Retrieve information from the Volvo On Call web service";
diff --git a/pkgs/development/python-modules/vowpalwabbit/default.nix b/pkgs/development/python-modules/vowpalwabbit/default.nix
index aae1d3fdf2371..dea16f654e2ee 100644
--- a/pkgs/development/python-modules/vowpalwabbit/default.nix
+++ b/pkgs/development/python-modules/vowpalwabbit/default.nix
@@ -1,19 +1,20 @@
-{ stdenv
-, lib
-, fetchPypi
-, buildPythonPackage
-, cmake
-, python
-, zlib
-, ncurses
-, docutils
-, pygments
-, numpy
-, scipy
-, scikit-learn
-, spdlog
-, fmt
-, rapidjson
+{
+  stdenv,
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  cmake,
+  python,
+  zlib,
+  ncurses,
+  docutils,
+  pygments,
+  numpy,
+  scipy,
+  scikit-learn,
+  spdlog,
+  fmt,
+  rapidjson,
 }:
 
 buildPythonPackage rec {
@@ -21,14 +22,12 @@ buildPythonPackage rec {
   version = "9.9.0";
   format = "setuptools";
 
-  src = fetchPypi{
+  src = fetchPypi {
     inherit pname version;
     hash = "sha256-YCg2EI4rhEMwcVEzx9ES8Z3CoCddeUFVk4lZ0nuQJUc=";
   };
 
-  nativeBuildInputs = [
-    cmake
-  ];
+  nativeBuildInputs = [ cmake ];
 
   buildInputs = [
     docutils
@@ -67,10 +66,10 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "Vowpal Wabbit is a fast machine learning library for online learning, and this is the python wrapper for the project.";
-    homepage    = "https://github.com/JohnLangford/vowpal_wabbit";
-    license     = licenses.bsd3;
-    broken      = stdenv.isAarch64;
+    description = "Vowpal Wabbit is a fast machine learning library for online learning, and this is the python wrapper for the project";
+    homepage = "https://github.com/JohnLangford/vowpal_wabbit";
+    license = licenses.bsd3;
+    broken = stdenv.isAarch64;
     maintainers = with maintainers; [ teh ];
   };
 }
diff --git a/pkgs/development/python-modules/vpk/default.nix b/pkgs/development/python-modules/vpk/default.nix
index 5a3a841a064d0..188ef50b36f12 100644
--- a/pkgs/development/python-modules/vpk/default.nix
+++ b/pkgs/development/python-modules/vpk/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-SPkPb8kveAR2cN9kd2plS+TjmBYBCfa6pJ0c22l69M0=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Library for working with Valve Pak files";
diff --git a/pkgs/development/python-modules/vprof/default.nix b/pkgs/development/python-modules/vprof/default.nix
index 1f41f7b9a2031..9454a25ad81a8 100644
--- a/pkgs/development/python-modules/vprof/default.nix
+++ b/pkgs/development/python-modules/vprof/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, wheel
-, psutil
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  wheel,
+  psutil,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     wheel
   ];
 
-  propagatedBuildInputs = [
-    psutil
-  ];
+  propagatedBuildInputs = [ psutil ];
 
   pythonImportsCheck = [ "vprof" ];
 
diff --git a/pkgs/development/python-modules/vqgan-jax/default.nix b/pkgs/development/python-modules/vqgan-jax/default.nix
index e917230b62b3f..87a16ca58bf56 100644
--- a/pkgs/development/python-modules/vqgan-jax/default.nix
+++ b/pkgs/development/python-modules/vqgan-jax/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flax
-, jax
-, jaxlib
-, transformers
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flax,
+  jax,
+  jaxlib,
+  transformers,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
 
   format = "setuptools";
 
-  buildInputs = [
-    jaxlib
-  ];
+  buildInputs = [ jaxlib ];
 
   propagatedBuildInputs = [
     flax
@@ -32,9 +31,7 @@ buildPythonPackage rec {
 
   doCheck = false;
 
-  pythonImportsCheck = [
-    "vqgan_jax"
-  ];
+  pythonImportsCheck = [ "vqgan_jax" ];
 
   meta = with lib; {
     description = "JAX implementation of VQGAN";
diff --git a/pkgs/development/python-modules/vsts-cd-manager/default.nix b/pkgs/development/python-modules/vsts-cd-manager/default.nix
index 8b4e036ac8f7b..bd6b7d782967b 100644
--- a/pkgs/development/python-modules/vsts-cd-manager/default.nix
+++ b/pkgs/development/python-modules/vsts-cd-manager/default.nix
@@ -1,5 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, msrest
-, mock
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  msrest,
+  mock,
 }:
 
 buildPythonPackage rec {
@@ -12,7 +16,10 @@ buildPythonPackage rec {
     sha256 = "0ys4hrmjbxl4qr26qr3dhhs27yfwn1635vwjdqh1qgjmrmcr1c0b";
   };
 
-  propagatedBuildInputs = [ msrest mock ];
+  propagatedBuildInputs = [
+    msrest
+    mock
+  ];
 
   # no tests included
   doCheck = false;
diff --git a/pkgs/development/python-modules/vsts/default.nix b/pkgs/development/python-modules/vsts/default.nix
index e91a203d7f14a..f56b9d33191f0 100644
--- a/pkgs/development/python-modules/vsts/default.nix
+++ b/pkgs/development/python-modules/vsts/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, lib
-, python
-, fetchPypi
-, msrest
+{
+  buildPythonPackage,
+  lib,
+  python,
+  fetchPypi,
+  msrest,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/vsure/default.nix b/pkgs/development/python-modules/vsure/default.nix
index 941c753f0e505..837a13f38b444 100644
--- a/pkgs/development/python-modules/vsure/default.nix
+++ b/pkgs/development/python-modules/vsure/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, click
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  click,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "verisure"
-  ];
+  pythonImportsCheck = [ "verisure" ];
 
   meta = with lib; {
     description = "Python library for working with verisure devices";
diff --git a/pkgs/development/python-modules/vt-py/default.nix b/pkgs/development/python-modules/vt-py/default.nix
index adaf1ed7feb72..ca26ec29bd554 100644
--- a/pkgs/development/python-modules/vt-py/default.nix
+++ b/pkgs/development/python-modules/vt-py/default.nix
@@ -3,17 +3,17 @@
   aiohttp,
   buildPythonPackage,
   fetchFromGitHub,
+  flask,
   pytest-asyncio,
   pytest-httpserver,
   pytestCheckHook,
-  pythonRelaxDepsHook,
   pythonOlder,
   setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "vt-py";
-  version = "0.18.2";
+  version = "0.18.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -22,7 +22,7 @@ buildPythonPackage rec {
     owner = "VirusTotal";
     repo = "vt-py";
     rev = "refs/tags/${version}";
-    hash = "sha256-Uspd422JlBKlsD/K7NciYhYUb12wInN/Z7zTw7aYP28=";
+    hash = "sha256-Zu4lUniXfKaZ1SvX3YCzMLa76HgUWpmddV2N9buNS3o=";
   };
 
   postPatch = ''
@@ -34,11 +34,11 @@ buildPythonPackage rec {
 
   build-system = [ setuptools ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [ aiohttp ];
 
   nativeCheckInputs = [
+    flask
     pytest-asyncio
     pytest-httpserver
     pytestCheckHook
diff --git a/pkgs/development/python-modules/vtjp/default.nix b/pkgs/development/python-modules/vtjp/default.nix
index 006374ee4ec78..cfc0aaf1b9069 100644
--- a/pkgs/development/python-modules/vtjp/default.nix
+++ b/pkgs/development/python-modules/vtjp/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
-, setuptools
-, tabulate
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
+  setuptools,
+  tabulate,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-3/toHY2PkG87J5bIMNJZHF/4mUvWaeHamMzPa1St7Xo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     requests
@@ -33,12 +32,10 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "vasttrafik"
-  ];
+  pythonImportsCheck = [ "vasttrafik" ];
 
   meta = with lib; {
-    description = "A Python wrapper and cli for Västtrafik public API";
+    description = "Python wrapper and cli for Västtrafik public API";
     mainProgram = "vtjp";
     homepage = "https://github.com/Miicroo/python-vasttrafik";
     changelog = "https://github.com/Miicroo/python-vasttrafik/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/vulcan-api/default.nix b/pkgs/development/python-modules/vulcan-api/default.nix
index c04718c1daad2..37baf7f80f342 100644
--- a/pkgs/development/python-modules/vulcan-api/default.nix
+++ b/pkgs/development/python-modules/vulcan-api/default.nix
@@ -1,18 +1,18 @@
-{ lib
-, aenum
-, aiodns
-, aiohttp
-, buildPythonPackage
-, faust-cchardet
-, fetchFromGitHub
-, pyopenssl
-, pythonOlder
-, pythonRelaxDepsHook
-, pytz
-, related
-, requests
-, uonet-request-signer-hebe
-, yarl
+{
+  lib,
+  aenum,
+  aiodns,
+  aiohttp,
+  buildPythonPackage,
+  faust-cchardet,
+  fetchFromGitHub,
+  pyopenssl,
+  pythonOlder,
+  pytz,
+  related,
+  requests,
+  uonet-request-signer-hebe,
+  yarl,
 }:
 
 buildPythonPackage rec {
@@ -29,13 +29,8 @@ buildPythonPackage rec {
     hash = "sha256-ebWKcRxAAkHVqV2RaftIHBRJe/TYSUxS+5Utxb0yhtw=";
   };
 
-  pythonRemoveDeps = [
-    "faust-cchardet"
-  ];
+  pythonRemoveDeps = [ "faust-cchardet" ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   propagatedBuildInputs = [
     aenum
@@ -53,9 +48,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "vulcan"
-  ];
+  pythonImportsCheck = [ "vulcan" ];
 
   meta = with lib; {
     description = "Python library for UONET+ e-register API";
diff --git a/pkgs/development/python-modules/vultr/default.nix b/pkgs/development/python-modules/vultr/default.nix
index f2150153be3a1..4e10e0144243e 100644
--- a/pkgs/development/python-modules/vultr/default.nix
+++ b/pkgs/development/python-modules/vultr/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     sha256 = "00lc5hdhchvm0472p03019bp9541d8y2773xkjy8vblq9qhys8q7";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Tests disabled. They fail because they try to access the network
   doCheck = false;
diff --git a/pkgs/development/python-modules/vulture/default.nix b/pkgs/development/python-modules/vulture/default.nix
index e3a723ae07438..9a08899a4b2be 100644
--- a/pkgs/development/python-modules/vulture/default.nix
+++ b/pkgs/development/python-modules/vulture/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pint
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, toml
-, tomli
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pint,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  toml,
+  tomli,
 }:
 
 buildPythonPackage rec {
@@ -26,13 +27,9 @@ buildPythonPackage rec {
       --replace " --cov vulture --cov-report=html --cov-report=term --cov-report=xml --cov-append" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [
-    tomli
-  ];
+  propagatedBuildInputs = lib.optionals (pythonOlder "3.11") [ tomli ];
 
   nativeCheckInputs = [
     pint
@@ -40,9 +37,7 @@ buildPythonPackage rec {
     toml
   ];
 
-  pythonImportsCheck = [
-    "vulture"
-  ];
+  pythonImportsCheck = [ "vulture" ];
 
   meta = with lib; {
     description = "Finds unused code in Python programs";
diff --git a/pkgs/development/python-modules/vxi11/default.nix b/pkgs/development/python-modules/vxi11/default.nix
index ff88abb41453c..0b3debdd5dd6e 100644
--- a/pkgs/development/python-modules/vxi11/default.nix
+++ b/pkgs/development/python-modules/vxi11/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchFromGitHub, nose }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  nose,
+}:
 
 buildPythonPackage rec {
   pname = "python-vxi11";
diff --git a/pkgs/development/python-modules/w1thermsensor/default.nix b/pkgs/development/python-modules/w1thermsensor/default.nix
index 7aa81b158e245..e02dbdcdef3cc 100644
--- a/pkgs/development/python-modules/w1thermsensor/default.nix
+++ b/pkgs/development/python-modules/w1thermsensor/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pkgs
-, setuptools
-, aiofiles
-, click
-, coverage
-, tomli
-, pytest
-, pytest-mock
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pkgs,
+  setuptools,
+  aiofiles,
+  click,
+  coverage,
+  tomli,
+  pytest,
+  pytest-mock,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -30,34 +31,27 @@ buildPythonPackage rec {
     sed -i 's/3\.5\.\*/3.5/' setup.py
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    click
-  ];
+  propagatedBuildInputs = [ click ];
 
   passthru.optional-dependencies = {
-    async = [
-      aiofiles
-    ];
+    async = [ aiofiles ];
   };
 
   # Don't try to load the kernel module in tests.
   env.W1THERMSENSOR_NO_KERNEL_MODULE = 1;
 
-  nativeCheckInputs = [
-    pytest-mock
-    pytest-asyncio
-    pytestCheckHook
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    tomli
-  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+  nativeCheckInputs =
+    [
+      pytest-mock
+      pytest-asyncio
+      pytestCheckHook
+    ]
+    ++ lib.optionals (pythonOlder "3.11") [ tomli ]
+    ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "w1thermsensor"
-  ];
+  pythonImportsCheck = [ "w1thermsensor" ];
 
   meta = with lib; {
     description = "Python interface to 1-Wire temperature sensors";
diff --git a/pkgs/development/python-modules/w3lib/default.nix b/pkgs/development/python-modules/w3lib/default.nix
index 66e48a2b7f292..cb0ca92e47bf2 100644
--- a/pkgs/development/python-modules/w3lib/default.nix
+++ b/pkgs/development/python-modules/w3lib/default.nix
@@ -1,30 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "w3lib";
-  version = "2.1.2";
+  version = "2.2.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-7Vt06ZfuoqvjwTIfkW40QUTujpBypvM0Y+6OV/hYpLE=";
+    hash = "sha256-dW/y2Uxk5ByNfAxZ/qEqXQvFXjOlMceYi0oWPeubB90=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "w3lib"
-  ];
+  pythonImportsCheck = [ "w3lib" ];
 
   disabledTests = lib.optionals (pythonAtLeast "3.11") [
     # regressed on Python 3.11.4
diff --git a/pkgs/development/python-modules/wadllib/default.nix b/pkgs/development/python-modules/wadllib/default.nix
index 9fc8988de74dd..78d8db46b6d0e 100644
--- a/pkgs/development/python-modules/wadllib/default.nix
+++ b/pkgs/development/python-modules/wadllib/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy3k
-, setuptools
-, lazr-uri
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+  setuptools,
+  lazr-uri,
 }:
 
 buildPythonPackage rec {
@@ -16,7 +17,10 @@ buildPythonPackage rec {
     sha256 = "acd9ad6a2c1007d34ca208e1da6341bbca1804c0e6850f954db04bdd7666c5fc";
   };
 
-  propagatedBuildInputs = [ setuptools lazr-uri ];
+  propagatedBuildInputs = [
+    setuptools
+    lazr-uri
+  ];
 
   doCheck = isPy3k;
 
diff --git a/pkgs/development/python-modules/wagtail-factories/default.nix b/pkgs/development/python-modules/wagtail-factories/default.nix
index 46a98c39821ab..03c2c09a23184 100644
--- a/pkgs/development/python-modules/wagtail-factories/default.nix
+++ b/pkgs/development/python-modules/wagtail-factories/default.nix
@@ -1,21 +1,22 @@
-{ buildPythonPackage
-, callPackage
-, factory-boy
-, fetchFromGitHub
-, lib
-, wagtail
+{
+  buildPythonPackage,
+  callPackage,
+  factory-boy,
+  fetchFromGitHub,
+  lib,
+  wagtail,
 }:
 
 buildPythonPackage rec {
   pname = "wagtail-factories";
-  version = "4.1.0";
+  version = "4.2.1";
   format = "setuptools";
 
   src = fetchFromGitHub {
     repo = pname;
     owner = "wagtail";
-    rev = "refs/tags/v${version}";
-    sha256 = "sha256-xNLHJ/8IZt3pzHAzr9swcL6GcIQyIjIFfoeHUW1i76U=";
+    rev = "refs/tags/${version}";
+    sha256 = "sha256-jo8VwrmxHBJnORmuR6eTLrf/eupNL2vhXcw81EzfTxM=";
   };
 
   propagatedBuildInputs = [
diff --git a/pkgs/development/python-modules/wagtail-factories/tests.nix b/pkgs/development/python-modules/wagtail-factories/tests.nix
index b340705f2e882..2b4c758440329 100644
--- a/pkgs/development/python-modules/wagtail-factories/tests.nix
+++ b/pkgs/development/python-modules/wagtail-factories/tests.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, django-pattern-library
-, pytest-django
-, pytestCheckHook
-, wagtail
-, wagtail-factories
+{
+  buildPythonPackage,
+  django-pattern-library,
+  pytest-django,
+  pytestCheckHook,
+  wagtail,
+  wagtail-factories,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/wagtail-localize/default.nix b/pkgs/development/python-modules/wagtail-localize/default.nix
index 9a40ca84f8603..5312633cd8036 100644
--- a/pkgs/development/python-modules/wagtail-localize/default.nix
+++ b/pkgs/development/python-modules/wagtail-localize/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, dj-database-url
-, django
-, django-rq
-, fetchFromGitHub
-, flit-core
-, freezegun
-, google-cloud-translate
-, polib
-, python
-, pythonOlder
-, typing-extensions
-, wagtail
-, wagtail-modeladmin
+{
+  lib,
+  buildPythonPackage,
+  dj-database-url,
+  django,
+  django-rq,
+  fetchFromGitHub,
+  flit-core,
+  freezegun,
+  google-cloud-translate,
+  polib,
+  python,
+  pythonOlder,
+  typing-extensions,
+  wagtail,
+  wagtail-modeladmin,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
     hash = "sha256-ENdUXfvQOfd9cgHr6fd5Hf+8AJXFix3YbsYJQfpu4ZE=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     django
@@ -49,9 +48,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    google = [
-      google-cloud-translate
-    ];
+    google = [ google-cloud-translate ];
   };
 
   checkPhase = ''
diff --git a/pkgs/development/python-modules/wagtail-modeladmin/default.nix b/pkgs/development/python-modules/wagtail-modeladmin/default.nix
index cf5352238cab9..4d6f6938238cf 100644
--- a/pkgs/development/python-modules/wagtail-modeladmin/default.nix
+++ b/pkgs/development/python-modules/wagtail-modeladmin/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, dj-database-url
-, django
-, django-rq
-, fetchFromGitHub
-, flit-core
-, freezegun
-, google-cloud-translate
-, polib
-, python
-, pythonOlder
-, typing-extensions
-, wagtail
+{
+  lib,
+  buildPythonPackage,
+  dj-database-url,
+  django,
+  django-rq,
+  fetchFromGitHub,
+  flit-core,
+  freezegun,
+  google-cloud-translate,
+  polib,
+  python,
+  pythonOlder,
+  typing-extensions,
+  wagtail,
 }:
 
 buildPythonPackage rec {
@@ -28,17 +29,11 @@ buildPythonPackage rec {
     hash = "sha256-J6ViGf7lqUvl5EV4/LbADVDp15foY9bUZygs1dSDlKw=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    wagtail
-  ];
+  propagatedBuildInputs = [ wagtail ];
 
-  nativeCheckInputs = [
-    dj-database-url
-  ];
+  nativeCheckInputs = [ dj-database-url ];
 
   pythonImportsCheck = [ "wagtail_modeladmin" ];
 
diff --git a/pkgs/development/python-modules/wagtail/default.nix b/pkgs/development/python-modules/wagtail/default.nix
index 46081138403d8..c1b509b924dd8 100644
--- a/pkgs/development/python-modules/wagtail/default.nix
+++ b/pkgs/development/python-modules/wagtail/default.nix
@@ -1,38 +1,39 @@
-{ lib
-, anyascii
-, beautifulsoup4
-, buildPythonPackage
-, callPackage
-, django
-, django-filter
-, django-modelcluster
-, django-taggit
-, django-treebeard
-, djangorestframework
-, draftjs-exporter
-, fetchPypi
-, html5lib
-, l18n
-, laces
-, openpyxl
-, permissionedforms
-, pillow
-, pythonOlder
-, requests
-, telepath
-, willow
+{
+  lib,
+  anyascii,
+  beautifulsoup4,
+  buildPythonPackage,
+  callPackage,
+  django,
+  django-filter,
+  django-modelcluster,
+  django-taggit,
+  django-treebeard,
+  djangorestframework,
+  draftjs-exporter,
+  fetchPypi,
+  html5lib,
+  l18n,
+  laces,
+  openpyxl,
+  permissionedforms,
+  pillow,
+  pythonOlder,
+  requests,
+  telepath,
+  willow,
 }:
 
 buildPythonPackage rec {
   pname = "wagtail";
-  version = "6.0.2";
+  version = "6.1.2";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-58/DwPU/swLxeY8OAqesYHirAusOhwPA9xzL0/GOOG8=";
+    hash = "sha256-/bgsbNb2rlwfeyMSFmlp2GAQFbZcuymtEg76xyfTmcE=";
   };
 
   postPatch = ''
@@ -70,7 +71,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "wagtail" ];
 
   meta = with lib; {
-    description = "A Django content management system focused on flexibility and user experience";
+    description = "Django content management system focused on flexibility and user experience";
     mainProgram = "wagtail";
     homepage = "https://github.com/wagtail/wagtail";
     changelog = "https://github.com/wagtail/wagtail/blob/v${version}/CHANGELOG.txt";
diff --git a/pkgs/development/python-modules/wagtail/tests.nix b/pkgs/development/python-modules/wagtail/tests.nix
index 23eb87c1b17c2..de45570c41ca3 100644
--- a/pkgs/development/python-modules/wagtail/tests.nix
+++ b/pkgs/development/python-modules/wagtail/tests.nix
@@ -1,16 +1,17 @@
-{ azure-mgmt-cdn
-, azure-mgmt-frontdoor
-, boto3
-, buildPythonPackage
-, django-pattern-library
-, elasticsearch
-, freezegun
-, jinja2
-, python-dateutil
-, python
-, pytz
-, wagtail
-, wagtail-factories
+{
+  azure-mgmt-cdn,
+  azure-mgmt-frontdoor,
+  boto3,
+  buildPythonPackage,
+  django-pattern-library,
+  elasticsearch,
+  freezegun,
+  jinja2,
+  python-dateutil,
+  python,
+  pytz,
+  wagtail,
+  wagtail-factories,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/waitress-django/default.nix b/pkgs/development/python-modules/waitress-django/default.nix
index fad82f4952ce2..9358f20e1a33d 100644
--- a/pkgs/development/python-modules/waitress-django/default.nix
+++ b/pkgs/development/python-modules/waitress-django/default.nix
@@ -1,16 +1,39 @@
-{ lib, buildPythonPackage, django, waitress }:
+{
+  lib,
+  buildPythonPackage,
+  setuptools,
+  django,
+  waitress,
+}:
+
+let
+  fs = lib.fileset;
+in
 
 buildPythonPackage {
   pname = "waitress-django";
   version = "1.0.0";
-  format = "setuptools";
+  pyproject = true;
+
+  src = fs.toSource {
+    root = ./.;
+    fileset = fs.unions [
+      ./setup.py
+      ./src
+    ];
+  };
+
+  build-system = [ setuptools ];
+
+  pythonPath = [
+    django
+    waitress
+  ];
 
-  src = ./.;
-  pythonPath = [ django waitress ];
   doCheck = false;
 
   meta = with lib; {
-    description = "A waitress WSGI server serving django";
+    description = "Waitress WSGI server serving django";
     mainProgram = "waitress-serve-django";
     license = licenses.mit;
     maintainers = with maintainers; [ basvandijk ];
diff --git a/pkgs/development/python-modules/waitress/default.nix b/pkgs/development/python-modules/waitress/default.nix
index cf8d0eac97b22..94b004862d598 100644
--- a/pkgs/development/python-modules/waitress/default.nix
+++ b/pkgs/development/python-modules/waitress/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -16,11 +17,10 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-     homepage = "https://github.com/Pylons/waitress";
-     description = "Waitress WSGI server";
-     mainProgram = "waitress-serve";
-     license = licenses.zpl20;
-     maintainers = with maintainers; [ domenkozar ];
+    homepage = "https://github.com/Pylons/waitress";
+    description = "Waitress WSGI server";
+    mainProgram = "waitress-serve";
+    license = licenses.zpl20;
+    maintainers = with maintainers; [ domenkozar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/wakeonlan/default.nix b/pkgs/development/python-modules/wakeonlan/default.nix
index ea4f215a129e0..6d2125c8e735a 100644
--- a/pkgs/development/python-modules/wakeonlan/default.nix
+++ b/pkgs/development/python-modules/wakeonlan/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,21 +21,13 @@ buildPythonPackage rec {
     hash = "sha256-VPdklyD3GVn0cex4I6zV61I0bUr4KQp8DdMKAM/r4io=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "test_wakeonlan.py"
-  ];
+  pytestFlagsArray = [ "test_wakeonlan.py" ];
 
-  pythonImportsCheck = [
-    "wakeonlan"
-  ];
+  pythonImportsCheck = [ "wakeonlan" ];
 
   meta = with lib; {
     description = "Python module for wake on lan";
diff --git a/pkgs/development/python-modules/wallbox/default.nix b/pkgs/development/python-modules/wallbox/default.nix
index 38e2d8a89e00f..e91470ecffe44 100644
--- a/pkgs/development/python-modules/wallbox/default.nix
+++ b/pkgs/development/python-modules/wallbox/default.nix
@@ -1,25 +1,31 @@
-{ lib
-, aenum
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
-, simplejson
+{
+  lib,
+  aenum,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
+  setuptools,
+  simplejson,
 }:
 
 buildPythonPackage rec {
   pname = "wallbox";
-  version = "0.6.0";
-  format = "setuptools";
+  version = "0.7.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-COZHMkAbTFZKi/b4e6toC4gPj1MPfGN4aBVi6SglrBI=";
+    hash = "sha256-8taZpC1N5ZsVurh10WosZvg7WDmord+PDfhHpRlfqBE=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [
+    setuptools
+  ];
+
+  dependencies = [
     aenum
     requests
     simplejson
@@ -28,9 +34,7 @@ buildPythonPackage rec {
   # no tests implemented
   doCheck = false;
 
-  pythonImportsCheck = [
-    "wallbox"
-  ];
+  pythonImportsCheck = [ "wallbox" ];
 
   meta = with lib; {
     description = "Module for interacting with Wallbox EV charger api";
diff --git a/pkgs/development/python-modules/wallet-py3k/default.nix b/pkgs/development/python-modules/wallet-py3k/default.nix
index f78463e6748af..fb50398d5be4e 100644
--- a/pkgs/development/python-modules/wallet-py3k/default.nix
+++ b/pkgs/development/python-modules/wallet-py3k/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, substituteAll
-, openssl
-, setuptools
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  substituteAll,
+  openssl,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -24,19 +25,13 @@ buildPythonPackage rec {
     })
   ];
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    six
-  ];
+  dependencies = [ six ];
 
   doCheck = false; # no tests
 
-  pythonImportsCheck = [
-    "wallet"
-  ];
+  pythonImportsCheck = [ "wallet" ];
 
   meta = with lib; {
     description = "Passbook file generator";
diff --git a/pkgs/development/python-modules/walrus/default.nix b/pkgs/development/python-modules/walrus/default.nix
index 73376590bda3d..976037f928893 100644
--- a/pkgs/development/python-modules/walrus/default.nix
+++ b/pkgs/development/python-modules/walrus/default.nix
@@ -1,10 +1,12 @@
-{ lib
-, pkgs
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, redis
-, unittestCheckHook
+{
+  lib,
+  pkgs,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  redis,
+  unittestCheckHook,
+  fetchpatch,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +23,19 @@ buildPythonPackage rec {
     hash = "sha256-jinYMGSBAY8HTg92qU/iU5vGIrrDr5SeQG0XjsBVfcc=";
   };
 
-  propagatedBuildInputs = [
-    redis
+  patches = [
+    # distutils has been deprecated, this wraps its import inside a try-catch
+    # and fallsback to a fallback import.
+    # Should not be necessary in future versions.
+    (fetchpatch {
+      url = "https://github.com/coleifer/walrus/commit/79e20c89aa4015017ef8a3e0b5c27ca2731dc9b2.patch";
+      hash = "sha256-hCpvki6SV3KYhicjjUMP4VrKMEerMjq2n1BgozXKDO8=";
+    })
   ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  propagatedBuildInputs = [ redis ];
+
+  nativeCheckInputs = [ unittestCheckHook ];
 
   preCheck = ''
     ${pkgs.redis}/bin/redis-server &
@@ -38,9 +46,9 @@ buildPythonPackage rec {
     kill $REDIS_PID
   '';
 
-  pythonImportsCheck = [
-    "walrus"
-  ];
+  pythonImportsCheck = [ "walrus" ];
+
+  __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
     description = "Lightweight Python utilities for working with Redis";
diff --git a/pkgs/development/python-modules/wand/default.nix b/pkgs/development/python-modules/wand/default.nix
index 416fa74eaed51..a559c0a4a3341 100644
--- a/pkgs/development/python-modules/wand/default.nix
+++ b/pkgs/development/python-modules/wand/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, imagemagickBig
-, py
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  imagemagickBig,
+  py,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/wandb/default.nix b/pkgs/development/python-modules/wandb/default.nix
index 61f32785757d8..fbd5d9baabf58 100644
--- a/pkgs/development/python-modules/wandb/default.nix
+++ b/pkgs/development/python-modules/wandb/default.nix
@@ -1,56 +1,56 @@
-{ lib
-, stdenv
-, appdirs
-, azure-containerregistry
-, azure-core
-, azure-identity
-, azure-storage-blob
-, bokeh
-, boto3
-, buildPythonPackage
-, click
-, docker-pycreds
-, fetchFromGitHub
-, flask
-, git
-, gitpython
-, google-cloud-artifact-registry
-, google-cloud-compute
-, google-cloud-storage
-, hypothesis
-, imageio
-, jsonref
-, jsonschema
-, keras
-, kubernetes
-, matplotlib
-, mlflow
-, moviepy
-, nbclient
-, nbformat
-, pandas
-, parameterized
-, pathtools
-, protobuf
-, psutil
-, pydantic
-, pyfakefs
-, pytest-mock
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, pyyaml
-, requests
-, responses
-, scikit-learn
-, sentry-sdk
-, setproctitle
-, setuptools
-, soundfile
-, substituteAll
-, torch
-, tqdm
+{
+  lib,
+  stdenv,
+  appdirs,
+  azure-containerregistry,
+  azure-core,
+  azure-identity,
+  azure-storage-blob,
+  bokeh,
+  boto3,
+  buildPythonPackage,
+  click,
+  docker-pycreds,
+  fetchFromGitHub,
+  flask,
+  git,
+  gitpython,
+  google-cloud-artifact-registry,
+  google-cloud-compute,
+  google-cloud-storage,
+  hypothesis,
+  imageio,
+  jsonref,
+  jsonschema,
+  keras,
+  kubernetes,
+  matplotlib,
+  mlflow,
+  moviepy,
+  nbclient,
+  nbformat,
+  pandas,
+  parameterized,
+  pathtools,
+  protobuf,
+  psutil,
+  pydantic,
+  pyfakefs,
+  pytest-mock,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
+  requests,
+  responses,
+  scikit-learn,
+  sentry-sdk,
+  setproctitle,
+  setuptools,
+  soundfile,
+  substituteAll,
+  torch,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -76,7 +76,6 @@ buildPythonPackage rec {
   ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -147,166 +146,176 @@ buildPythonPackage rec {
     "tests/pytest_tests"
   ];
 
-  disabledTestPaths = [
-    # Tests that try to get chatty over sockets or spin up servers, not possible in the nix build environment.
-    "tests/pytest_tests/system_tests/test_notebooks/test_notebooks.py"
-    "tests/pytest_tests/unit_tests_old/test_cli.py"
-    "tests/pytest_tests/unit_tests_old/test_data_types.py"
-    "tests/pytest_tests/unit_tests_old/test_file_stream.py"
-    "tests/pytest_tests/unit_tests_old/test_file_upload.py"
-    "tests/pytest_tests/unit_tests_old/test_footer.py"
-    "tests/pytest_tests/unit_tests_old/test_internal_api.py"
-    "tests/pytest_tests/unit_tests_old/test_metric_internal.py"
-    "tests/pytest_tests/unit_tests_old/test_public_api.py"
-    "tests/pytest_tests/unit_tests_old/test_runtime.py"
-    "tests/pytest_tests/unit_tests_old/test_sender.py"
-    "tests/pytest_tests/unit_tests_old/test_summary.py"
-    "tests/pytest_tests/unit_tests_old/test_tb_watcher.py"
-    "tests/pytest_tests/unit_tests_old/test_time_resolution.py"
-    "tests/pytest_tests/unit_tests_old/test_wandb_agent.py"
-    "tests/pytest_tests/unit_tests_old/test_wandb_integration.py"
-    "tests/pytest_tests/unit_tests_old/test_wandb_run.py"
-    "tests/pytest_tests/unit_tests_old/test_wandb.py"
-    "tests/pytest_tests/unit_tests_old/tests_launch/test_launch_aws.py"
-    "tests/pytest_tests/unit_tests_old/tests_launch/test_launch_cli.py"
-    "tests/pytest_tests/unit_tests_old/tests_launch/test_launch_docker.py"
-    "tests/pytest_tests/unit_tests_old/tests_launch/test_launch.py"
-    "tests/pytest_tests/unit_tests/test_cli.py"
-    "tests/pytest_tests/unit_tests/test_data_types.py"
-    "tests/pytest_tests/unit_tests/test_internal_api.py"
-    "tests/pytest_tests/unit_tests/test_mode_disabled.py"
-    "tests/pytest_tests/unit_tests/test_model_workflows.py"
-    "tests/pytest_tests/unit_tests/test_plots.py"
-    "tests/pytest_tests/unit_tests/test_public_api.py"
-    "tests/pytest_tests/unit_tests/test_sender.py"
-    "tests/pytest_tests/unit_tests/test_util.py"
-    "tests/pytest_tests/unit_tests/test_wandb_verify.py"
+  disabledTestPaths =
+    [
+      # Tests that try to get chatty over sockets or spin up servers, not possible in the nix build environment.
+      "tests/pytest_tests/system_tests/test_notebooks/test_notebooks.py"
+      "tests/pytest_tests/unit_tests_old/test_cli.py"
+      "tests/pytest_tests/unit_tests_old/test_data_types.py"
+      "tests/pytest_tests/unit_tests_old/test_file_stream.py"
+      "tests/pytest_tests/unit_tests_old/test_file_upload.py"
+      "tests/pytest_tests/unit_tests_old/test_footer.py"
+      "tests/pytest_tests/unit_tests_old/test_internal_api.py"
+      "tests/pytest_tests/unit_tests_old/test_metric_internal.py"
+      "tests/pytest_tests/unit_tests_old/test_public_api.py"
+      "tests/pytest_tests/unit_tests_old/test_runtime.py"
+      "tests/pytest_tests/unit_tests_old/test_sender.py"
+      "tests/pytest_tests/unit_tests_old/test_summary.py"
+      "tests/pytest_tests/unit_tests_old/test_tb_watcher.py"
+      "tests/pytest_tests/unit_tests_old/test_time_resolution.py"
+      "tests/pytest_tests/unit_tests_old/test_wandb_agent.py"
+      "tests/pytest_tests/unit_tests_old/test_wandb_integration.py"
+      "tests/pytest_tests/unit_tests_old/test_wandb_run.py"
+      "tests/pytest_tests/unit_tests_old/test_wandb.py"
+      "tests/pytest_tests/unit_tests_old/tests_launch/test_launch_aws.py"
+      "tests/pytest_tests/unit_tests_old/tests_launch/test_launch_cli.py"
+      "tests/pytest_tests/unit_tests_old/tests_launch/test_launch_docker.py"
+      "tests/pytest_tests/unit_tests_old/tests_launch/test_launch.py"
+      "tests/pytest_tests/unit_tests/test_cli.py"
+      "tests/pytest_tests/unit_tests/test_data_types.py"
+      "tests/pytest_tests/unit_tests/test_internal_api.py"
+      "tests/pytest_tests/unit_tests/test_mode_disabled.py"
+      "tests/pytest_tests/unit_tests/test_model_workflows.py"
+      "tests/pytest_tests/unit_tests/test_plots.py"
+      "tests/pytest_tests/unit_tests/test_public_api.py"
+      "tests/pytest_tests/unit_tests/test_sender.py"
+      "tests/pytest_tests/unit_tests/test_util.py"
+      "tests/pytest_tests/unit_tests/test_wandb_verify.py"
 
-    # Requires docker access
-    "tests/pytest_tests/system_tests/test_artifacts/test_artifact_saver.py"
-    "tests/pytest_tests/system_tests/test_artifacts/test_misc.py"
-    "tests/pytest_tests/system_tests/test_artifacts/test_misc2.py"
-    "tests/pytest_tests/system_tests/test_artifacts/test_object_references.py"
-    "tests/pytest_tests/system_tests/test_artifacts/test_wandb_artifacts_full.py"
-    "tests/pytest_tests/system_tests/test_artifacts/test_wandb_artifacts.py"
-    "tests/pytest_tests/system_tests/test_core/test_cli_full.py"
-    "tests/pytest_tests/system_tests/test_core/test_data_types_full.py"
-    "tests/pytest_tests/system_tests/test_core/test_file_stream_internal.py"
-    "tests/pytest_tests/system_tests/test_core/test_file_upload.py"
-    "tests/pytest_tests/system_tests/test_core/test_footer.py"
-    "tests/pytest_tests/system_tests/test_core/test_keras_full.py"
-    "tests/pytest_tests/system_tests/test_core/test_label_full.py"
-    "tests/pytest_tests/system_tests/test_core/test_metric_full.py"
-    "tests/pytest_tests/system_tests/test_core/test_metric_internal.py"
-    "tests/pytest_tests/system_tests/test_core/test_mode_disabled_full.py"
-    "tests/pytest_tests/system_tests/test_core/test_model_workflow.py"
-    "tests/pytest_tests/system_tests/test_core/test_mp_full.py"
-    "tests/pytest_tests/system_tests/test_core/test_public_api.py"
-    "tests/pytest_tests/system_tests/test_core/test_redir_full.py"
-    "tests/pytest_tests/system_tests/test_core/test_report_api.py"
-    "tests/pytest_tests/system_tests/test_core/test_save_policies.py"
-    "tests/pytest_tests/system_tests/test_core/test_sender.py"
-    "tests/pytest_tests/system_tests/test_core/test_start_method.py"
-    "tests/pytest_tests/system_tests/test_core/test_system_info.py"
-    "tests/pytest_tests/system_tests/test_core/test_tb_watcher.py"
-    "tests/pytest_tests/system_tests/test_core/test_telemetry_full.py"
-    "tests/pytest_tests/system_tests/test_core/test_time_resolution.py"
-    "tests/pytest_tests/system_tests/test_core/test_torch_full.py"
-    "tests/pytest_tests/system_tests/test_core/test_validation_data_logger.py"
-    "tests/pytest_tests/system_tests/test_core/test_wandb_init.py"
-    "tests/pytest_tests/system_tests/test_core/test_wandb_integration.py"
-    "tests/pytest_tests/system_tests/test_core/test_wandb_run.py"
-    "tests/pytest_tests/system_tests/test_core/test_wandb_settings.py"
-    "tests/pytest_tests/system_tests/test_core/test_wandb_tensorflow.py"
-    "tests/pytest_tests/system_tests/test_core/test_wandb_verify.py"
-    "tests/pytest_tests/system_tests/test_core/test_wandb.py"
-    "tests/pytest_tests/system_tests/test_importers/test_import_mlflow.py"
-    "tests/pytest_tests/system_tests/test_launch/test_github_reference.py"
-    "tests/pytest_tests/system_tests/test_launch/test_job_status_tracker.py"
-    "tests/pytest_tests/system_tests/test_launch/test_job.py"
-    "tests/pytest_tests/system_tests/test_launch/test_launch_add.py"
-    "tests/pytest_tests/system_tests/test_launch/test_launch_cli.py"
-    "tests/pytest_tests/system_tests/test_launch/test_launch_kubernetes.py"
-    "tests/pytest_tests/system_tests/test_launch/test_launch_local_container.py"
-    "tests/pytest_tests/system_tests/test_launch/test_launch_run.py"
-    "tests/pytest_tests/system_tests/test_launch/test_launch_sagemaker.py"
-    "tests/pytest_tests/system_tests/test_launch/test_launch_sweep_cli.py"
-    "tests/pytest_tests/system_tests/test_launch/test_launch_sweep.py"
-    "tests/pytest_tests/system_tests/test_launch/test_launch_vertex.py"
-    "tests/pytest_tests/system_tests/test_launch/test_launch.py"
-    "tests/pytest_tests/system_tests/test_launch/test_wandb_reference.py"
-    "tests/pytest_tests/system_tests/test_nexus/test_nexus.py"
-    "tests/pytest_tests/system_tests/test_sweep/test_public_api.py"
-    "tests/pytest_tests/system_tests/test_sweep/test_sweep_scheduler.py"
-    "tests/pytest_tests/system_tests/test_sweep/test_sweep_utils.py"
-    "tests/pytest_tests/system_tests/test_sweep/test_wandb_agent_full.py"
-    "tests/pytest_tests/system_tests/test_sweep/test_wandb_agent.py"
-    "tests/pytest_tests/system_tests/test_sweep/test_wandb_sweep.py"
-    "tests/pytest_tests/system_tests/test_system_metrics/test_open_metrics.py"
-    "tests/pytest_tests/system_tests/test_system_metrics/test_system_monitor.py"
+      # Requires docker access
+      "tests/pytest_tests/system_tests/test_artifacts/test_artifact_saver.py"
+      "tests/pytest_tests/system_tests/test_artifacts/test_misc.py"
+      "tests/pytest_tests/system_tests/test_artifacts/test_misc2.py"
+      "tests/pytest_tests/system_tests/test_artifacts/test_object_references.py"
+      "tests/pytest_tests/system_tests/test_artifacts/test_wandb_artifacts_full.py"
+      "tests/pytest_tests/system_tests/test_artifacts/test_wandb_artifacts.py"
+      "tests/pytest_tests/system_tests/test_core/test_cli_full.py"
+      "tests/pytest_tests/system_tests/test_core/test_data_types_full.py"
+      "tests/pytest_tests/system_tests/test_core/test_file_stream_internal.py"
+      "tests/pytest_tests/system_tests/test_core/test_file_upload.py"
+      "tests/pytest_tests/system_tests/test_core/test_footer.py"
+      "tests/pytest_tests/system_tests/test_core/test_keras_full.py"
+      "tests/pytest_tests/system_tests/test_core/test_label_full.py"
+      "tests/pytest_tests/system_tests/test_core/test_metric_full.py"
+      "tests/pytest_tests/system_tests/test_core/test_metric_internal.py"
+      "tests/pytest_tests/system_tests/test_core/test_mode_disabled_full.py"
+      "tests/pytest_tests/system_tests/test_core/test_model_workflow.py"
+      "tests/pytest_tests/system_tests/test_core/test_mp_full.py"
+      "tests/pytest_tests/system_tests/test_core/test_public_api.py"
+      "tests/pytest_tests/system_tests/test_core/test_redir_full.py"
+      "tests/pytest_tests/system_tests/test_core/test_report_api.py"
+      "tests/pytest_tests/system_tests/test_core/test_save_policies.py"
+      "tests/pytest_tests/system_tests/test_core/test_sender.py"
+      "tests/pytest_tests/system_tests/test_core/test_start_method.py"
+      "tests/pytest_tests/system_tests/test_core/test_system_info.py"
+      "tests/pytest_tests/system_tests/test_core/test_tb_watcher.py"
+      "tests/pytest_tests/system_tests/test_core/test_telemetry_full.py"
+      "tests/pytest_tests/system_tests/test_core/test_time_resolution.py"
+      "tests/pytest_tests/system_tests/test_core/test_torch_full.py"
+      "tests/pytest_tests/system_tests/test_core/test_validation_data_logger.py"
+      "tests/pytest_tests/system_tests/test_core/test_wandb_init.py"
+      "tests/pytest_tests/system_tests/test_core/test_wandb_integration.py"
+      "tests/pytest_tests/system_tests/test_core/test_wandb_run.py"
+      "tests/pytest_tests/system_tests/test_core/test_wandb_settings.py"
+      "tests/pytest_tests/system_tests/test_core/test_wandb_tensorflow.py"
+      "tests/pytest_tests/system_tests/test_core/test_wandb_verify.py"
+      "tests/pytest_tests/system_tests/test_core/test_wandb.py"
+      "tests/pytest_tests/system_tests/test_importers/test_import_mlflow.py"
+      "tests/pytest_tests/system_tests/test_launch/test_github_reference.py"
+      "tests/pytest_tests/system_tests/test_launch/test_job_status_tracker.py"
+      "tests/pytest_tests/system_tests/test_launch/test_job.py"
+      "tests/pytest_tests/system_tests/test_launch/test_launch_add.py"
+      "tests/pytest_tests/system_tests/test_launch/test_launch_cli.py"
+      "tests/pytest_tests/system_tests/test_launch/test_launch_kubernetes.py"
+      "tests/pytest_tests/system_tests/test_launch/test_launch_local_container.py"
+      "tests/pytest_tests/system_tests/test_launch/test_launch_run.py"
+      "tests/pytest_tests/system_tests/test_launch/test_launch_sagemaker.py"
+      "tests/pytest_tests/system_tests/test_launch/test_launch_sweep_cli.py"
+      "tests/pytest_tests/system_tests/test_launch/test_launch_sweep.py"
+      "tests/pytest_tests/system_tests/test_launch/test_launch_vertex.py"
+      "tests/pytest_tests/system_tests/test_launch/test_launch.py"
+      "tests/pytest_tests/system_tests/test_launch/test_wandb_reference.py"
+      "tests/pytest_tests/system_tests/test_nexus/test_nexus.py"
+      "tests/pytest_tests/system_tests/test_sweep/test_public_api.py"
+      "tests/pytest_tests/system_tests/test_sweep/test_sweep_scheduler.py"
+      "tests/pytest_tests/system_tests/test_sweep/test_sweep_utils.py"
+      "tests/pytest_tests/system_tests/test_sweep/test_wandb_agent_full.py"
+      "tests/pytest_tests/system_tests/test_sweep/test_wandb_agent.py"
+      "tests/pytest_tests/system_tests/test_sweep/test_wandb_sweep.py"
+      "tests/pytest_tests/system_tests/test_system_metrics/test_open_metrics.py"
+      "tests/pytest_tests/system_tests/test_system_metrics/test_system_monitor.py"
 
-    # Tries to access /homeless-shelter
-    "tests/pytest_tests/unit_tests/test_tables.py"
+      # Tries to access /homeless-shelter
+      "tests/pytest_tests/unit_tests/test_tables.py"
 
-    # E       AssertionError: assert 'Cannot use both --async and --queue with wandb launch' in 'wandb: ERROR Find detailed error logs at: /build/source/wandb/debug-cli.nixbld.log\nError: The wandb service process exited with 1. Ensure that `sys.executable` is a valid python interpreter. You can override it with the `_executable` setting or with the `WANDB__EXECUTABLE` environment variable.\n'
-    # E        +  where 'wandb: ERROR Find detailed error logs at: /build/source/wandb/debug-cli.nixbld.log\nError: The wandb service process exited with 1. Ensure that `sys.executable` is a valid python interpreter. You can override it with the `_executable` setting or with the `WANDB__EXECUTABLE` environment variable.\n' = <Result SystemExit(1)>.output
-    "tests/pytest_tests/unit_tests_old/tests_launch/test_launch_jobs.py"
+      # E       AssertionError: assert 'Cannot use both --async and --queue with wandb launch' in 'wandb: ERROR Find detailed error logs at: /build/source/wandb/debug-cli.nixbld.log\nError: The wandb service process exited with 1. Ensure that `sys.executable` is a valid python interpreter. You can override it with the `_executable` setting or with the `WANDB__EXECUTABLE` environment variable.\n'
+      # E        +  where 'wandb: ERROR Find detailed error logs at: /build/source/wandb/debug-cli.nixbld.log\nError: The wandb service process exited with 1. Ensure that `sys.executable` is a valid python interpreter. You can override it with the `_executable` setting or with the `WANDB__EXECUTABLE` environment variable.\n' = <Result SystemExit(1)>.output
+      "tests/pytest_tests/unit_tests_old/tests_launch/test_launch_jobs.py"
 
-    # Requires google-cloud-aiplatform which is not packaged as of 2023-04-25.
-    "tests/pytest_tests/unit_tests/test_launch/test_runner/test_vertex.py"
+      # Requires google-cloud-aiplatform which is not packaged as of 2023-04-25.
+      "tests/pytest_tests/unit_tests/test_launch/test_runner/test_vertex.py"
 
-    # Requires google-cloud-artifact-registry which is not packaged as of 2023-04-25.
-    "tests/pytest_tests/unit_tests/test_launch/test_registry/test_gcp_artifact_registry.py"
+      # Requires google-cloud-artifact-registry which is not packaged as of 2023-04-25.
+      "tests/pytest_tests/unit_tests/test_launch/test_registry/test_gcp_artifact_registry.py"
 
-    # Requires kfp which is not packaged as of 2023-04-25.
-    "tests/pytest_tests/system_tests/test_core/test_kfp.py"
+      # Requires kfp which is not packaged as of 2023-04-25.
+      "tests/pytest_tests/system_tests/test_core/test_kfp.py"
 
-    # Requires kubernetes_asyncio which is not packaged as of 2024-01-14.
-    "tests/pytest_tests/unit_tests/test_launch/test_builder/test_kaniko.py"
-    "tests/pytest_tests/unit_tests/test_launch/test_runner/test_kubernetes.py"
-    "tests/pytest_tests/unit_tests/test_launch/test_runner/test_safe_watch.py"
+      # Requires kubernetes_asyncio which is not packaged as of 2024-01-14.
+      "tests/pytest_tests/unit_tests/test_launch/test_builder/test_kaniko.py"
+      "tests/pytest_tests/unit_tests/test_launch/test_runner/test_kubernetes.py"
+      "tests/pytest_tests/unit_tests/test_launch/test_runner/test_safe_watch.py"
 
-    # Requires metaflow which is not packaged as of 2023-04-25.
-    "tests/pytest_tests/unit_tests/test_metaflow.py"
+      # Requires metaflow which is not packaged as of 2023-04-25.
+      "tests/pytest_tests/unit_tests/test_metaflow.py"
 
-    # Requires tensorflow which is broken as of 2023-09-03
-    "tests/pytest_tests/unit_tests/test_keras.py"
+      # Requires tensorflow which is broken as of 2023-09-03
+      "tests/pytest_tests/unit_tests/test_keras.py"
 
-    # Try to get hardware information, not possible in the nix build environment
-    "tests/pytest_tests/unit_tests/test_system_metrics/test_disk.py"
+      # Try to get hardware information, not possible in the nix build environment
+      "tests/pytest_tests/unit_tests/test_system_metrics/test_disk.py"
 
-    # See https://github.com/wandb/wandb/issues/5423
-    "tests/pytest_tests/unit_tests/test_docker.py"
-    "tests/pytest_tests/unit_tests/test_library_public.py"
+      # See https://github.com/wandb/wandb/issues/5423
+      "tests/pytest_tests/unit_tests/test_docker.py"
+      "tests/pytest_tests/unit_tests/test_library_public.py"
 
-    # See https://github.com/wandb/wandb/issues/6836
-    "tests/pytest_tests/unit_tests_old/test_logging.py"
-  ] ++ lib.optionals stdenv.isLinux [
-    # Same as above
-    "tests/pytest_tests/unit_tests/test_artifacts/test_storage.py"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # Same as above
-    "tests/pytest_tests/unit_tests/test_lib/test_filesystem.py"
-  ];
+      # See https://github.com/wandb/wandb/issues/6836
+      "tests/pytest_tests/unit_tests_old/test_logging.py"
+    ]
+    ++ lib.optionals stdenv.isLinux [
+      # Same as above
+      "tests/pytest_tests/unit_tests/test_artifacts/test_storage.py"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # Same as above
+      "tests/pytest_tests/unit_tests/test_lib/test_filesystem.py"
+    ];
 
-  disabledTests = [
-    # Timing sensitive
-    "test_login_timeout"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # Disable test that fails on darwin due to issue with python3Packages.psutil:
-    # https://github.com/giampaolo/psutil/issues/1219
-    "test_tpu_system_stats"
-  ];
+  disabledTests =
+    [
+      # Timing sensitive
+      "test_login_timeout"
 
-  pythonImportsCheck = [
-    "wandb"
-  ];
+      # Tensorflow 2.13 is too old for the current version of keras
+      # ModuleNotFoundError: No module named 'keras.api._v2'
+      "test_saved_model_keras"
+      "test_sklearn_saved_model"
+      "test_pytorch_saved_model"
+      "test_tensorflow_keras_saved_model"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # Disable test that fails on darwin due to issue with python3Packages.psutil:
+      # https://github.com/giampaolo/psutil/issues/1219
+      "test_tpu_system_stats"
+    ];
+
+  pythonImportsCheck = [ "wandb" ];
 
   # unmaintainable list of disabled tests
   passthru.skipBulkUpdate = true;
 
   meta = with lib; {
-    description = "A CLI and library for interacting with the Weights and Biases API";
+    description = "CLI and library for interacting with the Weights and Biases API";
     homepage = "https://github.com/wandb/wandb";
     changelog = "https://github.com/wandb/wandb/raw/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/waqiasync/default.nix b/pkgs/development/python-modules/waqiasync/default.nix
index dfa51770abbd4..91d58d85347c3 100644
--- a/pkgs/development/python-modules/waqiasync/default.nix
+++ b/pkgs/development/python-modules/waqiasync/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/warble/default.nix b/pkgs/development/python-modules/warble/default.nix
index c2c930d0f0a59..da0aa6c92563c 100644
--- a/pkgs/development/python-modules/warble/default.nix
+++ b/pkgs/development/python-modules/warble/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cython
-, boost
-, bluez
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cython,
+  boost,
+  bluez,
 }:
 
 buildPythonPackage rec {
@@ -18,22 +19,26 @@ buildPythonPackage rec {
     hash = "sha256-oezcRD1AddWmDYDxueE0EwK0+UN/EZ5GQxwkdCz4xoY=";
   };
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
   buildInputs = [
     boost
     bluez
   ];
 
-  pythonImportsCheck = [ "mbientlab" "mbientlab.warble" ];
+  pythonImportsCheck = [
+    "mbientlab"
+    "mbientlab.warble"
+  ];
 
   meta = with lib; {
     description = "Python bindings for MbientLab's Warble library";
     homepage = "https://github.com/mbientlab/pywarble";
     license = with licenses; [ unfree ];
     maintainers = with maintainers; [ stepbrobd ];
-    platforms = [ "aarch64-linux" "x86_64-linux" ];
+    platforms = [
+      "aarch64-linux"
+      "x86_64-linux"
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/warcio/default.nix b/pkgs/development/python-modules/warcio/default.nix
index 3121a49b5b28d..1459c11820ca3 100644
--- a/pkgs/development/python-modules/warcio/default.nix
+++ b/pkgs/development/python-modules/warcio/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, httpbin
-, multidict
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
-, six
-, wsgiprox
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  httpbin,
+  multidict,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
+  six,
+  wsgiprox,
 }:
 
 buildPythonPackage rec {
@@ -48,18 +49,14 @@ buildPythonPackage rec {
     wsgiprox
   ];
 
-  pytestFlagsArray = [
-    "--offline"
-  ];
+  pytestFlagsArray = [ "--offline" ];
 
   disabledTests = [
     # Tests require network access, see above
     "test_get_cache_to_file"
   ];
 
-  pythonImportsCheck = [
-    "warcio"
-  ];
+  pythonImportsCheck = [ "warcio" ];
 
   meta = with lib; {
     description = "Streaming WARC/ARC library for fast web archive IO";
diff --git a/pkgs/development/python-modules/ward/default.nix b/pkgs/development/python-modules/ward/default.nix
index b1f7345f84132..6c4327549bb5a 100644
--- a/pkgs/development/python-modules/ward/default.nix
+++ b/pkgs/development/python-modules/ward/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, click
-, click-completion
-, click-default-group
-, cucumber-tag-expressions
-, fetchFromGitHub
-, pluggy
-, poetry-core
-, pprintpp
-, pythonOlder
-, rich
-, tomli
+{
+  lib,
+  buildPythonPackage,
+  click,
+  click-completion,
+  click-default-group,
+  cucumber-tag-expressions,
+  fetchFromGitHub,
+  pluggy,
+  poetry-core,
+  pprintpp,
+  pythonOlder,
+  rich,
+  tomli,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-4dEMEEPySezgw3dIcYMl56HrhyaYlql9JvtamOn7Y8g=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     click
@@ -45,9 +44,7 @@ buildPythonPackage rec {
   # Fixture is missing. Looks like an issue with the import of the sample file
   doCheck = false;
 
-  pythonImportsCheck = [
-    "ward"
-  ];
+  pythonImportsCheck = [ "ward" ];
 
   meta = with lib; {
     description = "Test framework for Python";
@@ -56,5 +53,8 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
     mainProgram = "ward";
+    # Old requirements (cucumber-tag-expressions and rich)
+    # https://github.com/darrenburns/ward/issues/380
+    broken = versionAtLeast rich.version "13.0.0";
   };
 }
diff --git a/pkgs/development/python-modules/warlock/default.nix b/pkgs/development/python-modules/warlock/default.nix
index b0b16aed16a8c..cfe32849b5396 100644
--- a/pkgs/development/python-modules/warlock/default.nix
+++ b/pkgs/development/python-modules/warlock/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, poetry-core
-, jsonpatch
-, jsonschema
-, six
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  poetry-core,
+  jsonpatch,
+  jsonschema,
+  six,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -27,27 +28,21 @@ buildPythonPackage rec {
     sed -i '/--cov/d' pytest.ini
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     jsonpatch
     jsonschema
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # https://github.com/bcwaldon/warlock/issues/64
     "test_recursive_models"
   ];
 
-  pythonImportsCheck = [
-    "warlock"
-  ];
+  pythonImportsCheck = [ "warlock" ];
 
   meta = with lib; {
     description = "Python object model built on JSON schema and JSON patch";
diff --git a/pkgs/development/python-modules/warrant-lite/default.nix b/pkgs/development/python-modules/warrant-lite/default.nix
index 4d5d77c2e84db..911aa135a7758 100644
--- a/pkgs/development/python-modules/warrant-lite/default.nix
+++ b/pkgs/development/python-modules/warrant-lite/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, boto3
-, envs
-, python-jose
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  boto3,
+  envs,
+  python-jose,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -36,9 +37,7 @@ buildPythonPackage rec {
   # Tests require credentials
   doCheck = false;
 
-  pythonImportsCheck = [
-    "warrant_lite"
-  ];
+  pythonImportsCheck = [ "warrant_lite" ];
 
   meta = with lib; {
     description = "Module for process SRP requests for AWS Cognito";
diff --git a/pkgs/development/python-modules/warrant/default.nix b/pkgs/development/python-modules/warrant/default.nix
index 33a98da4f2774..4dc8e940b3b31 100644
--- a/pkgs/development/python-modules/warrant/default.nix
+++ b/pkgs/development/python-modules/warrant/default.nix
@@ -1,6 +1,14 @@
-{ lib, buildPythonPackage, fetchFromGitHub, fetchpatch
-, mock
-, boto3, envs, python-jose, requests }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  mock,
+  boto3,
+  envs,
+  python-jose,
+  requests,
+}:
 
 buildPythonPackage {
   pname = "warrant";
@@ -9,9 +17,9 @@ buildPythonPackage {
 
   # move to fetchPyPi when https://github.com/capless/warrant/issues/97 is fixed
   src = fetchFromGitHub {
-    owner  = "capless";
-    repo   = "warrant";
-    rev    = "ff2e4793d8479e770f2461ef7cbc0c15ee784395";
+    owner = "capless";
+    repo = "warrant";
+    rev = "ff2e4793d8479e770f2461ef7cbc0c15ee784395";
     sha256 = "0gw3crg64p1zx3k5js0wh0x5bldgs7viy4g8hld9xbka8q0374hi";
   };
 
@@ -31,7 +39,12 @@ buildPythonPackage {
 
   nativeCheckInputs = [ mock ];
 
-  propagatedBuildInputs = [ boto3 envs python-jose requests ];
+  propagatedBuildInputs = [
+    boto3
+    envs
+    python-jose
+    requests
+  ];
 
   # all the checks are failing
   doCheck = false;
diff --git a/pkgs/development/python-modules/wasabi/default.nix b/pkgs/development/python-modules/wasabi/default.nix
index 618e0490605b4..5081be3853d57 100644
--- a/pkgs/development/python-modules/wasabi/default.nix
+++ b/pkgs/development/python-modules/wasabi/default.nix
@@ -1,25 +1,26 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-
-# tests
-, ipykernel
-, nbconvert
-, pytestCheckHook
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+
+  # tests
+  ipykernel,
+  nbconvert,
+  pytestCheckHook,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "wasabi";
-  version = "1.1.2";
+  version = "1.1.3";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Gq7zrOqjLtuckTMNKdOTbAw5/blldDVJwXPLVLFsMLU=";
+    hash = "sha256-S7MAjwA4CdsMPii02vIJBuqHGiu0P5kUGX1UD08uCHg=";
   };
 
   nativeCheckInputs = [
@@ -29,12 +30,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "wasabi"
-  ];
+  pythonImportsCheck = [ "wasabi" ];
+
+  __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "A lightweight console printing and formatting toolkit";
+    description = "Lightweight console printing and formatting toolkit";
     homepage = "https://github.com/ines/wasabi";
     changelog = "https://github.com/ines/wasabi/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/wasmer/default.nix b/pkgs/development/python-modules/wasmer/default.nix
index 0f2748208817e..8408780ef637d 100644
--- a/pkgs/development/python-modules/wasmer/default.nix
+++ b/pkgs/development/python-modules/wasmer/default.nix
@@ -1,28 +1,31 @@
-{ stdenv
-, lib
-, rustPlatform
-, callPackage
-, fetchFromGitHub
-, buildPythonPackage
-, pythonAtLeast
-, libiconv
-, libffi
-, libxml2
-, llvm_14
-, ncurses
-, zlib
+{
+  stdenv,
+  lib,
+  rustPlatform,
+  callPackage,
+  fetchFromGitHub,
+  buildPythonPackage,
+  pythonAtLeast,
+  libiconv,
+  libffi,
+  libxml2,
+  llvm_14,
+  ncurses,
+  zlib,
 }:
 
 let
   common =
-    { pname
-    , buildAndTestSubdir
-    , cargoHash
-    , extraNativeBuildInputs ? [ ]
-    , extraBuildInputs ? [ ]
-    }: buildPythonPackage rec {
+    {
+      pname,
+      buildAndTestSubdir,
+      cargoHash,
+      extraNativeBuildInputs ? [ ],
+      extraBuildInputs ? [ ],
+    }:
+    buildPythonPackage rec {
       inherit pname;
-      version = "1.1.1";
+      version = "1.2.0";
       format = "pyproject";
 
       outputs = [ "out" ] ++ lib.optional (pname == "wasmer") "testsout";
@@ -40,7 +43,11 @@ let
         sha256 = cargoHash;
       };
 
-      nativeBuildInputs = (with rustPlatform; [ cargoSetupHook maturinBuildHook ])
+      nativeBuildInputs =
+        (with rustPlatform; [
+          cargoSetupHook
+          maturinBuildHook
+        ])
         ++ extraNativeBuildInputs;
 
       postPatch = ''
@@ -49,8 +56,7 @@ let
           --replace "package.metadata.maturin" "broken"
       '';
 
-      buildInputs = lib.optionals stdenv.isDarwin [ libiconv ]
-        ++ extraBuildInputs;
+      buildInputs = lib.optionals stdenv.isDarwin [ libiconv ] ++ extraBuildInputs;
 
       inherit buildAndTestSubdir;
 
@@ -62,11 +68,9 @@ let
       # check in passthru.tests.pytest because all packages are required to run the tests
       doCheck = false;
 
-      passthru.tests = lib.optionalAttrs (pname == "wasmer") {
-        pytest = callPackage ./tests.nix { };
-      };
+      passthru.tests = lib.optionalAttrs (pname == "wasmer") { pytest = callPackage ./tests.nix { }; };
 
-      pythonImportsCheck = [ "${lib.replaceStrings ["-"] ["_"] pname}" ];
+      pythonImportsCheck = [ "${lib.replaceStrings [ "-" ] [ "_" ] pname}" ];
 
       meta = with lib; {
         # https://github.com/wasmerio/wasmer-python/issues/778
@@ -83,26 +87,31 @@ in
   wasmer = common {
     pname = "wasmer";
     buildAndTestSubdir = "packages/api";
-    cargoHash = "sha256-vpbwU1HrIQmQkce9SK8UOHrX5tOLv/XKsfJHteqOteA=";
+    cargoHash = "sha256-HKbVss6jGFdnCgXV3UYf6RxtmQM3+tq3cHfOSKw5JnY=";
   };
 
   wasmer-compiler-cranelift = common {
     pname = "wasmer-compiler-cranelift";
     buildAndTestSubdir = "packages/compiler-cranelift";
-    cargoHash = "sha256-nv4cr52mUIuR3LWRT3eXU5b2LORwuN4iMbLX1efzovI=";
+    cargoHash = "sha256-BTBkoTluK7IVS+TpbQnMjn2Wvwhfxv1ev5PZWS/kW0w=";
   };
 
   wasmer-compiler-llvm = common {
     pname = "wasmer-compiler-llvm";
     buildAndTestSubdir = "packages/compiler-llvm";
-    cargoHash = "sha256-FA/xXlPaK8NxZIw7MCm9Fyesgu72Dsxhmb5xzOIINhE=";
+    cargoHash = "sha256-AfLp4RLfnJ3R1Wg+RCJRmYr7748LQtl1W+ttTgIMls4=";
     extraNativeBuildInputs = [ llvm_14 ];
-    extraBuildInputs = [ libffi libxml2.out ncurses zlib ];
+    extraBuildInputs = [
+      libffi
+      libxml2.out
+      ncurses
+      zlib
+    ];
   };
 
   wasmer-compiler-singlepass = common {
     pname = "wasmer-compiler-singlepass";
     buildAndTestSubdir = "packages/compiler-singlepass";
-    cargoHash = "sha256-yew7cB/7RLjW55jZmHFfIvaErgZ6XVxL1ucGGX2Cx18=";
+    cargoHash = "sha256-4DoeKRjS/2ijpUva0p/AE3qoIyt8CvCjkPWFPyLH6gs=";
   };
 }
diff --git a/pkgs/development/python-modules/wasmer/tests.nix b/pkgs/development/python-modules/wasmer/tests.nix
index e46c9f7ac6705..6c20ab229ceae 100644
--- a/pkgs/development/python-modules/wasmer/tests.nix
+++ b/pkgs/development/python-modules/wasmer/tests.nix
@@ -1,9 +1,10 @@
-{ buildPythonPackage
-, wasmer
-, pytestCheckHook
-, wasmer-compiler-cranelift
-, wasmer-compiler-llvm
-, wasmer-compiler-singlepass
+{
+  buildPythonPackage,
+  wasmer,
+  pytestCheckHook,
+  wasmer-compiler-cranelift,
+  wasmer-compiler-llvm,
+  wasmer-compiler-singlepass,
 }:
 
 buildPythonPackage {
diff --git a/pkgs/development/python-modules/wasserstein/default.nix b/pkgs/development/python-modules/wasserstein/default.nix
index 28626cc5dcfc4..c9a9495b42ef3 100644
--- a/pkgs/development/python-modules/wasserstein/default.nix
+++ b/pkgs/development/python-modules/wasserstein/default.nix
@@ -1,10 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, numpy
-, llvmPackages
-, wurlitzer
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  numpy,
+  llvmPackages,
+  wurlitzer,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -15,24 +17,25 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "pkomiske";
     repo = "Wasserstein";
-    rev = "89c2d6279a7e0aa3b56bcc8fb7b6009420f2563e"; # https://github.com/pkomiske/Wasserstein/issues/1
+    rev = "v${version}";
     hash = "sha256-s9en6XwvO/WPsF7/+SEmGePHZQgl7zLgu5sEn4nD9YE=";
   };
 
-  buildInputs = [
-    llvmPackages.openmp
+  patches = [
+    (fetchpatch {
+      url = "https://github.com/thaler-lab/Wasserstein/commit/8667d59dfdf89eabf01f3ae93b23a30a27c21c58.patch";
+      hash = "sha256-jp5updB3E1MYgLhBJwmBMTwBiFXtABMwTxt0G6xhoyA=";
+    })
   ];
+
+  buildInputs = [ llvmPackages.openmp ];
   propagatedBuildInputs = [
     numpy
     wurlitzer
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
-  pytestFlagsArray = [
-    "wasserstein/tests"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
+  pytestFlagsArray = [ "wasserstein/tests" ];
   disabledTestPaths = [
     "wasserstein/tests/test_emd.py" # requires "ot"
     # cyclic dependency on energyflow
diff --git a/pkgs/development/python-modules/watchdog-gevent/default.nix b/pkgs/development/python-modules/watchdog-gevent/default.nix
index fb5951a38ce4d..743a523a58653 100644
--- a/pkgs/development/python-modules/watchdog-gevent/default.nix
+++ b/pkgs/development/python-modules/watchdog-gevent/default.nix
@@ -51,7 +51,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "watchdog_gevent" ];
 
   meta = with lib; {
-    description = "A gevent-based observer for watchdog";
+    description = "Gevent-based observer for watchdog";
     homepage = "https://github.com/Bogdanp/watchdog_gevent";
     license = licenses.asl20;
     maintainers = with maintainers; [ traxys ];
diff --git a/pkgs/development/python-modules/watchdog/default.nix b/pkgs/development/python-modules/watchdog/default.nix
index 9ac39683ba39f..def2bdf1c880e 100644
--- a/pkgs/development/python-modules/watchdog/default.nix
+++ b/pkgs/development/python-modules/watchdog/default.nix
@@ -1,42 +1,36 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, CoreServices
-, eventlet
-, fetchpatch
-, fetchPypi
-, flaky
-, pytest-timeout
-, pytestCheckHook
-, pythonOlder
-, pyyaml
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  CoreServices,
+  eventlet,
+  fetchPypi,
+  flaky,
+  pytest-timeout,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
   pname = "watchdog";
-  version = "4.0.0";
+  version = "4.0.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-4+cGXL2r5hg6uCGZ16T2s7oKQ4xaUSpoVZhGzLdqeOw=";
+    hash = "sha256-7rqs9nT6JVEeiGcCjSgeYC7mUABFtX9DsId4CC9/i0Q=";
   };
 
   # force kqueue on x86_64-darwin, because our api version does
   # not support fsevents
-  patches = lib.optionals (stdenv.isDarwin && !stdenv.isAarch64) [
-    ./force-kqueue.patch
-  ];
+  patches = lib.optionals (stdenv.isDarwin && !stdenv.isAarch64) [ ./force-kqueue.patch ];
 
-  buildInputs = lib.optionals stdenv.isDarwin [
-    CoreServices
-  ];
+  buildInputs = lib.optionals stdenv.isDarwin [ CoreServices ];
 
-  passthru.optional-dependencies.watchmedo = [
-    pyyaml
-  ];
+  passthru.optional-dependencies.watchmedo = [ pyyaml ];
 
   nativeCheckInputs = [
     eventlet
@@ -51,54 +45,58 @@ buildPythonPackage rec {
       --replace "--cov-report=term-missing" ""
   '';
 
-  pytestFlagsArray = [
-    "--deselect=tests/test_emitter.py::test_create_wrong_encoding"
-    "--deselect=tests/test_emitter.py::test_close"
-  ] ++ lib.optionals (stdenv.isDarwin) [
-    # fails to stop process in teardown
-    "--deselect=tests/test_0_watchmedo.py::test_auto_restart_subprocess_termination"
-    # assert cap.out.splitlines(keepends=False).count('+++++ 0') == 2 != 3
-    "--deselect=tests/test_0_watchmedo.py::test_auto_restart_on_file_change_debounce"
-  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
-    # FileCreationEvent != FileDeletionEvent
-    "--deselect=tests/test_emitter.py::test_separate_consecutive_moves"
-    "--deselect=tests/test_observers_polling.py::test___init__"
-    # segfaults
-    "--deselect=tests/test_delayed_queue.py::test_delayed_get"
-    "--deselect=tests/test_emitter.py::test_delete"
-    # AttributeError: '_thread.RLock' object has no attribute 'key'"
-    "--deselect=tests/test_skip_repeats_queue.py::test_eventlet_monkey_patching"
-  ] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
-    # segfaults
-    "--deselect=tests/test_delayed_queue.py::test_delayed_get"
-    "--deselect=tests/test_0_watchmedo.py::test_tricks_from_file"
-    "--deselect=tests/test_fsevents.py::test_watcher_deletion_while_receiving_events_1"
-    "--deselect=tests/test_fsevents.py::test_watcher_deletion_while_receiving_events_2"
-    "--deselect=tests/test_skip_repeats_queue.py::test_eventlet_monkey_patching"
-    "--deselect=tests/test_fsevents.py::test_recursive_check_accepts_relative_paths"
-    # fsevents:fsevents.py:318 Unhandled exception in FSEventsEmitter
-    "--deselect=tests/test_fsevents.py::test_watchdog_recursive"
-    # SystemError: Cannot start fsevents stream. Use a kqueue or polling observer...
-    "--deselect=tests/test_fsevents.py::test_add_watch_twice"
-    # fsevents:fsevents.py:318 Unhandled exception in FSEventsEmitter
-    "--deselect=ests/test_fsevents.py::test_recursive_check_accepts_relative_paths"
-    # gets stuck
-    "--deselect=tests/test_fsevents.py::test_converting_cfstring_to_pyunicode"
-  ];
+  pytestFlagsArray =
+    [
+      "--deselect=tests/test_emitter.py::test_create_wrong_encoding"
+      "--deselect=tests/test_emitter.py::test_close"
+    ]
+    ++ lib.optionals (stdenv.isDarwin) [
+      # fails to stop process in teardown
+      "--deselect=tests/test_0_watchmedo.py::test_auto_restart_subprocess_termination"
+      # assert cap.out.splitlines(keepends=False).count('+++++ 0') == 2 != 3
+      "--deselect=tests/test_0_watchmedo.py::test_auto_restart_on_file_change_debounce"
+    ]
+    ++ lib.optionals (stdenv.isDarwin && stdenv.isx86_64) [
+      # FileCreationEvent != FileDeletionEvent
+      "--deselect=tests/test_emitter.py::test_separate_consecutive_moves"
+      "--deselect=tests/test_observers_polling.py::test___init__"
+      # segfaults
+      "--deselect=tests/test_delayed_queue.py::test_delayed_get"
+      "--deselect=tests/test_emitter.py::test_delete"
+      # AttributeError: '_thread.RLock' object has no attribute 'key'"
+      "--deselect=tests/test_skip_repeats_queue.py::test_eventlet_monkey_patching"
+    ]
+    ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
+      # segfaults
+      "--deselect=tests/test_delayed_queue.py::test_delayed_get"
+      "--deselect=tests/test_0_watchmedo.py::test_tricks_from_file"
+      "--deselect=tests/test_fsevents.py::test_watcher_deletion_while_receiving_events_1"
+      "--deselect=tests/test_fsevents.py::test_watcher_deletion_while_receiving_events_2"
+      "--deselect=tests/test_skip_repeats_queue.py::test_eventlet_monkey_patching"
+      "--deselect=tests/test_fsevents.py::test_recursive_check_accepts_relative_paths"
+      # fsevents:fsevents.py:318 Unhandled exception in FSEventsEmitter
+      "--deselect=tests/test_fsevents.py::test_watchdog_recursive"
+      # SystemError: Cannot start fsevents stream. Use a kqueue or polling observer...
+      "--deselect=tests/test_fsevents.py::test_add_watch_twice"
+      # fsevents:fsevents.py:318 Unhandled exception in FSEventsEmitter
+      "--deselect=ests/test_fsevents.py::test_recursive_check_accepts_relative_paths"
+      # gets stuck
+      "--deselect=tests/test_fsevents.py::test_converting_cfstring_to_pyunicode"
+    ];
 
-  disabledTestPaths = [
-    # tests timeout easily
-    "tests/test_inotify_buffer.py"
-  ] ++ lib.optionals (stdenv.isDarwin) [
-    # segfaults the testsuite
-    "tests/test_emitter.py"
-    # unsupported on x86_64-darwin
-    "tests/test_fsevents.py"
-  ];
+  disabledTestPaths =
+    [
+      # tests timeout easily
+      "tests/test_inotify_buffer.py"
+    ]
+    ++ lib.optionals (stdenv.isDarwin) [
+      # segfaults the testsuite
+      "tests/test_emitter.py"
+      # unsupported on x86_64-darwin
+      "tests/test_fsevents.py"
+    ];
 
-  pythonImportsCheck = [
-    "watchdog"
-  ];
+  pythonImportsCheck = [ "watchdog" ];
 
   meta = with lib; {
     description = "Python API and shell utilities to monitor file system events";
diff --git a/pkgs/development/python-modules/watchfiles/default.nix b/pkgs/development/python-modules/watchfiles/default.nix
index 47b6e0a4eb26d..22cd171afae50 100644
--- a/pkgs/development/python-modules/watchfiles/default.nix
+++ b/pkgs/development/python-modules/watchfiles/default.nix
@@ -1,23 +1,24 @@
-{ lib
-, stdenv
-, anyio
-, buildPythonPackage
-, cargo
-, fetchFromGitHub
-, rustPlatform
-, rustc
-, pythonOlder
-, dirty-equals
-, pytest-mock
-, pytest-timeout
-, pytestCheckHook
-, CoreServices
-, libiconv
+{
+  lib,
+  stdenv,
+  anyio,
+  buildPythonPackage,
+  cargo,
+  fetchFromGitHub,
+  rustPlatform,
+  rustc,
+  pythonOlder,
+  dirty-equals,
+  pytest-mock,
+  pytest-timeout,
+  pytestCheckHook,
+  CoreServices,
+  libiconv,
 }:
 
 buildPythonPackage rec {
   pname = "watchfiles";
-  version = "0.21.0";
+  version = "0.22.0";
   format = "pyproject";
 
   disabled = pythonOlder "3.7";
@@ -26,13 +27,13 @@ buildPythonPackage rec {
     owner = "samuelcolvin";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-/qNgkPF5N8jzSV3M0YFWvQngZ4Hf4WM/GBS1LtgFbWM=";
+    hash = "sha256-TtRSRgtMOqsnhdvsic3lg33xlA+r/DcYHlzewSOu/44=";
   };
 
   cargoDeps = rustPlatform.fetchCargoTarball {
     inherit src;
     name = "${pname}-${version}";
-    hash = "sha256-sqHTW1+E7Fp33KW6IYlNa77AYc2iCfaSoBRXzrhEKr8=";
+    hash = "sha256-n9yN/VRNQWCxh+BoliIMkKqJC51inpB9DQ9WtqR4oA0=";
   };
 
   buildInputs = lib.optionals stdenv.isDarwin [
@@ -47,9 +48,7 @@ buildPythonPackage rec {
     rustc
   ];
 
-  propagatedBuildInputs = [
-    anyio
-  ];
+  propagatedBuildInputs = [ anyio ];
 
   # Tests need these permissions in order to use the FSEvents API on macOS.
   sandboxProfile = ''
@@ -76,9 +75,7 @@ buildPythonPackage rec {
     "test_awatch_interrupt_raise"
   ];
 
-  pythonImportsCheck = [
-    "watchfiles"
-  ];
+  pythonImportsCheck = [ "watchfiles" ];
 
   meta = with lib; {
     description = "File watching and code reload";
diff --git a/pkgs/development/python-modules/watchgod/default.nix b/pkgs/development/python-modules/watchgod/default.nix
index 988fb53601b9f..10b93b346dd11 100644
--- a/pkgs/development/python-modules/watchgod/default.nix
+++ b/pkgs/development/python-modules/watchgod/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, anyio
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  anyio,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     hash = "sha256-yxH/ZmV777qU2CjjtiLV+3byL72hN281Xz5uUel9lFA=";
   };
 
-  propagatedBuildInputs = [
-    anyio
-  ];
+  propagatedBuildInputs = [ anyio ];
 
   # no tests in release
   doCheck = false;
@@ -30,5 +29,4 @@ buildPythonPackage rec {
     license = licenses.mit;
     maintainers = with maintainers; [ globin ];
   };
-
 }
diff --git a/pkgs/development/python-modules/waterfurnace/default.nix b/pkgs/development/python-modules/waterfurnace/default.nix
index 6b7dce28924f6..2eb9b2cbd8bec 100644
--- a/pkgs/development/python-modules/waterfurnace/default.nix
+++ b/pkgs/development/python-modules/waterfurnace/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, mock
-, pytestCheckHook
-, requests
-, pythonOlder
-, websocket-client
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  mock,
+  pytestCheckHook,
+  requests,
+  pythonOlder,
+  websocket-client,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "waterfurnace"
-  ];
+  pythonImportsCheck = [ "waterfurnace" ];
 
   meta = with lib; {
     description = "Python interface to waterfurnace geothermal systems";
diff --git a/pkgs/development/python-modules/watermark/default.nix b/pkgs/development/python-modules/watermark/default.nix
index daac4416fc088..b6f9eeeb90a83 100644
--- a/pkgs/development/python-modules/watermark/default.nix
+++ b/pkgs/development/python-modules/watermark/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, importlib-metadata
-, ipython
-, py3nvml
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  importlib-metadata,
+  ipython,
+  py3nvml,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-4/1Y7cdh1tF33jgPrqdxCGPcRnnxx+Wf8lyztF54Ck0=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     ipython
@@ -33,18 +32,14 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    gpu = [
-      py3nvml
-    ];
+    gpu = [ py3nvml ];
   };
 
-  nativeCheckInputs =  [
+  nativeCheckInputs = [
     pytestCheckHook
   ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "watermark"
-  ];
+  pythonImportsCheck = [ "watermark" ];
 
   meta = with lib; {
     description = "IPython extension for printing date and timestamps, version numbers, and hardware information";
diff --git a/pkgs/development/python-modules/wavedrom/default.nix b/pkgs/development/python-modules/wavedrom/default.nix
index 3cf3eb30111cb..d5e36be1e9f19 100644
--- a/pkgs/development/python-modules/wavedrom/default.nix
+++ b/pkgs/development/python-modules/wavedrom/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, attrdict
-, buildPythonPackage
-, cairosvg
-, fetchPypi
-, pillow
-, pytestCheckHook
-, pyyaml
-, setuptools-scm
-, six
-, svgwrite
-, xmldiff
+{
+  lib,
+  attrdict,
+  buildPythonPackage,
+  cairosvg,
+  fetchPypi,
+  pillow,
+  pytestCheckHook,
+  pyyaml,
+  setuptools-scm,
+  six,
+  svgwrite,
+  xmldiff,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-MntNXcpZPIElfCAv6lFvepCHR/sRUnw1nwNPW3r39Hs=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     attrdict
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     "test_upstream"
   ];
 
-  pythonImportsCheck = [
-    "wavedrom"
-  ];
+  pythonImportsCheck = [ "wavedrom" ];
 
   meta = with lib; {
     description = "WaveDrom compatible Python command line";
diff --git a/pkgs/development/python-modules/wavefile/default.nix b/pkgs/development/python-modules/wavefile/default.nix
index 4a8272e2f6681..c0e67979e89b4 100644
--- a/pkgs/development/python-modules/wavefile/default.nix
+++ b/pkgs/development/python-modules/wavefile/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pyaudio
-, numpy
-, libsndfile
-, substituteAll
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pyaudio,
+  numpy,
+  libsndfile,
+  substituteAll,
 }:
 
 buildPythonPackage rec {
@@ -21,18 +22,14 @@ buildPythonPackage rec {
     hash = "sha256-TLSWhLARY+3sHkl2p3d3LDGzLu6DggjTJWFpyrwRXSI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   buildInputs = [
     pyaudio
     libsndfile
   ];
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
   nativeCheckInputs = [
     pyaudio
@@ -51,9 +48,7 @@ buildPythonPackage rec {
 
   doCheck = false; # all test files (test/wavefileTest.py) are failing
 
-  pythonImportsCheck = [
-    "wavefile"
-  ];
+  pythonImportsCheck = [ "wavefile" ];
 
   meta = with lib; {
     description = "Pythonic libsndfile wrapper to read and write audio files";
diff --git a/pkgs/development/python-modules/wavinsentio/default.nix b/pkgs/development/python-modules/wavinsentio/default.nix
index 22ed0d177a360..b7b1f1cd645f6 100644
--- a/pkgs/development/python-modules/wavinsentio/default.nix
+++ b/pkgs/development/python-modules/wavinsentio/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-Oko3Ivj95vajNWjQTQK18i5B/DIBngjw2HLlzYqLv2Y=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "wavinsentio"
-  ];
+  pythonImportsCheck = [ "wavinsentio" ];
 
   meta = with lib; {
     description = "Python module to interact with the Wavin Sentio underfloor heating system";
diff --git a/pkgs/development/python-modules/waybackpy/default.nix b/pkgs/development/python-modules/waybackpy/default.nix
new file mode 100644
index 0000000000000..222a3566600fb
--- /dev/null
+++ b/pkgs/development/python-modules/waybackpy/default.nix
@@ -0,0 +1,35 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  click,
+  urllib3,
+  requests,
+  pytest,
+}:
+buildPythonPackage rec {
+  pname = "waybackpy";
+  version = "3.0.6";
+
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-SXo3F1arp2ROt62g69TtsVy4xTvBNMyXO/AjoSyv+D8=";
+  };
+
+  dependencies = [
+    click
+    urllib3
+    requests
+  ];
+
+  nativeBuildInputs = [ pytest ];
+
+  pythonImportsCheck = [ "waybackpy" ];
+
+  meta = with lib; {
+    homepage = "https://akamhy.github.io/waybackpy/";
+    description = "Wayback Machine API interface & a command-line tool";
+    license = licenses.mit;
+    maintainers = with maintainers; [ chpatrick ];
+  };
+}
diff --git a/pkgs/development/python-modules/wazeroutecalculator/default.nix b/pkgs/development/python-modules/wazeroutecalculator/default.nix
index 34c2430632bd9..3812a83ffbfc1 100644
--- a/pkgs/development/python-modules/wazeroutecalculator/default.nix
+++ b/pkgs/development/python-modules/wazeroutecalculator/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,16 +19,12 @@ buildPythonPackage rec {
     hash = "sha256-DB5oWthWNwamFG3kNxA/kmUBOVogoSg5LI2KrI39s4M=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # there are no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "WazeRouteCalculator"
-  ];
+  pythonImportsCheck = [ "WazeRouteCalculator" ];
 
   meta = with lib; {
     description = "Calculate actual route time and distance with Waze API";
diff --git a/pkgs/development/python-modules/wcag-contrast-ratio/default.nix b/pkgs/development/python-modules/wcag-contrast-ratio/default.nix
index 6a047c271658a..34383f549f999 100644
--- a/pkgs/development/python-modules/wcag-contrast-ratio/default.nix
+++ b/pkgs/development/python-modules/wcag-contrast-ratio/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hypothesis
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hypothesis,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "test.py"
-  ];
+  pytestFlagsArray = [ "test.py" ];
 
   pythonImportsCheck = [ "wcag_contrast_ratio" ];
 
diff --git a/pkgs/development/python-modules/wcmatch/default.nix b/pkgs/development/python-modules/wcmatch/default.nix
index fa5a75c132683..90c83d35964f3 100644
--- a/pkgs/development/python-modules/wcmatch/default.nix
+++ b/pkgs/development/python-modules/wcmatch/default.nix
@@ -1,24 +1,23 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hatchling
-, pytestCheckHook
-, bracex
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hatchling,
+  pytestCheckHook,
+  bracex,
 }:
 
 buildPythonPackage rec {
   pname = "wcmatch";
-  version = "8.5.1";
+  version = "8.5.2";
   format = "pyproject";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-wAiMf2Qmz2vyflMOK3tzQDGQX35JBHX9g8fFAIq1gbM=";
+    hash = "sha256-pwIiuG3qgvs4Ldh7cyeMEHVsE4vW+PcU4hgxKIh7nrI=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [ bracex ];
 
@@ -28,9 +27,7 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  disabledTests = [
-    "TestTilde"
-  ];
+  disabledTests = [ "TestTilde" ];
 
   pythonImportsCheck = [ "wcmatch" ];
 
diff --git a/pkgs/development/python-modules/wcwidth/default.nix b/pkgs/development/python-modules/wcwidth/default.nix
index 52a411b23269b..27a3bac5d7d11 100644
--- a/pkgs/development/python-modules/wcwidth/default.nix
+++ b/pkgs/development/python-modules/wcwidth/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,20 +19,14 @@ buildPythonPackage rec {
     hash = "sha256-cuoMBjmesobZeP3ttpI6nrR+HEhs5j6bTmT8GDA5crU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # To prevent infinite recursion with pytest
   doCheck = false;
 
-  pythonImportsCheck = [
-    "wcwidth"
-  ];
+  pythonImportsCheck = [ "wcwidth" ];
 
   meta = with lib; {
     description = "Measures number of Terminal column cells of wide-character codes";
diff --git a/pkgs/development/python-modules/weasel/default.nix b/pkgs/development/python-modules/weasel/default.nix
index 26418749c80fe..bf01bbf033d21 100644
--- a/pkgs/development/python-modules/weasel/default.nix
+++ b/pkgs/development/python-modules/weasel/default.nix
@@ -1,19 +1,19 @@
-{ lib
-, buildPythonPackage
-, cloudpathlib
-, confection
-, fetchFromGitHub
-, packaging
-, pydantic
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
-, setuptools
-, smart-open
-, srsly
-, typer
-, wasabi
+{
+  lib,
+  buildPythonPackage,
+  cloudpathlib,
+  confection,
+  fetchFromGitHub,
+  packaging,
+  pydantic,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
+  smart-open,
+  srsly,
+  typer,
+  wasabi,
 }:
 
 buildPythonPackage rec {
@@ -33,10 +33,10 @@ buildPythonPackage rec {
   pythonRelaxDeps = [
     "cloudpathlib"
     "smart-open"
+    "typer"
   ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
@@ -54,9 +54,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "weasel" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # This test requires internet access
@@ -64,7 +62,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A small and easy workflow system";
+    description = "Small and easy workflow system";
     mainProgram = "weasel";
     homepage = "https://github.com/explosion/weasel/";
     changelog = "https://github.com/explosion/weasel/releases/tag/v${version}";
diff --git a/pkgs/development/python-modules/weasyprint/default.nix b/pkgs/development/python-modules/weasyprint/default.nix
index 5d53bcbb70787..321ee830e57c3 100644
--- a/pkgs/development/python-modules/weasyprint/default.nix
+++ b/pkgs/development/python-modules/weasyprint/default.nix
@@ -1,38 +1,39 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, cairosvg
-, cffi
-, cssselect2
-, fetchPypi
-, flit-core
-, fontconfig
-, fonttools
-, ghostscript
-, glib
-, harfbuzz
-, html5lib
-, pango
-, pillow
-, pydyf
-, pyphen
-, pytestCheckHook
-, pythonOlder
-, substituteAll
-, tinycss2
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  cairosvg,
+  cffi,
+  cssselect2,
+  fetchPypi,
+  flit-core,
+  fontconfig,
+  fonttools,
+  ghostscript,
+  glib,
+  harfbuzz,
+  html5lib,
+  pango,
+  pillow,
+  pydyf,
+  pyphen,
+  pytestCheckHook,
+  pythonOlder,
+  substituteAll,
+  tinycss2,
 }:
 
 buildPythonPackage rec {
   pname = "weasyprint";
-  version = "61.2";
+  version = "62.2";
   format = "pyproject";
 
-  disabled = pythonOlder "3.8";
+  disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit version;
     pname = "weasyprint";
-    hash = "sha256-R99s/u/4xsKM8uTK+DfN4XcV7+RicIradLqi6zkbYFk=";
+    hash = "sha256-oIrEAOEZGdmW12vsqjMWDXwaxVuhYGKMQs51hldMGlE=";
   };
 
   patches = [
@@ -47,9 +48,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     cffi
@@ -80,9 +79,7 @@ buildPythonPackage rec {
   FONTCONFIG_FILE = "${fontconfig.out}/etc/fonts/fonts.conf";
 
   # Set env variable explicitly for Darwin, but allow overriding when invoking directly
-  makeWrapperArgs = [
-    "--set-default FONTCONFIG_FILE ${FONTCONFIG_FILE}"
-  ];
+  makeWrapperArgs = [ "--set-default FONTCONFIG_FILE ${FONTCONFIG_FILE}" ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
@@ -94,15 +91,12 @@ buildPythonPackage rec {
     export HOME=$TMPDIR
   '';
 
-  pythonImportsCheck = [
-    "weasyprint"
-  ];
+  pythonImportsCheck = [ "weasyprint" ];
 
   meta = with lib; {
     description = "Converts web documents to PDF";
     mainProgram = "weasyprint";
     homepage = "https://weasyprint.org/";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ elohmeier ];
   };
 }
diff --git a/pkgs/development/python-modules/weasyprint/library-paths.patch b/pkgs/development/python-modules/weasyprint/library-paths.patch
index 6d884f43ed3cd..e54561a4018a2 100644
--- a/pkgs/development/python-modules/weasyprint/library-paths.patch
+++ b/pkgs/development/python-modules/weasyprint/library-paths.patch
@@ -1,14 +1,14 @@
 diff --git a/weasyprint/text/ffi.py b/weasyprint/text/ffi.py
-index 09f614aad..cbe9a73dd 100644
+index 3aba3e75..dde0e260 100644
 --- a/weasyprint/text/ffi.py
 +++ b/weasyprint/text/ffi.py
-@@ -415,22 +415,11 @@ def _dlopen(ffi, *names):
+@@ -429,22 +429,11 @@ if hasattr(os, 'add_dll_directory'):  # pragma: no cover
          with suppress((OSError, FileNotFoundError)):
              os.add_dll_directory(dll_directory)
  
 -gobject = _dlopen(
 -    ffi, 'gobject-2.0-0', 'gobject-2.0', 'libgobject-2.0-0',
--    'libgobject-2.0.so.0', 'libgobject-2.0.dylib',  'libgobject-2.0-0.dll')
+-    'libgobject-2.0.so.0', 'libgobject-2.0.dylib', 'libgobject-2.0-0.dll')
 -pango = _dlopen(
 -    ffi, 'pango-1.0-0', 'pango-1.0', 'libpango-1.0-0', 'libpango-1.0.so.0',
 -    'libpango-1.0.dylib', 'libpango-1.0-0.dll')
@@ -28,4 +28,5 @@ index 09f614aad..cbe9a73dd 100644
 +fontconfig = _dlopen(ffi, '@fontconfig@')
 +pangoft2 = _dlopen(ffi, '@pangoft2@')
  
- gobject.g_type_init()
\ No newline at end of file
+ gobject.g_type_init()
+ 
diff --git a/pkgs/development/python-modules/weatherflow4py/default.nix b/pkgs/development/python-modules/weatherflow4py/default.nix
new file mode 100644
index 0000000000000..df85ba7d48c5e
--- /dev/null
+++ b/pkgs/development/python-modules/weatherflow4py/default.nix
@@ -0,0 +1,54 @@
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  dataclasses-json,
+  fetchFromGitHub,
+  marshmallow,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  websockets,
+}:
+
+buildPythonPackage rec {
+  pname = "weatherflow4py";
+  version = "0.2.21";
+  pyproject = true;
+
+  disabled = pythonOlder "3.11";
+
+  src = fetchFromGitHub {
+    owner = "jeeftor";
+    repo = "weatherflow4py";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-ah/PpYusrr1nxvKiSpUBYfkn4crX9pCNV9mjpDndMQE=";
+  };
+
+  build-system = [ poetry-core ];
+
+  dependencies = [
+    aiohttp
+    dataclasses-json
+    marshmallow
+    websockets
+  ];
+
+  nativeCheckInputs = [
+    aioresponses
+    pytest-asyncio
+    pytestCheckHook
+  ];
+
+  pythonImportsCheck = [ "weatherflow4py" ];
+
+  meta = with lib; {
+    description = "Module to interact with the WeatherFlow REST API";
+    homepage = "https://github.com/jeeftor/weatherflow4py";
+    changelog = "https://github.com/jeeftor/weatherflow4py/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ fab ];
+  };
+}
diff --git a/pkgs/development/python-modules/weaviate-client/default.nix b/pkgs/development/python-modules/weaviate-client/default.nix
index f92ef94177d5d..67f2965805791 100644
--- a/pkgs/development/python-modules/weaviate-client/default.nix
+++ b/pkgs/development/python-modules/weaviate-client/default.nix
@@ -9,7 +9,6 @@
   httpx,
   pydantic,
   pythonOlder,
-  pythonRelaxDepsHook,
   setuptools-scm,
   tqdm,
   validators,
@@ -17,7 +16,7 @@
 
 buildPythonPackage rec {
   pname = "weaviate-client";
-  version = "4.5.6";
+  version = "4.6.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -26,7 +25,7 @@ buildPythonPackage rec {
     owner = "weaviate";
     repo = "weaviate-python-client";
     rev = "refs/tags/v${version}";
-    hash = "sha256-P1GiTsRDbJssoLZR//c+b4IJ2Zyb/0PaBLL+wmmI6zc=";
+    hash = "sha256-v8I0ovH99q5uYlnbZsQYgL9mg3n9i59W2n6/d9IiKyQ=";
   };
 
   pythonRelaxDeps = [
@@ -36,7 +35,6 @@ buildPythonPackage rec {
 
   build-system = [ setuptools-scm ];
 
-  nativeBuildInputs = [ pythonRelaxDepsHook ];
 
   dependencies = [
     authlib
diff --git a/pkgs/development/python-modules/web-cache/default.nix b/pkgs/development/python-modules/web-cache/default.nix
index 18909898c9d87..fbc9cf2aaa8cf 100644
--- a/pkgs/development/python-modules/web-cache/default.nix
+++ b/pkgs/development/python-modules/web-cache/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+}:
 
 buildPythonPackage rec {
   pname = "web-cache";
diff --git a/pkgs/development/python-modules/web/default.nix b/pkgs/development/python-modules/web/default.nix
index 33017b3a46508..39275ca1eb7a4 100644
--- a/pkgs/development/python-modules/web/default.nix
+++ b/pkgs/development/python-modules/web/default.nix
@@ -1,6 +1,14 @@
-{ lib, buildPythonPackage, fetchPypi, pytestCheckHook
-, cheroot
-, dbutils, mysqlclient, pymysql, mysql-connector, psycopg2
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  cheroot,
+  dbutils,
+  mysqlclient,
+  pymysql,
+  mysql-connector,
+  psycopg2,
 }:
 
 buildPythonPackage rec {
@@ -19,7 +27,14 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "web" ];
 
-  nativeCheckInputs = [ pytestCheckHook dbutils mysqlclient pymysql mysql-connector psycopg2 ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    dbutils
+    mysqlclient
+    pymysql
+    mysql-connector
+    psycopg2
+  ];
 
   meta = with lib; {
     description = "Makes web apps";
@@ -31,5 +46,4 @@ buildPythonPackage rec {
     license = licenses.publicDomain;
     maintainers = with maintainers; [ layus ];
   };
-
 }
diff --git a/pkgs/development/python-modules/web3/default.nix b/pkgs/development/python-modules/web3/default.nix
index ae709ef408865..49415d090f5c6 100644
--- a/pkgs/development/python-modules/web3/default.nix
+++ b/pkgs/development/python-modules/web3/default.nix
@@ -1,20 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, aiohttp
-, eth-abi
-, eth-account
-, eth-hash
-, eth-typing
-, eth-utils
-, hexbytes
-, ipfshttpclient
-, jsonschema
-, lru-dict
-, protobuf
-, requests
-, websockets
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  aiohttp,
+  eth-abi,
+  eth-account,
+  eth-hash,
+  eth-typing,
+  eth-utils,
+  hexbytes,
+  ipfshttpclient,
+  jsonschema,
+  lru-dict,
+  protobuf,
+  requests,
+  websockets,
 }:
 
 buildPythonPackage rec {
@@ -36,20 +37,24 @@ buildPythonPackage rec {
     ipfs = [ ipfshttpclient ];
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-    eth-abi
-    eth-account
-    eth-hash ] ++ eth-hash.optional-dependencies.pycryptodome ++ [
-    eth-typing
-    eth-utils
-    hexbytes
-    jsonschema
-    lru-dict
-    protobuf
-    requests
-    websockets
-  ];
+  propagatedBuildInputs =
+    [
+      aiohttp
+      eth-abi
+      eth-account
+      eth-hash
+    ]
+    ++ eth-hash.optional-dependencies.pycryptodome
+    ++ [
+      eth-typing
+      eth-utils
+      hexbytes
+      jsonschema
+      lru-dict
+      protobuf
+      requests
+      websockets
+    ];
 
   # TODO: package eth-tester required for tests
   doCheck = false;
@@ -58,12 +63,10 @@ buildPythonPackage rec {
     substituteInPlace setup.py --replace "types-protobuf==3.19.13" "types-protobuf"
   '';
 
-  pythonImportsCheck = [
-    "web3"
-  ];
+  pythonImportsCheck = [ "web3" ];
 
   meta = with lib; {
-    description = "A python interface for interacting with the Ethereum blockchain and ecosystem";
+    description = "Python interface for interacting with the Ethereum blockchain and ecosystem";
     homepage = "https://web3py.readthedocs.io/";
     license = licenses.mit;
     maintainers = with maintainers; [ hellwolf ];
diff --git a/pkgs/development/python-modules/webargs/default.nix b/pkgs/development/python-modules/webargs/default.nix
index 800649a093884..21c7af1cfdbc5 100644
--- a/pkgs/development/python-modules/webargs/default.nix
+++ b/pkgs/development/python-modules/webargs/default.nix
@@ -1,6 +1,21 @@
-{ buildPythonPackage, fetchPypi, lib, isPy27, marshmallow, pytestCheckHook
-, pytest-aiohttp, webtest, webtest-aiohttp, flask, django, bottle, tornado
-, pyramid, falcon, aiohttp }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  isPy27,
+  marshmallow,
+  pytestCheckHook,
+  pytest-aiohttp,
+  webtest,
+  webtest-aiohttp,
+  flask,
+  django,
+  bottle,
+  tornado,
+  pyramid,
+  falcon,
+  aiohttp,
+}:
 
 buildPythonPackage rec {
   pname = "webargs";
@@ -13,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-6pk2ghSkzmE5JL6Z1x21jCaWMele/0+gm3NU5S3ABqU=";
   };
 
-  pythonImportsCheck = [
-    "webargs"
-  ];
+  pythonImportsCheck = [ "webargs" ];
 
   propagatedBuildInputs = [ marshmallow ];
 
diff --git a/pkgs/development/python-modules/webassets/default.nix b/pkgs/development/python-modules/webassets/default.nix
index 75a127d475ef2..64b45c17154c4 100644
--- a/pkgs/development/python-modules/webassets/default.nix
+++ b/pkgs/development/python-modules/webassets/default.nix
@@ -1,4 +1,13 @@
-{ lib, buildPythonPackage, fetchPypi, pyyaml, nose, jinja2, mock, pytest }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyyaml,
+  nose,
+  jinja2,
+  mock,
+  pytest,
+}:
 
 buildPythonPackage rec {
   pname = "webassets";
@@ -11,7 +20,12 @@ buildPythonPackage rec {
   };
 
   propagatedBuildInputs = [ pyyaml ];
-  nativeCheckInputs = [ nose jinja2 mock pytest ];
+  nativeCheckInputs = [
+    nose
+    jinja2
+    mock
+    pytest
+  ];
 
   # Needs Babel CLI tool
   doCheck = false;
diff --git a/pkgs/development/python-modules/webauthn/default.nix b/pkgs/development/python-modules/webauthn/default.nix
index ad28892290ee0..af0621ad54d44 100644
--- a/pkgs/development/python-modules/webauthn/default.nix
+++ b/pkgs/development/python-modules/webauthn/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, asn1crypto
-, cbor2
-, pythonOlder
-, pyopenssl
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  asn1crypto,
+  cbor2,
+  pythonOlder,
+  pyopenssl,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "webauthn";
-  version = "2.0.0";
+  version = "2.1.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.8";
@@ -19,7 +20,7 @@ buildPythonPackage rec {
     owner = "duo-labs";
     repo = "py_webauthn";
     rev = "refs/tags/v${version}";
-    hash = "sha256-StqoSrzErV13/OUpSWbI+6N5tSFPEpvnmQcDiZMaXPI=";
+    hash = "sha256-AfQ3lt0WvoThU5kCE7MzhAXwbqmNaCrUqOMWI937hO4=";
   };
 
   propagatedBuildInputs = [
@@ -28,13 +29,9 @@ buildPythonPackage rec {
     pyopenssl
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "webauthn"
-  ];
+  pythonImportsCheck = [ "webauthn" ];
 
   disabledTests = [
     # TypeError: X509StoreContextError.__init__() missing 1 required...
diff --git a/pkgs/development/python-modules/webcolors/default.nix b/pkgs/development/python-modules/webcolors/default.nix
index 7ee91e7ea2b4d..2cd7fed14103d 100644
--- a/pkgs/development/python-modules/webcolors/default.nix
+++ b/pkgs/development/python-modules/webcolors/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, unittestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  unittestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,18 +19,17 @@ buildPythonPackage rec {
     hash = "sha256-wiW2dMg/qSO+k9I1MwzgMANz0CiFzvIyOIE7DVZoMEo=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [ "-s" "tests" ];
-
-  pythonImportsCheck = [
-    "webcolors"
+  unittestFlagsArray = [
+    "-s"
+    "tests"
   ];
 
+  pythonImportsCheck = [ "webcolors" ];
+
   meta = with lib; {
     description = "Library for working with color names/values defined by the HTML and CSS specifications";
     homepage = "https://github.com/ubernostrum/webcolors";
diff --git a/pkgs/development/python-modules/webdataset/default.nix b/pkgs/development/python-modules/webdataset/default.nix
index 5f18d28f9fbda..fa0e4ff82aa4e 100644
--- a/pkgs/development/python-modules/webdataset/default.nix
+++ b/pkgs/development/python-modules/webdataset/default.nix
@@ -1,29 +1,30 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, braceexpand
-, imageio
-, lmdb
-, msgpack
-, numpy
-, pytestCheckHook
-, pyyaml
-, setuptools
-, torch
-, torchvision
-, wheel
-, fetchFromGitHub
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  braceexpand,
+  imageio,
+  lmdb,
+  msgpack,
+  numpy,
+  pytestCheckHook,
+  pyyaml,
+  setuptools,
+  torch,
+  torchvision,
+  wheel,
+  fetchFromGitHub,
 }:
 buildPythonPackage rec {
   pname = "webdataset";
-  version = "0.2.86";
+  version = "0.2.90";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "webdataset";
     repo = "webdataset";
     rev = "refs/tags/${version}";
-    hash = "sha256-aTjxoSoQ9LH4gcFmV+7Aj0HNIpvsFHTrxFUpAtB3nkM=";
+    hash = "sha256-selj7XD7NS831lbPnx/4o46bNpsxuFdSEIIb4S2b7S0=";
   };
 
   nativeBuildInputs = [
@@ -48,36 +49,46 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "webdataset" ];
 
-  disabledTests = [
-    # requires network
-    "test_batched"
-    "test_dataloader"
-    "test_decode_handlers"
-    "test_decoder"
-    "test_decoder"
-    "test_download"
-    "test_handlers"
-    "test_pipe"
-    "test_shard_syntax"
-    "test_torchvision"
-    "test_torchvision"
-    "test_unbatched"
-    "test_yaml3"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # pickling error
-    "test_background_download"
-  ] ++ lib.optionals (stdenv.isAarch64 && stdenv.isLinux) [
-    # segfaults on aarch64-linux
-    "test_webloader"
-    "test_webloader2"
-    "test_webloader_repeat"
-    "test_webloader_unbatched"
-  ];
+  disabledTests =
+    [
+      # requires network
+      "test_batched"
+      "test_cache_dir"
+      "test_concurrent_download_and_open"
+      "test_dataloader"
+      "test_decode_handlers"
+      "test_decoder"
+      "test_download"
+      "test_handlers"
+      "test_pipe"
+      "test_remote_file"
+      "test_shard_syntax"
+      "test_torchvision"
+      "test_unbatched"
+      "test_yaml3"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # pickling error
+      "test_background_download"
+    ]
+    ++ lib.optionals (stdenv.isx86_64 && stdenv.isDarwin) [
+      "test_concurrent_access"
+      # fails to patch 'init_process_group' from torch.distributed
+      "TestDistributedChunkedSampler"
+    ]
+    ++ lib.optionals (stdenv.isAarch64 && stdenv.isLinux) [
+      # segfaults on aarch64-linux
+      "test_webloader"
+      "test_webloader2"
+      "test_webloader_repeat"
+      "test_webloader_unbatched"
+    ];
 
   meta = with lib; {
-    description = "A high-performance Python-based I/O system for large (and small) deep learning problems, with strong support for PyTorch";
+    description = "High-performance Python-based I/O system for large (and small) deep learning problems, with strong support for PyTorch";
     mainProgram = "widsindex";
     homepage = "https://github.com/webdataset/webdataset";
+    changelog = "https://github.com/webdataset/webdataset/releases/tag/${version}";
     license = licenses.bsd3;
     maintainers = with maintainers; [ iynaix ];
   };
diff --git a/pkgs/development/python-modules/webdav4/default.nix b/pkgs/development/python-modules/webdav4/default.nix
index 831ebbe43dd40..6e4d6657763cc 100644
--- a/pkgs/development/python-modules/webdav4/default.nix
+++ b/pkgs/development/python-modules/webdav4/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, cheroot
-, colorama
-, fetchFromGitHub
-, fsspec
-, hatch-vcs
-, hatchling
-, httpx
-, pytest-xdist
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, wsgidav
+{
+  lib,
+  buildPythonPackage,
+  cheroot,
+  colorama,
+  fetchFromGitHub,
+  fsspec,
+  hatch-vcs,
+  hatchling,
+  httpx,
+  pytest-xdist,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  wsgidav,
 }:
 
 buildPythonPackage rec {
@@ -52,21 +53,15 @@ buildPythonPackage rec {
   ] ++ passthru.optional-dependencies.fsspec;
 
   passthru.optional-dependencies = {
-    fsspec = [
-      fsspec
-    ];
-    http2 = [
-      httpx.optional-dependencies.http2
-    ];
+    fsspec = [ fsspec ];
+    http2 = [ httpx.optional-dependencies.http2 ];
     all = [
       fsspec
       httpx.optional-dependencies.http2
     ];
   };
 
-  pythonImportsCheck = [
-    "webdav4"
-  ];
+  pythonImportsCheck = [ "webdav4" ];
 
   disabledTests = [
     # ValueError: Invalid dir_browser htdocs_path
@@ -78,7 +73,6 @@ buildPythonPackage rec {
     "test_cp_cli"
     "test_mv_cli"
     "test_sync_remote_to_local"
-
   ];
 
   disabledTestPaths = [
diff --git a/pkgs/development/python-modules/webdavclient3/default.nix b/pkgs/development/python-modules/webdavclient3/default.nix
index 0cd96d389bd07..168ee71745f43 100644
--- a/pkgs/development/python-modules/webdavclient3/default.nix
+++ b/pkgs/development/python-modules/webdavclient3/default.nix
@@ -1,5 +1,13 @@
-{ buildPythonPackage, fetchPypi, isPy27, lib, python-dateutil, lxml, requests
-, pytestCheckHook }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  lib,
+  python-dateutil,
+  lxml,
+  requests,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "webdavclient3";
@@ -13,7 +21,11 @@ buildPythonPackage rec {
     sha256 = "bcd22586bb0d58abc26ca56054fd04228e704bd36073c3080f4597c1556c880d";
   };
 
-  propagatedBuildInputs = [ python-dateutil lxml requests ];
+  propagatedBuildInputs = [
+    python-dateutil
+    lxml
+    requests
+  ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/webdriver-manager/default.nix b/pkgs/development/python-modules/webdriver-manager/default.nix
index 6680fa7eea6b1..411d5b9b78da3 100644
--- a/pkgs/development/python-modules/webdriver-manager/default.nix
+++ b/pkgs/development/python-modules/webdriver-manager/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, packaging
-, pybrowsers
-, pytestCheckHook
-, python-dotenv
-, pythonOlder
-, requests
-, selenium
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  packaging,
+  pybrowsers,
+  pytestCheckHook,
+  python-dotenv,
+  pythonOlder,
+  requests,
+  selenium,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,11 +26,11 @@ buildPythonPackage rec {
     hash = "sha256-PdUlloJ4DncnktKQHofn/OLVrgSVyWhaeEEhl3Hgjek=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  __darwinAllowLocalNetworking = true;
+
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     packaging
     python-dotenv
     requests
@@ -41,9 +42,7 @@ buildPythonPackage rec {
     selenium
   ];
 
-  pythonImportsCheck = [
-    "webdriver_manager"
-  ];
+  pythonImportsCheck = [ "webdriver_manager" ];
 
   disabledTestPaths = [
     # Tests require network access and browsers available
@@ -69,5 +68,6 @@ buildPythonPackage rec {
     changelog = "https://github.com/SergeyPirogov/webdriver_manager/blob/${version}/CHANGELOG.md";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/development/python-modules/webencodings/default.nix b/pkgs/development/python-modules/webencodings/default.nix
index 8a805888c4a02..334ba54b0ba5c 100644
--- a/pkgs/development/python-modules/webencodings/default.nix
+++ b/pkgs/development/python-modules/webencodings/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
-, pytest
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+  pytest,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/webexteamssdk/default.nix b/pkgs/development/python-modules/webexteamssdk/default.nix
index 1e81e90af9a60..30eeb64d83a14 100644
--- a/pkgs/development/python-modules/webexteamssdk/default.nix
+++ b/pkgs/development/python-modules/webexteamssdk/default.nix
@@ -1,28 +1,41 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, future
-, pyjwt
-, pythonOlder
-, requests
-, requests-toolbelt
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  future,
+  pyjwt,
+  pythonOlder,
+  requests,
+  requests-toolbelt,
+  setuptools,
+  versioneer,
 }:
 
 buildPythonPackage rec {
   pname = "webexteamssdk";
   version = "1.6.1";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchFromGitHub {
     owner = "CiscoDevNet";
-    repo = pname;
-    rev = "v${version}";
+    repo = "webexteamssdk";
+    rev = "refs/tags/v${version}";
     hash = "sha256-xlkmXl4tVm48drXmkUijv9GNXzJcDnfSKbOMciPIRRo=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    # Remove vendorized versioneer
+    rm versioneer.py
+  '';
+
+  build-system = [
+    setuptools
+    versioneer
+  ];
+
+  dependencies = [
     future
     pyjwt
     requests
@@ -32,13 +45,12 @@ buildPythonPackage rec {
   # Tests require a Webex Teams test domain
   doCheck = false;
 
-  pythonImportsCheck = [
-    "webexteamssdk"
-  ];
+  pythonImportsCheck = [ "webexteamssdk" ];
 
   meta = with lib; {
     description = "Python module for Webex Teams APIs";
     homepage = "https://github.com/CiscoDevNet/webexteamssdk";
+    changelog = "https://github.com/WebexCommunity/WebexPythonSDK/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/webhelpers/default.nix b/pkgs/development/python-modules/webhelpers/default.nix
index c9dc7159f2f82..4b7c9c3674246 100644
--- a/pkgs/development/python-modules/webhelpers/default.nix
+++ b/pkgs/development/python-modules/webhelpers/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, routes
-, markupsafe
-, webob
-, nose
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  routes,
+  markupsafe,
+  webob,
+  nose,
 }:
 
 buildPythonPackage rec {
@@ -17,7 +18,12 @@ buildPythonPackage rec {
     sha256 = "ea86f284e929366b77424ba9a89341f43ae8dee3cbeb8702f73bcf86058aa583";
   };
 
-  buildInputs = [ routes markupsafe webob nose ];
+  buildInputs = [
+    routes
+    markupsafe
+    webob
+    nose
+  ];
 
   # TODO: failing tests https://bitbucket.org/bbangert/webhelpers/pull-request/1/fix-error-on-webob-123/diff
   doCheck = false;
@@ -28,5 +34,4 @@ buildPythonPackage rec {
     license = licenses.free;
     maintainers = with maintainers; [ domenkozar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/webob/default.nix b/pkgs/development/python-modules/webob/default.nix
index 2b07f61e1d3a6..921b75ef0778a 100644
--- a/pkgs/development/python-modules/webob/default.nix
+++ b/pkgs/development/python-modules/webob/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     hash = "sha256-tk71FBvlWc+t5EjwRPpFwiYDUe3Lao72t+AMfc7wwyM=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "webob"
-  ];
+  pythonImportsCheck = [ "webob" ];
 
   disabledTestPaths = [
     # AttributeError: 'Thread' object has no attribute 'isAlive'
diff --git a/pkgs/development/python-modules/weboob/default.nix b/pkgs/development/python-modules/weboob/default.nix
index 79a88db2a5761..37d639ee336b7 100644
--- a/pkgs/development/python-modules/weboob/default.nix
+++ b/pkgs/development/python-modules/weboob/default.nix
@@ -1,29 +1,30 @@
-{ lib
-, babel
-, buildPythonPackage
-, cssselect
-, feedparser
-, fetchPypi
-, gdata
-, gnupg
-, google-api-python-client
-, html2text
-, libyaml
-, lxml
-, mechanize
-, nose
-, pdfminer-six
-, pillow
-, prettytable
-, pyqt5
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pyyaml
-, requests
-, simplejson
-, termcolor
-, unidecode
+{
+  lib,
+  babel,
+  buildPythonPackage,
+  cssselect,
+  feedparser,
+  fetchPypi,
+  gdata,
+  gnupg,
+  google-api-python-client,
+  html2text,
+  libyaml,
+  lxml,
+  mechanize,
+  nose,
+  pdfminer-six,
+  pillow,
+  prettytable,
+  pyqt5,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  pyyaml,
+  requests,
+  simplejson,
+  termcolor,
+  unidecode,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
     sha256 = "1c69vzf8sg8471lcaafpz9iw2q3rfj5hmcpqrs2k59fkgbvy32zw";
   };
 
-  nativeBuildInputs = [
-    pyqt5
-  ];
+  nativeBuildInputs = [ pyqt5 ];
 
   propagatedBuildInputs = [
     babel
@@ -76,17 +75,13 @@ buildPythonPackage rec {
       --replace "weboob.tools.capabilities.bank.transactions," ""
   '';
 
-  nativeCheckInputs = [
-    nose
-  ];
+  nativeCheckInputs = [ nose ];
 
   checkPhase = ''
     nosetests
   '';
 
-  pythonImportsCheck = [
-    "weboob"
-  ];
+  pythonImportsCheck = [ "weboob" ];
 
   meta = with lib; {
     description = "Collection of applications and APIs to interact with websites";
diff --git a/pkgs/development/python-modules/webrtc-noise-gain/default.nix b/pkgs/development/python-modules/webrtc-noise-gain/default.nix
index 63b02a1bfd0d2..2ee864d32426b 100644
--- a/pkgs/development/python-modules/webrtc-noise-gain/default.nix
+++ b/pkgs/development/python-modules/webrtc-noise-gain/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, stdenv
-
-# build-system
-, pybind11
-, setuptools
-
-# native dependencies
-, abseil-cpp
-, darwin
-
-# tests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  stdenv,
+
+  # build-system
+  pybind11,
+  setuptools,
+
+  # native dependencies
+  abseil-cpp,
+  darwin,
+
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -34,17 +35,11 @@ buildPythonPackage rec {
 
   buildInputs = [
     abseil-cpp
-  ] ++ lib.optionals (stdenv.isDarwin) [
-    darwin.apple_sdk.frameworks.CoreServices
-  ];
+  ] ++ lib.optionals (stdenv.isDarwin) [ darwin.apple_sdk.frameworks.CoreServices ];
 
-  pythonImportsCheck = [
-    "webrtc_noise_gain"
-  ];
+  pythonImportsCheck = [ "webrtc_noise_gain" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Tiny wrapper around webrtc-audio-processing for noise suppression/auto gain only";
diff --git a/pkgs/development/python-modules/webrtcvad/default.nix b/pkgs/development/python-modules/webrtcvad/default.nix
index c47b32a9d3a3b..2bc09f2e0c578 100644
--- a/pkgs/development/python-modules/webrtcvad/default.nix
+++ b/pkgs/development/python-modules/webrtcvad/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/websocket-client/default.nix b/pkgs/development/python-modules/websocket-client/default.nix
index 1903c6cb64669..b69dfcb585099 100644
--- a/pkgs/development/python-modules/websocket-client/default.nix
+++ b/pkgs/development/python-modules/websocket-client/default.nix
@@ -1,39 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, python-socks
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  python-socks,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "websocket-client";
-  version = "1.7.0";
+  version = "1.8.0";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-EOUR6jqMdEYx07135h6xftCTBMQTrULPbd+kx3h+j+Y=";
+    pname = "websocket_client";
+    inherit version;
+    hash = "sha256-Mjnfn0TaYy+WASRygF1AojKBqZECfOEdL0Wm8krEw9o=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    python-socks
-   ];
+  propagatedBuildInputs = [ python-socks ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "websocket"
-  ];
+  pythonImportsCheck = [ "websocket" ];
 
   meta = with lib; {
     description = "Websocket client for Python";
diff --git a/pkgs/development/python-modules/websockets/default.nix b/pkgs/development/python-modules/websockets/default.nix
index 770e6e654caf5..f2c7ce30d7993 100644
--- a/pkgs/development/python-modules/websockets/default.nix
+++ b/pkgs/development/python-modules/websockets/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, unittestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  unittestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-sOL3VI9Ib/PncZs5KN4dAIHOrBc7LfXqT15LO4M6qKg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   patchPhase = ''
     # Disable all tests that need to terminate within a predetermined amount of
@@ -46,16 +45,12 @@ buildPythonPackage rec {
     done
   '';
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
   # Tests fail on Darwin with `OSError: AF_UNIX path too long`
   doCheck = !stdenv.isDarwin;
 
-  pythonImportsCheck = [
-    "websockets"
-  ];
+  pythonImportsCheck = [ "websockets" ];
 
   meta = with lib; {
     description = "WebSocket implementation in Python";
diff --git a/pkgs/development/python-modules/websockify/default.nix b/pkgs/development/python-modules/websockify/default.nix
index 1dd9413792744..fc1b3c7115188 100644
--- a/pkgs/development/python-modules/websockify/default.nix
+++ b/pkgs/development/python-modules/websockify/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, jwcrypto
-, numpy
-, pytestCheckHook
-, pythonOlder
-, redis
-, requests
-, simplejson
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  jwcrypto,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  redis,
+  requests,
+  simplejson,
 }:
 
 buildPythonPackage rec {
   pname = "websockify";
-  version = "0.11.0";
+  version = "0.12.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
@@ -22,7 +23,7 @@ buildPythonPackage rec {
     owner = "novnc";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-82Fk9qbiiCD5Rts1d14sK/njeN7DcjKMKPqE7S/1WHs=";
+    hash = "sha256-+qjWmCkXJj8J5OImMSjTwXWyApmJ883NMr0157iqPS4=";
   };
 
   propagatedBuildInputs = [
@@ -33,9 +34,7 @@ buildPythonPackage rec {
     simplejson
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = lib.optionals stdenv.isDarwin [
     # this test failed on macos
@@ -43,9 +42,7 @@ buildPythonPackage rec {
     "test_socket_set_keepalive_options"
   ];
 
-  pythonImportsCheck = [
-    "websockify"
-  ];
+  pythonImportsCheck = [ "websockify" ];
 
   meta = with lib; {
     description = "WebSockets support for any application/server";
diff --git a/pkgs/development/python-modules/webssh/default.nix b/pkgs/development/python-modules/webssh/default.nix
index 4681b186c9caf..b18dcd38c2a7e 100644
--- a/pkgs/development/python-modules/webssh/default.nix
+++ b/pkgs/development/python-modules/webssh/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, paramiko
-, pytestCheckHook
-, tornado
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  paramiko,
+  pytestCheckHook,
+  tornado,
 }:
 
 buildPythonPackage rec {
@@ -17,23 +18,18 @@ buildPythonPackage rec {
     hash = "sha256-mRestRJukaf7ti3vIs/MM/R+zpGmK551j5HAM2chBsE=";
   };
 
+  patches = [
+    ./remove-typo-in-test-case.patch
+  ];
+
   propagatedBuildInputs = [
     paramiko
     tornado
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
-
-  pythonImportsCheck = [
-    "webssh"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = [
-    # Test fails with AttributeError (possibly related to paramiko update)
-    "test_app_with_bad_host_key"
-  ];
+  pythonImportsCheck = [ "webssh" ];
 
   meta = with lib; {
     description = "Web based SSH client";
diff --git a/pkgs/development/python-modules/webssh/remove-typo-in-test-case.patch b/pkgs/development/python-modules/webssh/remove-typo-in-test-case.patch
new file mode 100644
index 0000000000000..ac7bd94e5b39b
--- /dev/null
+++ b/pkgs/development/python-modules/webssh/remove-typo-in-test-case.patch
@@ -0,0 +1,18 @@
+---
+ tests/test_handler.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/tests/test_handler.py b/tests/test_handler.py
+index a9ad924..950e672 100644
+--- a/tests/test_handler.py
++++ b/tests/test_handler.py
+@@ -336,5 +336,5 @@ class TestIndexHandler(unittest.TestCase):
+         ssh.exec_command.return_value = (stdin, stdout, stderr)
+ 
+         encoding = IndexHandler.get_default_encoding(handler, ssh)
+-        self.assertEquals("utf-8", encoding)
++        self.assertEqual("utf-8", encoding)
+ 
+-- 
+2.44.0
+
diff --git a/pkgs/development/python-modules/webtest-aiohttp/default.nix b/pkgs/development/python-modules/webtest-aiohttp/default.nix
index f8666689ca316..228dab2dae80f 100644
--- a/pkgs/development/python-modules/webtest-aiohttp/default.nix
+++ b/pkgs/development/python-modules/webtest-aiohttp/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pytest-aiohttp
-, pytestCheckHook
-, pythonOlder
-, webtest
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pytest-aiohttp,
+  pytestCheckHook,
+  pythonOlder,
+  webtest,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
     })
   ];
 
-  propagatedBuildInputs = [
-    webtest
-  ];
+  propagatedBuildInputs = [ webtest ];
 
   nativeCheckInputs = [
     aiohttp
@@ -41,9 +40,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "webtest_aiohttp"
-  ];
+  pythonImportsCheck = [ "webtest_aiohttp" ];
 
   meta = with lib; {
     changelog = "https://github.com/sloria/webtest-aiohttp/blob/${src.rev}/CHANGELOG.rst";
diff --git a/pkgs/development/python-modules/webtest/default.nix b/pkgs/development/python-modules/webtest/default.nix
index 52d48505df473..15a36b3dc8f10 100644
--- a/pkgs/development/python-modules/webtest/default.nix
+++ b/pkgs/development/python-modules/webtest/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, beautifulsoup4
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, pastedeploy
-, pyquery
-, pytestCheckHook
-, pythonOlder
-, six
-, waitress
-, webob
-, wsgiproxy2
+{
+  lib,
+  beautifulsoup4,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  pastedeploy,
+  pyquery,
+  pytestCheckHook,
+  pythonOlder,
+  six,
+  waitress,
+  webob,
+  wsgiproxy2,
 }:
 
 buildPythonPackage rec {
@@ -51,9 +52,7 @@ buildPythonPackage rec {
 
   __darwinAllowLocalNetworking = true;
 
-  pythonImportsCheck = [
-    "webtest"
-  ];
+  pythonImportsCheck = [ "webtest" ];
 
   meta = with lib; {
     description = "Helper to test WSGI applications";
diff --git a/pkgs/development/python-modules/webthing-ws/default.nix b/pkgs/development/python-modules/webthing-ws/default.nix
index 1e7b89e03b62b..83f1c813e88d9 100644
--- a/pkgs/development/python-modules/webthing-ws/default.nix
+++ b/pkgs/development/python-modules/webthing-ws/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "webthing_ws"
-  ];
+  pythonImportsCheck = [ "webthing_ws" ];
 
   meta = with lib; {
     description = "WebThing WebSocket consumer and API client";
diff --git a/pkgs/development/python-modules/webthing/default.nix b/pkgs/development/python-modules/webthing/default.nix
index aea123bc78c16..4f4ede0e8ba1d 100644
--- a/pkgs/development/python-modules/webthing/default.nix
+++ b/pkgs/development/python-modules/webthing/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, ifaddr
-, jsonschema
-, pyee
-, pythonOlder
-, tornado
-, zeroconf
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ifaddr,
+  jsonschema,
+  pyee,
+  pythonOlder,
+  tornado,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
   # No tests are present
   doCheck = false;
 
-  pythonImportsCheck = [
-    "webthing"
-  ];
+  pythonImportsCheck = [ "webthing" ];
 
   meta = with lib; {
     description = "Python implementation of a Web Thing server";
diff --git a/pkgs/development/python-modules/weconnect-mqtt/default.nix b/pkgs/development/python-modules/weconnect-mqtt/default.nix
index 003614876b98a..bdbd57513c568 100644
--- a/pkgs/development/python-modules/weconnect-mqtt/default.nix
+++ b/pkgs/development/python-modules/weconnect-mqtt/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, paho-mqtt
-, python-dateutil
-, weconnect
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  paho-mqtt,
+  pytestCheckHook,
+  python-dateutil,
+  pythonOlder,
+  setuptools,
+  weconnect,
 }:
 
 buildPythonPackage rec {
   pname = "weconnect-mqtt";
-  version = "0.49.0";
+  version = "0.48.4";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,7 +21,7 @@ buildPythonPackage rec {
     owner = "tillsteinbach";
     repo = "WeConnect-mqtt";
     rev = "refs/tags/v${version}";
-    hash = "sha256-V96fdy6h012SbP3tyOMniAwLf/1+iKzTc9WnevAVwTI=";
+    hash = "sha256-Yv6CAGTDi4P9pImLxVk2QkZ014iqQ8UMBUeiyZWnYiQ=";
   };
 
   postPatch = ''
@@ -33,30 +34,27 @@ buildPythonPackage rec {
       --replace-fail "pytest-cov" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  pythonRelaxDeps = [ "python-dateutil" ];
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+
+  dependencies = [
     paho-mqtt
     python-dateutil
     weconnect
   ] ++ weconnect.optional-dependencies.Images;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "weconnect_mqtt"
-  ];
+  pythonImportsCheck = [ "weconnect_mqtt" ];
 
   meta = with lib; {
     description = "Python client that publishes data from Volkswagen WeConnect";
-    mainProgram = "weconnect-mqtt";
     homepage = "https://github.com/tillsteinbach/WeConnect-mqtt";
     changelog = "https://github.com/tillsteinbach/WeConnect-mqtt/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "weconnect-mqtt";
   };
 }
diff --git a/pkgs/development/python-modules/weconnect/default.nix b/pkgs/development/python-modules/weconnect/default.nix
index 096e41b89bcc9..cba91268a5eb1 100644
--- a/pkgs/development/python-modules/weconnect/default.nix
+++ b/pkgs/development/python-modules/weconnect/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, ascii-magic
-, buildPythonPackage
-, fetchFromGitHub
-, oauthlib
-, pillow
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  ascii-magic,
+  buildPythonPackage,
+  fetchFromGitHub,
+  oauthlib,
+  pillow,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "weconnect";
-  version = "0.60.2";
+  version = "0.60.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -21,7 +22,7 @@ buildPythonPackage rec {
     owner = "tillsteinbach";
     repo = "WeConnect-python";
     rev = "refs/tags/v${version}";
-    hash = "sha256-VM4qCe+VMnfKXioUHTjOeBSniwpq44fvbN1k1jG6puk=";
+    hash = "sha256-eIGzcuSKzcpE6UPQKmv0kcFcIFizWOunfOJDHfcw7Yk=";
   };
 
   postPatch = ''
@@ -35,9 +36,7 @@ buildPythonPackage rec {
       --replace-fail "required_plugins = pytest-cov" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     oauthlib
@@ -51,13 +50,9 @@ buildPythonPackage rec {
     ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "weconnect"
-  ];
+  pythonImportsCheck = [ "weconnect" ];
 
   meta = with lib; {
     description = "Python client for the Volkswagen WeConnect Services";
diff --git a/pkgs/development/python-modules/werkzeug/default.nix b/pkgs/development/python-modules/werkzeug/default.nix
index 80ed4c53539a9..43758f06157b5 100644
--- a/pkgs/development/python-modules/werkzeug/default.nix
+++ b/pkgs/development/python-modules/werkzeug/default.nix
@@ -1,50 +1,47 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-
-# build-system
-, flit-core
-
-# dependencies
-, markupsafe
-
-# optional-dependencies
-, watchdog
-
-# tests
-, cryptography
-, ephemeral-port-reserve
-, greenlet
-, pytest-timeout
-, pytest-xprocess
-, pytestCheckHook
-
-# reverse dependencies
-, moto
-, sentry-sdk
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+
+  # build-system
+  flit-core,
+
+  # dependencies
+  markupsafe,
+
+  # optional-dependencies
+  watchdog,
+
+  # tests
+  cryptography,
+  ephemeral-port-reserve,
+  greenlet,
+  pytest-timeout,
+  pytest-xprocess,
+  pytestCheckHook,
+
+  # reverse dependencies
+  moto,
+  sentry-sdk,
 }:
 
 buildPythonPackage rec {
   pname = "werkzeug";
-  version = "3.0.2";
+  version = "3.0.3";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-45tkWmrJKCJYjns5ppLngockzq4LDXAu+WcB+Q5wEo0=";
+    hash = "sha256-CX5b/anwq6jaa4VFFG3vSB0Gqn0yZudEjizM9n3YvRg=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
-  propagatedBuildInputs = [
-    markupsafe
-  ];
+  propagatedBuildInputs = [ markupsafe ];
 
   passthru.optional-dependencies = {
     watchdog = lib.optionals (!stdenv.isDarwin) [
@@ -53,19 +50,20 @@ buildPythonPackage rec {
     ];
   };
 
-  nativeCheckInputs = [
-    cryptography
-    ephemeral-port-reserve
-    pytest-timeout
-    pytest-xprocess
-    pytestCheckHook
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    greenlet
-  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
-
-  disabledTests = lib.optionals stdenv.isDarwin [
-    "test_get_machine_id"
-  ];
+  nativeCheckInputs =
+    [
+      cryptography
+      ephemeral-port-reserve
+      pytest-timeout
+      pytest-xprocess
+      pytestCheckHook
+    ]
+    ++ lib.optionals (pythonOlder "3.11") [ greenlet ]
+    ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+
+  pythonImportsCheck = [ "werkzeug" ];
+
+  disabledTests = lib.optionals stdenv.isDarwin [ "test_get_machine_id" ];
 
   disabledTestPaths = [
     # ConnectionRefusedError: [Errno 111] Connection refused
@@ -82,17 +80,19 @@ buildPythonPackage rec {
     inherit moto sentry-sdk;
   };
 
-  meta = with lib; {
-    changelog = "https://werkzeug.palletsprojects.com/en/${versions.majorMinor version}.x/changes/#version-${replaceStrings [ "." ] [ "-" ] version}";
+  meta = {
+    changelog = "https://werkzeug.palletsprojects.com/en/${lib.versions.majorMinor version}.x/changes/#version-${
+      lib.replaceStrings [ "." ] [ "-" ] version
+    }";
     homepage = "https://palletsprojects.com/p/werkzeug/";
-    description = "The comprehensive WSGI web application library";
+    description = "Comprehensive WSGI web application library";
     longDescription = ''
       Werkzeug is a comprehensive WSGI web application library. It
       began as a simple collection of various utilities for WSGI
       applications and has become one of the most advanced WSGI
       utility libraries.
     '';
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    license = lib.licenses.bsd3;
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/west/default.nix b/pkgs/development/python-modules/west/default.nix
index 55ad178d0b38e..e644d156edb05 100644
--- a/pkgs/development/python-modules/west/default.nix
+++ b/pkgs/development/python-modules/west/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, colorama
-, configobj
-, fetchPypi
-, packaging
-, pykwalify
-, pythonOlder
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  colorama,
+  configobj,
+  fetchPypi,
+  packaging,
+  pykwalify,
+  pythonOlder,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
   # tests run under 'tox' and have west try to git clone repos (not sandboxable)
   doCheck = false;
 
-  pythonImportsCheck = [
-    "west"
-  ];
+  pythonImportsCheck = [ "west" ];
 
   meta = with lib; {
     description = "Zephyr RTOS meta tool";
diff --git a/pkgs/development/python-modules/wfuzz/default.nix b/pkgs/development/python-modules/wfuzz/default.nix
index 1bc512398bd05..8c46f47ffdaf3 100644
--- a/pkgs/development/python-modules/wfuzz/default.nix
+++ b/pkgs/development/python-modules/wfuzz/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, chardet
-, colorama
-, fetchFromGitHub
-, netaddr
-, pycurl
-, pyparsing
-, pytest
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, six
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  chardet,
+  colorama,
+  fetchFromGitHub,
+  netaddr,
+  pycurl,
+  pyparsing,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -39,9 +40,7 @@ buildPythonPackage rec {
     six
     setuptools
     pyparsing
-  ] ++ lib.optionals stdenv.hostPlatform.isWindows [
-    colorama
-  ];
+  ] ++ lib.optionals stdenv.hostPlatform.isWindows [ colorama ];
 
   nativeCheckInputs = [
     netaddr
@@ -59,9 +58,7 @@ buildPythonPackage rec {
     "tests/acceptance/test_saved_filter.py"
   ];
 
-  pythonImportsCheck = [
-    "wfuzz"
-  ];
+  pythonImportsCheck = [ "wfuzz" ];
 
   postInstall = ''
     mkdir -p $out/share/wordlists/wfuzz
diff --git a/pkgs/development/python-modules/wget/default.nix b/pkgs/development/python-modules/wget/default.nix
index 394afc50d41b9..344592152e9a2 100644
--- a/pkgs/development/python-modules/wget/default.nix
+++ b/pkgs/development/python-modules/wget/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/whatthepatch/default.nix b/pkgs/development/python-modules/whatthepatch/default.nix
index b2379a82006eb..1db5e385768c5 100644
--- a/pkgs/development/python-modules/whatthepatch/default.nix
+++ b/pkgs/development/python-modules/whatthepatch/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, setuptools
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-1+OIs77Vyx56pgf7VSmi4UsPgkv8qZXFm8L2jK2CTMk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "whatthepatch"
-  ];
+  pythonImportsCheck = [ "whatthepatch" ];
 
   meta = with lib; {
     description = "Python library for both parsing and applying patch files";
diff --git a/pkgs/development/python-modules/wheel-filename/default.nix b/pkgs/development/python-modules/wheel-filename/default.nix
index fd1ec9d946a22..81a391a790938 100644
--- a/pkgs/development/python-modules/wheel-filename/default.nix
+++ b/pkgs/development/python-modules/wheel-filename/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  wheel,
 }:
 
 buildPythonPackage rec {
@@ -35,18 +36,14 @@ buildPythonPackage rec {
     wheel
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace tox.ini \
       --replace " --cov=wheel_filename --no-cov-on-fail" ""
   '';
 
-  pythonImportsCheck = [
-    "wheel_filename"
-  ];
+  pythonImportsCheck = [ "wheel_filename" ];
 
   meta = with lib; {
     description = "Parse wheel filenames";
diff --git a/pkgs/development/python-modules/wheel-inspect/default.nix b/pkgs/development/python-modules/wheel-inspect/default.nix
index bf2ff4ece67b0..43b5f8dbedd5e 100644
--- a/pkgs/development/python-modules/wheel-inspect/default.nix
+++ b/pkgs/development/python-modules/wheel-inspect/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, attrs
-, buildPythonPackage
-, entry-points-txt
-, fetchFromGitHub
-, hatchling
-, headerparser
-, jsonschema
-, pythonRelaxDepsHook
-, packaging
-, pytestCheckHook
-, pythonOlder
-, readme-renderer
-, wheel-filename
+{
+  lib,
+  attrs,
+  buildPythonPackage,
+  entry-points-txt,
+  fetchFromGitHub,
+  hatchling,
+  headerparser,
+  jsonschema,
+  packaging,
+  pytestCheckHook,
+  pythonOlder,
+  readme-renderer,
+  setuptools,
+  wheel-filename,
 }:
 
 buildPythonPackage rec {
@@ -40,7 +41,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     hatchling
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -52,14 +52,14 @@ buildPythonPackage rec {
     wheel-filename
   ];
 
-  nativeCheckInputs = [
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  checkInputs = [
+    setuptools
     jsonschema
-    pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "wheel_inspect"
-  ];
+  pythonImportsCheck = [ "wheel_inspect" ];
 
   pytestFlagsArray = [
     "-W"
diff --git a/pkgs/development/python-modules/wheel/default.nix b/pkgs/development/python-modules/wheel/default.nix
index 14339d2056f3c..754223e49adf6 100644
--- a/pkgs/development/python-modules/wheel/default.nix
+++ b/pkgs/development/python-modules/wheel/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, flit-core
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
 }:
 
 buildPythonPackage rec {
   pname = "wheel";
-  version = "0.42.0";
+  version = "0.43.0";
   format = "pyproject";
 
   src = fetchFromGitHub {
     owner = "pypa";
     repo = pname;
     rev = "refs/tags/${version}";
-    hash = "sha256-WML3/gAK1R9DEeRVZWeO0VRFuNVKP52i5I5mYV6vQcI=";
+    hash = "sha256-cATYN7GtS1l3GxcqBl95RsBTuszWoFB9CtuRgUSL0/A=";
     postFetch = ''
       cd $out
       mv tests/testdata/unicode.dist/unicodedist/åäö_日本語.py \
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     '';
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   # No tests in archive
   doCheck = false;
@@ -33,7 +32,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/pypa/wheel";
-    description = "A built-package format for Python";
+    description = "Built-package format for Python";
     mainProgram = "wheel";
     longDescription = ''
       This library is the reference implementation of the Python wheel packaging standard,
diff --git a/pkgs/development/python-modules/wheezy-captcha/default.nix b/pkgs/development/python-modules/wheezy-captcha/default.nix
index fc0701704d794..4582ce93a6b4b 100644
--- a/pkgs/development/python-modules/wheezy-captcha/default.nix
+++ b/pkgs/development/python-modules/wheezy-captcha/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pillow
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pillow,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://wheezycaptcha.readthedocs.io/en/latest/";
-    description = "A lightweight CAPTCHA library";
+    description = "Lightweight CAPTCHA library";
     license = licenses.mit;
     maintainers = with maintainers; [ Flakebi ];
   };
diff --git a/pkgs/development/python-modules/wheezy-template/default.nix b/pkgs/development/python-modules/wheezy-template/default.nix
index 53a0bf2867d09..506f909afac77 100644
--- a/pkgs/development/python-modules/wheezy-template/default.nix
+++ b/pkgs/development/python-modules/wheezy-template/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -16,7 +17,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://wheezytemplate.readthedocs.io/en/latest/";
-    description = "A lightweight template library";
+    description = "Lightweight template library";
     mainProgram = "wheezy.template";
     license = licenses.mit;
     maintainers = with maintainers; [ lilyinstarlight ];
diff --git a/pkgs/development/python-modules/whenever/default.nix b/pkgs/development/python-modules/whenever/default.nix
index cb72e8b0aa426..00fbeb703bf6e 100644
--- a/pkgs/development/python-modules/whenever/default.nix
+++ b/pkgs/development/python-modules/whenever/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, fetchFromGitHub
-, pythonOlder
-, buildPythonPackage
-, poetry-core
-, backports-zoneinfo
-, tzdata
-, pytestCheckHook
-, pytest-mypy-plugins
-, hypothesis
-, freezegun
+{
+  lib,
+  fetchFromGitHub,
+  pythonOlder,
+  buildPythonPackage,
+  poetry-core,
+  backports-zoneinfo,
+  tzdata,
+  pytestCheckHook,
+  pytest-mypy-plugins,
+  hypothesis,
+  freezegun,
 }:
 
 buildPythonPackage rec {
@@ -31,15 +32,9 @@ buildPythonPackage rec {
       --replace-fail '--benchmark-disable' '#--benchmark-disable'
   '';
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  dependencies = [
-    tzdata
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    backports-zoneinfo
-  ];
+  dependencies = [ tzdata ] ++ lib.optionals (pythonOlder "3.9") [ backports-zoneinfo ];
 
   nativeCheckInputs = [
     pytestCheckHook
@@ -48,9 +43,7 @@ buildPythonPackage rec {
     freezegun
   ];
 
-  pythonImportsCheck = [
-    "whenever"
-  ];
+  pythonImportsCheck = [ "whenever" ];
 
   # early TDD, many tests are failing
   # TODO: try enabling on bump
diff --git a/pkgs/development/python-modules/whichcraft/default.nix b/pkgs/development/python-modules/whichcraft/default.nix
index a27b8e1660efe..e2156831dbb2f 100644
--- a/pkgs/development/python-modules/whichcraft/default.nix
+++ b/pkgs/development/python-modules/whichcraft/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchPypi, pytest, glibcLocales }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  glibcLocales,
+}:
 
 buildPythonPackage rec {
   pname = "whichcraft";
@@ -10,7 +16,7 @@ buildPythonPackage rec {
     sha256 = "11yfkzyplizdgndy34vyd5qlmr1n5mxis3a3svxmx8fnccdvknxc";
   };
 
-  LC_ALL="en_US.utf-8";
+  LC_ALL = "en_US.utf-8";
   buildInputs = [ glibcLocales ];
 
   nativeCheckInputs = [ pytest ];
diff --git a/pkgs/development/python-modules/whirlpool-sixth-sense/default.nix b/pkgs/development/python-modules/whirlpool-sixth-sense/default.nix
index b7ee6caf0333b..1a8782fdc4a25 100644
--- a/pkgs/development/python-modules/whirlpool-sixth-sense/default.nix
+++ b/pkgs/development/python-modules/whirlpool-sixth-sense/default.nix
@@ -15,16 +15,16 @@
 
 buildPythonPackage rec {
   pname = "whirlpool-sixth-sense";
-  version = "0.18.8";
+  version = "0.18.9";
   pyproject = true;
 
-  disabled = pythonOlder "3.6";
+  disabled = pythonOlder "3.11";
 
   src = fetchFromGitHub {
     owner = "abmantis";
     repo = "whirlpool-sixth-sense";
     rev = "refs/tags/${version}";
-    hash = "sha256-Nmjw6b1k5M4H23tJxUPPJ3JIkuK5ylqEeFp18cGz9pA=";
+    hash = "sha256-aDvUV83o/yKx15kenDGng5xh3LECLVlLWJlVe/y+1Co=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/whisper/default.nix b/pkgs/development/python-modules/whisper/default.nix
index 28635d04fc1f4..c25ed5598992e 100644
--- a/pkgs/development/python-modules/whisper/default.nix
+++ b/pkgs/development/python-modules/whisper/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, mock
-, six
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  mock,
+  six,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,9 +19,7 @@ buildPythonPackage rec {
     hash = "sha256-CnCbRmI2jc67mTtfupoE1uHtobrAiWoUXbfX8YeEV6A=";
   };
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   nativeCheckInputs = [
     mock
@@ -37,7 +36,10 @@ buildPythonPackage rec {
   meta = with lib; {
     homepage = "https://github.com/graphite-project/whisper";
     description = "Fixed size round-robin style database";
-    maintainers = with maintainers; [ offline basvandijk ];
+    maintainers = with maintainers; [
+      offline
+      basvandijk
+    ];
     license = licenses.asl20;
   };
 }
diff --git a/pkgs/development/python-modules/whitenoise/default.nix b/pkgs/development/python-modules/whitenoise/default.nix
index 04f9528c8d744..a47c58b1adffa 100644
--- a/pkgs/development/python-modules/whitenoise/default.nix
+++ b/pkgs/development/python-modules/whitenoise/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, brotli
-, buildPythonPackage
-, django
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  brotli,
+  buildPythonPackage,
+  django,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -25,13 +26,9 @@ buildPythonPackage rec {
     hash = "sha256-Z59GjrOL+BPHqBCirg9T4qBOrjiuBng6Q5lTuLQx9ac=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    brotli
-  ];
+  propagatedBuildInputs = [ brotli ];
 
   nativeCheckInputs = [
     django
@@ -51,9 +48,7 @@ buildPythonPackage rec {
     "test_modified"
   ];
 
-  pythonImportsCheck = [
-    "whitenoise"
-  ];
+  pythonImportsCheck = [ "whitenoise" ];
 
   meta = with lib; {
     description = "Library to serve static file for WSGI applications";
diff --git a/pkgs/development/python-modules/whodap/default.nix b/pkgs/development/python-modules/whodap/default.nix
index f6707f9fc3106..b73b2045a9373 100644
--- a/pkgs/development/python-modules/whodap/default.nix
+++ b/pkgs/development/python-modules/whodap/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, httpx
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  httpx,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-kw7bmkpDNb/PK/Q2tSbG+ju0G+6tdSy3RaNDaNOVYnE=";
   };
 
-  propagatedBuildInputs = [
-    httpx
-  ];
+  propagatedBuildInputs = [ httpx ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -35,9 +34,7 @@ buildPythonPackage rec {
     "tests/test_client.py"
   ];
 
-  pythonImportsCheck = [
-    "whodap"
-  ];
+  pythonImportsCheck = [ "whodap" ];
 
   meta = with lib; {
     description = "Python RDAP utility for querying and parsing information about domain names";
diff --git a/pkgs/development/python-modules/whois-api/default.nix b/pkgs/development/python-modules/whois-api/default.nix
index 775fb63356970..0623b4297fb70 100644
--- a/pkgs/development/python-modules/whois-api/default.nix
+++ b/pkgs/development/python-modules/whois-api/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, requests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  requests,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -18,13 +19,9 @@ buildPythonPackage rec {
     hash = "sha256-SeBeJ6k2R53LxHov+8t70geqUosk/yBJQCi6GaVteMM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # all tests touch internet
   doCheck = false;
diff --git a/pkgs/development/python-modules/whois/default.nix b/pkgs/development/python-modules/whois/default.nix
index 9d317c92323fa..9c31e43a59f59 100644
--- a/pkgs/development/python-modules/whois/default.nix
+++ b/pkgs/development/python-modules/whois/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, inetutils
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  inetutils,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-uKAqpxb72fo0DiaChuJvDizq0z/oFSDHWJuK4vuYIzo=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
   propagatedBuildInputs = [
     # whois is needed
@@ -32,9 +31,7 @@ buildPythonPackage rec {
   # Tests require network access
   doCheck = false;
 
-  pythonImportsCheck = [
-    "whois"
-  ];
+  pythonImportsCheck = [ "whois" ];
 
   meta = with lib; {
     description = "Python module/library for retrieving WHOIS information";
diff --git a/pkgs/development/python-modules/whoisdomain/default.nix b/pkgs/development/python-modules/whoisdomain/default.nix
index eb28f68c957ce..f096e6dcf3542 100644
--- a/pkgs/development/python-modules/whoisdomain/default.nix
+++ b/pkgs/development/python-modules/whoisdomain/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, hatchling
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  hatchling,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-nRj/WkYjMZuQoYF+QFIHABlek4DxvvEnOTeFYLHYvZc=";
   };
 
-  nativeBuildInputs = [
-    hatchling
-  ];
+  nativeBuildInputs = [ hatchling ];
 
-  pythonImportsCheck = [
-    "whoisdomain"
-  ];
+  pythonImportsCheck = [ "whoisdomain" ];
 
   # Tests require network access
   doCheck = false;
diff --git a/pkgs/development/python-modules/whoosh/default.nix b/pkgs/development/python-modules/whoosh/default.nix
index 52831486f2b70..fbe8528c0cf28 100644
--- a/pkgs/development/python-modules/whoosh/default.nix
+++ b/pkgs/development/python-modules/whoosh/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-fKVjPb+p4OD6QA0xUaigxL7FO9Ls7cCmdwWxdWXDGoM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # Wrong encoding
   postPatch = ''
@@ -34,13 +31,9 @@ buildPythonPackage rec {
       --replace-fail "[pytest]" "[tool:pytest]"
   '';
 
-  pythonImportsCheck = [
-    "whoosh"
-  ];
+  pythonImportsCheck = [ "whoosh" ];
 
-  disabledTests = [
-    "test_minimize_dfa"
-  ];
+  disabledTests = [ "test_minimize_dfa" ];
 
   meta = with lib; {
     description = "Fast, pure-Python full text indexing, search, and spell checking library";
diff --git a/pkgs/development/python-modules/widgetsnbextension/default.nix b/pkgs/development/python-modules/widgetsnbextension/default.nix
index 1e3ab50118c4c..c0a6665a41ce7 100644
--- a/pkgs/development/python-modules/widgetsnbextension/default.nix
+++ b/pkgs/development/python-modules/widgetsnbextension/default.nix
@@ -1,27 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, jupyter-packaging
-, ipywidgets
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  jupyter-packaging,
+  ipywidgets,
 }:
 
 buildPythonPackage rec {
   pname = "widgetsnbextension";
-  version = "4.0.10";
+  version = "4.0.11";
   pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ZBlsX/O5qRg6jmmaQif7C3AC8lLIFAmOZsTRzQZEaI8=";
+    hash = "sha256-iyKo8ZEL/RiOWW/n/AXcvYfoEMikugEL2z2oZjc5hHQ=";
   };
 
-  nativeBuildInputs = [
-    jupyter-packaging
-  ];
+  nativeBuildInputs = [ jupyter-packaging ];
 
-  pythonImportsCheck = [
-    "widgetsnbextension"
-  ];
+  pythonImportsCheck = [ "widgetsnbextension" ];
 
   # No tests in archive
   doCheck = false;
diff --git a/pkgs/development/python-modules/widlparser/default.nix b/pkgs/development/python-modules/widlparser/default.nix
index fcd1e2fe0f125..688c14a024dc0 100644
--- a/pkgs/development/python-modules/widlparser/default.nix
+++ b/pkgs/development/python-modules/widlparser/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-# build inputs
-, typing-extensions
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  # build inputs
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
@@ -24,9 +25,7 @@ buildPythonPackage rec {
     sed -i -e 's/0.0.0/${version}/' setup.py
   '';
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ typing-extensions ];
 
   pythonImportsCheck = [ "widlparser" ];
 
@@ -34,6 +33,6 @@ buildPythonPackage rec {
     description = "Stand-alone WebIDL Parser in Python";
     homepage = "https://github.com/plinss/widlparser";
     license = licenses.mit;
-    maintainers = [];
+    maintainers = [ ];
   };
 }
diff --git a/pkgs/development/python-modules/wiffi/default.nix b/pkgs/development/python-modules/wiffi/default.nix
index 208265ba9a3bf..60e2e667f7e11 100644
--- a/pkgs/development/python-modules/wiffi/default.nix
+++ b/pkgs/development/python-modules/wiffi/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, aiohttp
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-pnbzJxq8K947Yg54LysPPho6IRKf0cc+szTETgyzFao=";
   };
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "wiffi"
-  ];
+  pythonImportsCheck = [ "wiffi" ];
 
   meta = with lib; {
     description = "Python module to interface with STALL WIFFI devices";
diff --git a/pkgs/development/python-modules/wifi/default.nix b/pkgs/development/python-modules/wifi/default.nix
index 260f7e8a937f3..76d4e7f8190c9 100644
--- a/pkgs/development/python-modules/wifi/default.nix
+++ b/pkgs/development/python-modules/wifi/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pbkdf2
-, pytestCheckHook
-, pythonOlder
-, substituteAll
-, wirelesstools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pbkdf2,
+  pytestCheckHook,
+  pythonOlder,
+  substituteAll,
+  wirelesstools,
 }:
 
 buildPythonPackage rec {
@@ -27,13 +28,9 @@ buildPythonPackage rec {
       --replace "/sbin/iwlist" "${wirelesstools}/bin/iwlist"
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  propagatedBuildInputs = [
-    pbkdf2
-  ];
+  propagatedBuildInputs = [ pbkdf2 ];
 
   pythonImportsCheck = [ "wifi" ];
 
diff --git a/pkgs/development/python-modules/wikipedia-api/default.nix b/pkgs/development/python-modules/wikipedia-api/default.nix
index e8959b078c75b..8d77105e6cceb 100644
--- a/pkgs/development/python-modules/wikipedia-api/default.nix
+++ b/pkgs/development/python-modules/wikipedia-api/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-cmwyQhKbkIpZXkKqqT0X2Lp8OFma2joeb4uxDRPiQe8=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/wikipedia/default.nix b/pkgs/development/python-modules/wikipedia/default.nix
index dce8160e7ff87..93d23d7209a76 100644
--- a/pkgs/development/python-modules/wikipedia/default.nix
+++ b/pkgs/development/python-modules/wikipedia/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, beautifulsoup4
-, requests
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  beautifulsoup4,
+  requests,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,16 +22,12 @@ buildPythonPackage rec {
     requests
   ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [
-    "tests/ '*test.py'"
-  ];
+  unittestFlagsArray = [ "tests/ '*test.py'" ];
 
   meta = with lib; {
-    description = "A Pythonic wrapper for the Wikipedia API";
+    description = "Pythonic wrapper for the Wikipedia API";
     homepage = "https://github.com/goldsmith/Wikipedia";
     changelog = "https://github.com/goldsmith/Wikipedia/blob/master/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/wikipedia2vec/default.nix b/pkgs/development/python-modules/wikipedia2vec/default.nix
index 2e379b9ccb1ef..c682ea2a1c745 100644
--- a/pkgs/development/python-modules/wikipedia2vec/default.nix
+++ b/pkgs/development/python-modules/wikipedia2vec/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, click
-, cython
-, fetchFromGitHub
-, jieba
-, joblib
-, lmdb
-, marisa-trie
-, mwparserfromhell
-, numpy
-, pythonOlder
-, scipy
-, setuptools
-, tqdm
+{
+  lib,
+  buildPythonPackage,
+  click,
+  cython,
+  fetchFromGitHub,
+  jieba,
+  joblib,
+  lmdb,
+  marisa-trie,
+  mwparserfromhell,
+  numpy,
+  pythonOlder,
+  scipy,
+  setuptools,
+  tqdm,
 }:
 
 buildPythonPackage rec {
@@ -51,9 +52,7 @@ buildPythonPackage rec {
     bash cythonize.sh
   '';
 
-  pythonImportsCheck = [
-    "wikipedia2vec"
-  ];
+  pythonImportsCheck = [ "wikipedia2vec" ];
 
   meta = with lib; {
     description = "Tool for learning vector representations of words and entities from Wikipedia";
diff --git a/pkgs/development/python-modules/wikitextparser/default.nix b/pkgs/development/python-modules/wikitextparser/default.nix
index 8b70b6c63ee1b..df3ecfa5e2dcd 100644
--- a/pkgs/development/python-modules/wikitextparser/default.nix
+++ b/pkgs/development/python-modules/wikitextparser/default.nix
@@ -1,11 +1,12 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, flit-core
-, lib
-, setuptools
-, pytestCheckHook
-, regex
-, wcwidth
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  flit-core,
+  lib,
+  setuptools,
+  pytestCheckHook,
+  regex,
+  wcwidth,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-qLctOX0BsKAn2JzfmV2sTLJ/KcNfaJFAjOB3pxd5LQI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     flit-core
@@ -30,15 +29,13 @@ buildPythonPackage rec {
     regex
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "wikitextparser" ];
 
   meta = {
     homepage = "https://github.com/5j9/wikitextparser";
-    description = "A simple parsing tool for MediaWiki's wikitext markup";
+    description = "Simple parsing tool for MediaWiki's wikitext markup";
     changelog = "https://github.com/5j9/wikitextparser/blob/v${version}/CHANGELOG.rst";
     license = lib.licenses.gpl3Only;
     maintainers = with lib.maintainers; [ rapiteanu ];
diff --git a/pkgs/development/python-modules/willow/default.nix b/pkgs/development/python-modules/willow/default.nix
index 2b0058357d88d..f2ab1675d0438 100644
--- a/pkgs/development/python-modules/willow/default.nix
+++ b/pkgs/development/python-modules/willow/default.nix
@@ -1,24 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-
-# build-system
-, flit-core
-
-# dependencies
-, filetype
-, defusedxml
-
-# optional-dependencies
-, pillow-heif
-
-# tests
-, numpy
-, opencv4
-, pillow
-, pytestCheckHook
-, wand
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+
+  # build-system
+  flit-core,
+
+  # dependencies
+  filetype,
+  defusedxml,
+
+  # optional-dependencies
+  pillow-heif,
+
+  # tests
+  numpy,
+  opencv4,
+  pillow,
+  pytestCheckHook,
+  wand,
 }:
 
 buildPythonPackage rec {
@@ -26,8 +26,6 @@ buildPythonPackage rec {
   version = "1.8.0";
   format = "pyproject";
 
-  disabled = pythonOlder "2.7";
-
   src = fetchFromGitHub {
     owner = "wagtail";
     repo = "Willow";
@@ -35,9 +33,9 @@ buildPythonPackage rec {
     hash = "sha256-g9/v56mdo0sJe5Pl/to/R/kXayaKK3qaYbnnPXpFjXE=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
+
+  pythonRelaxDeps = [ "defusedxml" ];
 
   propagatedBuildInputs = [
     filetype
@@ -45,9 +43,7 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    heif = [
-      pillow-heif
-    ];
+    heif = [ pillow-heif ];
   };
 
   nativeCheckInputs = [
@@ -59,10 +55,9 @@ buildPythonPackage rec {
   ] ++ passthru.optional-dependencies.heif;
 
   meta = with lib; {
-    description = "A Python image library that sits on top of Pillow, Wand and OpenCV";
+    description = "Python image library that sits on top of Pillow, Wand and OpenCV";
     homepage = "https://github.com/torchbox/Willow/";
     license = licenses.bsd2;
     maintainers = with maintainers; [ desiderius ];
   };
-
 }
diff --git a/pkgs/development/python-modules/winacl/default.nix b/pkgs/development/python-modules/winacl/default.nix
index ab27147d6519c..3ff55cf32a72b 100644
--- a/pkgs/development/python-modules/winacl/default.nix
+++ b/pkgs/development/python-modules/winacl/default.nix
@@ -1,37 +1,32 @@
-{ lib
-, buildPythonPackage
-, cryptography
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  cryptography,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "winacl";
-  version = "0.1.8";
-  format = "setuptools";
+  version = "0.1.9";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-RCcaMCVi3lFin2jvFUDUDzom57wBc2RrAaZ3nO2tZEw=";
+    hash = "sha256-r3DC7DAXi/njyKHEjCXoeBI1/iwbMhrbRuLyrh+NSqs=";
   };
 
-  propagatedBuildInputs = [
-    cryptography
-  ];
+  build-system = [ setuptools ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "cryptography>=38.0.1" "cryptography"
-  '';
+  dependencies = [ cryptography ];
 
   # Project doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "winacl"
-  ];
+  pythonImportsCheck = [ "winacl" ];
 
   meta = with lib; {
     description = "Python module for ACL/ACE/Security descriptor manipulation";
diff --git a/pkgs/development/python-modules/winsspi/default.nix b/pkgs/development/python-modules/winsspi/default.nix
index d15ce8e261b5a..3008cb6f92f3c 100644
--- a/pkgs/development/python-modules/winsspi/default.nix
+++ b/pkgs/development/python-modules/winsspi/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, minikerberos
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  minikerberos,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-AXC6SJ+iWPGqTmdgoWKEbD8tDUUcg2aD609hO2bdQfM=";
   };
 
-  propagatedBuildInputs = [
-    minikerberos
-  ];
+  propagatedBuildInputs = [ minikerberos ];
 
   # Module doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "winsspi"
-  ];
+  pythonImportsCheck = [ "winsspi" ];
 
   meta = with lib; {
     description = "Python module for ACL/ACE/Security descriptor manipulation";
diff --git a/pkgs/development/python-modules/withings-api/default.nix b/pkgs/development/python-modules/withings-api/default.nix
index 226907f9e95da..0120ac1bc45f6 100644
--- a/pkgs/development/python-modules/withings-api/default.nix
+++ b/pkgs/development/python-modules/withings-api/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, arrow
-, requests-oauthlib
-, typing-extensions
-, pydantic
-, responses
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  arrow,
+  requests-oauthlib,
+  typing-extensions,
+  pydantic,
+  responses,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -31,9 +32,7 @@ buildPythonPackage rec {
       --replace 'addopts = "--capture no --cov ./withings_api --cov-report html:build/coverage_report --cov-report term --cov-report xml:build/coverage.xml"' '''
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     arrow
diff --git a/pkgs/development/python-modules/withings-sync/default.nix b/pkgs/development/python-modules/withings-sync/default.nix
index 6200082bc9fd1..638369a3314eb 100644
--- a/pkgs/development/python-modules/withings-sync/default.nix
+++ b/pkgs/development/python-modules/withings-sync/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, garth
-, lxml
-, python-dotenv
-, pythonOlder
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  garth,
+  lxml,
+  python-dotenv,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-nFYEtQob3x6APWDKCVP5p+qkKmgvXIcmegp/6ZRbDQA=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     garth
@@ -34,9 +33,7 @@ buildPythonPackage rec {
     requests
   ];
 
-  pythonImportsCheck = [
-    "withings_sync"
-  ];
+  pythonImportsCheck = [ "withings_sync" ];
 
   meta = with lib; {
     description = "Synchronisation of Withings weight";
diff --git a/pkgs/development/python-modules/wktutils/default.nix b/pkgs/development/python-modules/wktutils/default.nix
index 549e7f480b080..23529f04a3568 100644
--- a/pkgs/development/python-modules/wktutils/default.nix
+++ b/pkgs/development/python-modules/wktutils/default.nix
@@ -1,25 +1,25 @@
-{ lib
-, buildPythonPackage
-, dateparser
-, defusedxml
-, fetchFromGitHub
-, fiona
-, geomet
-, geopandas
-, kml2geojson
-, pyshp
-, pythonOlder
-, pyyaml
-, regex
-, requests
-, shapely
-, scikit-learn
+{
+  lib,
+  buildPythonPackage,
+  dateparser,
+  defusedxml,
+  fetchFromGitHub,
+  geomet,
+  geopandas,
+  kml2geojson,
+  pyshp,
+  pythonOlder,
+  pyyaml,
+  requests,
+  setuptools-scm,
+  shapely,
+  scikit-learn,
 }:
 
 buildPythonPackage rec {
   pname = "wktutils";
-  version = "1.1.6";
-  format = "setuptools";
+  version = "2.0.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
@@ -27,39 +27,43 @@ buildPythonPackage rec {
     owner = "asfadmin";
     repo = "Discovery-WKTUtils";
     rev = "refs/tags/v${version}";
-    hash = "sha256-PFeIMIFOff9ztdmIP7jcFzKkmhm01G0QnDm20AafUsg=";
+    hash = "sha256-mB+joEZq/aFPcRqFAzPgwG26Wi7WiRCeQeFottk+4Ho=";
   };
 
-  propagatedBuildInputs = [
+  postPatch = ''
+    substituteInPlace pyproject.toml \
+      --replace-fail '"twine",' ""
+  '';
+
+  build-system = [ setuptools-scm ];
+
+  dependencies = [
     dateparser
     defusedxml
-    fiona
     geomet
     geopandas
     kml2geojson
     pyshp
     pyyaml
-    regex
-    requests
     shapely
-    scikit-learn
   ];
 
-  postPatch = ''
-    substituteInPlace setup.py \
-      --replace "sklearn" "scikit-learn"
-  '';
+  passthru.optional-dependencies = {
+    extras = [
+      requests
+      scikit-learn
+    ];
+  };
 
   # Module doesn't have tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "WKTUtils"
-  ];
+  pythonImportsCheck = [ "WKTUtils" ];
 
   meta = with lib; {
     description = "Collection of tools for handling WKTs";
     homepage = "https://github.com/asfadmin/Discovery-WKTUtils";
+    changelog = "https://github.com/asfadmin/Discovery-WKTUtils/blob/v${version}/CHANGELOG.md";
     license = licenses.bsd3;
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/wled/default.nix b/pkgs/development/python-modules/wled/default.nix
index 7d90c554907ca..0836376c679da 100644
--- a/pkgs/development/python-modules/wled/default.nix
+++ b/pkgs/development/python-modules/wled/default.nix
@@ -1,23 +1,26 @@
-{ lib
-, aiohttp
-, awesomeversion
-, backoff
-, buildPythonPackage
-, cachetools
-, fetchFromGitHub
-, poetry-core
-, yarl
-, aresponses
-, pytest-asyncio
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aresponses,
+  awesomeversion,
+  backoff,
+  buildPythonPackage,
+  cachetools,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-asyncio,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  typer,
+  yarl,
+  zeroconf,
 }:
 
 buildPythonPackage rec {
   pname = "wled";
-  version = "0.17.0";
-  format = "pyproject";
+  version = "0.18.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.11";
 
@@ -25,21 +28,19 @@ buildPythonPackage rec {
     owner = "frenck";
     repo = "python-wled";
     rev = "refs/tags/v${version}";
-    hash = "sha256-y32zynkVsn5vWw+BZ6ZRf9zemGOWJMN4yfNQZ0bRpos=";
+    hash = "sha256-0BJgbyDhCPFlHxlEry7Rh/j0nv3D3kRhIqCSW+Irhqk=";
   };
 
   postPatch = ''
     # Upstream doesn't set a version for the pyproject.toml
     substituteInPlace pyproject.toml \
-      --replace "0.0.0" "${version}" \
-      --replace "--cov" ""
+      --replace-fail "0.0.0" "${version}" \
+      --replace-fail "--cov" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     aiohttp
     awesomeversion
     backoff
@@ -47,6 +48,13 @@ buildPythonPackage rec {
     yarl
   ];
 
+  passthru.optional-dependencies = {
+    cli = [
+      typer
+      zeroconf
+    ];
+  };
+
   nativeCheckInputs = [
     aresponses
     pytest-asyncio
@@ -54,9 +62,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "wled"
-  ];
+  pythonImportsCheck = [ "wled" ];
 
   meta = with lib; {
     description = "Asynchronous Python client for WLED";
diff --git a/pkgs/development/python-modules/wn/default.nix b/pkgs/development/python-modules/wn/default.nix
index 5b020a58d393b..822a5740d2dd7 100644
--- a/pkgs/development/python-modules/wn/default.nix
+++ b/pkgs/development/python-modules/wn/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, flit-core
-, requests
-, tomli
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  flit-core,
+  requests,
+  tomli,
 }:
 
 buildPythonPackage rec {
@@ -20,29 +21,23 @@ buildPythonPackage rec {
     hash = "sha256-muYuDmYH9W5j6euDYJMMgzfsxE6eBIhDCqH6P7nFG+Q=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     requests
     tomli
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export HOME=$(mktemp -d)
   '';
 
-  pythonImportsCheck = [
-    "wn"
-  ];
+  pythonImportsCheck = [ "wn" ];
 
   meta = with lib; {
-    description = "A modern, interlingual wordnet interface for Python";
+    description = "Modern, interlingual wordnet interface for Python";
     homepage = "https://github.com/goodmami/wn";
     changelog = "https://github.com/goodmami/wn/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/woob/default.nix b/pkgs/development/python-modules/woob/default.nix
index abc876b388a8b..41450c7e27a88 100644
--- a/pkgs/development/python-modules/woob/default.nix
+++ b/pkgs/development/python-modules/woob/default.nix
@@ -1,24 +1,26 @@
-{ lib
-, babel
-, buildPythonPackage
-, fetchFromGitLab
-, pythonRelaxDepsHook
-, html2text
-, lxml
-, packaging
-, pillow
-, prettytable
-, pycountry
-, pytestCheckHook
-, python-dateutil
-, pythonOlder
-, pyyaml
-, requests
-, rich
-, setuptools
-, testers
-, unidecode
-, woob
+{
+  lib,
+  babel,
+  buildPythonPackage,
+  fetchFromGitLab,
+  fetchpatch,
+  html2text,
+  lxml,
+  packaging,
+  pillow,
+  prettytable,
+  pycountry,
+  pytestCheckHook,
+  python-dateutil,
+  python-jose,
+  pythonOlder,
+  pyyaml,
+  requests,
+  rich,
+  setuptools,
+  testers,
+  unidecode,
+  woob,
 }:
 
 buildPythonPackage rec {
@@ -35,18 +37,24 @@ buildPythonPackage rec {
     hash = "sha256-M9AjV954H1w64YGCVxDEGGSnoEbmocG3zwltob6IW04=";
   };
 
+  patches = [
+    (fetchpatch {
+      name = "no-deprecated-pkg_resources.patch";
+      url = "https://gitlab.com/woob/woob/-/commit/3283c4c1a935cc71acea98b2d8c88bc4bf28f643.patch";
+      hash = "sha256-3bRuv93ivKRxbGr52coO023DlxHZWwUeInXTPqQAeL8=";
+    })
+  ];
+
   nativeBuildInputs = [
     setuptools
-    pythonRelaxDepsHook
   ];
 
-  pythonRelaxDeps = [
-    "packaging"
-  ];
+  pythonRelaxDeps = [ "packaging" ];
 
   propagatedBuildInputs = [
     babel
     python-dateutil
+    python-jose
     html2text
     lxml
     packaging
@@ -59,9 +67,7 @@ buildPythonPackage rec {
     unidecode
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # require networking
@@ -69,9 +75,7 @@ buildPythonPackage rec {
     "test_verify"
   ];
 
-  pythonImportsCheck = [
-    "woob"
-  ];
+  pythonImportsCheck = [ "woob" ];
 
   passthru.tests.version = testers.testVersion {
     package = woob;
diff --git a/pkgs/development/python-modules/woodblock/default.nix b/pkgs/development/python-modules/woodblock/default.nix
index cb0d5bab3df12..12c71c8c55a71 100644
--- a/pkgs/development/python-modules/woodblock/default.nix
+++ b/pkgs/development/python-modules/woodblock/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, click
-, multimethod
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  click,
+  multimethod,
+  numpy,
 }:
 buildPythonPackage rec {
   pname = "woodblock";
@@ -24,12 +25,10 @@ buildPythonPackage rec {
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "woodblock"
-  ];
+  pythonImportsCheck = [ "woodblock" ];
 
   meta = with lib; {
-    description = "A framework to generate file carving test data";
+    description = "Framework to generate file carving test data";
     mainProgram = "woodblock";
     homepage = "https://github.com/fkie-cad/woodblock";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/wordcloud/default.nix b/pkgs/development/python-modules/wordcloud/default.nix
index a2d0fbb684504..4146522d01371 100644
--- a/pkgs/development/python-modules/wordcloud/default.nix
+++ b/pkgs/development/python-modules/wordcloud/default.nix
@@ -1,27 +1,33 @@
-{ lib
-, buildPythonPackage
-, cython
-, fetchFromGitHub
-, matplotlib
-, mock
-, numpy
-, pillow
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  cython,
+  fetchPypi,
+  matplotlib,
+  numpy,
+  pillow,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "wordcloud";
   version = "1.9.3";
-  format = "setuptools";
+
+  pyproject = true;
+
+  build-system = [
+    setuptools
+    setuptools-scm
+  ];
 
   disabled = pythonOlder "3.7";
 
-  src = fetchFromGitHub {
-    owner = "amueller";
-    repo = "word_cloud";
-    rev = "refs/tags/${version}";
-    hash = "sha256-UbryGiu1AW6Razbf4BJIKGKKhG6JOeZUGb1k0w8f8XA=";
+  src = fetchPypi {
+    inherit pname version;
+    hash = "sha256-qapzjWPtZ0pA8Mwxrbg/TKX8GV8Dpq/24BDR9YB9HFg=";
   };
 
   postPatch = ''
@@ -29,28 +35,21 @@ buildPythonPackage rec {
       --replace " --cov --cov-report xml --tb=short" ""
   '';
 
-  nativeBuildInputs = [
-    cython
-  ];
+  nativeBuildInputs = [ cython ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     matplotlib
     numpy
     pillow
   ];
 
-  nativeCheckInputs = [
-    mock
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     cd test
   '';
 
-  pythonImportsCheck = [
-    "wordcloud"
-  ];
+  pythonImportsCheck = [ "wordcloud" ];
 
   disabledTests = [
     # Don't tests CLI
diff --git a/pkgs/development/python-modules/wordfreq/default.nix b/pkgs/development/python-modules/wordfreq/default.nix
index 2b98674fb5759..75c00bfea5fa9 100644
--- a/pkgs/development/python-modules/wordfreq/default.nix
+++ b/pkgs/development/python-modules/wordfreq/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, poetry-core
-, regex
-, langcodes
-, ftfy
-, msgpack
-, mecab-python3
-, jieba
-, pytestCheckHook
-, pythonOlder
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  poetry-core,
+  regex,
+  langcodes,
+  ftfy,
+  msgpack,
+  mecab-python3,
+  jieba,
+  pytestCheckHook,
+  pythonOlder,
+  fetchFromGitHub,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-ANOBbQWLB35Vz6oil6QZDpsNpKHeKUJnDKA5Q9JRVdE=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     regex
@@ -48,8 +47,8 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A library for looking up the frequencies of words in many languages, based on many sources of data";
-    homepage =  "https://github.com/rspeer/wordfreq/";
+    description = "Library for looking up the frequencies of words in many languages, based on many sources of data";
+    homepage = "https://github.com/rspeer/wordfreq/";
     license = licenses.mit;
   };
 }
diff --git a/pkgs/development/python-modules/worldengine/default.nix b/pkgs/development/python-modules/worldengine/default.nix
index aa90798aace2b..a9a5b5153fbd5 100644
--- a/pkgs/development/python-modules/worldengine/default.nix
+++ b/pkgs/development/python-modules/worldengine/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, gdal
-, h5py
-, noise
-, numpy
-, protobuf
-, purepng
-, pyplatec
-, six
-, isPy27
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gdal,
+  h5py,
+  noise,
+  numpy,
+  protobuf,
+  purepng,
+  pyplatec,
+  six,
+  isPy27,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -64,9 +65,7 @@ buildPythonPackage rec {
   doCheck = !isPy27; # google namespace clash
   nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = [
-    "TestSerialization"
-  ];
+  disabledTests = [ "TestSerialization" ];
 
   meta = with lib; {
     broken = true;
diff --git a/pkgs/development/python-modules/wrapio/default.nix b/pkgs/development/python-modules/wrapio/default.nix
index 9227009647d1a..5eda21b852534 100644
--- a/pkgs/development/python-modules/wrapio/default.nix
+++ b/pkgs/development/python-modules/wrapio/default.nix
@@ -1,13 +1,15 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "wrapio";
   version = "2.0.0";
-  format = "setuptools";
+  pyproject = true;
 
   disabled = pythonOlder "3.5";
 
@@ -16,6 +18,8 @@ buildPythonPackage rec {
     hash = "sha256-CUocIbdZ/tJQCxAHzhFpB267ynlXf8Mu+thcRRc0yeg=";
   };
 
+  build-system = [ setuptools ];
+
   doCheck = false;
   pythonImportsCheck = [ "wrapio" ];
 
diff --git a/pkgs/development/python-modules/wrapt/default.nix b/pkgs/development/python-modules/wrapt/default.nix
index 3995e291bc3ad..caaa6d1c995ab 100644
--- a/pkgs/development/python-modules/wrapt/default.nix
+++ b/pkgs/development/python-modules/wrapt/default.nix
@@ -1,15 +1,19 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, sphinxHook
-, sphinx-rtd-theme
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  sphinxHook,
+  sphinx-rtd-theme,
 }:
 
 buildPythonPackage rec {
   pname = "wrapt";
   version = "1.16.0";
-  outputs = [ "out" "doc" ];
+  outputs = [
+    "out"
+    "doc"
+  ];
   format = "setuptools";
 
   src = fetchFromGitHub {
@@ -19,18 +23,14 @@ buildPythonPackage rec {
     hash = "sha256-lVpSriXSvRwAKX4iPOIBvJwhqhKjdrUdGaEG4QoTQyo=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   nativeBuildInputs = [
     sphinxHook
     sphinx-rtd-theme
   ];
 
-  pythonImportsCheck = [
-    "wrapt"
-  ];
+  pythonImportsCheck = [ "wrapt" ];
 
   meta = with lib; {
     description = "Module for decorators, wrappers and monkey patching";
diff --git a/pkgs/development/python-modules/wrf-python/default.nix b/pkgs/development/python-modules/wrf-python/default.nix
index 77d5ea8a4eba2..340f13059e222 100644
--- a/pkgs/development/python-modules/wrf-python/default.nix
+++ b/pkgs/development/python-modules/wrf-python/default.nix
@@ -1,16 +1,17 @@
-{ stdenv
-, lib
-, fetchFromGitHub
-, pythonOlder
-, buildPythonPackage
-, basemap
-, gfortran
-, netcdf4
-, numpy
-, python
-, setuptools
-, xarray
-, wrapt
+{
+  stdenv,
+  lib,
+  fetchFromGitHub,
+  pythonOlder,
+  buildPythonPackage,
+  basemap,
+  gfortran,
+  netcdf4,
+  numpy,
+  python,
+  setuptools,
+  xarray,
+  wrapt,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-4iIs/M9fzGJsnKCDSl09OTUoh7j6REBXuutE5uXFe3k=";
   };
 
-  nativeBuildInputs = [
-    gfortran
-  ];
+  nativeBuildInputs = [ gfortran ];
 
   propagatedBuildInputs = [
     basemap
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     wrapt
   ];
 
-  nativeCheckInputs = [
-    netcdf4
-  ];
+  nativeCheckInputs = [ netcdf4 ];
 
   checkPhase = ''
     runHook preCheck
@@ -50,9 +47,7 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-  pythonImportsCheck = [
-    "wrf"
-  ];
+  pythonImportsCheck = [ "wrf" ];
 
   meta = with lib; {
     description = "WRF postprocessing library for Python";
diff --git a/pkgs/development/python-modules/ws4py/default.nix b/pkgs/development/python-modules/ws4py/default.nix
index 59dab76820c93..fb53253c8c63c 100644
--- a/pkgs/development/python-modules/ws4py/default.nix
+++ b/pkgs/development/python-modules/ws4py/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, cherrypy
-, fetchPypi
-, gevent
-, git
-, mock
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, tornado
+{
+  lib,
+  buildPythonPackage,
+  cherrypy,
+  fetchPypi,
+  gevent,
+  git,
+  mock,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  tornado,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-KdBz1/LgBjc+aoSLHQCVGhEH64HzdClSvpBUKdxaVIM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cherrypy
@@ -39,12 +38,10 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "ws4py"
-  ];
+  pythonImportsCheck = [ "ws4py" ];
 
   meta = with lib; {
-    description = "A WebSocket package for Python";
+    description = "WebSocket package for Python";
     homepage = "https://ws4py.readthedocs.org";
     changelog = "https://github.com/Lawouach/WebSocket-for-Python/blob/${version}/CHANGELOG.md";
     license = licenses.bsd3;
diff --git a/pkgs/development/python-modules/wsdiscovery/default.nix b/pkgs/development/python-modules/wsdiscovery/default.nix
index 784172b7cef42..9d5d1e884cb44 100644
--- a/pkgs/development/python-modules/wsdiscovery/default.nix
+++ b/pkgs/development/python-modules/wsdiscovery/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, mock
-, netifaces
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  mock,
+  netifaces,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -32,9 +33,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "wsdiscovery"
-  ];
+  pythonImportsCheck = [ "wsdiscovery" ];
 
   meta = with lib; {
     description = "WS-Discovery implementation for Python";
diff --git a/pkgs/development/python-modules/wsgi-intercept/default.nix b/pkgs/development/python-modules/wsgi-intercept/default.nix
index fcc8551f72942..c2644e258232d 100644
--- a/pkgs/development/python-modules/wsgi-intercept/default.nix
+++ b/pkgs/development/python-modules/wsgi-intercept/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, six
-, httplib2
-, py
-, pytestCheckHook
-, pythonOlder
-, requests
-, setuptools
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  six,
+  httplib2,
+  py,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
+  urllib3,
 }:
 
 buildPythonPackage rec {
@@ -24,13 +25,9 @@ buildPythonPackage rec {
     hash = "sha256-daA+HQHdtCAC+1a4Ss0qeo7OJe/dIGREoTqfH7z6k0w=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   nativeCheckInputs = [
     httplib2
@@ -49,9 +46,7 @@ buildPythonPackage rec {
     "test_https_no_ssl_verification_not_intercepted"
   ];
 
-  pythonImportsCheck = [
-    "wsgi_intercept"
-  ];
+  pythonImportsCheck = [ "wsgi_intercept" ];
 
   meta = with lib; {
     description = "Module that acts as a WSGI application in place of a real URI for testing";
diff --git a/pkgs/development/python-modules/wsgidav/default.nix b/pkgs/development/python-modules/wsgidav/default.nix
index db7e85e1937e2..c054153230931 100644
--- a/pkgs/development/python-modules/wsgidav/default.nix
+++ b/pkgs/development/python-modules/wsgidav/default.nix
@@ -1,22 +1,23 @@
-{ lib
-, buildPythonPackage
-, cheroot
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, defusedxml
-, jinja2
-, json5
-, python-pam
-, pyyaml
-, requests
-, setuptools
-, webtest
+{
+  lib,
+  buildPythonPackage,
+  cheroot,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  defusedxml,
+  jinja2,
+  json5,
+  python-pam,
+  pyyaml,
+  requests,
+  setuptools,
+  webtest,
 }:
 
 buildPythonPackage rec {
   pname = "wsgidav";
-  version = "4.3.2";
+  version = "4.3.3";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -25,12 +26,12 @@ buildPythonPackage rec {
     owner = "mar10";
     repo = "wsgidav";
     rev = "refs/tags/v${version}";
-    hash = "sha256-93+8h+vRLnspQ/lmdjKYpzSEJSKcqCkB4qRqTuKHNRA=";
+    hash = "sha256-vUqNC7ixpta0s7wRC5ROSKMa/MsgEBu5rr0XNu69FRw=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  __darwinAllowLocalNetworking = true;
+
+  build-system = [ setuptools ];
 
   dependencies = [
     defusedxml
@@ -40,8 +41,6 @@ buildPythonPackage rec {
     pyyaml
   ];
 
-  __darwinAllowLocalNetworking = true;
-
   nativeCheckInputs = [
     cheroot
     pytestCheckHook
@@ -49,9 +48,7 @@ buildPythonPackage rec {
     webtest
   ];
 
-  pythonImportsCheck = [
-    "wsgidav"
-  ];
+  pythonImportsCheck = [ "wsgidav" ];
 
   meta = with lib; {
     description = "Generic and extendable WebDAV server based on WSGI";
diff --git a/pkgs/development/python-modules/wsgiprox/default.nix b/pkgs/development/python-modules/wsgiprox/default.nix
index 2fa81bea6ac47..98bb446f92321 100644
--- a/pkgs/development/python-modules/wsgiprox/default.nix
+++ b/pkgs/development/python-modules/wsgiprox/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, six
-, certauth
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  six,
+  certauth,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/wsgiproxy2/default.nix b/pkgs/development/python-modules/wsgiproxy2/default.nix
index 0f50c6474c597..25c66e98cf6dc 100644
--- a/pkgs/development/python-modules/wsgiproxy2/default.nix
+++ b/pkgs/development/python-modules/wsgiproxy2/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, webob
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  webob,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,16 +20,12 @@ buildPythonPackage rec {
     hash = "sha256-ouofw3cBQzBwSh3Pdtdl7KI2pg/T/z3qoh8zoeiKiSs=";
   };
 
-  propagatedBuildInputs = [
-    webob
-  ];
+  propagatedBuildInputs = [ webob ];
 
   # Circular dependency on webtest
   doCheck = false;
 
-  pythonImportsCheck = [
-    "wsgiproxy"
-  ];
+  pythonImportsCheck = [ "wsgiproxy" ];
 
   meta = with lib; {
     description = "HTTP proxying tools for WSGI apps";
diff --git a/pkgs/development/python-modules/wsgitools/default.nix b/pkgs/development/python-modules/wsgitools/default.nix
index 948f932271c18..83b33529214d3 100644
--- a/pkgs/development/python-modules/wsgitools/default.nix
+++ b/pkgs/development/python-modules/wsgitools/default.nix
@@ -1,21 +1,35 @@
-{lib
-,buildPythonPackage
-,fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  pythonAtLeast,
+  fetchPypi,
+  setuptools,
+  pyasyncore,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "wsgitools";
   version = "0.3.1";
-  format = "setuptools";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "0q6kmrkqf02fgww7z1g9cw8f70fimdzs1bvv9inb7fsk0c3pcf1i";
+    hash = "sha256-MTh2BwNTu7NsTHuvoH+r0YHjEGfphX84f04Ah2eu02A=";
   };
 
+  build-system = [ setuptools ];
+
+  # the built-in asyncore library was removed in python 3.12
+  dependencies = lib.optionals (pythonAtLeast "3.12") [ pyasyncore ];
+
+  pythonImportsCheck = [ "wsgitools" ];
+
+  nativeCheckInputs = [ unittestCheckHook ];
+
   meta = with lib; {
     maintainers = with maintainers; [ clkamp ];
-    description = "A set of tools working with WSGI";
+    description = "Set of tools working with WSGI";
     longDescription = ''
       wsgitools is a set of tools working with WSGI (see PEP 333). It
       includes classes for filtering content, middlewares for caching,
diff --git a/pkgs/development/python-modules/wsme/default.nix b/pkgs/development/python-modules/wsme/default.nix
index 7af0f410969b0..d961eaf9fb35a 100644
--- a/pkgs/development/python-modules/wsme/default.nix
+++ b/pkgs/development/python-modules/wsme/default.nix
@@ -1,24 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonAtLeast
-, pbr
-, setuptools
-, six
-, simplegeneric
-, netaddr
-, pytz
-, webob
-# Test inputs
-, cherrypy
-, flask
-, flask-restful
-, glibcLocales
-, nose
-, pecan
-, sphinx
-, transaction
-, webtest
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonAtLeast,
+  pbr,
+  setuptools,
+  six,
+  simplegeneric,
+  netaddr,
+  pytz,
+  webob,
+  # Test inputs
+  cherrypy,
+  flask,
+  flask-restful,
+  glibcLocales,
+  nose,
+  pecan,
+  sphinx,
+  transaction,
+  webtest,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/wsnsimpy/default.nix b/pkgs/development/python-modules/wsnsimpy/default.nix
index fe5ad78b8a297..37b7b0f41e0a5 100644
--- a/pkgs/development/python-modules/wsnsimpy/default.nix
+++ b/pkgs/development/python-modules/wsnsimpy/default.nix
@@ -1,6 +1,14 @@
-{ buildPythonPackage, fetchPypi, isPy27, lib, setuptools, simpy, tkinter
-# GUI-based visualization of the simulation is optional
-, enableVisualization ? true }:
+{
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  lib,
+  setuptools,
+  simpy,
+  tkinter,
+  # GUI-based visualization of the simulation is optional
+  enableVisualization ? true,
+}:
 
 buildPythonPackage rec {
   pname = "wsnsimpy";
@@ -13,15 +21,16 @@ buildPythonPackage rec {
     sha256 = "1b7fdqwc2v9alfwf2fr0aqr8rf2pb5lpm4anpilmvrh2lhjar4i2";
   };
 
-  propagatedBuildInputs = [ setuptools simpy ]
-    ++ lib.optional enableVisualization tkinter;
+  propagatedBuildInputs = [
+    setuptools
+    simpy
+  ] ++ lib.optional enableVisualization tkinter;
 
   # No test cases are included, thus unittest tries to run the examples, which
   # fail because no DISPLAYs are available.
   doCheck = false;
 
-  pythonImportsCheck = [ "wsnsimpy" ]
-    ++ lib.optional enableVisualization "wsnsimpy.wsnsimpy_tk";
+  pythonImportsCheck = [ "wsnsimpy" ] ++ lib.optional enableVisualization "wsnsimpy.wsnsimpy_tk";
 
   meta = with lib; {
     description = "SimPy-based WSN Simulator";
diff --git a/pkgs/development/python-modules/wsproto/default.nix b/pkgs/development/python-modules/wsproto/default.nix
index b93de0b924f7b..92d7f79082a24 100644
--- a/pkgs/development/python-modules/wsproto/default.nix
+++ b/pkgs/development/python-modules/wsproto/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, h11
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  h11,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/wtf-peewee/default.nix b/pkgs/development/python-modules/wtf-peewee/default.nix
index 33cff8e5ee221..73f5cc14b4018 100644
--- a/pkgs/development/python-modules/wtf-peewee/default.nix
+++ b/pkgs/development/python-modules/wtf-peewee/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, peewee
-, wtforms
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  peewee,
+  wtforms,
+  python,
 }:
 
 buildPythonPackage rec {
@@ -17,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-LQbOWg65rPTSLRVK5vvqmdsRsXaDgcYZ54oqxgpWGRU=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     peewee
diff --git a/pkgs/development/python-modules/wtforms-bootstrap5/default.nix b/pkgs/development/python-modules/wtforms-bootstrap5/default.nix
index 0150dcb2d72ae..280fc791e0b04 100644
--- a/pkgs/development/python-modules/wtforms-bootstrap5/default.nix
+++ b/pkgs/development/python-modules/wtforms-bootstrap5/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, wtforms
-, poetry-core
-, pytestCheckHook
-, lxml
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  wtforms,
+  poetry-core,
+  pytestCheckHook,
+  lxml,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-TJJ3KOeC9JXnxK0YpnfeBNq1KHwaAZ4+t9CXbc+85Ro=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    wtforms
-  ];
+  propagatedBuildInputs = [ wtforms ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/wtforms/default.nix b/pkgs/development/python-modules/wtforms/default.nix
index 9bb47be4a27a1..4712aefbed07a 100644
--- a/pkgs/development/python-modules/wtforms/default.nix
+++ b/pkgs/development/python-modules/wtforms/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 
-# build-system
-, babel
-, hatchling
-, setuptools
+  # build-system
+  babel,
+  hatchling,
+  setuptools,
 
-# dependencies
-, markupsafe
+  # dependencies
+  markupsafe,
 
-# optional-dependencies
-, email-validator
+  # optional-dependencies
+  email-validator,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -38,30 +39,23 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  propagatedBuildInputs = [
-    markupsafe
-  ];
+  propagatedBuildInputs = [ markupsafe ];
 
   passthru.optional-dependencies = {
-    email = [
-      email-validator
-    ];
+    email = [ email-validator ];
   };
 
   nativeCheckInputs = [
     pytestCheckHook
   ] ++ lib.flatten (lib.attrValues passthru.optional-dependencies);
 
-  pythonImportsCheck = [
-    "wtforms"
-  ];
+  pythonImportsCheck = [ "wtforms" ];
 
   meta = with lib; {
-    description = "A flexible forms validation and rendering library for Python";
+    description = "Flexible forms validation and rendering library for Python";
     homepage = "https://github.com/wtforms/wtforms";
     changelog = "https://github.com/wtforms/wtforms/blob/${version}/CHANGES.rst";
     license = licenses.bsd3;
     maintainers = with maintainers; [ bhipple ];
   };
-
 }
diff --git a/pkgs/development/python-modules/wunsen/default.nix b/pkgs/development/python-modules/wunsen/default.nix
index 5fc6ea2d3803e..9f6d12c9f3d48 100644
--- a/pkgs/development/python-modules/wunsen/default.nix
+++ b/pkgs/development/python-modules/wunsen/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-, pythonOlder
+  pythonOlder,
 
-, unittestCheckHook
+  unittestCheckHook,
 
-, hatchling
+  hatchling,
 
-, khanaa
+  khanaa,
 }:
 
 buildPythonPackage rec {
@@ -25,28 +26,24 @@ buildPythonPackage rec {
     hash = "sha256-lMEhtcWG+S3vAz+Y/qDxhaZslsO0pbs5xUn5QgZNs2U=";
   };
 
-  build-system = [
-    hatchling
-  ];
+  build-system = [ hatchling ];
 
-  dependencies = [
-    khanaa
-  ];
+  dependencies = [ khanaa ];
 
-  nativeCheckInputs = [
-    unittestCheckHook
-  ];
+  nativeCheckInputs = [ unittestCheckHook ];
 
-  unittestFlagsArray = [ "-s" "tests" ];
+  unittestFlagsArray = [
+    "-s"
+    "tests"
+  ];
 
   pythonImportsCheck = [ "wunsen" ];
 
-  meta = with lib;
-    {
-      description = "Transliterate/transcribe other languages into Thai Topics";
-      homepage = "https://github.com/cakimpei/wunsen";
-      changelog = "https://github.com/cakimpei/wunsen/releases/tag/v${version}";
-      license = licenses.mit;
-      maintainers = with maintainers; [ vizid ];
-    };
+  meta = with lib; {
+    description = "Transliterate/transcribe other languages into Thai Topics";
+    homepage = "https://github.com/cakimpei/wunsen";
+    changelog = "https://github.com/cakimpei/wunsen/releases/tag/v${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ vizid ];
+  };
 }
diff --git a/pkgs/development/python-modules/wurlitzer/default.nix b/pkgs/development/python-modules/wurlitzer/default.nix
index ee93a2c6454de..9a619ad90460e 100644
--- a/pkgs/development/python-modules/wurlitzer/default.nix
+++ b/pkgs/development/python-modules/wurlitzer/default.nix
@@ -1,33 +1,28 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "wurlitzer";
-  version = "3.0.3";
+  version = "3.1.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-Ik9f5wYYvjhywF393IxFcZHsGHBlRZYnn8we2t6+Pls=";
+    hash = "sha256-v7kUSrnwJIfYArn/idvT+jgtCPc+EtuK3EwvsAzTm9k=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "wurlitzer"
-  ];
+  pythonImportsCheck = [ "wurlitzer" ];
 
-  pytestFlagsArray = [
-    "test.py"
-  ];
+  pytestFlagsArray = [ "test.py" ];
 
   meta = with lib; {
     description = "Capture C-level output in context managers";
diff --git a/pkgs/development/python-modules/wxpython/4.2.nix b/pkgs/development/python-modules/wxpython/4.2.nix
index 70175f58c4497..1ead7d38d20b8 100644
--- a/pkgs/development/python-modules/wxpython/4.2.nix
+++ b/pkgs/development/python-modules/wxpython/4.2.nix
@@ -1,49 +1,50 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, setuptools
-, pythonOlder
-, fetchPypi
-, substituteAll
-
-# build
-, autoPatchelfHook
-, attrdict
-, doxygen
-, pkg-config
-, python
-, sip
-, which
-
-# runtime
-, cairo
-, gst_all_1
-, gtk3
-, libGL
-, libGLU
-, libSM
-, libXinerama
-, libXtst
-, libXxf86vm
-, libglvnd
-, mesa
-, pango
-, SDL
-, webkitgtk
-, wxGTK
-, xorgproto
-
-# propagates
-, numpy
-, pillow
-, six
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  setuptools,
+  pythonAtLeast,
+  fetchPypi,
+  substituteAll,
+
+  # build
+  autoPatchelfHook,
+  attrdict,
+  doxygen,
+  pkg-config,
+  python,
+  sip,
+  which,
+
+  # runtime
+  cairo,
+  gst_all_1,
+  gtk3,
+  libGL,
+  libGLU,
+  libSM,
+  libXinerama,
+  libXtst,
+  libXxf86vm,
+  libglvnd,
+  mesa,
+  pango,
+  SDL,
+  webkitgtk,
+  wxGTK,
+  xorgproto,
+
+  # propagates
+  numpy,
+  pillow,
+  six,
 }:
 
 buildPythonPackage rec {
   pname = "wxpython";
   version = "4.2.1";
   format = "other";
-  disabled = pythonOlder "3.7";
+  disabled = pythonAtLeast "3.12";
 
   src = fetchPypi {
     pname = "wxPython";
@@ -68,27 +69,27 @@ buildPythonPackage rec {
     sip
     which
     wxGTK
-  ] ++ lib.optionals stdenv.isLinux [
-    autoPatchelfHook
-  ];
-
-  buildInputs = [
-    wxGTK
-    SDL
-  ] ++ lib.optionals stdenv.isLinux [
-    gst_all_1.gst-plugins-base
-    gst_all_1.gstreamer
-    libGL
-    libGLU
-    libSM
-    libXinerama
-    libXtst
-    libXxf86vm
-    libglvnd
-    mesa
-    webkitgtk
-    xorgproto
-  ];
+  ] ++ lib.optionals stdenv.isLinux [ autoPatchelfHook ];
+
+  buildInputs =
+    [
+      wxGTK
+      SDL
+    ]
+    ++ lib.optionals stdenv.isLinux [
+      gst_all_1.gst-plugins-base
+      gst_all_1.gstreamer
+      libGL
+      libGLU
+      libSM
+      libXinerama
+      libXtst
+      libXxf86vm
+      libglvnd
+      mesa
+      webkitgtk
+      xorgproto
+    ];
 
   propagatedBuildInputs = [
     numpy
@@ -108,7 +109,6 @@ buildPythonPackage rec {
     runHook postBuild
   '';
 
-
   installPhase = ''
     runHook preInstall
 
@@ -126,7 +126,6 @@ buildPythonPackage rec {
     runHook postCheck
   '';
 
-
   meta = with lib; {
     changelog = "https://github.com/wxWidgets/Phoenix/blob/wxPython-${version}/CHANGES.rst";
     description = "Cross platform GUI toolkit for Python, Phoenix version";
diff --git a/pkgs/development/python-modules/wyoming/default.nix b/pkgs/development/python-modules/wyoming/default.nix
index e711079315803..bc1eb85ab3ba0 100644
--- a/pkgs/development/python-modules/wyoming/default.nix
+++ b/pkgs/development/python-modules/wyoming/default.nix
@@ -1,54 +1,45 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, setuptools
+  # build-system
+  setuptools,
 
-# optional-dependencies
-, zeroconf
+  # optional-dependencies
+  zeroconf,
 
-# tests
-, wyoming-faster-whisper
-, wyoming-openwakeword
-, wyoming-piper
+  # tests
+  wyoming-faster-whisper,
+  wyoming-openwakeword,
+  wyoming-piper,
 }:
 
 buildPythonPackage rec {
   pname = "wyoming";
-  version = "1.5.3";
+  version = "1.5.4";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "rhasspy";
     repo = "wyoming";
     rev = "refs/tags/${version}";
-    hash = "sha256-SOPkvFMjoDQiWVP39+1Cx4fFmPH8wcBhZhaKapdZaeA=";
+    hash = "sha256-gx9IbFkwR5fiFFAZTiQKzBbVBJ/RYz29sztgbvAEeRQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   passthru.optional-dependencies = {
-    zeroconf = [
-      zeroconf
-    ];
+    zeroconf = [ zeroconf ];
   };
 
-  pythonImportsCheck = [
-    "wyoming"
-  ];
+  pythonImportsCheck = [ "wyoming" ];
 
   # no tests
   doCheck = false;
 
   passthru.tests = {
-    inherit
-      wyoming-faster-whisper
-      wyoming-openwakeword
-      wyoming-piper
-    ;
+    inherit wyoming-faster-whisper wyoming-openwakeword wyoming-piper;
   };
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/x-wr-timezone/default.nix b/pkgs/development/python-modules/x-wr-timezone/default.nix
index f71e1c0628690..4d873e9590f5c 100644
--- a/pkgs/development/python-modules/x-wr-timezone/default.nix
+++ b/pkgs/development/python-modules/x-wr-timezone/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, icalendar
-, pytz
-, pytestCheckHook
-, restructuredtext-lint
-, pygments
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  icalendar,
+  pytz,
+  pytestCheckHook,
+  restructuredtext-lint,
+  pygments,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-itqsVYYUcpbKTh0BM6IHk6F9xhB+pAQnnJsnZAVpNL4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     icalendar
diff --git a/pkgs/development/python-modules/x11-hash/default.nix b/pkgs/development/python-modules/x11-hash/default.nix
index 403f1ed3e12f1..907c70080dd33 100644
--- a/pkgs/development/python-modules/x11-hash/default.nix
+++ b/pkgs/development/python-modules/x11-hash/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,16 +17,12 @@ buildPythonPackage rec {
     hash = "sha256-QtzqxEzpVGK48/lvOEr8VtPUYexLdXKD3zGv1VOdWpw=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   # pypi's source doesn't include tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "x11_hash"
-  ];
+  pythonImportsCheck = [ "x11_hash" ];
 
   meta = with lib; {
     description = "Binding for X11 proof of work hashing";
diff --git a/pkgs/development/python-modules/x256/default.nix b/pkgs/development/python-modules/x256/default.nix
index c155b00c51726..69359f1578fde 100644
--- a/pkgs/development/python-modules/x256/default.nix
+++ b/pkgs/development/python-modules/x256/default.nix
@@ -1,4 +1,7 @@
-{ lib, buildPythonPackage, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -20,4 +23,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ Scriptkiddi ];
   };
 }
-
diff --git a/pkgs/development/python-modules/xapian/default.nix b/pkgs/development/python-modules/xapian/default.nix
index 824ce86208394..7524d415c1876 100644
--- a/pkgs/development/python-modules/xapian/default.nix
+++ b/pkgs/development/python-modules/xapian/default.nix
@@ -1,6 +1,10 @@
-{ lib, buildPythonPackage, fetchurl, python
-, sphinx
-, xapian
+{
+  lib,
+  buildPythonPackage,
+  fetchurl,
+  python,
+  sphinx,
+  xapian,
 }:
 
 let
@@ -25,7 +29,10 @@ buildPythonPackage rec {
     export XAPIAN_CONFIG=${xapian}/bin/xapian-config
   '';
 
-  buildInputs = [ sphinx xapian ];
+  buildInputs = [
+    sphinx
+    xapian
+  ];
 
   doCheck = true;
 
diff --git a/pkgs/development/python-modules/xapp/default.nix b/pkgs/development/python-modules/xapp/default.nix
index b5dc4e3e82ea0..631857b89d5b2 100644
--- a/pkgs/development/python-modules/xapp/default.nix
+++ b/pkgs/development/python-modules/xapp/default.nix
@@ -1,29 +1,30 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, python
-, meson
-, ninja
-, psutil
-, pygobject3
-, gtk3
-, gobject-introspection
-, xapp
-, polkit
-, gitUpdater
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  python,
+  meson,
+  ninja,
+  psutil,
+  pygobject3,
+  gtk3,
+  gobject-introspection,
+  xapp,
+  polkit,
+  gitUpdater,
 }:
 
 buildPythonPackage rec {
   pname = "xapp";
-  version = "22";
+  version = "2.4.2";
 
   format = "other";
 
   src = fetchFromGitHub {
     owner = "linuxmint";
     repo = "python-xapp";
-    rev = "refs/tags/master.mint${version}";
-    hash = "sha256-2Gx85y0ARu6EfDYAT9ZL154RH0R1HY78tm3rceODnZU=";
+    rev = version;
+    hash = "sha256-Gbm4YT9ZyrROOAbKz5xYd9J9YG9cUL2Oo6dDCPciaBs=";
   };
 
   nativeBuildInputs = [
@@ -41,27 +42,22 @@ buildPythonPackage rec {
   ];
 
   postPatch = ''
-    substituteInPlace "xapp/os.py" --replace "/usr/bin/pkexec" "${polkit}/bin/pkexec"
-  '';
-
-  postInstall = ''
-    # This is typically set by pipInstallHook/eggInstallHook,
-    # so we have to do so manually when using meson.
-    # https://github.com/NixOS/nixpkgs/issues/175227
-    export PYTHONPATH=$out/${python.sitePackages}:$PYTHONPATH
+    substituteInPlace "xapp/os.py" \
+      --replace-fail "/usr/bin/pkexec" "${polkit}/bin/pkexec"
   '';
 
   doCheck = false;
   pythonImportsCheck = [ "xapp" ];
 
-  passthru.updateScript = gitUpdater {
-    ignoredVersions = "^master.*";
+  passthru = {
+    updateScript = gitUpdater { ignoredVersions = "^master.*"; };
+    skipBulkUpdate = true; # This should be bumped as part of Cinnamon update.
   };
 
   meta = with lib; {
     homepage = "https://github.com/linuxmint/python-xapp";
     description = "Cross-desktop libraries and common resources for python";
-    license = licenses.lgpl2;
+    license = licenses.lgpl2Plus;
     platforms = platforms.linux;
     maintainers = teams.cinnamon.members;
   };
diff --git a/pkgs/development/python-modules/xarray-dataclasses/default.nix b/pkgs/development/python-modules/xarray-dataclasses/default.nix
index aae2cdd7f1d79..09205ea9e1777 100644
--- a/pkgs/development/python-modules/xarray-dataclasses/default.nix
+++ b/pkgs/development/python-modules/xarray-dataclasses/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, poetry-core
-, pytestCheckHook
-, numpy
-, typing-extensions
-, xarray
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  poetry-core,
+  pytestCheckHook,
+  numpy,
+  typing-extensions,
+  xarray,
 }:
 
 buildPythonPackage rec {
   pname = "xarray-dataclasses";
-  version = "1.7.0";
+  version = "1.8.0";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -20,13 +21,15 @@ buildPythonPackage rec {
     owner = "astropenguin";
     repo = "xarray-dataclasses";
     rev = "refs/tags/v${version}";
-    hash = "sha256-fyRUH6t2+9tsxRQFfJR2EHinYtwCmWeCB77kpmBgdBA=";
+    hash = "sha256-NZBWq1G63yef6h9TjRBfCqPzhaks0Cm7bUCJfIIpmcE=";
   };
 
   nativeBuildInputs = [
     poetry-core
   ];
 
+  pythonRelaxDeps = [ "xarray" ];
+
   propagatedBuildInputs = [
     numpy
     typing-extensions
diff --git a/pkgs/development/python-modules/xarray-einstats/default.nix b/pkgs/development/python-modules/xarray-einstats/default.nix
index bcc29200f5e2c..5d5486dbffed4 100644
--- a/pkgs/development/python-modules/xarray-einstats/default.nix
+++ b/pkgs/development/python-modules/xarray-einstats/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, einops
-, fetchFromGitHub
-, flit-core
-, numba
-, numpy
-, pandas
-, pytestCheckHook
-, pythonOlder
-, scipy
-, xarray
+{
+  lib,
+  buildPythonPackage,
+  einops,
+  fetchFromGitHub,
+  flit-core,
+  numba,
+  numpy,
+  pandas,
+  pytestCheckHook,
+  pythonOlder,
+  scipy,
+  xarray,
 }:
 
 buildPythonPackage rec {
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     hash = "sha256-aljjwgBJp341aQN3g1PoZPj+46x21Eu+svG1yzURhJE=";
   };
 
-  nativeBuildInputs = [
-    flit-core
-  ];
+  nativeBuildInputs = [ flit-core ];
 
   propagatedBuildInputs = [
     numpy
@@ -42,9 +41,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "xarray_einstats"
-  ];
+  pythonImportsCheck = [ "xarray_einstats" ];
 
   meta = with lib; {
     description = "Stats, linear algebra and einops for xarray";
diff --git a/pkgs/development/python-modules/xarray/default.nix b/pkgs/development/python-modules/xarray/default.nix
index ad904dd6e60ba..9ea50cdae1572 100644
--- a/pkgs/development/python-modules/xarray/default.nix
+++ b/pkgs/development/python-modules/xarray/default.nix
@@ -1,26 +1,27 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, flaky
-, numpy
-, packaging
-, pandas
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  flaky,
+  numpy,
+  packaging,
+  pandas,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "xarray";
-  version = "2024.2.0";
+  version = "2024.6.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-oQXwJ5EILIiOviYiCQvq/y57aFcUiNYv5q/as1tLcX8=";
+    hash = "sha256-C5HgvE3AKWlHlHZA/jHsboZ84ljS98vBC+30ptaDQMc=";
   };
 
   nativeBuildInputs = [
@@ -39,14 +40,12 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray =[
+  pytestFlagsArray = [
     # ModuleNotFoundError: No module named 'xarray.datatree_'
     "--ignore xarray/tests/datatree"
   ];
 
-  pythonImportsCheck = [
-    "xarray"
-  ];
+  pythonImportsCheck = [ "xarray" ];
 
   meta = with lib; {
     description = "N-D labeled arrays and datasets in Python";
diff --git a/pkgs/development/python-modules/xattr/default.nix b/pkgs/development/python-modules/xattr/default.nix
index 6d24e5dffc8f1..e700a0a80d64b 100644
--- a/pkgs/development/python-modules/xattr/default.nix
+++ b/pkgs/development/python-modules/xattr/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, cffi
-, setuptools
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  cffi,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,17 +28,13 @@ buildPythonPackage rec {
   # https://github.com/xattr/xattr/issues/43
   doCheck = false;
 
-  propagatedBuildInputs = [
-    cffi
-  ];
+  propagatedBuildInputs = [ cffi ];
 
   postBuild = ''
     ${python.pythonOnBuildForHost.interpreter} -m compileall -f xattr
   '';
 
-  pythonImportsCheck = [
-    "xattr"
-  ];
+  pythonImportsCheck = [ "xattr" ];
 
   meta = with lib; {
     description = "Python wrapper for extended filesystem attributes";
diff --git a/pkgs/development/python-modules/xbox-webapi/default.nix b/pkgs/development/python-modules/xbox-webapi/default.nix
index c5180c1f15c0d..931d0be5748c7 100644
--- a/pkgs/development/python-modules/xbox-webapi/default.nix
+++ b/pkgs/development/python-modules/xbox-webapi/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, appdirs
-, ecdsa
-, httpx
-, ms-cv
-, pydantic
-, pytest-asyncio
-, pytestCheckHook
-, respx
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  appdirs,
+  ecdsa,
+  httpx,
+  ms-cv,
+  pydantic,
+  pytest-asyncio,
+  pytestCheckHook,
+  respx,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-9A3gdSlRjBCx5fBW+jkaSWsFuGieXQKvbEbZzGzLf94=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     appdirs
diff --git a/pkgs/development/python-modules/xboxapi/default.nix b/pkgs/development/python-modules/xboxapi/default.nix
index e0bb1614e3399..b100259cea6b9 100644
--- a/pkgs/development/python-modules/xboxapi/default.nix
+++ b/pkgs/development/python-modules/xboxapi/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/xcffib/default.nix b/pkgs/development/python-modules/xcffib/default.nix
index b0b00da0dc320..63e96858b658f 100644
--- a/pkgs/development/python-modules/xcffib/default.nix
+++ b/pkgs/development/python-modules/xcffib/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, cffi
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
-, xorg
+{
+  lib,
+  buildPythonPackage,
+  cffi,
+  fetchPypi,
+  pytestCheckHook,
+  pythonOlder,
+  xorg,
 }:
 
 buildPythonPackage rec {
@@ -24,18 +25,14 @@ buildPythonPackage rec {
     sed -e 's,ffi\.dlopen(,&"${xorg.libxcb.out}/lib/" + ,' -i xcffib/__init__.py
   '';
 
-  propagatedNativeBuildInputs = [
-    cffi
-  ];
+  propagatedNativeBuildInputs = [ cffi ];
 
-  propagatedBuildInputs = [
-    cffi
-  ];
+  propagatedBuildInputs = [ cffi ];
 
   nativeCheckInputs = [
     pytestCheckHook
     xorg.xeyes
-    xorg.xorgserver
+    xorg.xvfb
   ];
 
   preCheck = ''
@@ -43,15 +40,17 @@ buildPythonPackage rec {
     rm -r xcffib
   '';
 
-  pythonImportsCheck = [
-    "xcffib"
-  ];
+  pythonImportsCheck = [ "xcffib" ];
+
+  # Tests use xvfb
+  __darwinAllowLocalNetworking = true;
 
   meta = with lib; {
-    description = "A drop in replacement for xpyb, an XCB python binding";
+    description = "Drop in replacement for xpyb, an XCB python binding";
     homepage = "https://github.com/tych0/xcffib";
     changelog = "https://github.com/tych0/xcffib/releases/tag/v${version}";
     license = licenses.asl20;
+    platforms = platforms.linux ++ platforms.darwin ++ platforms.windows;
     maintainers = with maintainers; [ kamilchm ];
   };
 }
diff --git a/pkgs/development/python-modules/xdg-base-dirs/default.nix b/pkgs/development/python-modules/xdg-base-dirs/default.nix
index b2eb4094c9272..e65785377a579 100644
--- a/pkgs/development/python-modules/xdg-base-dirs/default.nix
+++ b/pkgs/development/python-modules/xdg-base-dirs/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     hash = "sha256-nbdF1tjVqlxwiGW0pySS6HyJbmNuQ7mVdQYfhofO4Dk=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
@@ -34,7 +33,7 @@ buildPythonPackage rec {
   '';
 
   meta = with lib; {
-    description = "An implementation of the XDG Base Directory Specification in Python";
+    description = "Implementation of the XDG Base Directory Specification in Python";
     homepage = "https://github.com/srstevenson/xdg-base-dirs";
     changelog = "https://github.com/srstevenson/xdg-base-dirs/releases/tag/${src.rev}";
     license = licenses.isc;
diff --git a/pkgs/development/python-modules/xdg/default.nix b/pkgs/development/python-modules/xdg/default.nix
index 065f434bd7ee4..ddd0c45512428 100644
--- a/pkgs/development/python-modules/xdg/default.nix
+++ b/pkgs/development/python-modules/xdg/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, clikit
-, poetry-core
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  clikit,
+  poetry-core,
 }:
 
 buildPythonPackage rec {
@@ -22,16 +23,12 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    clikit
-  ];
+  propagatedBuildInputs = [ clikit ];
 
   # sdist has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "xdg"
-  ];
+  pythonImportsCheck = [ "xdg" ];
 
   meta = with lib; {
     description = "XDG Base Directory Specification for Python";
diff --git a/pkgs/development/python-modules/xdis/default.nix b/pkgs/development/python-modules/xdis/default.nix
index 5fda8fce96cce..ebbad75f84088 100644
--- a/pkgs/development/python-modules/xdis/default.nix
+++ b/pkgs/development/python-modules/xdis/default.nix
@@ -1,12 +1,11 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, fetchpatch
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, six
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -28,13 +27,9 @@ buildPythonPackage rec {
     six
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "xdis"
-  ];
+  pythonImportsCheck = [ "xdis" ];
 
   disabledTestPaths = [
     # import file mismatch:
diff --git a/pkgs/development/python-modules/xdoctest/default.nix b/pkgs/development/python-modules/xdoctest/default.nix
index 68eb1a0f426bb..686c6e8b765e5 100644
--- a/pkgs/development/python-modules/xdoctest/default.nix
+++ b/pkgs/development/python-modules/xdoctest/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, setuptools
-, wheel
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  setuptools,
+  wheel,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "xdoctest";
-  version = "1.1.3";
+  version = "1.1.5";
   pyproject = true;
 
   disabled = pythonOlder "3.6";
@@ -18,7 +19,7 @@ buildPythonPackage rec {
     owner = "Erotemic";
     repo = "xdoctest";
     rev = "refs/tags/v${version}";
-    hash = "sha256-MOjT8adJoSxigSG2Gy5gqRfYswjUsgbBOV1ZU0LBDN8=";
+    hash = "sha256-lC4xX5V5iasQdR4tkLEvtMe/OjSp6+A7D2QGX6TFY4E=";
   };
 
   nativeBuildInputs = [
@@ -26,9 +27,7 @@ buildPythonPackage rec {
     wheel
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     export HOME=$TMPDIR
@@ -38,7 +37,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "xdoctest" ];
 
   meta = with lib; {
-    description = "A rewrite of Python's builtin doctest module (with pytest plugin integration) with AST instead of REGEX";
+    description = "Rewrite of Python's builtin doctest module (with pytest plugin integration) with AST instead of REGEX";
     homepage = "https://github.com/Erotemic/xdoctest";
     changelog = "https://github.com/Erotemic/xdoctest/blob/${src.rev}/CHANGELOG.md";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/xdot/default.nix b/pkgs/development/python-modules/xdot/default.nix
index 3cf0564c70a3f..36c6913a70bd7 100644
--- a/pkgs/development/python-modules/xdot/default.nix
+++ b/pkgs/development/python-modules/xdot/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, xvfb-run
-, wrapGAppsHook3
-, gobject-introspection
-, pygobject3
-, graphviz
-, gtk3
-, numpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  xvfb-run,
+  wrapGAppsHook3,
+  gobject-introspection,
+  pygobject3,
+  graphviz,
+  gtk3,
+  numpy,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
     gtk3
     numpy
   ];
-  nativeCheckInputs = [
-    xvfb-run
-  ];
+  nativeCheckInputs = [ xvfb-run ];
 
   dontWrapGApps = true;
   # Arguments to be passed to `makeWrapper`, only used by buildPython*
@@ -55,7 +54,7 @@ buildPythonPackage rec {
   doCheck = true;
 
   meta = with lib; {
-    description = "An interactive viewer for graphs written in Graphviz's dot";
+    description = "Interactive viewer for graphs written in Graphviz's dot";
     mainProgram = "xdot";
     homepage = "https://github.com/jrfonseca/xdot.py";
     license = licenses.lgpl3Plus;
diff --git a/pkgs/development/python-modules/xdxf2html/default.nix b/pkgs/development/python-modules/xdxf2html/default.nix
index 496627c3724f0..4c31e36ff1288 100644
--- a/pkgs/development/python-modules/xdxf2html/default.nix
+++ b/pkgs/development/python-modules/xdxf2html/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 
-, setuptools
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -15,9 +16,7 @@ buildPythonPackage rec {
     hash = "sha256-u2UaEALzD583+hbgwTItQOdGQ6GIhdVy79C2gfJwzlI=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   pythonImportsCheck = [ "xdxf2html" ];
 
diff --git a/pkgs/development/python-modules/xformers/default.nix b/pkgs/development/python-modules/xformers/default.nix
index e0e6e9569ef34..b63270f6f4c55 100644
--- a/pkgs/development/python-modules/xformers/default.nix
+++ b/pkgs/development/python-modules/xformers/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, which
-# runtime dependencies
-, numpy
-, torch
-# check dependencies
-, pytestCheckHook
-, pytest-cov
-# , pytest-mpi
-, pytest-timeout
-# , pytorch-image-models
-, hydra-core
-, fairscale
-, scipy
-, cmake
-, openai-triton
-, networkx
-#, apex
-, einops
-, transformers
-, timm
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  which,
+  # runtime dependencies
+  numpy,
+  torch,
+  # check dependencies
+  pytestCheckHook,
+  pytest-cov,
+  # , pytest-mpi
+  pytest-timeout,
+  # , pytorch-image-models
+  hydra-core,
+  fairscale,
+  scipy,
+  cmake,
+  openai-triton,
+  networkx,
+  #, apex
+  einops,
+  transformers,
+  timm,
 #, flash-attn
 }:
 let
@@ -43,33 +44,34 @@ buildPythonPackage {
     fetchSubmodules = true;
   };
 
-  patches = [
-    ./0001-fix-allow-building-without-git.patch
-  ];
+  patches = [ ./0001-fix-allow-building-without-git.patch ];
 
-  preBuild = ''
-    cat << EOF > ./xformers/version.py
-    # noqa: C801
-    __version__ = "${version}"
-    EOF
-  '' + lib.optionalString cudaSupport ''
-    export CUDA_HOME=${cudaPackages.cuda_nvcc}
-    export TORCH_CUDA_ARCH_LIST="${lib.concatStringsSep ";" cudaCapabilities}"
-  '';
+  preBuild =
+    ''
+      cat << EOF > ./xformers/version.py
+      # noqa: C801
+      __version__ = "${version}"
+      EOF
+    ''
+    + lib.optionalString cudaSupport ''
+      export CUDA_HOME=${cudaPackages.cuda_nvcc}
+      export TORCH_CUDA_ARCH_LIST="${lib.concatStringsSep ";" cudaCapabilities}"
+    '';
 
-  buildInputs = lib.optionals cudaSupport (with cudaPackages; [
-    # flash-attn build
-    cuda_cudart # cuda_runtime_api.h
-    libcusparse.dev # cusparse.h
-    cuda_cccl.dev # nv/target
-    libcublas.dev # cublas_v2.h
-    libcusolver.dev # cusolverDn.h
-    libcurand.dev # curand_kernel.h
-  ]);
+  buildInputs = lib.optionals cudaSupport (
+    with cudaPackages;
+    [
+      # flash-attn build
+      cuda_cudart # cuda_runtime_api.h
+      libcusparse.dev # cusparse.h
+      cuda_cccl.dev # nv/target
+      libcublas.dev # cublas_v2.h
+      libcusolver.dev # cusolverDn.h
+      libcurand.dev # curand_kernel.h
+    ]
+  );
 
-  nativeBuildInputs = [
-    which
-  ];
+  nativeBuildInputs = [ which ];
 
   propagatedBuildInputs = [
     numpy
diff --git a/pkgs/development/python-modules/xgboost/default.nix b/pkgs/development/python-modules/xgboost/default.nix
index 2a65992e048d2..320b1d1d6ab1e 100644
--- a/pkgs/development/python-modules/xgboost/default.nix
+++ b/pkgs/development/python-modules/xgboost/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, cmake
-, numpy
-, scipy
-, hatchling
-, stdenv
-, xgboost
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  cmake,
+  numpy,
+  scipy,
+  hatchling,
+  stdenv,
+  xgboost,
 }:
 
 buildPythonPackage {
@@ -16,16 +17,24 @@ buildPythonPackage {
 
   disabled = pythonOlder "3.8";
 
-  nativeBuildInputs = [ cmake hatchling ];
+  nativeBuildInputs = [
+    cmake
+    hatchling
+  ];
   buildInputs = [ xgboost ];
-  propagatedBuildInputs = [ numpy scipy ];
+  propagatedBuildInputs = [
+    numpy
+    scipy
+  ];
 
   # Override existing logic for locating libxgboost.so which is not appropriate for Nix
-  prePatch = let
-    libPath = "${xgboost}/lib/libxgboost${stdenv.hostPlatform.extensions.sharedLibrary}";
-  in ''
-    echo 'find_lib_path = lambda: ["${libPath}"]' > python-package/xgboost/libpath.py
-  '';
+  prePatch =
+    let
+      libPath = "${xgboost}/lib/libxgboost${stdenv.hostPlatform.extensions.sharedLibrary}";
+    in
+    ''
+      echo 'find_lib_path = lambda: ["${libPath}"]' > python-package/xgboost/libpath.py
+    '';
 
   dontUseCmakeConfigure = true;
 
@@ -38,9 +47,7 @@ buildPythonPackage {
   # and are extremely cpu intensive anyway
   doCheck = false;
 
-  pythonImportsCheck = [
-    "xgboost"
-  ];
+  pythonImportsCheck = [ "xgboost" ];
 
   __darwinAllowLocalNetworking = true;
 }
diff --git a/pkgs/development/python-modules/xhtml2pdf/default.nix b/pkgs/development/python-modules/xhtml2pdf/default.nix
index f223e63c7f0ec..1ab72c73a81be 100644
--- a/pkgs/development/python-modules/xhtml2pdf/default.nix
+++ b/pkgs/development/python-modules/xhtml2pdf/default.nix
@@ -1,20 +1,20 @@
-{ lib
-, arabic-reshaper
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch2
-, html5lib
-, pillow
-, pyhanko
-, pyhanko-certvalidator
-, pypdf
-, pytestCheckHook
-, python-bidi
-, pythonOlder
-, pythonRelaxDepsHook
-, reportlab
-, setuptools
-, svglib
+{
+  lib,
+  arabic-reshaper,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch2,
+  html5lib,
+  pillow,
+  pyhanko,
+  pyhanko-certvalidator,
+  pypdf,
+  pytestCheckHook,
+  python-bidi,
+  pythonOlder,
+  reportlab,
+  setuptools,
+  svglib,
 }:
 
 buildPythonPackage rec {
@@ -41,13 +41,10 @@ buildPythonPackage rec {
   ];
 
   nativeBuildInputs = [
-    pythonRelaxDepsHook
     setuptools
   ];
 
-  pythonRelaxDeps = [
-    "reportlab"
-  ];
+  pythonRelaxDeps = [ "reportlab" ];
 
   propagatedBuildInputs = [
     arabic-reshaper
@@ -61,9 +58,7 @@ buildPythonPackage rec {
     svglib
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   disabledTests = [
     # Tests requires network access
@@ -77,7 +72,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A PDF generator using HTML and CSS";
+    description = "PDF generator using HTML and CSS";
     homepage = "https://github.com/xhtml2pdf/xhtml2pdf";
     changelog = "https://github.com/xhtml2pdf/xhtml2pdf/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/xiaomi-ble/default.nix b/pkgs/development/python-modules/xiaomi-ble/default.nix
index 221346d2c76aa..58150e48995c9 100644
--- a/pkgs/development/python-modules/xiaomi-ble/default.nix
+++ b/pkgs/development/python-modules/xiaomi-ble/default.nix
@@ -1,23 +1,23 @@
-{ lib
-, bleak
-, bleak-retry-connector
-, bluetooth-data-tools
-, bluetooth-sensor-state-data
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, home-assistant-bluetooth
-, poetry-core
-, pycryptodomex
-, pytestCheckHook
-, pythonOlder
-, pythonRelaxDepsHook
-, sensor-state-data
+{
+  lib,
+  bleak,
+  bleak-retry-connector,
+  bluetooth-data-tools,
+  bluetooth-sensor-state-data,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  home-assistant-bluetooth,
+  poetry-core,
+  pycryptodomex,
+  pytestCheckHook,
+  pythonOlder,
+  sensor-state-data,
 }:
 
 buildPythonPackage rec {
   pname = "xiaomi-ble";
-  version = "0.28.0";
+  version = "0.30.0";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -26,7 +26,7 @@ buildPythonPackage rec {
     owner = "Bluetooth-Devices";
     repo = "xiaomi-ble";
     rev = "refs/tags/v${version}";
-    hash = "sha256-Va/fzGDjBR/h1lUN47AixZnDYzEPNXQKTVXILKayhBc=";
+    hash = "sha256-pWTWzw1ZdXnxPERkJUHumBboSIVo0t5HqQFRXC90CpU=";
   };
 
   postPatch = ''
@@ -34,14 +34,10 @@ buildPythonPackage rec {
       --replace-fail " --cov=xiaomi_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  build-system = [
-    poetry-core
-    pythonRelaxDepsHook
-  ];
+  build-system = [ poetry-core ];
 
-  pythonRelaxDeps = [
-    "pycryptodomex"
-  ];
+
+  pythonRelaxDeps = [ "pycryptodomex" ];
 
   dependencies = [
     bleak
@@ -54,13 +50,9 @@ buildPythonPackage rec {
     sensor-state-data
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "xiaomi_ble"
-  ];
+  pythonImportsCheck = [ "xiaomi_ble" ];
 
   meta = with lib; {
     description = "Library for Xiaomi BLE devices";
diff --git a/pkgs/development/python-modules/xkbcommon/default.nix b/pkgs/development/python-modules/xkbcommon/default.nix
index 4e1ef0ea0ef78..a7db6ea5fe523 100644
--- a/pkgs/development/python-modules/xkbcommon/default.nix
+++ b/pkgs/development/python-modules/xkbcommon/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, cffi
-, pkg-config
-, libxkbcommon
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  cffi,
+  pkg-config,
+  libxkbcommon,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/xkcdpass/default.nix b/pkgs/development/python-modules/xkcdpass/default.nix
index 121af2bca29a2..709a26328ac4c 100644
--- a/pkgs/development/python-modules/xkcdpass/default.nix
+++ b/pkgs/development/python-modules/xkcdpass/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, installShellFiles
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  installShellFiles,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,21 +21,13 @@ buildPythonPackage rec {
     hash = "sha256-qU+HG9qHBmjlxl64QpbpOWADYt8swDa5HFyjgVvSktc=";
   };
 
-  nativeBuildInputs = [
-    installShellFiles
-  ];
+  nativeBuildInputs = [ installShellFiles ];
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "xkcdpass"
-  ];
+  pythonImportsCheck = [ "xkcdpass" ];
 
   disabledTests = lib.optionals (pythonAtLeast "3.10") [
     # https://github.com/redacted/XKCD-password-generator/issues/138
diff --git a/pkgs/development/python-modules/xknx/default.nix b/pkgs/development/python-modules/xknx/default.nix
index dc3e1adb1707f..a4c05c70f0c31 100644
--- a/pkgs/development/python-modules/xknx/default.nix
+++ b/pkgs/development/python-modules/xknx/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, cryptography
-, ifaddr
-, pytest-asyncio_0_21
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  cryptography,
+  ifaddr,
+  pytest-asyncio_0_21,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -24,29 +25,21 @@ buildPythonPackage rec {
     hash = "sha256-gajxXIR3lmHsW7258v4z20RilzGfm5KGVrXZwRm74Mk=";
   };
 
-  patches = [
-    ./pytest-asyncio-0.22-compat.patch
-  ];
+  patches = [ ./pytest-asyncio-0.22-compat.patch ];
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cryptography
     ifaddr
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    async-timeout
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
 
   nativeCheckInputs = [
     pytest-asyncio_0_21
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "xknx"
-  ];
+  pythonImportsCheck = [ "xknx" ];
 
   disabledTests = [
     # Test requires network access
diff --git a/pkgs/development/python-modules/xlib/default.nix b/pkgs/development/python-modules/xlib/default.nix
index 92a9c5e402639..28e18a01dce72 100644
--- a/pkgs/development/python-modules/xlib/default.nix
+++ b/pkgs/development/python-modules/xlib/default.nix
@@ -1,14 +1,16 @@
-{ lib, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, six
-, setuptools-scm
-, xorg
-, python
-, mock
-, nose
-, pytestCheckHook
-, util-linux
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  six,
+  setuptools-scm,
+  xorg,
+  python,
+  mock,
+  nose,
+  pytestCheckHook,
+  util-linux,
 }:
 
 buildPythonPackage rec {
@@ -23,17 +25,11 @@ buildPythonPackage rec {
     hash = "sha256-u06OWlMIOUzHOVS4hvm72jGgTSXWUqMvEQd8bTpFog0=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
-  buildInputs = [
-    xorg.libX11
-  ];
+  buildInputs = [ xorg.libX11 ];
 
-  propagatedBuildInputs = [
-    six
-  ];
+  propagatedBuildInputs = [ six ];
 
   doCheck = !stdenv.isDarwin;
 
@@ -43,7 +39,7 @@ buildPythonPackage rec {
     nose
     util-linux
     xorg.xauth
-    xorg.xorgserver
+    xorg.xvfb
   ];
 
   disabledTestPaths = [
@@ -58,5 +54,4 @@ buildPythonPackage rec {
     license = licenses.lgpl21Plus;
     maintainers = with maintainers; [ ];
   };
-
 }
diff --git a/pkgs/development/python-modules/xlrd/default.nix b/pkgs/development/python-modules/xlrd/default.nix
index ce17ca1502ad0..d5a98d170ab52 100644
--- a/pkgs/development/python-modules/xlrd/default.nix
+++ b/pkgs/development/python-modules/xlrd/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     sha256 = "f72f148f54442c6b056bf931dbc34f986fd0c3b0b6b5a58d013c9aef274d0c88";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   # No tests in archive
   doCheck = false;
@@ -27,5 +26,4 @@ buildPythonPackage rec {
     mainProgram = "runxlrd.py";
     license = licenses.bsd0;
   };
-
 }
diff --git a/pkgs/development/python-modules/xlsx2csv/default.nix b/pkgs/development/python-modules/xlsx2csv/default.nix
index 5d4b37342f6ff..272fe740981ee 100644
--- a/pkgs/development/python-modules/xlsx2csv/default.nix
+++ b/pkgs/development/python-modules/xlsx2csv/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, setuptools-scm
-, wheel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  setuptools-scm,
+  wheel,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/xlsxwriter/default.nix b/pkgs/development/python-modules/xlsxwriter/default.nix
index 115993e756bcf..919849730f8e5 100644
--- a/pkgs/development/python-modules/xlsxwriter/default.nix
+++ b/pkgs/development/python-modules/xlsxwriter/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -20,17 +21,11 @@ buildPythonPackage rec {
     hash = "sha256-HLSIKoGBSzU7N/lskVeVbfdOezTloMrwAahJbcnqJrw=";
   };
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "xlsxwriter"
-  ];
+  pythonImportsCheck = [ "xlsxwriter" ];
 
   meta = with lib; {
     description = "Module for creating Excel XLSX files";
diff --git a/pkgs/development/python-modules/xlwt/default.nix b/pkgs/development/python-modules/xlwt/default.nix
index f1e3a2565b6de..b47a5c4e3cddb 100644
--- a/pkgs/development/python-modules/xlwt/default.nix
+++ b/pkgs/development/python-modules/xlwt/default.nix
@@ -1,27 +1,46 @@
-{ buildPythonPackage
-, fetchPypi
-, nose
-, lib
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pynose,
+  setuptools,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
   pname = "xlwt";
   version = "1.3.0";
-  format = "setuptools";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "c59912717a9b28f1a3c2a98fd60741014b06b043936dcecbc113eaaada156c88";
+    hash = "sha256-xZkScXqbKPGjwqmP1gdBAUsGsEOTbc7LwRPqqtoVbIg=";
   };
 
-  nativeCheckInputs = [ nose ];
+  build-system = [ setuptools ];
+
+  nativeCheckInputs = [ pynose ];
+
   checkPhase = ''
+    runHook preCheck
+
     nosetests -v
+
+    runHook postCheck
   '';
 
-  meta = {
+  pythonImportsCheck = [ "xlwt" ];
+
+  meta = with lib; {
     description = "Library to create spreadsheet files compatible with MS";
     homepage = "https://github.com/python-excel/xlwt";
-    license = with lib.licenses; [ bsdOriginal bsd3 lgpl21 ];
+    license = with licenses; [
+      bsdOriginal
+      bsd3
+      lgpl21Plus
+    ];
+    maintainers = with maintainers; [ ];
   };
 }
diff --git a/pkgs/development/python-modules/xmind/default.nix b/pkgs/development/python-modules/xmind/default.nix
index ab12f26a72df4..cd1510b263c58 100644
--- a/pkgs/development/python-modules/xmind/default.nix
+++ b/pkgs/development/python-modules/xmind/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
   # Projec thas no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "xmind"
-  ];
+  pythonImportsCheck = [ "xmind" ];
 
   meta = with lib; {
     description = "Python module to create mindmaps";
diff --git a/pkgs/development/python-modules/xml-marshaller/default.nix b/pkgs/development/python-modules/xml-marshaller/default.nix
index 43e08cae24265..c56cd4e8130df 100644
--- a/pkgs/development/python-modules/xml-marshaller/default.nix
+++ b/pkgs/development/python-modules/xml-marshaller/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-, lxml
-, six
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  lxml,
+  six,
 }:
 
 buildPythonPackage rec {
@@ -16,12 +17,15 @@ buildPythonPackage rec {
     hash = "sha256-QvBALLDD8o5nZQ5Z4bembhadK6jcydWKQpJaSmGqqJM=";
   };
 
-  propagatedBuildInputs = [ lxml six ];
+  propagatedBuildInputs = [
+    lxml
+    six
+  ];
 
   pythonImportsCheck = [ "xml_marshaller" ];
 
   meta = with lib; {
-    description = "This module allows one to marshal simple Python data types into a custom XML format.";
+    description = "This module allows one to marshal simple Python data types into a custom XML format";
     homepage = "https://www.python.org/community/sigs/current/xml-sig/";
     license = licenses.psfl;
     maintainers = with maintainers; [ mazurel ];
diff --git a/pkgs/development/python-modules/xml2rfc/default.nix b/pkgs/development/python-modules/xml2rfc/default.nix
index 7ab5192b6a04a..a2f1191de9a38 100644
--- a/pkgs/development/python-modules/xml2rfc/default.nix
+++ b/pkgs/development/python-modules/xml2rfc/default.nix
@@ -1,28 +1,29 @@
-{ lib
-, appdirs
-, buildPythonPackage
-, configargparse
-, decorator
-, dict2xml
-, fetchFromGitHub
-, google-i18n-address
-, html5lib
-, intervaltree
-, jinja2
-, lxml
-, markupsafe
-, platformdirs
-, pycairo
-, pycountry
-, pyflakes
-, pypdf2
-, pytestCheckHook
-, python-fontconfig
-, pythonOlder
-, pyyaml
-, requests
-, six
-, wcwidth
+{
+  lib,
+  appdirs,
+  buildPythonPackage,
+  configargparse,
+  decorator,
+  dict2xml,
+  fetchFromGitHub,
+  google-i18n-address,
+  html5lib,
+  intervaltree,
+  jinja2,
+  lxml,
+  markupsafe,
+  platformdirs,
+  pycairo,
+  pycountry,
+  pyflakes,
+  pypdf2,
+  pytestCheckHook,
+  python-fontconfig,
+  pythonOlder,
+  pyyaml,
+  requests,
+  six,
+  wcwidth,
 }:
 
 buildPythonPackage rec {
@@ -74,16 +75,14 @@ buildPythonPackage rec {
     python-fontconfig
   ];
 
-   # Requires Noto Serif and Roboto Mono font
+  # Requires Noto Serif and Roboto Mono font
   doCheck = false;
 
   checkPhase = ''
     make tests-no-network
   '';
 
-  pythonImportsCheck = [
-    "xml2rfc"
-  ];
+  pythonImportsCheck = [ "xml2rfc" ];
 
   meta = with lib; {
     description = "Tool generating IETF RFCs and drafts from XML sources";
@@ -93,6 +92,9 @@ buildPythonPackage rec {
     # Well, parts might be considered unfree, if being strict; see:
     # http://metadata.ftp-master.debian.org/changelogs/non-free/x/xml2rfc/xml2rfc_2.9.6-1_copyright
     license = licenses.bsd3;
-    maintainers = with maintainers; [ vcunat yrashk ];
+    maintainers = with maintainers; [
+      vcunat
+      yrashk
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/xmldiff/default.nix b/pkgs/development/python-modules/xmldiff/default.nix
index 6356b9bff3526..6bf2fd9607d66 100644
--- a/pkgs/development/python-modules/xmldiff/default.nix
+++ b/pkgs/development/python-modules/xmldiff/default.nix
@@ -1,36 +1,35 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, lxml
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  lxml,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "xmldiff";
-  version = "2.6.3";
-  format = "setuptools";
+  version = "2.7.0";
+  pyproject = true;
 
-  disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-GbAws/o30fC1xa2a2pBZiEw78sdRxd2PHrTtSc/j/GA=";
+    hash = "sha256-wJELH4ADZt1+xikj5dBuiwahvZEgVpocJ/TyRGucaKI=";
   };
 
-  propagatedBuildInputs = [
+  build-system = [ setuptools ];
+
+  dependencies = [
     lxml
     setuptools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "xmldiff"
-  ];
+  pythonImportsCheck = [ "xmldiff" ];
 
   meta = with lib; {
     description = "Creates diffs of XML files";
diff --git a/pkgs/development/python-modules/xmljson/default.nix b/pkgs/development/python-modules/xmljson/default.nix
index 441a0e571dc2a..3f1e37c9a38e6 100644
--- a/pkgs/development/python-modules/xmljson/default.nix
+++ b/pkgs/development/python-modules/xmljson/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, fetchPypi
-, lib
-, lxml
+{
+  buildPythonPackage,
+  fetchPypi,
+  lib,
+  lxml,
 }:
 
 buildPythonPackage rec {
@@ -14,9 +15,7 @@ buildPythonPackage rec {
     sha256 = "b4158e66aa1e62ee39f7f80eb2fe4f767670ba3c0d5de9804420dc53427fdec8";
   };
 
-  nativeCheckInputs = [
-    lxml
-  ];
+  nativeCheckInputs = [ lxml ];
 
   meta = with lib; {
     description = "Converts XML into dictionary structures and vice-versa";
diff --git a/pkgs/development/python-modules/xmlschema/default.nix b/pkgs/development/python-modules/xmlschema/default.nix
index 61bdd691368fd..8dae783d6a996 100644
--- a/pkgs/development/python-modules/xmlschema/default.nix
+++ b/pkgs/development/python-modules/xmlschema/default.nix
@@ -34,6 +34,13 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
+  disabledTests = [
+    # -file://///filer01/MY_HOME/dev/XMLSCHEMA/test.xsd
+    # +file:////filer01/MY_HOME/dev/XMLSCHEMA/test.xsd
+    "test_normalize_url_slashes"
+    "test_normalize_url_with_base_unc_path"
+  ];
+
   pythonImportsCheck = [ "xmlschema" ];
 
   meta = with lib; {
diff --git a/pkgs/development/python-modules/xmlsec/default.nix b/pkgs/development/python-modules/xmlsec/default.nix
index 28dfd80dcd9d3..229fa81713716 100644
--- a/pkgs/development/python-modules/xmlsec/default.nix
+++ b/pkgs/development/python-modules/xmlsec/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, pytestCheckHook
-, libxslt
-, libxml2
-, libtool
-, pkg-config
-, xmlsec
-, pkgconfig
-, setuptools-scm
-, lxml
-, hypothesis
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  pytestCheckHook,
+  libxslt,
+  libxml2,
+  libtool,
+  pkg-config,
+  xmlsec,
+  pkgconfig,
+  setuptools-scm,
+  lxml,
+  hypothesis,
 }:
 
 buildPythonPackage rec {
@@ -23,13 +24,25 @@ buildPythonPackage rec {
     hash = "sha256-k0+ATy+JW824bx6u4ja2YQE1YO5p7BCNKc3W5fKSotk=";
   };
 
-  nativeBuildInputs = [ pkg-config pkgconfig setuptools-scm ];
+  nativeBuildInputs = [
+    pkg-config
+    pkgconfig
+    setuptools-scm
+  ];
 
-  buildInputs = [ xmlsec libxslt libxml2 libtool ];
+  buildInputs = [
+    xmlsec
+    libxslt
+    libxml2
+    libtool
+  ];
 
   propagatedBuildInputs = [ lxml ];
 
-  nativeCheckInputs = [ pytestCheckHook hypothesis ];
+  nativeCheckInputs = [
+    pytestCheckHook
+    hypothesis
+  ];
 
   disabledTestPaths = [
     # Full git clone required for test_doc_examples
diff --git a/pkgs/development/python-modules/xmltodict/default.nix b/pkgs/development/python-modules/xmltodict/default.nix
index bd4e2cbb0f2d6..9a6142501630d 100644
--- a/pkgs/development/python-modules/xmltodict/default.nix
+++ b/pkgs/development/python-modules/xmltodict/default.nix
@@ -1,24 +1,21 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "xmltodict";
   version = "0.13.0";
   format = "setuptools";
-  disabled = pythonOlder "3.4";
 
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-NBWVpIjj4BqFqdiRHYkS/ZIu3l/sxNzkN+tLbI0DflY=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "xmltodict" ];
 
diff --git a/pkgs/development/python-modules/xmod/default.nix b/pkgs/development/python-modules/xmod/default.nix
index d5ba4bf1a3224..e16652e971f5d 100644
--- a/pkgs/development/python-modules/xmod/default.nix
+++ b/pkgs/development/python-modules/xmod/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,21 +18,13 @@ buildPythonPackage rec {
     hash = "sha256-pfFxtDQ4kaBrx4XzYMQO1vE4dUr2zs8jgGUQUdXB798=";
   };
 
-  build-system = [
-    poetry-core
-  ];
+  build-system = [ poetry-core ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = [
-    "test_partial_function"
-  ];
+  disabledTests = [ "test_partial_function" ];
 
-  pythonImportsCheck = [
-    "xmod"
-  ];
+  pythonImportsCheck = [ "xmod" ];
 
   meta = with lib; {
     description = "Turn any object into a module";
diff --git a/pkgs/development/python-modules/xmodem/default.nix b/pkgs/development/python-modules/xmodem/default.nix
index ea4396d28f30e..44e30abe4ff30 100644
--- a/pkgs/development/python-modules/xmodem/default.nix
+++ b/pkgs/development/python-modules/xmodem/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pytest, which, lrzsz }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytest,
+  which,
+  lrzsz,
+}:
 
 buildPythonPackage rec {
   pname = "xmodem";
@@ -12,7 +19,11 @@ buildPythonPackage rec {
     sha256 = "sha256-kwPA/lYiv6IJSKGRuH13tBofZwp19vebwQniHK7A/i8=";
   };
 
-  nativeCheckInputs = [ pytest which lrzsz ];
+  nativeCheckInputs = [
+    pytest
+    which
+    lrzsz
+  ];
 
   checkPhase = ''
     pytest
diff --git a/pkgs/development/python-modules/xmpppy/default.nix b/pkgs/development/python-modules/xmpppy/default.nix
new file mode 100644
index 0000000000000..648508d354140
--- /dev/null
+++ b/pkgs/development/python-modules/xmpppy/default.nix
@@ -0,0 +1,35 @@
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gitUpdater,
+  six,
+  setuptools,
+}:
+
+buildPythonPackage rec {
+  pname = "xmpppy";
+  version = "0.7.1";
+  pyproject = true;
+
+  src = fetchFromGitHub {
+    owner = "xmpppy";
+    repo = "xmpppy";
+    rev = "refs/tags/${version}";
+    hash = "sha256-SnzIjEWSCdiCtD8bmPTH02JprmZhrABB4HCqtt2RBuk=";
+  };
+
+  dependencies = [ six ];
+
+  build-system = [ setuptools ];
+
+  passthru.updateScript = gitUpdater { };
+
+  meta = with lib; {
+    description = "Python 2/3 implementation of XMPP";
+    homepage = "https://github.com/xmpppy/xmpppy";
+    changelog = "https://github.com/xmpppy/xmpppy/blob/${version}/CHANGES.rst";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ jopejoe1 ];
+  };
+}
diff --git a/pkgs/development/python-modules/xnatpy/default.nix b/pkgs/development/python-modules/xnatpy/default.nix
index 4738f137d427d..bd378229c9d32 100644
--- a/pkgs/development/python-modules/xnatpy/default.nix
+++ b/pkgs/development/python-modules/xnatpy/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, click
-, isodate
-, progressbar2
-, pydicom
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  click,
+  isodate,
+  progressbar2,
+  pydicom,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -40,8 +41,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://xnat.readthedocs.io";
-    description =
-      "A new XNAT client (distinct from pyxnat) that exposes XNAT objects/functions as Python objects/functions";
+    description = "New XNAT client (distinct from pyxnat) that exposes XNAT objects/functions as Python objects/functions";
     changelog = "https://gitlab.com/radiology/infrastructure/xnatpy/-/blob/${version}/CHANGELOG?ref_type=tags";
     license = licenses.asl20;
     maintainers = with maintainers; [ bcdarwin ];
diff --git a/pkgs/development/python-modules/xnd/default.nix b/pkgs/development/python-modules/xnd/default.nix
index 93c2c928f86b6..404069497e976 100644
--- a/pkgs/development/python-modules/xnd/default.nix
+++ b/pkgs/development/python-modules/xnd/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, stdenv
-, fetchpatch
-, buildPythonPackage
-, python
-, ndtypes
-, libndtypes
-, libxnd
-, isPy27
+{
+  lib,
+  stdenv,
+  fetchpatch,
+  buildPythonPackage,
+  python,
+  ndtypes,
+  libndtypes,
+  libxnd,
+  isPy27,
 }:
 
 buildPythonPackage {
@@ -38,12 +39,14 @@ buildPythonPackage {
                 'runtime_library_dirs = ["${libndtypes}/lib", "${libxnd}/lib"]' \
   '';
 
-  postInstall = ''
-    mkdir $out/include
-    cp python/xnd/*.h $out/include
-  '' + lib.optionalString stdenv.isDarwin ''
-    install_name_tool -add_rpath ${libxnd}/lib $out/${python.sitePackages}/xnd/_xnd.*.so
-  '';
+  postInstall =
+    ''
+      mkdir $out/include
+      cp python/xnd/*.h $out/include
+    ''
+    + lib.optionalString stdenv.isDarwin ''
+      install_name_tool -add_rpath ${libxnd}/lib $out/${python.sitePackages}/xnd/_xnd.*.so
+    '';
 
   checkPhase = ''
     pushd python
diff --git a/pkgs/development/python-modules/xpath-expressions/default.nix b/pkgs/development/python-modules/xpath-expressions/default.nix
index 97e5e62b01aaf..56d514db4055c 100644
--- a/pkgs/development/python-modules/xpath-expressions/default.nix
+++ b/pkgs/development/python-modules/xpath-expressions/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, fetchpatch
-, lxml
-, poetry-core
-, pythonOlder
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  fetchpatch,
+  lxml,
+  poetry-core,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   nativeCheckInputs = [
     lxml
diff --git a/pkgs/development/python-modules/xpybutil/default.nix b/pkgs/development/python-modules/xpybutil/default.nix
index 4a3f7681ed582..631cf33a77c27 100644
--- a/pkgs/development/python-modules/xpybutil/default.nix
+++ b/pkgs/development/python-modules/xpybutil/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, fetchFromGitHub, xcffib, pillow }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  xcffib,
+  pillow,
+}:
 
 buildPythonPackage rec {
   pname = "xpybutil";
@@ -14,20 +20,21 @@ buildPythonPackage rec {
   };
 
   # pillow is a dependency in image.py which is not listed in setup.py
-  propagatedBuildInputs = [ pillow xcffib ];
+  propagatedBuildInputs = [
+    pillow
+    xcffib
+  ];
 
   propagatedNativeBuildInputs = [ xcffib ];
 
   # no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "xpybutil"
-  ];
+  pythonImportsCheck = [ "xpybutil" ];
 
   meta = with lib; {
     homepage = "https://github.com/BurntSushi/xpybutil";
-    description = "An incomplete xcb-util port plus some extras";
+    description = "Incomplete xcb-util port plus some extras";
     license = licenses.wtfpl;
     maintainers = with maintainers; [ artturin ];
   };
diff --git a/pkgs/development/python-modules/xrootd/default.nix b/pkgs/development/python-modules/xrootd/default.nix
index d17a56e2f914a..33b42f9f0f350 100644
--- a/pkgs/development/python-modules/xrootd/default.nix
+++ b/pkgs/development/python-modules/xrootd/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, cmake
-, setuptools
-, wheel
-, xrootd
+{
+  lib,
+  buildPythonPackage,
+  cmake,
+  setuptools,
+  wheel,
+  xrootd,
 }:
 
 buildPythonPackage rec {
@@ -20,9 +21,7 @@ buildPythonPackage rec {
     wheel
   ];
 
-  buildInputs = [
-    xrootd
-  ];
+  buildInputs = [ xrootd ];
 
   dontUseCmakeConfigure = true;
 
@@ -32,7 +31,7 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "The XRootD central repository";
+    description = "XRootD central repository";
     homepage = "https://github.com/xrootd/xrootd";
     changelog = "https://github.com/xrootd/xrootd/releases/tag/v${version}";
     license = licenses.gpl3Only;
diff --git a/pkgs/development/python-modules/xsdata/default.nix b/pkgs/development/python-modules/xsdata/default.nix
index b57fff4a94f03..a9a1ed7a5e6df 100644
--- a/pkgs/development/python-modules/xsdata/default.nix
+++ b/pkgs/development/python-modules/xsdata/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, substituteAll
-, ruff
-, click
-, click-default-group
-, docformatter
-, jinja2
-, toposort
-, typing-extensions
-, lxml
-, requests
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  substituteAll,
+  ruff,
+  click,
+  click-default-group,
+  docformatter,
+  jinja2,
+  toposort,
+  typing-extensions,
+  lxml,
+  requests,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -42,13 +43,9 @@ buildPythonPackage rec {
       --replace "--benchmark-skip" ""
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    typing-extensions
-  ];
+  propagatedBuildInputs = [ typing-extensions ];
 
   passthru.optional-dependencies = {
     cli = [
@@ -58,23 +55,17 @@ buildPythonPackage rec {
       jinja2
       toposort
     ];
-    lxml = [
-      lxml
-    ];
-    soap = [
-      requests
-    ];
+    lxml = [ lxml ];
+    soap = [ requests ];
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ] ++ passthru.optional-dependencies.cli
+  nativeCheckInputs =
+    [ pytestCheckHook ]
+    ++ passthru.optional-dependencies.cli
     ++ passthru.optional-dependencies.lxml
     ++ passthru.optional-dependencies.soap;
 
-  disabledTestPaths = [
-    "tests/integration/benchmarks"
-  ];
+  disabledTestPaths = [ "tests/integration/benchmarks" ];
 
   pythonImportsCheck = [
     "xsdata.formats.dataclass.context"
diff --git a/pkgs/development/python-modules/xstatic-asciinema-player/default.nix b/pkgs/development/python-modules/xstatic-asciinema-player/default.nix
index 7651ce57c10d2..187a9c7baf934 100644
--- a/pkgs/development/python-modules/xstatic-asciinema-player/default.nix
+++ b/pkgs/development/python-modules/xstatic-asciinema-player/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/xstatic-bootbox/default.nix b/pkgs/development/python-modules/xstatic-bootbox/default.nix
index 49c0f7d783fb1..419e051889303 100644
--- a/pkgs/development/python-modules/xstatic-bootbox/default.nix
+++ b/pkgs/development/python-modules/xstatic-bootbox/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -16,11 +17,10 @@ buildPythonPackage rec {
   # no tests implemented
   doCheck = false;
 
-  meta = with lib;{
+  meta = with lib; {
     homepage = "http://bootboxjs.com";
     description = "Bootboxjs packaged static files for python";
     license = licenses.mit;
     maintainers = with maintainers; [ makefu ];
   };
-
 }
diff --git a/pkgs/development/python-modules/xstatic-bootstrap/default.nix b/pkgs/development/python-modules/xstatic-bootstrap/default.nix
index 808957f70d149..55e1f68761a00 100644
--- a/pkgs/development/python-modules/xstatic-bootstrap/default.nix
+++ b/pkgs/development/python-modules/xstatic-bootstrap/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -16,11 +17,10 @@ buildPythonPackage rec {
   # no tests implemented
   doCheck = false;
 
-  meta = with lib;{
+  meta = with lib; {
     homepage = "https://getbootstrap.com";
     description = "Bootstrap packaged static files for python";
     license = licenses.mit;
     maintainers = with maintainers; [ makefu ];
   };
-
 }
diff --git a/pkgs/development/python-modules/xstatic-font-awesome/default.nix b/pkgs/development/python-modules/xstatic-font-awesome/default.nix
index 07bce6f3c4c0b..1a8868a84685c 100644
--- a/pkgs/development/python-modules/xstatic-font-awesome/default.nix
+++ b/pkgs/development/python-modules/xstatic-font-awesome/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/xstatic-jquery-file-upload/default.nix b/pkgs/development/python-modules/xstatic-jquery-file-upload/default.nix
index 29ab4f1cb062d..cb5efd7aebb82 100644
--- a/pkgs/development/python-modules/xstatic-jquery-file-upload/default.nix
+++ b/pkgs/development/python-modules/xstatic-jquery-file-upload/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
-, xstatic-jquery
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+  xstatic-jquery,
 }:
 
 buildPythonPackage rec {
@@ -19,11 +20,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ xstatic-jquery ];
 
-  meta = with lib;{
-    homepage =  "https://plugins.jquery.com/project/jQuery-File-Upload";
+  meta = with lib; {
+    homepage = "https://plugins.jquery.com/project/jQuery-File-Upload";
     description = "jquery-file-upload packaged static files for python";
     license = licenses.mit;
     maintainers = with maintainers; [ makefu ];
   };
-
 }
diff --git a/pkgs/development/python-modules/xstatic-jquery-ui/default.nix b/pkgs/development/python-modules/xstatic-jquery-ui/default.nix
index 0f74a49f929c1..9af1d20c0cdb6 100644
--- a/pkgs/development/python-modules/xstatic-jquery-ui/default.nix
+++ b/pkgs/development/python-modules/xstatic-jquery-ui/default.nix
@@ -1,7 +1,8 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
-, xstatic-jquery
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
+  xstatic-jquery,
 }:
 
 buildPythonPackage rec {
@@ -19,11 +20,10 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ xstatic-jquery ];
 
-  meta = with lib;{
+  meta = with lib; {
     homepage = "https://jqueryui.com/";
     description = "jquery-ui packaged static files for python";
     license = licenses.mit;
     maintainers = with maintainers; [ makefu ];
   };
-
 }
diff --git a/pkgs/development/python-modules/xstatic-jquery/default.nix b/pkgs/development/python-modules/xstatic-jquery/default.nix
index bd48c889f3f05..2e3f4b9831a5b 100644
--- a/pkgs/development/python-modules/xstatic-jquery/default.nix
+++ b/pkgs/development/python-modules/xstatic-jquery/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -16,11 +17,10 @@ buildPythonPackage rec {
   # no tests implemented
   doCheck = false;
 
-  meta = with lib;{
-    homepage =  "https://jquery.org";
+  meta = with lib; {
+    homepage = "https://jquery.org";
     description = "jquery packaged static files for python";
     license = licenses.mit;
     maintainers = with maintainers; [ makefu ];
   };
-
 }
diff --git a/pkgs/development/python-modules/xstatic-pygments/default.nix b/pkgs/development/python-modules/xstatic-pygments/default.nix
index 6d8391dcb8aae..39c41f74ced71 100644
--- a/pkgs/development/python-modules/xstatic-pygments/default.nix
+++ b/pkgs/development/python-modules/xstatic-pygments/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -16,11 +17,10 @@ buildPythonPackage rec {
   # no tests implemented
   doCheck = false;
 
-  meta = with lib;{
+  meta = with lib; {
     homepage = "https://pygments.org";
     description = "pygments packaged static files for python";
     license = licenses.mit;
     maintainers = with maintainers; [ makefu ];
   };
-
 }
diff --git a/pkgs/development/python-modules/xstatic/default.nix b/pkgs/development/python-modules/xstatic/default.nix
index 593dd7e9dd9ec..4d6fd00d221cf 100644
--- a/pkgs/development/python-modules/xstatic/default.nix
+++ b/pkgs/development/python-modules/xstatic/default.nix
@@ -1,6 +1,7 @@
-{ buildPythonPackage
-, lib
-, fetchPypi
+{
+  buildPythonPackage,
+  lib,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -16,11 +17,10 @@ buildPythonPackage rec {
   # no tests implemented
   doCheck = false;
 
-  meta = with lib;{
+  meta = with lib; {
     homepage = "https://bitbucket.org/thomaswaldmann/xstatic";
     description = "Base packaged static files for python";
     license = licenses.mit;
     maintainers = with maintainers; [ makefu ];
   };
-
 }
diff --git a/pkgs/development/python-modules/xtensor-python/default.nix b/pkgs/development/python-modules/xtensor-python/default.nix
index 4b2123162cc16..14d063a802d6a 100644
--- a/pkgs/development/python-modules/xtensor-python/default.nix
+++ b/pkgs/development/python-modules/xtensor-python/default.nix
@@ -1,50 +1,49 @@
-{ lib
-, toPythonModule
-, stdenv
-, fetchFromGitHub
-, cmake
-, gtest
-, xtensor
-, pybind11
-, numpy
+{
+  lib,
+  toPythonModule,
+  stdenv,
+  fetchFromGitHub,
+  cmake,
+  gtest,
+  xtensor,
+  pybind11,
+  numpy,
 }:
 
-toPythonModule (stdenv.mkDerivation(finalAttrs: {
-  pname = "xtensor-python";
-  version = "0.26.1";
+toPythonModule (
+  stdenv.mkDerivation (finalAttrs: {
+    pname = "xtensor-python";
+    version = "0.27.0";
 
-  src = fetchFromGitHub {
-    owner = "xtensor-stack";
-    repo = "xtensor-python";
-    rev = finalAttrs.version;
-    sha256 = "sha256-kLFt5Ah5/ZO6wfTZQviVXeIAVok+/F/XCwpgPSagOMo=";
-  };
+    src = fetchFromGitHub {
+      owner = "xtensor-stack";
+      repo = "xtensor-python";
+      rev = finalAttrs.version;
+      hash = "sha256-Cy/aXuiriE/qxSd4Apipzak30DjgE7jX8ai1ThJ/VnE=";
+    };
 
-  nativeBuildInputs = [
-    cmake
-  ];
-  buildInputs = [
-    pybind11
-  ];
-  nativeCheckInputs = [
-    gtest
-  ];
-  doCheck = true;
-  cmakeFlags = [
-    "-DBUILD_TESTS=${if finalAttrs.finalPackage.doCheck then "ON" else "OFF"}"
-  ];
+    nativeBuildInputs = [ cmake ];
+    buildInputs = [ pybind11 ];
+    nativeCheckInputs = [ gtest ];
+    doCheck = true;
+    cmakeFlags = [
+      # Always build the tests, even if not running them, because testing whether
+      # they can be built is a test in itself.
+      "-DBUILD_TESTS=ON"
+    ];
 
-  propagatedBuildInputs = [
-    xtensor
-    numpy
-  ];
+    propagatedBuildInputs = [
+      xtensor
+      numpy
+    ];
 
-  checkTarget = "xtest";
+    checkTarget = "xtest";
 
-  meta = with lib; {
-    homepage = "https://github.com/xtensor-stack/xtensor-python";
-    description = "Python bindings for the xtensor C++ multi-dimensional array library";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ lsix ];
-  };
-}))
+    meta = with lib; {
+      homepage = "https://github.com/xtensor-stack/xtensor-python";
+      description = "Python bindings for the xtensor C++ multi-dimensional array library";
+      license = licenses.bsd3;
+      maintainers = with maintainers; [ lsix ];
+    };
+  })
+)
diff --git a/pkgs/development/python-modules/xvfbwrapper/default.nix b/pkgs/development/python-modules/xvfbwrapper/default.nix
index 6ace2506afd08..148a3de0371b6 100644
--- a/pkgs/development/python-modules/xvfbwrapper/default.nix
+++ b/pkgs/development/python-modules/xvfbwrapper/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, xorgserver
-, mock
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  xorg,
+  mock,
 }:
 
 buildPythonPackage rec {
@@ -14,7 +15,7 @@ buildPythonPackage rec {
     inherit pname version;
     sha256 = "097wxhvp01ikqpg1z3v8rqhss6f1vwr399zpz9a05d2135bsxx5w";
   };
-  propagatedBuildInputs = [ xorgserver ];
+  propagatedBuildInputs = [ xorg.xvfb ];
 
   # See: https://github.com/cgoldberg/xvfbwrapper/issues/30
   doCheck = false;
diff --git a/pkgs/development/python-modules/xxhash/default.nix b/pkgs/development/python-modules/xxhash/default.nix
index 6eb774677bfc8..3108d6f4ef5fc 100644
--- a/pkgs/development/python-modules/xxhash/default.nix
+++ b/pkgs/development/python-modules/xxhash/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-A3nWzx/5h81CFgmiZM4CXnTzRuPhRd0QbAzC4+w/mak=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  pythonImportsCheck = [
-    "xxhash"
-  ];
+  pythonImportsCheck = [ "xxhash" ];
 
   meta = with lib; {
     description = "Python Binding for xxHash";
diff --git a/pkgs/development/python-modules/xyzservices/default.nix b/pkgs/development/python-modules/xyzservices/default.nix
index 6e49ec04eaf33..41c7083520c3d 100644
--- a/pkgs/development/python-modules/xyzservices/default.nix
+++ b/pkgs/development/python-modules/xyzservices/default.nix
@@ -1,21 +1,22 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, mercantile
-, pytestCheckHook
-, requests
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  mercantile,
+  pytestCheckHook,
+  requests,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "xyzservices";
-  version = "2024.4.0";
-  format = "pyproject";
+  version = "2024.6.0";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-agTxFIem+3fZKpiYTNEH+9kVf9XmX5Ka3Zw9bmBO6Iw=";
+    hash = "sha256-WMG9q0JX0lUbnvkc1IVx93t8TSvEW/XjwFrJezpNcoI=";
   };
 
   nativeBuildInputs = [
@@ -23,14 +24,12 @@ buildPythonPackage rec {
     setuptools-scm
   ];
 
-  disabledTests = [
+  pytestFlagsArray = [
     # requires network connections
-    "test_free_providers"
+    "-m 'not request'"
   ];
 
-  pythonImportsCheck = [
-    "xyzservices.providers"
-  ];
+  pythonImportsCheck = [ "xyzservices.providers" ];
 
   nativeCheckInputs = [
     mercantile
@@ -38,11 +37,11 @@ buildPythonPackage rec {
     requests
   ];
 
-  meta = with lib; {
+  meta = {
     changelog = "https://github.com/geopandas/xyzservices/releases/tag/${version}";
     description = "Source of XYZ tiles providers";
     homepage = "https://github.com/geopandas/xyzservices";
-    license = licenses.bsd3;
-    maintainers = with maintainers; [ ];
+    license = lib.licenses.bsd3;
+    maintainers = lib.teams.geospatial.members;
   };
 }
diff --git a/pkgs/development/python-modules/y-py/default.nix b/pkgs/development/python-modules/y-py/default.nix
index 97747ccfdf5b5..7284ceca55a45 100644
--- a/pkgs/development/python-modules/y-py/default.nix
+++ b/pkgs/development/python-modules/y-py/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchPypi
-, rustPlatform
-, cargo
-, rustc
-, libiconv
-, pytestCheckHook
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchPypi,
+  rustPlatform,
+  cargo,
+  rustc,
+  libiconv,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -37,9 +38,7 @@ buildPythonPackage rec {
 
   pythonImportsCheck = [ "y_py" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
     description = "Python bindings for Y-CRDT";
diff --git a/pkgs/development/python-modules/yacs/default.nix b/pkgs/development/python-modules/yacs/default.nix
index de2a27a937977..f3e15c5ce41ef 100644
--- a/pkgs/development/python-modules/yacs/default.nix
+++ b/pkgs/development/python-modules/yacs/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, python
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  python,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/yahooweather/default.nix b/pkgs/development/python-modules/yahooweather/default.nix
index 6f61645b9b22a..1b183d0e8acad 100644
--- a/pkgs/development/python-modules/yahooweather/default.nix
+++ b/pkgs/development/python-modules/yahooweather/default.nix
@@ -1,4 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy3k,
+}:
 
 buildPythonPackage rec {
   pname = "yahooweather";
diff --git a/pkgs/development/python-modules/yalesmartalarmclient/default.nix b/pkgs/development/python-modules/yalesmartalarmclient/default.nix
index c621fa1138e67..e7c02838221c7 100644
--- a/pkgs/development/python-modules/yalesmartalarmclient/default.nix
+++ b/pkgs/development/python-modules/yalesmartalarmclient/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, backoff
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, pythonOlder
+{
+  lib,
+  backoff,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
   # Project has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "yalesmartalarmclient"
-  ];
+  pythonImportsCheck = [ "yalesmartalarmclient" ];
 
   meta = with lib; {
     description = "Python module to interface with Yale Smart Alarm Systems";
diff --git a/pkgs/development/python-modules/yalexs-ble/default.nix b/pkgs/development/python-modules/yalexs-ble/default.nix
index 93a16ea29f9b0..337ffbf114c99 100644
--- a/pkgs/development/python-modules/yalexs-ble/default.nix
+++ b/pkgs/development/python-modules/yalexs-ble/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, async-interrupt
-, async-timeout
-, bleak
-, bleak-retry-connector
-, buildPythonPackage
-, cryptography
-, fetchFromGitHub
-, lru-dict
-, poetry-core
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  async-interrupt,
+  async-timeout,
+  bleak,
+  bleak-retry-connector,
+  buildPythonPackage,
+  cryptography,
+  fetchFromGitHub,
+  lru-dict,
+  poetry-core,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -27,9 +28,7 @@ buildPythonPackage rec {
     hash = "sha256-A/4N3vmFuzg9vaPISs0P3KxRQZSquPpR1zYcYEePkTA=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     async-interrupt
@@ -50,9 +49,7 @@ buildPythonPackage rec {
       --replace " --cov=yalexs_ble --cov-report=term-missing:skip-covered" ""
   '';
 
-  pythonImportsCheck = [
-    "yalexs_ble"
-  ];
+  pythonImportsCheck = [ "yalexs_ble" ];
 
   meta = with lib; {
     description = "Library for Yale BLE devices";
diff --git a/pkgs/development/python-modules/yalexs/default.nix b/pkgs/development/python-modules/yalexs/default.nix
index 0400906ea8832..908b4d4b50b4e 100644
--- a/pkgs/development/python-modules/yalexs/default.nix
+++ b/pkgs/development/python-modules/yalexs/default.nix
@@ -14,12 +14,13 @@
   pythonOlder,
   requests,
   requests-mock,
-  setuptools,
+  poetry-core,
+  typing-extensions,
 }:
 
 buildPythonPackage rec {
   pname = "yalexs";
-  version = "3.0.1";
+  version = "6.4.1";
   pyproject = true;
 
   disabled = pythonOlder "3.9";
@@ -28,16 +29,15 @@ buildPythonPackage rec {
     owner = "bdraco";
     repo = "yalexs";
     rev = "refs/tags/v${version}";
-    hash = "sha256-+FdQQzQhKhIOEnOym2DNT9uQL2uAbfE8tUXUHIFFK2I=";
+    hash = "sha256-lCRil1SeYXZeXT0SJielJg2Ma8voBXPgij+RK/oT1iU=";
   };
 
   postPatch = ''
-    # Not used requirement
-    substituteInPlace setup.py \
-      --replace-fail '"vol",' ""
+    substituteInPlace pyproject.toml \
+      --replace-fail "-v -Wdefault --cov=yalexs --cov-report=term-missing:skip-covered" ""
   '';
 
-  build-system = [ setuptools ];
+  build-system = [ poetry-core ];
 
   dependencies = [
     aiofiles
@@ -47,6 +47,7 @@ buildPythonPackage rec {
     pyjwt
     python-dateutil
     requests
+    typing-extensions
   ];
 
   # aiounittest is not supported on 3.12
diff --git a/pkgs/development/python-modules/yamale/default.nix b/pkgs/development/python-modules/yamale/default.nix
index b02cec6577cf3..87f27046f8aab 100644
--- a/pkgs/development/python-modules/yamale/default.nix
+++ b/pkgs/development/python-modules/yamale/default.nix
@@ -35,7 +35,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "yamale" ];
 
   meta = with lib; {
-    description = "A schema and validator for YAML";
+    description = "Schema and validator for YAML";
     homepage = "https://github.com/23andMe/Yamale";
     changelog = "https://github.com/23andMe/Yamale/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/yamlfix/default.nix b/pkgs/development/python-modules/yamlfix/default.nix
index ee3a15d11bd0e..f2f2e7379b072 100644
--- a/pkgs/development/python-modules/yamlfix/default.nix
+++ b/pkgs/development/python-modules/yamlfix/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, click
-, fetchFromGitHub
-, maison
-, pdm-backend
-, pytest-freezegun
-, pytest-xdist
-, pytest
-, pytestCheckHook
-, pythonOlder
-, ruyaml
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  click,
+  fetchFromGitHub,
+  maison,
+  pdm-backend,
+  pytest-freezegun,
+  pytest-xdist,
+  pytest,
+  pytestCheckHook,
+  pythonOlder,
+  ruyaml,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -48,9 +49,7 @@ buildPythonPackage rec {
     export HOME=$(mktemp -d)
   '';
 
-  pythonImportsCheck = [
-    "yamlfix"
-  ];
+  pythonImportsCheck = [ "yamlfix" ];
 
   pytestFlagsArray = [
     "-W"
diff --git a/pkgs/development/python-modules/yamllint/default.nix b/pkgs/development/python-modules/yamllint/default.nix
index 79687d6cf6214..3a93c13a820a2 100644
--- a/pkgs/development/python-modules/yamllint/default.nix
+++ b/pkgs/development/python-modules/yamllint/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pathspec
-, pytestCheckHook
-, pythonOlder
-, pyyaml
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pathspec,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -23,39 +24,38 @@ buildPythonPackage rec {
     hash = "sha256-+7Q2cPl4XElI2IfLAkteifFVTrGkj2IjZk7nPuc6eYM=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pyyaml
     pathspec
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  disabledTests = [
-    # test failure reported upstream: https://github.com/adrienverge/yamllint/issues/373
-    "test_find_files_recursively"
-  ] ++ lib.optionals stdenv.isDarwin [
-    # locale tests are broken on BSDs; see https://github.com/adrienverge/yamllint/issues/307
-    "test_locale_accents"
-    "test_locale_case"
-    "test_run_with_locale"
-  ];
+  disabledTests =
+    [
+      # test failure reported upstream: https://github.com/adrienverge/yamllint/issues/373
+      "test_find_files_recursively"
+    ]
+    ++ lib.optionals stdenv.isDarwin [
+      # locale tests are broken on BSDs; see https://github.com/adrienverge/yamllint/issues/307
+      "test_locale_accents"
+      "test_locale_case"
+      "test_run_with_locale"
+    ];
 
-  pythonImportsCheck = [
-    "yamllint"
-  ];
+  pythonImportsCheck = [ "yamllint" ];
 
   meta = with lib; {
-    description = "A linter for YAML files";
+    description = "Linter for YAML files";
     mainProgram = "yamllint";
     homepage = "https://github.com/adrienverge/yamllint";
     changelog = "https://github.com/adrienverge/yamllint/blob/v${version}/CHANGELOG.rst";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ jonringer mikefaille ];
+    maintainers = with maintainers; [
+      jonringer
+      mikefaille
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/yamlloader/default.nix b/pkgs/development/python-modules/yamlloader/default.nix
index 69019ab75e06f..c84cfe202c25b 100644
--- a/pkgs/development/python-modules/yamlloader/default.nix
+++ b/pkgs/development/python-modules/yamlloader/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytest
-, pyyaml
-, hypothesis
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytest,
+  pyyaml,
+  hypothesis,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,9 +20,7 @@ buildPythonPackage rec {
     hash = "sha256-tv5A7PWvWW2EDpIGcO00dfmBNJK/blWyTyrUUMISurU=";
   };
 
-  propagatedBuildInputs = [
-    pyyaml
-  ];
+  propagatedBuildInputs = [ pyyaml ];
 
   nativeCheckInputs = [
     hypothesis
@@ -34,7 +33,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A case-insensitive list for Python";
+    description = "Case-insensitive list for Python";
     homepage = "https://github.com/Phynix/yamlloader";
     changelog = "https://github.com/Phynix/yamlloader/releases/tag/${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/yamlordereddictloader/default.nix b/pkgs/development/python-modules/yamlordereddictloader/default.nix
index a862386b0fc8c..89f871e50be2f 100644
--- a/pkgs/development/python-modules/yamlordereddictloader/default.nix
+++ b/pkgs/development/python-modules/yamlordereddictloader/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/yanc/default.nix b/pkgs/development/python-modules/yanc/default.nix
index 44ecf960c95ee..30d0e302cd437 100644
--- a/pkgs/development/python-modules/yanc/default.nix
+++ b/pkgs/development/python-modules/yanc/default.nix
@@ -1,4 +1,10 @@
-{ lib, buildPythonPackage, pythonOlder, fetchPypi, nose }:
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  nose,
+}:
 
 buildPythonPackage rec {
   pname = "yanc";
diff --git a/pkgs/development/python-modules/yangson/default.nix b/pkgs/development/python-modules/yangson/default.nix
index aea6481b6c1a3..c623097a6d5fa 100644
--- a/pkgs/development/python-modules/yangson/default.nix
+++ b/pkgs/development/python-modules/yangson/default.nix
@@ -1,27 +1,30 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, elementpath
-, pyyaml
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  elementpath,
+  pyyaml,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
   pname = "yangson";
-  version = "1.5.2";
+  version = "1.5.6";
   pyproject = true;
 
   src = fetchFromGitHub {
     owner = "CZ-NIC";
     repo = "yangson";
     rev = "refs/tags/${version}";
-    hash = "sha256-c/UWyfJdVz6wSluL1Ej9cSV3EpDUTkP0GTeHPYfAduE=";
+    hash = "sha256-/9MxCkcPGRNZkuwAAvlr7gtGcyxXtliski7bNtFhVBE=";
   };
 
-  build-system = [
-    poetry-core
+  build-system = [ poetry-core ];
+
+  pythonRelaxDeps = [
+    "setuptools"
   ];
 
   dependencies = [
@@ -30,13 +33,9 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "yangson"
-  ];
+  pythonImportsCheck = [ "yangson" ];
 
   meta = with lib; {
     description = "Library for working with data modelled in YANG";
diff --git a/pkgs/development/python-modules/yapf/default.nix b/pkgs/development/python-modules/yapf/default.nix
index 70f31fe5308b0..38e62c57eef81 100644
--- a/pkgs/development/python-modules/yapf/default.nix
+++ b/pkgs/development/python-modules/yapf/default.nix
@@ -1,17 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-
-# build-system
-, setuptools
-
-# dependencies
-, importlib-metadata
-, platformdirs
-, tomli
-
-# tests
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  importlib-metadata,
+  platformdirs,
+  tomli,
+  pythonOlder,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,27 +15,22 @@ buildPythonPackage rec {
   version = "0.40.2";
   pyproject = true;
 
+  disabled = pythonOlder "3.7";
+
   src = fetchPypi {
     inherit pname version;
     hash = "sha256-TauKXtcTTibVfBZHx0g6+z8TaHi1eQYreGyboWuUY3s=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
+  dependencies = [
     importlib-metadata
     platformdirs
     tomli
   ];
 
-  # nose is unavailable on pypy
-  #doCheck = !isPyPy;
-
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = {
     changelog = "https://github.com/google/yapf/blob/v${version}/CHANGELOG.md";
@@ -66,6 +57,10 @@ buildPythonPackage rec {
       takes away some of the drudgery of maintaining your code.
     '';
     license = lib.licenses.asl20;
-    maintainers = with lib.maintainers; [ AndersonTorres siddharthist ];
+    mainProgram = "yapf";
+    maintainers = with lib.maintainers; [
+      AndersonTorres
+      siddharthist
+    ];
   };
 }
diff --git a/pkgs/development/python-modules/yappi/default.nix b/pkgs/development/python-modules/yappi/default.nix
index 7160245e8ec0d..634914a18c307 100644
--- a/pkgs/development/python-modules/yappi/default.nix
+++ b/pkgs/development/python-modules/yappi/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, gevent
-, python
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gevent,
+  python,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -20,21 +21,15 @@ buildPythonPackage rec {
     hash = "sha256-zA4apOGyrbjBOxUKBARiKmmM9rSVFVGWsDpOaItOoLU=";
   };
 
-  patches = [
-    ./tests.patch
-  ];
+  patches = [ ./tests.patch ];
 
-  nativeCheckInputs = [
-    gevent
-  ];
+  nativeCheckInputs = [ gevent ];
 
   checkPhase = ''
     ${python.interpreter} run_tests.py
   '';
 
-  pythonImportsCheck = [
-    "yappi"
-  ];
+  pythonImportsCheck = [ "yappi" ];
 
   meta = with lib; {
     description = "Python profiler that supports multithreading and measuring CPU time";
diff --git a/pkgs/development/python-modules/yapsy/default.nix b/pkgs/development/python-modules/yapsy/default.nix
index 044ce2cf83186..12ad6fc215f82 100644
--- a/pkgs/development/python-modules/yapsy/default.nix
+++ b/pkgs/development/python-modules/yapsy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage {
@@ -19,9 +20,7 @@ buildPythonPackage {
 
   sourceRoot = "source/package";
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   nativeCheckInputs = [ pytestCheckHook ];
 
diff --git a/pkgs/development/python-modules/yara-python/default.nix b/pkgs/development/python-modules/yara-python/default.nix
index c386e5a565117..fb894f05c22af 100644
--- a/pkgs/development/python-modules/yara-python/default.nix
+++ b/pkgs/development/python-modules/yara-python/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
-, pythonOlder
-, yara
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  pythonOlder,
+  yara,
 }:
 
 buildPythonPackage rec {
   pname = "yara-python";
-  version = "4.5.0";
+  version = "4.5.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -17,45 +18,34 @@ buildPythonPackage rec {
   src = fetchFromGitHub {
     owner = "VirusTotal";
     repo = "yara-python";
-    rev = "v${version}";
-    hash = "sha256-RcrzzJQdzn+BXEp5M3ziGL6qSgfUN3wJ3JxwgjzVeuk=";
+    rev = "refs/tags/v${version}";
+    hash = "sha256-P+OQljzp+ZwVOXAgJqK7GNrqBep40MyVtMKDtT4ZUr8=";
   };
 
   # undefined symbol: yr_finalize
   # https://github.com/VirusTotal/yara-python/issues/7
   postPatch = ''
     substituteInPlace setup.py \
-      --replace "include_dirs=['yara/libyara/include', 'yara/libyara/', '.']" "libraries = ['yara']"
+      --replace-fail "include_dirs=['yara/libyara/include', 'yara/libyara/', '.']" "libraries = ['yara']"
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  buildInputs = [
-    yara
-  ];
+  buildInputs = [ yara ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  setupPyBuildFlags = [
-    "--dynamic-linking"
-  ];
+  setupPyBuildFlags = [ "--dynamic-linking" ];
 
-  pytestFlagsArray = [
-    "tests.py"
-  ];
+  pytestFlagsArray = [ "tests.py" ];
 
-  pythonImportsCheck = [
-    "yara"
-  ];
+  pythonImportsCheck = [ "yara" ];
 
   meta = with lib; {
     description = "Python interface for YARA";
     homepage = "https://github.com/VirusTotal/yara-python";
-    license = with licenses; [ asl20 ];
+    changelog = "https://github.com/VirusTotal/yara-python/releases/tag/v${version}";
+    license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
   };
 }
diff --git a/pkgs/development/python-modules/yaramod/default.nix b/pkgs/development/python-modules/yaramod/default.nix
index 78920969bc958..477f5d776c906 100644
--- a/pkgs/development/python-modules/yaramod/default.nix
+++ b/pkgs/development/python-modules/yaramod/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, cmake
-, fetchFromGitHub
-, pytestCheckHook
-, libxcrypt
-, pythonOlder
-, gtest
-, pybind11
-, nlohmann_json
+{
+  lib,
+  buildPythonPackage,
+  cmake,
+  fetchFromGitHub,
+  pytestCheckHook,
+  libxcrypt,
+  pythonOlder,
+  gtest,
+  pybind11,
+  nlohmann_json,
 }:
 
 let
@@ -18,61 +19,51 @@ let
     hash = "sha256-El4WA92t2O/L4wUqH6Xj8w+ANtb6liRwafDhqn8jxjQ=";
   };
 in
-  buildPythonPackage rec {
-    pname = "yaramod";
-    version = "3.21.0";
-    format = "setuptools";
+buildPythonPackage rec {
+  pname = "yaramod";
+  version = "3.22.0";
+  format = "setuptools";
 
-    disabled = pythonOlder "3.7";
+  disabled = pythonOlder "3.7";
 
-    src = fetchFromGitHub {
-      owner = "avast";
-      repo = pname;
-      rev = "refs/tags/v${version}";
-      hash = "sha256-YkMDoFwWPrDhAgDnPpNCU1NlnAPhwYQF/KFaRFn+juQ=";
-    };
+  src = fetchFromGitHub {
+    owner = "avast";
+    repo = pname;
+    rev = "refs/tags/v${version}";
+    hash = "sha256-WyMMcKKBNnEb0tyE2EjOspgJve6NJZg9HxymovBy/u4=";
+  };
 
-    postPatch = ''
-      rm -r deps/googletest deps/pog/ deps/pybind11/ deps/json/json.hpp
-      cp -r --no-preserve=all ${pog} deps/pog/
-      cp -r --no-preserve=all ${nlohmann_json.src}/single_include/nlohmann/json.hpp deps/json/
-      cp -r --no-preserve=all ${pybind11.src} deps/pybind11/
-      cp -r --no-preserve=all ${gtest.src} deps/googletest/
-    '';
+  postPatch = ''
+    rm -r deps/googletest deps/pog/ deps/pybind11/ deps/json/json.hpp
+    cp -r --no-preserve=all ${pog} deps/pog/
+    cp -r --no-preserve=all ${nlohmann_json.src}/single_include/nlohmann/json.hpp deps/json/
+    cp -r --no-preserve=all ${pybind11.src} deps/pybind11/
+    cp -r --no-preserve=all ${gtest.src} deps/googletest/
+  '';
 
-    dontUseCmakeConfigure = true;
+  dontUseCmakeConfigure = true;
 
-    buildInputs = [
-      libxcrypt
-    ];
+  buildInputs = [ libxcrypt ];
 
-    nativeBuildInputs = [
-      cmake
-      pog
-      gtest
-    ];
+  nativeBuildInputs = [
+    cmake
+    pog
+    gtest
+  ];
 
-    setupPyBuildFlags = [
-      "--with-unit-tests"
-    ];
+  setupPyBuildFlags = [ "--with-unit-tests" ];
 
-    checkInputs = [
-      pytestCheckHook
-    ];
+  checkInputs = [ pytestCheckHook ];
 
-    pytestFlagsArray = [
-      "tests/"
-    ];
+  pytestFlagsArray = [ "tests/" ];
 
-    pythonImportsCheck = [
-      "yaramod"
-    ];
+  pythonImportsCheck = [ "yaramod" ];
 
-    meta = with lib; {
-      description = "Parsing of YARA rules into AST and building new rulesets in C++";
-      homepage = "https://github.com/avast/yaramod";
-      changelog = "https://github.com/avast/yaramod/blob/v${version}/CHANGELOG.md";
-      license = licenses.mit;
-      maintainers = with maintainers; [ msm ];
-    };
-  }
+  meta = with lib; {
+    description = "Parsing of YARA rules into AST and building new rulesets in C++";
+    homepage = "https://github.com/avast/yaramod";
+    changelog = "https://github.com/avast/yaramod/blob/v${version}/CHANGELOG.md";
+    license = licenses.mit;
+    maintainers = with maintainers; [ msm ];
+  };
+}
diff --git a/pkgs/development/python-modules/yarg/default.nix b/pkgs/development/python-modules/yarg/default.nix
index f6e08ecd05acb..9d8bf12c77f57 100644
--- a/pkgs/development/python-modules/yarg/default.nix
+++ b/pkgs/development/python-modules/yarg/default.nix
@@ -1,4 +1,11 @@
-{ lib, buildPythonPackage, fetchFromGitHub, requests, nose, mock }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  nose,
+  mock,
+}:
 
 buildPythonPackage rec {
   pname = "yarg";
@@ -14,13 +21,16 @@ buildPythonPackage rec {
 
   propagatedBuildInputs = [ requests ];
 
-  nativeCheckInputs = [ nose mock ];
+  nativeCheckInputs = [
+    nose
+    mock
+  ];
   checkPhase = ''
     nosetests
   '';
 
   meta = with lib; {
-    description = "An easy to use PyPI client";
+    description = "Easy to use PyPI client";
     homepage = "https://yarg.readthedocs.io";
     license = licenses.mit;
     maintainers = with maintainers; [ psyanticy ];
diff --git a/pkgs/development/python-modules/yargy/default.nix b/pkgs/development/python-modules/yargy/default.nix
index 73ba35f6c8b5d..b4350676665f1 100644
--- a/pkgs/development/python-modules/yargy/default.nix
+++ b/pkgs/development/python-modules/yargy/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pymorphy2
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pymorphy2,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/yark/default.nix b/pkgs/development/python-modules/yark/default.nix
index cdcd1ab08afd9..30143e8a90fa1 100644
--- a/pkgs/development/python-modules/yark/default.nix
+++ b/pkgs/development/python-modules/yark/default.nix
@@ -1,15 +1,15 @@
-{ lib
-, buildPythonPackage
-, click
-, colorama
-, fetchPypi
-, flask
-, poetry-core
-, progress
-, pythonOlder
-, pythonRelaxDepsHook
-, requests
-, yt-dlp
+{
+  lib,
+  buildPythonPackage,
+  click,
+  colorama,
+  fetchPypi,
+  flask,
+  poetry-core,
+  progress,
+  pythonOlder,
+  requests,
+  yt-dlp,
 }:
 
 buildPythonPackage rec {
@@ -32,7 +32,6 @@ buildPythonPackage rec {
 
   nativeBuildInputs = [
     poetry-core
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -47,9 +46,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "yark"
-  ];
+  pythonImportsCheck = [ "yark" ];
 
   meta = with lib; {
     description = "Module for YouTube archiving";
diff --git a/pkgs/development/python-modules/yarl/default.nix b/pkgs/development/python-modules/yarl/default.nix
index a0c75cd238567..0fd0f0ae68989 100644
--- a/pkgs/development/python-modules/yarl/default.nix
+++ b/pkgs/development/python-modules/yarl/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, cython
-, expandvars
-, setuptools
-, idna
-, multidict
-, typing-extensions
-, pytest-xdist
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  cython,
+  expandvars,
+  setuptools,
+  idna,
+  multidict,
+  typing-extensions,
+  pytest-xdist,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     idna
     multidict
-  ] ++ lib.optionals (pythonOlder "3.8") [
-    typing-extensions
-  ];
+  ] ++ lib.optionals (pythonOlder "3.8") [ typing-extensions ];
 
   preCheck = ''
     # don't import yarl from ./ so the C extension is available
diff --git a/pkgs/development/python-modules/yasi/default.nix b/pkgs/development/python-modules/yasi/default.nix
index dbcbfe1a5378a..1c2fc835be579 100644
--- a/pkgs/development/python-modules/yasi/default.nix
+++ b/pkgs/development/python-modules/yasi/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, colorama
-, fetchFromGitHub
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  colorama,
+  fetchFromGitHub,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -18,17 +19,11 @@ buildPythonPackage rec {
     hash = "sha256-xKhVTmh/vrtBkatxtk8R4yqbGroH0I+xTKNYUpuikt4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    colorama
-  ];
+  propagatedBuildInputs = [ colorama ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   postPatch = ''
     substituteInPlace setup.py \
@@ -38,7 +33,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "yasi" ];
 
   meta = with lib; {
-    description = "A dialect-aware s-expression indenter written in Python and newLISP";
+    description = "Dialect-aware s-expression indenter written in Python and newLISP";
     mainProgram = "yasi";
     homepage = "https://github.com/nkmathew/yasi-sexp-indenter";
     changelog = "https://github.com/nkmathew/yasi-sexp-indenter/blob/${src.rev}/CHANGELOG.md";
diff --git a/pkgs/development/python-modules/yaspin/default.nix b/pkgs/development/python-modules/yaspin/default.nix
index 0235c06ab1496..e66d8fc3cd452 100644
--- a/pkgs/development/python-modules/yaspin/default.nix
+++ b/pkgs/development/python-modules/yaspin/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, termcolor
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  termcolor,
 }:
 
 buildPythonPackage rec {
@@ -22,13 +23,9 @@ buildPythonPackage rec {
     hash = "sha256-cYTCJyHZ9yNg6BfpZ+g3P0yMWFhYUxgYtlbANNgfohQ=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    termcolor
-  ];
+  propagatedBuildInputs = [ termcolor ];
 
   nativeCheckInputs = [
     pytest-xdist
@@ -40,9 +37,7 @@ buildPythonPackage rec {
     export FORCE_COLOR=1
   '';
 
-  pythonImportsCheck = [
-    "yaspin"
-  ];
+  pythonImportsCheck = [ "yaspin" ];
 
   meta = with lib; {
     description = "Yet Another Terminal Spinner";
diff --git a/pkgs/development/python-modules/yaswfp/default.nix b/pkgs/development/python-modules/yaswfp/default.nix
index 65542562df940..45be718071780 100644
--- a/pkgs/development/python-modules/yaswfp/default.nix
+++ b/pkgs/development/python-modules/yaswfp/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     sha256 = "1dxdz89hlycy1rnn269fwl1f0qxgxqarkc0ivs2m77f8xba2qgj9";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pythonImportsCheck = [ "yaswfp" ];
 
diff --git a/pkgs/development/python-modules/yattag/default.nix b/pkgs/development/python-modules/yattag/default.nix
index c66f85cc1583a..f5a87425a0757 100644
--- a/pkgs/development/python-modules/yattag/default.nix
+++ b/pkgs/development/python-modules/yattag/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -16,9 +17,7 @@ buildPythonPackage rec {
     hash = "sha256-qtn1QL0i3FA+W1UGzEeFb6zwgapx/TX3JzcbY+HkAr8=";
   };
 
-  pythonImportsCheck = [
-    "yattag"
-  ];
+  pythonImportsCheck = [ "yattag" ];
 
   meta = with lib; {
     description = "Library to generate HTML or XML";
diff --git a/pkgs/development/python-modules/ydata-profiling/default.nix b/pkgs/development/python-modules/ydata-profiling/default.nix
new file mode 100644
index 0000000000000..8ad3ac1967142
--- /dev/null
+++ b/pkgs/development/python-modules/ydata-profiling/default.nix
@@ -0,0 +1,103 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, pythonOlder
+, pytestCheckHook
+, dacite
+, htmlmin
+, imagehash
+, jinja2
+, matplotlib
+, multimethod
+, numba
+, numpy
+, pandas
+, phik
+, pyarrow
+, pydantic
+, pyyaml
+, requests
+, scipy
+, seaborn
+, statsmodels
+, tqdm
+, typeguard
+, visions
+, wordcloud
+}:
+
+buildPythonPackage rec {
+  pname = "ydata-profiling";
+  version = "4.8.3";
+  pyproject = true;
+
+  disabled = pythonOlder "3.7";
+
+  src = fetchFromGitHub {
+    owner = "ydataai";
+    repo = pname;
+    rev = "refs/tags/${version}";
+    hash = "sha256-tMwhoVnn65EvZK5NBvh/G36W8tH7I9qaL+NTK3IZVdI=";
+  };
+
+  preBuild = ''
+    echo ${version} > VERSION
+  '';
+
+  propagatedBuildInputs = [
+    dacite
+    htmlmin
+    imagehash
+    jinja2
+    matplotlib
+    multimethod
+    numba
+    numpy
+    pandas
+    phik
+    pydantic
+    pyyaml
+    requests
+    scipy
+    seaborn
+    statsmodels
+    tqdm
+    typeguard
+    visions
+    wordcloud
+  ];
+
+  nativeCheckInputs = [
+    pytestCheckHook
+    pyarrow
+  ];
+  disabledTestPaths = [
+    # needs Spark:
+    "tests/backends/spark_backend"
+    # try to download data:
+    "tests/issues"
+    "tests/unit/test_console.py"
+    "tests/unit/test_dataset_schema.py"
+    "tests/unit/test_modular.py"
+  ];
+  disabledTests = [
+    # try to download data:
+    "test_decorator"
+    "test_example"
+    "test_load"
+    "test_urls"
+  ];
+
+  pythonImportsCheck = [
+    "ydata_profiling"
+  ];
+
+  meta = with lib; {
+    description = "Create HTML profiling reports from Pandas DataFrames";
+    homepage = "https://ydata-profiling.ydata.ai";
+    changelog = "https://github.com/ydataai/ydata-profiling/releases/tag/${version}";
+    license = licenses.mit;
+    maintainers = with maintainers; [ bcdarwin ];
+    mainProgram = "ydata_profiling";
+  };
+}
diff --git a/pkgs/development/python-modules/ydiff/default.nix b/pkgs/development/python-modules/ydiff/default.nix
index ffa1f3cefad87..db3bfceea9e45 100644
--- a/pkgs/development/python-modules/ydiff/default.nix
+++ b/pkgs/development/python-modules/ydiff/default.nix
@@ -1,5 +1,13 @@
-{ lib, buildPythonPackage, fetchPypi, docutils, pygments
-, gitMinimal, mercurial, subversion, patchutils, less
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pygments,
+  gitMinimal,
+  mercurial,
+  subversion,
+  patchutils,
+  less,
 }:
 
 buildPythonPackage rec {
@@ -26,11 +34,11 @@ buildPythonPackage rec {
     patchShebangs tests/*.sh
   '';
 
-  nativeCheckInputs = [ docutils pygments ];
+  nativeCheckInputs = [ pygments ];
 
   checkPhase = ''
     runHook preCheck
-    make doc-check reg # We don't want the linter or coverage check.
+    make reg # We don't want the linter or coverage check.
     runHook postCheck
   '';
 
diff --git a/pkgs/development/python-modules/yeelight/default.nix b/pkgs/development/python-modules/yeelight/default.nix
index 12fb6ffccc728..cf9e8da676ec0 100644
--- a/pkgs/development/python-modules/yeelight/default.nix
+++ b/pkgs/development/python-modules/yeelight/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, fetchFromGitLab
-, flit-core
-, future
-, ifaddr
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitLab,
+  flit-core,
+  future,
+  ifaddr,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,21 +29,13 @@ buildPythonPackage rec {
   propagatedBuildInputs = [
     future
     ifaddr
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    async-timeout
-  ];
+  ] ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "yeelight/tests.py"
-  ];
+  pytestFlagsArray = [ "yeelight/tests.py" ];
 
-  pythonImportsCheck = [
-    "yeelight"
-  ];
+  pythonImportsCheck = [ "yeelight" ];
 
   meta = with lib; {
     description = "Python library for controlling YeeLight RGB bulbs";
diff --git a/pkgs/development/python-modules/yfinance/default.nix b/pkgs/development/python-modules/yfinance/default.nix
index bc270fbb8e65d..eb454cd9a4dc6 100644
--- a/pkgs/development/python-modules/yfinance/default.nix
+++ b/pkgs/development/python-modules/yfinance/default.nix
@@ -1,6 +1,5 @@
 {
   lib,
-  appdirs,
   beautifulsoup4,
   buildPythonPackage,
   cryptography,
@@ -12,14 +11,19 @@
   numpy,
   pandas,
   peewee,
+  platformdirs,
   pythonOlder,
+  pytz,
+  requests-cache,
+  requests-ratelimiter,
   requests,
+  scipy,
   setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "yfinance";
-  version = "0.2.38";
+  version = "0.2.40";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -28,13 +32,12 @@ buildPythonPackage rec {
     owner = "ranaroussi";
     repo = "yfinance";
     rev = "refs/tags/${version}";
-    hash = "sha256-ZGwtu2vLcE9pM73umhnFwSzjQnGjTOTtVF607ox7I6E=";
+    hash = "sha256-y3vcgPhksW8g0WpqVgJej7s+aIj9zaAjBjSm8d7yrjs=";
   };
 
   build-system = [ setuptools ];
 
   dependencies = [
-    appdirs
     beautifulsoup4
     cryptography
     frozendict
@@ -44,9 +47,21 @@ buildPythonPackage rec {
     numpy
     pandas
     peewee
+    platformdirs
+    pytz
     requests
   ];
 
+  passthru.optional-dependencies = {
+    nospam = [
+      requests-cache
+      requests-ratelimiter
+    ];
+    repair = [
+      scipy
+    ];
+  };
+
   # Tests require internet access
   doCheck = false;
 
diff --git a/pkgs/development/python-modules/yolink-api/default.nix b/pkgs/development/python-modules/yolink-api/default.nix
index c1b4703ea4d4a..8a567cd5a51e3 100644
--- a/pkgs/development/python-modules/yolink-api/default.nix
+++ b/pkgs/development/python-modules/yolink-api/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "yolink-api";
-  version = "0.4.3";
+  version = "0.4.4";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "YoSmart-Inc";
     repo = "yolink-api";
     rev = "refs/tags/v${version}";
-    hash = "sha256-cLuto2V5i3au1MRYYbgR2plw9YBpgIAxsG2fu4t37jk=";
+    hash = "sha256-yRxv3Itj+SkLtj5rErOzJoxj0JhsAWrdi0DucKZKKIU=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/youless-api/default.nix b/pkgs/development/python-modules/youless-api/default.nix
index ff10359238b40..d331e4f1771e5 100644
--- a/pkgs/development/python-modules/youless-api/default.nix
+++ b/pkgs/development/python-modules/youless-api/default.nix
@@ -1,48 +1,39 @@
-{ lib
-, buildPythonPackage
-, fetchFromBitbucket
-, pythonOlder
-, certifi
-, chardet
-, idna
-, pynose
-, requests
-, urllib3
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "youless-api";
-  version = "1.0.1";
-  format = "setuptools";
+  version = "2.1.0";
+  pyproject = true;
 
   disabled = pythonOlder "3.7";
 
-  src = fetchFromBitbucket {
-    owner = "jongsoftdev";
+  src = fetchFromGitHub {
+    owner = "gjong";
     repo = "youless-python-bridge";
-    rev = version;
-    hash = "sha256-49/HmkGr87aDhr8GEtARpXvr2RcgmLdAqhvMLI5x+vQ=";
+    rev = "refs/tags/${version}";
+    hash = "sha256-gygChn5yXuTrVGP82ijKJHcjEuNTu6ZNikc87n8WTrI=";
   };
 
-  propagatedBuildInputs = [
-    certifi
-    chardet
-    idna
-    requests
-    urllib3
-  ];
+  build-system = [ setuptools ];
 
-  nativeCheckInputs = [
-    pynose
-  ];
+  dependencies = [ requests ];
 
-  pythonImportsCheck = [
-    "youless_api"
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
+
+  pythonImportsCheck = [ "youless_api" ];
 
   meta = with lib; {
     description = "Python library for YouLess sensors";
-    homepage = "https://pypi.org/project/youless-api/";
+    homepage = "https://github.com/gjong/youless-python-bridge";
+    changelog = "https://github.com/gjong/youless-python-bridge/releases/tag/${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
   };
diff --git a/pkgs/development/python-modules/youseedee/default.nix b/pkgs/development/python-modules/youseedee/default.nix
index 3e04540dc5770..a5f45c10cbb59 100644
--- a/pkgs/development/python-modules/youseedee/default.nix
+++ b/pkgs/development/python-modules/youseedee/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, substituteAll
-, filelock
-, requests
-, unicode-character-database
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  substituteAll,
+  filelock,
+  requests,
+  unicode-character-database,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/youtokentome/default.nix b/pkgs/development/python-modules/youtokentome/default.nix
index 0dfe0336c056b..ad39637c12b10 100644
--- a/pkgs/development/python-modules/youtokentome/default.nix
+++ b/pkgs/development/python-modules/youtokentome/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, setuptools
-, click
-, cython
-, pytestCheckHook
-, pythonOlder
-, tabulate
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  setuptools,
+  click,
+  cython,
+  pytestCheckHook,
+  pythonOlder,
+  tabulate,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
     tabulate
   ];
 
-  pythonImportsCheck = [
-    "youtokentome"
-  ];
+  pythonImportsCheck = [ "youtokentome" ];
 
   meta = with lib; {
     description = "Unsupervised text tokenizer";
diff --git a/pkgs/development/python-modules/youtube-search-python/default.nix b/pkgs/development/python-modules/youtube-search-python/default.nix
index 60ec65467d618..b9eeabea51fee 100644
--- a/pkgs/development/python-modules/youtube-search-python/default.nix
+++ b/pkgs/development/python-modules/youtube-search-python/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
-, httpx
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
+  httpx,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-RWjR12ns1+tLuDZfBO7G42TF9w7sezdl9UPa67E1/PU=";
   };
 
-  propagatedBuildInputs = [
-    httpx
-  ];
+  propagatedBuildInputs = [ httpx ];
 
-  pythonImportsCheck = [
-    "youtubesearchpython"
-  ];
+  pythonImportsCheck = [ "youtubesearchpython" ];
 
   # Project has no tests
   doCheck = false;
diff --git a/pkgs/development/python-modules/youtube-search/default.nix b/pkgs/development/python-modules/youtube-search/default.nix
index 215b9516c6503..9b575729b34d5 100644
--- a/pkgs/development/python-modules/youtube-search/default.nix
+++ b/pkgs/development/python-modules/youtube-search/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -17,16 +18,12 @@ buildPythonPackage rec {
     hash = "sha256-V0mm2Adv2mVVfJE2fw+rCTYpDs3qRXyDHJ8/BZGKOqI=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # Tests require network connection
   doCheck = false;
 
-  pythonImportsCheck = [
-    "youtube_search"
-  ];
+  pythonImportsCheck = [ "youtube_search" ];
 
   meta = with lib; {
     description = "Tool for searching for youtube videos to avoid using their heavily rate-limited API";
diff --git a/pkgs/development/python-modules/youtube-transcript-api/default.nix b/pkgs/development/python-modules/youtube-transcript-api/default.nix
index 526f7e761135f..cd3fcea8540af 100644
--- a/pkgs/development/python-modules/youtube-transcript-api/default.nix
+++ b/pkgs/development/python-modules/youtube-transcript-api/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, requests
-, mock
-, httpretty
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  requests,
+  mock,
+  httpretty,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -22,9 +23,7 @@ buildPythonPackage rec {
     hash = "sha256-xCB1XhXRq4jxyfst/n2wXj2k4dERm+/bVUJwP8b70gQ=";
   };
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   nativeCheckInputs = [
     mock
@@ -32,9 +31,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "youtube_transcript_api"
-  ];
+  pythonImportsCheck = [ "youtube_transcript_api" ];
 
   meta = with lib; {
     description = "Python API which allows you to get the transcripts/subtitles for a given YouTube video";
diff --git a/pkgs/development/python-modules/youtubeaio/default.nix b/pkgs/development/python-modules/youtubeaio/default.nix
index 94056aca5bd39..82123108880f1 100644
--- a/pkgs/development/python-modules/youtubeaio/default.nix
+++ b/pkgs/development/python-modules/youtubeaio/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, poetry-core
-, aiohttp
-, pydantic
-, yarl
-, aresponses
-, pytest-asyncio
-, pytestCheckHook
-, syrupy
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  poetry-core,
+  aiohttp,
+  pydantic,
+  yarl,
+  aresponses,
+  pytest-asyncio,
+  pytestCheckHook,
+  syrupy,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     sed -i "/^addopts/d" pyproject.toml
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     aiohttp
diff --git a/pkgs/development/python-modules/yowsup/default.nix b/pkgs/development/python-modules/yowsup/default.nix
index a88a296944a57..dfe6cbf51f73b 100644
--- a/pkgs/development/python-modules/yowsup/default.nix
+++ b/pkgs/development/python-modules/yowsup/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, isPy3k
-, fetchFromGitHub
-, appdirs
-, consonance
-, protobuf
-, python-axolotl
-, six
-, pyasyncore
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  isPy3k,
+  fetchFromGitHub,
+  appdirs,
+  consonance,
+  protobuf,
+  python-axolotl,
+  six,
+  pyasyncore,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
       --replace "==" ">=" \
   '';
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   propagatedBuildInputs = [
     appdirs
@@ -44,14 +43,11 @@ buildPythonPackage rec {
     protobuf
     python-axolotl
     six
-  ]
-  ++ lib.optionals (!pythonOlder "3.12") [
-    pyasyncore
-  ];
+  ] ++ lib.optionals (!pythonOlder "3.12") [ pyasyncore ];
 
   meta = with lib; {
     homepage = "https://github.com/tgalal/yowsup";
-    description = "The python WhatsApp library";
+    description = "Python WhatsApp library";
     mainProgram = "yowsup-cli";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ ];
diff --git a/pkgs/development/python-modules/yoyo-migrations/default.nix b/pkgs/development/python-modules/yoyo-migrations/default.nix
index 493d6a77b4c1d..f0688fdc1e74d 100644
--- a/pkgs/development/python-modules/yoyo-migrations/default.nix
+++ b/pkgs/development/python-modules/yoyo-migrations/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, importlib-metadata
-, setuptools
-, sqlparse
-, tabulate
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  importlib-metadata,
+  setuptools,
+  sqlparse,
+  tabulate,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/ypy-websocket/default.nix b/pkgs/development/python-modules/ypy-websocket/default.nix
index b1840800622f1..d50c231a574b6 100644
--- a/pkgs/development/python-modules/ypy-websocket/default.nix
+++ b/pkgs/development/python-modules/ypy-websocket/default.nix
@@ -1,16 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, hatchling
-, aiosqlite
-, anyio
-, y-py
-, pytest-asyncio
-, pytestCheckHook
-, pythonRelaxDepsHook
-, uvicorn
-, websockets
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  hatchling,
+  aiosqlite,
+  anyio,
+  y-py,
+  pytest-asyncio,
+  pytestCheckHook,
+  uvicorn,
+  websockets,
 }:
 
 buildPythonPackage rec {
@@ -27,13 +27,10 @@ buildPythonPackage rec {
     hash = "sha256-48x+MUhev9dErC003XOP3oGKd5uOghlBFgcR8Nm/0xs=";
   };
 
-  pythonRelaxDeps = [
-    "aiofiles"
-  ];
+  pythonRelaxDeps = [ "aiofiles" ];
 
   nativeBuildInputs = [
     hatchling
-    pythonRelaxDepsHook
   ];
 
   propagatedBuildInputs = [
@@ -42,9 +39,7 @@ buildPythonPackage rec {
     y-py
   ];
 
-  pythonImportsCheck = [
-    "ypy_websocket"
-  ];
+  pythonImportsCheck = [ "ypy_websocket" ];
 
   nativeCheckInputs = [
     pytest-asyncio
diff --git a/pkgs/development/python-modules/yq/default.nix b/pkgs/development/python-modules/yq/default.nix
index febf3aad2fd10..dfc1ae08903ec 100644
--- a/pkgs/development/python-modules/yq/default.nix
+++ b/pkgs/development/python-modules/yq/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, argcomplete
-, buildPythonPackage
-, fetchPypi
-, jq
-, pytestCheckHook
-, pyyaml
-, setuptools-scm
-, substituteAll
-, tomlkit
-, xmltodict
+{
+  lib,
+  argcomplete,
+  buildPythonPackage,
+  fetchPypi,
+  jq,
+  pytestCheckHook,
+  pyyaml,
+  setuptools-scm,
+  substituteAll,
+  tomlkit,
+  xmltodict,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     })
   ];
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     argcomplete
@@ -39,9 +38,7 @@ buildPythonPackage rec {
     xmltodict
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   pytestFlagsArray = [ "test/test.py" ];
 
@@ -51,7 +48,10 @@ buildPythonPackage rec {
     description = "Command-line YAML/XML/TOML processor - jq wrapper for YAML, XML, TOML documents";
     homepage = "https://github.com/kislyuk/yq";
     license = licenses.asl20;
-    maintainers = with maintainers; [ womfoo SuperSandro2000 ];
+    maintainers = with maintainers; [
+      womfoo
+      SuperSandro2000
+    ];
     mainProgram = "yq";
   };
 }
diff --git a/pkgs/development/python-modules/yte/default.nix b/pkgs/development/python-modules/yte/default.nix
index 6b8bcfb95be1b..a269cdd69176b 100644
--- a/pkgs/development/python-modules/yte/default.nix
+++ b/pkgs/development/python-modules/yte/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, dpath
-, fetchFromGitHub
-, plac
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, pyyaml
+{
+  lib,
+  buildPythonPackage,
+  dpath,
+  fetchFromGitHub,
+  plac,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  pyyaml,
 }:
 
 buildPythonPackage rec {
@@ -23,9 +24,7 @@ buildPythonPackage rec {
     hash = "sha256-Rm3EKxRZCdYErkyWK9+fF2W7C+v5/MXD/LkehmB6UNQ=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     dpath
@@ -33,17 +32,11 @@ buildPythonPackage rec {
     pyyaml
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "yte"
-  ];
+  pythonImportsCheck = [ "yte" ];
 
-  pytestFlagsArray = [
-    "tests.py"
-  ];
+  pytestFlagsArray = [ "tests.py" ];
 
   preCheck = ''
     # The CLI test need yte on the PATH
diff --git a/pkgs/development/python-modules/ytmusicapi/default.nix b/pkgs/development/python-modules/ytmusicapi/default.nix
index 3807380083616..b2a805bbf2402 100644
--- a/pkgs/development/python-modules/ytmusicapi/default.nix
+++ b/pkgs/development/python-modules/ytmusicapi/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pythonOlder
-, requests
-, setuptools
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pythonOlder,
+  requests,
+  setuptools,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "ytmusicapi";
-  version = "1.6.0";
+  version = "1.7.3";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -18,30 +19,26 @@ buildPythonPackage rec {
     owner = "sigma67";
     repo = "ytmusicapi";
     rev = "refs/tags/${version}";
-    hash = "sha256-DqTcdWVivE2R51qm3XQ7cDnD1a90AocmX9TG+M5reto=";
+    hash = "sha256-a2EZ0uUwdP0QNQh9h4TG1lmPXkvrlDziKiUQwYENXwk=";
   };
 
-  nativeBuildInputs = [
+  build-system = [
     setuptools
     setuptools-scm
   ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  dependencies = [ requests ];
 
   doCheck = false; # requires network access
 
-  pythonImportsCheck = [
-    "ytmusicapi"
-  ];
+  pythonImportsCheck = [ "ytmusicapi" ];
 
   meta = with lib; {
     description = "Python API for YouTube Music";
-    mainProgram = "ytmusicapi";
     homepage = "https://github.com/sigma67/ytmusicapi";
     changelog = "https://github.com/sigma67/ytmusicapi/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ dotlambda ];
+    mainProgram = "ytmusicapi";
   };
 }
diff --git a/pkgs/development/python-modules/yubico-client/default.nix b/pkgs/development/python-modules/yubico-client/default.nix
index 3dec1966fdf52..c32239120ba7e 100644
--- a/pkgs/development/python-modules/yubico-client/default.nix
+++ b/pkgs/development/python-modules/yubico-client/default.nix
@@ -1,5 +1,9 @@
-{ lib, buildPythonPackage, fetchPypi
-, requests }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+}:
 
 buildPythonPackage rec {
   pname = "yubico-client";
@@ -19,7 +23,7 @@ buildPythonPackage rec {
   meta = with lib; {
     description = "Verifying Yubico OTPs based on the validation protocol version 2.0";
     homepage = "https://github.com/Kami/python-yubico-client/";
-    maintainers= with maintainers; [ peterromfeldhk ];
+    maintainers = with maintainers; [ peterromfeldhk ];
     license = licenses.bsd3;
   };
 }
diff --git a/pkgs/development/python-modules/yubico/default.nix b/pkgs/development/python-modules/yubico/default.nix
index 441b313be4069..43f3a8994b665 100644
--- a/pkgs/development/python-modules/yubico/default.nix
+++ b/pkgs/development/python-modules/yubico/default.nix
@@ -1,4 +1,11 @@
-{ stdenv, lib, buildPythonPackage, fetchPypi, pytestCheckHook, pyusb }:
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pyusb,
+}:
 
 buildPythonPackage rec {
   pname = "python-yubico";
@@ -20,8 +27,8 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Python code to talk to YubiKeys";
-    homepage    = "https://github.com/Yubico/python-yubico";
-    license     = licenses.bsd2;
+    homepage = "https://github.com/Yubico/python-yubico";
+    license = licenses.bsd2;
     maintainers = with maintainers; [ s1341 ];
   };
 }
diff --git a/pkgs/development/python-modules/z3c-checkversions/default.nix b/pkgs/development/python-modules/z3c-checkversions/default.nix
index 9f6a7ed4258ea..400d225844516 100644
--- a/pkgs/development/python-modules/z3c-checkversions/default.nix
+++ b/pkgs/development/python-modules/z3c-checkversions/default.nix
@@ -1,10 +1,11 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, python
-, zc-buildout
-, zope-testrunner
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  pythonAtLeast,
+  zc-buildout,
+  zope-testrunner,
 }:
 
 buildPythonPackage rec {
@@ -12,6 +13,9 @@ buildPythonPackage rec {
   version = "2.1";
   format = "setuptools";
 
+  # distutils usage
+  disabled = pythonAtLeast "3.12";
+
   src = fetchPypi {
     inherit version;
     pname = "z3c.checkversions";
diff --git a/pkgs/development/python-modules/zadnegoale/default.nix b/pkgs/development/python-modules/zadnegoale/default.nix
index 64feef2724917..b93f86d569506 100644
--- a/pkgs/development/python-modules/zadnegoale/default.nix
+++ b/pkgs/development/python-modules/zadnegoale/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, aiohttp
-, aioresponses
-, buildPythonPackage
-, fetchFromGitHub
-, dacite
-, orjson
-, pytest-asyncio
-, pytest-error-for-skips
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  dacite,
+  orjson,
+  pytest-asyncio,
+  pytest-error-for-skips,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -38,9 +39,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "zadnegoale"
-  ];
+  pythonImportsCheck = [ "zadnegoale" ];
 
   meta = with lib; {
     description = "Python wrapper for getting allergen concentration data from Żadnego Ale servers";
diff --git a/pkgs/development/python-modules/zamg/default.nix b/pkgs/development/python-modules/zamg/default.nix
index 770764dde09db..82e6d5bb0e91d 100644
--- a/pkgs/development/python-modules/zamg/default.nix
+++ b/pkgs/development/python-modules/zamg/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, aiohttp
-, aresponses
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
+{
+  lib,
+  aiohttp,
+  aresponses,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -26,20 +27,14 @@ buildPythonPackage rec {
       --replace " --cov" ""
   '';
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    aiohttp
-  ];
+  propagatedBuildInputs = [ aiohttp ];
 
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "zamg"
-  ];
+  pythonImportsCheck = [ "zamg" ];
 
   meta = with lib; {
     description = "Library to read weather data from ZAMG Austria";
diff --git a/pkgs/development/python-modules/zarr/default.nix b/pkgs/development/python-modules/zarr/default.nix
index 826a496445f67..9022a3aaeb692 100644
--- a/pkgs/development/python-modules/zarr/default.nix
+++ b/pkgs/development/python-modules/zarr/default.nix
@@ -1,31 +1,30 @@
-{ lib
-, asciitree
-, buildPythonPackage
-, fasteners
-, fetchPypi
-, numcodecs
-, msgpack
-, numpy
-, pytestCheckHook
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  asciitree,
+  buildPythonPackage,
+  fasteners,
+  fetchPypi,
+  numcodecs,
+  msgpack,
+  numpy,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools-scm,
 }:
 
 buildPythonPackage rec {
   pname = "zarr";
-  version = "2.17.2";
+  version = "2.18.2";
   format = "pyproject";
 
   disabled = pythonOlder "3.8";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-LLqmy040LUUVLUp6SyATwzf806jnvJglNWAYDeYFUs4=";
+    hash = "sha256-m7OTuKCjj7Eh27kTsEfXXbKN6YkPbWRKIXpzz0rnT0c=";
   };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+  nativeBuildInputs = [ setuptools-scm ];
 
   propagatedBuildInputs = [
     asciitree
@@ -34,16 +33,12 @@ buildPythonPackage rec {
     numcodecs
   ] ++ numcodecs.optional-dependencies.msgpack;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "zarr"
-  ];
+  pythonImportsCheck = [ "zarr" ];
 
   meta = with lib; {
-    description = "An implementation of chunked, compressed, N-dimensional arrays for Python";
+    description = "Implementation of chunked, compressed, N-dimensional arrays for Python";
     homepage = "https://github.com/zarr-developers/zarr";
     changelog = "https://github.com/zarr-developers/zarr-python/releases/tag/v${version}";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/zbaemon/default.nix b/pkgs/development/python-modules/zbaemon/default.nix
index 00f1c57abb038..7cbcc563280ed 100644
--- a/pkgs/development/python-modules/zbaemon/default.nix
+++ b/pkgs/development/python-modules/zbaemon/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, zconfig
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  zconfig,
 }:
 
 buildPythonPackage rec {
@@ -19,10 +20,9 @@ buildPythonPackage rec {
   doCheck = false;
 
   meta = with lib; {
-    description = "A daemon process control library and tools for Unix-based systems";
+    description = "Daemon process control library and tools for Unix-based systems";
     homepage = "https://pypi.python.org/pypi/zdaemon";
     license = licenses.zpl20;
     maintainers = with maintainers; [ goibhniu ];
   };
-
 }
diff --git a/pkgs/development/python-modules/zc-lockfile/default.nix b/pkgs/development/python-modules/zc-lockfile/default.nix
index 8b7818ef119bb..8cfd30c2e7100 100644
--- a/pkgs/development/python-modules/zc-lockfile/default.nix
+++ b/pkgs/development/python-modules/zc-lockfile/default.nix
@@ -1,8 +1,9 @@
-{ buildPythonPackage
-, fetchPypi
-, mock
-, zope-testing
-, lib
+{
+  buildPythonPackage,
+  fetchPypi,
+  mock,
+  zope-testing,
+  lib,
 }:
 
 buildPythonPackage rec {
@@ -20,7 +21,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     description = "Inter-process locks";
-    homepage =  "https://www.python.org/pypi/zc.lockfile";
+    homepage = "https://www.python.org/pypi/zc.lockfile";
     license = licenses.zpl20;
     maintainers = with maintainers; [ goibhniu ];
   };
diff --git a/pkgs/development/python-modules/zcbor/default.nix b/pkgs/development/python-modules/zcbor/default.nix
index 0ac5f5323b64a..7ff878f490d86 100644
--- a/pkgs/development/python-modules/zcbor/default.nix
+++ b/pkgs/development/python-modules/zcbor/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-
-# build dependencies
-, setuptools
-
-# dependencies
-, cbor2
-, pyyaml
-, regex
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+
+  # build dependencies
+  setuptools,
+
+  # dependencies
+  cbor2,
+  pyyaml,
+  regex,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-U3Y/r3tBhzK6bGnMxdqKzS7bLHyAzgpGZ5PVK9pw7Pk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     cbor2
@@ -34,7 +33,7 @@ buildPythonPackage rec {
   pythonImportsCheck = [ "zcbor" ];
 
   meta = with lib; {
-    description = "A low footprint CBOR library in the C language (C++ compatible), tailored for use in microcontrollers";
+    description = "Low footprint CBOR library in the C language (C++ compatible), tailored for use in microcontrollers";
     mainProgram = "zcbor";
     homepage = "https://pypi.org/project/zcbor/";
     changelog = "https://github.com/NordicSemiconductor/zcbor/releases/tag/${version}";
diff --git a/pkgs/development/python-modules/zconfig/default.nix b/pkgs/development/python-modules/zconfig/default.nix
index 8947badb91bf0..ee8eb919c3ebf 100644
--- a/pkgs/development/python-modules/zconfig/default.nix
+++ b/pkgs/development/python-modules/zconfig/default.nix
@@ -1,56 +1,48 @@
-{ lib
-, stdenv
-, buildPythonPackage
-, docutils
-, fetchPypi
-, manuel
-, pygments
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, zope-testrunner
+{
+  lib,
+  stdenv,
+  buildPythonPackage,
+  docutils,
+  fetchPypi,
+  manuel,
+  pygments,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  zope-testrunner,
 }:
 
 buildPythonPackage rec {
   pname = "zconfig";
-  version = "4.0";
+  version = "4.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
-    pname = "ZConfig";
-    inherit version;
-    hash = "sha256-+NZC+6a6mNCGMb4sH3GtGVfAUf70qj0/ufHgjcYdAVY=";
+    inherit pname version;
+    hash = "sha256-tqed2hV/NpjIdo0s7cJjIW6K8kDTz50JoCpkKREU6yA=";
   };
 
   patches = lib.optional stdenv.hostPlatform.isMusl ./remove-setlocale-test.patch;
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   buildInputs = [
     docutils
     manuel
   ];
 
-  propagatedBuildInputs = [
-    zope-testrunner
-  ];
+  propagatedBuildInputs = [ zope-testrunner ];
 
   nativeCheckInputs = [
     pygments
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "ZConfig"
-  ];
+  pythonImportsCheck = [ "ZConfig" ];
 
-  pytestFlagsArray = [
-    "-s"
-  ];
+  pytestFlagsArray = [ "-s" ];
 
   meta = with lib; {
     description = "Structured Configuration Library";
diff --git a/pkgs/development/python-modules/zcs/default.nix b/pkgs/development/python-modules/zcs/default.nix
index 89ee7a239098a..d6aaad9d8ab79 100644
--- a/pkgs/development/python-modules/zcs/default.nix
+++ b/pkgs/development/python-modules/zcs/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, python
-, yacs
-, boxx
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  python,
+  yacs,
+  boxx,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,21 +20,13 @@ buildPythonPackage rec {
     hash = "sha256-/QIyRQtxLDVW+vcQi5bL8rJ0o3+OhqGhQEALR1YO1pg=";
   };
 
-  patches = [
-    ./fix-test-yaml.patch
-  ];
+  patches = [ ./fix-test-yaml.patch ];
 
-  propagatedBuildInputs = [
-    yacs
-  ];
+  propagatedBuildInputs = [ yacs ];
 
-  pythonImportsCheck = [
-    "zcs"
-  ];
+  pythonImportsCheck = [ "zcs" ];
 
-  nativeCheckInputs = [
-    boxx
-  ];
+  nativeCheckInputs = [ boxx ];
 
   checkPhase = ''
     ${python.interpreter} test/test_zcs.py
diff --git a/pkgs/development/python-modules/zdaemon/default.nix b/pkgs/development/python-modules/zdaemon/default.nix
index 54c096b642574..a66424b06ba03 100644
--- a/pkgs/development/python-modules/zdaemon/default.nix
+++ b/pkgs/development/python-modules/zdaemon/default.nix
@@ -1,35 +1,32 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, zconfig
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  zconfig,
 }:
 
 buildPythonPackage rec {
   pname = "zdaemon";
-  version = "5.0";
+  version = "5.1";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-ml7GxRmigLvPqPfnP04Q2AjnuCcQq2COD0Sb88BtQ9U=";
+    hash = "sha256-Iun+UFDq67ngPZrWTk9jzNheBMOP2zUc8RO+9vaNt6Q=";
   };
 
-  propagatedBuildInputs = [
-    zconfig
-  ];
+  propagatedBuildInputs = [ zconfig ];
 
   # too many deps..
   doCheck = false;
 
-  pythonImportsCheck = [
-    "zdaemon"
-  ];
+  pythonImportsCheck = [ "zdaemon" ];
 
   meta = with lib; {
-    description = "A daemon process control library and tools for Unix-based systems";
+    description = "Daemon process control library and tools for Unix-based systems";
     mainProgram = "zdaemon";
     homepage = "https://pypi.python.org/pypi/zdaemon";
     changelog = "https://github.com/zopefoundation/zdaemon/blob/${version}/CHANGES.rst";
diff --git a/pkgs/development/python-modules/zeep/default.nix b/pkgs/development/python-modules/zeep/default.nix
index 75e23838c0a4b..d5965d455f6ed 100644
--- a/pkgs/development/python-modules/zeep/default.nix
+++ b/pkgs/development/python-modules/zeep/default.nix
@@ -1,27 +1,28 @@
-{ lib
-, aiohttp
-, aioresponses
-, attrs
-, buildPythonPackage
-, defusedxml
-, fetchFromGitHub
-, freezegun
-, httpx
-, isodate
-, lxml
-, mock
-, platformdirs
-, pretend
-, pytest-asyncio
-, pytest-httpx
-, pytestCheckHook
-, pythonOlder
-, pytz
-, requests
-, requests-toolbelt
-, requests-file
-, requests-mock
-, xmlsec
+{
+  lib,
+  aiohttp,
+  aioresponses,
+  attrs,
+  buildPythonPackage,
+  defusedxml,
+  fetchFromGitHub,
+  freezegun,
+  httpx,
+  isodate,
+  lxml,
+  mock,
+  platformdirs,
+  pretend,
+  pytest-asyncio,
+  pytest-httpx,
+  pytestCheckHook,
+  pythonOlder,
+  pytz,
+  requests,
+  requests-toolbelt,
+  requests-file,
+  requests-mock,
+  xmlsec,
 }:
 
 buildPythonPackage rec {
@@ -51,17 +52,11 @@ buildPythonPackage rec {
   ];
 
   passthru.optional-dependencies = {
-    async_require = [
-      httpx
-    ];
-    xmlsec_require = [
-      xmlsec
-    ];
+    async_require = [ httpx ];
+    xmlsec_require = [ xmlsec ];
   };
 
-  pythonImportsCheck = [
-    "zeep"
-  ];
+  pythonImportsCheck = [ "zeep" ];
 
   nativeCheckInputs = [
     aiohttp
@@ -73,8 +68,7 @@ buildPythonPackage rec {
     pytest-httpx
     pytestCheckHook
     requests-mock
-  ]
-  ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
+  ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies);
 
   disabledTests = [
     # Failed: External connections not allowed during tests.
diff --git a/pkgs/development/python-modules/zephyr-python-api/default.nix b/pkgs/development/python-modules/zephyr-python-api/default.nix
index d4bd2642317c4..9c6b37486336a 100644
--- a/pkgs/development/python-modules/zephyr-python-api/default.nix
+++ b/pkgs/development/python-modules/zephyr-python-api/default.nix
@@ -1,26 +1,25 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, requests
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  requests,
+  setuptools,
 }:
 
 buildPythonPackage rec {
   pname = "zephyr-python-api";
-  version = "0.0.5";
+  version = "0.1.0";
   format = "pyproject";
 
   src = fetchPypi {
     pname = "zephyr_python_api";
     inherit version;
-    hash = "sha256-tzuLFM2Oav5rKH1GEZcP/Kfw4NXRTObMf1gcn862UBw=";
+    hash = "sha256-YupGiybfhwb+I4ofr6RNBzS6LQfx5BQD/SU5nYrnqFk=";
   };
 
   nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
   # No tests in archive
   doCheck = false;
@@ -29,7 +28,7 @@ buildPythonPackage rec {
 
   meta = {
     homepage = "https://github.com/nassauwinter/zephyr-python-api";
-    description = "A set of wrappers for Zephyr Scale (TM4J) REST API";
+    description = "Set of wrappers for Zephyr Scale (TM4J) REST API";
     license = lib.licenses.asl20;
     maintainers = with lib.maintainers; [ rapiteanu ];
   };
diff --git a/pkgs/development/python-modules/zeroc-ice/default.nix b/pkgs/development/python-modules/zeroc-ice/default.nix
index d68c90edd1616..8a61451a62216 100644
--- a/pkgs/development/python-modules/zeroc-ice/default.nix
+++ b/pkgs/development/python-modules/zeroc-ice/default.nix
@@ -1,25 +1,25 @@
-{ stdenv
-, lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, bzip2
-, openssl
+{
+  stdenv,
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  bzip2,
+  openssl,
 }:
 
 buildPythonPackage rec {
   pname = "zeroc-ice";
-  version = "3.7.10";
+  version = "3.7.10.1";
   pyproject = true;
 
   src = fetchPypi {
-    inherit version pname;
-    hash = "sha256-Bwn2Y/Bbu6O89iaSNWvMpXBhyJRmj6eL8j6HiPpbQbM=";
+    pname = "zeroc_ice";
+    inherit version;
+    hash = "sha256-sGOq/aNg33EfdpRVKbtUFXbyZr5B5dWi3Xf10yDBhmQ=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   buildInputs = [
     bzip2
@@ -32,7 +32,7 @@ buildPythonPackage rec {
     broken = stdenv.isDarwin;
     homepage = "https://zeroc.com/";
     license = licenses.gpl2;
-    description = "Comprehensive RPC framework with support for Python, C++, .NET, Java, JavaScript and more.";
+    description = "Comprehensive RPC framework with support for Python, C++, .NET, Java, JavaScript and more";
     mainProgram = "slice2py";
     maintainers = with maintainers; [ abbradar ];
   };
diff --git a/pkgs/development/python-modules/zeroconf/default.nix b/pkgs/development/python-modules/zeroconf/default.nix
index bd00a51c3fa50..a611985ad8559 100644
--- a/pkgs/development/python-modules/zeroconf/default.nix
+++ b/pkgs/development/python-modules/zeroconf/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, cython
-, async-timeout
-, buildPythonPackage
-, fetchFromGitHub
-, ifaddr
-, poetry-core
-, pytest-asyncio
-, pytest-timeout
-, pythonOlder
-, pytestCheckHook
-, setuptools
+{
+  lib,
+  cython,
+  async-timeout,
+  buildPythonPackage,
+  fetchFromGitHub,
+  ifaddr,
+  poetry-core,
+  pytest-asyncio,
+  pytest-timeout,
+  pythonOlder,
+  pytestCheckHook,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -37,11 +38,7 @@ buildPythonPackage rec {
     setuptools
   ];
 
-  dependencies = [
-    ifaddr
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    async-timeout
-  ];
+  dependencies = [ ifaddr ] ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
 
   nativeCheckInputs = [
     pytest-asyncio
diff --git a/pkgs/development/python-modules/zerorpc/default.nix b/pkgs/development/python-modules/zerorpc/default.nix
index 3734496531a1a..25523376be32b 100644
--- a/pkgs/development/python-modules/zerorpc/default.nix
+++ b/pkgs/development/python-modules/zerorpc/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi, future, gevent, msgpack, pyzmq }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  future,
+  gevent,
+  msgpack,
+  pyzmq,
+}:
 
 buildPythonPackage rec {
   pname = "zerorpc";
@@ -10,12 +18,17 @@ buildPythonPackage rec {
     sha256 = "d2ee247a566fc703f29c277d767f6f61f1e12f76d0402faea4bd815f32cbf37f";
   };
 
-  propagatedBuildInputs = [ future gevent msgpack pyzmq ];
+  propagatedBuildInputs = [
+    future
+    gevent
+    msgpack
+    pyzmq
+  ];
 
   doCheck = false; # pypi version doesn't include tests
 
   meta = with lib; {
-    description = "An easy to use, intuitive, and cross-language RPC";
+    description = "Easy to use, intuitive, and cross-language RPC";
     mainProgram = "zerorpc";
     homepage = "https://www.zerorpc.io";
     license = licenses.mit;
diff --git a/pkgs/development/python-modules/zetup/default.nix b/pkgs/development/python-modules/zetup/default.nix
index 4417134d4d178..5f46e398bbcb5 100644
--- a/pkgs/development/python-modules/zetup/default.nix
+++ b/pkgs/development/python-modules/zetup/default.nix
@@ -1,11 +1,12 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, nbconvert
-, path
-, pytestCheckHook
-, setuptools-scm
-, pythonAtLeast
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  nbconvert,
+  path,
+  pytestCheckHook,
+  setuptools-scm,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/zeversolarlocal/default.nix b/pkgs/development/python-modules/zeversolarlocal/default.nix
index b1e515d763206..58b756108a2f0 100644
--- a/pkgs/development/python-modules/zeversolarlocal/default.nix
+++ b/pkgs/development/python-modules/zeversolarlocal/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, fetchpatch
-, flit-core
-, dos2unix
-, httpx
-, pytest-asyncio
-, pytest-mock
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  fetchpatch,
+  flit-core,
+  dos2unix,
+  httpx,
+  pytest-asyncio,
+  pytest-mock,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -28,9 +29,7 @@ buildPythonPackage rec {
     dos2unix
   ];
 
-  propagatedBuildInputs = [
-    httpx
-  ];
+  propagatedBuildInputs = [ httpx ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -62,9 +61,7 @@ buildPythonPackage rec {
     "test_httpx_timeout"
   ];
 
-  pythonImportsCheck = [
-    "zeversolarlocal"
-  ];
+  pythonImportsCheck = [ "zeversolarlocal" ];
 
   meta = with lib; {
     description = "Python module to interact with Zeversolar inverters";
diff --git a/pkgs/development/python-modules/zfec/default.nix b/pkgs/development/python-modules/zfec/default.nix
index 1e135da34b3a7..dd12475d893d5 100644
--- a/pkgs/development/python-modules/zfec/default.nix
+++ b/pkgs/development/python-modules/zfec/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, hypothesis
-, pyutil
-, setuptools
-, twisted
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  hypothesis,
+  pyutil,
+  setuptools,
+  twisted,
 }:
 
 buildPythonPackage rec {
@@ -17,13 +18,9 @@ buildPythonPackage rec {
     hash = "sha256-EGmFchj4ur5AhEOXEnIIA6Ef6RsU8gvHepak5vThER8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [
-    pyutil
-  ];
+  propagatedBuildInputs = [ pyutil ];
 
   nativeCheckInputs = [
     hypothesis
@@ -34,9 +31,7 @@ buildPythonPackage rec {
     trial zfec
   '';
 
-  pythonImportsCheck = [
-    "zfec"
-  ];
+  pythonImportsCheck = [ "zfec" ];
 
   meta = with lib; {
     homepage = "https://github.com/tahoe-lafs/zfec";
@@ -52,5 +47,4 @@ buildPythonPackage rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ prusnak ];
   };
-
 }
diff --git a/pkgs/development/python-modules/zha-quirks/default.nix b/pkgs/development/python-modules/zha-quirks/default.nix
index 03413fc6f1fcf..9fca32df4185b 100644
--- a/pkgs/development/python-modules/zha-quirks/default.nix
+++ b/pkgs/development/python-modules/zha-quirks/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "zha-quirks";
-  version = "0.0.114";
+  version = "0.0.116";
   pyproject = true;
 
   disabled = pythonOlder "3.12";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "zigpy";
     repo = "zha-device-handlers";
     rev = "refs/tags/${version}";
-    hash = "sha256-FipD4VCz2/FYlf17+q7LTej9ZtT72/R4ELkAQtw7RvE=";
+    hash = "sha256-dWKIKIN61Y2vSbC7maxe4DoSYsAqeGtyWksnvAc2Pa8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/zha/default.nix b/pkgs/development/python-modules/zha/default.nix
index d6d23f46611a4..740aedd89c7a4 100644
--- a/pkgs/development/python-modules/zha/default.nix
+++ b/pkgs/development/python-modules/zha/default.nix
@@ -1,32 +1,32 @@
-{ lib
-, awesomeversion
-, bellows
-, buildPythonPackage
-, fetchFromGitHub
-, pyserial
-, pyserial-asyncio
-, pyserial-asyncio-fast
-, pytest-asyncio
-, pytest-timeout
-, pytest-xdist
-, pytestCheckHook
-, python-slugify
-, pythonOlder
-, pythonRelaxDepsHook
-, setuptools
-, universal-silabs-flasher
-, wheel
-, zha-quirks
-, zigpy
-, zigpy-deconz
-, zigpy-xbee
-, zigpy-zigate
-, zigpy-znp
+{
+  lib,
+  awesomeversion,
+  bellows,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyserial,
+  pyserial-asyncio,
+  pyserial-asyncio-fast,
+  pytest-asyncio,
+  pytest-timeout,
+  pytest-xdist,
+  pytestCheckHook,
+  python-slugify,
+  pythonOlder,
+  setuptools,
+  universal-silabs-flasher,
+  wheel,
+  zha-quirks,
+  zigpy,
+  zigpy-deconz,
+  zigpy-xbee,
+  zigpy-zigate,
+  zigpy-znp,
 }:
 
 buildPythonPackage rec {
   pname = "zha";
-  version = "0.0.8";
+  version = "0.0.15";
   pyproject = true;
 
   disabled = pythonOlder "3.12";
@@ -35,7 +35,7 @@ buildPythonPackage rec {
     owner = "zigpy";
     repo = "zha";
     rev = "refs/tags/${version}";
-    hash = "sha256-xOaqwgL8NqB3pHNa6U/wextntI5aMivHLaIhSRqvgRU=";
+    hash = "sha256-k4Wqxv7WJGDDGXA80qW+RUICTUcgLsWJNiV+zsOkfuM=";
   };
 
   postPatch = ''
@@ -45,13 +45,13 @@ buildPythonPackage rec {
   '';
 
   pythonRelaxDeps = [
+    "bellows"
+    "pyserial-asyncio-fast"
     "universal-silabs-flasher"
     "zha-quirks"
+    "zigpy"
   ];
 
-  nativeBuildInputs = [
-    pythonRelaxDepsHook
-  ];
 
   build-system = [
     setuptools
@@ -81,9 +81,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "zha"
-  ];
+  pythonImportsCheck = [ "zha" ];
 
   disabledTests = [
     # Tests are long-running and often keep hanging
@@ -106,9 +104,7 @@ buildPythonPackage rec {
     "test_zha_group_light_entity"
   ];
 
-  disabledTestPaths = [
-    "tests/test_cluster_handlers.py"
-  ];
+  disabledTestPaths = [ "tests/test_cluster_handlers.py" ];
 
   pytestFlagsArray = [
     "-v"
diff --git a/pkgs/development/python-modules/ziafont/default.nix b/pkgs/development/python-modules/ziafont/default.nix
index 788dda3329412..8f4f9f8769917 100644
--- a/pkgs/development/python-modules/ziafont/default.nix
+++ b/pkgs/development/python-modules/ziafont/default.nix
@@ -1,17 +1,17 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, pytestCheckHook
-, nbval
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  pytestCheckHook,
+  nbval,
 }:
 
 buildPythonPackage rec {
   pname = "ziafont";
-  version = "0.7";
-
-  format = "pyproject";
+  version = "0.8";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -19,19 +19,17 @@ buildPythonPackage rec {
     owner = "cdelker";
     repo = pname;
     rev = version;
-    hash = "sha256-DQEVWYOgiGSP3WlmZzEweyRa0UY7fxjjpbued+5EH5I=";
+    hash = "sha256-C+dC+mNquDuj6RfJpiEbeuGZOIXcgSrTB4XM21reBPs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
   nativeCheckInputs = [
     pytestCheckHook
     nbval
   ];
 
-  preCheck = "rm test/manyfonts.ipynb";  # Tries to download fonts
+  preCheck = "rm test/manyfonts.ipynb"; # Tries to download fonts
 
   pytestFlagsArray = [ "--nbval-lax" ];
 
diff --git a/pkgs/development/python-modules/ziamath/default.nix b/pkgs/development/python-modules/ziamath/default.nix
index c2d72a25f8107..ac2cd86109296 100644
--- a/pkgs/development/python-modules/ziamath/default.nix
+++ b/pkgs/development/python-modules/ziamath/default.nix
@@ -1,18 +1,19 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, ziafont
-, pytestCheckHook
-, nbval
-, latex2mathml
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  ziafont,
+  pytestCheckHook,
+  nbval,
+  latex2mathml,
 }:
 
 buildPythonPackage rec {
   pname = "ziamath";
-  version = "0.9";
-  format = "pyproject";
+  version = "0.10";
+  pyproject = true;
 
   disabled = pythonOlder "3.8";
 
@@ -20,16 +21,12 @@ buildPythonPackage rec {
     owner = "cdelker";
     repo = pname;
     rev = version;
-    hash = "sha256-ISd+J7R8qZ0NXdlyHMj+torzr+541UAhNCSaUH8ytSQ=";
+    hash = "sha256-Drssi+YySh4OhVYAOvgIwzeeu5dQbUUXuhwTedhUUt8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  propagatedBuildInputs = [
-    ziafont
-  ];
+  dependencies = [ ziafont ];
 
   nativeCheckInputs = [
     pytestCheckHook
diff --git a/pkgs/development/python-modules/zict/default.nix b/pkgs/development/python-modules/zict/default.nix
index 4bd3e7692283e..b2305bc243fdc 100644
--- a/pkgs/development/python-modules/zict/default.nix
+++ b/pkgs/development/python-modules/zict/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pytestCheckHook
-, pytest-asyncio
-, pytest-repeat
-, pytest-timeout
-, pythonOlder
-, setuptools
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pytestCheckHook,
+  pytest-asyncio,
+  pytest-repeat,
+  pytest-timeout,
+  pythonOlder,
+  setuptools,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-4yHiY7apeq/AeQw8+zwEZWtwZuZzjDf//MqV2APJ+6U=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytest-asyncio
@@ -33,7 +32,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "Mutable mapping tools.";
+    description = "Mutable mapping tools";
     homepage = "https://github.com/dask/zict";
     license = licenses.bsd3;
     maintainers = with maintainers; [ teh ];
diff --git a/pkgs/development/python-modules/zigpy-cc/default.nix b/pkgs/development/python-modules/zigpy-cc/default.nix
index 505e152f087b2..7cd3ea92489c3 100644
--- a/pkgs/development/python-modules/zigpy-cc/default.nix
+++ b/pkgs/development/python-modules/zigpy-cc/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, asynctest
-, buildPythonPackage
-, fetchFromGitHub
-, pyserial
-, pyserial-asyncio
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, zigpy
+{
+  lib,
+  asynctest,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyserial,
+  pyserial-asyncio,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  zigpy,
 }:
 
 buildPythonPackage rec {
@@ -48,9 +49,7 @@ buildPythonPackage rec {
     "tests/test_application.py "
   ];
 
-  pythonImportsCheck = [
-    "zigpy_cc"
-  ];
+  pythonImportsCheck = [ "zigpy_cc" ];
 
   meta = with lib; {
     description = "Library which communicates with Texas Instruments CC2531 radios for zigpy";
diff --git a/pkgs/development/python-modules/zigpy-deconz/default.nix b/pkgs/development/python-modules/zigpy-deconz/default.nix
index 930fcf0a7d2b8..9ea32dde5b7d6 100644
--- a/pkgs/development/python-modules/zigpy-deconz/default.nix
+++ b/pkgs/development/python-modules/zigpy-deconz/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyserial
-, pyserial-asyncio
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, zigpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyserial,
+  pyserial-asyncio,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  zigpy,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
       --replace 'dynamic = ["version"]' 'version = "${version}"'
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pyserial
@@ -45,9 +44,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "zigpy_deconz"
-  ];
+  pythonImportsCheck = [ "zigpy_deconz" ];
 
   meta = with lib; {
     description = "Library which communicates with Deconz radios for zigpy";
diff --git a/pkgs/development/python-modules/zigpy-xbee/default.nix b/pkgs/development/python-modules/zigpy-xbee/default.nix
index 848f253243cf6..0c627694f7d3f 100644
--- a/pkgs/development/python-modules/zigpy-xbee/default.nix
+++ b/pkgs/development/python-modules/zigpy-xbee/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pyserial
-, pyserial-asyncio
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, zigpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pyserial,
+  pyserial-asyncio,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  zigpy,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
       --replace 'dynamic = ["version"]' 'version = "${version}"'
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     pyserial
@@ -52,7 +51,7 @@ buildPythonPackage rec {
 
   meta = with lib; {
     changelog = "https://github.com/zigpy/zigpy-xbee/releases/tag/${version}";
-    description = "A library which communicates with XBee radios for zigpy";
+    description = "Library which communicates with XBee radios for zigpy";
     homepage = "https://github.com/zigpy/zigpy-xbee";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ mvnetbiz ];
diff --git a/pkgs/development/python-modules/zigpy-zigate/default.nix b/pkgs/development/python-modules/zigpy-zigate/default.nix
index 0c11c6ed5c3d8..1684d18ff10ef 100644
--- a/pkgs/development/python-modules/zigpy-zigate/default.nix
+++ b/pkgs/development/python-modules/zigpy-zigate/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, gpiozero
-, mock
-, pyserial
-, pyserial-asyncio
-, pyusb
-, pytest-asyncio
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, zigpy
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  gpiozero,
+  mock,
+  pyserial,
+  pyserial-asyncio,
+  pyusb,
+  pytest-asyncio,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  zigpy,
 }:
 
 buildPythonPackage rec {
@@ -33,9 +34,7 @@ buildPythonPackage rec {
       --replace 'dynamic = ["version"]' 'version = "${version}"'
   '';
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     gpiozero
@@ -51,9 +50,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pythonImportsCheck = [
-    "zigpy_zigate"
-  ];
+  pythonImportsCheck = [ "zigpy_zigate" ];
 
   disabledTestPaths = [
     # Fails in sandbox
diff --git a/pkgs/development/python-modules/zigpy-znp/default.nix b/pkgs/development/python-modules/zigpy-znp/default.nix
index 8bc40b8a55665..1df9053e08c51 100644
--- a/pkgs/development/python-modules/zigpy-znp/default.nix
+++ b/pkgs/development/python-modules/zigpy-znp/default.nix
@@ -1,19 +1,20 @@
-{ lib
-, async-timeout
-, buildPythonPackage
-, coloredlogs
-, fetchFromGitHub
-, jsonschema
-, pytest-asyncio
-, pytest-mock
-, pytest-rerunfailures
-, pytest-timeout
-, pytest-xdist
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, voluptuous
-, zigpy
+{
+  lib,
+  async-timeout,
+  buildPythonPackage,
+  coloredlogs,
+  fetchFromGitHub,
+  jsonschema,
+  pytest-asyncio,
+  pytest-mock,
+  pytest-rerunfailures,
+  pytest-timeout,
+  pytest-xdist,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  voluptuous,
+  zigpy,
 }:
 
 buildPythonPackage rec {
@@ -30,9 +31,7 @@ buildPythonPackage rec {
     hash = "sha256-Bs/m9Iyr8x+sMUVXt1whk2E4EJ5bpitMsEWZtmCyIf8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   postPatch = ''
     substituteInPlace pyproject.toml \
@@ -58,9 +57,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "--reruns=3"
-  ];
+  pytestFlagsArray = [ "--reruns=3" ];
 
   disabledTests = [
     # failing since zigpy 0.60.0
@@ -73,9 +70,7 @@ buildPythonPackage rec {
     "test_zigpy_request_failure"
   ];
 
-  pythonImportsCheck = [
-    "zigpy_znp"
-  ];
+  pythonImportsCheck = [ "zigpy_znp" ];
 
   meta = with lib; {
     description = "Library for zigpy which communicates with TI ZNP radios";
diff --git a/pkgs/development/python-modules/zigpy/default.nix b/pkgs/development/python-modules/zigpy/default.nix
index 0a32dea6649a1..48455b0a6e94b 100644
--- a/pkgs/development/python-modules/zigpy/default.nix
+++ b/pkgs/development/python-modules/zigpy/default.nix
@@ -1,30 +1,32 @@
-{ lib
-, aiohttp
-, aioresponses
-, aiosqlite
-, async-timeout
-, attrs
-, buildPythonPackage
-, crccheck
-, cryptography
-, fetchFromGitHub
-, freezegun
-, importlib-resources
-, jsonschema
-, pycryptodome
-, pyserial-asyncio
-, pytest-asyncio
-, pytest-timeout
-, pytestCheckHook
-, pythonOlder
-, setuptools
-, typing-extensions
-, voluptuous
+{
+  lib,
+  stdenv,
+  aiohttp,
+  aioresponses,
+  aiosqlite,
+  async-timeout,
+  attrs,
+  buildPythonPackage,
+  crccheck,
+  cryptography,
+  fetchFromGitHub,
+  freezegun,
+  importlib-resources,
+  jsonschema,
+  pycryptodome,
+  pyserial-asyncio,
+  pytest-asyncio,
+  pytest-timeout,
+  pytestCheckHook,
+  pythonOlder,
+  setuptools,
+  typing-extensions,
+  voluptuous,
 }:
 
 buildPythonPackage rec {
   pname = "zigpy";
-  version = "0.63.5";
+  version = "0.64.1";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -33,7 +35,7 @@ buildPythonPackage rec {
     owner = "zigpy";
     repo = "zigpy";
     rev = "refs/tags/${version}";
-    hash = "sha256-iZxHXxheyoA5vo0Pxojs7QE8rSyTpsYpJ6/OzDSZJ20=";
+    hash = "sha256-9hPJZQfLevV6zl7JvLtCJSspGl87ORlWLXoVJmRcEJU=";
   };
 
   postPatch = ''
@@ -42,26 +44,23 @@ buildPythonPackage rec {
       --replace-fail 'dynamic = ["version"]' 'version = "${version}"'
   '';
 
-  build-system = [
-    setuptools
-  ];
+  build-system = [ setuptools ];
 
-  dependencies = [
-    attrs
-    aiohttp
-    aiosqlite
-    crccheck
-    cryptography
-    jsonschema
-    pyserial-asyncio
-    typing-extensions
-    pycryptodome
-    voluptuous
-  ] ++ lib.optionals (pythonOlder "3.9") [
-    importlib-resources
-  ] ++ lib.optionals (pythonOlder "3.11") [
-    async-timeout
-  ];
+  dependencies =
+    [
+      attrs
+      aiohttp
+      aiosqlite
+      crccheck
+      cryptography
+      jsonschema
+      pyserial-asyncio
+      typing-extensions
+      pycryptodome
+      voluptuous
+    ]
+    ++ lib.optionals (pythonOlder "3.9") [ importlib-resources ]
+    ++ lib.optionals (pythonOlder "3.11") [ async-timeout ];
 
   nativeCheckInputs = [
     aioresponses
@@ -72,11 +71,9 @@ buildPythonPackage rec {
   ];
 
   disabledTests = [
-    # # Our two manual scans succeeded and the periodic one was attempted
-    # assert len(mock_scan.mock_calls) == 3
-    # AssertionError: assert 4 == 3
-    "test_periodic_scan_priority"
-  ];
+    # assert quirked.quirk_metadata.quirk_location.endswith("zigpy/tests/test_quirks_v2.py]-line:104") is False
+    "test_quirks_v2"
+  ] ++ lib.optionals (stdenv.isLinux && stdenv.isx86_64) [ "test_periodic_scan_priority" ];
 
   disabledTestPaths = [
     # Tests require network access
diff --git a/pkgs/development/python-modules/zimports/default.nix b/pkgs/development/python-modules/zimports/default.nix
index 22cd50c9189e7..f5d50241a8810 100644
--- a/pkgs/development/python-modules/zimports/default.nix
+++ b/pkgs/development/python-modules/zimports/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, fetchFromGitHub
-, buildPythonPackage
-, flake8-import-order
-, pyflakes
-, tomli
-, setuptools
-, pytestCheckHook
-, pythonAtLeast
-, pythonOlder
+{
+  lib,
+  fetchFromGitHub,
+  buildPythonPackage,
+  flake8-import-order,
+  pyflakes,
+  tomli,
+  setuptools,
+  pytestCheckHook,
+  pythonAtLeast,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -32,13 +33,9 @@ buildPythonPackage rec {
     tomli
   ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "zimports"
-  ];
+  pythonImportsCheck = [ "zimports" ];
 
   meta = with lib; {
     description = "Python import rewriter";
diff --git a/pkgs/development/python-modules/zipfile2/default.nix b/pkgs/development/python-modules/zipfile2/default.nix
index 304696ae117a8..2d611e912c045 100644
--- a/pkgs/development/python-modules/zipfile2/default.nix
+++ b/pkgs/development/python-modules/zipfile2/default.nix
@@ -1,6 +1,8 @@
-{ buildPythonPackage
-, fetchFromGitHub
-, lib
+{
+  buildPythonPackage,
+  fetchFromGitHub,
+  lib,
+  pythonAtLeast,
 }:
 
 buildPythonPackage rec {
@@ -21,8 +23,9 @@ buildPythonPackage rec {
 
   meta = with lib; {
     homepage = "https://github.com/cournape/zipfile2";
-    description = "A backwards-compatible improved zipfile class";
+    description = "Backwards-compatible improved zipfile class";
     maintainers = with maintainers; [ genericnerdyusername ];
     license = licenses.psfl;
+    broken = pythonAtLeast "3.12"; # tests are failing because the signature of ZipInfo._decodeExtra changed
   };
 }
diff --git a/pkgs/development/python-modules/zipp/default.nix b/pkgs/development/python-modules/zipp/default.nix
index 9ddbd4b43313d..f9ecaecd95e38 100644
--- a/pkgs/development/python-modules/zipp/default.nix
+++ b/pkgs/development/python-modules/zipp/default.nix
@@ -1,48 +1,50 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, func-timeout
-, jaraco-itertools
-, pythonOlder
-, setuptools-scm
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  func-timeout,
+  jaraco-itertools,
+  pythonOlder,
+  setuptools-scm,
 }:
 
-let zipp = buildPythonPackage rec {
-  pname = "zipp";
-  version = "3.18.1";
-  format = "pyproject";
+let
+  zipp = buildPythonPackage rec {
+    pname = "zipp";
+    version = "3.19.2";
+    format = "pyproject";
 
-  disabled = pythonOlder "3.7";
+    disabled = pythonOlder "3.7";
 
-  src = fetchPypi {
-    inherit pname version;
-    hash = "sha256-KITtIufYlh3hyaBRQutpokfxICkbwCBqAKdkLwm1txU=";
-  };
+    src = fetchPypi {
+      inherit pname version;
+      hash = "sha256-vx3PZFD4c6E+lSopUEiHyJ5t51BiCeWxvMNGATXU3hk=";
+    };
 
-  nativeBuildInputs = [
-    setuptools-scm
-  ];
+    nativeBuildInputs = [ setuptools-scm ];
 
-  # Prevent infinite recursion with pytest
-  doCheck = false;
+    # Prevent infinite recursion with pytest
+    doCheck = false;
 
-  nativeCheckInputs = [
-    func-timeout
-    jaraco-itertools
-  ];
+    nativeCheckInputs = [
+      func-timeout
+      jaraco-itertools
+    ];
 
-  pythonImportsCheck = [
-    "zipp"
-  ];
+    pythonImportsCheck = [ "zipp" ];
 
-  passthru.tests = {
-    check = zipp.overridePythonAttrs (_: { doCheck = true; });
-  };
+    passthru.tests = {
+      check = zipp.overridePythonAttrs (_: {
+        doCheck = true;
+      });
+    };
 
-  meta = with lib; {
-    description = "Pathlib-compatible object wrapper for zip files";
-    homepage = "https://github.com/jaraco/zipp";
-    license = licenses.mit;
-    maintainers = with maintainers; [ ];
+    meta = with lib; {
+      description = "Pathlib-compatible object wrapper for zip files";
+      homepage = "https://github.com/jaraco/zipp";
+      license = licenses.mit;
+      maintainers = with maintainers; [ ];
+    };
   };
-}; in zipp
+in
+zipp
diff --git a/pkgs/development/python-modules/zipstream-ng/default.nix b/pkgs/development/python-modules/zipstream-ng/default.nix
index d4972f70e4508..b8f054c278406 100644
--- a/pkgs/development/python-modules/zipstream-ng/default.nix
+++ b/pkgs/development/python-modules/zipstream-ng/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -19,13 +20,9 @@ buildPythonPackage rec {
     hash = "sha256-BYQse+DlyLUH9CofRfGrPUZjP7E8AP/wpirvJmSRfow=";
   };
 
-  pythonImportsCheck = [
-    "zipstream"
-  ];
+  pythonImportsCheck = [ "zipstream" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Library to generate streamable zip files";
diff --git a/pkgs/development/python-modules/zipstream/default.nix b/pkgs/development/python-modules/zipstream/default.nix
deleted file mode 100644
index bedc0b62267e3..0000000000000
--- a/pkgs/development/python-modules/zipstream/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ lib, buildPythonPackage, fetchPypi, nose }:
-
-buildPythonPackage rec {
-  pname = "zipstream";
-  version = "1.1.4";
-  format = "setuptools";
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "01im5anqdyggmwkigqcjg0qw2a5bnn84h33mfaqjjd69a28lpwif";
-  };
-
-  nativeCheckInputs = [ nose ];
-
-  meta = {
-    description = "A zip archive generator";
-    homepage = "https://github.com/allanlei/python-zipstream";
-    license = lib.licenses.gpl3Plus;
-    maintainers = with lib.maintainers; [ ];
-  };
-}
diff --git a/pkgs/development/python-modules/zlib-ng/default.nix b/pkgs/development/python-modules/zlib-ng/default.nix
index 71f2c0b768ae6..d8c926c4729b0 100644
--- a/pkgs/development/python-modules/zlib-ng/default.nix
+++ b/pkgs/development/python-modules/zlib-ng/default.nix
@@ -1,16 +1,17 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
 
-# build-system
-, cmake
-, setuptools
+  # build-system
+  cmake,
+  setuptools,
 
-# native dependencies
-, zlib-ng
+  # native dependencies
+  zlib-ng,
 
-# tests
-, pytestCheckHook
+  # tests
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -34,17 +35,11 @@ buildPythonPackage rec {
 
   env.PYTHON_ZLIB_NG_LINK_DYNAMIC = true;
 
-  buildInputs = [
-    zlib-ng
-  ];
+  buildInputs = [ zlib-ng ];
 
-  pythonImportsCheck = [
-    "zlib_ng"
-  ];
+  pythonImportsCheck = [ "zlib_ng" ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   preCheck = ''
     rm -rf src
@@ -61,7 +56,7 @@ buildPythonPackage rec {
   ];
 
   meta = with lib; {
-    description = "A drop-in replacement for Python's zlib and gzip modules using zlib-ng";
+    description = "Drop-in replacement for Python's zlib and gzip modules using zlib-ng";
     homepage = "https://github.com/pycompression/python-zlib-ng";
     changelog = "https://github.com/pycompression/python-zlib-ng/blob/${src.rev}/CHANGELOG.rst";
     license = licenses.psfl;
diff --git a/pkgs/development/python-modules/zm-py/default.nix b/pkgs/development/python-modules/zm-py/default.nix
index ddd5b72b929d0..f7cba1ed5d772 100644
--- a/pkgs/development/python-modules/zm-py/default.nix
+++ b/pkgs/development/python-modules/zm-py/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pytestCheckHook
-, pythonOlder
-, requests
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pytestCheckHook,
+  pythonOlder,
+  requests,
 }:
 
 buildPythonPackage rec {
@@ -21,24 +22,16 @@ buildPythonPackage rec {
     hash = "sha256-n9FRX2Pnn96H0HVT4SHLJgONc0XzQ005itMNpvl9IYg=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
-  propagatedBuildInputs = [
-    requests
-  ];
+  propagatedBuildInputs = [ requests ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pythonImportsCheck = [
-    "zoneminder"
-  ];
+  pythonImportsCheck = [ "zoneminder" ];
 
   meta = with lib; {
-    description = "A loose python wrapper around the ZoneMinder REST API";
+    description = "Loose python wrapper around the ZoneMinder REST API";
     homepage = "https://github.com/rohankapoorcom/zm-py";
     changelog = "https://github.com/rohankapoorcom/zm-py/releases/tag/v${version}";
     license = licenses.asl20;
diff --git a/pkgs/development/python-modules/zodb/default.nix b/pkgs/development/python-modules/zodb/default.nix
index 2ac592db42239..d14b0e1565cd3 100644
--- a/pkgs/development/python-modules/zodb/default.nix
+++ b/pkgs/development/python-modules/zodb/default.nix
@@ -1,17 +1,18 @@
-{ lib
-, fetchPypi
-, buildPythonPackage
-, python
-, zope-testrunner
-, transaction
-, six
-, zope-interface
-, zodbpickle
-, zconfig
-, persistent
-, zc-lockfile
-, btrees
-, manuel
+{
+  lib,
+  fetchPypi,
+  buildPythonPackage,
+  python,
+  zope-testrunner,
+  transaction,
+  six,
+  zope-interface,
+  zodbpickle,
+  zconfig,
+  persistent,
+  zc-lockfile,
+  btrees,
+  manuel,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/zodbpickle/default.nix b/pkgs/development/python-modules/zodbpickle/default.nix
index 6fd93b9226211..55dcfb7800d96 100644
--- a/pkgs/development/python-modules/zodbpickle/default.nix
+++ b/pkgs/development/python-modules/zodbpickle/default.nix
@@ -1,27 +1,26 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
   pname = "zodbpickle";
-  version = "3.3";
+  version = "4.0";
   format = "setuptools";
 
   disabled = pythonOlder "3.7";
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-dcF5Kse9W89JUFggYqw2hOMiqhOrmEIOO/7EWCJzo2g=";
+    hash = "sha256-6FutlWDWCSpjW+vueKQ7DxySamaRK+OQ6IyrZvTewYA=";
   };
 
   # fails..
   doCheck = false;
 
-  pythonImportsCheck = [
-    "zodbpickle"
-  ];
+  pythonImportsCheck = [ "zodbpickle" ];
 
   meta = with lib; {
     description = "Fork of Python's pickle module to work with ZODB";
diff --git a/pkgs/development/python-modules/zope-cachedescriptors/default.nix b/pkgs/development/python-modules/zope-cachedescriptors/default.nix
index e6aa92cd357b6..73aef8961525d 100644
--- a/pkgs/development/python-modules/zope-cachedescriptors/default.nix
+++ b/pkgs/development/python-modules/zope-cachedescriptors/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,17 +18,11 @@ buildPythonPackage rec {
     hash = "sha256-MVe+hm/Jck0Heotb9sP8IcOKQUerZk5yRiLf5fr/BIo=";
   };
 
-  propagatedBuildInputs = [
-    setuptools
-  ];
+  propagatedBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "src/zope/cachedescriptors/tests.py"
-  ];
+  pytestFlagsArray = [ "src/zope/cachedescriptors/tests.py" ];
 
   pythonImportsCheck = [ "zope.cachedescriptors" ];
 
diff --git a/pkgs/development/python-modules/zope-component/default.nix b/pkgs/development/python-modules/zope-component/default.nix
index eaa5bf84ea69f..ffe2dc672cb76 100644
--- a/pkgs/development/python-modules/zope-component/default.nix
+++ b/pkgs/development/python-modules/zope-component/default.nix
@@ -1,13 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, zope-configuration
-, zope-deferredimport
-, zope-deprecation
-, zope-event
-, zope-hookable
-, zope-i18nmessageid
-, zope-interface
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  zope-configuration,
+  zope-deferredimport,
+  zope-deprecation,
+  zope-event,
+  zope-hookable,
+  zope-i18nmessageid,
+  zope-interface,
 }:
 
 buildPythonPackage rec {
@@ -34,9 +35,7 @@ buildPythonPackage rec {
   # ignore tests because of a circular dependency on zope-security
   doCheck = false;
 
-  pythonImportsCheck = [
-    "zope.component"
-  ];
+  pythonImportsCheck = [ "zope.component" ];
 
   meta = with lib; {
     homepage = "https://github.com/zopefoundation/zope.component";
@@ -45,5 +44,4 @@ buildPythonPackage rec {
     license = licenses.zpl20;
     maintainers = with maintainers; [ goibhniu ];
   };
-
 }
diff --git a/pkgs/development/python-modules/zope-configuration/default.nix b/pkgs/development/python-modules/zope-configuration/default.nix
index 6a664daaf026d..1717a45e7143f 100644
--- a/pkgs/development/python-modules/zope-configuration/default.nix
+++ b/pkgs/development/python-modules/zope-configuration/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, zope-i18nmessageid
-, zope-interface
-, zope-schema
-, pytestCheckHook
-, zope-testing
-, zope-testrunner
-, manuel
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  zope-i18nmessageid,
+  zope-interface,
+  zope-schema,
+  pytestCheckHook,
+  zope-testing,
+  zope-testrunner,
+  manuel,
 }:
 
 buildPythonPackage rec {
@@ -25,9 +26,7 @@ buildPythonPackage rec {
     hash = "sha256-81h36tXpmANjhdLdxGkZ6ryZjmmcBZh5ZPFxrY3ZJxs=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     manuel
@@ -45,13 +44,9 @@ buildPythonPackage rec {
   # Need to investigate how to run the tests with zope-testrunner
   doCheck = false;
 
-  pythonImportsCheck = [
-    "zope.configuration"
-  ];
+  pythonImportsCheck = [ "zope.configuration" ];
 
-  pythonNamespaces = [
-    "zope"
-  ];
+  pythonNamespaces = [ "zope" ];
 
   meta = with lib; {
     description = "Zope Configuration Markup Language (ZCML)";
diff --git a/pkgs/development/python-modules/zope-contenttype/default.nix b/pkgs/development/python-modules/zope-contenttype/default.nix
index d979ff9e78f5c..d37de16fad17f 100644
--- a/pkgs/development/python-modules/zope-contenttype/default.nix
+++ b/pkgs/development/python-modules/zope-contenttype/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, zope-testrunner
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  zope-testrunner,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -20,22 +21,18 @@ buildPythonPackage rec {
     hash = "sha256-AAHvG2XKZQUZBW3OUwxY0LOWlXzPBQIyPIoVSdtk0xc=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   nativeCheckInputs = [
     pytestCheckHook
     zope-testrunner
   ];
 
-  pythonImportsCheck = [
-    "zope.contenttype"
-  ];
+  pythonImportsCheck = [ "zope.contenttype" ];
 
   meta = with lib; {
     homepage = "https://github.com/zopefoundation/zope.contenttype";
-    description = "A utility module for content-type (MIME type) handling";
+    description = "Utility module for content-type (MIME type) handling";
     changelog = "https://github.com/zopefoundation/zope.contenttype/blob/${version}/CHANGES.rst";
     license = licenses.zpl21;
     maintainers = with maintainers; [ goibhniu ];
diff --git a/pkgs/development/python-modules/zope-copy/default.nix b/pkgs/development/python-modules/zope-copy/default.nix
index d5571b6417efa..daa93782014dc 100644
--- a/pkgs/development/python-modules/zope-copy/default.nix
+++ b/pkgs/development/python-modules/zope-copy/default.nix
@@ -1,14 +1,14 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPy27
-, zope-interface
-, zope-location
-, zope-schema
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPy27,
+  zope-interface,
+  zope-location,
+  zope-schema,
+  unittestCheckHook,
 }:
 
-
 buildPythonPackage rec {
   pname = "zope.copy";
   version = "4.3";
@@ -21,9 +21,16 @@ buildPythonPackage rec {
   propagatedBuildInputs = [ zope-interface ];
 
   doCheck = !isPy27; # namespace conflicts
-  nativeCheckInputs = [ unittestCheckHook zope-location zope-schema ];
+  nativeCheckInputs = [
+    unittestCheckHook
+    zope-location
+    zope-schema
+  ];
 
-  unittestFlagsArray = [ "-s" "src/zope/copy" ];
+  unittestFlagsArray = [
+    "-s"
+    "src/zope/copy"
+  ];
 
   meta = {
     maintainers = with lib.maintainers; [ domenkozar ];
diff --git a/pkgs/development/python-modules/zope-deferredimport/default.nix b/pkgs/development/python-modules/zope-deferredimport/default.nix
index 367131b400ec4..352fefbcd3737 100644
--- a/pkgs/development/python-modules/zope-deferredimport/default.nix
+++ b/pkgs/development/python-modules/zope-deferredimport/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, zope-proxy
-, zope-testrunner
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  zope-proxy,
+  zope-testrunner,
 }:
 
 buildPythonPackage rec {
diff --git a/pkgs/development/python-modules/zope-deprecation/default.nix b/pkgs/development/python-modules/zope-deprecation/default.nix
index 4a0437e2b2f4e..3abbff8e18cd7 100644
--- a/pkgs/development/python-modules/zope-deprecation/default.nix
+++ b/pkgs/development/python-modules/zope-deprecation/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,21 +20,13 @@ buildPythonPackage rec {
     hash = "sha256-t8MtM5IDayFFxAsxA+cyLbaGYqsJtyZ6/hUyqdk/ZA8=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "src/zope/deprecation/tests.py"
-  ];
+  pytestFlagsArray = [ "src/zope/deprecation/tests.py" ];
 
-  pythonImportsCheck = [
-    "zope.deprecation"
-  ];
+  pythonImportsCheck = [ "zope.deprecation" ];
 
   meta = with lib; {
     homepage = "https://github.com/zopefoundation/zope.deprecation";
@@ -42,5 +35,4 @@ buildPythonPackage rec {
     license = licenses.zpl21;
     maintainers = with maintainers; [ domenkozar ];
   };
-
 }
diff --git a/pkgs/development/python-modules/zope-dottedname/default.nix b/pkgs/development/python-modules/zope-dottedname/default.nix
index 895b00231aea2..44b1749d791fb 100644
--- a/pkgs/development/python-modules/zope-dottedname/default.nix
+++ b/pkgs/development/python-modules/zope-dottedname/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -19,25 +20,15 @@ buildPythonPackage rec {
     hash = "sha256-28S4W/vzSx74jasWJSrG7xbZBDnyIjstCiYs9Bnq6QI=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "src/zope/dottedname/tests.py"
-  ];
+  pytestFlagsArray = [ "src/zope/dottedname/tests.py" ];
 
-  pythonImportsCheck = [
-    "zope.dottedname"
-  ];
+  pythonImportsCheck = [ "zope.dottedname" ];
 
-  pythonNamespaces = [
-    "zope"
-  ];
+  pythonNamespaces = [ "zope" ];
 
   meta = with lib; {
     homepage = "https://github.com/zopefoundation/zope.dottedname";
diff --git a/pkgs/development/python-modules/zope-event/default.nix b/pkgs/development/python-modules/zope-event/default.nix
index 93cfc749c9231..95a3a7f182755 100644
--- a/pkgs/development/python-modules/zope-event/default.nix
+++ b/pkgs/development/python-modules/zope-event/default.nix
@@ -1,6 +1,7 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
 }:
 
 buildPythonPackage rec {
@@ -13,10 +14,9 @@ buildPythonPackage rec {
   };
 
   meta = with lib; {
-    description = "An event publishing system";
+    description = "Event publishing system";
     homepage = "https://pypi.org/project/zope.event/";
     license = licenses.zpl20;
     maintainers = with maintainers; [ goibhniu ];
   };
-
 }
diff --git a/pkgs/development/python-modules/zope-exceptions/default.nix b/pkgs/development/python-modules/zope-exceptions/default.nix
index ae38402c9736f..835fa247410e1 100644
--- a/pkgs/development/python-modules/zope-exceptions/default.nix
+++ b/pkgs/development/python-modules/zope-exceptions/default.nix
@@ -1,14 +1,15 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, zope-interface
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  zope-interface,
 }:
 
 buildPythonPackage rec {
   pname = "zope-exceptions";
-  version = "5.0.1";
+  version = "5.1";
   pyproject = true;
 
   disabled = pythonOlder "3.7";
@@ -16,21 +17,17 @@ buildPythonPackage rec {
   src = fetchPypi {
     pname = "zope.exceptions";
     inherit version;
-    hash = "sha256-MPxT5TOfX72dEzXg97afd/FePwbisXt/t++SXMJP3ZY=";
+    hash = "sha256-YRtMSUbDAWDbS3u9TzhhOzJoSvFn0xllCvm3O8ew6Xg=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [ zope-interface ];
 
   # circular deps
   doCheck = false;
 
-  pythonImportsCheck = [
-    "zope.exceptions"
-  ];
+  pythonImportsCheck = [ "zope.exceptions" ];
 
   meta = with lib; {
     description = "Exception interfaces and implementations";
@@ -39,5 +36,4 @@ buildPythonPackage rec {
     license = licenses.zpl21;
     maintainers = with maintainers; [ goibhniu ];
   };
-
 }
diff --git a/pkgs/development/python-modules/zope-filerepresentation/default.nix b/pkgs/development/python-modules/zope-filerepresentation/default.nix
index 960b4a9e881e8..b9f394f03d2f0 100644
--- a/pkgs/development/python-modules/zope-filerepresentation/default.nix
+++ b/pkgs/development/python-modules/zope-filerepresentation/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, zope-schema
-, zope-interface
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  zope-schema,
+  zope-interface,
 }:
 
 buildPythonPackage rec {
@@ -14,7 +15,10 @@ buildPythonPackage rec {
     hash = "sha256-yza3iGspJ2+C8WhfPykfQjXmac2HhdFHQtRl0Trvaqs=";
   };
 
-  propagatedBuildInputs = [ zope-interface zope-schema ];
+  propagatedBuildInputs = [
+    zope-interface
+    zope-schema
+  ];
 
   checkPhase = ''
     cd src/zope/filerepresentation && python -m unittest
@@ -26,5 +30,4 @@ buildPythonPackage rec {
     license = licenses.zpl20;
     maintainers = with maintainers; [ goibhniu ];
   };
-
 }
diff --git a/pkgs/development/python-modules/zope-hookable/default.nix b/pkgs/development/python-modules/zope-hookable/default.nix
index 8ee46c58943f0..8af1d3d0b7521 100644
--- a/pkgs/development/python-modules/zope-hookable/default.nix
+++ b/pkgs/development/python-modules/zope-hookable/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, zope-testing
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  zope-testing,
 }:
 
 buildPythonPackage rec {
@@ -16,13 +17,9 @@ buildPythonPackage rec {
     hash = "sha256-FmiZPUCnz9yGeEPdVyWSnn+DpbDBlccJrx2u+CdPQ8s=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  nativeCheckInputs = [
-    zope-testing
-  ];
+  nativeCheckInputs = [ zope-testing ];
 
   meta = with lib; {
     description = "Supports the efficient creation of “hookable” objects";
diff --git a/pkgs/development/python-modules/zope-i18nmessageid/default.nix b/pkgs/development/python-modules/zope-i18nmessageid/default.nix
index 0b0ef641d3296..df703e2c3b15d 100644
--- a/pkgs/development/python-modules/zope-i18nmessageid/default.nix
+++ b/pkgs/development/python-modules/zope-i18nmessageid/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, zope-testrunner
-, unittestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  zope-testrunner,
+  unittestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -21,13 +22,9 @@ buildPythonPackage rec {
     zope-testrunner
   ];
 
-  unittestFlagsArray = [
-    "src/zope/i18nmessageid"
-  ];
+  unittestFlagsArray = [ "src/zope/i18nmessageid" ];
 
-  pythonImportsCheck = [
-    "zope.i18nmessageid"
-  ];
+  pythonImportsCheck = [ "zope.i18nmessageid" ];
 
   meta = with lib; {
     homepage = "https://github.com/zopefoundation/zope.i18nmessageid";
diff --git a/pkgs/development/python-modules/zope-interface/default.nix b/pkgs/development/python-modules/zope-interface/default.nix
index f834301a464e0..c94e4a0366c56 100644
--- a/pkgs/development/python-modules/zope-interface/default.nix
+++ b/pkgs/development/python-modules/zope-interface/default.nix
@@ -1,25 +1,31 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, zope-event
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  zope-event,
 }:
 
 buildPythonPackage rec {
   pname = "zope.interface";
-  version = "5.5.2";
+  version = "6.4.post2";
+  pyproject = true;
 
   src = fetchPypi {
     inherit pname version;
-    hash = "sha256-v+4fP/YhQ4GUmeNI9bin86oCWfmspeDdrnOR0Fnc5nE=";
+    hash = "sha256-HCB+b239V0mib1pf2WZgLWuCTsANLfhKfpqSTokzZU4=";
   };
 
-  propagatedBuildInputs = [ zope-event ];
+  build-system = [ setuptools ];
+
+  dependencies = [ zope-event ];
 
   doCheck = false; # Circular deps.
 
   meta = with lib; {
+    changelog = "https://github.com/zopefoundation/zope.interface/blob/${version}/CHANGES.rst";
     description = "Zope.Interface";
-    homepage = "https://zope.org/Products/ZopeInterface";
+    homepage = "https://github.com/zopefoundation/zope.interface";
     license = licenses.zpl20;
     maintainers = [ maintainers.goibhniu ];
   };
diff --git a/pkgs/development/python-modules/zope-lifecycleevent/default.nix b/pkgs/development/python-modules/zope-lifecycleevent/default.nix
index 1b94583ce9d87..d54a9225dc8c0 100644
--- a/pkgs/development/python-modules/zope-lifecycleevent/default.nix
+++ b/pkgs/development/python-modules/zope-lifecycleevent/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, zope-event
-, zope-interface
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  zope-event,
+  zope-interface,
 }:
 
 buildPythonPackage rec {
@@ -20,11 +21,12 @@ buildPythonPackage rec {
     hash = "sha256-6tP7SW52FPm1adFtrUt4BSsKwhh1utjWbKNQNS2bb50=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
-  propagatedBuildInputs = [ zope-event zope-interface ];
+  propagatedBuildInputs = [
+    zope-event
+    zope-interface
+  ];
 
   # namespace colides with local directory
   doCheck = false;
diff --git a/pkgs/development/python-modules/zope-location/default.nix b/pkgs/development/python-modules/zope-location/default.nix
index caefe5799b0e0..3b47baea5b195 100644
--- a/pkgs/development/python-modules/zope-location/default.nix
+++ b/pkgs/development/python-modules/zope-location/default.nix
@@ -1,7 +1,8 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, zope-proxy
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  zope-proxy,
 }:
 
 buildPythonPackage rec {
@@ -28,5 +29,4 @@ buildPythonPackage rec {
     license = licenses.zpl20;
     maintainers = with maintainers; [ goibhniu ];
   };
-
 }
diff --git a/pkgs/development/python-modules/zope-proxy/default.nix b/pkgs/development/python-modules/zope-proxy/default.nix
index 6084a86f65aec..cb5717d8abef7 100644
--- a/pkgs/development/python-modules/zope-proxy/default.nix
+++ b/pkgs/development/python-modules/zope-proxy/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, pythonOlder
-, setuptools
-, zope-interface
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools,
+  zope-interface,
 }:
 
 buildPythonPackage rec {
@@ -19,18 +20,14 @@ buildPythonPackage rec {
     hash = "sha256-93fVbCqy/PQNAmraHmfx45z2MY497rmhzVCH/MsfKG4=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [ zope-interface ];
 
   # circular deps
   doCheck = false;
 
-  pythonImportsCheck = [
-    "zope.proxy"
-  ];
+  pythonImportsCheck = [ "zope.proxy" ];
 
   meta = with lib; {
     homepage = "https://github.com/zopefoundation/zope.proxy";
diff --git a/pkgs/development/python-modules/zope-schema/default.nix b/pkgs/development/python-modules/zope-schema/default.nix
index 6fde974b62051..197022900efdc 100644
--- a/pkgs/development/python-modules/zope-schema/default.nix
+++ b/pkgs/development/python-modules/zope-schema/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, zope-location
-, zope-event
-, zope-interface
-, zope-testing
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  zope-location,
+  zope-event,
+  zope-interface,
+  zope-testing,
 }:
 
 buildPythonPackage rec {
@@ -16,7 +17,12 @@ buildPythonPackage rec {
     hash = "sha256-6tTbywM1TU5BDJo7kERR60TZAlR1Gxy97fSmGu3p+7k=";
   };
 
-  propagatedBuildInputs = [ zope-location zope-event zope-interface zope-testing ];
+  propagatedBuildInputs = [
+    zope-location
+    zope-event
+    zope-interface
+    zope-testing
+  ];
 
   # ImportError: No module named 'zope.event'
   # even though zope-event has been included.
@@ -29,5 +35,4 @@ buildPythonPackage rec {
     license = licenses.zpl20;
     maintainers = with maintainers; [ goibhniu ];
   };
-
 }
diff --git a/pkgs/development/python-modules/zope-size/default.nix b/pkgs/development/python-modules/zope-size/default.nix
index a6ef2a5885500..33838d51cc73f 100644
--- a/pkgs/development/python-modules/zope-size/default.nix
+++ b/pkgs/development/python-modules/zope-size/default.nix
@@ -1,8 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, zope-i18nmessageid
-, zope-interface
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  zope-i18nmessageid,
+  zope-interface,
 }:
 
 buildPythonPackage rec {
@@ -14,7 +15,10 @@ buildPythonPackage rec {
     hash = "sha256-sVRT40+Bb/VFmtg82TUCmqWBxqRTRj4DxeLZe9IKQyo=";
   };
 
-  propagatedBuildInputs = [ zope-i18nmessageid zope-interface ];
+  propagatedBuildInputs = [
+    zope-i18nmessageid
+    zope-interface
+  ];
 
   meta = with lib; {
     homepage = "https://github.com/zopefoundation/zope.size";
@@ -22,5 +26,4 @@ buildPythonPackage rec {
     license = licenses.zpl20;
     maintainers = with maintainers; [ goibhniu ];
   };
-
 }
diff --git a/pkgs/development/python-modules/zope-testbrowser/default.nix b/pkgs/development/python-modules/zope-testbrowser/default.nix
index 732c367de5772..b63578bb6b83f 100644
--- a/pkgs/development/python-modules/zope-testbrowser/default.nix
+++ b/pkgs/development/python-modules/zope-testbrowser/default.nix
@@ -1,32 +1,33 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, setuptools
-, zope-interface
-, zope-schema
-, zope-cachedescriptors
-, pytz
-, webtest
-, beautifulsoup4
-, soupsieve
-, wsgiproxy2
-, six
-, mock
-, zope-testing
-, zope-testrunner
-, python
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  setuptools,
+  zope-interface,
+  zope-schema,
+  zope-cachedescriptors,
+  pytz,
+  webtest,
+  beautifulsoup4,
+  soupsieve,
+  wsgiproxy2,
+  six,
+  mock,
+  zope-testing,
+  zope-testrunner,
+  python,
 }:
 
 buildPythonPackage rec {
   pname = "zope-testbrowser";
-  version = "6.0";
+  version = "7.0";
 
   format = "setuptools";
 
   src = fetchPypi {
     pname = "zope.testbrowser";
     inherit version;
-    sha256 = "sha256-RLd6XpA3q+3DZHai6j3H6XTWE85Sk913zAL4iO4x+ho=";
+    sha256 = "sha256-WTbSoNd9h4HQATWP0LEUYShbAtxuOzJLhMHtkyax/z8=";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/zope-testing/default.nix b/pkgs/development/python-modules/zope-testing/default.nix
index 65672118e4ef9..c6b4f61ef7072 100644
--- a/pkgs/development/python-modules/zope-testing/default.nix
+++ b/pkgs/development/python-modules/zope-testing/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, isPyPy
-, setuptools
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  isPyPy,
+  setuptools,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -17,31 +18,21 @@ buildPythonPackage rec {
     hash = "sha256-6HzQ2NZmVzza8TOBare5vuyAGmSoZZXBnLX+mS7z1kk=";
   };
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   doCheck = !isPyPy;
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
-  pytestFlagsArray = [
-    "src/zope/testing/tests.py"
-  ];
+  pytestFlagsArray = [ "src/zope/testing/tests.py" ];
 
-  pythonImportsCheck = [
-    "zope.testing"
-  ];
+  pythonImportsCheck = [ "zope.testing" ];
 
-  pythonNamespaces = [
-    "zope"
-  ];
+  pythonNamespaces = [ "zope" ];
 
   meta = with lib; {
     description = "Zope testing helpers";
-    homepage =  "https://github.com/zopefoundation/zope.testing";
+    homepage = "https://github.com/zopefoundation/zope.testing";
     changelog = "https://github.com/zopefoundation/zope.testing/blob/${version}/CHANGES.rst";
     license = licenses.zpl21;
     maintainers = with maintainers; [ goibhniu ];
diff --git a/pkgs/development/python-modules/zope-testrunner/default.nix b/pkgs/development/python-modules/zope-testrunner/default.nix
index aa06e73442335..3ba806b9d1192 100644
--- a/pkgs/development/python-modules/zope-testrunner/default.nix
+++ b/pkgs/development/python-modules/zope-testrunner/default.nix
@@ -1,13 +1,13 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, zope-interface
-, zope-exceptions
-, zope-testing
-, six
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  zope-interface,
+  zope-exceptions,
+  zope-testing,
+  six,
 }:
 
-
 buildPythonPackage rec {
   pname = "zope.testrunner";
   version = "6.4";
@@ -17,12 +17,17 @@ buildPythonPackage rec {
     hash = "sha256-C4Wfx01vK2xd2K353uTsdAX3PykOyrJXCsY2+DYSKMg=";
   };
 
-  propagatedBuildInputs = [ zope-interface zope-exceptions zope-testing six ];
+  propagatedBuildInputs = [
+    zope-interface
+    zope-exceptions
+    zope-testing
+    six
+  ];
 
   doCheck = false; # custom test modifies sys.path
 
   meta = with lib; {
-    description = "A flexible test runner with layer support";
+    description = "Flexible test runner with layer support";
     mainProgram = "zope-testrunner";
     homepage = "https://pypi.python.org/pypi/zope.testrunner";
     license = licenses.zpl20;
diff --git a/pkgs/development/python-modules/zopfli/default.nix b/pkgs/development/python-modules/zopfli/default.nix
index c8ecd77730d8a..f26eb8385a6ef 100644
--- a/pkgs/development/python-modules/zopfli/default.nix
+++ b/pkgs/development/python-modules/zopfli/default.nix
@@ -1,4 +1,12 @@
-{ lib, buildPythonPackage, fetchPypi, pythonOlder, setuptools-scm, zopfli, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  pythonOlder,
+  setuptools-scm,
+  zopfli,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "zopfli";
diff --git a/pkgs/development/python-modules/zstandard/default.nix b/pkgs/development/python-modules/zstandard/default.nix
index ae75db9f7b137..e76b19f95c413 100644
--- a/pkgs/development/python-modules/zstandard/default.nix
+++ b/pkgs/development/python-modules/zstandard/default.nix
@@ -1,9 +1,10 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-, cffi
-, hypothesis
-, pythonOlder
+{
+  lib,
+  buildPythonPackage,
+  fetchPypi,
+  cffi,
+  hypothesis,
+  pythonOlder,
 }:
 
 buildPythonPackage rec {
@@ -18,21 +19,13 @@ buildPythonPackage rec {
     hash = "sha256-giajPFQry1TNa9CjZgZ7YQtBcTtkyavsG8RTPWn1HnA=";
   };
 
-  propagatedNativeBuildInputs = [
-    cffi
-  ];
+  propagatedNativeBuildInputs = [ cffi ];
 
-  propagatedBuildInputs = [
-    cffi
-  ];
+  propagatedBuildInputs = [ cffi ];
 
-  nativeCheckInputs = [
-    hypothesis
-  ];
+  nativeCheckInputs = [ hypothesis ];
 
-  pythonImportsCheck = [
-    "zstandard"
-  ];
+  pythonImportsCheck = [ "zstandard" ];
 
   meta = with lib; {
     description = "zstandard bindings for Python";
diff --git a/pkgs/development/python-modules/zstd/default.nix b/pkgs/development/python-modules/zstd/default.nix
index 368d246d9dc64..b4a335efca11a 100644
--- a/pkgs/development/python-modules/zstd/default.nix
+++ b/pkgs/development/python-modules/zstd/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, pkg-config
-, fetchPypi
-, buildPythonPackage
-, buildPackages
-, zstd
-, pytest
+{
+  lib,
+  pkg-config,
+  fetchPypi,
+  buildPythonPackage,
+  buildPackages,
+  zstd,
+  pytest,
 }:
 
 buildPythonPackage rec {
@@ -46,8 +47,6 @@ buildPythonPackage rec {
     description = "Simple python bindings to Yann Collet ZSTD compression library";
     homepage = "https://github.com/sergey-dryabzhinsky/python-zstd";
     license = licenses.bsd2;
-    maintainers = with maintainers; [
-      eadwu
-    ];
+    maintainers = with maintainers; [ eadwu ];
   };
 }
diff --git a/pkgs/development/python-modules/zulip/default.nix b/pkgs/development/python-modules/zulip/default.nix
index 81b068e232124..9f623b01c8c69 100644
--- a/pkgs/development/python-modules/zulip/default.nix
+++ b/pkgs/development/python-modules/zulip/default.nix
@@ -1,15 +1,16 @@
-{ lib
-, buildPythonPackage
-, pythonOlder
-, fetchFromGitHub
-, setuptools
-, requests
-, matrix-client
-, distro
-, click
-, typing-extensions
-, matrix-nio
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  pythonOlder,
+  fetchFromGitHub,
+  setuptools,
+  requests,
+  matrix-client,
+  distro,
+  click,
+  typing-extensions,
+  matrix-nio,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -29,9 +30,7 @@ buildPythonPackage rec {
   };
   sourceRoot = "${src.name}/zulip";
 
-  nativeBuildInputs = [
-    setuptools
-  ];
+  nativeBuildInputs = [ setuptools ];
 
   propagatedBuildInputs = [
     requests
diff --git a/pkgs/development/python-modules/zwave-js-server-python/default.nix b/pkgs/development/python-modules/zwave-js-server-python/default.nix
index a6c1e50e34d39..bb374e1ec42b6 100644
--- a/pkgs/development/python-modules/zwave-js-server-python/default.nix
+++ b/pkgs/development/python-modules/zwave-js-server-python/default.nix
@@ -12,7 +12,7 @@
 
 buildPythonPackage rec {
   pname = "zwave-js-server-python";
-  version = "0.55.4";
+  version = "0.57.0";
   pyproject = true;
 
   disabled = pythonOlder "3.11";
@@ -21,7 +21,7 @@ buildPythonPackage rec {
     owner = "home-assistant-libs";
     repo = "zwave-js-server-python";
     rev = "refs/tags/${version}";
-    hash = "sha256-wPvMgQR85yHC0k+ENj+r/ilcxmOipSFGkz8qBRLgPaY=";
+    hash = "sha256-5Kvk73tRnHFi5YDzMmRj1r7gKuAPkecPF9q9L2qhAUI=";
   };
 
   build-system = [ setuptools ];
diff --git a/pkgs/development/python-modules/zwave-me-ws/default.nix b/pkgs/development/python-modules/zwave-me-ws/default.nix
index 152beb51c3266..db7803c4ed168 100644
--- a/pkgs/development/python-modules/zwave-me-ws/default.nix
+++ b/pkgs/development/python-modules/zwave-me-ws/default.nix
@@ -1,10 +1,11 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, poetry-core
-, pythonOlder
-, requests
-, websocket-client
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  poetry-core,
+  pythonOlder,
+  requests,
+  websocket-client,
 }:
 
 buildPythonPackage rec {
@@ -21,9 +22,7 @@ buildPythonPackage rec {
     hash = "sha256-bTchtgr+UbHCpcXMaQA3bTrhasJ79TguvAqLNlpD/2c=";
   };
 
-  nativeBuildInputs = [
-    poetry-core
-  ];
+  nativeBuildInputs = [ poetry-core ];
 
   propagatedBuildInputs = [
     requests
@@ -33,9 +32,7 @@ buildPythonPackage rec {
   # Module has no tests
   doCheck = false;
 
-  pythonImportsCheck = [
-    "zwave_me_ws"
-  ];
+  pythonImportsCheck = [ "zwave_me_ws" ];
 
   meta = with lib; {
     description = "Library to connect to a ZWave-Me instance";
diff --git a/pkgs/development/python-modules/zxcvbn/default.nix b/pkgs/development/python-modules/zxcvbn/default.nix
index 34f51ab5b7663..7ce1af48a906a 100644
--- a/pkgs/development/python-modules/zxcvbn/default.nix
+++ b/pkgs/development/python-modules/zxcvbn/default.nix
@@ -1,7 +1,9 @@
-{ lib
-, buildPythonPackage
-, fetchFromGitHub
-, pytestCheckHook }:
+{
+  lib,
+  buildPythonPackage,
+  fetchFromGitHub,
+  pytestCheckHook,
+}:
 
 buildPythonPackage rec {
   pname = "zxcvbn";
@@ -16,9 +18,7 @@ buildPythonPackage rec {
     hash = "sha256-etcST7pxlpOH5Q9KtOPGf1vmnkyjEp6Cd5QCmBjW9Hc=";
   };
 
-  nativeCheckInputs = [
-    pytestCheckHook
-  ];
+  nativeCheckInputs = [ pytestCheckHook ];
 
   meta = with lib; {
     description = "Python implementation of Dropbox's realistic password strength estimator";
diff --git a/pkgs/development/python-modules/zxing-cpp/default.nix b/pkgs/development/python-modules/zxing-cpp/default.nix
index dbdc4c50effd5..511a939cf6fb8 100644
--- a/pkgs/development/python-modules/zxing-cpp/default.nix
+++ b/pkgs/development/python-modules/zxing-cpp/default.nix
@@ -1,12 +1,13 @@
-{ lib
-, buildPythonPackage
-, cmake
-, setuptools-scm
-, numpy
-, pillow
-, pybind11
-, libzxing-cpp
-, pytestCheckHook
+{
+  lib,
+  buildPythonPackage,
+  cmake,
+  setuptools-scm,
+  numpy,
+  pillow,
+  pybind11,
+  libzxing-cpp,
+  pytestCheckHook,
 }:
 
 buildPythonPackage rec {
@@ -25,13 +26,9 @@ buildPythonPackage rec {
 
   dontUseCmakeConfigure = true;
 
-  propagatedBuildInputs = [
-    numpy
-  ];
+  propagatedBuildInputs = [ numpy ];
 
-  buildInputs = [
-    pybind11
-  ];
+  buildInputs = [ pybind11 ];
 
   nativeBuildInputs = [
     cmake
@@ -43,11 +40,7 @@ buildPythonPackage rec {
     pytestCheckHook
   ];
 
-  pytestFlagsArray = [
-    "test.py"
-  ];
+  pytestFlagsArray = [ "test.py" ];
 
-  pythonImportsCheck = [
-    "zxingcpp"
-  ];
+  pythonImportsCheck = [ "zxingcpp" ];
 }